aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/firrtl/transforms/ConstantPropagation.scala2
-rw-r--r--src/test/scala/firrtlTests/ConstantPropagationTests.scala17
2 files changed, 18 insertions, 1 deletions
diff --git a/src/main/scala/firrtl/transforms/ConstantPropagation.scala b/src/main/scala/firrtl/transforms/ConstantPropagation.scala
index c417357b..60d9ac2c 100644
--- a/src/main/scala/firrtl/transforms/ConstantPropagation.scala
+++ b/src/main/scala/firrtl/transforms/ConstantPropagation.scala
@@ -347,7 +347,7 @@ class ConstantPropagation extends Transform {
// When propagating a reference, check if we want to keep the name that would be deleted
def propagateRef(lname: String, value: Expression): Unit = {
value match {
- case WRef(rname,_,_,_) if betterName(lname, rname) && !swapMap.contains(rname) =>
+ case WRef(rname,_,kind,_) if betterName(lname, rname) && !swapMap.contains(rname) && kind != PortKind =>
assert(!swapMap.contains(lname)) // <- Shouldn't be possible because lname is either a
// node declaration or the single connection to a wire or register
swapMap += (lname -> rname, rname -> lname)
diff --git a/src/test/scala/firrtlTests/ConstantPropagationTests.scala b/src/test/scala/firrtlTests/ConstantPropagationTests.scala
index c798ba37..19fe20c9 100644
--- a/src/test/scala/firrtlTests/ConstantPropagationTests.scala
+++ b/src/test/scala/firrtlTests/ConstantPropagationTests.scala
@@ -1030,4 +1030,21 @@ class ConstantPropagationIntegrationSpec extends LowTransformSpec {
|""".stripMargin
execute(input, check, Seq.empty)
}
+
+ "Temporary named port" should "not be declared as a node" in {
+ val input =
+ """circuit Top :
+ | module Top :
+ | input _T_61 : UInt<1>
+ | output z : UInt<1>
+ | node a = _T_61
+ | z <= a""".stripMargin
+ val check =
+ """circuit Top :
+ | module Top :
+ | input _T_61 : UInt<1>
+ | output z : UInt<1>
+ | z <= _T_61""".stripMargin
+ execute(input, check, Seq.empty)
+ }
}