LearnGates

Il flip-flop D: memoria che segue il clock

Un flip-flop D memorizza un bit, ma solo in un momento preciso: quando il segnale di clock CLK passa da 0 a 1 (il fronte di salita). In quell’istante Q copia D. Per il resto del tempo Q mantiene il suo valore, qualunque cosa faccia D.

Passo dopo passo

Qui conta l’ordine: la verifica imposta gli ingressi una riga alla volta, dall’alto in basso, e le uscite devono corrispondere a ogni riga.

Passo dopo passo: Flip-flop D
PassoDCLKQ
100–
2010
3110
4100
5111
6011
7001
8010

Latch o flip-flop?

Un latch D è più semplice: finché il suo ingresso di abilitazione è 1 lascia passare D direttamente su Q, e quando l’abilitazione va a 0 mantiene. Il problema è che, mentre l’abilitazione è 1, ogni cambiamento di D arriva su Q. Un flip-flop reagisce a un solo istante, ed è questo che fa cambiare stato a un intero processore tutto insieme, una volta per ogni colpo di clock.

Come funziona

Metti due latch in fila: un master e uno slave. Il master è aperto quando CLK è 0 e segue D. Lo slave è aperto quando CLK è 1 e mostra quello che il master trattiene. Quando il clock sale, il master si chiude sull’ultimo valore di D e lo slave passa esattamente quel valore a Q. In nessun momento sono aperti entrambi, quindi D non può mai attraversarli di colpo.

La tabella qui sotto è una sequenza: la verifica cambia D e CLK riga per riga. Una “x” vuol dire che il valore non conta ancora, perché non è stato memorizzato niente.

Suggerimenti e soluzione

Prova prima da solo. Ogni suggerimento svela un po’ di più.

  1. Un latch D copia D mentre il suo enable è 1. Non basta: Q cambierebbe ogni volta che cambia D mentre CLK è 1.
  2. Usa due latch in fila (master e slave).
  3. Il master è abilitato mentre CLK è 0, lo slave mentre CLK è 1.