Apuntes automatas

49
Universidad de Alcalá ANÁLISIS Y SÍNTESIS DE SISTEMAS SECUENCIALES M. Mazo, S. E. Palazuelos, L. M. Bergasa Mayo de 2003

description

automatas de moore y de mealy

Transcript of Apuntes automatas

Page 1: Apuntes automatas

Universidad de Alcalá

ANÁLISIS Y SÍNTESIS DE SISTEMASSECUENCIALES

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

Mayo de 2003

Page 2: Apuntes automatas

Índice

Aspectos generales sobre circuitos secuenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Estructura general y funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Tipos de circuitos secuenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Aspectos básicos sobre circuitos secuenciales síncronos . . . . . . . . . . . . . . . . . . . . . . 7

Definición y funcionamiento básico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Nomenclatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Tipos de circuitos secuenciales síncronos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Representación de los autómatas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Autómata de Mealy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Autómata de Moore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Análisis de circuitos secuenciales síncronos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Síntesis de circuitos secuenciales síncronos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Obtención del grafo (diagrama de estados) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Obtención de la tabla de estados inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Minimización de la tabla de estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Asignación de estados y obtención de la tabla de transición resultante . . . . 28

Obtención de las ecuaciones de salida del sistema . . . . . . . . . . . . . . . . . . . . . 31

Obtención de las tablas de excitación y ecuaciones de entrada de cada flip-flopdel circuito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Implementación del circuito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Inclusión del control de las entradas asíncronas de los biestables . . . . . . . . 34

Page 3: Apuntes automatas

Ejercicios resueltos sobre síntesis de circuitos secuenciales síncronos . . . . . . . . . 36

Ejemplo 6. Circuito sumador serie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Ejemplo 7. Detector de secuencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Ejemplo 8. Contador BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

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

Page 4: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -4- Sistemas Secuenciales Síncronos

Espera selecciónde producto

Espera moneda Informa precio

Espera

Entregaproducto

Selección producto

Introducción de monedaNo hay

monedaNo hay

selección

Selección de producto

Introducción de moneda

Espera selecciónde producto

Espera moneda Informa precio

Espera

Entregaproducto

Selección producto

Introducción de monedaNo hay

monedaNo hay

selección

Selección de producto

Introducción de monedaFigura 1. Representación de una máquina expendedora.

1. Aspectos generales sobre circuitos secuencialesEn los circuitos combinacionales la salida en un determinado momento depende únicamentede los valores de las señales de entrada en el mismo instante. Sin embargo, en el mundo realla mayor parte de los sistemas con los que nos enfrentamos tienen una dimensión adicional:el funcionamiento de los mismos depende no únicamente de sus entradas actuales, sinotambién de la historia por la que han pasado. Así, los circuitos secuenciales surgen parasolucionar las limitaciones intrínsecas de los combinacionales.

Los circuitos secuenciales son sistemas que, además de entradas y salidas, también tienenestados que recuerdan la historia pasada por el circuito. Utilizan la información del estadoconjuntamente con una combinación lógica de sus entradas de datos para determinar el futuroestado del sistema y sus salidas. Por tanto, una de sus características es que las mismasentradas en estados diferentes dan lugar a salidas distintas, ya que estas dependen tambiéndel estado .

Muchos de los sistemas digitales prácticos se realizan siguiendo la filosofía de los circuitossecuenciales (circuitos de control, sistemas de alarma y seguridad, relojes, etc.). Podemosconsiderar como ejemplo una máquina expendedora (simplificada), que representaríamos comose muestra en la figura 1.

En la figura 1 pueden verse varios estados, en los que el sistema espera monedas o laselección de productos, o entrega el producto. Estos estados memorizan la última acción delusuario, de forma que el sistema puede responder a las nuevas acciones de forma diferentedependiendo de la historia pasada: si seleccionamos producto, la salida no será la misma siya le hemos entregado el dinero o todavía no.

Este puede ser un ejemplo sencillo de máquina secuencial, y a partir de ahora formalizaremosel concepto y estudiaremos la forma de analizar y diseñar este tipo de circuitos.

1.1. Estructura general y funcionamiento

La estructura general de un circuito secuencial responde al diagrama de bloques de la figura2 (modelo de Huffman). Como se puede observar, incluye un circuito combinacional y un bloquede memoria (formado por flip-flops, por ejemplo). Existen “u” entradas físicas cada una de lascuales la identificaremos por la letra “X” (X0, X1,... Xu-1), “v” líneas de salida, que identificaremospor la letra “Z” (Z0, Z1,... Zv-1), y “p” elementos de memoria que identificaremos por la letra M (M0,

Page 5: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -5- Sistemas Secuenciales Síncronos

Figura 2. Estructura general de un circuito secuencial.

M1,... Mp-1). Cada elemento de memoria tiene unas entradas que vamos a denominar Ei y unasalida que llamaremos Qi que almacenará el estado actual del circuito. Además existe unaseñal auxiliar, la señal de reloj (CLK), que juega un papel fundamental en los sistemassecuenciales síncronos. Esta última señal no existe en los sistemas secuenciales asíncronos.

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 salidasde 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 enciertos casos algunas de estas variables pueden ser comunes). El hecho de que parte de lainformación de salida del circuito combinacional se introduzca de nuevo a su entrada, previopaso por la memoria, se conoce como realimentación.

1.2. Tipos de circuitos secuenciales

Los sistemas secuenciales se pueden clasificar en dos grandes bloques: síncronos yasíncronos. Esta clasificación se hace atendiendo a los tipos de elementos de memoria (Mi)utilizados. La diferencia entre los sistemas secuenciales síncronos y asíncronos está en queen los primeros los cambios de estado son controlados por una señal de referencia común(señal de reloj) y en los segundos no.

Las salidas de un circuito secuencial asíncrono, ante un cambio en las señales de entrada dedatos, alcanzan sus niveles definitivos transcurrido un tiempo que será función de los tiemposde propagación del circuito combinacional y de los elementos de memoria (las salidas de datos-Zi- se estabilizarán cuando se estabilicen las salidas de los elementos de memoria, Qi(t)). Estostiempos pueden variar entre un valor mínimo y un máximo, y, por tanto, introducen un ciertogrado de incertidumbre en los tiempos que tardan en propagarse los cambios de las variables

Page 6: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -6- Sistemas Secuenciales Síncronos

de entrada a las salidas, y unas salidas pueden cambiar antes que otras. Hay que advertir quepueden existir situaciones en las que no se alcance la estabilidad (estados metaestables). Enel diseño de circuitos se trata siempre de evitar la existencia de este tipo de estados. Dostécnicas usuales para ello son, una impidiendo excitaciones marginales y otra evitando, o almenos reduciendo, la propagación de señales metaestables).

Según esto, en los circuitos secuenciales asíncronos después de producirse un cambio en lasentradas hay que esperar un tiempo hasta que se estabilicen los valores de las salidas y sólodespués de que se alcance esta estabilización se podrá realizar otro cambio en sus entradas,ya que en caso contrario no se verán reflejados estos cambios en las salidas. Evidentemente,el tiempo mínimo entre dos cambios consecutivos en las entradas de datos es función de lostiempos de propagación del circuito combinacional y de los elementos de memoria.

Los circuitos síncronos eliminan la incertidumbre producida por los tiempos de propagaciónutilizando una señal de sincronismo o señal de reloj. Los cambios en las entradas y en losestados internos sólo tienen efecto sobre el resto del sistema en instantes discretos de tiempoa los que denominaremos t, t+1, t+2,.... Estos instantes suelen coincidir con los flancos desubida o bajada de la señal de reloj. Así, si nos fijamos en el circuito de la figura 2, las salidasque adopten los elementos “Mi” de memoria después de un flanco de reloj (CLK), serán funciónúnicamente de los valores que tenían 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 síncronos presentan ventajasfrente a los asíncronos, no siempre es así. De hecho, al realizar el diseño de un circuito VLSI(Very Large Scale Integration), es necesario establecer una comparación rigurosa entre lasalternativas síncrona y asíncrona, a fin de valorar las limitaciones y restricciones de ambosmodos de operación. Actualmente existe un auge e interés por el diseño de circuitos VLSIasíncronos o autotemporizados, ya que el aumento de la velocidad de operación y lacomplejidad de los circuitos digitales conllevan grandes problemas para conseguir que lasseñales de reloj que se propagan por caminos diferentes tengan idénticos tiempos depropagación. Esto hace que la distribución de la señal de reloj dentro de los circuitos digitalessea una tarea compleja, siendo una de las razones de esta complejidad los retrasos en dichaseñal (lo que se conoce como clock skew), además de los problemas de interferencias quepuede sufrir (cross-talk). No es, sin embargo, objeto de este capítulo el estudio de todos estosdetalles.

Page 7: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -7- Sistemas Secuenciales Síncronos

2. Aspectos básicos sobre circuitos secuenciales síncronosEn este capítulo se presentan los aspectos más importantes de los sistemas secuencialessíncronos. Como ya se ha comentado, muchos de los sistemas digitales prácticos respondena la filosofía de funcionamiento de los sistemas síncronos, por lo tanto la evolución de lasdiferentes variables, que responden a un determinado diagrama de flujo, está sincronizada conuna señal de reloj.

