Kaydırma Yazmacı
Coddy'nin Verilog Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 86 / 90.
Görev
Bir kaydırma yazmacı, her saat kenarında veriyi soldan sağa kaydırır. Her bit bir sonraki konuma taşınır.
4 bitlik Kaydırma Yazmacı Nasıl Çalışır?
Initial: q0=0, q1=0, q2=0, q3=0
Each clock: q0 = d, q1 = old q0, q2 = old q1, q3 = old q2
Shifting in d = 1, 0, 1, 0:
Clock 1 (d=1): q0=1, q1=0, q2=0, q3=0
Clock 2 (d=0): q0=0, q1=1, q2=0, q3=0
Clock 3 (d=1): q0=1, q1=0, q2=1, q3=0
Clock 4 (d=0): q0=0, q1=1, q2=0, q3=14 saat döngüsünden sonra, ilk giriş biti q3'e ulaşır.
Modül Arayüzü
| Port | Yön | Genişlik | Açıklama |
|---|---|---|---|
clk | giriş | 1 bit | Saat sinyali |
reset | giriş | 1 bit | Tüm çıkışları 0'a sıfırla |
d | giriş | 1 bit | Veri girişi |
q0 | çıkış | 1 bit | İlk flip-flop çıkışı |
q1 | çıkış | 1 bit | İkinci flip-flop çıkışı |
q2 | çıkış | 1 bit | Üçüncü flip-flop çıkışı |
q3 | çıkış | 1 bit | Dördüncü flip-flop çıkışı |
Göreviniz aşağıdaki modülü tamamlamaktır.
Yapılacaklar:
resetdurumunda tüm çıkışları 0'a ayarlayın- Her yükselen saat kenarında veriyi soldan sağa kaydırın:
q0,ddeğerini alırq1, eskiq0değerini alırq2, eskiq1değerini alırq3, eskiq2değerini alır
Kendin dene
module shift_register (
input clk,
input reset,
input d,
output reg q0,
output reg q1,
output reg q2,
output reg q3
);
// TODO: always @(posedge clk or posedge reset) ekle
// Reset'te: q0<=0, q1<=0, q2<=0, q3<=0
// Else: veriyi kaydır: q0 <= d, q1 <= q0, q2 <= q1, q3 <= q2
endmodule
Temel 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