mirror of
https://github.com/YosysHQ/yosys
synced 2025-06-07 06:33:24 +00:00
Merge pull request #2145 from whitequark/cxxrtl-splitnets
cxxrtl: handle multipart signals
This commit is contained in:
commit
dc6961f3d4
5 changed files with 156 additions and 67 deletions
|
@ -1627,18 +1627,21 @@ struct CxxrtlWorker {
|
|||
f << indent << "static const value<" << wire->width << "> const_" << mangle(wire) << " = ";
|
||||
dump_const(debug_const_wires[wire]);
|
||||
f << ";\n";
|
||||
f << indent << "items.emplace(path + " << escape_cxx_string(get_hdl_name(wire));
|
||||
f << ", debug_item(const_" << mangle(wire) << "));\n";
|
||||
f << indent << "items.add(path + " << escape_cxx_string(get_hdl_name(wire));
|
||||
f << ", debug_item(const_" << mangle(wire) << ", ";
|
||||
f << wire->start_offset << "));\n";
|
||||
count_const_wires++;
|
||||
} else if (debug_alias_wires.count(wire)) {
|
||||
// Alias of a member wire
|
||||
f << indent << "items.emplace(path + " << escape_cxx_string(get_hdl_name(wire));
|
||||
f << ", debug_item(debug_alias(), " << mangle(debug_alias_wires[wire]) << "));\n";
|
||||
f << indent << "items.add(path + " << escape_cxx_string(get_hdl_name(wire));
|
||||
f << ", debug_item(debug_alias(), " << mangle(debug_alias_wires[wire]) << ", ";
|
||||
f << wire->start_offset << "));\n";
|
||||
count_alias_wires++;
|
||||
} else if (!localized_wires.count(wire)) {
|
||||
// Member wire
|
||||
f << indent << "items.emplace(path + " << escape_cxx_string(get_hdl_name(wire));
|
||||
f << ", debug_item(" << mangle(wire) << "));\n";
|
||||
f << indent << "items.add(path + " << escape_cxx_string(get_hdl_name(wire));
|
||||
f << ", debug_item(" << mangle(wire) << ", ";
|
||||
f << wire->start_offset << "));\n";
|
||||
count_member_wires++;
|
||||
} else {
|
||||
count_skipped_wires++;
|
||||
|
@ -1647,8 +1650,9 @@ struct CxxrtlWorker {
|
|||
for (auto &memory_it : module->memories) {
|
||||
if (memory_it.first[0] != '\\')
|
||||
continue;
|
||||
f << indent << "items.emplace(path + " << escape_cxx_string(get_hdl_name(memory_it.second));
|
||||
f << ", debug_item(" << mangle(memory_it.second) << "));\n";
|
||||
f << indent << "items.add(path + " << escape_cxx_string(get_hdl_name(memory_it.second));
|
||||
f << ", debug_item(" << mangle(memory_it.second) << ", ";
|
||||
f << memory_it.second->start_offset << "));\n";
|
||||
}
|
||||
for (auto cell : module->cells()) {
|
||||
if (is_internal_cell(cell->type))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue