Laboratorio Nº 04: LATCH, FLIPFLOPS, MÁQUINAS DE ESTADOS FINITOS Facultad de Ingeniería Eléctrica y Electrónica, Universidad Nacional de Ingeniería
INTRODUCCIÓN
El siguiente Informe Previo muestra básicamente aplicar el algebra de boole , los cuales buscan la simplificacion simplificacion e implementacion implementacion de funciones funciones y conversion conversion de codigos codigos que es un elemento lógico que traduce una palabra de "n" bits a otra de "m" bits las cuales se refieren al mismo valor decimal d ecimal en general la utilización de las funciones funciones y codigo nos nos servirá como base para el desarrollo del curso OBJETIVO Compruebe el funcionamiento de los flip flops fl ops en Máquinas de Estados Finitos. Compruebe el funcionamiento de los flip flops en Registros y Contadores. Compruebe el funcionamiento de memorias tipo 2716 y/o 2732, así como la 6116 (RAM ESTÁTICA).
RESUMEN TEORICO INTRODUCCIÓN En este capítulo se inicia el estudio de los fundamentos de la lógica secuencial. Se cubren los circuitos biestables, monoestables monoestables y los l os dispositivos lógicos aestables, denominados multivibradores. Los dispositivos biestables se dividen en dos categorías: flipflops y latches. Los biestables poseen dos estados estables, denominados SET (activación) y RESET (desactivación), en los cuales se pueden mantener indefinidamente, lo que les hace muy útiles como dispositivos de almacenamiento. La diferencia básica entre latches y flip-flops es la manera en que cambian de un estado a otro. Los flip-flops son los bloques básicos de construcción de los contadores, registros y otros circuitos de control secuencial, y se emplean también en ciertos tipos de memorias.
Latches El latch (cerrojo) es un tipo de dispositivo de almacenamiento temporal de dos estados (biestable), que se suele agrupar en una categoría diferente a la de los flip-flops. Básicamente, los latches son similares a los flip-flops, ya que son también dispositivos de dos estados que pueden permanecer en cualquiera de sus dos estados gracias a su capacidad de realimentación, lo que consiste en conectar (realimentar) cada una de las salidas a la entrada opuesta. La diferencia principal entre ambos tipos de dispositivos está en el método empleado para cambiar de estado.
E l latc latchh s-r ( set-r set-reeset) set) Un latch es un tipo de dispositivo lógico biestable o multivibrador. Un latch S-R (SetReset) con entrada activa a nivel ALTO se compone de dos puertas NOR acopladas, tal como se muestra en la Figura 7.1(a); un latch con entrada activa a nivel BAJO está
formado por dos puertas NAND conectadas tal como se muestra en la Figura 7.1(b). Observe que la salida de cada puerta se conecta a la entrada de la puerta opuesta. Esto origina la realimentación (feedback) regenerativa característica de todos los latches y flipflops.
F lip-flops disparados por flanco Los flip-flops son dispositivos síncronos de dos estados, también conocidos como multivibradores biestables. En este caso, el término síncrono significa que la salida cambia de estado únicamente en un instante específico de una entrada de disparo denominada reloj (CLK), la cual recibe el nombre de entrada de control, C. Esto significa que los cambios en la salida se producen sincronizadamente con el reloj. Un flip-flop disparado por flanco cambia de estado con el flanco positivo (flanco de subida) o con el flanco negativo (flanco de bajada) del impulso de reloj y es sensible a sus entradas sólo en esta transición del reloj. En esta sección se cubren tres tipos de flipflops disparados por flanco: S-R, D y J-K. Los símbolos lógicos de estos dispositivos se muestran en la Figura 7.13. Observe que pueden ser disparados por flanco positivo (no hay círculo en la entrada C) o por flanco negativo (hay un círculo en la entrada C). La clave para identificar un flip-flop disparado por flanco mediante su símbolo lógico la da el triángulo que se encuentra dentro del bloque en la entrada del reloj (C). El triángulo se denomina indicador de entrada dinámica.
F lip-flop S-R disparado por flanco El funcionamiento básico de un flip-flop disparado por flanco positivo se muestra en la Figura 7.14, mientras que la tabla de verdad se puede ver en la Tabla 7.2. Recordemos que un flip-flop no puede cambiar de estado excepto en el flanco de disparo de un impulso de reloj.
E l flip-flop D disparado por flanco El flip-flop D resulta muy útil cuando se necesita almacenar un único bit de datos (1 o 0). Si se añade un inversor a un flip-flop S-R obtenemos un flipflop D básico, como se muestra en la Figura 7.20, en la que se muestra uno disparado por flanco positivo. Observe que el flip-flop de la Figura 7.20 tiene únicamente una entrada, la entrada D, además del reloj. Si cuando se aplica un impulso de reloj la entrada D está a nivel ALTO, el flip-flop se activa (SET) y almacena el nivel ALTO de la entrada D durante el flanco positivo del impulso del reloj.
El flip-flop J-K disparado por flanco El flip-flop J-K es versátil y es uno de los tipos de flip-flop más ampliamente utilizado. El funcionamiento del flip-flop J-K es idéntico al del flip-flop S-R en las condiciones de operación SET, RESET y de permanencia de estado (no cambio). La diferencia está en que el flip-flop J-K no tiene condiciones no válidas como ocurre en el S-R.
El temporizador 555 El temporizador 555 es un dispositivo versátil y muy utilizado, porque puede ser configurado de dos modos distintos, bien como multivibrador monoestable o como multivibrador aestable (oscilador). Un multivibrador aestable no tiene estados estables y
varía, por tanto, una y otra vez (oscila) entre dos estados inestables, sin utilizar un circuito de disparo externo. Para configurar un temporizador 555 como monoestable no redisparable, se utilizan una resistencia y un condensador externos, tal como se muestra en la Figura 7.54. La anchura del impulso de salida se determina mediante la constante de tiempo, que se calcula a partir de R1 y C1 según la siguiente fórmula:
Máquinas de estados finitos (FSM) Las máquinas de estados finitos, cuyo nombre proviene del hecho de que el comportamiento funcional de estos circuitos puede representarse mediante un número finito de estados, son una clase general de circuitos en los que las salidas dependen de la conducta anterior del circuito, así como de los valores presentes en las entradas. También se denominan circuitos secuenciales. En la mayor parte de los casos se usa una señal de reloj para controlar la operación de un circuito secuencial; un circuito de este tipo se llama circuito secuencial síncrono. La alternativa, en la que no se emplea ninguna señal de reloj, se denomina circuito secuencia asíncrono. Es más fácil diseñar circuitos síncronos y se utilizan en la inmensa mayoría de las aplicaciones prácticas. Estos circuitos son el tema del presente trabajo. Los circuitos síncronos secuenciales se realizan usando la lógica combinacional y uno o más flip-flops. Su estructura general se muestra en la figura siguiente. El circuito obtiene una serie de entradas principales, W, y produce una serie de salidas, Z. Los valores de las salidas de los flip-flops se conocen como el estado, Q, del circuito. Bajo el control de la señal de reloj, las salidas de los flip-flops cambian su estado según lo determina la lógica combinacional que alimenta las entradas de esos flip-flops. De esta manera el circuito pasa de un estado a otro. Para asegurar que sólo hay una transición de un estado a otro durante un ciclo del reloj, los flip-flops deben ser del tipo disparado por flanco.
OBSERVACIÓN Y RECOMENDACIONES 1. Observamos que en el caso de los flip-flops, para un mismo código de circuito integrado pero diferente fabricante varía mucho la posición de los pines, es decir para diferentes marcas el data shet varia, cosa que no pasaba con la compuertas básicas. 2. Además había de tener en cuenta a la hora de comprar los flip-flops, el tipo de entrada de reloj, para esta experiencia todos los flip-flops debían tener la misma respuesta de excitación de la señal de reloj. 3. Recomendamos que cuando el circuito es muy grande (mucho hardware como en el problema 03), se tenga sumo cuidado a la hora de implementar el circuito, ya que se pueden suscitar erros en las conexiones, ocasionado calentamiento en los circuitos integrados. 4. Además, se recomienda que si el circuito no funciona y todo esta alimentado con voltaje correctamente, se debe tocar los integrados para ver si se calientan o no, y así poder saber dónde está la mala conexión.
CONCLUSIONES 1. Nuestra primera conclusión es que se logró comprobar el funcionamiento los flip-flops en maquias de estados finitos, en Registros y contadores. 2. Concluimos que los flip-flops abren todo un mundo al ser variantes con el tiempo (con su reloj). Dándonos una interacción más dinámica con el mundo real, y así podemos encontrar muchas aplicaciones reales, como en el caso del problema 04 que el desplazamiento de un bit hacia la derecha, se traducía en colores que se iban prendiendo y apagando, como se ve en los paneles de los centro comerciales. 3. También llegamos a concluir que se puede obtener flip-flops de todos los tipos (JK, RS, D, T) a partir de ya sea compuerta NAND o NOR. Comprobándose experimentalmente todo lo visto en teoría.
BIBLIOGRAFÍA [1] [2] [3] [4] [5] [6] [7] [8]
John F. Wakerly, Diseño digital, 3era edición. Analisis y Diseño de Circuitos Logicos Digitales-Nelson, Nagl, Carrol, Irwin. Sistemas Digitales: Principios y Aplicaciones Ronald Tocci. Logica Digital y Diseño de Computadoras Morris Mano. Fundamnetos de Sistemas Digitales-Thomas Floyd. Fuente del navegador http://www.ti.com/ Fuente del navegador http://electronicsclub.info/74series.htm Fuente del navegador http://materias.fi.uba.ar/6609/docs/Apunte_Familias1_1.pdf –
–
6. Usando la herramienta Max Plus II, diseñe un circuito contador escalador que proporcione la secuencia: 5, 7, 2, 0, 4, 5, … Según el procedimiento siguiente:
a) b) c) d) e) f) g)
Crear el esquemático. Asignar pines de entrada y salida. Conecta los símbolos. Editar los nombres de los pines. Asignar número de pines. Compilar el proyecto. Simular el proyecto.
El circuito lo implementaremos con 3 Flip Flops J-K. La secuencia a seguir, en binario, es 101111-010-000-100-101…
La tabla de verdad para un Flip Flop J-K es: J 0 0 1 1
K
Q*
0
Q0
1
0
0
1
1
0
De esta manera tenemos y optando por costo mínimo: Estado Actual C B 0 0 0 1 1 0 1 0 1 1
Estado Siguiente
Flip Flop C (FF-C)
Flip Flop B (FF-B)
Flip Flop A (FFA) Kb Ja Ka
A
C*
B*
A*
Jc
Kc
Jb
0
1
0
0
1
X
0
X
0
X
0
0
0
0
0
X
X
1
0
X
0
1
0
1
X
0
0
X
1
X
1
1
1
1
X
0
1
X
X
0
1
0
1
0
X
1
X
0
X
1
De los mapas K se obtiene: A\CB 0 1
00
01
11
10
1
0
0
X
0
0
X
X
= ̅
A\CB 0 1
00
01
11
10
X
X
0
0
0
0
1
0
=
A\CB 0 1
00
01
11
10
0
X
0
0
0
0
X
1
=
A\CB 0 1
00
01
11
10
X
1
0
X
0
0
0
X
= ̅ ̅
A\CB 0 1
00
01
11
10
0
0
0
1
0
0
X
X
=
A\CB 0 1
00
01
11
10
X
X
0
X
0
0
1
0
=
Luego con estos datos procedemos a hacer la simulación en quartus II, asignando pines de entrada y salida, nombrándoles y haciendo las respectivas conexiones obtenemos: AND2 NOT
inst13
inst
AND3
inst3
AND2
inst8 JKFF
JKFF
PRN J
JKFF NOT
PRN Q
J
Q
NOT
PRN J
Q
inst9
K CLRN FF-C
K CLRN FF-B
inst7
K CLRN FF-A
AND2
inst11
CLK
INPUT VCC
AND2
inst10
T U P T U O
T U P T U O
T U P T U O
B
A
C
Simulación de contador escalonado, usando quartus II v9.1:
7. Usando la herramienta Max Plus II, diseñe la máquina de estados que reconozca la secuencia 0011, aún traslapadas. Según el procedimiento: a) b) c) d) e) f) g)
Crear el esquemático. Asignar pines de entrada y salida. Conecta los símbolos. Editar los nombres de los pines. Asignar número de pines. Compilar el proyecto. Simular el proyecto.
Comenzamos asignando estados: Considerando A = 00, B = 01, C = 10, D = 11 tenemos el diagrama de estado:
Luego realizamos nuestra tabla de transiciones: Estado Actual Estado Siguiente Q1 Q0 x Q1* Q0* x 0 0 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 0 1 1 1 0 1 1 0 0 1 0 1 1 1 0 0 1 1
Flip Flop 1 (FF-1) Flip Flop 0 (FF-0) J1 K1 J0 K0 0 X 1 X 0 X 0 X 1 X X 1 0 X X 1 X 0 0 X X 0 1 X X 1 X 0 X 1 X 1
Realismos los mapas de karnaguth obtenemos: x\Q1Q0 0 1
00
01
11
10
0
1
X
X
0
0
X
X
1 = ̅
x\Q1Q0 0 1
00
01
11
10
X
X
1
0
X
X
1
0
1 =
x\Q1Q0 0 1
00
01
11
10
1
X
X
0
0
X
X
1
= 1 ̅ + 1 = ⊕ 1
x\Q1Q0 0 1
00
01
11
10
X
1
0
X
X
1
1
X
= 1 +
Luego teniendo en cuenta lo hallado en los mapas de kaurnaght, procedemos a crear el circuito esquemático en quartus II, asignamos pines de salida y de entrada, los nombramos y hacemos las respectivas conexiones. Luego el circuito queda de la siguiente manera.
AND2 NOT
x
JKFF
INPUT VCC
PRN inst4
inst5
J
Q
K CLRN FF-1
XNOR
JKFF
PRN
inst6
J
OR2
Q
K CLRN FF-0
NOT
inst7 CLK
INPUT VCC
inst8
AND3 OUTPUT
inst
z
Simulación de la máquina de estados que reconoce la secuencia 0011(X) y la salida Z.