Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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).
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.
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.
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.
➢ 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.
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).
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.
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.
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.
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.
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.
È 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.