diff options
author | Clifford Wolf <clifford@clifford.at> | 2014-02-16 22:31:53 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2014-02-16 22:31:53 +0100 |
commit | 37cbb1ca60b03cbaaef5041db5f631b90a303f9a (patch) | |
tree | fb85bab67163a043495a9f7b1e941ae22c5ed511 /manual/PRESENTATION_ExAdv/mulshift_map.v | |
parent | 6d63f39eb6abbefd8a12f0fe081c33ef1638800c (diff) | |
download | yosys-37cbb1ca60b03cbaaef5041db5f631b90a303f9a.tar.gz yosys-37cbb1ca60b03cbaaef5041db5f631b90a303f9a.tar.bz2 yosys-37cbb1ca60b03cbaaef5041db5f631b90a303f9a.zip |
Progress in presentation
Diffstat (limited to 'manual/PRESENTATION_ExAdv/mulshift_map.v')
-rw-r--r-- | manual/PRESENTATION_ExAdv/mulshift_map.v | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/manual/PRESENTATION_ExAdv/mulshift_map.v b/manual/PRESENTATION_ExAdv/mulshift_map.v new file mode 100644 index 000000000..4a3c2a062 --- /dev/null +++ b/manual/PRESENTATION_ExAdv/mulshift_map.v @@ -0,0 +1,26 @@ +module MYMUL(A, B, Y); + parameter WIDTH = 1; + input [WIDTH-1:0] A, B; + output reg [WIDTH-1:0] Y; + + parameter _TECHMAP_CONSTVAL_A_ = WIDTH'bx; + parameter _TECHMAP_CONSTVAL_B_ = WIDTH'bx; + + reg _TECHMAP_FAIL_; + wire [1023:0] _TECHMAP_DO_ = "proc; clean"; + + integer i; + always @* begin + _TECHMAP_FAIL_ <= 1; + for (i = 0; i < WIDTH; i=i+1) begin + if (_TECHMAP_CONSTVAL_A_ === WIDTH'd1 << i) begin + _TECHMAP_FAIL_ <= 0; + Y <= B << i; + end + if (_TECHMAP_CONSTVAL_B_ === WIDTH'd1 << i) begin + _TECHMAP_FAIL_ <= 0; + Y <= A << i; + end + end + end +endmodule |