Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

تصميم Mux 4 إلى 1

جزء من قسم الأساسيات في رحلة Verilog على Coddy — الدرس 65 من 90.

challenge icon

التحدي

جامع متعدد الإشارات 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)

sel1sel0out
00out = in0
01out = in1
10out = in2
11out = in3

عندما يكون sel هو 00، يتبع المخرج in0. وعندما يكون sel هو 01، يتبع المخرج in1. وعندما يكون sel هو 10، يتبع المخرج in2. وعندما يكون sel هو 11، يتبع المخرج in3.

الخطوات المطلوبة:

  1. أنشئ وحدة (module) باسم mux4to1
  2. أضف المدخل in0 (بِحجم 1 bit)
  3. أضف المدخل in1 (بِحجم 1 bit)
  4. أضف المدخل in2 (بِحجم 1 bit)
  5. أضف المدخل in3 (بِحجم 1 bit)
  6. أضف المدخل sel (بِحجم 2 bits)
  7. أضف المخرج out (بِحجم 1 bit، من النوع reg)
  8. أضف كُتلة always @(*)
  9. بداخلها، أضف عبارة if-else تفحص sel:
    • إذا كان sel == 2'b00، اجعل out = in0
    • وإلا إذا كان sel == 2'b01، اجعل out = in1
    • وإلا إذا كان sel == 2'b10، اجعل out = in2
    • وإلا، اجعل out = in3
  10. أغلق باستخدام 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

جميع دروس الأساسيات