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-to-1 Multiplexer

4-to-1 çoklayıcı (multiplexer) dört veri girişine (in0, in1, in2, in3), iki seçici bite (sel[1:0]) ve bir çıkışa (out) sahiptir. İki seçici bit, 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 farklı yolla oluşturacaksınız: ilk olarak if-else ifadelerini kullanarak, ardından bir sonraki derste bir case ifadesi kullanarak. Her iki yöntem de çalışır, ancak çok sayıda seçenek olduğunda case kullanımı genellikle daha temizdir.

4-to-1 multiplexer, 2 bitlik bir seçici sinyale dayanarak dört girişten birini seçer ve bunu çıkışa aktarır.

Truth Table

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

sel değeri 00 olduğunda çıkış in0 değerini izler. sel değeri 01 olduğunda çıkış in1 değerini izler. sel değeri 10 olduğunda çıkış in2 değerini izler. sel değeri 11 olduğunda çıkış in3 değerini izler.

Yapılacaklar:

  1. mux4to1 adında bir module 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 bits)
  7. out çıkışını ekleyin (1 bit, type reg)
  8. Bir always @(*) bloğu ekleyin
  9. İçinde, sel kontrolü yapan bir if-else ifadesi ekleyin:
    • Eğer sel == 2'b00 ise, out = in0 olarak ayarlayın
    • Else if sel == 2'b01 ise, out = in1 olarak ayarlayın
    • Else if sel == 2'b10 ise, out = in2 olarak ayarlayın
    • Else ise, out = in3 olarak ayarlayın
  10. endmodule ile kapatın

Kendin dene

// Adım 1: mux4to1 adlı modülü oluştur


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

  // Adım 8: always @(*) bloğunu ekle
  

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

// Adım 10: Endmodule

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