object Utils extends LazyLogging
- Source
- Utils.scala
- Alphabetic
- By Inheritance
- Utils
- LazyLogging
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- case class DeclarationNotFoundException(msg: String) extends FirrtlUserException with Product with Serializable
-
type
NodeMap = HashMap[String, Expression]
Maps node name to value
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- val BoolType: UIntType
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
- def ceilLog2(x: BigInt): Int
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
- def create_exps(e: Expression): Seq[Expression]
- def create_exps(n: String, t: Type): Seq[Expression]
-
def
diff(e1: Expression, e2: Expression): Seq[(Expression, Expression)]
Walks two expression trees and returns a sequence of tuples of where they differ
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def error(str: String, cause: Throwable = null): Nothing
-
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
-
def
expandRef(e: Expression): Seq[Expression]
Like create_exps, but returns intermediate Expressions as well
- def field_flip(v: Type, s: String): Orientation
- def field_type(v: Type, s: String): Type
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
- def flow(e: Expression): Flow
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
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 ofexpr
is found
-
def
getKids(e: Expression): Seq[Expression]
Returns children Expressions of e
-
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.
- def get_field(v: Type, s: String): Field
- def get_flow(p: Port): Flow
- def get_flow(s: Statement): Flow
- def get_info(s: Statement): Info
- def get_point(e: Expression): Int
- def get_size(t: Type): Int
- def get_valid_points(t1: Type, t2: Type, flip1: Orientation, flip2: Orientation): Seq[(Int, Int)]
-
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
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
indent(str: String): String
Indent the results of ir.FirrtlNode.serialize
-
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
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def isTemp(str: String): Boolean
- def kind(e: Expression): Kind
-
val
logger: Logger
- Definition Classes
- LazyLogging
- def max(a: BigInt, b: BigInt): BigInt
-
def
mergeRef(root: Expression, body: Expression): Expression
Adds a root reference to some SubField/SubIndex chain
- def min(a: BigInt, b: BigInt): BigInt
- def module_type(m: DefModule): BundleType
- def mux_type(t1: Type, t2: Type): Type
- def mux_type(e1: Expression, e2: Expression): Type
- def mux_type_and_widths(t1: Type, t2: Type): Type
- def mux_type_and_widths(e1: Expression, e2: Expression): Type
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def niceName(depth: Int)(e: Expression): String
-
def
niceName(e: Expression): String
Provide a nice name to create a temporary *
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- val one: UIntLiteral
- def pow_minus_one(a: BigInt, b: BigInt): BigInt
-
def
splitRef(e: Expression): (WRef, Expression)
Splits an Expression into root Ref and tail
Splits an Expression into root Ref and tail
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)
, 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 WRef, WSubField, and WSubIndex
Examples: -
def
squashEmpty(s: Statement): Statement
Removes all firrtl.ir.EmptyStmt statements and condenses firrtl.ir.Block statements.
- def sub_type(v: Type): Type
- def swap(f: Orientation): Orientation
- def swap(d: Direction): Direction
- def swap(g: Flow): Flow
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
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.
- def time[R](block: ⇒ R): (Double, R)
- def times(f1: Orientation, f2: Orientation): Orientation
- def times(flip: Orientation, g: Flow): Flow
- def times(g: Flow, flip: Orientation): Flow
- def times(d: Direction, g: Flow): Direction
- def times(g: Flow, d: Direction): Direction
- def times(d: Direction, flip: Orientation): Direction
-
def
toString(): String
- Definition Classes
- AnyRef → Any
- def toTarget(main: String, module: String)(expression: Expression): ReferenceTarget
- implicit def toWrappedExpression(x: Expression): WrappedExpression
- def to_dir(g: Flow): Direction
- def to_flip(g: Flow): Orientation
- def to_flip(d: Direction): Orientation
- def to_flow(d: Direction): Flow
- val v_keywords: Set[String]
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
- val zero: UIntLiteral
Deprecated Value Members
-
def
gender(e: Expression): Gender
- Annotations
- @deprecated
- Deprecated
(Since version 1.2) Migrate from 'Gender' to 'Flow'. This method will be removed in 1.3
-
def
get_flip(t: Type, i: Int, f: Orientation): Orientation
- Annotations
- @deprecated
- Deprecated
(Since version 1.2) get_flip is fundamentally slow, use to_flip(flow(expr))
-
def
get_gender(p: Port): Gender
- Annotations
- @deprecated
- Deprecated
(Since version 1.2) Migrate from 'Gender' to 'Flow'. This method will be removed in 1.3
-
def
get_gender(s: Statement): Gender
- Annotations
- @deprecated
- Deprecated
(Since version 1.2) Migrate from 'Gender' to 'Flow'. This method will be removed in 1.3
-
def
to_gender(d: Direction): Gender
- Annotations
- @deprecated
- Deprecated
(Since version 1.2) Migrate from 'Gender' to 'Flow. This method will be removed in 1.3
This is the documentation for Firrtl.