Posteriormente se tratarán los aspectos relacionados con el diseño, centrándonos en dosconfiguraciones básicas: Autómatas deterministas de Mealy y de Moore (tambiéndenominados máquinas de Mealy y de Moore).

Si bien la palabra autómata puede tener diferentes significados (es frecuente relacionar estetérmino con las máquinas capaces de imitar los movimientos de los seres vivos, equiposelectrónicos de control industrial, etc.), en nuestro caso se utiliza para definir sistemaselectrónicos capaces de tratar información. Así, un autómata puede ser un dispositivo con unosterminales de entrada y salida de datos (ver figura 1) y una señal de reloj (CLK), que transformalos datos de entrada en otros datos de salida, en función de la historia pasada por él, de formasincronizada con la señal CLK. En este contexto, ejemplos de autómatas sencillos son:contadores digitales, sumadores, registros, unidades de control, etc. Un ejemplo de autómatamás complejo sería un ordenador.

Finalmente queremos indicar que la realización física de los sistemas secuenciales síncronos(autómatas) puede llevarse a cabo utilizando diferentes alternativas tecnológicas, si bienactualmente lo más frecuente es utilizar Dispositivos Lógicos Programables (PLDs).

2.1. Definición y funcionamiento básico

Como hemos visto, un circuito secuencial síncrono es un circuito secuencial (es decir, unsistema 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 lastransiciones 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 unaseñal de reloj.

El modelo matemático que describe un sistema secuencial síncrono es la máquina de estadosfinitos o autómata de estados finitos. El calificativo de “estados finitos” se debe a que lamemoria de que dispone el sistema secuencial para recordar en qué estado está es finita y, portanto, solamente podrá almacenar un número finito de estados diferentes.

Con todo esto, si a una máquina 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áfunción de la entrada en ese instante, x(t) y de los estados internos q(t). Si la memoria tiene pelementos (FF0.... FF P-1), siendo p un número finito, el número máximo de estados que sepueden almacenar será 2p.

Observando la figura 2, se puede ver que las entradas de datos x(t), junto con las variables deestado q(t), constituyen las entradas del circuito combinacional. La salida del circuitocombinacional está formada por las salidas de datos z(t) y por las excitaciones de los biestablese(t), para que se produzca la transición al siguiente estado q(t+1) con el siguiente flanco dereloj.

Page 8: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -8- Sistemas Secuenciales Síncronos

El funcionamiento del autómata es tal que si recibe una nueva entrada en t, x(t) , {X}, (ésta sehace efectiva mediante la señal de reloj en el instante t) y se encuentra en el estado q(t),{Q}(salidas de los FF), entonces la salida del autómata en el instante t será función de x(t) y q(t),esto es, z(t) = g[x(t),q(t)] y pasará a un nuevo estado que será función de x(t) y q(t) en elinstante t+1, esto es, denominando al nuevo estado q(t+1) = h[f(x(t),q(t))]. A g se le denominafunción de salida, a f función de excitación y h es la función de los biestables, es decir, latransición que producirá el biestable con la excitación aplicada. En resumen:

q(t+1)=h[f(x(t),q(t))]

z(t)=g[x(t),q(t)]

Además, también es necesario proporcionar el estado inicial a partir del cual empezará aevolucionar el autómata. Si no se indica lo contrario, a partir de ahora consideraremos q0 comoestado inicial. En resumen una máquina de estados finitos se puede definir matemáticamentecomo 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: Función de excitación de los biestables• h: Función de los biestables• g: Función 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 secuencialsíncrono.

Nombre de lavariable

Símbologeneral

Nombre de laslíneas físicasen el circuito

Nº delíneasfísicas

Combinacionesde la variable

Nº decombinacs.

Entradas x(t) X0, X1, ..., Xu-1 u X={x0, x1, ..., xn-1} n#2u

Salidas z(t) Z0, Z1, ..., Zv-1 v Z={z0, z1, ..., zr-1} r#2v

Estados q(t) Q0, Q1, ..., Qp-1 p Q={q0, q1, ..., qm-1} m#2p

Excitación delos biestables e(t) E0, E1, ..., Es-1 s E={e0, e1, ..., el-1} l=2s

Por ejemplo, para implementar un autómata con 3 estados (m=3) se necesitan al menos 2

Page 9: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -9- Sistemas Secuenciales Síncronos

biestables (p=2), para que se cumpla la desigualdad m#2p. Q0 y Q1 son las dos salidas de losbiestables, en las que está el estado actual codificado en binario, de forma que cada estado qise corresponde con una combinación de los valores de las salidas de los biestables: siasignamos a q1 el código 01 (q1=01), el circuito estará en el estado q1 cuando Q1=0 y Q0=1.

Cuando la información temporal sea necesaria, el instante de tiempo (t, t+1...) se indicaráindistintamente en forma de función, como en x(t), o de superíndice Q0

t.

2.3. Tipos de circuitos secuenciales síncronos

Las dos realizaciones básicas de los autómatas finitos son las máquinas de Mealy y de Moore.En las figuras 3 y 4 se muestran los diagramas de bloques de estas dos realizaciones básicas,donde se han reflejado las funciones de excitación f y de salida g. Obsérvese que en amboscasos existe un bloque de memoria (realizado, por ejemplo, por flip-flops -FFi-) que memorizael estado actual (q) del autómata, y una realimentación de esos estados hacia el bloquecombinacional que implementa la función de salida g. La diferencia entre ambasrealizaciones reside en que en el autómata de Moore la salida z(t) es función únicamentedel estado actual, q(t), mientras que en un autómata de Mealy la salida actual dependetanto del estado actual como de las entradas actuales x(t).

Todos los circuitos secuenciales síncronos pueden implementarse tanto comoautómatas de Moore como de Mealy, por lo cual, en cada caso concreto debemos decidir cualserá la implementación óptima considerando que:

• En general, un circuito implementado como autómata de Moore necesita másestados que su equivalente como autómata de Mealy, por lo que el circuitoresultante será de mayor complejidad cuando se diseñe como autómata de Moore.

• En los autómatas de Mealy las modificaciones en las entradas provocan cambiosen la salida en el momento en el que se producen (más el tiempo de retardo propiode cualquier circuito combinacional), independientemente de la señal de reloj,mientras que en los autómatas de Moore las salidas solamente cambian cuando seproduce un flanco de reloj y cambia el estado.

• Solamente utilizaremos autómatas de Mealy cuando:S los cambios en las entradas del circuito estén sincronizados con la señal

de reloj, o

S los cambios en otros momentos no afecten negativamente alfuncionamiento del sistema global.

Page 10: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -10- Sistemas Secuenciales Síncronos

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

Figura 4. Autómata de Moore: z(t)=g[q(t)].

Page 11: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -11- Sistemas Secuenciales Síncronos

3. Representación de los autómatasPara representar el comportamiento de los circuitos secuenciales se utilizan tablas de estadoso tablas de transiciones (en un formato similar a las tablas de verdad) y grafos (tambiénconocidos como diagramas de estados), donde aparecen los diferentes estados (nº finito) y lassalidas y estados siguientes para cada estado y combinación de las entradas (que también sonun nº finito). Estas tablas y grafos son distintos para los autómatas de Mealy y de Moore.

3.1. Autómata de Mealy

En las tablas de estados o de transiciones se muestran:

• el estado siguiente, q(t+1), representado en el circuito por las salidas de losbiestables en t+1, y

• las salidas del circuito, z(t),en función de:

• el estado actual, q(t), representado por las salidas de los biestables en elmomento actual, y

• las entradas del circuito, x(t).Para el caso de los autómatas o máquinas 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 estadoqk y la columna m corresponde a la entrada xm, en la intersección de ambas se escribirán losvalores 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).Enla tabla 2 se muestra un ejemplo genérico de este tipo de tabla. Observése que la salida actualdepende tanto del estado actual como de la entrada.

Tabla 2. Ejemplo genérico de tabla de estados de un autómata de Mealy.

Estado actualq(t)

Entrada actualx0 x1 ...... xn-1

q0

q1

q2

.qp-1

h[f(q0, x0)]/g(q0, x0) h[f(q0, x1)]/g(q0, x1) ...... h[f(q0, xn-1)]/g(q0, xn-1)h[f(q1, x0)]/g(q0, x0) h[f(q1, x1)]/g(q1, x1) ...... h[f(q1, xn-1)]/g(q1, xn-1)h[f(q2, x0)]/g(q2, x0) h[f(q2, x1)]/g(q2, x1) ...... h[f(q2, xn-1)]/g(q2, xn-1) ...... ...... ..... ......h[f(qp-1, x0)]/g(qp-1, x0) h[f(qp-1, x1)]/g(qp-1, x1) .... 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 más que una versión de tablade verdad de las funciones “estado siguiente” y “salida actual” en función de las variables“estado actual” y “entrada del sistema”. También es posible separar la información del estadosiguiente y la salida, presentándolas en columnas diferentes, obteniendo de este modo una“versión extendida” de la tabla de estados, como se puede observar en la tabla 3.

