From: whitequark Date: Sat, 17 Jul 2021 14:23:57 +0000 (+0000) Subject: cxxrtl: treat internal wires used only for debug as constants. X-Git-Tag: yosys-0.10~96^2 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4aa65f406f3f793978278454fe8d8000a442e2f2;p=yosys.git cxxrtl: treat internal wires used only for debug as constants. Fixes #2739 (again). --- diff --git a/backends/cxxrtl/cxxrtl_backend.cc b/backends/cxxrtl/cxxrtl_backend.cc index 7ff344e66..56305258a 100644 --- a/backends/cxxrtl/cxxrtl_backend.cc +++ b/backends/cxxrtl/cxxrtl_backend.cc @@ -2881,6 +2881,12 @@ struct CxxrtlWorker { debug_live_nodes.erase(node); } else if (wire_type.is_local()) { debug_wire_type = {WireType::LOCAL}; // wire not inlinable + } else if (wire_type.type == WireType::UNUSED) { + if (wire_init.count(wire)) { + debug_wire_type = {WireType::CONST, wire_init.at(wire)}; + } else { + debug_wire_type = {WireType::CONST, RTLIL::SigSpec(RTLIL::S0, wire->width)}; + } // wire never modified } else { log_assert(wire_type.is_member()); debug_wire_type = wire_type; // wire is a member