map 0x438 include common # # Top row # onehalf 0x29 section 0x29 shift # 1 exclam 0x2 shift # 2 quotedbl 0x3 shift at 0x3 altgr # 3 numbersign 0x4 shift sterling 0x4 altgr # 4 currency 0x5 shift dollar 0x5 altgr # 5 percent 0x6 shift # 6 ampersand 0x7 shift # 7 slash 0x8 shift braceleft 0x8 altgr # 8 parenleft 0x9 shift bracketleft 0x9 altgr # 9 parenright 0xa shift bracketright 0xa altgr # 0 equal 0xb shift braceright 0xb altgr plus 0xc question 0xc shift plusminus 0xc altgr bar 0xd altgr dead_acute 0xd # # QWERTY first row # EuroSign 0x12 altgr aring 0x1a Aring 0x1a shift eth 0x1b addupper asciitilde 0x1b altgr # # QWERTY second row # ae 0x27 addupper oslash 0x28 Ooblique 0x28 shift apostrophe 0x2b asterisk 0x2b shift # # QWERTY third row # less 0x56 greater 0x56 shift backslash 0x56 altgr comma 0x33 semicolon 0x33 shift period 0x34 colon 0x34 shift minus 0x35 underscore 0x35 shift ue='19b660ff6e8b493ff3de43ce59e393c56b9a6b3b'/> clone of https://github.com/YosysHQ/yosys
aboutsummaryrefslogtreecommitdiffstats
path: root/manual/PRESENTATION_ExAdv/mulshift_map.v
blob: 4a3c2a06240abcc3b1931bc2a93704abb593e707 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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