Você está na página 1de 6

Informe Cronometro Digital

Edwin Alexander Ramrez Vargas Camila Rodrguez Ramrez


Email: earamirezv@unal.edu.co Email: camrodriguezram@unal.edu.co
Codigo: 2548920 Codigo: 25451386

ResumenEl siguiente trabajo consiste en la presentacion del los flancos de subida, los flancos de bajada o cuando el reloj
analisis llevado a cabo para realizar el diseno de un cronometro alcanza su maximo voltaje, tal como se muestra en la Figura
con conteo de decimas de segundos y una capacidad o alcance 2.
maximo de 10 minutos, implementado en HDL a partir del
lenguaje Verilog. Para realizar el diseno del cronometro se
utilizaron distintos modulos, correspondientes por ejemplo a la
division de frecuencia de la senal de reloj, as como al manejo de
las funciones del cronometro, dentro de ellas el almacenamiento
de dos laps (vueltas). Todo ello se implemento a partir del
conocimiento adquirido en la clase teorica de Electronica Digital
I.
I. I NTRODUCCI ON
Figura 2. Composicion del reloj.
La propiedad de memoria y sincronismo es una de las
mas importantes en el mundo de la electronica digital, puesto A partir de esta definicion es posible determinar que existen
que a partir de ella se pueden crear circuitos que contengan circuitos secuenciales activados por flanco (de bajada o de
almacenamiento, que funcionen secuencialmente y ademas subida) y activados por nivel, es decir cambian su estado
que procesen informacion, lo cual es vital en las tecnologas cuando la senal de reloj alcanza su maximo o mnimo valor
actuales. de voltaje.
Debido a la gran importancia de los circuitos secuenciales La forma en que estos circuitos mantienen su estado es a
en el desarrollo de la tecnologa, se realiza la implementacion traves de la realimentacion; la realimentacion en los circuitos
de un cronometro digital con el objetivo de aplicar los con- digitales se produce cuando la salida del circuito es una
ceptos teoricos y con ello evidenciar el funcionamiento de los funcion del estado anterior y de las entradas presentes [1].
circuitos secuenciales, tales como los contadores. As mismo, Dentro de los circuitos secuenciales existen varios subtipos,
con la finalidad de comprender el diseno de circuitos de varios entre los cuales se pueden encontrar: los circuitos biestables,
estados y el uso de los registros para el almacenamiento de la monoestables y aestables.
informacion.
II-A. Circuitos biestables
II. MARCO TE ORICO
Los circuitos biestables como su nombre lo indica, poseen
Existen muchas ocasiones en donde se requiere que un
dos estados: el SET (activacion) y el RESET (desactivacion),
circuito cambie bajo consideraciones de las entradas y de su
en los cuales se pueden mantener indefinidamente, lo cual los
estado, es all donde se implementan los circuitos secuenciales
hace especialmente adecuados para el almacenamiento [2].
[1].
Estos circuitos reciben su nombre, debido a que son capaces
Estos circuitos tienen la propiedad de recordar el estado
de almacenar 1 bit (1 o 0). El principio de funcionamiento
en el que se encontraban en un momento previo y requieren
de los biestables se basa en el hecho de que a partir de la
de un medio por el cual los eventos puedan secuenciarse,
realimentacion se puede mantener (almacenar) un valor estable
este medio es una senal de reloj, esto es, un circuito especial
hasta que las condiciones de entrada cambien [3].
que genera pulsos electricos que se encargan de validar el
II-A1. Latches: Un latch es un dispositivo de almacena-
funcionamiento del circuito digital. Las senales de reloj tienen
miento temporal de dos estados, que tiene una estructura de
la forma mostrada en la Figura 1:
realimentacion la cual consiste en conectar cada una de las
salidas a la entrada opuesta. Su estructura es muy parecida a
la de los flip-flops, pero se diferencian en la forma mediante
la cual cambian de estado [2].
Los latch pueden a su vez subdividirse en varios tipos,
Figura 1. Senal de reloj. algunos de los cuales son: el latch S-R y el latch tipo D.
Latch S-R: Un latch S-R con entrada activa a nivel alto
Los cambios de estado en los circuitos secuenciales ocurren se compone de dos compuertas NOR acopladas, tal como se
solo en los pulsos del reloj y pueden establecerse ya sea en muestra en la Figura 3:
Un flip-flop activado por flancos cambia de estado con los
flancos positivos (de subida) o los flancos negativos (de bajada)
de la senal de reloj. Dentro de estos se encuentran los flip-flops
S-R, los D y los J-K.
Flip-flop S-R: Sus entradas S y R se denominan entradas
sncronas. En este circuito cuando S esta a nivel ALTO y R
esta a nivel BAJO, la salida Q se pone a nivel ALTO con el
flanco de disparo del impulso de reloj, pasando el flip-flop al
estado SET. Cuando S esta a nivel BAJO y R esta a nivel
ALTO, la salida Q se pone a nivel BAJO con el flanco de
Figura 3. Latch S-R. disparo del impulso de reloj, pasando el flip-flop al estado
RESET. Cuando tanto S como R estan a nivel BAJO, la salida
Su tabla de verdad se obtiene asumiendo para cada compa- no cambia de estado y cuando S y R estan a nivel ALTO, se
racion un posible estado inicial en las salidas Q y Q. A partir produce una condicion no valida. El diagrama de bloque de
de lo cual se obtienen condiciones de cambio, de no cambio un flip-flop S-R activado por flancos positivos se muestra en
y una condicion a evitar en la que el par de salidas no son la Figura 6:
complemento. Esto se puede observar en la Figura 4:

Figura 4. Tabla de verdad latch S-R.

Estos latches tambien pueden implementarse a partir del uso


de dos compuertas NAND, con la diferencia de que el estado
a evitar se presenta cuando el valor de S y de R es 0. Figura 6. Flip-flop S-R por activacion en flanco de subida [2] pagina 421.

Lacht tipo D: Este tipo de latch es conocido como DATA


Flip-flop D: El flip-flop tipo D resulta muy util cuando
y tiene la caracterstica de hacer que el S-R no entre en el
se necesita almacenar un unico bit de datos. El flip-flop D
estado a evitar. Se diferencia del S-R en que solo tiene una
mas sencillo se obtiene anadiendo un inversor al flip-flop S-R,
entrada, tal como se observa en la Figura 5:
obteniendo el diagrama de bloque que se muestra en la Figura
7:

Figura 5. Latch Data (D) [2] pagina 412.

II-A2. FLIP-FLOPS: Los Flip-flops son dispositivos


sncronos de dos estados. El hecho de que sea sncrono,
significa que la salida cambia de estado unicamente en un Figura 7. Flip-flop D por activacion en flanco de subida [2] pagina 425.
instante especfico. de una entrada de disparo denominada reloj
(CLK), esto significa que los cambios en la salida se producen Para este caso en el estado SET el flip-flop almacena un 1
sincronizadamente con el reloj [3]. mientras que para el estado RESET almacena un 0.
Los flip-flops son los bloques basicos de construccion de los
contadores, registros y otros circuitos de control secuencial, y Flip-flop J-K disparado por flanco: Este tipo de flip-flop
se emplean tambien en ciertos tipos de memorias [1]. es uno de los mas ampliamente utilizados. Este circuto tiene
condiciones identicas de SET, RESET y de no cambio a las El estado de pausa y start del cronometro, manipulado a
del S-R, con la diferencia de que no posee condiciones no traves del contador principal, el cual fue el contador de
validas o a evitar. decimas de segundos.
En la Figura 8 se muestra la tabla de verdad para un flip-flop La implementacion del reset del cronometro y del reset
J-K activado por flanco de subida, cabe anotar que para el flip- de las laps.
flop J-K por flanco de bajada el funcionamiento es identico A partir de esta estructura se realizaron los modulos nece-
con la diferencia de que se activa en los flancos negativos. sarios para implementar el circuito y ademas se tuvieron en
cuenta aspectos como la frecuencia otorgada por el reloj de la
FPGA y la conexion y el tipo de 7 segmentos contenidos en
ella.
Una vez realizado el diseno en HDL se procedio a probar
el circuito en la tarjeta de desarrollo y a verificar su correcto
funcionamiento.
IV. AN ALISIS Y RESULTADOS
La forma en que se organizo el diseno del cronometro fue a
partir de la creacion de modulos con cierta jerarqua asociada.
En total se disenaron 8 modulos, en los cuales se distribuye-
Figura 8. Tabla de verdad Flip-flop J-K activado en flanco de subida [2] ron cada una de las funcionalidades requeridas para el diseno
pagina 427. del cronometro, siendo el modulo principal el correspondiente
al Main, donde se llamaron finalmente todos los submodulos
Los circuitos anteriores basan su funcionamiento en el uso de manera tal que quedara definido el comportamiento del
del sincronismo, el cual es obtenido a partir de una senal circuito. As mismo, este modulo se realizo de forma tal que
de control (reloj) que efectua las variaciones en la salida. recibiera las entradas generales del circuito y generara las
No obstante, existen circuitos que son asncronos y utilizan salidas corresponientes.
propiedades de inicializacion y de borrado. Como entradas se definieron:
II-B. Circuitos monoestables y aestables Un interruptor de stop/start encargado de poner en mar-
cha el cronometro y as mismo de pausarlo en un conteo
Los circuitos monoestables son aquellos que tienen un unico especfico.
estado estable. Normalmente, un monoestable se encuentra en Dos pulsadores de reset, uno correspondiente al reset
su estado estable, cambiando a su estado inestable solo cuando del cronometro que inicializaba el conteo en cero y otro
se dispara. Una vez que se ha disparado, el monoestable correspondiente al reset de las vueltas (laps), de forma
permanece en su estado inestable durante un determinado que la informacion almacenada fuera liberada.
intervalo de tiempo, volviendo a continuacion a su estado Dos pulsadores, correspondientes a las funcionalidades
estable [2]. lap1 y lap2, los cuales mediante la primera pulsacion se
Los circuitos secuenciales aestables no tienen ningun estado encargaban de almacenar una vuelta especfica y median-
estable y se emplean principalmente como osciladores, es te una segunda pulsacion de efectuar su visualizacion en
decir, como generadores de senales automantenido [3]. los displays siete segmentos.
III. PROCEDIMIENTO EXPERIMENTAL Analogamente, como salidas del cronometro se definieron:
Para llevar a cabo la realizacion del cronometro digital, se El dato hacia los siete segmentos, que sera el conteo del
tuvieron en cuenta los siguientes puntos: cronometro o bien alguna de las dos laps almacenadas.
La realizacion de un contador de 0 a 9 asncrono que La asignacion de anodos, de forma tal que la visualiza-
tuviera como entrada una senal de reloj y se encargara cion se presentara de manera adecuada. Cabe destacar,
de realizar el conteo de las decimas de segundo. que para generar esta salida se tuvo en cuenta que los
La creacion de un circuito contador de 0 a 6, que displays de la FPGA eran de tipo anodo comun, es decir,
permitiera generar las decenas de los segundos. necesitaban un valor bajo para que sus segmentos se
El agrupamiento de los contadores, esto es: la salida encendieran.
del contador de decimas de segundos se conecto a la A continuacion se realiza una descripcion de cada uno
entrada del contador de unidades de segundos y la salida de los modulos implementados, as como de su logica de
de este a su vez al contador de decenas de segundos, funcionamiento:
para finalmente conectar la salida de este contador a la
entrada del contador de minutos. IV-1. Modulo divisor de frecuencia: La FPGA utilizada
El almacenamiento de los laps y su posterior visualiza- (Nexys 2) posee un oscilador capaz de generar un tren de
cion en los displays, teniendo en cuenta las indicaciones impulsos o senal de reloj con una frecuencia de 50MHz. Dicha
dadas. frecuencia fue demasiado alta para el diseno del circuito, por lo
cual se procedio inicialmente a realizar un modulo divisor de Para su realizacion se partio de un modulo denominado JK
frecuencia que tuviera como entrada la senal de reloj generada mediante el cual se describio el funcionamiento de este flip-
por la tarjeta de desarrollo y cuya salida fuera una senal de flop con entradas J,K y clear y salida Q.
reloj con una frecuencia mucho mas baja. Para este caso, la Su funcionamiento como es conocido, se definio mediante
frecuencia a obtener se establecio de 100Hz, de forma que el uso de sentencias if, que permitan identificar a partir de un
dicho reloj alimentara el contador de decimas de segundos, proceso always, cada flanco de bajada de la senal de reloj con
el cual se encargo de iniciar el conteo, as como de llevar la el fin de decidir el cambio de estado, as como de los estados
sincronizacion adecuada del circuito. clear y reset.
Este modulo se implemento utilizando un proceso always La condicion principal implementada en este modulo fue el
de forma que al invocar una variable de tipo entera llamada hecho de que la basculacion o articulacion de la senal generada
contadornicializada en cero y al identificar cada flanco de por el flip-flop se presentara si y solo si J y K tenan un valor
subida de la senal de reloj de 50MHZ se realizara un aumento de 1. Esta sentencia fue de gran importancia, ya que permitio
en la variable contador de forma que la articulacion de la nueva controlar el estado de pausa y activacion del cronometro, tal
senal de reloj generada se realizara cuando dicho contador como se explicara mas adelante.
llegara a 2500000, para que as la frecuencia obtenida fuera Una vez generado el modulo del Flip-flop JK, se procedio a
de 10Hz, es decir una decima de la duracion de un segundo. implementar un circuito contador asncrono de 0 a 9 mediante
la utilizacion de cuatro flip-flops de tipo JK, todos alimen-
IV-2. Modulo antirrebote: Debido a las caractersticas tados con una senal CLEAR, la cual se utilizo de forma tal
mecanicas de los pulsadores, se hizo necesaria la creacion de que cuando el contador llegara a 10 su cuenta se reiniciara
un modulo anti-rebote encargado de recibir como entrada cada inmediatamente.
uno de los pulsadores y de generar como salida un pulso de El circuito correspondiente a este contador se muestra en la
determinada duracion, independiente del tiempo de pulsacion. Figura 10:
La logica tenida en cuenta para el desarrollo de este modulo
se baso en el hecho de que al realizar una pulsacion, esta
puede ser interpretada como un 1 logico, de forma que si
es posible almacenar dicho valor dentro de un arreglo de un
tamano especfico, en nuestro caso de 3 bits, entonces puede
realizarse un proceso que genere un pulso cuya duracion sea
el tiempo que tarde en realizarse el desplazamiento de dicho
valor en todo el arreglo. Esto es, hasta obtener un arreglo
completamente de 1 logicos.
Esta logica se implemento a partir del uso de tres flip-
flops D conectados en cascada junto con una compuerta and
encargada de validar la salida despues de ciertos retardos, este
circuito se muestra en la Figura 9:

Figura 9. Circuito anti-rebote.

En el circuito anterior se utilizan 3 Flip-Flops D que se


conectan en serie creando un registro de desplazamiento, por
lo tanto cada vez que se activa la entrada nppor lo menos
durante 3 ciclos de reloj entonces la salida .outpse activara.
Para este caso la senal de reloj de entrada utilizada fue de
190Hz, la cual se obtuvo a partir de una division de frecuencia
previa de la senal suministrada por la FPGA.

IV-3. Modulo contador: Este modulo constituye una de Figura 10. Contador asncrono de 0 a 9.
las partes mas importantes del cronometro, puesto que es el
encargado de realizar el conteo de tiempo. Este contador correspondio al contador de decimas de
segundo, cuyo primer flip-flop se alimento con la senal de IV-6. Multiplexor de seleccion: Este modulo tiene como
10Hz, de forma que el conteo fuera sincronizado. funcion escoger lo que se visualizara en el display. Para
Debido a que este contador se encargaba de validar los su correcto funcionamiento fue necesario crearse un variable
cambios en los otros contadores (de segundos y de minutos), (val) de 2 bits, la cual cambiaba sus valores al accionar
entonces a su entrada K se conecto el cable proveniente del los pulsadores de lap 1 y lap 2. Si esta variable tenia los
pulsador start/stop, de forma tal que cuando el valor de K valores 11 o 00 el multiplexor seleccionaba el BCD y el anodo
no era uno, el flip-flop entraba en un bucle infinito, lo cual correspondiente a el cronometro, si esta vala 01 el multiplexor
permitio que el conteo se pausara hasta el retorno de K a su seleccionaba el BCD y el anodo correspondiente a la lap 1 y
valor correcto (de 1). por ultimo si esta era 10 el multiplexor seleccionaba el BCD
Los contadores de unidades de segundo y de minutos fueron y el anodo correspondiente a la lap 2.
implementados con la misma logica del contador de decimas
de segundo, sin embargo, el contador de decenas de segundos IV-7. Decodificacion a siete segmentos: Se creo un modu-
requirio el diseno de un contador con 3 f.f. JK de 0 a 6, puesto lo con el objetivo de representar el codigo hexadecimal en
que una vez transcurridos 60 segundos debera darse paso al un display de 7 segmentos de la FPGA. Se asignaron como
conteo del minuto correspondiente. variables de entrada los bcd y anodo , y como variable
Este contador tambien fue implementado mediante un cir- de salida los segmentos del display nombrados sseg. Para
cuito asncrono y su logica se baso en la utilizacion de una realizar decodificacion se utilizo la instruccion always@()
senal clear activada por bajo, que mandara el conteo a cero que realiza el equivalente en otros lenguajes de programacion
una vez se llegara al valor de 7. a una interrupcion cada vez que alguna de las variables de
Ademas de realizar este contador, se tuvo que implementar entrada cambia.
un bloque de sincronizacion de forma que al llegar a los 60
segundos, tanto el contador de unidades de segundo como de Posteriormente se utilizo la estructura case(bcd) para rea-
decenas de segundo se volvieran a iniciar en cero, dando as lizar la decodificacion solo cuando haya una cambio en la
paso al conteo de minutos. variable de entrada bcd, se realizaron comparaciones hasta
A partir de cada contador, en total 4, se obtuvieron las llegar al valor de la variable de entrada bcd y se asignaron los
salias de cada uno de ellos y se establecieron como las senales estados correspondientes en los segmentos del display para tal
correspondientes a decimas de segundo, segundos y minutos, valor de entrada.
las cuales se almacenaron en arreglos de 4 bits para permitir
su almacenamiento mediante las laps. El esquematico del circuito obtenido a partir del programa
Xilinx es mostrado en las Figuras 11 y 12:
IV-4. Modulo Laps: Este modulo tiene como funcion
almacenar y visualizar las laps del cronometro. Para ello se
utilizo como entradas del modulo las salidas del cronometro,
las cuales asignaran su valor a unas nuevas salidas al presio-
narse por primera vez el pulsador correspondiente.
Para hacer posible la visualizacion de las laps al igual que
el retorno a la visualizacion del cronometro, fue necesario
introducir un contador el cual varia segun la cantidad de
veces que se acciona el pulsador. Donde contador igual a cero
equivale a la funcion de guardar los datos, contador igual a
uno corresponde a la visualizacion de el dato almacenado y
por ultimo contador igual a dos regreso a la visualizacion del
cronometro.
Por ultimo se implemento la funcion de reset lap la cual
corresponde a un pulsador, el cual al ser accionado mandara
a 0 todas las variables de lap incluyendo el contador. Se
utilizaron dos de este tipo de modulo ya que era necesario
el almacenamiento de 2 laps.

