diff options
| author | Donggyu | 2016-10-20 12:51:51 -0700 |
|---|---|---|
| committer | Angie Wang | 2016-10-20 12:51:51 -0700 |
| commit | bcf73fb70969e5629a693c18f1f2ee7b37f14a76 (patch) | |
| tree | 8b48cd871e43f9e746ff23ca9559ded79c0d7791 | |
| parent | dd5756adbecb942d5c448041e31cbc5931a730f6 (diff) | |
fix resolve memory reference (#341)
duplcate memory detection should be in circuit-level, not in module-level
| -rw-r--r-- | src/main/scala/firrtl/passes/memlib/ResolveMaskGranularity.scala | 3 | ||||
| -rw-r--r-- | src/main/scala/firrtl/passes/memlib/ResolveMemoryReference.scala | 6 |
2 files changed, 4 insertions, 5 deletions
diff --git a/src/main/scala/firrtl/passes/memlib/ResolveMaskGranularity.scala b/src/main/scala/firrtl/passes/memlib/ResolveMaskGranularity.scala index a8ff9fe3..53d7234f 100644 --- a/src/main/scala/firrtl/passes/memlib/ResolveMaskGranularity.scala +++ b/src/main/scala/firrtl/passes/memlib/ResolveMaskGranularity.scala @@ -77,7 +77,8 @@ object AnalysisUtils { /** Checks whether the two memories are equivalent in all respects except name */ - def eqMems(a: DefAnnotatedMemory, b: DefAnnotatedMemory) = a == b.copy(name = a.name) + def eqMems(a: DefAnnotatedMemory, b: DefAnnotatedMemory) = + a == b.copy(info = a.info, name = a.name, memRef = a.memRef) } /** Determines if a write mask is needed (wmode/en and wmask are equivalent). diff --git a/src/main/scala/firrtl/passes/memlib/ResolveMemoryReference.scala b/src/main/scala/firrtl/passes/memlib/ResolveMemoryReference.scala index 783c179f..108f6fd4 100644 --- a/src/main/scala/firrtl/passes/memlib/ResolveMemoryReference.scala +++ b/src/main/scala/firrtl/passes/memlib/ResolveMemoryReference.scala @@ -29,10 +29,8 @@ object ResolveMemoryReference extends Pass { case s => s map updateMemStmts(uniqueMems) } - def updateMemMods(m: DefModule) = { + def run(c: Circuit) = { val uniqueMems = new AnnotatedMemories - (m map updateMemStmts(uniqueMems)) + c copy (modules = c.modules map (_ map updateMemStmts(uniqueMems))) } - - def run(c: Circuit) = c copy (modules = c.modules map updateMemMods) } |
