c

firrtl_interpreter

LoFirrtlExpressionEvaluator

class LoFirrtlExpressionEvaluator extends SimpleLogger

This is the evaluation engine for the FirrtlTerp it requires the previousState of the system

Source
LoFirrtlExpressionEvaluator.scala
Linear Supertypes
SimpleLogger, AnyRef, Any
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. LoFirrtlExpressionEvaluator
  2. SimpleLogger
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new LoFirrtlExpressionEvaluator(dependencyGraph: DependencyGraph, circuitState: CircuitState)

    circuitState

    the state of the system, should not be modified before all dependencies have been resolved

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. var allowCombinationalLoops: Boolean
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def binaryBitWise(opCode: PrimOp, args: Seq[Expression], tpe: Type): Concrete
  7. def bitOps(opCode: PrimOp, args: Seq[Expression], parameters: Seq[BigInt], tpe: Type): Concrete
  8. def bitSelectOp(opCode: PrimOp, args: Seq[Expression], parameters: Seq[BigInt], tpe: Type): Concrete
  9. def castingOp(opCode: PrimOp, args: Seq[Expression], tpe: Type): Concrete
  10. def checkPrints(): Unit
  11. def checkStops(): Option[Int]
  12. val circuitState: CircuitState
  13. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  14. def comparisonOp(opCode: PrimOp, args: Seq[Expression], tpe: Type): Concrete
  15. var defaultKeysToResolve: Array[String]
  16. val dependencyGraph: DependencyGraph
  17. def dynamicBitOps(opCode: PrimOp, args: Seq[Expression], parameters: Seq[BigInt], tpe: Type): Concrete
  18. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  19. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  20. def evaluate(expression: Expression, leftHandSideOption: Option[String] = None): Concrete

    evaluate expression, if this expression references an ephemeral value (wire or node) that has not been evaluated yet, recursively evaluate that reference first.

    evaluate expression, if this expression references an ephemeral value (wire or node) that has not been evaluated yet, recursively evaluate that reference first. LoFirrtl guarantees that there will be no loops here

    expression

    a LoFirrtl expression to evaluate

    returns

    the resulting Concrete Note: OpCodes here are double matched, once in main loop herein, then again in function suitable for that family of opCodes, it makes the code cleaner, I think, but may ultimately need to be inlined for performance

  21. var evaluateAll: Boolean
  22. val evaluationStack: ExpressionExecutionStack
  23. var exceptionCaught: Boolean
  24. def executeFormattedPrint(formatString: String, allArgs: Seq[Any]): String
  25. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  26. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  27. def getValue(key: String): Concrete

    get the value from the current circuit state, if it is dependent on something else we haven't computed yet.

    get the value from the current circuit state, if it is dependent on something else we haven't computed yet. resolve this new dependency first then pull it's value from the current state

    key

    the name of the assignable thing

  28. def getWidth(tpe: Type): IntWidth
  29. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  30. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  31. var keyOrderInitialized: Boolean
  32. def log(message: ⇒ String): Unit
  33. def makeSIntValue(value: BigInt, intWidth: IntWidth): SIntLiteral
  34. def makeUIntValue(value: BigInt, intWidth: IntWidth): UIntLiteral
  35. def mask(number: BigInt, size: BigInt): BigInt

    mask off bits above size in a BigInt, uses modulo, constructing the modulo base on the size working around BigInt's shift by int requirement

    mask off bits above size in a BigInt, uses modulo, constructing the modulo base on the size working around BigInt's shift by int requirement

    number

    number to mask

    size

    how many bits to keep

  36. def mathPrimitive(opCode: PrimOp, args: Seq[Expression], tpe: Type): Concrete
  37. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  38. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  39. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  40. def oneArgOps(opCode: PrimOp, args: Seq[Expression], parameters: Seq[BigInt], tpe: Type): Concrete
  41. val orderedKeysToResolve: ArrayBuffer[String]
  42. def paddingOp(opCode: PrimOp, args: Seq[Expression], parameters: Seq[BigInt], tpe: Type): Concrete
  43. def resolveDependencies(specificDependencies: Iterable[String]): Unit
  44. def resolveRegister(key: String): Concrete

    when resolving registers dependency, consider the resetCondition to be the dependency if appropriate

    when resolving registers dependency, consider the resetCondition to be the dependency if appropriate

    key

    name of register

    returns

    new concrete value for register

  45. def setVerbose(value: Boolean = true): Unit
    Definition Classes
    SimpleLogger
  46. def shiftLeft(number: BigInt, size: BigInt): BigInt

    shifts number left

    shifts number left

    number

    number to shift

    size

    how many bits to shift

  47. def shiftRight(number: BigInt, size: BigInt): BigInt

    shifts number right

    shifts number right

    number

    number to shift

    size

    how many bits to shift

  48. def showStack(): Unit
  49. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  50. val timer: Timer
  51. var toResolve: HashSet[String]
  52. def toString(): String
    Definition Classes
    AnyRef → Any
  53. var useTopologicalSortedKeys: Boolean
  54. val verbose: Boolean
    Definition Classes
    SimpleLogger
  55. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  56. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  57. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from SimpleLogger

Inherited from AnyRef

Inherited from Any

Ungrouped