# Running the VTR Flow¶

VTR is a collection of tools that perform the full FPGA CAD flow from Verilog to routing.

The design flow consists of:

• Odin II (Logic Synthesis)
• ABC (Logic Optimization & Technology Mapping)
• VPR (Pack, Place & Route)

There is no single executable for the entire flow.

Instead, scripts are provided to allow the user to easily run the entire tool flow. The following provides instructions on using these scripts to run VTR.

## Running a Single Benchmark¶

The run_vtr_flow script is provided to execute the VTR flow for a single benchmark and architecture.

Note

In the following $VTR_ROOT means the root directory of the VTR source code tree.$VTR_ROOT/vtr_flow/scripts/run_vtr_flow.pl <circuit_file> <architecture_file>

It requires two arguments:

• <circuit_file> A benchmark circuit, and
• <architecture_file> an FPGA architecture file

Circuits can be found under:

$VTR_ROOT/vtr_flow/benchmarks/ Architecture files can be found under:$VTR_ROOT/vtr_flow/arch/

The script can also be used to run parts of the VTR flow.

run_vtr_flow for the detailed command line options of run_vtr_flow.pl.

## Running Multiple Benchmarks & Architectures with Tasks¶

VTR also supports tasks, which manage the execution of the VTR flow for multiple benchmarks and architectures. By default, tasks execute the run_vtr_flow for every circuit/architecture combination.

VTR provides a variety of standard tasks which can be found under:

$VTR_ROOT/vtr_flow/tasks Tasks can be executed using run_vtr_task:$VTR_ROOT/vtr_flow/scripts/run_vtr_task.pl <task_name>