-
Notifications
You must be signed in to change notification settings - Fork 115
Description
This is related to the testing part of issue #128. I have written a Python script that tries to import all the defined Platform
classes in nmigen-boards and then checks if building blinky using the corresponding toolchain works. If the build succeeds, it writes the checksum of the board file and the filename to a file, such that the test can be skipped if the board file hasn't been modified when running the tests again. The only thing that is currently missing is to try and specify different toolchains by setting the PATH
(e.g. Intel Quartus Lite 20.1 doesn't support Cyclone III and Quartus II Web Edition 13.1 is required to test the board instead). Once I have that part figured out, I can share a gist of the Python script, because it might be useful for automation, but the amount of disk storage required to have the toolchains installed is perhaps a bit problematic.
I have the following toolchains installed:
- Quartus II Web Edition 13.1
- Quartus Lite Edition 20.1
- Xilinx Vivado WebPACK 2020.1
- Xilinx ISE WebPACK 14.7 (nothing seems to depend on this)
- yosys, nextpnr, icestorm, prjtrellis
I have the following programming tools installed:
- mercpcl (Mercury board) (Git)
- OpenFPGAloader (Git)
- OpenOCD (Git)
- xc3sprog (Git)
The following boards currently fail this test:
- Atlys
- Genesys2Platform
- KC705
- KCU105
- MachXO3SK (depends on Lattice Diamond)
- Mercury (some issue in the generated Verilog)
- MicroZedZ010, MicroZedZ020 (only defines the package + two connectors)
- Numato Mimas (no
toolchain_program
) - Quickfeather
- SK XC6SLX9 (no
toolchain_program
) - TinyFPGA AX1 and AX2 (only defines the package + one connector)
- ZTurnLiteZ007S and ZTurnLiteZ010 (only defines the package + one connector)
All other boards that are currently in the repository (commit 068d9fe) pass this test. If nothing is mentioned between parentheses after the board name, then I am not entirely sure what causes it to fail.