4'e 1 Mux Tasarımı
Coddy'nin Verilog Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 65 / 90.
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'b00olduğunda çıkışin0olursel = 2'b01olduğunda çıkışin1olursel = 2'b10olduğunda çıkışin2olursel = 2'b11olduğunda çıkışin3olur
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
| sel1 | sel0 | out |
|---|---|---|
| 0 | 0 | out = in0 |
| 0 | 1 | out = in1 |
| 1 | 0 | out = in2 |
| 1 | 1 | out = 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:
mux4to1adında bir modül oluşturunin0girişini ekleyin (1 bit)in1girişini ekleyin (1 bit)in2girişini ekleyin (1 bit)in3girişini ekleyin (1 bit)selgirişini ekleyin (2 bit)outçıkışını ekleyin (1 bit, türüreg)- Bir
always @(*)bloğu ekleyin - İçine,
seldeğerini kontrol eden birif-elseifadesi ekleyin:sel == 2'b00iseout = in0olarak ayarlayınsel == 2'b01değilse ve bu koşul sağlanıyorsaout = in1olarak ayarlayınsel == 2'b10değilse ve bu koşul sağlanıyorsaout = in2olarak ayarlayın- Aksi takdirde
out = in3olarak ayarlayın
endmoduleile 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: EndmoduleTemel Bilgiler bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerMod Alma OperatörüKarşılaştırma OperatörleriTekrar - Basit MatematikBit Düzeyi Operatörleri7Atama ve Kapılar
Sürekli AtamaOperatörlerle AtamaYerleşik Kapı PrimitifleriAND, OR ve NOT KapılarıXOR ve XNOR KapılarıÖzet - Mantık Kapısı Devresi10Karar Verme
If İfadesiIf - ElseTekrar - Basit KarşılaştırıcıCase İfadesiCasex ve CasezTekrar - ALU Tasarımı2Veri Türleri
Wire TürüReg TürüTamsayı ve GerçelVektörlerDizilerParametrelerÖzet - Sinyalleri Tanımlama5Operatörler Bölüm 2
Mantıksal Operatörlerİndirgeme OperatörleriKaydırma OperatörleriBirleştirme OperatörüKoşullu OperatörTekrar - Operatör Meydan Okuması11Döngüler
For DöngüsüWhile DöngüsüTekrar DöngüsüSonsuz DöngüDevre Dışı Bırakma İfadesiTekrar - Döngü Kalıpları3Sayı Sistemi
İkili GösterimBoyutlu SayılarBoyutsuz SayılarNegatif SayılarÖzel X ve Z DeğerleriTekrar - Sayı Biçimleri6Modüller
Modül YapısıGiriş ve Çıkış PortlarıÇift Yönlü PortlarModül ÖrneklendirmeAda Göre Port EşlemeSıraya Göre Port EşlemeTekrar - Bir Modül Oluşturma9Prosedürel Bloklar
Always BloğuInitial BloğuDuyarlılık ListesiBloklayıcı AtamaBloklamayan AtamaTekrar - Always ve Initial Karşılaştırması15Trafik Işığı Denetleyicisi
Durumları TanımlamaDurum Makinesi MantığıKendi başına pratik yap: Online Verilog derleyicisi