数字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)如何实现. ...
随机推荐
- 客户端技术的一点思考(数据存储用SQLite, XMPP通讯用Gloox, Web交互用LibCurl, 数据打包用Protocol Buffer, socket通讯用boost asio)
今天看到CSDN上这么一篇< 彻底放弃没落的MFC,对新人的忠告!>, 作为一个一直在Windows上搞客户端开发的C++程序员,几年前也有过类似的隐忧(参见 落伍的感觉), 现在却有一些 ...
- liunx 常用操作命令
1.复制粘贴命令:在一行的任何位置按下yy,y是yanked拷贝的意思,然后去想粘贴的位置按下p即可.p是粘贴的意思. 2.如果想复制3行的话,按下3yy,就复制3行,如果想复制多行的话,直接按数字可 ...
- ELINK离线编程器版本说明
ELINK离线编程器版本详情,ELinkPROG版本与固件版本须匹配使用! 编程器支持芯片详细列表参见 https://www.cnblogs.com/raswin/p/9303300.html
- Android 查看APK文件的签名算法
查看APK使用了什么签名算法 keytool -list -printcert -jarfile xxx.apk 示例: 签名者 #1: 签名: 所有者: 发布者: 序列号: 有效期开始日期: 证书指 ...
- Oracle VM VirtualBox ubuntu 共享文件设置
1.创建共享文件 2.在本机上选择共享文件路径,虚拟机设置共享文件名称,注意这里不能选择自动挂载 3. 虚拟机新建文件夹挂载共享文件 sudo mkdir /mnt/sharedsudo mount ...
- 使用Notepad++远程编辑Ubuntu上的源码
简单搭建了在Windows上远程编辑Ubuntu Server 14.04上面源代码的环境,记录一下,给需要的人. Notepad++安装NppFTP 从插件菜单打开PluginManager,选中N ...
- chrome 里面js提示Provisional headers are shown错误
参考:http://stackoverflow.com/questions/21177387/caution-provisional-headers-are-shown-in-chrome-debug ...
- QT5.6,5.7,5.8的新特征以及展望(Qt5.7首次正式支持Qt3D,以前都是预览版)
https://wiki.qt.io/New_Features_in_Qt_5.6 (跨平台High-DPI,改进WebEngine到45,支持WIN 10,Canvas3D,3D) https:// ...
- J2EE--Struts2基础开发
内容中包含 base64string 图片造成字符过多,拒绝显示
- 【Web前端Talk】React-loadable 进行代码分割的基本使用
随着项目功能的扩充.版本迭代,我们与Webpack捆绑起来的的项目越来越大,大到开始影响加载速度了.这时我们就该考虑如何对代码进行拆分了. 这次我们一起学习一下如何对React项目中的代码进行Code ...