静态时序分析中Multi-Mode Multi-Corner的配置实践
在28nm及以下工艺节点,只做单一工况(Best/Worst、Func/Test)的静态时序分析(STA)已远远不够。Multi-Mode Multi-Corner(MMMC) 分析通过对不同工作模式(Functional / Scan / Power-Down)与多个PVT(Process-Voltage-Temperature)角落联合验证,是签核(Sign-off)前发现隐藏时序违例的唯一严谨做法。本文以Synopsys PrimeTime(PT)为主,兼述DC/ICC2中的配置思路,给出可落地的MMMC实践流程。
一、MMMC基本概念与签核角落
1. 分析模式(Mode / Scenario)
• Functional Mode:正常业务逻辑,时钟树启用。
• Scan / Test Mode:ATE测试模式,通常有时钟门控不同配置。
- Power-Down / Retention Mode:部分域关电,主要查隔离与保持时间。
2. 签核角落(Corner / PVT)
典型四角或九角分析:
Corner PVT说明 主要检查点
WC(Slow-Slow, 1.62V, 125℃) Slow NMOS/Slow PMOS, 高温低压 Setup(建立时间)违例
BC(Fast-Fast, 1.98V, -40℃) Fast NMOS/Fast PMOS, 低温高压 Hold(保持时间)违例
Typical(TT, 1.8V, 25℃) Typical Process 参考性能估算
WCL / ML(Slow-N Fast-P 或反之) 片转角(On-Chip Variation) On-Chip Variation(OCV/AOCV)分析
二、PrimeTime中MMMC配置实操
PT从PT-SI / PT-PX开始全面支持Scenario-Based MMMC,核心是建analysis_view(分析视图),将Mode与Corner配对。
1. 读入库与约束
# 读入标准单元/IO库(max/min库已在 .lib 中区分)
set link_path [list * sky130_fd_sc_hd_tt_1p80V_25C.lib sky130_fd_io.lib]
# 读入去反标网表与约束
read_verilog my_design_post_pnr.v
read_sdc -version 2.0 my_design.sdc
link_design my_design
2. 定义Operating Condition(PVT Corner)
# Slow corner (Setup)
create_operating_condition -library slow_ss_1p62V_125C \
-min_library sky130_fd_sc_hd_ss_1p62V_125C.lib \
-max_library sky130_fd_sc_hd_ss_1p62V_125C.lib \
-min ss_1p62V_125C -max ss_1p62V_125C
# Fast corner (Hold)
create_operating_condition -library fast_ff_1p98V_m40C \
-min_library sky130_fd_sc_hd_ff_1p98V_m40C.lib \
-max_library sky130_fd_sc_hd_ff_1p98V_m40C.lib \
-min ff_1p98V_m40C -max ff_1p98V_m40C
3. 定义Mode(通过不同SDC变体或变量)
# Functional Mode:使用原SDC
set func_mode [create_analysis_mode -sdc_files {mode_func.sdc} func_mode]
# Scan Mode:不同时钟定义/测试使能
set scan_mode [create_analysis_mode -sdc_files {mode_scan.sdc} scan_mode]
4. 组合成 Analysis View(核心!)
# WC-Setup + Functional Mode
create_analysis_view \
-name view_func_wc_setup \
-mode func_mode \
-operating_condition slow_ss_1p62V_125C \
-analysis_type on_chip_variation
# BC-Hold + Functional Mode
create_analysis_view \
-name view_func_bc_hold \
-mode func_mode \
-operating_condition fast_ff_1p98V_m40C \
-analysis_type on_chip_variation
# WC-Setup + Scan Mode(扫描链Setup也要过)
create_analysis_view \
-name view_scan_wc_setup \
-mode scan_mode \
-operating_condition slow_ss_1p62V_125C \
-analysis_type on_chip_variation
5. 运行并报告
# 对所有view做Setup/Hold检查
report_timing -max_paths 20 -delay_type max -view view_func_wc_setup
report_timing -max_paths 20 -delay_type min -view view_func_bc_hold
# 汇总所有view最差slack
report_qor -view *
三、DC / ICC2 中的MMMC对应配置
• Design Compiler (Topographical):使用set_operating_conditions指定max/min库,set_multicycle_path按Mode区分;可用report_constraint -all_violators分别查各Corner。
- ICC2 / Innovus:通过create_scenario把Mode(SDC)+ Corner(QRC/RC Corner + Library Set)绑定,Place & Route时可按Scenario做Timing-Driven优化(推荐至少做WC/BC两Scenario)。
四、On-Chip Variation(OCV / AOCV / POCV)配置
深亚微米下,同Die内MOS快慢差异不可忽略,需开启OCV:
# 开启OCV(早期保守做法)
set timing_ocv_enabled true
set timing_derate -early 0.9 -late 1.1 -clock
set timing_derate -early 0.95 -late 1.05 -data
# 推荐:用POCV(Parametric OCV)更精确
set timing_pocv_enabled true
read_pocv -file pocv_sigma.tbl
Setup分析用Late(慢)Launch / Early(快)Capture;Hold分析相反,PT自动按Analysis View处理。
五、常见坑与签核建议
1. 只用WC查Setup忽略Hold:Hold不随频率变,必须在Fast Corner单独查,否则流片后低温/高压下功能出错。
2. Scan Mode遗漏:扫描链在Test Mode有时钟不同定义,若不单独建View,Scan Path Setup可能假通过。
3. max/min库配反:set_operating_conditions -max对应Setup最慢库,-min对应Hold最快库——搞反会导致Hold报假Pass。
4. 未设Derating直接签核:尤其≥28nm,无OCV/POCV的MMMC分析偏乐观,Foundry通常要求带Derating报告。
六、结语
MMMC配置的精髓是“Mode × Corner = Analysis View”。在PrimeTime中明确定义Operating Condition、Analysis Mode与OCV Derating,并对Functional和Scan等各工作模式分别建View做全角落检查,才能确保时序签核经得起硅后考验。这也是从"能跑"迈向"可量产"的关键一步。





