trait ChiselSim extends HasCliOptions with HasConfigMap with ChiselOpts with EmitVcd with FirtoolOpts with TestingDirectory with simulator.ChiselSim
A trait that provides ChiselSim APIs and integration with Scalatest.
Example usage:
import chisel3.simulator.scalatestChiselSim import org.scalatest.funspec.AnyFunSpec import org.scalatest.matches.should.Matchers class Foo extends AnyFunSpec with Matchers with ChiselSim { /** This has access to all ChiselSim APIs like `simulate`, `peek`, and `poke`. */ }
- Self Type
- ChiselSim with TestSuite
- Source
- package.scala
- See also
- Alphabetic
- By Inheritance
- ChiselSim
- ChiselSim
- SimulatorAPI
- PeekPokeAPI
- ControlAPI
- TestingDirectory
- FirtoolOpts
- EmitVcd
- ChiselOpts
- HasCliOptions
- HasConfigMap
- TestSuiteMixin
- SuiteMixin
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def expectedTestCount(filter: Filter): Int
- Definition Classes
- SuiteMixin
- abstract def nestedSuites: IndexedSeq[Suite]
- Definition Classes
- SuiteMixin
- abstract def rerunner: Option[String]
- Definition Classes
- SuiteMixin
- abstract def run(testName: Option[String], args: Args): Status
- Definition Classes
- SuiteMixin
- abstract def runNestedSuites(args: Args): Status
- Attributes
- protected
- Definition Classes
- SuiteMixin
- abstract def runTest(testName: String, args: Args): Status
- Attributes
- protected
- Definition Classes
- SuiteMixin
- abstract def runTests(testName: Option[String], args: Args): Status
- Attributes
- protected
- Definition Classes
- SuiteMixin
- abstract def suiteId: String
- Definition Classes
- SuiteMixin
- abstract def suiteName: String
- Definition Classes
- SuiteMixin
- abstract def tags: Map[String, Set[String]]
- Definition Classes
- SuiteMixin
- abstract def testDataFor(testName: String, theConfigMap: ConfigMap): TestData
- Definition Classes
- SuiteMixin
- abstract def testNames: Set[String]
- Definition Classes
- SuiteMixin
- abstract val styleName: String
- Definition Classes
- SuiteMixin
- Annotations
- @deprecated
- Deprecated
(Since version 3.1.0) The styleName lifecycle method has been deprecated and will be removed in a future version of ScalaTest with no replacement.
Concrete 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 addOption(option: CliOption[_]): Unit
- Definition Classes
- HasCliOptions
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- implicit def backendSettingsModifications: BackendSettingsModifications
- Definition Classes
- HasCliOptions
- def buildDir: Path
Return the name of the root test directory.
Return the name of the root test directory.
For different behavior, please override this in your test suite.
- Definition Classes
- TestingDirectory
- implicit def chiselOptionsModifications: ChiselOptionsModifications
- Definition Classes
- HasCliOptions
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- implicit def commonSettingsModifications: CommonSettingsModifications
- Definition Classes
- HasCliOptions
- def configMap: ConfigMap
Return the config map which contains all command line options passed to Scalatest.
Return the config map which contains all command line options passed to Scalatest.
This is only valid during a test. It will be
None
if used outside a test.- Definition Classes
- HasConfigMap
- Exceptions thrown
RuntimeException
if called outside a Scalatest test
- 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])
- implicit def firtoolOptionsModifications: FirtoolOptionsModifications
- Definition Classes
- HasCliOptions
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def getOption[A](name: String): Option[A]
- Definition Classes
- HasCliOptions
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- implicit final def implementation: HasTestingDirectory
Implementaton of HasTestingDirectory which sets up the test directory for you based on settings which make sense in Scalatest.
Implementaton of HasTestingDirectory which sets up the test directory for you based on settings which make sense in Scalatest.
- Definition Classes
- TestingDirectory
- 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()
- def withFixture(test: (ChiselSim.this)#NoArgTest): Outcome
- Definition Classes
- TestingDirectory → TestSuiteMixin
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.