微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > PT和ICC结果不一致

PT和ICC结果不一致

时间:10-02 整理:3721RD 点击:
最近在做PT, 发现PT的结果和ICC的不一致.在ICC下没有任何violation,但是在PT下却显示既有setup violations又有hold violations,且setup violations都是发生在output port上.

我把icc 和pt 的 timing report贴在下面。各位大虾能否帮忙查一下是什么原因导致这种情况发生吗?非常感谢!

ICC的报告:

Startpoint: tgen_inst/g_data_o_reg_2_
(falling edge-triggered flip-flop clocked by CLKIN)
Endpoint: dat[8] (output port clocked by CLKIN)
Scenario: SCN2
Path Group: CLKIN
Path Type: max

PointIncrPathVoltage
---------------------------------------------------------------------
clock CLKIN (fall edge)9.259.25
clock network delay (propagated)3.0212.27
tgen_inst/g_data_o_reg_2_/T (FEMS)0.0012.27 f3.00
tgen_inst/g_data_o_reg_2_/Q (FEMS)0.7413.01 f3.00
tgen_inst/g_data_o[2] (tgen)0.0013.01 f3.00
icc_clock197/Y (LU2S)0.29 &13.30 r3.00
icc_clock198/YC (K02S)0.09 &13.39 f3.00
icc_clock203/Y (V01S)0.60 &13.98 r3.00
icc_clock202/Y (V01Q)0.57 &14.55 f3.00
dat[8] (out)0.06 &14.61 f3.00
data arrival time14.61

clock CLKIN (rise edge)18.5018.50
clock network delay (ideal)2.0020.50
clock reconvergence pessimism0.0020.50
clock uncertainty-0.5020.00
output external delay-4.0016.00
data required time16.00
---------------------------------------------------------------------
data required time16.00
data arrival time-14.61
---------------------------------------------------------------------
slack (MET)1.39


PT的报告:

Startpoint: tgen_inst/g_data_o_reg_2_
(falling edge-triggered flip-flop clocked by CLKIN)
Endpoint: dat[8] (output port clocked by CLKIN)
Path Group: grp_outputs
Path Type: max

PointIncrPath
----------------------------------------------------------------------
clock CLKIN (fall edge)9.259.25
clock network delay (propagated)4.2313.48
tgen_inst/g_data_o_reg_2_/T (FEMS)0.0013.48 f
tgen_inst/g_data_o_reg_2_/Q (FEMS)0.73 &14.21 f
icc_clock197/Y (LU2S)0.29 &14.50 r
icc_clock198/YC (K02S)0.07 &14.57 f
icc_clock203/Y (V01S)0.54 &15.12 r
icc_clock202/Y (V01Q)0.18 &15.29 f
dat[8] (out)0.01 &15.31 f
data arrival time15.31

clock CLKIN (rise edge)18.5018.50
clock network delay (propagated)0.0018.50
clock reconvergence pessimism0.0018.50
clock uncertainty-0.5018.00
output external delay-4.0014.00
data required time14.00
----------------------------------------------------------------------
data required time14.00
data arrival time-15.31
----------------------------------------------------------------------
slack (VIOLATED)-1.31

你要是去掉这个的话,ICC一样有violation
clock network delay (ideal)2.00

请教一下陈小编,ICC的clock network delay(ideal) 是怎么加进去的?是ICC默认的吗?为什么PT没有呢?

ICC中cts完要 set_propagated_clocks [all_clocks]
另外,你有set_clock_latency的设定吧?让工具自己计算latency

估计你的sdc里有把时钟设置为ideal

查了一下sdc,里面没有set_ideal_clock.
ICC的脚本里在place_opt这一步有set_ideal_clock,但是在clock_opt_cts之后,clock_opt_psyn之前已经去掉了这一选项。
ICC报timing的时候reg to reg的path,clock_network_delay 是propagated属性,只是output port显示的是ideal.

clock CLKIN 在sdc里是ideal的可能

你的ICC脚本中可能有 update_clock_latency 命令?

如果有update_clock_latency的话,去掉这个命令,
然后,设置 set_clock_latency 0 CLKIN,试试。

脚本里面的clock_opt里面倒是有updata_clock_latency这个选项,但是这个选项没有开。

是不是该打开这个选项呢?这样ICC就不会用默认值,而是用算出来的insertion delay.

即使打开这个选项,ICC计算的insertion_delay 也不准。另外,我还不知道PT有没有一个类似功能的命令。
因此,我觉得可以将CLKN的latency设置外0,然后,就一致啦。
如果PT里面与update_clock_latency类似功能的命令,那就好了。

应该是你CTS后有set_clock_latency命令或
CTS前有set_ideal_network *clock* 命令,

CTS之后没有set_clock_latency的命令。
CTS前,在place_opt的时候有set_ideal_network命令,可是在clock_opt_psyn之前已经remove掉了。

I check the value of clock network delay between PT and ICC(update_clock_latency on)
PTICC
input portpropagated : 0ideal : 2.3
reg to regpropagated: 4.06propagated: 4.65
output portpropagated: 0ideal: 1.91

是不是你design中有virtual_clock,

小编你的问题解决了木有?我也遇到了和你相似的问题。

从两个工具的比较来看:
reg_to_reg的timing相差不大,并且ICC的clock network delay是propagated,我认为ICC的clock tree设置应该没有太大问题。
差别在于IO的latency上,ICC如果打开update_clock_latency选项,就会自动算clock network delay,否则就是SDC的默认值。但是PT的clock network delay默认值是0(我不知道有没有办法改)。所以导致两者的差别大,PT的violation主要在output port上。
这是我个人的意见,不知道对不对。

sdc里面关于clock的命令有这几个:
Create_clock
Set_clock_latency 2
Set_clock_uncertainty -setup 0.5
Set_clock_uncertainty -hold 0.3
Set_clock_transition -rise3
Set_clock_transition -fall3
Set_clock_gating_check

我个人觉得是正确的。
LZ贴出来的是block level的 reg2out path timing report,由于“out”上根本没有clock sink,因此tool只好预测出一个insertion delay,用“ideal”标注估计是让designer更好的理解一下。
我觉得,不要过于纠缠block level的reg2out path,要放到top level去看timing在top level,这些reg2out的path基本上就不存在了,都变成reg2reg path了
见仁见智



把create_clock 、 set_clock_latency 的命令全部贴出来看看

在外面创建了virtual clock以后,output port上的clock network delay都是0了。
ICC和PT算出来的值除了clock network delay差别有一点大以外,其他的都很接近了。
请教各位,大家的PT,ICC里面的clock network delay差值有多大?

学习中,没的信元了

学习中,没的信元了

thanks

上一篇:ICC中时钟树的问题
下一篇:pt 时序分析

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top