aboutsummaryrefslogtreecommitdiffstats
path: root/techlibs
diff options
context:
space:
mode:
authorEddie Hung <eddie@fpgeh.com>2019-08-01 13:20:34 -0700
committerEddie Hung <eddie@fpgeh.com>2019-08-01 13:20:34 -0700
commit915f4e34bfdf1fd2b9f97d1c15a55e2c4c49f428 (patch)
treef06194f889ca0007153725a5f2165d10eb274920 /techlibs
parentfc0b5d5ab6bcbb6cc5fcacab479504c08ab80d23 (diff)
downloadyosys-915f4e34bfdf1fd2b9f97d1c15a55e2c4c49f428.tar.gz
yosys-915f4e34bfdf1fd2b9f97d1c15a55e2c4c49f428.tar.bz2
yosys-915f4e34bfdf1fd2b9f97d1c15a55e2c4c49f428.zip
DSP_MINWIDTH -> DSP_{A,B,Y}_MINWIDTH
Diffstat (limited to 'techlibs')
-rw-r--r--techlibs/common/mul2dsp.v15
-rw-r--r--techlibs/ice40/synth_ice40.cc2
2 files changed, 12 insertions, 5 deletions
diff --git a/techlibs/common/mul2dsp.v b/techlibs/common/mul2dsp.v
index 99afce18c..5ff0e03aa 100644
--- a/techlibs/common/mul2dsp.v
+++ b/techlibs/common/mul2dsp.v
@@ -52,7 +52,7 @@ module \$mul (A, B, Y);
output [Y_WIDTH-1:0] Y;
generate
- if (A_SIGNED != B_SIGNED || A_WIDTH <= 1 || B_WIDTH <= 1)
+ if (A_SIGNED != B_SIGNED)
wire _TECHMAP_FAIL_ = 1;
// NB: A_SIGNED == B_SIGNED from here
else if (A_WIDTH < B_WIDTH)
@@ -103,10 +103,17 @@ module \$__mul (A, B, Y);
genvar i;
generate
- if (A_WIDTH <= 1 || B_WIDTH <= 1)
+ if (0) begin end
+`ifdef DSP_A_MINWIDTH
+ else if (A_WIDTH < `DSP_A_MINWIDTH)
wire _TECHMAP_FAIL_ = 1;
-`ifdef DSP_MINWIDTH
- else if (A_WIDTH+B_WIDTH < `DSP_MINWIDTH || Y_WIDTH < `DSP_MINWIDTH)
+`endif
+`ifdef DSP_B_MINWIDTH
+ else if (B_WIDTH < `DSP_B_MINWIDTH)
+ wire _TECHMAP_FAIL_ = 1;
+`endif
+`ifdef DSP_Y_MINWIDTH
+ else if (Y_WIDTH < `DSP_Y_MINWIDTH)
wire _TECHMAP_FAIL_ = 1;
`endif
else if (A_WIDTH > `DSP_A_MAXWIDTH) begin
diff --git a/techlibs/ice40/synth_ice40.cc b/techlibs/ice40/synth_ice40.cc
index ce88a0542..2cc5fd5fd 100644
--- a/techlibs/ice40/synth_ice40.cc
+++ b/techlibs/ice40/synth_ice40.cc
@@ -266,7 +266,7 @@ struct SynthIce40Pass : public ScriptPass
run("opt_expr");
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("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)");