0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FPGAプログラム大全やりなおし#5

0
Posted at

第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レジスタをクリアする

ステートマシン

1画面におけるおおまかなタイムチャートが以下。
image.png

image.png

  • AXISTART@PCKをACLKに載せ替えた信号の立ち上がりでSETADDRステートに移行し、AXIリクエストを発行(ARVALIDアサート)する
    • 初回リクエストに対するレイテンシは有効領域先頭ラインの水平ブランク期間で吸収される思想

Zynq VIP

書籍内での言及も限定的だったため、深追いはせず。
ブロックデザインにかぶせたHDL wrapperをインスタンスして、そのPS部を制御する仕組みと思われるが、シミュレーションはかなり遅い。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?