Menu
Coddy logo textTech

4'e 1 Mux Tasarımı

Coddy'nin Verilog Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 65 / 90.

challenge icon

Görev

4'e-1 Çoklayıcı

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ı seçer:

  • 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 sonraki derste case ifadesini kullanarak. Her iki yöntem de çalışır, ancak çok sayıda seçeneğiniz olduğunda case genellikle daha temizdir.

4'e-1 çoklayıcı, dört girişten birini seçer ve 2 bitlik bir seçim sinyaline göre 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 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 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, türü reg)
  8. Bir always @(*) bloğu ekleyin
  9. İçine, sel değerini kontrol eden bir if-else ifadesi ekleyin:
    • sel == 2'b00 ise out = in0 olarak ayarlayın
    • sel == 2'b01 değilse ve bu koşul sağlanıyorsa out = in1 olarak ayarlayın
    • sel == 2'b10 değilse ve bu koşul sağlanıyorsa out = in2 olarak ayarlayın
    • Aksi takdirde 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
    // aksi halde, out = in3
    

// Adım 10: Endmodule

Temel Bilgiler bölümündeki tüm dersler

Kendi başına pratik yap: Online Verilog derleyicisi