FC2カウンター FPGAの部屋 2020年01月22日
fc2ブログ

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

FPGAの部屋

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

Vivado HLS 2019.2 で krnl_dma_read を作成する2(IP 化)

Vivado HLS 2019.2 で krnl_dma_read を作成する1(ソースコードの表示)”の続き。

前回は、Vitis のカーネル間ストーミング接続をテストするために DMA Read カーネル ー ラプラシアン・フィルタ・カーネル ー DMA Write カーネルをストーミング接続してみようということで、最初にDMA Read を作ることにした。そして、ソースコードを貼った。今回は、それらのソースコードを使用して、Vivado HLS 2019.2 で C シミュレーション、C コードの合成、C/RTL 協調シミュレーション、Export RTL を行った。

Vivado HLS 2019.2 で Krnl_dma_read プロジェクトを作成した。その際に New Vivado HLS Project のダイアログで Vitis Bottom Up Flow にチェックを入れた。
streaming_kernel_34_200122.png

Source に krnl_dma_read.cpp を入れて、Test Bench に bmp_header.h, krnl_dma_read_tb.cpp, test.bmp を入れた。
streaming_kernel_35_200122.png

最初に C シミュレーションを行った。
streaming_kernel_27_200121.png

dma_read.bmp が生成されていた。成功だ。
streaming_kernel_30_200121.png

C コードの合成を行った。
streaming_kernel_28_200121.png

Latency の min の 3153 クロック / 3072 ピクセル ≒ 1.03 クロック/ピクセルだった。

C/RTL 協調シミュレーションを行った。Latency は 3488 クロックだった。
streaming_kernel_29_200121.png

C/RTL 協調シミュレーションの波形を示す。
streaming_kernel_31_200121.png

outs_TVALID の波形が途中で切れ気味だが、だいたいOKだろう。

ここで、krnl_dma_read.cpp の extern "C" { } のコメントアウトを外して C コードの合成を行った。
引き続きExport RTL を行った。結果を示す。
streaming_kernel_32_200121.png

dma_read.xo もできた。
streaming_kernel_36_200122.png

とりあえず、krnl_dma_read.cpp を使用して、Vitis のカーネルのストーミング接続をテストするが、その後で、 xo ファイルを使用して、Vitis のカーネルのストーミング接続をテストしてみよう。
  1. 2020年01月22日 05:01 |
  2. Vitis
  3. | トラックバック:0
  4. | コメント:0