module constmuldivmod(input [7:0] A, input [2:0] mode, output reg [7:0] Y); | |
always @* begin | |
case (mode) | |
0: Y = A / 8'd0; | |
1: Y = A % 8'd0; | |
2: Y = A * 8'd0; | |
3: Y = A / 8'd1; | |
4: Y = A % 8'd1; | |
5: Y = A * 8'd1; | |
6: Y = A / 8'd2; | |
7: Y = A % 8'd2; | |
8: Y = A * 8'd2; | |
9: Y = A / 8'd4; | |
10: Y = A % 8'd4; | |
11: Y = A * 8'd4; | |
12: Y = A / 8'd8; | |
13: Y = A % 8'd8; | |
14: Y = A * 8'd8; | |
default: Y = 8'd16 * A; | |
endcase | |
end | |
endmodule |