Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16666 Discussions

Virtual clock or Real Clock?

Altera_Forum
Honored Contributor II
2,565 Views

Hi. 

 

I am confused on the using virtual clock or real clock for the set_output_delay? Different articles have different opinion. 

 

Article like: 

Best Practices for the Quartus II TimeQuest Timing Analyzer.pdf (page 3) 

AN477.pdf (pg 10) 

etc 

 

Could someone to clear my doubt? 

 

Thanks
0 Kudos
5 Replies
Altera_Forum
Honored Contributor II
1,381 Views

Virtual clock is meant for input delay use. It represents the launch clock of external device registers inputting to the fpga. 

 

The actual input clock will be phase shifted from virtual clock due to board delay.
0 Kudos
Altera_Forum
Honored Contributor II
1,381 Views

How about the set output delay? should i use virtual clock or real clock?

0 Kudos
Altera_Forum
Honored Contributor II
1,381 Views

Use output real clock as ref for set_output_delay. This is the clock that goes out with data.

0 Kudos
Altera_Forum
Honored Contributor II
1,381 Views

I suggest to use the manual at the following link 

 

http://www.alterawiki.com/wiki/timequest_user_guide
0 Kudos
Altera_Forum
Honored Contributor II
1,381 Views

The -clock option for the set_output_delay SDC constraint is used to specify the external capture clock of an output(s) from the FPGA. There are typically 3 cases involved with specifying which clock to use. The first case (1) is when the capture clock is a clock generated (output) from the FPGA. This is a 'real' generated clock usually with a target of an output port, and is used for source synchronous interfaces. The next case (2) is when the capture clock is the same as a clock feeding the FPGA. This is a 'real' absolute clock (create_clock), and is used for system synchronous interfaces. The last case (3) is similar to the previous one, however the capture clock is a virtual clock. A virtual clock has no target in the FPGA, but must be related to the source clock. This can be achieved with the -waveform option on the create_clock statement for the virtual clock, or the skew between them can be specified using the set_clock_latency constraints. This is the recommended method. The other advantage of using the virtual clock is that the jitter on this clock can be specified independently from the input jitter of the source clock using the set_clock_uncertainty command. This could be useful if the source clock feeds a PLL, which may filter out much of the input clock jitter.

0 Kudos
Reply