تصميم Mux 4 إلى 1
جزء من قسم الأساسيات في رحلة Verilog على Coddy — الدرس 65 من 90.
التحدي
جامع متعدد الإشارات 4 إلى 1 (4-to-1 Multiplexer)
يحتوي الجامع المتعدد الإشارات 4 إلى 1 على أربعة مدخلات للبيانات (in0، in1، in2، in3)، وبِتين للاختيار (sel[1:0])، ومخرج واحد (out). يحدد بِتا الاختيار أي مدخل يتم يمريره إلى المخرج:
- عندما يكون
sel = 2'b00، المخرج هوin0 - عندما يكون
sel = 2'b01، المخرج هوin1 - عندما يكون
sel = 2'b10، المخرج هوin2 - عندما يكون
sel = 2'b11، المخرج هوin3
ستقوم بإنشاء هذا الجامع المتعدد بطريقتين: أولاً باستخدام عبارات if-else، ثم في الدرس القادم باستخدام عبارة case. كلا الطريقتين تعطيان نفس النتيجة، لكن case تكون عادةً أكثر ترتيباً عندما يكون لديك العديد من الخيارات.
يقوم الجامع المتعدد 4 إلى 1 باختيار واحد من أربعة مدخلات ويمرره إلى المخرج بناءً على إشارة اختيار مكونة من 2-bit.
جدول الحقيقة (Truth Table)
| sel1 | sel0 | out |
|---|---|---|
| 0 | 0 | out = in0 |
| 0 | 1 | out = in1 |
| 1 | 0 | out = in2 |
| 1 | 1 | out = in3 |
عندما يكون sel هو 00، يتبع المخرج in0. وعندما يكون sel هو 01، يتبع المخرج in1. وعندما يكون sel هو 10، يتبع المخرج in2. وعندما يكون sel هو 11، يتبع المخرج in3.
الخطوات المطلوبة:
- أنشئ وحدة (module) باسم
mux4to1 - أضف المدخل
in0(بِحجم 1 bit) - أضف المدخل
in1(بِحجم 1 bit) - أضف المدخل
in2(بِحجم 1 bit) - أضف المدخل
in3(بِحجم 1 bit) - أضف المدخل
sel(بِحجم 2 bits) - أضف المخرج
out(بِحجم 1 bit، من النوعreg) - أضف كُتلة
always @(*) - بداخلها، أضف عبارة
if-elseتفحصsel:- إذا كان
sel == 2'b00، اجعلout = in0 - وإلا إذا كان
sel == 2'b01، اجعلout = in1 - وإلا إذا كان
sel == 2'b10، اجعلout = in2 - وإلا، اجعل
out = in3
- إذا كان
- أغلق باستخدام
endmodule
جرّب بنفسك
// الخطوة 1: أنشئ module باسم mux4to1
// الخطوة 2: أضف مدخل in0
// الخطوة 3: أضف مدخل in1
// الخطوة 4: أضف مدخل in2
// الخطوة 5: أضف مدخل in3
// الخطوة 6: أضف مدخل sel (2 بتات)
// الخطوة 7: أضف مخرج out (نوع reg)
// الخطوة 8: أضف كتلة always @(*)
// الخطوة 9: أضف عبارة if-else
// إذا كان sel == 2'b00، out = in0
// وإلا إذا كان sel == 2'b01، out = in1
// وإلا إذا كان sel == 2'b10، out = in2
// وإلا، out = in3
// الخطوة 10: Endmoduleجميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)معاملات المقارنةملخص - رياضيات بسيطةمعاملات Bitwise7التعيين والبوابات المنطقية
التعيين المستمرالتعيين باستخدام العملياتالبوابات الأساسية المدمجةبوابات AND و OR و NOTبوابات XOR و XNORمراجعة - دارة البوابات المنطقية5المعاملات - الجزء الثاني
المعاملات المنطقيةمعاملات الاختزالمعاملات الإزاحةمعامل الدمجالمعامل الشرطيمراجعة - تحدي المعاملات3أنظمة العد
التمثيل الثنائيالأعداد محددة الحجمالأعداد غير محددة الحجمالأعداد السالبةالقيم الخاصة X و Zمراجعة - تنسيقات الأعداد6الوحدات
هيكل الوحدةمنافذ الإدخال والإخراجمنافذ Inoutاستدعاء الوحداتربط المنافذ بالاسمربط المنافذ بالترتيبمراجعة - بناء وحدة