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 بت.

جدول الحقيقة (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 (بت واحد)
  3. أضف المدخل in1 (بت واحد)
  4. أضف المدخل in2 (بت واحد)
  5. أضف المدخل in3 (بت واحد)
  6. أضف المدخل sel (بتان)
  7. أضف المخرج out (بت واحد، من نوع 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
    // 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)

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