Documente Academic
Documente Profesional
Documente Cultură
Este material est basado en: textos y material de apoyo: Contemporary Logic Design 1st / 2nd edition. Gaetano Borriello and Randy Katz. Prentice Hall, 1994, 2005 material del curso ELO211 del Prof. Leopoldo Silva material en el sitio http://es.wikipedia.org
10: Memorias Sincrnicas
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
Como se introduce un nuevo valor en la celda? selectivamente romper realimentacin cargar nuevo valor en la celda
"remember" "data" "load" "stored value"
10: Memorias Sincrnicas 3
Reset Set
Q' NAND x y z 0 0 1 0 1 1 1 0 1 1 1 0
similar a par de inversores, pueden forzar output Q a 0 (reset=0, set=1) o 1 (set=0, reset=1)
Q S' Q
S' R'
R'
Q'
10: Memorias Sincrnicas 4
Q'
Reset R S Q \Q
Hold
Set
Reset
Set
100
Race
SR=00 SR=01
Q Q' 0 1 SR=01
Q Q' 1 0
SR=00 SR=10
transiciones: cambios basados en inputs Difcil observar latch R-S en estado 1-1 R o S usualmente cambian antes condicin de carrera o transicion no deterministica
oscilaciones posibles entre estados 00 y 11 SR=01 SR=11
SR=00
Q Q' 1 1
S 0 0 1 1
R 0 1 0 1
Q hold 0 1 unstable
6
Q(t)
S R Q(t+)
S S 0 0 0 0 1 1 1 1 R 0 0 1 1 0 0 1 1 Q(t) 0 1 0 1 0 1 0 1
S
0 0 0 X X 1 1
Q(t)
S=R=1 no es permitido
Q(t)
R S
S 0 0 0 0 1 1 1 1
R 0 0 1 1 0 0 1 1
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
0 0 0 X X
S
1 1
Q(t)
100
Reset NOR x y z 0 0 1 0 1 0 1 0 0 1 1 0
10: Memorias Sincrnicas 9
Reloj (Clock)
Usado para mantener el tiempo hay que esperar tiempo suficiente para que los inputs (R' y S') estn estables entonces hay que esperar que los inputs cursen efectos en los valores almacenados Reloj es una seal peridica periodo (tiempo entre los ticks de reloj) ciclo de actividad (duty-cycle) (% del periodo en el cual el reloj esta alto vs bajo)
duty cycle (en este caso, 50%)
period
10: Memorias Sincrnicas 10
Reloj (cont)
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 (cuando clock=1) para que las seales se propagan
R clock S Q S R
Q NOR x y z 0 0 1 0 1 0 1 0 0 1 1 0
stable changing stable changing stable R and S clock 10: Memorias Sincrnicas 11
Latches en cascada
Conectar output de un latch al input de otro Como 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
R S clock
R S
Q Q
R S
Q Q
12
Se rompe el flujo alternando relojes usar el reloj positivo para hacer que los inputs entren a un latch usar el reloj negativo para activar segundo latch Ver el par como una unidad bsica (master-slave Flip Flop activado por niveles)
master stage R S R S Q Q P slave stage R S Q Q
CLK
13
Problema de captura de 1
En primer etapa de master-slave FF perturbacin 0-1-0 en R o S mientras reloj esta alto se captura en etapa master induce restriccin que lgica no tenga perturbaciones
master stage R 1s Reset catch S CLK R S Q Q P P slave stage R S Q Q
Set S R CLK P P Q Q
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 (negative edge triggered)
master stage R D CLK 10 compuertas
10: Memorias Sincrnicas 15
slave stage Q Q P R S Q Q Q Q
Flip-flop JK
J es un set, K es reset, ambos indican complemento del estado actual
J K CLK Q Q J 0 0 1 1 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 JK usando un FF D y vice versa ?
K J D Q Q CLK D J K CLK
10: Memorias Sincrnicas 16
Q Q
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 Q FF T T Q(k+1) 0 Q(k) 1 Q(k)
CLK
Q Q
comportamiento no es el mismo si es que los inputs cambian cuando el clock esta alto
10: Memorias Sincrnicas 18
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
19
Trminos de temporizacin
Reloj (clock): evento peridico, causa cambio en el estado de elemento de memoria, puede ser canto de subida o canto de bajada o nivel alto o nivel bajo
Tiempo de preparacin (setup): tiempo mnimo antes que el evento del reloj en el cual el input tiene que estar estable (Tsu) Tiempo de mantencin (hold): tiempo mnimo despus del evento del reloj en el cual el input tiene que mantenerse estable (Th) Retardo de propagacin (propagation delay): tiempo que transcurre en el FF desde que inputs son muestreados hasta que outputs y nuevos estados son calculados (incluye tiempo en logica combinacional y FF)
Tsu Th 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 clock stable changing data clock
10: Memorias Sincrnicas 20
data
D Q
D Q
Metodologas de temporizacin
Reglas para interconectar componentes y relojes
Mtodo depende de los componentes usados para la memoria enfoque va a ser FF activados en cantos (edge-triggered FF) encontrados en PLDs Reglas bsicas para temporizacin correcta: inputs correctos, con respecto al reloj, se proveen a los FF ningn FF cambia de estado mas de una vez por evento del reloj El retardo de propagacin hacia el input de los FFs (Tprop) a travs de la lgica combinacional y FFs (Tprop.delay) hasta el output de los FFs debe completarse a tiempo para el correcto muestreo del prximo canto del reloj mientras se respetan las restricciones del tiempo de setup (Tsetup y Thold): Tperiod > Tprop + Tprop.delay + Tsetup
21
Especificaciones tpicas
Ejemplo: D flip-flop activado en canto positivo tiempo de propagacin: Tprop.delay > Th mnimo ancho de reloj: Tperiodo > Tprop.delay + Tsu +Tprop
Tsu Th
Clk
todas las medidas se hacen desde el evento del reloj (canto positivo) 10: Memorias Sincrnicas
22
Cascadas de flip-flops
Ejemplo: Registro corrimiento (shift register) valor nuevo va en primera etapa mientras que el valor previo de la primera etapa va a la segunda etapa considerar tiempos de setup/hold/retardo de propagacin (propagation delay tiene que ser > tiempo de hold)
IN D Q Q0 D Q Q1 OUT
CLK 100ns
outputs indefinidos
24
asynchronous input
Q Clk
synchronized input
synchronous system
10: Memorias Sincrnicas 26
Clock D Q Q1 D Q
Clock Q1
Clock
Clock
27
28
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
29
Registros
Colecciones de flip-flops con controles y lgica similares valores almacenados de alguna forma estn relacionados (ej: forman un valor binario) comparten reloj, reset y set lgica similar en cada etapa Ejemplo: registro de cuatro bits
OUT1 "0" R S D Q CLK IN1 IN2 IN3 IN4 R S D Q R S D Q R S D Q OUT2 OUT3 OUT4
30
OUT1 IN CLK D Q D Q
OUT2 D Q
OUT3 D Q
OUT4
31
input
32
celda de un FF
to N-1th cell
Q D
Input[N]
34
Reconocedor de patrones
Funcin combinacional de muestreo de inputs en este caso, reconocer el patrn 1001 en la seal de input IN
OUT
OUT1 IN CLK D Q D Q
OUT2 D Q
OUT3 D Q
OUT4
35
Contadores
Secuencian por un conjunto fijo de patrones en este caso: 1000, 0100, 0010, 0001 uno de los patrones es estado inicial (al cargarlo o usando set/reset)
OUT1 IN CLK D Q D Q
OUT2 D Q
OUT3 D Q
OUT4
36
Actividad
Como funciona este contador?
OUT1 IN CLK D Q D Q OUT2 D Q OUT3 D Q OUT4
Cuenta la secuencia: 1000, 1100, 1110, 1111, 0111, 0011, 0001, 0000 Conocido como contador Mobius (o Johnson)
37
Contador Binario
Lgica entre registros XOR deciden cuando el bit debera cambiar siempre para primer bit, solo cuando primer bit es verdad para el segundo etc... output : 0000, 0001, 0010, 0011, 0100, 0101, 0111, ...
OUT1 D Q CLK D Q OUT2 D Q OUT3 D Q OUT4
"1"
38
39
"0"
Termino comparator para valor de termino e.g., 0000, 0001, 0010, ..., 1100, 1101, 0000
40
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
41
Flip-flops en Verilog
Usa lista always para esperar por un canto de reloj
module dff (clk, d, q); input clk, d; output q; reg q; always @(posedge clk) q = d; endmodule
42
Flip-flops (cont)
reset/set syncronico asincrnico una hebra que espera el reloj tres modulos paralelos solo una espera el reloj
Synchronous
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 clk) if (r) q = 1'b0; else if (s) q = 1'b1; else q = d; endmodule
always @(posedge r) q = 1'b0; always @(posedge s) q = 1'b1; always @(posedge clk) q = d; endmodule 10: Memorias Sincrnicas 43
FF Incorrecto
Usa always para esperar por un cambio de reloj
module dff (clk, d, q); input clk, d; output q; reg q; always @(clk) q = d; endmodule
44
45
// B,C,D all get the same value of A always @(posedge clk) begin B = A; C = B; D = C; end // implements a shift register too always @(posedge clk) begin B <= A; C <= B; D <= C; end 10: Memorias Sincrnicas 46
always @(posedge clk) begin A <= ~D; B <= A; C <= B; D <= C; end
47
48
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) posibles problemas en el sincronizador registros de corrimiento contadores
10: Memorias Sincrnicas
49