本文转自:自己的微信公众号《数字集成电路设计及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违反的修复方法的更多相关文章

  1. 数字IC前后端设计中的时序收敛(五)--Max Transition违反的修复方法

    本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...

  2. 数字IC前后端设计中的时序收敛(四)--Max Capacitance违反的修复方法

    本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众 ...

  3. 数字IC前后端设计中的时序收敛(一)前言

    本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 为了纪念,同时 ...

  4. 数字IC前后端设计中的时序收敛(六)--Max Fanout违反

    本文转自:自己的微信公众号<数字集成电路设计及EDA教程>(二维码见博文底部) 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教 ...

  5. 数字IC前后端设计中的时序收敛(三)--Hold违反的修复方法

    本文转自:自己的微信公众号<数字集成电路设计及EDA教程>(二维码见博文底部) 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教 ...

  6. 机器学习在IC设计中的应用(二)--根据GBA时序结果来预测PBA

    本文转自:自己的微信公众号<集成电路设计及EDA教程> <机器学习在IC设计中的应用(二)--根据GBA时序结果来预测PBA> AOCV AOCV全称:Advanced OCV ...

  7. nodejs--JWT 在前后端分离中的应用与实践

    nodejs--JWT 在前后端分离中的应用与实践 http://www.cnblogs.com/lidongyue/p/5269695.html

  8. 前后端分离中的无痛刷新token机制

    今天我们来说一说前后端分离中的无痛刷新token机制 博主先来分享一波福利,最近挖到的宝藏,刚开始学Java的同学看 https://www.bilibili.com/video/BV1Rx41187 ...

  9. Web设计中打开新页面或页面跳转的方法 js跳转页面

    Web设计中打开新页面或页面跳转的方法 一.asp.net c# 打开新页面或页面跳转 1. 最常用的页面跳转(原窗口被替代):Response.Redirect("newpage.aspx ...

随机推荐

  1. mysql数据库编码、字段编码、表编码 专题

    CREATE DATABASE `mybatis-subject` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin */ 其中的 ...

  2. Mysql事务,并发问题,锁机制-- 幻读、不可重复读--专题

    1.什么是事务 事务是一条或多条数据库操作语句的组合,具备ACID,4个特点. 原子性:要不全部成功,要不全部撤销 隔离性:事务之间相互独立,互不干扰 一致性:数据库正确地改变状态后,数据库的一致性约 ...

  3. ApplicationCommands用于表示应用程序程序员经常遇到的常见命令,类似于ctrl+c

    在WPF中,许多控件都自动集成了固有的命令集.比如文本框TextBox就提供了复制(Copy),粘贴(Paste),裁切(Cut),撤消(Undo)和重做(Redo)命令等. WPF提供常用应用程序所 ...

  4. 【windows】常见的系统环境变量,如%appdata%表示什么意思

    原文:[windows]常见的系统环境变量,如%appdata%表示什么意思 1.介绍 %appdata%就代表了C:Users\用户名\AppData\Roaming这个文件夹. “%”是系统变量的 ...

  5. HTTP协议入门(一)- 版本

    当我们在浏览器的地址栏输入URL后,信息会被发送到WEB服务器,服务器得到响应,将数据传输回来,展示到WEB页面上,这其中的传输方法就是HTTP协议. 一.HTTP 0.9 发布于1991年,是首个H ...

  6. Apache Cordova for ios环境配置

    原文:Apache Cordova for ios环境配置 1.安装针对iOS的工具 https://technet.microsoft.com/ZH-cn/library/dn757054.aspx ...

  7. DevExpress的xtraMessageBox汉化

    原文:DevExpress的xtraMessageBox汉化 项目使用的界面库是DevExpress 相当好用,不过里面弹出对话框XtraMessageBox的按钮都是英文的, 可能会对用户造成困扰, ...

  8. 一个技术人,最重要的是:极客精神(好奇心 + 探索欲)(新de代码)

    一个技术人,最重要的是:极客精神(好奇心 + 探索欲) 初到社会,面对众多的IT企业,我们是陌生与好奇的,认为所有企业都是管理一流并且高大上等的.然而工作多年以后你会发现,国内的IT企业环境良莠不齐, ...

  9. Android零基础入门第18节:EditText的属性和使用方法

    原文:Android零基础入门第18节:EditText的属性和使用方法 EditText与TextView非常相似,它甚至与TextView 共用了绝大部分XML属性和方法.EditText与Tex ...

  10. UWP的TextBox和PasswordBox使用输入范围更改触摸键盘InputScope

    原文:UWP的TextBox和PasswordBox使用输入范围更改触摸键盘InputScope 当你的应用运行在具有触摸屏的设备上时,触摸键盘可用于文本输入.当用户点击可编辑的输入字段(如 Text ...