diff options
| author | Donggyu | 2016-11-05 21:23:14 -0700 |
|---|---|---|
| committer | GitHub | 2016-11-05 21:23:14 -0700 |
| commit | e05ca2b2edb3b1d3fc191864ff31e2b5fc079b42 (patch) | |
| tree | 39d1c02f347116f3f4fa45610030e6f0d078c233 /src/main/scala/firrtl/passes/RemoveCHIRRTL.scala | |
| parent | 82da5e7903817b877bff3c07e09b0b7e9d009351 (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.scala | 2 |
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))) ++ |
