PYNQ-Z1 > HDMI > TMDSを使ったHDMI出力 (Tutorialの実行) > カラーパターンの表示


動作環境
Windows 10 Pro (v1909) 
PYNQ-Z1 (Digilent) (以下、PYNQと表記)
Vivado v2019.1 (64-bit)

概要

  • HDMI出力を試す
  • PYNQ-Z2のTutorialをPYNQ-Z1で試した
  • XSDKでC実装の記載だが、Pythonで実行できた

Tutorial

配線についてはRun Automation...ではなく、手作業で接続していき、最終的にtclファイルで残りをつなげる。

Block Design

完成したBlock Designは以下となった。

I/O Ports

Pythonコード

XSDKで実行ではなく、ブラウザ接続でPythonで動かした。
上記のTutorialのコメントにあるコードで動いた。
bitstreamの指定だけ違うので、以下のようにした。

from pynq import Overlay
from pynq import PL
OL = Overlay("/home/xilinx/pynq/overlays/base/HDMIout_PYNQZ2_2020_06_14.bit")
OL.download()
ov = OL
tpg = ov.v_tpg_0
vtc = ov.v_tc_0
tpg.write(0x10,600)  # height
tpg.write(0x18,800)  # width
tpg.write(0x40,0)  # Set color space to RGB
tpg.write(0x20,9)  # set pattern to color bar
tpg.write(0x00,0x81)

vtc.write(0x00,0x01)

参考にしているScriptがマジックナンバーだらけでよくはない。
XSDK実装を参考に上記のコメントを追加した。

結果

縦置きの27インチモニタで以下のように表示された。

補足

HDMI出力に関しては様々な方法が見つかったが、PYNQを使うのであれば、上記のTutorialでとりあえず試してみるのがいいと思った。

もう少し自由度の高いことをする場合は、学習を進めてから。
まだまだ理解は浅い。

関連

以下は上記にたどり着くまでにHDMI出力について調べて気になった記事 (+ 後で見つけて気になった記事)。

皆様、情報感謝です。

関連資料

関連キーワード

Block Designで使っているIPなど。

  • Video Test Pattern Generator
  • Video Timing Controller
  • AXI4-Stream to Video Out
  • rgb2dvi
    • RGB to DVI Video Encoder