StanfordVLSI / dragonphy2

Open Source PHY v2
Apache License 2.0
22 stars 2 forks source link

Merge emulation and simulation views #103

Closed sgherbst closed 4 years ago

sgherbst commented 4 years ago

This PR unifies the DragonPHY implementation used for simulation and emulation, removing a bunch of duplicated files and boilerplate code in the process.

Details

  1. There are no longer folders new_chip_src, new_pack, etc. -- the emulator is built from the same chip design.
  2. 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.
  3. 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.
  4. Other boilerplate code has been refactored into DragonTester to simplify the creation of new tests.
  5. 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.
  6. More BuildKite artifacts are added for easier debugging of failed regression runs (e.g., synthesis and PnR logs)
  7. 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)