跑通 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 容器内执行方案 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中断恢复:流程可从断点续跑;若文件损坏报错,按阶段清理重跑:
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.json4. 最终产物
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 框架。常见问题速查
表格
复制
如果你想在本地跑通,建议先用 Docker 方案验证流程,跑通后再决定要不要本地编译。需要的话,我可以把这套流程整理成一份可直接粘贴执行的脚本文件给你。
全部文件
预览或者下载文件