Page 12: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -12- Sistemas Secuenciales Síncronos

Tabla 3. Ejemplo genérico de tabla de estados extendida de un autómata de Mealy.

Estado actualq(t)

Entrada actualx0 x1 ...... xn-1

Entrada actualx0 x1 ...... xn-1

q0

q1

q2

.qp-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)]

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

q(t+1)Estado siguiente

z(t)Salida actual

Ejemplo 1: Supongamos un circuito secuencial con dos entradas físicas X0, X1, lo que supone que puedetener 4 posibles entradas x = {x0=00, x1 =01, x2 =10, x3 =11}, 2 estados internos q ={q0, q1} (que se puedenrepresentar con una variable Q0, Q0=0=>q0, y Q0=1=>q1) y una salida física, Z0, por tanto z puede adoptar2 posibles valores: z={z0=0, z1=1}. De la definición 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 alestado 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 actualq(t)

Entrada actual x(t)

x0

0 0x1

0 1x2

1 0x3

1 1

q0

q1

q0/0q0/1

q0/1q1/0

q0/1q1/0

q1/0q1/1

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

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

Page 13: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -13- Sistemas Secuenciales Síncronos

Figura 5. Ejemplo que refleja la forma general de representar los diagramas de estados ografos de los autómatas de Mealy.

Tabla E1.2. Alternativa de representación de la tabla E1.1

Estado actual Entrada X0(t)X1(t) Entrada X0(t)X1(t)

q(t) Q0(t) 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1

q0

q1

0 1

0 0

0 1

0 1

1 1

0 1

1 0

1 0

0 1

Próximo estado Q0(t+1) Salida actual Z0(t)

Un grafo es una representación gráfica de un autómata en la que

S Los estados se muestran dentro de círculos.

S Cada transición entre estados se representa con un arco que empieza en suestado inicial y acaban en su estado final. De cada estado deben salir tantasflechas como posibles combinaciones tengan las entradas, ya que deben estarcontempladas las transiciones para todas ellas.

S Sobre cada arco se indica la entrada que condiciona dicha transición y la salidapara 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 deun autómata de Mealy. En él se ha representado con una línea más gruesa el círculocorrespondiente al estado inicial. Considérese la figura como una parte de un grafo mayor, deforma que las transiciones que aparentemente llegan o van a “ningún” estado, realmente sontransiciones al resto del grafo.

La interpretación que se debe hacer de un grafo es la siguiente: en cada momento estamos enun estado determinado (uno de los círculos), y las entradas tienen un valor (entrada actual).Miraremos cual es la flecha que sale de ese estado condicionada por la entrada actual, y nosdará la salida que tiene el sistema en ese momento. Cuando llegue un flanco de reloj, latransición se hará efectiva, y pasaremos al estado siguiente, volviendo a empezar el proceso.

Page 14: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -14- Sistemas Secuenciales Síncronos

Figura E1.1. Grafo del ejemplo 1.

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

3.2. Autómata de Moore

En el caso de las máquinas de Moore, las tablas de estados son como la mostrada en la tabla4. Se puede observar que la diferencia fundamental con las tablas de estados de los autómatasde Mealy es que la salida actual no está condicionada por la entrada, por lo que se representaen una columna diferente, que solamente depende el estado actual. De nuevo se muestra unejemplo genérico, para el caso de p estados (q0..... qP-1) y n posibles entradas (x0,...... xn-1).

Tabla 4. Ejemplo genérico de tabla de estados de un autómata de Moore.

Estado actualq(t)

Entrada actual x(t)x0 x1 ...... xn-1

Salida actualz(t)

q0

q1

q2

.qp-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)]

g(q0)g(q0)g(q2).....

g(qp-1)

q(t+1)Estado siguiente

Ejemplo 2: Supongamos un circuito secuencial con dos entradas físicas X0, X1, lo que supone un totalde 4 posibles entradas {00, 01, 10, 11}, 4 estados internos Q ={q0, q1, q2, q3} que se codifican con 2 líneasde estado (Q0 y Q1) y una salida física, Z0, por lo que z puede adoptar 2 posibles valores, 0 y 1. Si de ladefinición 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.

Page 15: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -15- Sistemas Secuenciales Síncronos

Figura 6. Forma general de representar los grafos en losautómatas de Moore.

• 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 actualq(t)

Entrada x(t) Salidaactual

z(t)0 0 0 1 1 1 1 0

q0q1q2q3

q0q2q0q2

q2q1q2q1

q1q3q1q3

q2q1q2q1

0 0 1 1

Próximo estado q(t+1)

En los grafos de los autómatas de Moore, los estados y las salidas que les corresponden semuestran dentro de círculos. Las transiciones entre estados se indican con arcos que conectandos estados y sobre estos arcos se indican las entradas que condicionan las transiciones. Enla figura 6 se muestra la forma general de un diagrama de estados o grafo para el caso de unautómata de Moore. Considérese la figura como una parte de un grafo mayor, de forma que lastransiciones que aparentemente llegan o van a “ningún” estado, realmente son transiciones alresto del grafo.

Page 16: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -16- Sistemas Secuenciales Síncronos

Figura E2.1. Grafo del ejemplo 2.

La interpretación que se debe hacer de un grafo es la siguiente: en cada momento estamos enun estado determinado (uno de los círculos), y las entradas tienen un valor (entrada actual). Lasalida que acompaña al estado actual dentro del círculo será la salida que tenga el sistema eneste momento. Cuando llegue un flanco de reloj, se hará efectiva la transición condicionada porla entrada actual al sistema, y pasaremos al estado siguiente correspondiente con sus valoresde salida asociados, volviendo a empezar el proceso.

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

Page 17: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -17- Sistemas Secuenciales Síncronos

Figura E3.1. Autómata de Mealy correspondiente al ejemplo 3.

4. Análisis de circuitos secuenciales síncronosEl análisis tiene por objetivo, dado un circuito secuencial, obtener unas tablas en las que semuestren, para cada combinación digital de sus entradas y cada posible estado, el estadosiguiente al que pasa y el valor de las salidas, esto es, la tabla de estados o grafo que defineuna máquina de Mealy o Moore. El proceso de análisis se puede sistematizar en una serie depasos, que se ilustran a continuación con un ejemplo de autómata de Mealy. Posteriormentese analizará un circuito que responde a un autómata de Moore.

Conocer el proceso de análisis facilita el aprendizaje de la síntesis de circuitos secuencialessíncronos, ya que el diseño consiste, a grandes rasgos, en aplicar los mismos pasos en ordeninverso.

Ejemplo 3. Análisis de un autómata de Mealy. Supóngase el circuito mostrado en la figura E3.1. Comose puede observar, es un sistema con una sola entrada (X0) y salida (Z0), y dos flip-flops de tipo JK activosen el flanco de subida. Además, se puede ver que la salida es función de la entrada (X0) y de las salidasde los flip-flops (estado), por lo tanto, la realización de este circuito responde a una máquina de Mealy.

Los pasos a seguir son:

4.1. Obtener las ecuaciones lógicas de las señales que se están aplicando a las entradas delos flip-flops (excitaciones de los biestables). Estas ecuaciones son las funciones lógicas de lasentradas de los flip-flops (RS -caso de flip-flops RS- JK -caso de flip-flops JK- D -caso de flip-flops D- o T -caso de flip-flops T-) en función de las salidas de los propios flip-flops (estadoactual), y las entradas del sistema.

Page 18: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -18- Sistemas Secuenciales Síncronos

J 1

K Q X

J Q X Q

K Q X

1t

1t

1t

0t

2t

1t

0t

2t

2t

1t

0t

=

= ⋅

= ⋅ ⋅

= ⋅

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)

+ = ++ = ⊕+ =

Q (t 1) J (t)Q (t) K (t)Q (t) 1 Q (t) Q (t) X (t) Q (t)

Q (t 1) J (t)Q (t) K (t)Q (t) Q (t) X (t) Q (t) Q (t) Q (t) X (t) Q (t)1 1 1 1 1 1 1 0 1

2 2 2 2 2 1 0 2 2 1 0 2

+ = + = ⋅ + ⋅ ⋅

+ = + = ⋅ ⋅ ⋅ + ⋅ ⋅

Q (t 1) Q (t)

Q (t 1) Q (t) Q (t) X (t) Q (t)1 1

2 2 1 0 2

+ =

+ = + ⋅ ⋅

En nuestro ejemplo, las ecuaciones lógicas de las entradas de los flip-flops son:

4.2. Obtener las ecuaciones lógicas del próximo estado: las próximas salidas de los flip-flops[Q(t+1) ó /Q(t+1)]. Para ello se sustituirán las expresiones lógicas de las entradas (obtenidasen el punto anterior) en las ecuaciones de la salida del tipo de biestable que se esté utilizando.Recuérdese que las ecuaciones de los flip-flops son:

En este el ejemplo, al tratarse de flip-flops JK, las ecuaciones lógicas de los próximos estadosson

Simplificando estas expresiones se obtiene:

4.3. El tercer paso consiste en obtener las funciones lógicas que relacionan las variables desalida 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 autómata de Mealy, en la tabla E3.2.

Page 19: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -19- Sistemas Secuenciales Síncronos

