diff --git a/src/main/scala/gpu/GPU.scala b/src/main/scala/gpu/GPU.scala index e2cf36a470a4b9f0c078fc54705b023de899db20..3eabdeaaa7e8b75eb8e5c2cd9d593a27678b5867 100644 --- a/src/main/scala/gpu/GPU.scala +++ b/src/main/scala/gpu/GPU.scala @@ -3,7 +3,7 @@ package gpu import chisel3._ import chisel3.util._ -import noop.MemIO +import memory.MemIO class PixelBundle extends Bundle { val a = UInt(8.W) diff --git a/src/main/scala/memory/Bundle.scala b/src/main/scala/memory/Bundle.scala new file mode 100644 index 0000000000000000000000000000000000000000..bdd44a7768f4ae40a3b55152ecb44229411f57ad --- /dev/null +++ b/src/main/scala/memory/Bundle.scala @@ -0,0 +1,23 @@ +package memory + +import chisel3._ +import chisel3.util._ + +class MemAddrBundle extends Bundle { + val addr = Output(UInt(32.W)) + val size = Output(UInt(3.W)) +} + +class MemDataBundle(val dataBits: Int) extends Bundle { + val data = Output(UInt(dataBits.W)) +} + +class MemMaskDataBundle(dataBits: Int) extends MemDataBundle(dataBits) { + val mask = Output(UInt((dataBits / 8).W)) +} + +class MemIO(val dataBits: Int = 32) extends Bundle { + val a = Valid(new MemAddrBundle) + val r = Flipped(Valid(new MemDataBundle(dataBits))) + val w = Valid(new MemMaskDataBundle(dataBits)) +} diff --git a/src/main/scala/top/DistributedMem.scala b/src/main/scala/memory/DistributedMem.scala similarity index 98% rename from src/main/scala/top/DistributedMem.scala rename to src/main/scala/memory/DistributedMem.scala index 983e3979539bac5f31e50bfbc25c65b2ec625e0f..1ca22c9a785a3aef4572a6b41f1ae57e6e03d9ef 100644 --- a/src/main/scala/top/DistributedMem.scala +++ b/src/main/scala/memory/DistributedMem.scala @@ -1,6 +1,4 @@ -package top - -import noop.MemIO +package memory import chisel3._ import chisel3.util._ diff --git a/src/main/scala/noop/Bundle.scala b/src/main/scala/noop/Bundle.scala index 41d7e705d19ead1307864c49615d661d39ccf44e..0bd2296a8071740f4408eb129a3d80e047ebb333 100644 --- a/src/main/scala/noop/Bundle.scala +++ b/src/main/scala/noop/Bundle.scala @@ -44,22 +44,3 @@ class BranchIO extends Bundle { val isTaken = Output(Bool()) val target = Output(UInt(32.W)) } - -class MemAddrBundle extends Bundle { - val addr = Output(UInt(32.W)) - val size = Output(UInt(3.W)) -} - -class MemDataBundle(val dataBits: Int) extends Bundle { - val data = Output(UInt(dataBits.W)) -} - -class MemMaskDataBundle(dataBits: Int) extends MemDataBundle(dataBits) { - val mask = Output(UInt((dataBits / 8).W)) -} - -class MemIO(val dataBits: Int = 32) extends Bundle { - val a = Valid(new MemAddrBundle) - val r = Flipped(Valid(new MemDataBundle(dataBits))) - val w = Valid(new MemMaskDataBundle(dataBits)) -} diff --git a/src/main/scala/noop/EXU.scala b/src/main/scala/noop/EXU.scala index af9e31e199a401b26ab6146eb5e6c0ce28915192..40c37b0448eb1fc36c70dbf359ad6ce29871d0c4 100644 --- a/src/main/scala/noop/EXU.scala +++ b/src/main/scala/noop/EXU.scala @@ -3,6 +3,8 @@ package noop import chisel3._ import chisel3.util._ +import memory.MemIO + object LookupTree { private val useMuxTree = true diff --git a/src/main/scala/noop/IFU.scala b/src/main/scala/noop/IFU.scala index 35a44a190fd81d68712d3601aaf4552f88433e5b..0b2340dd23a70f38042311eb8967b595335bbb32 100644 --- a/src/main/scala/noop/IFU.scala +++ b/src/main/scala/noop/IFU.scala @@ -3,6 +3,8 @@ package noop import chisel3._ import chisel3.util._ +import memory.MemIO + trait HasResetVector { val resetVector = 0x80100000L } diff --git a/src/main/scala/noop/NOOP.scala b/src/main/scala/noop/NOOP.scala index eaefb2033f814a509564fd208955a0bc3a4920bd..0869b383944e2202376df674c0bb67df7c4d6b78 100644 --- a/src/main/scala/noop/NOOP.scala +++ b/src/main/scala/noop/NOOP.scala @@ -3,6 +3,7 @@ package noop import chisel3._ import chisel3.util._ +import memory.MemIO import gpu.GPU trait NOOPConfig { diff --git a/src/main/scala/noop/fu/LSU.scala b/src/main/scala/noop/fu/LSU.scala index 3de7e0efc1593bd8ef3c940c8c7ae9751b76fb01..096be6eaa53afe64315e75d329ce0a357d36e409 100644 --- a/src/main/scala/noop/fu/LSU.scala +++ b/src/main/scala/noop/fu/LSU.scala @@ -3,6 +3,8 @@ package noop import chisel3._ import chisel3.util._ +import memory.MemIO + trait HasLSUOpType { val LsuOpTypeNum = 10 diff --git a/src/test/scala/top/NOOPSim.scala b/src/test/scala/top/NOOPSim.scala index 949b453d74dc682f8e074e6c2e06fdf886d32999..35b8e38752446c58d3c7e175049ec1de86ba9da2 100644 --- a/src/test/scala/top/NOOPSim.scala +++ b/src/test/scala/top/NOOPSim.scala @@ -5,6 +5,8 @@ import noop._ import chisel3._ import chisel3.util._ +import memory.DistributedMem + class NOOPSimTop(memInitFile: String = "") extends Module { val io = IO(new Bundle{ val trap = Output(UInt((3 + 1 + 4 + 32 + 32 + 2).W)) diff --git a/src/test/scala/top/SimMMIO.scala b/src/test/scala/top/SimMMIO.scala index 7d8e168af8cc23642c1e761965c8bd09d5f81c05..aa040b1d154e3f4db8f2faf5374a51c77a902b40 100644 --- a/src/test/scala/top/SimMMIO.scala +++ b/src/test/scala/top/SimMMIO.scala @@ -1,10 +1,10 @@ package top -import noop.MemIO - import chisel3._ import chisel3.util._ +import memory.MemIO + class SimMMIO extends Module { val io = IO(new Bundle { val rw = Flipped(new MemIO)