Smp cluster now use i$ reduceBankWidth

This commit is contained in:
Dolu1990 2020-05-12 23:59:19 +02:00
parent 685c914227
commit 42fef8bbcd
3 changed files with 11 additions and 47 deletions

View File

@ -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,

View File

@ -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,

View File

@ -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)
} }