FC2カウンター FPGAの部屋 2020年02月06日
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Vitis 2019.2 で自作カーネルを使用してストーミング接続を試す4(ChipScope で波形を確認する1)

Vitis 2019.2 で自作カーネルを使用してストーミング接続を試す3”の続き。

前回は、Vitis 2019.2 の streaming_lap_filter プロジェクトの Run Configuration を作成して、実機動作を行ったが、成功しなかった。今回は、その原因を探るために、ChipScope を入れて波形を確認してみよう。

参考にしたのは、”Vitis 統合ソフトウェア プラットフォームの資料 アプリケーション アクセラレーション開発 UG1393 (v2019.2) 2019 年 11 月 11 日”の”第 20 章 アプリケーションおよびカーネルのデバッグ”の 235 ページの”ハードウェア実行中のデバッグ”だ。
236 ページの”ChipScope を使用したデバッグでのカーネルのイネーブル”がには、--dk オプションを使用した ILA IP コアの挿入方法について書かれている。早速やってみよう。

Vitis GUI でやる方法を示す。
Vitis GUI の Assistant ウインドウで Streaming_lap_filter_system -> streaming_lap_filter を右クリックし右クリックメニューから settings... を選択する。
Project Settings ダイアログが開く。
V++ linker options に以下のオプションを追加した。

--config ../src/krnl_stream_dmar_lap_dmaw.ini --dk chipscope:dma_read_1 --dk chipscope:dma_write_1 --dk chipscope:krnl_lap_filter_1:ins --dk chipscope:krnl_lap_filter_1:outs --dk chipscope:krnl_lap_filter_1:x_size


streaming_lap_filter_21_200205.png

なお、--dk chipscope:<カーネルのインスタンス名>で、AXI4 Master 、AXI4 Lite インターフェースはそのままILA でプローブされたが、AXI4 Stream はプローブされなかった。そこで、krnl_lap_filter だけは各ポートを指定して、--dk オプションを入れている。

streaming_lap_fiter プロジェクトのHardware を clean してもう一度ビルドした。
その際に、 cl::CommandQueue() に CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE プロパティを設定した。これは、設定すると、コマンドキュー内のコマンドは順不同で実行されるそうだ。
このプロパティは、streaming_k2k_mm の host.cpp で使用されている。
streaming_lap_filter_22_200206.png

ビルドが成功した。
Vivado プロジェクトのブロックデザインを確認すると、AXI4 Master, AXI4 Lite, AXI4 Stream の各ポートに ILA のプローブが接続されているのが分かる。
streaming_lap_filter_23_200206.png
  1. 2020年02月06日 05:37 |
  2. Vitis
  3. | トラックバック:0
  4. | コメント:0