Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cap11-Análisis y Diseño PDF
Cap11-Análisis y Diseño PDF
Capítulo 11
11.1. Análisis
Dado el esquemático de una red secuencial sincrónica se desea obtener el diagrama de estados;
y a partir de éste, inferir el funcionamiento de la máquina. Este procedimiento se suele llamar
reingeniería.
Reset’
x(k) P1 z(k) P2
y(k)
Q
y(k+1)
Clk
El estado actual y (k ) es sostenido en las salidas Q(k ) de los flip-flops, durante el intervalo de
tiempo k. En este intervalo, se generan z (k ) e y (k 1) a partir de y (k ) y x(k ) , en la red
combinacional. El próximo estado, y (k 1) , se lleva a las entradas de los flip-flops, de tal
manera que en el instante (k +1) las salidas de los flip-flops, almacenaran los valores y (k 1) .
Para esto es indispensable que las entradas a los flip-flops sean estables en el momento de
aplicar el canto del reloj que efectuará la conmutación, o cambio de estado, que implica pasar
del intervalo k al intervalo (k+1).
A partir del esquemático de la red booleana pueden escribirse las funciones de las entradas de
los flip-flops en función de la entrada y el estado presente, se denominan programas de los flip-
flops, o ecuaciones de excitación de éstos.
El método de análisis tabular está basado en obtener la matriz de transiciones a partir de las
matrices de programación. En cada casilla, de cada una de las (m+1) matrices de programación,
mediante las tablas características, se determinan las (m+1) componentes del vector de próximo
estado de cada casilla de la matriz de transición.
x x
y y
J K y(k+1)
0 0 y(k)
0 1 0
1 0 1
Ji, Ki 1 1 y’(k) y(k+1)
Se muestra sólo la matriz de programación del flip-flop i-ésimo, que se asume del tipo JK. Para
cada par ( J i , Ki ) de la matriz de programación i-ésima, mediante la tabla característica, se
encuentra el próximo estado yi (k 1) asociado; componiendo de este modo el vector y(k+1).
Las ecuaciones de los programas de los flip-flops, que se asumen del tipo JK:
Ji f i ( y, x)
Ki gi ( y, x)
yi (k 1) J i yi ' Ki ' yi
yi (k 1) fi ( y(k ), x(k ))
Las que representadas en un mapa de Karnaugh, forman la matriz de transiciones.
A
J Q S
J
x K Q’
C
clk K
P
1
reset
B
S
J Q
C _
K Q
P z
C
S
J
C _
K Q
P
Leyendo las ecuaciones de las entradas de los flip-flops, directamente del esquemático, se
obtienen:
JA ( B ' C B ' x '); K A B
JB ( AB ' B ' C ); K B B
JC A ' x; K C B x'
Para obtener la matriz de programación del flip-flop A: Se debe establecer JA y KA para cada
combinación posible del estado presente y la entrada. Se procede en forma análoga para los
flip-flops B y C.
Este proceso de ilustra en la Figura 11.4, para cada uno de los flip-flops, se obtienen las
siguientes matrices de programación:
x x x
ABC 0 1 ABC 0 1 ABC 0 1
000 10 00 000 00 00 000 01 10
001 10 10 001 10 10 001 01 10
011 01 01 011 01 01 011 01 11
010 01 01 010 01 01 010 01 11
110 01 01 110 01 01 110 01 01
111 01 01 111 01 01 111 01 01
101 10 10 101 10 10 101 01 00
100 10 00 100 10 10 100 01 00
J , K J , K J , K
A A B B C C
A A A
Para todas las ocurrencias de (J,K) igual a (1,0) en las tablas de la Figura 11.4, se coloca un 1 en
la columna correspondiente de la Figura 11.5; se coloca 0 para (J, K) igual a (0,1).
Para (J, K) igual a (0,0) en las tablas de la Figura 11.4, se coloca el valor actual de la variable en
la columna correspondiente de la Figura 11.5.
Para (J, K) igual a (1,1) en las tablas de la Figura 11.4, se coloca el valor complementado de la
variable actual en la columna correspondiente de la Figura 11.5.
Si colocamos la cifra decimal, equivalente del nombre binario del estado, se logra la matriz de
transiciones, empleando nombres simbólicos para los estados. Se obtiene la Figura 11.6,
izquierda. Y de esta matriz se obtiene el diagrama de estados que se ilustra a la derecha en la
Figura 11.6.
3
0/0 2
Estado x 0/0
actual 0 1 1/1
0 1/0
0 4/0 1/0
1 6/0 7/0 0/0 1/0
3 0/0 0/1
2 0/0 1/0 4 /0 1 1/1
6 0/0 0/0 0/0
7 0/0 0/1 /0 0/0 1/0
5 6/0 7/0
4 6/0 6/0 6 7
Estado próximo/z
0/0 1/0
5
Se observa que los estados 2, 3 y 5 sólo pueden ser estados iniciales y no participan de la
naturaleza secuencial del resto. Si no se dibujan, resulta la Figura 11.7.
reset
0
0/0
0/0
1/0
1/1
4 /0 1
1/0
/0
0/0
7
6
En la Figura 11.7, con estado inicial igual a cero, puede concluirse que el circuito es un
reconocedor de secuencia de largo fijo igual a 3. A partir del estado inicial acepta tres valores de
la entrada y luego toma una decisión.
La máquina analiza grupos de 3 bits de la secuencia de entrada, y si ésta es 111, genera un uno
en la salida; cero en el resto de los casos.
A(k 1) JA A KAA
B(k 1) JB B KBB
C (k 1) JC C KCC
Donde se han reemplazado las salidas Q de los flip-flops, por las variables de estado: A, B y C.
b) Analizar la máquina secuencial descrita por el diagrama de bloques, de la Figura 11.9, y las
ecuaciones siguientes:
z1
x M.S.S. z 2
z3
clk
Figura 11.9. Entradas y salidas de máquina secuencial.
J1 xy2 ; K1 x z1 y1 y2
z2 xy1 y2
J2 xy1 ; K2 x z3 y1 y2
Y1 J1 y1 K1 y1
Y2 J 2 y2 K 2 y2
Las ecuaciones de las salidas pueden escribirse, empleando el mapa de Karnaugh, de la Figura
11.11:
Con la asignación de estados, de la Figura 11.12, en la que se emplea como nombre lógico el
equivalente decimal del nombre físico o binario, se obtiene el diagrama de estados que se
muestra en la Figura 11.13.
x
Estado 0 1
0 0 1
1 1 2
3 3 0
2 2 0
Est. próximo
0/100
1/100 0/000
0 1
1/001
1/100 x/z1z2z3
1/010
0/001 2 0/000
3
Notar que debido a que z2 depende de x, se modeló mediante una máquina de Mealy.
Red J
Combinacional Q
K
tp tf
reloj
Si tenemos un reloj:
t0 t1 t
Sea tpmin el mínimo tiempo que tardan los cambios de las señales en atravesar la red
combinacional, y tfmin el mínimo tiempo en que cambian las salidas de los flip-flops,
después del canto; entonces debe cumplirse: tpmin + tfmin + tskew > thold
Si puede asegurarse que las entradas no cambian tsu antes del canto y thold después del canto, el
flip-flop funcionará confiablemente. Esta verificación debe efectuarse para cada uno de los flip-
flops de la red booleana.
El problema que deseamos resolver es obtener las redes combinacionales que programan los
flip-flops de una red secuencial, a partir del diagrama de estados, reducido y con asignación de
estados. De estas ecuaciones puede obtenerse el esquemático, o el programa verilog para la
implementación física.
Esquemáticamente:
Ji, Ki
y(k) y(k+1) JK
Si se tienen (n+1) entradas y (m+1) flip-flops, los vectores booleanos de la entrada y el estado
quedan representados por:
En el esquema anterior se ilustra empleando flip-flops de tipo JK, se procede en forma similar si
los flip-flops son de otro tipo. Se eliminan las variables de próximo estado, obteniéndose las
matrices de programación.
Q(k) Q(k+1) D J K T S R
0 0 0 0 0 0
0 1 1 1 1 1 0
1 0 0 1 1 0 1
1 1 1 0 0 0
Luego, en el Capítulo 14, se verán los flip-flops SR, cuyas tablas se indican en las últimas dos
columnas de la Figura 11.17.
Ejemplo 11.8.1.
Para el detector de secuencia 110 cada vez que ésta se presente, se tiene:
1/0 1/0
0/0 1/0
reset
0/1
x
Estado Q1 Q0 Q1 Q0 0 1
Start 0 0 0 0 00/0 01/0
Estado 0 0 1 0 1 00/0 11/0
Estado 1 1 1 1 1 00/1 11/0
1 0 dd/d dd/d
Q1+Q0+/z
Figura 11.19. Asignación de estados y matriz de transiciones.
Notar la elección de condiciones superfluas para el estado 10, que no se emplea en el diseño. Se
escogió el estado de start como el 00, para simplificar el diseño de la señal reset; en este caso
basta activar la señal clear asincrónico del flip-flop que se emplee para lograr la función reset.
La elección de condiciones superfluas simplifican las redes combinacionales que efectúan los
programas de los flip-flops.
a) Procedimiento tabular empleando flip-flops Ds:
Usando la tabla de transiciones de flip-flops Ds, se logra:
x
Q1 Q0 0 1
0 0 00 01
0 1 00 11
1 1 00 11
1 0 dd dd
D1D0
Con programas: D1 = Q0 x
D0 = x
Debe notarse que cuando se emplean flip-flops D, los programas de éstos pueden obtenerse
directamente de la matriz de transiciones, cambiando Q1+ por D1 y Q0+ por D0.
b) Método analítico empleando flip-flops Ds:
De la matriz de transiciones se tienen:
z = Q1 x'
Q0+ = x
Q1+ = Q0 x
x x
Q1 Q0 0 1 Q1 Q0 0 1
0 0 0 0 0 0 0 1
0 1 0 1 0 1 1 0
1 1 1 0 1 1 1 0
1 0 1 0
J1K1 J0K0
Figura 11.21. Programas de flip-flops JK
Notar que K1 también se podría haber expresado, como: K1 = x' +Q0' agrupando los ceros, o
bien: K1 = x’Q0 agrupando los unos; sin aprovechar completamente las condiciones superfluas.
d) Método analítico empleando flip-flops JKs:
De la matriz de transiciones de la Figura 11.19, y aplicando el teorema de expansión, para tener
presente a la derecha la variable correspondiente, que figura a la izquierda de cada ecuación, se
logra:
z = Q1 x'
Q1+ = Q0 x = Q0xQ1' + Q0xQ1 (se expande en Q1)
Q0+ = x = xQ0' + xQ0 (se expande en Q0)
Notar que el método analítico, en este caso, agrega el término Q0' que resulta superfluo.
La matriz de transiciones de la Figura 11.20, puede plantearse como una tabla de verdad, entre
las entradas (estado presente y entradas) y las salidas (próximo estado y salidas), según se
muestra en la Figura 11.22.
Entradas Salidas
Q0 Q1 x Q1+ Q2+ z
0 0 0 0 0 0
0 0 1 0 1 0
0 1 0 0 0 0
0 1 1 1 1 0
1 0 0 d d d
1 0 1 d d d
1 1 0 1 0 1
1 1 1 1 1 0
// detector de secuencia 110 cada vez que ésta se presente. Salida registrada.
module mealy110 (input clk, resetn, x, output zs);
reg Q1, Q0, zs;
wire D1, D0;
// Redes combinacionales de próximo estado. P1
Ejemplo 11.8.2.
Determinar los programas de los flip-flops JK, para la siguiente matriz de transiciones.
AB
x 00 01 11 10
0 2 6 4
0 00 00 11 10
1 3 7 5
1 11 11 10 01
A+B+
Figura 11.23. Matriz de transiciones ejemplo 11.8.2.
Se tienen, de la matriz:
A+ = A'x + AB +Ax' = ( x )A' + (B + x') A
B+ = A'x + ABx' +B'x = A'xB' + A'xB + ABx' +B'x = (A'x + x) B' + (A'x + Ax')B
Se han factorizado las ecuaciones, en términos de Qi y Qi’ para cada uno de los flip-flops Qi.
AB
x 00 01 11 10
0 2 6 4
0 010 001 101 000
1 3 7 5
1 000 110 111 011
A+ B+ z
Ejemplo 11.8.4.
Q Q
J
D
K
Q'
reloj
Este diseño se emplea en dispositivos programables que no disponen en las macroceldas de flip-
flops JKs, pero que generalmente disponen de flip-flops Ds.
Q
D
DQ
J Q.f
b
K reloj
n p
clk
Consideramos que a la señal n, que resulta de oprimir un botón, se le han suprimido los rebotes,
y que además está sincronizada, es decir el canto de subida se produce después de que ha
transcurrido un tiempo mayor que el thold de los flip-flops.
Los rebotes pueden filtrarse con un latch, y la sincronización se logra haciendo pasar la señal a
través de uno o dos flip-flops Ds alimentados con el mismo reloj.
Si la salida está asociada al estado, tendremos tres situaciones distinguibles. La primera cuando
se espera un canto de subida con salida cero, la segunda cuando llega un canto de subida con
salida uno, y la tercera cuando se espera un canto de bajada con salida cero.
Si agregamos las condiciones bajo las cuales se cambia de estado, podemos describir que:
Mientras la señal de nivel n, está baja, se permanece en el estado ECS, esperando un canto de
subida, con salida p=0. Cuando en n se presenta un canto de subida se pasa al estado CS, llegó
un canto de subida, con salida p=1.
Estando en CS, si la señal n baja a cero, vuelve a esperar otro canto de subida; es decir pasa al
estado ECS; pero si la señal permanece en nivel alto, pasa a un tercer estado ECB, en el cual se
espera un canto de bajada.
Estando en ECB con salida p=0, se permanece en ese estado mientras la señal n esté alta, y se
pasa a ECS cuando llega un canto de bajada en n.
Estado Próximo
actual estado
Q1 Q0 n Q1+ Q0+ p
0 0 0 0 0 0
0 0 1 0 1 0
0 1 0 0 0 1
0 1 1 1 1 1
1 1 0 0 0 0
1 1 1 1 1 0
1 0 0 x x x
1 0 1 x x x
reset’
Q1 Q0
D D p
n
Q1’
clk
Si la salida está asociada a los cambios de entrada podemos conceptualizar dos estados: uno en
el que se espera un canto de subida, y el otro cuando se espera el canto de bajada.
Estando en ECS: Mientras la entrada esté baja, la salida también debe estar baja y debe
permanecer en ECS; cuando en la entrada se presenta un canto de subida la salida debe activarse
a uno y cambiar al estado ECB.
Estando en ECB: Mientras la entrada esté alta, la salida también debe estar baja y permanecer
en ECB; cuando en la entrada se presenta un canto de bajada la salida debe permanecer baja y
cambiar al estado ECB.
n=0/p=0
Q n Q+ p
0 0 0 0
0 1 1 1
1 0 0 0
1 1 1 0
D=n, p=Q’n
reset’
Q
n D p
Q’
clk
En un circuito físico, cuando se aplica un canto de bajada a la señal reset’, las salidas de los
flop-flops van a cero, llevando la máquina al estado inicial.
reset’
clk
tr
Q0
Q1
p
n
La salida, en el caso de Moore, tomará el valor correspondiente al estado inicial. Las entradas
son ignoradas hasta el primer canto del reloj, luego que se levante la señal de reset, lo cual se
indica con el instante tr, en la Figura 11.35. Se ilustra con una discontinuidad el tiempo que
dura la señal reset en nivel bajo, mostrando que esta situación puede durar varios períodos del
reloj.
En el instante tr, se muestrean las entradas y de acuerdo a éstas se producen los cambios de
estado. En la Figura 11.35 se asumió un nivel bajo de la entrada n, de este modo la máquina
permanece en estado inicial, esperando un canto de subida.
En un modelo de Mealy, la situación es similar para los estados de los flip-flops, pero la salida
dependerá de la entrada, mientras la señal de reset esté baja.
En caso de señales sincrónicas, la situación es similar, salvo que los cambios en los flip-flops se
producen en el siguiente pulso del reloj después de la activación del reset.
En simulación, deben generarse un pulso de reset, para que los flip-flops y las salidas tomen
valores. En caso de no hacerlo, puede que los flip-flops tomen valores desconocidos y no se
generen las secuencias que se desea simular. En un circuito físico, los flip-flops siempre estarán
en algún valor, después de aplicar la polarización.
b) Modelo de Moore.
Para un canto de subida en n, que cumpla con los requerimientos de hold, se tienen:
Q0 cambia un tiempo de propagación de flip-flop, después del canto de subida del reloj.
La salida p, cambia un tiempo de propagación de una compuerta AND, después de cambios en
Q1 o Q0.
El cambio de p se produce en el primer canto del reloj en el cual se tenga la entrada n en alto.
clk
Q0
Q1
c) Modelo de Mealy.
En el modelo de Mealy, la salida cambia cuando cambia la entrada, y suele producirse un ciclo
antes que en el modelo de Moore.
El cambio de estado se produce, un tiempo de propagación de flip-flop, después del canto de
subida del reloj.
n
clk
Q
p
En el modelo de Mealy suelen requerirse menos flip-flops, y genera la salida un tiempo antes
que en modelo de Moore. Sin embargo la salida no es sincrónica con el reloj.
d) Modelo de Mealy, con salida registrada.
Para resolver esta dificultad suele sincronizarse la salida de la máquina de Mealy, registrando la
salida en un flip-flop adicional.
reset’
ps
Q Q
n D p
Q’ D Q’
clk
clk
Q
p
ps
La salida puede generarse con las condiciones del estado próximo, y empleando un flip-flop
para sincronizar la salida.
Antes teníamos: Q1+=nQ0 Q0+=n p=Q1’Q0
reset’
ps
Q1 Q0 Q
p+
n D D D
Q1’ Q0’ Q’
clk
La salida ps, se produce en los mismos tiempos que en el modelo de Moore de la Figura 11.31,
pero se requiere un flip-flop adicional. Debe notarse que ps será sincrónica y no tendrá
perturbaciones.
En la Figura 11.41, se muestran las señales p+ y ps. Se ha dejado la señal p, del diseño anterior,
para comparar los casos.
n
clk
Q0
Q1
p
p+
ps
Problemas resueltos.
Problema 11.1.
CLK
Q0
Q1
Q2
Q3
s0
Período
0 1 2 3 4 5 6 7 8 9 10 0
Solución.
a) Las señales Q3, Q2, Q1 y Q0 corresponden a un contador módulo 11. Con Q3 el bit
más significativo.
Q3Q2
Q1Q0 00 01 11 10
0 4 12 8
00 0001 0101 dddd 1001
1 5 13 9
01 0010 0110 dddd 1010
3 7 15 11
11 0100 1000 dddd dddd
2 6 14 10
10 0011 0111 dddd 0000
Arreglando las ecuaciones de próximo estado se obtiene para cada tipo de flip-flop:
c) Q3 + = (Q2 Q1 Q0) + (Q3 Q1’) = Q3(Q2Q1Q0 + Q1’) + Q3’Q2Q1Q0
Q3+ = Q3’ J3 + Q3 K3’
Comparando coeficientes, se obtiene:
J3 = Q2Q1Q0 K3 = (Q2Q1Q0 + Q1’) ’ = Q1 (Q2’ +Q1’ +Q0’) = Q1Q2’ +Q1Q0’
Q2+ = (Q1 Q2’Q0) + (Q1’ Q2) + (Q2 Q0’) = Q2’(Q1Q0) +Q2(Q1’ +Q0’)
Q2+ = Q2’ J2 +Q2 K2’
Q3Q2
Q1Q0 00 01 11 10
0 4 12 8
00 0 0 d 1
1 5 13 9
01 0 0 d 1
3 7 15 11
11 0 0 d d
2 6 14 10
10 1 0 d 0
s0
Figura P11.3. Mapa de la salida s0, Problema 11.1
Problema 11.2.
V3
TP1 5V
CP1
U2A
A
S U4A
U3A J Q
TP2 TP3
CP _
DS1 K Q
R
Data
Seq U3C
z
CP1 x B U4B
U3B S
J Q
CP _
K Q
R
Reset
0V
Estado AB
0 00
1 01
2 10
3 11
b) Matrices de programación:
x x
AB 0 1 AB 0 1
00 11 00 00 00 11
01 11 01 01 00 11
11 11 01 11 01 11
10 11 00 10 01 11
Ja, Ka Jb, Kb
x
J K Q(k+1) AB 0 1
0 0 Q(k ) 00 10/0 01/0
0 1 0 01 11/0 00/1
1 0 1 11 00/0 00/0
1 1 Q(k ) 10 00/1 11/0
A(k+1) B(k+1)/z
x
AB 0 1
0 2/0 1/0
1 3/0 0/1
3 0/0 0/0
2 0/1 3/0
Próximo Estado/z
d) Diagrama de estados:
0/1 0 1/1
0/0 1/0
2 /0 1
1/0 0/0
e) Funcionamiento:
Salida z = 1 cuando llegan secuencias: 00 ó 11 a partir de estado inicial.
Salida z = 0 cuando llegan las secuencias: 010, 011, 100, 101 a partir del estado inicial.
Estando en estado 0, si llegan las secuencias 01 y 10 se descarta el bit siguiente.
f) Secuencia de salida:
x = 0100110011100101
z = 0000000101000000
Ejercicios propuestos.
Ejercicio 11.1
Rediseñar el diagrama de estados de la Figura 11.6 considerando que los estados inalcanzables
(2, 3, 5) son superfluos. Realizar el diseño con flip-flops JKs y comparar el costo de las nuevas
redes combinacionales.
x
Estado actual 0 1
0 4/0 1/0
1 6/0 7/0
3 / /
2 / /
6 0/0 0/0
7 0/0 0/1
5 / /
4 6/0 6/0
Estado próximo/z
Índice general.
CAPÍTULO 11 ............................................................................................................................................1
ANÁLISIS Y DISEÑO DE MÁQUINAS SECUENCIALES SINCRÓNICAS .....................................1
11.1. ANÁLISIS ..........................................................................................................................................1
Programas de los flip-flops. Matrices de programación .....................................................................2
11.2. MÉTODO DE ANÁLISIS TABULAR.......................................................................................................2
11.3. MÉTODO ANALÍTICO.........................................................................................................................3
11.4. EJEMPLO MÉTODO TABULAR ............................................................................................................3
11.5. EJEMPLOS DEL MÉTODO ANALÍTICO. ................................................................................................7
11.6. FRECUENCIA MÁXIMA DE OPERACIÓN DEL RELOJ. ............................................................................9
11.7. SÍNTESIS O DISEÑO DE MÁQUINAS SECUENCIALES SINCRÓNICAS, A PARTIR DEL DIAGRAMA DE
ESTADOS. ................................................................................................................................................ 11
11.7.1. PROCEDIMIENTO DE SÍNTESIS TABULAR. .....................................................................................11
11.7.2. PROCEDIMIENTO DE SÍNTESIS ANALÍTICO. ...................................................................................12
11.8. EJEMPLOS DE SÍNTESIS. ..................................................................................................................12
Ejemplo 11.8.1. ..................................................................................................................................12
a) Procedimiento tabular empleando flip-flops Ds: ........................................................................................ 13
b) Método analítico empleando flip-flops Ds:................................................................................................ 13
c) Procedimiento tabular empleando flip-flops JKs: ...................................................................................... 14
d) Método analítico empleando flip-flops JKs: .............................................................................................. 14
e) Descripción del diseño en Verilog. ............................................................................................................ 15
Ejemplo 11.8.2. ..................................................................................................................................16
Ejemplo 11.8.3. ..................................................................................................................................17
Ejemplo 11.8.4. ..................................................................................................................................17
11.9 RESUMEN Y OBSERVACIONES. .........................................................................................................18
11.9.1. Convertidor de cambio de nivel en un pulso. .........................................................................18
11.9.2. Modelo de Moore. ..................................................................................................................19
11.9.3. Modelo de Mealy. ...................................................................................................................21
11.9.4. Análisis de transiciones..........................................................................................................22
a) Estado inicial. Reset. .................................................................................................................................. 22
b) Modelo de Moore. ..................................................................................................................................... 23
c) Modelo de Mealy. ...................................................................................................................................... 23
d) Modelo de Mealy, con salida registrada. ................................................................................................... 23
e) Modelo de Moore, con salida registrada. ................................................................................................... 24
PROBLEMAS RESUELTOS. ........................................................................................................................25
Problema 11.1. ...................................................................................................................................25
Problema 11.2. ...................................................................................................................................27
EJERCICIOS PROPUESTOS. ........................................................................................................................31
Ejercicio 11.1 .....................................................................................................................................31
ÍNDICE GENERAL. ....................................................................................................................................32
ÍNDICE DE FIGURAS .................................................................................................................................33
Índice de figuras