A simple DDR3 SDRAM tester. Performs maximum bandwidth write-then-read tests using Joris van Rantwijk’s Pseudo Random Number Generator "xoshiro128++ 1.0". Also demonstrates how to hack the DDR3 IP core’s MMCM to generate the 200MHz IODELAYCTRL reference clock.
Supported boards: Digilent Nexys Video and QMTECH Wukong.
Build the Vivado project by running make
in the relevant build
directory, and program your board from the command line by running make prog
. Once the project is built, you may open it in the Vivado IDE.
Test control and status indication depends on the board being used:
- Digilent Nexys Video
-
-
SW4-0 sets the test size in bytes as a power of 2:
-
00100 = 4: 2^4 = 16 Bytes (minimum)
-
01000 = 8: 2^8 = 256 Bytes
-
11101 = 29: 2^29 = 512MBytes (maximum)
-
OFF = 0, ON = 1
-
-
SW5 enables slow testing (once per second) when ON
-
SW6 is a run/stop control (ON = run)
-
SW7 switches between pass and error count display - see below
-
LED7 = heartbeat (toggles every time round the test)
-
LED6 = at least one error has occurred
-
LED5-0 = LS 6 bits of test pass count (SW7 = OFF) or total error count (SW7 = ON)
-
Note that changing the test size during a test can cause an error. Press the CPU_RESET button to restart the test.
- QMTECH Wukong
-
-
D5 = heartbeat (toggles every time round the test)
-
D6 = at least one error has occurred
-
test size is fixed at 256MBytes
-