aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSchuyler Eldridge2019-10-08 14:03:14 -0400
committerSchuyler Eldridge2019-10-08 14:03:14 -0400
commit3e0abab81ef3e83425fc822e2a2dfa73fdb72ee3 (patch)
treee4adf99f722f3da7eb86614a70214e36687448b5
parent357eba4c2b1549de70843899b4dae7d657757d50 (diff)
Make TopWiringTransform idempotent
This changes TopWiringTransform to remove TopWiringAnnotations after it runs. Signed-off-by: Schuyler Eldridge <schuyler.eldridge@ibm.com>
-rw-r--r--src/main/scala/firrtl/transforms/TopWiring.scala8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/main/scala/firrtl/transforms/TopWiring.scala b/src/main/scala/firrtl/transforms/TopWiring.scala
index 65281382..fb6f73b4 100644
--- a/src/main/scala/firrtl/transforms/TopWiring.scala
+++ b/src/main/scala/firrtl/transforms/TopWiring.scala
@@ -261,7 +261,13 @@ class TopWiringTransform extends Transform {
val newCircuit = state.circuit.copy(modules = modulesx)
val fixedCircuit = fixupCircuit(newCircuit)
val mappings = sources(state.circuit.main).zipWithIndex
- (state.copy(circuit = fixedCircuit), mappings)
+
+ val annosx = state.annotations.filter {
+ case _: TopWiringAnnotation => false
+ case _ => true
+ }
+
+ (state.copy(circuit = fixedCircuit, annotations = annosx), mappings)
}
else { (state, List.empty) }
//Generate output files based on the mapping.