package vexriscv.demo import spinal.core._ import vexriscv.ip.{DataCacheConfig, InstructionCacheConfig} import vexriscv.plugin._ import vexriscv.{VexRiscv, VexRiscvConfig, plugin} /** * Created by spinalvm on 15.06.17. */ object GenNoCacheNoMmuMaxPerf extends App{ def cpu() = new VexRiscv( config = VexRiscvConfig( plugins = List( new IBusSimplePlugin( resetVector = 0x80000000l, cmdForkOnSecondStage = false, cmdForkPersistence = false, prediction = DYNAMIC_TARGET, historyRamSizeLog2 = 8, catchAccessFault = true, compressedGen = false ), new DBusSimplePlugin( catchAddressMisaligned = true, catchAccessFault = true, earlyInjection = false ), new StaticMemoryTranslatorPlugin( ioRange = _(31 downto 28) === 0xF ), new DecoderSimplePlugin( catchIllegalInstruction = true ), new RegFilePlugin( regFileReadyKind = plugin.SYNC, zeroBoot = false ), new IntAluPlugin, new SrcPlugin( separatedAddSub = false, executeInsertion = true ), new FullBarrelShifterPlugin(earlyInjection = true), new HazardSimplePlugin( bypassExecute = true, bypassMemory = true, bypassWriteBack = true, bypassWriteBackBuffer = true, pessimisticUseSrc = false, pessimisticWriteRegFile = false, pessimisticAddressMatch = false ), new MulPlugin, new MulDivIterativePlugin(genMul = false, genDiv = true, mulUnrollFactor = 1, divUnrollFactor = 1,dhrystoneOpt = false), new CsrPlugin(CsrPluginConfig.small), new DebugPlugin(ClockDomain.current.clone(reset = Bool().setName("debugReset"))), new BranchPlugin( earlyBranch = false, catchAddressMisaligned = true ), new YamlPlugin("cpu0.yaml") ) ) ) SpinalVerilog(cpu()) }