JAJAA48 October   2025 TDA4VM

 

  1.   1
  2.   概要
  3.   商標
  4. 1はじめに
  5. 2命令
    1. 2.1 範囲
    2. 2.2 HWA 命令定義
    3. 2.3 故障注入手順
      1. 2.3.1 ブロック図
      2. 2.3.2 故障注入:ステップ
        1. 2.3.2.1 アンダーフロー エラー
        2. 2.3.2.2 オーバーフロー エラー
        3. 2.3.2.3 オフセット パリティ エラー
        4. 2.3.2.4 設定パリティ エラー
          1. 2.3.2.4.1 FSM 構成パリティ エラー
          2. 2.3.2.4.2 B FSM 構成パリティ エラー
          3. 2.3.2.4.3 C FSM 構成パリティ エラー
          4. 2.3.2.4.4 X FSM 構成パリティエラー
        5. 2.3.2.5 C 読み取りエラー
        6. 2.3.2.6 C 書き込みエラー
  6. 3フロー図
    1. 3.1 コード変更
      1. 3.1.1 リターン フックの定義
      2. 3.1.2 MMA クリア関数
      3. 3.1.3 シーケンス テスト
  7. 4まとめ
  8. 5参考資料

C 書き込みエラー

C 書き込みエラーは、同じ C マトリックス バンクへの同時書き込みアクセスが複数ある場合に発生し、競合が発生します。以下の手順に従って、このエラーを注入します。
  1. HWAOPEN 命令は、動作を MULPLUS として構成することで、HWA_CONFIG と HWA_OFFSET を書き込むために使用されます。
  2. HWAOP と HWALDC 演算を並列実行します。
  3. C マトリクス バンクへの短時間かつ頻繁な読み取りおよび書き込みにより、エラーが発生します。
  4. HWARCV 命令が実行され、エラーが観測されます。
void c_write_error(void)
{
   int switch_period=0; 
    int repeat_op_count = 0;
    for( ;switch_period<2;switch_period++)
    {
        __HWA_CONFIG_REG_v1 config_reg = __gen_HWA_CONFIG_REG_v1();
        config_reg.C_OPERATION0 = __MMA_C_CONFIG_MULPLUS;
        config_reg.C_OPERATION1 = __MMA_C_CONFIG_MULPLUS;
        config_reg.C_CRSWPER = switch_period; //different switching period
        config_reg.C_CWSWPER  = switch_period+10000;
        __HWA_OFFSET_REG offset_reg;
        offset_reg = __gen_HWA_OFFSET_REG(); //This generates the offset register.  
        __HWAOPEN(config_reg,offset_reg,__MMA_OPEN_FSM_RESET); //This opens theHWAOPEN
        repeat_op_count = 0;
        for(;repeat_op_count<10;repeat_op_count++)
        {
        __asm(" HWALDC .L2 VB0"); //Earlier SE0++
        __asm(" ||HWAOP.S1 SA0"); //This should run them in parallel
        __HWAADV();
        __HWAADV();
        __HWAADV();
        __HWAADV();
        } 
    }
    __HWARCV(0);  //Calls the error
    __asm(" NOP");
    __asm(" NOP");
}