26.5.10.4 Fault Injection and Fault Capture

For functional safety, the ECC feature can be tested through the fault injection logic. This logic applies on top of the existing ECC logic which continues to work independently and allows corrupting (by flipping on purpose) 1 or 2 bits in the 72-bit vector (64-bit data + 8-bit ECC) at a specific address, upon reads or writes at this address in the memory, and capturing error details.

The following figure represents a subset of the fault injection and capture logic (the address bus and page buffer logic are not represented).

Figure 26-6. Fault Injection and Capture Logic

The selection of the fault injection mode (upon reads or writes, single or double error) is done in FLTCTRL.FLTMD. The address of the word to corrupt must be defined in FFLTADR.FLTADR. Only reads and writes to this specific address will affect the fault injection and capture logic.

The selection of the first bit to corrupt is done in FFLTPTR.FLT1PTR. If a second bit needs to be corrupted, it is selected in FFLTPTR.FLT2PTR. The following table explains which FLTxPTR value corresponds to which 64 data bits and 8 ECC bits:

Table 26-4. FLTxPTR Values
FFLTPTR.FLTxPTR Value DATA BITS [0:63] ECC Parity BITS [0:7]
0x0 -- 0
0x1 -- 1
0x2 -- 2
0x3 0 --
0x4 -- 3
0x5 to 0x7 1 to 3 --
0x8 -- 4
0x9 to 0xF 4 to 10 --
0x10 -- 5
0x11 to 0x1F 11 to 25 --
0x20 -- 6
0x21 to 0x3F 26 to 56 --
0x40 -- 7
0x41 to 0x47 57 to 63 --
0x48 to 0xFF -- --

The fault injection or capture is enabled when setting FLTCTRL.FLTEN.