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

جملة If - Else

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

تسمح لك جملة if-else بالاختيار بين إجراءين مختلفين بناءً على شرط معين. إذا كان الشرط صحيحاً، يتم تنفيذ كتلة برمجية واحدة. أما إذا كان خاطئاً، فسيتم تنفيذ الكتلة الأخرى.

تمنح جملة if-else الكود الخاص بك نقطة اتخاذ قرار: قم بتنفيذ إجراء معين إذا كان الشرط صحيحاً (true)، وقم بتنفيذ إجراء آخر إذا كان الشرط خاطئاً (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كن حذراً عند التداخل
استخدم begin/end لعدة جمل برمجيةمطلوب لأكثر من سطر واحد
challenge icon

التحدي

ماذا تفعل:

  1. أضف جملة if-else المفقودة لجعل هذا يعمل.
  2. عندما يكون enable هو 1، يجب أن يساوي out القيمة a & b.
  3. عندما يكون enable هو 0، يجب أن يساوي out القيمة a | b.

ورقة مرجعية

تنفذ جملة if-else واحدة من كتلتين بناءً على شرط معين:

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

قم بربط شروط متعددة باستخدام else if:

if (a > b) begin
  max = a;
end else if (b > a) begin
  max = b;
end else begin
  max = a; // a و b متساويان
end
  • else اختيارية
  • استخدم begin/end عندما توجد جمل برمجية متعددة داخل الكتلة
  • تتبع else دائماً أقرب if لها

جرّب بنفسك

module ifelse_challenge;
  reg a, b, enable;
  reg out;
  
  initial begin
    a = 1;
    b = 0;
    enable = 1;
    
    // مهام: أضف جملة 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اختبر نفسك

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

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