From bc51e609cbe00948cf0cae4d58ff36616ff85679 Mon Sep 17 00:00:00 2001 From: Eddie Hung Date: Tue, 17 Mar 2020 10:22:16 -0700 Subject: [PATCH] kernel: fix DeleteWireWorker --- kernel/rtlil.cc | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/kernel/rtlil.cc b/kernel/rtlil.cc index 102b30241..79eb2a762 100644 --- a/kernel/rtlil.cc +++ b/kernel/rtlil.cc @@ -1586,6 +1586,7 @@ void RTLIL::Module::remove(const pool &wires) const pool *wires_p; void operator()(RTLIL::SigSpec &sig) { + sig.pack(); for (auto &c : sig.chunks_) if (c.wire != NULL && wires_p->count(c.wire)) { c.wire = module->addWire(NEW_ID, c.width); @@ -1599,16 +1600,10 @@ void RTLIL::Module::remove(const pool &wires) rhs.unpack(); for (int i = 0; i < GetSize(lhs); i++) { RTLIL::SigBit &lhs_bit = lhs.bits_[i]; - if (lhs_bit.wire != nullptr && wires_p->count(lhs_bit.wire)) { - lhs_bit.wire = module->addWire(NEW_ID); - lhs_bit.offset = 0; - continue; - } RTLIL::SigBit &rhs_bit = rhs.bits_[i]; - if (rhs_bit.wire != nullptr && wires_p->count(rhs_bit.wire)) { - rhs_bit.wire = module->addWire(NEW_ID); - rhs_bit.offset = 0; - continue; + if ((lhs_bit.wire != nullptr && wires_p->count(lhs_bit.wire)) || (rhs_bit.wire != nullptr && wires_p->count(rhs_bit.wire))) { + lhs_bit = State::Sx; + rhs_bit = State::Sx; } } } -- 2.30.2