0% encontró este documento útil (0 votos)
52 vistas6 páginas

Lab Cronometro

Este documento describe el diseño de un cronómetro digital utilizando contadores ascendentes genéricos en VHDL. Explica cómo calcular la cantidad de pulsos de reloj necesarios para medir intervalos de tiempo y presenta diagramas de bloques del diseño. Luego muestra el código VHDL para implementar cuatro contadores (segundos, décimas, centésimas y pulsos) y conectarlos a displays de 7 segmentos para visualizar el tiempo. Finalmente, concluye sobre factores como la precisión limitada por la frecuencia máxima y el retardo de compu
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
52 vistas6 páginas

Lab Cronometro

Este documento describe el diseño de un cronómetro digital utilizando contadores ascendentes genéricos en VHDL. Explica cómo calcular la cantidad de pulsos de reloj necesarios para medir intervalos de tiempo y presenta diagramas de bloques del diseño. Luego muestra el código VHDL para implementar cuatro contadores (segundos, décimas, centésimas y pulsos) y conectarlos a displays de 7 segmentos para visualizar el tiempo. Finalmente, concluye sobre factores como la precisión limitada por la frecuencia máxima y el retardo de compu
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 6

Laboratorio 05 – Registros y contadores-Cronómetro

María José Cabra Espitia - [email protected]


Nasly Verónica Novoa Lozano - [email protected]
José Guillermo González Carrillo - [email protected]

Pontificia Universidad Javeriana

Diseño de sistemas digitales

Fecha de entrega: 12/04//2023

Bogotá D.C

Profesor:

Eduardo Andrés Gerlein Reyes

Departamento de electrónica
Concepción del cronometro:
El tiempo para los seres humanos se encuentra representado por una medida de cambio
fundamental que en sistemas digitales se realiza mediante el conteo de pulsos de reloj, por lo
tanto, una determinada cantidad de pulsos se ajusta aproximadamente a el tiempo de interés.
Dependiendo de la frecuencia de operación del sistema se puede estimar la cantidad de pulsos
necesarios para contar hasta llegar a un tiempo deseado. En la siguiente figura se visualiza un
ejemplo:

3 segundos
Fig. 1. Cantidad de pulsos de reloj para contar un determinado tiempo.
Si en un sistema se requiere medir 1 segundo y este opera con una frecuencia de 50 kHz para
saber cuántos pulsos de reloj son necesarios se estima el periodo:
1 1
𝑇= = = 0.0002 = 20 𝑚𝑠
𝑓 50000 𝐻𝑧
Lo que para 1 segundo equivale a:
1𝑠
= 5000
20𝑚𝑠
𝐶𝑎𝑛𝑡𝑖𝑑𝑎𝑑 𝑑𝑒 𝑝𝑢𝑙𝑠𝑜𝑠 = 5000

Teniendo en cuenta lo previamente explicado se estima la cantidad de pulsos necesarios para


contar 0.1s, ya que es la mínima medida a la puede contar el cronometro. Asumiendo que la
frecuencia de reloj de la FPGA es de 50MHz,
1
𝑇= = 0.00000002 𝑠 = 20𝑛𝑠
50𝑀𝐻𝑧
Para 0.1s se necesita de una cantidad de:
0.1𝑠
= 5000000
20𝑛𝑠
𝐶𝑎𝑛𝑡𝑖𝑑𝑎𝑑 𝑑𝑒 𝑝𝑢𝑙𝑠𝑜𝑠 = 5000000

Comprendiendo que para realizar el conteo es necesario implementar un contador ascendente


