Menu
Coddy logo textTech

Operadores de Comparação

Parte da seção Fundamentos do Journey de Verilog da Coddy — lição 21 de 90.

Operadores de comparação comparam dois valores e retornam 1 (verdadeiro) ou 0 (falso).

Operadores de Comparação Disponíveis

OperadorSignificado
==Igual a
!=Diferente de
>Maior que
<Menor que
>=Maior ou igual a
<=Menor ou igual a

Exemplo 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 (verdadeiro)
    
    result = (a > b);
    $display("5 > 3  : %d", result);  // 1 (verdadeiro)
    
    result = (a < b);
    $display("5 < 3  : %d", result);  // 0 (falso)
    
    result = (a >= 5);
    $display("5 >= 5 : %d", result);  // 1 (verdadeiro)
    
    result = (a <= 3);
    $display("5 <= 3 : %d", result);  // 0 (falso)
    $finish;
  end
endmodule

Saída:

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

Usando Comparações em Condições

Comparações são frequentemente usadas em instruções if:

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

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

Notas Importantes

  • Resultados de comparação são valores de 1 bit (0 ou 1)
  • Comparações funcionam com qualquer largura de bit
  • Tenha cuidado com == e != quando os sinais contiverem X ou Z (eles retornarão X)
challenge icon

Desafio

Escreva as expressões de comparação corretas para cada tarefa.

O que fazer:

  1. Verifique se a é igual a b e armazene em eq
  2. Verifique se a é maior que b e armazene em gt
  3. Verifique se a é menor ou igual a b e armazene em le

Folha de consulta

Os operadores de comparação em Verilog comparam dois valores e retornam 1 (verdadeiro) ou 0 (falso).

OperadorSignificado
==Igual a
!=Diferente de
>Maior que
<Menor que
>=Maior ou igual a
<=Menor ou igual a

As comparações são comumente usadas em instruções if:

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

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

Nota: Os resultados são valores de 1 bit. O uso de == ou != com sinais contendo X ou Z retornará X.

Experimente você mesmo

module comparison_challenge;
  reg [3:0] a, b;
  reg eq, gt, le;
  
  initial begin
    a = 4'd7;
    b = 4'd7;
    
    eq = ______;   // a igual a b
    gt = ______;   // a maior que b
    le = ______;   // a menor ou igual a 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 iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos