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
endEinfaches Beispiel
repeat (5) begin
$display("Hello");
endAusgabe:
Hello
Hello
Hello
Hello
HelloDie Nachricht wird genau 5 Mal ausgegeben.
Wiederholung mit einem Ausdruck
integer count = 3;
repeat (count) begin
$display("Looping");
endAusgabe:
Looping
Looping
LoopingRepeat vs. For-Schleife
| For-Schleife | Repeat-Schleife | |
|---|---|---|
| Zählervariable | Ja (explizit) | Nein |
| Verwendung | Indexwert wird benötigt | Nur Wiederholung wird benötigt |
| Beispiel | for (i=0; i<5; i=i+1) | repeat (5) |
Erzeugen mehrerer Taktzyklen
initial begin
clk = 0;
repeat (20) begin
#5 clk = ~clk;
end
endDies erzeugt 20 Taktflanken (10 vollständige Zyklen).
Wichtige Regeln
| Regel | Erklärung |
|---|---|
| Zahl muss nicht-negativ sein | Kann nicht negativ oft wiederholt werden |
| Kann Konstante oder Ausdruck verwenden | repeat (10) oder repeat (count) |
| Keine Schleifenvariable verfügbar | Iterationsnummer kann nicht verfolgt werden |
Verwenden Sie begin/end für mehrere Anweisungen | Erforderlich für mehr als eine Zeile |
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
endKann einen konstanten oder variablen Ausdruck verwenden:
integer count = 3;
repeat (count) begin
$display("Looping");
endHäufiger Anwendungsfall — Erzeugen von Taktzyklen:
repeat (20) begin
#5 clk = ~clk;
endRepeat 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
endmoduleDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
1Einführung
Was ist VerilogHardware vs. SoftwareAbstraktionsebenen im DesignDein erstes ModulKommentare4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorVergleichsoperatorenWiederholung – Einfache MathematikBitweise Operatoren7Zuweisung und Gatter
Kontinuierliche ZuweisungZuweisung mit OperatorenIntegrierte Gatter-PrimitiveAND OR NOT GatterXOR XNOR GatterZusammenfassung - Logikgatterschaltung10Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher KomparatorCase-AnweisungCasex und CasezWiederholung - ALU-Design5Operatoren Teil 2
Logische OperatorenReduktionsoperatorenShift-OperatorenVerkettungsoperatorBedingter OperatorZusammenfassung – Operator-Challenge11Schleifen
For-SchleifeWhile-SchleifeRepeat-SchleifeEndlosschleifeDisable-AnweisungRückblick – Schleifenmuster3Zahlensystem
Binäre DarstellungZahlen mit GrößenangabeZahlen ohne GrößenangabeNegative ZahlenSpezialwerte X und ZZusammenfassung – Zahlenformate6Module
ModulstrukturEingangs- und Ausgangs-PortsInout-PortsModul-InstanziierungPort-Mapping nach NamePort-Mapping nach ReihenfolgeZusammenfassung – Ein Modul erstellen