170 likes | 355 Views
Flip-Flop J-K. Flip-Flop J-K. LATCH RS. Flip-Flop J-K. Análise:. 1o. CASO => J = K = 0 => Q = Qn ; Q_inv = Qn_inv => MANTÉM. LATCH RS. R. S. Flip-Flop J-K. Análise:. 2o. CASO => J = 0; K = 1 =>. Q. R. C. Q_inv. S. Flip-Flop J-K. Análise:. Q = 0.
E N D
Flip-Flop J-K LATCH RS
Flip-Flop J-K Análise: 1o. CASO => J = K = 0 => Q = Qn ; Q_inv = Qn_inv => MANTÉM LATCH RS R S
Flip-Flop J-K Análise: 2o. CASO => J = 0; K = 1 =>
Q R C Q_inv S Flip-Flop J-K Análise: Q = 0 2o. CASO => J = 0; K = 1 => Q = 0; Q_inv = 1 RESET LATCH RS Se Q = 0 Vcc Q = 0 Q Se Q = 1 R C Q_inv S
Flip-Flop J-K Análise: Vcc Q = 1 3o. CASO => J = 1; K = 0 => Q = 1; Q_inv = 0 Q R C SET Q_inv S Se Q = 0; Q_inv = 1 LATCH RS Q = 1 Q Se Q = 1; Q_inv = 0 R C Q_inv S
Flip-Flop J-K Análise: Vcc Q = 1 4o. CASO => J = 1; K = 1 => Q = (Qn)’; Q R I N V E R T E C Q_inv S Se Q = 0; Q_inv = 1 LATCH RS Vcc Q = 0 Q Se Q = 1; Q_inv = 0 R C Q_inv S
Flip-Flop J-K Tabela de Transição Q J C Q_inv K Símbolo
Descrição Verilog – Flip- Flop JK com reset assíncrono module flip_flop_JK (output reg q, qinv, input clock, j, k, reset_n); always @(posedge clock, negedge reset_n)begin if (~reset_n)begin q <= 0; qinv <= ~q; end else if (k == 1 & j == 0) begin q <= 0; qinv <= ~q; end else if (k == 0 & j == 1)begin q <= 1; qinv <= ~q; end else if (k == 1 & j == 1)begin q <= ~q; qinv <= ~qinv; end end endmodule
Simulação Flip-Flop J-K J = k = 1 RESET Assíncrono Inverte saídas Estado SET Estado RESET
Q J C Q_inv K Q T T C Q_inv Símbolo Flip-Flop tipo T T Tabela de Transição
Descrição Verilog – Flip- Flop T module flip_flop_T (output reg q, input clock, t); always @(posedge clock)begin if (t==1) q <= ~q; end endmodule
Descrição Verilog – Flip- Flop T module flip_flop_T (output reg q, input clock, t); always @(posedge clock)begin if (t==1) q <= ~q; end endmodule Descrição RTL
Descrição Verilog – Flip- Flop T module flip_flop_T (output reg q, input clock, t); always @(posedge clock)begin if (t==1) q <= ~q; end endmodule Descrição RTL Simulação
Descrição Verilog – Flip- Flop T com reset assíncrono module flip_flop_T (output reg q, qinv, input clock, t, reset_n); always @(posedge clock, negedge reset_n)begin if (~reset_n)begin q <= 0; qinv <= ~q; end else if (t == 1) begin q <= ~q; qinv <= q; end end endmodule