勉強しないとな~blog

ちゃんと勉強せねば…な電気設計エンジニアです。

ZYBOを進める - 22. HDMI制御続き

前回HDMI制御がうまくいかなかったので、デバッグします。

ブロックデザインの確認

Zybo-hdmi-outデザインと現在作成中のデザインで、だいたい同じハードウェアデザインになっているようなのは見たのですが、ちゃんと確認してみます。特にVivadoのバージョンが違うので、それによる違いがあるかもしれません。

まず、Zybo-hdmi-outデザインのHDMI関連部分。

f:id:nokixa:20200329093256p:plain

  • TMDS、HDMI_OEN、HDMI_HPD、HDMI_DDCポートが外に出ています。
  • HDMI_DDCポートはPS部のIIC_1ポートに接続されています。
  • いくつかのIPがPS部のM_AXI_GO0下にで接続されています(緑の線)。ここから各IPの動作制御を行います。
  • PS部のS_AXI_HP0ポートからTMDSポートまで、いくつかのIPを経由して接続されています(ピンクの線)。これはPS部接続のDDRからデータを読み出すパスです。

作成中デザイン(Vivado 2017.4)では、こんな感じ。(わかりやすいように配置をいじっています。)

f:id:nokixa:20200329105153p:plain

各IPの詳細を見てみると、設定が違う部分がありました。
まず、AXI Video Direct Memory Accessについて。

f:id:nokixa:20200329160540p:plain ↑ Zybo-hdmi-out (Vivado2016.4) f:id:nokixa:20200329160544p:plain ↑ 作成中デザイン (Vivado2017.4)

Zybo-hdmi-outでは、"Stream Data Width"が32になっていますが、作成中デザインでは24になっています。
また、"Frame Buffers"も違いがあります。 これに対応して、次のAXI4-Stream Subset Converterでも違いが。

f:id:nokixa:20200329162047p:plain ↑ Zybo-hdmi-out (Vivado2016.4) f:id:nokixa:20200329162050p:plain ↑ 作成中デザイン (Vivado2017.4)

"Slave Interface"側の"TDATA Width(Bytes)"が、Zybo-hdmi-outでは3、作成中デザインでは4になっています。また、"TDATA Remap String"の部分も違っています。
"Enable TLAST"の設定も、"Auto"か"Manual"かの違いはあります。あまり関係ないとは思いますが、一応そろえておきます。

作成中デザインの設定をZYbo-hdmi-outに合わせたうえで、Vivadoで再度ビットストリームの生成、ハードウェアのエクスポートを行います。

いざ実機 ...

Xilinx SDKを立ち上げ、"Program FPGA"およびdisplay_demo プロジェクトのデバッグ実行を行いましたが、状況は変わらず。(テストパターン表示されず)

続く

引き続き次回もHDMI出力のデバッグをしたいと思います。