Tabla E3.1. Tabla de transiciones codificada correspondiente al ejemplo 3.

Estado actualQ2(t) Q1(t)

Entrada actual X0(t)0 1

Entrada actual X0(t)0 1

0 00 11 01 1

1 11 00 10 0

1 11 00 11 0

1 1 1 1

1 0 1 0

Q2(t+1) Q1(t+1)Próximos estados

Z0(t)Salida actual

Tabla E3.2. Tabla de estados codificada resumida del ejemplo 3.

Estado actualQ2(t) Q1(t)

Entrada actual X0(t)0 1

0 00 11 01 1

11/110/101/100/1

11/110/001/110/0

Q2(t+1)Q1(t+1)/Z0(t)Próximo estado/ Salida actual

4.5. Asignar un nombre (q0, q1, q2, etc.) a cada combinación binaria de las salidas de los flip-flops 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 combinación 00,el circuito estará en el estado q0 cuando la salida de los dos biestables sea 0, y si llamamos q1a la combinación 01, el circuito estará en el estado q1 cuando Q1=1 y Q0=0.

Para el ejemplo 3, haciendo la siguiente asignación de estados: q0 = 00, q1 = 01, q2=10, q3= 11, la tablade estados será (tabla E3.3):

Tabla E3.3. Tabla de estados del ejemplo 3.

Estado actualq(t)

Entrada actual x(t)0 1

q0

q1

q2

q3

q3/1q2/1q1/1q0/1

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

q(t+1)/z(t)Próximo estado/Salida actual

4.6. Representar el diagrama de estados o grafo de comportamiento del sistema a partir de latabla de estados.

Page 20: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -20- Sistemas Secuenciales Síncronos

Figura E3.2. Grafo correspondiente al ejemplo 3.

Figura E4.1. Autómata correspondiente al ejemplo 4.

D Q X Q X (Q Q ) X0t

0t

0t

1t

0t

0t

1t

0t= ⋅ + ⋅ = + ⋅

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

El estado inicial es q0 porque los componentes conectados a las entradas asíncronas de los biestableshacen que al conectar la alimentación se realice un reset, y ambos flip-flops comiencen con salida 0.

Ejemplo 4. Análisis de un autómata de Moore. Para este ejemplo vamos a utilizar el circuito de la figuraE4.1. Como se puede observar, es un circuito de una sola entrada, dos flip-flops de tipo D y una salidaque depende únicamente de las salidas de los biestables, por tanto, se trata de un autómata de Moore.

Siguiendo los pasos anteriores se obtiene:

1) Excitación de los biestables:

Page 21: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -21- Sistemas Secuenciales Síncronos

D Q X Q X (Q Q ) X1t

1t

0t

0t

0t

1t

0t

0t= ⋅ + ⋅ = + ⋅

Q (t 1) X (t) [Q (t) Q (t)]Q (t 1) X (t) [Q (t) Q (t)])

0 0 1 0

1 0 1 0

+ = ⋅ ++ = ⋅ +

2) Función lógica del estado siguiente:

3) La función lógica 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 latabla E4.1:

Tabla E4.1. Tabla de transiciones codificada del ejemplo 4.

Estadoactual Entrada X0(t) Salida

actualZ0(t)Q1(t)Q0(t) 0 1

0 00 11 01 1

0 00 00 00 0

0 11 01 11 1

0 0 0 1

Q1(t+1) Q0(t+1)Próximos estados

5) Haciendo la siguiente asignación 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 actualq(t)

Entrada x(t) Salidaactual

z(t)0 1

q0

q1

q2

q3

q0

q0

q0

q0

q1

q2

q3

q3

0 0 0 1

Próximoestado q(t+1)

El estado inicial es q0 porque el circuito conectado a las entradas asíncronas de los biestables, que hacenque al conectar la alimentación ambos biestables comiencen con salida 0.

Page 22: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -22- Sistemas Secuenciales Síncronos

Figura E4.2. Grafo correspondiente al autómata deMoore del ejemplo 4.

Page 23: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -23- Sistemas Secuenciales Síncronos

5. Síntesis de circuitos secuenciales síncronosLa síntesis de circuitos secuenciales síncronos tiene por objetivo obtener el esquema físico delcircuito (formado por puertas lógicas y flip-flops) a partir de la descripción de la función que sequiere realizar. Los pasos a seguir son prácticamente los mismos que los del proceso deanálisis, pero en sentido inverso. De forma resumida estos pasos son:

5.1. Planteamiento del problema.

5.2. Obtención del grafo (diagrama de estados).

5.3. Obtención de la tabla de estados o transiciones inicial.

5.4. Minimización de la tabla de estados.

5.5. Asignación de estados y obtención de la tabla de estados o transicionescodificada.

5.6. Obtención de las ecuaciones de salida del sistema.

5.7. Obtención de las tablas de excitación y ecuaciones de entrada de cada flip-flop del circuito.

5.8. Implementación del circuito.

5.9. Inclusión de los circuitos de control de las entradas asíncronas paraasegurar que, al alimentar el circuito, éste se sitúa en el estado inicial del grafo.

En lo que sigue se describe, de forma general, cada uno de estos pasos, reforzando lasexplicaciones con un ejemplo. Con el objetivo de conseguir mayor claridad en los puntos 4 y5 (minimización y asignación de estados) se incluirán además otros ejemplos con tablas deestados iniciales genéricas.

5.1. Planteamiento del problema

Se trata de una descripción funcional del circuito a diseñar o, lo que es lo mismo, del problemaa resolver. Esta descripción, generalmente, se realiza en lenguaje natural ayudado en algunoscasos con un dibujo ilustrativo.

Ejemplo 5. Diseño de un autómata de Mealy: “Se quiere diseñar un circuito secuencial síncrono queproporcione a su salida un nivel alto cada vez que en su línea de entrada se presente la secuencia 101".

5.2. Obtención del grafo (diagrama de estados)

Partiendo del planteamiento del problema hay que obtener el grafo. Para ello hay que empezarpor identificar el número de estados, salidas y entradas al sistema; a continuación establecerlas transiciones entre estados en función de las entradas y el estado, indicando los valores delas salidas del sistema en función del estado y las entradas.

Page 24: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -24- Sistemas Secuenciales Síncronos

Esta es la parte más complicada del proceso de síntesis ya que es la más intuitiva y menossistemática.

Hemos de indicar que un mismo enunciado puede dar lugar a distintos grafos iniciales, todosellos válidos, pero que pueden ser muy diferentes y, por tanto, con mayor o menor complejidadde implementación. Sin duda, el mejor grafo será aquel que tenga un menor número deestados. De la habilidad, ingenio y experiencia del diseñador depende la calidad del grafo, sinembargo, 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 podrían resumirse en:

1. Elegir una realización de máquina de Mealy o de Moore (en nuestro caso, en elenunciado se ha indicado que la máquina es de Mealy).

2. Identificar y asignar nombre a:

1) los estados, por ejemplo, q0, q1, q2.....,

2) las entradas, p. ej., x0, x1,..., y

3) las salidas, p. ej., z0, z1,....

3. Seleccionar un estado inicial, llamémosle q0, (este estado inicial, en muchos casos,lo sugiere el propio enunciado). Partiendo de este estado inicial, y para cada una delas 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 máquina de Mealy: sobre cada flecha que une dos estados indicarla combinación de entrada que origina dicha transición entre estados y la salidaactual.

5. Si se trata de una máquina de Moore: indicar sobre cada flecha que une dos estadosla combinación de entrada (entrada actual) que origina dicha transición entreestados. Las salidas correspondientes a cada estado se indican junto a él, dentro delcírculo.

6. El proceso indicado en 4) (caso de máquina de Mealy) o 5) (caso de máquina deMoore) se repite para todos los estados.

Ejemplo 5: En este caso, el circuito dispone de una sola entrada, que llamaremos X0, y una salida, quellamaremos 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 debepermanecer 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 pasaral estado q2 (indicativo de que se ha recibido un la secuencia 10), si se recibe un 1 se debeinterpretar este como el primero de la posible secuencia, por tanto, hay que permanecer en

Page 25: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -25- Sistemas Secuenciales Síncronos

Figura E5.1. Grafo correspondiente al ejemplo 5.

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 secuenciase rompe, y hay que retornar al estado inicial q0 (es como si no se hubiera recibido ningún1); 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 deberetornar 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 comoel primero de una nueva secuencia.

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

5.3. Obtención de la tabla de estados inicial

Partiendo del grafo se obtiene la tabla de estados, siguiendo el proceso inverso al visto en elapartado de análisis.

Ejemplo 5: Para este ejemplo, la tabla de estados es la indicada a continuación (tabla E5.1)

Tabla E5.1. Tabla de estados del ejemplo 5.

Estado actualq(t)

Entrada actual x(t) 0 1

q0q1q2q3

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

q(t+1)/z(t)Próximo estado/salida

5.4. Minimización 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 quela realización práctica se pueda hacer con el mínimo coste (menor número de flip-flops), sedebe minimizar. Una vez obtenida la tabla mínima, el número de flip-flops que se necesitan paraimplementar el circuito viene dado por la relación:

