Tarea5. Contador 0-99

Embed Size (px)

Citation preview

Universidad de GuadalajaraCentro Universitario de Ciencias Exactas e Ingenieras

Tpicos Selectos en Sistemas DigitalesDISEO DIGITAL CON VERILOG Tarea #5. Diseo de un Contador de 0 a 99.

ALUMNOS:

Roberto Carlos Barragn Campos Juan Jos De la Torre Lpez

PROFESOR: M.C. Jos Luis Pizano Escalante SECCIN: D01

Contenido1. 2. Objetivos. ................................................................................................................... 3 Desarrollo. .................................................................................................................. 3 2.1 2.2 2.2.1 Descripcin general del contador de dos dgitos. .................................................. 3 Descripcin interna de los mdulos que conforman el contador de dos dgitos. .... 5 Divisor de Frecuencia ....................................................................................... 5

2.2.1.1 Mdulo Contador de Ciclos .............................................................................. 6 2.2.1.2 Mdulo Flip Flop T. ...................................................................................... 6 2.2.2 2.2.3 2.2.4 3. Contador de Unidades y Decenas. .................................................................... 6 Codificador 7 Segmentos.................................................................................. 7 Codificador 7 Segmentos.................................................................................. 8

Conclusin. ............................................................................................................... 8

Referencia de imgenes.Figura 1: Mdulos que conforman el Top-Level del mdulo del contador de 0-99.............. 3 Figura 2: Diagrama de entradas y salidas del mdulo Contador de dos dgitos. .................. 3 Figura 3: Mdulos internos del Contador de dos dgitos. .................................................... 4 Figura 4: Mdulos del Divisor de Frecuencia. .................................................................... 5 Figura 5: Diagrama de tiempos del Divisor de Frecuencia. ................................................. 5 Figura 6: Diagrama esquemtico del mdulo Contador de Ciclos. ...................................... 6 Figura 7: Diagrama esquemtico del mdulo Flip - Flop T. ................................................ 6 Figura 8: Diagrama esquemtico del mdulo Contador de Unidades y Decenas. ................ 6 Figura 9: Diagrama esquemtico del mdulo Codificador 7 Segmentos. ............................. 7 Figura 10: Diagrama esquemtico del mdulo Detector Cero. ............................................ 8

1. Objetivos.Implementar un contador de 099, donde la fuente de reloj del contador es un divisor de frecuencia implementado mediante un contador sncrono y un FlipFlop T, dicho flipflop es emulado mediante una mquina de estados tipo Moore. La salida del contador debe ser visualizada en 2 displays de 7 segmentos.

Figura 1: Mdulos que conforman el Top-Level del mdulo del contador de 0-99.

2. Desarrollo.El desarrollo parte del nivel de arquitectura ms alto; cada mdulo comprende diferentes sub mdulos que son mencionados en cada nivel de arquitectura. No todos los mdulos cuentan con un diagrama de tiempo, sin embargo se anexa una breve pero suficiente explicacin de su funcionamiento, de igual forma se anexan los diagramas esquemticos de hardware de cada mdulo hasta llegar al nivel ms bajo de arquitectura. 2.1 Descripcin general del contador de dos dgitos. En la Figura 1 se muestra el diagrama de las seales de entrada y salida del top level para el mdulo del contador de dos dgitos.

Figura 2: Diagrama de entradas y salidas del mdulo Contador de dos dgitos.

La seal de entrada Enable es una seal asncrona, est indica si se cuenta o no; si se encuentra en estado alto los contadores internos cuentan de forma automtica 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 seal encargada de llevar al contador a un estado inicial, al igual que la seal Enable es una seal asncrona. La seal clk es la seal del reloj interno de la FPGA. Las seales de salida Display_Unidades, Display_Decenas son vectores de 7 bits los cuales mandan informacin a los display para su funcionamiento de acuerdo al conteo; las seales Display_Hex2, Display_Hex3 tambin 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 presentacin del contador. En la Figura 2 se muestra los mdulos internos que conforman al Contador de dos dgitos, que a continuacin 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 seal 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 nmero correspondiente en el Display de Unidades. Codificador Display Decenas: Recibe el conteo del Contador de Decenas y los codifica para mostrar el nmero correspondiente en el Display de Decenas. Detector Cero: Revisa si el Codificador Display Decenas manda seal para mostrar un 0 en el display y si es as manda todo el vector a Vcc.

