Top
トップモジュール (Tang Nano 9K)
UART エコー + テキストコンソール (LCD) + PSRAM サブシステム
- TF カードテキスト表示デモ + LED 表示の統合.
flowchart LR
PC["PC (COMポート)"] -- uart_rx --> RX["Uart RX"]
RX -- "echo" --> ARB["TX arbiter<br>(memtest > TF > echo)"]
MT["PsramMemtest"] -- "結果1行" --> ARB
DEMO["TfImageDemo"] -- "報告行" --> ARB
FAT["Fat32Reader"] --> DEMO
TFC["TfCtrl"] --> FAT
ARB --> TX["Uart TX"] -- uart_tx --> PC
ARB -. "傍受" .-> CON["TextConsole"] --> LCD["5inch LCD"]
MT -- AXI4-Lite --> ARB2["PsramAxiArb2 x2"] --> PS["PsramSubsystem<br>(rPLL + bridge + ctrl + phy)"]
PS <--> RAM["内蔵 PSRAM ch0"]
DEMO -- "AXI4-Lite W" --> ARB2
SC["ImageScanout"] -- "AXI4-Lite R" --> ARB2
SC -- RGB565 --> LCD
TFC <--> TF["TF カード (SPI)"]
PSRAM サブシステム (phy/ctrl) は clk_mem (rPLL 54 MHz) ドメインで動作し, AXI 側 (memtest) とはブリッジ内 CdcHandshake で交差する. phy は SDR fallback (IOLOGIC 不使用.apicula ODDR の実挙動により DDR phy は 保留中.docs/psram.md「apicula ODDR 実挙動の調査」参照).
TX アービタは memtest > TF デモ > エコーの固定優先度とし,行の混在を避けるため TF デモは memtest の報告が完了してから起動する (下記 psram_msg_done). TF カードのブリングアップ時は TfSpikeInit (Top 非接続の spike) を 本デモ一式と差し替えて使う (docs/tfcard.md「spike の構成」).
LED 割当は docs/rtl.md,PSRAM サブシステムは docs/psram.md, TF カードサブシステムは docs/tfcard.md を参照.
Parameters
| OscFreq | u32 | オシレータ周波数 [Hz] |
|---|---|---|
| NumLeds | u32 | LED 数 |
Ports
| i_clk | input | clock | 27 MHz オシレータ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| i_rst | input | reset | S1 ボタン (active-low) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| leds | output | logic| LED (active-low,割当は rtl.md)
|
uart_tx |
output |
logic |
UART TX
|
uart_rx |
input |
logic |
UART RX
|
lcd_clk |
output |
logic |
LCD ピクセルクロック (反転出力)
|
lcd_de |
output |
logic |
LCD データイネーブル
|
lcd_hsync |
output |
logic |
LCD 水平同期 (負極性)
|
lcd_vsync |
output |
logic |
LCD 垂直同期 (負極性)
|
lcd_r |
output |
logic<5> |
LCD R (RGB565)
|
lcd_g |
output |
logic<6> |
LCD G (RGB565)
|
lcd_b |
output |
logic<5> |
LCD B (RGB565)
|
tf_sclk |
output |
logic |
TF SCK
|
tf_mosi |
output |
logic |
TF MOSI (CMD)
|
tf_cs_n |
output |
logic |
TF CS# (DAT3)
|
tf_miso |
input |
logic |
TF MISO (DAT0)
|
O_psram_ck |
output |
logic<2> |
PSRAM CK (ch1:ch0)
|
O_psram_ck_n |
output |
logic<2> |
PSRAM CK# (差動)
|
O_psram_cs_n |
output |
logic<2> |
PSRAM CS#
|
O_psram_reset_n |
output |
logic<2> |
PSRAM RESET#
|
IO_psram_dq |
inout |
trilogic<16> |
PSRAM DQ (ch0=下位8bit)
|
IO_psram_rwds |
inout |
trilogic<2> |
PSRAM RWDS (ch0=bit0)
|
|