xref: /XiangShan/src/main/scala/system/SoC.scala (revision fe820c3d12c0fbbef7df33d7e38a5544e32d418a)
1package system
2
3import noop.{NOOP, NOOPConfig}
4import bus.axi4.{AXI4, AXI4Lite}
5import bus.simplebus._
6
7import chisel3._
8import chisel3.util.experimental.BoringUtils
9
10class NOOPSoC(implicit val p: NOOPConfig) extends Module {
11  val io = IO(new Bundle{
12    val mem = new AXI4
13    val mmio = (if (p.FPGAPlatform) { new AXI4Lite } else { new SimpleBusUC })
14    val mtip = Input(Bool())
15  })
16
17  val noop = Module(new NOOP)
18  val cohMg = Module(new CoherenceInterconnect)
19  cohMg.io.in(0) <> noop.io.imem
20  cohMg.io.in(1) <> noop.io.dmem
21  io.mem <> cohMg.io.out.toAXI4()
22
23  if (p.FPGAPlatform) io.mmio <> noop.io.mmio.toAXI4Lite()
24  else io.mmio <> noop.io.mmio
25
26  BoringUtils.addSource(io.mtip, "mtip")
27}
28