Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

PsramSpikeBitbang

PSRAM spike 段1: bit-bang レジスタ読み出し (docs/psram.md「spikeの構成」)

PLL・DDR プリミティブを使わず 27 MHz ロジックのみで CK = 27/4 = 6.75 MHz を 生成し,ch0 の IR0/IR1/CR0 を読み出して結果を ASCII 1 行の stream として 送出する (PSRAM IR0=xxxx IR1=xxxx CR0=xxxx L=xx W=x).

CK 位相 (1 CK = 4 サイクル,phase 0..3).CK エッジがデータ遷移から 1 サイクル遅れ,構成的に 90° 相当の関係になる:

リード側は POR デフォルト (固定 2x レイテンシ) 前提で CR0 を書かず, RWDS のエッジ検出で自己同期してデータ語を取り込む (レイテンシ実測値は L=xx として報告し,L1 モデル/データシート解釈の照合に使う). 実機結果 (2026-07-22): IR0=005F / IR1=000F / CR0=8F1F / L=0B / W=1.

Parameters


ResetPulseCycles u32 リセットパルス幅 [cyc] (tRP = 200 ns min → 27 MHz で 8 cyc = 296 ns)
TvcsCycles u32 RESET# 解除後の待機 [cyc] (tVCS = 150 µs min → 200 µs 相当を既定とする)

Ports


i_clk input clock クロック (27 MHz)
i_rst input reset リセット
o_ck output logic CK 出力 (6.75 MHz)
o_cs_n output logic CS# 出力
o_reset_n output logic RESET# 出力
o_dq output logic<8> DQ 出力 (CA)
o_dq_oe output logic DQ 出力イネーブル
i_dq input logic<8> DQ 入力 (リードデータ)
i_rwds input logic RWDS 入力 (データ検出に使用)
msg modport stream_if source 結果メッセージ (リセット毎に 1 行送出)