SISTEMAS SECUENCIALES Un circuito secuencial es aquel que resuelve una función lógica tal que los valores de sus salidas en un determinado momento, dependen de los valores de sus entradas en ese mismo momento y de los últimos valores que tenía anteriormente. Esto significa que para valores iguales en sus entradas, se puede obtener valores distintos en sus salidas en distintos momentos. tiempo A B F0 F1 Tn-1 0 0 0 1 Tn 1 0 1 1 Tm-1 1 1 1 0 Tm 1 0 0 0 A B F0 Circuitos secuenciales F1 La dependencia de la salida con respecto a los valores anteriores, se debe a la capacidad de memorizar valores mediante variables de estado. Un circuito secuencial puede representarse de manera simbólica a base de circuitos combinacionales y elementos de memoria. E Bloque S combinacional Memoria o Flip-flop Los circuitos secuenciales tienen aplicaciones variadas como: Elementos de memoria de calculadoras o de computadoras Contadores digitales Generadores de secuencia para automatización de máquinas. La memoria esta formada por un conjunto de elementos llamados biestables (dos estados estables) o flip-flop's (transiciones hacia atrás o hacia delante), que tienen la capacidad de permanecer indefinidamente en un determinado estado lógico, (0 ó 1) en ausencia de estímulos exteriores. Los circuitos secuenciales pueden ser de dos tipos: Síncronos: Son aquellos que para realizar la transmisión de datos a través del circuito necesitan una señal de control (reloj=clock), que además viene a ser una más de sus entradas. Asíncronos: Son aquellos que no necesitan señal de sincronización, por lo tanto sus salidas varían al cambiar sus entradas. Podemos esquematizarlos como se aprecia en la siguiente figura Registros Asíncronos Biestables RS JK T Activados por Nivel Circuitos RS JK D Síncronos Secuenciales Activados por flanco Asíncronos RS JK T D Contadores Síncronos Diagrama de transición de estados. 00/1 00/1 Es la representación gráfica del comportamiento de 01/1 10/0 un sistema secuencial. La información de un diagrama de transición puede trasladarse a una 0 1 tabla de estados. Cada estado se representa con un círculo en cuyo interior (con un número binario) se 01/0 10/0 indica el estado del sistema. Las transiciones se 11/0 11/0 representan mediante flechas que van de uno a otro estado, o saliendo y entrando a un mismo estado. Cada transición tiene asociada la información de los valores (estrada/salida) que la producen. Tabla de estados Es una representación tabular de la secuencia temporal de entradas, salidas y estados de un sistema secuencial. Debe contener la siguiente información: Los estados presentes Qn indicados por un número binario. Los estados próximos Qn+1 , para todas las combinaciones de Qn y las entradas al sistema. Las salidas correspondientes a cada una de las combinaciones anteriores. R Q ck FF S RS Q' Qn S R Qn+1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 ? 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 ? Entradas S R 00 01 10 11 Estado Estado Estado Estado Estado Presente Próximo Próximo Próximo Próximo Qn Qn+1 Qn+1 Qn+1 Qn+1 0 0 0 1 ? 1 1 0 1 ? Tabla de estados más práctica para la representación de sistemas secuenciales Es conveniente saber que el máximo número de estados de un sistema digital está limitado por el número de FF's. Si el sistema tiene n FF's entonces el sistema tendrá 2n estados diferentes. El número de entradas y salidas del sistema no esta relacionada con el número de estados. Flip-flop's Estados posibles 1 2 2 4 3 8 4 16 5 32 . . En caso que no sepa la cantidad de flip-flops pero sí conozca la cantidad de estados del sistema, puede determinar el número de FF's aplicando la siguiente fórmula: Num de FF's = Log2 (cantidad de estados) o Num de FF's = 1/(Ln 2) * Ln (cantidad de estados) Reducción de estados Consiste en revisar los diferentes estados del sistema y ver si existen estados redundantes o equivalentes es decir, que tengan las mismas salidas y que realicen las mismas transiciones hacia otros estados, o que bajo ciertas condiciones, puedan considerarse como estados equivalentes. Determine si los siguientes diagramas de transición tienen estados equivalentes redundantes 0/1 1/1 0/0 A E=0 B 1/0 1/1 0/0 C Podemos eliminar el estado C y sus transiciones. E=1 Edo. Pres Edo. Prox Sal Edo. Sal Prox A A 0 B 1 B B 1 A 0 C A 0 B 1 E=0 E=1 Edo. Edo. Sal Edo. Sal Pres Prox Prox A B 1 D 0 B D 0 E 1 C B 1 D 0 D C 0 E 0 E E 0 A 1 A 0/1 1/1 0/1 B 0/0 C 0/0 1/0 1/1 1/0 D E 0/0 Podemos eliminar el estado C y sus transiciones. Además cambiar la transición de D hacia C por otra hacia A. 1/0 Metodología de Diseño Secuencial 1.-Especificacion del sistema. Descripción que indica la secuencia de entradas, salidas y estados del sistema (incluye diagrama general). 2.-Trasladar el comportamiento del sistema a un diagrama de transición. 3.-Determinar la cantidad de ff's necesarios. 4.-Seleccionar el tipo de ff a utilizar. 5.-Con lo anterior elaborar la tabla de estados. 6.-Si es factible, hacer reducción de estados. 7.-Elaborar una nueva tabla de estados basada en la anterior y que incluya las excitaciones de los ff's y las salidas. 8.-Obtener las ecuaciones booleanas para las entradas de excitación y para las salidas. 9.-Construir el diagrama esquemático del circuito. Ejemplo 1 Diseñe un sistema digital secuencial que tenga dos estados, una entrada y una salida. Si la entrada es igual a cero, el sistema permanece en el mismo estado; si la entrada es igual a uno el sistema debe cambiar de estado. La salida solo será igual a uno cuando la entrada sea igual a uno y el sistema este en el estado 0. El texto anterior nos brinda la descripción necesaria, a continuación el diagrama general 2) Diagrama de transición S E 0/0 1/1 0/0 ? 0 ck 1 1/0 3) Como solo tenemos dos estados necesitamos un ff 4) Haremos el diseño para ff 's T, JK y D. Primero con FF T. 5) Tabla de estados E=0 Qn E Qn+1 S Estado Estado Salida 0 0 0 0 Presente Próximo S 0 1 1 1 Qn Qn+1 1 0 1 0 0 0 0 1 1 0 0 1 1 0 E=1 Estado Salida Presente S Qn+1 1 1 0 0 6) No hay estados redundantes 7T) Nueva tabla de estados incluyendo las entradas a los ff's E=0 E=1 Edo. Pres Qn Edo. Prox Qn+1 Sal S Entrada Edo. al FF Prox Qn+1 T Sal S 0 0 1 1 Entrada al FF 0 0 1 1 1 0 0 0 0 1 T 8T) 9T) T E Qn S E 0 1 Qn 0 0 1 0 1 E 0 0 1 1 0 1 1 0 0 T=E S=E Qn' T Ck Ahora lo haremos con FF JK 7JK) E=0 Edo. Pres. Qn Edo. Próx. Qn+1 Sal S 0 0 1 1 E=1 Entradas Al f.f J K Edo. Próx. Qn+1 0 0 X 1 0 X 0 0 Sal S Entradas Al f.f J K 1 1 X 0 X 1 S 8JK) Vemos que la salida no cambia, sólo las entradas al FF cambian. J E Qn 0 K E 1 Qn 0 0 1 0 1 9JK) S 0 X X E 1 0 1 1 X X J=E K=E Ck Ahora lo haremos con FF D. Vemos que la salida no cambia, sólo las entradas al FF cambian. 7D) E=0 E=1 Edo. Pres Qn Edo. Prox Qn+1 Sal S Entrada Edo. al FF Prox Qn+1 D Sal S 0 0 1 1 0 0 1 1 1 0 1 0 0 0 8D) Entrada al FF D 9D) D E Qn 0 1 0 0 1 S E 1 1 0 Ck D= E Qn' + E' Qn D= E Qn EJEMPLO 2 Nos proporcionan el siguiente diagrama que pertenece a un sistema secuencial, y nos piden que hagamos el diseño. Vemos que no tiene entradas, sólo salidas (1). /0 Un esquema general sería el siguiente 00 01 /0 S /0 ? 10 11 /1 2) Ya nos dan el diagrama de transición. 3) Como tenemos cuatro estados necesitamos dos f.f. 4) Usaremos f.f. T. Ck 5) Tabla de estados Estados Presentes Q1 Q0 0 0 0 1 1 0 1 1 Estados Próximos Q1 Q0 0 1 1 1 0 0 1 0 Salida 6) No tiene estados redundantes S 0 0 0 1 7) 8) Estados presentes Estados próximos salida Entradas los FF Q1 0 0 1 1 Q1 0 1 0 1 S 0 0 0 1 T1 0 1 1 0 Q0 0 1 0 1 S Q1 Q0 Q0 1 1 0 0 T 1 Q1 0 1 Q0 0 0 0 1 0 1 a T0 1 0 0 1 T 0 Q1 0 1 Q0 0 0 1 1 1 0 S=Q1 Q0 1 0 1 T0=Q1‘ Q0‘ + Q1 Q0 T1=Q1 Q0 T0=(Q1 Q0)' T1 Q0' Ck 0 1 0 T1=Q1' Q0 + Q1 Q0' Q0 T0 0 1 Q1 S Q1' EJEMPLO 3 Diseñe un circuito secuencial síncrono cuya única entrada será el reloj y las Q de los flip-flop's serán sus salidas. La secuencia será: 0,1,4,7,3,0,1,4,7,3. 1) Nos dan la secuencia de estados, el diagrama general sería Qs 2) Diagrama de trancisión ? 000 001 100 011 111 Ck 3) Tenemos 5 estados, Necesitamos tres ff's 5) Tabla de estados 4) Usaremos una combinacion de ff's Edos. Pres. Q2 Q1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 Para Q2 un SR Para Q1 un D Para Q0 un T 6) No tenemos estados redundantes 7) Estados Presentes Q2 0 0 0 0 1 1 1 1 Q1 0 0 1 1 0 0 1 1 Estados Próximos Q0 0 1 0 1 0 1 0 1 Q2 0 1 x 0 1 x x 0 Q1 0 0 x 0 1 x x 1 Edos. Prox Q2 Q1 0 0 1 0 X X 0 0 1 1 X X X X 0 1 Q0 0 1 0 1 0 1 0 1 Entradas a los ff's Q2 Q0 1 0 x 0 1 x x 1 S 0 1 x 0 x x x 0 R X 0 x x 0 x x 1 Q1 D 0 0 x 0 1 x x 1 Q0 T 1 1 x 1 1 x x 0 8) T Q2Q1 D Q2Q1 Q0 00 0 0 01 11 10 X X 1 1 0 1 X 0 00 01 11 10 0 1 X X 1 1 1 1 0 X 01 11 10 Q0 D= Q2 T=Q2' + Q1' S R Q2Q1 Q0 00 Q2Q1 00 01 11 10 0 0 X X X 1 1 0 0 X Q0 S= Q1' Q0 Tarea: Hacer el circuito R= Q1 0 X X X 0 1 0 X 1 X Q0 1 0 X 0 1 X X 1 EJEMPLO 4 0/0 Construir el sistema secuencial correspondiente al diagrama de transición que nos dan. 00 1/1 1/0 2) Ya nos dan el diagrama 1/0 S E 0/0 11 01 ? 0/0 10 1/1 ck 3) Para 4 estados necesitamos 2 ff's 0/0 4) Usaremos ff's D 5) E=0 Edos. Pres. Q1 Q2 0 0 0 1 1 0 1 1 Edos. Prox. Q1 Q2 0 0 1 0 1 0 1 1 E=1 Sal. S 0 0 0 0 Edos. Prox. Q1 Q2 0 1 0 1 1 1 0 0 Sal. S 1 0 1 0 6) No hay estados redundantes 7) Edos. Pres. Q1 Q2 0 0 0 1 1 0 1 1 Edos. Prox. Q1 Q2 0 0 1 0 1 0 1 1 E=0 Sal. S 0 0 0 0 Ent a los Edos. FF's Prox. D1 D2 Q1 Q2 0 0 0 1 1 0 0 1 1 0 1 1 1 1 0 0 E=1 Sal. S 1 0 1 0 Ent a los FF's D1 D2 0 1 0 1 1 1 0 0 8) D1 E S E Q1Q2 0 1 00 0 1 01 0 11 10 Q1Q2 D2 E 0 1 00 0 0 0 01 1 0 0 11 0 1 10 S= E Q2' Tarea: Hacer el circuito Q1Q2 0 1 00 0 1 0 01 0 1 1 0 11 1 0 1 1 10 0 1 D1= E' Q2 + Q1 Q2' D2= E' Q1 Q2 + E Q1' + E Q2' EJEMPLO 5 Hacer el diseño secuencial de un contador de 0 a 7 en binario, su única entrada será el reloj y su salida las Q de los ff's. 1) Lo cumple la descripción del problema. 2) 000 001 010 011 111 110 101 100 Edos. Pres 3) Como tenemos 8 estados, necesitamos 3 ff's Edos Prox 4) Emplearemos ff's T y de tarea hágalo con ff's D. Q2 Q1 Q0 Q2 Q1 Q0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 5) Tabla de estados 6) No tenemos estados redundantes 7) Edos. Pres T0 Q2Q1 00 Q0 0 1 01 11 10 1 1 1 1 1 1 1 T0 = 1 Lógico 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 T2 Q2Q1 00 Q0 0 0 01 11 10 0 0 0 1 1 0 T1 Q2Q1 00 Q0 0 0 01 11 10 1 0 0 0 T2=Q1.Q0 1 1 1 1 T1 = Q0 1 Ent a los FF's Q2 Q1 Q0 Q2 Q1 Q0 T2 T1 T0 8) 1 Edos Prox, 0 T0 1 T2 T1 Ck Q0 EJEMPLO 6 Q1 Q2 Diseñe un circuito secuencial que cuente de 0 a 3 cuando la entrada externa sea igual a 1 y que cuente de 3 a 0 cuando la entrada externa sea igual a 0 . 0/ 1) Si la E = 1, entonces contará 0, 1, 2, 3, 0, 1, ... Si la E = 0, entonces contará 3, 2, 1, 0, 3, 2, ... 00 2) Diagrama de transición 3) Como tenemos cuatro estados, necesitamos 2 ff's 0/ 4) Usaremos ff's T 1/ 1/ 5) Tabla de estados 1/ 11 E=0 E=1 Estados presentes Q2 Q1 Estados próximos Q2 Q1 Estados próximos Q2 Q1 0 0 1 1 0 1 0 1 0 0 1 0 1 0 0 1 1 1 1 1 1 0 0 0 01 1/ 10 0/ 6) No tenemos estados redundantes 7) Estados Estados presentes próximos Q2 Q1 Q2 Q1 Estados próximos T2 T1 Q2 Q1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 0 0 1 0 0 1 1 T2 T1 8) T2 Q2Q1 00 E 0 1 1 0 01 11 10 0 0 1 1 1 0 T2 = E' Q1' + E Q1 T1 Q2Q1 00 E 0 1 1 T1 = 1 1 01 11 10 1 1 1 1 1 1 0/ Q1 1 Q2 T2 T1 E Ck Tarea: Diseñe un circuito secuencial que cuente de 0 a 7 cuando la entrada externa sea igual a 1 y que cuente de 7 a 0 cuando la entrada externa sea igual a 0. Emplear ff´s D. Diseñe un circuito secuencial con ff’s T que cuente de 0 a 9. Tablas de excitación de los diferentes Flip Flops Qn Qn+1 S R Qn Qn+1 J K 0 0 0 X 0 0 0 X 0 1 1 0 0 1 1 X 1 0 0 1 1 0 X 1 1 1 X 0 1 1 X 0 Qn Qn+1 T Qn Qn+1 D 0 0 0 0 0 0 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 1 1 1