Está en la página 1de 49

Universidad de Alcal

ANLISIS Y SNTESIS DE SISTEMAS SECUENCIALES

M. Mazo, S. E. Palazuelos, L. M. Bergasa Mayo de 2003

ndice
Aspectos generales sobre circuitos secuenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Estructura general y funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Tipos de circuitos secuenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Aspectos bsicos sobre circuitos secuenciales sncronos . . . . . . . . . . . . . . . . . . . . . . 7 Definicin y funcionamiento bsico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Nomenclatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Tipos de circuitos secuenciales sncronos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Representacin de los autmatas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Autmata de Mealy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Autmata de Moore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Anlisis de circuitos secuenciales sncronos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Sntesis de circuitos secuenciales sncronos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Obtencin del grafo (diagrama de estados) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Obtencin de la tabla de estados inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Minimizacin de la tabla de estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Asignacin de estados y obtencin de la tabla de transicin resultante . . . . 28 Obtencin de las ecuaciones de salida del sistema . . . . . . . . . . . . . . . . . . . . . 31 Obtencin de las tablas de excitacin y ecuaciones de entrada de cada flip-flop del circuito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Implementacin del circuito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Inclusin del control de las entradas asncronas de los biestables . . . . . . . . 34

Ejercicios resueltos sobre sntesis de circuitos secuenciales sncronos . . . . . . . . . 36 Ejemplo 6. Circuito sumador serie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Ejemplo 7. Detector de secuencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Ejemplo 8. Contador BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Ejercicios propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

1. Aspectos generales sobre circuitos secuenciales


En los circuitos combinacionales la salida en un determinado momento depende nicamente de los valores de las seales de entrada en el mismo instante. Sin embargo, en el mundo real la mayor parte de los sistemas con los que nos enfrentamos tienen una dimensin adicional: el funcionamiento de los mismos depende no nicamente de sus entradas actuales, sino tambin de la historia por la que han pasado. As, los circuitos secuenciales surgen para solucionar las limitaciones intrnsecas de los combinacionales. Los circuitos secuenciales son sistemas que, adems de entradas y salidas, tambin tienen estados que recuerdan la historia pasada por el circuito. Utilizan la informacin del estado conjuntamente con una combinacin lgica de sus entradas de datos para determinar el futuro estado del sistema y sus salidas. Por tanto, una de sus caractersticas es que las mismas entradas en estados diferentes dan lugar a salidas distintas, ya que estas dependen tambin del estado . Muchos de los sistemas digitales prcticos se realizan siguiendo la filosofa de los circuitos secuenciales (circuitos de control, sistemas de alarma y seguridad, relojes, etc.). Podemos considerar como ejemplo una mquina expendedora (simplificada), que representaramos como se muestra en la figura 1.
Seleccin producto Espera No hay moneda No hay seleccin Introduccin de moneda

Espera moneda Informa precio Introduccin de moneda Entrega producto

Espera seleccin de producto Seleccin de producto

Figura 1. Representacin de una mquina expendedora.

En la figura 1 pueden verse varios estados, en los que el sistema espera monedas o la seleccin de productos, o entrega el producto. Estos estados memorizan la ltima accin del usuario, de forma que el sistema puede responder a las nuevas acciones de forma diferente dependiendo de la historia pasada: si seleccionamos producto, la salida no ser la misma si ya le hemos entregado el dinero o todava no. Este puede ser un ejemplo sencillo de mquina secuencial, y a partir de ahora formalizaremos el concepto y estudiaremos la forma de analizar y disear este tipo de circuitos.

1.1. Estructura general y funcionamiento


La estructura general de un circuito secuencial responde al diagrama de bloques de la figura 2 (modelo de Huffman). Como se puede observar, incluye un circuito combinacional y un bloque de memoria (formado por flip-flops, por ejemplo). Existen u entradas fsicas cada una de las cuales la identificaremos por la letra X (X0, X1,... Xu-1), v lneas de salida, que identificaremos por la letra Z (Z0, Z1,... Zv-1), y p elementos de memoria que identificaremos por la letra M (M0, M. Mazo, S. E. Palazuelos, L. M. Bergasa -4Sistemas Secuenciales Sncronos

M1,... Mp-1). Cada elemento de memoria tiene unas entradas que vamos a denominar Ei y una salida que llamaremos Qi que almacenar el estado actual del circuito. Adems existe una seal auxiliar, la seal de reloj (CLK), que juega un papel fundamental en los sistemas secuenciales sncronos. Esta ltima seal no existe en los sistemas secuenciales asncronos.

Figura 2. Estructura general de un circuito secuencial.

Como se puede observar en la figura 2, al circuito combinacional llegan dos tipos de datos: las entradas de datos del circuito (X0(t), X1(t),... Xu-1(t)) y el estado actual , es decir, las salidas de la memoria (Q0(t),... Qp-1(t)). Las salidas del circuito combinacional son las salidas de datos (Z0(t), Z1(t),... Zv-1(t)) y las entradas de los elementos de memoria (E0(t),... Es-1(t)), (si bien en ciertos casos algunas de estas variables pueden ser comunes). El hecho de que parte de la informacin de salida del circuito combinacional se introduzca de nuevo a su entrada, previo paso por la memoria, se conoce como realimentacin.

1.2. Tipos de circuitos secuenciales


Los sistemas secuenciales se pueden clasificar en dos grandes bloques: sncronos y asncronos. Esta clasificacin se hace atendiendo a los tipos de elementos de memoria (Mi) utilizados. La diferencia entre los sistemas secuenciales sncronos y asncronos est en que en los primeros los cambios de estado son controlados por una seal de referencia comn (seal de reloj) y en los segundos no. Las salidas de un circuito secuencial asncrono, ante un cambio en las seales de entrada de datos, alcanzan sus niveles definitivos transcurrido un tiempo que ser funcin de los tiempos de propagacin del circuito combinacional y de los elementos de memoria (las salidas de datos -Zi- se estabilizarn cuando se estabilicen las salidas de los elementos de memoria, Qi(t)). Estos tiempos pueden variar entre un valor mnimo y un mximo, y, por tanto, introducen un cierto grado de incertidumbre en los tiempos que tardan en propagarse los cambios de las variables M. Mazo, S. E. Palazuelos, L. M. Bergasa -5Sistemas Secuenciales Sncronos

de entrada a las salidas, y unas salidas pueden cambiar antes que otras. Hay que advertir que pueden existir situaciones en las que no se alcance la estabilidad (estados metaestables). En el diseo de circuitos se trata siempre de evitar la existencia de este tipo de estados. Dos tcnicas usuales para ello son, una impidiendo excitaciones marginales y otra evitando, o al menos reduciendo, la propagacin de seales metaestables). Segn esto, en los circuitos secuenciales asncronos despus de producirse un cambio en las entradas hay que esperar un tiempo hasta que se estabilicen los valores de las salidas y slo despus de que se alcance esta estabilizacin se podr realizar otro cambio en sus entradas, ya que en caso contrario no se vern reflejados estos cambios en las salidas. Evidentemente, el tiempo mnimo entre dos cambios consecutivos en las entradas de datos es funcin de los tiempos de propagacin del circuito combinacional y de los elementos de memoria. Los circuitos sncronos eliminan la incertidumbre producida por los tiempos de propagacin utilizando una seal de sincronismo o seal de reloj. Los cambios en las entradas y en los estados internos slo tienen efecto sobre el resto del sistema en instantes discretos de tiempo a los que denominaremos t, t+1, t+2,.... Estos instantes suelen coincidir con los flancos de subida o bajada de la seal de reloj. As, si nos fijamos en el circuito de la figura 2, las salidas que adopten los elementos Mi de memoria despus de un flanco de reloj (CLK), sern funcin nicamente de los valores que tenan sus entradas en el instante anterior al flanco de CLK, aunque estas hayan variado varias veces desde el ltimo flanco de reloj. Finalmente queremos indicar que, si bien parece que los circuitos sncronos presentan ventajas frente a los asncronos, no siempre es as. De hecho, al realizar el diseo de un circuito VLSI (Very Large Scale Integration), es necesario establecer una comparacin rigurosa entre las alternativas sncrona y asncrona, a fin de valorar las limitaciones y restricciones de ambos modos de operacin. Actualmente existe un auge e inters por el diseo de circuitos VLSI asncronos o autotemporizados, ya que el aumento de la velocidad de operacin y la complejidad de los circuitos digitales conllevan grandes problemas para conseguir que las seales de reloj que se propagan por caminos diferentes tengan idnticos tiempos de propagacin. Esto hace que la distribucin de la seal de reloj dentro de los circuitos digitales sea una tarea compleja, siendo una de las razones de esta complejidad los retrasos en dicha seal (lo que se conoce como clock skew), adems de los problemas de interferencias que puede sufrir (cross-talk). No es, sin embargo, objeto de este captulo el estudio de todos estos detalles.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-6-

Sistemas Secuenciales Sncronos

2. Aspectos bsicos sobre circuitos secuenciales sncronos


En este captulo se presentan los aspectos ms importantes de los sistemas secuenciales sncronos. Como ya se ha comentado, muchos de los sistemas digitales prcticos responden a la filosofa de funcionamiento de los sistemas sncronos, por lo tanto la evolucin de las diferentes variables, que responden a un determinado diagrama de flujo, est sincronizada con una seal de reloj. Posteriormente se tratarn los aspectos relacionados con el diseo, centrndonos en dos configuraciones bsicas: Autmatas deterministas de Mealy y de Moore (tambin denominados mquinas de Mealy y de Moore). Si bien la palabra autmata puede tener diferentes significados (es frecuente relacionar este trmino con las mquinas capaces de imitar los movimientos de los seres vivos, equipos electrnicos de control industrial, etc.), en nuestro caso se utiliza para definir sistemas electrnicos capaces de tratar informacin. As, un autmata puede ser un dispositivo con unos terminales de entrada y salida de datos (ver figura 1) y una seal de reloj (CLK), que transforma los datos de entrada en otros datos de salida, en funcin de la historia pasada por l, de forma sincronizada con la seal CLK. En este contexto, ejemplos de autmatas sencillos son: contadores digitales, sumadores, registros, unidades de control, etc. Un ejemplo de autmata ms complejo sera un ordenador. Finalmente queremos indicar que la realizacin fsica de los sistemas secuenciales sncronos (autmatas) puede llevarse a cabo utilizando diferentes alternativas tecnolgicas, si bien actualmente lo ms frecuente es utilizar Dispositivos Lgicos Programables (PLDs).

2.1. Definicin y funcionamiento bsico


