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
Type Members
- case class FailedExpectationException[T](observed: T, expected: T, message: String) extends RuntimeException with NoStackTrace with Product with Serializable
- Definition Classes
- PeekPokeAPI
- sealed trait SimulationData[T <: Data] extends AnyRef
- Definition Classes
- PeekPokeAPI
- implicit final class testableBool extends SimulationData[Bool]
- Definition Classes
- PeekPokeAPI
- implicit class testableClock extends AnyRef
- Definition Classes
- PeekPokeAPI
- implicit final class testableData[T <: Data] extends AnyRef
- Definition Classes
- PeekPokeAPI
- implicit final class testableSInt extends SimulationData[SInt]
- Definition Classes
- PeekPokeAPI
- implicit final class testableUInt extends SimulationData[UInt]
- Definition Classes
- PeekPokeAPI
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.
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- 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()
- object FailedExpectationException extends Serializable
- Definition Classes
- PeekPokeAPI
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.