Visible to Intel only — GUID: esc1434480517001
Ixiasoft
1. Advanced SEU Detection Intel® FPGA IP Overview
2. Advanced SEU Detection Intel® FPGA IP Functional Description
3. Using the Advanced SEU Detection Intel® FPGA IP
4. SEU Mitigation on CRAM Array
5. Advanced SEU Detection Intel® FPGA IP User Guide Archives
6. Document Revision History for the Advanced SEU Detection Intel® FPGA IP User Guide
4.3.1. Programming Sensitivity Map Header File into Memory
4.3.2. Performing a Lookup for SMH Revision 1 ( Stratix® IV and Arria® II)
4.3.3. Performing a Lookup for SMH Revision 2 ( Stratix® V, Arria® V, and Cyclone® V Devices)
4.3.4. Performing a Lookup for SMH Revision 3 ( Arria® 10 and Cyclone® 10 GX Devices)
Visible to Intel only — GUID: esc1434480517001
Ixiasoft
4.3.4. Performing a Lookup for SMH Revision 3 ( Arria® 10 and Cyclone® 10 GX Devices)
To perform a lookup into the sensitivity map header data using a bit, byte, and frame number from an EMR for Arria® 10, Cyclone® 10 GX devices:
- Read the frame information entry's higher two bytes to obtain the frame index in the offset map array:
- Address = frame_info_base_address + (frame address * 6)
- Return value = offset_map_array_index
- Read the frame information entry's lower four bytes to obtain the frame sensitivity data offset:
- Address = frame_info_base_address + (frame address * 6) + 2
- Return value = frame_info_data_offset
- Read the frame's offset map information. The return value is 16 bits.
- Address = offset_map_base_address + offset array for current frame + offset data value for current frame-based double word and frame-based bit
Where:
- Offset array for the current frame = offset_map_array_index * offset_map_length
- Offset data value for the current frame-based double word and frame-based bit = [(double word * 32) + bit] * 2
- Return value = offset_map_value
- Read the 8-bit sensitivity value:
- Address = sensitivity_data_array_base_address + frame_info_data_offset * sensitivity_data_tag_size + (offset_map_value * sensitivity_data_tag_size / 8)
- Return value = sensitive_data_word[7:0]
- Read the sensitivity data tag. The offset map value provides the sensitive bit index. The return value for the sensitivity tag is sensitivity_data_tag_size bit length. A zero tag indicates that the bit is not critical for any region; a non-zero tag indicates an offset in the region map.
sensitive_tag = (sensitive_data_word >> tag_shift) & tag_mask
Where:
- tag_shift = (offset_map_value * sensitivity_data_tag_size)[2:0]
- tag_mask = (0x1 << sensitivity_data_tag_size) - 1
- Read the region mask for a non-zero sensitivity tag only. The return value for the region mask is 16 bits.
region_mask = region_map_base_address + (sensitivity_data_tag - 1) * 2