Universidad del Valle sede Melndez Laboratorio de Sistemas Digitales II
Abril 08 de 2010
Escuela De Ingeniera Elctrica Y Electrnica
Aplicaciones Prcticas De Contadores Y Divisores De Frecuencia
Laboratorio 2
Michael Daz Rosales 0733085 Ervin Hctor Rivas Murillo 0730165 Julin Felipe Mora 0733097
RESUMEN En el presente informe se indica la forma como se implemento el reloj digital con alarma despertadora de la prctica de laboratorio II, basando el diseo en contadores, divisores de frecuencia e incluyendo circuitos digitales, que permiten aprovechar ciertas etapas del circuito para realizar adaptaciones a la FPGA menos complicadas desde la parte exterior (Conexiones Externas), En las cuales con ayuda de display 7 segmentos se ayudo a visualizar el reloj completo pese a que en los recursos de la FPGA solo se utilizaron dos displays. Se comprendi as el funcionamiento de los circuitos divisores de frecuencia y de los contadores y se fortalecieron conceptos sobre el funcionamiento de otros circuitos utilizados para implementar la alarma. Palabras Claves Alarma, Contador, Divisor, Flip-flop, Frecuencia, Memoria, Reloj, Comparador, Multiplexacin, Modulo del contador, conteo sncrono o asncrono, Acumulador.
Para implementar las horas se utiliza un acumulador compuesto por un contador mdulo 3 y un contador mdulo 10. La seal que permite incrementar el contador mdulo 10 es la seal que viene del tercer bloque "Divide por 60". Sin embargo, para alcanzar la cuenta 0 - 24, se adiciona una lgica combinatoria que cumpla dicha tarea. II.
PROCEDIMIENTO
Para el estudio los contadores y divisores de frecuencia se realizo el montaje propuesto en la gua de laboratorio del reloj digital, y se implemento la alarma despertadora, de forma tal que fuese compactible con el reloj del diseo. Para llevar a cabo tal hazaa se sigui el diagrama de bloques del reloj digital mostrado a continuacin y se modificaron ciertos aspectos a saber.
I. Definiciones Bsicas
INTRODUCCION
Contador En sistemas digitales se considera un contador a un arreglo de flip-flops que progresa de estado en estado, como respuesta a un suceso llmese este suceso ciclo de reloj, en cualquier situacin lo que hace el contador es enumerar el numero de sucesos ocurridos, Posee un modulo que depende del nmero de flip-flops de implementacin este indica el numero de estados que atraviesa el contador antes de volver a su estado de inicio. Los circuitos contadores se usan tambin para dividir una frecuencia y generar las direcciones para leer o escribir en una memoria. Divisores de Frecuencia Como su nombre lo indica el divisor de frecuencia se encargan de dividir la frecuencia de una seal en un nmero entero de veces. Acumuladores Cuenta Los acumuladores de cuenta para esta prctica son contadores con un mdulo determinado. Para los segundos y minutos se utilizan contadores con mdulo 60 (el contador se reinicia cuando su cuenta llega a 60). La Figura 3 muestra un contador con mdulo 60. Para las horas se utiliza un contador de mdulo 24 (el contador se reinicia cuando su cuenta llega a 24).
Figura 1. Diagrama de bloques Reloj Digital Entre las modificaciones realizadas est el hecho que se utilizo el oscilador de la FPGA, considerado reloj global de la misma (GCLK); Debido a que funciona a una frecuencia de 25.175 MHz se dispuso de un contador de 19 bits modulo 419583 de la megafuncin lpm_counter. Con el fin de obtener la frecuencia deseada de 60Hz.
Universidad del Valle sede Melndez
Abril 08 de 2010
Se puede observar que la frecuencia no es exacta, por lo cual se considera un margen de error. En la siguiente grafica se puede visualizar el contador ascendente modulo 419583 del cual se toma el pin [18] que es el de menor frecuencia y as se obtiene 60Hz que es la frecuencia para el funcionamiento del reloj.
ocurren dado que son contadores de dos etapas con el fin de separar decenas de unidades, algo similar se realiza para la configuracin de las 24 horas, cambiando la lgica combinacional y el modulo a 24. Las salidas de estos contadores son las que se visualizaran en los decodificadores 7 segmentos como dgitos del reloj digital.
View er
Seg
lpm_counter0
GLOBALCLK
up counter
clock modulus 419583
60Hz[18..0]
In
25.175MhZ
inst9
q[18..0]
DsplyA[6..0] DsplyB[6..0] BCDA[3..0] BCDB[2..0]
inst8
SegUni[6..0] SegDec[6..0]
Figura 2. Divisor de frecuencia Inicial (Tomamos 60Hz) Luego de tener la frecuencia necesaria se debe recurrir a dividirla y utilizarla para los segundos, minutos y horas respectivamente, esto se detalla en la siguiente grafica y se explica cmo se ejecuta la divisin.
Div60
60Hz[18]
View er
Min
In
DsplyA[6..0] DsplyB[6..0] BCDA[3..0] BCDB[2..0]
inst7
MinUni[6..0] MinDec[6..0] MinCK[3..0] MinCK[6..4]
Div60 In
inst5 Seg Min
Div60
Hor
View er2 In
Hor
In
inst4
Out
Out
In
inst6
Out
DIVISION DE FRECUENCIA
DsplyA[6..0] DsplyB[6..0] BCDA[3..0] BCDB[2..0]
inst
HorUni[6..0] HorDec[6..0] HorCK[3..0] HorCK[6..4]
Figura 3. Divisor de frecuencia (Segundos, Minutos, Horas) Este es un proceso asincrnico, dado que no depende de los siclos de reloj, se encuentra basado en dos contadores 7493 relacionados entre s y programados en modulo 60, donde el primero denota las unidades y el segundo las decenas de la respectiva frecuencia (Segundos, Minutos, Horas).
Figura 5. Contadores de tiempo Para que el conteo sea realizado de forma eficiente y concordar con el de un reloj real, se realizaron conexiones de los contadores al decodificador 7 segmentos como se muestra en la siguiente grafica, de forma tal que estas conexiones puedan ser aprovechadas para realizar las comparaciones con la alarma y con el circuito que se realizara para el multiplexado de los datos de salida a los display.
OUTPUT OUTPUT
7493
RO1 RO2 CLKA CLKB COUNTER inst QA QB QC QD RO1 RO2
7493
QA QB QC QD
BCDA[3..0] BCDB[2..0]
OUTPUT OUTPUT
Dsply A[6..0] Dsply B[6..0]
CLKA CLKB inst5 COUNTER
7493
RO1 RO2 CLKA CLKB inst5 COUNTER QA QB QC QD RO1 RO2
7493
QA QB QC QD
BCDB0 BCDB1 BCDB2
7447
A B C D LTN RBIN BIN OA OB OC OD OE OF OG RBON
Dsply B0 Dsply B1 Dsply B2 Dsply B3 Dsply B4 Dsply B5 Dsply B6
Figura 4. Divisor de frecuencia 1/6 1/10 En esta etapa el RO1 y RO2 se utiliza para restablecer los Flip-Flops T que lo componen y a la vez controlar el modulo del contador. Una vez se tiene realizada la divisin de frecuencia respectiva, se requiere contar los sucesos ocurridos con el fin de visualizarlos, para lo cual se utilizan contadores uno para cada eventualidad (Segundos, Minutos, Horas) de los cuales saldrn dos conteos uno de unidades y otro de decena en cada situacin, tal y como se muestra en la siguiente grafica, se puede observar que los dos conteos
CLKA CLKB COUNTER inst
GND
inst1 BCD TO 7SEG
BCDA0 BCDA1 BCDA2 BCDA3
7447
A B C D LTN RBIN BIN OA OB OC OD OE OF OG RBON
Dsply A0 Dsply A1 Dsply A2 Dsply A3 Dsply A4 Dsply A5 Dsply A6
VCC
inst2 BCD TO 7SEG
Figura 6. Contador modulo 60
Universidad del Valle sede Melndez
Abril 08 de 2010
III.
IMPLEMENTACIN DE LA ALARMA
La alarma como se podr observar a continuacin, se basa en un diseo lgico sencillo, el cual se basa en la comparacin y en la igualdad, En realidad lo que se hace es tomar los datos de salida de los contadores de tiempo y se compara con un dato establecido por el usuario del reloj a travs de los DipSwitch de la FPGA, de forma tal que cuando cada uno de los datos arrojados por el reloj sea igual a los datos introducidos para comparar produce una salida 1 que est dirigida a una compuerta And, por lo cual cuando todos los datos son iguales a los comparados la compuerta And arroja un 1 que activa inmediatamente la alarma. Lo que se detalla en las graficas 7 y 8 en realidad es el funcionamiento de la alarma.
lpm_compare0
compare
HorAl[6..4] HorCK[6..4]
fijado la alarma, esta accin es realizada a travs de la codificacin de los datos provenientes del DipSwitch de entrada mediante decodificadores 7 segmentos y el circuito de cambio de modo.
VCC
TFF NOT
PRN
Q Clk/Alrm
Modo inst14 CLRN inst2
Figura 9. Visualizador Reloj Vs Alarma El cambio de modo se da por medio de la lgica anterior, donde un pulsador nos permite almacenar un 0 o 1 en un FF T, de forma que el dato de salida selecciona los multiplexores que deseamos ver, mostrndolos al instante en los displays. Para realizar esta tarea lo que se implemento para cada caso de muestra fue un Mux2-1 el cual puede ser observado a continuacin para el caso de las unidades de segundo tanto de alarma como de minutos del reloj.
BUSMUX
SegUni[6..0]
lpm_compare1
compare
HorAl[3..0]
dataa[2..0] datab[2..0]
inst23
aeb
HorCK[3..0]
dataa[3..0] datab[3..0]
inst25
aeb
AND4
AlarmEN
lpm_compare0
compare MinAl[6..4] MinCK[6..4]
lpm_compare1
compare MinAl[3..0] MinCK[3..0]
inst1
dataa[]
0
dataa[2..0] datab[2..0]
inst24
aeb
dataa[3..0] datab[3..0]
inst26
result[] sel
Dsply A[6..0]
aeb
MinAlUni[6..0]
datab[] inst27
Figura 7. Habilitador de la Alarma
Clk/Alrm
Adems de habilitar la alarma este bloque cumple otra funcin y es des-habilitacin automtica, pues una vez los datos dejan de ser iguales, se puede fijar un espacio de tiempo en los comparadores de forma tal que se apague la alarma al cabo de un tiempo determinado.
NOT
Figura 10. Multiplexado para cambio de modo
(Reloj vs Alarma)
AlarmEN inst22
OR2
Alarm
DFF VCC
D AlarmStop
PRN
inst42 Q
ALARM STOP
CLRN 13
Figura 8 Inhabilitador Manual de la Alarma En caso de preferir el apagado de la alarma en un tiempo menor al fijado automticamente, se utiliza este circuito, que en realidad mantiene la alarma apagada mientras no vea un 1 proveniente de AlarmEN una vez lo observa, el circuito se refresca permitiendo que el FF D tome el prximo estado que es Alarm activada. Una vez se ejecuto esta hazaa, se puede apagar de dos formas una automticamente y la otra a travs de este mismo circuito que es la parada AlarmStop. Una accin requerida por el laboratorio, es poder mostrar la hora a la actual y poder cambiar a la hora en la cual se ha
De igual forma se realizo un multiplexado para la salida de informacin a los displays 7 segmentos, con el fin de reducir los cables necesarios para la conexin, sin embargo para poder realizar esta labor, se implemento tambin un decodificador para direccionar los datos y como control de ambos un contador con el fin de que la multiplexacin no presente errores a travs del bus (Esto se asemeja al comportamiento tri-estado) solo que en esta ocasin los datos en el bus dependen de la frecuencia de oscilacin y de la direccin especificada. A continuacin se muestra la lgica explicada anteriormente.
lpm_mux0
Dsply F[6..0] Dsply E[6..0] Dsply D[6..0] Dsply C[6..0]
data3x[6..0] data2x[6..0] data1x[6..0] data0x[6..0]
inst10
result[6..0]
Dsply [6..0]
DspEN[3..0]
sel[1..0]
lpm_decode0
eq0 eq1 eq2 eq3
DspEN0 DspEN1 DspEN2 DspEN3
lpm_counter1
60Hz[16]
data[1..0]
up counter
clock
inst12
q[1..0]
inst11
Figura 11. Multiplexado para Visualizacin
(7 Segmentos)
Universidad del Valle sede Melndez
Abril 08 de 2010
Para un mejor muestreo de datos, se dispuso de esta configuracin para las conexiones externas, se especifica todo lo que incluye a continuacin.
V.
CONCLUSIONES
Figura 12. Conexin externa
(7 Segmentos)
La relacin de multiplexado entre datos de salida y la frecuencia del reloj, puede generar errores en el conteo del tiempo esto se puede entender si se considera que hay datos que se atrasan a su salida, mientras otros estn saliendo normales. Los Flip Flops T cambian de estado en cada flaco positivo o negativo de la seal de control. La frecuencia de la seal de salida de cada FF-T es la mitad de la frecuencia de la seal de entrada T anterior, es decir divide a la mitad la frecuencia del reloj. Al utilizar el GCLK de la FPGA, existe un margen de error, el cual es de 1 segundo por cada 5,827 horas. Esto se debe a que no obtenemos los 60 Hz exactos. Un Flip Flops T utilizado como divisor de frecuencia puede realizarse a partir de FF-D con retroalimentacin negada al prximo estado (Q*), lo que hace que conmute su estado lgico en el momento en que ocurre el flanco de reloj.
COMENTARIOS
IV.
SIMULACIN, ANLISIS DE RESULTADOS Los problemas ms pronunciados que se presentaron fueron a saber: La poca luminiscencia de los displays por lo cual se implemento un circuito externo que ayudara en el aumento de la corriente requerida, este circuito se puede observar en la figura 12. En el multiplexado de los displays de salida, se pudo observar que la frecuencia del reloj debe mantener cierta relacin con el multiplexado de barrido de datos, pues cuando no se cumple esta relacin se presenta un error en la muestra de los datos. La ubicacin de una frecuencia adecuada para mostrar los datos de forma no muy rpida y conforme a los requerimientos del monitor. La simulacin del reloj a una frecuencia real, que produca en el simulador una demora bastante pronunciada.
Figura 13. Simulacin Alarma (fijada a 5 minutos) Para esta simulacin se tomo el caso ideal de no retrasos por lo cual se simulo en el modo funcional. Se puede observar claramente que la alarma se enciende a la vez que el habilitador enva un 1 indicando que es el tiempo correcto segn la comparacin, y se desactiva automticamente despus de un minuto, previamente programado.
Universidad del Valle sede Melndez
Abril 08 de 2010
VI.
BIBLIOGRAFIA
[1] Jhon P. Hayes Introduccin al Diseo Lgico Digital Adisson-Wesley Iberoamericana. [2] Jhon Wakerly Diseo Digital, Principios y Practicas Prentice Hall 3ra Edicin. [3] Ronald J. Tocci Sistemas Digitales: Principios y Aplicaciones Prentice Hall 8va Edicin. [4] NELSON, Vctor P. Anlisis y diseo de Circuitos Lgicos Digitales. Prentice Hall. [5] Guas de Sistemas Digitales II Transparencias (Contadores, Multiplexado, Comparadores, etc.) [6] ECG Master Replacement [Link] 19.200 [7] Fairchild Semiconductor Corporation. South Portland, USA. Marzo de 2003. (Bsqueda de las hojas de datos de los IC utilizados en la prctica, para especificidad de su funcionamiento e interconexin), [Link]
ANEXOS
Universidad del Valle sede Melndez
Abril 08 de 2010
Figura14. RTL Viewer Reloj con Alarma