Contador de bits
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 Universal Asynchronous Receiver-Transmitter (Receptor-Transmisor Asíncrono Universal). Es un protocolo de hardware simple que permite que dos dispositivos se comuniquen utilizando solo un cable (para transmitir) y otro cable (para recibir).
Piénsalo como dos personas hablando por teléfono: una habla (transmite) y la otra escucha (recibe). UART envía 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 rastrear qué bit estamos enviando, necesitamos un contador de bits que cuente de 0 a 10.
Cómo funciona el contador de bits
- Comienza en 0
- En cada ciclo de reloj, suma 1
- Cuando llegue a 10, vuelve a 0
- Repite indefinidamente
En esta tarea, aún no lo reiniciaremos: solo lo incrementaremos.
Qué hacer:
- Crea un módulo llamado
uart_txcon:- Una entrada:
clk - Una salida:
cnt(4 bits, tiporeg)
- Una entrada:
- Dentro del módulo:
- Establece
cnten 0 al inicio dentro de un bloque initial - Añade un bloque
always @(posedge clk) - Haz que
cntaumente en 1 en cada flanco de reloj
- Establece
Pruébalo tú mismo
// TODO: Crear el módulo uart_tx con la entrada clk y la salida cnt (4 bits)
// TODO: Establecer cnt a 0 al inicio dentro de un bloque initial
// TODO: Añadir un bloque always @(posedge clk)
// TODO: Incrementar cntTodas las lecciones de Fundamentos
1Introducción
¿Qué es Verilog?Hardware vs SoftwareNiveles de abstracción de diseñoTu primer móduloComentarios4Operadores Parte 1
Operadores aritméticosOperador de móduloOperadores de comparaciónRepaso - Matemáticas simplesOperadores bit a bit7Asignación y Compuertas
Asignación ContinuaAsignación con OperadoresPrimitivas de Compuertas IntegradasCompuertas AND OR NOTCompuertas XOR XNORResumen - Circuito de Compuertas Lógicas10Toma de decisiones
Sentencia IfIf - ElseRepaso - Comparador simpleSentencia CaseCasex y CasezRepaso - Diseño de ALU5Operadores Parte 2
Operadores lógicosOperadores de reducciónOperadores de desplazamientoOperador de concatenaciónOperador condicionalResumen - Desafío de operadores3Sistema de numeración
Representación binariaNúmeros con tamaño definidoNúmeros sin tamaño definidoNúmeros negativosValores especiales X y ZResumen - Formatos de números6Módulos
Estructura del móduloPuertos de entrada y salidaPuertos InoutInstanciación de módulosMapeo de puertos por nombreMapeo de puertos por ordenResumen: Construye un módulo