Advanced SEU Detection インテル® FPGA IPユーザーガイド

ID 683542
日付 3/26/2019
Public
ドキュメント目次

4.3.3. SMHリビジョン2でのルックアップの実行 (Stratix V、 Arria® V、 Cyclone® Vデバイス)

Stratix® V Arria® V、および Cyclone® Vデバイスでのセンシティビティー・マップ・ヘッダー・データのルックアップは、 EMRからのビット、バイト、およびフレーム番号を使用し次のように実行します。
  1. フレーム番号の32 ビットのフレーム情報文字列を読み取ります。
    • アドレス = <frame_info_base_address> + (frame*4)
    • 戻り値 = (frame_info_data_offsetoffset_map_array_index)
  2. フレームのオフセットマップ情報を読み取ります。戻り値は16ビットです。
    • アドレス = offset_map_base_address + 現在のフレームのオフセットアレイ + 現在のバイトとビットのオフセットデータ値

    上記において

    • 現在のフレームのオフセットアレイ = offset_map_array_index * offset_map_length
    • 現在のバイトとビットのオフセットデータ値 = [(byte * 8) + bit] * 2
    • 戻り値 = offset_map_value
  3. 8ビットのセンシティビティーの値を読み取ります。
    • アドレス = sensitivity_data_array_base_address + frame_info_data_offset + (offset_map_value * sensitivity_data_tag_size / 8)
    • 戻り値 = sensitive_bit_word[7:0]
  4. センシティビティー・データ・タグを読み取ります。オフセットマップの値はセンシティブ・ビットのインデックスを提供します。センシティビティー・タグの戻り値は、sensitivity_data_tag_sizeビット長です。0のタグは、そのビットがいずれの領域においてもクリティカルではないことを示し、0以外のタグは領域マップでのオフセットを示します。

    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
  5. 0以外のセンシティビティー・タグの領域マスクのみを読み取ります。領域マスクの戻り値は16ビットです。
    region_mask = region_map_base_address + (sensitivity_data_tag - 1) * 2