Building VTR
Setting up Your Environment
If you cloned the repository you will need to set up the git submodules (if you downloaded and extracted a release, you can skip this step):
git submodule init
git submodule update
Linux (Debian / Ubuntu)
VTR requires several system packages. From the top-level directory, run the following script to install the required packages on a modern Debian or Ubuntu system:
./install_apt_packages.sh
Linux (Fedora / RHEL)
For Fedora or RHEL-based systems:
./install_dnf_packages.sh
Python Packages
You will also need several Python packages. You can optionally install and activate a Python virtual environment so that you do not need to modify your system Python installation:
make env
source .venv/bin/activate
Then to install the Python packages:
pip install -r requirements.txt
Note: If you chose to install the Python virtual environment, you will need to remember to activate it on any new terminal window you use, before you can run the VTR flow or regressions tests (source .venv/bin/activate).
Building
From the top-level, run:
make
which will build all the required tools.
For parallel builds (recommended):
make -j$(nproc)
Graphics (GUI)
VPR has an optional Qt6-based graphical interface. A plain make builds the GUI
only if a suitable Qt6 (>= 6.9.3) is installed on the system; otherwise VPR
is built headless. The 6.9.3 floor exists because earlier Qt6 releases have QRhi
rendering bugs.
If your system Qt6 is missing or older than 6.9.3, you can install a local copy (no root required) with:
./dev/ensure_qt6_sdk.sh
Note:
ensure_qt6_sdk.shis a temporary measure. From Ubuntu 26.04 onward the system Qt6 will satisfy the >= 6.9.3 requirement, so the system Qt will be used directly andensure_qt6_sdk.shwill become obsolete.
Two convenience targets make the choice explicit:
make ensure-gui # build vpr WITH the GUI
make ensure-headless # build vpr WITHOUT the GUI
make ensure-guifirst runsdev/ensure_qt6_sdk.sh(provisioning a Qt6 SDK if the system one is missing/too old, and aborting the build if that fails), then configures with graphics enabled and buildsvpr.make ensure-headlessconfigures with graphics disabled and buildsvpr; no Qt is required.
Supported Platforms
The complete VTR flow has been tested on:
64-bit Linux (Debian, Ubuntu, Fedora)
Full information about building VTR, including setting up required system packages and Python packages, can be found in Optional Build Information page.
Please let us know your experience with building VTR so that we can improve the experience for others.
The tools included official VTR releases have been tested for compatibility. If you download a different version of those tools, then those versions may not be mutually compatible with the VTR release.
Verifying Installation
To verify that VTR has been installed correctly run::
./vtr_flow/scripts/run_vtr_task.py ./vtr_flow/tasks/regression_tests/vtr_reg_basic/basic_timing
The expected output is::
k6_N10_mem32K_40nm/single_ff OK
k6_N10_mem32K_40nm/single_ff OK
k6_N10_mem32K_40nm/single_wire OK
k6_N10_mem32K_40nm/single_wire OK
k6_N10_mem32K_40nm/diffeq1 OK
k6_N10_mem32K_40nm/diffeq1 OK
k6_N10_mem32K_40nm/ch_intrinsics OK
k6_N10_mem32K_40nm/ch_intrinsics OK