cxxrtl: treat internal wires used only for debug as constants.

Fixes #2739 (again).
This commit is contained in:
whitequark 2021-07-17 14:23:57 +00:00
parent 2db4137514
commit 4aa65f406f
1 changed files with 6 additions and 0 deletions

View File

@ -2881,6 +2881,12 @@ struct CxxrtlWorker {
debug_live_nodes.erase(node); debug_live_nodes.erase(node);
} else if (wire_type.is_local()) { } else if (wire_type.is_local()) {
debug_wire_type = {WireType::LOCAL}; // wire not inlinable 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 { } else {
log_assert(wire_type.is_member()); log_assert(wire_type.is_member());
debug_wire_type = wire_type; // wire is a member debug_wire_type = wire_type; // wire is a member