solve bug: mpll won't lock after reset.
This bug is probably present in wrpc-sw for a very long time. It took me a few weeks to hunt it down with an automated setup that resets my wr device after reaching TRACK_PHASE, until it finally hangs due to this bug...
Appearance:
Sometimes the wr-core won't start up and hangs after reset. Pushing reset again solves the issue. We have seen this in the past with different wr projects as well.
Cause:
mpll does not get in lock since its PI loop is polluted with a very big first tag-ref sample.
Solution:
The err signal that feeds the mpll PI loop should never be out of bounds +/- 2**HPLL_N (by defenition: even when mpll is not locked yet!)
See also peter_230704_solve_mpll_no_lock_after_reset.pdfAlways limit mpll PI controller err signal to 2**HPLL_N, not just when mpll is locked.