object Driver
- Annotations
- @deprecated
- Deprecated
(Since version chisel-iotesters 2.5.0) chisel-iotesters is end-of-life. Use chiseltest instead, see https://www.chisel-lang.org/chiseltest/migrating-from-iotesters.
- Source
- Driver.scala
- Alphabetic
- By Inheritance
- Driver
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def apply[T <: Module](dutGen: () => T, backendType: String = "firrtl", verbose: Boolean = false, testerSeed: Long = System.currentTimeMillis())(testerGen: (T) => PeekPokeTester[T]): Boolean
Runs the ClassicTester and returns a Boolean indicating test success or failure
Runs the ClassicTester and returns a Boolean indicating test success or failure
- dutGen
This is the device under test.
- backendType
The default backend is "firrtl" which uses the firrtl interpreter. Other options "verilator" will use the verilator c++ simulation generator "ivl" will use the Icarus Verilog simulation "vcs" will use the VCS simulation "vsim" will use the ModelSim/QuestaSim simulation
- verbose
Setting this to true will make the tester display information on peeks, pokes, steps, and expects. By default only failed expects will be printed
- testerSeed
Set the random number generator seed
- testerGen
This is a test harness subclassing PeekPokeTester for dutGen,
- returns
This will be true if all tests in the testerGen pass
val testsPassed = iotesters.Driver(() => new CircuitX, testerSeed = 0L, verbose = true) { circuitX => CircuitXTester(circuitX) }
Example: - final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def execute[T <: Module](args: Array[String], dut: () => T)(testerGen: (T) => PeekPokeTester[T]): Boolean
This executes the test with options provide from an array of string -- typically provided from the command line
This executes the test with options provide from an array of string -- typically provided from the command line
- args
A *main* style array of string options
- dut
The device to be tested, (device-under-test)
- testerGen
A peek-poke tester with test for the dey
- returns
Returns true if all tests in testerGen pass
- def executeFirrtlRepl[T <: Module](args: Array[String], dutGenerator: () => T): Boolean
Start up the interpreter repl with the given circuit To test a
class X extends Module {}
, add the following code to the end of the file that definesStart up the interpreter repl with the given circuit To test a
class X extends Module {}
, add the following code to the end of the file that defines- args
options from the command line
- dutGenerator
Module to run in interpreter
object XRepl { def main(args: Array[String]) { iotesters.Driver.executeFirrtlRepl(args, () => new X) } }
running main will place users in the repl with the circuit X loaded into the repl
Example: - def filterAnnotations(annotations: Seq[Annotation]): Seq[Annotation]
Filter a sequence of annotations, ensuring problematic potential duplicates are removed.
Filter a sequence of annotations, ensuring problematic potential duplicates are removed.
- annotations
Seq[Annotation] to be filtered
- returns
filtered Seq[Annotation]
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def main(args: Array[String]): Unit
This is just here as command line way to see what the options are It will not successfully run TODO: Look into dynamic class loading as way to make this main useful
This is just here as command line way to see what the options are It will not successfully run TODO: Look into dynamic class loading as way to make this main useful
- args
unused args
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def optionsManager: TesterOptionsManager
- def run[T <: Module](dutGen: () => T, binary: File, waveform: Option[File] = None)(testerGen: (T) => PeekPokeTester[T]): Boolean
- def run[T <: Module](dutGen: () => T, binary: String, args: String*)(testerGen: (T) => PeekPokeTester[T]): Boolean
- def run[T <: Module](dutGen: () => T, cmd: Seq[String])(testerGen: (T) => PeekPokeTester[T]): Boolean
Runs the ClassicTester using the verilator backend without doing Verilator compilation and returns a Boolean indicating success or failure Requires the caller to supply path the already compile Verilator binary
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def execute[T <: Module](dutGenerator: () => T, optionsManager: TesterOptionsManager, firrtlSourceOverride: Option[String] = None)(testerGen: (T) => PeekPokeTester[T]): Boolean
This executes a test harness that extends peek-poke tester upon a device under test with an optionsManager to control all the options of the toolchain components
This executes a test harness that extends peek-poke tester upon a device under test with an optionsManager to control all the options of the toolchain components
- dutGenerator
The device under test, a subclass of a Chisel3 module
- optionsManager
Use this to control options like which backend to use
- testerGen
A peek poke tester with tests for the dut
- returns
Returns true if all tests in testerGen pass
- Annotations
- @deprecated
- Deprecated
(Since version 20210301) Use Driver#execute[T <: Module](args: Array[String], dut: () => T)
- def executeFirrtlRepl[T <: Module](dutGenerator: () => T, optionsManager: ReplOptionsManager = new ReplOptionsManager): Boolean
Start up the interpreter repl with the given circuit To test a
class X extends Module {}
, add the following code to the end of the file that definesStart up the interpreter repl with the given circuit To test a
class X extends Module {}
, add the following code to the end of the file that defines- dutGenerator
Module to run in interpreter
- optionsManager
options
- Annotations
- @deprecated
- Deprecated
(Since version 20210301) Use Driver#def executeFirrtlRepl[T <: Module](args: Array[String], dutGenerator: () => T)
object XRepl { def main(args: Array[String]) { val optionsManager = new ReplOptionsManager if(optionsManager.parse(args)) { iotesters.Driver.executeFirrtlRepl(() => new X, optionsManager) } }
running main will place users in the repl with the circuit X loaded into the repl
Example: - def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated