FC2カウンター FPGAの部屋 Vivado HLSでラプラシアン・フィルタ式のみをaxi lite slaveモジュールにする1
FC2ブログ

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

FPGAの部屋

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

Vivado HLSでラプラシアン・フィルタ式のみをaxi lite slaveモジュールにする1

前回の”ラプラシアン・フィルタのCソフトをVivado HLSで”では、今まで、ラプラシアン・フィルタのCソフトウェアとして動作していたCソフトウェアをVivado HLSでそのままハード化しようというものだったが、エラーが発生してコンパイルすることが出来なかった。
今回は、3x3のラプラシアン・フィルタの式のみを、以前Vivado HLSのサンプルしてやってみた axi lite を元に変更してみようと思う。多分、計算式がとっても簡単なので、ハードウェア化のメリットは無いどころか、ソフトウェアよりも遅くなるかもしれないがやってみようと思う。
(2013/10/05:注 図などを大幅に書き換えました)

以前やった Vivado HLS のaix liteサンプルの記事を示す。

Vivado HLSのExampleを試してみる1(axi_lite の生成)
Vivado HLSのExampleを試してみる2(シミュレーションと合成)
Vivado HLSのExampleを試してみる3(インターフェイス)
Vivado HLSのExampleを試してみる4(C/RTL Cosimulation)
Vivado HLSのExampleを試してみる5(IPにした)
Vivado HLSで作ったaxi_lite IPをテストした


Vivado HLSのプロジェクトをxc7z020clg484-1で作った。
image_process_Zed_linux_18_130930.png

Cのテストベンチを作製して、Cのシミュレーションを行った。結果は当然といえば当然に成功だった。
image_process_Zed_linux_19_131001.png

C Synthesis ボタンをクリックして、CからHDLへの合成を行った。成功した。
しかし、FFが 330個、LUTが 582個、使用されている。多い気がする。8を掛けるところは、3ビット左シフトすればよいのでは?更にレイテンシ 2 クロックで、インターバルが 3 クロックなので、これではダメだ。パイプラインにしないとね。
image_process_Zed_linux_20_131001.png

パイプラインにするために、PIPLINE Directive を入れよう。
右端のウインドウのDirective タブをクリックして、laplacian_filter の右クリックメニューから Insert Directive を選んだ。
image_process_Zed_linux_21_131001.png

Vivado HLS Directive Editor でPIPLINE Directive を選択して、Destination の Source File のラジオボタンをクリックした。OKボタンをクリックした。
image_process_Zed_linux_22_131001.png

#pragma HLS PIPELINE が追加された。
image_process_Zed_linux_23_131001.png

これで、C Synthesis ボタンをクリックして、CからHDLへの合成を行った。
レイテンシは 2 で変化がないが、インターバルが 1 になって、毎クロック、データを入力できるようになった。
FFは 491個で大幅に増えたが、LUTは 578個で少し減った。
image_process_Zed_linux_24_131001.png
  1. 2013年09月30日 05:53 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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