Sei sulla pagina 1di 25

Circuiti sequenziali

Si è detto che un “circuito combinatorio” è un circuito logico le cui uscite dipendono solo
dalla combinazione dei valori assunti dalle variabili logiche in ingresso in quel particolare
istante, e non dalla storia passata del sistema (ovvero dai valori assunti dagli ingressi
negli istanti precedenti).

Di contro, nei circuiti sequenziali le uscite in un certo istante dipendono anche dalla “storia
passata” degli ingressi, ovvero dagli “eventi logici” che si sono susseguiti in ingresso.
Pertanto, i circuiti sequenziali devono contenere un elemento di memoria, ovvero un
circuito che sia in grado di “ricordare” lo stato logico precedente.
Esistono 2 categorie di elementi di memoria: gli statici e i dinamici.
➢ Elementi di memoria statici: sono realizzati attraverso una configurazione circuitale
tale da “autosostenere” l’informazione attraverso un meccanismo di rigenerazione
(feedback positivo). Tali elementi sono “robusti”, ma caratterizzati da una certa
complessità circuitale (necessaria per autosostenere l’informazione), e quindi da una
ridotta compattezza.
➢ Elementi di memoria dinamici: utilizzano un elemento circuitale capace di conservare
temporaneamente l’informazione (una capacità). Tali elementi richiedono una ridotta
occupazione di area, ma purtroppo sono estremamente delicati (tendono a perdere
l’informazione).

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 1


Circuiti bistabili
L’elemento “base” di memoria statico è il cosiddetto bistabile (o latch = chiavistello1). Tale
elemento ha un comportamento “bistabile”, ovvero caratterizzato dalla presenza di 2 stati
stabili, anche in assenza di segnale di ingresso. Affermare che il sistema si trova in uno
stato “stabile” equivale a dire che esso è in grado di permanere in tale stato anche se
interviene un disturbo di modesta entità che tende a cambiare lo stato stesso.
Vediamo come si realizza un latch elementare partendo da 2 invertitori in cascata (in
configurazione ad anello aperto) indicati rispettivamente con #1 e #2.

Supponiamo che gli invertitori siano identici e che


siano realizzati in logica CMOS (il che implica
che VOL=0 V e VOH=VDD). Se tali invertitori sono
anche simmetrizzati si ottiene la vo=f(vi) mostrata
in figura.
1 Tale nomenclatura deriva dal fatto che il “chiavistello” (paletto di ferro usato dall’interno) dà luogo a 2
stati stabili (aperto/chiuso).

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 2


Focalizziamo l’attenzione sulla caratteristica di trasferimento della cascata dei 2 invertitori,
ovvero la rappresentazione grafica della legge VO2=f(VI1). Tale caratteristica ha le
seguenti proprietà:

➢ Risulta non invertente.


➢ Ha una pendenza molto elevata per valori di VI1 intorno al punto medio dell’escursione
logica.

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 3


Consideriamo ora la corrispondente configurazione ad anello chiuso, ottenuta
connettendo l’uscita del secondo invertitore (VO2) all’ingresso del primo (VI1), il che
equivale ad introdurre una retroazione a guadagno unitario.

Dimostriamo che il circuito ottenuto è un “bistabile”, ovvero è un sistema caratterizzato da


2 stati stabili, uno corrispondente allo 0 logico ed uno corrispondente all’1 logico. In primis
è necessario determinare i punti di equilibrio del sistema. All’uopo, è possibile procedere
per via geometrica nel piano (VI1, VO2), andando a sovrapporre la caratteristica ad anello
aperto VO2=f(VI1) alla bisettrice del quadrante, che corrisponde all’equazione VO2=VI1
imposta dalla retroazione a guadagno unitario.

Si ottengono 3 intersezioni, corrispondenti ai punti di equilibrio A, M, e B. Dimostriamo


che A e B rappresentano punti di equilibrio stabile mentre M (caratterizzato dal fatto che
VI1=VO2=VM=VDD/2) è un punto di equilibrio instabile.

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 4


