- [ILA – hw_ila_1] ダッシュボードの [Trigger Mode Settings] で [Trigger mode] を ADVANCED_ONLY に設定します。
- [Capture Mode Settings] で [Trigger position in window] を 512 に設定します。
- [Trigger State Machine] で Create
new trigger state machine リンクをクリックします。
- [New Trigger State Machine File] ダイアログ ボックスでステート マシンのスクリプト名を txns.tsm に設定します。
- トリガー ステート マシン スクリプトの基本テンプレートが [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 読み出しトランザクションのさまざまなフェーズを検出するには、ステート マシンを使用します。- 読み出しアドレス フェーズの開始
- 読み出しデータ フェーズの開始
- 読み出しデータ フェーズの終了
- ハードウェア マネージャー ウィンドウで hw_ila_1 core を右クリックし、Run Trigger を選択して、ILA のトリガーを準備します。
- [Trigger Capture Status] ウィンドウで ILA コアがトリガーの発生を待機していることと、トリガー ステート マシンが wait_for_a_valid ステートにあることを確認します。 注記: 512 サンプルのトリガー前の取り込みは完了しました。
- [Tcl Console] ウィンドウで、このチュートリアルの前のセクションで設定した読み出しトランザクションを実行します。
run_hw_axi $rt
注記: ILA がトリガーし、トリガー ステート マシン プログラムが意図したとおりに、axi_rlast
信号が 1 のサンプルにトリガー マークが付いています。