k0b0's record.

Computer Engineering, Arts and Books

Verilog/System Verilogのgenerate文

 for文を使って回路モジュールを任意個生成する方法があったよなぁと思い出しつつコーディングした。忘れないうちにメモ。下記の例ではgenerete文を使ってFFを4つ生成している。うまくgenerete文を使えば色々便利かも。

//Example of generating four FFs
module FF4(CLK,D,Q);
parameter width = 4;

input CLK;
input  [width-1:0] D;
output [width-1:0] Q;

//generateによりwidth(4つ)のFFを生成
generate
genvar i;
for(i = 0; i < width; i=i+1)
begin:ff_loop
    FF F0(.D(D[i]), .Q(Q[i]), .CLK(CLK));
end
endgenerate
endmodule