Re-add DSP_A_MINWIDTH, remove unnec. opt_expr -fine from synth_ice40
authorEddie Hung <eddie@fpgeh.com>
Fri, 20 Sep 2019 16:02:29 +0000 (09:02 -0700)
committerEddie Hung <eddie@fpgeh.com>
Fri, 20 Sep 2019 16:02:29 +0000 (09:02 -0700)
techlibs/ice40/synth_ice40.cc
techlibs/xilinx/synth_xilinx.cc

index 284bc90d08afa587f7546c1812b7d848f1adae45..7a8f3d70c08c50abc95a27c301478f1630fea6b2 100644 (file)
@@ -274,9 +274,8 @@ struct SynthIce40Pass : public ScriptPass
                        run("opt_clean");
                        if (help_mode || dsp) {
                                run("techmap -map +/mul2dsp.v -map +/ice40/dsp_map.v -D DSP_A_MAXWIDTH=16 -D DSP_B_MAXWIDTH=16 "
-                                               "-D DSP_A_MINWIDTH=2 -D DSP_Y_MINWIDTH=11 "
+                                               "-D DSP_A_MINWIDTH=2 -D DSP_B_MINWIDTH=2 -D DSP_Y_MINWIDTH=11 "
                                                "-D DSP_NAME=$__MUL16X16", "(if -dsp)");
-                               run("opt_expr -fine", "               (if -dsp)");
                                run("wreduce", "                      (if -dsp)");
                                run("ice40_dsp", "                    (if -dsp)");
                                run("chtype -set $mul t:$__soft_mul","(if -dsp)");
index 6687a0786e96859231e17a6f66b8b02f170d1fb3..022b0d108587d005319bb66f7c3cce51d5a606e2 100644 (file)
@@ -343,7 +343,7 @@ struct SynthXilinxPass : public ScriptPass
                        if (!nodsp || help_mode) {
                                // NB: Xilinx multipliers are signed only
                                run("techmap -map +/mul2dsp.v -map +/xilinx/dsp_map.v -D DSP_A_MAXWIDTH=25 -D DSP_A_MAXWIDTH_PARTIAL=18 -D DSP_B_MAXWIDTH=18 "
-                                               "-D DSP_B_MINWIDTH=2 " // Blocks Nx1 multipliers
+                                               "-D DSP_A_MINWIDTH=2 -D DSP_B_MINWIDTH=2 " // Blocks Nx1 multipliers
                                                "-D DSP_Y_MINWIDTH=9 " // UG901 suggests small multiplies are those 4x4 and smaller
                                                "-D DSP_SIGNEDONLY=1 -D DSP_NAME=$__MUL25X18");
                                run("xilinx_dsp");