三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

保姆级教程:用ICC2搞定芯片供电网络(PNS)全流程,从约束设置到IR Drop分析避坑

保姆级教程:用ICC2搞定芯片供电网络(PNS)全流程,从约束设置到IR Drop分析避坑

ICC2实战指南:芯片供电网络设计与IR Drop避坑全解析

在芯片物理设计领域,供电网络设计(Power Network Synthesis)直接关系到芯片的可靠性、性能和良率。作为Synopsys ICC2工具链中的关键环节,PNS流程涉及从约束设置到IR Drop分析的全套技术细节。本文将从一个实战工程师的视角,拆解PNS全流程中的核心操作与常见陷阱。

1. PNS基础准备与环境配置

供电网络设计不是孤立环节,需要与前后流程紧密衔接。在启动PNS前,必须确保已完成以下基础工作:

  • Floorplan验收:确认core利用率在70%-80%之间,macro摆放满足时序和congestion要求
  • 电源规划预分析:通过早期功耗估算确定VDD/VSS的电流需求分布
  • 工艺文件检查:确保tech LEF中包含所有金属层的电阻、电容参数
# 典型初始化命令示例 set_app_options -name plan.power.mesh_analysis_mode -value advanced set_power_analysis_mode -method static -corner max

金属层策略对PNS效果有决定性影响。以常见的9层金属设计为例:

金属层用途典型宽度(um)推荐密度(%)
M9/M8全局电源网格2.0-5.080-90
M7/M6区域电源布线1.0-2.050-70
M5-M3信号布线层0.5-1.0<30
M2/M1标准单元供电轨0.1-0.3100

注意:高层金属(M7-M9)的电阻较低,适合作为主要供电通道,但会占用宝贵的布线资源,需要平衡供电需求和布线拥塞风险。

2. 约束设置实战技巧

PNS的核心在于约束的精准定义。ICC2提供两种建模方式:基于模板(template-based)和基于约束(constraint-based)。对于复杂设计,推荐采用约束驱动方法。

2.1 分层约束策略

金属层约束是基础,需要特别注意:

# 设置M8/M9层strap参数 set_fp_rail_constraints \ -set_global \ -layer_limits {M8 0.5 1.5} \ -layer_limits {M9 0.5 1.5} \ -spacing interleaved

关键参数解析:

  • -spacing:可选minimum或interleaved,后者能提供更均匀的电流分布
  • -offset:strap与macro边缘的距离,通常设为2-3倍线宽
  • -extend_to_boundary:是否延伸到芯片边界,影响供电均匀性

2.2 特殊结构约束

对于macro群组的供电,需要单独设置ring约束:

# 为DSP宏阵列设置供电环 create_fp_placement_blockage -name dsp_blk -boundary {100 100 300 300} set_fp_rail_constraints \ -add -group -name dsp_ring \ -blockage dsp_blk \ -layers {M7 M8} \ -widths {1.2 1.5} \ -spacing 1.8

常见陷阱:

  1. Commit不可逆:执行commit_fp_rail前务必确认约束正确
  2. Virtual Pad误用:虚拟电源pad仅用于分析,不能替代实际pad
  3. Density冲突:strap密度过高会导致信号布线资源不足

3. IR Drop分析与优化

IR Drop是评估供电网络质量的核心指标。ICC2提供静态和动态两种分析方法,在PNS阶段主要采用静态分析。

3.1 热力图解读技巧

执行合成命令后生成的热力图需要关注:

synthesize_fp_rail \ -power_budget "inputs/power.scenarios" \ -voltage_drop_analysis \ -output "reports/pns_initial"

热力图颜色解读:

  • 绿色:IR Drop < 2% (理想状态)
  • 黄色:2% < IR Drop < 5% (可接受但需监控)
  • 红色:IR Drop > 5% (必须修正)

典型修正策略对比:

问题现象根本原因解决方案副作用
局部红点高电流密度区域增加局部strap密度可能增加congestion
大面积黄色区域电源入口不足添加virtual pad分析需求需修改floorplan
边缘红色带状core ring宽度不足增大core ring线宽(10-20%)增加芯片面积
随机分布红点底层rail连接不充分减小M1 rail间距(15-30%)可能影响std cell密度

3.2 进阶优化技巧

对于高性能设计,可采用分层供电策略:

# 设置多级供电网络 set_fp_rail_strategy \ -name hierarchical_power \ -voltage_area { \ {va1 0.9V {100 100 500 500}} \ {va2 1.0V {600 100 1000 500}} \ } \ -isolation_buffer {CLKISO*}

经验法则:当芯片功耗超过5W或工作频率>1GHz时,必须考虑电压域隔离和层次化供电方案。

4. 物理实现与签核验证

PNS完成后,需要与后续流程协同验证。关键检查点包括:

4.1 与Placement的协同

电源网络会影响标准单元布局,需要设置合适的blockage:

# 设置M3层partial blockage set_pnet_options \ -layers {M3} \ -blockage_type partial \ -min_space 0.2 \ -avoid_density 0.4

密度平衡公式

可用布线资源 = 金属层面积 × (1 - PG密度) × 布线效率

建议保持各层PG密度与信号布线需求的平衡。

4.2 最终签核检查清单

在tapeout前必须完成的电源验证:

  1. 电迁移检查
    check_pg_em -nets {VDD VSS} -current_density 1.0e6
  2. 连接性验证
    verify_pg_nets -pad_pins -macro_pins -std_cells
  3. IR Drop一致性
    compare_voltage_drop -baseline pns_initial -current pns_final

常见工程问题处理:

  • ECO阶段电源变更:使用update_power_plan命令而非重新PNS
  • 多电压域交叉:确保level shifter供电正确
  • Analog模块供电:需要单独约束模拟电源的滤波电容

供电网络设计既是科学也是艺术,需要在工具自动化与工程师经验之间找到平衡点。掌握这些实战技巧后,面对复杂芯片设计时就能构建出既满足IR Drop要求又不造成布线拥塞的优质供电网络。

← 返回列表