MIPS/model/mul_signed.sv
2021-09-22 23:07:13 +08:00

23 lines
599 B
Systemverilog

`include "defines.svh"
module mul_signed(
input logic CLK,
input word_t A,
input word_t B,
output logic [63:0] P
);
word_t A1, A2, A3, A4, A5, A6;
word_t B1, B2, B3, B4, B5, B6;
ffen #(64) ff_1 (CLK, { A, B}, 1'b1, {A1, B1});
ffen #(64) ff_2 (CLK, {A1, B1}, 1'b1, {A2, B2});
ffen #(64) ff_3 (CLK, {A2, B2}, 1'b1, {A3, B3});
ffen #(64) ff_4 (CLK, {A3, B3}, 1'b1, {A4, B4});
ffen #(64) ff_5 (CLK, {A4, B4}, 1'b1, {A5, B5});
ffen #(64) ff_6 (CLK, {A5, B5}, 1'b1, {A6, B6});
assign P = $signed(A) * $signed(B);
endmodule