Bit counter
Parte de la sección Fundamentos del Journey de Verilog de Coddy. Lección 87 de 90.
Desafío
En este capítulo, construirás un transmisor UART paso a paso. UART significa transmisor-receptor asíncrono universal. Es un protocolo de hardware sencillo que permite que dos dispositivos se comuniquen usando un solo cable (para transmitir) y otro cable (para recibir).
Piensa en ello como dos personas hablando por teléfono: una habla (transmite) y la otra escucha (recibe). UART envía los datos un bit a la vez, con bits de inicio y de parada para marcar el comienzo y el final de cada byte.
Un transmisor UART envía 10 bits: bit de inicio (1), bits de datos (8), bit de parada (1). Para llevar un registro de qué bit estamos enviando, necesitamos un contador de bits que cuente de 0 a 10.
Cómo funciona el contador de bits
- Start en 0
- En cada ciclo de reloj, Add 1
- Cuando llega a 10, vuelve a 0
- Repite para siempre
En esta tarea, todavía no lo reiniciaremos: solo lo incrementaremos.
Qué hacer:
- Create un module llamado
uart_txcon:- Una entrada:
clk - Una salida:
cnt(4 bits, tiporeg)
- Una entrada:
- Dentro del module:
- Establece
cnten 0 al principio inside un initial block - Add un block
always @(posedge clk) - Make que
cntaumente en 1 en cada flanco de reloj
- Establece
Pruébalo tú mismo
// TODO: Crea el módulo uart_tx con entrada clk y salida cnt (4 bits)
// TODO: Establece cnt a 0 al inicio dentro de un bloque initial
// TODO: Añade el bloque always @(posedge clk)
// TODO: Incrementa cntTodas las lecciones de Fundamentos
1Introducción
Qué es VerilogHardware frente a softwareTu primer móduloComentariosNiveles de abstracción del diseño4Operators 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 LogicPractica por tu cuenta: Compilador de Verilog online