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()
  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 finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  23. def flow(e: Expression): Flow
  24. def getAllRefs(expr: Expression): Seq[Reference]

    Finds all root References in a nested Expression

  25. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  26. 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

  27. 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

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

    Returns children Expressions of e

  29. def getLogger: Logger
    Definition Classes
    LazyLogging
  30. def getSIntWidth(s: BigInt): Int
  31. 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.

  32. def getUIntWidth(u: BigInt): Int
  33. def get_field(v: Type, s: String): Field
  34. def get_flow(p: Port): Flow
  35. def get_flow(s: Statement): Flow
  36. def get_info(s: Statement): Info
  37. def get_point(e: Expression): Int
  38. def get_size(t: Type): Int
  39. def get_valid_points(t1: Type, t2: Type, flip1: Orientation, flip2: Orientation): Seq[(Int, Int)]
  40. 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

  41. 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

  42. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  43. 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.

  44. 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

  45. def isBitExtract(expr: Expression): Boolean

    Returns true if Expression is a Bits PrimOp, false otherwise

  46. def isBitExtract(op: PrimOp): Boolean

    Returns true if PrimOp is a BitExtraction, false otherwise

  47. def isCast(expr: Expression): Boolean

    Returns true if Expression is a casting PrimOp, false otherwise

  48. def isCast(op: PrimOp): Boolean

    Returns true if PrimOp is a cast, false otherwise

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

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

  51. def isTemp(str: String): Boolean
  52. def kind(e: Expression): Kind
  53. val logger: Logger
    Attributes
    protected
    Definition Classes
    LazyLogging
  54. 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

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

    Adds a root reference to some SubField/SubIndex chain

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

    Builds a Mux expression with the correct type.

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

    Provide a nice name to create a temporary *

  67. 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.

  68. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  69. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  70. val one: UIntLiteral
  71. 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.

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

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

  73. def pow_minus_one(a: BigInt, b: BigInt): BigInt
  74. 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

  75. def squashEmpty(s: Statement): Statement

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

  76. def stmtToType(s: Statement): BundleType

    Creates a Bundle Type from a Stmt

  77. def sub_type(v: Type): Type
  78. def swap(f: Orientation): Orientation
  79. def swap(d: Direction): Direction
  80. def swap(g: Flow): Flow
  81. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  82. 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.

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

Inherited from LazyLogging

Inherited from AnyRef

Inherited from Any

Ungrouped