Menu
Coddy logo textTech

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 d'essai (testbenches) pour générer des motifs de test répétitifs, initialiser la mémoire et itérer sur des tableaux. Contrairement aux descriptions matérielles qui s'exécutent en parallèle, les boucles s'exécutent de manière séquentielle, ce qui les rend idéales pour la simulation et les tests.

La boucle la plus couramment utilisée est la boucle <strong>for</strong>, qui se répète un nombre spécifique de fois. Une boucle for exécute un bloc de code de manière répétée, avec une variable de boucle qui change à chaque itération. Vous contrôlez exactement combien de fois elle s'exécute.

Syntaxe :

for (initialization; condition; increment) begin
  // Code à répéter
end
PartieRôleExemple
initializationDéfinit la valeur de départi = 0
conditionQuand 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

Résultat :

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 (Testbenches)

Les boucles for sont couramment utilisées pour tester toutes les combinaisons d'entrées :

reg [3:0] test_value;

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

Ceci 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

Ceci initialise 10 emplacements de mémoire.

Règles importantes

RègleExplication
La variable de boucle 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 la condition finit par devenir fausse
À utiliser de préférence dans les bancs d'essaiLa plupart des boucles ne sont pas synthétisables
challenge icon

Défi

Ce qu'il faut faire :

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

Aide-mémoire

La boucle for en Verilog répète un bloc de code un nombre spécifique de fois :

for (initialization; condition; increment) begin
  // Code à répéter
end

Exemple affichant de 0 à 4 :

integer i;

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

Règles clés :

  • La variable de boucle doit être de type integer ou reg (pas wire)
  • Utilisez begin/end pour plusieurs instructions
  • Assurez-vous que la condition finit par devenir fausse pour éviter les boucles infinies
  • Les boucles sont principalement utilisées dans les bancs d'essai (testbenches) (généralement non synthétisables)

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 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