Menu
Coddy logo textTech

State Machine Logic

Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy. Lektion 80 von 90.

challenge icon

Aufgabe

In dieser Lektion fügst du die Logik für Zustandsübergänge zur Ampelsteuerung hinzu. Die Zustandsmaschine bestimmt, wann von einem state zum nächsten gewechselt wird.

Die Logik der Zustandsmaschine steuert, wann und wie die Ampel ihre Zustände ändert.

Zustandsfolge

green → yellow → red → green → …

Deine Aufgabe ist es, die Logik der Zustandsmaschine zum module hinzuzufügen.

Was zu tun ist:

  1. Add einen Block always @(posedge clk or posedge reset) hinzu
  2. Setze bei reset state auf red (2)
  3. Wenn next 1 ist, wechsle zum nächsten state:
    • Wenn state green (0) ist: change zu yellow
    • Wenn state yellow (1) ist: change zu red
    • Wenn state red (2) ist: change zu green

Probier es selbst

module traffic_light (
  input clk,
  input reset,
  input next,           // Auslöser zum Zustandswechsel
  output reg red,
  output reg yellow,
  output reg green
);

  reg [1:0] state;

  // Ausgabezuweisungen
  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

  // TODO: Zustandsmaschinen-Logik hinzufügen (ohne Timing)
  // 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

Alle Lektionen in Grundlagen

Übe selbstständig: Online-Verilog-Compiler