aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/scala/firrtl/passes/AnnotateMemMacros.scala9
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