Sets one or more clocks including their frequencies and phase
Using this annotation allows external users of a TreadleTester to supply their own custom treadle.executable.DataStorePlugins.
Using this annotation allows external users of a TreadleTester to supply their own custom treadle.executable.DataStorePlugins. See that code for examples of use.
A unique name for this plugin
A function that returns a DataStorePlugin subclass
this annotation cannot be generated from the command line
Controls whether changes to memory locations are written to vcd output
Controls whether changes to memory locations are written to vcd output
controls which memories and which locations of those memories are logged to vcd output When not present not memories are logged "all" log all values at all locations of all memories "mem1:all" log all values at all locations for memory mem1 "mem1:0-4" log values at locations 0-4 for memory mem1 "mem1:b0-b100" log values at locations 0-4 but show addresses in binary for memory mem1 "mem1:h0-hff" log values at locations 0-255 but show addresses in hex for memory mem1 "mem1:o0-o377" log values at locations 0-255 but show addresses in octal for memory mem1 This annotation may occur more than once in order to specify multiple memories
Sets the seed for treadle's private random number generator
used with treadle's default reset operations
Sets the number of rollback buffers in simulator, useful to see why wires have their values
This is the template for writing Scala functions that implement the behaviour of a black box.
This is the template for writing Scala functions that implement the behaviour of a black box. Implementing classes should add internal variables to hold any state information.
For each instantiation of an ExtModule the engine needs a separate instance of a BlackBoxImplementation.
For each instantiation of an ExtModule the engine needs a separate instance of a BlackBoxImplementation. This factory provides it.
class ExampleBBFactory extends BlackBoxFactory { override def createInstance(instanceName: String, blackBoxName: String): Option[BlackBoxImplementation] = { instanceName match { case "bb1" => Some(add(new BB1Impl)) case "bb2" => Some(add(new BB2Impl)) case "bb3" => Some(add(new BB3Impl)) case _ => throw Exception(s"ExampleBBBFactory does not know how to create " + instanceName) } } }
Sets a list of symbols that will be rendered during execution
The circuit used to build a TreadleTester
The circuit used to build a TreadleTester
a firrtl ast
used to pass parsed firrtl to the TreadleTester
used to pass parsed firrtl to the TreadleTester
the state to be passed along
Constructs this as a registered library that will be auto-detected by projects who have a dependency on Treadle
Considered by many to be the world's best Treadle Repl
Works a lot like the chisel classic tester compiles a firrtl input string and allows poke, peek, expect and step
Works a lot like the chisel classic tester compiles a firrtl input string and allows poke, peek, expect and step
pokes invalidate the underlying circuit peek, expect and step, recompute (re-validate) the circuit before executing
Important note: port names in LoFirrtl have replaced dot notation with underscore notation so that io.a.b must be referenced as io_a_b
Used to pass a tester on to a test harness
Used to pass a tester on to a test harness
The TreadleTester to be passed on
This tester runs a VCD file against a circuit expressed in a firrtl file.
This tester runs a VCD file against a circuit expressed in a firrtl file. The VCD file should have been produced by running a test harness against the circuit. This test can be used to generate circuit behavior while running symbolic or concolic testing. It can also be used to determine if later changes to a circuit have changed since some original correct **golden** run of the circuit For example use the main below to run the VcdAdder files contained in the src/test/resources directory
sbt 'runMain treadle.VcdReplayTester -fs src/test/resources/VcdAdder.fir -vcd src/test/resources/VcdAdder.vcd'
Provides an input form hint to treadle to know how to best handle the input it receives
Provides an input form hint to treadle to know how to best handle the input it receives
the input form
(Since version 1.3.x) Remove references, this has no effect
Tells treadle to allow cycles
Tell treadle to call it's own internal reset at startup.
Tell treadle to call it's own internal reset at startup. This is typically handled by the unit test framework and not needed for users
Tells treadle to not run its own lowering pass on firrtl input (not recommended)
This regression demonstrates that a bad initial setting has been fixed the default rollback buffer of 10 meant that large memories caused considerable slowing as buffers were copied.
Tells treadle to prefix printf strings with a wall time
Tells treadle to Randomize circuit at startup
Tells treadle to show the low firrtl it is starting out with
Tells treadle to show the low firrtl it is starting out with
Factory for FirrtlFileAnnotation annotation, this is an alias for Firrtl Cli
Factory for FirrtlSourceAnnotation, this is an alias for FirrtlCli
Tells treadle to present random value when validIf's condition is off
makes a more convenient way of specifying firrtl source
Tells treadle to include _T_* and _GEN_* wires in VCD output
Tells treadle to execute verbosely
Tells treadle to write a vcd file during simulation
Utility function that computes bits required for a number
Utility function that computes bits required for a number
number of interest
computes the smallest and largest values that will fit in an SInt
computes the smallest and largest values that will fit in an SInt
width of SInt
tuple(minVale, maxValue)
computes the smallest and largest values that will fit in a UInt
computes the smallest and largest values that will fit in a UInt
width of SInt
tuple(minVale, maxValue)
return the smallest number of bits required to hold the given number in an SInt Note: positive numbers will get one minimum width one higher than would be required for a UInt
return the smallest number of bits required to hold the given number in an SInt Note: positive numbers will get one minimum width one higher than would be required for a UInt
number to find width for
minimum required bits for an SInt
return the smallest number of bits required to hold the given number in an UInt
return the smallest number of bits required to hold the given number in an UInt
number to find width for
minimum required bits for an SInt
(Since version 1.3.x) Use TreadleStage instead
(Since version 1.3.x) Remove refernences, this has no effect