ZynqでHDMI入力とVGA出力を試す

f:id:tohkaf:20160101233122j:plain

元旦だがZynqで画面の入出力について試したので書く。VGAに関しては自力で出力するものを作ったがDigilentが提供しているIPの存在を知ったのでこちらを使って実装した。

DigilentInc/vivado-library · GitHub

rgb2vga

vivado-library/rgb2vga_v1_0.pdf at master · DigilentInc/vivado-library · GitHub

ZYBOのVGA出力はR-2Rラダーで構成されているのでHSync, VSyncとRGBを作って上げれば動く。

入力はvid_ioというフォーマットらしい。詳細は確認するが基本はVGAと同じなのか。

dvi2rgb

vivado-library/dvi2rgb_v1_5.pdf at master · DigilentInc/vivado-library · GitHub

HDMIの入力に使用する。TMDS33のクロックとデータ、EDID用のI2Cとクロックを接続すればよかった。

f:id:tohkaf:20160102003247p:plain

あとDigilentのドキュメントに記載があるが、HDMI_OUT_ENを落とさないと入力として使えないようだ。

EDIDはEEPROM_8b.vhdで作っていた。元データはdgl_dvi_edid.txtから読み込んでいるようだった。

f:id:tohkaf:20160102002712p:plain

うまくいくかとおもいきやImplementationでクロック制約違反で落ちてしまっていて試行錯誤していたが、

FPGAの部屋 ZYBOのHDMI入力をVGA出力に出力する3(バグフィックス?)

の通りdvi2rgbの成約を変更したら無事に通って動作も確認できた。

次は画像処理かボード上の他機能(Ethernetあたり)を攻めたい