جملة 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 → يصبحcount0 - إذا كان
resetيساوي 0 → يزدادcountبمقدار 1
عبارات متعددة
استخدم begin و end عندما يكون لديك أكثر من عبارة برمجية واحدة:
if (enable) begin
out = data_in;
valid = 1;
end else begin
out = 0;
valid = 0;
endIf-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 للجمل المعتددة | مطلوب لأكثر من سطر واحد |
التحدي
ما يجب القيام به:
- قم بـ
Addجملةif-elseالمفقودة لجعل هذا يعمل. whenيكونenableهو 1،shouldأن يكونoutمساوياً لـa & b(أيequal).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يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)معاملات المقارنةملخص - رياضيات بسيطةمعاملات Bitwise7التعيين والبوابات المنطقية
التعيين المستمرالتعيين باستخدام العملياتالبوابات الأساسية المدمجةبوابات AND و OR و NOTبوابات XOR و XNORمراجعة - دارة البوابات المنطقية5المعاملات - الجزء الثاني
المعاملات المنطقيةمعاملات الاختزالمعاملات الإزاحةمعامل الدمجالمعامل الشرطيمراجعة - تحدي المعاملات3أنظمة العد
التمثيل الثنائيالأعداد محددة الحجمالأعداد غير محددة الحجمالأعداد السالبةالقيم الخاصة X و Zمراجعة - تنسيقات الأعداد6الوحدات
هيكل الوحدةمنافذ الإدخال والإخراجمنافذ Inoutاستدعاء الوحداتربط المنافذ بالاسمربط المنافذ بالترتيبمراجعة - بناء وحدة