MichaelB
Occasional Contributor
5 years agoGeneric single/multibit synchroniser
Hi,
I've a question about the Quartus attribute for synchronisation:
attribute altera_attribute of sync_s : signal is "-name SYNCHRONIZER_IDENTIFICATION FORCED_IF_ASYNCHRONOUS";
Does the attribute force Quartus to place both register close?
Because after synthesis and fitter I checked chip viewer and both registers are placed close together (registerA from clockA to registerB from clockB):
Timing fails here because net delay is very high.
After that I set both clocks in clock_group as asynchronous (ClockA is from DDR4 user clock @ 300MHz and clockB is from IO PLL @ 250 MHz) and between both register won't be recognised anymore.
Would this be valid for single bit or multi bit synchroniser? (status signals like pll_locked, reset_done, etc.)
I checked the CDC FIFO of Intel IP where net_delay, clock_skew, etc. will be defined.
Is this required in my own implementation, too?
Do you recommend to use CDC FIFO for single bit transfer or just for multi bit?
Best regards,
Michael
Hi,
You may take a look into this https://www.youtube.com/watch?v=VbL_eflvHM4
It provide details on how you should handle the CDC path, let us know if there are more question base on the video.
Best regards,
Kenny Tan