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.
- Source
- FirrtlTerp.scala
- Alphabetic
- By Inheritance
- FirrtlTerp
- SimpleLogger
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
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( ... ) @native()
- 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: Any): Boolean
- Definition Classes
- AnyRef → Any
- def evaluateCircuit(specificDependencies: Seq[String] = Seq()): Unit
- val evaluator: LoFirrtlExpressionEvaluator
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- 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()
- 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()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- 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(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
- def writeVCD(): Unit