Ultra96用ラプラシアンフィルタIP の作成1”の続き。

前回は、Ultra96 用のエッジ検出フィルタのラプラシアンフィルタを作成するということで、ソースコードを貼った。今回は、C シミュレーション、C コードの合成、C/RTL 協調シミュレーション、Export RTL を行う。

まずは、C シミュレーションからやってみよう。
df2297b0.png


成功した。
lap_filter_axis/solution1/csim/build/ ディレクトリを見ると、C シミュレーションの生成物が見える。
718187e6.png


元画像がこれで、
2a79527f.jpg


ラプラシアンフィルタ後の画像がこれだ。
d4d88311.jpg


エッジが出ているのが分かる。

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


Latency もかなり良い状況だ。ガボールフィルタよりもカーネルの大きさが 3 x 3 のためリソース使用量も少ない。ガボールフィルタは 9 x 9 。

C/RTL 協調シミュレーションを行った。
lap_filter_axis_7_190830.png

Latency は 480061 クロックだった。 800 x 600 = 480000 ピクセルなので、ほとんど 1 クロック/ピクセルの性能が出ている。

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


ins と outs の TVALID と TREADY がほとんど 1 になっているので、スループットが高い。

Export RTL を行った。
lap_filter_axis_9_190830.png

CP achieved post-implementation は 4.369 ns ということで問題ない数値だと思う。