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

2 To 1 Mux Design

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

challenge icon

التحدي

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

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

مُعدِّد إرسال من 2 إلى 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.

يختار multiplexer من 2 إلى 1 أحد مدخلين ويمرّره إلى المخرج استنادًا إلى إشارة اختيار.

جدول الحقيقة

 

selout
0out = in0
1out = in1

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

ما يجب فعله:

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

جرّب بنفسك

// الخطوة 1: أنشئ module باسم mux2to1


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

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

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

// الخطوة 8: Endmodule

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

تدرّب بنفسك: مترجم Verilog عبر الإنترنت