1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
package vexriscv.experimental
import spinal.core.SpinalVerilog
import vexriscv.ip.InstructionCacheConfig
import vexriscv.{VexRiscv, VexRiscvConfig, plugin}
import vexriscv.plugin._
import scala.collection.mutable.ArrayBuffer
object Presentation extends App{
val config = VexRiscvConfig()
config.plugins ++= List(
// new IBusSimplePlugin(resetVector = 0x80000000l),
new DBusSimplePlugin,
new CsrPlugin(CsrPluginConfig.smallest),
new DecoderSimplePlugin,
new RegFilePlugin(regFileReadyKind = plugin.SYNC),
new IntAluPlugin,
new SrcPlugin,
new MulDivIterativePlugin(
mulUnrollFactor = 4,
divUnrollFactor = 1
),
new FullBarrelShifterPlugin,
new HazardSimplePlugin,
new BranchPlugin(
earlyBranch = false
),
new YamlPlugin("cpu0.yaml")
)
new VexRiscv(config)
}
|