LiteXはオープンソースのSoC構成環境なのだが、これに対して自作CPUのインテグレーションを試行してみる。
既存のシミュレーション環境に対して、以下の定義を追加して、LiteX用に改造してみる。
- CLINT / PLICのメモリマップを定義する。
{ "base": "0x0200_0000", "size": "0x0001_0000", "attr": {"R": 1, "W": 1, "A": 1, "X": 0, "C": 0}, "comment":"CLINT" }, { "base": "0x0c00_0000", "size": "0x0400_0000", "attr": {"R": 1, "W": 1, "A": 1, "X": 0, "C": 0}, "comment":"PLIC" },
diff --git a/src/litex_defines.svh b/src/litex_defines.svh index d863281b..11461bea 100644 --- a/src/litex_defines.svh +++ b/src/litex_defines.svh @@ -1 +1,5 @@ `define RV64 +`define RV_AMO (1) +`define SIMULATION +`define SUBSYSTEM_TOP sim.scariv_subsystem_axi_wrapper.u_scariv_subsystem +`define NATIVE_DUMP
問題は、uart_write()
の部分で引っかかっているようだ。
書き込みをした後、割り込みが発生するようにしてほしい、という訳だ。
どうもこれが動作していない。