FC2カウンター FPGAの部屋 2019年06月27日
FC2ブログ

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

FPGAの部屋

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

Vivado HLS勉強会用のラプラシアンフィルタ実習用回路の製作6(PYNQ編3)

Vivado HLS勉強会用のラプラシアンフィルタ実習用回路の製作5(PYNQ編2)”の続き。

今年も筑波大学でやる予定のVivado HLS 勉強会の出し物として、 AXI4 Stream 版のラプラシアンフィルタの実習用回路を作成することにした。勉強会というかセミナでは、なかなか機材が揃わないのでカメラを用意することができない。よって、画像は、C のヘッダ・ファイルに変換した画像を使用してラプラシアンフィルタをかけてディスプレイに表示した。前回は、PYNQ でIP を使用して、ディスプレイに表示する回路を構成し、論理合成、インプリメンテーション、ビットストリームの生成を行った。今回は、SDK でアプリケーションソフトを作成し、PYNQ の実機での動作を確認してみよう。

Vivado 2017.4 でハードウェアをエクスポートし、SDK を起動した。
lapfiler_axis アプリケーション・プロジェクトを作成し、”Vivado HLS勉強会用のラプラシアンフィルタ実習用回路の製作3”で作成した lapfilter_axis.c を lapfilter_axis/src フォルダに追加した。更に、bmp_data.h の画像のヘッダ・ファイルも lapfilter_axis/src フォルダに追加した。
lapfilter_axis_zybo_31_190626.png

SDK からビットストリームをPYNQ にダウンロードして、アプリケーションソフトを起動するとTeraTerm に表示が出て、ディスプレイにも画像が出た。
lapfilter_axis_zybo_32_190626.png

lapfilter_axis_zybo_16_190623.jpg

TeraTerm 上で、 1 を入力すると、回路上で、AXI4 Stream が切り替わって、ラプラシアンフィルタの画像が表示された。
lapfilter_axis_zybo_17_190623.jpg

PYNQ でも成功した。
  1. 2019年06月27日 04:59 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0

Vivado HLS勉強会用のラプラシアンフィルタ実習用回路の製作5(PYNQ編2)

Vivado HLS勉強会用のラプラシアンフィルタ実習用回路の製作4(PYNQ編1)”の続き。

今年も筑波大学でやる予定のVivado HLS 勉強会の出し物として、 AXI4 Stream 版のラプラシアンフィルタの実習用回路を作成することにした。勉強会というかセミナでは、なかなか機材が揃わないのでカメラを用意することができない。よって、画像は、C のヘッダ・ファイルに変換した画像を使用してラプラシアンフィルタをかけてディスプレイに表示した。PYNQ でIP を使用して、ディスプレイに表示する回路を構成し、論理合成、インプリメンテーション、ビットストリームの生成を行ったが、インプリメンテーションしたときにタイミング違反になり、Vivado HLS で修正を試みた。しかし、C コードの合成結果が異なるもののExport RTLのレポートに変化が無かった。やはりこれは何かがおかしいということでもう一度、やってみることにした。

Vivado HLS 2017.4 で、solution1 の impl フォルダを削除してからExport RTL をやってみたところ、やはり、Export RTL のレポートに変化はなかった。そこで、solution2 を作って、Uncertainty を 2 ns に設定して、C コードの合成を行った。
lapfilter_axis_zybo_33_190627.png

Export RTL を行った。CP achieved post-implementation は 6.607 ns で変化があった。
lapfilter_axis_zybo_34_190627.png

これでラプラシアンフィルタ IP が再生成されたので、Vivado の lapfilter_axis_pynq プロジェクトのラプラシアンフィルタ IP を変更した。次に、” Vivado HLS勉強会用のラプラシアンフィルタ実習用回路の製作4(PYNQ編1)”で変更した ZYNQ の PS の FCLK_CLK0 の周波数を 90 MHz から 100 MHz に戻した。
これでもう一度、論理合成、インプリメンテーション、ビットストリームの生成を行った。結果を示す。
lapfilter_axis_zybo_35_190627.png

タイミング違反は無くなった。
やはり、solution1 のExport RTL を行ってもファイルが更新されなくなっていたようだ。どれかのファイルを見て、そのアクセス権が解消されなくなったのだろうか?新しい solution を作れば問題なかった。

Vivado HLS で Uncertainty を変更してレポートも変わったのに、Export RTL のVivado の解析結果が変わらない場合は、新しい solution を作ってやってみると良いと思う。
  1. 2019年06月27日 04:30 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0