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 マスタ |