Como hemos visto, un circuito secuencial sncrono es un circuito secuencial (es decir, un sistema que tiene entradas, salidas y estados que recuerdan la historia pasada por el circuito, y cuya salida depende tanto de la entrada como del estado en que se encuentre), en que las transiciones entre estados se producen en momentos discretos, que denominaremos t, t+1, t+2, etc. Estos momentos coinciden con los flancos activos de subida o bajada de los pulsos de una seal de reloj. El modelo matemtico que describe un sistema secuencial sncrono es la mquina de estados finitos o autmata de estados finitos. El calificativo de estados finitos se debe a que la memoria de que dispone el sistema secuencial para recordar en qu estado est es finita y, por tanto, solamente podr almacenar un nmero finito de estados diferentes. Con todo esto, si a una mquina de estados finitos, que denominaremos abreviadamente MEF, se le introducen datos a lo largo del tiempo, la salida, z(t), de la MEF, en un instante t ser funcin de la entrada en ese instante, x(t) y de los estados internos q(t). Si la memoria tiene p elementos (FF0.... FF P-1), siendo p un nmero finito, el nmero mximo de estados que se pueden almacenar ser 2p. Observando la figura 2, se puede ver que las entradas de datos x(t), junto con las variables de estado q(t), constituyen las entradas del circuito combinacional. La salida del circuito combinacional est formada por las salidas de datos z(t) y por las excitaciones de los biestables e(t), para que se produzca la transicin al siguiente estado q(t+1) con el siguiente flanco de reloj.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-7-

Sistemas Secuenciales Sncronos

El funcionamiento del autmata es tal que si recibe una nueva entrada en t, x(t) , {X}, (sta se hace efectiva mediante la seal de reloj en el instante t) y se encuentra en el estado q(t),{Q} (salidas de los FF), entonces la salida del autmata en el instante t ser funcin de x(t) y q(t), esto es, z(t) = g[x(t),q(t)] y pasar a un nuevo estado que ser funcin de x(t) y q(t) en el instante t+1, esto es, denominando al nuevo estado q(t+1) = h[f(x(t),q(t))]. A g se le denomina funcin de salida, a f funcin de excitacin y h es la funcin de los biestables, es decir, la transicin que producir el biestable con la excitacin aplicada. En resumen: q(t+1)=h[f(x(t),q(t))] z(t)=g[x(t),q(t)] Adems, tambin es necesario proporcionar el estado inicial a partir del cual empezar a evolucionar el autmata. Si no se indica lo contrario, a partir de ahora consideraremos q0 como estado inicial. En resumen una mquina de estados finitos se puede definir matemticamente como un conjunto de elementos: MEF=<x, z, q, q0, f, g, h> siendo: x: Datos de entrada z: Datos de salida q: Estados internos (variables de estado) q0: Estado inicial f: Funcin de excitacin de los biestables h: Funcin de los biestables g: Funcin de salida

2.2. Nomenclatura
La nomenclatura que se va a utilizar se muestra de forma resumida en la tabla 1:
Tabla 1. Nomenclatura de las distintas variables y constantes implicadas en un circuito secuencial sncrono.

Nombre de la variable Entradas Salidas Estados Excitacin de los biestables

Smbolo general x(t) z(t) q(t) e(t)

Nombre de las lneas fsicas en el circuito X0, X1, ..., Xu-1 Z0, Z1, ..., Zv-1 Q0, Q1, ..., Qp-1 E0, E1, ..., Es-1

N de lneas fsicas u v p s

Combinaciones de la variable X={x0, x1, ..., xn-1} Z={z0, z1, ..., zr-1} Q={q0, q1, ..., qm-1} E={e0, e1, ..., el-1}

N de combinacs. n#2u r#2v m#2p l=2s

Por ejemplo, para implementar un autmata con 3 estados (m=3) se necesitan al menos 2 M. Mazo, S. E. Palazuelos, L. M. Bergasa -8Sistemas Secuenciales Sncronos

biestables (p=2), para que se cumpla la desigualdad m#2p. Q0 y Q1 son las dos salidas de los biestables, en las que est el estado actual codificado en binario, de forma que cada estado qi se corresponde con una combinacin de los valores de las salidas de los biestables: si asignamos a q1 el cdigo 01 (q1=01), el circuito estar en el estado q1 cuando Q1=0 y Q0=1. Cuando la informacin temporal sea necesaria, el instante de tiempo (t, t+1...) se indicar indistintamente en forma de funcin, como en x(t), o de superndice Q0t.

2.3. Tipos de circuitos secuenciales sncronos


Las dos realizaciones bsicas de los autmatas finitos son las mquinas de Mealy y de Moore. En las figuras 3 y 4 se muestran los diagramas de bloques de estas dos realizaciones bsicas, donde se han reflejado las funciones de excitacin f y de salida g. Obsrvese que en ambos casos existe un bloque de memoria (realizado, por ejemplo, por flip-flops -FFi-) que memoriza el estado actual (q) del autmata, y una realimentacin de esos estados hacia el bloque combinacional que implementa la funcin de salida g. La diferencia entre ambas realizaciones reside en que en el autmata de Moore la salida z(t) es funcin nicamente del estado actual, q(t), mientras que en un autmata de Mealy la salida actual depende tanto del estado actual como de las entradas actuales x(t). Todos los circuitos secuenciales sncronos pueden implementarse tanto como autmatas de Moore como de Mealy, por lo cual, en cada caso concreto debemos decidir cual ser la implementacin ptima considerando que: En general, un circuito implementado como autmata de Moore necesita ms estados que su equivalente como autmata de Mealy, por lo que el circuito resultante ser de mayor complejidad cuando se disee como autmata de Moore. En los autmatas de Mealy las modificaciones en las entradas provocan cambios en la salida en el momento en el que se producen (ms el tiempo de retardo propio de cualquier circuito combinacional), independientemente de la seal de reloj, mientras que en los autmatas de Moore las salidas solamente cambian cuando se produce un flanco de reloj y cambia el estado. Solamente utilizaremos autmatas de Mealy cuando:

S S

los cambios en las entradas del circuito estn sincronizados con la seal de reloj, o los cambios en otros momentos no afecten negativamente al funcionamiento del sistema global.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-9-

Sistemas Secuenciales Sncronos

Figura 3. Autmata de Mealy: z(t) = g[x(t), q(t)].

Figura 4. Autmata de Moore: z(t)=g[q(t)].

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-10-

Sistemas Secuenciales Sncronos

3. Representacin de los autmatas


Para representar el comportamiento de los circuitos secuenciales se utilizan tablas de estados o tablas de transiciones (en un formato similar a las tablas de verdad) y grafos (tambin conocidos como diagramas de estados), donde aparecen los diferentes estados (n finito) y las salidas y estados siguientes para cada estado y combinacin de las entradas (que tambin son un n finito). Estas tablas y grafos son distintos para los autmatas de Mealy y de Moore.

3.1. Autmata de Mealy


En las tablas de estados o de transiciones se muestran: en funcin de: el estado actual, q(t), representado por las salidas de los biestables en el momento actual, y las entradas del circuito, x(t). el estado siguiente, q(t+1), representado en el circuito por las salidas de los biestables en t+1, y las salidas del circuito, z(t),

Para el caso de los autmatas o mquinas de Mealy, la tabla tiene tantas filas como estados, p, y tantas columnas como combinaciones de las entradas, n. Si la fila k corresponde al estado qk y la columna m corresponde a la entrada xm, en la interseccin de ambas se escribirn los valores h[f(xm, qk)] y g(xm, qk), bien de la forma h[f(xm, qk)]/g(xm, qk) o bien h[f(xm, qk)], g(xm, qk).En la tabla 2 se muestra un ejemplo genrico de este tipo de tabla. Observse que la salida actual depende tanto del estado actual como de la entrada.
Tabla 2. Ejemplo genrico de tabla de estados de un autmata de Mealy.

Estado actual q(t) q0 q1 q2 . qp-1

x0 h[f(q0, x0)]/g(q0, x0) h[f(q1, x0)]/g(q0, x0) h[f(q2, x0)]/g(q2, x0) ...... h[f(qp-1, x0)]/g(qp-1, x0)

Entrada actual x1 ...... h[f(q0, x1)]/g(q0, x1) h[f(q1, x1)]/g(q1, x1) h[f(q2, x1)]/g(q2, x1) ...... h[f(qp-1, x1)]/g(qp-1, x1) ...... ...... ...... ....

xn-1 h[f(q0, xn-1)]/g(q0, xn-1) h[f(q1, xn-1)]/g(q1, xn-1) h[f(q2, xn-1)]/g(q2, xn-1) ..... ...... h[f(qp-1, xn-1)]/g(qp-1,xn-1)

q(t+1)/z(t) Estado siguiente/salida actual Como se puede ver, una tabla de estados o de transiciones no es ms que una versin de tabla de verdad de las funciones estado siguiente y salida actual en funcin de las variables estado actual y entrada del sistema. Tambin es posible separar la informacin del estado siguiente y la salida, presentndolas en columnas diferentes, obteniendo de este modo una versin extendida de la tabla de estados, como se puede observar en la tabla 3.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-11-

Sistemas Secuenciales Sncronos

Tabla 3. Ejemplo genrico de tabla de estados extendida de un autmata de Mealy.

Estado actual q(t) q0 q1 q2 . qp-1

x0

Entrada actual x1 ......

xn-1

x0

Entrada actual x1 ......

xn-1

h[f(q0, x0)] h[f(q0, x1)] ..... h[f(q0, xn-1)] h[f(q1, x0)] h[f(q1, x1)] ..... h[f(q1, xn-1)] h[f(q2, x0)] h[f(q2, x1)] ..... h[f(q2, xn-1)] ...... ...... h[f(qp-1, x0)] h[f(qp-1, x1)] ..h[f(qp-1, xn-1)] q(t+1) Estado siguiente

g(q0, x0) g(q0, x1) .. g(q0, x0) g(q1, x1) .. g(q2, x0) g(q2, x1) .. ..... g(qp-1, x0) g(qp-1, x1) .. z(t) Salida actual

g(q0, xn-1) g(q1, xn-1) g(q2, xn-1) ...... g(qp-1,xn-1)

Ejemplo 1: Supongamos un circuito secuencial con dos entradas fsicas X0, X1, lo que supone que puede tener 4 posibles entradas x = {x0=00, x1 =01, x2 =10, x3 =11}, 2 estados internos q ={q0, q1} (que se pueden representar con una variable Q0, Q0=0=>q0, y Q0=1=>q1) y una salida fsica, Z0, por tanto z puede adoptar 2 posibles valores: z={z0=0, z1=1}. De la definicin del sistema se sabe que se debe cumplir: Estando en el estado q0, si la entrada es 00, el estado siguiente es q0 y su salida es 0. Estando en el estado q0, si la entrada es 01, el estado siguiente es q0 y su salida es 1. Estando en el estado q0, si la entrada es 10, el estado siguiente es q0 y su salida es 1. Estando en el estado q0, si la entrada es 11, el estado siguiente es q1 y su salida es 0. Estando en el estado q1, si la entrada es 00, el estado siguiente es q0 y su salida es 1. Estando en el estado q1, si la entrada es 01, el estado siguiente es q1 y su salida es 0. Estando en el estado q1, si la entrada es 10, el estado siguiente es q1 y su salida es 0. Estando en el estado q1, si la entrada es 11, el estado siguiente es q1 y su salida es 1.

