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, optionsManager: HasInterpreterSuite)

    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 interpreter 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 getMemory(memoryName: String, index: Int): BigInt

    Permalink
  22. def getMemoryConcrete(memoryName: String, index: Int): Concrete

    Permalink
  23. def getSpecifiedValue(name: String): Concrete

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

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

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

    Permalink
  27. def hashCode(): Int

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

    Permalink
  29. final def isInstanceOf[T0]: Boolean

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

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

    Permalink
    Definition Classes
    SimpleLogger
  32. val loweredAst: Circuit

    Permalink
  33. 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

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

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

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

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

    Permalink
    Definition Classes
    AnyRef
  38. val optionsManager: HasInterpreterSuite

    Permalink
  39. def reEvaluate(name: String): Unit

    Permalink
  40. def setMemory(memoryName: String, index: Int, value: BigInt): Unit

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

    Permalink
  42. 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

  43. 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
  44. def stopResult: Int

    Permalink
  45. def stopped: Boolean

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

    Permalink
    Definition Classes
    AnyRef
  47. val timer: Timer

    Permalink
  48. def toString(): String

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

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

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

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

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

    Permalink

Inherited from SimpleLogger

Inherited from AnyRef

Inherited from Any

Ungrouped