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

تصميم Mux 2 إلى 1

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

challenge icon

التحدي

المبدل (multiplexer - MUX) هو دائرة رقمية تختار أحد المدخلات المتعددة وتمرره إلى مخرج واحد بناءً على إشارة اختيار. فكر فيه كأنه محدد بيانات — لديك مدخلات متعددة، وتختار أي واحد منها يذهب إلى المخرج.

في هذا المشروع، ستقوم ببناء مبدلات بأحجام مختلفة باستخدام جمل if-else و case.

مبدل 2 إلى 1 (2-to-1 Multiplexer)

المبدل 2 إلى 1 هو أبسط أشكال المبدلات. يحتوي على مدخلين للبيانات (in0 و in1)، ومدخل اختيار واحد (sel)، ومخرج واحد (out). عندما تكون قيمة sel هي 0، يتبع المخرج قيمة in0. وعندما تكون قيمة sel هي 1، يتبع المخرج قيمة in1. ستقوم بتنفيذ ذلك باستخدام جملة if-else داخل كتلة always @(*).

مثال: إذا كان in0 = 0 و in1 = 1 و sel = 1، فإن out = 1.

يختار المبدل 2 إلى 1 أحد المدخلين ويمرره إلى المخرج بناءً على إشارة الاختيار.

جدول الحقيقة (Truth Table)

 

selout
0out = in0
1out = in1

عندما تكون قيمة sel هي 0، يتبع المخرج قيمة in0. وعندما تكون قيمة sel هي 1، يتبع المخرج قيمة in1.

ما يجب القيام به:

  1. أنشئ وحدة (module) باسم mux2to1
  2. أضف المدخل in0 (بت واحد)
  3. أضف المدخل in1 (بت واحد)
  4. أضف مدخل الاختيار sel (بت واحد)
  5. أضف المخرج out (بت واحد، من نوع reg)
  6. أضف كتلة always @(*)
  7. بالداخل، أضف جملة if-else:
    • إذا كان sel == 0، اجعل out = in0
    • وإلا، اجعل out = in1
  8. أغلق الوحدة بـ endmodule

جرّب بنفسك

// الخطوة 1: إنشاء وحدة (module) باسم mux2to1


  // الخطوة 2: إضافة المدخل in0
  
  // الخطوة 3: إضافة المدخل in1
  
  // الخطوة 4: إضافة المدخل sel
  
  // الخطوة 5: إضافة المخرج out (من النوع reg)
  

  // الخطوة 6: إضافة كتلة always @(*)
  

    // الخطوة 7: إضافة جملة if-else
    // إذا كان sel == 0، فإن out = in0
    // وإلا، فإن out = in1
    

// الخطوة 8: نهاية الوحدة (Endmodule)

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