Add the EVM frac Synth reset function #177
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If the reference clock has a glitch (a forward shift of phase), the event clock is down and the EVM ends up in a state where it cannot automatically recover the event clock even the PLL status shows fine. To fix this, the FracSynth control word must be rewritten. Writing to that register triggers some low-level reset of the board and the event clock is recovered after that.
In the current code, writing to the record of the Frac Synth frequency does not result in writing to the control word register, because it checks if the requested frequency value changes. I had to write a different frequency and write back the old value. This is inconvenient and likely to introduce error when I just need a reset. In this commit, I made a dedicated api function and a record to write the same control word value to the register. This is only used for the resetting purpose.