当前位置:首页 > EDA > 电子设计自动化
[导读]在芯片设计领域,Synopsys ICC2/Cadence Innovus 是数字后端(P&R)的事实标准,但其高昂的授权费用将许多学术团队与初创公司拒之门外。OpenROAD 项目旨在提供一套完全开源、License-free 的 RTL-to-GDSII 全流程,让数字 ASIC 设计不再依赖商业 EDA。本文将解析 OpenROAD 的流水线架构,并与商业工具做务实对比。



在芯片设计领域,Synopsys ICC2/Cadence Innovus 是数字后端(P&R)的事实标准,但其高昂的授权费用将许多学术团队与初创公司拒之门外。OpenROAD 项目旨在提供一套完全开源、License-free 的 RTL-to-GDSII 全流程,让数字 ASIC 设计不再依赖商业 EDA。本文将解析 OpenROAD 的流水线架构,并与商业工具做务实对比。


一、OpenROAD 整体架构:RTL → GDSII 的七大阶段


OpenROAD 采用"单一可执行 + 插件式 Flow"的设计,核心命令 openroad -no_init flow.tcl 即可驱动全流程。其内部逻辑划分为七个顺序阶段:


阶段 对应 OpenROAD 命令/插件 功能说明


1. 综合 (Synthesis) Yosys 读入 RTL,映射标准单元,输出 .v 网表


2.  Floorplan floorplan 芯片尺寸、Core/IO 环、电源网格规划


3.  Placement place_opt_design (RePlAce) 全局 + 精细放置,含 Timing-Driven 优化


4.  CTS (Clock Tree) clock_tree_synthesis (TritonCTS) 插入时钟缓冲器与树结构


5.  Routing route_opt_design (TritonRoute) 全局 + 精细布线,支持 DRC/LVS 检查点


6.  Fill / Metal Fill fill_insertion 添加 Dummy Metal 满足 Foundry 密度规则


7.  GDSII 写出 write_gds 生成最终 GDSII 或 OASIS 文件


二、实战:最小可运行 Flow(基于 Sky130 PDK)


下面以 Google/SkyWater sky130A 工艺为例,展示关键配置文件与调用方式。


1. 环境准备与 PDK 变量


export OPENROAD_FLOW_PATH=/opt/openroad-flow-scripts/flow

export PDK_ROOT=/opt/pdks/sky130A

export DESIGN_NAME=my_asic_top



2. 核心 Flow 脚本(精简版 flow.tcl)


read_lef $::env(PDK_ROOT)/libs.ref/sky130_fd_sc_hd/lef/sky130_fd_sc_hd.lef

read_def $::env(DESIGN_NAME).def   ; # 或由 floorplan 新建

read_verilog $::env(DESIGN_NAME).v  ; # Yosys 综合输出网表


link_design $::env(DESIGN_NAME)


# Floorplan

floorplan -site unit -diegie "0 0 1000 1000" -core_space 20 -channel 50


# Placement

place_opt_design


# CTS

clock_tree_synthesis -lut $::env(PDK_ROOT)/cts_lut.txt


# Routing

route_opt_design


# Metal Fill

fill_insertion -connect_to_power VDD -connect_to_ground VSS


# 输出

write_verilog ${DESIGN_NAME}_post_pnr.v

write_def    ${DESIGN_NAME}.def

write_gds    -units 2000 ${DESIGN_NAME}.gds



3. 启动命令


openroad -no_init flow.tcl



要点提示:初次运行建议加 -verbose 并分步注释阶段,确认 Floorplan 尺寸与 Power Ring 定义无误后再跑全流。


三、OpenROAD vs 商业后端工具(ICC2 / Innovus)


维度 OpenROAD (开源) Synopsys ICC2 / Cadence Innovus


授权费用 ✅ 免费 (BSD-3-Clause) ❌ 商业 License,价格昂贵


工艺支持 需 Foundry 开放 LEF/DEF/CDL(SkyWater、GF180 等) ✅ 主流 Foundry 全支持(TSMC/Samsung/UMC)


P&R 质量 ⚠️ 对中低密度设计可达 tape-out 水平,时序收敛稍弱 ✅ 业界标杆,复杂设计更成熟


时序分析 内嵌 OpenSTA(精度 OK,需正确约束) Primetime / Tempus(黄金参考)


DRC / LVS 依赖外部工具(Magic / Klayout / Calibre) 内嵌或无缝调用 Calibre


脚本生态 Tcl + Python,社区活跃 成熟 Tcl 命令集 + 丰富 GUI


适合场景 学术研究、Startup MPW、教学、开源 SoC 商用 ASIC(28nm 及以下)、大批量产品


结论:OpenROAD 目前完全可胜任 130nm~28nm 开源工艺下的流片需求(已有多款 chip 成功 tape-out,如 efabless Caravel),但在 7nm 以下及超大设计上仍需商业工具。


四、常见坑与规避建议


1. LEF/DEF 版本不匹配  

  TritonRoute 要求 LEF Inline 版本 ≥ 5.8,若用旧 PDK 需确认或转换。


2. 时钟树未定义 create_clock  

  CTS 前必须在网表中或 Flow 中用 create_clock 定义主时钟,否则 CTS 自动跳过。


3. Power Strap 未连至 Std Cell VDD/VSS  

  Floorplan 阶段需显式 add_global_connection -net VDD -inst * -pin VDD 并 global_connect,否则标准单元无电。


4. Macro 方向导致 Congestion  

  手动指定 Macro Orientation (-orient N) 并加 Halo 区,防止局部布线拥塞。


五、结语


OpenROAD 的出现标志着数字后端工具链正式进入开源时代。虽然它在极端先进工艺与自动化程度上尚不及 ICC2/Innovus,但对于采用开源 PDK(SkyWater 130nm、GF180)的项目而言,OpenROAD 已能提供从 RTL 到 GDSII 的完整、可复现、可审计的后端流程——是降低 ASIC 入门门槛的重要里程碑。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