summaryrefslogtreecommitdiff
path: root/techlibs/ice40/synth_ice40.cc
diff options
context:
space:
mode:
Diffstat (limited to 'techlibs/ice40/synth_ice40.cc')
-rw-r--r--techlibs/ice40/synth_ice40.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/techlibs/ice40/synth_ice40.cc b/techlibs/ice40/synth_ice40.cc
index 2fe92140..b683929b 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");