Menu
CoddyTech

Boucle For

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 motifs 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 for boucle, qui se répète un nombre précis de fois. Une boucle for exécute un bloc de code de façon répétée, avec une variable de boucle qui change à chaque itération. Tu contrôles exactement le nombre de fois qu’elle s’exécute.

Syntaxe :

for (initialization; condition; increment) begin
  // Code à répéter
end
PartieCe qu’elle faitExemple
initializationDéfinit la valeur de départi = 0
conditionIndique quand s’arrêteri < 10
incrementChange à chaque bouclei = 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 d’essai

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 boucle doit être de type integer ou reg Elle ne peut pas être de type wire
Utilisez begin/end pour plusieurs instructionsObligatoire pour plus d’une ligne
Évitez les boucles infiniesAssurez-vous que la condition finit par devenir fausse
Utilisez des bornes constantes dans le code synthétisableLa synthèse déroule la boucle en créant une copie de la logique pour chaque itération
challenge icon

Défi

Que faire :

Ajoute 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
    // Répéter la boucle tant que i < 4
    // Incrémenter i = i + 1
    // À l’intérieur de la boucle, 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