ハードウェア デバッグで重要なのは、カーネルに必要なデバッグ ロジックを挿入することです。次のトピックでは、使用可能なカーネル ポートをリストし、選択したポートで System Integrated Logic Analyzer (ILA) コアをイネーブルにし、プロトコル違反のチェック用に AXI Protocol Checker デバッグ コアをイネーブルにする v++
リンカー オプションを示します。
ILA コアを使用すると、ハードウェアで実行される計算ユニット (CU) のインスタンスのアクティビティをトランザクション レベルで表示できます。ILA コアを使用すると、特定の AXI トラフィックをキャプチャして表示することもできます。ILA コアは、既存の RTL カーネルに追加してデザイン内でデバッグ機能をイネーブルにするか、v++
コンパイラでリンク時に自動的に挿入されるようにできます。v++
コマンドには、デバッグおよびパフォーマンス監視用にカーネルへのインターフェイスに System ILA コアを接続する --dk
オプションがあります。
-–dk
オプションを使用して ILA IP コアの挿入をイネーブルにするには、次の構文を使用します。 --dk <chipscope:<cu_name>[:<interface_name>]>
通常、<interface_name>
の使用はオプションです。指定しない場合、すべてのポートが解析されます。
AXI Protocol Checker コアは、AXI インターフェイスを監視します。インターフェイスに接続すると、プロトコル違反をアクティブにチェックし、違反が発生した場合にそれを通知します。デザインのすべての CU、または特定の CU およびポートに割り当てることができます。
-–dk
オプションを次の構文で使用します。 --dk <protocol:all>
プロトコル チェッカーを使用する場合は、キーワード all
または <cu_name>:<interface_name>
を指定します。
--dk list_ports
オプションを使用すると、protocol
または chipscope
で使用するカーネル上の実際のポート名を取得できます。ILA またはプロトコル チェッカーをデザインに追加するフローの例を次に示します。
- カーネル ソース ファイルを
.xo
ファイルにコンパイルする際に、-g オプションを使用してカーネルにデバッグ機能を追加します。v++ -c -g -k <kernel_name> --platform <platform> -o <kernel_xo_file>.xo <kernel_source_files>
- カーネルが
.xo
ファイルにコンパイルされたら、--dk list_ports
を使用し、v++
コンパイラでカーネルで有効な計算ユニットとポートの組み合わせが表示されるようにします。v++ -l -g --platform <platform> --connectivity.nk <kernel_name>:<compute_units>:<kernel_nameN> --dk list_ports <kernel_xo_file>.xo
-
list_ports
を--dk chipscope
または--dk protocol
コマンドに置き換え、ポートに ILA または AXI デバッグ コアを追加します。v++ -l -g --platform <platform> --connectivity.nk <kernel_name>:<compute_units>:<kernel_nameN> --dk chipscope:<compute_unit_name>:<interface_name> <kernel_xo_file>.xo
--dk
オプションは、1 つの v++
コマンド ラインで複数回指定して、複数の CU およびインターフェイスを指定できます。デザインがビルドされたら、ChipScope を使用したデバッグ に示すように、Vivado ハードウェア マネージャーを使用してデザインをデバッグできます。