Menu
Coddy logo textTech

Durum makinesi

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

challenge icon

Görev

Durum makinesi, birkaç durumdan birinde bulunabilen bir devredir. UART için her bit adına farklı durumlarımız vardır: boşta, başlangıç, 0-7 veri bitleri ve durdurma. Bit sayacı (cnt) hangi durumda olduğumuzu belirtir. cnt değerine göre tx hattında hangi değeri göndereceğimize karar veririz.

Önceki dersten bit sayacına sahipsin. Bunu bir UART vericisi olarak çalışacak şekilde değiştirmen gerekiyor.

Gönderilecek Bit Değerleri ('A' harfi için)

cnttx değeri
01
10
21
30
40
50
60
70
81
90
101

Yapılacaklar

  1. start adlı bir giriş ekle
  2. tx adlı bir çıkış reg'i ekle
  3. initial bloğunda tx = 1 ayarla (boşta yüksek)
  4. Sayaç mantığını değiştir:
    • cnt == 0 ve start == 1 olduğunda, cnt <= 1 ayarla (iletimi başlat)
    • cnt 1 ile 9 arasındayken artır: cnt <= cnt + 1
    • cnt == 10 olduğunda, 0 değerine sıfırla

Kendin dene

module uart_tx (
  input clk,
  output reg [3:0] cnt
);

  initial begin
    cnt = 0;
  end

  always @(posedge clk) begin
      cnt <= cnt + 1;
  end

endmodule

Temel Bilgiler bölümündeki tüm dersler

Kendi başına pratik yap: Online Verilog derleyicisi