aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/scala/firrtlTests/ConstantPropagationTests.scala40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/test/scala/firrtlTests/ConstantPropagationTests.scala b/src/test/scala/firrtlTests/ConstantPropagationTests.scala
index 079b4823..ca7daa17 100644
--- a/src/test/scala/firrtlTests/ConstantPropagationTests.scala
+++ b/src/test/scala/firrtlTests/ConstantPropagationTests.scala
@@ -971,4 +971,44 @@ class ConstantPropagationIntegrationSpec extends LowTransformSpec {
| z <= mux(c, a, b)""".stripMargin
execute(input, check, Seq.empty)
}
+
+ "Registers connected only to themselves" should "be replaced with zero" in {
+ val input =
+ """circuit Top :
+ | module Top :
+ | input clock : Clock
+ | output a : UInt<8>
+ | reg ra : UInt<8>, clock
+ | ra <= ra
+ | a <= ra
+ |""".stripMargin
+ val check =
+ """circuit Top :
+ | module Top :
+ | input clock : Clock
+ | output a : UInt<8>
+ | a <= UInt<8>(0)
+ |""".stripMargin
+ execute(input, check, Seq.empty)
+ }
+
+ "Registers connected only to themselves from constant propagation" should "be replaced with zero" in {
+ val input =
+ """circuit Top :
+ | module Top :
+ | input clock : Clock
+ | output a : UInt<8>
+ | reg ra : UInt<8>, clock
+ | ra <= or(ra, UInt(0))
+ | a <= ra
+ |""".stripMargin
+ val check =
+ """circuit Top :
+ | module Top :
+ | input clock : Clock
+ | output a : UInt<8>
+ | a <= UInt<8>(0)
+ |""".stripMargin
+ execute(input, check, Seq.empty)
+ }
}