Menu
CoddyTech

Repeatループ

CoddyのVerilogジャーニー「基礎」セクションの一部。レッスン 60/90。

repeatループは、コードのブロックを決まった回数実行します。forループとは異なり、ループカウンター変数を使用しません。

repeatループは、指定された回数だけ実行されます。実行する反復回数を決める定数または式を指定します。

構文:

repeat (number) begin
  // Code to repeat
end

簡単な例

repeat (5) begin
  $display("Hello");
end

出力:

Hello
Hello
Hello
Hello
Hello

式を使って繰り返す

integer count = 3;

repeat (count) begin
  $display("Looping");
end

出力:

Looping
Looping
Looping

repeatとforループの比較

 forループrepeatループ
カウンター変数はい(明示的)いいえ
使用する場面インデックス値が必要な場合繰り返しだけが必要な場合
例for (i=0; i<5; i=i+1)repeat (5)

複数のクロックサイクルを生成する

initial begin
  clk = 0;
  repeat (20) begin
    #5 clk = ~clk;
  end
end

これにより、20回のクロックエッジ(10回の完全なサイクル)が生成されます。

重要なルール

ルール説明
回数が0以下の場合、ループ本体はスキップされるrepeat (-5) はコンパイルされ、0回実行される
定数または式を使用できるrepeat (10) または repeat (count)
ループ変数は使用できない反復回数を追跡できない
複数の文には begin/end を使用する1行を超える場合に必要
challenge icon

チャレンジ

やること:

repeat ループを追加して、「Verilog」を4回出力します。

自分で試してみよう

module repeat_challenge;
  
  initial begin
    $display("Printing 4 times:");
    
    // TODO: repeat ループを追加する
    // 4 回繰り返す
    // ループ内で "Verilog" を出力する
    
    $finish;
  end
endmodule
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Verilogオンラインコンパイラ