Deduplicate a Circuit
Deduplicate a Circuit
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
Deduplicates a circuit, and records renaming
Deduplicates a circuit, and records renaming
Circuit to dedup
Modules not to dedup
Deduped Circuit and corresponding RenameMap
Perform the transform and update annotations.
Perform the transform and update annotations.
Input Firrtl AST
A transformed Firrtl AST
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
Only use on legal Firrtl.
Specifically, the restriction of instance loops must have been checked, or else this pass can infinitely recurse