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

Timequest and clock network delays

Altera_Forum
Honored Contributor II
1,112 Views

I'm somewhat new to timequest and timing closure on FPGAs, and I'm finding some things with the use of timequest to be ... strange, in my opinion. This is somewhat related to http://alteraforum.com/forum/showthread.php?t=1745, but I have a different question. 

 

In my timing reports, timequest kindly points out the clock network delay. My initial understanding of this is that this is the delay to the start point of the path. I expected to see a destination clock network delay as well, however, there is nothing there. The result is that, say I have a clock with period 8ns, clock network delay 4ns, the time allowed for data path propagation is only 4ns in the reports. I would expect it to be 8ns still (assuming the clock delay to start/endpoints are relatively the same). The path is not spread out over much of the chip; it is in a very small area, and I would find it difficult to believe there is a 4ns skew between the start and endpoints (see attached screenshot) 

 

Here's a path illustrating what I'm seeing. Despite the 8ns period, the data path only has 3.9ns according to timequest. (As a side note, there was a set_max_delay constraint I put on this path which appears to have been 2.9, even though I specified 7.9. The same issue with the clock network delays was present before adding the constraint and recompiling). 

 

 

Anyone able to help clear this up? 

 

Thanks, 

baver 

 

 

Info: =================================================================== 

Info: From Node : ksys:ksys_unit|pex:the_pex|pex_core:wrapper|altpcie_64b_x4_pipen1b:altpcie_64b_x4_pipen1b_inst|altpciexpav_app:avalon_tl.app|altpciexpav_tx:tx|altpciexpav_tx_cntrl:tx_cntrl|TxDesc_o[121] 

Info: To Node : ksys:ksys_unit|pex:the_pex|pex_core:wrapper|altpcie_64b_x4_pipen1b:altpcie_64b_x4_pipen1b_inst|pciexp4x125_pipe:core_inst|pciexp64_trans:trans|pciexp64_txtl:txtl|pciexp64_txvc:txvc0|txack_fc_OTERM1251 

Info: Launch Clock : ksys_unit|the_pex|serdes|alt2gxb_component|channel_quad[0].clk_div|coreclkout 

Info: Latch Clock : ksys_unit|the_pex|serdes|alt2gxb_component|channel_quad[0].clk_div|coreclkout 

Info: Max Delay Exception : 2.900 

Info:  

Info: Data Arrival Path: 

Info:  

Info: Total (ns) Incr (ns) Type Element 

Info: ========== ========= == ==== =================================== 

Info: 0.000 0.000 launch edge time 

Info: 4.177 4.177 R clock network delay 

Info: 4.271 0.094 uTco ksys:ksys_unit|pex:the_pex|pex_core:wrapper|altpcie_64b_x4_pipen1b:altpcie_64b_x4_pipen1b_inst|altpciexpav_app:avalon_tl.app|altpciexpav_tx:tx|altpciexpav_tx_cntrl:tx_cntrl|TxDesc_o[121] 

Info: 4.271 0.000 FF CELL ksys_unit|the_pex|wrapper|altpcie_64b_x4_pipen1b_inst|avalon_tl.app|tx|tx_cntrl|TxDesc_o[121]|regout 

Info: 4.551 0.280 FF IC ksys_unit|the_pex|wrapper|altpcie_64b_x4_pipen1b_inst|core_inst|trans|txtl|txvc0|txfc|rslt_in~47|dataa 

Info: 4.929 0.378 FR CELL ksys_unit|the_pex|wrapper|altpcie_64b_x4_pipen1b_inst|core_inst|trans|txtl|txvc0|txfc|rslt_in~47|combout 

Info: 5.462 0.533 RR IC ksys_unit|the_pex|wrapper|altpcie_64b_x4_pipen1b_inst|avalon_tl.app|cntrl_reg|i_avalon|Selector4~3642_RESYN1562|datad 

Info: 5.734 0.272 RR CELL ksys_unit|the_pex|wrapper|altpcie_64b_x4_pipen1b_inst|avalon_tl.app|cntrl_reg|i_avalon|Selector4~3642_RESYN1562|combout 

Info: 5.958 0.224 RR IC ksys_unit|the_pex|wrapper|altpcie_64b_x4_pipen1b_inst|avalon_tl.app|cntrl_reg|i_avalon|Selector4~3642|datae 

Info: 6.112 0.154 RR CELL ksys_unit|the_pex|wrapper|altpcie_64b_x4_pipen1b_inst|avalon_tl.app|cntrl_reg|i_avalon|Selector4~3642|combout 

Info: 6.661 0.549 RR IC ksys_unit|the_pex|wrapper|altpcie_64b_x4_pipen1b_inst|avalon_tl.app|cntrl_reg|i_avalon|Selector4~3644|datac 

Info: 6.889 0.228 RR CELL ksys_unit|the_pex|wrapper|altpcie_64b_x4_pipen1b_inst|avalon_tl.app|cntrl_reg|i_avalon|Selector4~3644|combout 

Info: 7.523 0.634 RR IC ksys_unit|the_pex|wrapper|altpcie_64b_x4_pipen1b_inst|core_inst|trans|txtl|txvc0|req_tx_val~46_Duplicate_49|datab 

Info: 7.880 0.357 RR CELL ksys_unit|the_pex|wrapper|altpcie_64b_x4_pipen1b_inst|core_inst|trans|txtl|txvc0|req_tx_val~46_Duplicate_49|combout 

Info: 7.880 0.000 RR IC ksys_unit|the_pex|wrapper|altpcie_64b_x4_pipen1b_inst|core_inst|trans|txtl|txvc0|txack_fc_NEW_REG1250|datain 

Info: 8.035 0.155 RR CELL ksys:ksys_unit|pex:the_pex|pex_core:wrapper|altpcie_64b_x4_pipen1b:altpcie_64b_x4_pipen1b_inst|pciexp4x125_pipe:core_inst|pciexp64_trans:trans|pciexp64_txtl:txtl|pciexp64_txvc:txvc0|txack_fc_OTERM1251 

Info:  

Info: Data Required Path: 

Info:  

Info: Total (ns) Incr (ns) Type Element 

Info: ========== ========= == ==== =================================== 

Info: 2.900 2.900 latch edge time 

Info: 7.135 4.235 R clock network delay 

Info: 7.045 -0.090 uTsu ksys:ksys_unit|pex:the_pex|pex_core:wrapper|altpcie_64b_x4_pipen1b:altpcie_64b_x4_pipen1b_inst|pciexp4x125_pipe:core_inst|pciexp64_trans:trans|pciexp64_txtl:txtl|pciexp64_txvc:txvc0|txack_fc_OTERM1251 

Info:  

Info: Data Arrival Time : 8.035 

Info: Data Required Time : 7.045 

Info: Slack : -0.990 (VIOLATED) 

Info: =================================================================== 

Info:
0 Kudos
2 Replies
Altera_Forum
Honored Contributor II
360 Views

It seems that 2.9ns set_max_delay is actually causing this (found where is was being set). And I found where the destination clock delay is reported (data required path section). 

 

I think I answered all my questions.
0 Kudos
Altera_Forum
Honored Contributor II
360 Views

To get more clock detail, modify your report_timing to "-detail full_path". This breaks out your clock into more line items. It's way too much informaiton when your clocks are right, but is very useful when identifying the clock paths and their delay sub-components. Also, a common misunderstanding is to think set_max_delay is a requirement on the delay between registers. In reality it just overrides your setup requirement(which is your clock period within a domain). This way it still takes into account clock skews, which is good.

0 Kudos
Reply