Skip to content
Verilog to Routing -- Open Source CAD Flow for FPGA Research
C C++ Verilog HTML Perl Python Other
Branch: master
Clone or download

Latest commit

Latest commit 37c81db Feb 26, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Limit kokoro VPR_NUM_WORKERS to 1. Feb 20, 2020
ODIN_II fix indentation Feb 27, 2020
abc infra: Support a BUILD_DIR value outside of source tree. Jun 4, 2019
ace2 ace: Fix various memory leaks Feb 19, 2020
blifexplorer fix missing bracket Cmake Feb 16, 2020
cmake infra: Support controlling ccache. Jun 4, 2019
dev unify shebangs, make script files executable Feb 11, 2020
doc flow: Add support for sdc_dir task configuration directive Feb 19, 2020
libs Odin regression: look for valid failures Feb 25, 2020
utils fasm: Convert to use IntraLbPbPinLookup Feb 19, 2020
verilog_preprocessor modified arithmetic-related c++ code to compile with the partial impl… Sep 8, 2014
vpr Fix serialization of ptcs Feb 20, 2020
vtr_flow flow: Update golden result for strong_titan (due to SDC updates) Feb 19, 2020
.clang-format Add automated code formatting infrastructure May 27, 2019
.git-blame-ignore-revs 🤖 - Ignore automated code reformat in blame. Feb 3, 2020
.gitattributes Update git attributes Apr 25, 2018
.gitignore flow: Ignore Titan benchmark .sdc files Feb 19, 2020
.readthedocs.yaml doc: Use configuration file to configure ReadTheDocs Oct 4, 2019
.travis.yml infra: Disable strong sanitized regression test on Travis CI Feb 19, 2020
BUILDING.md Added libgtk-3-dev to apt-get command Oct 18, 2019
CHANGELOG.md vpr: Record breadth-first router deprecation in change log Nov 25, 2019
CMakeLists.txt fix invalid sc access and add quick sanitize compile flags for odin Feb 13, 2020
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 ODIN_II: added -Werror when BUILD_TYPE is release_strict Aug 19, 2019
README.developers.md Fix typos in README.developers.md Feb 14, 2020
README.md Spelling and formatting fixes Jan 31, 2020
SUPPORT.md Add CONTRIBUTING and SUPPORT files Jan 24, 2018
run_quick_test.pl unify shebangs, make script files executable Feb 11, 2020
run_reg_test.pl flow: Add option to skip QoR checks with run_reg_test.pl Feb 19, 2020
sweep_build_configs.py Include gcc-7 in swept build configs Jul 23, 2019

README.md

Verilog to Routing (VTR)

Build Status Documentation Status

Introduction

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 performs:

  • 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.

Documentation

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

Also check out our additional support resources.

License

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.

Bibtex:

@article{vtr2014,
  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.},
  month={June},
  volume={7},
  number={2},
  pages={6:1--6:30},
  year={2014}
}

Download

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

Building

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

For more details see the building instructions.

Docker

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

Development

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.

Contributors

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, Mohamed Eldafrawy, Jeffrey Goeders, Chi Wai Yu, Andrew Somerville, Ian Kuon, Alexander Marquardt, Andy Ye, Wei Mark Fang, Tim Liu, Charles Chiasson, Panagiotis (Panos) Patros, Jean-Philippe Legault, Aaron Graham, Nasrin Eshraghi Ivari, Maria Patrou, Scott Young

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, Richard Ren, Dingyu Yang, Alexandrea Demmings, Hillary Soontiens, Julie Brown

Companies: Intel, Huawei, Lattice, Altera Corporation, Texas Instruments, Google

Funding Agencies: NSERC, Semiconductor Research Corporation

You can’t perform that action at this time.