I've been looking at some verilog code and came across something I've never seen before and have not been able to find information about online.
module FA_n_bit(c_out, Sum, A, B, c_in);
parameter word_size = 4; // the default size of this n bit adder
input [word_size-1:0] A, B;
input c_in;
output [word_size-1:0] Sum;
output c_out;
wire [word_size-1:0] c_inner;
// the c_out of the ith 1-bit full aderr is the c_in of the (i+1)th full adder
FA_one_bit fullAdder [word_size-1:0](
{c_out, c_inner[word_size-1:1]},
Sum,
A,
B,
{c_inner[word_size-1:1], c_in}
);
endmodule
I understand the parameter syntax, but I am having a hard time understanding what the FA_one_bit fullAdder [word_size-1:0] (...) syntax does.
any help would be greatly appreciated. So far I think that its declaring 4 fullAdders but I get lost at the concatenation of the c_out and c_inner[word_size-1:1].