T e m a 3 : Di s e ñ o d e s i s t e m a s s e c u e n c i a l e s síncronos
1. 2. 3. 4. 5.
Latches y biestables. Implementación canónica de sistemas secuenciales. Minimización de estados Codificación de estados. Diseño de circuitos secuenciales con diferentes clases de biestables. Gajski, tema 6.
1. Latches y biestables Biestables: definición y
tipos. Biestables sensibles a nivel (latches). Problemas de sincronización. Biestables maestro-esclavo. Biestables disparados por flanco. Características temporales de los biestables. Entradas de inicialización asíncrona
1.1. Biestables: definición Biestable es todo elemento que tiene dos estados
estables (0 y 1). Sirve para almacenar un bit de información. La hipótesis de funcionamiento síncrono de los sistemas secuenciales supone que: El estado sólo cambia una vez por ciclo de reloj y el cambio es simultáneo en todos los biestables. Tras un cambio de estado las entradas de los biestables tienen tiempo de alcanzar un valor estable antes del siguiente cambio de estado.
Tipos de biestables
Según su comportamiento lógico: S R S-R 0 0 D 0 1 1 0 J-K 1 1 T
Q+ Q 0 1 proh.
D Q+ 0 0 1 1
J 0 0 1 1
K 0 1 0 1
Q+ Q 0 1 Q
T Q+ 0 Q 1 Q
Ecuaciones Características
Según su comportamiento temporal: R-S: Latch D: Latch síncrono (sensible a nivel) Flip-flop disparado por flanco J-K: Flip-flop maestro-esclavo T:
Q+ = S + R Q Q+ = D Q+ = J Q + K Q Q+ = T Q + T Q
Deducidas a partir de diagramas de K para Q(t+1) = Q+ = ƒ(Entradas, Q)
1.2. Biestable asíncrono (latch) La salida cambia cuando cambian las entradas. Ejemplo 1: S-R (con entradas activas a S 0 0 1 1
R 0 1 0 1
Q+ Q 0 1 proh.
R Q
S
Q
Ejemplo 2: S-R (con entradas activas a S 0 0 1 1
R Q+ 0 proh. 1 1 0 0 1 Q
nivel alto).
S
R
Q
Q
nivel bajo).
Biestables sensibles a nivel (latch síncrono)
La salida cambia cuando está activa la señal de capacitación (reloj). Ejemplo 1: S-R con entrada de capacitación J Q
S Q
Q
R Enable
K Q
Enable
Q + = J Q + K Q
Ejemplo 2: J-K con entrada de capacitación
1.3. Problemas de sincronización en latches
El latch J-K oscila cuando las entradas valen 11 si el tiempo que la señal de capacitación está activa es mayor que el retardo del biestable. Cuando la entrada varía dos veces en un ciclo de reloj: Puede darse la “captura de 1s” para JK Si la salida de un latch alimenta a la entrada de otro puede producirse un doble cambio de estado.
X(t)
D1 Q1
D2 Q2
Ck
X Q1 Q2
Soluciones a los problemas Si usamos latches debemos garantizar que El
pulso de reloj es más corto que el retardo del latch La entradas se mantienen constantes durante el pulso de reloj Una alternativa es usar FLIP-FLOPs, más fiables Disparados por flanco: la salida sólo varía durante la transición del reloj (que es la entrada dinámica). Maestro-esclavo
1.4. Biestables maestro-esclavo Se lee la entrada en un flanco y se modifica la salida en
el contrario. Ejemplo: J-K maestro-esclavo. J Q
Enable
K
Q
1.5. Biestables disparados por flanco
La salida cambia en el flanco de disparo de la entrada dinámica. Ejemplo: biestable D disparado por flanco de bajada
A
S
Q
Clk
Q
R
D B
1.5. Biestables disparados por flanco
La salida cambia en el flanco de disparo de la entrada dinámica. Ejemplo: biestable D disparado por flanco de bajada
D
0 0
R
Q
Clk
1
Q S
0 D
D
1.6. Características temporales de los biestables
Retardo de propagación Desde el cambio en la entrada hasta el cambio en la salida Para un biestable hay varios retardos (tantos como distintos cambios en las diferentes entradas)
Tiempo de set-up (establecimiento) Tiempo mínimo que la entrada debe permanecer estable ANTES del suceso del reloj
Entrada
Tiempo de hold (mantenimiento) Tiempo mínimo que la entrada debe permanecer estable DESPUES del suceso del reloj
Tsu Th
Frecuencia máxima de reloj
Clock
Comparación del comportamiento temporal de los biestables TIPO
¿Cuándo se muestrean las entradas?
¿Cuándo son válidas las salidas?
Latch sin reloj
siempre
retardo de propagación desde el cambio en la entrada
Latch sensible a nivel
reloj en alta (Tsetup y Thold a cada lado del eje de bajada)
retardo de propagación desde el cambio en la entrada
Flipflop flanco de subida
transición de reloj de baja a alta (Tsetup y Thold a cada lado del eje de subida)
retardo de propagación desde flanco de subida del reloj
Flipflop flanco de bajada
transición de reloj de alta a baja (Tsetup y Thold a cada lado del eje de bajada)
retardo de propagación desde flanco de bajada del reloj
Flipflop Maestro-esclavo
reloj en alta (Tsetup y Thold a cada lado del eje de bajada)
retardo de propagación desde flanco de bajada del reloj
2. Implementación canónica de sistemas secuenciales Diseño y análisis de la
implementación canónica Implementación canónica (Huffman). Z(t) Proceso de análisis. Proceso de diseño. Inicializar X(t)
l a n o o i t i c u a n c r i i b C m o c
e d o o r d t a s t i g s e e R
Reloj
Análisis de la implementación canónica Esquema lógico Obtener ecuaciones de excitación y salida Obtener ecuaciones de estado siguiente Generar tablas de estado siguiente y salida Generar diagrama de estados Desarrollar diagrama de tiempo Simular circuito lógico
Especificación
Análisis de la implementación canónica: ejemplo
Diseño de la implementación canónica Descripción del diseño
Desarrollar diagrama de estados
Generar tabla de estado siguiente y salida Minimizar estados
Esquema lógico
Verificar funcionamiento y temporización Simular esquema lógico
Codificar entradas, estados y salidas Obtener ecuaciones de estado siguiente y salida Elegir elementos de memoria Obtener ecuaciones de excitación
Obtener esquema lógico y diagrama de tiempo
Optimizar implementación de la lógica
Optimización de sistemas secuenciales
En el diseño de la implementación canónica hay 3 pasos de optimización: Minimizar estados Codificar estados Elegir elementos de memoria
Minimización de estados Introducción. Minimización de estados para sistemas completamente especificados. Minimización de estados para sistemas incompletamente especificados. Codificación de estados Introducción. Estrategias. Ejemplo. Elección del tipo de elementos de memoria
3. Minimización del número de estados ¿De qué se trata? Obtener una especificación equivalente con el menor número posible de estados. ¿Para qué? Para eliminar biestables del diseño (no siempre es posible eliminar tantos estados). Para simplificar las ecuaciones de excitación: cada estado eliminado se traduce en términos sin especificar. ¿Cómo? A partir de la definición de estados equivalentes: los que producen la misma salida para todas las secuencias de valores de entrada.
3.1. Minimización del número de estados para sistemas completamente especificados La definición de equivalencia de estados se
traduce en
2 condiciones: Misma salida para todos los valores de la entrada. Transiciones a estados equivalentes para todos los valores de la entrada. Dos métodos para encontrar estados equivalentes: Método
de Huffman-Mealy (clases de equivalencia).
Agrupar los estados en el mínimo número de clases de equivalencia según la condición 1. Aplicar la condición 2 para dividir las clases de equivalencia. Método
de la tabla de implicación.
Minimización de estados: ejemplo 1 Dada la tabla de estados de un sistema reconocedor de
las secuencias 010 o 110 obtener una especificación equivalente con mínimo número de estados.
Secuencia X(t) Reset 0 1 00 01 10 11
Estado sig. Estado actual X=0 X =1 S0 S1 S2 S1 S3 S4 S2 S5 S6 S3 S0 S0 S4 S0 S0 S5 S0 S0 S6 S0 S0
Salida X =0 X=1 0 0 0 0 0 0 0 0 1 0 0 0 1 0
Método del diagrama de implicación
Construir el diagrama de implicación con una celda para cada combinación de dos estados. El relleno inicial de la celda Si, Sj es “X” si las salidas de los dos estados son distintas. Las parejas de estados implicadas (=que deben ser equivalentes) para todas las combinaciones de entrada. Recorrer el diagrama de arriba abajo y de izquierda a derecha: Si la celda Si, Sj contiene un par de estados siguientes Sm, Sn y la celda Sm, Sn tiene una X, se marca la celda Si, Sj con X.
El paso c se repite hasta que no se añadan marcas. Las celdas Si, Sj sin marcar indican que Si, Sj son equivalentes.
a. Generación del diagrama de implicación
Estados siguientes para todas las combinaciones de las entradas.
Xij = Xji Además eliminamos la diagonal
Diagrama de implicación
b. Relleno inicial del diagrama Entrada Xij — Fila S ,i Columna Sj Si es equivalente a Sj si tienen las mismas salidas y los estados siguiente son equivalentes. Para las parejas (S ,i Sj) con las mismas salidas Xij contiene los estados siguientes de (S ,i Sj) que deben ser equivalentes si Si y Sj lo son. Para los (S ,i Sj) con diferente salida Xij se tacha. Ejemplo: S0 va a S1 si 0, a S2 si 1; S1 va a S3 si 0, a S4 si 1;
S0
La celda X<0,1> contiene S1-S3 (transición si cero) S2-S4 (transición si uno)
S1-S3 S2-S4 S1
Relleno inicial: ejemplo 1 S2 y S4 tienen distinto comportamiento E/S Esto implica que no se pueden combinar S1 y S0
c. Modificaciones sucesivas: ejemplo 1 Realizamos una pasada añadiendo cruces a las celdas que no puedan ser estados equivalentes. En la segunda pasada no se añade ninguna celda. S3 y S5 son equivalentes S4y S6 son equivalentes Esto implica que S1 y S2 también.
Resultado del ejemplo 1 Quedan 4 estados: S0 S1, S2 (S’1) S3, S5 (S’3) S4, S6 (S’4) Secuencia X(t) Reset 0 or 1 Tabla de transición de estados reducida 00 or 10 01 or 11
Estado sig. Estado actual X =0 X =1 S0 S1' S'1 S1' S3' S'4 S3' S0 S0 S4' S0 S0
Salida X =0 X =1 0 0 0 0 0 0 1 0
Minimización de estados: ejemplo 2 S(t+1), Z(t) S(t)
X=a
X=b
X=c
X=d
A
E,1
C,0
B,1
E,1
B
C,0
F,1
E,1
B,0
C
B,1
A,0
D,1
F,1
D
G,0
F,1
E,1
B,0
E
C,0
F,1
D,1
E,0
F
C,1
F,1
D,0
H,0
G
D,1
A,0
B,1
F,1
H
B,1
C,0
E,1
F,1
3.2. Sistemas secuenciales incompletamente especificados ¿Qué son sistemas incompletamente especificados? El
estado siguiente y/o la salida no están especificados para algún valor de estado actual y entrada. ¿Por qué? Por la codificación de estados: si el número no es potencia de 2 tanto estado siguiente como salida sin espec. Porque la salida se observe sólo en algunos ciclos de reloj: el resto de los ciclos salida sin espec. ¿Para qué usar los “-”? Para minimizar el número de estados.
Asignación de “-” para minimizar de estados Procedimiento intuitivo: Damos
valor 0 y buscamos estados equivalentes. Damos valor 1 y buscamos estados equivalentes. No siempre funciona: Estados equivalentes siempre pueden combinarse. Estados no equivalentes pueden combinarse si son compatibles. Método de asignación: Buscar todos los estados compatibles Elegir los estados compatibles a combinar para que el número de estados sea mínimo Asignar valores a los “-” para cumplir b.
a.1. Definir los “compatibles máximos” Def 1: secuencia de entradas APLICABLE la que no atraviesa ningún estado siguiente no especificado. Def. 2: estados COMPATIBLES si y sólo si producen la misma secuencia de salidas (cuando ambas están especificadas) para toda secuencia de entradas aplicable a ambos. Def. 3: clase de compatibilidad conjunto de estados que son todos compatibles entre sí. Def. 4: compatible máximo clase de compatibilidad que deja de serlo si se le añade un estado cualquiera.
a.2. Buscar los “compatibles máximos” Si dos estados son compatibles: Tienen
la misma salida cuando ambas están especificadas Los estados siguientes son compatibles cuando ambos espec. Método: Crear
tabla de implicación inicial Recorrerla eliminando estados incompatibles. Compatibilidad NO transitiva (un estado puede
aparecer en varios compatibles máximos).
Ejemplo: buscar compatibles máximos Sistema con 4 entradas (A, B, C, K) y 2 salidas (Y,Z). Si ninguna entrada está activa conserva el estado. No puede haber varias entradas activas a la vez (sin especificar).
S(t)
A
S(t+1), YZ B C
1 3 4 5 6 7 8 9
1,4,-,9,9,-,8,9,-
1,5,7,-,8,-,-,9,-
1,6,9,9,-,7,-,9,-
3
K 3,00 -,-,-,-,1,01 1,10 1,00
4 5 6 7 8 9 1
3
4
5
6
7
8
b. Hallar “colección de cobertura mínima” Def. 5: estado p de tabla T CUBRE a estado q de tabla
S si y sólo si producen la misma secuencia de salidas (cuando la salida de S está especificada) para toda secuencia de entradas aplicable a q. Es
más restrictivo cobertura que compatibilidad. Todos los estados cubiertos por un mismo estado son compatibles entre sí (son clase de compatibilidad). Def. 6: una tabla T cubre a otra tabla S si todo estados de S es cubierto por uno de T. Def. 7: clase de compatibilidad CERRADA para todo estado de la clase y toda entrada todos los estados siguientes especificados pertenecen a una única clase.
Colección de cobertura mínima (cont.) Teorema: Colección
de cobertura: colección de clases de compatibilidad cerrada tal que cada estado del circuito está en al menos una clase. Si un circuito S tiene n estados agrupados en m clases (que son colección de cobertura), el circuito puede ser cubierto por un circuito T de m estados. Buscar una colección de cobertura mínima Empezamos usando todos los compatibles máximos. Se elige el mínimo número de clases que sea colección de cobertura cubra todos los estados cumpla la propiedad de cierre.
Ejemplo: colección de cobertura mínima
Compatibles máximos: si 6-7 3-7 si 4-8 3-8 4-5 4-8 5-6 5-9 6-7 1 Colección de cobertura: 1 (a), 3 (b), 4-8 (c), 5-9 (d), 6-7 (e)
S(t)
A
S(t+1), YZ B C
a b c d e
a,c,c,d,d,-
a,d,e,d,c,-
a,e,d,d,e,-
K b,00 -,a,10 a,00 a,01
c. Asignar “-” del sistema mínimo Asignamos valores a las salidas -cuando sea
necesariopara que cada estado de T cubra a la clase de S (deben tener la misma salida para toda entrada que esté especificada para algún estado de la clase).
Lo mismo para el estado
siguiente.
Podemos eliminar estados de una clase
para reducir los
requisitos de cierre. Las clases solapadas pueden producir estados siguientes parcialmente no especificados.
Ejemplo 2: asignación de “-” S(t) A B C D E B C D E A
B
C
D
X=00
X=01
X=11
X=10
B,C,0 -,A,B,1
E,0 D,E,B,1 -,-
E,0 -,A,0 -,-,-
B,-,B,0 -,D,1
4. Codificación de estados La elección del código binario que se asigna a cada
estado influye en la ecuaciones de excitación y salida. Estrategias de codificación intentan averiguar qué asignación produce ecuaciones más sencillas: Estrategia del mínimo cambio de bits Estrategia de prioridad de adyacencia Codificación del “1 caliente” Pero:
No es posible garantizar que se obtiene el resultado óptimo. Las ecuaciones de excitación dependen del tipo de biestables.
Estrategia del mínimo cambio de bits
S0
0 S1
1 S2
S3
S4
Estado S0 S1 S2 S3 S4
Codificación 1 Q2 Q 1 Q0 0 0 0 1 0 1 1 1 1 0 1 0 0 1 1
Codificación 2 Q2 Q1 Q0 0 0 0 0 0 1 0 1 0 0 1 1 1 1 1
Transición Cambios de bit Cambios de bit 2 1 S0 a S1: 3 1 S0 a S2: 3 1 S1 a S3: 2 1 S2 a S3: 1 1 S3 a S4: 2 2 S4 a S1: 13
7
Estrategia de prioridad de adyacencia
Códigos adyacentes a estados con fuente, destino o salida comunes. Prioridades en la asignación: Prioridad 1: DESTINO COMUN Estados con el mismo estado siguiente para las entradas. Estados con estados siguientes iguales (y adyacentes) para distintas entradas.
i/j
i/k
Prioridad 2: FUENTE COMUN Estados siguientes del mismo estado para entradas adyacentes.
Prioridad 3: SALIDA COMUN Estados con la misma salida para las mismas entradas.
i/j
i/j
Codificación de estados: ejemplo Diseñar un sistema secuencial síncrono con una
entrada X y una salida z, ambas de un bit. La salida vale 1 cuando x(t-3,t) = 0110 o 1010.
Secuencia X(t) Reset 0
Estado S0 S1
1
S2
00 o 11
S3'
01 o 10
S4'
no (011 o 101)
S7'
011 o 101
S10'
Codificación de estados: ejemplo (II) Estado sig. Secuencia X(t)
Salida
Estado actual
X=0
X=1
X=0
X=1
S0
S1
S2
0
0
0
S1
S3'
S4'
0
0
1
S2
S4'
S3'
0
0
00 or 11
S3'
S7'
S7'
0
0
01 or 10
S4'
S7'
S10'
0
0
S7'
S0
S0
0
0
S10'
S0
S0
1
0
Reset
not (011 or 101) 011 or 101
Prioridad 1: (S7', S10'), (S3', S4'), (S1,S2) Prioridad 2: (S1, S2), 2x(S3', S4'), (S7', S10') Prioridad 3: 0/0: (S0, S1, S2, S3', S4', S7') 1/0: (S0, S1, S2, S3', S4', S7')
Codificación de estados: ejemplo (II)
Posiblemente sean óptimas las codificaciones con: 00 = Reset = S0 (S1, S2), (S3', S4'), (S7', S10') adyacentes
Primera implementación: Codificar estados en binario, usar biestables D. Segunda implementación: Usar codificación según prioridad de adyacencia (abajo) y biestables D. Estado
S0
S1
S2
S3’
S4’
S7’
S10’
Código
000
001
101
011
111
010
110
5. Diseño de circuitos secuenciales con diferentes clases de biestables
Ecuaciones de estado siguiente Q+ = f(X,Q)
Elegir elementos de memoria (S-R, D, J-K o T)
Ecuaciones de excitación {S-R, D, J-K, T} = f(X,Q)
El tipo de biestable elegido determina las ecuaciones de excitación. Las funciones serán más sencillas si elegimos el mejor. Proceso de diseño: Elegir el biestable más adecuado. Obtener las funciones de excitación usando la tabla de excitación del biestable. Simplificar las funciones.
Elección del biestable
Latch R-S sensible a nivel: usado como elemento de almacenamiento en sistemas con reloj de pequeña anchura no se recomienda su uso! sin embargo bloque básico para construir otros biestables Biestable J-K: componente versátil puede ser usado para construir biestables D y T normalmente necesita menos cantidad de lógica para implementar ƒ(X,Q,Q+) pero tiene dos entradas lo que incrementa la complejidad del conexionado
Elección del biestable (II)
Biestable D: minimiza interconexionado la más popular en tecnologías VLSI la técnica de diseño más sencilla la mejor elección para los registros de estado
Biestable T: no existen realmente, construidos a partir de J-K normalmente la mejor elección para implementar contadores