State Machine
Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy. Lektion 88 von 90.
Aufgabe
Eine Zustandsmaschine ist eine Schaltung, die sich in einem von mehreren state befinden kann. Für UART haben wir für jedes bit unterschiedliche state: idle, start, Daten-bit 0-7 und stop. Der bit-Zähler (cnt) teilt uns mit, in welchem state wir uns befinden. Basierend auf cnt entscheiden wir, welchen Wert wir auf der tx-Leitung senden.
Du hast den bit-Zähler aus der vorherigen Lektion. Du musst ihn so ändern, dass er als UART-Sender funktioniert.
Zu sendende bit-Werte (für den Buchstaben 'A')
| cnt | tx-Wert |
|---|---|
| 0 | 1 |
| 1 | 0 |
| 2 | 1 |
| 3 | 0 |
| 4 | 0 |
| 5 | 0 |
| 6 | 0 |
| 7 | 0 |
| 8 | 1 |
| 9 | 0 |
| 10 | 1 |
Was zu tun ist
- Füge einen input namens
starthinzu - Füge einen output reg namens
txhinzu - Setze im
initial-Blocktx = 1(idle high) - Ändere die Zählerlogik:
- Wenn
cnt == 0undstart == 1gilt, setzecnt <= 1(Übertragung starten) - Wenn
cntzwischen 1 und 9 liegt, erhöhe ihn:cnt <= cnt + 1 - Wenn
cnt == 10gilt, setze ihn auf0zurück
- Wenn
Probier es selbst
module uart_tx (
input clk,
output reg [3:0] cnt
);
initial begin
cnt = 0;
end
always @(posedge clk) begin
cnt <= cnt + 1;
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