Tarea5. Contador 0-99

Universidad de Guadalajara Centro Universitario de Ciencias Exactas e Ingenierías Tópicos Selectos en Sistemas Digitale

Views 125 Downloads 4 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Universidad de Guadalajara Centro Universitario de Ciencias Exactas e Ingenierías

Tópicos Selectos en Sistemas Digitales DISEÑO DIGITAL CON VERILOG Tarea #5. Diseño de un Contador de 0 a 99.

ALUMNOS:

Roberto Carlos Barragán Campos Juan José De la Torre López

PROFESOR: M.C. José Luis Pizano Escalante SECCIÓN: D01

Contenido 1.

Objetivos. ................................................................................................................... 3

2.

Desarrollo. .................................................................................................................. 3 2.1

Descripción general del contador de dos dígitos. .................................................. 3

2.2

Descripción interna de los módulos que conforman el contador de dos dígitos. .... 5

2.2.1

Divisor de Frecuencia ....................................................................................... 5

2.2.1.1 Módulo Contador de Ciclos .............................................................................. 6 2.2.1.2 Módulo Flip – Flop T. ...................................................................................... 6

3.

2.2.2

Contador de Unidades y Decenas. .................................................................... 6

2.2.3

Codificador 7 Segmentos.................................................................................. 7

2.2.4

Codificador 7 Segmentos.................................................................................. 8

Conclusión. ............................................................................................................... 8

Referencia de imágenes. Figura 1: Módulos que conforman el Top-Level del módulo del contador de 0-99.............. 3 Figura 2: Diagrama de entradas y salidas del módulo Contador de dos dígitos. .................. 3 Figura 3: Módulos internos del Contador de dos dígitos. .................................................... 4 Figura 4: Módulos del Divisor de Frecuencia. .................................................................... 5 Figura 5: Diagrama de tiempos del Divisor de Frecuencia. ................................................. 5 Figura 6: Diagrama esquemático del módulo Contador de Ciclos. ...................................... 6 Figura 7: Diagrama esquemático del módulo Flip - Flop T. ................................................ 6 Figura 8: Diagrama esquemático del módulo Contador de Unidades y Decenas. ................ 6 Figura 9: Diagrama esquemático del módulo Codificador 7 Segmentos. ............................. 7 Figura 10: Diagrama esquemático del módulo Detector Cero. ............................................ 8

1. Objetivos. Implementar un contador de 0‐99, donde la fuente de reloj del contador es un divisor de frecuencia implementado mediante un contador síncrono y un Flip‐Flop T, dicho flip‐flop es emulado mediante una máquina de estados tipo Moore. La salida del contador debe ser visualizada en 2 displays de 7 segmentos.

Figura 1: Módulos que conforman el Top-Level del módulo del contador de 0-99.

2. Desarrollo. El desarrollo parte del nivel de arquitectura más alto; cada módulo comprende diferentes sub módulos que son mencionados en cada nivel de arquitectura. No todos los módulos cuentan con un diagrama de tiempo, sin embargo se anexa una breve pero suficiente explicación de su funcionamiento, de igual forma se anexan los diagramas esquemáticos de hardware de cada módulo hasta llegar al nivel más bajo de arquitectura. 2.1 Descripción general del contador de dos dígitos. En la Figura 1 se muestra el diagrama de las señales de entrada y salida del top level para el módulo del contador de dos dígitos.

Figura 2: Diagrama de entradas y salidas del módulo Contador de dos dígitos.

La señal de entrada Enable es una señal asíncrona, está indica si se cuenta o no; si se encuentra en estado alto los contadores internos cuentan de forma automática cada flanco de subida a la frecuencia del Divisor de Frecuencia, si pasa a estado bajo se detiene el

conteo y mantiene la cuenta. Reset es señal encargada de llevar al contador a un estado inicial, al igual que la señal Enable es una señal asíncrona. La señal clk es la señal del reloj interno de la FPGA. Las señales de salida Display_Unidades, Display_Decenas son vectores de 7 bits los cuales mandan información a los display para su funcionamiento de acuerdo al conteo; las señales Display_Hex2, Display_Hex3 también son vectores de 7 bits, estos van conectados a VCC con la finalidad de apagar los dos display restantes de la FPGA y tener una mejor presentación del contador. En la Figura 2 se muestra los módulos internos que conforman al Contador de dos dígitos, que a continuación se mencionan:      

Divisor de Frecuencia: Reduce la frecuencia del reloj de entrada. Contador de Unidades: Lleva el conteo de las unidades e indica cuando debe contar el Contador de Decenas. Contador de Decenas: Recibe la señal de conteo directamente del Contador de Unidades y lleva el conteo de las decenas. Codificador Display Unidades: Recibe el conteo del Contador de Unidades y los codifica para mostrar el número correspondiente en el Display de Unidades. Codificador Display Decenas: Recibe el conteo del Contador de Decenas y los codifica para mostrar el número correspondiente en el Display de Decenas. Detector Cero: Revisa si el Codificador Display Decenas manda señal para mostrar un 0 en el display y si es así manda todo el vector a Vcc.

Figura 3: Módulos internos del Contador de dos dígitos.

2.2

Descripción interna de los módulos que conforman el contador de dos dígitos.

2.2.1 Divisor de Frecuencia

Figura 4: Módulos del Divisor de Frecuencia.

El funcionamiento de este módulo es simple; al Contador de Ciclos se le indica el número máximo de ciclos a contar, si la señal de Enable se encuentra en estado alto el contador cuenta y cada vez que llegue a su cuenta máxima de ciclos manda un disparo hacia el Flip_Flop_T mediante la señal Pulse. El Flip_Flop_T complementa su salida al entrar el disparo y se mantiene hasta que el contador mande de nuevo otro pulso al terminar su conteo indicado por el número máximo de ciclos a contar en el Contador de Ciclos. La señal clk es el reloj interno del FPGA. Por lo tanto la señal de salida del Flip_Flop_T es la nueva frecuencia obtenida Frecuencia_de_Salida. En la siguiente figura se muestra el diagrama de tiempos de la simulación del módulo Divisor de Frecuencia, donde el conteo máximo del contador en este caso es 10 lo cual indica que si Enable = 1 y Reset = 1 cada 10 ciclos de reloj cambiara el estado de la señal Frecuencia_de_Salida.

Figura 5: Diagrama de tiempos del Divisor de Frecuencia.

2.2.1.1 Módulo Contador de Ciclos

Figura 6: Diagrama esquemático del módulo Contador de Ciclos.

2.2.1.2 Módulo Flip – Flop T.

Figura 7: Diagrama esquemático del módulo Flip - Flop T.

2.2.2

Contador de Unidades y Decenas.

No existe diferencia alguna entre el Contador de Unidades y el Contador de Decenas, internamente estos módulos tienen los mismos elementos, por lo tanto a continuación se muestra el diagrama esquemático de ambos.

Figura 8: Diagrama esquemático del módulo Contador de Unidades y Decenas.

Las diferencias entre estos dos contadores se dan en sus conexiones externas tanto de entrada como de salida. Ambos contadores llevan un conteo de 0 a 9, al llegar al último número se reinicia el conteo comenzando desde 0. Cada vez que el contador llega a su valor final manda una señal Pulse la cual en el caso del Contador de Unidades se conecta directamente a la entrada Enable del Contador de Decenas ocasionando así el conteo de las decenas. La señal Reset lleva a su estado inicial a ambos contadores. Y la señal clk ya no pertenece al reloj interno del FPGA sino a la salida del Divisor de Frecuencia esto quiere decir que es una señal de menor frecuencia.

2.2.3

Codificador 7 Segmentos.

Este es un módulo completamente combinatorio en el que solo se traducen los números expresados en forma binaria provenientes de las señales de salida de los contadores a una codificación para display de siete segmentos, tomando en cuenta que los display con los que cuenta el FPGA se activan en estado bajo. Tanto su señal de entrada como la señal de salida son vectores, en este caso el vector de la señal de entrada es de 4 bits y la señal de salida siempre será de 7 bits cuando se trate de conexiones a display de 7 segmentos; a continuación se muestra su diagrama interno.

Figura 9: Diagrama esquemático del módulo Codificador 7 Segmentos.

2.2.4

Codificador 7 Segmentos.

Este módulo detecta cuando el Codificador de 7 Segmentos de decenas, manda un vector con información para mostrar un 0 en el display y lo deshabilita cambiando todo el vector a 1’s. El Detector Cero se interpone entre la señal de salida del Codificador de 7 Segmentos y la que sería la entrada al display con la única tarea de evitar que se muestre el 0 en el display. En seguida se muestra su diagrama esquemático:

Figura 10: Diagrama esquemático del módulo Detector Cero.

3. Conclusión. Se implementó la descripción de hardware en la tarjeta entrenadora Starter Development Kit de Altera funcionando correctamente después de algunas modificaciones a la frecuencia de operación para mostrar claramente los números en los display. Es importante resaltar que esta implementación nos ayudó a comprender, mejorar y practicar la técnica de instanciación; de igual forma mejoramos las buenas prácticas de diseño ya que anteriormente mezclábamos instanciación (descripción estructural) con sentencias (descripción comportamental). La experiencia obtenida también incluye el trabajo en equipo, ya que se trabajó de forma óptima durante todo el desarrollo del proyecto.