diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/scala/firrtl/passes/ZeroWidth.scala | 8 | ||||
| -rw-r--r-- | src/test/scala/firrtlTests/ZeroWidthTests.scala | 4 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/main/scala/firrtl/passes/ZeroWidth.scala b/src/main/scala/firrtl/passes/ZeroWidth.scala index 8638ea68..a50fdc16 100644 --- a/src/main/scala/firrtl/passes/ZeroWidth.scala +++ b/src/main/scala/firrtl/passes/ZeroWidth.scala @@ -36,18 +36,22 @@ object ZeroWidth extends Pass { (e map replaceType) map onExp } private def onStmt(s: Statement): Statement = s match { - case sx: IsDeclaration => + case (_: DefWire| _: DefRegister| _: DefMemory) => var removed = false def applyRemoveZero(t: Type): Type = removeZero(t) match { case None => removed = true; t case Some(tx) => tx } - val sxx = (sx map onExp) map applyRemoveZero + val sxx = (s map onExp) map applyRemoveZero if(removed) EmptyStmt else sxx case Connect(info, loc, exp) => removeZero(loc.tpe) match { case None => EmptyStmt case Some(t) => Connect(info, loc, onExp(exp)) } + case DefNode(info, name, value) => removeZero(value.tpe) match { + case None => EmptyStmt + case Some(t) => s + } case sx => sx map onStmt } private def onModule(m: DefModule): DefModule = { diff --git a/src/test/scala/firrtlTests/ZeroWidthTests.scala b/src/test/scala/firrtlTests/ZeroWidthTests.scala index 53fae73f..5cb7e532 100644 --- a/src/test/scala/firrtlTests/ZeroWidthTests.scala +++ b/src/test/scala/firrtlTests/ZeroWidthTests.scala @@ -93,7 +93,7 @@ class ZeroWidthTests extends FirrtlFlatSpec { | skip""".stripMargin (parse(exec(input)).serialize) should be (parse(check).serialize) } - "Node with <0>" should "be given zero" in { + "Node with <0>" should "be removed" in { val input = """circuit Top : | module Top : @@ -102,7 +102,7 @@ class ZeroWidthTests extends FirrtlFlatSpec { val check = """circuit Top : | module Top : - | node x = UInt(0)""".stripMargin + | skip""".stripMargin (parse(exec(input)).serialize) should be (parse(check).serialize) } } |
