数字逻辑综合工具实践-DC-08——静态时序分析(STA)

数字逻辑综合工具-DC-08
时序分析

综合结束之后,如何确定这个网表能不能用。

【Timing Reports】
report_timing
数字逻辑综合工具实践-DC-08——静态时序分析(STA)
数字逻辑综合工具实践-DC-08——静态时序分析(STA)
数字逻辑综合工具实践-DC-08——静态时序分析(STA)

Incremental 信息包含了Net 和 Cell一起的delay
(这两个延迟也可以分别报告)
数字逻辑综合工具实践-DC-08——静态时序分析(STA)
数字逻辑综合工具实践-DC-08——静态时序分析(STA)

【report_timing的一些选项】
数字逻辑综合工具实践-DC-08——静态时序分析(STA)
-input_pins选项 将线延时和单元延时的信息分别汇报出来
-nets选项 用来报告连线上所挂载的负载个数
-significant_digits number 显示小数点个数(最多13)
数字逻辑综合工具实践-DC-08——静态时序分析(STA)
数字逻辑综合工具实践-DC-08——静态时序分析(STA)

report_timing -max_paths 2(看两条路径)(上图的情况,会报-0.3和-0.15)
只能看到两个终点不同的路径。看到的并不是最差的路径,有可能最差的两条路径的终点是相同的。
report_timing -nworst 2 -max_paths 2(-0.3,-0.25)

【report_constraint -all_violations】
数字逻辑综合工具实践-DC-08——静态时序分析(STA)
面积违规和hold time违规不是很重要,可以修掉或者不在乎
更关注的是delay上的违规

这里的violation并不一定是真正的violation。比如,在设置input delay的时候约束加的太紧了,

例子:左边的外部延迟太紧了
数字逻辑综合工具实践-DC-08——静态时序分析(STA)
有可能由于左边的时序不满足要求,导致了右边的电路不能够得到优化。
可以采取一些措施:group分组,设置一个critical_range、-weight提高权重
数字逻辑综合工具实践-DC-08——静态时序分析(STA)

【【一点点STA】】
DC的内建的静态时序分析工具
数字逻辑综合工具实践-DC-08——静态时序分析(STA)
1、 把所有的电路结构分成timing paths
2、 全部算一遍
3、 判断跟期望的是不是符合

数字逻辑综合工具实践-DC-08——静态时序分析(STA)
路径分组:终点的D输入端属于哪个clock 就是哪个组
数字逻辑综合工具实践-DC-08——静态时序分析(STA)
单元延迟:输入信号的转换时间和输出的负载
线延迟:线负载模型,还根据拓扑结构算

数字逻辑综合工具实践-DC-08——静态时序分析(STA)
上升沿和下降沿的时间是不一样的。DC会把两个都算一遍。

数字逻辑综合工具实践-DC-08——静态时序分析(STA)

【演示】
report_timing
数字逻辑综合工具实践-DC-08——静态时序分析(STA)
这里的r表示上升延迟,f表示下降延迟

report_timing -input_pins
数字逻辑综合工具实践-DC-08——静态时序分析(STA)

report_timing -max_paths 2
数字逻辑综合工具实践-DC-08——静态时序分析(STA)

report_timing -max_paths 2 -nworst 2
数字逻辑综合工具实践-DC-08——静态时序分析(STA)
(这时报出来了两条终点不一样的路径)

report_timing -significant_digits 4
数字逻辑综合工具实践-DC-08——静态时序分析(STA)

如果发现某些路径有violation,但是并不是很大,在约束里面分组
数字逻辑综合工具实践-DC-08——静态时序分析(STA)

(用remove_design 清除,然后可以修改约束再source -v -e …)

report_timing -loops
检查有没有写出组合逻辑环,这将会生成latch

数字逻辑综合工具实践-DC-08——静态时序分析(STA)