:::danger 两种循环语句分析:for循环语句和generate…for循环语句
    这种循环语句通常用在对存储器、滤波器的多个寄存器的初始化。 :::

    1. 使用generate…for循环语句必须使用genvar声明循环变量;
    2. 使用for循环语句必须使用integer声明循环变量,循环体必须放在always块中执行(无论是组合逻辑电路还是时序逻辑电路);
    3. 使用generate…for循环语句必须对循环体起名字。

    image.png

    1. `timescale 1ns/1ns
    2. module gen_for_moudle(
    3. input [7:0] data_in,
    4. output [7:0] data_out
    5. );
    6. //****************code*****************//
    7. genvar i;
    8. generate
    9. for(i = 0; i < 8; i = i+1)
    10. begin : gen_i
    11. assign data_out[i] = data_in[7-i];
    12. end
    13. endgenerate
    14. // Method2
    15. integer q;
    16. reg [7:0] data_out_reg;
    17. always @(*) begin
    18. for(q = 0; q < 8; q = q+1) begin
    19. data_out_reg[q] = data_in[7-q];
    20. end
    21. end
    22. assign data_out = data_out_reg;
    23. //****************code*****************//
    24. endmodule

    image.png