Analizziamo la stabilità del punto M in questo modo. Supponiamo che VI1=VM (= VDD/2),
ovvero che il segnale di ingresso della cascata sia tale da portare il sistema nel punto M e
sovrapponiamo a VI1 un disturbo δ (ad esempio >0). Diciamo VM’ il segnale dato dalla
somma VM+δ. Il segnale corrispondente VO2=VM’’ in uscita dalla cascata può essere
individuato geometricamente dalla caratteristica di trasferimento ad anello aperto così
come mostrato in figura.

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 5


Come si può vedere, VM’’ risulta » VM a causa della notevole pendenza della caratteristica
di trasferimento ad anello aperto (1). Essendoci la retroazione a guadagno unitario, la
tensione VM’’ si ritrova in ingresso alla configurazione ad anello aperto e dà luogo ad una
uscita VM’’’>VM’’ (2). Il sistema tende al punto di equilibrio B. Da questa semplice analisi si
evince che il punto di equilibrio M è instabile.

Ovviamente la sovrapposizione di un disturbo negativo (δ<0) al segnale VI1=VM avrebbe


portato il sistema verso il punto di equilibrio A.

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 6


Al contrario, i punti di equilibrio A e B sono stabili; se il sistema si trova in uno di tali punti
e si allontana da questi a causa della presenza di rumore sovrapposto ai segnali, esso
tende a ritornarvi. Questi 2 punti sono rappresentativi dei 2 stati logici, i.e., del fatto che il
bistabile sta immagazzinando 0 o 1.
In conclusione, il sistema considerato è in grado - per sua natura - di autosostenere lo
stato (stabile) in cui si trova anche in presenza di disturbi sovrapposti ai segnali.

Si noti che il circuito ad anello chiuso (latch elementare) può anche essere rappresentato
nella forma mostrata, che evidenzia il fatto che l’uscita di ciascun invertitore coincide con
l’ingresso dell’altro.

È chiaro, peraltro, che, affinché tale circuito possa avere una funzionalità pratica, esso
deve essere dotato della possibilità di ricevere delle sollecitazioni esterne tali da
provocare il cambio di stato (ovvero la variazione dell’informazione autosostenuta). Un
bistabile di interesse applicativo è rappresentato dal D-latch.

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 7


D-latch
L’origine del nome è ambigua: D sta per delay [Spirito, Rabaey] oppure per data [Sedra-
Smith]. Il bistabile D è indicato ad un livello di astrazione elevato con il simbolo mostrato
in figura.

Prima di scendere al livello “porta logica” illustriamo le modalità di funzionamento.


➢ Se CK=0 il latch si porta nella fase di memorizzazione (hold) in cui autosostiene
(rigenera) lo stato che aveva prima che il segnale CK si portasse a 0,
indipendentemente dalle (eventuali) variazioni del segnale di ingresso D.
➢ Se CK=1, allora D=1 “setta” Q ad 1 (indipendentemente dal valore precedente di Q);
D=0 “resetta” Q a 0 (indipendentemente dal valore precedente di Q).

Pertanto è chiaro che, se CK=1, a parte un ritardo dovuto al sistema, questo bistabile
consente di “ritrovare” il dato D in uscita. Si dice anche che il valore alto del clock
introduce la fase di trasparenza: il sistema “fa arrivare in uscita” il dato posto in ingresso
dopo un certo ritardo.

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 8


L’implementazione più compatta fa uso della logica a “porte di trasmissione” (pass
transistor). Il D-latch può essere implementato semplicemente attraverso 2 porte di
trasmissione (quindi 2 o 4 MOS) e 2 invertitori come mostrato in figura.

Per verificare se la configurazione circuitale mostrata si comporta come un D-latch


bisogna valutare cosa succede per CK=0 e CK=1. Gli interruttori sono “normali”: si
chiudono se CK=1 e si aprono se CK=0.

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 9


CK=0 - l’interruttore A è aperto (e quindi il dato D è disconnesso dal resto del circuito)
mentre l’interruttore B è chiuso. Il circuito diviene

che corrisponde al bistabile elementare, il che equivale a dire che il sistema si trova in
fase di memorizzazione (hold). Pertanto la modalità di funzionamento del D-latch per
CK=0 è rispettata.

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 10


CK=1 - l’interruttore A è chiuso (e quindi il dato D è connesso al circuito) mentre
l’interruttore B è aperto. Il circuito diviene

