FC2カウンター FPGAの部屋 IPをVivadoのIPIに追加して、BOOT.binとデバイスツリーを作り、ZYBO のLinuxでアプリケーションを作る作り方

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

FPGAの部屋

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

IPをVivadoのIPIに追加して、BOOT.binとデバイスツリーを作り、ZYBO のLinuxでアプリケーションを作る作り方

ZYBOにHDLで書いたラプラシアンフィルタを実装する5(IP化)”でHDL で書いたラプラシアンフィルタをIP にすることができた。

これからVivado プロジェクトのIP Integrator のブロックデザインにHDL で書いたラプラシアンフィルタIP を追加して、論理合成、インプリメントを行い、SDKにハードウェアをエクスポートして、FSBLとビットストリームとU-boot でBOOT.bin を生成する。
また、Linux で zynq-zybo.dts にHDL で書いたラプラシアンフィルタIPのエントリを追加して、コンパイルしてdevicetree.dtb を生成する。
BOOT.bin とdevicetree.dtb をUbuntu 14.04 のRoot file system が入ったSDカードのMS DOSパーティションに入れて、ZYBOに入れてUbuntu 14.04 をブートする。
ZYBO のUbuntu 上で、アプリケーションをVivado HLS で生成されたドライバを使用して作製する。

このような手順で作製していくのだが、この手順を忘れてしまった。
そこで、もう一度おさらいしようと思う。

まずは、Vivado HLS 2014.4 で生成したラプラシアンフィルタIP をカメラ・コントローラIP やビットマップ・ディスプレイ・コントローラIP が接続れたブロックデザインに入れて、ZYBO のUbuntu 上でアプリケーションを作った時のFPGAの部屋の記事をまとめる。

Vivado HLS 2014.4でラプラシアン・フィルタ関数をaxi masterモジュールにする3(IP Catalog にVivado HLSのIPを追加)
Vivado HLS 2014.4でラプラシアン・フィルタ関数をaxi masterモジュールにする4(ブロックデザインにVivado HLSのIPを追加、インプリメント)
Vivado HLS 2014.4でラプラシアン・フィルタ関数をaxi masterモジュールにする5(BOOT.bin, devicetree.dtb の生成)
Vivado HLS 2014.4でラプラシアン・フィルタ関数をaxi masterモジュールにする6(/sys, /devディレクトリ)
Vivado 2014.4のCドライバーファイル1 
Vivado 2014.4のCドライバーファイル2
ZYBO Linux (Ubuntu 14.04 LTS) 上でMakefile を作ってラプラシアンフィルタIPの制御ソフトをコンパイル
ZYBO Linux (Ubuntu 14.04 LTS) 上でMakefile を作ってラプラシアンフィルタIPの制御ソフトをコンパイル2

これで、ラプラシアンフィルタIP をVivado のブロックデザインに入れて、Linux上で動作される方法は終了なのだが、現状の最新プロジェクトはどうなのかというと、おるさんのコードを元に、tu1987さんが書いてくれたC++ソースコードをVivado HLS 2014.4 で高位合成し、IP化したプロジェクトが最新となっている。
Vivado HLS 2014.4 で合成したラプラシアンフィルタIPの高速化16(性能が最大になる設定を探る8、追加2)

このプロジェクトでは、ラプラシアンフィルタのみの処理時間は 15.3 ms となった。
但し、タイミングエラーが出ているので、インプリメント時のStrategy を変更してインプリメントを行う方法で複数のインプリメントを実行して、一番良い物を使う方法でインプリメントを行った。
Vivado 2014.4 でインプリメント時にStrategy を変更してインプリメント結果を改善する

ブログにログが残っていると本当に助かる。。。自分でも。
ログ残っていなかったら、やり方を再度検索する必要がある。ブログは自分にとって、欠かせない補助記憶だ。。。

V_ZYBO_CAMDfL_tu_2フォルダのプロジェクトをVivado 2015.3 のプロジェクトに変換してインプリメントを行った結果を下に示す。
lap_fil_HDL_axim_66_151030.png

やはり、通常にインプリメントしたのでは、タイミングエラーが発生している。
  1. 2015年10月30日 04:50 |
  2. Linux
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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