”
Vitis 2019.2 で RTL カーネルを使用してストーミング接続を試す1”の続き。
RTL カーネルでストリーミング接続がうまく行くのか?を確かめるために、krnl_lap_filter_dmaw.cpp を Vivado HLS 2019.2 で RTL カーネルにすることにした。前回は、ソースコードを貼って、Vivado HLS 2019.2 のプロジェクトを作成した。今回は、C シミュレーション、C コードの合成、C/RTL 協調シミュレーション、Export RTL を行う。
C シミュレーションからやってみよう。

solution1/csim/build ディレクトリを見ると、lap.bmp が生成されている。

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

Latency も問題無さそうだ。リソース使用量は多いが、やはり、ほとんど dma_write で消費されている。サイズを固定すればリソース使用量が減るのは確認済みだ。
C/RTL 協調シミュレーションを行った。

C/RTL 協調シミュレーションの波形を見てみよう。全体波形から。

拡大してみよう。

WVALID が 1 の間の幅 320 ns はクロックが 5 ns とすると 64 クロック分となる。つまり画像の 1 行のピクセル数と一致する。WVALID が 0 に落ちている間は、 20 ns つまり、 4 クロック分となる。
次に、Export RTL を行うが、その前に”extern "C" { }”を元に戻した。

Export RTL を行った。

問題無さそうだ。
krnl_lap_filter_dmaw.xo が生成されていた。
- 2020年03月17日 04:30 |
- Vitis
-
| トラックバック:0
-
| コメント:0