Perform the transform, encode renaming with RenameMap, and can delete annotations Called by runTransform.
Perform the transform, encode renaming with RenameMap, and can delete annotations Called by runTransform.
Input Firrtl AST
A transformed Firrtl AST
The firrtl.CircuitForm that this transform requires to operate on
The firrtl.CircuitForm that this transform requires to operate on
A convenience function useful for debugging and error messages
A convenience function useful for debugging and error messages
The firrtl.CircuitForm that this transform outputs
The firrtl.CircuitForm that this transform outputs
Returns a modified circuit and RenameMap containing the associated target remapping
Perform the transform and update annotations.
Perform the transform and update annotations.
Input Firrtl AST
A transformed Firrtl AST
A mathematical transform on some type
A mathematical transform on some type
an output object of the same type
Convenience method to get annotations relevant to this Transform
Convenience method to get annotations relevant to this Transform
The CircuitState form which to extract annotations
A collection of annotations
(Since version 1.1) Just collect the actual Annotation types the transform wants
For a set of non-local targets, modify the instance/module hierarchy of the circuit such that the paths in each non-local target can be removed
In other words, if targeting a specific instance of a module, duplicate that module with a unique name and instantiate the new module instead.
Consumes ResolvePaths
E.g. for non-local target A/b:B/c:C/d, rename the following A/b:B/c:C/d -> C_/d A/b:B/c:C -> B_/c:C_ A/b:B -> A/b:B_ B/x -> (B/x, B_/x) // where x is any reference in B C/x -> (C/x, C_/x) // where x is any reference in C