cap13 - Departamento de Electrónica

Anuncio
UNIVERSIDAD TECNICA FEDERICO SANTA MARIA
DEPARTAMENTO DE ELECTRONICA
ELO211 Sistemas Digitales
12.
MEMORIAS PRIMITIVAS SINCRÓNICAS
Se estudiarán algunos dispositivos capaces de almacenar un bit de información, desde un
punto de vista lógico. Es decir, qué hace la componente; sin explicar cómo lo realiza
internamente. Esto último se verá más adelante.
Esta memoria se denomina flip-flop, y se tienen tres tipos, denominados: JK, T y D. Todos
ellos operan con una señal periódica, denominada reloj.
12.1. Reloj
Los cambios de estado ocurren solamente en determinados instantes de tiempo; esos instantes
están sincronizados con el reloj.
t
En algunos casos se emplea el canto de subida del reloj para marcar los instantes de cambio;
en otros, se emplea el canto de bajada. El canto que define el instante de tiempo es el evento
sincronizante, y suele llamarse tic.
En los flip-flops disparados por cantos, se requiere una determinada pendiente para el reloj; no
importando el ancho. En general, el tiempo que la señal está en cero es mucho mayor que el
intervalo en que el reloj está alto. Se define el ciclo de trabajo de la señal periódica de un reloj,
como el porcentaje del tiempo que la señal está alta entre tics. Si la señal es cuadrada el ciclo
de trabajo es igual al 50%.
Durante el tiempo que el reloj está en uno se habilitan las entradas hacia el interior del flipflop. Y se requiere que las entradas no cambien durante cierto período previo y posterior al
instante en que ocurren los cambios de las salidas.
Para cambios con canto de bajada:
tsu
th
Con: tsu : tiempo de set-up, y th: tiempo de hold.
En el siguiente diagrama se ilustra la forma de indicar una variación de la señales de
entrada(sobre todo en caso de ser un conjunto de señales). La figura muestra que las señales
pueden cambiar(tomar valores 0 ó 1) desde el instante en que ocurren las líneas inclinadas, que
representan cantos. La figura se interpreta: tsu segundos antes del canto de subida, las señales
de entrada deben estar estables, y deben mantenerse estables th segundos después del canto de
subida. Debe existir una ventana alrededor del evento sincronizante, durante la cual las
Prof. Leopoldo Silva Bijit.
14-11-2015
201
UNIVERSIDAD TECNICA FEDERICO SANTA MARIA
DEPARTAMENTO DE ELECTRONICA
ELO211 Sistemas Digitales
entradas deben permanecer estables(sin cambios) para ser correctamente reconocidas por el
flip-flop.
tsu
tsu : tiempo de set-up.
th
entrada
th: tiempo de hold.
clock
Los fabricantes especifican el valor promedio y de peor caso para los tiempos de preparación
(set-up) y de sostenimiento (hold), durante los cuales las entradas no pueden cambiar.
Desde un punto de vista lógico, podemos pensar que el reloj es un tren de impulsos.
t
t t
0 1 2
...
tk = t  k
Y las variables en el tiempo, se consideran discretas; es decir, asumen valores sólo en determinados
valores de t.
v(tk) = v(kt) = v(k)
v(k-1)
v(k)
k  t
v(k+1)
(k+1) t
t
v(k) define una secuencia de valores sincrónicos con el reloj. Existe una correspondencia
biunívoca, entre { 0, 1, 2, 3, ...., k, ....} y { vo, v1, v2, ...., vk, .... }.
12.2. Secuencias sincrónicas
Existen dos tipos de señales sincrónicas. Las de niveles sincrónicos se caracterizan porque los
valores de la secuencia permanecen constantes entre pulsos del reloj, y sólo cambian con los
cantos de subida o bajada del reloj.
En secuencias sincrónicas de pulsos, solamente hay valores de la secuencia, durante los pulsos
del reloj.
Prof. Leopoldo Silva Bijit.
14-11-2015
202
UNIVERSIDAD TECNICA FEDERICO SANTA MARIA
DEPARTAMENTO DE ELECTRONICA
ELO211 Sistemas Digitales
Reloj
sincrónica
nivel
Sincrónica
pulsos
En ambos casos, la secuencia de valores lógicos es: { 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0 ... }
12.3. Flip-flop JK
Es una máquina secuencial de Moore. En la cual, la salida es igual al estado.
Se suelen usar los siguientes símbolos lógicos:
J
CP
K
S
QQ
__
QQ
R
J
CP
K
S
R
R
J
CP
K
QQ
__
QQ
S
Q
_
QQ
datos
J
K
Q
salida
reloj
Las señales S y R son set y reset asincrónicos, y se verán después. El diagrama de la izquierda ilustra
un flip-flop que opera con cantos de bajada del reloj, la segunda con cantos de subida. La figura de la
derecha, utiliza un pequeño triángulo para mostrar que el flip-flop está sincronizado(o es disparado)
por cantos. Si es disparado por cantos de bajada, se dibuja un pequeño círculo en la base del triángulo.
Cuando es sincronizado por un pulso(master slave) en lugar del triángulo se dibuja un pulso, como se
muestra a continuación:
datos
J
K
Q
salida
reloj
Se suele proveer dos salidas complementarias. Esto implica que internamente se almacenan dos bits;
como se verá más adelante, esto requiere tener dos variables de estado internas. Desde un punto de
vista externo, sólo basta especificar las secuencias de las entradas para tener transiciones del estado
Q= 0, al estado Q = 1 y viceversa.
Cuando se pasa de Q = 0 a Q = 1, se dice que se setea el flip-flop; en caso contrario, se resetea.
Prof. Leopoldo Silva Bijit.
14-11-2015
203
UNIVERSIDAD TECNICA FEDERICO SANTA MARIA
DEPARTAMENTO DE ELECTRONICA
ELO211 Sistemas Digitales
12.3.1. Diagrama de estados
El JK queda definido, en forma rigurosa, por un diagrama de estados:
1
0
0
JK = 11, 10
00, 01
Q=1
set
Q=0
reset
01, 11
00, 10
1
El par de entradas asociada a cada transición puede anotarse empleando notación de bit
superfluo ; es decir, su ocurrencia indica que esa posición puede ser 0 ó 1. Ejemplo de esto es
el par: {01, 11} que se puede anotar: 1.
Existen diferentes formas alternativas de representar la información anterior. Cada una aporta
la misma información desde un punto de vista diferente.
12.3.2. Tabla de transiciones
Q(k)
JK
00 01 11 10
0 0
0
1
1
1 1
0
0
1
Q(k+1)
La primera columna, con J = K = 0, indica que no hay cambio de estado.
La segunda, muestra cuando el próximo estado es reset.
La tercera, muestra un complemento del estado presente.
La cuarta, indica condiciones para quedar en estado set.
Prof. Leopoldo Silva Bijit.
14-11-2015
204
UNIVERSIDAD TECNICA FEDERICO SANTA MARIA
DEPARTAMENTO DE ELECTRONICA
ELO211 Sistemas Digitales
12.3.3. Ecuación característica
Leyendo la tabla de transiciones, como mapa de Karnaugh, , se obtiene:
Q(k + 1) = J(k) Q(k) + K(k) Q(k)
que describe el próximo estado, mediante una expresión booleana del estado presente y las
entradas.
12.3.4. Tabla característica
Para analizar circuitos que empleen flip-flop, se suele emplear la siguiente tabla:
J
K
Q(k+1)
0
0
Q(k)
0
1
0
1
0
1
1
1
_
Q(k)
Puede obtenerse mediante la ecuación característica, dándole valores a las entradas. O bien, a
partir de la interpretación de las columnas de la tabla de transiciones. Describe cómo deben ser
las entradas para tener un determinado estado en la salida.
12.3.5. Tabla de excitaciones
Describe las transiciones de la salida, en términos de las entradas. Suele usarse para diseñar
circuitos que empleen flip-flops.
Q(k) _ > Q(k+1)
0
0
1
1
0
1
0
1
J
K
0
1



