Altera_Forum
Honored Contributor
13 years agoTimequest: toggle synchronizer constraints?
Hi Ryan (Rysc) and anyone else with suggestions,
I have a TimeQuest question I was hoping you might be able to answer. I have a toggle synchronizer that is used internal to a design. The toggle synchronizer uses the input to the synchronizer (a pulsed signal) to toggle a register. The toggle output is then synchronized to the output clock, and an edge-detector generates a pulse in the new clock domain. See sync_pulse_vhd.txt, sync_pulse.pdf, and the RTL netlist view sync_pulse.jpg. TimeQuest correctly identifies the input signal as a clock, and generates the warning: "no clock feeds this register's clock port". I have figured out how to get a collection containing the toggle register from within the project hierarchy (see timequest.jpg), i.e., the path to each toggle register t. However, now I'm stuck. 1) How do I identify the signal feeding the clock pin of this register so that I can apply a constraint to it. 2) What constraint should I use? Should I create a clock signal for each signal that feeds a synchronizer input, and then put it in an exclusive/asynchronous clock group, or should I just set a false path? 3) What is your advice on how to add this .SDC constraint to a project, eg., use an .SDC constraint embedded in the VHDL, or use a sync_pulse.sdc file that performs a loop over a collection, where the collection is based on the synchronizers used in any specific design? Looking forward to your advice. Cheers, Dave