”
Vitis HLS 2020.2 で Vitis Vision Library を使用する4(medianblur 編)”で AXI4 Master による DMA 版のメディアン・フィルタを実装した。この実装は、CV_8UC3 のデータを DMA Read してメディアン・フィルタ処理をして、また CV_8UC3 で DMA Write する。そして、”
XF_8UC3 を XF_8UC4 に変換する xf_8uc3_2rgb プロジェクトを作成する1”と”
XF_8UC3 を XF_8UC4 に変換する xf_8uc3_2rgb プロジェクトを作成する2”で CV_8UC3 と同等の XF_8UC3 のデータを DMA Read して CV_8UC4 と同等の XF_8UC4 フォーマットで DMA Write する IP ができた。
これら 2 つの IP を組み合わせれば、 CV_8UC3 のデータを DMA Read して、 CV_8UC4 で DMA Write する実装が作れる。 CV_8UC4 のデータはアルファ・チャネル、Red、Green、Blue の 8 ビットずつの 32 ビット幅フォーマットになっているので、既存の自作ビットマップ・ディスプレイ・コントローラーを使用すれば、画像としてディスプレイに表示することができる。
そういうことで早速、Vivado 2020.2 を使用してプロジェクトを作っていこう。
Vivado 2020.2 で median_vision プロジェクトを作成した。

ビットマップ・ディスプレイ・コントローラー IP の BMDispCaL 、medianblur、xf_8uc3_2rgb のディレクトリを作成して、各 IP のファイルを中に入れた。

IP Catalog に各 IP を追加した。

median_v_bd ブロックデザインを作成し、各 IP を Add IP してブロックデザインを完成させた。
なお、 processing_system7_0 の FCLK_CLK0 は 100 MHz で、 FCLK_CLK1 は 25 MHz に設定した。

Address Editor 画面を示す。

Address Map 画面を示す。
median_blur_accel_0 は Vitis HLS で INTERFACE オプションの s_axilite で実装された s_axi_control と Vitis HLS の INTERFACE オプションの m_axi で実装された DMA のオフセットアドレスの s_axi_control_r の 2 つのアドレス領域がある。

ビットマップ・ディスプレイ・コントローラーの HDMI 出力ピンを指定する制約ファイルの median_filter_axis.xdc を作成した。

これで準備が整ったので、論理合成、インプリメンテーション、ビットストリームの生成を行った。
結果を示すと、タイミングエラーが発生している。

Flow Navigator から IMPLEMENTATION -> Open Implemented Design をクリックして、Timing Error を表示した。

clk_fpga_0 の内部のタイミング違反と pclk_buf -> clk_fpga_0 のクロック間のパスのタイミング違反、Other Path Groups の **async_default** で clk_fpga_0 -> pclk_buf のクロック間のパスのタイミング違反がでていた。
- 2021年01月17日 04:27 |
- Vitis_Vision
-
| トラックバック:0
-
| コメント:0