I can’t tell from the picture- two LEDs (one red, one green) between the FPGA and the SMA connector should be flashing in a pattern (red one a bit faster than the green one), and the red LED next to the Atmel part should also be flashing.
Since that additional test fails, we know there is a problem with writing to and/or reading from the FPGA.
Could you re-run this modified version, to see if it fails straight away, and how:
import random
for i in range(100):
k = []
for b in range(16):
k.append(random.randint(0,255))
target.fpga_write(0xa, k)
for j in range(10):
readback = list(target.fpga_read(0xa, 16))
assert k == readback, 'failing at i=%d, j=%d\nwrote=%s\nread =%s' % (i,j,k,readback)
Nothing else will work well unless we fix this. One possibility is the clock. If you run scope.clock
you should get:
adc_src = extclk_x4
adc_phase = 0
adc_freq = 40001724
adc_rate = 40001724.0
adc_locked = True
freq_ctr = 10000431
freq_ctr_src = extclk
clkgen_src = system
extclk_freq = 10000000
clkgen_mul = 2
clkgen_div = 1
clkgen_freq = 192000000.0
clkgen_locked = True
In particular, scope.clock.freq_ctr
should be approximately 10e6, since earlier in the notebook you would have set the CW305’s on-board PLL to 10e6:
target.pll.pll_outfreq_set(10E6, 1)
So one possibility is that this PLL isn’t working correctly.
Can you confirm that you’re running the unmodified AES target bitfile from your ChipWhisperer installation?
Next, what version of CW are you running? (run cw.__version__
). The latest is 5.6.1.
What’s the firmware version running on your CW305? Run target.fw_version_str
. Latest is 0.53.0
Finally, what does target.get_fpga_buildtime()
return? (this likely won’t make sense since reading/writing the FPGA doesn’t seem to work, but I’m curious).