Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

RvAxiMaster

コアの簡易メモリプロトコルを AXI4-Lite マスタへ変換する (docs/riscv.md「メモリマップ」)

コア側は RvMem / RvMmio と同じ握手(i_valid を上げ,完了サイクルに o_done が 1).AXI 側は単一アウトスタンディングで, ライトは AW と W を同時に出して B 応答で完了,リードは AR を出して R 応答で完了とする.

アドレスは下位 AddrW bit のみを AXI へ渡す(窓内オフセット).

完了後は wait_low で i_valid が下がるのを待つ.コアは o_done を見てから 次サイクルに i_valid を下ろすため,これがないと同じ要求を 2 回発行してしまう (RvMem は accept = i_valid && !pending で同じ効果を得ている).

Parameters


AddrW u32 AXI 側のアドレス幅(PSRAM ch0 は 22 bit = 4 MB)

Ports


i_clk input clock クロック
i_rst input reset リセット
i_valid input logic アクセス要求
i_addr input logic<32> バイトアドレス
i_write input logic 1 でストア
i_wdata input logic<32> ストアデータ
i_wstrb input logic<4> バイトイネーブル
o_done output logic 完了(1 サイクル)
o_rdata output logic<32> リードデータ
m_axi modport $std __axi4_lite_if__$std___axi4_lite_pkg__22__4__1 master AXI4-Lite マスタ