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

تصميم Mux 2 إلى 1

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

challenge icon

التحدي

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

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

2-to-1 Multiplexer

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

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

يختار المُجمّع 2-to-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: أنشئ وحدة باسم mux2to1


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

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

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

// الخطوة 8: Endmodule

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