在使用DC综合的时候遇到了三个问题,帮忙看看
PIN input delays: None specified
PIN output delays: None specified
Design Parameter: None specified。
可是我明明在脚本里面定义了input delay和output delay from rising clk啊,还有一个什么Parameter没有定义什么意思?
2、我在查看report_constraint -all -violator中发现如下violation:
Endpoint Requited Actual
Path Delay Path Delay slack
“cell1” 2.94 1.18f -1.76(VIOLATE)
“cell2” 2.54 1.06f -1.48(VIOLATE)
。 。 。 。
明明实际需要的时间比约束的时间小啊,怎么还VIOLATE呢?
还有,怎么只有Endpoint,没有Startpoint那我怎么直到是哪一跳路径呢?
3、我在top上面加了pad以后是不是就不需要set_load和set_drive了?因为最后综合的时候肯定要dont_touch pad的,所以pad一旦选定,对于core来说,load和drive就定下来了,是不是这样理解?
请前辈指教。
没有定义成功
系统单位标明,软件不认!
问题没有说清楚,看不明白
1、没有定义成功。
但是我在report_timing的时候可以看到input delay和output delay都被计算进去了。怎么会没有定义成功?
2、RT 〉AT 说明时序满足约束。
可以看到这里明明是RT 〉 AT ,为什么报告VIOLATION呢?
3、小编认为我哪里没有说清楚,能麻烦你多说几个字么?
学习中,谢谢!
第一个问题我觉得与第三个问题有关;
第二个问题,这个应该检查的是hold time吧,所以actual time需要比required time大才行,小编再温习一下setup time和hold time check的定义吧。不过在初始DC综合阶段,出现hold time的violation几乎是必然的,不必理会它。在后面做物理综合到STA那一步的时候,有了实际的布线信息,再去修正可能存在的hold time violation的问题。在DC综合阶段只要保证没有setup time violation就可以了。
第三个问题,还是需要set_drive(或者set_drviving_cell)和set_load的。固然要对PAD设置set_dont_touch,但这里加入驱动和负载约束的目的是为了给计算input_delay和output_delay提供必要的信息,所以还是要加上的。驱动一般加一个驱动能力比较大的PAD,输出鉴于是用PAD连接到外围,负载电容设为四十左右都是可以的。
想要看到具体的路径的详细信息,要用report_timing命令,这个命令的具体使用方法和参数在dc里面man一下就知道了