Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

TextConsole

テキストコンソール

受信した文字をカーソル位置へ書き込み,VideoTiming の座標に同期して 文字ピクセルを描画する.text RAM (std::ram) + FontRom の 2 段読み出しに 合わせ,de/sync を 2 サイクル遅延して出力する.

flowchart LR
     CH["文字入力"] --> WR["書き込みFSM<br>カーソル/スクロール"]
     WR --> RAM["text RAM<br>(std::ram)"]
     POS["VideoTiming座標"] --> RAM
     RAM --> FONT["FontRom 8x16"]
     FONT --> PX["ピクセル出力<br>(2段パイプライン)"]

文字セマンティクス:

  • 0x20-0x7E: カーソル位置へ表示しカーソル前進 (右端で折り返し)
  • LF (0x0A): 改行 (行頭復帰 + 行送り)
  • CR (0x0D): 行頭復帰
  • その他: 無視

最下行での行送りはリングバッファ的に 1 行スクロールする (base_row 前進 + 新最下行のクリア).クリア中 (Cols サイクル) の文字入力は無視されるが, UART のバイト間隔 (115200bps で約 2300 サイクル) より十分短いため実害はない.

Parameters


Cols u32 桁数
Rows u32 行数

Ports


i_clk input clock クロック
i_rst input reset リセット
i_char_valid input logic 文字入力有効
i_char input logic<8> 文字コード (ASCII)
i_de input logic データイネーブル入力
i_hsync input logic 水平同期入力
i_vsync input logic 垂直同期入力
i_pos_x input logic<10> 画素 X 座標
i_pos_y input logic<9> 画素 Y 座標
o_de output logic データイネーブル出力
o_hsync output logic 水平同期出力
o_vsync output logic 垂直同期出力
o_pixel output logic 文字前景=1