Menu
Coddy logo textTech

If - Else

Fait partie de la section Fondamentaux du Journey Verilog de Coddy — leçon 53 sur 90.

L'instruction if-else vous permet de choisir entre deux actions différentes en fonction d'une condition. Si la condition est vraie, un bloc s'exécute. Si elle est fausse, l'autre bloc s'exécute.

L'instruction if-else donne à votre code un point de décision : faire une chose si la condition est vraie, faire une autre chose si la condition est fausse.

Syntaxe :

if (condition) begin
  // S'exécute quand la condition est vraie (1)
end else begin
  // S'exécute quand la condition est fausse (0)
end

Exemple simple

if (reset) begin
  count = 0;
end else begin
  count = count + 1;
end
  • Si reset est 1 → count devient 0
  • Si reset est 0 → count augmente de 1

Instructions multiples

Utilisez begin et end lorsque vous avez plus d'une instruction :

if (enable) begin
  out = data_in;
  valid = 1;
end else begin
  out = 0;
  valid = 0;
end

If-Else avec plusieurs conditions

Vous pouvez enchaîner des instructions if-else :

if (a > b) begin
  max = a;
end else if (b > a) begin
  max = b;
end else begin
  max = a;  // a et b sont égaux
end

Règles importantes

RègleExplication
else est facultatifVous pouvez avoir if sans else
else appartient au if le plus procheFaites attention à l'imbrication
Utilisez begin/end pour plusieurs instructionsRequis pour plus d'une ligne
challenge icon

Défi

Ce qu'il faut faire :

  1. Ajoutez l'instruction if-else manquante pour faire fonctionner ceci.
  2. Lorsque enable est 1, out doit être égal à a & b.
  3. Lorsque enable est 0, out doit être égal à a | b.

Aide-mémoire

L'instruction if-else exécute l'un des deux blocs en fonction d'une condition :

if (condition) begin
  // S'exécute quand la condition est vraie (1)
end else begin
  // S'exécute quand la condition est fausse (0)
end

Enchaînez plusieurs conditions avec else if :

if (a > b) begin
  max = a;
end else if (b > a) begin
  max = b;
end else begin
  max = a; // a et b sont égaux
end
  • else est facultatif
  • Utilisez begin/end lorsque plusieurs instructions sont présentes dans un bloc
  • else appartient toujours à l'instruction if la plus proche

Essayez vous-même

module ifelse_challenge;
  reg a, b, enable;
  reg out;
  
  initial begin
    a = 1;
    b = 0;
    enable = 1;
    
    // TODO: Ajouter une instruction if-else
    // Si enable est 1 : out = a & b
    // Sinon : out = a | b
    
    $display("out = %d (should be 0 because 1&0=0)", out);
    $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