trait ChiselSim extends ControlAPI with PeekPokeAPI with SimulatorAPI
A trait that provides the minimal set of ChiselSim APIs.
Example usage:
import chisel3.simulator.ChiselSim class Foo extends ChiselSim { /** This has access to all ChiselSim APIs like `simulate`, `peek`, and `poke`. */ }
- Source
- package.scala
- See also
- Alphabetic
- By Inheritance
- ChiselSim
- SimulatorAPI
- PeekPokeAPI
- ControlAPI
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- def ->[B](y: B): (ChiselSim, B)
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def disableWaves(): Unit
Enable waveform dumping
Enable waveform dumping
This control function will disable waveforms from the moment it is applied. A simulator must be compiled with waveform dumping support for this to have an effect.
Example usage:
disableWaves()
- Definition Classes
- ControlAPI
- def enableWaves(): Unit
Enable waveform dumping
Enable waveform dumping
This control function will enable waveforms from the moment it is applied. A simulator must be compiled with waveform dumping support for this to have an effect.
Example usage:
enableWaves()
- Definition Classes
- ControlAPI
- def ensuring(cond: (ChiselSim) => Boolean, msg: => Any): ChiselSim
- def ensuring(cond: (ChiselSim) => Boolean): ChiselSim
- def ensuring(cond: Boolean, msg: => Any): ChiselSim
- def ensuring(cond: Boolean): ChiselSim
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def simulate[T <: Module](module: => T, chiselOpts: Array[String] = Array.empty, firtoolOpts: Array[String] = Array.empty, settings: Settings[T] = Settings.default[T], additionalResetCycles: Int = 0, subdirectory: Option[String] = None)(stimulus: (T) => Unit)(implicit hasSimulator: HasSimulator, testingDirectory: HasTestingDirectory, chiselOptsModifications: ChiselOptionsModifications, firtoolOptsModifications: FirtoolOptionsModifications, commonSettingsModifications: CommonSettingsModifications, backendSettingsModifications: BackendSettingsModifications): Unit
Simulate a Module using a standard initialization procedure.
Simulate a Module using a standard initialization procedure.
For details of the initialization procedure see ResetProcedure.
- module
the Chisel module to generate
- chiselOpts
command line options to pass to Chisel
- firtoolOpts
command line options to pass to firtool
- settings
ChiselSim-related settings used for simulation
- additionalResetCycles
a number of _additional_ cycles to assert reset for
- subdirectory
an optional subdirectory for the test. This will be a subdirectory under what is provided by
testingDirectory
.- stimulus
directed stimulus to use
- testingDirectory
a type class implementation that can be used to change the behavior of where files will be created
- Definition Classes
- SimulatorAPI
- Note
Take care when passing
chiselOpts
. The following options are set by default and if you set incompatible options, the simulation will fail.
- def simulateRaw[T <: RawModule](module: => T, chiselOpts: Array[String] = Array.empty, firtoolOpts: Array[String] = Array.empty, settings: Settings[T] = Settings.defaultRaw[T], subdirectory: Option[String] = None)(stimulus: (T) => Unit)(implicit hasSimulator: HasSimulator, testingDirectory: HasTestingDirectory, chiselOptsModifications: ChiselOptionsModifications, firtoolOptsModifications: FirtoolOptionsModifications, commonSettingsModifications: CommonSettingsModifications, backendSettingsModifications: BackendSettingsModifications): Unit
Simulate a RawModule without any initialization procedure.
Simulate a RawModule without any initialization procedure.
Use of this method is not advised when simulate can be used instead. This method may cause problems with certain simulators as it is up to the user to ensure that race conditions will not exist during the time zero and reset procedure.
- module
the Chisel module to generate
- chiselOpts
command line options to pass to Chisel
- firtoolOpts
command line options to pass to firtool
- settings
ChiselSim-related settings used for simulation
- subdirectory
an optional subdirectory for the test. This will be a subdirectory under what is provided by
testingDirectory
.- stimulus
directed stimulus to use
- testingDirectory
a type class implementation that can be used to change the behavior of where files will be created
- Definition Classes
- SimulatorAPI
- Note
Take care when passing
chiselOpts
. The following options are set by default and if you set incompatible options, the simulation will fail.
- def simulateTests[T <: RawModule with HasTests](module: => T, tests: Type, timeout: Int, chiselOpts: Array[String] = Array.empty, firtoolOpts: Array[String] = Array.empty, settings: Settings[TestHarness[T]] = Settings.defaultRaw[TestHarness[T]], additionalResetCycles: Int = 0, subdirectory: Option[String] = None)(implicit hasSimulator: HasSimulator, testingDirectory: HasTestingDirectory, chiselOptsModifications: ChiselOptionsModifications, firtoolOptsModifications: FirtoolOptionsModifications, commonSettingsModifications: CommonSettingsModifications, backendSettingsModifications: BackendSettingsModifications): Unit
Simulate the tests of a HasTests module.
Simulate the tests of a HasTests module.
- module
the Chisel module to generate
- timeout
number of cycles after which the test fails if unfinished
- chiselOpts
command line options to pass to Chisel
- firtoolOpts
command line options to pass to firtool
- settings
ChiselSim-related settings used for simulation
- additionalResetCycles
a number of _additional_ cycles to assert reset for
- subdirectory
an optional subdirectory for the test. This will be a subdirectory under what is provided by
testingDirectory
.- testingDirectory
a type class implementation that can be used to change the behavior of where files will be created
- Definition Classes
- SimulatorAPI
- Note
Take care when passing
chiselOpts
. The following options are set by default and if you set incompatible options, the simulation will fail.
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- implicit def toTestableBool(bool: Bool): TestableBool
- Definition Classes
- PeekPokeAPI
- implicit def toTestableClock(clock: Clock): TestableClock
- Definition Classes
- PeekPokeAPI
- implicit def toTestableData[T <: Data](data: T): TestableData[T]
- Definition Classes
- PeekPokeAPI
- implicit def toTestableEnum[T <: EnumType](data: T): TestableEnum[T]
- Definition Classes
- PeekPokeAPI
- implicit def toTestableRecord[T <: Record](record: T): TestableRecord[T]
- Definition Classes
- PeekPokeAPI
- implicit def toTestableReset(reset: Reset): TestableReset
- Definition Classes
- PeekPokeAPI
- implicit def toTestableSInt(sint: SInt): TestableSInt
- Definition Classes
- PeekPokeAPI
- implicit def toTestableUInt(uint: UInt): TestableUInt
- Definition Classes
- PeekPokeAPI
- implicit def toTestableVec[T <: Data](vec: Vec[T]): TestableVec[T]
- Definition Classes
- PeekPokeAPI
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- 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()
Deprecated Value Members
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from ChiselSim toStringFormat[ChiselSim] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.12.16) Use
formatString.format(value)
instead ofvalue.formatted(formatString)
, or use thef""
string interpolator. In Java 15 and later,formatted
resolves to the new method in String which has reversed parameters.
- def →[B](y: B): (ChiselSim, B)
- Implicit
- This member is added by an implicit conversion from ChiselSim toArrowAssoc[ChiselSim] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->
instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.
This is the documentation for Chisel.
Package structure
The chisel3 package presents the public API of Chisel. It contains the concrete core types
UInt
,SInt
,Bool
,Clock
, andReg
, the abstract typesBits
,Aggregate
, andData
, and the aggregate typesBundle
andVec
.The Chisel package is a compatibility layer that attempts to provide chisel2 compatibility in chisel3.
Utility objects and methods are found in the
util
package.The
testers
package defines the basic interface for chisel testers.