diff options
author | David Shah <dave@ds0.me> | 2019-05-04 17:17:30 +0100 |
---|---|---|
committer | David Shah <dave@ds0.me> | 2019-05-04 17:23:44 +0100 |
commit | a84256aa366cd1e74de48444c136052564fdd0fe (patch) | |
tree | 2c3244793915db6c322481f66f20fa221b76c39a | |
parent | 5ce9113eda2e82034fd47106d6f75b8f30fd79ab (diff) | |
download | yosys-a84256aa366cd1e74de48444c136052564fdd0fe.tar.gz yosys-a84256aa366cd1e74de48444c136052564fdd0fe.tar.bz2 yosys-a84256aa366cd1e74de48444c136052564fdd0fe.zip |
abc: Fix handling of postfixed names (e.g. for retiming)
Signed-off-by: David Shah <dave@ds0.me>
-rw-r--r-- | passes/techmap/abc.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/passes/techmap/abc.cc b/passes/techmap/abc.cc index d7500f3c3..5b19d84fb 100644 --- a/passes/techmap/abc.cc +++ b/passes/techmap/abc.cc @@ -338,12 +338,13 @@ std::string remap_name(RTLIL::IdString abc_name, RTLIL::Wire **orig_wire = nullp } if (abc_sname.substr(0, 5) == "ys__n") { - bool inv = abc_sname.back() == 'v'; - if (inv) abc_sname.pop_back(); abc_sname.erase(0, 5); if (std::isdigit(abc_sname.at(0))) { int sid = std::stoi(abc_sname); + size_t postfix_start = abc_sname.find_first_not_of("0123456789"); + std::string postfix = postfix_start != std::string::npos ? abc_sname.substr(postfix_start) : ""; + if (sid < GetSize(signal_list)) { auto sig = signal_list.at(sid); @@ -355,8 +356,7 @@ std::string remap_name(RTLIL::IdString abc_name, RTLIL::Wire **orig_wire = nullp sstr << "[" << sig.bit.offset << "]"; if (isnew) sstr << "_new"; - if (inv) - sstr << "_inv"; + sstr << postfix; if (orig_wire != nullptr) *orig_wire = sig.bit.wire; return sstr.str(); |