Smp cluster now use i$ reduceBankWidth
This commit is contained in:
parent
685c914227
commit
42fef8bbcd
|
@ -60,9 +60,9 @@ object TestsWorkspace {
|
||||||
prediction = STATIC,
|
prediction = STATIC,
|
||||||
injectorStage = false,
|
injectorStage = false,
|
||||||
config = InstructionCacheConfig(
|
config = InstructionCacheConfig(
|
||||||
cacheSize = 4096*1,
|
cacheSize = 4096*2,
|
||||||
bytePerLine = 64,
|
bytePerLine = 64,
|
||||||
wayCount = 1,
|
wayCount = 2,
|
||||||
addressWidth = 32,
|
addressWidth = 32,
|
||||||
cpuDataWidth = 32,
|
cpuDataWidth = 32,
|
||||||
memDataWidth = 128,
|
memDataWidth = 128,
|
||||||
|
@ -70,7 +70,8 @@ object TestsWorkspace {
|
||||||
catchAccessFault = true,
|
catchAccessFault = true,
|
||||||
asyncTagMemory = false,
|
asyncTagMemory = false,
|
||||||
twoCycleRam = true,
|
twoCycleRam = true,
|
||||||
twoCycleCache = true
|
twoCycleCache = true,
|
||||||
|
reducedBankWidth = true
|
||||||
// )
|
// )
|
||||||
),
|
),
|
||||||
memoryTranslatorPortConfig = MmuPortConfig(
|
memoryTranslatorPortConfig = MmuPortConfig(
|
||||||
|
@ -129,7 +130,7 @@ object TestsWorkspace {
|
||||||
catchIllegalInstruction = true
|
catchIllegalInstruction = true
|
||||||
),
|
),
|
||||||
new RegFilePlugin(
|
new RegFilePlugin(
|
||||||
regFileReadyKind = plugin.SYNC,
|
regFileReadyKind = plugin.ASYNC,
|
||||||
zeroBoot = true
|
zeroBoot = true
|
||||||
),
|
),
|
||||||
new IntAluPlugin,
|
new IntAluPlugin,
|
||||||
|
|
|
@ -120,22 +120,6 @@ object VexRiscvSmpClusterGen {
|
||||||
new MmuPlugin(
|
new MmuPlugin(
|
||||||
ioRange = ioRange
|
ioRange = ioRange
|
||||||
),
|
),
|
||||||
//Uncomment the whole IBusSimplePlugin and comment IBusCachedPlugin if you want uncached iBus config
|
|
||||||
// new IBusSimplePlugin(
|
|
||||||
// resetVector = 0x80000000l,
|
|
||||||
// cmdForkOnSecondStage = false,
|
|
||||||
// cmdForkPersistence = false,
|
|
||||||
// prediction = DYNAMIC_TARGET,
|
|
||||||
// historyRamSizeLog2 = 10,
|
|
||||||
// catchAccessFault = true,
|
|
||||||
// compressedGen = true,
|
|
||||||
// busLatencyMin = 1,
|
|
||||||
// injectorStage = true,
|
|
||||||
// memoryTranslatorPortConfig = withMmu generate MmuPortConfig(
|
|
||||||
// portTlbSize = 4
|
|
||||||
// )
|
|
||||||
// ),
|
|
||||||
|
|
||||||
//Uncomment the whole IBusCachedPlugin and comment IBusSimplePlugin if you want cached iBus config
|
//Uncomment the whole IBusCachedPlugin and comment IBusSimplePlugin if you want cached iBus config
|
||||||
new IBusCachedPlugin(
|
new IBusCachedPlugin(
|
||||||
resetVector = resetVector,
|
resetVector = resetVector,
|
||||||
|
@ -146,9 +130,9 @@ object VexRiscvSmpClusterGen {
|
||||||
injectorStage = false,
|
injectorStage = false,
|
||||||
relaxedPcCalculation = true,
|
relaxedPcCalculation = true,
|
||||||
config = InstructionCacheConfig(
|
config = InstructionCacheConfig(
|
||||||
cacheSize = 4096*1,
|
cacheSize = 4096*2,
|
||||||
bytePerLine = 64,
|
bytePerLine = 64,
|
||||||
wayCount = 1,
|
wayCount = 2,
|
||||||
addressWidth = 32,
|
addressWidth = 32,
|
||||||
cpuDataWidth = 32,
|
cpuDataWidth = 32,
|
||||||
memDataWidth = 128,
|
memDataWidth = 128,
|
||||||
|
@ -156,8 +140,8 @@ object VexRiscvSmpClusterGen {
|
||||||
catchAccessFault = true,
|
catchAccessFault = true,
|
||||||
asyncTagMemory = false,
|
asyncTagMemory = false,
|
||||||
twoCycleRam = false,
|
twoCycleRam = false,
|
||||||
twoCycleCache = true
|
twoCycleCache = true,
|
||||||
// )
|
reducedBankWidth = true
|
||||||
),
|
),
|
||||||
memoryTranslatorPortConfig = MmuPortConfig(
|
memoryTranslatorPortConfig = MmuPortConfig(
|
||||||
portTlbSize = 4,
|
portTlbSize = 4,
|
||||||
|
@ -166,16 +150,6 @@ object VexRiscvSmpClusterGen {
|
||||||
earlyCacheHits = true
|
earlyCacheHits = true
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
// ).newTightlyCoupledPort(TightlyCoupledPortParameter("iBusTc", a => a(30 downto 28) === 0x0 && a(5))),
|
|
||||||
// new DBusSimplePlugin(
|
|
||||||
// catchAddressMisaligned = true,
|
|
||||||
// catchAccessFault = true,
|
|
||||||
// earlyInjection = false,
|
|
||||||
// withLrSc = true,
|
|
||||||
// memoryTranslatorPortConfig = withMmu generate MmuPortConfig(
|
|
||||||
// portTlbSize = 4
|
|
||||||
// )
|
|
||||||
// ),
|
|
||||||
new DBusCachedPlugin(
|
new DBusCachedPlugin(
|
||||||
dBusCmdMasterPipe = true,
|
dBusCmdMasterPipe = true,
|
||||||
dBusCmdSlavePipe = true,
|
dBusCmdSlavePipe = true,
|
||||||
|
@ -204,13 +178,6 @@ object VexRiscvSmpClusterGen {
|
||||||
earlyCacheHits = true
|
earlyCacheHits = true
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|
||||||
// new MemoryTranslatorPlugin(
|
|
||||||
// tlbSize = 32,
|
|
||||||
// virtualRange = _(31 downto 28) === 0xC,
|
|
||||||
// ioRange = _(31 downto 28) === 0xF
|
|
||||||
// ),
|
|
||||||
|
|
||||||
new DecoderSimplePlugin(
|
new DecoderSimplePlugin(
|
||||||
catchIllegalInstruction = true
|
catchIllegalInstruction = true
|
||||||
),
|
),
|
||||||
|
@ -234,8 +201,6 @@ object VexRiscvSmpClusterGen {
|
||||||
pessimisticWriteRegFile = false,
|
pessimisticWriteRegFile = false,
|
||||||
pessimisticAddressMatch = false
|
pessimisticAddressMatch = false
|
||||||
),
|
),
|
||||||
// new HazardSimplePlugin(false, true, false, true),
|
|
||||||
// new HazardSimplePlugin(false, false, false, false),
|
|
||||||
new MulPlugin,
|
new MulPlugin,
|
||||||
new MulDivIterativePlugin(
|
new MulDivIterativePlugin(
|
||||||
genMul = false,
|
genMul = false,
|
||||||
|
@ -243,9 +208,7 @@ object VexRiscvSmpClusterGen {
|
||||||
mulUnrollFactor = 32,
|
mulUnrollFactor = 32,
|
||||||
divUnrollFactor = 1
|
divUnrollFactor = 1
|
||||||
),
|
),
|
||||||
// new DivPlugin,
|
|
||||||
new CsrPlugin(CsrPluginConfig.openSbi(hartId = hartId, misa = Riscv.misaToInt("imas"))),
|
new CsrPlugin(CsrPluginConfig.openSbi(hartId = hartId, misa = Riscv.misaToInt("imas"))),
|
||||||
|
|
||||||
new BranchPlugin(
|
new BranchPlugin(
|
||||||
earlyBranch = false,
|
earlyBranch = false,
|
||||||
catchAddressMisaligned = true,
|
catchAddressMisaligned = true,
|
||||||
|
|
|
@ -350,8 +350,8 @@ object VexRiscvLitexSmpClusterGen extends App {
|
||||||
debugClockDomain = ClockDomain.current.copy(reset = Bool().setName("debugResetIn"))
|
debugClockDomain = ClockDomain.current.copy(reset = Bool().setName("debugResetIn"))
|
||||||
)
|
)
|
||||||
|
|
||||||
// SpinalVerilog(Bench.compressIo(dutGen))
|
SpinalVerilog(Bench.compressIo(dutGen))
|
||||||
SpinalVerilog(dutGen)
|
// SpinalVerilog(dutGen)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue