Está en la página 1de 15

INFORME N°5: REGISTROS Y

CONTADORES
Guerrero Pascual Gruber 20152201C
Jiménez Solorzano, Anderson Rober 20170042K
Huamani Gonzales Javier Cesar 20170400D

Universidad Nacional de Ingeniería


Resumen—Este laboratorio N°5, se basa contador se conectan de forma que fuercen a
esencialmente en el funcionamiento de los flip- los flip-flops a seguir la secuencia prescrita
flops ya sea en máquinas de estados finitos como de estados.
en registros y contadores, y el uso de estas
Dado que cada flip-flop es capaz de
últimas.
almacenar 2 estados, un sistema de n flip-
Palabras clave—Flip-Flops, Latch, máquinas de flops podrá codificar 2n estados (números de
estado, asíncronas, el reloj. cuenta) diferentes. El paso del estado o
número de cuenta actual al estado siguiente
se realiza en sincronismo con la señal de
reloj, de tal forma que el contador va
I. OBJETIVO: avanzando por la secuencia de estados hasta
1. Comprobar el funcionamiento de los registros y que termina de completar un ciclo, es decir,
contadores. una secuencia de conteo particular. Una vez
terminado el ciclo, vuelve al estado de
2. Diseñar Máquinas de Estados Finitos partida y comienza un nuevo ciclo. Como
complejas. cada estado sólo posee un estado siguiente,
es fácil deducir que todos los estados que
3. Implementar circuitos secuenciales tanto en
recorre un contador en un ciclo o secuencia
circuitos discretos como VHDL usando la
de conteo son diferentes. Si el número de
herramienta Quartus II.
estados diferentes que recorre es k, se habla
de un contador módulo k. El número
máximo de estados posibles es 2n, por lo que
II. RESUMEN k ≤2n. Un contador se denomina binario si
TEÓRICO k=2n.

CONTADORES BINARIOS
CONTADORES
Un contador, como todo circuito secuencial,
Un contador es un circuito secuencial cuya se puede implementar como un autómata.
función es seguir una cuenta o conjunto Aunque un autómata muy especial, puesto
predeterminado de estados como que no posee entradas (cada estado sólo
consecuencia de la aplicación de un tren de posee un único estado siguiente al que
pulsos (reloj) en una de sus entradas. Los accede cuando existe una variación o flanco
contadores son circuitos construidos a base en la señal de reloj), y no posee salidas (la
de flip-flops, sincronizados a flancos, y de salida de un contador es su propio estado
puertas lógicas para realizar la conexión interno, es decir, el valor almacenado en sus
entre los flip-flops. Las puertas lógicas en un biestables).
El método de diseño es el mismo que el
usado en el tema anterior, e incluso algo ms
sencillo puesto que ya no es necesario
minimizar ni asignar estados. Veamos un
ejemplo y diseñemos un contador binario
ascendente módulo 8, es decir, un contador
que siga la secuencia {..., 0, 1, 2, 3, 4, 5, 6, 7,
...}. La tabla de transiciones de estado del
contador será:

Figura1. Diagramas de Karnaugh

Tabla1.

Para conocer las funciones J y K de cada


biestable hay que utilizar la tabla de
transiciones de estado de un flip-flop JK.
Llegamos a la siguiente tabla:
Figura2. Contador binario

Estas ecuaciones se pueden generalizar para


secuencias de conteo mayores y para un
número mayor de flip-flops de la siguiente
forma:

Tabla2.

Sólo nos resta encontrar las expresiones de


las entradas J y K de cada biestable en
función del estado actual. Para ello debemos
minimizar las funciones de la tabla anterior
utilizando mapas de Karnaugh. El contador se puede ver en la figura 1. El
principal problema de este diseño es que,
para un número elevado de biestables, se
necesitan puertas AND cada vez con un
número mayor de entradas y pueden
aparecer problemas de fan-in y fan-out
(recordemos los problemas del mismo tipo
que aparecían en el sumador de acarreo Contadores no Binarios
adelantado).
Se puede plantear el problema inverso de
tomar como partida el esquema de un Hasta ahora hemos construido contadores
contador ya diseñado y obtener su secuencia binarios, esto, es con n flip-flops la
de conteo. El procedimiento por seguir es el secuencia que se ha implementado es {..., 0,
mismo que el utilizado en el análisis de 1, 2, ..., 2n -1, ...}. Sin embargo, cabe la
autómatas. posibilidad de generar secuencias de conteo
que no sigan el orden natural o que el
Leyendo las conexiones del contador número de cuentas sea menor que 2n. En
obtenemos las expresiones de las Js y las Ks general, un contador que realice k cuentas
de cada biestable en función del estado distintas recibe el nombre de contador
actual del contador (Q n). Partiendo de la módulo k.
cuenta 000 (u otros valores concretos de las
Q n ) y usando las ecuaciones anteriores El método de diseño que hemos expuesto en
obtenemos los valores concretos de las J i y el apartado anterior para contadores binarios
es un método general que se puede aplicar
K i. Dados estos valores se determina a partir
para cualquier tipo de cuenta y se puede
de la Tabla de Verdad del JK los nuevos generalizar para cualquier tipo de flip-flop
valores de los Q n+ 1, que son los (JK, RS, T y D).
correspondientes a la cuenta siguiente.
Usando estos nuevos valores de cuenta Como ejemplo de esta afirmación,
(valores de Q n ) se recalculan los nuevos construyamos a partir de flip-flops tipo T un
valores de J i y K i, y así sucesivamente hasta contador que siga la secuencia {..., 0, 7, 5, 3,
completar la secuencia de conteo, es decir, 4, 2, ...}. El primer paso es obtener la Tabla
hasta que se repite un estado. de Transiciones de estado del flip-flop T:

Podemos ver el funcionamiento de este


proceso aplicándolo al contador que hemos
diseñado anteriormente (ver figura 1).
Obtenemos las funciones de onda que se
pueden ver en la figura 2.

Figura4. Tabla de transición

El segundo paso, y último, es la obtención de


las expresiones de las T i a partir de la cuenta
actual y de la cuenta siguiente. En las
cuentas no usadas ponemos indiferencias. El
resultado final será:

Figura 3. Funciones de onda


1. Si el contador cae en Q n2 Q n1 Q n0 = 001
(cuenta 1), sustituyendo en las
ecuaciones, tendremos que T 2 = 1, T 1 =
1 y T 0 = 1 con lo cual el contador
pasará al estado Q n+ 1 n+1 n+1
2 Q1 Q0 = 110
(cuenta 6).

2. Si el contador cae en Q n2 Q n1 Q n0 = 110


(cuenta 6), sustituyendo en las
Figura 5. Contador de secuencia 0, 7, 5, 3, 4, 2.
ecuaciones obtenemos T 2 = 0, T 1 = 1 y
T 0 = 0 y el siguiente estado será
Q n+ 1 n+1 n+1
2 Q1 Q0 = 100 (cuenta 4), que ya
forma parte de la secuencia, con lo que
el contador seguirá contando
normalmente.

Tabla4.

Para obtener las expresiones de las T i en


función de las Q n. minimizamos mediante
mapa de Karnaugh.
Figura 7. Salidas del contador de
secuencia 0, 7, 5, 3, 4, 2.

Una consecuencia de poner indiferencias en


los estados (cuentas) no utilizados es que, si
por casualidad el contador cae en uno de
Figura 6. Diagramas de Karnaugh esos estados, desconocemos, a priori, el
estado siguiente al que pasará. Cabe la
Es decir, T 2 = Q́ n1 + Q́ n2 Qn0, T 1= 1 y T 0 = posibilidad de que el contador produzca un
Q́ n2 Q́n1 + Q́ n2 Qn0. El circuito resultante se puede ciclo por el que nunca llegue a un estado
ver en la figura 3, y sus salidas están en la utilizado o válido. Esto puede ocurrir si el
figura 4. contador se queda en los ciclos {..., 1, 6, ...},
{..., 1, ...}, o {..., 6, ...}. Un contador cuyos
Una vez construido el contador podemos estados no utilizados tienen esta propiedad
comprobar que la secuencia de conteo que (de generar ciclos de estados o cuentas no
realmente sigue es la que hemos diseñado. válidas) se dice que puede bloquearse. En
Cabe preguntarse que pasará si el contador cualquier caso, en todo diseño de un
cae, debido a un mal funcionamiento o contador es necesario comprobar el estado
comportamiento anómalo de sus componentes siguiente de cada estado no utilizado para
físicos, en alguna de las cuentas no utilizadas, comprobar que no se bloquea.
en este caso 1 y 6.
Una alternativa es la no utilización de
indiferencias en el proceso de diseño del flanco o por nivel.
contador, colocando en las cuentas no  Inhibición/habilitación de reloj:
utilizadas estados siguientes concretos (no bloquea/habilita las entradas del
necesariamente el mismo). registro. (CE)
 Clear (puesta a 0): entrada
Ello complicará el diseño, ya que eliminará asíncrona (habitualmente)
indiferencias, pero garantiza un correcto común a todos los biestables.
funcionamiento del contador, aún en el caso  Preset (puesta a 1): entrada
de que, por cualquier causa, llegue a alcanzar asíncrona (habitualmente)
un estado o número de cuenta no válido. común a todos los biestables.
 Inhibición/habilitación de la
Registros salida: desconecta/habilita la
salida del registro. (OE)
Son conjuntos de biestables que funcionan al
unísono compartiendo sus señales de control. Registros de almacenamiento en paralelo
Normalmente se utilizan registros formados
por biestables de tipo D, o bien con Son los más frecuentes, y se emplean para
biestables S-R o J-K funcionando como almacenar datos.
biestables D.
Los registros necesitan una señal de Los bits de datos de entrada se almacenan
sincronismo por nivel (Latch) o por flanco. todos a la vez, las entradas de datos de los
A diferencia de los contadores no tiene una biestables son accesibles desde el exterior.
secuencia especifica de estados.
Ejemplo con biestables D síncronos
Aplicaciones: almacenamiento y por flanco de subida.
desplazamiento de datos

Tipos de registros

Tabla 5. Figura 7. Registro de almacenamiento


síncrono activado por flanco de subida
Líneas más comunes en los
registros:
También pueden utilizarse registros
 Entrada paralela: cada biestable síncronos por nivel, en cuyo caso
tiene su propio bit de entrada. tendremos un registro de tipo latch.
 Salida paralela: cada biestable
ofrece su propio bit de salida.
 Entrada serie: la entrada se
produce bit a bit, siempre por el
mismo biestable.
 Salida serie: la salida se produce
bit a bit, siempre por el mismo
biestable.
 Reloj: puede ser activo por
Figura 10. Registro de almacenamiento con
CE y OE activo por nivel alto

Registros de desplazamiento serie/serie

La entrada es bit a bit por un


extremo (línea ES izquierda o
derecha) y la salida es bit a bit por
el otro (SS izquierda o derecha).

 Registro de desplazamiento hacia la


izquierda: ESI y SSI.
Figura 8. Registro de almacenamiento  Registro de desplazamiento hacia la
síncrono por nivel alto derecha: ESD y SSD.

Podemos combinar ambos Aplicación: línea de retardo y es función del


conceptos y crear un registro número de etapas del registro y la frecuencia
síncrono por flanco con habilitación del reloj.
de entradas (CE).
Ejemplo: registro de desplazamiento hacia la
Ejemplo con CE activa por nivel derecha con biestables SR.
alto.

Figura 11. Registro de desplazamiento


hacia la derecha con biestables.
Figura 9. Registro de almacenamiento con
CE activo por nivel alto. Registros de conversión serie/paralelo

Al registro anterior podemos La entrada llega bit a bit en serie (ES izquierda
añadirle una entrada de habilitación o derecha), y la salida se ofrece en paralelo
de salidas (OE). por todos los biestables a la vez. El bit de
entrada se va desplazando por el registro a
golpe de reloj.
Aplicación: La transmisión de datos en serie
reduce el número de conductores. Los µP
requieren la entrada de datos en paralelo ⇒
necesidad de un conversor serie/ paralelo
Ejemplo: conversión serie/paralelo
con desplazamiento hacia la
derecha.
6, 0, …, y si X= ’1’, la máquina debe
generar las cuentas 1, 3, 5, 7, 1, 3, 5, 7, 1,
3,…, y se debe comportar de tal manera
que si está en la cuenta par y X cambia a
‘1’, el siguiente valor de cuenta debe ser el
valor impar siguiente, y su está en la
cuenta impar y X cambia a ‘0’, el
siguiente valor de cuenta debe ser el valor
Figura 12. Registro de conversión par siguiente. Se pide:
serie/paralelo con desplazamiento hacia la
derecha.
a) ¿Qué tipo de máquina es?
Registros de conversión
paralelo/serie b) Dibujar el diagrama de estados de la
máquina.
El registro se carga en paralelo
(todos los bits a la vez), pero la c) Dar la tabla de excitación usando flip-
salida se ofrece a través de un solo flop tipo D
bit. El contenido del registro se
desplaza hacia un lado a golpe de d) Realizar la síntesis de la máquina
reloj.
e) Implementar en el entorno gráfico del
Ejemplo: conversor paralelo/serie software EDA Quartus II y realizar la
con carga síncrona y simulación temporal (no funcional) del
desplazamiento a la derecha. diseño, seleccionado el dispositivo FPGA
Cyclone II EP2C35F672C6. Usar la señal
CLK como señal de reloj, con un período
de 75 ns, y simular el diseño por 2 μs. El
nombre del proyecto es pregunta1.

Solución:

a) Observamos que las salidas de esta


máquina generadora de cuentas no
Figura 13. Registro de conversión dependen de las entradas sino del estado
paralelo/serie. actual ya sea la cuenta par o la cuenta
impar por lo tanto será una FSM de tipo
III. CUESTIONARIO: Moore.
b) El diagrama de estados de la FSM será:
PREGUNTA 1.- Diseñar una máquina de
estados síncrona con u ncontrol de
entrada X y salida P de tres bits ( P2 P1 P0,
donde P0 es el LSB) que funciones de la
manera siguiente: si X= ’0’, la máquina
debe generar las cuentas 0, 2, 4, 6, 0, 2, 4,
Tabla 8: D 2=Q 2 ( Q́ 1 + Q́0 X ) + Q́ 2 Q 1 ( X́ +Q 0 )

Figura 14. Diagrama de estados de la FSM Para D1:


Moore.

c) La tabla de excitación será:


Asignamos los estados:

Tabla 9: D 1=Q́ 1 ( X́ +Q 0) +Q 1 Q́0 X

Para D0:

Tabla 6.

Ahora la tabla de excitación será:

Tabla 10: D 0= X

Para las salidas P2, P1 y P0:

Al ser una FSM Moore entonces:


P2 = Q2, P1= Q1 y P0 = Q0
El circuito implementado será:

Tabla 7. Tabla de excitación.

d) Realizar la síntesis de la máquina


Mediante Mapas-K hallamos las expresiones
para Q2*, Q1*, Q0*:

Para D2:
Figura 15. Circuito implementado de la
máquina en Microcap 12.

e) Implementar en el entorno
gráfico del software EDA
Quartus II

A continuación, mostramos la codificación


de la FSM:
Figura 17. Componente de la FSM

A continuación, mostramos la simulación


temporal de la FSM con una secuencia
aleatoria 1011010010001:

Figura 18. Simulación temporal con ciclo de


reloj de 75ns para 2us.

Para observar con mayor detenimiento nos


centramos en una parte de la gráfica para ver
que la FSM pasa por todos los estados:

Figura 16. Código VDHL Figura 19. Simulación temporal con ciclo de
reloj de 75ns para 2us, vemos que, para la
A continuación, mostramos el componente secuencia aleatoria dada, la FSM pasa por
obtenido: todos los estados.

PREGUNTA 3.-
Diseñe e implemente en el laboratorio un
circuito utilizando el software EDA Quartus II
de tal manera que efectúe todas las
funcionalidades (una a la vez) del circuito
integrado 74194, seleccionado el dispositivo
FPGA Cyclone II EP2C35F672C6. La
implementación será a nivel de entorno gráfico.
El nombre del proyecto es pregunta2. El
circuito debe cargar un dato en paralelo de
manera síncrona (1 pulso de reloj, dato a
cargar 0110), desplazar la información cargada
a la derecha (con recirculación) por 5 pulsos de
reloj, desplazar la información a la izquierda
(con recirculación) por 6 pulsos de reloj, y al
final, parar. Notar que, se debe diseñar una
FSM a fin de generar las señales de control
adecuadas del 74194 para los fines solicitados.
Tabla 11.
SOLUCION:

DISEÑO DEL CIRCUITO: SIMULACION POR PARTES SEGÚN LA


ENTRADA DE SELECCIÓN:

Durante el primer pulso de reloj en el flanco de


subida y siendo la entrada S1S0=01 se cargan los
datos de forma paralela 0110:

Figura22.

Durante los siguientes 5 pulsos de reloj y


manteniendo las variables de control S1S0=00se
hace un desplazamiento a la derecha tomando la
salida en serie:
Figura 20. Circuito

SIMULACION:

Figura 23.

Durante los siguientes 6 pulsos de reloj y


manteniendo las variables de control S1S0=11 se
hace un desplazamiento a la izquierda tomando la
Figura 21. Señal resultante salida en serie:

VARIABLES DE SELECCIÓN:
Figura 24. Para la solución del problema tomamos en
cuenta las condiciones planteadas en la tabla
Durante las variables de control fueran S1S0=10 proporcionada, para ello se debe tener un
entonces se mantiene el estado no hay cambio: orden en la prioridad de las entradas para
proceder con la codificación.

- La primera prioridad quedaría de


esta manera: aclr > sclr > id > func/updwn

De esta manera cuando aclr=0, dout=0000.

- Cuando aclr=0 y sclr=0 se procederá


a verificar el valor de func:
Figura25.
Si fun = 0 cuenta par de lo contrario será
Problema 3: cuenta impar.

A continuación, se verifica el valor de


up/dwn:

- Si up/dwn=0 entonces si dout =


número impar, el siguiente dout= número
impar-1 y si up/dwn=1 entonces si dout =
número impar, el siguiente dout= número
par+1

- Si up/dwn=0 entonces si dout =


número par, el siguiente dout= número par-2
y si up/dwn=1 entonces si dout = número
par, el siguiente dout= número par+2

Si fun = 1 cuenta impar.


A continuación, se verifica el valor de
up/dwn:

- Si up/dwn=0 entonces si dout =


número par, el siguiente dout= número par-1
y si
up/dwn=1 entonces si dout = número par, el
siguiente dout= número par+1

- Si up/dwn=0 entonces si dout =


número impar, el siguiente dout= número
impar-2 y si up/dwn=1 entonces si dout =
número impar, el siguiente dout= número
impar+2
Solución:
A continuación, se muestra la codificación
en VHDL.

Figura 25. Código VDHL.

A continuación, se muestran los diagramas


de tiempos para las distintas situaciones con
duración de pulso de reloj de 50 ns y tiempo
de simulación de 3us:

Para aclr=0: Se observa que dout=0000

Figura 26. Se observa que dout=0000

Para: sclr=1:
V. CONCLUSIONES
Pregunta 1:

Figura 27. Se observa que dout=0000 Comprobamos el retardo de propagación en


los Flip-Flops, esto debido a que se requiere
Para: aclr=1 y sclr=0: Se pueden ver ciertas de un tiempo de setup y un tiempo de hold
transiciones a estados no deseados para que se pueda establecer el cambio de
estados, estos retrasos en los Flip Flops
pueden ser distintos entre sí, lo que ocasiona
una transición a estados no deseados por
cortos periodos de tiempo.

Pregunta 2:

Figura 28. Se observan las transiciones Concluimos que los FF-D son de esencial
solicitadas y algunas a estados no importancia en diversas aplicaciones de
deseados electrónica, donde requeriríamos representar
mediante leds o paneles de leds cierta
información que se requiera conocer, esto
IV. OBSERVACIONES debido a su uso en el diseño de circuitos que
contienen contadores y registros.
Pregunta 1:

Se observa en el diagrama de tiempos ciertas


transiciones cortas a estados no permitidos. Pregunta 3:
Se observa también que la maquina puede
ser transformada de una FSM Meally a una Se concluye que el adecuado análisis de las
FSM Moore. entradas y salidas asociadas a un circuito
conformado por contadores y registros es
esencial para poder establecer ya sea la
Pregunta 2: codificación o implementación.
En el diagrama de tiempos comprobamos la
Se observa el complejo diseño que tiene el prioridad en las entradas, en este caso la de
circuito debido a la cantidad de FF-D y mayor prioridad era aclr.
MUXES usados.
Se observa en el diagrama de tiempos el
retraso en el cambio de estados de los leds de VI. RECOMENDACIO
prendido a apagado según sea la selección
NES
Pregunta 1:
Pregunta 3:
Ser cuidadoso en la resolución de las
ecuaciones de excitación ya que en estas se
En el diagrama de tiempos se observa el
basa el diseño del circuito secuencial.
retraso en las salidas, también observamos el
Elegir bien los tipos de Flip-Flop que
salto a estados no deseados y la importancia
usaremos en Microcap 12 ya sean activados
de las entradas aclr y sclr.
por flanco de subida, de bajada o activados a
nivel alto.
Para comprobar el circuito es necesario
introducir una secuencia aleatoria que haga
transcurrir a la FSM por todos los estados.

Pregunta 2:

Se recomienda tener clara la parte teórica


sobre ellos contadores ya que son esenciales
para el diseño del circuito del presente
problema.

Al momento de diseñar el circuito tener


presente el orden en las conexiones ya que al
ser un tanto complejo el diseño pueden
surgir errores de conexión, lo que conlleva a
su mal funcionamiento.

Pregunta 3:

Realizar primero un análisis de las


prioridades de las entradas para poder llevar
ese razonamiento a la codificación de
manera correcta, ya que de lo contrario no
obtendremos los resultados esperados.
Dar valores a las entradas para que se
observen todas las situaciones requeridas.

VII. BIBLIOGRAFÍA
- http://www.cartagena99.com/recursos/alum
nos/apuntes/Tema6_SED_1415.pdf

- http://quegrande.org/apuntes/EI/1/TC/teoria
/09-10/tema_7_-
_contadores_y_registros.pdf

- Sistemas Digitales Principios y


aplicaciones. 8°Edición. Tocci

- Sistemas Digitales. Luis Romero


Goytendía. EDUNI

También podría gustarte