opt and wreduce necessary for -dsp
authorEddie Hung <eddie@fpgeh.com>
Mon, 22 Jul 2019 20:48:33 +0000 (13:48 -0700)
committerEddie Hung <eddie@fpgeh.com>
Mon, 22 Jul 2019 20:48:33 +0000 (13:48 -0700)
techlibs/ice40/synth_ice40.cc

index fcb177491a648eda67210e98fea16c945f51b041..ce88a0542e6afdd0d959fd2b70677fb107489fb5 100644 (file)
@@ -267,8 +267,10 @@ struct SynthIce40Pass : public ScriptPass
                        run("opt_clean");
                        if (help_mode || dsp) {
                                run("techmap -map +/mul2dsp.v -D DSP_A_MAXWIDTH=16 -D DSP_B_MAXWIDTH=16 -D DSP_MINWIDTH=11 -D DSP_NAME=$__MUL16X16", "(if -dsp)");
-                               run("ice40_dsp", "(if -dsp)");
-                               run("chtype -set $mul t:$__soft_mul");
+                               run("opt_expr", "                     (if -dsp)");
+                               run("wreduce", "                      (if -dsp)");
+                               run("ice40_dsp", "                    (if -dsp)");
+                               run("chtype -set $mul t:$__soft_mul","(if -dsp)");
                        }
                        run("alumacc");
                        run("opt");