beautypg.com

Performing a lookup for smh revision 2 – Altera Advanced SEU Detection IP Core User Manual

Page 21

background image

• 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

Send Feedback