14-Maquinas Asincron.. - Departamento de Electrónica

Anuncio
14-Máquinas Secuenciales Asincrónicas
14.1 Bases electrónicas para almacenar
bits
14.2 Latch asincrónico S-R
14.3 Diseño de FFs en base a latches
14.4 Multivibrador aestable
14.5 Multivibrador monoestable
14: Asincrónicas
1
Bases electrónicas para almacenamiento de
bits
 Los programas de computadoras usan memoria
RAM (Random Access Memory) para almacenar
programas y datos (bits) utilizados para la
computación.
 Ha habido una gran mejora en la densidad de
almacenamiento
desde
tubos
a
memoria
electromagnéticas (ferritas) a circuitos integrados
actuales (ICs: Integrated Circuits).
 Memoria volátil tiene que ser realimentada con
electricidad o se pierde toda la información cuando
se apaga la computadora.
14: Asincrónicas
2
Bases electrónicas para almacenamiento de
bits
 RAM volátil moderna almacena bits en una de dos
formas:


como cargas en condensadores (e.g. DRAM: Dynamic RAM)
como estados en flip flops (e.g. SRAM: Static RAM).
 DRAM tiene que ser refrescada periódicamente (e.g.
el standard JEDEC especifica cada 64ms o menos)
 Memorias no volátiles incluyen ROM, Flash, discos
duros, floppys, cintas magnéticas. Pueden o no ser
secuenciales y típicamente son más caras y más
lentas que memorias volátiles (e.g. DRAM).
 Otros tipos de memoria no volátiles siendo
actualmente desarrollados incluyen nanotubos de
carbón y el efecto de magnetoresistencia de tunnel
(TMR).
14: Asincrónicas
3
Bases electrónicas para almacenamiento de bits
(cont)

DRAM es un tipo de RAM que almacena cada bit de datos en un
condensador separado.

Ya que los condensadores no ideales tienen pérdidas de
electrones (cargas) la información eventualmente se pierde si
no se refresca.

La ventaja de DRAM es que estructuralmente es mas simple,
solo se necesita un transistor y condensador por bit, esto
permite una gran densidad.

Ejemplo: Transistor NMOS (Negative-Channel Metal-Oxide
Semiconductor) usados para cargar un condensador
Control Acceso: 1/0
Datos: 1/0
14: Asincrónicas
4
Bases electrónicas para almacenamiento de bits
(cont)



Ejemplo: DRAM de 4x4 celdas
Para leer un valor, con RAS (Random Access
Strobe = 0)
 usando a0 y a1 se activan los transistores de
una fila y se conectan los condensadores de
esa fila a las líneas de detección (sense lines)
 los amplificadores (sense amplifiers)
discriminan entre un 0 y un 1 y amplifican las
señales al valor correcto (e.g. TTL = 5V)
 se usan a2 y a3 para seleccionar la columna
correcta y se conecta al output via el MUX
 después del ciclo de lectura los
amplificadores recargar los valores de los
condensadores que fueron descargados por
la lectura
Para la escritura de un bit se lee su fila completa
al latch, se modifica el bit deseado en el latch
usando Data In (D.I) y se almacena la fila
modificada en los condensadores
correspondientes
D.I.
14: Asincrónicas
5
Bases electrónicas para almacenamiento de bits
(cont)
 SRAM es un tipo de RAM volátil que almacena cada bit de
datos en una configuración estable que mantiene el valor
del bit mientras haya poder aplicado
 Usando un par de inversores CMOS esta configuración se
puede lograr de la siguiente forma. Esto se denomina
almacenamiento bi-estable ya que el output en CMOS es
estable alrededor de los dos valores Vcc y GND
"1"
"stored value"
"0"
14: Asincrónicas
6
Circuitos simples con feedback
 Dos inversores forman una celda de memoria
estática
 van a mantener valor mientras tenga
energía el circuito
"1"
"stored value"
"0"
 Cómo se introduce un nuevo valor en la celda?


selectivamente romper realimentación
cargar nuevo valor en la celda
"remember"
"data"
"load"
"stored value"
14: Asincrónicas
7
Estabilidad e inputs asincrónicos
 Circuitos sincrónicos (con reloj)
 inputs, estados e outputs muestreados o
cambian en relación a señal común (reloj)
 pueden ser master/slave, activados con
cantos
 Circuitos asincrónicos
 inputs, estados y outputs muestreados o
cambian independientes de señal de
referencia común (glitches/hazards una
preocupacion )
 e.g., R-S latch
14: Asincrónicas
8
Estabilidad e inputs asincrónicos
(cont)

