Closed enjoy-digital closed 2 years ago
With the ADC configured to emit a ramp (with test/test_adc.py
run over JTAGBone or PCIeBone) and litepcie_util record
, the ramp pattern seems to be recorded almost correctly:
./litepcie_test record dump.bin 0x1000
hexdump dump.bin
0000000 9999 9999 9999 9999 9a9a 9a9a 9a9a 9a9a
0000010 9b9b 9b9b 9b9b 9b9b 9d9d 9d9d 9d9d 9d9d
0000020 9e9e 9e9e 9e9e 9e9e 9f9f 9f9f 9f9f 9f9f
0000030 a0a0 a0a0 a0a0 a0a0 a2a2 a2a2 a2a2 a2a2
0000040 a4a4 a4a4 a4a4 a4a4 a5a5 a5a5 a5a5 a5a5
0000050 a6a6 a6a6 a6a6 a6a6 a7a7 a7a7 a7a7 a7a7
0000060 a9a9 a9a9 a9a9 a9a9 aaaa aaaa aaaa aaaa
0000070 abab abab abab abab acac acac acac acac
0000080 aeae aeae aeae aeae afaf afaf afaf afaf
0000090 b0b0 b0b0 b0b0 b0b0 b1b1 b1b1 b1b1 b1b1
00000a0 b3b3 b3b3 b3b3 b3b3 b4b4 b4b4 b4b4 b4b4
00000b0 b5b5 b5b5 b5b5 b5b5 b6b6 b6b6 b6b6 b6b6
00000c0 b8b8 b8b8 b8b8 b8b8 b9b9 b9b9 b9b9 b9b9
00000d0 bbbb bbbb bbbb bbbb bcbc bcbc bcbc bcbc
00000e0 bdbd bdbd bdbd bdbd bebe bebe bebe bebe
00000f0 c0c0 c0c0 c0c0 c0c0 c1c1 c1c1 c1c1 c1c1
0000100 c2c2 c2c2 c2c2 c2c2 c3c3 c3c3 c3c3 c3c3
0000110 c5c5 c5c5 c5c5 c5c5 c6c6 c6c6 c6c6 c6c6
0000120 c7c7 c7c7 c7c7 c7c7 c8c8 c8c8 c8c8 c8c8
0000130 caca caca caca caca cbcb cbcb cbcb cbcb
0000140 cccc cccc cccc cccc cdcd cdcd cdcd cdcd
0000150 cfcf cfcf cfcf cfcf d1d1 d1d1 d1d1 d1d1
0000160 d2d2 d2d2 d2d2 d2d2 d3d3 d3d3 d3d3 d3d3
0000170 d4d4 d4d4 d4d4 d4d4 d6d6 d6d6 d6d6 d6d6
0000180 d7d7 d7d7 d7d7 d7d7 d8d8 d8d8 d8d8 d8d8
0000190 d9d9 d9d9 d9d9 d9d9 dbdb dbdb dbdb dbdb
00001a0 dcdc dcdc dcdc dcdc dddd dddd dddd dddd
00001b0 dede dede dede dede e0e0 e0e0 e0e0 e0e0
00001c0 e1e1 e1e1 e1e1 e1e1 e2e2 e2e2 e2e2 e2e2
00001d0 e3e3 e3e3 e3e3 e3e3 e5e5 e5e5 e5e5 e5e5
00001e0 e6e6 e6e6 e6e6 e6e6 e7e7 e7e7 e7e7 e7e7
00001f0 e9e9 e9e9 e9e9 e9e9 ebeb ebeb ebeb ebeb
0000200 ecec ecec ecec ecec eded eded eded eded
0000210 eeee eeee eeee eeee f0f0 f0f0 f0f0 f0f0
0000220 f1f1 f1f1 f1f1 f1f1 f2f2 f2f2 f2f2 f2f2
0000230 f3f3 f3f3 f3f3 f3f3 f5f5 f5f5 f5f5 f5f5
0000240 f6f6 f6f6 f6f6 f6f6 f7f7 f7f7 f7f7 f7f7
0000250 f8f8 f8f8 f8f8 f8f8 fafa fafa fafa fafa
0000260 fbfb fbfb fbfb fbfb fcfc fcfc fcfc fcfc
0000270 fdfd fdfd fdfd fdfd 0000 0000 0000 0000
0000280 0101 0101 0101 0101 0202 0202 0202 0202
0000290 0303 0303 0303 0303 0505 0505 0505 0505
00002a0 0606 0606 0606 0606 0707 0707 0707 0707
00002b0 0808 0808 0808 0808 0a0a 0a0a 0a0a 0a0a
00002c0 0b0b 0b0b 0b0b 0b0b 0c0c 0c0c 0c0c 0c0c
00002d0 0d0d 0d0d 0d0d 0d0d 0f0f 0f0f 0f0f 0f0f
00002e0 1010 1010 1010 1010 1111 1111 1111 1111
00002f0 1212 1212 1212 1212 1414 1414 1414 1414
0000300 1515 1515 1515 1515 1717 1717 1717 1717
0000310 1818 1818 1818 1818 1a1a 1a1a 1a1a 1a1a
0000320 1b1b 1b1b 1b1b 1b1b 1c1c 1c1c 1c1c 1c1c
0000330 1d1d 1d1d 1d1d 1d1d 1f1f 1f1f 1f1f 1f1f
0000340 2020 2020 2020 2020 2121 2121 2121 2121
0000350 2222 2222 2222 2222 2424 2424 2424 2424
0000360 2525 2525 2525 2525 2626 2626 2626 2626
0000370 2727 2727 2727 2727 2929 2929 2929 2929
0000380 2a2a 2a2a 2a2a 2a2a 2b2b 2b2b 2b2b 2b2b
0000390 2c2c 2c2c 2c2c 2c2c 2f2f 2f2f 2f2f 2f2f
00003a0 3030 3030 3030 3030 3131 3131 3131 3131
00003b0 3232 3232 3232 3232 3434 3434 3434 3434
00003c0 3535 3535 3535 3535 3636 3636 3636 3636
00003d0 3737 3737 3737 3737 3939 3939 3939 3939
00003e0 3a3a 3a3a 3a3a 3a3a 3b3b 3b3b 3b3b 3b3b
00003f0 3c3c 3c3c 3c3c 3c3c 3e3e 3e3e 3e3e 3e3e
[...]
HMCAD1511 (Generating a ramp pattern) -> HAD1511ADC Core -> LitePCIe (Gen2 X4) -> Host -> LitePCIe Utils -> GlScopeClient pipeline unlocked :):
https://user-images.githubusercontent.com/1450143/180488088-f0cd9cac-06cb-4702-bf4c-373c5c32d0d8.mp4
https://twitter.com/enjoy_digital/status/1550525373800235008
Done, scripts have been cleaned up and improved after the PoC.
For the first captures over PCIe, the configuration can be done over JTAGBone through Python scripts and the capture can done with unmodified
litepcie_test record utility
. It should also be possible to bridge this easily to GLScopeClient with a script similar to https://github.com/enjoy-digital/xtrx_julia/blob/master/test/test_glscopeclient.py.This requires: