You are on page 1of 41

Sesión XIII

2
 Revisar cómo está constituida una máquina
secuencial sincrónica y sus aplicaciones

 Revisar los elementos de un diagrama de estados

 Diseñar máquinas secuenciales sincrónicas

3
 Una máquina secuencial sincrónica (MSS), llamada también
máquina de estados finita (MEF).
 Por su comportamiento funcional, representado por un número finito
de estados.
 Una señal de reloj (clock) controla la operación del circuito secuencial

 Una MSS es más fácil de diseñar que las asincrónicas y se usan


en la mayoría de aplicaciones prácticas.

4
 Pueden ser del tipo Mealy o Moore

 Ambas consisten por lo menos de un decodificador de


próximo estado (o estado siguiente), un registro de estado
(memoria, constituida por flip-flops) y un decodificador de
salida.
 En la tipo Mealy, la(s) salida(s) es(son) una función del estado presente
y de la(s) entrada(s) externa(s).
 En la tipo Moore, la(s) salida(s) es(son) una función del estado
presente solamente.

5
6
7
 Bajo el control (sincronismo) de la señal de reloj, las salidas de
los flip-flops cambian de estado; estas salidas se realimentan
al decodificador de estado siguiente.

 Del decodificador de estado siguiente, se genera el estado


siguiente (esto es, de los valores de las variables de estado
siguiente), dependiendo de las entradas a la MSS y del estado
presente (salidas de los flip-flops).

 Las salidas de la MSS se generan a través del decodificador de


salida; éstas dependen del estado presente en los flip-flops y
de las entradas a la MSS si es del tipo Mealy.
8
9
10
11
Según el esquema tradicional como Según el esquema algorítmico ( diagrama ASM)
diagrama de estados ASM: Máquina de estados algorítmica

12
Según el esquema tradicional como Según el esquema algorítmico (diagrama ASM)
diagrama de estados

13
1. Detectores de secuencia de códigos

2. Contadores y registros estándar

3. Generadores de código secuencial

4. Controladores de sistemas multi-entradas

14
Se requiere diseñar una máquina secuencial sincrónica que genere una
secuencia de códigos en las variables A y B (esto es, 00-01-10-11-00) cuando la
entrada x cambia de 0 a 1 reiteradas veces. Si en algún estado, la entrada x
cambia de 1 a 0, se mantendrá mostrando en las salidas A y B, el último código
que estaba generando en dicho estado. La secuencia de códigos debe
generarse sincronizadamente en cada pulso (flanco positivo) de la señal de
reloj (CLK). El gráfico a continuación ilustra esta máquina como una caja negra.

X A
Máquina
secuencial B
CLK sincrónica

15
Formato de entrada/salida: X/AB

16
Se requiere diseñar una máquina secuencial sincrónica que detecte la
secuencia 111 de una entrada de datos serial In.H. La salida Sec.H se activará
“1” solo si se detecta la secuencia correcta; ésta es, 111 por cada tres datos en
serie en la entrada In.H. Caso contrario Sec.h permanecerá desactivada “0”. La
secuencia de códigos debe detectarse sincrónicamente en cada pulso (flanco
positivo) de la señal de reloj (CLK). El gráfico a continuación ilustra esta
máquina como una caja negra.

17
Formato de entrada/salida: In/Sec

18
En un diagrama de estados, es posible reducir la cantidad de estados.

• Para reducir dos estados, éstos deben ser equivalentes.

• Dos estados son equivalentes si para los mismos valores de las entradas, se
tiene iguales valores de salida y los mismos próximos estados.

• Si dos estados “p” y “q” son equivalentes, el estado “q” es redundante o el


estado “p” es redundante. Esto es, se deberá eliminar uno de los dos y
reordenar el diagrama de estados.

19
Estados Presentes Variables de
Variables de Entrada(s) Salida(s) Estados Siguientes entrada a los F-Fs
estado In.H Sec.H Variables de estado que determinan el
An Bn siguiente estado siguiente
An+1 Bn+1 JA KA JB KB
a 0 0 0 0 a 0 0 0 Φ 0 Φ
1 0 b 0 1 0 Φ 1 Φ
b 0 1 0 0 a 0 0 0 Φ Φ 1
1 0 c 1 0 1 Φ Φ 1
c 1 0 0 0 a 0 0 Φ 1 0 Φ
1 1 a 0 0 Φ 1 0 Φ

En este ejemplo 2, no se cumple la equivalencia de un par de


estados; por lo cual, no se da ninguna reducción de estados.

20
• # Estados ≤ 2n
• n es el número de variables de estado.
• Ejemplo
3 ≤ 2n
n= 2 variables de estado: A y B
1. Si se asignan arbitrariamente los códigos a los estados, esto
puede resultar en una pobre optimización en el tamaño del
circuito de la máquina secuencial sincrónica.

2. Es pertinente seguir reglas para la asignación de códigos a los


estados