Todo esto se puede representar en una tabla de estados como la tabla E1.1, donde denominamos al estado actual q(t), al estado siguiente q(t+1), y a las entradas y salidas actuales x(t) y z(t) respectivamente. Tabla E1.1. Tabla de estados del ejemplo E1.1. Estado actual q(t) q0 q1 Entrada actual x(t) x0 00 q0/0 q0/1 x1 01 q0/1 q1/0 x2 10 q0/1 q1/0 x3 11 q1/0 q1/1

q(t+1)/z(t) Estado siguiente/salida actual

La tabla de estados o de transiciones anterior se puede representar tambin de la forma indicada en la tabla E1.2, basta con recordar que q0=0 y q1= 1.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-12-

Sistemas Secuenciales Sncronos

Tabla E1.2. Alternativa de representacin de la tabla E1.1 Estado actual q(t) q0 q1 Q0(t) 0 1 00 0 0 Entrada X0(t)X1(t) 01 0 1 10 0 1 11 1 1 Entrada X0(t)X1(t) 00 0 1 01 1 0 10 1 0 11 0 1

Prximo estado Q0(t+1)

Salida actual Z0(t)

Un grafo es una representacin grfica de un autmata en la que

S S

Los estados se muestran dentro de crculos. Cada transicin entre estados se representa con un arco que empieza en su estado inicial y acaban en su estado final. De cada estado deben salir tantas flechas como posibles combinaciones tengan las entradas, ya que deben estar contempladas las transiciones para todas ellas. Sobre cada arco se indica la entrada que condiciona dicha transicin y la salida para esa entrada y ese estado actual, con una barra inclinada entre ellas, x(t)/z(t).

En la figura 5 se muestra la forma general de un diagrama de estados o grafo para el caso de un autmata de Mealy. En l se ha representado con una lnea ms gruesa el crculo correspondiente al estado inicial. Considrese la figura como una parte de un grafo mayor, de forma que las transiciones que aparentemente llegan o van a ningn estado, realmente son transiciones al resto del grafo.

Figura 5. Ejemplo que refleja la forma general de representar los diagramas de estados o grafos de los autmatas de Mealy.

La interpretacin que se debe hacer de un grafo es la siguiente: en cada momento estamos en un estado determinado (uno de los crculos), y las entradas tienen un valor (entrada actual). Miraremos cual es la flecha que sale de ese estado condicionada por la entrada actual, y nos dar la salida que tiene el sistema en ese momento. Cuando llegue un flanco de reloj, la transicin se har efectiva, y pasaremos al estado siguiente, volviendo a empezar el proceso.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-13-

Sistemas Secuenciales Sncronos

En la figura E1.1 se representa el grafo correspondiente a la tabla del ejemplo 1.

Figura E1.1. Grafo del ejemplo 1.

3.2. Autmata de Moore


En el caso de las mquinas de Moore, las tablas de estados son como la mostrada en la tabla 4. Se puede observar que la diferencia fundamental con las tablas de estados de los autmatas de Mealy es que la salida actual no est condicionada por la entrada, por lo que se representa en una columna diferente, que solamente depende el estado actual. De nuevo se muestra un ejemplo genrico, para el caso de p estados (q0..... qP-1) y n posibles entradas (x0,...... xn-1).
Tabla 4. Ejemplo genrico de tabla de estados de un autmata de Moore.

Estado actual q(t) q0 q1 q2 . qp-1

x0

Entrada actual x(t) x1 ......

xn-1

Salida actual z(t) g(q0) g(q0) g(q2) ..... g(qp-1)

h[f(q0, x0)] h[f(q0, x1)] ..... h[f(q1, x0)] h[f(q1, x1)] ..... h[f(q2, x0)] h[f(q2, x1)] ..... ...... h[f(qp-1, x0)] h[f(qp-1, x1)] ....... q(t+1) Estado siguiente

h[f(q0, xn-1)] h[f(q1, xn-1)] h[f(q2, xn-1)] ...... h[f(qp-1, xn-1)]

Ejemplo 2: Supongamos un circuito secuencial con dos entradas fsicas X0, X1, lo que supone un total de 4 posibles entradas {00, 01, 10, 11}, 4 estados internos Q ={q0, q1, q2, q3} que se codifican con 2 lneas de estado (Q0 y Q1) y una salida fsica, Z0, por lo que z puede adoptar 2 posibles valores, 0 y 1. Si de la definicin del sistema se sabe que debe cumplir: Para los estados q0 y q1 la salida es 0, y para los estados q2 y q3 la salida es 1. Estando en el estado q0, si la entrada es 00 el estado siguiente es q0. Estando en el estado q0, si la entrada es 11 el estado siguiente es q1. Estando en el estado q0, si la entrada es 10 10 el estado siguiente es q2. Estando en el estado q1, si la entrada es 10 01 el estado siguiente es q1. Estando en el estado q1, si la entrada es 11 el estado siguiente es q3.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-14-

Sistemas Secuenciales Sncronos

Estando en el estado q1, si la entrada es 00 el estado siguiente es q2. Estando en el estado q2, si la entrada es 00 el estado siguiente es q0. Estando en el estado q2, si la entrada es 01 10 el estado siguiente es q2. Estando en el estado q2, si la entrada es 11 el estado siguiente es q1. Estando en el estado q3, si la entrada es 11 el estado siguiente es q3. Estando en el estado q3, si la entrada es 10 01 el estado siguiente es q1. Estando en el estado q3, si la entrada es 00 el estado siguiente es q2.

Todo esto se puede representar en una tabla como la E2.1: Tabla E2.1. Tabla de estados del ejemplo 2.

Estado actual q(t) q0 q1 q2 q3

Entrada x(t) 00 q0 q2 q0 q2 01 q2 q1 q2 q1 11 q1 q3 q1 q3 10 q2 q1 q2 q1

Salida actual z(t) 0 0 1 1

Prximo estado q(t+1)

En los grafos de los autmatas de Moore, los estados y las salidas que les corresponden se muestran dentro de crculos. Las transiciones entre estados se indican con arcos que conectan dos estados y sobre estos arcos se indican las entradas que condicionan las transiciones. En la figura 6 se muestra la forma general de un diagrama de estados o grafo para el caso de un autmata de Moore. Considrese la figura como una parte de un grafo mayor, de forma que las transiciones que aparentemente llegan o van a ningn estado, realmente son transiciones al resto del grafo.

Figura 6. Forma general de representar los grafos en los autmatas de Moore.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-15-

Sistemas Secuenciales Sncronos

La interpretacin que se debe hacer de un grafo es la siguiente: en cada momento estamos en un estado determinado (uno de los crculos), y las entradas tienen un valor (entrada actual). La salida que acompaa al estado actual dentro del crculo ser la salida que tenga el sistema en este momento. Cuando llegue un flanco de reloj, se har efectiva la transicin condicionada por la entrada actual al sistema, y pasaremos al estado siguiente correspondiente con sus valores de salida asociados, volviendo a empezar el proceso. En la figura E2.1 se representa el grafo correspondiente a la tabla del ejemplo 2.

Figura E2.1. Grafo del ejemplo 2.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-16-

Sistemas Secuenciales Sncronos

4. Anlisis de circuitos secuenciales sncronos


El anlisis tiene por objetivo, dado un circuito secuencial, obtener unas tablas en las que se muestren, para cada combinacin digital de sus entradas y cada posible estado, el estado siguiente al que pasa y el valor de las salidas, esto es, la tabla de estados o grafo que define una mquina de Mealy o Moore. El proceso de anlisis se puede sistematizar en una serie de pasos, que se ilustran a continuacin con un ejemplo de autmata de Mealy. Posteriormente se analizar un circuito que responde a un autmata de Moore. Conocer el proceso de anlisis facilita el aprendizaje de la sntesis de circuitos secuenciales sncronos, ya que el diseo consiste, a grandes rasgos, en aplicar los mismos pasos en orden inverso.
Ejemplo 3. Anlisis de un autmata de Mealy. Supngase el circuito mostrado en la figura E3.1. Como se puede observar, es un sistema con una sola entrada (X0) y salida (Z0), y dos flip-flops de tipo JK activos en el flanco de subida. Adems, se puede ver que la salida es funcin de la entrada (X0) y de las salidas de los flip-flops (estado), por lo tanto, la realizacin de este circuito responde a una mquina de Mealy.

Figura E3.1. Autmata de Mealy correspondiente al ejemplo 3.

Los pasos a seguir son: 4.1. Obtener las ecuaciones lgicas de las seales que se estn aplicando a las entradas de los flip-flops (excitaciones de los biestables). Estas ecuaciones son las funciones lgicas de las entradas de los flip-flops (RS -caso de flip-flops RS- JK -caso de flip-flops JK- D -caso de flipflops D- o T -caso de flip-flops T-) en funcin de las salidas de los propios flip-flops (estado actual), y las entradas del sistema.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-17-

Sistemas Secuenciales Sncronos

J1t = 1 K 1t = Q 1t X 0 t J2 t = Q 1t X 0 t Q 2 t K 2 t = Q 1t X 0 t
En nuestro ejemplo, las ecuaciones lgicas de las entradas de los flip-flops son:

4.2. Obtener las ecuaciones lgicas del prximo estado: las prximas salidas de los flip-flops [Q(t+1) /Q(t+1)]. Para ello se sustituirn las expresiones lgicas de las entradas (obtenidas en el punto anterior) en las ecuaciones de la salida del tipo de biestable que se est utilizando. Recurdese que las ecuaciones de los flip-flops son:

Biestables JK: Q(t + 1) = J(t)Q(t) + K(t)Q(t) Biestables T: Q(t + 1) = T(t) Q(t) Biestables D: Q(t + 1) = D(t)
En este el ejemplo, al tratarse de flip-flops JK, las ecuaciones lgicas de los prximos estados son

Q 1 (t + 1) = J1 (t)Q 1 (t) + K 1 (t)Q 1 (t) = 1 Q 1 (t) + Q 1 (t) X 0 (t) Q 1 (t) Q 2 (t + 1) = J2 (t)Q 2 (t) + K 2 (t)Q 2 (t) = Q 1 (t) X 0 (t) Q 2 (t) Q 2 (t) + Q 1 (t) X 0 (t) Q 2 (t)
Simplificando estas expresiones se obtiene:

Q 1 (t + 1) = Q 1 (t) Q 2 (t + 1) = Q 2 (t) + Q 1 (t) X 0 (t) Q 2 (t)


4.3. El tercer paso consiste en obtener las funciones lgicas que relacionan las variables de salida del sistema con el estado actual (salidas de los flip-flops) y las entradas del sistema.
En el ejemplo solamente hay una salida (Z0), que coincide con K2:

4.4. Representar la tabla de transiciones codificada o tabla de estados codificada.


Para este ejemplo, la tabla de transiciones codificada se muestra en la tabla E3.1, y, de forma resumida, en el formato del autmata de Mealy, en la tabla E3.2.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-18-

Sistemas Secuenciales Sncronos

Tabla E3.1. Tabla de transiciones codificada correspondiente al ejemplo 3. Estado actual Q2(t) Q1(t) 0 0 1 1 0 1 0 1 Entrada actual X0(t) 0 1 11 10 01 00 11 10 01 10 Entrada actual X0(t) 0 1 1 1 1 1 1 0 1 0

Q2(t+1) Q1(t+1) Prximos estados

Z0(t) Salida actual

Tabla E3.2. Tabla de estados codificada resumida del ejemplo 3. Estado actual Q2(t) Q1(t) 0 0 1 1 0 1 0 1 Entrada actual X0(t) 0 1 11/1 10/1 01/1 00/1 11/1 10/0 01/1 10/0

Q2(t+1)Q1(t+1)/Z0(t) Prximo estado/ Salida actual

4.5. Asignar un nombre (q0, q1, q2, etc.) a cada combinacin binaria de las salidas de los flipflops y reescribir la tabla obtenida en el punto 4.4 como tabla de estados. Por ejemplo, en un caso en el que haya 2 biestables, si denominamos q0 a la combinacin 00, el circuito estar en el estado q0 cuando la salida de los dos biestables sea 0, y si llamamos q1 a la combinacin 01, el circuito estar en el estado q1 cuando Q1=1 y Q0=0.
Para el ejemplo 3, haciendo la siguiente asignacin de estados: q0 = 00, q1 = 01, q2=10, q3= 11, la tabla de estados ser (tabla E3.3): Tabla E3.3. Tabla de estados del ejemplo 3. Estado actual q(t) q0 q1 q2 q3 Entrada actual x(t) 0 1 q3/1 q2/1 q1/1 q0/1 q3/1 q2/0 q1/1 q2 /0

q(t+1)/z(t) Prximo estado/Salida actual

4.6. Representar el diagrama de estados o grafo de comportamiento del sistema a partir de la tabla de estados. M. Mazo, S. E. Palazuelos, L. M. Bergasa -19Sistemas Secuenciales Sncronos

A partir de la tabla E3.3 se obtiene el grafo de la figura E3.2:

Figura E3.2. Grafo correspondiente al ejemplo 3.

El estado inicial es q0 porque los componentes conectados a las entradas asncronas de los biestables hacen que al conectar la alimentacin se realice un reset, y ambos flip-flops comiencen con salida 0. Ejemplo 4. Anlisis de un autmata de Moore. Para este ejemplo vamos a utilizar el circuito de la figura E4.1. Como se puede observar, es un circuito de una sola entrada, dos flip-flops de tipo D y una salida que depende nicamente de las salidas de los biestables, por tanto, se trata de un autmata de Moore.

Figura E4.1. Autmata correspondiente al ejemplo 4.

Siguiendo los pasos anteriores se obtiene: 1) Excitacin de los biestables:

D 0 t = Q 0 t X 0 t + Q 1t X 0 t = (Q 0 t + Q 1t ) X 0 t
M. Mazo, S. E. Palazuelos, L. M. Bergasa -20Sistemas Secuenciales Sncronos

D 1t = Q 1t X 0 t + Q 0 t X 0 t = (Q 1t + Q 0 t ) X 0 t
2) Funcin lgica del estado siguiente:

Q 0 (t + 1) = X 0 (t) [Q 1 (t) + Q 0 (t)] Q 1 (t + 1) = X 0 (t) [Q 1 (t) + Q 0 (t)])


3) La funcin lgica de la salida ser:

Z0(t) = Q0(t).Q1(t)
4) A partir de estas ecuaciones, se obtiene la tabla de transiciones codificada mostrada en la tabla E4.1:
Tabla E4.1. Tabla de transiciones codificada del ejemplo 4. Estado actual Q1(t)Q0(t) 00 01 10 11 0 00 00 00 00 Entrada X0(t) 1 01 10 11 11 Salida actual Z0(t) 0 0 0 1

Q1(t+1) Q0(t+1) Prximos estados

5) Haciendo la siguiente asignacin de estados: q0 = 00, q1 = 01, q2=10, q3= 11, la tabla de estados ser la tabla E4.2, y el grafo de comportamiento del sistema es el mostrado en la figura E4.2: Tabla E4.2. Tabla de estados del ejemplo 4. Estado actual q(t) q0 q1 q2 q3 Entrada x(t) 0 q0 q0 q0 q0 1 q1 q2 q3 q3 Salida actual z(t) 0 0 0 1

Prximo estado q(t+1)

El estado inicial es q0 porque el circuito conectado a las entradas asncronas de los biestables, que hacen que al conectar la alimentacin ambos biestables comiencen con salida 0.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-21-

Sistemas Secuenciales Sncronos

Figura E4.2. Grafo correspondiente al autmata de Moore del ejemplo 4.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-22-

Sistemas Secuenciales Sncronos

5. Sntesis de circuitos secuenciales sncronos


La sntesis de circuitos secuenciales sncronos tiene por objetivo obtener el esquema fsico del circuito (formado por puertas lgicas y flip-flops) a partir de la descripcin de la funcin que se quiere realizar. Los pasos a seguir son prcticamente los mismos que los del proceso de anlisis, pero en sentido inverso. De forma resumida estos pasos son: 5.1. Planteamiento del problema. 5.2. Obtencin del grafo (diagrama de estados). 5.3. Obtencin de la tabla de estados o transiciones inicial. 5.4. Minimizacin de la tabla de estados. 5.5. Asignacin de estados y obtencin de la tabla de estados o transiciones codificada. 5.6. Obtencin de las ecuaciones de salida del sistema. 5.7. Obtencin de las tablas de excitacin y ecuaciones de entrada de cada flipflop del circuito. 5.8. Implementacin del circuito. 5.9. Inclusin de los circuitos de control de las entradas asncronas para asegurar que, al alimentar el circuito, ste se sita en el estado inicial del grafo. En lo que sigue se describe, de forma general, cada uno de estos pasos, reforzando las explicaciones con un ejemplo. Con el objetivo de conseguir mayor claridad en los puntos 4 y 5 (minimizacin y asignacin de estados) se incluirn adems otros ejemplos con tablas de estados iniciales genricas.

5.1. Planteamiento del problema


Se trata de una descripcin funcional del circuito a disear o, lo que es lo mismo, del problema a resolver. Esta descripcin, generalmente, se realiza en lenguaje natural ayudado en algunos casos con un dibujo ilustrativo.
Ejemplo 5. Diseo de un autmata de Mealy: Se quiere disear un circuito secuencial sncrono que proporcione a su salida un nivel alto cada vez que en su lnea de entrada se presente la secuencia 101".

5.2. Obtencin del grafo (diagrama de estados)


Partiendo del planteamiento del problema hay que obtener el grafo. Para ello hay que empezar por identificar el nmero de estados, salidas y entradas al sistema; a continuacin establecer las transiciones entre estados en funcin de las entradas y el estado, indicando los valores de las salidas del sistema en funcin del estado y las entradas.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-23-

Sistemas Secuenciales Sncronos

Esta es la parte ms complicada del proceso de sntesis ya que es la ms intuitiva y menos sistemtica. Hemos de indicar que un mismo enunciado puede dar lugar a distintos grafos iniciales, todos ellos vlidos, pero que pueden ser muy diferentes y, por tanto, con mayor o menor complejidad de implementacin. Sin duda, el mejor grafo ser aquel que tenga un menor nmero de estados. De la habilidad, ingenio y experiencia del diseador depende la calidad del grafo, sin embargo, todas estas cualidades no garantizan que el grafo inicial obtenido sea el ptimo. Los pasos a seguir para establecer un grafo a partir del enunciado podran resumirse en: 1. Elegir una realizacin de mquina de Mealy o de Moore (en nuestro caso, en el enunciado se ha indicado que la mquina es de Mealy). 2. Identificar y asignar nombre a: 1) 2) 3) los estados, por ejemplo, q0, q1, q2....., las entradas, p. ej., x0, x1,..., y las salidas, p. ej., z0, z1,....

3. Seleccionar un estado inicial, llammosle q0, (este estado inicial, en muchos casos, lo sugiere el propio enunciado). Partiendo de este estado inicial, y para cada una de las posibles combinaciones de entrada, establecer la salida y el siguiente estado (que puede ser otro o incluso el mismo). 4. Si se trata de una mquina de Mealy: sobre cada flecha que une dos estados indicar la combinacin de entrada que origina dicha transicin entre estados y la salida actual. 5. Si se trata de una mquina de Moore: indicar sobre cada flecha que une dos estados la combinacin de entrada (entrada actual) que origina dicha transicin entre estados. Las salidas correspondientes a cada estado se indican junto a l, dentro del crculo. 6. El proceso indicado en 4) (caso de mquina de Mealy) o 5) (caso de mquina de Moore) se repite para todos los estados.
Ejemplo 5: En este caso, el circuito dispone de una sola entrada, que llamaremos X0, y una salida, que llamaremos Z0. En cuanto a los estados, se puede pensar inicialmente en los siguientes: Estado q0: no se ha recibido el primer 1 (estado inicial). Estado q1: se ha recibido el primer 1. Estado q2: se han recibido un 1 y un 0. Estado q3: se han recibido un 1, un 0 y un 1.

A partir de estos estados se deduce (siguiendo las sugerencias del punto 2.3) que: 1. Si estando en el estado q0 la entrada es 1 se debe pasar al estado q1, y si es 0 se debe permanecer en q0. En ambos casos la salida debe ser 0. 2. Estando en q1 (indicativo de que se ha recibido el primer 1) si se recibe un 0 se debe pasar al estado q2 (indicativo de que se ha recibido un la secuencia 10), si se recibe un 1 se debe interpretar este como el primero de la posible secuencia, por tanto, hay que permanecer en

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-24-

Sistemas Secuenciales Sncronos

q1. En ambos casos la salida debe ser 0. 3. Si estando en q2 se recibe un 1 se pasa al estado q3 (indicativo de haber recibido una secuencia 101). En este caso la salida se debe poner a 1. Si se recibe un 0, la secuencia se rompe, y hay que retornar al estado inicial q0 (es como si no se hubiera recibido ningn 1); en este caso la salida debe ser 0. 4. Si estando en q3 (indicativo de que se ha recibido la secuencia 101) se recibe un 0 se debe retornar al estado q2 (estado al que se llega con un 10). En este caso la salida debe ser 0. Si el dato de entrada es 1 se retorna al estado q1, ya que este nuevo 1 se considera como el primero de una nueva secuencia.

Con todo ello, el grafo resultante es el de la figura E5.1.

Figura E5.1. Grafo correspondiente al ejemplo 5.

5.3. Obtencin de la tabla de estados inicial


Partiendo del grafo se obtiene la tabla de estados, siguiendo el proceso inverso al visto en el apartado de anlisis.
Ejemplo 5: Para este ejemplo, la tabla de estados es la indicada a continuacin (tabla E5.1) Tabla E5.1. Tabla de estados del ejemplo 5. Estado actual

q(t) q0 q1 q2 q3

Entrada actual x(t)

0 q0/0 q2/0 q0/0 q2/0

1 q1/0 q1/0 q3/1 q1/0

q(t+1)/z(t) Prximo estado/salida

5.4. Minimizacin de la tabla de estados


La tabla de estados obtenida en el apartado 3 no siempre es la ptima, por ello, y a fin de que la realizacin prctica se pueda hacer con el mnimo coste (menor nmero de flip-flops), se debe minimizar. Una vez obtenida la tabla mnima, el nmero de flip-flops que se necesitan para implementar el circuito viene dado por la relacin: M. Mazo, S. E. Palazuelos, L. M. Bergasa -25Sistemas Secuenciales Sncronos

2Nmero de biestables $Nmero de estados El mtodo que se va utilizar para obtener la tabla mnima es el de Huffman (otro mtodo es el denominado de tablas de implicacin). Para minimizar la tabla de estados se averiguar qu estados son equivalentes y se eliminarn todos menos uno de ellos. Dos estados qi y qj se dice que son equivalentes (qi / qj) si y slo si para cada combinacin de entradas posibles se cumple: 1) 2) las seales de salida correspondiente son las mismas, y los estados siguientes correspondientes a cada combinacin de la entrada son equivalentes.

Con el fin de ilustrar este proceso de minimizacin vamos a utilizar una tabla de estados suficientemente significativa, que nos permita tener una idea clara del proceso a seguir. La tabla que vamos a utilizar es la mostrada a continuacin (tabla 5).

Tabla 5. Ejemplo de tabla a minimizar. Estado actual Entrada actual x(t)

q(t) q0
q1 q2 q3 q4 q5 q6 q7

0
q0/0 q1/0 q2/0 q0/1 q0/1 q4/1 q1/0 q3/0

1
q1/0 q4/0 q7/0 q1/0 q1/0 q5/0 q4/0 q4/1

q(t+1)/z(t) Prximo estado/salida actual

Los pasos a seguir son: 1. Dividir la tabla de estados en grupos de estados actuales tales que todos los estados de cada grupo tengan la misma salida ante la misma entrada (obsrvese que en la formacin de estos grupos no se tienen en cuenta los prximos estados). Cada grupo de estados se puede nombrar con una letra o un nmero. En la tabla 5 los estados actuales q0, q1, q2 y q6 tienen salidas 00, los estados actuales q3, q4 y q5 tienen salidas 10 y el estado actual q7 tiene salidas 01. Por tanto, siguiendo el punto 1 y asignando a cada grupo una letra identificativa, se obtiene la siguiente divisin de la tabla de estados (tabla 6), (en el siguiente punto se explicar cmo se rellena la ltima lnea de la tabla). 2. La ltima lnea la constituyen los grupos a los que pertenecen los prximos estados de cada estado actual. As por ejemplo, los estados siguientes del estado q0 son q0 (que pertenece M. Mazo, S. E. Palazuelos, L. M. Bergasa -26Sistemas Secuenciales Sncronos

al grupo A) y q1 (que pertenece al grupo A); los estados siguientes del estado q6 son q1 (que pertenece al grupo A) y q4 (que pertenece al grupo C); los estados siguientes del estado q5 son q4 (que pertenece al grupo C) y q5 (que pertenece al grupo C),...........
Tabla 6. Tabla con los estados agrupados por su salida. Salidas Grupos Estados actuales que constituyen el grupo Grupos de los prximos estados q0 A, A q1 A, C 00 A q2 A, B q6 A, C 01 B q7 C, C q3 A, A 10 C q4 A, A q5 C, C

3. Si en esta ltima tabla hay algn grupo (casillas de la segunda fila) dentro del cual hay algn estado actual que forma parte del grupo que no tiene los mismos grupos de los prximos estados (casillas de la ltima fila), esto significa que los estados actuales de dicho grupo no son equivalentes entre s. En este caso hay que dividir dicho grupo en otros ms pequeos que contengan estados actuales con los mismos grupos de los prximos estados.

Siguiendo esta idea, en nuestro ejemplo, el grupo A hay que dividirlo en tres grupos, que llamaremos A, D, E; el grupo C hay que dividirlo en dos grupos, que llamaremos C, F. Una vez realizada esta divisin, hay que asignar los nuevos grupos de los prximos estados, obtenindose la tabla 7:

Tabla 7. Tabla 6 subdividiendo los estados en grupos con los mismos grupos de prximos estados. Salidas Grupos Estados actuales que constituyen el grupo Grupos de los prximos estados A q0 A,D q1 D,C 00 D q6 D,C E q2 E,B 01 B q7 C,C q3 A,D C q4 A,D 10 F q5 C,F

4. Este proceso se repite hasta conseguir una tabla en la que los estados actuales que constituyen el grupo de cada grupo tengan los mismos grupos de los prximos estados. Dentro de esta tabla final los estados actuales que constituyen el grupo de cada grupo son estados equivalentes entre s, y se pueden sustituir por un nico estado.

Segn esto, la tabla 7 es ya la tabla final, ya que los estados actuales que constituyen el grupo de cada grupo tienen los mismos grupos de los prximos estados. Por tanto q1 y q6 son estados equivalentes y tambin lo son q3 y q4. Es necesario asignar un nombre a los nuevos estados, que son los grupos definitivos. As, por ejemplo, se pueden identificar los estados finales utilizando como subndice la letra del grupo al que pertenecen. En M. Mazo, S. E. Palazuelos, L. M. Bergasa -27Sistemas Secuenciales Sncronos

nuestro caso, por tanto, tenemos: qa = q0, qb = q7, qc = q3 = q4, qd = q1 =q6, qe =q2, y qf = q5 y, sustituyendo estos nuevos estados en la tabla 5 se obtiene la tabla mnima equivalente a la misma, que resulta ser la mostrada a continuacin (tabla 8):
Tabla 8. Tabla mnima correspondiente a la tabla 5. Estado actual q(t) qa qb qc qd qe qf Entrada actual x(t) 0 1 qa/0 qc/0 qa/1 qd/0 qe/0 qc/1 qd/0 qc/1 qd/0 qc/0 qb/0 qf/0

q(t+1)/z(t) Prximo estado/salida actual

En el ejemplo 5 se puede ver (tabla E5.1) que los estados q1 y q3 son equivalentes, por ello denominaremos a los nuevos estados qa =q0, qb =q1= q3, y qc=q2, resultando la siguiente tabla: Tabla E5.2. Tabla de estados mnima del ejemplo 5. Estado actual q(t) qa qb qc Entrada actual x(t) 0 qa/0 qc/0 qa/0 1 qb/0 qb/0 qb/1

q(t+1)/z(t) Prximo estado/salida actual

5.5. Asignacin de estados y obtencin de la tabla de transicin resultante


La asignacin de estados consiste en asignar a cada estado de la tabla de estados una combinacin binaria de las salidas de los flip-flops. Por ejemplo, en un sistema con 3 biestables, si le asignamos a q0 el cdigo 000, significar que cuando las lneas Q2, Q1 y Q0 tengan el valor 0, el circuito estar en el estado q0. Esta asignacin no es nica y, por tanto, la complejidad (nmero de puertas a utilizar en la realizacin del circuito) del sistema final tambin ser diferente dependiendo de la asignacin que realicemos. Evidentemente, una forma de encontrar el circuito ms reducido sera realizar todas las alternativas y despus elegir la ms sencilla. Esto, sin embargo, slo es posible utilizando programas informticos para un nmero de flip-flops reducido. En caso contrario el nmero de posibles realizaciones es muy grande, lo que conlleva un elevado tiempo de diseo. Tngase presente que si hay N estados se necesitan m flip-flops, tal que 2m$N, y el nmero de posibles asignaciones viene dado por:

2m 2m! N! = m (2 N)! N
M. Mazo, S. E. Palazuelos, L. M. Bergasa -28Sistemas Secuenciales Sncronos

Una alternativa prctica es utilizar ciertas reglas, basadas nicamente en los estados actuales q(t) y prximos q(t+1) de la tabla de estados. Estas reglas, sin entrar en su justificacin, persiguen minimizar la lgica necesaria en las entradas de los biestables. De forma resumida estas reglas son: 1. Buscar en la tabla de estados, estados actuales (q(t)) que tengan idnticos prximos estados para las mismas entradas. Esto es, buscar por filas estados actuales que tengan dentro de cada columna (cada columna se corresponde con una entrada) de estados prximos, estados prximos iguales. A los estados actuales que cumplan esta condicin les vamos a llamar actuales-uno, y a sus prximos estados, si son distintos, los denominaremos prximos-uno. Para conseguir una realizacin buena del circuito, se deben asignar cdigos binarios adyacentes (que slo se diferencien en un bit) a los estados actuales-uno y tambin debern ser adyacentes las asignaciones de los prximos-uno (si son distintos). 2. Buscar en la tabla de estados, estados actuales (q(t)) que tengan idnticos prximos estados, y en la misma cantidad, pero para entradas diferentes. Esto es, buscar por filas estados actuales que tengan para diferentes columnas de estados prximos, estados prximos iguales (y en la misma cantidad). A los estados actuales que cumplan esta condicin les vamos a llamar actuales-dos, y a sus prximos estados si son distintos los denominaremos prximos-dos. Para conseguir una realizacin buena del circuito, se deben asignar cdigos binarios adyacentes a los estados actuales-dos y tambin se debe hacer lo mismo con los estados prximos-dos. 3. Buscar en la tabla de estados, estados actuales (q(t)) que tengan idnticos prximos estados para alguna de las entradas. Esto es, buscar por filas estados actuales que tengan en algunas columnas estados prximos iguales. A los estados actuales que cumplan esta condicin les vamos a llamar actuales-tres. Para conseguir una realizacin buena del circuito, se deben asignar cdigos binarios adyacentes a los estados actuales-tres, teniendo prioridad aquellos estados actuales-tres que tengan mayor nmero de prximos estados iguales. 4. Otra regla prctica es asignar cdigos adyacentes a los prximos estados de cada fila. 5. Y por ltimo, para una realizacin buena del circuito, se deben asignar cdigos binarios adyacentes a cada estado actual con sus prximos estados. Dado que no siempre se podr conseguir aplicar todas estas reglas, el orden de prioridad de aplicacin es el mismo que el de su numeracin en esta lista. Un consejo prctico, para tener claros los cdigos adyacentes, es utilizar mapas de Karnaugh (con los que el alumno ya est familiarizado, y donde estn presentes todas las posibilidades de adyacencia) con tantas variables como flip-flops tenga el circuito a disear. Con el fin de dar mayor claridad a la aplicacin de estas reglas prcticas vamos a utilizar la tabla de estados de la tabla 9. Lgicamente, si esta tabla se fuera a implementar habra que minimizarla, pero para dar mayor claridad al proceso de asignacin de estados se va a utilizar como est:

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-29-

