diff options
author | Clifford Wolf <clifford@clifford.at> | 2015-04-16 11:30:56 +0200 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2015-04-16 11:30:56 +0200 |
commit | 0d344a23d36fba06cc1032e8754c70ad5c1f4b15 (patch) | |
tree | f3d503396f86c9496cb6979a66901cf0ebe28105 /techlibs/ice40/synth_ice40.cc | |
parent | f80d020f17c68f6176dbf38a322325c9ccb74f74 (diff) | |
download | yosys-0d344a23d36fba06cc1032e8754c70ad5c1f4b15.tar.gz yosys-0d344a23d36fba06cc1032e8754c70ad5c1f4b15.tar.bz2 yosys-0d344a23d36fba06cc1032e8754c70ad5c1f4b15.zip |
improved ice40 dff cell mapping
Diffstat (limited to 'techlibs/ice40/synth_ice40.cc')
-rw-r--r-- | techlibs/ice40/synth_ice40.cc | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/techlibs/ice40/synth_ice40.cc b/techlibs/ice40/synth_ice40.cc index 2fe921407..b683929bf 100644 --- a/techlibs/ice40/synth_ice40.cc +++ b/techlibs/ice40/synth_ice40.cc @@ -69,6 +69,12 @@ struct SynthIce40Pass : public Pass { log(" techmap\n"); log(" opt -fast\n"); log("\n"); + log(" map_ffs:\n"); + log(" dff2dffe -direct-match $_DFF_*\n"); + log(" techmap -map +/ice40/cells_map.v\n"); + log(" simplemap\n"); + log(" clean\n"); + log("\n"); log(" map_luts:\n"); log(" abc -lut 4\n"); log(" clean\n"); @@ -135,6 +141,14 @@ struct SynthIce40Pass : public Pass { Pass::call(design, "opt -fast"); } + if (check_label(active, run_from, run_to, "map_ffs")) + { + Pass::call(design, "dff2dffe -direct-match $_DFF_*"); + Pass::call(design, "techmap -map +/ice40/cells_map.v"); + Pass::call(design, "simplemap"); + Pass::call(design, "clean"); + } + if (check_label(active, run_from, run_to, "map_luts")) { Pass::call(design, "abc -lut 4"); |