есть вот такой код:
`ifndef ADD_V
`define ADD_V
`include "Add1.v"
`include "Add1c.v"
module add(Q, CO, A, B, CI);
parameter n = 4;
input [n-1:0] A;
input [n-1:0] B;
output [n-1:0] Q;
input CI;
output CO;
wire [n:0] c;
genvar i;
assign c[0] = CI;
generate
for( i = 0; i < n; i = i + 2 ) begin
add1 ap(.Q(Q[i]), .A(A[i]), .B(B[i]),
.CI(c[i]), .CO(c[i+1]));
if (i + 1 < n) begin
add1c an(.Q(Q[i+1]), .A(A[i+1]), .B(B[i+1]),
.CI(c[i+1]), .CO(c[i+2]));
end
end
endgenerate
not n(CO, c[n]);
endmodule /* add */
`endif
проблема в том, что тупой верилятор не может читать и писать в один вектор а как сделать это без вектора я не знаю. не хочется таскать в проекте ворнинг