4'e 1 Mux Tasarımı
Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası — ders 65 / 90.
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'b00olduğunda, çıkışin0olursel = 2'b01olduğunda, çıkışin1olursel = 2'b10olduğunda, çıkışin2olursel = 2'b11olduğunda, çıkışin3olur
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
| 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 module 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 bits)outçıkışını ekleyin (1 bit, typereg)- Bir
always @(*)bloğu ekleyin - İçinde,
selkontrolü yapan birif-elseifadesi ekleyin:- Eğer
sel == 2'b00ise,out = in0olarak ayarlayın - Else if
sel == 2'b01ise,out = in1olarak ayarlayın - Else if
sel == 2'b10ise,out = in2olarak ayarlayın - Else ise,
out = in3olarak ayarlayın
- Eğer
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
// else, out = in3
// Adım 10: EndmoduleTemeller bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüKarşılaştırma OperatörleriÖzet - Basit MatematikBitsel Operatörler7Atama ve Kapılar
Sürekli AtamaOperatörlerle AtamaYerleşik Kapı PrimitifleriAND OR NOT KapılarıXOR XNOR KapılarıÖzet - Mantık Kapısı Devresi10Karar Yapıları
If İfadesiIf - ElseÖzet - Basit KarşılaştırıcıCase İfadesiCasex ve CasezÖzet - ALU Tasarımı5Operatörler Bölüm 2
Mantıksal Operatörlerİndirgeme OperatörleriKaydırma OperatörleriBirleştirme OperatörüKoşullu OperatörÖzet - Operatör Meydan Okuması11Döngüler
For DöngüsüWhile DöngüsüRepeat DöngüsüSonsuz DöngüDevre Dışı Bırakma İfadesiÖzet - Döngü Kalıpları3Sayı Sistemleri
İkilik GösterimBoyutlandırılmış SayılarBoyutlandırılmamış SayılarNegatif SayılarÖzel Değerler X ve ZÖzet - Sayı Formatları6Modüller
Modül YapısıGiriş ve Çıkış PortlarıInout PortlarıModül Örneklendirmeİsme Göre Port EşlemeSıraya Göre Port EşlemeÖzet - Bir Modül Oluşturun9Prosedürel Bloklar
Always BloğuInitial BloğuDuyarlılık ListesiEngelleyici AtamaEngelleyici Olmayan AtamaÖzet - Always vs Initial15Trafik Işığı Kontrolcüsü
Durumları TanımlamaDurum Makinesi Mantığı