Menu
Coddy logo textTech

Durum Makinesi Mantığı

Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası — ders 80 / 90.

challenge icon

Görev

Bu derste, trafik ışığı kontrolörüne durum geçiş mantığını ekleyeceksiniz. Durum makinesi, bir durumdan diğerine ne zaman geçileceğini belirler.

Durum makinesi mantığı, trafik ışığının ne zaman ve nasıl durum değiştireceğini kontrol eder.

Durum Sırası

Yeşil → Sarı → Kırmızı → Yeşil → …

Göreviniz, modüle durum makinesi mantığını eklemektir.

Yapılması gerekenler:

  1. Bir always @(posedge clk or posedge reset) bloğu ekleyin
  2. Reset durumunda, state değerini Kırmızı (2) olarak ayarlayın
  3. next değeri 1 olduğunda, bir sonraki duruma geçin:
    • Eğer durum Yeşil (0) ise: Sarı olarak değiştirin
    • Eğer durum Sarı (1) ise: Kırmızı olarak değiştirin
    • Eğer durum Kırmızı (2) ise: Yeşil olarak değiştirin

Kendin dene

module traffic_light (
  input clk,
  input reset,
  input next,           // Durumu değiştirmek için tetikleyici
  output reg red,
  output reg yellow,
  output reg green
);

  reg [1:0] state;

  // Çıkış atamaları
  always @(*) begin
    case (state)
      0: begin green = 1; yellow = 0; red = 0; end
      1: begin green = 0; yellow = 1; red = 0; end
      2: begin green = 0; yellow = 0; red = 1; end
      default: begin green = 0; yellow = 0; red = 1; end
    endcase
  end

  // YAPILACAK: Durum makinesi mantığını ekle (zamanlama olmadan)
  // always @(posedge clk or posedge reset) begin
  //   if (reset) begin
  //     state <= 2;
  //   end else if (next) begin
  //     case (state)
  //       0: state <= 1;
  //       1: state <= 2;
  //       2: state <= 0;
  //     endcase
  //   end
  // end

endmodule

Temeller bölümündeki tüm dersler