DCNXT TOPO flow (2)基础知识

24 篇文章 94 订阅

timing的analyze

DC的静态时序分析:

将设计分成独立的timing path 进行分析:

为了获得单周期最大延迟(single-cycle max_delay timing)每条路径最少会分析两次;

生成的默认的时序报告包括:

  1. 每一个path group 中最差的违例路径

  2. 最大的延迟或者setup timing

  3. 如果你想查看hold timing 使用:report_timing -delay min

  4. 报告关于DRCs 的违例情况,使用 report_constraints -all -max_transformation -max_cap

  5. 报告关于面积的信息,使用:report_area -physical

这条路径的最长delay是多少?

在这个单元的timing arc(timing arc 是d触发器D数据端到Q端的时间)有一个边缘敏感(称作不确定性),DC会一直追踪每一条路径的不确定性,至少,每一条路径时序分析会执行两次,一次是上升沿,一次是下降沿,如果路径中包含 non_unate gate (并非边沿触发的门)比如: 或门,或非门 或者MUX的选择输出arc,这种路径会至少分析4次,no_unate gate的其他输入,这些输入并不是要被分析的时序路径的一部分,在分析rise delay和fall delay时 这些输入会保持逻辑0;当这些输入变为逻辑 1时 又会重新分析一次;

timing report

 

多同步时钟的设计(multi synchronous clock design)

多时钟的input delay

SPG flow

DC NXT支持一个物理综合特征的package

支持:1. 物理综合导向流程 也就是SPGflow

  1. 布局的可视化 layout visualization 和拥塞分析 congestion analyze

  2. 版图的查看与修改

能够提高 timing congestion 和后布局时序分析的正确性;

这些特征都需要 DC-extension 许可证的支持

 

SPG flow 在DC和ICCII中都是建议使用的;

在compile_ultra 后加 option -spg

使用-spg option会开启的优化选项有:

  1. 自动的寄存器复制  automatic register duplication;

  2. net layer的optimization

  3. 网表topo结构的优化

  4. 与ICC II能够更好的互通

什么是congestion(拥塞)

它来衡量一个设计的可布线性 ,分析实际布线的优先级;

在一个很小的面积内,可布线的数量是有限制的;当你接近或者超过这个限制时,这部分面积被叫做拥塞的;

绕行此地的congestion

如果congestion存在,并不是很严重,实际的布线能够绕开拥塞的部分;

绕开的线网,可能会有轻微的RCdelay的增加;               

一般不会产生新的 timing-critical path

对于严峻的congestion

严重的congestion会导致时序的违例,或者导致一个设计不能被布线;

网表的topo 拥塞优化

将布线友好的网表 topo化或改变结构

1.更高程度的最小化相连的结构

2. 最小化 wire & wire crossing

3.根据需要共享或者取消共享逻辑;

physical guidance

物理导向允许:

  1. 粗布局写入到ICCII的DEFwenjianzhong

  2. ICC的使用 DCNXT TOPO生成的布局作为起点

spg 全称为 Synopsys physical guidance, 物理导向的流程;

DC NXT的topo模式下支持一个包,是一个包含物理综合特征的包;

它能够提升timing  congestion,后布局的时序的修正;

这些都使用DC-extension 的许可证文件;

SPG flow 在DCNXT和ICC 2中都是建议使用的;

它会打开的option有

  1. 自动的registers的duplication ;寄存器的复制

  2. 线网布局的优化

  3. 网表的topo优化

  4. 物理导向 使得和后端布局布线工具的联系更加紧密;

自动的寄存器替换(register replication)

关键路径叫 critical path 而不是key_path (好丢人,已经用key_path 问过老师了)

register replication用来提高关键路基的时序

会在使用 compile_ultra时自动打开;

用户可以控制 寄存器复制的个数;限制每个寄存器的扇出;

register replicatio在 compile_ultra下是默认开启的,这是因为 compile_ultra下 application variable  compile_register_replication为true 用户可以在 non_spg flow下修改此变量的值,来开启此项优化;

register replication是 跨hierarchy的

自动的寄存器复制是timing_driven的,时序驱动的,默认,在上面的例子中,寄存器的划分的数量是不平均的,这是因为寄存器换分的数量和每个寄存器的扇出是被critical path所支配的,也就是说 timing-critical end-point多的比timing-critical end-point少的扇出要更小一些;

跨金属层的电阻变化resistance variation

金属层的电阻在较小的尺寸中会有很大的变化

默认,DC NXT使用所有金属层平均的电阻来估计线网的延迟

solution: 布线层的优化(NLO net layer optimization)

  1. 自动net layer optimization

    1. 长的 timing-critical的nets 会自动使用最高两层的金属

    2. 将金属更多的分配到多层上 zroute global routing 基于每条线的金属层的长度和层的范围会有一个提升布线的设置 set_app_var ayer_promotion true

  2. 基于模型的NLO

  3. 手工NLO

 

 

 

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

旺旺脆兵兵

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

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

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

打赏作者

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

抵扣说明:

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

余额充值