forked from cores/microwatt
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
427 B
Verilog
25 lines
427 B
Verilog
module multiply_add_64x64
|
|
#(
|
|
parameter BITS=64
|
|
) (
|
|
`ifdef USE_POWER_PINS
|
|
inout VPWR,
|
|
inout VGND,
|
|
`endif
|
|
input clk,
|
|
input [BITS-1:0] a,
|
|
input [BITS-1:0] b,
|
|
input [BITS*2-1:0] c,
|
|
output [BITS*2-1:0] o
|
|
);
|
|
reg [BITS*2-1:0] o_tmp[2:0];
|
|
|
|
always @(posedge clk) begin
|
|
o_tmp[2] = o_tmp[1];
|
|
o_tmp[1] = o_tmp[0];
|
|
o_tmp[0] = (a * b) + c;
|
|
end
|
|
|
|
assign o = o_tmp[2];
|
|
endmodule
|