ImageScanout
PSRAM フレームバッファのスキャンアウト (docs/tfcard.md「画像表示デモ仕様」)
PSRAM 上の SrcW x SrcH の RGB565 画像を,ScaleX x ScaleY のブロック複製で LCD の有効領域へ拡大表示する.AXI4-Lite のリードマスタとして動作し, ソース 1 行ぶんをラインバッファ (2 面) へ先読みする.
帯域: ソース 1 行は ScaleY ラインぶん表示されるため,その間に次の 1 行 (SrcW/2 ワード) を読めばよい (docs/tfcard.md「帯域の制約と解像度の決定」).
出力位相: TextConsole と同じく i_pos_x から 2 サイクル遅れで o_rgb を出す (ラインバッファの出力レジスタ 1 段 + 本モジュールの出力段 1 段).
制約: SrcW は偶数 (32 bit ワード = 2 px),ScaleX / ScaleY は 2 冪.
Parameters
| SrcW | u32 | ソース画像の幅 [px] (偶数) |
|---|---|---|
| SrcH | u32 | ソース画像の高さ [px] |
| ScaleX | u32 | 水平複製率 (有効幅 = SrcW * ScaleX,2 冪) |
| ScaleY | u32 | 垂直複製率 (有効高 = SrcH * ScaleY,2 冪) |
| FbWordBase | u32 | フレームバッファ先頭のワード番号 (32 bit 単位) |
Ports
| i_clk | input | clock | クロック (= pclk 27 MHz) |
|---|---|---|---|
| i_rst | input | reset | リセット |
| i_en | input | logic | 1 で表示 (フレームバッファ展開完了後) |
| i_frame | input | logic | V ブランキング先頭の 1 クロックパルス |
| i_de | input | logic | データイネーブル |
| i_pos_x | input | logic<10> | 画素 X 座標 (de==1 で有効) |
| m_axi | modport | $std __axi4_lite_if__$std___axi4_lite_pkg__22__4__1 master | PSRAM からのリード |
| o_rgb | output | logic<16> | RGB565 画素 (i_pos_x から 2 サイクル遅れ) |