module nbit_xor
#(SIZE = 16) (
input [(SIZE-1):0] a;
input [(SIZE-1):0] b;
output [(SIZE-1):0] y;
);
//這種類型的變量只能用於generate模塊的循環中
genvar gvr_i;
generate
for(gvr_i = 0; gvr_i < SIZE; gvr_i = gvr_i + 1) begin: xor_inst
//xor_inst是generate循環的實例名稱,將來會是instance中的一個層次
xor u_xor(y[gvr_i], a[gvr_i], b[gvr_i]);
end
endgenerate
endmodule
//實例化後的結果如下
//xor_inst[0].u_xor(y[0], a[0], b[0]);
//xor_inst[1].u_xor(y[1], a[0], b[1]);
//xor_inst[2].u_xor(y[2], a[0], b[2]);