Altera_Forum
Honored Contributor
13 years agoTimequest - SSO generated output clocks
Hi all,
I'm having some confusion around a source synchronous output that I'm trying to constrain. I have a data_out bus which is clocked out by a clock generated by a PLL in my FPGA. I pass this clock out along with the data via a DDIO component which essentially inverts it to try and place it near the centre of the data valid window. (FYI The DDIO component is just two registers set to 1 and 0 that are muxed by the PLL clock to produce a 0 when the clock is a 1 and a 1 when the clock is a 0.) When constraining this, I wanted to create a generated clock at my output port from which to specify my delays. Initially I specified the source of this clock as the output pin of the DDIO component and the target as my clk_out port but this doesn't seem to result in the clock being created (no errors or warnings produced but the clock does not appear in my clocks report). create_generated_clock -name nclk -source ddio_outa|dataout get_ports clk_out Alternatively, I have specified the source as the mux input of my DDIO block (the PLL clock) and the target as the clk_out port. This does create the clock, but Timequest does not seem to realise that the clock is inverted by the DDIO block so it looks like a perfect copy of the PLL clock. create_generated_clock -name nclk -source ddio_outa|muxsel get_ports clk_out Obviously, I can just force the clock to be an inversion of the PLL clock with the inclusion of -invert but surely this will create a perfect invertsion of PLL clock which does not take into account the tco of the registers in the DDIO component (i.e. there will be a slight phase shift between my PLL clock and my inverted PLL clock). I would really like the timing analyser to be able to work out the delays between the signals rather than me having to tell it! I have noticed similar examples of using registers as clock dividers but in these examples the generated clock is manually specified as -divide_by 2 which again must neglect to take into account the delays through the register. Can anyone suggest the correct way to specify this clock? Many thanks