Menu
Coddy logo textTech

比較演算子

CoddyのVerilogジャーニー「基礎」セクションの一部 — レッスン 21/90。

比較演算子は2つの値を比較し、1(真)または0(偽)を返します。

利用可能な比較演算子

演算子意味
==等しい
!=等しくない
>より大きい
<より小さい
>=以上
<=以下

コード例

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

出力:

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

条件における比較の使用

比較は、しばしばif文で使用されます:

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

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

重要な注意事項

  • 比較結果は1ビットの値(0または1)です
  • 比較は任意のビット幅で動作します
  • 信号にXまたはZが含まれている場合、==および!=の使用には注意してください(これらはXを返します)
challenge icon

チャレンジ

各タスクに対して正しい比較式を記述してください。

行うべきこと:

  1. ab と等しいかを確認し、eq に格納する
  2. ab より大きいかを確認し、gt に格納する
  3. ab 以下であるかを確認し、le に格納する

チートシート

Verilogの比較演算子は2つの値を比較し、1(真)または0(偽)を返します。

演算子意味
==等しい
!=等しくない
>より大きい
<より小さい
>=以上
<=以下

比較は一般的にif文で使用されます:

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

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

注意:結果は1ビットの値です。XまたはZを含む信号に対して==または!=を使用すると、Xが返されます。

自分で試してみよう

module comparison_challenge;
  reg [3:0] a, b;
  reg eq, gt, le;
  
  initial begin
    a = 4'd7;
    b = 4'd7;
    
    eq = ______;   // a と b は等しい
    gt = ______;   // a は b より大きい
    le = ______;   // 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 icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン