Set SMP workspace to use i$ memDataWidth of 128 bits

This commit is contained in:
Dolu1990 2020-04-28 22:11:41 +02:00
parent eee9927baf
commit 7b80e1fc30
3 changed files with 31 additions and 3 deletions

View File

@ -64,7 +64,7 @@ object TestsWorkspace {
wayCount = 1, wayCount = 1,
addressWidth = 32, addressWidth = 32,
cpuDataWidth = 32, cpuDataWidth = 32,
memDataWidth = 32, memDataWidth = 128,
catchIllegalAccess = true, catchIllegalAccess = true,
catchAccessFault = true, catchAccessFault = true,
asyncTagMemory = false, asyncTagMemory = false,

View File

@ -149,7 +149,7 @@ object VexRiscvSmpClusterGen {
wayCount = 1, wayCount = 1,
addressWidth = 32, addressWidth = 32,
cpuDataWidth = 32, cpuDataWidth = 32,
memDataWidth = 32, memDataWidth = 128,
catchIllegalAccess = true, catchIllegalAccess = true,
catchAccessFault = true, catchAccessFault = true,
asyncTagMemory = false, asyncTagMemory = false,

View File

@ -6,7 +6,9 @@ import spinal.lib.bus.wishbone.{Wishbone, WishboneConfig, WishboneSlaveFactory}
import spinal.lib.com.jtag.Jtag import spinal.lib.com.jtag.Jtag
import spinal.lib._ import spinal.lib._
import spinal.lib.bus.misc.{AddressMapping, DefaultMapping, SizeMapping} import spinal.lib.bus.misc.{AddressMapping, DefaultMapping, SizeMapping}
import spinal.lib.eda.bench.Bench
import spinal.lib.misc.Clint import spinal.lib.misc.Clint
import vexriscv.demo.smp.VexRiscvLitexSmpClusterOpenSbi.{cpuCount, parameter}
import vexriscv.demo.smp.VexRiscvSmpClusterGen.vexRiscvConfig import vexriscv.demo.smp.VexRiscvSmpClusterGen.vexRiscvConfig
import vexriscv.{VexRiscv, VexRiscvConfig} import vexriscv.{VexRiscv, VexRiscvConfig}
import vexriscv.plugin.{CsrPlugin, DBusCachedPlugin, DebugPlugin, IBusCachedPlugin} import vexriscv.plugin.{CsrPlugin, DBusCachedPlugin, DebugPlugin, IBusCachedPlugin}
@ -157,6 +159,32 @@ case class VexRiscvLitexSmpCluster(p : VexRiscvLitexSmpClusterParameter,
val peripheralWishbone = peripheralArbiter.io.output.toWishbone() val peripheralWishbone = peripheralArbiter.io.output.toWishbone()
io.peripheral << peripheralWishbone io.peripheral << peripheralWishbone
} }
object VexRiscvLitexSmpClusterGen extends App {
val cpuCount = 4
val withStall = false
def parameter = VexRiscvLitexSmpClusterParameter(
cluster = VexRiscvSmpClusterParameter(
cpuConfigs = List.tabulate(cpuCount) { hartId =>
vexRiscvConfig(
hartId = hartId,
ioRange = address => address.msb,
resetVector = 0
)
}
),
liteDram = LiteDramNativeParameter(addressWidth = 32, dataWidth = 128),
liteDramMapping = SizeMapping(0x40000000l, 0x40000000l)
)
def dutGen = VexRiscvLitexSmpCluster(
p = parameter,
debugClockDomain = ClockDomain.current.copy(reset = Bool().setName("debugResetIn"))
)
SpinalVerilog(Bench.compressIo(dutGen))
}
object VexRiscvLitexSmpClusterOpenSbi extends App{ object VexRiscvLitexSmpClusterOpenSbi extends App{
@ -180,7 +208,7 @@ object VexRiscvLitexSmpClusterOpenSbi extends App{
) )
} }
), ),
liteDram = LiteDramNativeParameter(addressWidth = 32, dataWidth = 32), liteDram = LiteDramNativeParameter(addressWidth = 32, dataWidth = 128),
liteDramMapping = SizeMapping(0x40000000l, 0x40000000l) liteDramMapping = SizeMapping(0x40000000l, 0x40000000l)
) )