Page 26: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -26- Sistemas Secuenciales Síncronos

2Número de biestables $Número de estados

El método que se va utilizar para obtener la tabla mínima es el de Huffman (otro método es eldenominado de tablas de implicación).

Para minimizar la tabla de estados se averiguará qué estados son equivalentes y se eliminarántodos menos uno de ellos. Dos estados qi y qj se dice que son equivalentes (qi / qj) si y sólosi para cada combinación de entradas posibles se cumple:

1) las señales de salida correspondiente son las mismas, y 2) los estados siguientes correspondientes a cada combinación de la entrada son

equivalentes.Con el fin de ilustrar este proceso de minimización vamos a utilizar una tabla de estadossuficientemente significativa, que nos permita tener una idea clara del proceso a seguir. La tablaque vamos a utilizar es la mostrada a continuación (tabla 5).

Tabla 5. Ejemplo de tabla a minimizar.

Estado actualq(t)

Entrada actual x(t) 0 1

q0 q1

q2

q3

q4

q5

q6

q7

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

q(t+1)/z(t)Próximo estado/salida actual

Los pasos a seguir son:

1. Dividir la tabla de estados en grupos de estados actuales tales que todos los estados decada grupo tengan la misma salida ante la misma entrada (obsérvese que en la formaciónde estos grupos no se tienen en cuenta los próximos estados). Cada grupo de estados sepuede nombrar con una letra o un número.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 punto1 y asignando a cada grupo una letra identificativa, se obtiene la siguiente división de latabla de estados (tabla 6), (en el siguiente punto se explicará cómo se rellena la última líneade la tabla).

2. La última línea la constituyen los grupos a los que pertenecen los próximos estados de cadaestado actual. Así por ejemplo, los estados siguientes del estado q0 son q0 (que pertenece

Page 27: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -27- Sistemas Secuenciales Síncronos

al grupo A) y q1 (que pertenece al grupo A); los estados siguientes del estado q6 son q1 (quepertenece al grupo A) y q4 (que pertenece al grupo C); los estados siguientes del estado q5son q4 (que pertenece al grupo C) y q5 (que pertenece al grupo C),...........

Tabla 6. Tabla con los estados agrupados por su salida.

Salidas 0 0 0 1 1 0

Grupos A B C

Estados actuales queconstituyen el grupo q0 q1 q2 q6 q7 q3 q4 q5

Grupos de lospróximos estados A, A A, C A, B A, C C, C A, A A, A C, C

3. Si en esta última tabla hay algún “grupo” (casillas de la segunda fila) dentro del cual hayalgún “estado actual que forma parte del “grupo” que no tiene los mismos “grupos de lospróximos estados” (casillas de la última fila), esto significa que los “estados actuales” dedicho “grupo” no son equivalentes entre sí. En este caso hay que dividir dicho “grupo” enotros más pequeños que contengan estados actuales con los mismos “grupos de lospróximos estados”.

Siguiendo esta idea, en nuestro ejemplo, el grupo A hay que dividirlo en tres grupos, quellamaremos A, D, E; el grupo C hay que dividirlo en dos grupos, que llamaremos C, F. Unavez realizada esta división, hay que asignar los nuevos “grupos de los próximos estados”,obteniéndose la tabla 7:

Tabla 7. Tabla 6 subdividiendo los estados en grupos con los mismos grupos de próximos estados.

Salidas 0 0 0 1 1 0

Grupos A D E B C F

Estados actuales queconstituyen el grupo q0 q1 q6 q2 q7 q3 q4 q5

Grupos de los próximosestados A,D D,C D,C E,B C,C A,D A,D C,F

4. Este proceso se repite hasta conseguir una tabla en la que los “estados actuales queconstituyen el grupo” de cada “grupo” tengan los mismos “grupos de los próximos 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.

Según esto, la tabla 7 es ya la tabla final, ya que los “estados actuales que constituyen elgrupo” de cada “grupo” tienen los mismos “grupos de los próximos estados”. Por tanto q1y q6 son estados equivalentes y también lo son q3 y q4. Es necesario asignar un nombre alos nuevos estados, que son los grupos definitivos. Así, por ejemplo, se pueden identificarlos estados finales utilizando como subíndice la letra del grupo al que pertenecen. En

Page 28: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -28- Sistemas Secuenciales Síncronos

2N

N!2 !

(2 N)!

m m

m

=

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 mínima equivalente ala misma, que resulta ser la mostrada a continuación (tabla 8):

Tabla 8. Tabla mínima correspondiente a la tabla 5.

Estado actualq(t)

Entrada actual x(t) 0 1

qaqbqcqdqeqf

qa/0 qd/0qc/0 qc/1qa/1 qd/0qd/0 qc/0qe/0 qb/0qc/1 qf/0

q(t+1)/z(t)Próximo estado/salida actual

En el ejemplo 5 se puede ver (tabla E5.1) que los estados q1 y q3 son equivalentes, por ellodenominaremos a los nuevos estados qa =q0, qb =q1= q3, y qc=q2, resultando la siguiente tabla:

Tabla E5.2. Tabla de estados mínima del ejemplo 5.

Estado actualq(t)

Entrada actual x(t) 0 1

qa

qb

qc

qa/0 qb/0qc/0 qb/0qa/0 qb/1

q(t+1)/z(t)Próximo estado/salida actual

5.5. Asignación de estados y obtención de la tabla de transiciónresultante

La asignación de estados consiste en asignar a cada estado de la tabla de estados unacombinación binaria de las salidas de los flip-flops. Por ejemplo, en un sistema con 3biestables, si le asignamos a q0 el código 000, significará que cuando las líneas Q2, Q1 y Q0tengan el valor 0, el circuito estará en el estado q0. Esta asignación no es única y, por tanto, lacomplejidad (número de puertas a utilizar en la realización del circuito) del sistema final tambiénserá diferente dependiendo de la asignación que realicemos. Evidentemente, una forma deencontrar el circuito más reducido sería realizar todas las alternativas y después elegir la mássencilla. Esto, sin embargo, sólo es posible utilizando programas informáticos para un númerode flip-flops reducido. En caso contrario el número de posibles realizaciones es muy grande,lo que conlleva un elevado tiempo de diseño. Téngase presente que si hay N estados senecesitan m flip-flops, tal que 2m$N, y el número de posibles asignaciones viene dado por:

Page 29: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -29- Sistemas Secuenciales Síncronos

Una alternativa práctica es utilizar ciertas reglas, basadas únicamente en los estados actualesq(t) y próximos q(t+1) de la tabla de estados. Estas reglas, sin entrar en su justificación,persiguen minimizar la lógica necesaria en las entradas de los biestables. De forma resumidaestas reglas son:

1. Buscar en la tabla de estados, estados actuales (q(t)) que tengan idénticos próximosestados para las mismas entradas. Esto es, buscar por filas estados actuales quetengan dentro de cada columna (cada columna se corresponde con una entrada) deestados próximos, estados próximos iguales. A los estados actuales que cumplan estacondición les vamos a llamar actuales-uno, y a sus próximos estados, si son distintos,los denominaremos próximos-uno. Para conseguir una realización “buena” del circuito,se deben asignar códigos binarios adyacentes (que sólo se diferencien en un bit) a losestados actuales-uno y también deberán ser adyacentes las asignaciones de lospróximos-uno (si son distintos).

2. Buscar en la tabla de estados, estados actuales (q(t)) que tengan idénticos próximosestados, y en la misma cantidad, pero para entradas diferentes. Esto es, buscarpor filas estados actuales que tengan para diferentes columnas de estados próximos,estados próximos iguales (y en la misma cantidad). A los estados actuales quecumplan esta condición les vamos a llamar actuales-dos, y a sus próximos estados sison distintos los denominaremos próximos-dos. Para conseguir una realización “buena”del circuito, se deben asignar códigos binarios adyacentes a los estados actuales-dosy también se debe hacer lo mismo con los estados próximos-dos.

3. Buscar en la tabla de estados, estados actuales (q(t)) que tengan idénticos próximosestados para alguna de las entradas. Esto es, buscar por filas estados actuales quetengan en algunas columnas estados próximos iguales. A los estados actuales quecumplan esta condición les vamos a llamar actuales-tres. Para conseguir unarealización “buena” del circuito, se deben asignar códigos binarios adyacentes a losestados actuales-tres, teniendo prioridad aquellos estados actuales-tres que tenganmayor número de próximos estados iguales.

4. Otra regla práctica es asignar códigos adyacentes a los próximos estados de cada fila.

5. Y por último, para una realización “buena” del circuito, se deben asignar códigosbinarios adyacentes a cada estado actual con sus próximos estados.

Dado que no siempre se podrá conseguir aplicar todas estas reglas, el orden de prioridad deaplicación es el mismo que el de su numeración en esta lista.

Un consejo práctico, para tener claros los códigos adyacentes, es utilizar mapas de Karnaugh(con los que el alumno ya está familiarizado, y donde están presentes todas las posibilidadesde adyacencia) con tantas variables como flip-flops tenga el circuito a diseñar.