Sistemas Secuenciales Sncronos

Tabla 9. Ejemplo de tabla para la asignacin de estados y obtencin de la tabla de transicin Entrada actual x(t) x1 x2 x3 x0 00 01 10 11 q0/0 q0/1 q4/0 q4/1 q2/1 q0/1 q1/0 q2/0 q0/0 q7/0 q5/1 q5/0 q1/1 q0/0 q2/1 q7/1 q1/0 q2/1 q0/0 q3/1 q3/1 q1/1 q1/0 q2/0 q2/0 q6/0 q2/1 q3/0 q1/1 q2/0 q3/1 q6/1

Estado actual q(t) q0 q1 q2 q3 q4 q5 q6 q7

q(t+1)/z(t) Prximo estado/salida actual

Aplicando las reglas anteriores tenemos: Regla 5.1: q0 adyacente q5; Regla 5.2: q4 adyacente q6; Regla 5.3: q1 adyacente q7 (3); q2 adyacente q3 (2); q3 adyacente q4 (1) q3 adyacente q6 (1) q0 adyacente q1 (1); q1 adyacente q5 (1); q4 adyacente q7 (1); q5 adyacente q6 (1); q0 adyacente q2 (1) Regla 5.4: q0 adyacente q1 adyacente a q2 q0 adyacente q7, q2, q6 Regla 5.5: q0 adyacente con q1 y q2 q1 adyacente con q0, q7, q2 y q6
Tabla 10. Mapa de Karnaugh.

Segn esto, una posible asignacin es la indicada en el mapa de Karnaugh de la tabla 10. Una vez realizada la asignacin de estados se obtiene la tabla de transiciones codificada (mera traduccin de la tabla de estados) tal como se hizo en el apartado de diseo. Es aconsejable que en la tabla de transiciones codificada aparezcan en columnas diferentes los prximos estados y las salidas actuales. Es evidente que si hay N estados y se utilizan m flip-flops, habr 2m - N combinaciones de las salidas de los biestables que no se correspondan con ningn estado de nuestro grafo. Esas combinaciones no aparecen nunca en la evolucin del circuito, y, por tanto, en el diseo podemos asignarle cualquier valor (X) tanto a sus salidas como a su estado siguiente.
Ejemplo 5. Asignacin de estados del ejemplo 5: qa= 00, qb=01, qc=10.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-30-

Sistemas Secuenciales Sncronos

A partir de la asignacin de estados anterior y de la tabla de estados E5.2, la tabla de transicin codificada del ejemplo 5 se muestra en la tabla E5.3, reflejando en columnas diferentes los prximos estados y las salidas actuales. Tabla E5.3. Tabla de transicin codificada del ejemplo 5. Estado actual q(t) q0 q1 q2 q3 Q1(t)Q0(t) 00 01 10 11 Entrada actual X0(t) 0 00 10 00 XX 1 01 01 01 XX Entrada actual X0(t) 0 0 0 0 X 1 0 0 1 X

Q1(t+1) Q0(t+1) Prximos estados

Z0(t) Salida actual

5.6. Obtencin de las ecuaciones de salida del sistema


Las ecuaciones lgicas de las diferentes salidas se pueden obtener directamente a partir de la tabla de transiciones. Recurdese que en los autmatas de Mealy z(t) = g[q(t), x(t)] por ello, en la tabla de transiciones las entradas son q(t) y x(t) y la salida z(t), y cada salida fsica se debe implementar en funcin de las entradas fsicas y los estados actuales [Q0(t).....]. En los autmatas de Moore z(t)= g[q(t)], por lo que en la tabla de transiciones las entradas son q(t) y la salida z(t), y al implementar la funcin, z(t) slo depende de q(t). Las funciones de salida se debern minimizar por alguno de los mtodos conocidos (Karnaugh, por ejemplo).
Ejemplo 5: Este caso tiene una sola entrada, X0t y dos lneas de estado Q1t y Q0t. A partir de la tabla E5.3, y utilizando mapas de Karnaugh, se obtiene la funcin de salida mostrada en la figura E5.2. Figura E5.2. Funcin de salida del ejemplo 5.

5.7. Obtencin de las tablas de excitacin y ecuaciones de entrada de cada flip-flop del circuito
En este punto se trata de resolver dos problemas: 1. Definir el tipo de flip-flop a utilizar (RS, JK, T, D). A modo de recordatorio, en la tabla 11 se muestran las excitaciones necesarias a la entrada de cada tipo de biestable para obtener todas las posibles transiciones. Se supone que las entradas son activas a nivel alto.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-31-

Sistemas Secuenciales Sncronos

Tabla 11. Excitacin necesaria para producir cada transicin en los distintos tipos de biestables.

Q(t) 0 0 1 1

Q(t+1) 0 1 0 1

S R 0 1 0 X X 0 1 0

J K 0 1 X X X X 1 0

T 0 1 1 0

D 0 1 0 1

2. Obtener las ecuaciones de entrada de cada flip-flop (valores de R, S; J, K; T D) en funcin de los estados actuales y entradas al sistema. Con esto quedara ya definido el circuito. Para ello, y una vez elegido el tipo de flip-flop, debemos averiguar la excitacin que debemos poner a la entrada para cada estado y combinacin de las seales de entrada para producir la transicin deseada (para ello utilizaremos la tabla 11). Con esta informacin se construye la tabla de excitacin de los biestables, que puede incluir una sola funcin (en los biestables T o D) o dos funciones, (en el caso de los R S o J K). Si son 2 funciones, se divide la tabla y se construye una para cada variable. Por ltimo, se simplifican las tablas obtenidas, (por el mtodo de los mapas de Karnaugh por ejemplo), y se averigua la funcin lgica correspondiente a cada terminal de entrada.
Ejemplo 5. En este caso hay 3 estados, por tanto se necesitan 2 flip-flops. Utilizaremos flip-flops JK, y denominaremos Q1 y Q0 a sus salidas y J1, K1 y J0, K0 a sus entradas, respectivamente. Si reescribimos la tabla E5.3, considerando nicamente los estados actuales y prximos y los valores de J1, K1 y J0, K0, obtendremos la tabla E5.4.

Tabla E5.4. Tabla de excitacin de los flip-flops (ejemplo 5). Estado actual q(t) qa qb qc Q1(t)Q0(t) 00 01 10 11 Entrada actual X0(t) 0 00 10 00 XX 1 01 01 01 XX Entrada actual X0(t) 0 0X 1X X1 XX 1 0X 0X X1 XX Entrada actual X0(t) 0 0X X1 0X XX 1 1X X0 1X XX

Q1(t+1) Q0(t+1) Prximos estados

J1(t) K1(t) Entrada actual biestable 1

J0(t) K0(t) Entrada actual biestable 0

Los mapas de Karnaugh correspondientes a las entradas de los dos flip-flops se muestran en la figura E5.3, junto a las funciones de entrada ya simplificadas.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-32-

Sistemas Secuenciales Sncronos

J0 t = X 0 t

K 0t = X0t

J1t = Q 0 t X 0 t

K 1t = 1

Figura E5.3. Funciones lgicas de las entradas de los flip-flops del ejemplo 5.

5.8. Implementacin del circuito


Las ecuaciones de entrada a los flip-flops y las ecuaciones de salida del sistema nos permiten dibujar parte del circuito a disear.

Ejemplo 5:
Entradas de los flip flops: J0 t = X 0 t K0t = X0t J1t = Q 0 t X 0 t K 1t = 1 Salida: Z 0 t = X 0 t Q 1t

Figura E5.4. Implementacin del parte del circuito correspondiente al ejemplo 5.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-33-

Sistemas Secuenciales Sncronos

5.9. Inclusin del control de las entradas asncronas de los biestables


Por ltimo, es necesario incluir los circuitos de control de las entradas asncronas de los biestables para asegurar, por una parte, que al alimentar el circuito este se site en el estado inicial del grafo, y, por otra, para que una vez pasado el transitorio inicial las entradas asncronas queden inactivas. Para ello se utilizar un circuito como el mostrado en el ejemplo que se analiza a continuacin.

Figura E5.5. Implementacin del circuito correspondiente al ejemplo 5.

Ejemplo 5: En este caso debemos aadir los componentes necesarios para que el circuito al ser alimentado comience en el estado q0=00.

Como se puede observar, el circuito consta de un condensador, un resistor y un diodo, dispuestos como se muestra en la figura E5.5 para generar el control de una entrada asncrona activa a nivel bajo. Cuando conectemos la alimentacin el condensador estar descargado, e impondr un nivel bajo a las entradas CLR de los biestables, por lo que sus salidas sern 0. A medida que pasa el tiempo el condensador se va cargando a travs de la R, hasta que VCLR$ViHmin, y, a partir de ese momento, el biestable funcionar con normalidad con las entradas sncronas (el diodo en esta fase no influye porque estara polarizado en inversa). Los valores de R y C deben ser calculados para que el tiempo que en la entrada CLR haya un nivel bajo sea igual o superior al tCLRmn indicado por el fabricante. Si hay un fallo momentneo de la alimentacin durante el funcionamiento del sistema, el condensador se descargar rpidamente a travs del diodo, asegurando, de esta forma, un reset inicial al recuperar la alimentacin. En este caso, el circuito de control est conectado al CLR de los biestables, porque desebamos que al principio su salida fuera 0. Si necesitamos un 1 inicial, situaremos el circuito de control en las entradas PR. Si la entrada asncrona a controlar fuera activa a nivel alto, sera necesario conectar un circuito similar al anterior, pero cambiando la posicin de los componentes de forma que inicialmente haya 5V en el CLR (o el PR), y despus 0V.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-34-

Sistemas Secuenciales Sncronos

La entrada asncrona no utilizada debe estar conectada siempre al valor necesario para que el biestable funcione de forma sncrona: en este ejemplo, como el PR es activo a nivel bajo hemos conectado los dos a Vcc. Adems, en algunos casos es necesario incluir la posibilidad de reiniciar el sistema en cualquier momento, es decir, hacer que se site en el estado inicial de forma asncrona, (por ejemplo, controlndolo con un pulsador). Esto se representa en el grafo como una transicin al estado inicial que no llega de ningn otro estado del grafo, y junto a la que aparece el nombre de la entrada asncrona que la controla, como se puede observar en la figura E5.6.

