Bit counter
Fait partie de la section Fondamentaux du Journey Verilog de Coddy. Leçon 87 sur 90.
Défi
Dans ce chapitre, vous allez construire un émetteur UART étape par étape. UART signifie Universal Asynchronous Receiver-Transmitter. Il s’agit d’un protocole matériel simple qui permet à deux appareils de communiquer en utilisant un seul fil (pour transmettre) et un autre fil (pour recevoir).
Imaginez deux personnes qui parlent au téléphone : l’une parle (transmet), l’autre écoute (reçoit). UART envoie les données un bit à la fois, avec des start et stop bits pour marquer le début et la fin de chaque octet.
Un émetteur UART envoie 10 bits : start bit (1), data bits (8), stop bit (1). Pour suivre le bit que nous envoyons, nous avons besoin d’un compteur de bits qui compte de 0 à 10.
Fonctionnement du compteur de bits
- start à 0
- À chaque cycle d’horloge, Add 1
- Lorsqu’il atteint 10, revenir à 0
- Répéter indéfiniment
Dans cette tâche, nous ne le réinitialiserons pas encore : nous allons seulement l’augmenter.
À faire :
- Create un module appelé
uart_txavec :- Une entrée :
clk - Une sortie :
cnt(4 bits, de typereg)
- Une entrée :
- inside le module :
- Définir
cntà 0 au début, inside un bloc initial - Add un bloc
always @(posedge clk) - Make
cntaugmenter de 1 à chaque front d’horloge
- Définir
Essayez vous-même
// TODO: Créer le module uart_tx avec l'entrée clk et la sortie cnt (4 bits)
// TODO: Mettre cnt à 0 au démarrage dans un bloc initial
// TODO: Ajouter un bloc always @(posedge clk)
// TODO: Incrémenter cntToutes les leçons de Fondamentaux
1Introduction
Qu’est-ce que VerilogMatériel vs logicielVotre premier moduleCommentairesNiveaux d’abstraction de conception4Operators 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 LogicEntraînez-vous par vous-même : Compilateur Verilog en ligne