diff options
author | Eddie Hung <eddie@fpgeh.com> | 2019-09-29 19:39:12 -0700 |
---|---|---|
committer | Eddie Hung <eddie@fpgeh.com> | 2019-09-29 19:39:12 -0700 |
commit | 1123c09588a6dd3964605de229c6bc4ac158b50e (patch) | |
tree | 6f6b950cfc30c4db0963a90fe065964489fa292b /techlibs/ice40/synth_ice40.cc | |
parent | 18ebb86edbade4a94833dead59d69fddd980f5bd (diff) | |
parent | d5f0794a531b36976d2c4d181b1c3921b801bbfa (diff) | |
download | yosys-1123c09588a6dd3964605de229c6bc4ac158b50e.tar.gz yosys-1123c09588a6dd3964605de229c6bc4ac158b50e.tar.bz2 yosys-1123c09588a6dd3964605de229c6bc4ac158b50e.zip |
Merge remote-tracking branch 'origin/master' into xaig_dff
Diffstat (limited to 'techlibs/ice40/synth_ice40.cc')
-rw-r--r-- | techlibs/ice40/synth_ice40.cc | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/techlibs/ice40/synth_ice40.cc b/techlibs/ice40/synth_ice40.cc index a3890268a..841f10244 100644 --- a/techlibs/ice40/synth_ice40.cc +++ b/techlibs/ice40/synth_ice40.cc @@ -272,8 +272,18 @@ 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 -map +/ice40/dsp_map.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("select a:mul2dsp", " (if -dsp)"); + run("setattr -unset mul2dsp", " (if -dsp)"); + run("opt_expr -fine", " (if -dsp)"); + run("wreduce", " (if -dsp)"); + run("select -clear", " (if -dsp)"); + run("ice40_dsp", " (if -dsp)"); + run("chtype -set $mul t:$__soft_mul", "(if -dsp)"); + } run("alumacc"); run("opt"); run("fsm"); |