FC2カウンター FPGAの部屋 VGA画像をXGA画像やHD画像に変換するdisp_dmar_axis_vga IP 5(やっと完成2)
FC2ブログ

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

FPGAの部屋

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

VGA画像をXGA画像やHD画像に変換するdisp_dmar_axis_vga IP 5(やっと完成2)

VGA画像をXGA画像やHD画像に変換するdisp_dmar_axis_vga IP 4(やっと完成1)”の続き。

前回は、風呂掃除をしていた時にふとひらめいた。いままで画像を拡張しない時はうまく行っていたdisp_dmar_axis IP があるのだから、それにHLSストリーム・インターフェースで画像を拡大するIP を付けたらどうか?そして、それらを並列化したら良いのでは?というアイデアだった。ということで、ソースコードを貼った。今回は、C シミュレーション、C コードの合成、C/RTL 協調シミュレーション、Export RTL を行った。

まずは、現在のdisp_dmar_axis_vga プロジェクトを示す。
disp_dmar_axis_vga_10_190715.png

C シミュレーションを行った。
disp_dmar_axis_vga_11_190715.png

dmar_result.bmp も問題ない。
disp_dmar_axis_vga_12_190715.png

disp_dmar_axis_vga_9_190713.jpg

C コードの合成を行った。結果を示す。
disp_dmar_axis_vga_13_190715.png

これも良さそうだ。

C/RTL 協調シミュレーションを行った。結果を示す。
disp_dmar_axis_vga_14_190715.png

Latency は 480036 クロックだった。これは、出力しているSVGA 画像の 800 x 600 = 480000 クロックとほぼ等しい。これは、良い結果が期待できそうだ。

C/RTL 協調シミュレーションの波形を示す。
全体波形から。
disp_dmar_axis_vga_16_190716.png

m_axi_gmem_ARLEN を見ると、0f となっていて、16 バーストであることが分かる。
outs_TREADY と outs_TVALID もほとんど 1 固定だ。これは良い。

拡大した。
disp_dmar_axis_vga_17_190716.png

最後にExport RTL を行った。
disp_dmar_axis_vga_15_190715.png

CP achieved post-implementation は 3.305 ns で問題無さそうだ。

やはり、データを加工するDMA をVivado HLS で書く時は、シンプルなDMA してデータをHLSストリーム出力する関数と、HLSストリーム入出力のデータ加工関数を用意して、トップの関数でそれらを接続し、DATAFLOW 指示子で並列動作するように記述するのが賢いようだ。
  1. 2019年07月16日 04:59 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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