diff options
Diffstat (limited to 'techlibs/ice40')
| -rw-r--r-- | techlibs/ice40/synth_ice40.cc | 9 | 
1 files changed, 7 insertions, 2 deletions
| diff --git a/techlibs/ice40/synth_ice40.cc b/techlibs/ice40/synth_ice40.cc index be60a0071..2cc5fd5fd 100644 --- a/techlibs/ice40/synth_ice40.cc +++ b/techlibs/ice40/synth_ice40.cc @@ -265,8 +265,13 @@ struct SynthIce40Pass : public ScriptPass  			run("techmap -map +/cmp2lut.v -D LUT_WIDTH=4");  			run("opt_expr");  			run("opt_clean"); -			if (help_mode || dsp) -				run("ice40_dsp", "(if -dsp)"); +			if (help_mode || dsp) { +				run("techmap -map +/mul2dsp.v -D DSP_A_MAXWIDTH=16 -D DSP_B_MAXWIDTH=16 -D DSP_A_MINWIDTH=2 -D DSP_B_MINWIDTH=2 -D DSP_Y_MINWIDTH=11 -D DSP_NAME=$__MUL16X16", "(if -dsp)"); +				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");  			run("fsm"); | 
