Menu
Coddy logo textTech

For Loop

Fait partie de la section Fondamentaux du Journey Verilog de Coddy. Leçon 58 sur 90.

Les boucles en Verilog vous permettent d’exécuter un bloc de code plusieurs fois. Elles sont particulièrement utiles dans les bancs de test pour générer des modèles de test répétitifs, initialiser la mémoire et parcourir des tableaux. Contrairement aux descriptions matérielles qui s’exécutent en parallèle, les boucles s’exécutent séquentiellement, ce qui les rend idéales pour la simulation et les tests.

La boucle la plus couramment utilisée est la <strong>for</strong> boucle, qui se répète un nombre précis de fois. Une boucle for exécute un bloc de code à plusieurs reprises, avec une variable de boucle qui change à chaque itération. Tu contrôles exactement le nombre de fois où elle s’exécute.

Syntaxe :

for (initialization; condition; increment) begin
  // Code à répéter
end
PartieCe que cela faitExemple
initializationDéfinit la valeur de départi = 0
conditionDétermine quand s’arrêteri < 10
incrementChange à chaque loopi = i + 1

Exemple simple

integer i;

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

Sortie :

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

La boucle s’exécute 5 fois (i = 0, 1, 2, 3, 4).

Boucle For dans les bancs de test

Les boucles For sont couramment utilisées pour tester toutes les combinaisons d’entrées :

integer test_value;

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

Cela teste les 16 valeurs possibles d’un signal de 4 bits.

Boucle for avec des tableaux

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

Cela initialise 10 emplacements mémoire.

Règles importantes

RègleExplication
La variable de Loop doit être integer ou reg Ne peut pas être wire
Utilisez begin/end pour plusieurs instructionsRequis pour plus d’une ligne
Évitez les boucles infiniesAssurez-vous que condition finisse par devenir fausse
À utiliser de préférence dans les bancs de testLa plupart des boucles ne sont pas synthétisables
challenge icon

Défi

Que faire :

Add la boucle for manquante pour afficher les nombres de 0 à 3.

Essayez vous-même

module for_challenge;
  integer i;
  
  initial begin
    $display("Printing 0 to 3:");
    
    // TODO: Ajouter une boucle for
    // Initialiser i = 0
    // Boucler tant que i < 4
    // Incrémenter i = i + 1
    // À l'intérieur, afficher avec : $display("i = %d", i);
    
    $finish;
  end
endmodule
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux

Entraînez-vous par vous-même : Compilateur Verilog en ligne