MIPS/sim/model/mul_unsigned.sv
2022-08-04 19:54:40 +08:00

25 lines
470 B
Systemverilog

`include "defines.svh"
module mul_unsigned(
input logic CLK,
input logic [31:0] A,
input logic [31:0] B,
output logic [63:0] P
);
logic [31:0] rA;
logic [31:0] rB;
logic [63:0] M[`MUL_PIPE_STAGES-2:0];
always_ff @(posedge CLK) begin
rA <= A;
rB <= B;
M[0] <= $unsigned(rA) * $unsigned(rB);
for (integer i = 0; i < `MUL_PIPE_STAGES-2; i = i + 1)
M[i+1] <= M[i];
end
assign P = M[`MUL_PIPE_STAGES-2];
endmodule