diff --git a/passes/cmds/autoname.cc b/passes/cmds/autoname.cc index 134d36ee6..210f86916 100644 --- a/passes/cmds/autoname.cc +++ b/passes/cmds/autoname.cc @@ -283,6 +283,8 @@ struct AutonamePass : public Pass { } extra_args(args, argidx, design); + design->sigNormalize(false); + log_header(design, "Executing AUTONAME pass.\n"); for (auto module : design->selected_modules()) diff --git a/passes/cmds/blackbox.cc b/passes/cmds/blackbox.cc index 43670efaf..1bfd3bb5b 100644 --- a/passes/cmds/blackbox.cc +++ b/passes/cmds/blackbox.cc @@ -46,6 +46,8 @@ struct BlackboxPass : public Pass { } extra_args(args, argidx, design); + design->sigNormalize(false); + for (auto module : design->selected_whole_modules_warn(true)) { module->makeblackbox(); diff --git a/passes/cmds/delete.cc b/passes/cmds/delete.cc index e341f29d6..9e13ed329 100644 --- a/passes/cmds/delete.cc +++ b/passes/cmds/delete.cc @@ -64,6 +64,7 @@ struct DeletePass : public Pass { break; } extra_args(args, argidx, design); + design->sigNormalize(false); std::vector delete_mods; for (auto module : design->modules()) diff --git a/passes/cmds/timeest.cc b/passes/cmds/timeest.cc index 80843aaee..f12cdfb07 100644 --- a/passes/cmds/timeest.cc +++ b/passes/cmds/timeest.cc @@ -417,6 +417,8 @@ struct TimeestPass : Pass { } extra_args(args, argidx, d); + d->sigNormalize(false); + if (select && d->selected_modules().size() > 1) log_cmd_error("The -select option operates on a single selected module\n"); diff --git a/passes/fsm/fsm_extract.cc b/passes/fsm/fsm_extract.cc index 43a797ff4..9b1e25027 100644 --- a/passes/fsm/fsm_extract.cc +++ b/passes/fsm/fsm_extract.cc @@ -436,6 +436,8 @@ struct FsmExtractPass : public Pass { log_header(design, "Executing FSM_EXTRACT pass (extracting FSM from design).\n"); extra_args(args, 1, design); + design->sigNormalize(false); + CellTypes ct(design); for (auto mod : design->selected_modules()) diff --git a/passes/hierarchy/submod.cc b/passes/hierarchy/submod.cc index bf135386c..309c70060 100644 --- a/passes/hierarchy/submod.cc +++ b/passes/hierarchy/submod.cc @@ -379,6 +379,8 @@ struct SubmodPass : public Pass { } extra_args(args, argidx, design); + design->sigNormalize(false); + if (opt_name.empty()) { Pass::call(design, "opt_clean"); diff --git a/passes/techmap/extract.cc b/passes/techmap/extract.cc index f63123a23..5aac0df4e 100644 --- a/passes/techmap/extract.cc +++ b/passes/techmap/extract.cc @@ -183,6 +183,8 @@ bool module2graph(SubCircuit::Graph &graph, RTLIL::Module *mod, bool constports, if (max_fanout > 0) for (auto cell : mod->cells()) { + if (cell->type == ID($input_port)) + continue; if (!sel || sel->selected(mod, cell)) for (auto &conn : cell->connections()) { RTLIL::SigSpec conn_sig = conn.second; @@ -198,6 +200,8 @@ bool module2graph(SubCircuit::Graph &graph, RTLIL::Module *mod, bool constports, { if (sel && !sel->selected(mod, cell)) continue; + if (cell->type == ID($input_port)) + continue; std::string type = cell->type.str(); if (sel == nullptr && type.compare(0, 2, "\\$") == 0) @@ -252,6 +256,8 @@ bool module2graph(SubCircuit::Graph &graph, RTLIL::Module *mod, bool constports, // mark external signals (used in non-selected cells) for (auto cell : mod->cells()) { + if (cell->type == ID($input_port)) + continue; if (sel && !sel->selected(mod, cell)) for (auto &conn : cell->connections()) {