Inputs asincrónicos a circuitos sincrónicos
 inputs pueden cambiar en cualquier tiempo, no van a
satisfacer tiempos de setup/hold
 peligroso, inputs sincrónicos son preferidos
 en generar es buena práctica de diseño el tener
circuitos que solamente tienen inputs sincrónicos
 hay veces que los inputs asincrónicos no se pueden
evitar (e.g., señal reset, memory wait, input de
usuario), por eso se usa un sincronizador
Sincronizador (D0)
Async
Input D Q
D Q
Clock
D Q
Clock
14: Asincrónicas
9
Estabilidad e inputs asincrónicos
(cont)

Que puede salir mal?
 input cambia muy cerca de un canto
de reloj (violando restricciones de
tiempo de setup/hold) esto causa que
el output del FF sincronizador sea
indefinido
In
Q0
Sincronizador (D0)
Async
Input D Q
?
Clock
Input a D0 es asincrónico
FF no captura la señal
CLK
se llega a estado inconsistente
o erróneo!
14: Asincrónicas
10
Falla de sincronización

Ocurre cuando el input a un FF cambia cerca del canto del reloj
(tiempo de setup y hold del input no son válidos)
 el FF puede entrar en un estado metaestable – no es ni lógica
0 ni 1
 puede quedarse en este estado indefinidamente (poco
probable dado variaciones termales y asimetrías en retardos
de señales a nivel de transistores de implementación del FF)
logic 1
logic 0
logic 1
small, but non-zero probability
that the FF output will get stuck
in an in-between state
logic 0
oscilloscope traces demonstrating
synchronizer failure and eventual
decay to steady state
14: Asincrónicas
11
Falla de sincronización (cont)

Probabilidad de falla puede ser reducida, pero nunca puede
ser 0

Posibles mejoras:
 hacer que el reloj sea mas lento: esto le da más tiempo al
sincronizador para decaer a un estado estable;
fallas del sincronizador puede ser un grave problema para
sistemas de alta velocidad
 usar tecnología con lógica mas rápida: esto hace que la
“cumbre” sea más delgada
 poner dos sincronizadores en cascada: ambos tendrían
que fallar para tener un estado metaestable
asynchronous
input
D
Q
D
synchronized
input
Q
Clk
synchronous system
14: Asincrónicas
12
Falla de sincronización (cont)
 Nunca tener inputs asincrónicos que hagan
fan-out a mas de un flip-flop


por diferencias en cableado y otros retardos podrían
tener valores diferentes, seria un estado inválido
hay que sincronizar lo antes posible y tratar como
señal sincrónica
Clocked
Synchronous
System
Async
Input
D Q
Synchronizer
Q0
Async
Input D Q
D Q
Clock
Clock
D Q
Q1
Clock
Q0
D Q
Q1
Clock
14: Asincrónicas
13
14-Maquinas Secuenciales Asincrónicas
14.1 Bases electrónicas para almacenar
bits
14.2 Latch asincrónico S-R
14.3 Diseño de FFs en base a latches
14.4 Multivibrador aestable
14.5 Multivibrador monoestable
14: Asincrónicas
14
Memoria basada en compuertas conectadas
Se denomina latch a un elemento de almacenamiento de
un bit
 Usando compuertas NOR


similar a par de inversores, pueden forzar output Q a 0
(reset=1, set=0) o 1 (set=1, reset=0)
Reset
Set

R
Q
S
Q'
Q
R
S
NOR
x y z
0 0 1
0 1 0
1 0 0
1 1 0
Usando compuertas NAND

similar a par de inversores, pueden forzar output Q a 0
(reset=0, set=1) o 1 (set=0, reset=1)
S'
R'
Q
S'
R'
Q
Q'
14: Asincrónicas
NAND
x y z
0 0 1
0 1 1
1 0 1
1 1 0
15
Comportamiento temporal de latch R-S
S
0
0
1
1
Reset
R
0
1
0
1
Q
hold
0
1
unstable
Hold
Set
R
Q
S
Q'
Reset
Set
100
Race
R
S
Q
\Q
14: Asincrónicas
16
Latch Asincrónico S-R (Latch de Nand)
 Las
compuertas se asumen ideales. Y se
modela el retardo de propagación, mediante
una componente externa.
Q(t) = q(t+∆S)
Qn(t) = qn(t+∆R)
14: Asincrónicas
17
Latch Asincrónico S-R (Latch de Nand)
 Estado Presente: q, qn
 Estado Proxímo: Q, Qn
 Salida: Estado Presente

Eventos que producen cambios están
asociados a los cantos de bajada de las
señales de entrada.
Se tiene:

