Skip to content
Ryan Johnson edited this page Aug 18, 2020 · 7 revisions

exhaust.py

exhaust.py runs through the entire lineup of supported toolchains, projects, and boards, saving the stats and reporting the success or failure of each run. You can also specify a list of toolchains, projects, and/or boards to run only the builds that match the arguments.

It makes the list of runs by iterating through the src directory. It uses fpgaperf.py's 'run' function to build it and then prints the success or failure of each by iterating through the build directory.

Below is an example run of exhuast.py, specifying the yosys-vivado toolchain.

$ python3 exhaust.py --toolchain yosys-vivado --out-prefix build/_yosys-vivado
Writing to build/_vivado-yosys
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████| 13/13 [28:07<00:00, 129.79s/test]
+-------------------------+--------------+---------+--------------+--------+------------+----------+-------------+--------+
| Project                 | Toolchain    | Family  | Part         | Board  | Build Type | Build N. | Options     |        |
+-------------------------+--------------+---------+--------------+--------+------------+----------+-------------+--------+
| blinky                  | yosys-vivado | xc7     | a35tcsg324-1 | arty   | generic    | 000      | xdc_carry-n | passed |
| ibex                    | yosys-vivado | xc7     | a35tcsg324-1 | arty   | generic    | 000      | xdc_carry-n | passed |
| litex-linux             | yosys-vivado | xc7     | a35tcsg324-1 | arty   | generic    | 000      | xdc_carry-n | passed |
| murax                   | yosys-vivado | xc7     | a35tcpg236-1 | basys3 | generic    | 000      | xdc_carry-n | passed |
| oneblink                | yosys-vivado | xc7     | a35tcpg236-1 | basys3 | generic    | 000      | xdc_carry-n | passed |
| oneblink                | yosys-vivado | xc7     | a35tcsg324-1 | arty   | generic    | 000      | xdc_carry-n | passed |
| oneblink                | yosys-vivado | xc7     | z010clg400-1 | zybo   | generic    | 000      | xdc_carry-n | passed |
| picorv32-wrap           | yosys-vivado | xc7     | a35tcsg324-1 | arty   | generic    | 000      | xdc_carry-n | passed |
| picorv32-wrap           | yosys-vivado | xc7     | z010clg400-1 | zybo   | generic    | 000      | xdc_carry-n | passed |
| picosoc-simpleuart-wrap | yosys-vivado | xc7     | a35tcpg236-1 | basys3 | generic    | 000      | xdc_carry-n | passed |
| picosoc-spimemio-wrap   | yosys-vivado | xc7     | a35tcpg236-1 | basys3 | generic    | 000      | xdc_carry-n | passed |
| picosoc-wrap            | yosys-vivado | xc7     | a35tcpg236-1 | basys3 | generic    | 000      | xdc_carry-n | passed |
| vexriscv-verilog        | yosys-vivado | xc7     | a35tcpg236-1 | basys3 | generic    | 000      | xdc_carry-n | passed |
+-------------------------+--------------+---------+--------------+--------+------------+----------+-------------+--------+
| Passed:                 | 13           | Failed: | 0            |        |            |          |             | 100%   |
+-------------------------+--------------+---------+--------------+--------+------------+----------+-------------+--------+

So, running exhaust.py is pretty straightforward, but there are a few arguments that are explained below.


Basic Arguments

These arguments are not required but can be used to specify qualifiers about the type of builds you want to be run.

--project - Only the project(s) given with this argument will be run.

--toolchain - Only the toolchain(s) given with this argument will be run.

--board - Only the board(s) given with this argument will be run.


Extra Arguments

These arguments enhance/modify the normal run.

--verbose - Turns on a logger that prints messages during the run to help with debugging.

--overwrite - Passes the overwrite argument to each of the fpagperf runs.

--parameters - Sets parameters for the specified toolchain.

--run_config - Runs configuration file in JSON format.

--fail - If there are failing tests, prints an error message.


Directory Argument

--out-prefix - This argument changes the folder to which you save the build details. The default is the build/_exhaust-runs directory. But if you put --out-prefix build/vivado_runs, then it will save the project files to the build/vivado_runs directory. This is a great way to split up runs into organized categories.


Build Arguments

The two commands below allow you to specify a name to differentiate from a previous run.

--build_type - Gives each build a name (default: "generic").

--build - Gives each build a number (default: "000").



Initially created by Ryan Johnson, August 2020.

Clone this wiki locally