diff options
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/scala/firrtl/passes/AnnotateMemMacros.scala | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/main/scala/firrtl/passes/AnnotateMemMacros.scala b/src/main/scala/firrtl/passes/AnnotateMemMacros.scala index af58c7c5..1d415529 100644 --- a/src/main/scala/firrtl/passes/AnnotateMemMacros.scala +++ b/src/main/scala/firrtl/passes/AnnotateMemMacros.scala @@ -45,7 +45,12 @@ object AnalysisUtils { // limitation: only works in a module (stops @ module inputs) // TODO: more thorough (i.e. a + 0 = a) def getConnectOrigin(connects: Map[String, Expression], node: String): Expression = { - if (connects contains node) getOrigin(connects, connects(node)) + if (connects contains node) { + val exp = connects(node) + // handles case when a node is connected to itself (connecting reg output back to input) + if (exp.serialize == node) exp + else getOrigin(connects, exp) + } else EmptyExpression } @@ -142,4 +147,4 @@ object AnnotateMemMacros extends Pass { } -// TODO: Add floorplan info? +// TODO: Add floorplan info?
\ No newline at end of file |
