C Verilog C++ HTML Perl Python Other
Clone or download
Failed to load latest commit information.
.github infra: Re-add default pull request template May 17, 2018
.travis infra: Add odin_reg_micro to Travis CI Mar 20, 2018
ODIN_II flow: Upgrade architectures to new pin equivalence specification Jun 21, 2018
abc abc: Updating abc/ (external git subtree from https://github.com/berk… Apr 2, 2018
abc_with_bb_support Fix typo Jun 23, 2017
ace2 ace2: Define __STDC_XXX_MACROS. Jun 27, 2018
blifexplorer Removed trailing whitespace Apr 25, 2018
cmake build: Update MingW cross-compile for updated ABC Apr 4, 2018
dev infra: Ensure list/update actions are exclusive in external_subtrees.py May 16, 2018
doc archfpga/vpr: Allow mixing <auto_layout> and <fixed_layout> gird specs Jun 26, 2018
libs archfpga/vpr: Allow mixing <auto_layout> and <fixed_layout> gird specs Jun 26, 2018
verilog_preprocessor modified arithmetic-related c++ code to compile with the partial impl… Sep 8, 2014
vpr vpr: Report the block types which limit FPGA size Jun 27, 2018
vtr_flow flow: Remove additional duplicate parse metrics Jun 28, 2018
.gitattributes Update git attributes Apr 25, 2018
.gitignore parralel soft adder definition generation Jun 7, 2018
.travis.yml infra: Adding Travis CI build to vtr. Mar 5, 2018
BUILDING.md docs: Refine Ubuntu/Debian package dependencies Feb 27, 2018
CMakeLists.txt CMakeLists.txt: Fixed a recurring typo of 'delcare' May 23, 2018
CONTRIBUTING.md doc: Update cross-references to use issue templates May 17, 2018
Dockerfile Update Dockerfile Jan 4, 2018
LICENSE.md docs: Strip trailing white space. Feb 27, 2018
Makefile Allow BUILD_TYPE to be overridden in environment. Jun 18, 2018
README.developers.md infra: Rename update_external_trees.py to external_subtrees.py Apr 30, 2018
README.md docs: Add status shields Mar 16, 2018
SUPPORT.md Add CONTRIBUTING and SUPPORT files Jan 24, 2018
run_quick_test.pl Remove legacy quick_test; use the standard regression testing infrast… Mar 23, 2017
run_reg_test.pl flow: Improve task/regression task progress formatting Jun 9, 2018
sweep_build_configs.py infra: Add release/debug build types to sweep_build_configs.py May 15, 2018


Verilog to Routing (VTR)

Build Status Documentation Status


The Verilog-to-Routing (VTR) project is a world-wide collaborative effort to provide a open-source framework for conducting FPGA architecture and CAD research and development. The VTR design flow takes as input a Verilog description of a digital circuit, and a description of the target FPGA architecture. It then perfoms:

  • Elaboration & Synthesis (ODIN II)
  • Logic Optimization & Technology Mapping (ABC)
  • Packing, Placement, Routing & Timing Analysis (VPR)

to generate FPGA speed and area results. VTR also includes a set of benchmark designs known to work with the design flow.


VTR's full documentation includes tutorials, descriptions of the VTR design flow, and tool options.

Also check out our additional support resources.


Generally most code is under MIT license, with the exception of ABC which is distributed under its own (permissive) terms. See the full license for details.

How to Cite

The following paper may be used as a general citation for VTR:

J. Luu, J. Goeders, M. Wainberg, A. Somerville, T. Yu, K. Nasartschuk, M. Nasr, S. Wang, T. Liu, N. Ahmed, K. B. Kent, J. Anderson, J. Rose and V. Betz "VTR 7.0: Next Generation Architecture and CAD System for FPGAs," ACM TRETS, Vol. 7, No. 2, June 2014, pp. 6:1 - 6:30.


  title={{VTR 7.0: Next Generation Architecture and CAD System for FPGAs}},
  author={Luu, Jason and Goeders, Jeff and Wainberg, Michael and Somerville, Andrew and Yu, Thien and Nasartschuk, Konstantin and Nasr, Miad and Wang, Sen and Liu, Tim and Ahmed, Norrudin and Kent, Kenneth B. and Anderson, Jason and Rose, Jonathan and Betz, Vaughn},
  journal = {ACM Trans. Reconfigurable Technol. Syst.},


For most users of VTR (rather than active developers) you should download the latest offical VTR release, which has been fully regression tested.


On unix-like systems run make from the root VTR directory.

For more details see the building instructions.


We provide a Dockerfile that sets up all the necessary packages for VTR to run. For more details see here.

Mailing Lists

If you have questions, or want to keep up-to-date with VTR, consider joining our mailing lists:

VTR-Announce: VTR release announcements (low traffic)

VTR-Users: Discussions about using VTR

VTR-Devel: Discussions about VTR development

VTR-Commits: VTR revision control commits


This is the development trunk for the Verilog-to-Routing project. Unlike the nicely packaged releases that we create, you are working with code in a constant state of flux. You should expect that the tools are not always stable and that more work is needed to get the flow to run.

For new developers, please do the tutorial. You will be directed back here once you ramp up.

VTR development follows a classic centralized repository (svn-like) workflow. The 'master' branch is supposed to be the most current stable version of the project. Developers checkout a local copy of the code at the start of development, then do regular updates (e.g. git pull --rebase) to keep in sync with the GitHub master. When a developer has a tested, working change to put back into the trunk, he/she performs a git push operation. Unstable code should remain in the developer's local copy.

We do automated testing of the trunk using BuildBot to verify functionality and Quality of Results (QoR).

IMPORTANT: A broken build must be fixed at top priority. You break the build if your commit breaks any of the automated regression tests.

For additional information see the developer README.

Contributing to VTR

If you'd like to contribute to VTR see our Contribution Guidelines.


Please keep this up-to-date

Professors: Kenneth Kent, Vaughn Betz, Jonathan Rose, Jason Anderson, Peter Jamieson

Research Assistants: Aaron Graham

Graduate Students: Kevin Murray, Jason Luu, Oleg Petelin, Jeffrey Goeders, Chi Wai Yu, Andrew Somerville, Ian Kuon, Alexander Marquardt, Andy Ye, Wei Mark Fang, Tim Liu, Charles Chiasson, Panagiotis (Panos) Patros

Summer Students: Opal Densmore, Ted Campbell, Cong Wang, Peter Milankov, Scott Whitty, Michael Wainberg, Suya Liu, Miad Nasr, Nooruddin Ahmed, Thien Yu, Long Yu Wang, Matthew J.P. Walker, Amer Hesson, Sheng Zhong, Hanqing Zeng, Vidya Sankaranarayanan, Jia Min Wang, Eugene Sha, Jean-Philippe Legault

Companies: Altera Corporation, Texas Instruments