-
Notifications
You must be signed in to change notification settings - Fork 30
exhaust
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.
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.
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.
--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.
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.