Hello,
I would like to inject faults on a target with a clock integrated in the target, so with wires on the clock I would just inject faults (not the clock) and retrieve clock of the target. So I connected the output of the clock to HS1, and I use
I understand scope.glitch.output = “glitch_only” as “send only glitches, not clock, on HS2”. But with an oscilloscope between HS2 and ground, I see 25 MHz instead of nothing (because I would like only glitches, not clock)
Also on a second same target I removed the clock and let the ChipWhisperer generate the clock but it’s not successful: the target has many problems with stability (some crashes, and ethernet connection isn’t stable). What is the precision of the clock generated by the ChipWhisperer? My chip asks for 25 MHz with a tolerance of 50 ppm, so 50 Hz if I am not mistaken.
Do you know how to have only glitches on HS2?
Regards,
Nuliel
Yeah, those settings should give you only glitches on hs2. I’m not able to replicate the behaviour you’re seeing. Can you try doing print(scope) and posting the output of that?
AFAIK, the clkgen stuff on FPGAs isn’t great in this respect - the output clock tends to be pretty jittery, so I wouldn’t recommend that for anything that needs a really stable clock.
Try setting scope.clock.clkgen_freq = 25E6. That’s what gets used for the glitch module, so it being 0 is probably why your glitch signal is messed up.
In fact, I plug HS1 to the out of the clock, GND of CW and GND of target are connected, and I watch signals between HS2 and GND of CW a signal of 25 MHz
Edit: with scope.glitch.output = “clock_xor”, it doesn’t output the clock, and it seems to output glitches. I will try with this.
Reedit: after remodifying scope.glitch.output to glitch_only, I don’t have 25MHz, and it seems that I inject only glitches, but the clock needs to be correctly connected when we passed the parameters.
Oh, my wire on HS1 wasn’t well connected on clock, I think the problem came from here and not from parameters of CW. I will look for a good solution to hold correctly wires on the target clock (the clock is so small that it’s hard to do that ).