Cyclone® 10 GX Core Fabric and General Purpose I/Os Handbook

ID 683775
Date 7/08/2024
Public
Document Table of Contents

8.2.1.1. Error Detection Cyclic Redundancy Check

In user mode, the contents of the configured configuration RAM (CRAM) bits can be affected by soft errors. These soft errors, which are caused by an ionizing particle, are not common in Altera FPGA devices. However, high-reliability applications that require error-free device operation may require your design to consider these errors.

The hardened on-chip EDCRC circuitry allows you to perform the following operations without any impact on the fitting or performance of the device:

  • Auto-detection of cyclic redundancy check (CRC) errors during configuration.
  • Optional soft errors (single and multiple bit upset) detection and identification in user mode.
  • Fast soft error detection. The error detection speed is improved compared to older Cyclone® device families.
  • Two types of check-bits:
    • Frame-based check-bits—stored in CRAM and used to verify the integrity of the frame.
    • Column-based check-bits—stored in registers and used to protect integrity of all frames.

During error detection in user mode, a number of EDCRC engines run in parallel for Cyclone® 10 GX devices. The number of error detection CRC engines depends on the frame length—total bits in a frame.

Each column-based error detection CRC engine reads 128 bits from each frame and processes within four cycles. To detect errors, the error detection CRC engine needs to read back all frames.

Figure 153. Block Diagram for Error Detection in User ModeThe block diagram shows the registers and data flow in user mode.
Table 84.  Error Detection Registers
Name Description
Error message registers (EMR) Contains error details for single-bit and double-adjacent errors. The error detection circuitry updates this register each time the circuitry detects an error.
User update register This register is automatically updated with the contents of the EMR one clock cycle after the contents of this register are validated. The user update register includes a clock enable, which must be asserted before its contents are written to the user shift register. This requirement ensures that the user update register is not overwritten when its contents are being read by the user shift register.
User shift register This register allows user logic to access the contents of the user update register via the core interface.

You can use the Error Message Register Unloader IP core to shift-out the EMR information through user shift register. For more information, please refer to related information.

JTAG update register This register is automatically updated with the contents of the EMR one clock cycle after the content of this register is validated. The JTAG update register includes a clock enable, which must be asserted before its contents are written to the JTAG shift register. This requirement ensures that the JTAG update register is not overwritten when its contents are being read by the JTAG shift register.
JTAG shift register This register allows you to access the contents of the JTAG update register via the JTAG interface using the SHIFT_EDERROR_REG JTAG instruction.