State Machine Logic
Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy. Lektion 80 von 90.
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:
- Add einen Block
always @(posedge clk or posedge reset)hinzu - Setze bei reset
stateauf red (2) - Wenn
next1 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
endmoduleAlle Lektionen in Grundlagen
1Einführung
Was ist VerilogHardware vs. SoftwareIhr erstes ModulKommentareAbstraktionsebenen des Designs4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine LogicÜbe selbstständig: Online-Verilog-Compiler