Con el fin de dar mayor claridad a la aplicación de estas reglas prácticas vamos a utilizar latabla de estados de la tabla 9. Lógicamente, si esta tabla se fuera a implementar habría queminimizarla, pero para dar mayor claridad al proceso de asignación de estados se va a utilizarcomo está:

Page 30: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -30- Sistemas Secuenciales Síncronos

Tabla 10. Mapa de Karnaugh.

Tabla 9. Ejemplo de tabla para la asignación de estados y obtención de la tabla de transición

Estado actualq(t)

Entrada actual x(t)x0 x1 x2 x3

0 0 0 1 1 0 1 1

q0

q1

q2

q3

q4

q5

q6

q7

q0/0 q0/0 q1/0 q2/0q0/1 q7/0 q2/1 q6/0q4/0 q5/1 q0/0 q2/1q4/1 q5/0 q3/1 q3/0q2/1 q1/1 q3/1 q1/1q0/1 q0/0 q1/1 q2/0q1/0 q2/1 q1/0 q3/1q2/0 q7/1 q2/0 q6/1

q(t+1)/z(t)Próximo 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

Según esto, una posible asignación es la indicada en el mapa de Karnaugh de la tabla 10.

Una vez realizada la asignación de estados se obtiene la tabla de transiciones codificada (meratraducción de la tabla de estados) tal como se hizo en el apartado de diseño. Es aconsejableque en la tabla de transiciones codificada aparezcan en columnas diferentes los próximosestados y las salidas actuales.

Es evidente que si hay N estados y se utilizan m flip-flops, habrá 2m - N combinaciones de lassalidas de los biestables que no se correspondan con ningún estado de nuestro grafo. Esascombinaciones no aparecen nunca en la evolución del circuito, y, por tanto, en el diseñopodemos asignarle cualquier valor (X) tanto a sus salidas como a su estado siguiente.

Ejemplo 5. Asignación de estados del ejemplo 5: qa= 00, qb=01, qc=10.

Page 31: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -31- Sistemas Secuenciales Síncronos

Figura E5.2. Función de salida delejemplo 5.

A partir de la asignación de estados anterior y de la tabla de estados E5.2, la tabla de transición codificadadel ejemplo 5 se muestra en la tabla E5.3, reflejando en columnas diferentes los próximos estados y lassalidas actuales.

Tabla E5.3. Tabla de transición codificada del ejemplo 5.

Estado actual Entrada actualX0(t)

Entrada actualX0(t)

q(t) Q1(t)Q0(t) 0 1 0 1

q0

q1

q2

q3

0 00 11 01 1

0 01 00 0X X

0 10 10 1X X

0 0 0 X

0 0 1 X

Q1(t+1) Q0(t+1)Próximos estados

Z0(t)Salida actual

5.6. Obtención de las ecuaciones de salida del sistema

Las ecuaciones lógicas de las diferentes salidas se pueden obtener directamente a partir dela tabla de transiciones. Recuérdese que en los autómatas 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 física sedebe implementar en función de las entradas físicas ylos estados actuales [Q0(t).....]. En los autómatas deMoore z(t)= g[q(t)], por lo que en la tabla de transicioneslas entradas son q(t) y la salida z(t), y al implementar lafunción, z(t) sólo depende de q(t).

Las funciones de salida se deberán minimizar por algunode los métodos conocidos (Karnaugh, por ejemplo).

Ejemplo 5: Este caso tiene una sola entrada, X0t y dos líneas

de estado Q1t y Q0

t. A partir de la tabla E5.3, y utilizando mapasde Karnaugh, se obtiene la función de salida mostrada en lafigura E5.2.

5.7. Obtención de las tablas de excitación y ecuaciones de entradade 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 semuestran las excitaciones necesarias a la entrada de cada tipo de biestable para obtener todaslas posibles transiciones. Se supone que las entradas son activas a nivel alto.

Page 32: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -32- Sistemas Secuenciales Síncronos

Tabla 11. Excitación necesaria para producir cada transición en los distintos tipos de biestables.

Q(t) Q(t+1) S R J K T D

0 00 11 01 1

0 X1 00 1X 0

0 X1 XX 1X 0

0 1 1 0

0 1 0 1

2. Obtener las ecuaciones de entrada de cada flip-flop (valores de R, S; J, K; T ó D) en funciónde los estados actuales y entradas al sistema. Con esto quedaría ya definido el circuito. Paraello, y una vez elegido el tipo de flip-flop, debemos averiguar la excitación que debemos ponera la entrada para cada estado y combinación de las señales de entrada para producir latransición deseada (para ello utilizaremos la tabla 11). Con esta información se construye latabla de excitación de los biestables, que puede incluir una sola función (en los biestables T oD) o dos funciones, (en el caso de los R S o J K). Si son 2 funciones, se divide la tabla y seconstruye una para cada variable. Por último, se simplifican las tablas obtenidas, (por el métodode los mapas de Karnaugh por ejemplo), y se averigua la función lógica correspondiente a cadaterminal de entrada.

Ejemplo 5. En este caso hay 3 estados, por tanto se necesitan 2 flip-flops. Utilizaremos flip-flops JK, ydenominaremos Q1 y Q0 a sus salidas y J1, K1 y J0, K0 a sus entradas, respectivamente. Si reescribimosla tabla E5.3, considerando únicamente los estados actuales y próximos y los valores de J1, K1 y J0, K0,obtendremos la tabla E5.4.

Tabla E5.4. Tabla de excitación de los flip-flops (ejemplo 5).

Estado actual Entrada actualX0(t)

Entrada actualX0(t)

Entrada actualX0(t)

q(t) Q1(t)Q0(t) 0 1 0 1 0 1

qaqbqc

0 00 11 01 1

0 01 00 0X X

0 10 10 1X X

0 X1 XX 1X X

0 X0 XX 1X X

0 XX 10 XX X

1 XX 01 XX X

Q1(t+1) Q0(t+1)Próximos 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 figuraE5.3, junto a las funciones de entrada ya simplificadas.

Page 33: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -33- Sistemas Secuenciales Síncronos

K X0t

0t=

J Q X1t

0t

0t= K 11

t =

J X0t

0t=

Figura E5.4. Implementación del parte del circuitocorrespondiente al ejemplo 5.

Entradas de los flip flops:J X

K X

J Q XK 1Salida:Z X Q

0t

0t

0t

0t

1t

0t

0t

1t

0t

0t

1t

=

=

= ⋅

=

= ⋅

Figura E5.3. Funciones lógicas de las entradas de los flip-flops del ejemplo 5.

5.8. Implementación del circuito

Las ecuaciones de entrada a los flip-flops y las ecuaciones de salida del sistema nos permitendibujar parte del circuito a diseñar.

Ejemplo 5:

Page 34: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -34- Sistemas Secuenciales Síncronos

Figura E5.5. Implementación del circuitocorrespondiente al ejemplo 5.

5.9. Inclusión del control de las entradas asíncronas de losbiestables

Por último, es necesario incluir los circuitos de control de las entradas asíncronas de losbiestables para asegurar, por una parte, que al alimentar el circuito este se sitúe en el estadoinicial del grafo, y, por otra, para que una vez pasado el transitorio inicial las entradasasíncronas queden inactivas. Para ello se utilizará un circuito como el mostrado en el ejemploque se analiza a continuación.

Ejemplo 5: En este caso debemos añadir los componentes necesarios para que el circuito al seralimentado 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 asíncronaactiva a nivel bajo. Cuando conectemos la alimentación el condensador estará descargado, eimpondrá un nivel bajo a las entradas CLR de los biestables, por lo que sus salidas serán 0. Amedida que pasa el tiempo el condensador se va cargando a través de la R, hasta queVCLR$ViHmin, y, a partir de ese momento, el biestable funcionará con normalidad con las entradassíncronas (el diodo en esta fase no influye porque estaría polarizado en inversa). Los valoresde R y C deben ser calculados para que el tiempo que en la entrada CLR haya un nivel bajosea igual o superior al tCLRmín indicado por el fabricante. Si hay un fallo momentáneo de laalimentación durante el funcionamiento del sistema, el condensador se descargará rápidamentea través del diodo, asegurando, de esta forma, un reset inicial al recuperar la alimentación.

En este caso, el circuito de control está conectado al CLR de los biestables, porquedeseábamos que al principio su salida fuera 0. Si necesitamos un 1 inicial, situaremos el circuitode control en las entradas PR.

Si la entrada asíncrona a controlar fuera activa a nivel alto, sería necesario conectar un circuitosimilar al anterior, pero cambiando la posición de los componentes de forma que inicialmentehaya 5V en el CLR (o el PR), y después 0V.

Page 35: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -35- Sistemas Secuenciales Síncronos

Figura E5.6. Grafo de ejemplo 5 incluyendo una entradaasíncrona para reinicializar el circuito.

Figura E5.7. Circuito del ejemplo 5 incluyendo la posibilidadde hacer un reset asíncrono con el pulsador P.

La entrada asíncrona no utilizada debe estar conectada siempre al valor necesario para queel biestable funcione de forma síncrona: en este ejemplo, como el PR es activo a nivel bajohemos conectado los dos a Vcc.

