tecnica |
CAPITOLO 3
SEGNALI E CIRCUITI LOGICI - Famiglia CMOS
I circuiti CMOS (Complemetary MOS) sono composti da circuiti pMOS e nMOS (vedi esercitazioni). Sono stati pensati per consumare poca corrente in condizione statica e per avere flessibilità nel valore della tensione di alimentazione.
Per semplicità didattica, possiamo pensare a un circuito CMOS come al solo stadio finale di una TTL ( 3.1).
Non accade MAI
che entrambi gli interruttori siano chiusi, e questo significa che non c'è
assorbimento statico di corrente (vedremo che il carico si comporta come un
condensatore). Durante la commutazione invece si ha un assorbimento di
corrente,e si può dimostrare che la potenza utilizzata da un CMOS cresce proporzionalmente
con la frequenza di commutazione. Come si vede da
grafico di . 3.2, la potenza dissipata da una porta CMOS diventa
paragonabile con la potenza dissipata tipicamente da una porta TTL quando
la frequenza raggiunge i 4-6 Mhz; oltre al questa frequenza la CMOS consuma
più potenza della TTL. Al contrario,
un CMOS che non commuta non consuma praticamente nulla. In un sistema,
mediamente, molti circuiti sono fermi, cioé non commutano, quindi, in
definitiva, un sistema composto da CMOS consuma meno di un sistema
equivalente composto da TTL.
Un dispositivo
CMOS (ma vale anche per MOS e FET) all'ingresso si presenta come un condensatore ( 3.3). Questo
significa che un CMOS, per pilotarne un altro, deve essere in grado di
pilotare un condensatore, quindi deve caricarlo e scaricarlo. Al fine del
calcolo della potenza consumata da un CMOS, posso utilizzare il seguente
modello semplificato rappresentato in . 3.4.
Poniamo che la
commutazione avvenga con una frequenza f=1/T (T=periodo). Quando sw1 è
chiuso e sw2 aperto, avviene il caricamento del condensatore: il suo
potenziale aumenta fino al valore Val. Quando viceversa sw1 è aperto e sw2
è chiuso, avviene la scarica del condensatore: la corrente fluisce verso
massa e il potenziale del condensatore va a zero.
Se Q è la carica che si accumula sul condensatore in un tempo pari al periodo T di commutazione, la corrente MEDIA è:
cioè
dove V, la tensione sul condensatore quando ha la massima carica, è praticamente uguale alla tensione di alimentazione (le resistenze del componente sono piccole quindi nel tempo T il condensatore si carica praticamente fino alla sua capacità).
Nota bene: la potenza va calcolata moltiplicando una tensione CONTINUA con una corrente CONTINUA; non posso moltiplicare tra loro grandezze non omogenee. In questo caso considero la corrente media calcolata prima, perché il valore della corrente durante la commutazione non è costante:
Da qui vediamo come la relazione tra potenza assorbita e frequenza sia LINEARE.
Per quanto riguarda il calcolo del FANOUT, non basta considerare semplicemente il rapporto tra corrente in uscita e in ingresso, ma occorre considerare anche il carico capacitivo. Staticamente i CMOS hanno un FANOUT "infinito", nel senso che, non consumando corrente, posso collegare un CMOS ad un numero qualunque di CMOS senza problemi. Ma quando commutano le cose cambiano: siccome il CMOS in ingresso si presenta come una capacità da caricare e scaricare, un dispositivo CMOS che deve pilotarne un altro deve essere in grado di pilotare delle capacità, e quindi deve essere in grado di erogare sufficiente corrente e dunque potenza, che abbiamo visto essere proporzionale alla frequenza.
Nei datasheet, come vedremo, viene fornito un valore di capacità equivalente che modellizza il comportamento dell'intero componente (in altre parole l'intero componente, ai fini del calcolo della potenza, viene visto come un condensatore). Tale valore è quello da inserire nella formula appena vista per calcolare la potenza assorbita da un CMOS.
La serie 4000 è stata la prima famiglia CMOS ed è nata in origine per applicazioni di tipo spaziale (ancora adesso è l'unica qualificata spazio). Infatti è stata concepita per avere un basso consumo e grande flessibilità sui valori della tensione di alimentazione (in modo da poter essere alimentata da fonti instabili, come le batterie).
Note varie dalla lettura dei datasheet:
Nota la grande flessibilità sulla tensione di alimentazione (da -0.5V a 18 V)
La potenza dissipata massima (cioè quando la frequenza è massima) è di 400 mW
Il valore di Tj è pari a 150 °C (non c'è sul datasheet)
Il valore minimo di funzionamento per la tensione di alimentazione è 3 V. Tra i 2 e i 3 Volt non funziona ma mantiene l'informazione
Guardando le caratteristiche elettriche quando all'alimentazione abbiamo 5 V, vediamo come i valori di tensione non siano compatibili TTL: VIH = 3,5; questo significa che una TTL non è in grado di pilotare un CMOS, perché la TTL potrebbe scrivere un 1 logico e il CMOS non riuscirebbe a interpretarlo correttamente. Al contrario un CMOS4000 potrebbe pilotare una TTL per quanto riguarda le tensioni, ma ci sarebbe il problema delle correnti: allo 0 logico la TTL assorbe 16 mA e il CMOS può erogarne 0,8-l mA.
Nota la maggior simmetria tra i valori di IOL e IOH (ma anche il il loro valore più basso rispetto alle TTL).
La caratteristica ingresso-uscita di un CMOS ha una forma diversa rispetto alla caratteristica TTL.
Nota come il valore di VOH sia molto vicino al valore di VAL e il valore di VOL sia vicino a 0
Il valore CIN è la capacità d'ingresso, cioè il valore della capacità che modelizza l'intero componente. Pilotare questo CMOS4000 significa pilotare una capacità pari a 7,5 pF.
Nota come il valore di CIN rimanga costante all'aumentare della tensione di alimentazione (5, 10, 15V). Infatti questo valore dipende solamente dalle caratteristiche geometriche del circuito. In compenso aumentano le correnti in uscita, e questo comporta una maggiore capacità di caricare/scaricare le capacità dei CMOS a valle, e quindi una maggiore velocità di commutazione. In conclusione, per aumentare la frequenza occorre aumentare la tensione di alimentazione.
Questo discorso si evidenzia nei grafici che riportano i tempi di proazione in confronto alla tensione di alimentazione. Si vede come questi tempi diminuiscano al crescere di VDD. Comunque si possono notare dei tempi abbastanza superiori a quelli della TTL.
Inoltre si può notare la relazione esistente tra i tempi di proazione e la capacità di carico, cioè la capacità pilotata.
La ura 7.5 mostra la caratteristica ingresso uscita, e si può notare come la transizione avvenga sempre alla tensione Val/2
La ura 7.6 è importante perché mostra la dissipazione di potenza in relazione alla frequenza. Qui si vede come alla frequenza di qualche Mhz la potenza dissipata sia pari a 10 mW, paragonabile alla TTL.
Nella globalità, una CMOS4000 ha un valore di P tp peggiore della TTL.
Per costruire logiche più veloci ma sempre a basso consumo sono state progettate le famiglie HC e HCT; in queste famiglie troviamo reimplementati i componenti della serie 4000 e i componenti TTL della serie 74.
La famiglia HC è compatibile CMOS, la serie HCT è compatibile, a livello di tensione, con la TTL.
Per ottenere questa compatibilità queste famiglie hanno dovuto rinunciare alla flessibilità sul valore della tensione di ingresso, che ora è fissata a 5 V (o,meglio, può variare tra 2 e 6 V).
Note varie dalla lettura dei data sheet (54HC00 e 74HC00):
Nel paragrafo Operating Conditions e la dicitura: Input Rise or Fall Time; questo è il tempo massimo consigliato in cui deve avvenire la transizione della porta. Durante la transizione, infatti, il dispositivo è in linearità, quindi consuma corrente. Logicamente, al crescere della tensione di ingresso (da 2V a 6 V), il consumo di corrente aumenta e infatti sono indicati dei tempi di transizione decrescenti.
La tensione VIH è pari a 3.5 V, quindi non è compatibile così com'è con una uscita TTL. Se, tramite una resistenza di pull up, si alza la tensione di uscita della TTL, allora si può ottenere la compatibilità con questa CMOS
Sia quando l'uscita è all'1 logico che allo 0 logico la corrente in uscita (IOUT) è abbastanza elevata, sufficiente per pilotare altri dispositivi
La simmetria dell'uscita porta ad avere gli stessi tempi di proazione da 0 a 1 e da 1 a 0. Inoltre questo tempo (8 ns) è paragonabile a quello delle TTL.
La capacità CPD è una capacità equivalente che modellizza l'intero dispositivo e tiene conto delle reali capacità interne. Quindi possiamo calcolare la potenza dissipata dal componente singolo con la formula:
Se lo stesso componente deve pilotarne altri dello stesso tipo, dissipa un ulteriore quantità di potenza, calcolabile con la stessa formula, ma ponendo la quantità CIN , che è la capacità vista dal pilotante:
Quindi, sommando i vari consumi di potenza, e tenendo conto della potenza (trascurabile) assorbita dal CMOS durante lo stato di riposo, abbiamo:
I dispositivi HCT, essendo leggermente più complessi, sono un po' più lenti e presentano un valore CPD un po' più alto.
Caratteristiche principali degli Advanced CMOS:
miglioramento correnti in uscita
bassi consumi e bassa capacità d'ingresso
tempi molto vicini alla logica TTL
versione AC e ACT
La tecnologia BICMOS utilizza sia circuiti bipolari che circuiti CMOS. Per esempio i buffer della Texas Instruments sono realizzati in tecnologia BICMOS.
Buffer tristate: questi particolari buffer cercano di ovviare al problema della terminazione della linea (vedi più indietro). Quando tutti i dispositivi collegati al bus sono in tristate, la linea assume un potenziale non noto. Per evitare il problema, questi buffer hanno al loro interno la terminazione per il bus, e non occorre più terminare la linea esternamente ( 3.6).
Infine, alcuni modelli hanno un meccanismo interno per cui, all'accensione, vanno nello stato di alta impedenza.
E' possibile realizzare un flip flop con 2 porte NAND ( 3.7).
|
M |
N |
U1 |
U2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
memoria |
|
Nella conurazione M=1, N=1, il flip-flop mantiene le uscite precedenti, in particolare:
se passo dalla conurazione 2 alla 4, U1=1 e U2=0;
se passo dalla conurazione 3 alla 4, U1=0 e U2=1;
ma se passo dalla conurazione 1 alla 4, il risultato è impredicibile, perché dipende dalla diversa velocità delle due porte NAND. Quindi la conurazione 1 è quella vietata.
Un applicazione dei flip flop è nei circuiti "anti-rimbalzo", dove occorre ignorare i rimbalzi di tensione dovuti a interruttori, switch, deviatori,ecc.
Invece delle porte NAND è possibile impiegare anche 2 porte NOR ( 3.8).
| M |
N |
U1 |
U2 |
|
|
|
memoria |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
In questo caso la conurazione vietata è la 4.
Flip flop SR (implementato con porte NOR)
S |
R |
Q |
|
|
mem |
|
|
|
|
|
|
Non tutti i circuiti hanno lo stesso tempo di proazione, quindi è praticamente impossibile sincronizzare tra loro i vari circuiti. Se invece tutti i circuiti che compongono il sistema obbediscono a un segnale di temporizzazione comune, è possibile riuscire a coordinare il loro comportamento. Si fa in modo che nel momento in cui scatta il segnale di temporizzazione tutti i possibili ritardi dei vari circuiti siano sicuramente esauriti. Il clock è un segnale a due valori con una frequenza nota che attiva i circuiti in corrispondenza dei suoi fronti. Il più semplice circuito attivato dal clock è appunto il flip flop.
simbolo del fronte di salita simbolo del fronte di discesa simbolo di un circuito attivato da fronti
di salita simbolo di un circuito attivato da fronti
di discesa
In . 3.10 vediamo uno schema (puramente didattico) che illustra la struttura master-slave:
Se CLOCK=0:
nelle porte NAND C e D entra uno 0, quindi UC=1 e UD=1; di conseguenza il flipflop costituito dalle porte 3 e 4 si trova in conurazione di memoria; nelle porte A e B entra un 1, quindi U1= M e U2= N (vedi tabella di verità del flip flop).
Il primo stadio contiene un informazione che dipende dalle variazioni dell'ingresso, mentre il secondo stadio è bloccato sul valore memorizzato e dunque insensibile alle variazioni di M e N.
Se CLOCK=1:
nelle porte A e B entra uno 0, quindi U1=1 e U2=1; di conseguenza il flipflop costituito dalle porte 1 e 2 si trova in conurazione di memoria; nelle porte C e D entra un 1, quindi U3= U1 e U4= U2. Il primo stadio è bloccato sul valore presente su M e N al momento della transizione del clock, mentre il secondo stadio assume il valore che era presente nel primo stadio.
Questo significa che, da un punto di vista esterno, l'uscita segue l'ingresso ad ogni fronte di salita del clock ( 3.11).
Il segnale di ingresso deve essere stabile per un certo intervallo prima del fronte di salita (tempo di setup) e per un certo intervallo di tempo dopo il fronte di salita (temop di hold). In questo modo si evitano problemi dovuti ai ritardi intrinseci dei flip flop. Infatti, se l'ingresso M e N cambiasse proprio in corrispondenza del fronte di salita, lo stato finale del flipflop risulterebbe indeterminato.
Un segnale che attiva i circuiti in corrispondenza dei suoi livelli (e non dei fronti), si chiama ENABLE o STROBE. Il più semplice circuito attivato dall'enable è il latch. Quando il latch è abilitato, si comporta come una porta "trasparente", nel senso che l'uscita segue l'ingresso in modo continuo; nel momento in cui il latch viene disabilitato, congela il valore presente al suo ingresso. Lo schema di principio è rappresentato in . 3.12.
interruttore Il segnale di enable controlla
l'interruttore; quando l'interruttore è chiuso la tensione sul condensatore
segue la tensione di ingresso; quando viene aperto, il condensatore
mantiene l'ultima tensione. C
I segnali di PRESET e CLEAR sono asincroni e servono per fornire un
valore iniziale (1 o 0) al FF.
Con questa conurazione, quando J=1 e K=1, l'uscita commuta, da Q a not Q.
Nota: questo è uno schema didattico che va
bene per far capire il principio di funzionamento; nella realtà il flipflop
D non viene realizzato in questo modo.
Un esempio in cui vengono utilizzati il flipflop D è il contatore. Questo componente hanno lo scopo di contare, ad esempio, i fronti di salita del clock. Allo stesso modo è possibile realizzare divisori di frequenza ( 3.13).
Con questa conurazione realizzo un divisore di frequenza per 2.
Mettendo in cascata i flip flop posso realizzare un divisore di frequenza per 16 (. 3.14).
not A |
not B |
not C |
not D |
contatore |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Leggendo il contenuto delle celle da destra a sinistra si ottiene il valore crescente del contatore, da 0 a 15. Questo tipo di contatore di chiama RIPPLE COUNTER, ed è asincrono, infatti il clock no nè comune a tutti. Occorre modificare questa conurazione e complicarla un po' per ottenere un contatore sincrono.
In commercio esistono contatori chiamati DECADI e contatori ESADECIMALI, realizzati con 4 flip flop collegati in modo sincrono. Ognuno di questi componenti può essere collegato in cascata con altri, in modo da realizzare contatori di modulo più elevato.
I contatori più completi possono essere inizializzati con un valore, ne si può impostare la direzione di conteggio (UP O down) e il modulo.
Esiste anche il contatore FREE RUNNING della Motorola, che non si ferma mai; è possibile impostare il suo modulo tramite uno schema rafurato in . 3.15.
Nel latch impostiamo il valore al quale il
contatore deve arrivare per ottenere il segnale di OUT.
In . 3.16 è rappresentato lo schema di principio dello shift register.
Ad ogni colpo di clock l'informazione presente su un flipflop viene trasferita al flip flop che segue; è molto importante che i flip flop abbiano una struttura master-slave, cioè introducano un ritardo noto e determinato, altrimenti, non appena introduciamo un'informazione nel primo flipflop, tutti gli altri ricevono quell'informazione. I segnali di Preset e Clear servono per inizializzare il registo con un valore.
Le applicazioni degli shift register sono diverse:
introduce un ritardo noto al proarsi dell'informazione
può essere utilizzato come moltiplicatore o divisore per potenze di 2
può essere utilizzato come memoria veloce di piccole dimensioni (registro interno)
è utilizzato per le conversioni parallelo-seriale e viceversa
La conversione parallelo - seriale ( 3.17) trova applicazione in quelle situazioni in cui occorre trasferire tramite collegamento seriale (RS232, coll. Video, via satellite) informazioni memorizzate alla sorgente in modo parallelo.
Affinché il trasferimento sia possibile, occorre che il clock della sorgente e della destinazione sia il medesimo, in ogni caso deve essere possibile sincronizzare il trasmettitore con il ricevitore ( 3.18).
Parallel IN - Serial OUT (PiSo) Serial IN - Parallel OUT (SiPo) Parallel IN - Parallel OUT (PiPo) Serial IN - Serial OUT (SiSo)
Spesso non è possibile avere un segnale
di clock comune ai due dispositivi, in particolare quando la distanza è
troppo grande. In questi casi si trasmette il segnale di clock
direttamente sulla linea seriale, insieme ai dati. Per realizzare
questa trasmissione ci sono diversi modi.
CAPITOLO 3
SOMMARIO
3.1. Famiglia logica CMOS e sue derivate..
3.1.1. Considerazioni generali sulla famiglia CMOS..
3.1.2. CMOS della serie 4000..
3.1.3. CMOS della serie HC, HCT
3.2. Esempi di circuiti sequenziali.
3.2.1. Flip flop di tipo elementare
3.2.2. Flip flop sincronizzati con il segnale di clock
3.2.3 Tipi di flipflop..
3.2.3.1 Tipo Set/Reset..
3.2.3.2 Tipo JK
3.2.3.3. Tipo D
3.2.4 Contatori..
3.2.5. Shift register.
3.2.5.1. Conversioni seriale-parallelo e parallelo-seriale
Privacy
|
© ePerTutti.com : tutti i diritti riservati
:::::
Condizioni Generali - Invia - Contatta