Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
10 years ago

Clock propagation delay between arrival and required path

Hello,

I would like to understand why the clock propagation delay is different between data arrival and data required path with TimeQuest.

For example, with a simple synchronous path I was expecting that the clock propagation delay will be the same from clock pin to clock buffer. Then delay is obviously different from clock buffer to FF.

But, what I am seeing in TimeQuest report is that (bold lines) delay from pin to clock buffer is different. How can I explain this difference?

Data Arrival Path:

0.000 0.000 1 pin_j19 i_ref_clk_t

0.000 0.000 rr ic 1 ioibuf_x147_y107_n45 i_ref_clk_t~input|i

0.583 0.583 rr cell 3 ioibuf_x147_y107_n45 i_ref_clk_t~input|o

1.356 0.773 rr ic 1 pllrefclkselect_x92_y102_n0 inst_clock_block|inst_sys_clock_pll|sys_clock_pll_inst|altera_pll_i|general[0].gpll~pll_refclk_select|clkin[3]

1.562 0.206 rr cell 1 pllrefclkselect_x92_y102_n0 inst_clock_block|inst_sys_clock_pll|sys_clock_pll_inst|altera_pll_i|general[0].gpll~pll_refclk_select|clkout

1.562 0.000 rr ic 12 fractionalpll_x92_y96_n0 inst_clock_block|inst_sys_clock_pll|sys_clock_pll_inst|altera_pll_i|general[0].gpll~fractional_pll|refclkin

1.462 -0.100 rr comp 4 fractionalpll_x92_y96_n0 inst_clock_block|inst_sys_clock_pll|sys_clock_pll_inst|altera_pll_i|general[0].gpll~fractional_pll|vcoph[0]

1.462 0.000 rr ic 1 plloutputcounter_x92_y91_n1 inst_clock_block|inst_sys_clock_pll|sys_clock_pll_inst|altera_pll_i|general[1].gpll~pll_output_counter|vco0ph[0]

2.494 1.032 rr cell 1 plloutputcounter_x92_y91_n1 inst_clock_block|inst_sys_clock_pll|sys_clock_pll_inst|altera_pll_i|general[1].gpll~pll_output_counter|divclk

2.604 0.110 rr ic 1 clkctrl_g13 inst_clock_block|inst_sys_clock_pll|sys_clock_pll_inst|altera_pll_i|outclk_wire[1]~clkena0|inclk

2.743 0.139 RR CELL 12629 CLKCTRL_G13 inst_clock_block|inst_sys_clock_pll|sys_clock_pll_inst|altera_pll_i|outclk_wire[1]~CLKENA0|outclk

4.530 1.787 RR IC 46 M20K_X29_Y101_N0 High Speed inst_clipper_core|acd_core_inst|\BWP_ENABLE:u_bwp_top|\gen_inst_shaper:5:u_shaper_mef_10_3|shaper_bucket_level|\gen_sc:inst_altsyncram|auto_generated|ram_block1a0|clk0

6.236 1.706 RR CELL 25 M20K_X29_Y101_N0 High Speed clipper_core_top:inst_clipper_core|core_top:acd_core_inst|bwp_mef10_3_top:\BWP_ENABLE:u_bwp_top|shaper_mef_10_3:\gen_inst_shaper:5:u_shaper_mef_10_3|bram_xw_rx:shaper_bucket_level|altsyncram:\gen_sc:inst_altsyncram|altsyncram_h134:auto_generated|ram_block1a0~PORT_B_WRITE_ENABLE_REG

Data Required path:

5.000 5.000 latch edge time

9.867 4.867 clock path

5.000 0.000 source latency

5.000 0.000 1 pin_j19 i_ref_clk_t

5.000 0.000 rr ic 1 ioibuf_x147_y107_n45 i_ref_clk_t~input|i

5.583 0.583 rr cell 3 ioibuf_x147_y107_n45 i_ref_clk_t~input|o

6.174 0.591 rr ic 1 pllrefclkselect_x92_y102_n0 inst_clock_block|inst_sys_clock_pll|sys_clock_pll_inst|altera_pll_i|general[0].gpll~pll_refclk_select|clkin[3]

6.366 0.192 rr cell 1 pllrefclkselect_x92_y102_n0 inst_clock_block|inst_sys_clock_pll|sys_clock_pll_inst|altera_pll_i|general[0].gpll~pll_refclk_select|clkout

6.366 0.000 rr ic 12 fractionalpll_x92_y96_n0 inst_clock_block|inst_sys_clock_pll|sys_clock_pll_inst|altera_pll_i|general[0].gpll~fractional_pll|refclkin

6.243 -0.123 rr comp 4 fractionalpll_x92_y96_n0 inst_clock_block|inst_sys_clock_pll|sys_clock_pll_inst|altera_pll_i|general[0].gpll~fractional_pll|vcoph[0]

6.243 0.000 rr ic 1 plloutputcounter_x92_y91_n1 inst_clock_block|inst_sys_clock_pll|sys_clock_pll_inst|altera_pll_i|general[1].gpll~pll_output_counter|vco0ph[0]

7.245 1.002 rr cell 1 plloutputcounter_x92_y91_n1 inst_clock_block|inst_sys_clock_pll|sys_clock_pll_inst|altera_pll_i|general[1].gpll~pll_output_counter|divclk

7.327 0.082 rr ic 1 clkctrl_g13 inst_clock_block|inst_sys_clock_pll|sys_clock_pll_inst|altera_pll_i|outclk_wire[1]~clkena0|inclk

7.453 0.126 rr cell 12629 clkctrl_g13 inst_clock_block|inst_sys_clock_pll|sys_clock_pll_inst|altera_pll_i|outclk_wire[1]~clkena0|outclk

9.202 1.749 RR IC 1 FF_X23_Y103_N25 High Speed inst_clipper_core|acd_core_inst|\BWP_ENABLE:u_bwp_top|\gen_inst_shaper:5:u_shaper_mef_10_3|remaining_available_bucket_space_step0[17]|clk

9.533 0.331 RR CELL 1 FF_X23_Y103_N25 High Speed clipper_core_top:inst_clipper_core|core_top:acd_core_inst|bwp_mef10_3_top:\BWP_ENABLE:u_bwp_top|shaper_mef_10_3:\gen_inst_shaper:5:u_shaper_mef_10_3|remaining_available_bucket_space_step0[17]

Thanks,

3 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    The models have variation for best case and worst case process, voltage and temperature (PVT). To make TimeQuest run faster (by faster I mean wall clock time) at a specific PVT, TimeQuest looks at the specific case - for setup analysis, the launch clock comes as slow as possible and the latch clock comes as fast as possible and for hold time analysis, the launch clock comes as fast as possible and the latch clock comes as slow as possible. So even for the same path before it branches, you see different delays in the same path (I know this is strange). The amount of calculation and time required to resolve this to subtract the common path difference out. Some timing tools (like Primetime from Synopsys) subtract this out if you turn on the option, but the run time goes way up. The feature is called common clock pessimism and is rumored to be added to future versions of TimeQuest.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Common Clock Path Pessimism Removal (CCPPR) is not difficult to understand but it has intrigued me why it is there in the first place. Shouldn't the tool take care of it rather than pass it as an option to enable or not. It sounds like the tool is saying "CCPPR should be removed but I leave it to you).

    My guess is that it slows down the tool and so it could be just a commercial ploy as many designs will have enough margin anyway. If timing fails then enable it and wait longer.

    In ASICs there is yet another pessimism; common clock convergence (CCP I think), keep making life difficult !