Menu
Coddy logo textTech

Kaydırma Yazmacı

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

challenge icon

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=1

4 saat döngüsünden sonra, ilk giriş biti q3'e ulaşır.

Modül Arayüzü

PortYönGenişlikAçıklama
clkgiriş1 bitSaat sinyali
resetgiriş1 bitTüm çıkışları 0'a sıfırla
dgiriş1 bitVeri 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 bitDördüncü flip-flop çıkışı

Göreviniz aşağıdaki modülü tamamlamaktır.

Yapılacaklar:

  1. reset durumunda tüm çıkışları 0'a ayarlayın
  2. Her yükselen saat kenarında veriyi soldan sağa kaydırın:
    1. q0, d değerini alır
    2. q1, eski q0 değerini alır
    3. q2, eski q1 değerini alır
    4. q3, eski q2 değ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

Kendi başına pratik yap: Online Verilog derleyicisi