Menu
Coddy logo textTech

Repeat-Schleife

Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy — Lektion 60 von 90.

Die repeat-Schleife führt einen Codeblock eine feste Anzahl von Malen aus. Im Gegensatz zur for-Schleife verwendet sie keine Schleifenzählervariable.

Eine repeat-Schleife wird eine bestimmte Anzahl von Malen ausgeführt. Sie geben ihr eine Konstante oder einen Ausdruck an, der bestimmt, wie viele Iterationen ausgeführt werden sollen.

Syntax:

repeat (number) begin
  // Zu wiederholender Code
end

Einfaches Beispiel

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

Ausgabe:

Hello
Hello
Hello
Hello
Hello

Die Nachricht wird genau 5 Mal ausgegeben.

Wiederholung mit einem Ausdruck

integer count = 3;

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

Ausgabe:

Looping
Looping
Looping

Repeat vs. For-Schleife

 For-SchleifeRepeat-Schleife
ZählervariableJa (explizit)Nein
VerwendungIndexwert wird benötigtNur Wiederholung wird benötigt
Beispielfor (i=0; i<5; i=i+1)repeat (5)

Erzeugen mehrerer Taktzyklen

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

Dies erzeugt 20 Taktflanken (10 vollständige Zyklen).

Wichtige Regeln

RegelErklärung
Zahl muss nicht-negativ seinKann nicht negativ oft wiederholt werden
Kann Konstante oder Ausdruck verwendenrepeat (10) oder repeat (count)
Keine Schleifenvariable verfügbarIterationsnummer kann nicht verfolgt werden
Verwenden Sie begin/end für mehrere AnweisungenErforderlich für mehr als eine Zeile
challenge icon

Aufgabe

Was zu tun ist:

Füge die fehlende repeat-Schleife hinzu, um "Verilog" 4-mal auszugeben.

Spickzettel

Die repeat-Schleife führt einen Codeblock eine feste Anzahl von Malen aus, ohne eine Schleifenzählervariable zu verwenden.

repeat (number) begin
  // Zu wiederholender Code
end

Kann einen konstanten oder variablen Ausdruck verwenden:

integer count = 3;
repeat (count) begin
  $display("Looping");
end

Häufiger Anwendungsfall — Erzeugen von Taktzyklen:

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

Repeat vs. For-Schleife: Verwenden Sie repeat, wenn Sie nur eine Wiederholung benötigen (kein Index erforderlich); verwenden Sie for, wenn Sie den Wert des Iterationszählers benötigen.

Probier es selbst

module repeat_challenge;
  
  initial begin
    $display("Printing 4 times:");
    
    // TODO: Repeat-Schleife hinzufügen
    // 4-mal wiederholen
    // Im Inneren "Verilog" ausgeben
    
    $finish;
  end
endmodule
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen