diff --git a/src/main/scala/vexriscv/demo/smp/VexRiscvSmpCluster.scala b/src/main/scala/vexriscv/demo/smp/VexRiscvSmpCluster.scala index 3a72603..98ab788 100644 --- a/src/main/scala/vexriscv/demo/smp/VexRiscvSmpCluster.scala +++ b/src/main/scala/vexriscv/demo/smp/VexRiscvSmpCluster.scala @@ -145,7 +145,7 @@ object VexRiscvSmpClusterGen { relaxedPcCalculation = true, config = InstructionCacheConfig( cacheSize = 4096*1, - bytePerLine = 32, + bytePerLine = 64, wayCount = 1, addressWidth = 32, cpuDataWidth = 32, diff --git a/src/main/scala/vexriscv/demo/smp/VexRiscvSmpLitexCluster.scala b/src/main/scala/vexriscv/demo/smp/VexRiscvSmpLitexCluster.scala index 60add57..e911e44 100644 --- a/src/main/scala/vexriscv/demo/smp/VexRiscvSmpLitexCluster.scala +++ b/src/main/scala/vexriscv/demo/smp/VexRiscvSmpLitexCluster.scala @@ -148,8 +148,9 @@ case class VexRiscvLitexSmpCluster(p : VexRiscvLitexSmpClusterParameter, iBusDecoder.io.input << iBusArbiter.io.output io.iMem.fromBmb(iBusDecoder.io.outputs(1)) + val peripheralAccessLength = Math.max(iBusDecoder.io.outputs(0).p.lengthWidth, dBusDecoder.io.outputs(0).p.lengthWidth) val peripheralArbiter = BmbArbiter( - p = dBusDecoder.io.outputs(0).p.copy(sourceWidth = dBusDecoder.io.outputs(0).p.sourceWidth + 1), + p = dBusDecoder.io.outputs(0).p.copy(sourceWidth = dBusDecoder.io.outputs(0).p.sourceWidth + 1, lengthWidth = peripheralAccessLength), portCount = 2, lowerFirstPriority = true )