Además, en algunos casos es necesario incluir la posibilidad de reiniciar el sistema en cualquiermomento, es decir, hacer que se sitúe en el estado inicial de forma asíncrona, (por ejemplo,controlándolo con un pulsador). Esto se representa en el grafo como una transición al estadoinicial que no llega de ningún otro estado del grafo, y junto a la que aparece el nombre de laentrada asíncrona que la controla, como se puede observar en la figura E5.6.

La posibilidad de reiniciar el sistema se implementa como un pulsador que se añade al circuitode control de las entradas asíncronas, como se muestra en la figura E5.7. Este pulsador debeser conectado de forma que al ser pulsado realice un reset/preset asíncrono a los biestables,haciendo que en ese mismo instante el circuito se sitúe en su estado inicial.

Ejemplo 5. En este ejemplo el estado inicial es q0=00, por lo que el pulsador ha sido conectado en elcircuito de forma que al ser activado realice un reset a ambos biestables.

Page 36: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -36- Sistemas Secuenciales Síncronos

6. Ejercicios resueltos sobre síntesis de circuitossecuenciales síncronos6.1. Ejemplo 6. Circuito sumador serie

Se quiere diseñar un autómata de Mealy que realice la suma de dos datos que llegan en seriepor dos canales diferentes (es decir, los bits de los sumandos se presentan secuencialmentey por parejas). Primero se presentan los bits de menor peso de ambos sumandos, el sumadorlos suma y obtiene el bit de menor peso del resultado y toma nota del acarreo, sumando acontinuación los siguientes bits y el acarreo, y así sucesivamente. El resultado se vapresentando a la salida en serie a medida que se va generando.

Solución:

Como paso previo a la elaboración del grafo del autómata, comenzaremos planteando la tablade verdad del sumador de un bit con acarreo (Tabla E6.1). En ella hemos denominado X0 y X1a los sumandos y S al resultado (suma).

Para ver los estados que se necesitan solamente hay que darse cuenta de que las dossituaciones que se pueden presentar son que la suma se realice con y sin acarreo (si se generaacarreo hay que almacenarlo y sumarlo con los dos bits X0 y X1 siguientes). Por tanto, pararecordar si ha habido acarreo o no, necesitamos 2 estados: si la suma no genera acarreoestamos en el estado q0 y si lo genera en el q1. Estos estados han sido incluidos también en latabla E6.1.

Tabla E6.1. Tabla de verdad del sumador del ejemplo 6.

Acarreoanterior X1 X0

Acarreogenerado

Suma(S)

0 (q0)0 (q0)0 (q0)0 (q0)1 (q1)1 (q1)1 (q1)1 (q1)

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

0 (q0)0 (q0)0 (q0)1 (q1)0 (q0)1 (q1)1 (q1)1 (q1)

0 1 1 0 1 0 0 1

Según la tabla E6.1, si estando en el estado q0 (acarreo anterior=0) los bits X0 y X1 tomanvalores X0=0 y X1= 0, X0= 0 y X1= 1 ó X0=1 y X1=0 la suma es 0, 1, 1, respectivamente y elacarreo generado es 0 en todos los casos, es decir, el estado siguiente es q0. Sin embargo, siel 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 acarreogenerado es 1, lo que hace que permanezca en el estado q1. Por el contrario, si los datos sonX0=0 y X1=0, la suma es 1 y el acarreo generado es 0, y se pasa al estado q0. El estado inicialserá q0, porque el primer acarreo es 0.

Page 37: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -37- Sistemas Secuenciales Síncronos

Figura E6.1. Grafo correspondiente al ejemplo 6.

Esta descripción se corresponde con el grafo mostrado en la figura E6.1.

A partir de este grafo es inmediato obtener la tabla de estados indicada a continuación:

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

Estado actualq(t)

Entrada actual

x00 0

x10 1

x21 0

x31 1

q0q1

q0/0q0/1

q0/1q1/0

q0/1q1/0

q1/0q1/1

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

Como hay 2 estados, será suficiente con 1 biestable. La asignación de estados puede ser: q0=0, q1= 1 y la tabla de transiciones codificada es la mostrada a continuación (tabla E6.3). En ella,Q0 es la salida física del flip-flop, las líneas de entrada del circuito son X0 y X1, y la salida físicaZ0.

Tabla E6.3. Tabla de estados codificada.

Estado actual Entrada actualX0(t) X1(t)

Entrada actual X0(t) X1(t)

q(t) Q0(t) 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1

q0q1

0 1

0 0

0 1

0 1

1 1

0 1

1 0

1 0

0 1

Q0(t+1)Próximo estado

Z0(t)Salida actual

Una vez que tenemos ya las transiciones del autómata como cambios entre 0 y 1 de Q0(t),debemos obtener la función de excitación del biestable para conseguir que se produzcan dichastransiciones. Según la tabla 11, para un biestable JK, y denominando J0 y K0 a las entradas,obtenemos la tabla E6.4.

Page 38: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -38- Sistemas Secuenciales Síncronos

J X X0t

0t

1t= K X X0

t0

t1

t=

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

Figura E6.3. Mapa de Karnaugh de la función de salida.

Obsérvese que las columnas de la izquierda dentro del cuadro “Entradas del flip-flop” para cadacombinación de entrada, corresponden al valor que debe tomar J0 y las columnas de la derechacorresponden a K0.

Tabla E6.4. Tabla de excitación del biestable.

Estado actual Entrada actualX0(t) X1(t)

Entrada actualX0(t) X1(t)

q(t) Q0(t) 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1

q0q1

0 1

0 0

1 0

0 1

1 1

0 XX 1

0 XX 0

0 XX 0

1 XX 0

Q0(t+1)Próximos 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 losresultados mostrados en la figura E6.2.

A continuación calculamos la función lógica de la salida del circuito, Z0(t), a partir de lainformación de la tabla E6.3, utilizando el mapa de Karnaugh de la figura E6.3.

A partir de este mapa de Karnaugh se obtiene como función de salida la siguiente expresión:

Page 39: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -39- Sistemas Secuenciales Síncronos

Z X X Q X X Q X X Q X X QX X Q0

t0

t1

t0

t0

t1

t0

t0

t1

t0

t0

t1

t0

t

0t

1t

0t

= ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅

= ⊕ ⊕

Figura E6.4. Implementación del autómata del ejemplo 6 (sumador serie).

Figura E6.5. Sumador serie incluyendo las entradas asíncronas.

Ya tenemos toda la información necesaria para implementar el circuito, que se muestra en lafigura E6.4.

Por último, conectamos en las entradas asíncronas del biestable los componentes necesariospara asegurar que empezará en el estado q0, es decir, que al conectar la alimentación Q0=0.

Como se puede observar, en este ejemplo las entradas asíncronas son activas a nivel alto. Sedesea 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 síncronas, y el circuito de control del CLR se hadiseñado de forma que proporcione un nivel alto al conectar la alimentación, realizando unreset, y, transcurrido un tiempo (determinado por los valores de R y C), un nivel bajo, para queel biestable funcione de forma síncrona. La función del diodo es la misma que la del diodo delejemplo 5.

Page 40: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -40- Sistemas Secuenciales Síncronos

Figura E7.1. Grafo correspondiente alejemplo 7.

6.2. Ejemplo 7. Detector de secuencia

Se quiere diseñar un autómata de Moore que reciba datos en serie por una línea de entraday sea capaz de detectar secuencias de tres o más “1's” consecutivos”.

Solución:

En este caso, de nuevo, el circuito dispone de una sola entrada, que llamaremos X0, y unasalida, Z0. En cuanto a los estados, se puede pensar inicialmente en los siguientes:

• Estado q0: no se ha recibido ningún 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 más 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 sedebe 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 debepasar al estado q2 (indicativo de que se ha recibido la secuencia 11). Si, por elcontrario, se recibe un 0 la secuencia se rompe, y hay que retornar al estado inicial q0(es como si no se hubiera recibido ningún 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 unasecuencia 111). Si se recibe un 0, la secuencia se rompe, y hay que retornar al estadoinicial q0 (es como si no se hubiera recibido ningún 1). La salida estando en q2 debeser 0.

4. Si estando en q3 (indicativo de que se ha recibido la secuencia 111) se recibe un 0 sedebe retornar al estado q0, y si la entrada es 1 se debe permanecer en q3. La salidaestando en q3 debe ser 1.

Por tanto, el grafo es el mostrado en la figura E7.1, que se corresponde con la tabla de estadosmostrada en la tabla E7.1.

Tabla E7.1. Tabla de estados del ejemplo 7.

Estado actual

q(t)

Entradaactual x(t) Salida

actualz(t)0 1

q0q1q2q3

q0q0q0q0

q1q2q3q3

0 0 0 1

Próximoestado q(t+1)

Page 41: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -41- Sistemas Secuenciales Síncronos

Como hay 4 estados se necesitan 2 flip-flops, y cada estado se codificará con una combinaciónde 2 bits. La asignación de estados puede ser: q0= 00, q1= 01, q2= 10, q3=11, y con esto sepuede rescribir la tabla E7.1, obteniendo la tabla de estados codificada, que se muestra en latabla E7.2.