e pertanto il dato D si ritrova in uscita su Q dopo un ritardo corrispondente al passaggio


attraverso la coppia di invertitori. Il sistema è trasparente alle variazioni del segnale di
ingresso.

In conclusione, lo schema di principio considerato consente di implementare


correttamente il D-latch. Il passo successivo consta nel decidere come realizzare
l’interruttore a “livello transistore”. Le possibilità sono: (1) logica NMOS, molto compatta e
(2) logica CMOS, efficace (permette il trasferimento “completo” sia dello 0 che dell’1) ed
efficiente (veloce).

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 11


D-latch pass transistor in logica NMOS
In logica NMOS ogni interruttore viene ottenuto attraverso un solo transistore NMOS.

Il circuito necessita di 8 transistori MOS; infatti sono presenti:

➢ 3 invertitori, di cui 2 sono “visibili” nello schema, ed 1 serve per ottenere il negato di
CK; dato che ogni invertitore consta di 2 transistori, allora servono 6 MOS.
➢ 2 NMOS montati a porta di trasmissione.

Ovviamente tale implementazione presenta i ben noti problemi connessi all’utilizzo di


porte di trasmissione NMOS: l’ “1” logico è trasmesso in modo incompleto e lento.

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 12


D-latch pass transistor in logica CMOS

In questo caso ogni interruttore viene implementato attraverso un transistore NMOS ed


un transistore PMOS. Pertanto sono necessari 10 transistori MOS (2 in più rispetto
all’implementazione in logica a pass transistor NMOS).

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 13


Osserviamo il funzionamento del D-latch
attraverso le forme d’onda dei segnali CK,
D, e Q in funzione del tempo. Per
semplicità supponiamo che le porte
rispondano in modo idealmente istantaneo
alle commutazioni del segnale di ingresso.

Inizialmente CK=0; pertanto il sistema si


trova in fase di hold, che, nel caso in
questione, corrisponde a Q=0 (in modo
indipendente dai valori assunti da D). In
t=t1 si ha che CK esegue la transizione
0→1 e il circuito si porta in trasparenza.
Se D esegue la commutazione 0→1
(istante t2) allora Q lo “segue”. In t=t3 si ha
che CK ritorna a 0 e il sistema memorizza
Q=1. Nell’intervallo temporale in cui CK=0
le variazioni dell’ingresso D non si
riflettono sull’uscita. In t=t4 si ha che
CK=1; riprende la fase di trasparenza e Q
segue in modo idealmente istantaneo le
variazioni di D.

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 14


D-latch - Problematiche connesse alla tempificazione
Un problema è rappresentato dal fatto che il negato del segnale CK è ottenuto attraverso
un invertitore, il che equivale a dire che le commutazioni di CK si traducono in transizioni
del negato di CK solo dopo un tempo di propagazione tPCK associato a tale invertitore.
Supponendo che le commutazioni di CK e del negato di CK siano idealmente istantanee,
si ha la situazione mostrata in figura.

Si è supposto che l’invertitore sia CMOS simmetrizzato, sicché tPLH=tPHL=tPCK.


Pertanto, si hanno degli intervalli di tempo di “sovrapposizione” (overlap) di durata tPCK in
cui CK ed il suo negato assumono lo stesso valore (0 oppure 1), che possono generare
malfunzionamenti nel circuito.

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 15


Ad esempio, facciamo riferimento al caso di una implementazione del D-latch attraverso
porte di trasmissione CMOS.
In particolare, supponiamo che Q=0 e di voler attivare la fase di memorizzazione
(conservazione “rigenerativa” del dato) attraverso la commutazione di CK da 1 a 0. In
base a quanto detto in precedenza, c’è un intervallo di tempo pari a tPCK in cui sia CK che
il suo negato risultano pari a 0. Questo equivale ad interdire ambo gli NMOS delle porte di
trasmissione e a mandare in conduzione ambo i PMOS di tali porte.

L’interruttore A dovrebbe essere aperto per dare luogo alla fase di memorizzazione e
invece è chiuso. Il circuito si porta in uno stato “intermedio” tra la memorizzazione e la
trasparenza. Una eventuale commutazione di D da 0 a 1 può portare ad una variazione
(0→1) dell’informazione immagazzinata Q (cambio di stato indesiderato).

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 16


