Skip to content

Negative slack with the lib/clock/xd #176

Discussion options

You must be logged in to vote

Your design is fine. The problem is that Vivado doesn't know you're crossing clock domains safely with the xd module. Vivado performs timing analysis on the inter-clock path between the 25.2 and 125 MHz clocks and can't make it work.

You need to add an entry in your constraints (XDC) file to tell Vivado these clocks are asynchronous.

For example, this is what I use in my framebuffer example from https://projectf.io/posts/framebuffers/

## Pixel Clock is async to System Clock
set_clock_groups -name SysPixel -asynchronous \
    -group [get_clocks -of_objects [get_pins clock_sys_inst/MMCME2_BASE_inst/CLKOUT0]] \
    -group [get_clocks -of_objects [get_pins clock_pix_inst/MMCME2_BASE_inst/CLKO…

Replies: 1 comment 1 reply

Comment options

You must be logged in to vote
1 reply
@InternalCakeEngine
Comment options

Answer selected by InternalCakeEngine
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants