Altera_Forum
Honored Contributor
7 years agoTiming violation, from clock to data
Hello!
I'm having a bit of trouble understanding this so here I come again hoping you guys can help me. I have a design which takes an input clock, goes through a PLL then through a logic mux and finally out a DDR pin, something like this: clk --> PLL --> CLKCTRL --> logicMUX --> CLKCTRL --> DDR pin First of all, I am aware of the problems with logic MUXes, but I don't have enough PLLs remaining to use and I can't use the CLKCTRL internal clock mux because all the clock sources are internal. I don't think it should be a problem though because I'm not using them as synchronous clocks in any way: there's no data exchange between this one and any of the others except for one spot which uses a dual clock FIFO. I think I've constraint the device correctly, create_clock on input, manually generated_clocks for PLL and then another generated clock after clock mux. Now on to what is confusing me. I keep getting some timing violations when running TimeQuest, but I'm not sure what to make of them. The source node is the PLL's PLL_OUTPUT_COUNTER|divclk (so basically the clock output from the PLL) and the target node is the DDR output pin, the launch clock is also the PLL while the latch clock is the mux'd one. Why would I get a timing path where the source node and latch clock are both the same? Am I supposed to cut paths between the pll output clock and the mux'd one? Thank you for your help. If there's not enough information please let me know and I'll update it with anything that you think is missing.