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-e-1 Çoklayıcı (Multiplexer)
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ı 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 şekilde oluşturacaksınız: önce if-else ifadelerini kullanarak, ardından bir sonraki derste case ifadesini kullanarak. Her iki yöntem de çalışır, ancak çok sayıda seçenek olduğunda case genellikle daha temizdir.
Bir 4-e-1 çoklayıcı, dört girişten birini seçer ve 2 bitlik bir seçim sinyaline dayanarak 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 girişini takip eder. sel değeri 01 olduğunda, çıkış in1 girişini takip eder. sel değeri 10 olduğunda, çıkış in2 girişini takip eder. sel değeri 11 olduğunda, çıkış in3 girişini takip eder.
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,regtipinde)- Bir
always @(*)bloğu ekleyin - İçine,
seldeğerini kontrol eden birif-elseifadesi ekleyin:- Eğer
sel == 2'b00ise,out = in0yapın - Değilse, eğer
sel == 2'b01ise,out = in1yapın - Değilse, eğer
sel == 2'b10ise,out = in2yapın - Değilse,
out = in3yapın
- Eğer
endmoduleile kapatın
Kendin dene
// Adım 1: mux4to1 adında modül oluşturun
// Adım 2: in0 girişini ekleyin
// Adım 3: in1 girişini ekleyin
// Adım 4: in2 girişini ekleyin
// Adım 5: in3 girişini ekleyin
// Adım 6: sel girişini ekleyin (2 bit)
// Adım 7: out çıkışını ekleyin (reg tipi)
// Adım 8: always @(*) bloğu ekleyin
// Adım 9: if-else ifadesi ekleyin
// eğer sel == 2'b00 ise, out = in0
// değilse eğer sel == 2'b01 ise, out = in1
// değilse eğer sel == 2'b10 ise, out = in2
// değilse, 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ığı