تصميم 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 بت.
جدول الحقيقة (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(بت واحد) - أضف المدخل
in1(بت واحد) - أضف المدخل
in2(بت واحد) - أضف المدخل
in3(بت واحد) - أضف المدخل
sel(بتان) - أضف المخرج
out(بت واحد، من نوع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
// if sel == 2'b00, out = in0
// else if sel == 2'b01, out = in1
// else if sel == 2'b10, out = in2
// else, out = in3
// الخطوة 10: إنهاء الوحدة (Endmodule)جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)معاملات المقارنةملخص - رياضيات بسيطةمعاملات Bitwise7التعيين والبوابات المنطقية
التعيين المستمرالتعيين باستخدام العملياتالبوابات الأساسية المدمجةبوابات AND و OR و NOTبوابات XOR و XNORمراجعة - دارة البوابات المنطقية5المعاملات - الجزء الثاني
المعاملات المنطقيةمعاملات الاختزالمعاملات الإزاحةمعامل الدمجالمعامل الشرطيمراجعة - تحدي المعاملات3أنظمة العد
التمثيل الثنائيالأعداد محددة الحجمالأعداد غير محددة الحجمالأعداد السالبةالقيم الخاصة X و Zمراجعة - تنسيقات الأعداد6الوحدات
هيكل الوحدةمنافذ الإدخال والإخراجمنافذ Inoutاستدعاء الوحداتربط المنافذ بالاسمربط المنافذ بالترتيبمراجعة - بناء وحدة