Latch di tipo D sincronizzato

Latch di tipo D sincronizzato
...

Pasted image 20230603163038.png
La soluzione rispetto al circuito precedente è usare una porta NOT per una delle due porte AND.
Se R = 0, allora S = 1 e viceversa. Il clock fa lo stesso lavoro di prima, abilita il circuito. Se D varia mentre il clock è a 1, allora il latch cambia stato.

Questo latch evita la race condition che volevamo evitare (S = R = 1).

Un D-Latch è trasparente

Un D-Latch, così come l'abbiamo costruito, è "trasparente", nel senso che quando il clock è alto, il valore di D viene immediatamente mandato verso il latch, anche se con un piccolo ritardo di propagazione.

Il punto è che, quando il clock è alto il valore di D deve essere già stabile prima che il clock diventi alto, altrimenti il clock non lo "farà passare". Inoltre il segnale D deve durare per tutto il tempo in cui il clock è alto. Infine per dare il tempo al circuito di stabilizzarsi il segnale D deve durare anche per un periodo di tempo successivo al clock.

Caso 1: clock alto, ma D non era stabile prima
...

photo_2023-06-03_17-01-47.jpg
Il valore passato al latch per la memorizzazione non è il livello alto di D, ma quello basso.
D deve essere stabile prima

Caso 2: clock alto, D stabile prima, ma non per tutta la durata del clock alto
...

photo_2023-06-03_17-01-46.jpg
Il valore di D memorizzato potrebbe essere il livello alto e successivamente quello basso, memorizzando un valore di D inatteso nel latch.

Caso 2: clock alto, D stabile prima, durante il clock e dopo
...

photo_2023-06-03_17-01-45.jpg
In questo caso:

  • D è stabile prima: OK (verde);
  • D è stabile per la durata del clock: OK (azzurro);
  • D è stabile anche dopo per consentire al latch di stabilizzarsi: OK (giallo);

In rosso nell'immagine è mostrato il ritardo di propagazione con cui Q cambia stato.

Con questo modulo, si possono progettare componenti di memoria la cui memorizzazione può avvenire a diversi istanti rispetto al segnale del clock:

  • metodologia con commutazione a livello: il campionamento (pescaggio dell'input D) può avvenire per tutta la durata del livello (basso o alto che sia);
  • metodologia con commutazione sul fronte: il campionamento può avvenire solo sul fronte (di salita o di discesa) del clock.