FC2カウンター FPGAの部屋 ZUBoard 1CG の PYNQ v3.0.1 で自作の 5 個のフィルタを動作させる4
fc2ブログ

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

FPGAの部屋

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

ZUBoard 1CG の PYNQ v3.0.1 で自作の 5 個のフィルタを動作させる4

ZUBoard 1CG の PYNQ v3.0.1 で自作の 5 個のフィルタを動作させる3”の続き。

RGB24toHSV - HSVConverter - HSVtoRGB24 の各 IP を加えた 5 個のフィルタを動作させたいということで、前回は、ZUBoard 1CG の PYNQ を立ち上げて、upyter Notebook 上で i5filters フォルダを作成し、Jupyter Notebook で前回作成したビット・ファイルと hwh ファイルをアップグレードした。画像ファイルを用意して、i5filters.ipynb ファイルを作成し、実行したところ、真っ黒な画像が得られた。デバッグの必要がある。今回は、System ILA を追加して、論理合成、インプリメンテーション、ビットストリームの生成を行って、再度、bit ファイルと hwh ファイルを ZUBoard 1CG の PYNQ にアップロードして、ILA ダッシュボードを起動して、波形を確認したところ、問題ないことがわかった。画像も正常に表示されていた。結局、昨日の 1 回のみバグっただけで、今日は何回やっても画像が表示された。なんだったんだろうか?

median_axis_RGB24_0、RGB24toHSV_0、HSVConverter_0 の AXI4-Stream 出力に Debug を指定して、System ILA のポートを追加した。
zub1cg_i5filters_93_231111.png

論理合成、インプリメンテーション、ビットストリームの生成を行った。
Project Summary を示す。
zub1cg_i5filters_94_231111.png

ZUBoard 1CG の PYNQ の Jupyter Notebook の i5fitlers フォルダで、i5filters.hwh と i5filters.bit ファイルを削除した。
再度、i5filters フォルダに i5filters.hwh と i5filters_wrapper.bit をアップロードし、i5filters_wrapper.bit の名前を i5filters.bit に変更した。

i5filters.ipynb を起動して、ビット・ファイルのロードまで進めた。
Vivado 2023.2 の Flow Navigator -> PROGRAM AND DEBUG -> Open Hardware Manager -> Open Target をクリックし、Auto Connect を選択した。
ILA ダッシュボードが表示された。
ILA ダッシュボードのトリガを、最後の IP である slot2: axis_dwidth_converter_1_M_AXIS : TVALID の立ち上がりに設定した。
トリガを掛けて、i5filters.ipynb を実行していく。”run_kernel()”を実行すると、ILA ダッシュボードでトリガが掛かった。
zub1cg_i5filters_95_231111.png

AXI4-Stream のトランザクションはすべて実行されているようだ。
i5filters.ipynb を見ると、画像が表示されていた。
zub1cg_i5filters_96_231111.png

メディアン・フィルタだけ動作させているので、ノイズが除去された画像が表示されていれば OK のはずなので、問題無さそうだ。
昨日の結果はなんだったんだろうか?と思うが、その後、何回かやっても同様の結果だったので、良いことにする。

最後に波形を示す。
axi dma の MM2S に近い slot3 : axis_subset_converter_0_M_AXIS : TDATA はデータが流れているが、axi dma の S2MM に行く slot2 : axis_dwidth_converter_1_M_AXIS : TDATA は 01010101 で固定されている。これの TDATA 本当はオール 0 のはずなのだが、RGB24toHSV - HSVConverter - HSVtoRGB24 の計算誤差が生じている。
zub1cg_i5filters_97_231111.png

それでは、なぜオール 0 なのか?という話では、3 x 3 の median_axis_RGB24 IP が動作中なので、データが集まらない、1 行目と 2 行目はオール 0 にしているからだ。1 行目と 2 行目をどうしよう?というのは、悩むところなのだが、データをそのまま通すか?もしくはオール 0 にするかの 2 択だとおもう。エッジ・フィルタはオール 0 で問題無さそうだが、メディアン・フィルタではどちらにするか悩むところだ。
zub1cg_i5filters_98_231111.png
  1. 2023年11月12日 04:54 |
  2. ZUBoard
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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