数字IC前后端设计中的时序收敛(五)--Max Transition违反的修复方法
本文转自:自己的微信公众号《数字集成电路设计及EDA教程》
里面主要讲解数字IC前端、后端、DFT、低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程。
考虑到微信公众平台上面发布的很多推文百度搜索不到,所以以后的推文也会在这里进行转载。

数字IC设计中max_cap和max_tran这类逻辑DRC或者说时序DRC是在设计中必须修复的问题,到最后版图完成,这些问题都是要clean的。他们的分析与优化贯穿前后端设计中。下面按照从前到后的流程逐一讲解每个阶段如果出现max_tran违反该如何解决。下面用到的命令,主要针对的是Synopsys公司的综合工具DC以及布局布线工具ICC。
如果设计中报告存在max transision的违反,首先看一下最大违反是多少,违反的路径多不多,然后去分析出现违反的原因。
这种问题出现的原因无非三种:
1、扇出太大;
2、连线太长;
3、驱动强度太弱;
对于第一种情况,如果出现违反的net很多,那么很有可能是由于高扇出网络很多导致的,可以在sdc时序约束文件中将max_fanout的值设置的小一些,加紧约束;
对于第二种情况,可以采用手工ECO或者用PT进行ECO。对于长连线net可以增大前级的驱动能力,但是最常用的应该是在net中间插入buffer了。
对于第三种情况,同样可以采用手工ECO或者用PT进行ECO。可以增大net前一级cell的驱动能力,即用size_cell命令修复。
如果设计中存在一些非常小的违反,也可以采用工具自带的一些命令去让软件自动进行优化,以此减少设计者的工作量。下面依次讲解数字IC设计前后端中一些修复max_transition的命令。
1、逻辑综合阶段:同样,和修复Max Cap一样可以用compile_ultra来修复:compile_ultra -only_design_rule,如果是dont_touch的net,可以忽略。
2、布局之后,CTS之前:
2.1 命令让软件自动修复psynopt -only_design_rule
2.2 如果是高扇出引起的,那么可以在布局之前将max_fanout的值设置的小一些;如果高扇出的问题只发生在某个集中的地方,那么可以手动调整它的扇出。
2.3 加紧约束,set_max_transition xxx [current_design],这个值可以比库里面的值稍微小10%(约束更紧一些),同时留一定的裕量。
3、CTS阶段
如果CTS之后发现在时钟网络的dont_touch net上存在max_transition的违反,那么可以将CTS阶段时钟树的fanout设置的小一些,例如:
>set_clock_tree_options -target_skew 0 -max_fanout 30
Max_cap问题如果出现在这些net上,也可以用这种方法修复。
还有一种是在CTS的时候让软件去修复逻辑DRC违反,不过这种方法会特别耗时,不建议使用:
>set_clock_tree_options-advanced_drc_fixing true
>setcts_enable_drc_fixing_on_data true
4、CTS之后(PosCTS):
>psynopt -only_design_rule
5、布线阶段
>route_opt -incremental -only_design_rule
6、chipfinish阶段
在这里,相比于上一步,只做了一下DFM的操作,如果这里存在max_transition的违反,那么应该也是极其少量的,可以简单的通过focal_opt即可修复,命令如下:
>focal_opt -drc_nets all -effort high
数字IC前后端设计中的时序收敛(五)--Max Transition违反的修复方法的更多相关文章
- 数字IC前后端设计中的时序收敛(四)--Max Capacitance违反的修复方法
本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...
- 数字IC前后端设计中的时序收敛(二)--Setup违反的修复方法
本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...
- 数字IC前后端设计中的时序收敛(一)前言
本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 为了纪念,同时 ...
- 数字IC前后端设计中的时序收敛(六)--Max Fanout违反
本文转自:自己的微信公众号<数字集成电路设计及EDA教程>(二维码见博文底部) 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教 ...
- 数字IC前后端设计中的时序收敛(三)--Hold违反的修复方法
本文转自:自己的微信公众号<数字集成电路设计及EDA教程>(二维码见博文底部) 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教 ...
- nodejs--JWT 在前后端分离中的应用与实践
nodejs--JWT 在前后端分离中的应用与实践 http://www.cnblogs.com/lidongyue/p/5269695.html
- 前后端分离中的无痛刷新token机制
今天我们来说一说前后端分离中的无痛刷新token机制 博主先来分享一波福利,最近挖到的宝藏,刚开始学Java的同学看 https://www.bilibili.com/video/BV1Rx41187 ...
- (数字IC)低功耗设计入门(二)——功耗的分析
前面学习了进行低功耗的目的个功耗的构成,今天就来分享一下功耗的分析.由于是面向数字IC前端设计的学习,所以这里的功耗分析是基于DC中的power compiler工具:更精确的功耗分析可以采用PT,关 ...
- (数字IC)低功耗设计入门(三)——系统与架构级
前面讲解了使用EDA工具(主要是power compiler)进行功耗分析的流程,这里我们将介绍在数字IC中进行低功耗设计的方法,同时也结合EDA工具(主要是Design Compiler)如何实现. ...
随机推荐
- WPF编游戏系列 之九 物品清单再优化
原文:WPF编游戏系列 之九 物品清单再优化 在"第三篇"和"第四篇"中通过用户控件和数据绑定功能对物品清单进行一些优化减少了部分C#代码,但感觉 ...
- jquery子元素过滤器
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
- vs2017 cordova apk 第一个项目
原文:vs2017 cordova apk 第一个项目 vs出到了2017,终于能正了八经跨平台开发,特别是终于不报一堆错了. cordova是个好东西,终于不用揽一个项目,还要被手机端瓜分大半血汗钱 ...
- epplus输出成thml
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- Java底层知识学习:Bytecode and JMM
最近在跟着耗子哥的程序员练级指南学习Java底层知识,结合<深入理解Java虚拟机>这本书在看,写笔记,看资料,成长中…… 目前看完了第二章JMM和各内存区OOM的情况 一篇图文并茂介绍字 ...
- 零元学Expression Blend 4 - Chapter 11 用实例了解布局容器系列-「Border」
原文:零元学Expression Blend 4 - Chapter 11 用实例了解布局容器系列-「Border」 将教大家以实做案例认识Blend 4 的布局容器,此章介绍的布局容器是Blend ...
- How to Capture the Integer-Divide-By-Zero Error in C++(提前定义信号)
How to Capture the Integer-Divide-By-Zero Error in C++? MANUAL CAPTURE The simple and straightforwar ...
- WordPress中.user.ini 权限问题
安装完WordPress在给予权限或者删除的时候可能会收到下面的提示. [root@localhost default]# chmod -R 755 /home/wwwroot chmod: 更改&q ...
- 实现js与Qt程序的交互(使用QtWebkit)
在QtWebkit的javascript里访问QObject的最关键的关键就是下面这个方法: void QWebFrame::addToJavaScriptWindowObject ( const Q ...
- Qt通过HTTP POST上传文件(python做服务端,附下载)
本文使用Qt Creator用HTTP POST的方法上传文件,并给出一个上传文件的例程. 本文主要客户端,所以对于服务器端程序编写的描述会比较简略 服务器使用Django编写,django服务器接收 ...