O FLIP-FLOP
• Os latches e os flips-flops são os blocos elementares com os
quais se constrói a maior parte dos circuitos sequenciais.
• Um flip-flop é um dispositivo sequencial que amostra as suas
entradas e que altera as suas saídas apenas em instantes
determinados por um sinal de relógio.
􀂉
O FLIP-FLOP
Circuito para filtrar sinal de Clock
Atraso de 5 ns
Clock1
1
Clock1_inv
Clock2
Atraso de 5 ns
5 ns
O FLIP-FLOP tipo D
LATCH Tipo D
Circuito para filtrar sinal de Clock
D
Q
C
Q_inv
Símbolo
• RTL (Register Transfer Level): descreve o que acontece
a cada transição ativa do sinal de relogio
always @(posedge clock) begin
q <= d;
end
Lista de sensibilidade:
posedge – borda de subida
negedge – borda de descida
Operador de atribuição para lógica sequencial
O FLIP-FLOP tipo D
LATCH Tipo D
Circuito para filtrar sinal de Clock
Tabela de Transição
C
D
Qn+1
0
X
Qn
D
1
X
Qn
C
0
0
1
1
Q
Q_inv
Símbolo
O FLIP-FLOP tipo D
Descrição RTL
module flip_flop_D
(output reg q,
input clock, d);
always @(posedge clock)
q <= d ;
endmodule
Simulação, só muda o dado na borda de subida do clock
O FLIP-FLOP tipo D
Descrição RTL
module flip_flop_D
(output reg q,
input clock, d);
always @(posedge clock)
q <= d ;
endmodule
Simulação, só muda o dado na borda de subida do clock
O FLIP-FLOP tipo D
Descrição RTL
Descrição RTL
module flip_flop_D_borda_de_descida
(output reg q,
input clock, d);
always @(negedge clock)
q <= d ;
endmodule
Simulação, só muda o dado na borda de descida do clock
FLIP-FLOP tipo D com reset e set assíncronos
moduleFlip_Flop_D_com_reset_e_set_assincronos
(output reg q,
input d, reset, set, clock);
Descrição RTL
always @(posedge clock, negedge reset, posedge set)
begin
if (~reset)
q <= 0 ;
else if (set)
q <= 1;
else q <= d;
end
endmodule
FLIP-FLOP tipo D com reset e set assíncronos
Descrição RTL
moduleFlip_Flop_D_com_reset_e_set_assincronos
(output reg q,
input d, reset, set, clock);
always @(posedge clock, negedge reset, posedge set)
begin
if (~reset)
q <= 0 ;
else if (set)
q <= 1;
else q <= d;
end
endmodule
Simulação
Descrição RTL
FLIP-FLOP tipo D com reset e set síncronos
Como seria a descrição Verilog de um flip –flop D Com set e reset síncronos
(reset ativo em 0)
????????
Descrição RTL
FLIP-FLOP tipo D com reset e set síncronos
Solução:
module Flip_Flop_D_com_reset_e_set_sincronos
(output reg q,
input d, reset, set, clock);
always @(posedge clock) begin
if (~reset)
q <= 0 ;
else if (set)
q <= 1;
else q <= d;
end
endmodule
Descrição RTL
Descrição RTL
O FLIP-FLOP RS
Circuito para filtrar sinal de Clock
LATCH RS
R
Q
C
S Q_inv
Símbolo
O FLIP-FLOP RS
Circuito para filtrar sinal de Clock
LATCH RS
Tabela de Transição
C
R
S
Qn+1
0
X
X
Qn
1
X
X
Qn
0
0
Qn
R
0
1
1
C
1
0
0
S Q_inv
1
1
-
Q
Símbolo
Download

Aula8