5.2 OCV 与 Derating:片上变异的保守计账 本节摘要:同一颗芯片内部,器件与连线的参数并不均匀——OCV(on-chip variation)就是对此计账的机制:启动路径按慢 derate 放大、捕获路径按快 derate 压缩,两本账各扣一层保守度;而 CRPR 再把共同路径上重复扣掉的保守度回收回来。本节给出完整的数值例子与三代 OCV 技术的对比。 「OCV」是签核报告里出现频率最高的缩写之一,全称 on-chip variation——片上变异。5.1 的角点解决的是芯片与芯片之间、批次与批次之间的差异;但同一颗芯片内部,不同区域的晶体管阈值、线宽、介质厚度也存在局部漂移。建立检查若按同一套延迟算启动与捕获两侧,等于假设"两侧的物理参数完全同步地坏"——这不可能。
本节摘要:同一颗芯片内部,器件与连线的参数并不均匀——OCV(on-chip variation)就是对此计账的机制:启动路径按慢 derate 放大、捕获路径按快 derate 压缩,两本账各扣一层保守度;而 CRPR 再把共同路径上重复扣掉的保守度回收回来。本节给出完整的数值例子与三代 OCV 技术的对比。
「OCV」是签核报告里出现频率最高的缩写之一,全称 on-chip variation——片上变异。5.1 的角点解决的是芯片与芯片之间、批次与批次之间的差异;但同一颗芯片内部,不同区域的晶体管阈值、线宽、介质厚度也存在局部漂移。建立检查若按同一套延迟算启动与捕获两侧,等于假设"两侧的物理参数完全同步地坏"——这不可能。OCV 的计账方式因此是不对称的:建立账把启动路径放大(late derate)、把捕获路径缩小(early derate),让"启动最慢而捕获最快"这一不可能同时发生的组合成为签核口径。保守度由此而来,问题只是扣多少、怎么扣、以及扣多了怎么退。
derate 用百分比表达,写在约束或场景配置里:
# 建立检查:启动侧延迟放大 5%,捕获侧延迟压缩 5%(数值为示意) set_timing_derate -early 0.95 -late 1.05 -cell_delay -net_delay # 保持检查方向对调:启动侧压缩、捕获侧放大 set_timing_derate -early 0.95 -late 1.05 -cell_delay -net_delay -clock ...(按场景区分)
典型的 derate 量级在 3% 到 10% 之间,工艺越先进、片内变异占比越大,数值越高。两个工程细节:其一,derate 只作用在时序弧上且分单元与互连两类,库的建立保持要求本身不 derate;其二,保持账的方向与建立账相反——保持检查里启动路径取快、捕获路径取慢,derate 的乘数随之对调。报告里 derate 会显式打折显示,读报告时要留意哪些行被放大或缩小过。

第一代(flat OCV)就是上面的单一百分比,简单但粗:短路径与深路径吃同一比例的保守,逻辑深度大的路径被扣得离谱。第二代(AOCV,advanced OCV)按"路径深度与物理距离"查表:统计上,串联的级数越多、跨越的面积越大,局部变异相互抵消得越多,derate 随深度递减——深路径不必再按最深悲观扣。第三代(POCV/LVF,parametric OCV / liberty variation format)更进一步,直接给每条弧延迟的统计标准差 sigma,STA 按"均值加 N 倍 sigma"合成路径分布,保守度精确到弧而非路径。三代的演进方向一致:把"一刀切的悲观"换成"有物理依据的、逐级收缩的保守"。
| 维度 | flat OCV | AOCV | POCV / LVF |
|---|---|---|---|
| 保守度粒度 | 全局单值 | 按路径深度与距离 | 按弧的 sigma |
| 数据来源 | 经验百分比 | 深度距离表(HSpice 蒙特卡洛标定) | 库文件内建变异格式 |
| 工具成本 | 最低 | 中(要带物理信息) | 中高(库大、运算多) |
| 典型用途 | 成熟工艺签核 | 28nm 至 16nm 主力 | 16nm 以下主流 |
| 与 CRPR 的关系 | 必须搭配 | 必须搭配 | 搭配,回收逻辑同源 |
不对称 derate 制造了一个逻辑矛盾:公共时钟段同时被启动侧放大、被捕获侧缩小——同一段物理连线不可能既是 63ps 又是 57ps。CRPR(clock reconvergence pessimism removal,亦称 CPPR)识别启动与捕获时钟路径的公共部分,把两侧 derate 的差额从保守度里退回。数值例子:公共段 60ps、derate 差 10%,回收 6ps;对一条裕量本来就只有几皮秒的关键路径,6ps 往往是"违例"与"干净"的区别。注意 CRPR 依赖布线后的真实时钟拓扑,ideal clock 阶段谈 CRPR 没有意义;且启用 AOCV/POCV 时回收逻辑同源成立,只是数值按对应模型计算。
⚠️ 常见坑:derate 数值是签核政策的一部分,改动必须走评审——它直接平移所有裕量数字。把 derate 从 5% 悄悄改成 3% 让报告变干净,等于把片上变异的风险签给了硅片。
💡 关键直觉:OCV 家族的每一代技术都在回答同一个问题——保守度应该扣在哪里才既安全又不过度。答案的演化方向是"越靠近物理分布本身",这与下一节 SSTA 的思想一脉相承。
derate 的作用范围还有一个层次可选:按时钟网与数据网分别设值。时钟树的变异直接影响偏斜,很多流程对时钟网 derate 得比数据网更保守,或者反过来——用时钟树的综合质量数据为它争取更小的 derate。无论取哪种政策,两条纪律不变:数值进政策文档带出处;报告复核时确认 derate 实际生效的范围与你以为的一致——derate 只打在时钟网上却以为全网生效,是政策执行走样的常见案例。另一个核对点是 net delay 与 cell delay 的开关:互连与单元的变异比例随工艺而变,只对单元 derate 的老政策放在先进工艺上会系统性低估互连变异,签核前值得对一遍配置。
角点的穷举加上 OCV 的保守,签核是安全了,但代价是悲观度的叠加。有没有办法直接对分布建模、按良率说话?下一节 SSTA 给出统计学派的回答,以及它至今的现实处境。