新建会话
Ctrl
K
插件 定时任务 PPT 集群 深度研究 文档 网站 表格 设计
Kimi Work Kimi Code
  • 获取应用程序
  • 关于我们
  • Language
  • 帮助

OpenROAD 例

跑通 ORFS 的 sky130hd/ibex 的方法
Guide to Running ORFS Sky130HD Ibex Flow in OpenROAD
The user wants instructions for running ORFS sky130hd/ibex. I could give a guide. The sandbox may not have enough resources/time (OpenROAD install is heavy, flow takes ~30min+). Best approach: provide a detailed guide. Should I search for the latest install instructions? My knowledge is fairly solid on ORFS. A quick search could confirm current setup (dependencies installer, etc.). But efficiency: I can answer from knowledge; ORFS setup is well documented and stable. Maybe one quick search to verify current branch/dependencies commands. I'll do one search round to be safe.
我先查一下 ORFS 最新的官方安装与运行说明,确保命令和当前版本一致。
搜索网页
OpenROAD-flow-scripts setup install dependencies 2025 OpenROAD-flow-scripts ibex tutorial run flow make gui_final ORFS DependencyInstaller.sh download_openroad prebuilt binary
26 个结果
Running sky130hd/ibex in ORFS: Installation, Execution, and Troubleshooting
Provide a clear step-by-step guide for running sky130hd/ibex in ORFS. Include installation options (Docker recommended, local build, prebuilt binaries), running the flow, viewing results, reading logs/reports, comparing with metadata golden, troubleshooting tips (e.g., gui_final needing DESIGN_CONFIG specified — the common pitfall from issue #467), WSL notes.
Should I ask about their environment? Could just cover all cases. Keep it practical. No need to actually run it in sandbox (heavy build, not feasible). Give the guide.

跑通 ORFS 的 sky130hd/ibex 完整指南

环境要求:Linux(官方支持 Ubuntu 20.04/22.04、RockyLinux 9、Debian 11;Windows 请用 WSL2 + X Server),ibex 在 8 核 / 16GB 内存机器上全流程约需 8 分钟。

第一步:安装环境(三选一)

方案 A:Docker(官方推荐,最省心)

bash
复制
git clone --recursive https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts
cd OpenROAD-flow-scripts

# 拉取预构建镜像(自带 OpenROAD/Yosys/KLayout 全部依赖)
docker pull openroad/orfs:latest

# 后续所有 make 命令都在 Docker 容器内执行
更新环境时只需 docker pull openroad/orfs:latest 重新拉取。

方案 B:预编译二进制(不想编译源码时)

bash
复制
# 1. 自行安装 KLayout >= 0.28.8 和 Yosys >= 0.58
# 2. 从 Precision Innovations 的 GitHub releases 下载对应发行版的 .deb 包:
sudo apt install ./openroad_2.0_amd64-ubuntu22.04.deb

# 3. 克隆 ORFS(非递归即可)
git clone https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts.git
cd OpenROAD-flow-scripts
export OPENROAD_EXE=$(command -v openroad)
export YOSYS_EXE=$(command -v yosys)

方案 C:本地源码编译(想改工具源码时)

bash
复制
git clone --recursive https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts
cd OpenROAD-flow-scripts

sudo ./setup.sh                # 自动安装全部依赖(需 sudo)
./build_openroad.sh --local    # 本地编译,约需 0.5~2 小时

# 验证安装
source ./env.sh
yosys -help
openroad -help
注意 --recursive 必不可少(子模块包含 OpenROAD 工具源码),漏了就 git submodule update --init --recursive 补上。

第二步:先用默认 gcd 设计自检

make 的默认设计是 nangate45/gcd,先跑它验证环境没问题:
bash
复制
source ./env.sh      # Docker 方式可跳过
cd flow
make                 # 跑 gcd,几分钟完成
make gui_final       # 能弹出 GUI 看版图 = 环境 OK

第三步:跑 sky130hd/ibex 主流程

bash
复制
cd flow
make DESIGN_CONFIG=./designs/sky130hd/ibex/config.mk
整条流水线自动执行:综合(Yosys) → 布局规划 → IO/宏摆放 → PDN 电源网格 → 全局/详细布局 → CTS → 全局布线 → 详细布线 → GDS 导出。
ibex 在该配置下的设计目标:Die 约 798×800 µm,时钟周期 17.4 ns。
中断恢复:流程可从断点续跑;若文件损坏报错,按阶段清理重跑:
bash
复制
make clean_synth      # 只清综合
make clean_route      # 只清布线
make clean_all        # 全清重来

第四步:检查结果(上一轮讲的指标在这里落地)

1. 看日志定位阶段

bash
复制
ls logs/sky130hd/ibex/base/
# 1_1_yosys.log  2_1_floorplan.log  3_1_place_gp.log
# 4_1_cts.log    5_1_grt.log        5_2_route.log  6_report.log ...
任何阶段失败,先看对应日志的 [ERROR] 行。

2. GUI 可视化 + 指标查询

bash
复制
make DESIGN_CONFIG=./designs/sky130hd/ibex/config.mk gui_final
⚠️ 常见坑:gui_final 也必须带 DESIGN_CONFIG,否则它默认去加载 nangate45/gcd,会报 No rule to make target 'gui_6_final.odb'。
GUI 的 Tcl 命令窗口里:
tcl
复制
report_design_area          # 面积,ibex 约 191262 µm²、30% 利用率
report_wns; report_tns      # 时序裕量
report_power                # 功耗
界面上可以直接看:拥塞热图、时钟树、关键路径高亮。

3. 对照官方 golden 值(核心学习点)

bash
复制
# 汇总本次所有指标
make DESIGN_CONFIG=./designs/sky130hd/ibex/config.mk metadata

# 与官方及格线对比
cat designs/sky130hd/ibex/metadata-base-ok.json
cat designs/sky130hd/ibex/rules.json
metadata-base-ok.json 里是官方的期望 WNS/TNS、面积、DRC 数;rules.json 定义了每项指标的容差——这就是 CI 判定"设计是否达标"的完整机制。

4. 最终产物

plain
复制
flow/results/sky130hd/ibex/base/6_final.gds    # 版图
flow/results/sky130hd/ibex/base/6_final.v      # 门级网表
flow/results/sky130hd/ibex/base/6_final.spef   # 寄生参数

第五步:做参数探索实验(可选,进阶)

改 designs/sky130hd/ibex/config.mk 做对照实验,体会"配置 → 指标"的因果链:
make
复制
export CORE_UTILIZATION = 30        # 提高/降低利用率,看面积 vs 拥塞
export ABC_AREA = 1                 # 综合阶段面积优先(默认是速度优先)
改完 make clean_synth && make DESIGN_CONFIG=... 重跑,对比两次的 metadata 输出。这正是 ORFS 官方教程推荐的 PPA 探索方法;想全自动调参可以看同目录的 autotuner.json + AutoTuner 框架。

常见问题速查

表格
复制
现象原因 / 解决
make gui_final 报 no rule to make target没传 DESIGN_CONFIG,带上同一份 config 重试
远程服务器打不开 GUISSH 加 -Y 参数开启 X11 转发
布线阶段 DRC 违规多降低 CORE_UTILIZATION 或 PLACE_DENSITY 重跑
子模块为空导致 build 失败git submodule update --init --recursive
想换工艺节点DESIGN_CONFIG=./designs/nangate45/ibex/config.mk 或 asap7/ibex,命令格式完全一致
如果你想在本地跑通,建议先用 Docker 方案验证流程,跑通后再决定要不要本地编译。需要的话,我可以把这套流程整理成一份可直接粘贴执行的脚本文件给你。
全部文件
预览或者下载文件
内容由AI生成,请仔细甄别 © 2026 北京月之暗面科技有限公司 京ICP备2023011302号-14 京B2-20240852 京公网安备11010802043150号