Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

معاملات المقارنة

جزء من قسم الأساسيات في رحلة Verilog على Coddy — الدرس 21 من 90.

تقارن معاملات المقارنة بين قيمتين وتعيد إما 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-bit) (0 أو 1)
  • تعمل المقارنات مع أي عرض للبتات (bit width)
  • كن حذرًا مع == و != عندما تحتوي الإشارات على X أو Z (ستقوم بإرجاع X)
challenge icon

التحدي

اكتب تعبيرات المقارنة الصحيحة لكل مهمة.

ماذا تفعل:

  1. تحقق مما إذا كان a يساوي b وقم بتخزينه في eq
  2. تحقق مما إذا كان a أكبر من b وقم بتخزينه في gt
  3. تحقق مما إذا كان a أقل من أو يساوي b وقم بتخزينه في le

ورقة مرجعية

تقارن معاملات المقارنة في Verilog بين قيمتين وتُرجع 1 (صحيح) أو 0 (خطأ).

المعاملالمعنى
==يساوي
!=لا يساوي
>أكبر من
<أصغر من
>=أكبر من أو يساوي
<=أصغر من أو يساوي

تُستخدم المقارنات بشكل شائع في جمل if:

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

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

ملاحظة: النتائج هي قيم بت واحد (1-bit). استخدام == أو != مع الإشارات التي تحتوي على 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اختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات