diff options
author | Eddie Hung <eddie@fpgeh.com> | 2019-06-15 09:08:18 -0700 |
---|---|---|
committer | Eddie Hung <eddie@fpgeh.com> | 2019-06-15 09:08:18 -0700 |
commit | da487c4f31fd2d97c0d7110010e7379e5445ceb0 (patch) | |
tree | be0a6bb780ef5f024f971bdc52dc03421dc83e98 /passes/techmap/abc9.cc | |
parent | 2ef2aa997cbe75732535946b25c35dcb3fe5eec4 (diff) | |
download | yosys-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.cc | 8 |
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))); |