Figura E5.6. Grafo de ejemplo 5 incluyendo una entrada asncrona para reinicializar el circuito.

La posibilidad de reiniciar el sistema se implementa como un pulsador que se aade al circuito de control de las entradas asncronas, como se muestra en la figura E5.7. Este pulsador debe ser conectado de forma que al ser pulsado realice un reset/preset asncrono a los biestables, haciendo que en ese mismo instante el circuito se site en su estado inicial.
Ejemplo 5. En este ejemplo el estado inicial es q0=00, por lo que el pulsador ha sido conectado en el circuito de forma que al ser activado realice un reset a ambos biestables.

Figura E5.7. Circuito del ejemplo 5 incluyendo la posibilidad de hacer un reset asncrono con el pulsador P.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-35-

Sistemas Secuenciales Sncronos

6. Ejercicios resueltos secuenciales sncronos

sobre

sntesis

de

circuitos

6.1. Ejemplo 6. Circuito sumador serie


Se quiere disear un autmata de Mealy que realice la suma de dos datos que llegan en serie por dos canales diferentes (es decir, los bits de los sumandos se presentan secuencialmente y por parejas). Primero se presentan los bits de menor peso de ambos sumandos, el sumador los suma y obtiene el bit de menor peso del resultado y toma nota del acarreo, sumando a continuacin los siguientes bits y el acarreo, y as sucesivamente. El resultado se va presentando a la salida en serie a medida que se va generando. Solucin: Como paso previo a la elaboracin del grafo del autmata, comenzaremos planteando la tabla de verdad del sumador de un bit con acarreo (Tabla E6.1). En ella hemos denominado X0 y X1 a los sumandos y S al resultado (suma). Para ver los estados que se necesitan solamente hay que darse cuenta de que las dos situaciones que se pueden presentar son que la suma se realice con y sin acarreo (si se genera acarreo hay que almacenarlo y sumarlo con los dos bits X0 y X1 siguientes). Por tanto, para recordar si ha habido acarreo o no, necesitamos 2 estados: si la suma no genera acarreo estamos en el estado q0 y si lo genera en el q1. Estos estados han sido incluidos tambin en la tabla E6.1.
Tabla E6.1. Tabla de verdad del sumador del ejemplo 6.

Acarreo anterior 0 (q0) 0 (q0) 0 (q0) 0 (q0) 1 (q1) 1 (q1) 1 (q1) 1 (q1)

X1 0 0 1 1 0 0 1 1

X0 0 1 0 1 0 1 0 1

Acarreo generado 0 (q0) 0 (q0) 0 (q0) 1 (q1) 0 (q0) 1 (q1) 1 (q1) 1 (q1)

Suma (S) 0 1 1 0 1 0 0 1

Segn la tabla E6.1, si estando en el estado q0 (acarreo anterior=0) los bits X0 y X1 toman valores X0=0 y X1= 0, X0= 0 y X1= 1 X0=1 y X1=0 la suma es 0, 1, 1, respectivamente y el acarreo generado es 0 en todos los casos, es decir, el estado siguiente es q0. Sin embargo, si el dato es X0=1 y X1=1, la suma es S=0 y se produce acarreo, por tanto, el estado siguiente ser q1. Por otra parte, si en q1 (acarreo anterior=1) los datos de entrada son X0=0 y X1=1, X0=1 y X1=0 X0=1 y X1=1 la suma es 0 (acarreo anterior (1) + 0 + 1 = 0), 0 (acarreo anterior (1) + 1 + 0 = 0), 1 (acarreo anterior (1) + 1 + 1 = 1), respectivamente, y en todos los casos el acarreo generado es 1, lo que hace que permanezca en el estado q1. Por el contrario, si los datos son X0=0 y X1=0, la suma es 1 y el acarreo generado es 0, y se pasa al estado q0. El estado inicial ser q0, porque el primer acarreo es 0. M. Mazo, S. E. Palazuelos, L. M. Bergasa -36Sistemas Secuenciales Sncronos

Esta descripcin se corresponde con el grafo mostrado en la figura E6.1.

Figura E6.1. Grafo correspondiente al ejemplo 6.

A partir de este grafo es inmediato obtener la tabla de estados indicada a continuacin:


Tabla E6.2. Tabla de estados del ejemplo 6.

Estado actual q(t) q0 q1

Entrada actual x0 00 q0/0 q0/1 x1 01 q0/1 q1/0 x2 10 q0/1 q1/0 x3 11 q1/0 q1/1

q(t+1)/z(t) Estado siguiente/salida actual

Como hay 2 estados, ser suficiente con 1 biestable. La asignacin de estados puede ser: q0= 0, q1= 1 y la tabla de transiciones codificada es la mostrada a continuacin (tabla E6.3). En ella, Q0 es la salida fsica del flip-flop, las lneas de entrada del circuito son X0 y X1, y la salida fsica Z0.
Tabla E6.3. Tabla de estados codificada.

Estado actual q(t) q0 q1 Q0(t) 0 1 00 0 0

Entrada actual X0(t) X1(t) 01 0 1 10 0 1 11 1 1 00 0 1

Entrada actual X0(t) X1(t) 01 1 0 10 1 0 11 0 1

Q0(t+1) Prximo estado

Z0(t) Salida actual

Una vez que tenemos ya las transiciones del autmata como cambios entre 0 y 1 de Q0(t), debemos obtener la funcin de excitacin del biestable para conseguir que se produzcan dichas transiciones. Segn la tabla 11, para un biestable JK, y denominando J0 y K0 a las entradas, obtenemos la tabla E6.4.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-37-

Sistemas Secuenciales Sncronos

Obsrvese que las columnas de la izquierda dentro del cuadro Entradas del flip-flop para cada combinacin de entrada, corresponden al valor que debe tomar J0 y las columnas de la derecha corresponden a K0.
Tabla E6.4. Tabla de excitacin del biestable.

Estado actual q(t) q0 q1 Q0(t) 0 1 00 0 0

Entrada actual X0(t) X1(t) 01 1 0 10 0 1 11 1 1 00 0 X X 1

Entrada actual X0(t) X1(t) 01 0 X X 0 10 0 X X 0 11 1 X X 0

Q0(t+1) Prximos estados

J0(t) K0(t) Entradas actuales del flip-flop

Utilizando mapas de Karnaugh para obtener las funciones de entrada al flip-flop, se tienen los resultados mostrados en la figura E6.2.

J0 t = X 0 t X 1 t

K 0 t = X 0 t X 1t

Figura E6.2. Ecuaciones de las entradas del flip-flop del ejemplo 6.

A continuacin calculamos la funcin lgica de la salida del circuito, Z0(t), a partir de la informacin de la tabla E6.3, utilizando el mapa de Karnaugh de la figura E6.3.

Figura E6.3. Mapa de Karnaugh de la funcin de salida.

A partir de este mapa de Karnaugh se obtiene como funcin de salida la siguiente expresin:

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-38-

Sistemas Secuenciales Sncronos

Z 0 t = X 0 t X 1t Q 0 t + X 0 t X 1t Q 0 t + X 0 t X 1t Q 0 t + X 0 t X 1t Q 0 t = X 0 t X 1t Q 0 t

Ya tenemos toda la informacin necesaria para implementar el circuito, que se muestra en la figura E6.4.

Figura E6.4. Implementacin del autmata del ejemplo 6 (sumador serie).

Por ltimo, conectamos en las entradas asncronas del biestable los componentes necesarios para asegurar que empezar en el estado q0, es decir, que al conectar la alimentacin Q0=0.

Figura E6.5. Sumador serie incluyendo las entradas asncronas.

Como se puede observar, en este ejemplo las entradas asncronas son activas a nivel alto. Se desea que la salida inicial del biestable sea 0, por lo que el PR se ha conectado a nivel bajo, para que permita actuar a las entradas sncronas, y el circuito de control del CLR se ha diseado de forma que proporcione un nivel alto al conectar la alimentacin, realizando un reset, y, transcurrido un tiempo (determinado por los valores de R y C), un nivel bajo, para que el biestable funcione de forma sncrona. La funcin del diodo es la misma que la del diodo del ejemplo 5.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-39-

Sistemas Secuenciales Sncronos

6.2. Ejemplo 7. Detector de secuencia


Se quiere disear un autmata de Moore que reciba datos en serie por una lnea de entrada y sea capaz de detectar secuencias de tres o ms 1's consecutivos. Solucin: En este caso, de nuevo, el circuito dispone de una sola entrada, que llamaremos X0, y una salida, Z0. En cuanto a los estados, se puede pensar inicialmente en los siguientes: Estado q0: no se ha recibido ningn 1 (estado inicial). Estado q1: se ha recibido un primer 1. Estado q2: se han recibido dos 1's consecutivos. Estado q3: se han recibido tres o ms 1's consecutivos.

A partir de estos estados se puede deducir que: 1. Si estando en el estado q0 la entrada es 1 se debe pasar al estado q1, y si es 0 se debe permanecer en q0. La salida estando en q0 debe ser 0. 2. Estando en q1 (indicativo de que se ha recibido el primer 1) si se recibe un 1 se debe pasar al estado q2 (indicativo de que se ha recibido la secuencia 11). Si, por el contrario, se recibe un 0 la secuencia se rompe, y hay que retornar al estado inicial q0 (es como si no se hubiera recibido ningn 1). La salida estando en q1 debe ser 0. 3. Si en q2 se recibe un 1 se pasa al estado q3 (indicativo de haber recibido una secuencia 111). Si se recibe un 0, la secuencia se rompe, y hay que retornar al estado inicial q0 (es como si no se hubiera recibido ningn 1). La salida estando en q2 debe ser 0. 4. Si estando en q3 (indicativo de que se ha recibido la secuencia 111) se recibe un 0 se debe retornar al estado q0, y si la entrada es 1 se debe permanecer en q3. La salida estando en q3 debe ser 1. Por tanto, el grafo es el mostrado en la figura E7.1, que se corresponde con la tabla de estados mostrada en la tabla E7.1.
Tabla E7.1. Tabla de estados del ejemplo 7.

Estado actual q(t) q0 q1 q2 q3

Entrada actual x(t) 0 q0 q0 q0 q0 1 q1 q2 q3 q3

Salida actual z(t) 0 0 0 1

Prximo estado q(t+1)


Figura E7.1. Grafo correspondiente al ejemplo 7.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-40-

Sistemas Secuenciales Sncronos

