StanfordVLSI / dragonphy2

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

Emulation updates #105

Closed sgherbst closed 4 years ago

sgherbst commented 4 years ago

This PR contains a variety of updates related to emulating the entire DragonPHY design (full FFE and MLSD lengths) on the ZC706 FPGA board. Since the regression server still uses ZC702 boards, which have fewer resources than ZC706, some logic is included to shrink the DragonPHY design for emulation regression tests only.

Details

  1. experiments/cpu_emu_comparison now contains a CPU simulation for use in evaluating the emulator performance. This is based on the existing MM CDR + FFE + PRBS checker sim, but swaps in some simplified models for the ADC, PI, etc. so that the level of modeling the CPU simulation is close to that of the FPGA emulation (for a fairer comparison)
  2. Results from various runs of this experiment are in experiments/cpu_emu_comparison/results.md
  3. The dependency system is updated slightly so that the user can include a Path object in the override dictionary. This allows the user to specify the view name to use for a specific module (previous feature) or a direct path to the implementation (new feature).
  4. conftest.py adds some new custom pytest options:
    1. ffe_length: length of the FFE assumed for emulation. Should match value in config/system.yml. Perhaps a future PR could read the value from the YAML file to avoid duplicating it here.
    2. emu_clk_freq: frequency to target when running the FPGA emulator. The ZC706 board can generally run faster than the ZC702 board, so it's useful to have this flexibility.
    3. prbs_test_dur: how long to run the PRBS checker tests in emulation.
  5. .buildkite/pipeline.yml is updated so that it re-writes the ffe_length and estimate_depth config values on the regression server, rather than maintaining two separate (but almost identical) config files for regression emulation vs. everything else.
  6. codecov.yml is added to suppress some annoying default behavior from Codecov