En este caso se van a utilizar flip-flops de tipo D, a cuyas salidas denominaremos Q1 y Q0 y asus entradas D1 y D0 respectivamente. A continuación debemos calcular la excitación que esnecesario aplicar a cada una de estas entradas para obtener las transiciones buscadas.Recordemos que esta información estaba incluida en la tabla 11 para todos los tipos debiestables, y en este ejemplo debemos utilizar la columna de los biestables D. En la tabla E7.3se muestra la excitación de los biestables para obtener las transiciones de la tabla E7.2.

Tabla E7.2. Tabla de estados codificada del ejemplo 7.

Estado actual Entrada actual X0(t) SalidaactualZ0(t)q(t) Q1(t)Q0(t) 0 1

q0q1q2q3

0 00 11 01 1

0 00 00 00 0

0 11 01 11 1

0 0 0 1

Q1(t+1) Q0(t+1)Próximos estados

Tabla E7.3. Tabla de excitación de los flip-flops del ejemplo 7.

Estado actual Entrada actualX0(t)

Entrada actualX0(t)

Entrada actualX0(t)

q(t) Q1(t) Q0(t) 0 1 0 1 0 1

q0q1q2q3

0 00 11 01 1

0 00 00 00 0

0 11 01 11 1

0 0 0 0

0 1 1 1

0 0 0 0

1 0 1 1

Q1(t+1) Q0(t+1)Próximosestados

D1t

Entrada actualbiestable 1

D0t

Entrada actualbiestable 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.

Page 42: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -42- Sistemas Secuenciales Síncronos

D Q X Q X (Q Q ) X1t

1t

0t

0t

0t

1t

0t

0t= ⋅ + ⋅ = + ⋅D Q X Q X (Q Q ) X0

t0

t0

t1

t0

t0

t1

t0

t= ⋅ + ⋅ = + ⋅

Figura E7.2. Funciones lógicas de las entradas de los flip-flops del ejemplo 7.

Figura E7.3. Implementación del ejemplo 7 (detector de secuencias de tres o más1's consecutivos).

A continuación calculamos la función de salida. En este caso, al tratarse de un autómata deMoore, la salida sólo depende del estado interno. A partir de la tabla E7.2 se obtiene:

Z0t=Q0

t.Q1t

Ahora ya tenemos todas las funciones necesarias para implementar el circuito, que se muestraen la figura E7.3.

Por último, es necesario incluir el control de las entradas asíncronas de los biestables paraasegurar que el estado inicial sea q0, es decir, que la salida de ambos biestables sea cero alconectar la alimentación. El circuito completo se muestra en la figura E7.4.

Page 43: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -43- Sistemas Secuenciales Síncronos

Figura E7.4. Circuito detector de la secuencia “111" incluyendo el control de las entradas asíncronas.

Figura E8.1. Grafo correspondiente al ejemplo 8.

6.3. Ejemplo 8. Contador BCD

Se quiere diseñar un circuito contador síncrono BCD módulo diez (autómata de Moore).

Solución:

En este caso, el circuito no tiene ninguna entrada de datos (solamente la entrada de reloj CLK),y tiene cuatro líneas de salida (Z3, Z2, Z1, Z0). En cuanto a los estados, son necesarios tantoscomo estados posibles tiene el contador: 10 (q0, q1, q2, q4, q5, q6, q7, q8, q9). La transición entreestados, 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 estadosiempre se produce la misma transición. En la figura E8.1 se muestra el grafo.

Page 44: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -44- Sistemas Secuenciales Síncronos

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) Estado siguiente q(t+1) Salida actual z(t)

q0q1q2q3q4q5q6q7q8q9

q1q2q3q4q5q6q7q8q9q0

0 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 1

En este caso hay diez estados, por lo tanto se necesitan 4 flip-flops. Una posible asignación deestados 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 códigos en la tabla E8.1, obtenemos la tabla deestados codificada, mostrada en la tabla E8.2. Los estados 1010, 1011, 1100, 1101, 1110 y1111 nunca se presentan y, por tanto, a las salidas y próximos estados correspondientes se lespuede asignar cualquier valor, situación que se indica con la letra X.

Tabla E8.2. Tabla de estados codificada del ejemplo 8.

Estado actualQ3(t) Q2(t) Q1(t) Q0(t)

Próximos estadosQ3(t+1) Q2(t+1) Q1(t+1) Q0(t+1)

Salida actualZ3(t) Z2(t) Z1(t) Z0(t)

0 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 11 0 1 01 0 1 11 1 0 01 1 0 11 1 1 01 1 1 1

0 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 10 0 0 0X X X XX X X XX X X XX X X XX X X XX X X X

0 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 1X X X XX X X XX X X XX X X XX X X XX X X X

A continuación debemos obtener la función de excitación de los biestables para que seproduzcan las transiciones deseadas, (mostradas en la tabla E8.2). Utilizaremos flip-flops tipo

Page 45: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -45- Sistemas Secuenciales Síncronos

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 información contenida en la tabla11, en la columna referida a los biestables JK, para saber la excitación necesaria para producircada transición. Con ella completaremos la tabla de excitación 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 excitación de los flip-flops del ejemplo 8.

Estado actual Próximos estados Entradas flip-flops

Q3(t) Q2(t) Q1(t) Q0(t) Q3(t+1) Q2(t+1) Q1(t+1) Q0(t+1) J3t K3

t J2t K2

t J1t K1

t J0t K0

t

0 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 11 0 1 01 0 1 11 1 0 01 1 0 11 1 1 01 1 1 1

0 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 10 0 0 0X X X XX X X XX X X XX X X XX X X XX X X X

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

0 X0 X0 X1 XX 0X 0X 0X 10 X0 XX XX XX XX XX XX X

0 X1 XX 0X 10 X1 XX 0X 10 X0 XX XX XX XX XX XX X

1 XX 11 XX 11 XX 11 XX 11 XX 1X XX XX XX XX XX X

Page 46: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -46- Sistemas Secuenciales Síncronos

J Q Q2t

0t

1t=

J Q Q Q3t

2t

1t

0t= ⋅ ⋅ K Q3

t0

t=

K Q Q2t

1t

0t=

K 10t =J 10

t =

J Q Q1t

0t

3t= ⋅ K Q1

t0

t=

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

Por último, debemos calcular las funciones lógicas de las cuatro salidas, Z3, Z2, Z1 y Z0. A partirde la tabla E8.2, y utilizando mapas de Karnaugh para simplificar, se obtienen las funciones dela figura E8.3.

Una vez obtenidas las funciones lógicas de las salidas del circuito y de las entradas de losbiestables, podemos implementar el circuito, como se muestra en la figura 8.4, y por último,añadir en las entradas asíncronas las conexiones necesarias para que empiece a contar por el0, obteniendo el circuito de la figura 8.5.

Page 47: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -47- Sistemas Secuenciales Síncronos

Z Q0t

0t= Z Q1

t1

t=

Z Q2t

2t= Z Q3

t3

t=

Figura E8.3. Mapas de Karnaugh y expresiones lógicas de las salidas del autómata.

Figura E8.4. Implementación del autómata del ejemplo 8 (contador BCD).

Page 48: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -48- Sistemas Secuenciales Síncronos

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

Page 49: Apuntes automatas

M. Mazo, S. E. Palazuelos, L. M. Bergasa -49- Sistemas Secuenciales Síncronos

7. Ejercicios propuestos

1. Diséñese un circuito secuencial síncrono tipo Moore que proporcione a su salida un nivel altocada vez que en su línea de entrada se presente la secuencia 010.

2. Diséñese un circuito detector de paridad para caracteres binarios de 4 bits, que se recibenen serie por una línea X0. La salida Z0 debe ponerse a 1 si en el momento de llegar el cuarto bitel número de 1's es par y permanecer en 0 en caso contrario. Después del cuarto bit el sistemadebe volver al estado inicial, quedando preparado para recibir el siguiente carácter.

3. Castillo encantado. Un ejemplo curioso (ASHBY, 1956 y reproducido en “Fundamentos delos Ordenadores” - G. Fernández y F. Sáenz) es el del castillo encantado:

El problema se expone en una carta dirigida a un amigo: “Querido amigo: Al poco tiempo decomprar esta vieja mansión tuve la desagradable sorpresa de comprobar que está hechizadacon dos sonidos de ultratumba que la hacen prácticamente inhabitable: un canto picaresco y unarisa sardónica.

Sin embargo, aún conservo cierta esperanza, pues la experiencia me ha demostrado que sucomportamiento obedece a ciertas leyes, oscuras pero infalibles, y que puede modificarsetocando el órgano y quemando incienso.

En cada minuto, cada sonido está presente o ausente. Lo que cada uno de ellos hará en elminuto 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 nose 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 según que el canto esté presente oausente (de modo que la risa imita al canto con un minuto de retardo). Ahora bien, si quemoincienso la risa hará justamente lo contrario de lo que hacía el canto.

En el momento en que te escribo estoy oyendo a la vez la risa y el canto. Te quedaría muyagradecido si me dices qué manipulaciones de órgano e incienso debo seguir para restablecerdefinitivamente la calma”.

A partir de este enunciado, obténgase el grafo del autómata de Moore correspondiente.