当前位置: 首页 > article >正文

数字后端零基础入门系列 | Innovus零基础LAB学习Day7

###Module 14 时钟树综合

###LAB14-1

这个章节的主要学习目标如下:

1)时钟树综合前的准备工作熟悉

2)时钟树综合的跑法

3)时钟树结果分析

4)时钟树综合后的时序优化(PostCTS的timing优化)

数字后端零基础入门系列 | Innovus零基础LAB学习Day6

数字后端零基础入门系列 | Innovus零基础LAB学习Day5
数字后端零基础入门系列 | Innovus零基础LAB学习Day4

首先,我们按照lab的要求来打开pr.inv这个数据。

在这里插入图片描述

我们可以直接用我们打开数据的命令:

restoreDesign …/saved/pr.inv.dat DTMF_CHIP

打开数据后,我们要读入做时钟树综合前的一些设置,比如这个lab中的dtmf.ccopt。这个文件的内容如下(用gvim dtmf.ccopt即可打开该文件):

set_ccopt_property buffer_cells [ list CLKBUFX1 CLKBUFX12 CLKBUFX16 CLKBUFX2 CLKBUFX20 CLKBUFX3 CLKBUFX4 CLKBUFX8 CLKBUFXL ]
set_ccopt_property inverter_cells [ list CLKINVX1 CLKINVX12 CLKINVX16 CLKINVX2 CLKINVX20 CLKINVX3 CLKINVX4 CLKINVX8 CLKINVXL ]

这两句其实就是设置工具长时钟树时可用的clock buffer和clock inverter cell list 。

很多新手肯定会有疑问,我是初学者,我哪里能知道做时钟树前要设置哪些设置,而且我压根不知道ccopt有哪些相关的property。

这里教大家一个大招,可以通过下面的命令来报告出所有ccopt相关的property。至于要设置哪些,这是慢慢积累的一个过程。刚开始只要知道设置一些常用的设置即可,等后续经验多了,自然就都会了。

set_ccopt_property * -help

set_ccopt_property用法

设置好ccopt相关的设置后,我们需要基于sdc和这些ccopt property来产生clock tree spec文件。因为工具长tree会根据这个spec文件来做tree。

create_ccopt_clock_tree_spec

spec产生后,我们就可以使用下面的命令来跑时钟树综合和时钟树综合后的时序优化。

ccopt_design

如果仅仅想做一个时钟树综合,可以带上选项-cts即可。 具体命令如下:

ccopt_design -cts (cts跑法)

时钟树综合跑不下去,怎么破?

利用GUI图形界面分析时钟树质量 (CTD)

Clock----Ccopt Clock Tree Debugger

Clock Tree Debugger (CTD)

点击OK后弹出如下结果。

在这里插入图片描述

这里要求大家熟悉下图中所框出来的三个地方。通过这个CTD还可以来trace设计的时钟结构。

在这里插入图片描述

时钟结构分析教程
在这里插入图片描述

通过这个CTD分析的一个好处是我们可以在CTD窗口任意选择一颗cell,此时layout上会同步高亮显示出这颗cell。而且还能高亮当前sink点对应的clock path走向。

在这里插入图片描述

当然,我们也分享过如何通过命令在layout上高亮clock path。

在这里插入图片描述

如果设计中有很多时钟,我们可以通过Visibility----Clock tree来只显示我们所关心的clock tree的结构及相关信息。

在这里插入图片描述

除了分析时钟树质量和时钟树结构外,我们还需要关心设计的时序Timing情况。

我们可以通过timeDesign来报告出当前设计的时序。

在这里插入图片描述

第一个就是报告postCTS阶段的timing,因为此时我们就是做完了CTS,所以此时我们应该带上PostCTS来报timing。

第二个命令又再加了一个 -hold选项,这个代表是我们想让工具报出当前阶段的hold time情况。

【思考题】 为何这个阶段要看hold time?

优化时序方法

如果工具自己做完时钟树综合和时序优化后的timing还有较大violation,我们还可以通过命令自带的时序优化命令来做时序的优化——optDesign -postCTS -setup (-hold 代表我们希望让工具优化hold time)

####END OF LAB14-1

###LAB14-2

这个章节主要是了产生一个比较合适的rc scale factor系数,使得PT和Innovus之间的timing比较接近。

值得注意的是,工具自动产生出来的rc factor不一定是最佳的,很多时候还是需要工程师来辅助一些分析。对于初学者来说,这部分内容可以大体上了解即可。

generateRCFactor –preroute true -postroute medium -reference externalSpef -spefMapFile spef.map

其中sepf.map为Starrc寄生参数提取signoff工具抽出来的spef文件,externalSpef为Innovus内部自己写出来的spef文件。

###END OF LAB14-2


http://www.kler.cn/a/376169.html

相关文章:

  • 利用LangChain与LLM打造个性化私有文档搜索系统
  • 萤火虫算法优化BILSTM神经网络多输入回归分析
  • WebGPU跨平台应用开发
  • LabVIEW程序员赚钱不仅限于上班
  • EtherCAT转ModbusTCP相关技术
  • Python酷库之旅-第三方库Pandas(186)
  • 必备!20道大模型面试问题详解(含答案)
  • Edge 浏览器插件开发:图片切割插件
  • 信息学科平台系统设计与实现:Spring Boot框架
  • 做等保二级备案需要准备哪些材料
  • Qt小bug —— QTableWidget排序后更新数据显示不全
  • 2024阿里云CTF Web writeup
  • Java 集合一口气讲完!(下)p\··/q
  • QNX 7.0.0开发总结
  • 【深度学习|地学应用】人工智能技术的发展历程与现状:探讨深度学习在遥感地学中的应用前景
  • 编程之路:蓝桥杯备赛指南
  • linux alsa-lib snd_pcm_open函数源码分析(三)
  • 【汽车租聘管理与推荐】Python+Django网页界面+推荐算法+管理系统网站
  • 非自适应性上下文
  • Oracle 第11章:异常处理
  • 【数据结构-邻项消除】2696. 删除子串后的字符串最小长度
  • OpenCSG传神社区月度功能更新
  • 基于SpringBoot+Vue技术的宇宙动漫网站【前后端分离】
  • 贪心算法与分数背包
  • C#版的有道智云对话接口
  • 第20课-C++【二叉搜索树】