Bit counter
Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy. Lektion 87 von 90.
Aufgabe
In diesem Kapitel erstellst du Schritt für Schritt einen UART-Sender. UART steht für Universal Asynchronous Receiver-Transmitter. Es ist ein einfaches Hardwareprotokoll, das zwei Geräten ermöglicht, nur über eine Leitung (zum Senden) und eine weitere Leitung (zum Empfangen) zu kommunizieren.
Stell es dir wie zwei Menschen vor, die am Telefon miteinander sprechen: Einer spricht (sendet), der andere hört zu (empfängt). UART sendet Daten ein bit nach dem anderen, mit start- und stop-bits, die den Beginn und das end jedes Bytes markieren.
Ein UART-Sender sendet 10 bits: start bit (1), Daten-bits (8), stop bit (1). Um zu verfolgen, welches bit wir senden, benötigen wir einen bit-Zähler, der von 0 bis 10 zählt.
So funktioniert der bit-Zähler
- start bei 0
- Add in jedem Taktzyklus 1 hinzu
- Wenn er 10 erreicht, gehe zurück auf 0
- Wiederhole dies für immer
In dieser Aufgabe setzen wir ihn noch nicht zurück: Wir erhöhen ihn nur.
Was zu tun ist:
- Create ein module namens
uart_txmit:- Einem input:
clk - Einem output:
cnt(4 bits, Typreg)
- Einem input:
- inside dem module:
- Setze
cntzu Beginn inside eines initial block auf 0 - Füge einen
always @(posedge clk)-block hinzu - Make
cntbei jeder Taktflanke um 1 größer
- Setze
Probier es selbst
// TODO: Erstelle Modul uart_tx mit Eingang clk und Ausgang cnt (4 Bits)
// TODO: Setze cnt zu Beginn in einem initial-Block auf 0
// TODO: Füge always @(posedge clk)-Block hinzu
// TODO: Inkrementiere cntAlle 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