Verilog - for ループ

Verilog の for ループの書き方。

ここには8ビットの順序を逆するを例に挙げる。

for

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
module top_module( 
    input [7:0] in,
    output [7:0] out
);

    always @(*) begin
        for (int i = 0; i < 8; i++)
            out[i] = in[8 - i - 1];
    end
    
endmodule

generate - for

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
module top_module( 
    input [7:0] in,
    output [7:0] out
);

	generate
		genvar i;
        for (i = 0; i < 8; i = i + 1) begin: my_block_name
            assign out[i] = in[8 - i - 1];
		end
	endgenerate
    
endmodule
Hugo で構築されています。
テーマ StackJimmy によって設計されています。