Menu
Coddy logo textTech

Operadores de comparación

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

Los operadores de comparación comparan dos valores y devuelven 1 (verdadero) o 0 (falso).

Operadores de comparación disponibles

OperadorSignificado
==Igual a
!=No es igual a
>Mayor que
<Menor que
>=Mayor o igual que
<=Menor o igual que

Ejemplo de código

module comparison_demo;
  reg [3:0] a, b;
  reg result;
  
  initial begin
    a = 5;
    b = 3;
    
    result = (a == b);
    $display("5 == 3 : %d", result);  // 0 (falso)
    
    result = (a != b);
    $display("5 != 3 : %d", result);  // 1 (verdadero)
    
    result = (a > b);
    $display("5 > 3  : %d", result);  // 1 (verdadero)
    
    result = (a < b);
    $display("5 < 3  : %d", result);  // 0 (falso)
    
    result = (a >= 5);
    $display("5 >= 5 : %d", result);  // 1 (verdadero)
    
    result = (a <= 3);
    $display("5 <= 3 : %d", result);  // 0 (falso)
    $finish;
  end
endmodule

Resultado:

5 == 3 : 0
5 != 3 : 1
5 > 3  : 1
5 < 3  : 0
5 >= 5 : 1
5 <= 3 : 0

Uso de comparaciones en condiciones

Las comparaciones se utilizan a menudo en sentencias if:

if (count == 10)
  $display("Reached maximum");

if (value > threshold)
  $display("Value is too high");

Notas importantes

  • Los resultados de la comparación son valores de 1 bit (0 o 1)
  • Las comparaciones funcionan con cualquier ancho de bits
  • Tenga cuidado con == y != cuando las señales contienen X o Z (devolverán X)
challenge icon

Desafío

Escribe las expresiones de comparación correctas para cada tarea.

Qué hacer:

  1. Comprueba si a es igual a b y almacénalo en eq
  2. Comprueba si a es mayor que b y almacénalo en gt
  3. Comprueba si a es menor o igual que b y almacénalo en le

Hoja de referencia

Los operadores de comparación en Verilog comparan dos valores y devuelven 1 (verdadero) o 0 (falso).

OperadorSignificado
==Igual a
!=No igual a
>Mayor que
<Menor que
>=Mayor o igual que
<=Menor o igual que

Las comparaciones se utilizan comúnmente en sentencias if:

if (count == 10)
  $display("Reached maximum");

if (value > threshold)
  $display("Value is too high");

Nota: Los resultados son valores de 1 bit. El uso de == o != con señales que contienen X o Z devolverá X.

Pruébalo tú mismo

module comparison_challenge;
  reg [3:0] a, b;
  reg eq, gt, le;
  
  initial begin
    a = 4'd7;
    b = 4'd7;
    
    eq = ______;   // a es igual a b
    gt = ______;   // a es mayor que b
    le = ______;   // a es menor o igual que b
    
    $display("a = %d, b = %d", a, b);
    $display("a == b : %d", eq);
    $display("a > b  : %d", gt);
    $display("a <= b : %d", le);
    $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