class FirrtlTerp extends SimpleLogger
This is the Firrtl interpreter. It is the top level control engine that controls the simulation of a circuit running.
It coordinates updating of the circuit's inputs (other elements, nodes, registers, etc can be forced to values) and querying the circuits outputs (or optionally other circuit components)
This mainly involves updating of a circuit state instance by using a expression evaluator on a dependency graph.
- Annotations
- @deprecated
- Deprecated
(Since version firrtl-interpreter 1.5.0) firrtl-interpreter is end-of-life. Use treadle instead.
- Source
- FirrtlTerp.scala
- Alphabetic
- By Inheritance
- FirrtlTerp
- SimpleLogger
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new FirrtlTerp(ast: Circuit, optionsManager: HasInterpreterSuite)
- ast
the circuit to be simulated
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
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- val ast: Circuit
- val blackBoxFactories: Seq[BlackBoxFactory]
- def checkStopped(attemptedCommand: String = "command"): Boolean
- var circuitState: CircuitState
- def clearStop(): Unit
Once a stop has occurred, the interpreter will not allow pokes until the stop has been cleared
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- def cycle(showState: Boolean = false): Unit
- val dependencyGraph: DependencyGraph
- def disableVCD(): Unit
- def doCycles(n: Int): Unit
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def evaluateCircuit(specificDependencies: Seq[String] = Seq()): Unit
- val evaluator: LoFirrtlExpressionEvaluator
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def getMemory(memoryName: String, index: Int): BigInt
- def getMemoryConcrete(memoryName: String, index: Int): Concrete
- def getSpecifiedValue(name: String): Concrete
- def getValue(name: String): Concrete
- def hasInput(name: String): Boolean
- def hasOutput(name: String): Boolean
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- val interpreterOptions: InterpreterOptions
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- var lastStopResult: Option[Int]
- def log(msg: => String): Unit
- Definition Classes
- SimpleLogger
- val loweredAst: Circuit
- def makeConcreteValue(name: String, value: BigInt, poisoned: Boolean = false): Concrete
Creates a concrete based on current circuit and the value and poisoned state It uses the type of any existing value for name and if it can't find that it looks up the type in the dependency graph this handles setting SInts with negative values, from positive bigInts when sized appropriately
Creates a concrete based on current circuit and the value and poisoned state It uses the type of any existing value for name and if it can't find that it looks up the type in the dependency graph this handles setting SInts with negative values, from positive bigInts when sized appropriately
- name
name of value to set
- value
new value
- returns
the concrete value that was derived from type and value
- def makeVCDLogger(fileName: String, showUnderscored: Boolean): Unit
- val monitorManagerOpt: Option[MonitorManager]
- 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()
- val optionsManager: HasInterpreterSuite
- def reEvaluate(name: String): Unit
- def setMemory(memoryName: String, index: Int, value: BigInt): Unit
- def setValue(name: String, value: Concrete, force: Boolean = true, registerPoke: Boolean = false): Concrete
- def setValueWithBigInt(name: String, value: BigInt, force: Boolean = true, registerPoke: Boolean = false): Concrete
Update the circuit state with the supplied information
Update the circuit state with the supplied information
- name
name of value to set
- value
new value
- force
allows setting components other than top level inputs
- registerPoke
changes which side of a register is poked
- returns
the concrete value that was derived from type and value
- def setVerbose(value: Boolean): Unit
turns on evaluator debugging.
turns on evaluator debugging. Can make output quite verbose.
- value
The desired verbose setting
- Definition Classes
- FirrtlTerp → SimpleLogger
- def stopResult: Int
- def stopped: Boolean
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- val timer: Timer
- def toString(): String
- Definition Classes
- AnyRef → Any
- val verbose: Boolean
- Definition Classes
- SimpleLogger
- 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])
- def writeVCD(): Unit
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated