时序结果分析介绍-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>

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
designcompiler 是一种用于硬件设计的高级综合工具,它能将硬件设计代码翻译成可综合的RTL(Register Transfer Level)描述。designcompiler 的中文讲义是一本以中文为语言编写的教材,旨在帮助学习者理解和掌握 designcompiler 的使用方法和技巧。 这本中文讲义首先介绍designcompiler 的基本原理和工作流程,包括如何将高级硬件设计代码转化为逻辑网表,然后优化这个网表,并进行逻辑合成。讲义通过简单易懂的语言和图表展示了设计过程中的各个环节,使读者能够全面理解 designcompiler 的工作原理。 接下来,这本讲义介绍designcompiler 的具体功能和使用方法。它详细说明了如何编写设计代码,并且指导读者如何设置和控制 designcompiler 的参数。讲义还包括实际的案例分析,通过这些案例,读者可以学习到如何使用 designcompiler 对设计进行综合和优化,以及如何进行时序约束和时序分析。 此外,这本中文讲义还提供了一些常见问题的解答和示例代码,读者可以通过这些案例来实践和巩固所学知识。讲义还提供了一些设计技巧和实用建议,帮助读者更好地运用 designcompiler 进行设计。 综上所述,designcompiler 的中文讲义是一本全面、易懂、实用的教材,它为学习者提供了学习和掌握 designcompiler 的基础知识和实践技能的指导。通过学习这本讲义,读者可以更好地理解硬件设计的过程,提高设计代码的质量和效率,从而更好地完成硬件设计任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Paul安

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

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

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

打赏作者

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

抵扣说明:

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

余额充值