FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

LiteXによるSoC環境構築を試行する (14. 自作CPUのLiteXのインテグレーション試行)

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()の部分で引っかかっているようだ。 書き込みをした後、割り込みが発生するようにしてほしい、という訳だ。 どうもこれが動作していない。