:::danger
两种循环语句分析:for循环语句和generate…for循环语句
这种循环语句通常用在对存储器、滤波器的多个寄存器的初始化。
:::
- 使用generate…for循环语句必须使用genvar声明循环变量;
- 使用for循环语句必须使用integer声明循环变量,循环体必须放在always块中执行(无论是组合逻辑电路还是时序逻辑电路);
- 使用generate…for循环语句必须对循环体起名字。
`timescale 1ns/1ns
module gen_for_moudle(
input [7:0] data_in,
output [7:0] data_out
);
//****************code*****************//
genvar i;
generate
for(i = 0; i < 8; i = i+1)
begin : gen_i
assign data_out[i] = data_in[7-i];
end
endgenerate
// Method2
integer q;
reg [7:0] data_out_reg;
always @(*) begin
for(q = 0; q < 8; q = q+1) begin
data_out_reg[q] = data_in[7-q];
end
end
assign data_out = data_out_reg;
//****************code*****************//
endmodule