Como hay 4 estados se necesitan 2 flip-flops, y cada estado se codificar con una combinacin de 2 bits. La asignacin de estados puede ser: q0= 00, q1= 01, q2= 10, q3=11, y con esto se puede rescribir la tabla E7.1, obteniendo la tabla de estados codificada, que se muestra en la tabla E7.2. En este caso se van a utilizar flip-flops de tipo D, a cuyas salidas denominaremos Q1 y Q0 y a sus entradas D1 y D0 respectivamente. A continuacin debemos calcular la excitacin que es necesario aplicar a cada una de estas entradas para obtener las transiciones buscadas. Recordemos que esta informacin estaba incluida en la tabla 11 para todos los tipos de biestables, y en este ejemplo debemos utilizar la columna de los biestables D. En la tabla E7.3 se muestra la excitacin de los biestables para obtener las transiciones de la tabla E7.2.
Tabla E7.2. Tabla de estados codificada del ejemplo 7.

Estado actual q(t) q0 q1 q2 q3 Q1(t)Q0(t) 00 01 10 11

Entrada actual X0(t) 0 00 00 00 00 1 01 10 11 11

Salida actual Z0(t) 0 0 0 1

Q1(t+1) Q0(t+1) Prximos estados


Tabla E7.3. Tabla de excitacin de los flip-flops del ejemplo 7.

Estado actual q(t) q0 q1 q2 q3 Q1(t) Q0(t) 00 01 10 11

Entrada actual X0(t) 0 00 00 00 00 1 01 10 11 11

Entrada actual X0(t) 0 0 0 0 0 1 0 1 1 1

Entrada actual X0(t) 0 0 0 0 0 1 1 0 1 1

Q1(t+1) Q0(t+1) Prximos estados

D1t Entrada actual biestable 1

D0t Entrada actual biestable 0

Los mapas de Karnaugh correspondientes a las entradas D1 y D0 se muestran en la figura E7.2, junto a las funciones ya simplificadas.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-41-

Sistemas Secuenciales Sncronos

D 0 t = Q 0 t X 0 t + Q 1t X 0 t = (Q 0 t + Q 1t ) X 0 t

D 1t = Q 1t X 0 t + Q 0 t X 0 t = (Q 1t + Q 0 t ) X 0 t

Figura E7.2. Funciones lgicas de las entradas de los flip-flops del ejemplo 7.

A continuacin calculamos la funcin de salida. En este caso, al tratarse de un autmata de Moore, la salida slo depende del estado interno. A partir de la tabla E7.2 se obtiene: Z0t=Q0t.Q1t

Figura E7.3. Implementacin del ejemplo 7 (detector de secuencias de tres o ms 1's consecutivos).

Ahora ya tenemos todas las funciones necesarias para implementar el circuito, que se muestra en la figura E7.3. Por ltimo, es necesario incluir el control de las entradas asncronas de los biestables para asegurar que el estado inicial sea q0, es decir, que la salida de ambos biestables sea cero al conectar la alimentacin. El circuito completo se muestra en la figura E7.4.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-42-

Sistemas Secuenciales Sncronos

Figura E7.4. Circuito detector de la secuencia 111" incluyendo el control de las entradas asncronas.

6.3. Ejemplo 8. Contador BCD


Se quiere disear un circuito contador sncrono BCD mdulo diez (autmata de Moore). Solucin: En este caso, el circuito no tiene ninguna entrada de datos (solamente la entrada de reloj CLK), y tiene cuatro lneas de salida (Z3, Z2, Z1, Z0). En cuanto a los estados, son necesarios tantos como estados posibles tiene el contador: 10 (q0, q1, q2, q4, q5, q6, q7, q8, q9). La transicin entre estados, partiendo de un estado inicial (por ejemplo q0), se produce en cada pulso de reloj, y, como no hay entradas, cada estado tiene un solo estado siguiente, por lo que en cada estado siempre se produce la misma transicin. En la figura E8.1 se muestra el grafo.

Figura E8.1. Grafo correspondiente al ejemplo 8.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-43-

Sistemas Secuenciales Sncronos

Este grafo se corresponde con la tabla de estados mostrada en la tabla E8.1.


Tabla E8.1. Tabla de estados del ejemplo 8.

Estado actual q(t) q0 q1 q2 q3 q4 q5 q6 q7 q8 q9

Estado siguiente q(t+1) q1 q2 q3 q4 q5 q6 q7 q8 q9 q0

Salida actual z(t) 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1

En este caso hay diez estados, por lo tanto se necesitan 4 flip-flops. Una posible asignacin de estados es la siguiente: q0= 0000, q1= 0001, q2= 0010, q3=0011,q4= 0100, q5= 0101, q6= 0110, q7=0111, q8=1000, q9=1001, y sustituyendo los cdigos en la tabla E8.1, obtenemos la tabla de estados codificada, mostrada en la tabla E8.2. Los estados 1010, 1011, 1100, 1101, 1110 y 1111 nunca se presentan y, por tanto, a las salidas y prximos estados correspondientes se les puede asignar cualquier valor, situacin que se indica con la letra X.
Tabla E8.2. Tabla de estados codificada del ejemplo 8.

Estado actual Q3(t) Q2(t) Q1(t) Q0(t) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Prximos estados Q3(t+1) Q2(t+1) Q1(t+1) Q0(t+1) 0001 0010 0011 0100 0101 0110 0111 1000 1001 0000 XXXX XXXX XXXX XXXX XXXX XXXX

Salida actual Z3(t) Z2(t) Z1(t) Z0(t) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 XXXX XXXX XXXX XXXX XXXX XXXX

A continuacin debemos obtener la funcin de excitacin de los biestables para que se produzcan las transiciones deseadas, (mostradas en la tabla E8.2). Utilizaremos flip-flops tipo M. Mazo, S. E. Palazuelos, L. M. Bergasa -44Sistemas Secuenciales Sncronos

JK, y denominaremos Q3, Q2, Q1, Q0 a sus salidas y J3, K3; J2, K2; J1, K1 y J0, K0 a sus entradas, respectivamente. Como en ejemplos anteriores, utilizaremos la informacin contenida en la tabla 11, en la columna referida a los biestables JK, para saber la excitacin necesaria para producir cada transicin. Con ella completaremos la tabla de excitacin de los biestables, tabla E8.3, y, a partir de ella, obtendremos las funciones de entrada de los biestables de la figura E8.2.
Tabla E8.3. Tabla de excitacin de los flip-flops del ejemplo 8.

Estado actual Q3(t) Q2(t) Q1(t) Q0(t) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Prximos estados Q3(t+1) Q2(t+1) Q1(t+1) Q0(t+1) 0001 0010 0011 0100 0101 0110 0111 1000 1001 0000 XXXX XXXX XXXX XXXX XXXX XXXX
J3t K3t

Entradas flip-flops
J2t K2t J1t K1t J0t K0t

0X 0X 0X 0X 0X 0X 0X 1X X0 X1 XX XX XX XX XX XX

0X 0X 0X 1X X0 X0 X0 X1 0X 0X XX XX XX XX XX XX

0X 1X X0 X1 0X 1X X0 X1 0X 0X XX XX XX XX XX XX

1X X1 1X X1 1X X1 1X X1 1X X1 XX XX XX XX XX XX

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-45-

Sistemas Secuenciales Sncronos

J0 t = 1

K0t = 1

J1t = Q 0 t Q 3 t

K 1t = Q 0 t

J2 t = Q 0 t Q 1t

K 2 t = Q 1t Q 0 t

J3 t = Q 2 t Q 1t Q 0 t

K 3 t = Q0 t

Figura E8.2. Ecuaciones de entrada de los flip-flops del ejemplo 8.

Por ltimo, debemos calcular las funciones lgicas de las cuatro salidas, Z3, Z2, Z1 y Z0. A partir de la tabla E8.2, y utilizando mapas de Karnaugh para simplificar, se obtienen las funciones de la figura E8.3. Una vez obtenidas las funciones lgicas de las salidas del circuito y de las entradas de los biestables, podemos implementar el circuito, como se muestra en la figura 8.4, y por ltimo, aadir en las entradas asncronas las conexiones necesarias para que empiece a contar por el 0, obteniendo el circuito de la figura 8.5.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-46-

Sistemas Secuenciales Sncronos

Z0 t = Q0 t

Z 1t = Q 1t

Z2t = Q2t

Z3 t = Q3 t

Figura E8.3. Mapas de Karnaugh y expresiones lgicas de las salidas del autmata.

Figura E8.4. Implementacin del autmata del ejemplo 8 (contador BCD).

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-47-

Sistemas Secuenciales Sncronos

Figura E8.5. Contador BCD del ejemplo 8, incluyendo el control de las entradas asncronas.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-48-

Sistemas Secuenciales Sncronos

7. Ejercicios propuestos
1. Disese un circuito secuencial sncrono tipo Moore que proporcione a su salida un nivel alto cada vez que en su lnea de entrada se presente la secuencia 010. 2. Disese un circuito detector de paridad para caracteres binarios de 4 bits, que se reciben en serie por una lnea X0. La salida Z0 debe ponerse a 1 si en el momento de llegar el cuarto bit el nmero de 1's es par y permanecer en 0 en caso contrario. Despus del cuarto bit el sistema debe volver al estado inicial, quedando preparado para recibir el siguiente carcter. 3. Castillo encantado. Un ejemplo curioso (ASHBY, 1956 y reproducido en Fundamentos de los Ordenadores - G. Fernndez y F. Senz) es el del castillo encantado: El problema se expone en una carta dirigida a un amigo: Querido amigo: Al poco tiempo de comprar esta vieja mansin tuve la desagradable sorpresa de comprobar que est hechizada con dos sonidos de ultratumba que la hacen prcticamente inhabitable: un canto picaresco y una risa sardnica. Sin embargo, an conservo cierta esperanza, pues la experiencia me ha demostrado que su comportamiento obedece a ciertas leyes, oscuras pero infalibles, y que puede modificarse tocando el rgano y quemando incienso. En cada minuto, cada sonido est presente o ausente. Lo que cada uno de ellos har en el minuto siguiente depende de lo que pasa en el minuto actual, de la siguiente manera: El canto conservar el mismo estado (presente o ausente) salvo si durante el minuto actual no se oye la risa y toco el rgano, en cuyo caso el canto toma el estado opuesto. En cuanto a la risa, si no quemo incienso, se oir o no segn que el canto est presente o ausente (de modo que la risa imita al canto con un minuto de retardo). Ahora bien, si quemo incienso la risa har justamente lo contrario de lo que haca el canto. En el momento en que te escribo estoy oyendo a la vez la risa y el canto. Te quedara muy agradecido si me dices qu manipulaciones de rgano e incienso debo seguir para restablecer definitivamente la calma. A partir de este enunciado, obtngase el grafo del autmata de Moore correspondiente.

M. Mazo, S. E. Palazuelos, L. M. Bergasa

-49-

Sistemas Secuenciales Sncronos