数字IC后端流程:从布局到DRC签核的关键操作节点
在ASIC/SoC物理实现中,数字后端(Physical Design) 是将综合网表变成可流片GDSII的关键阶段。以Synopsys ICC2或Cadence Innovus为主流工具,完整流程可拆为六大关键节点。本文按实际操作顺序,指出每个节点的核心任务与签核要点。
一、数据准备与初始化(Init)
输入:综合网表(.v)、标准单元/IO/Macro库(.lib/.lef)、工艺文件(.tf/.tech.lef)、SDC约束、UPF(低功耗)
关键操作:
• 创建或导入工艺文件(Technology File),确认layer stack、via defs、pitch匹配Foundry
• 设置power/ground net名称(VDD/VSS)
- 读入网表与约束:import_design -format verilog -file netlist.v
• 执行check_design排除未定义Cell或Port mismatch
签核点:check_design无Error;所有Macro/Std Cell可被link_design解析。
二、Floorplan(尺寸、电源环、宏摆放)
2.1 Core/Die尺寸与Aspect Ratio
# Innovus示例
floorPlan -site core_site -d 50 50 50 50 0 0 ; # Die=Core+50um margin
setDieArea 0 0 2000 2000 ; # 单位um
2.2 Power Ring / Stripes
• 围绕Core画VDD/VSS Ring(通常宽≥10um,同层或多层)
• 加垂直/水平Power Stripes连接Macro电源引脚
- 用verifyPowerVia检查电源通孔(Via Stack)连通性
2.3 宏(Macro/硬核)预布局
• 按总线方向、靠近对应IO分组放置(例:DDR Ctrl靠近DDR IO Bank)
- 加Halo(Keepout Margin,通常20~50um)防标准单元侵入
• 设Orientation(N/E/S/W)使Macro引脚朝向Core方便布线
签核点:checkFloorplan无Violation;所有Macro有Halo且电源连接可高亮。
三、Placement(标准单元放置 + 优化)
place_opt_design -effort medium ; # 含coarse place + legalize + opt
• 开启MCMM(Multi-Corner Multi-Mode)时绑定Scenario
• 若高密度,可先place_coarse再place_opt_design -incremental
- 关注Congestion Map:红区>85%需考虑调整Floorplan或拆分大Macro
签核点:report_qor中Setup/Hold Slack非负(或已知可修);check_place无Legalization Error。
四、Clock Tree Synthesis(CTS)
# 指定时钟根引脚与Buffer List
set_clock_tree_options -root_clock [get_clocks clk] \
-buffer_cells {CLKBUFX2 CLKBUFX4} \
-inv_buffer_cells {CLKBUFX2 CLKBUFX4}
clock_opt_design -only_cts
• 用report_clock_tree -summary看Latency/Skew
• 插Clock Gating Check(Setup on Enable)
• Post-CTS用time_design -pre_route重分析时序(应改善)
签核点:Skew < Spec(通常<100ps@28nm),Clock Gating Setup OK,No unclocked reg。
五、Routing + 物理验证(DRC/LVS)
5.1 NanoRoute / TritonRoute
route_opt_design -effort high
# 或分开:
# route_global; route_track; route_detail
• 开启antenna check并在Route后自动插入Diode Cell
• 若存在short,用editCap -fix_drc或手动ECO
5.2 金属填充(Metal Fill / Dummy Metal)
insert_metal_fill -connect_power_ground true \
-min_density 0.20 -max_density 0.80
必须满足Foundry Density Rule(通常Min 15%~20%, Max 80%~85%)。
5.3 物理验证签核
• DRC:Calibre drc 或工具内嵌 → 0 DRC Violations(允许Waive List)
- LVS:Calibre lvs → LVS Passed, No Mismatches
• Antenna:确认Diode Cell已修所有Antenna Violation
- ERC(Latch-up / Antenna / Power Ground Short):无Open/Short on VDD/VSS
签核点:Calibre DRC Clean + LVS Pass + Antenna Clean + Power Net Continuity Verified。
六、Export GDSII & LEF/DEF
# 写出GDSII(含填充)
write_gds -compress -units 2000 -merge_tech_lib \
-output design_tapeout.gds
# 写出LEF(如需反向标注到顶层)
write_lef -output design.lef
确保GDSII包含:
• 所有Metal Fill(已连接PG)
• Text Layer(Label)用于后段LVS
• 不包含PG Short / DRC错层
七、常见卡点与排查
阶段 卡点 排查
Floorplan Power Ring 断开 highlightPowerNet; 查Via Stack是否跨层
Placement 大量Congestion 看Macro Halo是否过小;考虑Power Strip密度
CTS Skew过大 检查Clock Root是否正确;有无被gated过早
Route Shorts无法修 是否漏设ndr(Non-Default Rule)宽线;Layer Direction对错
DRC Density Fail Metal Fill参数不对 → 重跑 insert_metal_fill
八、结语
数字后端从布局到DRC签核是一条“接力链”:Floorplan保电源与Macro位置合理 → Placement保时序可收敛 → CTS保时钟质量 → Route+Fill保 manufacturable → DRC/LVS是最终放行条件。在每个节点执行对应签核检查(check_design / check_floorplan / report_qor / Calibre Clean),就能把流片风险降到最低。





