Cuatro Tipos de Flip-Flop en la GAL22V10 Un método para eliminar los estados transitorios inestables en el diseño de circuitos digitales secuenciales es el uso de flip-flops disparados por flanco, esto es, que dichos dispositivos sólo son sensibles a sus entradas de excitación solamente cuando ocurren las transiciones ascendentes o descendentes de una señal llamada reloj. Se dice que un dispositivo de estos es manejado por flancos positivos si sólo cambia de estado cuando su señal de reloj va de 0 a 1, o por el contrario es impulsado por flancos negativos si sólo cambia cuando la señal de reloj va de 1 a 0. El proyecto que ahora nos ocupa es implementar cuatro tipos de flip-flops muy semejantes a los comerciales, en la GAL22V10, mediante el uso del lenguaje ABEL-HDL. Módulo flip-flop tipo D dual 74LS74 La figura 1 muestra el circuito para implementar el módulo comercial. Además de las señales de reloj y del dato se cuenta con dos señales asincrónicas: una que envía la salida a 1 y la otra que envía la salida a 0. Estas dos señales son activas bajas y afectan de inmediato al dispositivo, sin esperar al flanco activo del reloj.
Figura 1 Flip-flop tipo D disparado por flanco positivo: a) Diagrama lógico y b) Símbolo lógico genérico. Tabla 1 Tabla de excitación del 74LS74
Entradas PRE
CLR
0 1 0 1 1 1
1 0 0 1 1 1
Prof. S. Saucedo
Salidas D X X X 1 0 X
CLK X X X ↑ ↑ 0
1
Q
Q
1 0 1 1 0
0 1 1 0 1
Q0
Q
Modo Set Clear No permitido Función con flanco Función con flanco Retención
ICE/2007
Los modos de operación del 74LS74 se dan en la tabla 1. Notar que las señales set y clear ( PRE y CLR ) tienen precedencia sobre las entradas D y CLK en el funcionamiento. Cuando PRE y CLR están inactivas (en 1) CLK controla al dispositivo. La ecuación característica de este flip-flop es: Q*
=
D
Flip-flop tipo JK dual disparado por flanco negativo 74LS73A Los flip-flops disparados por flanco son comunes en la familia TTL. El flip-flop 74LS73 responde a los flancos de bajada del reloj y su diagrama viene dado en la siguiente figura.
Figura 2 Flip-flop JK disparado por flanco: a) Diagrama lógico del 74LS73 y b) Símbolo lógico genérico.
Este flip-flop cuenta con una señal clear asincrónica individual. La tabla de excitación, cuando CLR está inactiva, es: Tabla 2 Tabla de verdad para el flip-flop JK.
J 0 0 0 0 1 1 1 1
K 0 0 1 1 0 0 1 1
Q 0 1 0 1 0 1 0 1
CLK ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
Q* 0 1 0 0 1 1 1 0
Modo Retención Reset Set Conmuta
La ecuación característica del flip-flop JK disparado por flanco viene dada por: Q*
=
KQ + J Q
La tabla de excitación para tal slip-flop se da en la siguiente tabla:
Prof. S. Saucedo
2
ICE/2007
Q 0 0 1 1
Q* 0 1 0 1
J 0 1 X X
K X X 1 0
Flip-flop T disparado por flanco Un bloque de construcción de uso común en los circuitos digitales secuenciales es el flip flop que conmuta en cada flanco activo del reloj, el tipo T (toggle). Aunque no está disponible como un TTL comercial, se implementa usando un flip-flop tipo D o un tipo JK. La función de este dispositivo es cambiar su salida en cada flanco activo de reloj, según sugiere la figura 3.
Figura 3 Flip-flop T disparado por flanco negativo a) Símbolo lógico genérico y b) Equivalente funcional.
De acuerdo con la figura la ecuación característica para el flip-flop T es: Q*
= Q
Uno de los flip-flops que contempla el presente proyecto es implementar un flip-flop tipo T usando el flip-flop tipo D con que viene la GAL, dotándolo de tercer estado en la salida, de acuerdo al siguiente diagrama:
Prof. S. Saucedo
3
ICE/2007
Figura 4 Equivalente del flip-flop T en la GAL22V10, con salida de tres estados.
Al implementar el circuito anterior en la GAL22V10, el resultado será algo semejante al dibujo de la figura 5.
Figura 5 Extensiones DOT e independencia de arquitectura.
Otro flip-flop a implementar es el JK disparado con flanco positivo, mismo que se implementa mediante el diagrama dado en la figura 6. La señal clear es asincrónica, mientras que el preset es sincrónico.
Figura 6 Emulación del flip-flop JK mediante el tipo D con una XOR.
Prof. S. Saucedo
4
ICE/2007
Recordar que la salida para diseños de registro cuenta con una macro celda dada a continuación.
Figura 7 Diagrama esquemático de una macro celda de la GAL22V10.
Flip-Flop SR maestro-esclavo Un método para evitar el comportamiento inestable utiliza dos biestables en una configuración maestro-esclavo como se muestra en la figura 8. Las señales de activación de los dos latches son controladas por versiones complementarias de una señal de reloj. Cuando la señal de reloj es baja el match maestro está en modo de compuerta y el esclavo en modo de retención.
Figura 8 Flip-flop SR maestro-esclavo a) Diagrama lógico y b) Símbolo lógico.
Tabla de verdad del slip-flop SR de pulsos: S 0 0 0 0 1 1 1 1
R 0 0 1 1 0 0 1 1
Q 0 1 0 1 0 1 0 1
C
Q* 0 sin 1 cambio 0 0 reset 1 1 Set No permitido
La siguiente tabla ofrece la excitación para el flip-flop SR.
Prof. S. Saucedo
5
ICE/2007
Q 0 0 1 1
Q* 0 1 0 1
S 0 1 0 1
R X 0 1 0
La figura 9 muestra el listado para implementar los cuatro flip-flops MODULE flipFlop TITLE 'Cuatro tipos de Flip Flop' X,C,Z = .x.,.c.,.z.; " Entradas REL,D,PRE,CLR,S,R pin 1,2,3,4,8,9; Toggle pin 6; Ena pin 7; J,K pin 10,11; "salidas Q1 Qo Q2 Q3
pin pin pin pin
21 18 15 23
istype istype istype istype
'reg'; 'reg'; 'reg'; 'reg';
" " " "
D T JK SR maestro-esclavo
equations Q1.ar = !CLR; Q2.ar = !CLR; Q1.clk = REL; Q1.sp = !PRE; Q2.sp = !PRE; Q1.d = D; Qo := !Qo.FB & Toggle; Qo.CLK = REL; Qo.OE = !Ena; Q2 := (Q2) $ (J & !Q2 # K & Q2); Q2.clk = REL; Q3 := S # !R&Q3; Q3.clk = REL; test_VECTORS ([REL,D,PRE,CLR,Ena,Toggle,J,K,S,R]-> [Q1,Qo,Q2,Q3]) [C, 0, 1, 1, 0, 0, 0, 0,1,0] -> [0,0,0,1]; [C, 1, 1, 0, 0, 1, 0, 1,0,0] -> [0,0,0,0]; [C, 1, 1, 1, 0, 1, 1, 0,1,0] -> [1,1,1,1]; [C, 1, 1, 1, 0, 1, 1, 1,0,1] -> [1,0,0,0]; [C, 0, 1, 1, 1, 1, 1, 1,0,1] -> [0,Z,1,0]; [C, 0, 0, 1, 0, 0, 0, 0,0,0] -> [1,1,1,1]; [C, 1, 1, 1, 1, 1, 1, 1,1,0] -> [1,Z,X,1]; [C, 0, 0, 1, 0, 1, 0, 1,0,1] -> [X,1,1,X]; [C, 1, 1, 1, 0, 1, 0, 1,0,0] -> [1,0,0,X]; END
Figura 9 Archivo fuente para asignar pines, ecuaciones y vectores de prueba.
Prof. S. Saucedo
6
ICE/2007
La figura 10 exhibe la respuesta simulada para los vectores propuestos
Figura 10 Respuesta de los tres flip-flops.
Tarea práctica. Diseñar con ABEL-HDL un flip-flop cuádruple y otro octal que emulen a los integrados 74LS175 y 74LS273, cuyos diagramas se ofrecen enseguida.
Flip-flop tipo D cuádruple 74LS175 con reset común asincrono.
Prof. S. Saucedo
7
ICE/2007
Flip-flop octal 74LS273 (fragmento) con reset común.
Prof. S. Saucedo
8
ICE/2007