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
Coq
25 lines
427 B
Coq
4 years ago
|
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
|