Liberty 库的多视图:工艺库怎样向工具描述一颗单元(F3)
EDA 数据格式与标准 讲过 Liberty 的字段,DPA 的 Liberty/UPF/SDF 篇讲过功耗视角的查表;本篇聚焦一件事:同一颗标准单元,为什么要在不同阶段、不同分析里拿出多个「视图」,这些视图如何与多 PVT 角组合,又为什么必须跟 LEF/GDS 同版。 服务于 S2 综合 与 S5 签核。
一、.lib 在数据链里扮演什么角色
综合器/P&R/STA 不可能从晶体管级 SPICE 去算几十亿次延迟——太慢。晶圆厂/库团队预先对每颗单元在每种输入斜率(slew)、输出负载(load)、工艺角下仿真,把结果拟合进一张查找表(lookup table)。Liberty 就是这摞表的容器。工具查表(+ 表内插值)得到延迟、功耗、约束值。

核心纪律:LIB(逻辑/时序)、LEF(物理抽象)、GDS(几何)是同一颗单元的三视图,来自同一库版本。综合按 A 版的延迟选了单元、P&R 却用 B 版的尺寸摆放、拼版用 C 版的 GDS,签收数据就描述了三颗不同的库。
二、一个单元要提供哪些「视图」
| 视图 | 量什么 | 关键字段(概念) |
|---|---|---|
| 功能 | 这颗单元逻辑上是什么、引脚方向 | function、truth table |
| 时序 timing | 每个 timing arc 的延迟、建立保持约束 | delay、setup/hold、timing sense |
| 功耗 power | 内部功耗、漏电(可能与状态相关) | internal_power、leakage |
| 噪声/可靠性 noise | 噪声容限、MI、CCS noise | propagated/noisy waveform |
| 物理约束 | 最大电容/扇出/转换时间 | max_capacitance、max_fanout |
timing arc 是基本单位:从一个输入引脚到一个输出引脚,在给定输入 slew 与输出负载下的延迟关系。STA 沿这些弧累加路径延迟。
三、模型精度三代:NLDM → CCS/ECSM
- NLDM(Non-Linear Delay Model):经典表格式延迟模型,用输入 slew 和输出负载索引延迟;把驱动与负载分开处理,对深亚微米以下的复杂波形、米勒电容、多输入翻转近似较粗。
- CCS(Composite Current Source,Synopsys)/ ECSM(Cadence):基于波形/电流源的更精细模型,直接刻画驱动器随时间的输出电流波形,能更准地算延迟、噪声(glitch)、多开关与功耗,是先进节点签核常用模型。
工程含义:综合早期可用 NLDM 快速迭代,最终签核常需 CCS/ECSM 级别。综合用的模型与签核用的模型若精度档不同,会出现系统性的「综合乐观、签核悲观」偏差,这要在基线里写清楚,而不是当成工具误差忽略。
四、多 PVT 角:同一张表为什么要备很多套
延迟取决于 P(工艺:fast/typical/slow)、V(电压)、T(温度)。库要为每个角出一套 .lib:
| 角 | 典型用途 |
|---|---|
| slow / low-voltage / high-temp(WC) | setup 签核(最悲观延迟) |
| fast / high-voltage / low-temp(BC) | hold 签核(数据太快、延迟最小) |
| typical | 性能估计、功能、典型功耗 |
| 多电压/多温度 + 统计 | 先进节点 POCV、低压多模 |
注意一个常被记错的点:hold 用快角(数据和时钟都快,最容易违反 hold 的短路径更危险),setup 用慢角。库角还要和 RC 寄生角(SPEF 的 typical/cbest/cworst,见 F5)按 PDK 规定搭配,不能自由组合。
五、库数据在流程里的交接纪律
- 同版 PDK:
.lib、LEF、GDS、rule deck、SPICE 模型同版本,由库团队发布、设计侧只锁版本不改(见规划 F10 签核基线)。 .db是编译态:很多工具把文本.lib编译成二进制.db加速;两者必须一一对应,混用会得到「对不上的延迟」。- 多模功耗库:多阈值(HVT/SVT/LVT)库在综合里被权衡——HVT 慢但漏电小、LVT 快但漏电大,库选择本身就是性能-功耗决策。
- 角与场景一致:S5 三把尺(STA/功耗/IR)取的库角必须来自同一基线定义。
六、典型交接事故
| 事故 | 根因 | 拦截 |
|---|---|---|
| 综合与签核对不上 | NLDM vs CCS 精度档/版本不同 | 基线写清模型档与库版本 |
| hold 漏签 | 用慢角做 hold | 按 PDK 角搭配矩阵执行 |
| 物理时序错位 | LIB 与 LEF/GDS 不同版 | 三视图锁同一 PDK 版本 |
.db 对不上 | 文本库更新后没重编译 | .lib→.db 纳入发布流程 |
| 功耗角错误 | 漏电/功耗取错温度角 | 功耗库角纳入 scenario 定义 |
相关与延伸
- 库约束的时序意图:F2 SDC;寄生反标:F5 SPEF/SDF;物理抽象:F4 LEF/DEF。
- 字段层面:EDA 数据格式、Liberty 功耗视图;消费库的两站:S2、S5。
总结
Liberty 把每颗单元在各 slew/load/PVT 下的时序、功耗、噪声拟合成表,供工具查表而非跑 SPICE;同一颗单元的 LIB/LEF/GDS 三视图必须同版,NLDM→CCS 的精度档与 slow/fast 多角必须在综合和签核间一致——库一旦错版或错角,后面所有时序数字都是在量另一颗芯片。