28 lines
469 B
Coq
28 lines
469 B
Coq
|
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
|