Menu
Coddy logo textTech

4 To 1 Mux Design

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

challenge icon

Görev

4'e 1 Multiplexer

4'e 1 multiplexer'ı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 multiplexer'ı iki şekilde oluşturacaksın: önce if-else ifadelerini kullanarak, ardından sonraki derste case ifadesini kullanarak. Her iki yöntem de çalışır, ancak birçok seçeneğiniz olduğunda case genellikle daha temizdir.

4'e 1 multiplexer, dört girişten birini seçer ve 2 bitlik seçim sinyaline göre bu girişi çı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 takip eder. sel değeri 01 olduğunda çıkış in1 değerini takip eder. sel değeri 10 olduğunda çıkış in2 değerini takip eder. sel değeri 11 olduğunda çıkış in3 değerini takip eder.

Yapılacaklar:

  1. Create bir module named mux4to1
  2. Add input in0 (1 bit)
  3. Add input in1 (1 bit)
  4. Add input in2 (1 bit)
  5. Add input in3 (1 bit)
  6. Add input sel (2 bit)
  7. Add output out (1 bit, type reg)
  8. Add bir always @(*) block
  9. İçine, sel değerini kontrol eden bir if-else statement ekle:
    • sel == 2'b00 ise out = in0 olarak ayarla
    • sel == 2'b01 else if ise out = in1 olarak ayarla
    • sel == 2'b10 else if ise out = in2 olarak ayarla
    • Else, out = in3 olarak ayarla
  10. endmodule ile kapat

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

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

Kendi başına pratik yap: Online Verilog derleyicisi