1

0
La cual puede obtenerse fácilmente, observando las transiciones en el diagrama de estados.
Prof. Leopoldo Silva Bijit.
14-11-2015
205
UNIVERSIDAD TECNICA FEDERICO SANTA MARIA
DEPARTAMENTO DE ELECTRONICA
ELO211 Sistemas Digitales
12.3.6. Lenguaje procedural
Empleando lenguajes de programación, que describen secuencias de acciones, puede
describirse aproximadamente, la conducta del flip-flop. La dificultad con los lenguajes de
programación, es que describen los cambios en secuencia, uno por vez. Pero en el flip-flop,
las acciones pueden ocurrir en paralelo, o concurrentemente en el tiempo. Es decir, las
entradas pueden cambiar simultáneamente.
Se introduce la función espera cs( ), de un argumento, que describe la espera de un canto de
subida de la entrada que se especifique. Esta función debe esperar a que la entrada(su
argumento) cambie de 0 a 1, entre ticks del reloj.
flip-flop JK:
repeat
if ( Q(k) = = 0 ) then espera cs( J); else espera cs(K);
Q(k+1) = Q (k);
forever.
12.3.7. Lenguaje declarativo
Para descripciones de hardware, suelen emplearse lenguajes declarativos, que especifican las
condiciones para que se produzcan determinadas acciones.
Las declaraciones se anotan:
Condición | acción
Se asume que todas las condiciones se evalúan permanente y simultáneamente, y que se
realizan todas las acciones cuyas condiciones sean verdaderas.
flip-flop JK:
Q J   Q = 1
QK   Q = 0
La primera sentencia se interpreta: Cuando Q' y J son unos, en el primer canto de subida del
reloj se efectúa Q = 1.
La segunda sentencia se interpreta: Cuando Q y K son unos, con el canto de subida del reloj se
efectúa el cambio de estado a Q = 0.
12.3.8. Lenguaje Abel
Prof. Leopoldo Silva Bijit.
14-11-2015
206
UNIVERSIDAD TECNICA FEDERICO SANTA MARIA
DEPARTAMENTO DE ELECTRONICA
ELO211 Sistemas Digitales
12.4 Flip-flop T
En forma similar a la desarrollada para el flip-flop JK, se resume la información para un T.
T=1
Q
> T
Q
Q =1
set
Q =0
reset
0
0
CP
1
T
Q(k)
0
1
0
0
1
1
1
0
Q(k + 1) = T(k)Q(k) + T(k)Q(k) = T(k)  Q(k)
Q(k+1)
Q(k) _ > Q(k+1)
T
T
Q(k+1)
0
Q(k)
0
0
0
1
0
1
1
Q(k)
1
1
0
1
1
0
flip-flop T:
repeat
espera cs(T); Q(k+1) = Q (k);
forever.
Q T  Q = 1
QT   Q = 0
La T proviene de Toggle, que describe un tipo de interruptores de presión de una posición(se oprime y
queda en un estado; se vuelve a oprimir y cambia de estado).
Diseño en base a JK. A partir de un flip-flop JK puede obtenerse un T. Según se ilustra en el diagrama
a continuación.
T
J
K
Q
salida
reloj
Prof. Leopoldo Silva Bijit.
14-11-2015
207
UNIVERSIDAD TECNICA FEDERICO SANTA MARIA
DEPARTAMENTO DE ELECTRONICA
ELO211 Sistemas Digitales
Un uso típico de un flip-flop T es para dividir por dos la frecuencia de entrada. Ya que en cada canto
activo cambia el estado del flip-flop, permaneciendo la salida constante entre dos cantos activos. Lo
cual se ilustra a continuación para flip-flop T, disparado por canto de subida.
clk
T
1
T=1
salida
Q
reloj
Q
12.5. Flip-flop D
1
dato
D
Q
reloj
1
Q =1
set
Q =0
reset
salida
0
0
D
Q(k)
0
1
0
0
1
1
0
1
Ecuación característica
Q(k + 1) = D(k)
Q(k+1)
D
Q(k) _ > Q(k+1)
Q(k+1)
D
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
flip-flop D:
repeat
if ( Q(k) = = 0 ) then espera cs(D); else espera cb(D);
Q(k+1)= Q (k);
forever.
Declaración no procedural:
QD   Q = 1
QDQ=0
Prof. Leopoldo Silva Bijit.
14-11-2015
208
UNIVERSIDAD TECNICA FEDERICO SANTA MARIA
DEPARTAMENTO DE ELECTRONICA
ELO211 Sistemas Digitales
La D proviene de Datos.
El siguiente esquema ilustra el diseño de un flip-flop D en base a JK.
J
Q
K
Q'
D
Clk
12.6 Requerimientos Temporales.
La descripción del funcionamiento lógico de un flip-flop real especifica los requerimientos temporales
que deben cumplirse para que las funciones del flip-flop operen correctamente.
Básicamente son tres: los tiempos de set-up y hold(Tsu y Th); duración mínima del reloj(Tw); tiempos
de propagación desde el canto del reloj hasta que se tiene salida estable: Tplh describe cuanto tarda la
salida en pasar de low(nivel bajo) a un nivel alto(high); y Tphl es el tiempo de propagación de high a
low. Estos tiempos se describen como valores máximos(peor caso) y típicos. Debe notarse que Tplh y
Tphl suelen ser distintos.
La siguiente gráfica muestra dichos tiempos para un flip-flop disparado por cantos de subida(positive
edge triggered); la señal de entrada D, cumple los requerimientos de Tsu y Th.
D
CLK
Tsu
20ns
Tsu
20ns
Th
5ns
Th
5ns
Tw 25ns
Q
Tplh
Tphl
25ns máx.
40ns máx.
13ns típico
25ns típico
Todos los tiempos se miden desde el canto activo del reloj(el de subida, en el ejemplo).
Las siguientes formas de ondas ilustran relaciones temporales para flip-flops disparados por cantos de
subida y de bajada.
En flip-flops disparados por canto de subida(positive edge triggered) las entradas se muestrean en el
canto de subida(en realidad requiere valor estable tsu segundos antes) y las salidas(Qp y Q’p) cambian
Prof. Leopoldo Silva Bijit.
14-11-2015
209
UNIVERSIDAD TECNICA FEDERICO SANTA MARIA
DEPARTAMENTO DE ELECTRONICA
ELO211 Sistemas Digitales
un tiempo de propagación después, relativa al canto de subida. Debe notarse que las salidas
complementarias(Q y Q') no cambian instantáneamente; esto se justificará después.
En flip-flops disparados por canto de bajada, se muestrean las entradas en el canto de bajada, y las
salidas(Qn Q’n) cambian después del canto de bajada.
D
Clk
Qp
Q'p
Qn
Q'n
En la actualidad el flip-flop más importante es el de tipo D, suele emplearse en registros para
almacenar datos y es el flip-flop que se emplea en dispositivos lógicos programables(en su forma de
disparo por cantos). Debido a que se puede implementar con un número reducido de interruptores
CMOS, suele emplearse en circuitos integrados que requieran flip-flops.
El flip-flop JK fue sumamente empleado en los inicios debido a que tiene conducta determinada
cuando ambas entradas son unos(a diferencia del flip-flop SR). Es el flip-flop típico de la familia TTL
y de circuitos integrados en pequeña escala(SSI), permite construir fácilmente flip-flops de tipo D y T.
En la actualidad prácticamente no se usa. No está presente en las configuraciones internas de los
dispositivos lógicos programables, pero en estos casos se lo puede construir en base a los flip-flops de
tipo D, que éstos poseen.
El flip-flop de tipo T, prácticamente no está disponible como elemento; sin embargo puede ser
fácilmente implementado en base a los existentes(tipo D o JK).
En los flip-flops son necesarias entradas que permitan dejar al flip-flop en un estado determinado.
Clear deja la salida Q en cero; y preset deja la salida alta. Estas señales suelen ser de naturaleza
asincrónica(como se verá más adelante); es decir, que se permite a estas entradas cambiar en cualquier
instante, respecto del reloj. Como se verá estas señales permiten dejar a un sistema secuencial en un
estado determinado.
12.7. Metodologías de temporización.
Se denomina así a las reglas para interconectar compuertas y flip-flops de tal forma de garantizar que
el sistema completo funcionará correctamente. Las metodologías dependerán del tipo de elemento que
se emplee para implementar la memoria, ya sea flip-flops disparados por cantos(que suelen emplearse
Prof. Leopoldo Silva Bijit.
14-11-2015
210
UNIVERSIDAD TECNICA FEDERICO SANTA MARIA
DEPARTAMENTO DE ELECTRONICA
ELO211 Sistemas Digitales
en dispositivos lógicos programables) o bien latch transparentes que suelen emplearse en la confección
de registros en procesadores.
Las reglas básicas para la correcta temporización son: proporcionar entradas que cumplan los tiempos
de set-up y hold relativas al reloj, y que las salidas no cambien su estado más de una vez por evento
sincronizante.
La gráfica siguiente ilustra las formas de ondas de las salidas de un flip-flop D, disparado por canto de
subida y un latch transparente de tipo D. Note que en el latch la salida cambia entre pulsos del reloj,
copiando los cambios de la entrada hacia la salida apenas ocurren cambios de ésta, estando alto el
reloj.
D
Clk
Qcanto
D
Q
Qlatch
E
QClk
En el latch transparente(o sensible al nivel), estando el reloj en alto, la salida cambia de acuerdo al
valor de la entrada(después del tiempo de propagación); el canto de bajada del reloj del latch captura
el valor que tenga la entrada en ese tiempo(el latch, también requiere cumplir especificaciones de setup y hold, alrededor del canto de bajada del reloj). También existe un tiempo de propagación desde un
cambio de la entrada o del canto de subida reloj(el evento que ocurra más tarde).
La estructura interna de los flip-flops disparados por cantos y el latch se verá más adelante.
D
CP
modo captura
Ql
modo transparente
Prof. Leopoldo Silva Bijit.
14-11-2015
211
UNIVERSIDAD TECNICA FEDERICO SANTA MARIA
DEPARTAMENTO DE ELECTRONICA
ELO211 Sistemas Digitales
Estudiemos un ejemplo de temporización. La figura siguiente ilustra los requerimientos de las entradas
de dos flip-flops D, disparados por cantos de subida.
dato
D Q
D Q
clock
entrada estable
dato
clock
Consideremos ahora la conexión cascada que se ilustra en la gráfica a continuación. La salida del
primer flip-flop se conecta a la entrada del segundo.
dato
D0
Q0
Q1
D1
clock
D0
Tsu
4ns
Tsu
4ns
Q0=D1
Tp
3ns
Tp
3ns
Q1
CLK
Th
2ns
Th
2ns
Si se cumplen las metodologías de temporización se garantiza la correcta operación de la conexión
cascada. Para ello se requiere que los retardos de propagación sean mayores que el tiempo de hold, y
que el ancho del reloj, en bajo, sea mayor que el tiempo de set-up. O sea tsu es el tiempo mínimo
Prof. Leopoldo Silva Bijit.
14-11-2015
212
UNIVERSIDAD TECNICA FEDERICO SANTA MARIA
DEPARTAMENTO DE ELECTRONICA
ELO211 Sistemas Digitales
durante el cual tanto el reloj como la entrada deben permanecer fijos, antes de un canto del reloj.
Tampoco pueden cambiarse las entradas y el reloj durante el tiempo de hold.
De este modo la siguiente etapa capturará el valor actual antes de que cambie de valor. Es decir se
asume como funcionamiento correcto, que todos los flip-flops determinen su próximo estado en el
mismo instante.
La conexión anterior asume que todos los flip-flops tienen el mismo reloj. Sin embargo, en sistemas
que funcionan con relojes de altas frecuencias el tiempo de retardo de propagación a través del sistema
digital es comparable al que requiere el reloj para llegar a los diferentes flip-flops. La diferencia entre
cantos de reloj, en diferentes flip-flops se denomina desfasamiento( o desplazamiento, de skew en
inglés).
Previo al primer canto de subida se está en estado Q0 = 0 y Q1 = 0. Después el estado será: Q0 = 1 y
Q1 = 0, previo al segundo canto de subida del reloj.
D0
Q0
dato
Q1
D1
clk0
clk1
reloj
D0
Tsu
4ns
Ts
4ns
Q0=D1
Tp
3ns
Tp
3ns
Q1
Clk0
Clk1
Th
2ns
Tsu
4ns
Tp 3ns
Th
2ns
Tsu
4ns
Th
2ns
Tp 3ns
Th
2ns
Se advierte que D1, no cumple la especificación de permanecer estable(Tsu antes y Th después del
canto de subida de clk1). Debido a esto la salida Q1 será indeterminada. Asumiendo que conmuta y
Prof. Leopoldo Silva Bijit.
14-11-2015
213
UNIVERSIDAD TECNICA FEDERICO SANTA MARIA
DEPARTAMENTO DE ELECTRONICA
ELO211 Sistemas Digitales
que se muestrea el valor de la entrada en el canto de subida, se muestra la forma de Q1, Tp segundos
después del canto de subida de clk1.
Más adelante podrá determinarse que la conexión cascada de los flip-flops se comporta como un
registro de desplazamiento. Debido al desfase podría dejar de ser un registro de desplazamiento.
Previo al primer canto de subida de clk0, se está en estado Q0 = 0 y Q1 = 0. Después el estado será:
Q0 = 1 y Q1 = 1, previo al segundo canto de subida del reloj clk0. Lo cual no da una conducta
predecible, ésta depende del tiempo de desfasamiento entre los diferentes relojes aplicados a los flipflops.
Más adelante se desarrollará más sobre este problema y cómo garantizar el funcionamiento de los
sistemas digitales sincrónicos, considerando los tiempos de propagación y de desfase entre relojes.
El análisis anterior nos lleva a uno más general y es de cómo tratar entradas asincrónicas a sistemas
sincrónicos. Es decir las entradas pueden cambiar en cualquier instante y puede que no satisfagan los
requerimientos de set-up y hold. Esta dificultad no puede evitarse en algunas situaciones, como por
ejemplo, en caso de una entrada generada por un operador( y también cuando se emplean memorias en
forma asincrónica). Debido a lo anterior es preferible diseñar con entradas sincrónicas(si las entradas
son salidas de otros flip-flops, esto se produce naturalmente) y también muestra que son preferibles los
circuitos generados por modelos de Moore.
Cuando las entradas a un flip-flop cambian muy cercanas al canto del reloj, éste puede tener
inestabilidades internas que no permiten asegurar que se cumplan las ecuaciones del flip-flop. En estos
casos puede reducirse la probabilidad de falla bajando la frecuencia del reloj, o empleando compuertas
más rápidas, o empleando un sincronizador. El sincronizador simplemente es un flip-flop, cuya salida
cambia sólo en los cantos del reloj. El empleo de sincronizadores garantiza que el resto del sistema
tendrá entradas sincrónicas, pero no se puede garantizar que el sincronizador no tendrá fallas.
No es recomendable conectar una entrada asincrónica a dos entradas de flip-flops, sin previamente
haber sincronizado la entrada, ya que uno de los flip-flops podría no capturar la entrada, por violar ésta
los requerimientos de set-up o hold. El siguiente diagrama ilustra que Q1 no cambia de igual forma
que Q0.
Entrada
Q0
Q1
CLK
Prof. Leopoldo Silva Bijit.
14-11-2015
214
Documentos relacionados
Descargar