Skip to content

S1: Add clock synth status

We should add all relevant S1 clock synth status info to the plugin (essentially everything that's reported by the butler clocks status command - selected input, input status regs, DPLL state and other DPLL status regs).

Initial thoughts on implementation:

  • Represent each clock synth with a class that inherits from swatch::core::MonitorableObject, adding them to the monitoring tree in the S1 processor class' constructor
    • Two separate classes - one for async, the other for sync - may prove for simpler than one common class since different monitoring data is relevant for the two types.
  • Should include both the current & sticky reg values; in practice, right now this might mean two SWATCH metrics for most of the member variables from the DPLLStatus and InputStatus structs.
  • Should disable the monitoring of them just after they're registered in the processor class' constructor, and in the S1 power off command
  • Should enable monitoring of the async synths in the 'configure synths' command
  • Should adjust the monitoring of sync synths in the recently added 'pre TCDS configure' callbacks:
    • At least, enable their monitoring and set the error condition for the 'selected input' metric of SyncSides
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information