StanfordVLSI / dragonphy2

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

MM CDR test + other test updates #100

Closed sgherbst closed 4 years ago

sgherbst commented 4 years ago

(This PR only modifies testing-related files)

Summary

  1. The MM_CDR test is now part of the regression and passes.
  2. The PRBS test now exercises both the built-in self test (internal PRBS generator) and the data path coming from the ADC.
  3. Workarounds that were previously needed for the AC and LOOPBACK_RETIMER are removed.
  4. JTAG-related I/O for all tests now exercises a path that was previously not covered (wiring from the raw JTAG interface to the various block-specific interfaces).
  5. The GLITCH test now sweeps PI codes for each PI independently, and starts each PI at a realistic phase offset.

Details

  1. To get the MM_CDR test passing, I did a number of things:
    1. Set up the test so that it sends PRBS data through a channel model while looking for errors using the on-chip PRBS checker.
    2. Set the bandwidth of the channel model so that FFE post-processing was not needed (and yet kept the bandwidth low enough that there is sufficient ISI for the baud-rate phase detector)
    3. Increased Kp from 2 to 18. This effectively increased the loop bandwidth from ~150 Hz to ~10 MHz. For reference, the loop stops working at Kp=20. Note that Kp is the coefficient for the integral of phase error.
    4. Disabled en_freq_est. (If we can run at a bandwidth of a few MHz, that should be fast enough to track spread-spectrum modulation occurring at ~30 kHz).