数字后端零基础入门系列 | 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

设置好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

点击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

相关推荐
IC拓荒者8 天前
数字IC后端实现Innovus |给各种IP子模块添加port buffer和antenna diode万能脚本
数字ic后端·ic后端实现·数字后端培训·antenna effect·ip guide buffer·io port buffer·innovus自动化脚本
IC拓荒者9 天前
数字后端零基础入门系列 | Innovus零基础LAB学习Day2
芯片设计·数字ic后端·innovus·ic培训·数字后端入门·innovus零基础lab
IC拓荒者12 天前
数字后端实现静态时序分析STA Timing Signoff之min period violation
数字ic后端·ic后端实现·静态时序分析·ic秋招笔试·timing signoff·min period·timing analysis
IC拓荒者12 天前
数字后端零基础入门系列 | Innovus零基础LAB学习Day1
芯片设计·数字ic后端·innovus·ic培训·数字后端入门
IC拓荒者1 个月前
英伟达NVIDIA数字IC后端笔试真题(ASIC Physical Design Engineer)
nvidia·数字ic后端·ic后端实现·ic秋招笔试·ic秋招·ic笔试真题·physical design
杰出的胡兵2 个月前
景芯SoC A72实战反馈
数字后端
IC拓荒者5 个月前
数字IC后端物理验证PV | TSMC 12nm Calibre Base Layer DRC案例解析
数字ic后端·物理验证·数字后端设计·ic后端培训·calibre drc·drc violation·低功耗upf
IC拓荒者6 个月前
低功耗数字IC后端设计实现典型案例| UPF Flow如何避免工具乱用Always On Buffer?
芯片设计·数字ic后端·数字后端培训·innovus·低功耗设计·ic培训·upf flow
时钟树上的小猴子7 个月前
数字后端概念——FinFET/Nanosheet FET
数字后端