时序结果分析介绍-Design Compiler(六)


系列学习介绍DC相关知识,包括ASIC基本单元相关,DC指令工艺库脚本相关,后端综合实现相关等总结。本节包括DC综合生成的文件以及如何去分析Timing,内容有一些个人理解和各个论坛总结学习,有不同认识欢迎探讨,fighting。

6.1 Timing analysis
6.1.1 report_timing用法

1.-clock_from -clock_to -max

 report_timing -clock_from CLK1 -clock_to CLK2 -max 100 #-max_paths  报出指定数量的相同end point的path timing情况,比如说:-max_paths 10就是报出10条最差的相同end point上的path timing情况。

2.-edge_from{lead|trail} -edge_to{lead|trail}

-rise | -fall 指定endpoint上的edge是rise还是fall,只报出符合这种情况的path

-early | -late 报出用于hold分析的early path, 以及setup分析的late path

-edge_from {lead | trail} 指定source clock的edge, leading还是trailing,只报出该edge下的path,用在-clock_from上

-edge_to {lead | trail} 指定target clock的edge,leading还是trailing,只报出该edge下的path,用在-clock_to上

-early | -late 报出用于hold分析的early path, 以及setup分析的late path

img
path1的data delay较大,主要分析setup是否满足;path2的data_delay较小,用于hold分析

report_timing -early -clock_from CLK2 -clock_to CLK2 -edge_to lead -edge_from trail -max_path 100  

-max_paths 报出指定数量的相同end point的path timing情况,比如说:-max_paths 10就是报出10条最差的相同end point上的path timing情况。

-nworst 报出指定数量的不同end point的path timing情况,比如说:-nworst 10就是报出10条最差的不同end point上的path timing情况。

6.1.2 multiple clock处理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gUGOtk7Q-1612455244621)(F:\typora\DC compile\62.png)]

对于两个CLK交互的路径一般都过特殊步骤保障,不通过DC分析,有两种方式设置false_path,效果一致。

方式一:
set_false_path -from [get_clocks CLK1] -to [get_clocks CLK2]
set_false_path -from [get_clocks CLK2] -to [get_clocks CLK1]
方式二:
set_clock_group -logically_exclusive -group CLK1 -group CLK2
6.1.3 语法命令

防止Netlist出现assign语句,添加buffer

set_fix_multiple_ports_nets -all -buffer_constants

转换三态门成wire类型,避免出现assign语句

set_app_var verilogout_no_tri true

输出文件

write_sdc my_design.sdc
write -f ddc -h -output my_ddc.ddc #包含最完整的信息
write -f verilog -h -output my_design.gv #输出netlist
名词解释

leading edge: 主导的边沿,在每个周期中,第一个出现的边沿就是leading edge

trailing edge: 拖尾的边沿,在每个周期中,最后一个出现的边沿就是trailing edge,有以下规律:

如果生成的clock是***positive clock***,clock的rising edge就是leading edge,falling edge就是trailing edge

如果生成的clock是***negative clock***,clock的rising edge就是trailing edge,falling edge就是leading edge。

Endpoint:   out        (^) checked with leading edge of 'CLK2'
Beginpoint: sub1/FF1/Q (^) triggered by trailing edge of 'CLK2'
参考文档

【1】数字IC设计之综合工具Synopsys DC(3)

【2】Innovus/Encounter时序报告解读

【3】每天学命令<report_timing>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Paul安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值