Packages

o

firrtl

Utils

object Utils extends LazyLogging

Source
Utils.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Utils
  2. LazyLogging
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. case class DeclarationNotFoundException(msg: String) extends FirrtlUserException with Product with Serializable
  2. type NodeMap = HashMap[String, Expression]

    Maps node name to value

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. val BoolType: UIntType
  5. def and(e1: Expression, e2: Expression): Expression

    Applies the firrtl And primop.

    Applies the firrtl And primop. Automatically constant propagates when one of the expressions is True or False.

  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native() @HotSpotIntrinsicCandidate()
  8. def combine(circuits: Seq[Circuit]): Circuit

    Combines several separate circuit modules (typically emitted by -e or -p compiler options) into a single circuit

  9. def create_exps(e: Expression): Seq[Expression]
  10. def create_exps(n: String, t: Type): Seq[Expression]
  11. def dec2string(v: BigDecimal): String
  12. def diff(e1: Expression, e2: Expression): Seq[(Expression, Expression)]

    Walks two expression trees and returns a sequence of tuples of where they differ

  13. def distinctBy[A, B](xs: List[A])(f: (A) ⇒ B): List[A]

    Selects all the elements of this list ignoring the duplicates as determined by == after applying the transforming function f

    Selects all the elements of this list ignoring the duplicates as determined by == after applying the transforming function f

    Note

    In Scala Standard Library starting in 2.13

  14. def eq(e1: Expression, e2: Expression): Expression

    Applies the firrtl Eq primop.

  15. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  17. def error(str: String, cause: Throwable = null): Nothing
  18. def expandPrefixes(name: String, prefixDelim: String = "_"): Seq[String]

    Expand a name into its prefixes, e.g., 'foo_barbaz' becomes 'Seq[foo_, foo_bar, foo_barbaz]'. This can be used to produce better names when generating prefix unique names.

    Expand a name into its prefixes, e.g., 'foo_barbaz' becomes 'Seq[foo_, foo_bar, foo_barbaz]'. This can be used to produce better names when generating prefix unique names.

    name

    a signal name

    prefixDelim

    a prefix delimiter (default is "_")

    returns

    the signal name and any prefixes

  19. def expandRef(e: Expression): Seq[Expression]

    Like create_exps, but returns intermediate Expressions as well

  20. def field_flip(v: Type, s: String): Orientation
  21. def field_type(v: Type, s: String): Type
  22. def flow(e: Expression): Flow
  23. def getAllRefs(expr: Expression): Seq[Reference]

    Finds all root References in a nested Expression

  24. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  25. def getDeclaration(m: Module, expr: Expression): IsDeclaration

    Gets the root declaration of an expression

    Gets the root declaration of an expression

    m

    the firrtl.ir.Module to search

    expr

    the firrtl.ir.Expression that refers to some declaration

    returns

    the firrtl.ir.IsDeclaration of expr

    Exceptions thrown

    DeclarationNotFoundException if no declaration of expr is found

  26. def getGroundZero(tpe: GroundType): Expression

    Returns an Expression equal to zero for a given GroundType

    Returns an Expression equal to zero for a given GroundType

    Note

    Does not support AnalogType nor IntervalType

  27. def getKids(e: Expression): Seq[Expression]

    Returns children Expressions of e

  28. def getLogger: Logger
    Definition Classes
    LazyLogging
  29. def getSIntWidth(s: BigInt): Int
  30. def getThrowable(maybeException: Option[Throwable], first: Boolean): Throwable

    Unwind the causal chain until we hit the initial exception (which may be the first).

    Unwind the causal chain until we hit the initial exception (which may be the first).

    maybeException

    - possible exception triggering the error,

    first

    - true if we want the first (eldest) exception in the chain,

    returns

    first or last Throwable in the chain.

  31. def getUIntWidth(u: BigInt): Int
  32. def get_field(v: Type, s: String): Field
  33. def get_flow(p: Port): Flow
  34. def get_flow(s: Statement): Flow
  35. def get_info(s: Statement): Info
  36. def get_point(e: Expression): Int
  37. def get_size(t: Type): Int
  38. def get_valid_points(t1: Type, t2: Type, flip1: Orientation, flip2: Orientation): Seq[(Int, Int)]
  39. def groupByIntoSeq[A, K](xs: Iterable[A])(f: (A) ⇒ K): Seq[(K, Seq[A])]

    Similar to Seq.groupBy except that it preserves ordering of elements within each group

  40. def hasFlip(t: Type): Boolean

    Returns true if t, or any subtype, contains a flipped field

    Returns true if t, or any subtype, contains a flipped field

    t

    type firrtl.ir.Type to be checked

    returns

    if t contains firrtl.ir.Flip

  41. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  42. def implies(e1: Expression, e2: Expression): Expression

    implies(e1, e2) = or(not(e1), e2).

    implies(e1, e2) = or(not(e1), e2). Automatically constant propagates when one of the expressions is True or False.

  43. def inline(nodeMap: NodeMap, stop: (String) ⇒ Boolean = x: String => false)(e: Expression): Expression

    Returns an inlined expression (replacing node references with values), stopping on a stopping condition or until the reference is not a node

  44. def isBitExtract(expr: Expression): Boolean

    Returns true if Expression is a Bits PrimOp, false otherwise

  45. def isBitExtract(op: PrimOp): Boolean

    Returns true if PrimOp is a BitExtraction, false otherwise

  46. def isCast(expr: Expression): Boolean

    Returns true if Expression is a casting PrimOp, false otherwise

  47. def isCast(op: PrimOp): Boolean

    Returns true if PrimOp is a cast, false otherwise

  48. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  49. def isLiteral(e: Expression): Boolean

    Returns true iff the expression is a Literal or a Literal cast to a different type.

  50. def isTemp(str: String): Boolean
  51. def kind(e: Expression): Kind
  52. val logger: Logger
    Attributes
    protected
    Definition Classes
    LazyLogging
  53. def maskBigInt(value: BigInt, width: Int): BigInt

    Returns the value masked with the width.

    Returns the value masked with the width.

    This supports truncating negative values as well as values that are too wide for the width

  54. def max(a: BigInt, b: BigInt): BigInt
  55. def mergeRef(root: Expression, body: Expression): Expression

    Adds a root reference to some SubField/SubIndex chain

  56. def min(a: BigInt, b: BigInt): BigInt
  57. def module_type(m: DefModule): BundleType
  58. def mux(cond: Expression, tval: Expression, fval: Expression): Expression

    Builds a Mux expression with the correct type.

  59. def mux_type(t1: Type, t2: Type): Type
  60. def mux_type(e1: Expression, e2: Expression): Type
  61. def mux_type_and_widths(t1: Type, t2: Type): Type
  62. def mux_type_and_widths(e1: Expression, e2: Expression): Type
  63. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  64. def niceName(depth: Int)(e: Expression): String
  65. def niceName(e: Expression): String

    Provide a nice name to create a temporary *

  66. def not(e: Expression): Expression

    Applies the firrtl Not primop.

    Applies the firrtl Not primop. Automatically constant propagates when the expressions is True or False.

  67. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  68. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  69. val one: UIntLiteral
  70. def or(e1: Expression, e2: Expression): Expression

    Applies the firrtl Or primop.

    Applies the firrtl Or primop. Automatically constant propagates when one of the expressions is True or False.

  71. def orderAgnosticEquality(a: Circuit, b: Circuit): Boolean

    Checks if two circuits are equal regardless of their ordering of module definitions

  72. def pow_minus_one(a: BigInt, b: BigInt): BigInt
  73. def splitRef(e: Expression): (WRef, Expression)

    Splits an Expression into root Ref and tail

    Splits an Expression into root Ref and tail

    Examples:
    1. Given: SubField(SubIndex(SubField(Ref("a", UIntType(IntWidth(32))), "b"), 2), "c") Returns: (Ref("a"), SubField(SubIndex(Ref("b"), 2), "c")) a.b[2].c -> (a, b[2].c)

    2. ,
    3. Given: SubField(SubIndex(Ref("b"), 2), "c") Returns: (Ref("b"), SubField(SubIndex(EmptyExpression, 2), "c")) b[2].c -> (b, EMPTY[2].c)

    Note

    This function only supports RefLikeExpressions: Reference, SubField, SubIndex, and SubAccess

  74. def squashEmpty(s: Statement): Statement

    Removes all firrtl.ir.EmptyStmt statements and condenses firrtl.ir.Block statements.

  75. def stmtToType(s: Statement): BundleType

    Creates a Bundle Type from a Stmt

  76. def sub_type(v: Type): Type
  77. def swap(f: Orientation): Orientation
  78. def swap(d: Direction): Direction
  79. def swap(g: Flow): Flow
  80. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  81. def throwInternalError(message: String = "", exception: Option[Exception] = None): Nothing

    Throw an internal error, possibly due to an exception.

    Throw an internal error, possibly due to an exception.

    message

    - possible string to emit,

    exception

    - possible exception triggering the error.

  82. def time[R](block: ⇒ R): (Double, R)
  83. def times(f1: Orientation, f2: Orientation): Orientation
  84. def times(flip: Orientation, g: Flow): Flow
  85. def times(g: Flow, flip: Orientation): Flow
  86. def times(d: Direction, g: Flow): Direction
  87. def times(g: Flow, d: Direction): Direction
  88. def times(d: Direction, flip: Orientation): Direction
  89. def toString(): String
    Definition Classes
    AnyRef → Any
  90. def toTarget(main: String, module: String)(expression: Expression): ReferenceTarget
  91. implicit def toWrappedExpression(x: Expression): WrappedExpression
  92. def to_dir(o: Orientation): Direction
  93. def to_dir(g: Flow): Direction
  94. def to_flip(g: Flow): Orientation
  95. def to_flip(d: Direction): Orientation
  96. def to_flow(d: Direction): Flow
  97. def trim(v: BigDecimal): BigDecimal
  98. val v_keywords: Set[String]
  99. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  100. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  101. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  102. val zero: UIntLiteral
  103. object False
  104. object True

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] ) @Deprecated
    Deprecated

Inherited from LazyLogging

Inherited from AnyRef

Inherited from Any

Ungrouped