Supponiamo che gli invertitori #1 e #2 siano CMOS simmetrizzati. Sia t=0 l’istante di
tempo in corrispondenza del quale si ha la commutazione 1→0 di CK. In t=tD si abbia la
transizione 0→1 di D. Il potenziale di P inizia a salire, l’uscita dell’invertitore #1 (Q negato)
a scendere, e quella dell’invertitore #2 (Q) a salire (sia per effetto del PMOS della porta di
trasmissione B che per il decremento dell’ingresso dell’invertitore stesso). Nel frattempo il
PMOS della porta di trasmissione A sostiene sempre meno l’aumento del potenziale di P
a causa del fatto che il negato di CK sta aumentando. Tuttavia, se questo aumento è
molto lento (tPCK elevato), il PMOS si spegnerà quando l’uscita VQ dell’invertitore #2
risulta maggiore di VDD/2. Pertanto il chiavistello tende da solo a sostenere il dato
(sbagliato) Q=1, il che significa che D=1 ha avuto il tempo di propagarsi nella fase di
pseudo-trasparenza.

Al fine di evitare il cambio di stato può essere buona norma far sì che tPCK sia più piccolo
di tPHL(#1) per evitare che la tensione corrispondente al negato di Q si porti a un valore
<VDD/2. In tal modo si è sicuri che il circuito non è in grado di “sostenere” la propagazione
di D=1 per un tempo sufficiente.

All’uopo bisogna evitare di considerare un invertitore globale che fornisca il negato del
segnale di clock a tutti i latch. Infatti in questo caso tale invertitore dovrebbe pilotare una
capacità molto elevata e ad esso sarebbe associato un tempo di propagazione notevole.
Al contrario, bisogna ricorrere alla soluzione “poco compatta” di dedicare un invertitore
locale ad ogni latch individuale.

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 17


Osservazione: si prenda in considerazione un D-latch implementato in logica a porte di
trasmissione. Ricordiamo che il multiplexer è un blocco che, a seconda della
combinazione di valori assunti da una parola di indirizzo di N bit, instrada sull’uscita uno
tra 2N dati di ingresso. Questo equivale a dire che il D-latch si può rivedere nella forma
mostrata in figura.

➢ Se CK=0 viene instradato sull’uscita (ingresso di #1) il dato corrispondente al bit di


selezione 0, ovvero Q, e si ottiene il bistabile elementare che autosostiene
l’informazione; il sistema si trova in fase di memorizzazione.
➢ Se CK=1 viene instradato sull’uscita del multiplexer il dato D, che viene riportato su Q
dopo un ritardo legato alla cascata di invertitori; in questo caso il sistema si trova in
fase di trasparenza.

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 18


Introduzione ai flip-flop

Sia nel caso dell’SR-latch con segnale di clock che nel caso del D-latch si è visto che il
funzionamento è dettato dal livello del segnale CK. Se CK=0 allora il sistema si
“trasforma” nel bistabile elementare che autosostiene il suo stato ed è insensibile alle
variazioni del segnale (dei segnali) di ingresso; in tal caso si parla di “memorizzazione”.
Se CK=1 allora l’uscita è sensibile alle variazioni del segnale (dei segnali) di ingresso; in
tal caso si parla di “trasparenza”. Se si considera il D-latch, un simbolo “alternativo” atto
ad indicare che il sistema ha un funzionamento dettato dal livello del clock è

Di contro, il funzionamento dei flip-flop non è scandito dal livello del segnale CK, ma dai
fronti di salita (discesa) del clock. Si dice anche che i flip-flop sono elementi sensibili ai
fronti del clock. Pertanto i flip-flop non sono mai “trasparenti” come i latch.

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 19


Il flip-flop D
Al fine di evidenziare la sensibilità ai fronti del clock, il simbolo del flip-flop D presenta un
“triangolino” in corrispondenza dell’ingresso CK. In particolare, per indicare la sensibilità ai
fronti di discesa del clock, si inserisce un “cerchietto”.

Supponiamo che il flip-flop sia sensibile ai fronti di salita del clock. In tal caso, in
corrispondenza della commutazione 0→1 di CK, il flip-flop “cattura” il dato D e lo “colloca”
su Q in una seconda fase in cui D non viene più “visto” dal circuito.

Per comprendere appieno le modalità di funzionamento di un flip-flop D, è bene riportare


gli andamenti temporali dei segnali CK, D, Q nei casi di sensibilità ai fronti di salita e di
discesa del CK.

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 20


Nel caso in cui il flip-flop sia attivo sul fronte
di salita del clock, ciò che avviene a Q
prima dell’istante di tempo t1 è indifferente.
Considerazioni analoghe vanno fatte nel
caso in cui il flip-flop sia attivo sul fronte di
discesa del clock in riferimento all’istante t2.

Sul fronte di salita per t=t1 si ha che


l’ingresso D è basso, e quindi Q è basso
(viene “memorizzata” l’informazione Q=0).
Di contro, sul fronte di salita per t=t3 si ha
che D=1, e quindi Q diviene pari a 1
istantaneamente (si suppone che il sistema
non presenti ritardi).

In modo analogo, se il flip-flop è sensibile ai


fronti di discesa del clock, allora Q si alza
all’istante t=t2 perché D è pari a 1, e poi si
abbassa in t=t4 perché D è pari a 0.

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 21


Flip-flop D in configurazione master-slave

Un flip-flop può essere facilmente realizzato mettendo 2 latch in cascata, uno attivo su un
livello del clock ed uno attivo sul livello opposto in configurazione master-slave.

Dobbiamo dimostrare che tale configurazione si comporta effettivamente da flip-flop,


ovvero (1) che non è mai trasparente (non vi sia, cioè, un collegamento “diretto” tra D e
Q) e (2) che è sensibile ai fronti di salita (o di discesa) del clock (e non al livello).

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 22


Analizziamo le modalità di funzionamento della struttura master-slave proposta.
➢ Se CK=1 si ha che il D-latch master è trasparente alle variazioni del segnale di
ingresso D, mentre il D-latch slave è in memorizzazione. Ciò equivale a dire che Qm
segue con un certo ritardo le variazioni di D. Il latch slave, però, non “vede” tali
variazioni e quindi l’uscita Q risulta “bloccata”.
➢ Se CK=0 si ha che il D-latch master è in memorizzazione (l’uscita Qm rimane
“bloccata”; è, cioè, indipendente dalle variazioni del segnale di ingresso D). Di contro,
il latch slave diviene trasparente e riporta sull’uscita Q il valore di Qm dopo un certo
ritardo.
Il fatto che almeno uno dei 2 D-latch sia in fase di memorizzazione implica che non si
crea mai (indipendentemente dal livello del clock) un percorso conduttivo tra ingresso ed
uscita. Ciò equivale a dire che il circuito non è mai trasparente.

Si dimostra in modo semplice che il flip-flop realizzato risulta sensibile ai fronti di discesa
del clock. Vediamo che succede in corrispondenza della commutazione 1→0 di CK. Il D-
latch master si porta nella fase di memorizzazione e su Qm rimane il valore di D che era
presente prima della commutazione stessa. Nel frattempo il D-latch slave si porta in
trasparenza e “lascia passare”, dopo un certo ritardo, il valore di Qm “traslandolo” su Q. In
conclusione, su Q si ritrova il valore di D corrispondente alla commutazione 1→0 del
clock.

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 23


Come si può vedere, il dato D
si ritrova sull’uscita Q in
corrispondenza del fronte di
discesa del clock.

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 24


Realizzazione di un flip-flop D in configurazione master-slave

È importante notare che l’ingresso del D-latch slave è il negato del segnale Qm visto nei
diagrammi temporali mostrati in precedenza (infatti è ottenuto da D a meno di una
inversione), mentre il segnale Q in uscita dallo stesso latch coincide con il segnale Q
mostrato nei suddetti diagrammi (è ottenuto da D attraverso una doppia inversione).

Al solito, non è mostrato l’invertitore che consente di ottenere il negato del segnale di
clock. Il numero complessivo di transistori necessari per tale implementazione è dato
dalla somma di quelli corrispondenti ai 5 invertitori (10) e quelli relativi alle 4 porte di
trasmissione CMOS (8), ovvero 18 MOS.

Circuiti Digitali Vincenzo d’Alessandro Circuiti sequenziali 25

Potrebbero piacerti anche