mirror of
https://github.com/SpinalHDL/SpinalTemplateSbt.git
synced 2025-10-22 23:58:44 +08:00
32 lines
887 B
Scala
32 lines
887 B
Scala
package projectname
|
|
|
|
import spinal.core._
|
|
import spinal.core.sim._
|
|
|
|
object MyTopLevelSim extends App {
|
|
Config.sim.compile(MyTopLevel()).doSim { dut =>
|
|
// Fork a process to generate the reset and the clock on the dut
|
|
dut.clockDomain.forkStimulus(period = 10)
|
|
|
|
var modelState = 0
|
|
for (idx <- 0 to 99) {
|
|
// Drive the dut inputs with random values
|
|
dut.io.cond0.randomize()
|
|
dut.io.cond1.randomize()
|
|
|
|
// Wait a rising edge on the clock
|
|
dut.clockDomain.waitRisingEdge()
|
|
|
|
// Check that the dut values match with the reference model ones
|
|
val modelFlag = modelState == 0 || dut.io.cond1.toBoolean
|
|
assert(dut.io.state.toInt == modelState)
|
|
assert(dut.io.flag.toBoolean == modelFlag)
|
|
|
|
// Update the reference model value
|
|
if (dut.io.cond0.toBoolean) {
|
|
modelState = (modelState + 1) & 0xff
|
|
}
|
|
}
|
|
}
|
|
}
|