Verilog generate for
可以用来生成有规律的一组代码。assign
语句、always
语句、模块例化都可以用。用好 generate for
可以少写很多行代码。下面是一个例子:
wire [127:0] IN;
wire [1024:1] OUT;
genvar i;
generate
for(i=0;i<128; i=i+1)
begin
assign OUT[(1+8*i) +: 8] = {8{IN[i]}};
end
endgenerate
展开效果相当于:
assign OUT[8:1] = {8{IN[0]}};
assign OUT[16:9] = {8{IN[1]}};
assign OUT[24:17] = {8{IN[0]}};
// ...