Figura 3: Mdulos internos del Contador de dos dgitos.

2.2

Descripcin interna de los mdulos que conforman el contador de dos dgitos.

2.2.1 Divisor de Frecuencia

Figura 4: Mdulos del Divisor de Frecuencia.

El funcionamiento de este mdulo es simple; al Contador de Ciclos se le indica el nmero mximo de ciclos a contar, si la seal de Enable se encuentra en estado alto el contador cuenta y cada vez que llegue a su cuenta mxima de ciclos manda un disparo hacia el Flip_Flop_T mediante la seal 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 nmero mximo de ciclos a contar en el Contador de Ciclos. La seal clk es el reloj interno del FPGA. Por lo tanto la seal 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 simulacin del mdulo Divisor de Frecuencia, donde el conteo mximo 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 seal Frecuencia_de_Salida.

Figura 5: Diagrama de tiempos del Divisor de Frecuencia.

2.2.1.1 Mdulo Contador de Ciclos

Figura 6: Diagrama esquemtico del mdulo Contador de Ciclos.

2.2.1.2 Mdulo Flip Flop T.

Figura 7: Diagrama esquemtico del mdulo 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 mdulos tienen los mismos elementos, por lo tanto a continuacin se muestra el diagrama esquemtico de ambos.

Figura 8: Diagrama esquemtico del mdulo 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 nmero se reinicia el conteo comenzando desde 0. Cada vez que el contador llega a su valor final manda una seal 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 seal Reset lleva a su estado inicial a ambos contadores. Y la seal clk ya no pertenece al reloj interno del FPGA sino a la salida del Divisor de Frecuencia esto quiere decir que es una seal de menor frecuencia.

2.2.3

Codificador 7 Segmentos.

Este es un mdulo completamente combinatorio en el que solo se traducen los nmeros expresados en forma binaria provenientes de las seales de salida de los contadores a una codificacin para display de siete segmentos, tomando en cuenta que los display con los que cuenta el FPGA se activan en estado bajo. Tanto su seal de entrada como la seal de salida son vectores, en este caso el vector de la seal de entrada es de 4 bits y la seal de salida siempre ser de 7 bits cuando se trate de conexiones a display de 7 segmentos; a continuacin se muestra su diagrama interno.

Figura 9: Diagrama esquemtico del mdulo Codificador 7 Segmentos.

2.2.4

Codificador 7 Segmentos.

Este mdulo detecta cuando el Codificador de 7 Segmentos de decenas, manda un vector con informacin para mostrar un 0 en el display y lo deshabilita cambiando todo el vector a 1s. El Detector Cero se interpone entre la seal de salida del Codificador de 7 Segmentos y la que sera la entrada al display con la nica tarea de evitar que se muestre el 0 en el display. En seguida se muestra su diagrama esquemtico:

Figura 10: Diagrama esquemtico del mdulo Detector Cero.

3. Conclusin. Se implement la descripcin de hardware en la tarjeta entrenadora Starter Development Kit de Altera funcionando correctamente despus de algunas modificaciones a la frecuencia de operacin para mostrar claramente los nmeros en los display. Es importante resaltar que esta implementacin nos ayud a comprender, mejorar y practicar la tcnica de instanciacin; de igual forma mejoramos las buenas prcticas de diseo ya que anteriormente mezclbamos instanciacin (descripcin estructural) con sentencias (descripcin comportamental). La experiencia obtenida tambin incluye el trabajo en equipo, ya que se trabaj de forma ptima durante todo el desarrollo del proyecto.