Menu
Coddy logo textTech

If - Else

Parte de la sección Fundamentos del Journey de Verilog de Coddy — lección 53 de 90.

La declaración if-else te permite elegir entre dos acciones diferentes según una condición. Si la condición es verdadera, se ejecuta un bloque. Si es falsa, se ejecuta el otro bloque.

La declaración if-else le da a tu código un punto de decisión: hace una cosa si la condición es verdadera, o hace otra cosa si la condición es falsa.

Sintaxis:

if (condition) begin
  // Se ejecuta cuando la condición es verdadera (1)
end else begin
  // Se ejecuta cuando la condición es falsa (0)
end

Ejemplo simple

if (reset) begin
  count = 0;
end else begin
  count = count + 1;
end
  • Si reset es 1 → count se convierte en 0
  • Si reset es 0 → count se incrementa en 1

Sentencias Múltiples

Usa begin y end cuando tengas más de una sentencia:

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

If-Else con múltiples condiciones

Puedes encadenar sentencias if-else:

if (a > b) begin
  max = a;
end else if (b > a) begin
  max = b;
end else begin
  max = a;  // a y b son iguales
end

Reglas importantes

ReglaExplicación
else es opcionalPuedes tener if sin else
else pertenece al if más cercanoTen cuidado con el anidamiento
Usa begin/end para múltiples sentenciasRequerido para más de una línea
challenge icon

Desafío

Qué hacer:

  1. Agrega la sentencia if-else que falta para hacer que esto funcione.
  2. Cuando enable sea 1, out debe ser igual a a & b.
  3. Cuando enable sea 0, out debe ser igual a a | b.

Pruébalo tú mismo

module ifelse_challenge;
  reg a, b, enable;
  reg out;
  
  initial begin
    a = 1;
    b = 0;
    enable = 1;
    
    // TODO: Añade una sentencia if-else
    // Si enable es 1: out = a & b
    // Si no: out = a | b
    
    $display("out = %d (should be 0 because 1&0=0)", out);
    $finish;
  end
endmodule
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos