Beruflich Dokumente
Kultur Dokumente
esttica
va a mantener valor mientras tenga energa
"1"
"stored value"
"0"
"load"
"stored value"
10: Memorias Sincrnicas
Reset
Set
Q'
R
S
S'
R'
S'
R'
NOR
x y z
0 0 1
0 1 0
1 0 0
1 1 0
NAND
x y z
0 0 1
0 1 1
1 0 1
1 1 0
Q'
10: Memorias Sincrnicas
Reset
Hold
Q'
Set
Reset
Set
100
Race
R
S
Q
\Q
10: Memorias Sincrnicas
Q Q'
0 1
SR=01
SR=01
Q Q'
1 0
SR=00
SR=10
SR=10
SR=11
SR=11
SR=01
Q Q'
0 0
SR=11
SR=00
SR=11
SR=00
Q Q'
1 1
SR=10
S
0
0
1
1
R
0
1
0
1
Q
hold
0
1
unstable
Q'
S
S
0
0
0
0
1
1
1
1
R
0
0
1
1
0
0
1
1
Q(t)
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
Q(t+)
S
R
Q(t)
R
ecuacin caracterstica
Q(t+) = S + R Q(t)
10: Memorias Sincrnicas
Q'
R
0
0
1
1
0
0
1
1
R
S
S
0
0
0
0
1
1
1
1
Q(t)
S
1
1
1
1
0
0
0
0
R
1
1
0
0
1
1
0
0
Q(t)
0
1
0
1
0
1
0
1
Q(t+)
0
1
0
0
1
1
X
X
hold
reset
set
not allowed
Q(t)
R
ecuacion caracteristica
Q(t+) = S + R Q(t)
10: Memorias Sincrnicas
Controlar cuando
entradas R y S
importan
de otra forma
cualquier ruido en R
o S mientras enable
es bajo puede
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
10: Memorias Sincrnicas
Reloj (Clock)
period
10: Memorias Sincrnicas
Reloj (cont)
clock
S
Q
S
NOR
x y z
0 0 1
0 1 0
1 0 0
1 1 0
10
Latches en cascada
clock
11
slave stage
master stage
R
CLK
10: Memorias Sincrnicas
12
Problema de captura de 1
En primer etapa de master-slave FF
Set
S
R
CLK
P
P
Q
Q
1s
Reset catch
P
P
CLK
Master
Outputs
Slave
Outputs
13
Flip-flop D
FF D
D Q(k+1)
0 0
1 1
slave stage
master stage
CLK
10 compuertas
10: Memorias Sincrnicas
14
Flip-flop JK
J
0
0
1
1
CLK
FF
K
0
1
0
1
JK
Q(k+1)
Q(k)
0
1
Q(k)
Q
CLK
Q
CLK
15
Flip-flop T
FF T
T Q(k+1)
0 Q(k)
1 Q(k)
CLK
Q
CLK
10: Memorias Sincrnicas
16
D
CLK
Qedge
D Q
G
Qlatch
CLK
transparent
(level-sensitive)
latch
17
10-Memorias Sincrnicas
10.1 Memorias sincrnicas
10.2 Metodologas de temporizacin
(timing)
10.3 Ejemplos: registros de corrimiento y
contadores simples
10.4 HDL
18
Trminos de temporizacin
data
input
clock
hay una ventana de tiempo
alrededor del evento del
reloj en el cual la entrada
tiene que mantenerse estable
para ser reconocida correctamente
D Q
D Q
clock
stable changing
data
clock
19
Metodologas de temporizacin
20
Especificaciones tpicas
Clk
Tsu
Th
1.8
ns
0.5
ns
Tw
3.3
ns
Tsu
Th
1.8
ns
0.5
ns
Tw
3.3
ns
Tpd
Tpd
1.1-3.6 ns
1.1-3.6 ns
todas las medidas se hacen desde el evento del reloj (canto positivo)
10: Memorias Sincrnicas
21
Cascadas de flip-flops
D Q
Q0
D Q
Q1
OUT
CLK
100ns
outputs
indefinidos
IN
Q0
Q1
CLK
10: Memorias Sincrnicas
22
Q0
Q1
Tsu
1.8ns
Tsu
1.8ns
Tpd
1.1-3.6ns
Tpd
1.1-3.6ns
CLK
Th
0.5ns
Th
0.5ns
restricciones de tiempo
garantizan funcionamiento
correcto de componentes
en cascada
asume distribucin del
reloj infinitamente rpida
(sin skew)
10: Memorias Sincrnicas
23
estado original: IN = 0, Q0 = 1, Q1 = 1
por retardo, prximo estado se convierte en: Q0 = 0, Q1 = 0, y no Q0 = 0, Q1 = 1
10: Memorias Sincrnicas
24
asynchronous
input
synchronized
input
Q
Clk
synchronous system
10: Memorias Sincrnicas
25
D Q
Synchronizer
Q0
Async
Input D Q
D Q
Clock
Clock
D Q
Q1
Clock
Q0
D Q
Q1
Clock
26
CLK
27
10-Memorias Sincrnicas
10.1 Memorias sincrnicas
10.2 Metodologas de temporizacin
(timing)
10.3 Ejemplos: registros de corrimiento y
contadores simples
10.4 HDL
28
Registros
OUT2
OUT3
OUT4
"0"
R S
D Q
R S
D Q
R S
D Q
R S
D Q
CLK
IN1
IN2
IN3
IN4
29
OUT1
IN
D Q
D Q
OUT2
D Q
OUT3
OUT4
D Q
CLK
30
left_in
left_out
clear
s0
s1
right_out
right_in
clock
input
determinan la funcin:
s1 funcin
0
hold state
1
shift right
0
shift left
1
load new input
31
0
0
0
0
0
1
0
1
s1
0
1
0
1
new value
0
output
output value of FF to left (shift righ
output value of FF to right (shift le
input
celda de un FF
to N-1th
cell
to N+1th
cell
Q
D
CLK
CLEAR
0 1 2 3
Q[N-1]
(left)
Input[N]
s0 and s1
control mux
Q[N+1]
(right)
32
33
Reconocedor de patrones
OUT
OUT1
IN
D Q
D Q
OUT2
D Q
OUT3
OUT4
D Q
CLK
34
Contadores
OUT1
IN
D Q
D Q
OUT2
D Q
OUT3
OUT4
D Q
CLK
35
Contador Binario
D Q
OUT2
D Q
OUT3
D Q
OUT4
D Q
CLK
"1"
36
C
B
A
RCO
QD
QC
LOAD QB
QA
CLK
CLR
37
"1"
EN
RCO
"0"
"1"
"1"
"0"
D
C
B
A
QD
QC
QB
QA
LOAD
"0"
CLK
CLR
EN
RCO
"0"
"0"
"0"
"0"
D
C
B
A
QD
QC
QB
QA
LOAD
CLK
CLR
38
10-Memorias Sincrnicas
10.1 Memorias sincrnicas
10.2 Metodologas de temporizacin
(timing)
10.3 Ejemplos: registros de corrimiento y
contadores simples
10.4 Verilog
39
Flip-flops en Verilog
Usa lista always para esperar por un canto de
reloj
40
Flip-flops (cont)
reset/set syncronico asincrnico
module dff
input
output
reg
(clk, s, r, d, q);
clk, s, r, d;
q;
q;
Asynchronous
module dff
input
output
reg
(clk, s, r, d, q);
clk, s, r, d;
q;
q;
always @(posedge r)
q = 1'b0;
always @(posedge s)
q = 1'b1;
always @(posedge clk)
q = d;
endmodule
10: Memorias Sincrnicas
41
FF Incorrecto
Usa always para esperar por un cambio de
reloj
No es correcto! Q va a
cambiar en cualquier
cambio no solo un canto
always @(clk)
q = d;
endmodule
42
Bloquean (X=A)
completa la asignacin antes de seguir al prximo
comando
No-bloquean (X<=A)
completa en zero tiempo y no cambia el valor del
objetivo (X) hasta un punto de bloqueo (espera/retardo)
Ejemplo: swap
43
Asignacin Register-transfer-level
(RTL)
44
1b0;
1b0;
1b0;
1b0;
45
c8
c4
c2
c1
=
=
=
=
count[3];
count[2];
count[1];
count[0];
c8 = count[3];
c4 = count[2];
c2 = count[1];
c1 = count[0];
rco = (count == 4b1111);
endmodule
46
latch y flip-flop
latch R-S, R-S master/slave, D master/slave,
flip flops activados por cantos: D, JK, T
Metodologas de temporizacin
uso de relojes
FFs en cascada funcionan porque retardos de propagacin
exceden tiempo de hold
cuidado de los retardos en reloj (clock skew)
Inputs asincrnicos
posibles problemas en el sincronizador
Registros bsicos
registros de corrimiento
contadores
47