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