4、输入文件准备:工艺文件(Tech File)、库文件(Liberty)、设计网表(Netlist)、寄生参数(SPEF/DSPF)等输入数据的格式与准备方法
Redhawk作为业界领先的功耗与电源完整性(IR/EM)分析工具,其分析结果的准确性高度依赖于输入数据的完整性与格式规范性。本章将系统讲解Redhawk流程中四大核心输入文件——工艺文件(Tech File)、库文件(Liberty)、设计网表(Netlist)以及寄生参数文件(SPEF/DSPF)的格式要求、准备方法及常见陷阱。理解这些文件的本质与准备细节,是搭建一个可靠、可收敛的Redhawk分析流程的基石。
4.1 工艺文件(Tech File)的准备
4.1.1 核心原理与文件格式
工艺文件是Redhawk进行电源网络提取与IR/EM分析的基础物理规则库。它描述了芯片制造过程中各金属层、通孔层的物理属性、电气特性及设计规则。Redhawk主要使用两种格式的工艺文件:Tech File(.tf)和Milkyway Tech File(.tf),后者通常由物理库(Milkyway)附带。文件内容涵盖:
- 金属层定义:层名称、厚度、电阻率、介电常数、最小宽度/间距。
- 通孔定义:通孔类型、尺寸、电阻、电流密度上限(EM规则)。
- 电流密度规则:用于EM检查的AC/DC电流密度限值。
- 电容模型:单位面积电容、边缘电容、耦合电容系数。
set_pad_layer命令显式指定。
4.1.2 准备方法与验证流程
- 获取源文件:从Foundry或工艺库供应商处获取最新的.tf文件,确保与设计使用的工艺版本(如TSMC 7nm、GF 12nm)完全一致。
- 格式转换:若源文件为其他格式(如LEF、ITF),需使用Redhawk自带的
itf_to_tf工具或脚本转换为标准.tf格式。 - 关键参数核对:重点检查金属层电阻率(单位Ω/sq)、通孔电阻(单位Ω/via)以及EM电流密度限值(单位mA/μm)。
- Redhawk内建验证:在Redhawk中运行
check_tech_file命令,系统会报告缺失的层定义或参数异常。
| 参数项 | 典型值(7nm工艺示例) | 影响 |
|---|---|---|
| M1电阻率 | 0.8 Ω/sq | IR Drop 计算精度 |
| 顶层金属厚度 | 3.0 μm | 电源网络电阻 |
| 通孔电阻 | 5 Ω/via | 通孔阵列设计 |
| DC EM限值 | 2.0 mA/μm | 电迁移寿命 |
4.2 库文件(Liberty)的准备
4.2.1 核心原理与文件格式
Liberty文件(.lib)是标准单元库的时序与功耗描述文件,Redhawk从中提取每个标准单元的内部功耗(Internal Power)、泄漏功耗(Leakage Power)以及输入引脚电容。Redhawk支持两种格式:Liberty文本格式(.lib)和编译后的二进制格式(.db)。对于功耗分析,Redhawk特别关注以下字段:
power_pin:定义电源引脚(VDD/VSS)及其连接关系。internal_power:包含rise/fall能量表,基于输入转换时间和输出负载。leakage_power:不同状态下的静态功耗值。capacitance:引脚电容值,影响互连功耗计算。
4.2.2 准备方法与操作流程
- 选择正确PVT条件:根据设计工作环境(如SS/0.72V/125°C)选择对应的.lib文件。
- 检查功耗模型完整性:使用
report_lib命令检查所有单元是否包含完整的internal_power表。 - 库文件编译:若使用.db格式,需确保与Redhawk版本兼容,必要时使用
read_lib重新编译。 - 特殊单元处理:对于IO单元、存储器(Memory)和模拟IP,需单独提供.lib文件,并确认其功耗模型已正确提取。
link_library列表方式管理多个.lib文件,并设置target_library为典型工艺角,避免Redhawk在读取时发生单元冲突。
4.3 设计网表(Netlist)的准备
4.3.1 核心原理与文件格式
设计网表描述了芯片的逻辑连接关系,Redhawk需要将其映射到物理布局上进行功耗分析。Redhawk支持的门级网表格式包括:Verilog(.v)、VHDL(.vhd)以及SPICE网表。对于物理感知的功耗分析,Redhawk还需要DEF文件(.def)来获取单元的物理位置和电源网络布线信息。网表准备的核心在于确保逻辑连接与物理实现的一致性。
4.3.2 准备方法与关键步骤
- 网表导出:从综合工具(如Design Compiler)或后端工具(如Innovus)导出门级网表,确保不包含未映射的工艺库单元。
- 网表与DEF匹配:检查网表中的实例名与DEF中的物理单元一一对应,避免因ECO(工程变更单)导致的失配。
- 电源地网络声明:在网表中显式声明全局电源地网络(VDD/VSS),并使用
supply_net命令在Redhawk中定义。 - 层次化处理:对于含IP核的设计,需将IP的抽象网表(如FRAM view)与顶层网表正确连接。
dont_touch属性,导致Redhawk无法正确识别单元状态。解决方法是移除该属性或使用set_dont_touch命令在Redhawk中重新定义。
4.4 寄生参数文件(SPEF/DSPF)的准备
4.4.1 核心原理与文件格式
寄生参数文件描述了互连线的电阻、电容和电感效应,是精确计算动态功耗和IR Drop的关键输入。Redhawk支持两种主流格式:
- SPEF(Standard Parasitic Exchange Format):标准格式,包含网络的R、C、L值,通常由寄生提取工具(如StarRC、QRC)生成。
- DSPF(Detailed Standard Parasitic Format):详细格式,包含更精细的RC网络拓扑,适用于高精度分析。
4.4.2 准备方法与精度控制
- 提取工具设置:在寄生提取时,选择"Redhawk"模式或输出符合Redhawk规范的SPEF文件。
- 耦合电容处理:SPEF中的耦合电容(CC)对动态功耗影响显著,建议保留完整耦合信息,避免简化。
- RC约简:对于大规模设计,可使用
reduce_rc命令在Redhawk中进行RC网络约简,平衡精度与仿真速度。 - 文件一致性检查:确保SPEF中的网络名与网表一致,特别是总线信号和电源网络。
| 对比项 | SPEF | DSPF |
|---|---|---|
| 文件大小 | 较小 | 较大(详细拓扑) |
| 精度 | 中等 | 高 |
| 适用场景 | 全芯片快速分析 | 模块级精确分析 |
| Redhawk支持 | 完全支持 | 需转换或直接读取 |
4.5 案例拆解:多电压域SoC的输入文件整合
背景与约束:某移动SoC芯片采用TSMC 5nm工艺,包含三个电压域(0.8V核心域、1.2V IO域、0.6V SRAM域),设计规模约2亿门。目标是在Redhawk中进行全芯片动态IR Drop分析。
初始现象与目标:初次运行Redhawk时,报告大量"unresolved reference"错误,且功耗结果与预期偏差15%。
关键输入数据与问题分析:
- 工艺文件:使用TSMC提供的5nm.tf,但未包含顶层厚金属的EM规则。
- 库文件:三个电压域分别使用不同.lib文件,但SRAM域使用了错误的电压条件。
- 网表:顶层网表与DEF文件存在10处实例名不匹配。
- 寄生参数:SPEF文件未包含电源网络寄生,导致IR Drop被低估。
实际操作步骤:
- 更新工艺文件,添加顶层金属EM规则,并验证
check_tech_file通过。 - 重新生成SRAM域的.lib文件,确保电压条件为0.6V,并检查所有单元的功耗表完整性。
- 使用脚本比对网表与DEF,修正实例名不匹配问题。
- 重新提取SPEF,启用"include_power_net"选项,确保VDD/VSS网络寄生参数完整输出。
结果对比与复盘:修正后,Redhawk分析结果与实测功耗误差降至3%以内。IR Drop热点区域与后期硅后测试结果高度吻合。复盘经验:输入文件的版本一致性检查应作为流程的强制步骤,建议编写自动化脚本定期校验。
check_input_data命令进行一键式完整性检查,可节省大量调试时间。