Add fullNoMmuNoCache config

This commit is contained in:
Charles Papon 2017-07-17 16:45:06 +02:00
parent 2b03b8487d
commit 42e546ecd9
2 changed files with 72 additions and 1 deletions

View File

@ -0,0 +1,64 @@
package VexRiscv.demo
import VexRiscv.Plugin._
import VexRiscv.ip.{DataCacheConfig, InstructionCacheConfig}
import VexRiscv.{Plugin, VexRiscv, VexRiscvConfig}
import spinal.core._
/**
* Created by spinalvm on 15.06.17.
*/
object GenFullNoMmuNoCache extends App{
def cpu() = new VexRiscv(
config = VexRiscvConfig(
plugins = List(
new PcManagerSimplePlugin(
resetVector = 0x00000000l,
fastPcCalculation = false
),
new IBusSimplePlugin(
interfaceKeepData = false,
catchAccessFault = false
),
new DBusSimplePlugin(
catchAddressMisaligned = false,
catchAccessFault = false
),
new DecoderSimplePlugin(
catchIllegalInstruction = true
),
new RegFilePlugin(
regFileReadyKind = Plugin.SYNC,
zeroBoot = true
),
new IntAluPlugin,
new SrcPlugin(
separatedAddSub = false,
executeInsertion = true
),
new FullBarrielShifterPlugin,
new HazardSimplePlugin(
bypassExecute = true,
bypassMemory = true,
bypassWriteBack = true,
bypassWriteBackBuffer = true,
pessimisticUseSrc = false,
pessimisticWriteRegFile = false,
pessimisticAddressMatch = false
),
new MulPlugin,
new DivPlugin,
new CsrPlugin(CsrPluginConfig.small),
new DebugPlugin(ClockDomain.current.clone(reset = Bool().setName("debugReset"))),
new BranchPlugin(
earlyBranch = false,
catchAddressMisaligned = true,
prediction = STATIC
),
new YamlPlugin("cpu0.yaml")
)
)
)
SpinalVerilog(cpu())
}

View File

@ -27,6 +27,13 @@ object SynthesisBench {
SpinalVerilog(GenSmallAndProductive.cpu().setDefinitionName(getRtlPath().split("\\.").head)) SpinalVerilog(GenSmallAndProductive.cpu().setDefinitionName(getRtlPath().split("\\.").head))
} }
val fullNoMmuNoCache = new Rtl {
override def getName(): String = "VexRiscv full no MMU no cache"
override def getRtlPath(): String = "VexRiscvFullNoMmuNoCache.v"
SpinalVerilog(GenFullNoMmuNoCache.cpu().setDefinitionName(getRtlPath().split("\\.").head))
}
val fullNoMmu = new Rtl { val fullNoMmu = new Rtl {
override def getName(): String = "VexRiscv full no MMU" override def getName(): String = "VexRiscv full no MMU"
override def getRtlPath(): String = "VexRiscvFullNoMmu.v" override def getRtlPath(): String = "VexRiscvFullNoMmu.v"
@ -39,7 +46,7 @@ object SynthesisBench {
SpinalVerilog(GenFull.cpu().setDefinitionName(getRtlPath().split("\\.").head)) SpinalVerilog(GenFull.cpu().setDefinitionName(getRtlPath().split("\\.").head))
} }
val rtls = List(smallestNoCsr, smallest, smallAndProductive, fullNoMmu, full) val rtls = List(smallestNoCsr, smallest, smallAndProductive, fullNoMmuNoCache, fullNoMmu, full)
val targets = XilinxStdTargets( val targets = XilinxStdTargets(
vivadoArtix7Path = "E:\\Xilinx\\Vivado\\2016.3\\bin" vivadoArtix7Path = "E:\\Xilinx\\Vivado\\2016.3\\bin"