Triggering Oscilloscope with (using CW305 GOOGLE_VAULT_AES)

I’d like to trigger my oscilloscope whenever encryption starts to capture traces from the X4 pin on the CW305. After reviewing the cw305_top.v file from the ChipWhisperer example, I noticed that in the GOOGLE_VAULT_AES module, tio_trigger is connected to aes_busy. According to main.xdc, tio_trigger is routed to the T14 pin.

If I understand correctly, I should connect the EXT TRIG IN of my oscilloscope to the T14 pin on the CW305 and configure the oscilloscope to use EXT TRIG. Would this setup be sufficient to trigger the oscilloscope correctly?

I have a couple of follow-up questions:

  1. Can you confirm the location of the T14 pin? I’ve attached an image of the board with the suspected T14 pin circled. Please verify if this is indeed the correct pin.
  2. Clarification on T1 vs. T14: I came across this forum post, which discusses using the T1 pin for EXT TRIG IN on the oscilloscope. Does this also apply when using GOOGLE_VAULT_AES and the main.xdc from the ChipWhisperer example? I couldn’t find any definition for the T1 pin in main.xdc, so would I need to add it manually as suggested in the forum? Or, if T14 works as expected, would it be better to stick with that?

Lastly, do you have any example configuration code that I can adapt to set up my oscilloscope? I’d like to:

  • Configure EXT TRIG,
  • Set the memory depth for trace capture,
  • Fetch captured data from the oscilloscope’s memory,
  • Convert the data for storage in a ChipWhisperer project for the attack simulation phase.

Thank you in advance for your assistance!

No, what you’ve circled is a clock SMA.

Look at the CW305 schematic and search for the T14 FPGA pin. You’ll find that it goes to a “TIO4” label. Then search for what else connects to this TIO4 label and you’ll find that it goes to pin 16 of JP1, the 20-pin ChipWhisperer header. It also goes to pin 33 of JP3, the larger 40-pin header.

That forum post explains using the “TRIG TP1” test point (TP = Test Point), which is the orange test point at the bottow right corner of your picture.

No, I can’t help you with your oscilloscope setup. There are lots of oscilloscopes out there! It’s definitely possible to use a third-party oscilloscope with our targets, but it’s not something for which we can offer this level of support.

Look at any of our notebooks which save traces to a project. There will be something like this to create your project:

project_file = "projects/Tutorial_HW_CW305.cwp"
project = cw.create_project(project_file, overwrite=True)

then, a trace gets captured:

ret = cw.capture_trace(scope, target, text, key)

and finally gets added to the project:

project.traces.append(ret)

Look at the construction of ret; apply that same construction to create your own traces that can be appended to the CW project.