手順 3: AXI 読み出しトランザクションでトリガーするための ILA アドバンスド トリガー機能の使用 - 2022.1 日本語

Vivado Design Suite チュートリアル: プログラムおよびデバッグ (UG936)

Document ID
UG936
Release Date
2022-05-20
Version
2022.1 日本語
  1. [ILA – hw_ila_1] ダッシュボードの [Trigger Mode Settings] で [Trigger mode] を ADVANCED_ONLY に設定します。
  2. [Capture Mode Settings] で [Trigger position in window] を 512 に設定します。
  3. [Trigger State Machine] で Create new trigger state machine リンクをクリックします。

  4. [New Trigger State Machine File] ダイアログ ボックスでステート マシンのスクリプト名を txns.tsm に設定します。

  5. トリガー ステート マシン スクリプトの基本テンプレートが [Trigger State Machine] ガジェットに表示されます。ILA ダッシュボードでこのガジェットを展開します。ステート マシン スクリプトの 17 行目以降の次のスクリプトをコピーして、ファイルを保存します。
    # The "wait_for_arvalid" state is used to detect the start 
    # of the read address phase of the AXI transaction which
    # is indicated by the axi_arvalid signal equal to '1'
    #
    state wait_for_arvalid:
        if (design_1_i/system_ila_0/U0/net_slot_0_axi_arvalid == 1'b1) then
          goto wait_for_rready;
        else
          goto wait_for_arvalid;
        endif
    #
    # The "wait_for_rready" state is used to detect the start 
    # of the read data phase of the AXI transaction which
    # is indicated by the axi_rready signal equal to '1'
    #
    state wait_for_rready:
      if (design_1_i/system_ila_0/U0/net_slot_0_axi_rready == 1'b1) then
        goto wait_for_rlast;
      else
        goto wait_for_rready;
      endif
    
    #
    # The "wait_for_rlast" state is used to detect the end 
    # of the read data phase of the AXI transaction which
    # is indicated by the axi_rlast signal equal to '1'.
    # Once the end of the data phase is detected, the ILA core
    # will trigger.
    #
    state wait_for_rlast:
      if (design_1_i/system_ila_0/U0/net_slot_0_axi_rlast == 1'b1) then
        trigger;
      else
        goto wait_for_rlast;
      endif
    注記: AXI 読み出しトランザクションのさまざまなフェーズを検出するには、ステート マシンを使用します。
    • 読み出しアドレス フェーズの開始
    • 読み出しデータ フェーズの開始
    • 読み出しデータ フェーズの終了
  6. ハードウェア マネージャー ウィンドウで hw_ila_1 core を右クリックし、Run Trigger を選択して、ILA のトリガーを準備します。

  7. [Trigger Capture Status] ウィンドウで ILA コアがトリガーの発生を待機していることと、トリガー ステート マシンが wait_for_a_valid ステートにあることを確認します。512 サンプルのトリガー前の取り込みは完了しました。

  8. [Tcl Console] ウィンドウで、このチュートリアルの前のセクションで設定した読み出しトランザクションを実行します。
    run_hw_axi $rt
    注記: ILA がトリガーし、トリガー ステート マシン プログラムが意図したとおりに、axi_rlast 信号が 1 のサンプルにトリガー マークが付いています。