mirror of
https://github.com/YosysHQ/yosys
synced 2025-06-08 15:13:24 +00:00
Backends: More consistent usage of selections
Drop use_selection flag from Json and Jny Writers, instead they always operate on selections and if the write_* pass is called without -selected then it pushes the complete selection. rtlil_backend prints differently if it is dumping a portion or whole design, so push the complete selection inside of the dump if needed. Also update `Design::selected_modules()` error message for partially selected modules to match the existing error messages that it replaces.
This commit is contained in:
parent
24e54d942a
commit
d84c3a9eac
7 changed files with 78 additions and 101 deletions
|
@ -2590,17 +2590,14 @@ struct VerilogBackend : public Backend {
|
|||
design->sort();
|
||||
|
||||
*f << stringf("/* Generated by %s */\n", yosys_version_str);
|
||||
for (auto module : design->modules()) {
|
||||
if (!selected) design->push_complete_selection();
|
||||
for (auto module : design->selected_modules(RTLIL::SELECT_WHOLE_CMDERR, RTLIL::SB_ALL)) {
|
||||
if (module->get_blackbox_attribute() != blackboxes)
|
||||
continue;
|
||||
if (selected && !design->selected_whole_module(module->name)) {
|
||||
if (design->selected_module(module->name))
|
||||
log_cmd_error("Can't handle partially selected module %s!\n", log_id(module->name));
|
||||
continue;
|
||||
}
|
||||
log("Dumping module `%s'.\n", module->name.c_str());
|
||||
dump_module(*f, "", module);
|
||||
}
|
||||
if (!selected) design->pop_selection();
|
||||
|
||||
auto_name_map.clear();
|
||||
reg_wires.clear();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue