Husky XADC Errors

I am trying to learn about the structure of the Husky XADC errors and if they are connected to/impact any of the other CW modules, such as the glitch module. I have some starter questions below. If there is any other information that I am not specifically asking about that is related to this and that you think would be useful to know, please share. Thanks for your help!

  1. Is there a page somewhere that lists the various XADC errors and what specifically causes them?
  2. What is/are the voltage threshold(s) that trigger(s) voltage alarms in this set of errors?
  3. Are there any conditionals within the glitch code that rely on the XADC errors being in a certain state or the voltage being within bounds? Where can I find the source code for the glitch module? I am having a hard time locating it on GitHub.
  4. Is there a way to disable XADC errors like there is with the ADC gain errors? I do not see anything in the Scope API documentation suggesting that you can.
  5. Are there any links or specific ChipWhisperer Python scripts regarding this topic that would be good for me to read through?

I think this is pretty well covered in section 11 of the “Intro to Husky” notebook.

Basically whenever any of the Husky FPGA’s voltages or temperatures go out of their “recommended operating conditions” range, the error is flagged, and we shut down the internal PLL that are needed by scope.glitch, scope.LA, and scope.trace.

There is no way to disable that: this is to prevent frying your Husky.

What are you doing that leads to scope.XADC errors, and what specific errors do you get?

Interesting, okay. Thanks for the info.

I’m cycling the target board’s power sometimes, which causes the VCCaux alarm to be thrown:

    # Cycle target power
    scope.io.target_pwr = False
    time.sleep(0.05)
    scope.io.target_pwr = True

I’ve observed that scope.glitch doesn’t behave as expected when this error is present (thanks for the explanation of the why behind this) and so I’ve been calling scope.errors.clear() to allow me to use the glitch module without completely resetting everything.

Right, depending on the target this can happen. Just clear the error and carry on.

Sounds good, thanks!