本文转自:自己的微信公众号《集成电路设计及EDA教程》
《Innovus教程 - Flow系列 - MMMC分析环境的配置概述(理论+实践+命令)》
轻轻走过,悄悄看过,无意瞥一眼惊鸿的颜色,随着巷口的老猫湮没在无声中,爱这巷,爱这楼阁,爱这轻缓的脚步,落在石板上的踢踏,喜欢看你的身影随我远去,目光牵着你的笑,飞洒的柳絮勾勒你的轮廓,在茫茫烟波中,你留下残红染了梅花,在渺渺云雾中。
理论
这里需要给工具指定时序/SI分析的多模多角MMMC环境。建议最好按照工具MMMC Objects里面的顺序从上至下进行配置,因为后边的配置会用到前面配置的内容。
工具推荐的配置顺序如下:
- 时序、SI分析用的lib/cdb库文件(library set)
- 寄生参数提取的RC Corners
- 工作条件(Operating conditions)
- Delay corners
- 添加Constraint Mode,读入sdc
- 创建MMMC的analysis views,并指定哪些View是用于Setup分析/优化的,哪些是用于Hold分析/优化的。
它们之间(Analysis View、library set、RC Corner、op condition、Delay Corner、Constraint Mode)的关系如下图所示,详细内容留待下次讲解。这里只简单介绍下推荐的配置顺序及Lab中的配置方法。
实践
在Analysis Configuration下方点击“Create Analysis Configuration”弹出MMMC Browser窗口,如下图所示:
Lab中已经给出了现成的MMMC配置文件(dtmf.view),简单起见可以直接指定这个文件,即可以点击“MMMC View Definition File”后边的按钮来导入。
对于一个新的Design而言,是没有该文件的,需要自己去编写该文件或者在GUI里面进行相应的设置。具体每项内容的含义以及指定方法在后续推文中会介绍。
命令和脚本
set init_mmmc_file {./dtmf.view}
dtmf.view文件内容及各项内容的注释如下(也可以直接在Innovus中输入各项配置命令):
#创建用于对标准单元以及Macro进行时序分析和SI分析的lib/cdb库(library set),根据时序分析的PVT环境,需要将所有用到的PVT Corner的库都读进来,根据PVT环境的不同将它们分组。65 nm以前最常用的就是BCWC的STA模式,以这种模式为例,需要创建setup分析用的slow lib set,创建hold分析用的fast lib set:
create_library_set -name dtmf_libs_min
-timing {../lib/pllclk_fast.lib
../lib/ram_128x16A_fast_syn.lib
../lib/rom_512x16A_fast_syn.lib
../lib/ram_256x16A_fast_syn.lib
../lib/fast.lib
../lib/tpz973gbc-lite_fast.lib}
-si {../CDB/fast.cdb}
create_library_set -name dtmf_libs_max
-timing {../lib/pllclk_slow.lib
../lib/ram_128x16A_slow_syn.lib
../lib/ram_256x16A_slow_syn.lib
../lib/rom_512x16A_slow_syn.lib
../lib/slow.lib
../lib/tpz973gwc-lite_slow.lib}
-si {../CDB/slow.cdb}
#前面创建的lib set指定了对标准单元和Macro进行STA的PVT信息,这里创建RC Corner来为提取Net的寄生电阻电容指定电阻、电容查找表(从而得到Net的Delay信息),根据Stage的不同选用不同的查找表文件(.capTbl和.tch):
create_rc_corner -name dtmf_rc_corner
-cap_table {../captable/t018s6mlv.capTbl}
-preRoute_res {1.0}
-preRoute_cap {1.0}
-preRoute_clkres {0.0}
-preRoute_clkcap {0.0}
-postRoute_res {1.0}
-postRoute_cap {1.0}
-postRoute_xcap {1.0}
-postRoute_clkres {0.0}
-postRoute_clkcap {0.0}
-qx_tech_file {../QRC/t018s6mm.tch}
#创建Delay Corner,它是library set和RC Corner等的组合(此Lab中没有设置power domain和op condition的信息,因此就这两项内容的组合):
create_delay_corner -name dtmf_corner_min
-library_set {dtmf_libs_min}
-rc_corner {dtmf_rc_corner}
create_delay_corner -name dtmf_corner_max
-library_set {dtmf_libs_max}
-rc_corner {dtmf_rc_corner}
#创建Constrain Mode,读入时序约束文件(.sdc)
create_constraint_mode -name common
-sdc_files {dtmf.sdc}
#创建Setup分析和Hold分析的Analysis View,它是Constrain Mode和Delay Corner的组合:
create_analysis_view -name dtmf_view_hold
-constraint_mode {common}
-delay_corner {dtmf_corner_min}
create_analysis_view -name dtmf_view_setup
-constraint_mode {common}
-delay_corner {dtmf_corner_max}
#指定进行Setup/Hold分析和优化的Analysis View:
set_analysis_view -setup {dtmf_view_setup}
-hold {dtmf_view_hold}
相关推文
Innovus Lab和Lab Guide下载地址 | Innovus教程 - Flow系列 - 数据准备
Innovus教程 - Flow系列 - 导入设计(理论+实践+命令)
Innovus教程 - Flow系列 - 导入网表 指定工艺/物理库(理论+实践+命令)
Innovus教程 - Flow系列 - 管脚排列文件的编写与指定(理论+实践+命令)
Innovus教程 - Flow系列 - 指定PG Net和CPF文件(理论+实践+命令)
网易云课堂视频课程
新课上线
链接:https://study.163.com/course/introduction/1005909004.htm
Linux操作系统视频教程(中高级)
主要面向集成电路设计
## 为了方便大家交流讨论 ##
## 建了一个QQ群 ##
## 集成电路设计及EDA教程 ##
## 加群请备注:EDA ##
## 群二维码如下 ##
# 本公众号有个红包和资料福利微信群 #
# 集成电路设计及EDA教程福利群 #
# 为了避免乱七八糟的人加进来 #
# 可以先加我微信,我拉你进群 #
# 加我微信 请备注下面问题的答案 #
# ASIC的全称 #