Vous êtes sur la page 1sur 50

14-Mquinas Secuenciales Asincrnicas

14.1 Bases electrnicas para almacenar


bits
14.2 Latch asincrnico S-R
14.3 Diseo de FFs en base a latches
14.4 Multivibrador aestable
14.5 Multivibrador monoestable

14: Asincrnicas

Bases electrnicas para almacenamiento de


bits
Los programas de computadoras usan memoria

RAM (Random Access Memory) para almacenar


programas y datos (bits) utilizados para la
computacin.

Ha habido una gran mejora en la densidad de

almacenamiento
desde
tubos
a
memoria
electromagnticas (ferritas) a circuitos integrados
actuales (ICs: Integrated Circuits).
Memoria voltil tiene que ser realimentada con

electricidad o se pierde toda la informacin cuando


se apaga la computadora.
14: Asincrnicas

Bases electrnicas para almacenamiento de


bits
RAM voltil 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 peridicamente (e.g.

el standard JEDEC especifica cada 64ms o menos)


Memorias no voltiles incluyen ROM, Flash, discos
duros, floppys, cintas magnticas. Pueden o no ser
secuenciales y tpicamente son ms caras y ms
lentas que memorias voltiles (e.g. DRAM).
Otros tipos de memoria no voltiles siendo
actualmente desarrollados incluyen nanotubos de
carbn y el efecto de magnetoresistencia de tunnel
(TMR).
14: Asincrnicas

Bases electrnicas 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 prdidas de


electrones (cargas) la informacin 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: Asincrnicas

Bases electrnicas 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 lneas de deteccin (sense lines)
los amplificadores (sense amplifiers)
discriminan entre un 0 y un 1 y amplifican las
seales 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
despus 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: Asincrnicas

Bases electrnicas para almacenamiento de bits


(cont)
SRAM es un tipo de RAM voltil que almacena cada bit de

datos en una configuracin estable que mantiene el valor


del bit mientras haya poder aplicado
Usando un par de inversores CMOS esta configuracin 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: Asincrnicas

Circuitos simples con feedback


Dos inversores forman una celda de memoria

esttica
van a mantener valor mientras tenga
energa el circuito
"1"

"stored value"
"0"

Cmo se introduce un nuevo valor en la celda?

selectivamente romper realimentacin


cargar nuevo valor en la celda
"remember"
"data"

"load"

"stored value"
14: Asincrnicas

Estabilidad e inputs asincrnicos


Circuitos sincrnicos (con reloj)
inputs, estados e outputs muestreados o
cambian en relacin a seal comn (reloj)
pueden ser master/slave, activados con
cantos
Circuitos asincrnicos
inputs, estados y outputs muestreados o
cambian independientes de seal de
referencia comn (glitches/hazards una
preocupacion )
e.g., R-S latch
14: Asincrnicas

Estabilidad e inputs asincrnicos


(cont)

Inputs asincrnicos a circuitos sincrnicos


