FC2カウンター FPGAの部屋 演算に任意精度固定小数点データ型を使用したUltra96用ガボールフィルタ2
FC2ブログ

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

FPGAの部屋

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

演算に任意精度固定小数点データ型を使用したUltra96用ガボールフィルタ2

演算に任意精度固定小数点データ型を使用したUltra96用ガボールフィルタ1”の続き。

前回は、ガボールフィルタの演算を任意精度固定小数点データ型で実装したソースコードを示した。今回は、C シミュレーション、C コードの合成を行った。

C シミュレーション結果を示す。
Gabor_filter_lh_2_27_190907.png

Gabor_filter_lh_2_28_190907.png

なんと 60123 個のエラーが出ている。
しかし、ガボールフィルタの結果を浮動小数点演算の結果と見比べてみても良く分からない。

まずは、ガボールフィルタの左車線検出用の画像を示す。左が任意精度固定小数点データ型でハードウェア化するコードで、右が浮動小数点演算したガボールフィルタ画像だ。
Gabor_filter_lh_2_29_190907.jpg

次に、ガボールフィルタの右白線検出用の画像を示す。同様の配置になっている。
Gabor_filter_lh_2_30_190907.jpg

大丈夫そうだ。

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

Estimated は 4.288 ns で良さそうだ。
Detail の Loop をみても 1 クロック 1 出力出ているのが確認できる。
リソース使用量は 9 x 9 のフィルタということでかなり多くなっている。DSP48E も 49 個使用している。
合成されたVerilog HDL ファイルも 18 個で多くなっている。
Gabor_filter_lh_2_33_190908.png

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

960124 クロックだった。ガボールフィルタの画像は 800 ピクセル X 600 行 X 2 個 = 960000 なので、ほとんど 1 クロック 1 ピクセルを出力できている。

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

outs と ins のTVALID , TREADY がほとんど 1 でスループットが大きいのが分かる。

Export RTL の結果を示す。
Gabor_filter_lh_2_35_190908.png

合成時よりもLUT や FF の使用量がだいぶ減っているのが分かる。CP achieved post-implementation は 4.196 ns で問題無さそうだ。
  1. 2019年09月08日 05:11 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/4637-98e3f556
この記事にトラックバックする(FC2ブログユーザー)