Menu
Coddy logo textTech

4'e 1 Mux Tasarımı

Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası — ders 65 / 90.

challenge icon

Görev

4-e-1 Çoklayıcı (Multiplexer)

4-e-1 çoklayıcının dört veri girişi (in0, in1, in2, in3), iki seçim biti (sel[1:0]) ve bir çıkışı (out) vardır. İki seçim biti, hangi girişin çıkışa aktarılacağını belirler:

  • sel = 2'b00 olduğunda, çıkış in0 olur
  • sel = 2'b01 olduğunda, çıkış in1 olur
  • sel = 2'b10 olduğunda, çıkış in2 olur
  • sel = 2'b11 olduğunda, çıkış in3 olur

Bu çoklayıcıyı iki şekilde oluşturacaksınız: önce if-else ifadelerini kullanarak, ardından bir sonraki derste case ifadesini kullanarak. Her iki yöntem de çalışır, ancak çok sayıda seçenek olduğunda case genellikle daha temizdir.

Bir 4-e-1 çoklayıcı, dört girişten birini seçer ve 2 bitlik bir seçim sinyaline dayanarak bunu çıkışa aktarır.

Doğruluk Tablosu

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

sel değeri 00 olduğunda, çıkış in0 girişini takip eder. sel değeri 01 olduğunda, çıkış in1 girişini takip eder. sel değeri 10 olduğunda, çıkış in2 girişini takip eder. sel değeri 11 olduğunda, çıkış in3 girişini takip eder.

Yapılacaklar:

  1. mux4to1 adında bir modül oluşturun
  2. in0 girişini ekleyin (1 bit)
  3. in1 girişini ekleyin (1 bit)
  4. in2 girişini ekleyin (1 bit)
  5. in3 girişini ekleyin (1 bit)
  6. sel girişini ekleyin (2 bit)
  7. out çıkışını ekleyin (1 bit, reg tipinde)
  8. Bir always @(*) bloğu ekleyin
  9. İçine, sel değerini kontrol eden bir if-else ifadesi ekleyin:
    • Eğer sel == 2'b00 ise, out = in0 yapın
    • Değilse, eğer sel == 2'b01 ise, out = in1 yapın
    • Değilse, eğer sel == 2'b10 ise, out = in2 yapın
    • Değilse, out = in3 yapın
  10. endmodule ile kapatın

Kendin dene

// Adım 1: mux4to1 adında modül oluşturun


  // Adım 2: in0 girişini ekleyin
  
  // Adım 3: in1 girişini ekleyin
  
  // Adım 4: in2 girişini ekleyin
  
  // Adım 5: in3 girişini ekleyin
  
  // Adım 6: sel girişini ekleyin (2 bit)
  
  // Adım 7: out çıkışını ekleyin (reg tipi)
  

  // Adım 8: always @(*) bloğu ekleyin
  

    // Adım 9: if-else ifadesi ekleyin
    // eğer sel == 2'b00 ise, out = in0
    // değilse eğer sel == 2'b01 ise, out = in1
    // değilse eğer sel == 2'b10 ise, out = in2
    // değilse, out = in3
    

// Adım 10: Endmodule

Temeller bölümündeki tüm dersler