Intel FPGA高级SEU检测IP用户指南

ID 683542
日期 11/07/2017
Public
文档目录

1.3.3.4. 对SMH修订本3执行查找功能( Intel® Arria® 10和 Intel® Cyclone® 10 GX器件)

要对敏感度映射头文件数据执行查找功能,可使用 Intel® Arria® 10 Intel® Cyclone® 10 GX器件的比特、字节以及EMR的帧数:
  1. 读取帧信息条目的第一组16位以获得偏移映射阵列索引的帧数:
    • 地址 = frame_info_base_address + (帧 * 4)
    • 返回值 = offset_map_array_index
  2. 读取帧信息条目的下一组32位以获帧敏感数据偏移的帧数:
    • 地址 = frame_info_base_address + (帧 * 4) + 2
    • 返回值 = frame_info_data_offset
  3. 读取帧的偏移映射信息。返回值是16位。
    • 地址 = offset_map_base_address + 当前帧的偏移阵列 + 当前字节和位的偏移数据值

    其中:

    • 当前帧的偏移阵列 = offset_map_array_index * offset_map_length
    • 当前字节和位的偏移数据值 = [(字节 * 8) + 位] * 2
    • 返回值 = offset_map_value
  4. 读取8位敏感度数值:
    • 地址 = sensitivity_data_array_base_address + frame_info_data_offset * sensitivity_data_tag_size + (offset_map_value * sensitivity_data_tag_size / 8)
    • 返回值 = sensitive_bit_word[7:0]
  5. 读取敏感度数据标记。偏移映射值提供了敏感比特索引。敏感度标记的返回值是sensitivity_data_tag_size比特长。一个零标记表示该比特对于任何区域均是非关键比特;一个非零标记则表示区域映射中的偏移。

    sensitive_tag = (sensitive_data word >> tag_shift) & tag_mask

    其中:

    • tag_shift = (offset_map_value * sensitivity_data_tag_size)[2:0]
    • tag_mask = (0x1 << sensitivity_data_tag_size) - 1
  6. 仅读取非零敏感度标记的区域掩码。区域掩码的返回值是16位。
    region_mask = region_map_base_address + (sensitivity_data_tag - 1) * 2