SlideShare una empresa de Scribd logo
1 de 49
Descargar para leer sin conexión
Universidad de Alcalá
ANÁLISIS Y SÍNTESIS 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 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-flop
del circuito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Implementación del circuito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Inclusión del control de las entradas asíncronas de los biestables . . . . . . . . 34
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
M. Mazo, S. E. Palazuelos, L. M. Bergasa -4- Sistemas Secuenciales Síncronos
Espera selección
de producto
Espera moneda
Informa precio
Espera
Entrega
producto
Selección
producto
Introducción
de monedaNo hay
moneda
No hay
selección
Selección
de producto
Introducción
de moneda
Espera selección
de producto
Espera moneda
Informa precio
Espera
Entrega
producto
Selección
producto
Introducción
de monedaNo hay
moneda
No hay
selección
Selección
de producto
Introducción
de moneda
Figura 1. Representación de una máquina expendedora.
1. Aspectos generales sobre circuitos secuenciales
En los circuitos combinacionales la salida en un determinado momento depende únicamente
de los valores de las señales 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 dimensión adicional:
el funcionamiento de los mismos depende no únicamente de sus entradas actuales, sino
también de la historia por la que han pasado. Así, los circuitos secuenciales surgen para
solucionar las limitaciones intrínsecas de los combinacionales.
Los circuitos secuenciales son sistemas que, además de entradas y salidas, también tienen
estados que recuerdan la historia pasada por el circuito. Utilizan la información del estado
conjuntamente con una combinación lógica de sus entradas de datos para determinar el futuro
estado del sistema y sus salidas. Por tanto, una de sus características es que las mismas
entradas en estados diferentes dan lugar a salidas distintas, ya que estas dependen también
del estado .
Muchos de los sistemas digitales prácticos se realizan siguiendo la filosofía de los circuitos
secuenciales (circuitos de control, sistemas de alarma y seguridad, relojes, etc.). Podemos
considerar como ejemplo una máquina expendedora (simplificada), que representaríamos como
se muestra en la figura 1.
En la figura 1 pueden verse varios estados, en los que el sistema espera monedas o la
selección de productos, o entrega el producto. Estos estados memorizan la última acción 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 todavía no.
Este puede ser un ejemplo sencillo de máquina secuencial, y a partir de ahora formalizaremos
el 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 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 físicas cada una de las
cuales la identificaremos por la letra “X” (X0, X1,... Xu-1), “v” líneas 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 -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 una
salida que llamaremos Qi que almacenará el estado actual del circuito. Además existe una
señal auxiliar, la señal de reloj (CLK), que juega un papel fundamental en los sistemas
secuenciales 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 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
información de salida del circuito combinacional se introduzca de nuevo a su entrada, previo
paso 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 y
así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 que
en 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 de
datos, alcanzan sus niveles definitivos transcurrido un tiempo que será función de los tiempos
de 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)). Estos
tiempos pueden variar entre un valor mínimo y un máximo, 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 -6- Sistemas Secuenciales Síncronos
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 diseño de circuitos se trata siempre de evitar la existencia de este tipo de estados. Dos
técnicas usuales para ello son, una impidiendo excitaciones marginales y otra evitando, o al
menos reduciendo, la propagación de señales metaestables).
Según esto, en los circuitos secuenciales asíncronos después de producirse un cambio en las
entradas hay que esperar un tiempo hasta que se estabilicen los valores de las salidas y sólo
despué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 los
tiempos 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ón
utilizando una señal de sincronismo o señal de reloj. Los cambios en las entradas y en los
estados internos sólo 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 señal de reloj. Así, si nos fijamos en el circuito de la figura 2, las salidas
que 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 ventajas
frente 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 las
alternativas síncrona y asíncrona, a fin de valorar las limitaciones y restricciones de ambos
modos de operación. Actualmente existe un auge e interés por el diseño de circuitos VLSI
asíncronos o autotemporizados, ya que el aumento de la velocidad de operación y la
complejidad de los circuitos digitales conllevan grandes problemas para conseguir que las
señales de reloj que se propagan por caminos diferentes tengan idénticos tiempos de
propagación. Esto hace que la distribución de la señal de reloj dentro de los circuitos digitales
sea una tarea compleja, siendo una de las razones de esta complejidad los retrasos en dicha
señal (lo que se conoce como clock skew), además de los problemas de interferencias que
puede sufrir (cross-talk). No es, sin embargo, objeto de este capítulo el estudio de todos estos
detalles.
M. Mazo, S. E. Palazuelos, L. M. Bergasa -7- Sistemas Secuenciales Síncronos
2. Aspectos básicos sobre circuitos secuenciales síncronos
En este capítulo se presentan los aspectos más importantes de los sistemas secuenciales
síncronos. Como ya se ha comentado, muchos de los sistemas digitales prácticos responden
a la filosofía de funcionamiento de los sistemas síncronos, por lo tanto la evolución de las
diferentes variables, que responden a un determinado diagrama de flujo, está sincronizada con
una señal de reloj.
Posteriormente se tratarán los aspectos relacionados con el diseño, centrándonos en dos
configuraciones básicas: Autómatas deterministas de Mealy y de Moore (también
denominados máquinas de Mealy y de Moore).
Si bien la palabra autómata puede tener diferentes significados (es frecuente relacionar este
término con las máquinas capaces de imitar los movimientos de los seres vivos, equipos
electrónicos de control industrial, etc.), en nuestro caso se utiliza para definir sistemas
electrónicos capaces de tratar información. Así, un autómata puede ser un dispositivo con unos
terminales de entrada y salida de datos (ver figura 1) y una señal de reloj (CLK), que transforma
los datos de entrada en otros datos de salida, en función de la historia pasada por él, de forma
sincronizada 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ómata
má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 bien
actualmente 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, 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
señal de reloj.
El modelo matemático que describe un sistema secuencial síncrono es la máquina de estados
finitos o autómata 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 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 p
elementos (FF0.... FF P-1), siendo p un número finito, el número máximo 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 transición al siguiente estado q(t+1) con el siguiente flanco de
reloj.
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 se
hace 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 el
instante t+1, esto es, denominando al nuevo estado q(t+1) = h[f(x(t),q(t))]. A g se le denomina
función de salida, a f función de excitación y h es la función de los biestables, es decir, la
transició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á a
evolucionar el autómata. Si no se indica lo contrario, a partir de ahora consideraremos q0 como
estado inicial. En resumen una máquina de estados finitos se puede definir matemáticamente
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: 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 secuencial
síncrono.
Nombre de la
variable
Símbolo
general
Nombre de las
líneas físicas
en el circuito
Nº de
líneas
físicas
Combinaciones
de la variable
Nº de
combinacs.
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 de
los 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
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 los
biestables, en las que está el estado actual codificado en binario, de forma que cada estado qi
se corresponde con una combinación de los valores de las salidas de los biestables: si
asignamos 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 ambos
casos existe un bloque de memoria (realizado, por ejemplo, por flip-flops -FFi-) que memoriza
el estado actual (q) del autómata, y una realimentación de esos estados hacia el bloque
combinacional que implementa la función de salida g. La diferencia entre ambas
realizaciones reside en que en el autómata de Moore la salida z(t) es función únicamente
del estado actual, q(t), mientras que en un autómata de Mealy la salida actual depende
tanto del estado actual como de las entradas actuales x(t).
Todos los circuitos secuenciales síncronos pueden implementarse tanto como
autómatas de Moore como de Mealy, por lo cual, en cada caso concreto debemos decidir cual
será la implementación óptima considerando que:
• En general, un circuito implementado como autómata de Moore necesita más
estados que su equivalente como autómata de Mealy, por lo que el circuito
resultante 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 cambios
en la salida en el momento en el que se producen (más el tiempo de retardo propio
de cualquier circuito combinacional), independientemente de la señal de reloj,
mientras que en los autómatas de Moore las salidas solamente cambian cuando se
produce 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 al
funcionamiento del sistema global.
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)].
M. Mazo, S. E. Palazuelos, L. M. Bergasa -11- Sistemas Secuenciales Síncronos
3. Representación de los autómatas
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 (también
conocidos como diagramas de estados), donde aparecen los diferentes estados (nº finito) y las
salidas y estados siguientes para cada estado y combinación de las entradas (que también son
un 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 los
biestables 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 el
momento 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 estado
qk y la columna m corresponde a la entrada xm, en la intersección de ambas se escribirán 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 genérico de este tipo de tabla. Observése que la salida actual
depende tanto del estado actual como de la entrada.
Tabla 2. Ejemplo genérico de tabla de estados de un autómata de Mealy.
Estado actual
q(t)
Entrada actual
x0 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 tabla
de 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 estado
siguiente 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.
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 actual
q(t)
Entrada actual
x0 x1 ...... xn-1
Entrada actual
x0 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 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 física, Z0, por tanto z puede adoptar
2 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 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)
Entrada actual x(t)
x0
0 0
x1
0 1
x2
1 0
x3
1 1
q0
q1
q0/0
q0/1
q0/1
q1/0
q0/1
q1/0
q1/0
q1/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 la
tabla E1.2, basta con recordar que q0=0 y q1= 1.
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 o
grafos 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 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.
S Sobre cada arco se indica la entrada que condiciona dicha transición 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 autómata de Mealy. En él se ha representado con una línea más gruesa el círculo
correspondiente al estado inicial. Considérese la figura como una parte de un grafo mayor, de
forma que las transiciones que aparentemente llegan o van a “ningún” estado, realmente son
transiciones al resto del grafo.
La interpretación que se debe hacer de un grafo es la siguiente: en cada momento estamos en
un 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 nos
dará la salida que tiene el sistema en ese momento. Cuando llegue un flanco de reloj, la
transición se hará efectiva, y pasaremos al estado siguiente, volviendo a empezar el proceso.
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 tabla
4. Se puede observar que la diferencia fundamental con las tablas de estados de los autómatas
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 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 actual
q(t)
Entrada actual x(t)
x0 x1 ...... xn-1
Salida actual
z(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 total
de 4 posibles entradas {00, 01, 10, 11}, 4 estados internos Q ={q0, q1, q2, q3} que se codifican con 2 líneas
de estado (Q0 y Q1) y una salida física, Z0, por lo que z puede adoptar 2 posibles valores, 0 y 1. Si de la
definició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.
M. Mazo, S. E. Palazuelos, L. M. Bergasa -15- Sistemas Secuenciales Síncronos
Figura 6. Forma general de representar los grafos en los
autó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 actual
q(t)
Entrada x(t) Salida
actual
z(t)0 0 0 1 1 1 1 0
q0
q1
q2
q3
q0
q2
q0
q2
q2
q1
q2
q1
q1
q3
q1
q3
q2
q1
q2
q1
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 se
muestran dentro de círculos. 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
autómata de Moore. Considérese la figura como una parte de un grafo mayor, de forma que las
transiciones que aparentemente llegan o van a “ningún” estado, realmente son transiciones al
resto del grafo.
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 en
un estado determinado (uno de los círculos), y las entradas tienen un valor (entrada actual). La
salida que acompaña al estado actual dentro del círculo será la salida que tenga el sistema en
este momento. Cuando llegue un flanco de reloj, se hará efectiva la transición 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.
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íncronos
El análisis tiene por objetivo, dado un circuito secuencial, obtener unas tablas en las que se
muestren, para cada combinación 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 máquina de Mealy o Moore. El proceso de análisis se puede sistematizar en una serie de
pasos, que se ilustran a continuación con un ejemplo de autómata de Mealy. Posteriormente
se 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 secuenciales
síncronos, ya que el diseño consiste, a grandes rasgos, en aplicar los mismos pasos en orden
inverso.
Ejemplo 3. Análisis de un autómata de Mealy. Supóngase 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. Además, se puede ver que la salida es función de la entrada (X0) y de las salidas
de 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 de
los flip-flops (excitaciones de los biestables). Estas ecuaciones son las funciones lógicas de las
entradas 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 (estado
actual), y las entradas del sistema.
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
1
t
1
t
1
t
0
t
2
t
1
t
0
t
2
t
2
t
1
t
0
t
=
= ⋅
= ⋅ ⋅
= ⋅
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 (obtenidas
en 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 estados
son
Simplificando estas expresiones se obtiene:
4.3. El tercer paso consiste en obtener las funciones lógicas 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 autómata de Mealy, en la tabla E3.2.
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 actual
Q2(t) Q1(t)
Entrada actual X0(t)
0 1
Entrada actual X0(t)
0 1
0 0
0 1
1 0
1 1
1 1
1 0
0 1
0 0
1 1
1 0
0 1
1 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 actual
Q2(t) Q1(t)
Entrada actual X0(t)
0 1
0 0
0 1
1 0
1 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)
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 q1
a 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 tabla
de estados será (tabla E3.3):
Tabla E3.3. Tabla de estados del ejemplo 3.
Estado actual
q(t)
Entrada actual x(t)
0 1
q0
q1
q2
q3
q3/1
q2/1
q1/1
q0/1
q3/1
q2/0
q1/1
q2 /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 la
tabla de estados.
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 ) X0
t
0
t
0
t
1
t
0
t
0
t
1
t
0
t
= ⋅ + ⋅ = + ⋅
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 biestables
hacen 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 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 autómata de Moore.
Siguiendo los pasos anteriores se obtiene:
1) Excitación de los biestables:
M. Mazo, S. E. Palazuelos, L. M. Bergasa -21- Sistemas Secuenciales Síncronos
D Q X Q X (Q Q ) X1
t
1
t
0
t
0
t
0
t
1
t
0
t
0
t
= ⋅ + ⋅ = + ⋅
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 la
tabla E4.1:
Tabla E4.1. Tabla de transiciones codificada del ejemplo 4.
Estado
actual
Entrada X0(t) Salida
actual
Z0(t)Q1(t)Q0(t) 0 1
0 0
0 1
1 0
1 1
0 0
0 0
0 0
0 0
0 1
1 0
1 1
1 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 actual
q(t)
Entrada x(t) Salida
actual
z(t)0 1
q0
q1
q2
q3
q0
q0
q0
q0
q1
q2
q3
q3
0
0
0
1
Próximo
estado q(t+1)
El estado inicial es q0 porque el circuito conectado a las entradas asíncronas de los biestables, que hacen
que al conectar la alimentación ambos biestables comiencen con salida 0.
M. Mazo, S. E. Palazuelos, L. M. Bergasa -22- Sistemas Secuenciales Síncronos
Figura E4.2. Grafo correspondiente al autómata de
Moore del ejemplo 4.
M. Mazo, S. E. Palazuelos, L. M. Bergasa -23- Sistemas Secuenciales Síncronos
5. Síntesis de circuitos secuenciales síncronos
La síntesis de circuitos secuenciales síncronos tiene por objetivo obtener el esquema físico del
circuito (formado por puertas lógicas y flip-flops) a partir de la descripción de la función que se
quiere realizar. Los pasos a seguir son prácticamente los mismos que los del proceso de
aná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 transiciones
codificada.
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 para
asegurar 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 las
explicaciones con un ejemplo. Con el objetivo de conseguir mayor claridad en los puntos 4 y
5 (minimización y asignación de estados) se incluirán además otros ejemplos con tablas de
estados 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 problema
a resolver. Esta descripción, generalmente, se realiza en lenguaje natural ayudado en algunos
casos con un dibujo ilustrativo.
Ejemplo 5. Diseño de un autómata de Mealy: “Se quiere diseñar un circuito secuencial síncrono que
proporcione 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 empezar
por identificar el número de estados, salidas y entradas al sistema; a continuación establecer
las transiciones entre estados en función de las entradas y el estado, indicando los valores de
las salidas del sistema en función del estado y las entradas.
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 menos
sistemática.
Hemos de indicar que un mismo enunciado puede dar lugar a distintos grafos iniciales, todos
ellos válidos, pero que pueden ser muy diferentes y, por tanto, con mayor o menor complejidad
de implementación. Sin duda, el mejor grafo será aquel que tenga un menor número de
estados. De la habilidad, ingenio y experiencia del diseñador 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 podrían resumirse en:
1. Elegir una realización de máquina de Mealy o de Moore (en nuestro caso, en el
enunciado 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 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 máquina de Mealy: sobre cada flecha que une dos estados indicar
la combinación de entrada que origina dicha transición entre estados y la salida
actual.
5. Si se trata de una máquina de Moore: indicar sobre cada flecha que une dos estados
la combinación de entrada (entrada actual) que origina dicha transición entre
estados. Las salidas correspondientes a cada estado se indican junto a él, dentro del
círculo.
6. El proceso indicado en 4) (caso de máquina de Mealy) o 5) (caso de máquina 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 -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 secuencia
se rompe, y hay que retornar al estado inicial q0 (es como si no se hubiera recibido ningún
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.
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 el
apartado 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 actual
q(t)
Entrada actual x(t)
0 1
q0
q1
q2
q3
q0/0 q1/0
q2/0 q1/0
q0/0 q3/1
q2/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 que
la realización práctica se pueda hacer con el mínimo coste (menor número de flip-flops), se
debe minimizar. Una vez obtenida la tabla mínima, el número de flip-flops que se necesitan para
implementar el circuito viene dado por la relación:
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 el
denominado de tablas de implicación).
Para minimizar la tabla de estados se averiguará qué estados son equivalentes y se eliminarán
todos menos uno de ellos. Dos estados qi y qj se dice que son equivalentes (qi / qj) si y sólo
si 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 estados
suficientemente significativa, que nos permita tener una idea clara del proceso a seguir. La tabla
que vamos a utilizar es la mostrada a continuación (tabla 5).
Tabla 5. Ejemplo de tabla a minimizar.
Estado actual
q(t)
Entrada actual x(t)
0 1
q0
q1
q2
q3
q4
q5
q6
q7
q0/0 q1/0
q1/0 q4/0
q2/0 q7/0
q0/1 q1/0
q0/1 q1/0
q4/1 q5/0
q1/0 q4/0
q3/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 de
cada grupo tengan la misma salida ante la misma entrada (obsérvese que en la formación
de estos grupos no se tienen en cuenta los próximos estados). Cada grupo de estados se
puede 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 punto
1 y asignando a cada grupo una letra identificativa, se obtiene la siguiente división de la
tabla de estados (tabla 6), (en el siguiente punto se explicará cómo se rellena la última línea
de la tabla).
2. La última línea la constituyen los grupos a los que pertenecen los próximos 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 -27- Sistemas Secuenciales Síncronos
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 0 0 0 1 1 0
Grupos A B C
Estados actuales que
constituyen el grupo
q0 q1 q2 q6 q7 q3 q4 q5
Grupos de los
pró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 hay
algún “estado actual que forma parte del “grupo” que no tiene los mismos “grupos de los
próximos 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 más pequeños que contengan estados actuales con los mismos “grupos de los
próximos 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 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 que
constituyen el grupo
q0 q1 q6 q2 q7 q3 q4 q5
Grupos de los próximos
estados
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 que
constituyen 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 el
grupo” de cada “grupo” tienen los mismos “grupos de los próximos estados”. Por tanto q1
y q6 son estados equivalentes y también 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 subíndice la letra del grupo al que pertenecen. En
M. Mazo, S. E. Palazuelos, L. M. Bergasa -28- Sistemas Secuenciales Síncronos
2
N
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 a
la misma, que resulta ser la mostrada a continuación (tabla 8):
Tabla 8. Tabla mínima correspondiente a la tabla 5.
Estado actual
q(t)
Entrada actual x(t)
0 1
qa
qb
qc
qd
qe
qf
qa/0 qd/0
qc/0 qc/1
qa/1 qd/0
qd/0 qc/0
qe/0 qb/0
qc/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 ello
denominaremos 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 actual
q(t)
Entrada actual x(t)
0 1
qa
qb
qc
qa/0 qb/0
qc/0 qb/0
qa/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ón
resultante
La asignación de estados consiste en asignar a cada estado de la tabla de estados una
combinación binaria de las salidas de los flip-flops. Por ejemplo, en un sistema con 3
biestables, si le asignamos a q0 el código 000, significará que cuando las líneas Q2, Q1 y Q0
tengan el valor 0, el circuito estará en el estado q0. Esta asignación no es única y, por tanto, la
complejidad (número de puertas a utilizar en la realización del circuito) del sistema final también
será diferente dependiendo de la asignación que realicemos. Evidentemente, una forma de
encontrar el circuito más reducido sería realizar todas las alternativas y después elegir la más
sencilla. Esto, sin embargo, sólo es posible utilizando programas informáticos para un número
de 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 se
necesitan m flip-flops, tal que 2m
$N, y el número de posibles asignaciones viene dado por:
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 actuales
q(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 resumida
estas reglas son:
1. Buscar en la tabla de estados, estados actuales (q(t)) que tengan idénticos próximos
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 próximos, estados próximos iguales. A los estados actuales que cumplan esta
condició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 los
estados actuales-uno y también deberán ser adyacentes las asignaciones de los
próximos-uno (si son distintos).
2. Buscar en la tabla de estados, estados actuales (q(t)) que tengan idénticos próximos
estados, y en la misma cantidad, pero para entradas diferentes. Esto es, buscar
por 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 que
cumplan esta condición les vamos a llamar actuales-dos, y a sus próximos estados si
son 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-dos
y 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óximos
estados para alguna de las entradas. Esto es, buscar por filas estados actuales que
tengan en algunas columnas estados próximos iguales. A los estados actuales que
cumplan esta condición les vamos a llamar actuales-tres. Para conseguir una
realización “buena” del circuito, se deben asignar códigos binarios adyacentes a los
estados actuales-tres, teniendo prioridad aquellos estados actuales-tres que tengan
mayor 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ódigos
binarios 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 de
aplicació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 posibilidades
de 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 la
tabla de estados de la tabla 9. Lógicamente, si esta tabla se fuera a implementar habría que
minimizarla, pero para dar mayor claridad al proceso de asignación de estados se va a utilizar
como está:
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 actual
q(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/0
q0/1 q7/0 q2/1 q6/0
q4/0 q5/1 q0/0 q2/1
q4/1 q5/0 q3/1 q3/0
q2/1 q1/1 q3/1 q1/1
q0/1 q0/0 q1/1 q2/0
q1/0 q2/1 q1/0 q3/1
q2/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 (mera
traducción de la tabla de estados) tal como se hizo en el apartado de diseño. Es aconsejable
que en la tabla de transiciones codificada aparezcan en columnas diferentes los próximos
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 ningún estado de nuestro grafo. Esas
combinaciones no aparecen nunca en la evolución del circuito, y, por tanto, en el diseño
podemos 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.
M. Mazo, S. E. Palazuelos, L. M. Bergasa -31- Sistemas Secuenciales Síncronos
Figura E5.2. Función de salida del
ejemplo 5.
A partir de la asignación de estados anterior y de la tabla de estados E5.2, la tabla de transición codificada
del ejemplo 5 se muestra en la tabla E5.3, reflejando en columnas diferentes los próximos estados y las
salidas actuales.
Tabla E5.3. Tabla de transición codificada del ejemplo 5.
Estado actual
Entrada actual
X0(t)
Entrada actual
X0(t)
q(t) Q1(t)Q0(t) 0 1 0 1
q0
q1
q2
q3
0 0
0 1
1 0
1 1
0 0
1 0
0 0
X X
0 1
0 1
0 1
X 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 de
la 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 se
debe implementar en función de las entradas físicas y
los estados actuales [Q0(t).....]. En los autómatas 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
función, z(t) sólo depende de q(t).
Las funciones de salida se deberán minimizar por alguno
de los métodos conocidos (Karnaugh, por ejemplo).
Ejemplo 5: Este caso tiene una sola entrada, X0
t
y dos líneas
de estado Q1
t
y Q0
t
. A partir de la tabla E5.3, y utilizando mapas
de Karnaugh, se obtiene la función de salida mostrada en la
figura E5.2.
5.7. Obtención de las tablas de excitación 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 -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 0
0 1
1 0
1 1
0 X
1 0
0 1
X 0
0 X
1 X
X 1
X 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ón
de los estados actuales y entradas al sistema. Con esto quedaría ya definido el circuito. Para
ello, y una vez elegido el tipo de flip-flop, debemos averiguar la excitación que debemos poner
a la entrada para cada estado y combinación de las señales de entrada para producir la
transición deseada (para ello utilizaremos la tabla 11). Con esta información se construye la
tabla de excitación de los biestables, que puede incluir una sola función (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 método
de los mapas de Karnaugh por ejemplo), y se averigua la función lógica 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 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 actual
X0(t)
Entrada actual
X0(t)
Entrada actual
X0(t)
q(t) Q1(t)Q0(t) 0 1 0 1 0 1
qa
qb
qc
0 0
0 1
1 0
1 1
0 0
1 0
0 0
X X
0 1
0 1
0 1
X X
0 X
1 X
X 1
X X
0 X
0 X
X 1
X X
0 X
X 1
0 X
X X
1 X
X 0
1 X
X 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 figura
E5.3, junto a las funciones de entrada ya simplificadas.
M. Mazo, S. E. Palazuelos, L. M. Bergasa -33- Sistemas Secuenciales Síncronos
K X0
t
0
t
=
J Q X1
t
0
t
0
t
= K 11
t
=
J X0
t
0
t
=
Figura E5.4. Implementación del parte del circuito
correspondiente al ejemplo 5.
Entradas de los flip flops:
J X
K X
J Q X
K 1
Salida:
Z X Q
0
t
0
t
0
t
0
t
1
t
0
t
0
t
1
t
0
t
0
t
1
t
−
=
=
= ⋅
=
= ⋅
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 permiten
dibujar parte del circuito a diseñar.
Ejemplo 5:
M. Mazo, S. E. Palazuelos, L. M. Bergasa -34- Sistemas Secuenciales Síncronos
Figura E5.5. Implementación del circuito
correspondiente al ejemplo 5.
5.9. Inclusión del control de las entradas asíncronas de los
biestables
Por último, es necesario incluir los circuitos de control de las entradas asíncronas de los
biestables para asegurar, por una parte, que al alimentar el circuito este se sitúe en el estado
inicial del grafo, y, por otra, para que una vez pasado el transitorio inicial las entradas
asíncronas queden inactivas. Para ello se utilizará un circuito como el mostrado en el ejemplo
que se analiza a continuación.
Ejemplo 5: En este caso debemos añadir 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 asíncrona
activa a nivel bajo. Cuando conectemos la alimentación el condensador estará descargado, e
impondrá un nivel bajo a las entradas CLR de los biestables, por lo que sus salidas serán 0. A
medida que pasa el tiempo el condensador se va cargando a través de la R, hasta que
VCLR$ViHmin, y, a partir de ese momento, el biestable funcionará con normalidad con las entradas
síncronas (el diodo en esta fase no influye porque estaría 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 tCLRmín indicado por el fabricante. Si hay un fallo momentáneo de la
alimentación durante el funcionamiento del sistema, el condensador se descargará rápidamente
a 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, porque
deseábamos que al principio su salida fuera 0. Si necesitamos un 1 inicial, situaremos el circuito
de control en las entradas PR.
Si la entrada asíncrona a controlar fuera activa a nivel alto, sería necesario conectar un circuito
similar al anterior, pero cambiando la posición de los componentes de forma que inicialmente
haya 5V en el CLR (o el PR), y después 0V.
M. Mazo, S. E. Palazuelos, L. M. Bergasa -35- Sistemas Secuenciales Síncronos
Figura E5.6. Grafo de ejemplo 5 incluyendo una entrada
asíncrona para reinicializar el circuito.
Figura E5.7. Circuito del ejemplo 5 incluyendo la posibilidad
de hacer un reset asíncrono con el pulsador P.
La entrada asíncrona no utilizada debe estar conectada siempre al valor necesario para que
el biestable funcione de forma síncrona: en este ejemplo, como el PR es activo a nivel bajo
hemos conectado los dos a Vcc.
Además, en algunos casos es necesario incluir la posibilidad de reiniciar el sistema en cualquier
momento, 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 estado
inicial que no llega de ningún otro estado del grafo, y junto a la que aparece el nombre de la
entrada 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 circuito
de control de las entradas asíncronas, como se muestra en la figura E5.7. Este pulsador debe
ser 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 el
circuito de forma que al ser activado realice un reset a ambos biestables.
M. Mazo, S. E. Palazuelos, L. M. Bergasa -36- Sistemas Secuenciales Síncronos
6. Ejercicios resueltos sobre síntesis de circuitos
secuenciales síncronos
6.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 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
continuación 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.
Solución:
Como paso previo a la elaboración del grafo del autómata, 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 también en la
tabla E6.1.
Tabla E6.1. Tabla de verdad del sumador del ejemplo 6.
Acarreo
anterior
X1 X0
Acarreo
generado
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 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 -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 actual
q(t)
Entrada actual
x0
0 0
x1
0 1
x2
1 0
x3
1 1
q0
q1
q0/0
q0/1
q0/1
q1/0
q0/1
q1/0
q1/0
q1/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ísica
Z0.
Tabla E6.3. Tabla de estados codificada.
Estado actual
Entrada actual
X0(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
q0
q1
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 dichas
transiciones. Según 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 -38- Sistemas Secuenciales Síncronos
J X X0
t
0
t
1
t
= K X X0
t
0
t
1
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 cada
combinación de entrada, corresponden al valor que debe tomar J0 y las columnas de la derecha
corresponden a K0.
Tabla E6.4. Tabla de excitación del biestable.
Estado actual
Entrada actual
X0(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
q0
q1
0
1
0
0
1
0
0
1
1
1
0 X
X 1
0 X
X 0
0 X
X 0
1 X
X 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 los
resultados 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 la
informació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:
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 Q
X X Q
0
t
0
t
1
t
0
t
0
t
1
t
0
t
0
t
1
t
0
t
0
t
1
t
0
t
0
t
1
t
0
t
= ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅
= ⊕ ⊕
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 la
figura E6.4.
Por último, conectamos en las entradas asíncronas del biestable los componentes necesarios
para 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. 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 síncronas, y el circuito de control del CLR se ha
diseñado de forma que proporcione un nivel alto al conectar la alimentación, 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 síncrona. La función del diodo es la misma que la del diodo del
ejemplo 5.
M. Mazo, S. E. Palazuelos, L. M. Bergasa -40- Sistemas Secuenciales Síncronos
Figura E7.1. Grafo correspondiente al
ejemplo 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 entrada
y 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 una
salida, 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 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 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 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 ningún 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)
Entrada
actual x(t)
Salida
actual
z(t)0 1
q0
q1
q2
q3
q0
q0
q0
q0
q1
q2
q3
q3
0
0
0
1
Próximo
estado q(t+1)
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ón
de 2 bits. La asignación 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 continuación debemos calcular la excitación que es
necesario 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 de
biestables, y en este ejemplo debemos utilizar la columna de los biestables D. En la tabla E7.3
se 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) Salida
actual
Z0(t)q(t) Q1(t)Q0(t) 0 1
q0
q1
q2
q3
0 0
0 1
1 0
1 1
0 0
0 0
0 0
0 0
0 1
1 0
1 1
1 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 actual
X0(t)
Entrada actual
X0(t)
Entrada actual
X0(t)
q(t) Q1(t) Q0(t) 0 1 0 1 0 1
q0
q1
q2
q3
0 0
0 1
1 0
1 1
0 0
0 0
0 0
0 0
0 1
1 0
1 1
1 1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
Q1(t+1) Q0(t+1)
Próximos
estados
D1
t
Entrada actual
biestable 1
D0
t
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 -42- Sistemas Secuenciales Síncronos
D Q X Q X (Q Q ) X1
t
1
t
0
t
0
t
0
t
1
t
0
t
0
t
= ⋅ + ⋅ = + ⋅D Q X Q X (Q Q ) X0
t
0
t
0
t
1
t
0
t
0
t
1
t
0
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ás
1's consecutivos).
A continuación calculamos la función de salida. En este caso, al tratarse de un autómata de
Moore, la salida sólo depende del estado interno. A partir de la tabla E7.2 se obtiene:
Z0
t
=Q0
t
.Q1
t
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 asíncronas de los biestables para
asegurar que el estado inicial sea q0, es decir, que la salida de ambos biestables sea cero al
conectar la alimentación. El circuito completo se muestra en la figura E7.4.
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 tantos
como estados posibles tiene el contador: 10 (q0, q1, q2, q4, q5, q6, q7, q8, q9). La transición 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 transición. En la figura E8.1 se muestra el grafo.
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)
q0
q1
q2
q3
q4
q5
q6
q7
q8
q9
q1
q2
q3
q4
q5
q6
q7
q8
q9
q0
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
En este caso hay diez estados, por lo tanto se necesitan 4 flip-flops. Una posible asignación 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 códigos 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 próximos estados correspondientes se les
puede asignar cualquier valor, situación 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)
Próximos estados
Q3(t+1) Q2(t+1) Q1(t+1) Q0(t+1)
Salida actual
Z3(t) Z2(t) Z1(t) Z0(t)
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
0 0 0 0
X X X X
X X X X
X X X X
X X X X
X X X X
X X X X
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
X X X X
X X X X
X X X X
X X X X
X X X X
X X X X
A continuación debemos obtener la función de excitación 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 -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 tabla
11, en la columna referida a los biestables JK, para saber la excitación necesaria para producir
cada 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) J3
t
K3
t
J2
t
K2
t
J1
t
K1
t
J0
t
K0
t
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
0 0 0 0
X X X X
X X X X
X X X X
X X X X
X X X X
X X X X
0 X
0 X
0 X
0 X
0 X
0 X
0 X
1 X
X 0
X 1
X X
X X
X X
X X
X X
X X
0 X
0 X
0 X
1 X
X 0
X 0
X 0
X 1
0 X
0 X
X X
X X
X X
X X
X X
X X
0 X
1 X
X 0
X 1
0 X
1 X
X 0
X 1
0 X
0 X
X X
X X
X X
X X
X X
X X
1 X
X 1
1 X
X 1
1 X
X 1
1 X
X 1
1 X
X 1
X X
X X
X X
X X
X X
X X
M. Mazo, S. E. Palazuelos, L. M. Bergasa -46- Sistemas Secuenciales Síncronos
J Q Q2
t
0
t
1
t
=
J Q Q Q3
t
2
t
1
t
0
t
= ⋅ ⋅ K Q3
t
0
t
=
K Q Q2
t
1
t
0
t
=
K 10
t
=J 10
t
=
J Q Q1
t
0
t
3
t
= ⋅ K Q1
t
0
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 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 lógicas 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,
añadir en las entradas asíncronas 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 -47- Sistemas Secuenciales Síncronos
Z Q0
t
0
t
= Z Q1
t
1
t
=
Z Q2
t
2
t
= Z Q3
t
3
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).
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.
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 alto
cada 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 reciben
en serie por una línea X0. La salida Z0 debe ponerse a 1 si en el momento de llegar el cuarto bit
el número de 1's es par y permanecer en 0 en caso contrario. Después del cuarto bit el sistema
debe volver al estado inicial, quedando preparado para recibir el siguiente carácter.
3. Castillo encantado. Un ejemplo curioso (ASHBY, 1956 y reproducido en “Fundamentos de
los 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 de
comprar esta vieja mansión tuve la desagradable sorpresa de comprobar que está hechizada
con dos sonidos de ultratumba que la hacen prácticamente inhabitable: un canto picaresco y una
risa sardónica.
Sin embargo, aún 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 según 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 hacía el canto.
En el momento en que te escribo estoy oyendo a la vez la risa y el canto. Te quedaría muy
agradecido si me dices qué manipulaciones de órgano e incienso debo seguir para restablecer
definitivamente la calma”.
A partir de este enunciado, obténgase el grafo del autómata de Moore correspondiente.

Más contenido relacionado

La actualidad más candente

Latches y flip flops
Latches y flip flopsLatches y flip flops
Latches y flip flopsJimmy Osores
 
Electronica analisis a pequeña señal fet
Electronica  analisis a pequeña señal fetElectronica  analisis a pequeña señal fet
Electronica analisis a pequeña señal fetVelmuz Buzz
 
Los reguladores de tensión
Los reguladores de tensiónLos reguladores de tensión
Los reguladores de tensiónJomicast
 
Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesLuis Zurita
 
PLC: ejercicios de sistemas secuenciales
PLC: ejercicios de sistemas secuencialesPLC: ejercicios de sistemas secuenciales
PLC: ejercicios de sistemas secuencialesSANTIAGO PABLO ALBERTO
 
Muestreo y cuantificación de una señal analógica con MatLab
Muestreo y cuantificación de una señal analógica con MatLabMuestreo y cuantificación de una señal analógica con MatLab
Muestreo y cuantificación de una señal analógica con MatLabmarco calderon layme
 
Unidad 3 c3-control /FUNCION DE TRANFERENCIA PULSO
Unidad 3 c3-control /FUNCION DE TRANFERENCIA PULSOUnidad 3 c3-control /FUNCION DE TRANFERENCIA PULSO
Unidad 3 c3-control /FUNCION DE TRANFERENCIA PULSODavinso Gonzalez
 
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,Miguel Brunings
 
Multiplexor 4 Entradas 1 Salida (4-1)
Multiplexor 4 Entradas 1 Salida (4-1)Multiplexor 4 Entradas 1 Salida (4-1)
Multiplexor 4 Entradas 1 Salida (4-1)251089luis
 
Seaparat elect pote
Seaparat elect poteSeaparat elect pote
Seaparat elect poteLuis Sanchez
 
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...Jomicast
 
Ejercicios de-programacic3b3n-resueltos-con-step-7
Ejercicios de-programacic3b3n-resueltos-con-step-7Ejercicios de-programacic3b3n-resueltos-con-step-7
Ejercicios de-programacic3b3n-resueltos-con-step-7Guido Carmona Girón
 

La actualidad más candente (20)

Latches y flip flops
Latches y flip flopsLatches y flip flops
Latches y flip flops
 
Señales y sistemas
Señales y sistemasSeñales y sistemas
Señales y sistemas
 
Electronica analisis a pequeña señal fet
Electronica  analisis a pequeña señal fetElectronica  analisis a pequeña señal fet
Electronica analisis a pequeña señal fet
 
Transformada z
Transformada zTransformada z
Transformada z
 
Los reguladores de tensión
Los reguladores de tensiónLos reguladores de tensión
Los reguladores de tensión
 
Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupciones
 
PLC: ejercicios de sistemas secuenciales
PLC: ejercicios de sistemas secuencialesPLC: ejercicios de sistemas secuenciales
PLC: ejercicios de sistemas secuenciales
 
Muestreo y cuantificación de una señal analógica con MatLab
Muestreo y cuantificación de una señal analógica con MatLabMuestreo y cuantificación de una señal analógica con MatLab
Muestreo y cuantificación de una señal analógica con MatLab
 
Conexión darlington transistor
Conexión darlington transistorConexión darlington transistor
Conexión darlington transistor
 
Unidad 3 c3-control /FUNCION DE TRANFERENCIA PULSO
Unidad 3 c3-control /FUNCION DE TRANFERENCIA PULSOUnidad 3 c3-control /FUNCION DE TRANFERENCIA PULSO
Unidad 3 c3-control /FUNCION DE TRANFERENCIA PULSO
 
Función de transferencia
Función de transferenciaFunción de transferencia
Función de transferencia
 
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,
Diferentes tipos de flip flops (jk, sr, d, t) sus tablas de verdad,
 
Circuitos digitales-problemas
Circuitos digitales-problemasCircuitos digitales-problemas
Circuitos digitales-problemas
 
Practica0,1,2,3,4
Practica0,1,2,3,4Practica0,1,2,3,4
Practica0,1,2,3,4
 
MARLON
MARLONMARLON
MARLON
 
Multiplexor 4 Entradas 1 Salida (4-1)
Multiplexor 4 Entradas 1 Salida (4-1)Multiplexor 4 Entradas 1 Salida (4-1)
Multiplexor 4 Entradas 1 Salida (4-1)
 
Seaparat elect pote
Seaparat elect poteSeaparat elect pote
Seaparat elect pote
 
Ejercicios circuitos i
Ejercicios circuitos iEjercicios circuitos i
Ejercicios circuitos i
 
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
 
Ejercicios de-programacic3b3n-resueltos-con-step-7
Ejercicios de-programacic3b3n-resueltos-con-step-7Ejercicios de-programacic3b3n-resueltos-con-step-7
Ejercicios de-programacic3b3n-resueltos-con-step-7
 

Destacado (9)

La Robotica
La RoboticaLa Robotica
La Robotica
 
Maquina de estado finito
Maquina de estado finitoMaquina de estado finito
Maquina de estado finito
 
Teoria general de sistemas
Teoria general de sistemasTeoria general de sistemas
Teoria general de sistemas
 
2 Historia De Los Plc S
2 Historia De Los Plc S2 Historia De Los Plc S
2 Historia De Los Plc S
 
Cadenas de Markov
Cadenas de MarkovCadenas de Markov
Cadenas de Markov
 
Presentacion 2 - Maquinas de Estado Finito
Presentacion 2 - Maquinas de Estado FinitoPresentacion 2 - Maquinas de Estado Finito
Presentacion 2 - Maquinas de Estado Finito
 
Máquinas de Estado Finito en VHDL
Máquinas de Estado Finito en VHDLMáquinas de Estado Finito en VHDL
Máquinas de Estado Finito en VHDL
 
Máquinas de Estado
Máquinas de EstadoMáquinas de Estado
Máquinas de Estado
 
Automatas de estado finito
Automatas de estado finitoAutomatas de estado finito
Automatas de estado finito
 

Similar a Circuitos secuenciales sincronos y asincronos

Apuntes circuitos secuenciales
Apuntes circuitos secuencialesApuntes circuitos secuenciales
Apuntes circuitos secuencialeskgconchis
 
PLC y Electroneumática: Automatismos industriales
PLC y Electroneumática: Automatismos industrialesPLC y Electroneumática: Automatismos industriales
PLC y Electroneumática: Automatismos industrialesSANTIAGO PABLO ALBERTO
 
Electrónica digital: Análisis de síntesis de circuitos secuenciales
Electrónica digital: Análisis de síntesis de circuitos secuencialesElectrónica digital: Análisis de síntesis de circuitos secuenciales
Electrónica digital: Análisis de síntesis de circuitos secuencialesSANTIAGO PABLO ALBERTO
 
Electrónica digital: Fundamentos de computadores (modulo 4) Los circuitos lóg...
Electrónica digital: Fundamentos de computadores (modulo 4) Los circuitos lóg...Electrónica digital: Fundamentos de computadores (modulo 4) Los circuitos lóg...
Electrónica digital: Fundamentos de computadores (modulo 4) Los circuitos lóg...SANTIAGO PABLO ALBERTO
 
José maría nieves (grupo quark srl) “club saber electrónica electrónica dig...
José maría nieves (grupo quark srl) “club saber electrónica   electrónica dig...José maría nieves (grupo quark srl) “club saber electrónica   electrónica dig...
José maría nieves (grupo quark srl) “club saber electrónica electrónica dig...Clishman Félix Villavicencio
 
Electrónica digital: diseño secuencial síncrono asistido por computadora
Electrónica digital: diseño secuencial síncrono asistido por computadora  Electrónica digital: diseño secuencial síncrono asistido por computadora
Electrónica digital: diseño secuencial síncrono asistido por computadora SANTIAGO PABLO ALBERTO
 
Sistemas Digitales J. Huerta - 8 Circuitos Secuenciales (Análisis).pdf
Sistemas Digitales J. Huerta - 8 Circuitos Secuenciales (Análisis).pdfSistemas Digitales J. Huerta - 8 Circuitos Secuenciales (Análisis).pdf
Sistemas Digitales J. Huerta - 8 Circuitos Secuenciales (Análisis).pdfFranciscoASalgadoD
 
Taller 4 josue stanley lazo rivera
Taller 4 josue stanley lazo riveraTaller 4 josue stanley lazo rivera
Taller 4 josue stanley lazo rivera1000028858888
 
Apuntes ingenieria control_cuarto_ingeniero_industrial
Apuntes ingenieria control_cuarto_ingeniero_industrialApuntes ingenieria control_cuarto_ingeniero_industrial
Apuntes ingenieria control_cuarto_ingeniero_industrialMarco Sains
 
Apuntes ingenieria control_cuarto_ingeniero_industrial
Apuntes ingenieria control_cuarto_ingeniero_industrialApuntes ingenieria control_cuarto_ingeniero_industrial
Apuntes ingenieria control_cuarto_ingeniero_industrialJudith Torres Pessaressi
 
Saia circuitos
Saia circuitosSaia circuitos
Saia circuitosbomj321
 
Ingenieria de control moderna - Ogata 5ed
Ingenieria de control moderna - Ogata 5edIngenieria de control moderna - Ogata 5ed
Ingenieria de control moderna - Ogata 5edNa Chu
 
Detector de secuencia no solapada 1011 empleando PLA
Detector de secuencia no solapada 1011 empleando PLADetector de secuencia no solapada 1011 empleando PLA
Detector de secuencia no solapada 1011 empleando PLAMarc Tena Gil
 
Das wissen von morgen (revista)
Das wissen von morgen (revista)Das wissen von morgen (revista)
Das wissen von morgen (revista)Danfuhr26
 

Similar a Circuitos secuenciales sincronos y asincronos (20)

Apuntes circuitos secuenciales
Apuntes circuitos secuencialesApuntes circuitos secuenciales
Apuntes circuitos secuenciales
 
PLC y Electroneumática: Automatismos industriales
PLC y Electroneumática: Automatismos industrialesPLC y Electroneumática: Automatismos industriales
PLC y Electroneumática: Automatismos industriales
 
Control
ControlControl
Control
 
Electrónica digital: Análisis de síntesis de circuitos secuenciales
Electrónica digital: Análisis de síntesis de circuitos secuencialesElectrónica digital: Análisis de síntesis de circuitos secuenciales
Electrónica digital: Análisis de síntesis de circuitos secuenciales
 
Electrónica digital: Fundamentos de computadores (modulo 4) Los circuitos lóg...
Electrónica digital: Fundamentos de computadores (modulo 4) Los circuitos lóg...Electrónica digital: Fundamentos de computadores (modulo 4) Los circuitos lóg...
Electrónica digital: Fundamentos de computadores (modulo 4) Los circuitos lóg...
 
José maría nieves (grupo quark srl) “club saber electrónica electrónica dig...
José maría nieves (grupo quark srl) “club saber electrónica   electrónica dig...José maría nieves (grupo quark srl) “club saber electrónica   electrónica dig...
José maría nieves (grupo quark srl) “club saber electrónica electrónica dig...
 
Electrónica digital: diseño secuencial síncrono asistido por computadora
Electrónica digital: diseño secuencial síncrono asistido por computadora  Electrónica digital: diseño secuencial síncrono asistido por computadora
Electrónica digital: diseño secuencial síncrono asistido por computadora
 
Semaforo
SemaforoSemaforo
Semaforo
 
Sistemas Digitales J. Huerta - 8 Circuitos Secuenciales (Análisis).pdf
Sistemas Digitales J. Huerta - 8 Circuitos Secuenciales (Análisis).pdfSistemas Digitales J. Huerta - 8 Circuitos Secuenciales (Análisis).pdf
Sistemas Digitales J. Huerta - 8 Circuitos Secuenciales (Análisis).pdf
 
Taller 4 josue stanley lazo rivera
Taller 4 josue stanley lazo riveraTaller 4 josue stanley lazo rivera
Taller 4 josue stanley lazo rivera
 
Apuntes ingenieria control_cuarto_ingeniero_industrial
Apuntes ingenieria control_cuarto_ingeniero_industrialApuntes ingenieria control_cuarto_ingeniero_industrial
Apuntes ingenieria control_cuarto_ingeniero_industrial
 
Apuntes ingenieria control_cuarto_ingeniero_industrial
Apuntes ingenieria control_cuarto_ingeniero_industrialApuntes ingenieria control_cuarto_ingeniero_industrial
Apuntes ingenieria control_cuarto_ingeniero_industrial
 
Gil control
Gil controlGil control
Gil control
 
Gil control
Gil controlGil control
Gil control
 
Saia circuitos
Saia circuitosSaia circuitos
Saia circuitos
 
Ingenieria de control moderna - Ogata 5ed
Ingenieria de control moderna - Ogata 5edIngenieria de control moderna - Ogata 5ed
Ingenieria de control moderna - Ogata 5ed
 
Dig2 i
Dig2 iDig2 i
Dig2 i
 
Detector de secuencia no solapada 1011 empleando PLA
Detector de secuencia no solapada 1011 empleando PLADetector de secuencia no solapada 1011 empleando PLA
Detector de secuencia no solapada 1011 empleando PLA
 
Memoria
MemoriaMemoria
Memoria
 
Das wissen von morgen (revista)
Das wissen von morgen (revista)Das wissen von morgen (revista)
Das wissen von morgen (revista)
 

Último

Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingKevinCabrera96
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxbingoscarlet
 
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdfTEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdfXimenaFallaLecca1
 
Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024CESARHERNANPATRICIOP2
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaAlexanderimanolLencr
 
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxCARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxvalenciaespinozadavi1
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023RonaldoPaucarMontes
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónXimenaFallaLecca1
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Dr. Edwin Hernandez
 
Ingeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedicaIngeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedicaANACENIMENDEZ1
 
Mapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMONICADELROCIOMUNZON1
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptMarianoSanchez70
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxMarcelaArancibiaRojo
 
osciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdfosciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdfIvanRetambay
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAJOSLUISCALLATAENRIQU
 
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOPERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOFritz Rebaza Latoche
 

Último (20)

Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards Deming
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptx
 
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdfTEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
 
Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxCARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcción
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...
 
Ingeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedicaIngeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedica
 
Mapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptx
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docx
 
osciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdfosciloscopios Mediciones Electricas ingenieria.pdf
osciloscopios Mediciones Electricas ingenieria.pdf
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOPERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
 

Circuitos secuenciales sincronos y asincronos

  • 1. Universidad de Alcalá ANÁLISIS Y SÍNTESIS DE SISTEMAS SECUENCIALES M. Mazo, S. E. Palazuelos, L. M. Bergasa Mayo de 2003
  • 2. Í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-flop del circuito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Implementación del circuito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Inclusión del control de las entradas asíncronas de los biestables . . . . . . . . 34
  • 3. 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
  • 4. M. Mazo, S. E. Palazuelos, L. M. Bergasa -4- Sistemas Secuenciales Síncronos Espera selección de producto Espera moneda Informa precio Espera Entrega producto Selección producto Introducción de monedaNo hay moneda No hay selección Selección de producto Introducción de moneda Espera selección de producto Espera moneda Informa precio Espera Entrega producto Selección producto Introducción de monedaNo hay moneda No hay selección Selección de producto Introducción de moneda Figura 1. Representación de una máquina expendedora. 1. Aspectos generales sobre circuitos secuenciales En los circuitos combinacionales la salida en un determinado momento depende únicamente de los valores de las señales 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 dimensión adicional: el funcionamiento de los mismos depende no únicamente de sus entradas actuales, sino también de la historia por la que han pasado. Así, los circuitos secuenciales surgen para solucionar las limitaciones intrínsecas de los combinacionales. Los circuitos secuenciales son sistemas que, además de entradas y salidas, también tienen estados que recuerdan la historia pasada por el circuito. Utilizan la información del estado conjuntamente con una combinación lógica de sus entradas de datos para determinar el futuro estado del sistema y sus salidas. Por tanto, una de sus características es que las mismas entradas en estados diferentes dan lugar a salidas distintas, ya que estas dependen también del estado . Muchos de los sistemas digitales prácticos se realizan siguiendo la filosofía de los circuitos secuenciales (circuitos de control, sistemas de alarma y seguridad, relojes, etc.). Podemos considerar como ejemplo una máquina expendedora (simplificada), que representaríamos como se muestra en la figura 1. En la figura 1 pueden verse varios estados, en los que el sistema espera monedas o la selección de productos, o entrega el producto. Estos estados memorizan la última acción 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 todavía no. Este puede ser un ejemplo sencillo de máquina secuencial, y a partir de ahora formalizaremos el 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 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 físicas cada una de las cuales la identificaremos por la letra “X” (X0, X1,... Xu-1), “v” líneas de salida, que identificaremos por la letra “Z” (Z0, Z1,... Zv-1), y “p” elementos de memoria que identificaremos por la letra M (M0,
  • 5. 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 una salida que llamaremos Qi que almacenará el estado actual del circuito. Además existe una señal auxiliar, la señal de reloj (CLK), que juega un papel fundamental en los sistemas secuenciales 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 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 información de salida del circuito combinacional se introduzca de nuevo a su entrada, previo paso 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 y así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 que en 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 de datos, alcanzan sus niveles definitivos transcurrido un tiempo que será función de los tiempos de 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)). Estos tiempos pueden variar entre un valor mínimo y un máximo, y, por tanto, introducen un cierto grado de incertidumbre en los tiempos que tardan en propagarse los cambios de las variables
  • 6. 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 que pueden existir situaciones en las que no se alcance la estabilidad (estados metaestables). En el diseño de circuitos se trata siempre de evitar la existencia de este tipo de estados. Dos técnicas usuales para ello son, una impidiendo excitaciones marginales y otra evitando, o al menos reduciendo, la propagación de señales metaestables). Según esto, en los circuitos secuenciales asíncronos después de producirse un cambio en las entradas hay que esperar un tiempo hasta que se estabilicen los valores de las salidas y sólo despué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 los tiempos 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ón utilizando una señal de sincronismo o señal de reloj. Los cambios en las entradas y en los estados internos sólo 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 señal de reloj. Así, si nos fijamos en el circuito de la figura 2, las salidas que 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 ventajas frente 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 las alternativas síncrona y asíncrona, a fin de valorar las limitaciones y restricciones de ambos modos de operación. Actualmente existe un auge e interés por el diseño de circuitos VLSI asíncronos o autotemporizados, ya que el aumento de la velocidad de operación y la complejidad de los circuitos digitales conllevan grandes problemas para conseguir que las señales de reloj que se propagan por caminos diferentes tengan idénticos tiempos de propagación. Esto hace que la distribución de la señal de reloj dentro de los circuitos digitales sea una tarea compleja, siendo una de las razones de esta complejidad los retrasos en dicha señal (lo que se conoce como clock skew), además de los problemas de interferencias que puede sufrir (cross-talk). No es, sin embargo, objeto de este capítulo el estudio de todos estos detalles.
  • 7. M. Mazo, S. E. Palazuelos, L. M. Bergasa -7- Sistemas Secuenciales Síncronos 2. Aspectos básicos sobre circuitos secuenciales síncronos En este capítulo se presentan los aspectos más importantes de los sistemas secuenciales síncronos. Como ya se ha comentado, muchos de los sistemas digitales prácticos responden a la filosofía de funcionamiento de los sistemas síncronos, por lo tanto la evolución de las diferentes variables, que responden a un determinado diagrama de flujo, está sincronizada con una señal de reloj. Posteriormente se tratarán los aspectos relacionados con el diseño, centrándonos en dos configuraciones básicas: Autómatas deterministas de Mealy y de Moore (también denominados máquinas de Mealy y de Moore). Si bien la palabra autómata puede tener diferentes significados (es frecuente relacionar este término con las máquinas capaces de imitar los movimientos de los seres vivos, equipos electrónicos de control industrial, etc.), en nuestro caso se utiliza para definir sistemas electrónicos capaces de tratar información. Así, un autómata puede ser un dispositivo con unos terminales de entrada y salida de datos (ver figura 1) y una señal de reloj (CLK), que transforma los datos de entrada en otros datos de salida, en función de la historia pasada por él, de forma sincronizada 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ómata má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 bien actualmente 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, 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 señal de reloj. El modelo matemático que describe un sistema secuencial síncrono es la máquina de estados finitos o autómata 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 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 p elementos (FF0.... FF P-1), siendo p un número finito, el número máximo 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 transición al siguiente estado q(t+1) con el siguiente flanco de reloj.
  • 8. 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 se hace 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 el instante t+1, esto es, denominando al nuevo estado q(t+1) = h[f(x(t),q(t))]. A g se le denomina función de salida, a f función de excitación y h es la función de los biestables, es decir, la transició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á a evolucionar el autómata. Si no se indica lo contrario, a partir de ahora consideraremos q0 como estado inicial. En resumen una máquina de estados finitos se puede definir matemáticamente 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: 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 secuencial síncrono. Nombre de la variable Símbolo general Nombre de las líneas físicas en el circuito Nº de líneas físicas Combinaciones de la variable Nº de combinacs. 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 de los 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
  • 9. 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 los biestables, en las que está el estado actual codificado en binario, de forma que cada estado qi se corresponde con una combinación de los valores de las salidas de los biestables: si asignamos 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 ambos casos existe un bloque de memoria (realizado, por ejemplo, por flip-flops -FFi-) que memoriza el estado actual (q) del autómata, y una realimentación de esos estados hacia el bloque combinacional que implementa la función de salida g. La diferencia entre ambas realizaciones reside en que en el autómata de Moore la salida z(t) es función únicamente del estado actual, q(t), mientras que en un autómata de Mealy la salida actual depende tanto del estado actual como de las entradas actuales x(t). Todos los circuitos secuenciales síncronos pueden implementarse tanto como autómatas de Moore como de Mealy, por lo cual, en cada caso concreto debemos decidir cual será la implementación óptima considerando que: • En general, un circuito implementado como autómata de Moore necesita más estados que su equivalente como autómata de Mealy, por lo que el circuito resultante 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 cambios en la salida en el momento en el que se producen (más el tiempo de retardo propio de cualquier circuito combinacional), independientemente de la señal de reloj, mientras que en los autómatas de Moore las salidas solamente cambian cuando se produce 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 al funcionamiento del sistema global.
  • 10. 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)].
  • 11. M. Mazo, S. E. Palazuelos, L. M. Bergasa -11- Sistemas Secuenciales Síncronos 3. Representación de los autómatas 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 (también conocidos como diagramas de estados), donde aparecen los diferentes estados (nº finito) y las salidas y estados siguientes para cada estado y combinación de las entradas (que también son un 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 los biestables 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 el momento 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 estado qk y la columna m corresponde a la entrada xm, en la intersección de ambas se escribirán 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 genérico de este tipo de tabla. Observése que la salida actual depende tanto del estado actual como de la entrada. Tabla 2. Ejemplo genérico de tabla de estados de un autómata de Mealy. Estado actual q(t) Entrada actual x0 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 tabla de 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 estado siguiente 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.
  • 12. 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 actual q(t) Entrada actual x0 x1 ...... xn-1 Entrada actual x0 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 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 física, Z0, por tanto z puede adoptar 2 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 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) Entrada actual x(t) x0 0 0 x1 0 1 x2 1 0 x3 1 1 q0 q1 q0/0 q0/1 q0/1 q1/0 q0/1 q1/0 q1/0 q1/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 la tabla E1.2, basta con recordar que q0=0 y q1= 1.
  • 13. 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 o grafos 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 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. S Sobre cada arco se indica la entrada que condiciona dicha transición 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 autómata de Mealy. En él se ha representado con una línea más gruesa el círculo correspondiente al estado inicial. Considérese la figura como una parte de un grafo mayor, de forma que las transiciones que aparentemente llegan o van a “ningún” estado, realmente son transiciones al resto del grafo. La interpretación que se debe hacer de un grafo es la siguiente: en cada momento estamos en un 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 nos dará la salida que tiene el sistema en ese momento. Cuando llegue un flanco de reloj, la transición se hará efectiva, y pasaremos al estado siguiente, volviendo a empezar el proceso.
  • 14. 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 tabla 4. Se puede observar que la diferencia fundamental con las tablas de estados de los autómatas 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 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 actual q(t) Entrada actual x(t) x0 x1 ...... xn-1 Salida actual z(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 total de 4 posibles entradas {00, 01, 10, 11}, 4 estados internos Q ={q0, q1, q2, q3} que se codifican con 2 líneas de estado (Q0 y Q1) y una salida física, Z0, por lo que z puede adoptar 2 posibles valores, 0 y 1. Si de la definició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.
  • 15. M. Mazo, S. E. Palazuelos, L. M. Bergasa -15- Sistemas Secuenciales Síncronos Figura 6. Forma general de representar los grafos en los autó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 actual q(t) Entrada x(t) Salida actual z(t)0 0 0 1 1 1 1 0 q0 q1 q2 q3 q0 q2 q0 q2 q2 q1 q2 q1 q1 q3 q1 q3 q2 q1 q2 q1 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 se muestran dentro de círculos. 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 autómata de Moore. Considérese la figura como una parte de un grafo mayor, de forma que las transiciones que aparentemente llegan o van a “ningún” estado, realmente son transiciones al resto del grafo.
  • 16. 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 en un estado determinado (uno de los círculos), y las entradas tienen un valor (entrada actual). La salida que acompaña al estado actual dentro del círculo será la salida que tenga el sistema en este momento. Cuando llegue un flanco de reloj, se hará efectiva la transición 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.
  • 17. 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íncronos El análisis tiene por objetivo, dado un circuito secuencial, obtener unas tablas en las que se muestren, para cada combinación 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 máquina de Mealy o Moore. El proceso de análisis se puede sistematizar en una serie de pasos, que se ilustran a continuación con un ejemplo de autómata de Mealy. Posteriormente se 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 secuenciales síncronos, ya que el diseño consiste, a grandes rasgos, en aplicar los mismos pasos en orden inverso. Ejemplo 3. Análisis de un autómata de Mealy. Supóngase 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. Además, se puede ver que la salida es función de la entrada (X0) y de las salidas de 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 de los flip-flops (excitaciones de los biestables). Estas ecuaciones son las funciones lógicas de las entradas 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 (estado actual), y las entradas del sistema.
  • 18. 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 1 t 1 t 1 t 0 t 2 t 1 t 0 t 2 t 2 t 1 t 0 t = = ⋅ = ⋅ ⋅ = ⋅ 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 (obtenidas en 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 estados son Simplificando estas expresiones se obtiene: 4.3. El tercer paso consiste en obtener las funciones lógicas 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 autómata de Mealy, en la tabla E3.2.
  • 19. 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 actual Q2(t) Q1(t) Entrada actual X0(t) 0 1 Entrada actual X0(t) 0 1 0 0 0 1 1 0 1 1 1 1 1 0 0 1 0 0 1 1 1 0 0 1 1 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 actual Q2(t) Q1(t) Entrada actual X0(t) 0 1 0 0 0 1 1 0 1 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) 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 q1 a 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 tabla de estados será (tabla E3.3): Tabla E3.3. Tabla de estados del ejemplo 3. Estado actual q(t) Entrada actual x(t) 0 1 q0 q1 q2 q3 q3/1 q2/1 q1/1 q0/1 q3/1 q2/0 q1/1 q2 /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 la tabla de estados.
  • 20. 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 ) X0 t 0 t 0 t 1 t 0 t 0 t 1 t 0 t = ⋅ + ⋅ = + ⋅ 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 biestables hacen 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 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 autómata de Moore. Siguiendo los pasos anteriores se obtiene: 1) Excitación de los biestables:
  • 21. M. Mazo, S. E. Palazuelos, L. M. Bergasa -21- Sistemas Secuenciales Síncronos D Q X Q X (Q Q ) X1 t 1 t 0 t 0 t 0 t 1 t 0 t 0 t = ⋅ + ⋅ = + ⋅ 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 la tabla E4.1: Tabla E4.1. Tabla de transiciones codificada del ejemplo 4. Estado actual Entrada X0(t) Salida actual Z0(t)Q1(t)Q0(t) 0 1 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 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 actual q(t) Entrada x(t) Salida actual z(t)0 1 q0 q1 q2 q3 q0 q0 q0 q0 q1 q2 q3 q3 0 0 0 1 Próximo estado q(t+1) El estado inicial es q0 porque el circuito conectado a las entradas asíncronas de los biestables, que hacen que al conectar la alimentación ambos biestables comiencen con salida 0.
  • 22. M. Mazo, S. E. Palazuelos, L. M. Bergasa -22- Sistemas Secuenciales Síncronos Figura E4.2. Grafo correspondiente al autómata de Moore del ejemplo 4.
  • 23. M. Mazo, S. E. Palazuelos, L. M. Bergasa -23- Sistemas Secuenciales Síncronos 5. Síntesis de circuitos secuenciales síncronos La síntesis de circuitos secuenciales síncronos tiene por objetivo obtener el esquema físico del circuito (formado por puertas lógicas y flip-flops) a partir de la descripción de la función que se quiere realizar. Los pasos a seguir son prácticamente los mismos que los del proceso de aná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 transiciones codificada. 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 para asegurar 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 las explicaciones con un ejemplo. Con el objetivo de conseguir mayor claridad en los puntos 4 y 5 (minimización y asignación de estados) se incluirán además otros ejemplos con tablas de estados 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 problema a resolver. Esta descripción, generalmente, se realiza en lenguaje natural ayudado en algunos casos con un dibujo ilustrativo. Ejemplo 5. Diseño de un autómata de Mealy: “Se quiere diseñar un circuito secuencial síncrono que proporcione 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 empezar por identificar el número de estados, salidas y entradas al sistema; a continuación establecer las transiciones entre estados en función de las entradas y el estado, indicando los valores de las salidas del sistema en función del estado y las entradas.
  • 24. 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 menos sistemática. Hemos de indicar que un mismo enunciado puede dar lugar a distintos grafos iniciales, todos ellos válidos, pero que pueden ser muy diferentes y, por tanto, con mayor o menor complejidad de implementación. Sin duda, el mejor grafo será aquel que tenga un menor número de estados. De la habilidad, ingenio y experiencia del diseñador 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 podrían resumirse en: 1. Elegir una realización de máquina de Mealy o de Moore (en nuestro caso, en el enunciado 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 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 máquina de Mealy: sobre cada flecha que une dos estados indicar la combinación de entrada que origina dicha transición entre estados y la salida actual. 5. Si se trata de una máquina de Moore: indicar sobre cada flecha que une dos estados la combinación de entrada (entrada actual) que origina dicha transición entre estados. Las salidas correspondientes a cada estado se indican junto a él, dentro del círculo. 6. El proceso indicado en 4) (caso de máquina de Mealy) o 5) (caso de máquina 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
  • 25. 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 secuencia se rompe, y hay que retornar al estado inicial q0 (es como si no se hubiera recibido ningún 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. 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 el apartado 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 actual q(t) Entrada actual x(t) 0 1 q0 q1 q2 q3 q0/0 q1/0 q2/0 q1/0 q0/0 q3/1 q2/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 que la realización práctica se pueda hacer con el mínimo coste (menor número de flip-flops), se debe minimizar. Una vez obtenida la tabla mínima, el número de flip-flops que se necesitan para implementar el circuito viene dado por la relación:
  • 26. 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 el denominado de tablas de implicación). Para minimizar la tabla de estados se averiguará qué estados son equivalentes y se eliminarán todos menos uno de ellos. Dos estados qi y qj se dice que son equivalentes (qi / qj) si y sólo si 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 estados suficientemente significativa, que nos permita tener una idea clara del proceso a seguir. La tabla que vamos a utilizar es la mostrada a continuación (tabla 5). Tabla 5. Ejemplo de tabla a minimizar. Estado actual q(t) Entrada actual x(t) 0 1 q0 q1 q2 q3 q4 q5 q6 q7 q0/0 q1/0 q1/0 q4/0 q2/0 q7/0 q0/1 q1/0 q0/1 q1/0 q4/1 q5/0 q1/0 q4/0 q3/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 de cada grupo tengan la misma salida ante la misma entrada (obsérvese que en la formación de estos grupos no se tienen en cuenta los próximos estados). Cada grupo de estados se puede 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 punto 1 y asignando a cada grupo una letra identificativa, se obtiene la siguiente división de la tabla de estados (tabla 6), (en el siguiente punto se explicará cómo se rellena la última línea de la tabla). 2. La última línea la constituyen los grupos a los que pertenecen los próximos estados de cada estado actual. Así por ejemplo, los estados siguientes del estado q0 son q0 (que pertenece
  • 27. 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 (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 0 0 0 1 1 0 Grupos A B C Estados actuales que constituyen el grupo q0 q1 q2 q6 q7 q3 q4 q5 Grupos de los pró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 hay algún “estado actual que forma parte del “grupo” que no tiene los mismos “grupos de los próximos 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 más pequeños que contengan estados actuales con los mismos “grupos de los próximos 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 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 que constituyen el grupo q0 q1 q6 q2 q7 q3 q4 q5 Grupos de los próximos estados 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 que constituyen 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 el grupo” de cada “grupo” tienen los mismos “grupos de los próximos estados”. Por tanto q1 y q6 son estados equivalentes y también 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 subíndice la letra del grupo al que pertenecen. En
  • 28. M. Mazo, S. E. Palazuelos, L. M. Bergasa -28- Sistemas Secuenciales Síncronos 2 N 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 a la misma, que resulta ser la mostrada a continuación (tabla 8): Tabla 8. Tabla mínima correspondiente a la tabla 5. Estado actual q(t) Entrada actual x(t) 0 1 qa qb qc qd qe qf qa/0 qd/0 qc/0 qc/1 qa/1 qd/0 qd/0 qc/0 qe/0 qb/0 qc/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 ello denominaremos 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 actual q(t) Entrada actual x(t) 0 1 qa qb qc qa/0 qb/0 qc/0 qb/0 qa/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ón resultante La asignación de estados consiste en asignar a cada estado de la tabla de estados una combinación binaria de las salidas de los flip-flops. Por ejemplo, en un sistema con 3 biestables, si le asignamos a q0 el código 000, significará que cuando las líneas Q2, Q1 y Q0 tengan el valor 0, el circuito estará en el estado q0. Esta asignación no es única y, por tanto, la complejidad (número de puertas a utilizar en la realización del circuito) del sistema final también será diferente dependiendo de la asignación que realicemos. Evidentemente, una forma de encontrar el circuito más reducido sería realizar todas las alternativas y después elegir la más sencilla. Esto, sin embargo, sólo es posible utilizando programas informáticos para un número de 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 se necesitan m flip-flops, tal que 2m $N, y el número de posibles asignaciones viene dado por:
  • 29. 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 actuales q(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 resumida estas reglas son: 1. Buscar en la tabla de estados, estados actuales (q(t)) que tengan idénticos próximos 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 próximos, estados próximos iguales. A los estados actuales que cumplan esta condició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 los estados actuales-uno y también deberán ser adyacentes las asignaciones de los próximos-uno (si son distintos). 2. Buscar en la tabla de estados, estados actuales (q(t)) que tengan idénticos próximos estados, y en la misma cantidad, pero para entradas diferentes. Esto es, buscar por 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 que cumplan esta condición les vamos a llamar actuales-dos, y a sus próximos estados si son 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-dos y 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óximos estados para alguna de las entradas. Esto es, buscar por filas estados actuales que tengan en algunas columnas estados próximos iguales. A los estados actuales que cumplan esta condición les vamos a llamar actuales-tres. Para conseguir una realización “buena” del circuito, se deben asignar códigos binarios adyacentes a los estados actuales-tres, teniendo prioridad aquellos estados actuales-tres que tengan mayor 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ódigos binarios 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 de aplicació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 posibilidades de 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 la tabla de estados de la tabla 9. Lógicamente, si esta tabla se fuera a implementar habría que minimizarla, pero para dar mayor claridad al proceso de asignación de estados se va a utilizar como está:
  • 30. 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 actual q(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/0 q0/1 q7/0 q2/1 q6/0 q4/0 q5/1 q0/0 q2/1 q4/1 q5/0 q3/1 q3/0 q2/1 q1/1 q3/1 q1/1 q0/1 q0/0 q1/1 q2/0 q1/0 q2/1 q1/0 q3/1 q2/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 (mera traducción de la tabla de estados) tal como se hizo en el apartado de diseño. Es aconsejable que en la tabla de transiciones codificada aparezcan en columnas diferentes los próximos 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 ningún estado de nuestro grafo. Esas combinaciones no aparecen nunca en la evolución del circuito, y, por tanto, en el diseño podemos 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.
  • 31. M. Mazo, S. E. Palazuelos, L. M. Bergasa -31- Sistemas Secuenciales Síncronos Figura E5.2. Función de salida del ejemplo 5. A partir de la asignación de estados anterior y de la tabla de estados E5.2, la tabla de transición codificada del ejemplo 5 se muestra en la tabla E5.3, reflejando en columnas diferentes los próximos estados y las salidas actuales. Tabla E5.3. Tabla de transición codificada del ejemplo 5. Estado actual Entrada actual X0(t) Entrada actual X0(t) q(t) Q1(t)Q0(t) 0 1 0 1 q0 q1 q2 q3 0 0 0 1 1 0 1 1 0 0 1 0 0 0 X X 0 1 0 1 0 1 X 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 de la 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 se debe implementar en función de las entradas físicas y los estados actuales [Q0(t).....]. En los autómatas 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 función, z(t) sólo depende de q(t). Las funciones de salida se deberán minimizar por alguno de los métodos conocidos (Karnaugh, por ejemplo). Ejemplo 5: Este caso tiene una sola entrada, X0 t y dos líneas de estado Q1 t y Q0 t . A partir de la tabla E5.3, y utilizando mapas de Karnaugh, se obtiene la función de salida mostrada en la figura E5.2. 5.7. Obtención de las tablas de excitación 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.
  • 32. 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 0 0 1 1 0 1 1 0 X 1 0 0 1 X 0 0 X 1 X X 1 X 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ón de los estados actuales y entradas al sistema. Con esto quedaría ya definido el circuito. Para ello, y una vez elegido el tipo de flip-flop, debemos averiguar la excitación que debemos poner a la entrada para cada estado y combinación de las señales de entrada para producir la transición deseada (para ello utilizaremos la tabla 11). Con esta información se construye la tabla de excitación de los biestables, que puede incluir una sola función (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 método de los mapas de Karnaugh por ejemplo), y se averigua la función lógica 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 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 actual X0(t) Entrada actual X0(t) Entrada actual X0(t) q(t) Q1(t)Q0(t) 0 1 0 1 0 1 qa qb qc 0 0 0 1 1 0 1 1 0 0 1 0 0 0 X X 0 1 0 1 0 1 X X 0 X 1 X X 1 X X 0 X 0 X X 1 X X 0 X X 1 0 X X X 1 X X 0 1 X X 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 figura E5.3, junto a las funciones de entrada ya simplificadas.
  • 33. M. Mazo, S. E. Palazuelos, L. M. Bergasa -33- Sistemas Secuenciales Síncronos K X0 t 0 t = J Q X1 t 0 t 0 t = K 11 t = J X0 t 0 t = Figura E5.4. Implementación del parte del circuito correspondiente al ejemplo 5. Entradas de los flip flops: J X K X J Q X K 1 Salida: Z X Q 0 t 0 t 0 t 0 t 1 t 0 t 0 t 1 t 0 t 0 t 1 t − = = = ⋅ = = ⋅ 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 permiten dibujar parte del circuito a diseñar. Ejemplo 5:
  • 34. M. Mazo, S. E. Palazuelos, L. M. Bergasa -34- Sistemas Secuenciales Síncronos Figura E5.5. Implementación del circuito correspondiente al ejemplo 5. 5.9. Inclusión del control de las entradas asíncronas de los biestables Por último, es necesario incluir los circuitos de control de las entradas asíncronas de los biestables para asegurar, por una parte, que al alimentar el circuito este se sitúe en el estado inicial del grafo, y, por otra, para que una vez pasado el transitorio inicial las entradas asíncronas queden inactivas. Para ello se utilizará un circuito como el mostrado en el ejemplo que se analiza a continuación. Ejemplo 5: En este caso debemos añadir 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 asíncrona activa a nivel bajo. Cuando conectemos la alimentación el condensador estará descargado, e impondrá un nivel bajo a las entradas CLR de los biestables, por lo que sus salidas serán 0. A medida que pasa el tiempo el condensador se va cargando a través de la R, hasta que VCLR$ViHmin, y, a partir de ese momento, el biestable funcionará con normalidad con las entradas síncronas (el diodo en esta fase no influye porque estaría 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 tCLRmín indicado por el fabricante. Si hay un fallo momentáneo de la alimentación durante el funcionamiento del sistema, el condensador se descargará rápidamente a 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, porque deseábamos que al principio su salida fuera 0. Si necesitamos un 1 inicial, situaremos el circuito de control en las entradas PR. Si la entrada asíncrona a controlar fuera activa a nivel alto, sería necesario conectar un circuito similar al anterior, pero cambiando la posición de los componentes de forma que inicialmente haya 5V en el CLR (o el PR), y después 0V.
  • 35. M. Mazo, S. E. Palazuelos, L. M. Bergasa -35- Sistemas Secuenciales Síncronos Figura E5.6. Grafo de ejemplo 5 incluyendo una entrada asíncrona para reinicializar el circuito. Figura E5.7. Circuito del ejemplo 5 incluyendo la posibilidad de hacer un reset asíncrono con el pulsador P. La entrada asíncrona no utilizada debe estar conectada siempre al valor necesario para que el biestable funcione de forma síncrona: en este ejemplo, como el PR es activo a nivel bajo hemos conectado los dos a Vcc. Además, en algunos casos es necesario incluir la posibilidad de reiniciar el sistema en cualquier momento, 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 estado inicial que no llega de ningún otro estado del grafo, y junto a la que aparece el nombre de la entrada 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 circuito de control de las entradas asíncronas, como se muestra en la figura E5.7. Este pulsador debe ser 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 el circuito de forma que al ser activado realice un reset a ambos biestables.
  • 36. M. Mazo, S. E. Palazuelos, L. M. Bergasa -36- Sistemas Secuenciales Síncronos 6. Ejercicios resueltos sobre síntesis de circuitos secuenciales síncronos 6.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 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 continuación 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. Solución: Como paso previo a la elaboración del grafo del autómata, 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 también en la tabla E6.1. Tabla E6.1. Tabla de verdad del sumador del ejemplo 6. Acarreo anterior X1 X0 Acarreo generado 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 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.
  • 37. 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 actual q(t) Entrada actual x0 0 0 x1 0 1 x2 1 0 x3 1 1 q0 q1 q0/0 q0/1 q0/1 q1/0 q0/1 q1/0 q1/0 q1/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ísica Z0. Tabla E6.3. Tabla de estados codificada. Estado actual Entrada actual X0(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 q0 q1 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 dichas transiciones. Según la tabla 11, para un biestable JK, y denominando J0 y K0 a las entradas, obtenemos la tabla E6.4.
  • 38. M. Mazo, S. E. Palazuelos, L. M. Bergasa -38- Sistemas Secuenciales Síncronos J X X0 t 0 t 1 t = K X X0 t 0 t 1 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 cada combinación de entrada, corresponden al valor que debe tomar J0 y las columnas de la derecha corresponden a K0. Tabla E6.4. Tabla de excitación del biestable. Estado actual Entrada actual X0(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 q0 q1 0 1 0 0 1 0 0 1 1 1 0 X X 1 0 X X 0 0 X X 0 1 X X 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 los resultados 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 la informació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:
  • 39. 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 Q X X Q 0 t 0 t 1 t 0 t 0 t 1 t 0 t 0 t 1 t 0 t 0 t 1 t 0 t 0 t 1 t 0 t = ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ = ⊕ ⊕ 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 la figura E6.4. Por último, conectamos en las entradas asíncronas del biestable los componentes necesarios para 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. 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 síncronas, y el circuito de control del CLR se ha diseñado de forma que proporcione un nivel alto al conectar la alimentación, 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 síncrona. La función del diodo es la misma que la del diodo del ejemplo 5.
  • 40. M. Mazo, S. E. Palazuelos, L. M. Bergasa -40- Sistemas Secuenciales Síncronos Figura E7.1. Grafo correspondiente al ejemplo 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 entrada y 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 una salida, 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 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 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 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 ningún 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) Entrada actual x(t) Salida actual z(t)0 1 q0 q1 q2 q3 q0 q0 q0 q0 q1 q2 q3 q3 0 0 0 1 Próximo estado q(t+1)
  • 41. 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ón de 2 bits. La asignación 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 continuación debemos calcular la excitación que es necesario 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 de biestables, y en este ejemplo debemos utilizar la columna de los biestables D. En la tabla E7.3 se 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) Salida actual Z0(t)q(t) Q1(t)Q0(t) 0 1 q0 q1 q2 q3 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 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 actual X0(t) Entrada actual X0(t) Entrada actual X0(t) q(t) Q1(t) Q0(t) 0 1 0 1 0 1 q0 q1 q2 q3 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 1 Q1(t+1) Q0(t+1) Próximos estados D1 t Entrada actual biestable 1 D0 t 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.
  • 42. M. Mazo, S. E. Palazuelos, L. M. Bergasa -42- Sistemas Secuenciales Síncronos D Q X Q X (Q Q ) X1 t 1 t 0 t 0 t 0 t 1 t 0 t 0 t = ⋅ + ⋅ = + ⋅D Q X Q X (Q Q ) X0 t 0 t 0 t 1 t 0 t 0 t 1 t 0 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ás 1's consecutivos). A continuación calculamos la función de salida. En este caso, al tratarse de un autómata de Moore, la salida sólo depende del estado interno. A partir de la tabla E7.2 se obtiene: Z0 t =Q0 t .Q1 t 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 asíncronas de los biestables para asegurar que el estado inicial sea q0, es decir, que la salida de ambos biestables sea cero al conectar la alimentación. El circuito completo se muestra en la figura E7.4.
  • 43. 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 tantos como estados posibles tiene el contador: 10 (q0, q1, q2, q4, q5, q6, q7, q8, q9). La transición 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 transición. En la figura E8.1 se muestra el grafo.
  • 44. 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) q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q1 q2 q3 q4 q5 q6 q7 q8 q9 q0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 En este caso hay diez estados, por lo tanto se necesitan 4 flip-flops. Una posible asignación 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 códigos 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 próximos estados correspondientes se les puede asignar cualquier valor, situación 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) Próximos estados Q3(t+1) Q2(t+1) Q1(t+1) Q0(t+1) Salida actual Z3(t) Z2(t) Z1(t) Z0(t) 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 X X X X X X X X X X X X X X X X X X X X X X X X 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 X X X X X X X X X X X X X X X X X X X X X X X X A continuación debemos obtener la función de excitación de los biestables para que se produzcan las transiciones deseadas, (mostradas en la tabla E8.2). Utilizaremos flip-flops tipo
  • 45. 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 tabla 11, en la columna referida a los biestables JK, para saber la excitación necesaria para producir cada 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) J3 t K3 t J2 t K2 t J1 t K1 t J0 t K0 t 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 X X X X X X X X X X X X X X X X X X X X X X X X 0 X 0 X 0 X 0 X 0 X 0 X 0 X 1 X X 0 X 1 X X X X X X X X X X X X 0 X 0 X 0 X 1 X X 0 X 0 X 0 X 1 0 X 0 X X X X X X X X X X X X X 0 X 1 X X 0 X 1 0 X 1 X X 0 X 1 0 X 0 X X X X X X X X X X X X X 1 X X 1 1 X X 1 1 X X 1 1 X X 1 1 X X 1 X X X X X X X X X X X X
  • 46. M. Mazo, S. E. Palazuelos, L. M. Bergasa -46- Sistemas Secuenciales Síncronos J Q Q2 t 0 t 1 t = J Q Q Q3 t 2 t 1 t 0 t = ⋅ ⋅ K Q3 t 0 t = K Q Q2 t 1 t 0 t = K 10 t =J 10 t = J Q Q1 t 0 t 3 t = ⋅ K Q1 t 0 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 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 lógicas 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, añadir en las entradas asíncronas las conexiones necesarias para que empiece a contar por el 0, obteniendo el circuito de la figura 8.5.
  • 47. M. Mazo, S. E. Palazuelos, L. M. Bergasa -47- Sistemas Secuenciales Síncronos Z Q0 t 0 t = Z Q1 t 1 t = Z Q2 t 2 t = Z Q3 t 3 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).
  • 48. 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.
  • 49. 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 alto cada 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 reciben en serie por una línea X0. La salida Z0 debe ponerse a 1 si en el momento de llegar el cuarto bit el número de 1's es par y permanecer en 0 en caso contrario. Después del cuarto bit el sistema debe volver al estado inicial, quedando preparado para recibir el siguiente carácter. 3. Castillo encantado. Un ejemplo curioso (ASHBY, 1956 y reproducido en “Fundamentos de los 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 de comprar esta vieja mansión tuve la desagradable sorpresa de comprobar que está hechizada con dos sonidos de ultratumba que la hacen prácticamente inhabitable: un canto picaresco y una risa sardónica. Sin embargo, aún 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 según 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 hacía el canto. En el momento en que te escribo estoy oyendo a la vez la risa y el canto. Te quedaría muy agradecido si me dices qué manipulaciones de órgano e incienso debo seguir para restablecer definitivamente la calma”. A partir de este enunciado, obténgase el grafo del autómata de Moore correspondiente.