Class/Object

firrtl_interpreter

FirrtlTerp

Related Docs: object FirrtlTerp | package firrtl_interpreter

Permalink

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
Linear Supertypes
SimpleLogger, AnyRef, Any
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. FirrtlTerp
  2. SimpleLogger
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new FirrtlTerp(ast: Circuit, interpreterOptions: InterpreterOptions)

    Permalink

    ast

    the circuit to be simulated

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. val ast: Circuit

    Permalink

    the circuit to be simulated

  6. val blackBoxFactories: Seq[BlackBoxFactory]

    Permalink
  7. def checkStopped(attemptedCommand: String = "command"): Boolean

    Permalink
  8. var circuitState: CircuitState

    Permalink
  9. def clearStop(): Unit

    Permalink

    Once a stop has occured, the intepreter will not allow pokes until the stop has been cleared

  10. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  11. def cycle(showState: Boolean = false): Unit

    Permalink
  12. val dependencyGraph: DependencyGraph

    Permalink
  13. def disableVCD(): Unit

    Permalink
  14. def doCycles(n: Int): Unit

    Permalink
  15. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  16. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  17. def evaluateCircuit(specificDependencies: Seq[String] = Seq()): Unit

    Permalink
  18. val evaluator: LoFirrtlExpressionEvaluator

    Permalink
  19. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  20. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  21. def getSpecifiedValue(name: String): Concrete

    Permalink
  22. def getValue(name: String): Concrete

    Permalink
  23. def hasInput(name: String): Boolean

    Permalink
  24. def hasOutput(name: String): Boolean

    Permalink
  25. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  26. val interpreterOptions: InterpreterOptions

    Permalink
  27. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  28. var lastStopResult: Option[Int]

    Permalink
  29. def log(msg: ⇒ String): Unit

    Permalink
    Definition Classes
    SimpleLogger
  30. val loweredAst: Circuit

    Permalink
  31. def makeConcreteValue(name: String, value: BigInt, poisoned: Boolean = false): Concrete

    Permalink

    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

  32. def makeVCDLogger(fileName: String, showUnderscored: Boolean): Unit

    Permalink
  33. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  34. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  35. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  36. def reEvaluate(name: String): Unit

    Permalink
  37. def setValue(name: String, value: Concrete, force: Boolean = true, registerPoke: Boolean = false): Concrete

    Permalink
  38. def setValueWithBigInt(name: String, value: BigInt, force: Boolean = true, registerPoke: Boolean = false): Concrete

    Permalink

    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

  39. def setVerbose(value: Boolean): Unit

    Permalink

    turns on evaluator debugging.

    turns on evaluator debugging. Can make output quite verbose.

    value

    The desired verbose setting

    Definition Classes
    FirrtlTerpSimpleLogger
  40. def stopResult: Int

    Permalink
  41. def stopped: Boolean

    Permalink
  42. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  43. val timer: Timer

    Permalink
  44. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  45. var verbose: Boolean

    Permalink
    Definition Classes
    SimpleLogger
  46. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  47. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  48. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  49. def writeVCD(): Unit

    Permalink

Inherited from SimpleLogger

Inherited from AnyRef

Inherited from Any

Ungrouped