Q =S ' ⋅qn =S ' '  qn '
Qn =R ' ⋅q =R ' ' q '
14: Asincrónicas
18
Latch Asincrónico S-R (Latch de Nand)
 Matriz de Transiciones
14: Asincrónicas
19
Latch Asincrónico S-R (Latch de Nand)
 Si el próximo estado es igual al estado
presente → se dice que ese estado es
estable, en caso contrario se produce un
cambio de estado.
 Estados estables en O, tres estados
estables.
 Para emplearlo como flip-flop no deberá
usarse el estado estable 11 (ambas
entradas no pueden ser 00)
14: Asincrónicas
20
Latch Asincrónico S-R (Latch de Nand)
 Modo fundamental de operación:
 La entrada puede cambiar solo si está en
estado estable.
 Carrera: dos o más variables de estado
deben cambiar.
 Ciclo: ocurrencia de una secuencia de
dos o más estados inestables.
 Carrera no crítica: llega a un mismo
estado estable.
 Si nunca se llega a estados estables, se
denomina oscilación.
14: Asincrónicas
21
Latch Asincrónico S-R (Latch de Nand)
 Diagrama de estados
14: Asincrónicas
22
Latch Asincrónico S-R (Latch de Nand)
 Secuencias de interés
 S'+R' =1 → puede estar en uno de dos
estados estables set y reset.
 Set = {q=1, qn=0}
 Reset ={q=0, qn = 1}
14: Asincrónicas
23
Latch Asincrónico S-R (Latch de Nand)
 Transición set a reset
 Estado inicial
• S'= 1, R'=1
• q=1, qn =0
Se analiza cuando ocurre un canto de bajada en R'
14: Asincrónicas
24
Latch Asincrónico S-R (Latch de Nand)
 Q, Qn pasa por las secuencias 10, 11, 01
 q, qn pasa por las secuencias 10, 11, 01,




pero con retardo.
Después de un ∆R más un ∆S se produce
el cambio a reset.
Durante ∆S se pasa por el estado 11
En reset un canto de subida de R' no
produce cambios.
Se produce cambio estando en set y
primer canto de bajada de R'.
14: Asincrónicas
25
Latch Asincrónico S-R (Latch de Nand)
 Transición reset a set
 Estado inicial
• S'= 1, R'=1
• q=0, qn =1
Se analiza cuando ocurre un canto de bajada en S'
14: Asincrónicas
26
Análisis de latch S-R (Latch de Nor)

Para generar tabla estados y K-mapa: poner valores
de input, dejar que señales se propaguen y llenar
próximo estado
R
Q
S
0
0
0
0
1
1
1
1
R
0
0
1
1
0
0
1
1
Q(t)
Q'
S
Q(t)
0
1
0
1
0
1
0
1
Q(t+∆)
0
hold
1
0 reset
0
1 set
1
X no permitido
X
S=R=1 no es permitido
NOR
x y z
0 0 1
0 1 0
1 0 0
1 1 0
Q(t+∆)
S
R
S
Q(t)
0
0
X
1
1
0
X
1
R
ecuación característica
Q(t+∆) = S + R’ Q(t)
14: Asincrónicas
27
Latch Asincrónico S-R (Latch de Nor)
 Estado presente al conjunto: {q, qn}
 Estado próximo al conjunto: {Q, Qn}
 Salida al estado presente (máquina de
Moore).
En el caso del latch de Nor


Q = (R + qn )' = R'qn'
Qn = (S + q )' = S'q'
14: Asincrónicas
28
Latch Asincrónico S-R (Latch de Nor)
 Matriz de transiciones.
14: Asincrónicas
29
Latch Asincrónico S-R (Latch de Nor)
 Diagrama de Estados
14: Asincrónicas
30
Latch S-R con enable

Controlar cuando
entradas R y S
importan
 de otra forma
cualquier ruido en R
o S mientras enable
es bajo podría
causar cambio en
valor almacenado
Set
S'
R'
enable'
Q
Q'
R
R'
Q
enable'
Q'
S'
S
100
Reset
NOR
x y z
0 0 1
0 1 0
1 0 0
1 1 0
14: Asincrónicas
31
14-Maquinas Secuenciales Asincrónicas
14.1 Bases electrónicas para almacenar
bits
14.2 Latch asincrónico S-R
14.3 Diseño de FFs en base a latches
14.4 Multivibrador aestable
14.5 Multivibrador monoestable
14: Asincrónicas
32
Latch R-S con reloj

Control del latch R-S con un reloj
 no se puede dejar que R y S cambien mientras el
reloj esta activo (cuando clock’=0)
 solo se tiene la mitad del periodo de reloj para que
las señales se propagan
 señales tienen que estar estables durante la otra
