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

数字IC设计中Setup的分析与优化贯穿前后端设计中,最好在开始后端设计之前就获得一个没有Setup违反的网表,下面按照从前到后的流程逐一讲解每个阶段如果出现Setup违反该如何解决。下面用到的命令,主要针对的是Synopsys公司的综合工具DC以及布局布线工具ICC。
还有需要注意的是,Setup的修复和之后要讲解的Hold的修复有很大的不同,Setup的违反随着布局到布线阶段的推进,它是越来越恶化的,不像Hold,线延迟会有益于Hold的修复的,因此存在少量的违反是没有问题的。因此,在开始下一阶段的Setup修复之前,最好将本阶段的Setup违反都清掉。如果是需要用CCD来修复的Setup违反,那么在CTS之前,这些违反可以不用考虑。
1、逻辑综合阶段就有Setup违反:
1.1 在DC中用Retime或者Pipeline修复;
1.2 在DC中通过group ungroup的方法来对critical的模块进行优化;将那些critical的模块group到一起,然后ungroup,让DC对其进行充分的优化,不会因为在不同的group内而优化受到限制。
1.3看违反是否很少,并向前向后查看路径的时序,判断在后端中用CCD是否有可能修复;如果该路径的前后时序非常宽裕,那么在后端中用CCD来修复也是可以的。
1.4 用DCT进行增量编译
由于DC进行综合时一般用Wire Load Model分析时序,所以不是很准确,并且分析时也没有标准单元或者Macro的具体物理位置,所以分析优化过程不是很贴近物理实际。为了解决这个问题,可以用DCT来解决。具体步骤为:ICC导出Floorplan的DEF给DCT,然后用Compile_ultra进行再次综合。
1.5 修改电路结构/算法
如果上述方法都不行,那么需要查找设计中的Setup违反是什么样的情况,是很多路径都有一些小的违反还是说这些违反都集中在一个模块上,且违反很大。如果是前者则可以通过DCT再次编译来解决,如果是后者,需要分析在后端中用CCD是否有可能解决,如果不行的话,便只能通过修改电路结构或者更改电路的算法来进行修复了,在系统级或者算法级来解决这种问题也是最有效、程度最好的方法了,不过可能会比较耗时。我曾遇到过这种情况,某个DSP模块的时序非常差,基本上通过软件修复是不可能的,后来换了种算法,在精度、面积、时序上都有了很大的提升,设计的Setup违反也不存在了。
2、布局之后CTS之前有Setup违反:
2.1 用DCT进行增量编译
首先用零互连延迟模式报告一下,看设计中是否有setup的违反,如果没有的话,那么应该是线延迟太大使得严重偏离了之前的理想情况,这个可以用DCT来进行再次综合。在DCT中将所有的scenario都读入进去,并读入ICC导出的DEF文件,然后进行增量编译;
2.2 在ICC中将timing critical的单元靠近放置
如果是规模太大使得线延迟太大导致的,在后端设计中也可以将一些critical的单元靠近放置,如果在同一个模块内部,可以创建plan_group;
此外还可以对某些具体的net设置net weight来使得这些critical path上的单元靠近放置。
3、CTS之后有违反:
重新进行CTS,在CTS过程中采用CCD用useful skew来向前向后借timing,命令为:
>clock_opt -concurrent_clock_and_data
4、布线完成后有少量违反:
可以用ICC中的CCD来修复,
>set_concurrent_clock_and_data_strategy
>route_opt -concurrent_clock_and_data
5、chipfinish阶段有少量违反:
可以用ICC中的CCD来修,
>focal_opt -concurrent_clock_and_data-setup_endpoints all
6、布局布线中的任何一个阶段
其实在ICC中布局布线的任何一个阶段都是可以用PT进行ECO来修复Setup违反。
数字IC前后端设计中的时序收敛(二)--Setup违反的修复方法的更多相关文章
- 数字IC前后端设计中的时序收敛(五)--Max Transition违反的修复方法
本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...
- 数字IC前后端设计中的时序收敛(四)--Max Capacitance违反的修复方法
本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...
- 数字IC前后端设计中的时序收敛(一)前言
本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 为了纪念,同时 ...
- 数字IC前后端设计中的时序收敛(六)--Max Fanout违反
本文转自:自己的微信公众号<数字集成电路设计及EDA教程>(二维码见博文底部) 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教 ...
- 数字IC前后端设计中的时序收敛(三)--Hold违反的修复方法
本文转自:自己的微信公众号<数字集成电路设计及EDA教程>(二维码见博文底部) 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教 ...
- 机器学习在IC设计中的应用(二)--根据GBA时序结果来预测PBA
本文转自:自己的微信公众号<集成电路设计及EDA教程> <机器学习在IC设计中的应用(二)--根据GBA时序结果来预测PBA> AOCV AOCV全称:Advanced OCV ...
- nodejs--JWT 在前后端分离中的应用与实践
nodejs--JWT 在前后端分离中的应用与实践 http://www.cnblogs.com/lidongyue/p/5269695.html
- 前后端分离中的无痛刷新token机制
今天我们来说一说前后端分离中的无痛刷新token机制 博主先来分享一波福利,最近挖到的宝藏,刚开始学Java的同学看 https://www.bilibili.com/video/BV1Rx41187 ...
- Web设计中打开新页面或页面跳转的方法 js跳转页面
Web设计中打开新页面或页面跳转的方法 一.asp.net c# 打开新页面或页面跳转 1. 最常用的页面跳转(原窗口被替代):Response.Redirect("newpage.aspx ...
随机推荐
- XF相对布局
using System; using Xamarin.Forms; using Xamarin.Forms.Xaml; [assembly: XamlCompilation (XamlCompila ...
- WPF RenderTransform的使用
呈现变形的元素并没有改变位置,只是呈现在不同的位置而已,所以动画要用呈现变形 好处:为了效率,如果改变位置的话,需要重新测量,布局 <Window x:Class="wpf180709 ...
- WPF 集合分组排序
<Window x:Class="ViewExam.MainWindow" xmlns="http://schemas.microsoft.com/w ...
- C/C++网络编程时注意的问题小结
1.网络编程在自己定义结构体实现协议的时候,一定要注意字节对齐这个问题.否则sizeof和强制转换指针的时候都会出现很难发现的bug. 什么是字节对齐自行百度. #pragma pack (1)//字 ...
- SQLServer 可更新订阅数据在线架构更改(增加字段)方案
原文:SQLServer 可更新订阅数据在线架构更改(增加字段)方案 之前一直查找冲突发布和订阅数据不一致的原因,后来发现多少数据库升级引起,因为一直以来都是在发布数据库增加字段,订阅也会自动同步.在 ...
- Windows实用小工具–Windows远程协助
在企业里,有的公司办公区域比较大,电脑有问题一般都是通过远程.徒步.电话等方式来解决,对于远程协助解决问题,我们首先想到的会是如何连接对方的电脑,相信大家都已经使用过很多的软件了吧!当然还有Micro ...
- SQL Server上唯一的数据库集群:负载均衡、读写分离、容灾(数据零丢失、服务高可用)
SQL Server上唯一的数据库集群:负载均衡.读写分离.容灾(数据零丢失.服务高可用).审计.优化,全面解决数据库用户问题.一键安装,易用稳定,性价比高,下载链接:http://www.zheti ...
- Linux目录结构及文件操作
Linux文件目录遵循FHS标准 绝对路径:从根目录开始的路径:相对目录:从当前路径开始的路径 .表示当前目录,..表示上级目录,~表示当前用户的home目录,pwd获得当前绝对路径 新建文件 tou ...
- c# log4net 配置使用
新增配置文件log4net.config,内容如下 <?xml version="1.0" encoding="utf-8" ?> <conf ...
- 插件化二(Android)
插件化二(Android) 上一篇文章<插件化一(android)>里大概构思了下插件加载与校验的流程和一些大体设计,这次就具体展开,在<动态加载与插件化>里提到以apk形式开 ...