AN 539: Test Methodology of Error Detection and Recovery using CRC in Intel FPGA Devices
ID
683075
Date
8/09/2019
Public
1.1. Functional Description
1.2. Error Correction
1.3. Using the Error Detection CRC Feature
1.4. Error Injection
1.5. Modifying Single-Device .jam Files for Use in a Multi-Device JTAG Chain
1.6. Running .jam Files with the Intel® Quartus® Prime Jam Tools
1.7. Document Revision History for AN 539: Test Methodology of Error Detection and Recovery using CRC in Intel® FPGA Devices
1.3.1.1. Detecting CRC Errors through the CRC_ERROR Output Signal
1.3.1.2. Unloading the EMR through User Logic
1.3.1.3. Accessing the Error Detection Block through User Logic
Example of the Input and Output Ports of a WYSIWYG Atom in a Stratix® III Device
1.3.1.4. User Logic Control Block
1.3.1.5. User Logic Control Block Signals
1.3.1.3. Accessing the Error Detection Block through User Logic
Use the <device>_crcblock WYSIWYG component to establish the interface from the user logic to the error detection circuit. The <device>_crcblock primitive atom contains the input and output ports that you must include in the atom. To access the logic array, insert the <device>_crcblock WYSIWYG atom into your design.
You cannot use the information provided by the EMR to detect soft errors. Instead, use the information provided by the CRC_ERROR output signal because it is not affected by soft errors.
Figure 8. User Logic Error Detection Block DiagramFigure shows the error detection feature and the WYSIWYG atom that you must enable in your design.
Note: For the Intel® Quartus® Prime software version 8.0 SP1 or earlier, you must enable the error detection CRC feature in the Device & Pin Options dialog box in the Intel® Quartus® Prime software when you include the <device>_crcblock WYSIWYG atom in your design.
To enable the <device>_crcblock WYSIWYG atom, name the atom for each device accordingly. For example, the WYSIWYG atom for the Stratix® III device is stratixiii_crcblock and the Arria® II device is arriaii_crcblock.
Port | Input/Output | Definition |
---|---|---|
<crcblock_name> | Input | Unique identifier for the CRC block and represents any identifier name that is legal for the given description language, such as the Verilog HDL, VHDL, and Altera Hardware Description Language (AHDL). This is a required field. |
.clk(<clock source>) | Input | Designates the clock input of this cell. All operations of this cell are with respect to the rising edge of the clock. Whether loading data into the cell or out of the cell, this always occurs on the rising edge. This is a required port. |
.shiftnld (<shiftnld source>) | Input |
|
.crcerror (<crcerror out destination>) | Output |
|
.regout(<output destination>) | Output |
|
Example of the Input and Output Ports of a WYSIWYG Atom in a Stratix® III Device
Example shows the input and output ports of a WYSIWYG atom in a Stratix® III device.stratixiii_crcblock <crcblock_name>
(
.clk(<clock source>),
.shiftnld(<shiftnld source>),
.crcerror(<crcerror out destination>),
.regout(<output destination>)
);
defparam crc_wysiwyg_atom.oscillator_divider = 2
Note: The crc_wysiwyg_atom.oscillator_divider parameter describes the clock divider for the error detection frequency of the <device>_crcblock WYSIWYG atom.
Related Information