mitad del periodo del reloj
R’
R
Q
clock’
S’
Q’
S
NOR
x y z
0 0 1
0 1 0
1 0 0
1 1 0
stablechanging stable changing stable
R’ and S’
clock’
14: Asincrónicas
33
Latches en cascada

Conectar output de un latch al input de otro

Cómo se controla la propagación de los cambios entre
los latches?
 debería moverse por un latch por periodo del reloj
 el movimiento de señales entre los latches no debe
ser mas rápido
 inputs correctos, con respecto al tiempo se dan a los
FFs
 ningún FF cambia de estado mas de una vez por
evento del reloj (canto o nivel)
R
R
Q’
R
Q’
S
S
Q
S
Q
clock
14: Asincrónicas
34
Estructura maestro-esclavo (Master-slave)

Se rompe el flujo alternando relojes
 usar el nivel positivo del reloj para hacer que los inputs
entren al primer latch
 usar el nivel del reloj negativo para activar segundo latch

Ver el par como una unidad básica usado para almacenar un
bit
slave stage
master stage
R
R
Q’
S
S
Q
P’
P
R
Q’
S
Q
CLK

La segunda etapa va a tener cambio de output un corto
tiempo después que el reloj vaya de alto a bajo

Por esto se considera como un latch master-slave activado
en el canto negativo (negative edge-triggered master-slave
14: Asincrónicas
35
latch)
Estructura maestro-esclavo (Master-slave)
(cont)

A pesar del costo adicional, el latch master-slave activado en
el canto negativo tiene varias ventajas sobre un latch
activado en niveles
1.
2.
3.
Cambios de valores están restringidos a un latch master-slave y
no se pueden propagar a un segundo latch hasta el próximo
periodo del reloj
Ya no estamos preocupados que el retardo de la lógica
combinacional sea mayor que el periodo del reloj sino que la
lógica entre las latches calcule nuevos valores antes del nuevo
canto de bajada
Por lo anterior generalmente se puede incrementar la frecuencia
del reloj en esta configuración que en una basada en niveles
14: Asincrónicas
36
Master-Slave: Problema de captura de 1

Esta configuración de tiene un problema de captura de
perturbaciones

Ejemplo: En la primer etapa de master-slave latch
 perturbación 0-1-0 en R o S mientras reloj esta alto se
captura en etapa master
 induce restricción que lógica no tenga perturbaciones
slave stage
master stage
Set
S
R
CLK
P
P’
Q
Q’
1s
Reset catch
R
R
Q’
S
S
Q
P’
P
R
Q’
S
Q
CLK
Master
Outputs
Slave
Outputs
14: Asincrónicas
37
Flip-flop D
FF D
D Q(k+1)
0 0
1 1
Hace que S y R se complementen
 elimina problema de captura de 1
 no puede mantener valor previo
(debe tener un valor nuevo en cada periodo del reloj)
 valor de D antes que el reloj baje es lo que se guarda en
el FF

slave stage
master stage
D
R
Q’
S
Q
P’
P
R
Q’
Q’
S
Q
Q
CLK
10 compuertas
14: Asincrónicas
38
FF D Activado en cantos (versión 2)

Solución mas eficiente: solo 6 compuertas
 sensible a inputs solo cerca de los cantos del reloj (no
mientras reloj este alto)
D’
D
tiene D’ cuando
reloj va a bajo
0
R
Q
Clk=1
Q’
S
D FF activado en
canto negativo
4-5 retardos de compuertas
debe respetar tiempos de setup
y hold para capturar input
correctamente
0
D
D’
tiene D cuando
reloj va a bajo
ecuación característica
Q(t+1) = D
14: Asincrónicas
39
FFs Activados en cantos (cont)
 Análisis
D’
D’
D
D
D’
R
D’
R
Q
Clk=0
Clk=0
S
S
D
D
Q
D’
cuando reloj va de alto a bajo
se almacena input
D
new D
new D ≠ old D
D’
cuando reloj es bajo
datos se mantienen
14: Asincrónicas
40
FFs Activados en cantos (cont)
 Cantos positivos
 inputs muestreados en canto de subida;
outputs cambian después de canto de
subida
 Cantos negativos
 inputs muestreados en canto de bajada;
outputs cambian después de canto de
100
bajada
D
CLK
Qpos
Qpos’
Qneg
Qneg’
positive edge-triggered FF
negative edge-triggered FF
14: Asincrónicas
41
Flip-flop JK

J es un set, K es reset, ambos indican complemento del
estado actual
J
Q
J
0
0
1
1
K
CLK
FF
K
0
1
0
1
JK
Q(k+1)
Q(k)
0
1
Q’(k)

