RTL カーネルへのデバッグ IP の追加 - 2022.1 日本語

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 日本語
重要: このデバッグ手法を使用するには、Vivado Design Suite および RTL デザインに関する知識が必要です。

ILA や VIO などの ChipScope デバッグ コアを Vitis 開発フローで使用するためにパッケージする前に、RTL カーネル コードに手動で追加することにより、RTL カーネルでデバッグをイネーブルにすることもできます。Vivado Design Suite で、RTL カーネル コードを編集して手動で ILA デバッグ コアをインスタンシエートするか、Vivado IDE でほかの IP を使用する場合と同様にザイリンクス IP カタログから VIO IP を挿入します。デザインにデバッグ コアを追加する方法の詳細は、 『Vivado Design Suite ユーザー ガイド: プログラムおよびデバッグ』 (UG908) で HDL インスタンシエーション フローを参照してください。

デバッグ コアは、RTL カーネルを作成したときに追加するのがベストです。ただし、デバッグ コアはデバイス リソースを消費し、パフォーマンスに影響を与える可能性があるので、1 つのカーネルをデバッグ用に、もう 1 つのカーネルをプロダクション用に作成することをお勧めします。GitHub の RTL カーネル の例の rtl_vadd_hw_debug は、RTL カーネル ソース ファイルにインスタンシエートされた ILA デバッグ コアを示しています。ILA は src/hdl/krnl_vadd_rtl_int.sv ファイルで指定した組み合わせ加算器の出力を監視します。

	// ILA monitoring combinatorial adder
	ila_0 i_ila_0 (
		.clk(ap_clk),              // input wire        clk
		.probe0(areset),           // input wire [0:0]  probe0  
		.probe1(rd_fifo_tvalid_n), // input wire [0:0]  probe1 
		.probe2(rd_fifo_tready),   // input wire [0:0]  probe2 
		.probe3(rd_fifo_tdata),    // input wire [63:0] probe3 
		.probe4(adder_tvalid),     // input wire [0:0]  probe4 
		.probe5(adder_tready_n),   // input wire [0:0]  probe5 
		.probe6(adder_tdata)       // input wire [31:0] probe6
	);

または、次の Tcl スクリプト例に示すように 『Vivado Design Suite ユーザー ガイド: プログラムおよびデバッグ』 (UG908) に説明されているネットリスト挿入フローを使用して、開いている Vivado プロジェクトで Tcl スクリプトを実行して ILA デバッグ コアを追加することもできます。

create_ip -name ila -vendor xilinx.com -library ip -version 6.2 -module_name ila_0
set_property -dict [list CONFIG.C_PROBE6_WIDTH {32} CONFIG.C_PROBE3_WIDTH {64} \
CONFIG.C_NUM_OF_PROBES {7} CONFIG.C_EN_STRG_QUAL {1} CONFIG.C_INPUT_PIPE_STAGES {2} \
CONFIG.C_ADV_TRIGGER {true} CONFIG.ALL_PROBE_SAME_MU_CNT {4} CONFIG.C_PROBE6_MU_CNT {4} \
CONFIG.C_PROBE5_MU_CNT {4} CONFIG.C_PROBE4_MU_CNT {4} CONFIG.C_PROBE3_MU_CNT {4} \
CONFIG.C_PROBE2_MU_CNT {4} CONFIG.C_PROBE1_MU_CNT {4} CONFIG.C_PROBE0_MU_CNT {4}] [get_ips ila_0]

RTL カーネルにデバッグ用に適切なデバッグ コアを挿入したら、ChipScope を使用したデバッグ に説明するように、ハードウェアを Vivado ハードウェア マネージャーで解析できます。