2. Tools

This section describes the tools use to run, report and analyze OpenFPGA, Yosys and VPR results, as presented in Fig. 2.1. These enable an easier

_images/openfpga-softcores-dse.svg

Fig. 2.1 OpenFPGA-Softcores available tools.

2.1. run-softcore

Basic Usage

This tool runs a single soft-core benchmark simulation with the platform using a given FPGA architecture, using the following command:

run-softcore <soft-core> <architecture>

where:

<soft-core>

Soft-core processor to evaluate.

<architecture>

FPGA architecture to evaluate, using any files in the fpga_archs/ dir.

Note

This script use directly the OpenFPGA framework, then the OPENFPGA_PATH environment variable need to be exported. Just source the project setup_env.sh script to fix that error.

Optional Arguments

--device-layout {<width>x<height>, auto}

Define a fixed FPGA layout dimensions.

Default: auto

--channel-width {<int>, auto}

Define a fixed FPGA channel width.

Default: auto

--cache-size <int>

Define the memory size (L1) of the core in bytes.

Default: 1024

--isa {i, im, ima}

Enable RISC-V ISA extensions.

  • i: base integer instruction set,

  • m: enable the multiplier/divider instruction extension,

  • c: enable the compressed instruction extension.

Default: i

--abc-command {abc, abc9}

ABC executable used to evaluate different mapping strategies.

Default: abc9

--lut-max-width {<width>, <w1>:<w2>, auto}

ABC LUT mapping using a specified (max) LUT width. The auto option will always take the largest LUT size available in the XML architecture.

Default: auto

--run-tests <csv-filename>

run multiple simulations listed in a CSV file, giving all arguments by columns

Default: None

--run-dir <path>

Save all OpenFPGA outputs in a given directory

Default: run_dir/

2.2. run-dse

Note

This tool is not developed as of today. It will aim to complement the run-softcore tool by running simulations with different FPGA architectures without duplicating simulation steps, such as synthesis, packing, placing and routing when it is necessary.

2.3. report-yosys-vpr

Basic Usage

This tool parses Yosys and VPR result files generated by the OpenFPGA framework, and generate a CSV file, using the following command:

report-yosys-vpr <search-path>
<search-path>

Specify a base directory to search reports (multiple directories could be specified).

Default: run_dir/latest

Optional Arguments

-o <csv-file>, --output <csv-file>

Save results in a CSV format.

Default: outputs/report_parser.csv

2.4. report-place-timing

Basic Usage

This tool parses the timing report (setup, hold or pre-pack) generated by OpenFPGA framework and extend the description for each point of the path (block type, block ID, block coordinates, …) using .net and .place reports. The generated output file is a report file, following the report timing file standards, using the following command:

report-place-timing <search-path>
<search-path>

Specify a base directory to search reports (multiple directories could be specified).

Optional Arguments

-p <path-id>, --path-id <path-id>

Define the path number to print.

Default: 0

--hold

Parse the hold report timing file.

--pre-pack

Parse the pre-pack report timing file.

--post-place

Parse the post-place report timing file.

-o <rpt-file>, --output <rpt-file>

Analyze all paths and save them in a RPT format.

2.5. report-route-paths

Basic Usage

This tool parses the timing report (setup, hold or pre-pack) generated by OpenFPGA framework and extend the description for every start and end points of the path, adding basic metrics for a more complete analysis, RTL to physical routing. The generated output file is a CSV file having a single line per path, using the following command:

report-route-paths <search-path>
<search-path>

Specify a base directory to search reports (multiple directories could be specified).

Optional Arguments

-p <path-id>, --path-id <path-id>

Define the path number to print.

Default: 0

--hold

Parse the hold report timing file.

--pre-pack

Parse the pre-pack report timing file.

--post-place

Parse the post-place report timing file.

-o <rpt-file>, --output <rpt-file>

Analyze all paths and save them in a CSV format.