2. Cadence MMMC环境搭建
MMMC(Multi-Mode Multi-Corner)环境搭建的本质,是把“设计在什么条件下被分析”这件事,用一组可被工具识别的对象描述清楚。它不是一个孤立的命令,而是由库、工艺文件、RC角、模式、视图五类对象共同构成的配置体系。理解它们之间的引用关系,比记住命令顺序更重要。
五类对象的分工与引用关系
在MMMC配置中,各对象承担不同职责:库(Library)提供标准单元、宏单元和IO单元的时序与功能模型;工艺文件(Technology / QRC Tech File)提供金属层、介质厚度、电阻率等寄生参数提取所需的工艺信息;RC角(RC Corner)把工艺文件与温度、电压、互连层选择组合成一个可提取的寄生条件;模式(Mode)描述功能场景,如功能模式、扫描测试模式、低功耗模式,包含SDC约束、时钟定义和例外;视图(View / Analysis View)则是“模式 + RC角 + 延迟计算角”的组合,是工具真正执行时序分析的最小单元。
它们的关系可以概括为:库和工艺文件是底层资源,RC角引用工艺文件,模式引用SDC与库,视图引用模式与RC角。任何一个引用断裂,都会导致视图无法建立或分析结果失真。
库与工艺文件的配置要点
库配置通常通过 set_db 或 init_lib 类命令完成,需要区分时序库与物理库。时序库(.lib/.db)提供延迟计算模型,物理库(.lef)提供版图抽象。在MMMC中,不同RC角可能对应不同的时序库版本,例如SS角使用慢速库、FF角使用快速库。配置时应确保每个角引用的库与PVT条件一致,否则会出现“库角不匹配”的隐性错误。
工艺文件方面,Cadence通常使用QRC Tech File(.qrc)或ITF文件。它定义了金属层数、每层的电阻率、电容耦合系数、通孔电阻等。RC角通过引用工艺文件并叠加温度、电压、互连层选择来生成具体的寄生提取条件。例如:
create_rc_corner -name Cmax \
-qx_tech_file ./tech/tsmc28.qrc \
-temperature 125 \
-cap_table ./tech/cmax.capTbl
create_rc_corner -name Cmin \
-qx_tech_file ./tech/tsmc28.qrc \
-temperature -40 \
-cap_table ./tech/cmin.capTbl
这里Cmax和Cmin共享同一工艺文件,但温度与电容表不同,从而形成不同的寄生条件。实际项目中,RC角数量通常控制在3~5个,过多会显著增加分析时间。
模式与视图的配置方法
模式配置的核心是绑定SDC。每个模式对应一个功能场景,例如功能模式、扫描模式、低功耗模式。配置时需要指定该模式使用的SDC文件、时钟定义以及是否启用特定约束。示例:
create_mode -name func \
-sdc_file ./sdc/func.sdc
create_mode -name scan \
-sdc_file ./sdc/scan.sdc \
-apply_clock_gating_check false
视图则是模式与RC角的笛卡尔积。工具通常提供自动生成或手动指定两种方式。手动指定可以精确控制哪些组合需要分析,避免无效视图浪费资源:
create_analysis_view -name func_ss_125c \
-mode func -rc_corner Cmax \
-delay_corner ss_125c
create_analysis_view -name scan_ff_m40c \
-mode scan -rc_corner Cmin \
-delay_corner ff_m40c
set_analysis_view -setup {func_ss_125c scan_ff_m40c} \
-hold {func_ff_m40c scan_ss_125c}
注意setup与hold使用的视图通常不同:setup关注最慢路径,hold关注最快路径。因此需要分别指定,而不是简单复用同一组视图。
常见环境初始化任务与检查
环境搭建完成后,必须执行初始化检查,确认所有引用关系完整。常见任务包括:
- 库完整性检查:确认每个角引用的库文件存在且版本匹配,避免“missing library”或“library version mismatch”。
- 工艺文件路径检查:QRC Tech File路径必须可访问,且与工艺节点一致。
- RC角与延迟角绑定检查:每个RC角应绑定到对应的延迟计算角,确保延迟计算使用正确的库。
- 模式SDC检查:每个模式必须绑定SDC,且SDC中的时钟定义与设计一致。
- 视图覆盖检查:确认setup和hold视图覆盖了所有关键模式与角组合,没有遗漏。
report_analysis_view 或 check_mmmc 类命令输出视图列表与绑定关系,逐项核对。若某视图显示“incomplete”,通常意味着Mode、RC Corner或Delay Corner中至少有一项未正确绑定。
总结来说,MMMC环境搭建的关键不是命令数量,而是引用链的完整性:库和工艺文件支撑RC角,SDC支撑模式,RC角与模式共同生成视图。把这条链理顺,后续的时序收敛才有可靠的分析基础。