free run que cuente los 5000000 pulsos que se encargan de enviar información de cuando
incrementa el valor de los segundos, décimas de segundo y centenas de segundo para que se
pueda visualizar el conteo en los displays 7 segmentos de la FPGA. Por lo que el enunciado
del laboratorio proporcionó el siguiente diagrama de bloques que contempla la solución al
planteamiento problema.
Fig. 2. Diagrama de bloques sugerido para el diseño del cronometro.
No obstante, aunque expresa de manera explícita la estructura del circuito a implementar,
presenta errores en su diseño. Inicialmente ninguno de los contadores posee la cantidad de
entradas y salidas presentes en un contador free run ascendente, por lo tanto, no tiene una
variable que indique la máxima cuenta que puede realizar cada contador, adicionalmente las
señales de control “enable” se encuentran condicionadas a las anteriores, debido a que de lo
contrario el contador de centenas de segundo superará al de décimas de segundo, ya que,
posee una velocidad muy alta. Evaluando todas las correcciones anteriores se diseño un
diagrama de flujo que si cumple las condiciones de diseño adecuadas para el cronometro.

Fig. 3. Diagrama de bloques corregido para el diseño del cronometro.


Diseño del código en VHDL.
Respetando la jerarquía establecida en el diagrama de bloques se diseña un mod_counter
genérico para las cuatro entidades de conteo definidas.
Fig. 3. Código en VHDL del universal binary counter free run generic.
En función del contador genérico se realizan cuatro implementaciones distintas, inicialmente
se ajustan las entradas y salidas al contador de 5000000 pulsos para incrementar el valor del
contador en pasos de 0.1s, posteriormente se realiza el ajuste del universal binary counter para
tres entidades distintas teniendo en cuenta que el máximo valor por segundo, decimas de
segundo y centenas de segundos es 9. Finalmente, cada contador envía su resultado en binario
al código empleado en múltiples laboratorios bin to sseg que se encargará de encender los
segmentos de los displays correspondientes al número almacenado en el contador.
Fig. 4. Código en VHDL del cronometro implementado universal binary counter generic y
bin to sseg.
El código de bin to sseg no presenta modificaciones en su diseño:
Fig. 5. Código en VHDL del bin to sseg.
Después de realizar el pin planner asignando señales de reloj a las entradas de la tarjeta y
salidas a los displays 7 segmentos, se visualiza el funcionamiento del código en el siguiente
link: https://youtu.be/RLOfepR_ngU

Conclusiones.
• En tiempo real, la escala mínima del contador está dada para las décimas de segundo;
la cual representa la mínima medida de conteo para el cronómetro el cual está limitado
por la frecuencia máxima de operación de la tarjeta a 50MHz, y se expresa
matemáticamente como la sumatoria de los periodos de reloj (flancos de subida) en la
medida que ocurren durante un tiempo determinado. Es importante tener en cuenta que
esta fórmula asume que la frecuencia del reloj es constante y precisa, lo cual no siempre
es el caso en la práctica. Por lo tanto, es posible que se requieran ajustes adicionales en
el diseño para tener una mayor precisión en la conversión de tiempo.
• El uso de la técnica de compuerteo con AND's para manejar los conteos controlados
de las unidades en función de las decimas y de las decenas en función de las unidades,
es un paso importante en el diseño del cronómetro ya que permite respetar cada uno de
los ciclos de conteo por separado, a la velocidad correspondiente y de manera
sincronizada con el reloj.
• El cronometro al estar desarrollado por universal_bit_counters de conteo controlado,
tiene la capacidad de ser preestablecido desde un valor de conteo ya sea de forma
ascendente o descendente, de ser pausado en cualquier momento y de ser preestablecido
al valor inicial del conteo de forma sincrónica o asincrónica. Su desarrollo representa
una herramienta valiosa en los sistemas digitales y se utilizan en diversas aplicaciones
para medir el tiempo transcurrido, controlar procesos, asegurar la seguridad, sincronizar
dispositivos y establecer límites de tiempo en diferentes entornos al enviar y recibir
información.
• E retardo de las compuertas lógicas puede tener un impacto significativo en el diseño
de un cronómetro y puede afectar la precisión del contador. Es importante considerar
el retardo de las compuertas al diseñar un cronómetro y utilizar técnicas de
sincronización para minimizar su efecto.

También podría gustarte