inputs pueden cambiar en cualquier tiempo, no van a
satisfacer tiempos de setup/hold
peligroso, inputs sincrnicos son preferidos
en generar es buena prctica de diseo el tener
circuitos que solamente tienen inputs sincrnicos
hay veces que los inputs asincrnicos no se pueden
evitar (e.g., seal 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: Asincrnicas

Estabilidad e inputs asincrnicos


(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 asincrnico

FF no captura la seal

CLK
se llega a estado inconsistente
o errneo!

14: Asincrnicas

10

Falla de sincronizacin

Ocurre cuando el input a un FF cambia cerca del canto del reloj


(tiempo de setup y hold del input no son vlidos)
el FF puede entrar en un estado metaestable no es ni lgica
0 ni 1
puede quedarse en este estado indefinidamente (poco
probable dado variaciones termales y asimetras en retardos
de seales a nivel de transistores de implementacin 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: Asincrnicas

11

Falla de sincronizacin (cont)

Probabilidad de falla puede ser reducida, pero nunca puede


ser 0

Posibles mejoras:
hacer que el reloj sea mas lento: esto le da ms tiempo al
sincronizador para decaer a un estado estable;
fallas del sincronizador puede ser un grave problema para
sistemas de alta velocidad
usar tecnologa con lgica mas rpida: esto hace que la
cumbre sea ms delgada
poner dos sincronizadores en cascada: ambos tendran
que fallar para tener un estado metaestable

asynchronous
input

synchronized
input

Q
Clk

synchronous system
14: Asincrnicas

12

Falla de sincronizacin (cont)


Nunca tener inputs asincrnicos que hagan

fan-out a mas de un flip-flop

por diferencias en cableado y otros retardos podran


tener valores diferentes, seria un estado invlido
hay que sincronizar lo antes posible y tratar como
seal sincrnica
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: Asincrnicas

13

14-Maquinas Secuenciales Asincrnicas


14.1 Bases electrnicas para almacenar
bits
14.2 Latch asincrnico S-R
14.3 Diseo de FFs en base a latches
14.4 Multivibrador aestable
14.5 Multivibrador monoestable

14: Asincrnicas

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

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'

S'

R'

Q'
14: Asincrnicas

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

Q'

Reset

Set

100

Race

R
S
Q
\Q
14: Asincrnicas

16

Latch Asincrnico S-R (Latch de Nand)


Las

compuertas se asumen ideales. Y se


modela el retardo de propagacin, mediante
una componente externa.
Q(t) = q(t+S)
Qn(t) = qn(t+R)

14: Asincrnicas

17

Latch Asincrnico S-R (Latch de Nand)


Estado Presente: q, qn
Estado Proxmo: Q, Qn
Salida: Estado Presente

Eventos que producen cambios estn


asociados a los cantos de bajada de las
seales de entrada.
Se tiene:

Q =S ' qn =S ' ' qn '

Qn =R ' q =R ' ' q '


14: Asincrnicas

18

Latch Asincrnico S-R (Latch de Nand)


Matriz de Transiciones

14: Asincrnicas

19

Latch Asincrnico S-R (Latch de Nand)


Si el prximo 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: Asincrnicas

20

Latch Asincrnico S-R (Latch de Nand)


Modo fundamental de operacin:
La entrada puede cambiar solo si est en
estado estable.
Carrera: dos o ms variables de estado

deben cambiar.
Ciclo: ocurrencia de una secuencia de
dos o ms estados inestables.
Carrera no crtica: llega a un mismo
estado estable.
Si nunca se llega a estados estables, se
denomina oscilacin.
14: Asincrnicas

21

Latch Asincrnico S-R (Latch de Nand)


Diagrama de estados

14: Asincrnicas

22

Latch Asincrnico S-R (Latch de Nand)


Secuencias de inters
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: Asincrnicas

23

Latch Asincrnico S-R (Latch de Nand)


Transicin set a reset
Estado inicial
S'= 1, R'=1
q=1, qn =0
Se analiza cuando ocurre un canto de bajada en R'

14: Asincrnicas

24

Latch Asincrnico 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.


Despus de un R ms 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: Asincrnicas

25

Latch Asincrnico S-R (Latch de Nand)


Transicin reset a set
Estado inicial
S'= 1, R'=1
q=0, qn =1
Se analiza cuando ocurre un canto de bajada en S'

14: Asincrnicas

26

Anlisis de latch S-R (Latch de Nor)

Para generar tabla estados y K-mapa: poner valores


de input, dejar que seales se propaguen y llenar
prximo estado
R

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

Q(t)

R
ecuacin caracterstica
Q(t+) = S + R Q(t)
14: Asincrnicas

27

Latch Asincrnico S-R (Latch de Nor)


Estado presente al conjunto: {q, qn}
Estado prximo al conjunto: {Q, Qn}
Salida al estado presente (mquina de

Moore).
En el caso del latch de Nor

Q = (R + qn )' = R'qn'
Qn = (S + q )' = S'q'

14: Asincrnicas

28

Latch Asincrnico S-R (Latch de Nor)


Matriz de transiciones.

14: Asincrnicas

29

Latch Asincrnico S-R (Latch de Nor)


Diagrama de Estados

14: Asincrnicas

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 podra
causar cambio en
valor almacenado
Set

S'
R'
enable'
Q
Q'

R'

enable'
Q'

S'

100

Reset
NOR
x y z
0 0 1
0 1 0
1 0 0
1 1 0
14: Asincrnicas

31

14-Maquinas Secuenciales Asincrnicas


14.1 Bases electrnicas para almacenar
bits
14.2 Latch asincrnico S-R
14.3 Diseo de FFs en base a latches
14.4 Multivibrador aestable
14.5 Multivibrador monoestable

14: Asincrnicas

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 seales se propagan
seales tienen que estar estables durante la otra
mitad del periodo del reloj
R

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: Asincrnicas

33

Latches en cascada

Conectar output de un latch al input de otro

Cmo se controla la propagacin de los cambios entre


los latches?
debera moverse por un latch por periodo del reloj
el movimiento de seales entre los latches no debe
ser mas rpido
inputs correctos, con respecto al tiempo se dan a los
FFs
ningn FF cambia de estado mas de una vez por
evento del reloj (canto o nivel)
R

clock
14: Asincrnicas

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 bsica usado para almacenar un


bit
slave stage

master stage

CLK

La segunda etapa va a tener cambio de output un corto


tiempo despus 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: Asincrnicas
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 estn restringidos a un latch master-slave y


no se pueden propagar a un segundo latch hasta el prximo
periodo del reloj
Ya no estamos preocupados que el retardo de la lgica
combinacional sea mayor que el periodo del reloj sino que la
lgica 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 configuracin que en una basada en niveles

14: Asincrnicas

36

Master-Slave: Problema de captura de 1

Esta configuracin de tiene un problema de captura de


perturbaciones

Ejemplo: En la primer etapa de master-slave latch


perturbacin 0-1-0 en R o S mientras reloj esta alto se
captura en etapa master
induce restriccin que lgica no tenga perturbaciones
slave stage

master stage

Set
S
R
CLK
P
P
Q
Q

1s
Reset catch

P
P

CLK

Master
Outputs
Slave
Outputs

14: Asincrnicas

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

CLK
10 compuertas
14: Asincrnicas

38

FF D Activado en cantos (versin 2)

Solucin mas eficiente: solo 6 compuertas


sensible a inputs solo cerca de los cantos del reloj (no
mientras reloj este alto)
D

tiene D cuando
reloj va a bajo

0
R

Clk=1
Q

D FF activado en
canto negativo
4-5 retardos de compuertas
debe respetar tiempos de setup
y hold para capturar input
correctamente

tiene D cuando
reloj va a bajo

ecuacin caracterstica
Q(t+1) = D
14: Asincrnicas

39

FFs Activados en cantos (cont)


Anlisis
D

D
R

D
R

Clk=0

Clk=0
S

S
D

D
cuando reloj va de alto a bajo
se almacena input

new D
new D old D

D
cuando reloj es bajo
datos se mantienen

14: Asincrnicas

40

FFs Activados en cantos (cont)


Cantos positivos
inputs muestreados en canto de subida;
outputs cambian despus de canto de
subida
Cantos negativos
inputs muestreados en canto de bajada;
outputs cambian despus de canto de
100
bajada
D
CLK
Qpos
Qpos
Qneg
Qneg

positive edge-triggered FF
negative edge-triggered FF

14: Asincrnicas

41

Flip-flop JK

J es un set, K es reset, ambos indican complemento del


estado actual
J

J
0
0
1
1

K
CLK

FF
K
0
1
0
1

JK
Q(k+1)
Q(k)
0
1
Q(k)

Ecuacin caracterstica: Q(t+1) = J(t) Q(t) + K(t) Q(t)

Implementacin de un FF D usando un FF JK

Q
CLK
14: Asincrnicas

42

Flip-flop T

T es un toggle (un tipo de interruptor de presin), se oprime


una vez y queda en un estado, se vuelve a oprimir y cambia
de estado
T

FF T
T Q(k+1)
0 Q(k)
1 Q(k)

CLK

Implementacin de FF T usando un FF JK
T

Q
CLK
14: Asincrnicas

43

Latch Transparente

Un latch transparente
realimentado

puede

verse

1
0

CLK

como

un

mux

FF D
D Q(k+1)
0 0
1 1

14: Asincrnicas

44

Latch Transparente (cont)

Una implementacin mediante compuertas es la siguiente


D
G

S
P
R

Si G y D estn 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 esttico ya que
mantiene Q mientras G este inactivo.

Si D esta alto al ocurrir un canto de bajada en G, se produce


una perturbacin (falso cero) en Q. Esto debido a que R y S
conmutan en tiempos diferentes. Esta perturbacin 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: Asincrnicas

45

Latch Transparente (cont)


D
G

S
P

Por estas razones, el diseo 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
mnimo ancho para el pulso G.

El tiempo de set-up debe garantizar que el valor de D se


haya propagado a travs del lazo de realimentacin 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 tambin se pueden configurar en


forma maestro-esclavo (activados por cantos de subida y
14: Asincrnicas
46
bajada)

14-Maquinas Secuenciales Asincrnicas


14.1 Bases electrnicas para almacenar
bits
14.2 Latch asincrnico S-R
14.3 Diseo de FFs en base a latches
14.4 Multivibrador aestable
14.5 Multivibrador monoestable

14: Asincrnicas

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)

Y = x
Y Z

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 oscilacin 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: Asincrnicas
48
Los FFs se clasifican como multivibradores bi-estables

14-Maquinas Secuenciales Asincrnicas


14.1 Bases electrnicas para almacenar
bits
14.2 Latch asincrnico S-R
14.3 Diseo de FFs en base a latches
14.4 Multivibrador aestable
14.5 Multivibrador monoestable

14: Asincrnicas

49

Multivibrador Monoestable
El siguiente circuito permite generar un pulso de ancho
programable
Se emplea para generar temporizadores que generan eventos
despus de un tiempo dado

Q
Dispara

Se suele usar una red RC despus del inversor para generar el


retardo (no esta en diagrama)
Con el canto de subida en R (1) se inicia el multivibrador,
despus del canto de bajada en Q hay un retardo hasta que S
sube (2)
El tiempo que genera el multivibrador es la seal Q (entre 3 y
4).
Se debe reiniciar la seal R a cero para reiniciar disparo del
circuito tiene un estado estable (dispara una vez14:
o Asincrnicas
one shot) 50

Vous aimerez peut-être aussi