第9章
仕様概要
- DDRメモリ上の画像を表示する
- 解像度はVGA(640x480)、RGB8bit(ただし上位4bitをReservedにして1画素32bitで扱う)
- 表示回路はバスマスターとして動作し、PS経由でDDRから画像を読み込み、VGAのタイミングで外部出力する
- レジスタ設定はPSがマスターとなり、GPIOを経由して行う
- クロックはACLK(100MHz)系とPCK(25.175MHz)系の2系統
- ACLK: DDRへのリードリクエスト発行、FIFOへの書き込み、レジスタ制御
- PCK: FIFOから読み出し、HDMI出力
レジスタ仕様
0x0@GPIO_0 DISPADDR(Wonly)
- VRAM上の画像先頭アドレス
- DISPADDRで指定されたアドレスから1画面分(640x480x4byte)を読み出す
0x8@GPIO_0 DISPON(Wonly)
- 1書き込みで表示をON=VRAMへのアクセスを行う
- 0書き込みで表示をOFF=VRAMへのアクセスを行わない
0x0@GPIO_1 VBLANK(Ronly)
- PCKドメインで生成されるVGA_VS(垂直同期信号)をACLKに2段FFで載せ替えた信号の立ち上がりでセットされるステータスレジスタ
- CLRVBLNK書き込みでクリアされるため、Vブランクの終了タイミングはわからない。SW処理がVブランク期間中に終わることを前提にしていると思われる
- 想定はDISPADDR,DISPONレジスタの制御程度
0x8@GPIO_1 CLRVBLNK(Wonly)
- 1書き込みでVBLANKレジスタをクリアする
ステートマシン
- AXISTART@PCKをACLKに載せ替えた信号の立ち上がりでSETADDRステートに移行し、AXIリクエストを発行(ARVALIDアサート)する
- 初回リクエストに対するレイテンシは有効領域先頭ラインの水平ブランク期間で吸収される思想
Zynq VIP
書籍内での言及も限定的だったため、深追いはせず。
ブロックデザインにかぶせたHDL wrapperをインスタンスして、そのPS部を制御する仕組みと思われるが、シミュレーションはかなり遅い。

