aboutsummaryrefslogtreecommitdiffstats
path: root/backends/cxxrtl/cxxrtl_backend.cc
diff options
context:
space:
mode:
authorwhitequark <whitequark@whitequark.org>2021-07-17 14:23:57 +0000
committerwhitequark <whitequark@whitequark.org>2021-07-17 14:23:57 +0000
commit4aa65f406f3f793978278454fe8d8000a442e2f2 (patch)
tree4b1bd5b3058a53bec7a71d3a38a1d16a29b67f2b /backends/cxxrtl/cxxrtl_backend.cc
parent2db41375141dd8098edac134e09b962a5b0821ab (diff)
downloadyosys-4aa65f406f3f793978278454fe8d8000a442e2f2.tar.gz
yosys-4aa65f406f3f793978278454fe8d8000a442e2f2.tar.bz2
yosys-4aa65f406f3f793978278454fe8d8000a442e2f2.zip
cxxrtl: treat internal wires used only for debug as constants.
Fixes #2739 (again).
Diffstat (limited to 'backends/cxxrtl/cxxrtl_backend.cc')
-rw-r--r--backends/cxxrtl/cxxrtl_backend.cc6
1 files changed, 6 insertions, 0 deletions
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