当前位置:首页>排行榜>Multi-Vt怎么选:HVT_SVT_LVT_ULVT的leakage-delay权衡

Multi-Vt怎么选:HVT_SVT_LVT_ULVT的leakage-delay权衡

  • 更新时间 2026-10-08 10:14:58
Multi-Vt怎么选:HVT_SVT_LVT_ULVT的leakage-delay权衡

Vt 怎么决定速度与漏电:从指数级亚阈值漏电说起

阈值电压 Vth 本质上描述的是沟道反型所需的栅压。把它压低,晶体管会更早开启,饱和电流 Ion 变大,门延迟自然下降。问题是,低 Vth 同时会让截止状态 barrier 变矮,亚阈值漏电 Isub 急剧增加。

工程上常用的简化关系是:

  • 延迟:,其中  与速度饱和有关,大致在 1~1.3 之间;
  • 漏电:, 是亚阈值摆幅,传统工艺下约 70~90 mV/decade。

这两个公式的量级差异,就是 multi-Vt 设计的全部痛苦来源。延迟随 Vth 变低只是多项式改善,漏电却是指数恶化。也就是说,把 Vth 往下调 100 mV,可能只换来 15%~25% 的速度,却能让静态漏电增加一个数量级甚至更多。后端做 ECO 时,经常会遇到“换个 LVT 就把 timing 救了,但 power 直接炸了”的情况。

还得加上短沟道效应。DIBL(Drain-Induced Barrier Lowering)会让有效 Vth 随 Vds 增加而进一步降低,低阈值单元受此影响尤其明显。同时,Vth 越低,工艺波动对漏电和延迟的相对影响也越大。这就是为什么 ULVT 往往不是“快就完了”,而是需要专门考虑 corner 和良率。

四种阈值 flavor 在库里的真实定位

同一个工艺节点下,四种阈值并不是简单的高中低档位,而是对应完全不同的使用场景。

  • HVT
    (High Vt):漏电最低,速度最慢。通常留给非关键寄存器、always-on 但翻转很少的组合逻辑、retention 电路,或者功耗优先的区域。
  • SVT
    (Standard Vt):默认选择。大多数普通标准单元都用它,时序/漏电相对均衡,是版图实现中最先铺满的 flavor。
  • LVT
    (Low Vt):速度提升明显,漏电显著增加。用于 setup 吃紧的关键路径、高扇出 net、clock gating enable/path 等。
  • ULVT
    (Ultra-Low Vt):极限速度,极限漏电。一般只在“实在没有其他办法”时才用,比如最深组合逻辑级、memory sense amp、时钟树根节点,或者高频 CPU 那几条关键路径。

以一个 28 nm HKMG 平面工艺为例,HVT 到 ULVT 的 Vth 跨度大概在 150~200 mV 左右。漏电倍数关系非常夸张:HVT 作为基线,SVT 可能是它的 3~8 倍,LVT 15~40 倍,ULVT 动辄 50~300 倍。延迟方面,从 HVT 换到 ULVT 通常能有 30%~50% 的提升空间。这些数字在不同 PVT 下变化很大,最可靠的做法还是直接读 .lib 里同条件、同驱动、同扇出的 leakage 和 delay 条目。

有人误以为低 Vt 单元一定面积更大。其实如果 channel length 和 drive strength 相同,单纯改变阈值电压通常不改变单元 footprint;代价主要体现在工艺_mask set(不同 workfunction 金属层)和漏电/热预算上。只有在把 HVT 和更长的 channel length(比如 L  variants)一起用时,才会真正变大。

后端分配 Vt 的工艺约束:远不止 setup 一件事

物理实现阶段,典型流程是先用 SVT 跑通 placement 和 initial route,然后 STA 揪出 failing path,再把关键单元换到 LVT 甚至 ULVT,同时把有正 slack 的路径降级到 HVT。这看起来像个自动化优化问题,但实际操作中受限很多。

时序修复的方式不只换 Vt。有时候把单元 size 加大或者调整逻辑级数就能补 slack,前者花面积和动态功耗,后者花面积和走线资源;换低 Vt 则是直接透支静态功耗。选哪种要看具体 deficit:几 ps 的小缺口用 sizing 更干净,几十 ps 的大缺口才值得上 LVT;如果是整条长链都快炸了,可能得把其中 2~3 级改成 ULVT,但要把它们圈在周界里以便复查漏电。

漏电预算是硬边界。一个 block 的 static power 在 leakage corner(通常是 FF/HT 或根据工艺定义的高温 corner)必须低于目标。由于漏电随温度指数上升,ULVT 占比过高很容易触发“漏电升高→温度升高→漏电继续升高”的正反馈。很多项目会给每个 IP 或层级设置 ULVT 使用率上限,比如超过 30% 就要重新评估封装散热能力。MCMM signoff 时,动态功耗在 fast-cold corner 看,漏电在 hot corner 看,两种 worst case 可能完全不一样。

hold、IR drop、clock tree 也会限制 Vt 选择。数据路径换成 LVT 变快,可能在 fast corner 制造 hold 违例,尤其是 short path 和跨时钟域地方。时钟树如果大面积用 ULVT,buffer 常年导通,静态漏电会推高 VSS bounce;同时 clock net 是全局 net,高漏电还会加大 EM/IR 风险。多数设计中,时钟树根部用 LVT 或受控 ULVT,中部和叶子保持 SVT,靠 skew 控制而不是一味求快。

FinFET 和 FDSOI 把选择又复杂了一层

进入 FinFET 时代,Vt 的调节主要通过 gate workfunction 金属完成,单元 footprint 基本不变。好在 FinFET 的 electrostatic 控制更好,subthreshold swing 能压到约 65 mV/dec,DIBL 也大幅下降,所以绝对漏电比平面工艺低很多。但 漏电随 Vth 变化的指数规律并没有消失,只是整体基线下移。自热效应和更高的 gate capacitance 意味着 ULVT 的动态功耗和散热压力依旧不可忽视。很多 7 nm、5 nm 设计会用机器学习或基于 sensitivity 的 Vt 分配工具,把 leakage cap 当成优化目标,而不是手动换 cell。

FDSOI 又提供了另一种思路:通过 body bias 动态移动有效 Vth。Forward Body Bias(FBB)可以把 SVT 推到接近 LVT 的速度,Reverse Body Bias(RBB)则能把 SVT 拉成类似 HVT 的低漏电模式。理论上一种物理 Vt 就能覆盖很宽的范围,但前提是引入 body contact、well tap 和偏置 Distribution network,这些都会占面积、引入 IR。实际项目里,body bias 和 multi-Vt 往往是组合拳:关键路径用 FBB+LVT,待机模块用 RBB+HVT。

另外,先进节点普遍存在 temperature inversion 现象。在低电压区域,延迟不一定随温度升高而增加,反而可能因为 Vth 下降、电流回升而变快。ULVT 单元对这一现象更敏感,因此“最快 corner”不一定是“最冷 corner”。多 Vt 混合设计 signoff 时,必须跑全温度扫点,确认低阈值路径在高温下不会变成新的 hold 或 race 瓶颈。

本文图片由AI辅助生成

随机文章