aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/passes/RemoveCHIRRTL.scala
diff options
context:
space:
mode:
authorDonggyu2016-11-05 21:23:14 -0700
committerGitHub2016-11-05 21:23:14 -0700
commite05ca2b2edb3b1d3fc191864ff31e2b5fc079b42 (patch)
tree39d1c02f347116f3f4fa45610030e6f0d078c233 /src/main/scala/firrtl/passes/RemoveCHIRRTL.scala
parent82da5e7903817b877bff3c07e09b0b7e9d009351 (diff)
Fix CHIRRTL bugs (#355)
* handle uninferred ports gracefully in RemoveCHIRRTL memory port directions are not inferred during CInferMDir if not being used, so handle them properly in RemoveCHIRRTL * fix CInferTypes
Diffstat (limited to 'src/main/scala/firrtl/passes/RemoveCHIRRTL.scala')
-rw-r--r--src/main/scala/firrtl/passes/RemoveCHIRRTL.scala2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/main/scala/firrtl/passes/RemoveCHIRRTL.scala b/src/main/scala/firrtl/passes/RemoveCHIRRTL.scala
index abd45f75..aae4ca80 100644
--- a/src/main/scala/firrtl/passes/RemoveCHIRRTL.scala
+++ b/src/main/scala/firrtl/passes/RemoveCHIRRTL.scala
@@ -52,6 +52,7 @@ object RemoveCHIRRTL extends Pass {
case MRead => p.readers += MPort(sx.name, sx.exps(1))
case MWrite => p.writers += MPort(sx.name, sx.exps(1))
case MReadWrite => p.readwriters += MPort(sx.name, sx.exps(1))
+ case MInfer => // direction may not be inferred if it's not being used
}
mports(sx.mem) = p
case _ =>
@@ -119,6 +120,7 @@ object RemoveCHIRRTL extends Pass {
raddrs(e.name) = SubField(SubField(Reference(sx.mem, ut), sx.name, ut), "en", ut)
case _ => ens += "en"
}
+ case MInfer => // do nothing if it's not being used
}
Block(
(addrs map (x => Connect(sx.info, SubField(SubField(Reference(sx.mem, ut), sx.name, ut), x, ut), sx.exps.head))) ++