Ecuación característica: Q(t+1) = J(t) Q’(t) + K’(t) Q(t)

Implementación de un FF D usando un FF JK
D
J
Q
K
Q’
CLK
14: Asincrónicas
42
Flip-flop T

T es un toggle (un tipo de interruptor de presión), se oprime
una vez y queda en un estado, se vuelve a oprimir y cambia
de estado
T
Q
FF T
T Q(k+1)
0 Q(k)
1 Q’(k)
CLK

Implementación de FF T usando un FF JK
T
J
Q
K
Q’
CLK
14: Asincrónicas
43
Latch Transparente

Un latch transparente
realimentado
D
Q
puede
D
verse
1
0
CLK
como
Q
un
mux
FF D
D Q(k+1)
0 0
1 1
G
14: Asincrónicas
44
Latch Transparente (cont)

Una implementación mediante compuertas es la siguiente
D
G
S
P
R
Q
Si G y D están un tiempo
suficiente en 1 se llega
al estado estable
PQRS=0101

Cuando G esta alto, Q sigue a D. En caso contrario Q
permanece estable. Se denomina un latch D estático ya que
mantiene Q mientras G este inactivo.

Si D esta alto al ocurrir un canto de bajada en G, se produce
una perturbación (falso cero) en Q. Esto debido a que R y S
conmutan en tiempos diferentes. Esta perturbación genera
oscilaciones.

Otro problema es si el ancho del pulso G es demasiado
angosto causa que el latch no alcanza a setearse.

Otra dificultad es si D cambia casi al mismo tiempo que el
latch se activa con el canto de bajada G. En este caso no
puede determinarse cual será el valor se captura en el latch.
14: Asincrónicas
45
Latch Transparente (cont)
D
G
S
P
Q
R

Por estas razones, el diseño de dispositivos secuenciales
debe garantizar que las entradas sean validas y estables
durante los periodos en que estas pueden influir sobre el
cambio de estado.

G debe permanecer activa por el tiempo que sea suficiente
para que el latch pueda capturar el dato. Esto requiere un
mínimo ancho para el pulso G.

El tiempo de set-up debe garantizar que el valor de D se
haya propagado a través del lazo de realimentación antes
que se active el latch.

El tiempo de hold debe garantizar que el latch este cerrado y
Q estable antes de permitir los cambios en la entrada D.

Latches transparentes también se pueden configurar en
forma maestro-esclavo (activados por cantos de subida y
14: Asincrónicas
46
bajada)
14-Maquinas Secuenciales Asincrónicas
14.1 Bases electrónicas para almacenar
bits
14.2 Latch asincrónico S-R
14.3 Diseño de FFs en base a latches
14.4 Multivibrador aestable
14.5 Multivibrador monoestable
14: Asincrónicas
47
Multivibrador Aestable (oscilador
continuo)


Este circuito es un oscilador elemental (para oscilar se le asigna Init
Init
= 1)
xyz
0
1
x, y, z son las variables de estado, se tiene que:
000
111 111

X = (z Init)’
X
Y = x’
Y Z
x
y
Init
z



Z = y’
001
010
011
100
101
110
111
111
110
110
101
101
100
100
011
110
010
101
001
100
000
La matriz de transiciones indica que solo el estado 101 es estable
ya que con Init = 0 eventualmente se llega y se queda en el estado
101,
Si se tiene un ciclo de oscilación de High a Low (HL) y de Low a High
(LH) para cada compuerta se obtiene un circuito oscilador con el
periodo:
T = 3(THL + TLH)
14: Asincrónicas
48
Los FFs se clasifican como multivibradores bi-estables
14-Maquinas Secuenciales Asincrónicas
14.1 Bases electrónicas para almacenar
bits
14.2 Latch asincrónico S-R
14.3 Diseño de FFs en base a latches
14.4 Multivibrador aestable
14.5 Multivibrador monoestable
14: Asincrónicas
49
Multivibrador Monoestable
El siguiente circuito permite generar un pulso de ancho
programable
 Se emplea para generar temporizadores que generan eventos
después de un tiempo dado

R
Q
S
Q’
Dispara
Se suele usar una red RC después del inversor para generar el
retardo (no esta en diagrama)
 Con el canto de subida en R (1) se inicia el multivibrador,
después del canto de bajada en Q hay un retardo hasta que S
sube (2)
 El tiempo que genera el multivibrador es la señal Q’ (entre 3 y
4).
 Se debe reiniciar la señal R a cero para reiniciar disparo del
circuito tiene un estado estable (dispara una vez14:
o Asincrónicas
one shot) 50

Descargar