Add SMP synthesis
This commit is contained in:
parent
296cb44bc4
commit
f71f360e32
|
@ -134,7 +134,7 @@ make clean run IBUS=CACHED DBUS=CACHED DEBUG_PLUGIN=STD DHRYSTONE=yes SUPERVISO
|
|||
|
||||
|
||||
object LinuxGen {
|
||||
def configFull(litex : Boolean, withMmu : Boolean) = {
|
||||
def configFull(litex : Boolean, withMmu : Boolean, withSmp : Boolean = false) = {
|
||||
val config = VexRiscvConfig(
|
||||
plugins = List(
|
||||
//Uncomment the whole IBusSimplePlugin and comment IBusCachedPlugin if you want uncached iBus config
|
||||
|
@ -201,6 +201,8 @@ object LinuxGen {
|
|||
catchAccessError = true,
|
||||
catchIllegal = true,
|
||||
catchUnaligned = true,
|
||||
withExclusive = withSmp,
|
||||
withInvalidate = withSmp,
|
||||
withLrSc = true,
|
||||
withAmo = true
|
||||
// )
|
||||
|
|
|
@ -146,8 +146,15 @@ object VexRiscvSynthesisBench {
|
|||
SpinalConfig(inlineRom = true).generateVerilog(wrap(new VexRiscv(LinuxGen.configFull(false, true))).setDefinitionName(getRtlPath().split("\\.").head))
|
||||
}
|
||||
|
||||
val rtls = List(twoStage, twoStageBarell, twoStageMulDiv, twoStageAll, smallestNoCsr, smallest, smallAndProductive, smallAndProductiveWithICache, fullNoMmuNoCache, noCacheNoMmuMaxPerf, fullNoMmuMaxPerf, fullNoMmu, full, linuxBalanced)
|
||||
// val rtls = List(twoStage, twoStageBarell, twoStageMulDiv, twoStageAll)
|
||||
val linuxBalancedSmp = new Rtl {
|
||||
override def getName(): String = "VexRiscv linux balanced SMP"
|
||||
override def getRtlPath(): String = "VexRiscvLinuxBalancedSmp.v"
|
||||
SpinalConfig(inlineRom = true).generateVerilog(wrap(new VexRiscv(LinuxGen.configFull(false, true, withSmp = true))).setDefinitionName(getRtlPath().split("\\.").head))
|
||||
}
|
||||
|
||||
|
||||
// val rtls = List(twoStage, twoStageBarell, twoStageMulDiv, twoStageAll, smallestNoCsr, smallest, smallAndProductive, smallAndProductiveWithICache, fullNoMmuNoCache, noCacheNoMmuMaxPerf, fullNoMmuMaxPerf, fullNoMmu, full, linuxBalanced, linuxBalancedSmp)
|
||||
val rtls = List(linuxBalanced, linuxBalancedSmp)
|
||||
// val rtls = List(smallest)
|
||||
val targets = XilinxStdTargets() ++ AlteraStdTargets() ++ IcestormStdTargets().take(1) ++ List(
|
||||
new Target {
|
||||
|
|
Loading…
Reference in New Issue