FC2カウンター FPGAの部屋 Ultra96用PMOD拡張ボードを使って、PMOD VGAで画像出力2(Vivado編)
FC2ブログ

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

FPGAの部屋

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

Ultra96用PMOD拡張ボードを使って、PMOD VGAで画像出力2(Vivado編)

Ultra96用PMOD拡張ボードを使って、PMOD VGAで画像出力1(Vivado HLS編)”の続き。

前回は、”秋月電子カメラモジュールOV5642を使う15(完成)”でUltra96 ボードに Ultra96 用PMOD 拡張ボードを付けて、そこに、OV5642 を取り付けてカメラ画像を取得することができた。今回はUltra96 用PMOD 拡張ボードにPMOD VGA を取り付けて画像を出力できるか?を確かめてみよう。ということで、Vivado HLS でSVGA 画像を出力するIP を作成した。今回は、そのIP を仕様して、Vivado 2018.3 でプロジェクトを作成しよう。

Vivado 2018.3 で display_cont_Ultra96_183 プロジェクトを作成し、そのプロジェクトのディレクトリに display_cont_ip ディレクトリを作成した。display_cont_ip ディレクトリに前回Vivado HLS で作成したIP をコピーした。

IP カタログを表示して、リポジトリにVivado HLS で作成したIP のDisplay_cont_sub を追加した。

display_cont_Ultra96_183 プロジェクトを示す。
display_Ultra96_6_181223.png

display_cont ブロック・デザインを作成し、IP を追加して完成させた。
display_Ultra96_7_181223.png

PS から出力するクロックは 25 MHz に設定した。
display_Ultra96_8_181223.png

HDL ラッパーを作成した。
display_Ultra96_9_181223.png

論理合成を行った。
次は、Open Synthesized Design を開いて、I/O Planing でパッケージのピンの位置と信号レベルを設定した。
なお設定には、Pmod VGA Reference Manual を参照した。
display_Ultra96_10_181223.png

設定後は、display_cont.xdc としてセーブした。
display_cont.xdc を示す。

set_property PACKAGE_PIN D7 [get_ports {red[0]}]
set_property PACKAGE_PIN F8 [get_ports {red[1]}]
set_property PACKAGE_PIN F7 [get_ports {red[2]}]
set_property PACKAGE_PIN G7 [get_ports {red[3]}]
set_property PACKAGE_PIN F6 [get_ports {blue[0]}]
set_property PACKAGE_PIN G5 [get_ports {blue[1]}]
set_property PACKAGE_PIN A6 [get_ports {blue[2]}]
set_property PACKAGE_PIN A7 [get_ports {blue[3]}]
set_property PACKAGE_PIN G6 [get_ports {green[0]}]
set_property PACKAGE_PIN E6 [get_ports {green[1]}]
set_property PACKAGE_PIN E5 [get_ports {green[2]}]
set_property PACKAGE_PIN D6 [get_ports {green[3]}]
set_property PACKAGE_PIN D5 [get_ports {hsyncx[0]}]
set_property PACKAGE_PIN C7 [get_ports {vsyncx[0]}]

set_property IOSTANDARD LVCMOS18 [get_ports {blue[3]}]
set_property IOSTANDARD LVCMOS18 [get_ports {blue[2]}]
set_property IOSTANDARD LVCMOS18 [get_ports {blue[1]}]
set_property IOSTANDARD LVCMOS18 [get_ports {blue[0]}]
set_property IOSTANDARD LVCMOS18 [get_ports {hsyncx[0]}]
set_property IOSTANDARD LVCMOS18 [get_ports {vsyncx[0]}]
set_property IOSTANDARD LVCMOS18 [get_ports {green[3]}]
set_property IOSTANDARD LVCMOS18 [get_ports {green[2]}]
set_property IOSTANDARD LVCMOS18 [get_ports {green[1]}]
set_property IOSTANDARD LVCMOS18 [get_ports {green[0]}]
set_property IOSTANDARD LVCMOS18 [get_ports {red[3]}]
set_property IOSTANDARD LVCMOS18 [get_ports {red[2]}]
set_property IOSTANDARD LVCMOS18 [get_ports {red[1]}]
set_property IOSTANDARD LVCMOS18 [get_ports {red[0]}]


これで必要なすべてのファイルが揃ったので、論理合成、インプリメンテーション、ビットストリームの生成を行って、成功した。
サマリーを示す。
display_Ultra96_11_181223.png

ハードウェアをエクスポートして、SDK を起動した。
HelloWorld アプリケーション・プロジェクトを作成した。
display_Ultra96_12_181223.png
  1. 2018年12月25日 05:08 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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