Tabla de contenido:

Cronómetro de un minuto VHDL: 5 pasos
Cronómetro de un minuto VHDL: 5 pasos

Video: Cronómetro de un minuto VHDL: 5 pasos

Video: Cronómetro de un minuto VHDL: 5 pasos
Video: Simulación de un cronómetro VHDL (2): detección de errores 2024, Noviembre
Anonim
Image
Image

Este es un tutorial sobre cómo construir un cronómetro de un minuto usando VHDL y una placa Basys 3. Dicho dispositivo es ideal para juegos en los que cada jugador tiene un máximo de un minuto para realizar su movimiento. El cronómetro muestra con precisión segundos y milisegundos en la pantalla de siete segmentos, comenzando en 0 segundos y 0 milisegundos, hasta 60 segundos y 0 milisegundos. También se utilizan dos botones: el botón central, que se utiliza para iniciar, detener y continuar el temporizador, y el botón derecho, que se utiliza para reiniciar el temporizador. Cuando el dispositivo se compara lado a lado con el cronómetro incorporado de un teléfono inteligente, la precisión del reloj es notable.

Paso 1: obtenga el hardware / software

Diagrama de bloques
Diagrama de bloques

1. Placa de entrenamiento Basys 3 Artix-7 FPGA de Digilent con cable Micro-USB a USB

2. Vivado 2016.2 Design Suite de Xilinx

Paso 2: diagrama de bloques

Este circuito se construye de forma conductual y utiliza componentes Xilinx integrados, pero también se puede describir estructuralmente, como se muestra en el diagrama estructural general anterior. En el diagrama, se puede ver que el circuito es impulsado por dos divisores de frecuencia. Uno de los divisores de frecuencia funciona a 1 centisegundo e impulsa el contador de cátodo que se utiliza como los números que se muestran en la pantalla de siete segmentos. El segundo divisor de frecuencia funciona a 240 Hz y se utiliza para impulsar el contador de ánodo que gira a través de los ánodos para que todos los números se muestren correctamente en la pantalla de siete segmentos. El codificador toma la lógica del cátodo del contador del cátodo y la lógica del ánodo del contador del ánodo, y la codifica en el cátodo y el ánodo de la salida que ejecutan la pantalla de siete segmentos. La función de este codificador es que la salida del cátodo cambie cada vez que cambie la salida del ánodo. La salida del cátodo no se puede ejecutar independientemente del contador porque los ánodos deben girar a través de los 4 dígitos separados.

Paso 3: Módulo de proyecto

En primer lugar, se crea un bloque de proceso para CEN de modo que cuando se detecta la pulsación de un botón, ENABLE se alternará. Esto sirve como parada / inicio del contador de cátodos.

En el siguiente bloque de proceso, las señales de reloj de centisegundos y 240Hz se configuran de modo que sus respectivos contadores aumenten en 1 cada vez que el reloj interno de 100 MHz alcanza un flanco ascendente. Una vez que el contador de centisegundos llegue a 500000, se restablecerá de nuevo a 0. Mientras tanto, el contador de 240 Hz se restablecerá una vez que el recuento llegue a 41667.

Para la sección de cátodos del código, si ENABLE es '0', el conteo de cátodos se detendrá. Si se presiona el botón de reinicio durante este tiempo, todos los conteos se reinician a "0000". Mientras tanto, si ENABLE es '1', el recuento de cátodos continuará hasta que el recuento de cátodos alcance 60,00, en el cual activa la señal de parada para que sea '1'. La señal de parada vuelve al bloque de proceso CEN y hace que ENABLE sea '0' mientras que la señal de parada es '1' y no cambiará hasta que se presione el botón de reinicio.

Finalmente, la pantalla de siete segmentos se configura al tener los 4 ánodos conectados correctamente con cada uno de sus 8 cátodos para mostrar sus respectivos dígitos 0-9 simultáneamente.

Paso 4: restricciones

Restricciones
Restricciones

Este archivo de restricciones conecta las entradas y salidas especificadas de VHDL en las partes físicas necesarias de la placa Basys. Para este proyecto, los componentes incluyen los cuatro ánodos y cada uno de sus ocho cátodos para la pantalla de siete segmentos, el reloj interno de 100 mHz, el botón central y el botón derecho.

Paso 5: prueba

Una vez que haya completado el código, ahora puede programar la FPGA a través del cable USB. La pantalla de siete segmentos debe mostrar 0.00. Pruebe para ver si los botones funcionan presionando el botón central para iniciar el temporizador hasta que llegue a 60.00 y se detenga; en cualquier momento intermedio, puede presionar el botón central nuevamente para pausarlo. Una vez que esté en pausa, puede presionar el botón derecho para restablecer el temporizador a 0.00. Si todo funciona correctamente, ¡felicidades, acaba de crear un temporizador de un minuto!

Recomendado: