diff options
author | Eddie Hung <eddie@fpgeh.com> | 2019-08-30 12:27:09 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-30 12:27:09 -0700 |
commit | 999fb33fd0e6d1714bc61f7e50a5c16e0da9d4ab (patch) | |
tree | 92e8e93ce83f7ea526596a72a0c1e1791f57da0e /passes/techmap/abc9.cc | |
parent | eef0676105ff592e0e96bb835f0139f2f40d55bb (diff) | |
parent | 6a111ad32487fb49c5d30db5697c794814ffa511 (diff) | |
download | yosys-999fb33fd0e6d1714bc61f7e50a5c16e0da9d4ab.tar.gz yosys-999fb33fd0e6d1714bc61f7e50a5c16e0da9d4ab.tar.bz2 yosys-999fb33fd0e6d1714bc61f7e50a5c16e0da9d4ab.zip |
Merge pull request #1340 from YosysHQ/eddie/abc_no_clean
abc9 to not call "clean" at end of run (often called outside)
Diffstat (limited to 'passes/techmap/abc9.cc')
-rw-r--r-- | passes/techmap/abc9.cc | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/passes/techmap/abc9.cc b/passes/techmap/abc9.cc index 84cb2c04f..6fdf987f0 100644 --- a/passes/techmap/abc9.cc +++ b/passes/techmap/abc9.cc @@ -694,30 +694,27 @@ void abc9_module(RTLIL::Design *design, RTLIL::Module *current_module, std::stri int in_wires = 0, out_wires = 0; // Stitch in mapped_mod's inputs/outputs into module - for (auto &it : mapped_mod->wires_) { - RTLIL::Wire *w = it.second; - if (!w->port_input && !w->port_output) - continue; - RTLIL::Wire *wire = module->wire(w->name); + for (auto port : mapped_mod->ports) { + RTLIL::Wire *w = mapped_mod->wire(port); + RTLIL::Wire *wire = module->wire(port); log_assert(wire); - RTLIL::Wire *remap_wire = module->wire(remap_name(w->name)); + RTLIL::Wire *remap_wire = module->wire(remap_name(port)); RTLIL::SigSpec signal = RTLIL::SigSpec(wire, 0, GetSize(remap_wire)); log_assert(GetSize(signal) >= GetSize(remap_wire)); - log_assert(w->port_input || w->port_output); RTLIL::SigSig conn; - if (w->port_input) { - conn.first = remap_wire; - conn.second = signal; - in_wires++; - module->connect(conn); - } if (w->port_output) { conn.first = signal; conn.second = remap_wire; out_wires++; module->connect(conn); } + else if (w->port_input) { + conn.first = remap_wire; + conn.second = signal; + in_wires++; + module->connect(conn); + } } for (auto &it : bit_users) @@ -1300,9 +1297,6 @@ struct Abc9Pass : public Pass { assign_map.clear(); - // The "clean" pass also contains a design->check() call - Pass::call(design, "clean"); - log_pop(); } } Abc9Pass; |