From a84956afa36dbe29e87dd6c2168848a426ec42d3 Mon Sep 17 00:00:00 2001 From: Andrey Ayupov Date: Fri, 4 Aug 2017 11:02:41 -0700 Subject: bug fix for cases when we want to flatten a module in which a module is instantiated multiple times (#634) --- src/main/scala/firrtl/transforms/Flatten.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/main') diff --git a/src/main/scala/firrtl/transforms/Flatten.scala b/src/main/scala/firrtl/transforms/Flatten.scala index 748ea00c..cc40c569 100644 --- a/src/main/scala/firrtl/transforms/Flatten.scala +++ b/src/main/scala/firrtl/transforms/Flatten.scala @@ -65,7 +65,7 @@ class Flatten extends Transform { case WDefInstance(info, instName, moduleName, instTpe) => if (insts.contains(ComponentName(instName, ModuleName(parent.name, CircuitName(c.main)))) || mods.contains(ModuleName(parent.name, CircuitName(c.main)))) { - val newModName = nsp.newName(moduleName+"_TO_FLATTEN") + val newModName = if (seedMods.contains(moduleName)) seedMods(moduleName) else nsp.newName(moduleName+"_TO_FLATTEN") seedMods += moduleName -> newModName WDefInstance(info, instName, newModName, instTpe) } else x @@ -85,7 +85,7 @@ class Flatten extends Transform { def dupMod(x: Statement): Statement = x match { case _: Block => x map dupMod case WDefInstance(info, instName, moduleName, instTpe) => - val newModName = nsp.newName(moduleName+"_TO_FLATTEN") + val newModName = if (replMods.contains(moduleName)) replMods(moduleName) else nsp.newName(moduleName+"_TO_FLATTEN") replMods += moduleName -> newModName WDefInstance(info, instName, newModName, instTpe) case _ => x -- cgit v1.2.3