21
Todos los estados que tienen el mismo estado siguiente, para una
condición de entrada determinada, se les debe asignar un código
de distancia unitaria entre ellos.

22
Todos los estados que son estados siguientes de un único estado,
se les debe asignar un código de distancia unitaria entre ellos.

23
Todos los estados que tengan salidas iguales, para las mismas
condiciones de entrada, se les debe asignar códigos de distancia
unitaria. Esta regla se aplica independiente y adicionalmente,
mientras que las reglas 1 y 2 se aplican una a la vez (solo una).

En el ejemplo 2, se usó la regla 2: Quedan así asignados los


estados en el mapa de estados
A y B: variables de estado
A Estado A B
a0 c2 a 0 0
b 0 1
B b1 Φ
3 c 1 0

24
c a
a
b a a y c tendrían distancia unitaria
c
a a a y b tendrían distancia unitaria
b

25
• Se usará Flip-Flops J-K. Se parte de la tabla de excitación:

• Recordemos la arquitectura de una MSS

• Sabemos el número de variables de estado: en este caso, A y B.


Además, se usará un flip-flop por cada variable de estado.

26
• Las variables exteriores del mapa son las variables de
estado presente y las entradas a la MSS.

• 1ro.: Se ubica la celda correspondiente.


• 2do.: Se analiza la transición para cada variable de estado
presente An, Bn hacia cada próximo estado An+1, Bn+1.

27
 3ro.: Sabiendo qué transición ocurre del estado
presente al estado siguiente, se usa los valores de la
tabla de excitación del flip-flop; en este caso del J-K
An An
0 0 Φ Φ Φ Φ Φ 1
In 0 1 Φ Φ JA = Bn.In In Φ Φ Φ 1 KA = 1
Bn Bn

An An
0 Φ Φ 0 Φ 1 Φ Φ
In 1 Φ Φ 0 JB = An.In In Φ 1 Φ Φ KB = 1
Bn Bn

An An Bn In.H Sec.H An+1 Bn+1 JA KA JB KB


0 0 0 0 0 0 0 Φ 0 Φ
0 0 Φ 0 0 0 1 0 0 1 0 Φ 1 Φ
0 1 0 0 0 0 0 Φ Φ 1
In 0 0 Φ 1 Sec = An.In 0 1 1 0 1 0 1 Φ Φ 1

Bn 1 0 0 0 0 0 Φ 1 0 Φ
1 0 1 1 0 0 Φ 1 0 Φ
28
29
30
Diseñe una máquina secuencial sincrónica que realice el muestreo de una
señal digital Dato.H, 3 muestras consecutivas. Esta máquina debe contabilizar
cuantos unos (“1”) se obtuvieron en las tres muestras. Si el número de unos
(“1”) en la entrada Dato es impar, la máquina debe generar un pulso en la
salida “IMPAR”; por el contrario, si el número de unos es par, no se genera el
pulso.

31
Formato de entrada/salida: Dato/IMPAR

32
Estados Presentes Entrada(s) Salida(s) Próximos Estados
Nombre An Bn Dato.H IMPAR.H Nombre An+1 Bn+1
a 0 0 b
1 0 c
b 0 0 d
1 0 e
c 0 0 f
1 0 g
d 0 0 a Equivalentes
1 1 a
e 0 1 a
1 0 a
f 0 1 a
1 0 a
g 0 0 a
1 1 a
33
Formato de entrada/salida: Dato/IMPAR

34
En el flanco positivo del reloj

35
Estados Presentes Entrada Salida(s) Próximos Estados DA DB DC
An Bn Cn Dato.H IMPAR.H An+1 Bn+1 Cn+1
a 000 0 0 b 001 001
1 0 c 011 011
b 001 0 0 d 110 110
1 0 e 111 111
c 011 0 0 e 111 111
1 0 d 110 110
d 110 0 0 a 000 000
1 1 a 000 000
e 111 0 1 a 000 000
1 0 a 000 000
Asignación de códigos: 5 Estados ≤ 23
n = 3 Variables de estado: A, B y C
Con la regla 2 a b b d c d b,c
c e e d,e
Con la regla 3: iguales valores de salida para las mismas condiciones de la
entrada. Por lo tanto a, b y c deberán tener distancia unitaria. Del Mapa de
36
Estados finalmente obtenemos los códigos.
Co la ayuda del mapa de estados, se obtiene finalmente los códigos de cada
estado.

An
a Φ d Φ
Cn b c e Φ
Bn

Códigos
ABC
000 a
001 b
011 c
110 d
111 e
37
• Se usará Flip-Flops tipo D. Se parte de la tabla de
excitación del F-F tipo D:

38
39
40
• “Fundamentals of Digital Logic with VHDL Design”, Brown S. &
Vranesic Z., Mc Graw Hill, 2009.
• Embedded SoPC design with NIOS II processor and VHDL examples,
2011, Wiley.
• “An Engineering Approach To Digital Design” (“Una Técnica de
Ingeniería para Diseño Digital”), William Fletcher, Prentice Hall.

41

You might also like