From a275d7b444d6c9cb4eb5f4c2a0ff114deddf237e Mon Sep 17 00:00:00 2001 From: Dolu1990 Date: Thu, 17 Aug 2023 17:12:27 +0200 Subject: [PATCH] VexRiscvSmpClusterGen withMulDiv / withBarrelShifter added --- .../demo/smp/VexRiscvSmpCluster.scala | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/main/scala/vexriscv/demo/smp/VexRiscvSmpCluster.scala b/src/main/scala/vexriscv/demo/smp/VexRiscvSmpCluster.scala index 6fffb6a5..ebeb0979 100644 --- a/src/main/scala/vexriscv/demo/smp/VexRiscvSmpCluster.scala +++ b/src/main/scala/vexriscv/demo/smp/VexRiscvSmpCluster.scala @@ -193,6 +193,8 @@ object VexRiscvSmpClusterGen { prediction : BranchPrediction = vexriscv.plugin.NONE, withDataCache : Boolean = true, withInstructionCache : Boolean = true, + withBarrelShifter : Boolean = true, + withMulDiv : Boolean = true, forceMisa : Boolean = false, forceMscratch : Boolean = false, privilegedDebug : Boolean = false, @@ -334,8 +336,10 @@ object VexRiscvSmpClusterGen { new SrcPlugin( separatedAddSub = false ), - new FullBarrelShifterPlugin(earlyInjection = earlyShifterInjection), - // new LightShifterPlugin, + if(withBarrelShifter) + new FullBarrelShifterPlugin(earlyInjection = earlyShifterInjection) + else + new LightShifterPlugin, new HazardSimplePlugin( bypassExecute = true, bypassMemory = true, @@ -345,13 +349,6 @@ object VexRiscvSmpClusterGen { pessimisticWriteRegFile = false, pessimisticAddressMatch = false ), - new MulPlugin, - new MulDivIterativePlugin( - genMul = false, - genDiv = true, - mulUnrollFactor = 32, - divUnrollFactor = 1 - ), new CsrPlugin(csrConfig), new BranchPlugin( earlyBranch = earlyBranch, @@ -362,6 +359,16 @@ object VexRiscvSmpClusterGen { ) ) + if(withMulDiv) config.plugins ++= List( + new MulPlugin, + new MulDivIterativePlugin( + genMul = false, + genDiv = true, + mulUnrollFactor = 32, + divUnrollFactor = 1 + ) + ) + if(withFloat) config.plugins += new FpuPlugin( externalFpu = externalFpu, simHalt = simHalt,