pt里面用report_constraint和report_timing报出的transition值不一样
用Primetime 做 postlayout sta时,report_constraint和report_timing报出的transition值相差很多,report_constraint的值更悲观一些。难道这两个命令报出来的不应该是一样的吗?请教一下可能是什么原因造成的?有没有可能是我用的这版pt的bug? 我的pt版本是J-2014.06-SP3。谢谢。
下面是一个例子,用report_constraint报的时候,其中一个pin (inst_regmap/mcsm2_reg_1_/CK)的transition是0.328ns.
pt_shell> report_constraint -all_violators -nosplit -max_transition
max_transition
RequiredActual
PinTransitionTransitionSlack
-----------------------------------------------------------------
.................
inst_regmap/mcsm2_reg_1_/CK0.2500.328-0.078(VIOLATED)
.................
###############################################################
###############################################################
改用report_timing, 同一点(inst_regmap/mcsm2_reg_1_/CK)报出来的trans值是0.223ns:
pt_shell> report_timing -from inst_regmap/mcsm2_reg_1_/CK -path full_clock_expand -trans -net -cap
PointFanoutCapTransIncrPath
-----------------------------------------------------------------------------
clock clk_master (rise edge)0.0000.000
clock source latency0.0000.000
clk_sys (in)0.0000.000 &0.000 r
clk_sys (net)20.104
...................................................................
inst_regmap/CLKNV16_G2B1I11/ZN (CLKNV16)0.2230.142 &1.596 r
inst_regmap/xosc_sys_G2B14I11 (net)
360.352
inst_regmap/mcsm2_reg_1_/CK (EDSNQV1)0.2230.002 &1.597 r
inst_regmap/mcsm2_reg_1_/Q (EDSNQV1)0.2481.152 &2.750 f
inst_regmap/mcsm2[1] (net)10.024
U268/Z (BUFV3)0.4410.525 &3.275 f
mcsm2_buf[1] (net)10.204
mcsm2_buf[1] (out)0.4410.000 &3.275 f
data arrival time3.275
用这个 get_attribute $pin_name actual_fall_transiton_max
谢谢!试了一下,出来warning说没有这个attribute, 请问还有其它办法可以确定transition吗?
pt_shell> get_attribute [get_pins inst_regmap/mcsm2_reg_1_/CK] actual_fall_transiton_max
Warning: Attribute 'actual_fall_transiton_max' has not been defined for pin (ATTR-1)
应该是一样的。我遇到不一样的情况是,我在ICC中fix transition,然后用report_timing报出来跟report_constraint不一样,是因为工具还没有准确计算好fix之后的情况。需要update一下,然后就一样了。
我这是大概写了下,list_attribute -class pin application 你看下
谢谢回复! 我印象中以前在pt里面报的也是一样的。有一段时间没有用pt,现在遇到这种情况,还是在没有修max_trans之前报的就不一样。看了前面另外一个回复,觉得有可能是falling edge 和 rising edge 的transition time 不一样造成的,让我做点实验再上来汇报
谢谢!用你说的方法试了一下,果然是falling edge的transition比较大,看来是rising edge 和falling edge 的transition不一样造成的,问题解决了。
pt_shell> get_attribute [get_pins inst_regmap/mcsm2_reg_1_/CK] actual_fall_transition_max
0.327855
pt_shell> get_attribute [get_pins inst_regmap/mcsm2_reg_1_/CK] actual_rise_transition_max
0.222971
Hi, How to learn prime time tool?