UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Adventurer
Adventurer
858 Views
Registered: ‎11-08-2017

stretch synchronizer -> data transmission for slow-to-fast and fast-to-slow domains -> how to implement?

Jump to solution

Hi All,

 

As for the stretch synchronizer, which supports data transmission for both slow-to-fast and fast-to-slow, how should it be implemented?

 

Thank you!

 

0 Kudos
1 Solution

Accepted Solutions
Scholar jmcclusk
Scholar
1,192 Views
Registered: ‎02-24-2014

Re: stretch synchronizer -> data transmission for slow-to-fast and fast-to-slow domains -> how to implement?

Jump to solution

you probably want this:  XPM_CDC_HANDSHAKE documented on page 16 of UG953.

 

This macro uses a handshake signaling to transfer an input bus from the source clock domain to the destination clock domain. One example of when this macro should be used is when the data being transferred is not compatible with the XPM_CDC_GRAY macro that uses Gray encoding.

 

For this macro to function correctly, a full handshake - an acknowledgement that the data transfer was received and a resetting of the handshake signals – must be completed before another data transfer is initiated. You can define the number of register stages used in the synchronizers to transfer the handshake signals between the clock domains individually.

 

You can also include internal handshake logic to acknowledge the receipt of data on the destination clock domain. When this feature is enabled, the output (dest_out) must be consumed immediately when the data valid (dest_req) is asserted.

Don't forget to close a thread when possible by accepting a post as a solution.
1 Reply
Scholar jmcclusk
Scholar
1,193 Views
Registered: ‎02-24-2014

Re: stretch synchronizer -> data transmission for slow-to-fast and fast-to-slow domains -> how to implement?

Jump to solution

you probably want this:  XPM_CDC_HANDSHAKE documented on page 16 of UG953.

 

This macro uses a handshake signaling to transfer an input bus from the source clock domain to the destination clock domain. One example of when this macro should be used is when the data being transferred is not compatible with the XPM_CDC_GRAY macro that uses Gray encoding.

 

For this macro to function correctly, a full handshake - an acknowledgement that the data transfer was received and a resetting of the handshake signals – must be completed before another data transfer is initiated. You can define the number of register stages used in the synchronizers to transfer the handshake signals between the clock domains individually.

 

You can also include internal handshake logic to acknowledge the receipt of data on the destination clock domain. When this feature is enabled, the output (dest_out) must be consumed immediately when the data valid (dest_req) is asserted.

Don't forget to close a thread when possible by accepting a post as a solution.