Flip-flop D

O flip-flop D (de dados) é o elemento de memória fundamental do projeto digital síncrono. A cada borda de subida do clock ele amostra a entrada D e a armazena na saída Q, mantendo esse valor até a próxima borda. As entradas assíncronas PRE (preset) e CLR (clear) forçam Q para 1 ou 0 imediatamente, independentemente do clock, e CLR vence se ambas forem ativadas. Por capturar o dado apenas em um instante bem definido, o flip-flop D é o bloco padrão para registradores, pipelines e máquinas de estados.

Básico

Capturar um bit na borda do clock

Conecte um Switch a D e um Clock a CLK e coloque um LED em Q. O nível que D tiver no instante da borda de subida é copiado para Q e permanece durante todo o período do clock, mesmo que você mude a chave depois. Esse comportamento de «amostrar e reter» é o que transforma um valor combinacional em estado armazenado.

CLKDQ(t+1)
rising00
rising11
no edgeXQ(t) (hold)
Intermediário

Ler a tabela de excitação

A tabela de excitação responde ao problema de projeto ao contrário: dada a transição que você quer que Q faça, quanto deve valer D? No flip-flop D é trivial, D é sempre igual ao próximo estado desejado, e por isso os flip-flops D são tão convenientes para máquinas de estados. Use PRE e CLR apenas para a inicialização assíncrona ao ligar, nunca como parte do caminho de dados síncrono normal.

Q(t)Q(t+1)D
000
011
100
111
Avançado

Montar um contador assíncrono

Conecte o Q' (saída invertida) de cada flip-flop à sua própria D e leve Q' ao clock do próximo estágio. Assim cada estágio alterna na metade da frequência do anterior e uma cadeia de flip-flops D conta em binário. Esse contador «ripple» ou assíncrono é simples, mas os estágios se estabilizam um após o outro; quando precisar que todos os bits mudem no mesmo instante, use um contador síncrono com um clock comum.

Montar um contador assíncrono

Citações

  • Eccles, W. H., & Jordan, F. W. (1919). A trigger relay utilising three-electrode thermionic vacuum tubes. Radio Review, 1(3), 143-146.. Referência 1
  • Shannon, C. E. (1938). A symbolic analysis of relay and switching circuits. Transactions of the American Institute of Electrical Engineers, 57(12), 713-723.. Referência 2
  • Mano, M. M., & Ciletti, M. D. (2018). Digital design: With an introduction to the Verilog HDL, VHDL, and SystemVerilog (6th ed.). Pearson.. Referência 3