FC2カウンター FPGAの部屋 Vivado HLS によるアンシャープマスクキング・フィルタの作製4(固定小数点で実装してみた2)

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

FPGAの部屋

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

Vivado HLS によるアンシャープマスクキング・フィルタの作製4(固定小数点で実装してみた2)

Vivado HLS によるアンシャープマスクキング・フィルタの作製3(固定小数点で実装してみた)”の続き。

前回は、float で実装したアンシャープマスキング・フィルタを固定小数点で実装した。その結果、FPGAのLUT リソース使用量が 1/33 になり、FPGAに実装可能となった。
今回は、アンシャープマスキング・フィルタのC/RTLコシミュレーションを行って、IP化しようと思う。

前回はC からHDL へ合成を行ったが、ブロックのインターフェースが ap_ctrl_none だとC/RTLコシミュレーションを行えないので、ap_ctrl_hs に変更して、もう一度C からHDL への合成を行った。
unsharp_mask_18_150928.png

これで、C/RTLコシミュレーションを行った。
unsharp_mask_19_150928.png

Vivado 2015.2 を立ちあげて、Tcl Console に次のコマンドを入力した。

cd c:/Users/Masaaki/Documents/Vivado_HLS/ZYBO/unsharp_mask_14_4/solution1/sim/verilog
current_fileset
open_wave_database unsharp_mask_axis.wdb
open_wave_config unsharp_mask_axis.wcfg

でC/RTLコシミュレーションの波形が表示された。
unsharp_mask_20_150928.png

ins_TVALID, ins_TREADY, outs_TVALID, outs_TREADY がアンシャープマスキング・フィルタ処理中はずっと1のままなので、インターバルは 0 なのが分かった。
これで、AXI4-Stream のフィルタとして問題ないことが分かったので、(インターバルが 1 とかでも問題があるわけじゃないが、スループットを確保するためには、より高い動作周波数で動作される必要があるだろう) IP化を行う。

まずは、C/RTLコシミュレーションを行うために変更した。ブロック・インターフェースを ap_ctrl_none に戻した。

次に、unsharp_mask_axis.h の HORIZONTAL_PIXEL_WIDTH と VERTICAL_PIXEL_WIDTH を 720p 用に変更した。
unsharp_mask_21_150928.png

これで、C からHDL を合成した。当然ながら使用リソースも少し増えた。
unsharp_mask_22_150928.png

unsharp_mask_23_150928.png

Export RTL を行った。
unsharp_mask_24_150928.png

IP化が成功した。
  1. 2015年09月28日 04:06 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

トラックバック URL
http://marsee101.blog19.fc2.com/tb.php/3263-a82edbd6
この記事にトラックバックする(FC2ブログユーザー)