aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCatherine <whitequark@whitequark.org>2021-12-15 08:48:49 +0000
committerCatherine <whitequark@whitequark.org>2021-12-15 09:14:33 +0000
commit7f2ea7d222f159842e391d080a1b5bdc6c5a7006 (patch)
treee4e4bb64b165ee6a768a217984eb40a2dfb49fe3
parentb07ca8756a6ca4fafd725f008ac871a0e24d75e8 (diff)
downloadyosys-7f2ea7d222f159842e391d080a1b5bdc6c5a7006.tar.gz
yosys-7f2ea7d222f159842e391d080a1b5bdc6c5a7006.tar.bz2
yosys-7f2ea7d222f159842e391d080a1b5bdc6c5a7006.zip
cxxrtl: demote wires not inlinable only in debug_eval to locals.
Fixes #3112. Co-authored-by: Irides <irides@irides.network>
-rw-r--r--backends/cxxrtl/cxxrtl_backend.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/backends/cxxrtl/cxxrtl_backend.cc b/backends/cxxrtl/cxxrtl_backend.cc
index 6623e025e..ba11179c6 100644
--- a/backends/cxxrtl/cxxrtl_backend.cc
+++ b/backends/cxxrtl/cxxrtl_backend.cc
@@ -2888,15 +2888,16 @@ struct CxxrtlWorker {
debug_wire_type = {WireType::INLINE, node->cell}; // wire replaced with cell
break;
case FlowGraph::Node::Type::CONNECT:
- debug_wire_type = {WireType::INLINE, node->connect.second}; // wire replaced with sig
+ debug_wire_type = {WireType::INLINE, node->connect.second}; // wire replaced with sig
break;
default: continue;
}
debug_live_nodes.erase(node);
- } else if (wire_type.is_member() || wire_type.is_local()) {
+ } else if (wire_type.is_member() || wire_type.type == WireType::LOCAL) {
debug_wire_type = wire_type; // wire not inlinable
} else {
- log_assert(wire_type.type == WireType::UNUSED);
+ log_assert(wire_type.type == WireType::INLINE ||
+ wire_type.type == WireType::UNUSED);
if (flow.wire_comb_defs[wire].size() == 0) {
if (wire_init.count(wire)) { // wire never modified
debug_wire_type = {WireType::CONST, wire_init.at(wire)};