Maps node name to value
Walks two expression trees and returns a sequence of tuples of where they differ
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.
a signal name
a prefix delimiter (default is "_")
the signal name and any prefixes
Like create_exps, but returns intermediate Expressions as well
Gets the root declaration of an expression
Gets the root declaration of an expression
the firrtl.ir.Module to search
the firrtl.ir.Expression that refers to some declaration
the firrtl.ir.IsDeclaration of expr
DeclarationNotFoundException
if no declaration of expr
is found
Returns children Expressions of e
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).
- possible exception triggering the error,
- true if we want the first (eldest) exception in the chain,
first or last Throwable in the chain.
Returns true if t, or any subtype, contains a flipped field
Returns true if t, or any subtype, contains a flipped field
type firrtl.ir.Type to be checked
if t contains firrtl.ir.Flip
Indent the results of ir.FirrtlNode.serialize
Returns an inlined expression (replacing node references with values), stopping on a stopping condition or until the reference is not a node
Returns true if Expression is a Bits PrimOp, false otherwise
Returns true if PrimOp is a BitExtraction, false otherwise
Returns true if Expression is a casting PrimOp, false otherwise
Returns true if PrimOp is a cast, false otherwise
Adds a root reference to some SubField/SubIndex chain
Provide a nice name to create a temporary *
Splits an Expression into root Ref and tail
Splits an Expression into root Ref and tail
Given: SubField(SubIndex(Ref("b"), 2), "c") Returns: (Ref("b"), SubField(SubIndex(EmptyExpression, 2), "c")) b[2].c -> (b, EMPTY[2].c)
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)
This function only supports WRef, WSubField, and WSubIndex
Removes all firrtl.ir.EmptyStmt statements and condenses firrtl.ir.Block statements.
Throw an internal error, possibly due to an exception.
Throw an internal error, possibly due to an exception.
- possible string to emit,
- possible exception triggering the error.
(Since version ) see corresponding Javadoc for more information.
(Since version 1.2) Migrate from 'Gender' to 'Flow'. This method will be removed in 1.3
(Since version 1.2) get_flip is fundamentally slow, use to_flip(flow(expr))
(Since version 1.2) Migrate from 'Gender' to 'Flow'. This method will be removed in 1.3
(Since version 1.2) Migrate from 'Gender' to 'Flow'. This method will be removed in 1.3
(Since version 1.2) Migrate from 'Gender' to 'Flow. This method will be removed in 1.3