Académique Documents
Professionnel Documents
Culture Documents
Secuenciales
Sistemas Secuenciales
1 Maquinas de Estados Finitos
2Mealy y Moore FSMs
2
Abstracción de MEFs
❒ Dividir circuito en lógica combinacional y estado (state)
❒ Localizar los enlaces de feedback (loops)
❒ Implementación de elementos de almacenamiento(storage elements)
nos da diferentes formas de lógica secuencial
Storage Elements
3
Formas de lógica secuencial
❒ Asincrónica – estados cambian cuandos los inputs cambian
(elemento de almacenamiento pueden ser simples alambres
of retardos)
❒ Sincrónica – cambios de estados ocurren en todos los
elementos de almacenamiento al mismo tiempo (de acuerdo a
una senal periodica – el reloj o clock)
Clock
4
Elementos de almacenamiento: latches y
flip-flops
D Q
CLK D
positive
edge-triggered
flip-flop CLK
Qedge
D Q Qlatch
G
CLK
transparent
(level-sensitive)
latch comportamiento no es el mismo si es que los inputs
cambian cuando el clock esta alto
5
Representaciones de maquinas de estados
finitos (finite state machines)
❒ Estados: determinado por posibles valores en elementos de
almacenamiento
❒ Transiciones: cambios de estado
❒ Reloj (clock): controla cuando los estados pueden al
cambiar
controlar elementos de almacenamiento
❒ Lógica secuencial
❍ secuencia traversa una serie de estados
ERROR
closed
7
Ejemplo: Registro de corrimiento (shift register)
❒ Shift register
❍ input mostrado en
arcos de transiciones OUT1 OUT2 OUT3
❍ valores de output
mostrado en nodo IN D Q D Q D Q
de estado CLK
1
100 110
1 0 1 1
1
0
0 0 1 0
001 011
0
8
Ejemplo: Contadores
❒ Contadores
proceden a través de secuencia de estados bien definida
❍
en respuesta a enable
❒ Muchos tipos de contadores: binario, BCD, código Gray
❍ contador de subida de 3 bits: 000, 001, 010, 011, 100, 101,
110, 111, 000, ...
❍ contador de bajada de 3-bits: 111, 110, 101, 100, 011, 010,
001, 000, 111, ...
9
Como convertir diagrama de estados a
tabla de transiciones?
❒ Tabla de transiciones: forma tabular de
diagrama de estados
❒ Como una tabla de verdad (se especifican
los outputs para las combinaciones de input)
todos
❒ Ejemplo: contador
present state next state
0 000 001 1
001 010 011 1 001 010 2
2 010 011 3
3 011 100 4
000 3-bit up-counter 100
4 100 101 5
5 101 110 6
111 110 101 6 110 111 7
7 111 000 0
10
Implementación
❒ Un flip-flop para cada bit de estado
❒ Lógicacombinacional basada en codificación
código en Verilog para
mostrar que la función
C3 C2 C1 N3 N2 N1 es un input a un D-FF
0 0 0 0 0 1
0 0 1 0 1 0 N1 <= C1’
0 1 0 0 1 1 N2 <= C1C2’ + C1’C2
0 1 1 1 0 0 <= C1 xor C2
1 0 0 1 0 1 N3 <= C1C2C3’ + C1’C3 + C2’C3
<= (C1C2)C3’ + (C1’ + C2’)C3
1 0 1 1 1 0
<= (C1C2)C3’ + (C1C2)’C3
1 1 0 1 1 1 <= (C1C2) xor C3
1 1 1 0 0 0
N3 C3 N2 C3 N1 C3
0 0 1 1 0 1 1 0 1 1 1 1
C1 0 1 0 1 C1 1 0 0 1 C1 0 0 0 0
C2 C2 C2
11
Implementación (cont)
❒ Contador
❍ 3 flip-flops para tener estado
❍ lógica para calcular próximo estado
❍ reloj controla cuando la memoria de los flip-flops cambia
• hay que esperar para que la lógica calcule nuevo valor
• no hay que esperar mucho para no tener velocidad muy lenta
OUT1 OUT2 OUT3
D Q D Q D Q
CLK
"1"
12
Implementación: Registro de corrimiento
In C1 C2 C3 N1 N2 N3
0 0 0 0 0 0 0 1
0 0 0 1 0 0 0 100 110
0 0 1 0 0 0 1 1 0 1 1
1
0 0 1 1 0 0 1
0 1 0 0 0 1 0 0 000 1 010 101 0 111 1
0 1 0 1 0 1 0 0
0 0 1 0
0 1 1 0 0 1 1
0 1 1 1 0 1 1 001 011
0
1 0 0 0 1 0 0
1 0 0 1 1 0 0 N1 <= In
1 0 1 0 1 0 1 N2 <= C1
1 0 1 1 1 0 1
N3 <= C2 OUT1 OUT2 OUT3
1 1 0 0 1 1 0
1 1 0 1 1 1 0
1 1 1 0 1 1 1 IN D Q D Q D Q
1 1 1 1 1 1 1
CLK
13
Ejemplo: Contador mas complejo
❒ Contador Complejo
❍ repite 5 estados en secuencia
❍ secuencia no es una representación numérica binaria
❒ Paso 1: hacer diagrama de transición de estados
❍ contar secuencia: 000, 010, 011, 101, 110
❒ Paso 2: hacer tabla de transición de estados
Present State Next State
000 110 C B A C+ B+ A+
0 0 0 0 1 0
0 0 1 – – –
0 1 0 0 1 1
0 1 1 1 0 1
010 101 1 0 0 – – –
1 0 1 1 1 0
011 1 1 0 0 0 0
1 1 1 – – –
C+ C B+ C A+ C
0 0 0 X 1 1 0 X 0 1 0 X
A X 1 X 1 A X 0 X 1 A X 1 X 0
B B B
C+ <= A
B+ <= B’ + A’C’
A+ <= BC’
15
Contadores con estados iniciales
❒ Estados iniciales
❍ durante el inicio, el contador puede estar en un estado sin
usar o invalido
❍ el diseñador debe garantizar que eventualmente entre en
un estado valido
❍ diseñar para que estados inválidos transiciones a validos
011 011
16
Contadores con estados iniciales (cont)
❒ Generar tabla de transición de estados con estados iniciales
C+ C B+ C A+ C
0 0 0 0 1 1 0 1 0 1 0 0
A 1 1 1 1 A 1 0 0 1 A 0 1 0 0
B B B
S1 S0 C D N1 N0
0 0 0 0 0 0
C=0 C=0 0 0 0 1 0 0
D=X C=1 D=X 0 0 1 0 0 1
D=0 0 0 1 1 1 1
0 1 0 0 0 1
00 11 0 1 0 1 0 1
C=1 C=1 0 1 1 0 1 0
C=1 0 1 1 1 0 0
D=0 D=1 D=0 1 0 0 0 1 0
1 0 0 1 1 0
01 10 1 0 1 0 1 1
C=1 1 0 1 1 0 1
C=0 D=0 C=0 1 1 0 0 1 1
D=X D=X 1 1 0 1 1 1
1 1 1 0 0 0
1 1 1 1 1 0
18
Actividad (cont)
S1
0 0 1 1 N1 = C’ S1
+ CDS0 S1’ ’+ DS0S1
S1 S0 C D N1 N0 0 0 1 1 D
’
+ CD S0S1 ’+ D S0
’ S1
’
0 0 0 0 0 0
0 0 0 1 0 0 C 1 0 1 0
0 0 1 0 0 1 0 1 0 1
0 0 1 1 1 1 S0
0 1 0 0 0 1 S1
0 1 0 1 0 1 0 1 1 0
0 1 1 0 1 0 N0 = CS0 ’+ C S0
’
0 1 1 0 D
0 1 1 1 0 0
1 0 0 0 1 0 C 1 0 0 1
1 0 0 1 1 0 1 0 0 1
1 0 1 0 1 1
S0
1 0 1 1 0 1
1 1 0 0 1 1
1 1 0 1 1 1
1 1 1 0 0 0
1 1 1 1 1 0
19
Sistemas Secuenciales
1 Maquinas de Estados Finitos
2 Mealy y Moore FSMs
20
Modelo general MEF (o FSM)
❒ Valores almacenados en registros representan el estado actual
del circuito: y(n)
❒ Lógica combinacional calcula
❍ próximo estado, y(n+1): FPE (Función Próximo Estado)
• función de estados actuales e inputs
❍ outputs: FS (Función Salida)
• Mealy: función de estado actual e inputs, z = F(y, x)
• Moore: solo función de estado actual, z = F(y)
output Outputs
logic
Inputs
next state
Next State
logic
Current State
Next State
State
Clock 0 1 2 3 4 5
22
Maquinas Mealy vs Moore
❒ Maquinas Moore
❍ outputs cambian durante cambios del reloj (siempre un
ciclo mas tarde)
❍ en maquinas Mealy, input puede causar cambios en autput
de inmediato cuando cambia input – puede causar
problemas cuando se conectan multiples maquinas
❒ Maquinas Mealy reaccionan mas rápido
❍ reaccionan con el input– no tienen que esperar el reloj en
algunos casos
❍ en maquinas Moore – mas logica puede ser necesaria para
decodificar estado en outputs
23
Comparar maquinas Mealy y Moore (cont)
inputs
combinational
state feedback
logic for
inputs outputs
outputs
combinational
logic for next reg
state feedback
logic for
inputs outputs outputs
combinational
❒ Mealy Sincrónica logic for
next state
reg
24
Especificar outputs para maquina Moore
❒ Output es solo una función del estado
❍ se especifica en nodos del diagrama de estado
❍ Ejemplo: detector de secuencia para 01 o 10
current next
reset input state state output
0
1 – – A
1 0 0 A B 0
B/0 D/1 0 1 A C 0
0 0 0 B B 0
0 0 1 B D 0
reset
A/0 1 0 0 0 C E 0
1 0 1 C C 0
1 0 0 D E 1
C/0 E/1 0 1 D C 1
0 0 0 E B 1
1 0 1 E D 1
25
Especificar outputs para maquina Mealy
❒ Output es función de estados e inputs
❍ especificar output en transición entre estados
❍ Ejemplo: Detector de secuencia para 01 o 10
current next
0/0
reset input state state output
1 – – A 0
B
0 0 A B 0
0/0
0 1 A C 0
reset/0 0 0 B B 0
A 0/1 1/1 0 1 B C 1
0 0 C B 1
1/0 0 1 C C 0
C
1/0
26
Maquina Mealy
output Outputs
logic
Inputs
next state
logic
Current State
27
Ejemplo: maquinas de bebidas
❒ Entrega bebida después que 1,50 Bs. son
depositados
❒ Acepta diferentes monedas 0,50(C), 1 Bs(D)
❒ Noentrega cambio Reset
N Release
Vending Mechanism
Coin Machine Open
Sensor FSM
D
Clock
28
Ejemplo: maquinas de bebidas (cont)
❒ Representación abstracta
Reset
❍ listar secuencias típicas:
• tres de cincuenta
S0
• cincuenta, cien
N D
• cien, cincuenta
• dos de cien S1 S2
• inputs: N, D, reset S3
S4 S5 S6
[open] [open] [open]
• output: dar bebida (OPEN) N D
❍ asumir: S7 S8
[open] [open]
• N y D seteadas por un ciclo
• cada estado tiene un auto estado
para N = D = 0 (no hay moneda) 29
Ejemplo: maquinas de bebidas (cont)
❒ Minimizar numerode estados – reusar estados si
es posible
Reset present inputs next output
state D N state open
0 0 0 0 0
0 1 0,50 0
0 1 0 1 0
1 1 – –
N 0,5 0 0 0,5 0
0 1 1 0
0,5 D 1 0 1,50 0
1 1 – –
N 1 0 0 1 0
0 1 1,50 0
D 1 1 0 1,50 0
1 1 – –
N+D 1,50 – – 1,50 1
30
Ejemplo: maquinas de bebidas (cont)
❒ Codificarestados
present state inputs next state output
Q1 Q0 D N D1 D0 open
0 0 0 0 0 0 0
0 1 0 1 0
1 0 1 0 0
1 1 – – –
0 1 0 0 0 1 0
0 1 1 0 0
1 0 1 1 0
1 1 – – –
1 0 0 0 1 0 0
0 1 1 1 0
1 0 1 1 0
1 1 – – –
1 1 – – 1 1 1
31
Ejemplo: Implementación Moore
❒ Mapearla lógica
D1 Q1 D0 Q1 Open Q1
0 0 1 1 0 1 1 0 0 0 1 0
0 1 1 1 1 0 1 1 0 0 1 0
N N N
X X 1 X X X 1 X X X 1 X
D D D
1 1 1 1 0 1 1 1 0 0 1 0
Q0 Q0 Q0
D1 = Q1 + D + Q0 N
D0 = Q0’ N + Q0 N’ + Q1 N + Q1 D
OPEN = Q1 Q0
32
Ejemplo: Implementación Moore (cont)
❒ Otracodificación (1 encendido)
33
Diagramas de Estados de Mealy y Moore
❒ Moore ❒ Mealy
❍ outputs asociados con ❍ outputs asociados con
estados transiciones
Reset N’ D’ + Reset Reset/0 (N’ D’ + Reset)/0
0
N’ D’ 0 N’ D’/0
[0]
N N/0
D 50 D/0
N’ D’ 50 N’ D’/0
[0]
N N/0
100
D N’ D’ D/1 100 N’ D’/0
[0]
N+D N+D/1
150
Reset’ 150 Reset’/1
[1]
34
Ejemplo: Implementación Mealy
Reset/0
Reset/0
present state inputs next state output
Q1 Q0 D N D1 D0 open
0 N’ D’/0
0 0 0 0 0 0 0
0 1 0 1 0
N/0
1 0 1 0 0
1 1 – – –
D/0 0 1 0 0 0 1 0
0,5 N’ D’/0 0 1 1 0 0
1 0 1 1 1
N/0 1 1 – – –
1 0 0 0 1 0 0
D/1 1 N’ D’/0 0 1 1 1 1
1 0 1 1 1
N+D/1 1 1 – – –
1 1 – – 1 1 1
1,50 Reset’/1
Open Q1
0 0 1 0
D0 = Q0’N + Q0N’ + Q1N + Q1D
0 0 1 1
N D1 = Q1 + D + Q0N
X X 1 X
D OPEN = Q1Q0 + Q1N + Q1D + Q0D
0 1 1 1
Q0 35
Ejemplo: Implementación Mealy (cont)
36
Actividad
❒ Implementar detector de secuencia (usando Mealy) para 010
o 110 (detector no continuo, requiere secuencia completa)
S1 es equivalente a S2
S3 es equivalente a S5
S4 es equivalente a S6
38
MEF Minimizada
❒ Detector de secuencia de 010 o 110 minimizada
para estados (detecta secuencia completa)
Input Next State Output
Sequence Present State X=0 X=1 X=0 X=1
S0
S0
0/0 1/0 X/0
S1 S2 S1’
0/0 1/0 0/0 1/0 0/0 1/0
S3 S4 S5 S6 S3 ’ S4 ’
1/0 1/0 1/0 1/0
0/0 0/1 0/0 0/1 X/0 0/1 1/0
1/0
-/0 1/0
S0 S1’ S3’
0/0 0/1
40
Resumen MEFs
❒ HDLs
48
Gracias