Overview

A collection of memory tests.

Traditional tests
Marching Tests

A March test consists of a sequence of March steps, while a March step is a finite sequence of operations applied to every cell in the memory array before proceeding to the next cell. An operation is composed of four operations:

These steps may be ordered by address (increasing address order, decreasing address order), or unordered (where the order doesn't matter).

The implementations in this library are for word-oriented memory. Each implementation is provided in three bus widths (8, 16, and 32 bits wide). To test your RAM, you should run the test that matches your data bus width exactly. Running tests with other bus widths will uncover problems with byte-lane selects (where the tested width is narrower than the actual bus width) or split-writes (where the tested width is wider than the actual bus width).

API Summary

Checkerboard
ctl_memchk_checkerboard_test_16b Checkerboard test over memory (16-bit)
ctl_memchk_checkerboard_test_32b Checkerboard test over memory (32-bit)
ctl_memchk_checkerboard_test_8b Checkerboard test over memory (8-bit)
MSCAN
ctl_memchk_mscan_test_16b MSCAN test (16-bit)
ctl_memchk_mscan_test_32b MSCAN test (32-bit)
ctl_memchk_mscan_test_8b MSCAN test (8-bit)
MOVI
ctl_memchk_movi_test_16b MOVI test (16-bit)
ctl_memchk_movi_test_32b MOVI test (32-bit)
ctl_memchk_movi_test_8b MOVI test (8-bit)
Marching One-Zero
ctl_memchk_marching_one_zero_test_16b Marching one-zero test (16-bit)
ctl_memchk_marching_one_zero_test_32b Marching one-zero test (32-bit)
ctl_memchk_marching_one_zero_test_8b Marching one-zero test (8-bit)
MATS+
ctl_memchk_mats_plus_test_16b MATS+ test (16-bit)
ctl_memchk_mats_plus_test_32b MATS+ test (32-bit)
ctl_memchk_mats_plus_test_8b MATS+ test (8-bit)
MATS++
ctl_memchk_mats_plus_plus_test_16b MATS++ test (16-bit)
ctl_memchk_mats_plus_plus_test_32b MATS++ test (32-bit)
ctl_memchk_mats_plus_plus_test_8b MATS++ test (8-bit)
MARCH C
ctl_memchk_march_c_test_16b MARCH C test (16-bit)
ctl_memchk_march_c_test_32b MARCH C test (32-bit)
ctl_memchk_march_c_test_8b MARCH C test (8-bit)
MARCH C-
ctl_memchk_march_c_minus_test_16b MARCH C- test (16-bit)
ctl_memchk_march_c_minus_test_32b MARCH C- test (32-bit)
ctl_memchk_march_c_minus_test_8b MARCH C- test (8-bit)
Extended MARCH C-
ctl_memchk_extended_march_c_minus_test_16b Extended MARCH C- test (16-bit)
ctl_memchk_extended_march_c_minus_test_32b Extended MARCH C- test (32-bit)
ctl_memchk_extended_march_c_minus_test_8b Extended MARCH C- test (8-bit)
MARCH A
ctl_memchk_march_a_test_16b MARCH A test (16-bit)
ctl_memchk_march_a_test_32b MARCH A test (32-bit)
ctl_memchk_march_a_test_8b MARCH A test (8-bit)
MARCH B
ctl_memchk_march_b_test_16b MARCH B test (16-bit)
ctl_memchk_march_b_test_32b MARCH B test (32-bit)
ctl_memchk_march_b_test_8b MARCH B test (8-bit)
MARCH X
ctl_memchk_march_x_test_16b MARCH X test (16-bit)
ctl_memchk_march_x_test_32b MARCH X test (32-bit)
ctl_memchk_march_x_test_8b MARCH X test (8-bit)
MARCH Y
ctl_memchk_march_y_test_16b MARCH Y test (16-bit)
ctl_memchk_march_y_test_32b MARCH Y test (32-bit)
ctl_memchk_march_y_test_8b MARCH Y test (8-bit)
MARCH LR
ctl_memchk_march_lr_test_16b MARCH LR test (16-bit)
ctl_memchk_march_lr_test_32b MARCH LR test (32-bit)
ctl_memchk_march_lr_test_8b MARCH LR test (8-bit)
MARCH M
ctl_memchk_march_m_test_16b MARCH M test (16-bit)
ctl_memchk_march_m_test_32b MARCH M test (32-bit)
ctl_memchk_march_m_test_8b MARCH M test (8-bit)
MARCH M--OR
ctl_memchk_march_m_minus_minus_or_test_16b MARCH M--OR test (16-bit)
ctl_memchk_march_m_minus_minus_or_test_32b MARCH M--OR test (32-bit)
ctl_memchk_march_m_minus_minus_or_test_8b MARCH M--OR test (8-bit)
MARCH M--AND
ctl_memchk_march_m_minus_minus_and_test_16b MARCH M--AND test (16-bit)
ctl_memchk_march_m_minus_minus_and_test_32b MARCH M--AND test (32-bit)
ctl_memchk_march_m_minus_minus_and_test_8b MARCH M--AND test (8-bit)
MARCH G
ctl_memchk_march_g_test_16b MARCH G test (16-bit)
ctl_memchk_march_g_test_32b MARCH G test (32-bit)
ctl_memchk_march_g_test_8b MARCH G test (8-bit)
Symmetric MARCH G
ctl_memchk_symmetric_march_g_test_16b Symmetric MARCH G test (16-bit)
ctl_memchk_symmetric_march_g_test_32b Symmetric MARCH G test (32-bit)
ctl_memchk_symmetric_march_g_test_8b Symmetric MARCH G test (8-bit)
IFA-9
ctl_memchk_ifa_9_test_16b IFA-9 test (16-bit)
ctl_memchk_ifa_9_test_32b IFA-9 test (32-bit)
ctl_memchk_ifa_9_test_8b IFA-9 test (8-bit)
IFA-13
ctl_memchk_ifa_13_test_16b IFA-13 test (16-bit)
ctl_memchk_ifa_13_test_32b IFA-13 test (32-bit)
ctl_memchk_ifa_13_test_8b IFA-13 test (8-bit)