PsramSubsystem
PSRAM サブシステム一式 (docs/psram.md)
rPLL・SDR phy・コントローラ FSM・AXI4-Lite ブリッジと,内蔵パッド (マジックポート) の配線をまとめたもの.利用側は AXI4-Lite スレーブ端子だけを 見ればよい.
- phy は PsramPhySdr (ファブリック FF 駆動,IOLOGIC 不使用) を clk_mem (rPLL 54 MHz) で駆動し,CK 13.5 MHz を得る (apicula ODDR の実挙動により DDR phy は保留中.docs/psram.md「apicula ODDR 実挙動の調査」)
- ctrl は phy の位相イネーブル ps_en (1/4 レート) で歩調を合わせ, ブリッジの mem 側へ渡す o_req_ready / o_rsp_valid は ps_en で修飾する (非イネーブルサイクルでの取りこぼし・二重送信防止.ctrl.veryl 参照)
- リセットは全ドメインで共有する (デアサート後は各 FSM が RESET# パルス / tVCS 待機で吸収する)
- ch1 は未使用.CS#/RESET# を非アクティブ固定にし,パッドは入力で終端する
Clock Domains
| 'mem |
|---|
Ports
| i_clk | input | clock | AXI 側クロック (27 MHz) | |
|---|---|---|---|---|
| i_rst | input | reset | リセット | |
| s_axi | modport | $std __axi4_lite_if__$std___axi4_lite_pkg__22__4__1 slave | AXI4-Lite スレーブ | |
| o_clk_mem | output | 'mem | clock | clk_mem (54 MHz,診断回路用) |
| o_init_done | output | logic | 初期化完了 (mem 域の値をそのまま出す) | |
| o_init_ok | output | logic | IR0 照合結果 | |
| o_pll_lock | output | logic | rPLL lock | |
| 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) |