Menu
Coddy logo textTech

For-Schleife

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

Schleifen in Verilog ermöglichen es Ihnen, einen Codeblock mehrmals auszuführen. Sie sind besonders in Testbenches nützlich, um wiederkehrende Testmuster zu erzeugen, Speicher zu initialisieren und über Arrays zu iterieren. Im Gegensatz zu Hardwarebeschreibungen, die parallel laufen, werden Schleifen sequentiell ausgeführt, was sie ideal für Simulation und Tests macht.

Die am häufigsten verwendete Schleife ist die <strong>for</strong>-Schleife, die eine bestimmte Anzahl von Malen wiederholt wird. Eine for-Schleife führt einen Codeblock wiederholt aus, wobei sich eine Schleifenvariable bei jeder Iteration ändert. Sie steuern genau, wie oft sie ausgeführt wird.

Syntax:

for (initialization; condition; increment) begin
  // Code zum Wiederholen
end
PartWhat It DoesExample
initializationSetzt den Startwerti = 0
conditionWann angehalten wirdi < 10
incrementÄndert sich bei jedem Durchlaufi = i + 1

Einfaches Beispiel

integer i;

for (i = 0; i < 5; i = i + 1) begin
  $display("i = %d", i);
end

Ausgabe:

i = 0
i = 1
i = 2
i = 3
i = 4

Die Schleife läuft 5 Mal (i = 0, 1, 2, 3, 4).

For Loop in Testbenches

For loops werden häufig verwendet, um alle Eingangskombinationen zu testen:

integer test_value;

for (test_value = 0; test_value < 16; test_value = test_value + 1) begin
  $display("test_value = %d", test_value);
end

Dies testet alle 16 möglichen Werte eines 4-Bit-Signals.

For Loop with Arrays

reg [7:0] memory [0:9];
integer i;

initial begin
  for (i = 0; i < 10; i = i + 1) begin
    memory[i] = i * 8;
  end
end

Dies initialisiert 10 memory-Speicherstellen.

Wichtige Regeln

RegelErklärung
Loop-Variable muss integer oder reg sein Kann kein wire sein
Verwenden Sie begin/end für mehrere AnweisungenErforderlich für mehr als eine Zeile
Endlosschleifen vermeidenStellen Sie sicher, dass die condition irgendwann falsch wird
Am besten in Testbenches verwendetDie meisten Schleifen sind nicht synthetisierbar
challenge icon

Aufgabe

Was zu tun ist:

Fügen Sie die fehlende for-Schleife hinzu, um Zahlen von 0 bis 3 auszugeben.

Probier es selbst

module for_challenge;
  integer i;
  
  initial begin
    $display("Printing 0 to 3:");
    
    // TODO: for-Schleife hinzufügen
    // Initialisiere i = 0
    // Schleife solange i < 4
    // Inkrementiere i = i + 1
    // Innerhalb, drucke i
    
    $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