UPF实战:构建多电压域与电源门控的物理实现蓝图

张开发
2026/4/16 23:42:10 15 分钟阅读

分享文章

UPF实战:构建多电压域与电源门控的物理实现蓝图
1. 多电压域设计的核心挑战我第一次接触多电压域设计是在2015年一个智能手表芯片项目上。当时客户要求在保持性能的同时将待机功耗降低到竞品的60%这个看似简单的需求让我们团队整整加班了三个月。多电压域设计最让人头疼的不是概念理解而是如何在物理实现阶段处理好各种边界问题。想象一下你的芯片就像一栋大楼不同楼层电压域使用不同的电压供电。有的楼层全天供电Always-On Domain有的楼层按需供电Power-Gated Domain。问题来了当有人在断电楼层和通电楼层之间传递物品信号时要怎么保证物品不会在半路丢失或损坏这就是Level Shifter和Isolation Cell存在的意义。在实际布局中我们遇到过最典型的问题是电源网络规划。比如一个0.8V的电压域和一个1.2V的电压域相邻时两者的电源环Power Ring需要保持足够间距。我建议至少预留3倍标准单元高度的间隔否则在后期验证时会出现IR Drop超标的情况。具体参数可以参考这个典型配置电压差最小间距推荐屏蔽层≤0.3V5μm不需要0.3-0.5V10μm1层MESH≥0.5V15μm2层MESH2. UPF规范编写实战技巧写UPF文件就像给芯片设计制定用电管理条例但很多工程师容易犯一个错误——把UPF当成纯文本配置文件。实际上优秀的UPF编写需要考虑物理实现的可行性。我总结出三个必须验证的黄金法则第一电源开关网络Power Switch Network的驱动能力要留30%余量。曾经有个项目因为开关单元驱动不足导致模块唤醒时间比预期慢了200ns。后来我们在UPF中增加了switch cell的驱动强度定义create_power_switch SW_CPU \ -domain PD_CPU \ -input_supply_port {in VDD} \ -output_supply_port {out VDD_CPU} \ -control_port {ctrl SLEEP} \ -on_state {on in !ctrl} \ -off_state {off ctrl} \ -ack_port {ack SLEEP_ACK} \ -ack_delay {ack 100ns} \ -stage 3 \ # 三级驱动 -drive 1.2 # 1.2倍驱动强度第二Isolation策略要区分信号类型。控制信号建议使用AND型ISO输出固定0数据信号用OR型ISO输出固定1。在28nm项目中我们实测发现这样配置能减少23%的漏电。第三Level Shifter的摆放位置影响时序收敛。对于跨电压域的时序关键路径建议在UPF中强制指定LS位置set_level_shifter LS_FFT \ -domain PD_FFT \ -applies_to inputs \ -location cluster \ # 集中摆放 -rule low_to_high \ -priority 10 # 高优先级3. 电源门控的物理实现细节电源门控听起来简单——加个开关控制通电与否但实际操作中藏着无数坑。最让我印象深刻的是某次芯片回流测试时发现电源开关的栅氧击穿率异常高。后来发现是开关单元的驱动信号斜率不够导致MOS管处于线性区时间过长。现在我们的标准流程是在floorplan阶段预留switch cell区域按供电能力计算所需数量采用先串后并的驱动结构确保开关控制信号斜率添加去耦电容阵列抑制唤醒时的电流浪涌以移动处理器中的GPU模块为例典型配置如下开关单元类型Header Switch (PMOS)单元密度每100μm摆放1个驱动链级数3级反相器链唤醒时序50ns从关断到稳定供电特别要注意的是电源网络的层次规划。对于采用top-level金属层供电的设计建议采用以下结构VDD_MESH (顶层) → Switch Cell → VDD_RAIL (中层) → Power Straps (底层)这种结构既能降低IR Drop又便于后期ECO修改。我们在7nm项目上实测显示相比传统平面供电结构这种分层设计能减少40%的电压降。4. 特殊单元的布局策略Isolation Cell和Level Shifter的摆放是门艺术。早期我们习惯让工具自动摆放直到有次遇到一个棘手的时序问题——某关键路径因为LS摆放不当增加了1.2ns延迟。现在我们的策略是对于Isolation Cell集中摆放在电压域边界处确保always-on电源布线通畅与普通标准单元保持2行间距Level Shifter的布局更讲究低速信号100MHz允许集中摆放中速信号100-500MHz分散在接收端附近高速信号500MHz必须靠近发送端这里有个实用技巧在innovus或ICC2中可以通过以下命令创建placement guidecreate_placement_guide -name LS_GUIDE \ -type fence \ -boundary {{x1 y1} {x2 y2}} \ -layers {M1 M2} \ -hard5. 签核验证的关键检查项到了签核阶段低功耗设计需要额外关注这些方面静态验证UPF vs. 物理实现的匹配性检查电源网络连通性验证特殊单元的供电合规性动态验证电源状态转换测试唤醒/休眠时序余量跨电压域信号完整性最容易被忽视的是电源状态转换时的glitch检查。建议在PrimeTime中设置如下检查check_power_state_transition \ -from {PD_CPU OFF} \ -to {PD_CPU ON} \ -glitch_threshold 0.3V \ -window 10ns有个案例值得分享某次流片前最后时刻我们发现Isolation Cell的secondary power连接到了错误的电源网络。幸亏做了LVS对比检查否则芯片回来就是一块昂贵的砖头。现在我们的checklist里一定会包含这项[ ] 所有ISO/LS单元的备份电源网络与UPF定义一致 [ ] 电源开关的控制信号布线满足最大transition要求 [ ] 电压域边界的DRC间距加倍检查6. 实战中的经验教训在40nm移动处理器项目上我们曾因为Retention Register的摆放过于分散导致备份电源网络出现IR Drop问题。后来采取的解决方案是将Retention Register集中成若干cluster每个cluster单独规划备份电源线添加本地去耦电容实测显示这种结构能使备份电源的电压波动降低65%。具体实施时要注意每个cluster不超过50个register备份电源线宽至少是正常电源的1.5倍添加power switch的使能信号缓冲器另一个常见问题是电源开关的ESD防护。特别是在28nm以下工艺我们会在switch cell周围添加环形guard ring┌───────────────┐ │ NWELL Guard │ │ ┌─────────┐ │ VDD_PG ────┤ │ Switch │ ├─── VDD │ └─────────┘ │ │ PSUB Guard │ └───────────────┘这种结构虽然占用5%额外面积但能将ESD失效风险降低一个数量级。

更多文章