FC2カウンター FPGAの部屋 hls::LineBufferとhls::Windowでラプラシアンフィルタを実装する9

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

FPGAの部屋

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

hls::LineBufferとhls::Windowでラプラシアンフィルタを実装する9

hls::LineBufferとhls::Windowでラプラシアンフィルタを実装する8”の続き。

今回は、AXI4 Stream 版の hls::LineBuffer と hls::Window を使用したラプラシアンフィルタが動作周波数がどこまで行けるかを確かめる。この AXI4 Stream 版のラプラシアンフィルタは、”Vivado HLS の LOOP_TRIPCOUNTディレクティブ”を使用して、高位合成時のLatency や Interval を表示できるようにしている。

solution2 を新規作成して、Solution Setting の Synthesis Settings の Clock Period を 4 (ns) に設定した。
これで、C コードの合成を行った。結果を下に示す。
LineBuffer_Window_114_160329.png

Clock Period が 4 ns で合成しても 6.65 ns の Clock Period になってしまったので、この辺が限界のようだ。
周期が 6.65 ns と言うことは、150 MHz ということになる。
Latency が 3087 クロック、Interval が 3087 クロックになっていた。前回の Clock Period が 10 ns で合成した時と比べて 7 クロック増えている。
更に、solution1 に比べて solution2 のVerilog HDL ファイルの数が増えているのがわかると思う。このように、動作周波数を上げると演算が分割されるからなのか?Verilog HDL ファイルの数が増えて行く。VHDL ファイルも同様の傾向がある。

次にリソース使用量を示す。左が Clock Period が 10 ns で合成した時で、右が、Clock Period が 4 ns で合成した時だ。
LineBuffer_Window_107_160326.pngLineBuffer_Window_115_160329.png

BRAM_18K と DSP48E は変化がないが、FF がかなり増えて、LUT も少し増えているのが分かった。

C/RTL コシミュレーションを行った。Latency は、3108 クロックだった。
LineBuffer_Window_116_160329.png

C/RTL コシミュレーション波形を Vivado で表示した。
LineBuffer_Window_117_160329.png

入力ストリームのTVALID, TREADY を見ても途中でディアサートされる場面が無いし、出力ストリームのTVALID, TREADY を見ても、やはり、途中でディアサートされる場面が無い。1 クロックで 1 ピクセルを処理できるパイプラインが生成されているようだ。

これで、hls::LineBuffer と hls::Window を使用したラプラシアンフィルタは終わりとする。
  1. 2016年03月29日 04:38 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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