diff options
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"); |