Skip to content

Latest commit

 

History

History
92 lines (61 loc) · 2.89 KB

BuildLocally.md

File metadata and controls

92 lines (61 loc) · 2.89 KB

Build from sources locally

Clone and Install Dependencies

The setup.sh script installs all of the dependencies, including OpenROAD dependencies, if they are not already installed.

Supported configurations are: Ubuntu 20.04, Ubuntu 22.04, Ubuntu 22.04(aarch64), RHEL 8, RockyLinux 9 and Debian 11.

git clone --recursive https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts
cd OpenROAD-flow-scripts
sudo ./setup.sh

Build

./build_openroad.sh --local

:::{Note} There is a build_openroad.log file that is generated with every build in the main directory. In case of filing issues, it can be uploaded in the "Relevant log output" section of OpenROAD-flow-scripts repo issue form. :::

Verify Installation

The binaries should be available on your $PATH after setting up the environment. The make command runs from RTL-GDSII generation for default design gcd with nangate45 PDK.

source ./env.sh
yosys -help
openroad -help
cd flow
make

You can view final layout images in OpenROAD GUI using this command.

make gui_final

gcd_final.webp

Compiling and debugging in Visual Studio Code

Set up environment variables using dev_env.sh, then start Visual Studio Code. Please ensure CMake plugins are installed.

. ./dev_env.sh
code tools/OpenROAD/

Build OpenROAD and run a few ORFS flows with Bazel

Local use case:

  • Install Bazelisk and no other dependencies, no need to run sudo ./setup.sh
  • Modify & build OpenROAD
  • Test built OpenROAD with a few ORFS flows

The Bazel support in OpenROAD and ORFS is work in progress and some Bazel experience is recommended before going spelunking in the Bazel builds.

Contributions welcome!

To build designs/asap7/gcd:gcd_floorplan:

cd flow
(cd ../tools/OpenROAD && bazel build :openroad -c opt) && bazelisk build designs/asap7/gcd:gcd_floorplan

Or to run all flows currently available in Bazel

cd flow
(cd ../tools/OpenROAD && bazel build :openroad -c opt) && bazelisk build ...

Note! ORFS uses the OpenROAD Bazel built binary in stop-gap way until OpenROAD has been switched to bzlmod, after which to build all flows becomes simpler as ORFS will build the requisite OpenROAD directly:

cd flow
bazelisk build ...

ORFS uses bazel-orfs to implement the flow and gets some depedencies, like yosys, from the Docker image. Over time, all dependencies should be built with Bazel and the dependency on the ORFS Docker image will be phased out.

Upgrading MODULE.bazel with the latest bazel-orfs and ORFS Docker image

Run:

bazelisk run @bazel-orfs//:bump

Then commit MODULE.bazel and MODULE.bazel.lock.