ZynqでHDMI入力とVGA出力を試す
元旦だが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とクロックを接続すればよかった。
あとDigilentのドキュメントに記載があるが、HDMI_OUT_ENを落とさないと入力として使えないようだ。
EDIDはEEPROM_8b.vhdで作っていた。元データはdgl_dvi_edid.txtから読み込んでいるようだった。
うまくいくかとおもいきやImplementationでクロック制約違反で落ちてしまっていて試行錯誤していたが、
FPGAの部屋 ZYBOのHDMI入力をVGA出力に出力する3(バグフィックス?)
の通りdvi2rgbの成約を変更したら無事に通って動作も確認できた。
次は画像処理かボード上の他機能(Ethernetあたり)を攻めたい