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

جملة If - Else

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

تتيح لك تعليمة if-else الاختيار بين إجراءين مختلفين بناءً على condition. إذا كانت الـ condition صحيحة (true)، يتم تنفيذ كتل برمجية واحدة. وإذا كانت خاطئة (false)، يتم تنفيذ الكتلة البرمجية الأخرى.

تُعطي جملة if-else كودك نقطة اتخاذ قرار: افعل شيئًا واحدًا إذا كان الـ condition صحيحًا (true)، وافعل شيئًا آخر إذا كان الـ condition خاطئًا (false).

الصيغة:

if (condition) begin
  // يُنفَّذ عندما يكون الشرط صحيحًا (1)
end else begin
  // يُنفَّذ عندما يكون الشرط خاطئًا (0)
end

مثال بسيط

if (reset) begin
  count = 0;
end else begin
  count = count + 1;
end
  • إذا كان reset يساوي 1 → يصبح count 0
  • إذا كان reset يساوي 0 → يزداد count بمقدار 1

عبارات متعددة

استخدم begin و end عندما يكون لديك أكثر من عبارة برمجية واحدة:

if (enable) begin
  out = data_in;
  valid = 1;
end else begin
  out = 0;
  valid = 0;
end

If-Else بشروط متعددة

يمكنك ربط جمل if-else معاً:

if (a > b) begin
  max = a;
end else if (b > a) begin
  max = b;
end else begin
  max = a;  // a و b متساويان
end

قواعد مهمة

القاعدةالشرح
else اختيارييمكنك استخدام if بدون else
else يتبع أقرب ifكن حذراً مع التداخل (nesting)
استخدم begin/end للجمل المعتددةمطلوب لأكثر من سطر واحد
challenge icon

التحدي

ما يجب القيام به:

  1. قم بـ Add جملة if-else المفقودة لجعل هذا يعمل.
  2. when يكون enable هو 1، should أن يكون out مساوياً لـ a & b (أي equal).
  3. when يكون enable هو 0، should أن يكون out مساوياً لـ a | b (أي equal).

جرّب بنفسك

module ifelse_challenge;
  reg a, b, enable;
  reg out;
  
  initial begin
    a = 1;
    b = 0;
    enable = 1;
    
    // TODO: أضف عبارة if-else
    // إذا كان enable يساوي 1: out = a & b
    // وإلا: out = a | b
    
    $display("out = %d (should be 0 because 1&0=0)", out);
    $finish;
  end
endmodule
quiz iconاختبر نفسك

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

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