快速构建OpenROAD开发环境:配置、编译与运行

OpenROAD(Open Rapid Object-Oriented Design)项目旨在构建一个完整的、可重复的、开源的数字芯片后端设计流程(RTL-to-GDS)。它对教育、研究和初创芯片公司都极具吸引力,为数字芯片设计提供了强大的工具链,而无需昂贵的商业 EDA 工具。

本文将带你快速完成 OpenROAD 环境的配置、源码编译、并运行一个简单设计,从零开始掌握 OpenROAD 的基本使用方法。

环境配置

OpenROAD 项目提供了一个官方安装脚本 DependencyInstaller.sh,可以帮助你自动安装构建和运行所需的依赖组件,推荐使用 -all选项,这会安装所有支持的依赖组件,包括编译工具链、第三方库、以及部分必要的开源 EDA 模块(如 Boost、TCL、SWIG、Python 等)。

cd OpenRoad
sudo ./etc/DependencyInstaller.sh -all

在这里插入图片描述
这个脚本会根据你的操作系统类型自动判断需要安装哪些依赖包,并通过系统包管理器(如 apt 或 yum)拉取相应内容,同时也会下载并构建部分从源码安装的组件。

注意:该命令可能需要一定时间,具体取决于网络状况与构建速度。确保你具备管理员权限(sudo)并连接互联网。

执行完成后,你的系统将拥有一个适用于 OpenROAD 的完整开发环境,大多数用户可以直接进入编译阶段而无需手动安装其他工具。

如果需要调试OpenROAD代码,还需要手动安装gdb:

sudo apt-get install gdb

完成依赖安装后,可以通过以下方式验证系统是否具备了构建 OpenROAD 所需的关键工具和库:

  1. 检查核心工具是否存在
which cmake
which g++
which python3
which swig
  1. 检查Boost和TCL是否支持
dpkg -l | grep libboost
dpkg -l | grep tcl
  1. 重新运行安装脚本查看是否跳过
sudo ./etc/DependencyInstaller.sh -all

再次运行脚本不会重复安装已存在组件,而是跳过它们,你将看到提示如 “already installed”,表示依赖已安装成功。

在这里插入图片描述

编译与调试

OpenROAD 提供了一个官方封装的构建脚本 etc/Build.sh,它能够简化编译过程,并自动处理编译器选择、多线程构建、GUI 控制、日志输出等常见配置选项。

启动构建脚本

从项目根目录执行以下命令,即可使用默认配置启动编译流程:

./etc/Build.sh

默认行为如下:

  • 构建目录为 build/
  • 使用当前系统默认的 GCC 编译器
  • 编译所有模块(含 GUI)
  • 自动检测线程数(如 Linux 上使用 nproc)

参数说明

参数说明
-dir=DIR指定构建输出目录(默认是 build
-threads=N使用 N 个线程并行编译(默认是 CPU 核心数)
-compiler=gcc/clang指定使用的编译器
-no-warnings忽略警告(否则默认将警告视为错误)
-no-gui禁用 GUI(仅构建命令行工具)
-clean在编译前删除构建目录,强制全量重新编译
-keep-log保留编译日志,默认写入 build/openroad_build.log
-coverage启用代码覆盖率收集(用于开发测试)
-gpu启用 GPU 加速(实验性功能)

编译成功验证

OpenROAD编译可执行文件默认存放位置为./build/src/openroad,可以执行这个可执行文件来启动OpenROAD。

cd OpenRoad
./build/src/openroad

启动成功后可以进入如下界面,使用exit命令可以退出openroad:

在这里插入图片描述

编译调试环境

在开发或调试OpenROAD时,我们通常需要启用调试符号,并关闭优化,以便在调试器(如 gdb)中查看源代码、变量值与堆栈信息。OpenROAD 提供了对调试构建的良好支持。

可以使用etc/Build.sh脚本中的-cmake参数,向 CMake 显式传入调试配置项:

./etc/Build.sh -clean -no-gui -cmake='-DCMAKE_BUILD_TYPE=Debug' -keep-log -threads=4

说明:

  • -DCMAKE_BUILD_TYPE=Debug:设置构建类型为 Debug(包含调试符号,不进行优化)
  • -no-gui:可选,避免编译图形界面以缩短编译时间
  • -clean:每次编译前清理旧构建,避免缓存干扰
  • -keep-log:保留编译日志,方便定位编译错误
  • -threads:编译所使用的线程数,内存较小时可以手动将这个参数调小一点

如果你使用的是 clang 编译器,也可以添加-compiler=clang来切换工具链。如果你希望检查测试覆盖率,可以加上 -coverage 选项,这将额外为编译器加上 -fprofile-arcs 和 -ftest-coverage 等标志,生成覆盖率报告所需的中间数据。此外,-coverage选项在 etc/Build.sh脚本中默认就会将构建类型设置为 Debug,添加这个选项时可以不用手动向 CMake 显式传入调试配置项。

使用VSCode调试

VSCode 提供了轻量、高效的调试体验,搭配调试版 OpenROAD 可实现源码级调试。

1. 编译可执行文件

./etc/Build.sh -no-gui -clean -keep-log -cmake='-DCMAKE_BUILD_TYPE=Debug'

确保你已经使用 etc/Build.sh 脚本编译了带调试信息的OpenROAD,根目录下存在调试用的build/src/目录,其中包含可执行文件openroad

2. 安装必要插件
在 VSCode 中安装以下插件:

  • C/C++(提供调试、符号跳转等功能)
  • CMake Tools(可选,用于集成 CMake 项目管理)

3. 安装gdb
检查是否存在gdb,如果不存在需要使用sudo apt-get install gdb手动安装

which gdb

在这里插入图片描述

4. 创建调试配置文件
在项目根目录下新建.vscode文件夹,并创建launch.json文件:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/src/openroad",
            "args": ["gcd_nangate45.tcl"],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}/test",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "Set Disassembly Flavor to Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }

    ]
}

说明:

  • program:调试用的 OpenROAD 可执行文件路径
  • args:想测试的 Tcl 脚本文件,例如:[“gcd_nangate45.tcl”]
  • cwd:设置调试的目录

完成上面的配置就可以调试OpenROAD项目了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值