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[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  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 finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  25. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  26. 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

  27. def getWidth(tpe: Type): IntWidth
  28. def hashCode(): Int
    Definition Classes
    AnyRef → Any
  29. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  30. var keyOrderInitialized: Boolean
  31. def log(message: ⇒ String): Unit
  32. def makeSIntValue(value: BigInt, intWidth: IntWidth): SIntLiteral
  33. def makeUIntValue(value: BigInt, intWidth: IntWidth): UIntLiteral
  34. 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

  35. def mathPrimitive(opCode: PrimOp, args: Seq[Expression], tpe: Type): Concrete
  36. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  37. final def notify(): Unit
    Definition Classes
    AnyRef
  38. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  39. def oneArgOps(opCode: PrimOp, args: Seq[Expression], parameters: Seq[BigInt], tpe: Type): Concrete
  40. val orderedKeysToResolve: ArrayBuffer[String]
  41. def paddingOp(opCode: PrimOp, args: Seq[Expression], parameters: Seq[BigInt], tpe: Type): Concrete
  42. def resolveDependencies(specificDependencies: Iterable[String]): Unit
  43. 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

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

    shifts number left

    shifts number left

    number

    number to shift

    size

    how many bits to shift

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

    shifts number right

    shifts number right

    number

    number to shift

    size

    how many bits to shift

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

Inherited from SimpleLogger

Inherited from AnyRef

Inherited from Any

Ungrouped