MIPS/sim/model/mul_signed.sv
2022-07-29 18:48:58 +08:00

25 lines
413 B
Systemverilog

`include "defines.svh"
module mul_signed(
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[4:0];
always_ff @(posedge CLK) begin
rA <= A;
rB <= B;
M[0] <= $signed(rA) * $signed(rB);
for (integer i = 0; i < 4; i = i + 1)
M[i+1] <= M[i];
end
assign P = M[4];
endmodule