This PR unifies the DragonPHY implementation used for simulation and emulation, removing a bunch of duplicated files and boilerplate code in the process.
Details
There are no longer folders new_chip_src, new_pack, etc. -- the emulator is built from the same chip design.
You can now pass the command-line argument --dump_waveforms when running CPU simulations via pytest, rather than manually changing the code of the test in question.
It is no longer necessary to use @pytest.mark.parameterize to mark regression tests; the folder path is used to determine which tests should be run on FPGA vs. CPU.
Other boilerplate code has been refactored into DragonTester to simplify the creation of new tests.
The hierarchy within the tests directory has been restructured so that we have cpu_block_tests, cpu_system_tests, fpga_system_tests, fpga_block_tests, and other_tests. This make it a bit more manageable to survey the test suite.
More BuildKite artifacts are added for easier debugging of failed regression runs (e.g., synthesis and PnR logs)
The emulation itself is fairly primitive at the moment; it uses bit-banging over the VIO interface to read out the JTAG ID of DragonPHY. Future PRs will re-integrate generated analog/mixed-signal models and introduce an on-FPGA firmware layer for better performance (which is prototyped here)
This PR unifies the DragonPHY implementation used for simulation and emulation, removing a bunch of duplicated files and boilerplate code in the process.
Details
new_chip_src
,new_pack
, etc. -- the emulator is built from the same chip design.--dump_waveforms
when running CPU simulations via pytest, rather than manually changing the code of the test in question.@pytest.mark.parameterize
to mark regression tests; the folder path is used to determine which tests should be run on FPGA vs. CPU.DragonTester
to simplify the creation of new tests.tests
directory has been restructured so that we havecpu_block_tests
,cpu_system_tests
,fpga_system_tests
,fpga_block_tests
, andother_tests
. This make it a bit more manageable to survey the test suite.