استخدام جملة Case
جزء من قسم الأساسيات في رحلة Verilog على Coddy — الدرس 66 من 90.
التحدي
قم ببناء موجه 4-إلى-1 (multiplexer) باستخدام عبارة 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(بتان 2) - أضف المخرج
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 (1 bit each)
// TODO: أضف مدخل sel (2 bits)
// TODO: أضف مخرج out (نوع reg)
// TODO: أضف كتلة always @(*)
// TODO: أضف case (sel)
// TODO: أضف case 2'b00: out = in0;
// TODO: أضف case 2'b01: out = in1;
// TODO: أضف case 2'b10: out = in2;
// TODO: أضف case 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استدعاء الوحداتربط المنافذ بالاسمربط المنافذ بالترتيبمراجعة - بناء وحدة