Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ndice
Aspectos generales sobre circuitos secuenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Estructura general y funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Tipos de circuitos secuenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Ejercicios propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Espera
No hay
seleccin
No hay
moneda
Espera moneda
Informa precio
Introduccin
de moneda
Introduccin
de moneda
Espera seleccin
de producto
Entrega
producto
Seleccin
de producto
En la figura 1 pueden verse varios estados, en los que el sistema espera monedas o la
seleccin de productos, o entrega el producto. Estos estados memorizan la ltima accin del
usuario, de forma que el sistema puede responder a las nuevas acciones de forma diferente
dependiendo de la historia pasada: si seleccionamos producto, la salida no ser la misma si
ya le hemos entregado el dinero o todava no.
Este puede ser un ejemplo sencillo de mquina secuencial, y a partir de ahora formalizaremos
el concepto y estudiaremos la forma de analizar y disear este tipo de circuitos.
-4-
M1,... Mp-1). Cada elemento de memoria tiene unas entradas que vamos a denominar Ei y una
salida que llamaremos Qi que almacenar el estado actual del circuito. Adems existe una
seal auxiliar, la seal de reloj (CLK), que juega un papel fundamental en los sistemas
secuenciales sncronos. Esta ltima seal no existe en los sistemas secuenciales asncronos.
Como se puede observar en la figura 2, al circuito combinacional llegan dos tipos de datos:
las entradas de datos del circuito (X0(t), X1(t),... Xu-1(t)) y el estado actual , es decir, las salidas
de la memoria (Q0(t),... Qp-1(t)). Las salidas del circuito combinacional son las salidas de datos
(Z0(t), Z1(t),... Zv-1(t)) y las entradas de los elementos de memoria (E0(t),... Es-1(t)), (si bien en
ciertos casos algunas de estas variables pueden ser comunes). El hecho de que parte de la
informacin de salida del circuito combinacional se introduzca de nuevo a su entrada, previo
paso por la memoria, se conoce como realimentacin.
-5-
de entrada a las salidas, y unas salidas pueden cambiar antes que otras. Hay que advertir que
pueden existir situaciones en las que no se alcance la estabilidad (estados metaestables). En
el diseo de circuitos se trata siempre de evitar la existencia de este tipo de estados. Dos
tcnicas usuales para ello son, una impidiendo excitaciones marginales y otra evitando, o al
menos reduciendo, la propagacin de seales metaestables).
Segn esto, en los circuitos secuenciales asncronos despus de producirse un cambio en las
entradas hay que esperar un tiempo hasta que se estabilicen los valores de las salidas y slo
despus de que se alcance esta estabilizacin se podr realizar otro cambio en sus entradas,
ya que en caso contrario no se vern reflejados estos cambios en las salidas. Evidentemente,
el tiempo mnimo entre dos cambios consecutivos en las entradas de datos es funcin de los
tiempos de propagacin del circuito combinacional y de los elementos de memoria.
Los circuitos sncronos eliminan la incertidumbre producida por los tiempos de propagacin
utilizando una seal de sincronismo o seal de reloj. Los cambios en las entradas y en los
estados internos slo tienen efecto sobre el resto del sistema en instantes discretos de tiempo
a los que denominaremos t, t+1, t+2,.... Estos instantes suelen coincidir con los flancos de
subida o bajada de la seal de reloj. As, si nos fijamos en el circuito de la figura 2, las salidas
que adopten los elementos Mi de memoria despus de un flanco de reloj (CLK), sern funcin
nicamente de los valores que tenan sus entradas en el instante anterior al flanco de CLK,
aunque estas hayan variado varias veces desde el ltimo flanco de reloj.
Finalmente queremos indicar que, si bien parece que los circuitos sncronos presentan ventajas
frente a los asncronos, no siempre es as. De hecho, al realizar el diseo de un circuito VLSI
(Very Large Scale Integration), es necesario establecer una comparacin rigurosa entre las
alternativas sncrona y asncrona, a fin de valorar las limitaciones y restricciones de ambos
modos de operacin. Actualmente existe un auge e inters por el diseo de circuitos VLSI
asncronos o autotemporizados, ya que el aumento de la velocidad de operacin y la
complejidad de los circuitos digitales conllevan grandes problemas para conseguir que las
seales de reloj que se propagan por caminos diferentes tengan idnticos tiempos de
propagacin. Esto hace que la distribucin de la seal de reloj dentro de los circuitos digitales
sea una tarea compleja, siendo una de las razones de esta complejidad los retrasos en dicha
seal (lo que se conoce como clock skew), adems de los problemas de interferencias que
puede sufrir (cross-talk). No es, sin embargo, objeto de este captulo el estudio de todos estos
detalles.
-6-
-7-
El funcionamiento del autmata es tal que si recibe una nueva entrada en t, x(t) , {X}, (sta se
hace efectiva mediante la seal de reloj en el instante t) y se encuentra en el estado q(t),{Q}
(salidas de los FF), entonces la salida del autmata en el instante t ser funcin de x(t) y q(t),
esto es, z(t) = g[x(t),q(t)] y pasar a un nuevo estado que ser funcin de x(t) y q(t) en el
instante t+1, esto es, denominando al nuevo estado q(t+1) = h[f(x(t),q(t))]. A g se le denomina
funcin de salida, a f funcin de excitacin y h es la funcin de los biestables, es decir, la
transicin que producir el biestable con la excitacin aplicada. En resumen:
q(t+1)=h[f(x(t),q(t))]
z(t)=g[x(t),q(t)]
Adems, tambin es necesario proporcionar el estado inicial a partir del cual empezar a
evolucionar el autmata. Si no se indica lo contrario, a partir de ahora consideraremos q0 como
estado inicial. En resumen una mquina de estados finitos se puede definir matemticamente
como un conjunto de elementos:
MEF=<x, z, q, q0, f, g, h>
siendo:
x: Datos de entrada
z: Datos de salida
q: Estados internos (variables de estado)
q0: Estado inicial
f: Funcin de excitacin de los biestables
h: Funcin de los biestables
g: Funcin de salida
2.2. Nomenclatura
La nomenclatura que se va a utilizar se muestra de forma resumida en la tabla 1:
Tabla 1. Nomenclatura de las distintas variables y constantes implicadas en un circuito secuencial
sncrono.
Nombre de la
variable
Smbolo
general
Nombre de las
lneas fsicas
en el circuito
N de
lneas
fsicas
Combinaciones
de la variable
N de
combinacs.
Entradas
x(t)
n#2u
Salidas
z(t)
r#2v
Estados
q(t)
m#2p
Excitacin de
los biestables
e(t)
l=2s
Por ejemplo, para implementar un autmata con 3 estados (m=3) se necesitan al menos 2
M. Mazo, S. E. Palazuelos, L. M. Bergasa
-8-
biestables (p=2), para que se cumpla la desigualdad m#2p. Q0 y Q1 son las dos salidas de los
biestables, en las que est el estado actual codificado en binario, de forma que cada estado qi
se corresponde con una combinacin de los valores de las salidas de los biestables: si
asignamos a q1 el cdigo 01 (q1=01), el circuito estar en el estado q1 cuando Q1=0 y Q0=1.
Cuando la informacin temporal sea necesaria, el instante de tiempo (t, t+1...) se indicar
indistintamente en forma de funcin, como en x(t), o de superndice Q0t.
los cambios en las entradas del circuito estn sincronizados con la seal
de reloj, o
-9-
-10-
en funcin de:
Para el caso de los autmatas o mquinas de Mealy, la tabla tiene tantas filas como estados,
p, y tantas columnas como combinaciones de las entradas, n. Si la fila k corresponde al estado
qk y la columna m corresponde a la entrada xm, en la interseccin de ambas se escribirn los
valores h[f(xm, qk)] y g(xm, qk), bien de la forma h[f(xm, qk)]/g(xm, qk) o bien h[f(xm, qk)], g(xm, qk).En
la tabla 2 se muestra un ejemplo genrico de este tipo de tabla. Observse que la salida actual
depende tanto del estado actual como de la entrada.
Tabla 2. Ejemplo genrico de tabla de estados de un autmata de Mealy.
Estado actual
q(t)
x0
q0
q1
q2
.
qp-1
Entrada actual
x1
......
h[f(q0, x1)]/g(q0, x1)
h[f(q1, x1)]/g(q1, x1)
h[f(q2, x1)]/g(q2, x1)
......
h[f(qp-1, x1)]/g(qp-1, x1)
......
......
......
....
xn-1
h[f(q0, xn-1)]/g(q0, xn-1)
h[f(q1, xn-1)]/g(q1, xn-1)
h[f(q2, xn-1)]/g(q2, xn-1)
.....
......
h[f(qp-1, xn-1)]/g(qp-1,xn-1)
q(t+1)/z(t)
Estado siguiente/salida actual
Como se puede ver, una tabla de estados o de transiciones no es ms que una versin de tabla
de verdad de las funciones estado siguiente y salida actual en funcin de las variables
estado actual y entrada del sistema. Tambin es posible separar la informacin del estado
siguiente y la salida, presentndolas en columnas diferentes, obteniendo de este modo una
versin extendida de la tabla de estados, como se puede observar en la tabla 3.
-11-
Estado actual
q(t)
q0
q1
q2
.
qp-1
x0
Entrada actual
x1
......
xn-1
x0
Entrada actual
x1
......
q(t+1)
Estado siguiente
xn-1
g(q0, xn-1)
g(q1, xn-1)
g(q2, xn-1)
......
g(qp-1,xn-1)
z(t)
Salida actual
Ejemplo 1: Supongamos un circuito secuencial con dos entradas fsicas X0, X1, lo que supone que puede
tener 4 posibles entradas x = {x0=00, x1 =01, x2 =10, x3 =11}, 2 estados internos q ={q0, q1} (que se pueden
representar con una variable Q0, Q0=0=>q0, y Q0=1=>q1) y una salida fsica, Z0, por tanto z puede adoptar
2 posibles valores: z={z0=0, z1=1}. De la definicin del sistema se sabe que se debe cumplir:
Todo esto se puede representar en una tabla de estados como la tabla E1.1, donde denominamos al
estado actual q(t), al estado siguiente q(t+1), y a las entradas y salidas actuales x(t) y z(t)
respectivamente.
Tabla E1.1. Tabla de estados del ejemplo E1.1.
Estado actual
q(t)
q0
q1
x1
01
x2
10
x3
11
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
-12-
Entrada X0(t)X1(t)
Entrada X0(t)X1(t)
q(t)
Q0(t)
00
01
10
11
00
01
10
11
q0
q1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
Sobre cada arco se indica la entrada que condiciona dicha transicin y la salida
para esa entrada y ese estado actual, con una barra inclinada entre ellas,
x(t)/z(t).
Figura 5. Ejemplo que refleja la forma general de representar los diagramas de estados o
grafos de los autmatas de Mealy.
-13-
Estado actual
q(t)
q0
q1
q2
.
qp-1
x0
xn-1
Salida actual
z(t)
h[f(q0, xn-1)]
h[f(q1, xn-1)]
h[f(q2, xn-1)]
......
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 fsicas X0, X1, lo que supone un total
de 4 posibles entradas {00, 01, 10, 11}, 4 estados internos Q ={q0, q1, q2, q3} que se codifican con 2 lneas
de estado (Q0 y Q1) y una salida fsica, Z0, por lo que z puede adoptar 2 posibles valores, 0 y 1. Si de la
definicin del sistema se sabe que debe cumplir:
-14-
Estado actual
q(t)
00
01
11
10
Salida
actual
z(t)
q0
q1
q2
q3
q0
q2
q0
q2
q2
q1
q2
q1
q1
q3
q1
q3
q2
q1
q2
q1
0
0
1
1
Entrada x(t)
En los grafos de los autmatas de Moore, los estados y las salidas que les corresponden se
muestran dentro de crculos. Las transiciones entre estados se indican con arcos que conectan
dos estados y sobre estos arcos se indican las entradas que condicionan las transiciones. En
la figura 6 se muestra la forma general de un diagrama de estados o grafo para el caso de un
autmata de Moore. Considrese la figura como una parte de un grafo mayor, de forma que las
transiciones que aparentemente llegan o van a ningn estado, realmente son transiciones al
resto del grafo.
-15-
-16-
-17-
J1t = 1
K 1t = Q 1t X 0 t
J2 t = Q 1t X 0 t Q 2 t
K 2 t = Q 1t X 0 t
En nuestro ejemplo, las ecuaciones lgicas de las entradas de los flip-flops son:
4.2. Obtener las ecuaciones lgicas del prximo estado: las prximas salidas de los flip-flops
[Q(t+1) /Q(t+1)]. Para ello se sustituirn las expresiones lgicas de las entradas (obtenidas
en el punto anterior) en las ecuaciones de la salida del tipo de biestable que se est utilizando.
Recurdese que las ecuaciones de los flip-flops son:
Q 1 (t + 1) = Q 1 (t)
Q 2 (t + 1) = Q 2 (t) + Q 1 (t) X 0 (t) Q 2 (t)
4.3. El tercer paso consiste en obtener las funciones lgicas que relacionan las variables de
salida del sistema con el estado actual (salidas de los flip-flops) y las entradas del sistema.
En el ejemplo solamente hay una salida (Z0), que coincide con K2:
-18-
0
1
0
1
11
10
01
00
11
10
01
10
Q2(t+1) Q1(t+1)
Prximos estados
1
0
1
0
Z0(t)
Salida actual
0
1
0
1
11/1
10/1
01/1
00/1
11/1
10/0
01/1
10/0
Q2(t+1)Q1(t+1)/Z0(t)
Prximo estado/ Salida actual
4.5. Asignar un nombre (q0, q1, q2, etc.) a cada combinacin binaria de las salidas de los flipflops y reescribir la tabla obtenida en el punto 4.4 como tabla de estados.
Por ejemplo, en un caso en el que haya 2 biestables, si denominamos q0 a la combinacin 00,
el circuito estar en el estado q0 cuando la salida de los dos biestables sea 0, y si llamamos q1
a la combinacin 01, el circuito estar en el estado q1 cuando Q1=1 y Q0=0.
Para el ejemplo 3, haciendo la siguiente asignacin de estados: q0 = 00, q1 = 01, q2=10, q3= 11, la tabla
de estados ser (tabla E3.3):
Tabla E3.3. Tabla de estados del ejemplo 3.
Estado actual
q(t)
q0
q1
q2
q3
q3/1
q2/1
q1/1
q0/1
q3/1
q2/0
q1/1
q2 /0
q(t+1)/z(t)
Prximo estado/Salida actual
-19-
El estado inicial es q0 porque los componentes conectados a las entradas asncronas de los biestables
hacen que al conectar la alimentacin se realice un reset, y ambos flip-flops comiencen con salida 0.
Ejemplo 4. Anlisis de un autmata de Moore. Para este ejemplo vamos a utilizar el circuito de la figura
E4.1. Como se puede observar, es un circuito de una sola entrada, dos flip-flops de tipo D y una salida
que depende nicamente de las salidas de los biestables, por tanto, se trata de un autmata de Moore.
D 0 t = Q 0 t X 0 t + Q 1t X 0 t = (Q 0 t + Q 1t ) X 0 t
M. Mazo, S. E. Palazuelos, L. M. Bergasa
-20-
D 1t = Q 1t X 0 t + Q 0 t X 0 t = (Q 1t + Q 0 t ) X 0 t
2) Funcin lgica del estado siguiente:
Z0(t) = Q0(t).Q1(t)
4) A partir de estas ecuaciones, se obtiene la tabla de transiciones codificada mostrada en la
tabla E4.1:
Tabla E4.1. Tabla de transiciones codificada del ejemplo 4.
Estado
actual
Q1(t)Q0(t)
Salida
actual
Z0(t)
00
01
10
11
00
00
00
00
01
10
11
11
0
0
0
1
Entrada X0(t)
Q1(t+1) Q0(t+1)
Prximos estados
5) Haciendo la siguiente asignacin de estados: q0 = 00, q1 = 01, q2=10, q3= 11, la tabla de estados ser
la tabla E4.2, y el grafo de comportamiento del sistema es el mostrado en la figura E4.2:
Tabla E4.2. Tabla de estados del ejemplo 4.
Estado actual
q(t)
q0
q1
q2
q3
Salida
actual
z(t)
q0
q0
q0
q0
q1
q2
q3
q3
0
0
0
1
Entrada x(t)
Prximo
estado q(t+1)
El estado inicial es q0 porque el circuito conectado a las entradas asncronas de los biestables, que hacen
que al conectar la alimentacin ambos biestables comiencen con salida 0.
-21-
-22-
-23-
2)
3)
3. Seleccionar un estado inicial, llammosle q0, (este estado inicial, en muchos casos,
lo sugiere el propio enunciado). Partiendo de este estado inicial, y para cada una de
las posibles combinaciones de entrada, establecer la salida y el siguiente estado
(que puede ser otro o incluso el mismo).
4. Si se trata de una mquina de Mealy: sobre cada flecha que une dos estados indicar
la combinacin de entrada que origina dicha transicin entre estados y la salida
actual.
5. Si se trata de una mquina de Moore: indicar sobre cada flecha que une dos estados
la combinacin de entrada (entrada actual) que origina dicha transicin entre
estados. Las salidas correspondientes a cada estado se indican junto a l, dentro del
crculo.
6. El proceso indicado en 4) (caso de mquina de Mealy) o 5) (caso de mquina de
Moore) se repite para todos los estados.
Ejemplo 5: En este caso, el circuito dispone de una sola entrada, que llamaremos X0, y una salida, que
llamaremos Z0. En cuanto a los estados, se puede pensar inicialmente en los siguientes:
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
-24-
q(t)
q0
q1
q2
q3
q0/0
q2/0
q0/0
q2/0
q1/0
q1/0
q3/1
q1/0
q(t+1)/z(t)
Prximo estado/salida
-25-
2)
Con el fin de ilustrar este proceso de minimizacin vamos a utilizar una tabla de estados
suficientemente significativa, que nos permita tener una idea clara del proceso a seguir. La tabla
que vamos a utilizar es la mostrada a continuacin (tabla 5).
Estado actual
q(t)
q0
q0/0
q1/0
q1
q1/0
q4/0
q2
q2/0
q7/0
q3
q0/1
q1/0
q4
q0/1
q1/0
q5
q4/1
q5/0
q6
q1/0
q4/0
q7
q3/0
q4/1
q(t+1)/z(t)
Prximo estado/salida actual
-26-
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
00
01
10
Grupos
q0
q1
q2
q6
q7
q3
q4
q5
Grupos de los
prximos estados
A, A
A, C
A, B
A, C
C, C
A, A
A, A
C, C
3. Si en esta ltima tabla hay algn grupo (casillas de la segunda fila) dentro del cual hay
algn estado actual que forma parte del grupo que no tiene los mismos grupos de los
prximos estados (casillas de la ltima fila), esto significa que los estados actuales de
dicho grupo no son equivalentes entre s. En este caso hay que dividir dicho grupo en
otros ms pequeos que contengan estados actuales con los mismos grupos de los
prximos estados.
Siguiendo esta idea, en nuestro ejemplo, el grupo A hay que dividirlo en tres grupos, que
llamaremos A, D, E; el grupo C hay que dividirlo en dos grupos, que llamaremos C, F. Una
vez realizada esta divisin, hay que asignar los nuevos grupos de los prximos estados,
obtenindose la tabla 7:
Tabla 7. Tabla 6 subdividiendo los estados en grupos con los mismos grupos de prximos estados.
Salidas
00
Grupos
q0
q1
A,D
D,C
01
10
q6
q2
q7
q3
q4
q5
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 prximos estados.
Dentro de esta tabla final los estados actuales que constituyen el grupo de cada grupo
son estados equivalentes entre s, y se pueden sustituir por un nico estado.
Segn esto, la tabla 7 es ya la tabla final, ya que los estados actuales que constituyen el
grupo de cada grupo tienen los mismos grupos de los prximos estados. Por tanto q1
y q6 son estados equivalentes y tambin lo son q3 y q4. Es necesario asignar un nombre a
los nuevos estados, que son los grupos definitivos. As, por ejemplo, se pueden identificar
los estados finales utilizando como subndice la letra del grupo al que pertenecen. En
M. Mazo, S. E. Palazuelos, L. M. Bergasa
-27-
nuestro caso, por tanto, tenemos: qa = q0, qb = q7, qc = q3 = q4, qd = q1 =q6, qe =q2, y qf = q5 y,
sustituyendo estos nuevos estados en la tabla 5 se obtiene la tabla mnima equivalente a
la misma, que resulta ser la mostrada a continuacin (tabla 8):
Tabla 8. Tabla mnima correspondiente a la tabla 5.
Estado actual
q(t)
qa
qb
qc
qd
qe
qf
qd/0
qc/1
qd/0
qc/0
qb/0
qf/0
q(t+1)/z(t)
Prximo estado/salida actual
En el ejemplo 5 se puede ver (tabla E5.1) que los estados q1 y q3 son equivalentes, por ello
denominaremos a los nuevos estados qa =q0, qb =q1= q3, y qc=q2, resultando la siguiente tabla:
Tabla E5.2. Tabla de estados mnima del ejemplo 5.
Estado actual
q(t)
qa
qa/0
qb/0
qb
qc/0
qb/0
qc
qa/0
qb/1
q(t+1)/z(t)
Prximo estado/salida actual
2m
2m!
N! = m
(2 N)!
N
M. Mazo, S. E. Palazuelos, L. M. Bergasa
-28-
Una alternativa prctica es utilizar ciertas reglas, basadas nicamente en los estados actuales
q(t) y prximos q(t+1) de la tabla de estados. Estas reglas, sin entrar en su justificacin,
persiguen minimizar la lgica necesaria en las entradas de los biestables. De forma resumida
estas reglas son:
1. Buscar en la tabla de estados, estados actuales (q(t)) que tengan idnticos prximos
estados para las mismas entradas. Esto es, buscar por filas estados actuales que
tengan dentro de cada columna (cada columna se corresponde con una entrada) de
estados prximos, estados prximos iguales. A los estados actuales que cumplan esta
condicin les vamos a llamar actuales-uno, y a sus prximos estados, si son distintos,
los denominaremos prximos-uno. Para conseguir una realizacin buena del circuito,
se deben asignar cdigos binarios adyacentes (que slo se diferencien en un bit) a los
estados actuales-uno y tambin debern ser adyacentes las asignaciones de los
prximos-uno (si son distintos).
2. Buscar en la tabla de estados, estados actuales (q(t)) que tengan idnticos prximos
estados, y en la misma cantidad, pero para entradas diferentes. Esto es, buscar
por filas estados actuales que tengan para diferentes columnas de estados prximos,
estados prximos iguales (y en la misma cantidad). A los estados actuales que
cumplan esta condicin les vamos a llamar actuales-dos, y a sus prximos estados si
son distintos los denominaremos prximos-dos. Para conseguir una realizacin buena
del circuito, se deben asignar cdigos binarios adyacentes a los estados actuales-dos
y tambin se debe hacer lo mismo con los estados prximos-dos.
3. Buscar en la tabla de estados, estados actuales (q(t)) que tengan idnticos prximos
estados para alguna de las entradas. Esto es, buscar por filas estados actuales que
tengan en algunas columnas estados prximos iguales. A los estados actuales que
cumplan esta condicin les vamos a llamar actuales-tres. Para conseguir una
realizacin buena del circuito, se deben asignar cdigos binarios adyacentes a los
estados actuales-tres, teniendo prioridad aquellos estados actuales-tres que tengan
mayor nmero de prximos estados iguales.
4. Otra regla prctica es asignar cdigos adyacentes a los prximos estados de cada fila.
5. Y por ltimo, para una realizacin buena del circuito, se deben asignar cdigos
binarios adyacentes a cada estado actual con sus prximos estados.
Dado que no siempre se podr conseguir aplicar todas estas reglas, el orden de prioridad de
aplicacin es el mismo que el de su numeracin en esta lista.
Un consejo prctico, para tener claros los cdigos adyacentes, es utilizar mapas de Karnaugh
(con los que el alumno ya est familiarizado, y donde estn presentes todas las posibilidades
de adyacencia) con tantas variables como flip-flops tenga el circuito a disear.
Con el fin de dar mayor claridad a la aplicacin de estas reglas prcticas vamos a utilizar la
tabla de estados de la tabla 9. Lgicamente, si esta tabla se fuera a implementar habra que
minimizarla, pero para dar mayor claridad al proceso de asignacin de estados se va a utilizar
como est:
-29-
Estado actual
q(t)
q0/0
q0/1
q4/0
q4/1
q2/1
q0/1
q1/0
q2/0
q0
q1
q2
q3
q4
q5
q6
q7
q0/0
q7/0
q5/1
q5/0
q1/1
q0/0
q2/1
q7/1
q1/0
q2/1
q0/0
q3/1
q3/1
q1/1
q1/0
q2/0
q2/0
q6/0
q2/1
q3/0
q1/1
q2/0
q3/1
q6/1
q(t+1)/z(t)
Prximo estado/salida actual
Segn esto, una posible asignacin es la indicada en el mapa de Karnaugh de la tabla 10.
Una vez realizada la asignacin de estados se obtiene la tabla de transiciones codificada (mera
traduccin de la tabla de estados) tal como se hizo en el apartado de diseo. Es aconsejable
que en la tabla de transiciones codificada aparezcan en columnas diferentes los prximos
estados y las salidas actuales.
Es evidente que si hay N estados y se utilizan m flip-flops, habr 2m - N combinaciones de las
salidas de los biestables que no se correspondan con ningn estado de nuestro grafo. Esas
combinaciones no aparecen nunca en la evolucin del circuito, y, por tanto, en el diseo
podemos asignarle cualquier valor (X) tanto a sus salidas como a su estado siguiente.
Ejemplo 5. Asignacin de estados del ejemplo 5: qa= 00, qb=01, qc=10.
-30-
A partir de la asignacin de estados anterior y de la tabla de estados E5.2, la tabla de transicin codificada
del ejemplo 5 se muestra en la tabla E5.3, reflejando en columnas diferentes los prximos estados y las
salidas actuales.
Tabla E5.3. Tabla de transicin codificada del ejemplo 5.
Entrada actual
X0(t)
Estado actual
Entrada actual
X0(t)
q(t)
Q1(t)Q0(t)
q0
q1
q2
q3
00
01
10
11
00
10
00
XX
01
01
01
XX
0
0
0
X
0
0
1
X
Q1(t+1) Q0(t+1)
Prximos estados
Z0(t)
Salida actual
-31-
Tabla 11. Excitacin necesaria para producir cada transicin en los distintos tipos de biestables.
Q(t)
Q(t+1)
0
0
1
1
0
1
0
1
S R
J K
0
1
0
X
0
1
X
X
0
1
1
0
0
1
0
1
X
0
1
0
X
X
1
0
Entrada actual
X0(t)
Entrada actual
X0(t)
Entrada actual
X0(t)
q(t)
Q1(t)Q0(t)
qa
qb
qc
00
01
10
11
00
10
00
XX
01
01
01
XX
0X
1X
X1
XX
0X
0X
X1
XX
0X
X1
0X
XX
1X
X0
1X
XX
Q1(t+1) Q0(t+1)
Prximos estados
J1(t) K1(t)
Entrada actual
biestable 1
J0(t) K0(t)
Entrada actual
biestable 0
Los mapas de Karnaugh correspondientes a las entradas de los dos flip-flops se muestran en la figura
E5.3, junto a las funciones de entrada ya simplificadas.
-32-
J0 t = X 0 t
K 0t = X0t
J1t = Q 0 t X 0 t
K 1t = 1
Figura E5.3. Funciones lgicas de las entradas de los flip-flops del ejemplo 5.
Ejemplo 5:
Entradas de los flip flops:
J0 t = X 0 t
K0t = X0t
J1t = Q 0 t X 0 t
K 1t = 1
Salida:
Z 0 t = X 0 t Q 1t
-33-
Ejemplo 5: En este caso debemos aadir los componentes necesarios para que el circuito al ser
alimentado comience en el estado q0=00.
-34-
La entrada asncrona no utilizada debe estar conectada siempre al valor necesario para que
el biestable funcione de forma sncrona: en este ejemplo, como el PR es activo a nivel bajo
hemos conectado los dos a Vcc.
Adems, en algunos casos es necesario incluir la posibilidad de reiniciar el sistema en cualquier
momento, es decir, hacer que se site en el estado inicial de forma asncrona, (por ejemplo,
controlndolo con un pulsador). Esto se representa en el grafo como una transicin al estado
inicial que no llega de ningn otro estado del grafo, y junto a la que aparece el nombre de la
entrada asncrona que la controla, como se puede observar en la figura E5.6.
-35-
6. Ejercicios resueltos
secuenciales sncronos
sobre
sntesis
de
circuitos
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
Segn la tabla E6.1, si estando en el estado q0 (acarreo anterior=0) los bits X0 y X1 toman
valores X0=0 y X1= 0, X0= 0 y X1= 1 X0=1 y X1=0 la suma es 0, 1, 1, respectivamente y el
acarreo generado es 0 en todos los casos, es decir, el estado siguiente es q0. Sin embargo, si
el dato es X0=1 y X1=1, la suma es S=0 y se produce acarreo, por tanto, el estado siguiente ser
q1.
Por otra parte, si en q1 (acarreo anterior=1) los datos de entrada son X0=0 y X1=1, X0=1 y X1=0
X0=1 y X1=1 la suma es 0 (acarreo anterior (1) + 0 + 1 = 0), 0 (acarreo anterior (1) + 1 + 0 =
0), 1 (acarreo anterior (1) + 1 + 1 = 1), respectivamente, y en todos los casos el acarreo
generado es 1, lo que hace que permanezca en el estado q1. Por el contrario, si los datos son
X0=0 y X1=0, la suma es 1 y el acarreo generado es 0, y se pasa al estado q0. El estado inicial
ser q0, porque el primer acarreo es 0.
M. Mazo, S. E. Palazuelos, L. M. Bergasa
-36-
Entrada actual
Estado actual
q(t)
q0
q1
x0
00
x1
01
x2
10
x3
11
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 asignacin de estados puede ser: q0=
0, q1= 1 y la tabla de transiciones codificada es la mostrada a continuacin (tabla E6.3). En ella,
Q0 es la salida fsica del flip-flop, las lneas de entrada del circuito son X0 y X1, y la salida fsica
Z0.
Tabla E6.3. Tabla de estados codificada.
Entrada actual
X0(t) X1(t)
Estado actual
Entrada actual
X0(t) X1(t)
q(t)
Q0(t)
00
01
10
11
00
01
10
11
q0
q1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
Q0(t+1)
Prximo estado
Z0(t)
Salida actual
Una vez que tenemos ya las transiciones del autmata como cambios entre 0 y 1 de Q0(t),
debemos obtener la funcin de excitacin del biestable para conseguir que se produzcan dichas
transiciones. Segn la tabla 11, para un biestable JK, y denominando J0 y K0 a las entradas,
obtenemos la tabla E6.4.
-37-
Obsrvese que las columnas de la izquierda dentro del cuadro Entradas del flip-flop para cada
combinacin de entrada, corresponden al valor que debe tomar J0 y las columnas de la derecha
corresponden a K0.
Tabla E6.4. Tabla de excitacin del biestable.
Entrada actual
X0(t) X1(t)
Estado actual
Entrada actual
X0(t) X1(t)
q(t)
Q0(t)
00
01
10
11
00
01
10
11
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)
Prximos estados
J0(t) K0(t)
Entradas actuales
del flip-flop
Utilizando mapas de Karnaugh para obtener las funciones de entrada al flip-flop, se tienen los
resultados mostrados en la figura E6.2.
J0 t = X 0 t X 1 t
K 0 t = X 0 t X 1t
A partir de este mapa de Karnaugh se obtiene como funcin de salida la siguiente expresin:
-38-
Z 0 t = X 0 t X 1t Q 0 t + X 0 t X 1t Q 0 t + X 0 t X 1t Q 0 t + X 0 t X 1t Q 0 t
= X 0 t X 1t Q 0 t
Por ltimo, conectamos en las entradas asncronas del biestable los componentes necesarios
para asegurar que empezar en el estado q0, es decir, que al conectar la alimentacin Q0=0.
Como se puede observar, en este ejemplo las entradas asncronas son activas a nivel alto. Se
desea que la salida inicial del biestable sea 0, por lo que el PR se ha conectado a nivel bajo,
para que permita actuar a las entradas sncronas, y el circuito de control del CLR se ha
diseado de forma que proporcione un nivel alto al conectar la alimentacin, realizando un
reset, y, transcurrido un tiempo (determinado por los valores de R y C), un nivel bajo, para que
el biestable funcione de forma sncrona. La funcin del diodo es la misma que la del diodo del
ejemplo 5.
-39-
Estado
actual
q(t)
q0
q1
q2
q3
Entrada
actual x(t)
0
Salida
actual
z(t)
q0
q0
q0
q0
q1
q2
q3
q3
0
0
0
1
Prximo
estado q(t+1)
Figura E7.1. Grafo correspondiente al
ejemplo 7.
-40-
Como hay 4 estados se necesitan 2 flip-flops, y cada estado se codificar con una combinacin
de 2 bits. La asignacin de estados puede ser: q0= 00, q1= 01, q2= 10, q3=11, y con esto se
puede rescribir la tabla E7.1, obteniendo la tabla de estados codificada, que se muestra en la
tabla E7.2.
En este caso se van a utilizar flip-flops de tipo D, a cuyas salidas denominaremos Q1 y Q0 y a
sus entradas D1 y D0 respectivamente. A continuacin debemos calcular la excitacin que es
necesario aplicar a cada una de estas entradas para obtener las transiciones buscadas.
Recordemos que esta informacin estaba incluida en la tabla 11 para todos los tipos de
biestables, y en este ejemplo debemos utilizar la columna de los biestables D. En la tabla E7.3
se muestra la excitacin de los biestables para obtener las transiciones de la tabla E7.2.
Tabla E7.2. Tabla de estados codificada del ejemplo 7.
q(t)
Q1(t)Q0(t)
Salida
actual
Z0(t)
q0
q1
q2
q3
00
01
10
11
00
00
00
00
01
10
11
11
0
0
0
1
Estado actual
Q1(t+1) Q0(t+1)
Prximos estados
Tabla E7.3. Tabla de excitacin 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)
q0
q1
q2
q3
00
01
10
11
00
00
00
00
01
10
11
11
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
Q1(t+1) Q0(t+1)
Prximos
estados
D1t
Entrada actual
biestable 1
D0t
Entrada actual
biestable 0
-41-
D 0 t = Q 0 t X 0 t + Q 1t X 0 t = (Q 0 t + Q 1t ) X 0 t
D 1t = Q 1t X 0 t + Q 0 t X 0 t = (Q 1t + Q 0 t ) X 0 t
Figura E7.2. Funciones lgicas de las entradas de los flip-flops del ejemplo 7.
Ahora ya tenemos todas las funciones necesarias para implementar el circuito, que se muestra
en la figura E7.3.
Por ltimo, es necesario incluir el control de las entradas asncronas de los biestables para
asegurar que el estado inicial sea q0, es decir, que la salida de ambos biestables sea cero al
conectar la alimentacin. El circuito completo se muestra en la figura E7.4.
-42-
Figura E7.4. Circuito detector de la secuencia 111" incluyendo el control de las entradas asncronas.
-43-
q0
q1
q2
q3
q4
q5
q6
q7
q8
q9
q1
q2
q3
q4
q5
q6
q7
q8
q9
q0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
En este caso hay diez estados, por lo tanto se necesitan 4 flip-flops. Una posible asignacin de
estados es la siguiente: q0= 0000, q1= 0001, q2= 0010, q3=0011,q4= 0100, q5= 0101, q6= 0110,
q7=0111, q8=1000, q9=1001, y sustituyendo los cdigos en la tabla E8.1, obtenemos la tabla de
estados codificada, mostrada en la tabla E8.2. Los estados 1010, 1011, 1100, 1101, 1110 y
1111 nunca se presentan y, por tanto, a las salidas y prximos estados correspondientes se les
puede asignar cualquier valor, situacin que se indica con la letra X.
Tabla E8.2. Tabla de estados codificada del ejemplo 8.
Estado actual
Q3(t) Q2(t) Q1(t) Q0(t)
Prximos estados
Q3(t+1) Q2(t+1) Q1(t+1) Q0(t+1)
Salida actual
Z3(t) Z2(t) Z1(t) Z0(t)
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0001
0010
0011
0100
0101
0110
0111
1000
1001
0000
XXXX
XXXX
XXXX
XXXX
XXXX
XXXX
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
XXXX
XXXX
XXXX
XXXX
XXXX
XXXX
-44-
JK, y denominaremos Q3, Q2, Q1, Q0 a sus salidas y J3, K3; J2, K2; J1, K1 y J0, K0 a sus entradas,
respectivamente. Como en ejemplos anteriores, utilizaremos la informacin contenida en la tabla
11, en la columna referida a los biestables JK, para saber la excitacin necesaria para producir
cada transicin. Con ella completaremos la tabla de excitacin de los biestables, tabla E8.3, y,
a partir de ella, obtendremos las funciones de entrada de los biestables de la figura E8.2.
Tabla E8.3. Tabla de excitacin de los flip-flops del ejemplo 8.
Estado actual
Prximos estados
J3t K3t
J2t K2t
J1t K1t
J0t K0t
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0001
0010
0011
0100
0101
0110
0111
1000
1001
0000
XXXX
XXXX
XXXX
XXXX
XXXX
XXXX
0X
0X
0X
0X
0X
0X
0X
1X
X0
X1
XX
XX
XX
XX
XX
XX
0X
0X
0X
1X
X0
X0
X0
X1
0X
0X
XX
XX
XX
XX
XX
XX
0X
1X
X0
X1
0X
1X
X0
X1
0X
0X
XX
XX
XX
XX
XX
XX
1X
X1
1X
X1
1X
X1
1X
X1
1X
X1
XX
XX
XX
XX
XX
XX
-45-
Entradas flip-flops
K0t = 1
J0 t = 1
K 1t = Q 0 t
J1t = Q 0 t Q 3 t
K 2 t = Q 1t Q 0 t
J2 t = Q 0 t Q 1t
J3 t = Q 2 t Q 1t Q 0 t
K 3 t = Q0 t
Por ltimo, debemos calcular las funciones lgicas de las cuatro salidas, Z3, Z2, Z1 y Z0. A partir
de la tabla E8.2, y utilizando mapas de Karnaugh para simplificar, se obtienen las funciones de
la figura E8.3.
Una vez obtenidas las funciones lgicas de las salidas del circuito y de las entradas de los
biestables, podemos implementar el circuito, como se muestra en la figura 8.4, y por ltimo,
aadir en las entradas asncronas las conexiones necesarias para que empiece a contar por el
0, obteniendo el circuito de la figura 8.5.
-46-
Z0 t = Q0 t
Z 1t = Q 1t
Z2t = Q2t
Z3 t = Q3 t
Figura E8.3. Mapas de Karnaugh y expresiones lgicas de las salidas del autmata.
-47-
Figura E8.5. Contador BCD del ejemplo 8, incluyendo el control de las entradas asncronas.
-48-
7. Ejercicios propuestos
1. Disese un circuito secuencial sncrono tipo Moore que proporcione a su salida un nivel alto
cada vez que en su lnea de entrada se presente la secuencia 010.
2. Disese un circuito detector de paridad para caracteres binarios de 4 bits, que se reciben
en serie por una lnea X0. La salida Z0 debe ponerse a 1 si en el momento de llegar el cuarto bit
el nmero de 1's es par y permanecer en 0 en caso contrario. Despus del cuarto bit el sistema
debe volver al estado inicial, quedando preparado para recibir el siguiente carcter.
3. Castillo encantado. Un ejemplo curioso (ASHBY, 1956 y reproducido en Fundamentos de
los Ordenadores - G. Fernndez y F. Senz) es el del castillo encantado:
El problema se expone en una carta dirigida a un amigo: Querido amigo: Al poco tiempo de
comprar esta vieja mansin tuve la desagradable sorpresa de comprobar que est hechizada
con dos sonidos de ultratumba que la hacen prcticamente inhabitable: un canto picaresco y una
risa sardnica.
Sin embargo, an conservo cierta esperanza, pues la experiencia me ha demostrado que su
comportamiento obedece a ciertas leyes, oscuras pero infalibles, y que puede modificarse
tocando el rgano y quemando incienso.
En cada minuto, cada sonido est presente o ausente. Lo que cada uno de ellos har en el
minuto siguiente depende de lo que pasa en el minuto actual, de la siguiente manera:
El canto conservar el mismo estado (presente o ausente) salvo si durante el minuto actual no
se oye la risa y toco el rgano, en cuyo caso el canto toma el estado opuesto.
En cuanto a la risa, si no quemo incienso, se oir o no segn que el canto est presente o
ausente (de modo que la risa imita al canto con un minuto de retardo). Ahora bien, si quemo
incienso la risa har justamente lo contrario de lo que haca el canto.
En el momento en que te escribo estoy oyendo a la vez la risa y el canto. Te quedara muy
agradecido si me dices qu manipulaciones de rgano e incienso debo seguir para restablecer
definitivamente la calma.
A partir de este enunciado, obtngase el grafo del autmata de Moore correspondiente.
-49-