Zynq-7000 AP SoC and 7 Series FPGAs MIS v4.1
102
UG586 November 30, 2016
Chapter 1:
DDR3 and DDR2 SDRAM Memory Interface Solution
There can be between 0 and C_NCK_PER_CLK × 2 errors per cycle with each data beat
signaled by one of the vector bits. Multiple bits of the vector can be signaled per cycle
indicating that multiple correctable errors or multiple uncorrectable errors have been
detected. The
ecc_err_addr
signal (discussed in
) is valid during the
assertion of either ecc_single or ecc_multiple.
The ECC_STATUS register sets the CE_STATUS bit and/or UE_STATUS bit for correctable error
detection and uncorrectable error detection, respectively.
CAUTION!
Multiple bit error is a serious failure of memory and it is uncorrectable. In such cases, the
application cannot rely on the contents of the memory. It is suggested to not perform any further
transactions to memory.
Interrupt Generation
When interrupts are enabled with the CE_EN_IRQ and/or UE_EN_IRQ bits of the ECC_EN_IRQ
register, if a correctable error or uncorrectable error occurs, the interrupt signal is asserted.
Fault Collection
To aid the analysis of ECC errors, there are two banks of storage registers that collect
information on the failing ECC decode. One bank of registers is for correctable errors, and
another bank is for uncorrectable errors. The failing address, undecoded data, and ECC bits
are saved into these register banks as CE_FFA, CE_FFD, and CE_FFE for correctable errors,
and UE_FFA, UE_FFD, and UE_FFE for uncorrectable errors. The data in combination with the
ECC bits can help determine which bit(s) have failed. CE_FFA stores the address from the
ecc_err_addr
signal and converts it to a byte address. Upon error detection, the data is
latched into the appropriate register. Only the first data beat with an error is stored.
When a correctable error occurs, there is also a counter that counts the number of
correctable errors that have occurred. The counter can be read from the CE_CNT register
and is fixed as an 8-bit counter; it does not roll over when the maximum value is increased.
Fault Injection
The ECC fault injection register, FI_D and FI_ECC, facilitates testing of the software drivers.
When set, the ECC fault injection register XORs with the MIG DFI datapath to simulate errors
in the memory. The DFI interface lies between the Memory Controller and the PHY. It is ideal
for injection now because this is after the encoding has been completed. There is only
support to insert errors on the first data beat, therefore there are two to four FI_D registers
to accommodate this. During operation, after the error has been inserted into the datapath,
the register clears itself.
AXI4-Lite Slave Control/Status Register Interface Parameters
lists the AXI4-Lite slave interface parameters.