From 14b9ead2ee028ba977e9c61eff962380d4e87d30 Mon Sep 17 00:00:00 2001 From: Schuyler Eldridge Date: Fri, 3 May 2019 21:00:52 -0400 Subject: Add register init to RemoveWires dependencies (#1078) Signed-off-by: Schuyler Eldridge --- src/main/scala/firrtl/transforms/RemoveWires.scala | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/main') diff --git a/src/main/scala/firrtl/transforms/RemoveWires.scala b/src/main/scala/firrtl/transforms/RemoveWires.scala index da79be8e..60f6cc31 100644 --- a/src/main/scala/firrtl/transforms/RemoveWires.scala +++ b/src/main/scala/firrtl/transforms/RemoveWires.scala @@ -90,11 +90,12 @@ class RemoveWires extends Transform { wireInfo(WRef(wire)) = wire.info case reg: DefRegister => val resetDep = reg.reset.tpe match { - case AsyncResetType => reg.reset :: Nil - case _ => Nil + case AsyncResetType => Some(reg.reset) + case _ => None } + val initDep = Some(reg.init).filter(we(WRef(reg)) != we(_)) // Dependency exists IF reg doesn't init itself regInfo(we(WRef(reg))) = reg - netlist(we(WRef(reg))) = (reg.clock :: resetDep, reg.info) + netlist(we(WRef(reg))) = (Seq(reg.clock) ++ resetDep ++ initDep, reg.info) case decl: IsDeclaration => // Keep all declarations except for nodes and non-Analog wires decls += decl case con @ Connect(cinfo, lhs, rhs) => kind(lhs) match { -- cgit v1.2.3