本文轉自:自己的微信公眾號《集成電路設計及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的全稱 #