IV-5. Multiplexor de visualizacion: Debido a la cantidad


de datos almacenados mas los datos de salida del contador,
fueron necesarios 3 multiplexores de visualizacion para las
salidas del contador, lap 1 y lap 2. La funcion de estos
multiplexor consiste en transformar los datos de salida de cada
uno en asignaciones de 4 bits a bcd y anodo respectivamente.
Figura 11. Diagrama de bloques.
Figura 12. Composicion modular.

V. CONCLUSIONES
Se logro implementar adecuadamente el circuito del
cronometro, almacenando de manera correcta dos valores
de vueltas (laps) as como la generacion de un estado de
pausa del cronometro.
R EFERENCIAS
[1] http://www.ie.itcr.ac.cr/jdiaz/licenciatura/DISENO LOGICO/MATERIALES/
PRESENTACIONES/SECUENCIALES 1.pdf
Visitado: 18 de octubre de 2014.
[2] Fundamentos de sistemas digitales, Thomas L. Floyd, 9 edicion.
[3] http://dac.escet.urjc.es/docencia/ETC-ITIG LADE/teoria-
cuat1/tema7 circuitos secuenciales.pdf
Visitado: 18 de octubre de 2014.
[4] Harris D. y Harris S. , Digital Design and Computer Architecture.

Você também pode gostar