Set SMP workspace to use i$ memDataWidth of 128 bits
This commit is contained in:
parent
eee9927baf
commit
7b80e1fc30
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue