[SV]SystemVerilog中用generate自動例化需要的module個數

2019-04-14 19:46发布

一、善於使用generate模塊,可以大量減少重複的代碼,下面是一個generate使用的例子。 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]);