Menu
Coddy logo textTech

Operatory porównania

Część sekcji Podstawy ścieżki Verilog w Coddy. Lekcja 21 z 90.

Operatory porównania porównują dwie wartości i zwracają 1 (prawda) albo 0 (fałsz).

Dostępne operatory porównania

OperatorZnaczenie
==Równe
!=Różne
>Większe niż
<Mniejsze niż
>=Większe lub równe
<=Mniejsze lub równe

Przykład kodu

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 (fałsz)
    
    result = (a != b);
    $display("5 != 3 : %d", result);  // 1 (prawda)
    
    result = (a > b);
    $display("5 > 3  : %d", result);  // 1 (prawda)
    
    result = (a < b);
    $display("5 < 3  : %d", result);  // 0 (fałsz)
    
    result = (a >= 5);
    $display("5 >= 5 : %d", result);  // 1 (prawda)
    
    result = (a <= 3);
    $display("5 <= 3 : %d", result);  // 0 (fałsz)
    $finish;
  end
endmodule

Wynik:

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

Używanie porównań w warunkach

Porównania są często używane w instrukcjach if:

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

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

Ważne uwagi

  • Wyniki porównań to wartości 1-bitowe (0 lub 1)
  • Porównania działają z dowolną szerokością bitową
  • Uważaj na == i !=, gdy sygnały zawierają X lub Z (zwrócą X)
challenge icon

Wyzwanie

Zapisz poprawne wyrażenia porównujące dla każdego zadania.

Co należy zrobić:

  1. Sprawdź, czy a jest równe b, i zapisz wynik w eq
  2. Sprawdź, czy a jest większe niż b, i zapisz wynik w gt
  3. Sprawdź, czy a jest mniejsze lub równe b, i zapisz wynik w le

Spróbuj swoich sił

module comparison_challenge;
  reg [3:0] a, b;
  reg eq, gt, le;
  
  initial begin
    a = 4'd7;
    b = 4'd7;
    
    eq = ______;   // a jest równe b
    gt = ______;   // a jest większe od b
    le = ______;   // a jest mniejsze od b lub równe 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 iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Verilog online