Altera_Forum
Honored Contributor
13 years agoConstrain delay of internal paths
Hi All,
Here is my clocking setup. I have the main clock coming into a pin and then into a 1-to-1 PLL. The PLL output is tapped off to local routing. From that routing it comes out in a tree, one branch to a global buffer, than three branches to LAB's which gate the clock, and there outputs run to global buffers. Data is passed between these clock domains, and on many synthesis runs I get failing paths which include as much as 3ns of difference in delay between one gated clock and another, both of which are on global buffers. Other times the fitter matches the paths much close, within a few 100ps. The added delay is in the routing between the first global buffer, to the clock gate, then from the clock gate to the next global buffer. Additionally I've been turning off optimize_hold_timing to get the tool to show my worst paths, so I can address them, rather than optimize them out and have less critical paths as the worst case failures. I'd like to fix the delay between these gated clocks as closely as possible, say within 100ps of each other, so when I disable optimize hold timing, it shows me all the other issues. Stated another way in psuedocode I have wire pllout; wire sysclk; wire gclk1; wire cntrl1; assign sysclk = pllout; assign gclk1 = cntrl1 & gclk1; How can I say to the fitter, match the delay between pllout and sysclk to the delay between pllout and gclk1. Or how can I set them both to have the same min and max? Thanks a lot, Steve