استخدام جملة Case
جزء من قسم الأساسيات في رحلة Verilog على Coddy — الدرس 66 من 90.
التحدي
قم ببناء مُبدل (multiplexer) بنسبة 4 إلى 1 باستخدام جملة case بدلاً من if-else.
جدول الحقيقة (Truth Table)
| sel | out |
|---|---|
| 00 | out = in0 |
| 01 | out = in1 |
| 10 | out = in2 |
| 11 | out = in3 |
ما يجب القيام به:
- قم بإنشاء وحدة (module) باسم
mux4to1_case - أضف المدخلات
in0،in1،in2،in3(بت واحد لكل منها) - أضف المدخل
sel(بتان) - أضف المخرج
out(بت واحد، من نوعreg) - أضف كتلة
always @(*) - بالداخل، أضف جملة
case (sel) - أضف حالات لـ
2'b00،2'b01،2'b10،2'b11 - أضف حالة
default - أغلق بـ
endcaseوendmodule
جرّب بنفسك
// TODO: أنشئ وحدة (module) باسم mux4to1_case
// TODO: أضف المدخلات: in0، in1، in2، in3 (بت واحد لكل منها)
// TODO: أضف المدخل sel (بتان)
// TODO: أضف المخرج out (من النوع reg)
// TODO: أضف كتلة always @(*) block
// TODO: أضف case (sel)
// TODO: أضف الحالة 2'b00: out = in0;
// TODO: أضف الحالة 2'b01: out = in1;
// TODO: أضف الحالة 2'b10: out = in2;
// TODO: أضف الحالة 2'b11: out = in3;
// TODO: أضف الحالة الافتراضية default: out = in0;
// TODO: أضف endcase
// TODO: أضف endmoduleجميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)معاملات المقارنةملخص - رياضيات بسيطةمعاملات Bitwise7التعيين والبوابات المنطقية
التعيين المستمرالتعيين باستخدام العملياتالبوابات الأساسية المدمجةبوابات AND و OR و NOTبوابات XOR و XNORمراجعة - دارة البوابات المنطقية5المعاملات - الجزء الثاني
المعاملات المنطقيةمعاملات الاختزالمعاملات الإزاحةمعامل الدمجالمعامل الشرطيمراجعة - تحدي المعاملات3أنظمة العد
التمثيل الثنائيالأعداد محددة الحجمالأعداد غير محددة الحجمالأعداد السالبةالقيم الخاصة X و Zمراجعة - تنسيقات الأعداد6الوحدات
هيكل الوحدةمنافذ الإدخال والإخراجمنافذ Inoutاستدعاء الوحداتربط المنافذ بالاسمربط المنافذ بالترتيبمراجعة - بناء وحدة