If a CDC bus uses gray-coding (for example, FIFO) you must use the set_max_delay constraint. If you need to limit latency
between two asynchronous clocks on signals, use the set_max_delayconstraint with the -datapath_onlyoption.
This constraint ignores clock skew and jitter on these paths. The set_max_delay constraint overrides the default path
requirement with the latency requirement. Use the source clock period for the max delay
value. This ensures no more than one data is present on the CDC path at any given
time.
When the ratio between clock periods is High, it is beneficial to choose the minimum of the source and destination clock periods. This option helps reduce the transfer latency. A clean asynchronous CDC path must not have any logic between the source and destination sequential cells. The Max Delay Datapath Only constraint is normally easy to meet for the implementation tools.
Some asynchronous CDC paths require a skew control between the bits of the bus
instead of a constraint on the bus latency. Using a bus skew constraint prevents the
receiving clock domain from latching multiple states of the bus on the same clock edge.
You can set the bus skew constraint on the bus with set_bus_skew command. For example, you can apply set_bus_skew to a CDC bus that uses gray-coding instead of using the Max
Delay Datapath Only constraint. For more information, refer to this link in the
Vivado Design Suite User Guide: Using
Constraints (UG903).
For the paths that do not need latency control, you can define a point-to-point false path constraint.