diff options
author | Clifford Wolf <clifford@clifford.at> | 2013-12-19 13:21:57 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2013-12-19 13:21:57 +0100 |
commit | c904f5e197470b14ae7951010444edc8309b7807 (patch) | |
tree | 72e82cc60c3966eee2d389381cca60efe56602d5 | |
parent | 994c83db0143f5d86e1442577e0efcf0c2c57cda (diff) | |
download | yosys-c904f5e197470b14ae7951010444edc8309b7807.tar.gz yosys-c904f5e197470b14ae7951010444edc8309b7807.tar.bz2 yosys-c904f5e197470b14ae7951010444edc8309b7807.zip |
Prefer non-inverted clocks in dfflibmap
-rw-r--r-- | passes/techmap/dfflibmap.cc | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/passes/techmap/dfflibmap.cc b/passes/techmap/dfflibmap.cc index 0324afa84..49b980596 100644 --- a/passes/techmap/dfflibmap.cc +++ b/passes/techmap/dfflibmap.cc @@ -473,17 +473,19 @@ struct DfflibmapPass : public Pass { find_cell_sr(libparser.ast, "$_DFFSR_PPN_", true, true, false); find_cell_sr(libparser.ast, "$_DFFSR_PPP_", true, true, true); - bool keep_running = true; - while (keep_running) { + bool keep_running; + do { keep_running = false; - keep_running |= expand_cellmap("$_DFF_*_", "C"); - keep_running |= expand_cellmap("$_DFF_*??_", "C"); keep_running |= expand_cellmap("$_DFF_?*?_", "R"); keep_running |= expand_cellmap("$_DFF_??*_", "DQ"); - keep_running |= expand_cellmap("$_DFFSR_*??_", "C"); keep_running |= expand_cellmap("$_DFFSR_?*?_", "S"); keep_running |= expand_cellmap("$_DFFSR_??*_", "R"); - } + } while (keep_running); + do { + keep_running |= expand_cellmap("$_DFF_*_", "C"); + keep_running |= expand_cellmap("$_DFF_*??_", "C"); + keep_running |= expand_cellmap("$_DFFSR_*??_", "C"); + } while (keep_running); map_sr_to_arst("$_DFFSR_NNN_", "$_DFF_NN0_"); map_sr_to_arst("$_DFFSR_NNN_", "$_DFF_NN1_"); |