Skip to content

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.

Merge request reports