AXI インターフェイスのデバッグには、アドレスの終了 (End of the Address) コマンド、データ ビートの終了 (End of Data Beat) コマンド、書き込み応答 (Write Response) コマンドの 3 つの AXI イベントでのトリガーが関係していることがよくあります。異なるインターフェイス チャネルでは、これらのイベントの 1 つ以上でトリガーする必要のある場合が多くあります。たとえば、読み出しアドレスの終了コマンドまたは書き込みアドレスの終了コマンドのトリガー条件をインプリメントするには、次の式で計算します。
トリガー条件 = (((ARVALID == 1) && (ARREADY == 1)) || ((AWVALID == 1) && (AWREADY == 1)))
ただし、これには積和 (SOP) 形式のブール代数式が必要ですが、必須の AXI 信号 (ARVALID および ARREADY など) が異なるプローブ ポートにある場合はインプリメントできません。このタイプのトリガーを使用するため、次の図のように、必須の *VALID、*READY、および *LAST 制御信号が 1 つのプローブ ポートでまとめられます。
説明 | プローブ名 | ビット 2 | ビット 1 | ビット 0 |
---|---|---|---|---|
読み出しアドレス チャネルの制御信号 | *ar_ctrl[1:0] | なし | ARREADY | ARVALID |
読み出しデータ チャネルの制御信号 | *r_ctrl[2:0] | RLAST | RREADY | RVALID |
書き込みアドレス チャネルの制御信号 | *aw_ctrl[1:0] | なし | AWREADY | AWVALID |
書き込みデータ チャネルの制御信号 | *w_ctrl[2:0] | WLAST | WREADY | WVALID |
書き込み応答チャネルの制御信号 | *b_ctrl[1:0] | なし | BREADY | BVALID |
次の表に、各 AXI 制御信号プローブと AXI チャネル制御プローブの両方を使用して、便利で基本的なトリガーおよびキャプチャ制御式をインプリメントする方法を示します。その後の図に、基本的なトリガー設定 GUI を使用して、読み出しアドレスの終了コマンドまたは書き込みアドレスの終了コマンドをインプリメントする方法を示します。
AXI イベント | 各 AXI 制御信号 | 統合 AXI チャネル制御プローブ |
---|---|---|
読み出しアドレスの終了コマンド | ((ARVALID == 1) && (ARREADY == 1)) | (*ar_ctrl == 2'b11) |
最後の読み出しデータ ビートの終了 | ((RVALID == 1) && (RREADY == 1) && (RLAST == 1)) | (*r_ctrl == 3'b111) |
最後以外の読み出しデータ ビートの終了 | ((RVALID == 1) && (RREADY == 1) && (RLAST == 0)) | (*r_ctrl == 3'b011) |
書き込みアドレスの終了コマンド | ((AWVALID == 1) && (AWREADY == 1)) | (*aw_ctrl == 2'b11) |
最後の書き込みデータ ビートの終了 | ((WVALID == 1) && (WREADY == 1) && (WLAST == 1)) | (*w_ctrl == 3'b111) |
最後以外の読み出しデータ ビートの終了 | ((WVALID == 1) && (WREADY == 1) && (WLAST == 0)) | (*w_ctrl == 3'b011) |
図 1. 読み出しアドレスの終了コマンドまたは書き込みアドレスの終了コマンドの基本的なトリガー設定