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

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

4.3.4. SMHリビジョン3でのルックアップの実行 (インテルArriaおよび インテル® Cyclone® 10 GXデバイス)

インテル® Arria® 10 インテル® Cyclone® 10 GXデバイスでのセンシティビティー・マップ・ヘッダー・データのルックアップは、EMRからのビット、バイト、フレーム番号を使用し次のように実行します。
  1. フレーム情報エントリーの上位2バイトを読み取り、オフセット・マップ・アレイのフレーム・インデックスを取得します。
    • アドレス = frame_info_base_address + (frame address * 6)
    • 戻り値 = offset_map_array_index
  2. フレーム情報エントリーの下位4バイトを読み取り、フレーム・センシティビティー・データのオフセットを取得します。
    • アドレス = frame_info_base_address + (frame address * 6) + 2
    • 戻り値 = frame_info_data_offset
  3. フレームのオフセットマップ情報を読み取ります。戻り値は16ビットです。
    • アドレス = offset_map_base_address + 現在のフレームのオフセットアレイ + 現在のフレームベースのダブルワードとフレームベースのビットのオフセットデータ値

    上記において

    • 現在のフレームのオフセットアレイ = offset_map_array_index * offset_map_length
    • 現在のフレームベースのダブルワードとフレームベースのビットのオフセットデータ値 = [(double word * 32) + bit] * 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_data_word[7:0]
  5. センシティビティー・データ・タグを読み取ります。オフセットマップの値はセンシティブ・ビットのインデックスを提供します。センシティビティー・タグの戻り値は、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
  6. 0以外のセンシティビティー・タグの領域マスクのみを読み取ります。領域マスクの戻り値は16ビットです。
    region_mask = region_map_base_address + (sensitivity_data_tag - 1) * 2