aboutsummaryrefslogtreecommitdiffstats
path: root/passes/techmap/abc9.cc
diff options
context:
space:
mode:
authorEddie Hung <eddie@fpgeh.com>2019-06-15 09:08:18 -0700
committerEddie Hung <eddie@fpgeh.com>2019-06-15 09:08:18 -0700
commitda487c4f31fd2d97c0d7110010e7379e5445ceb0 (patch)
treebe0a6bb780ef5f024f971bdc52dc03421dc83e98 /passes/techmap/abc9.cc
parent2ef2aa997cbe75732535946b25c35dcb3fe5eec4 (diff)
downloadyosys-da487c4f31fd2d97c0d7110010e7379e5445ceb0.tar.gz
yosys-da487c4f31fd2d97c0d7110010e7379e5445ceb0.tar.bz2
yosys-da487c4f31fd2d97c0d7110010e7379e5445ceb0.zip
For now, short $_DFF_[NP]_ from ff_map.v at re-integration
Diffstat (limited to 'passes/techmap/abc9.cc')
-rw-r--r--passes/techmap/abc9.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/passes/techmap/abc9.cc b/passes/techmap/abc9.cc
index f7f2e862a..69b0c1192 100644
--- a/passes/techmap/abc9.cc
+++ b/passes/techmap/abc9.cc
@@ -511,6 +511,7 @@ void abc9_module(RTLIL::Design *design, RTLIL::Module *current_module, std::stri
// Remove all AND, NOT, and ABC box instances
// in preparation for stitching mapped_mod in
+ // Short $_DFF_[NP]_ cells used by ABC (FIXME)
dict<IdString, decltype(RTLIL::Cell::parameters)> erased_boxes;
for (auto it = module->cells_.begin(); it != module->cells_.end(); ) {
RTLIL::Cell* cell = it->second;
@@ -518,6 +519,13 @@ void abc9_module(RTLIL::Design *design, RTLIL::Module *current_module, std::stri
it = module->cells_.erase(it);
continue;
}
+ else if (cell->type.in("$_DFF_N_", "$_DFF_P_")) {
+ SigBit D = cell->getPort("\\D");
+ SigBit Q = cell->getPort("\\Q");
+ module->connect(Q, D);
+ it = module->cells_.erase(it);
+ continue;
+ }
RTLIL::Module* box_module = design->module(cell->type);
if (box_module && box_module->attributes.count("\\abc_box_id")) {
erased_boxes.insert(std::make_pair(it->first, std::move(cell->parameters)));