Performing a lookup for smh revision 2 – Altera Advanced SEU Detection IP Core User Manual
Page 21
![background image](https://www.manualsdir.com/files/763665/content/doc021.png)
• Offset array for current frame =
offset_map_array_index
*
offset_map_length
• Offset data value for current byte and bit = [(byte * 8) + bit] * 2
• Return value =
offset_map_value
3. Read the 8-bit sensitivity value:
• Address = (
offset_map_value
/8) +
sensitivity_base_address
+
frame_info_data_offset
• Return value =
sensitive_bit_word
[7:0]
4. Read the sensitive bit. The offset map value provides the sensitive bit index. A value of 1 indicates a
critical bit, and a value of 0 indicates a non-critical bit.
• Sensitive bit =
sensitive_bit_word[bit_index]
where,
• bit_index =
offset_map_value[2:0]
Performing a Lookup for SMH Revision 2
To perform a lookup into the sensitivity map header data using a bit, byte and frame number from an
EMR (Arria V, Cyclone V, Stratix V, and later devices only):
1. Read the 32-bit frame information string for the frame number:
• Address = 0x1C + (frame*4)
• Return value = (
frame_info_data_offset
,
offset_map_array_index
2. Read the offset map information for a frame. The return value for the offset map information is 16 bits:
• Address =
offset_map_base_address
+ offset array for current frame + offset data value for
current byte and bit
where,
• Offset array for current frame =
offset_map_array_index
*
offset_map_length
• Offset data value for current byte and bit = [(byte * 8) + bit] * 2
• Return value =
offset_map_value
3. Read the 8-bit sensitivity value:
• Address = (
offset_map_value
*
sensitivity_data_tag_size
/8) +
sensitivity_base_address
+
frame_info_data_offset
• Return value =
sensitive_bit_word
[7:0]
4. Read 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 bit is not critical for
any region while a non-zero tag indicates offset in region map.
•
sensitive_tag
= (
sensitive_data word
>>
tag_shift
) and
tag_mask
where,
•
tag_shift
= (
offset_map_value
*
sensitivity_data_tag_size
)[2:0]
•
tag_mask
= (0x1 <<
sensitivity_data_tag_size
) - 1;
5. Read the region mask for a non-zero sensitivity tag. The return value for the region mask is 16 bits.
•
region_mask
=
region_map_base_address
+ (
sensitivity_data_tag
- 1) * 2
ALTADVSEU
2015.05.04
Performing a Lookup for SMH Revision 2
21
Altera Advanced SEU Detection IP Core User Guide
Altera Corporation