elo211: sistemas digitales tomás arredondo vidal 1er...
TRANSCRIPT
ELO211: Sistemas Digitales
Tomás Arredondo Vidal1er Semestre – 2008
Este material está basado en:
textos y material de apoyo: Contemporary Logic Design 1st / 2nd edition. Gaetano Borriello and Randy Katz. Prentice Hall, 1994, 2005
material del curso ELO211 del Prof. Leopoldo Silvamaterial en el sitio http://es.wikipedia.org
11: Maquinas Sincrónicas 1
11-Maquinas Sincrónicas
11.1 Diseños de maquinas sincrónicas11.2 Análisis de maquinas sincrónicas
11: Maquinas Sincrónicas 2
Diseño de maquinas sincrónicas: analítico
El diseño de maquinas sincrónicas analítico requiere lo siguiente
1. Entender el problema, elegir modelo (Mealy o Moore) y generación de diagrama de estados.
2. Minimizar el numero de estados. 3. Elegir codificación y generar tabla de transición
de estados (i.e. matriz de transiciones).4. Usando el teorema de expansión se expande para
que la forma de las ecuaciones del output y los estados sea el mismo que las ecuaciones características de los FFs a usar
5. Comparando coeficientes se obtiene el programa de los FFs
11: Maquinas Sincrónicas 3
Ejemplo de diseño analítico
De la matriz de transiciones (Mealy):z = Q1 x' Q1+ = Q0 x Q0+ = x
Dada que la ecuaciones caracteristicas de los FFs JK son:Q1+ = J1Q1' + K1'Q1 Q0+ = J0Q0' + K0'Q0
Usando teorema de expansión:z = Q1 x' Q1+ = Q0 x = Q0xQ1' + Q0xQ1 (se expande en Q1)Q0+ = x = xQ0' + xQ0 (se expande en Q0)
Comparando coeficientes:J1 = Q0x; K1 = Q0' + x'; J0 = x; K0 = x'
11: Maquinas Sincrónicas 4
Diseño de maquinas sincrónicas: tabular
El diseño de maquinas sincrónicas tabular requiere lo siguiente
1. Entender el problema, elegir modelo (Mealy o Moore) y generación de diagrama de estados.
2. Minimizar el numero de estados. 3. Elegir codificación y generar tabla de transición
de estados (i.e. matriz de transiciones).4. Usando tabla de transición y tabla de excitación
de los distintos FFs generar el matriz de control 5. Con la matriz de control determinar la lógica
combinacional de los estados e inputs actúales (e.g. usando Mapa de Karnaugh). Esto también se denomina el “programa.
11: Maquinas Sincrónicas 5
Ejemplo de diseño tabularEntrega bebida después que 150 pesos son depositadosAcepta diferentes monedas 50 (N), 100 (D)No entrega cambioComienza a funcionar solo después del reset En la ranura de monedas solo cabe una moneda la vez (el input puede ser N o D no ambos)
VendingMachine
FSM
N
D
Reset
Clock
OpenCoinSensor
ReleaseMechanism
11: Maquinas Sincrónicas 6
Ejemplo de diseño tabular (cont)
Representación abstracta (Moore)listar secuencias típicas:
• tres de cincuenta• cincuenta, cien• cien, cincuenta• dos de cien
dibujar diagrama de estados:• inputs: N, D, reset• output: dar bebida (OPEN)
asumir:• N y D seteadas por un ciclo• cada estado tiene un auto estado
para N = D = 0 (no hay moneda)
S0
Reset
S2
D
S6[open]
D
S4[open]
D
S1
N
S3
N
S5[open]
N
S8[open]
D
S7[open]
N
11: Maquinas Sincrónicas 7
Ejemplo de diseño tabular (cont)Minimizar numero de estados – reusar estados si es posible
tabla de estados simbólica
present inputs next outputstate D N state open0 0 0 0 0
0 1 50 01 0 100 01 1 – –
50 0 0 50 00 1 100 01 0 150 01 1 – –
100 0 0 100 00 1 150 01 0 150 01 1 – –
150 – – 150 1
0
Reset
50
N
N
N + D
100
D
150[open]
D
11: Maquinas Sincrónicas 8
Ejemplo de diseño tabular (cont)Codificar estados (binaria)
Seleccionando un FF de la tabla de excitación:
present state inputs next state outputQ1 Q0 D N Q1+Q0+ open0 0 0 0 0 0 0
0 1 0 1 01 0 1 0 01 1 – – –
0 1 0 0 0 1 00 1 1 0 01 0 1 1 01 1 – – –
1 0 0 0 1 0 00 1 1 1 01 0 1 1 01 1 – – –
1 1 – – 1 1 1
11: Maquinas Sincrónicas 9
Ejemplo de diseño tabular (cont)
D1 = Q1 + D + Q0 N
D0 = Q0’ N + Q0 N’ + Q1 N + Q1 D
OPEN = Q1 Q0
Mapear la lógica0 0 1 1
0 1 1 1
X X 1 X
1 1 1 1
Q1D1
Q0
ND
0 1 1 0
1 0 1 1
X X 1 X
0 1 1 1
Q1D0
Q0
ND
0 0 1 0
0 0 1 0
X X 1 X
0 0 1 0
Q1Open
Q0
ND
Q1
Q0
Q0
11: Maquinas Sincrónicas 10
Ejemplo de diseño tabular (cont)
Otra codificación (1 encendido) y mapeando a D FFs:
present state inputs next state outputQ3 Q2 Q1 Q0 D N Q3+Q2+Q1+Q0+ open0 0 0 1 0 0 0 0 0 1 0
0 1 0 0 1 0 01 0 0 1 0 0 01 1 - - - - -
0 0 1 0 0 0 0 0 1 0 00 1 0 1 0 0 0 1 0 1 0 0 0 01 1 - - - - -
0 1 0 0 0 0 0 1 0 0 00 1 1 0 0 0 01 0 1 0 0 0 01 1 - - - - -
1 0 0 0 - - 1 0 0 0 1
D0 = Q0 D’ N’
D1 = Q0 N + Q1 D’ N’
D2 = Q0 D + Q1 N + Q2 D’ N’
D3 = Q1 D + Q2 D + Q2 N + Q3
OPEN = Q3
11: Maquinas Sincrónicas 11
Diagramas de Estados de Mealy y MooreMoore
outputs asociados con estados
Mealyoutputs asociados con transiciones
0[0]
100[0]
50[0]
150[1]
N’ D’ + Reset
D
D
N
N+D
N
N’ D’
Reset’
N’ D’
N’ D’
Reset
11: Maquinas Sincrónicas 12
0
100
50
150
(N’ D’ + Reset)/0
D/0
D/1
N/0
N+D/1
N/0
N’ D’/0
Reset’/1
N’ D’/0
N’ D’/0
Reset/0
Ejemplo: Implementación Mealy
11: Maquinas Sincrónicas 13
0
100
50
150
Reset/0
D/0
D/1
N/0
N+D/1
N/0
N’ D’/0
Reset’/1
N’ D’/0
N’ D’/0
Reset/0present state inputs next state output
Q1 Q0 D N Q1+ Q0+ open0 0 0 0 0 0 0
0 1 0 1 01 0 1 0 01 1 – – –
0 1 0 0 0 1 00 1 1 0 01 0 1 1 11 1 – – –
1 0 0 0 1 0 00 1 1 1 11 0 1 1 11 1 – – –
1 1 – – 1 1 1
D0 = Q0’N + Q0N’ + Q1N + Q1DD1 = Q1 + D + Q0NOPEN = Q1Q0 + Q1N + Q1D + Q0D
0 0 1 0
0 0 1 1
X X 1 X
0 1 1 1
Q1Open
Q0
ND
Ejemplo: Implementación Mealy (cont)
D0 = Q0’N + Q0N’ + Q1N + Q1DD1 = Q1 + D + Q0NOPEN = Q1Q0 + Q1N + Q1D + Q0D
hay que asegurar que OPEN es 0 cuando hay reset – con compuerta AND
11: Maquinas Sincrónicas 14
Actividad: DiseñoUna maquina de estados tiene dos inputs (X1, X2) y un output (Z)
11: Maquinas Sincrónicas 15
1. Diseñe el diagrama de estados para la maquina dada las siguientes especificaciones. El output se mantiene constante:
Un reset envía a la maquina al estado S0 con output 0Secuencia de input X1X2=00, 11 causa que output se convierta en 0Secuencia de input X1X2=01, 11 causa que output se convierta en 1Secuencia de input X1X2=10,11 causa que el output se invierta
2. Implementar y minimizar la maquina de estados3. Generar tabla de transición y lógica combinacional usando J-K FFs (Q+ = JQ’ + K’Q)
Actividad: Diseño
11: Maquinas Sincrónicas 16
Sistema solo tiene que recordar 2 bits de secuencia, esto da cuatro estados
S0: Estado inicial out = 0
S1: Posible cambio a out = 1 S2: out = 1
S2: Posible cambio a out = 0
Actividad: DiseñoUna maquina de estados tiene un input (X1) y un output (Z)1. Diseñe el diagrama de estados para la maquina dada las siguientes especificaciones.
Un reset envía a la maquina al estado S0 (sin output en Z)El output de Z es 1 solo si el numero total de 1s recibidos es divisible por 3 (e.g. 0, 3, 6, ....)
2. Implementar y minimizar la maquina de estados3. Generar tabla de transición y lógica combinacional usando D FFs (Q+ = D)
11: Maquinas Sincrónicas 17
Actividad: Diseño
11: Maquinas Sincrónicas 18
Este sistema se puede implementar en cuatro estados usando Mealy
11-Maquinas Sincrónicas
11.1 Diseños de maquinas sincrónicas11.2 Análisis de maquinas sincrónicas
11: Maquinas Sincrónicas 19
Análisis de maquinas sincrónicas: analítico
El análisis analítico ☺ de maquinas sincrónicas requiere lo siguiente
1. Determinar la función lógica combinacional usada para programar los FFs.
2. Remplazar estas ecuaciones de los programas de los FFs en las ecuaciones características de los FFs
3. De estas nuevas ecuaciones se obtiene la matriz de transición y el mapa de estados
11: Maquinas Sincrónicas 20
Ejemplo analítico1. Determinar la función lógica combinacional usada para
programar los FFs.
2. Remplazar estas ecuaciones de los programas de los FFs en las ecuaciones características de los FFs
3. De esta expresión se obtiene la matriz de transición y el mapa de estados
11: Maquinas Sincrónicas 21
Análisis de maquinas sincrónicas: tabular
El análisis tabular de maquinas sincrónicas requiere lo siguiente
1. Determinar la función lógica combinacional usada para programar los FFs.
2. Determinar los outputs de los FFs usando los posibles estados e inputs (matriz de programación)
3. Generar tabla de transición de estados usando el programa y las tablas características de los FFs.
4. Generación de diagrama de estados.
11: Maquinas Sincrónicas 22
Ejemplo de análisis
FSMX
Reset
Clock
Z
Se tiene una maquina secuencial de una entrada (X) y una salida (Z) en la cual el reset nos lleva al estado inicial (000).
1. Determinar el programa de los FFs:
JA = B’C + B’x’ ; KA = BJB = AB’ + B’C ; KB = BJC = A’x ; KC = B + x’Z = xCB
11: Maquinas Sincrónicas 23
Ejemplo de análisis (cont)
2. Generar matrices de programaciónJB = AB’ + B’CKB = B
JC = A’x
KC = B + x’
JA = B’C + B’x’
KA = Bx
ABC 0 1
000 10 00 001 10 10
010 01 01
011 01 01100 10 00
101 10 10
110 10 10111 01 01
JAKA JAKA 11: Maquinas Sincrónicas 24
x
ABC 0 1
000 01 10 001 01 10
010 01 11
011 01 11100 01 00
101 01 00
110 01 01111 01 01
JCKC JCKC
x
ABC 0 1
000 00 00 001 10 10
010 01 01
011 01 01100 10 10
101 10 10
110 01 01111 01 01
JBKB JBKB
Ejemplo de análisis (cont)
11: Maquinas Sincrónicas 25
3. Generar tabla de transición de estadosEj: Para calcular A+ cuando ABC = 000, x=0 usar matriz de programación: (JA, KA) = (1,0), de tabla característica de FF:(JA,KA) = (1,0)-> Q+ = 1
xABC 0 1
000 100/0 001/0
001 110/0 111/0010 000/0 001/0
011 000/0 000/1
100 110/0 110/0101 110/0 111/0
110 000/0 000/0
111 000/0 000/1A+B+C+/z
J K Q(k+1)0 0 Q(k)0 1 01 0 11 1 Q’(k)
x
ABC 0 1000 10 00
001 10 10
010 01 01011 01 01
100 10 00
101 10 10110 10 10
111 01 01
JAKA JAKA
4.
Ejemplo de análisis (cont)
4. Asignar una cifra decimal al valor de los estados (ABC) y genera el diagrama de estado de la tabla
xABC 0 1
0 4/0 1/0
1 6/0 7/02 0/0 1/0
3 0/0 0/1
4 6/0 6/05 6/0 7/0
6 0/0 0/0
7 0/0 0/1A+B+C+/z
0
14
3 2
6
5
7
0/01/1
0/0
1/01/00/0
-/0 -/00/0 0/0
1/1
1/01/0
1/0
11: Maquinas Sincrónicas 26