2. Generalità sui circuiti digitali 2.1 Segnali elettrici e variabili logiche Pur essendo la maggior parte delle grandezze fisiche in natura rappresentabili con segnali analogici, si é trovato molto spesso conveniente, per elaborare queste informazioni, convertirle in forma digitale. Dopo l'elaborazione numerica, i risultati possono essere riconvertiti, se richiesto, in forma analogica. I vantaggi di un’elaborazione in forma digitale sono essenzialmente i seguenti: • Mentre l’inevitabile presenza del rumore deteriora sempre la qualità di un segnale analogico, nel caso di un segnale digitale il rumore, purché di ampiezza inferiore ai margini per i disturbi, non peggiora per nulla la qualità del segnale. • Mentre l’elaborazione per via analogica viene definita in termini di interconnessioni di componenti elettronici, e quindi per via hardware, al contrario il processo di elaborazione digitale può essere effettuato da un hardware standard, e la funzione di elaborazione viene specificata sotto forma di istruzioni di un programma, cioè via software. L’uso di un hardware standard, e quindi prodotto in larghissima serie, permette una riduzione dei costi, e una grande facilità di riprogrammazione qualora si desideri cambiare il tipo di elaborazione da effettuare. Le informazioni da elaborare sono solitamente variabili logiche a due stati: vero e falso oppure uno e zero. Se si vogliono rappresentare le variabili logiche con corrispondenti segnali elettrici occorre adottare segnali elettrici a due livelli: ad es. tensione alta e tensione bassa. Per evitare difficoltà di riconoscimento i due livelli devono essere abbastanza diversi tra di loro. Data l’arbitrarietà della scelta diremo che operiamo con logica positiva se rappresentiamo lo stato “1” logico con tensione alta, e lo stato “0” logico con tensione bassa, al contrario operiamo in logica negativa se scegliamo la convenzione opposta. D’ora in poi, salvo esplicita indicazione contraria, opereremo con logica positiva. Le operazioni che occorre fare su queste variabili sono le operazioni logiche elementari: AND, OR, NAND, NOR, EXOR, NOT. Si definisce Porta Logica un circuito che effettui una delle operazioni logiche elementari sui segnali elettrici d’ingresso. 2.1.1 Scelta dei livelli di tensione corrispondenti ai livelli logici. Supponiamo che l’uscita di una porta logica (il parlatore) debba fornire un’informazione all’ingresso di una seconda porta logica (ascoltatore), come in fig. 2.1. Figura 2.1 – Comunicazione tra parlatore e ascoltatore 75 Il parlatore fornirà informazioni assicurando una tensione alta per indicare ”1” e tensione bassa per indicare “0”. Occorre che l’ascoltatore interpreti in modo corretto queste informazioni, in modo inequivocabile. Date le tolleranze di realizzazione del circuito, la variabilità delle tensioni di alimentazione, delle situazioni di carico, i disturbi sempre presenti, non avrebbe senso definire i due stati logici con valori ben precisi di tensione, ma occorre assegnare a questi un campo di accettabilità. Fig. 2.2 – Campi di tensioni accettabili quali livelli logici. La fig. 2.2 mostra le condizioni elettriche che debbono essere verificate perché il colloquio tra parlatore ed ascoltatore possa avvenire senza errori di interpretazione. In essa si sono adottati i simboli normalmente usati per indicare le grandezze elettriche su ingressi ed uscite delle porte logiche, ed in particolare il pedice O (output) è usato per le tensioni e correnti sulle uscite, il pedice I (input) per le grandezze d'ingresso, mentre il secondo pedice L (Low) indica lo stato logico "livello basso" e H (High) "livello alto". Nella figura 2.2 sono indicati a tratto spesso i possibili valori di VO forniti dal parlatore per indicare "1" oppure "0", nonché sulla seconda ordinata, i campi di tensione che l'ascoltatore, in ingresso, è in grado di interpretare correttamente come "1" e "0". Per essere sicuri che l'ascoltatore possa interpretare correttamente qualunque informazione gli pervenga dal parlatore, occorre che: • il minimo valore di tensione che possa comparire sull'uscita per indicare "1" (VOHmin) sia comunque superiore al minimo valore che l'ingresso è ancora in grado di riconoscere come "1" (VIHmin), cioè che sia verificata la diseguaglianza: VIHmin < VOHmin; • il massimo valore della tensione di uscita per indicare "0" (VOLmax) sia comunque inferiore al massimo valore che l'ingresso dell'ascoltatore è in grado di interpretare come "0" (VILmax). Occorre cioè che sia verificata la diseguaglianza: VILmax > VOLmax. La differenza (VOHmin - VIHmin) viene detta "Margine per il rumore allo"1"logico". La differenza (VOLmax - VILmax) viene detta "Margine per il rumore allo "0" logico". Il significato delle definizioni precedenti è evidente: un rumore sovrapposto ai livelli di tensione determinati dall'uscita del parlatore non è in grado di indurre false interpretazioni logiche da parte dell'ascoltatore se la sua ampiezza non è superiore ai margini sopra definiti. I valori della tensione d'uscita sopra definiti dipendono però dalla corrente che scorre nel circuito, per cui occorre definire anche, per ogni porta: − IOHmax massimo valore della corrente fornibile dall'uscita a livello alto per il quale è assicurato che VOH > VOHmin. − IOLmax massimo valore della corrente per cui l'uscita a livello basso assicura che VOL < VOLmax. − IIHmax massima corrente richiesta dall'ingresso nello stato di "1". − IILmax massima corrente richiesta dall'ingresso nello stato "0". 76 Connettendo una porta con più porte di carico occorre verificare, oltre alle disequazioni sulle tensioni sopra definite, anche che la somma delle correnti da fornire alle porte di carico sia, in entrambi gli stati logici, minore della massima corrente che la porta può sopportare assicurando ancora i livelli logici corretti. ∑ I < I OH max I < I OL max n IH max ∑ n IL max Le famiglie logiche sono costituite da componenti basati sulla stessa tecnologia, per i quali la compatibilità elettrica è assicurata. All'interno di una famiglia, il numero massimo di porte che ogni integrato è capace di pilotare rispettando le disequazioni sopradescritte viene detto "fan out". 2.2 Simboli logici utilizzati La figura 2.3 mostra i simboli logici che utilizzeremo per rappresentare le funzioni logiche elementari1. Figura 2.3 – Porte logiche principali Il pallino su un ingresso o su un'uscita ha chiaramente il significato che la relativa variabile viene complementata, per cui equivale alla negazione. Si noti che il Teorema di De Morgan rende possibile rappresentare la stessa funzione logica con simboli diversi. Ad es. in figura 2.4 si vede come la funzione NAND possa avere due simboli equivalenti ricordando che: A⋅ B = A + B Figura 2.4 – Teorema di De Morgan 1 Questi simboli non sono universalmente usati e in alcune pubblicazioni si possono trovare simboli differenti. 77 2.3 Segnale attivo alto ed attivo basso Ciascuna variabile logica rappresenta un’informazione: in genere il nome dato alla variabile é rappresentativo della sua funzione. Ad es. la variabile che comporta l’azzeramento di un certo processo può essere chiamata RESET. Ogni variabile può essere attiva alta (cioè fa il suo compito quando é portata all’”1”) o attiva bassa (in caso contrario). In genere conviene che questa informazione sia associata al nome della variabile, aggiungendo un asterisco (oppure una sopralineatura) nel caso di variabile attiva bassa; ad esempio: • RESET: questa variabile riazzera il sistema quando viene portata all”1” (tensione alta). • RESET*: questa variabile riazzera il sistema quando é portata allo “0” (tensione bassa). Anche gli ingressi dei circuiti logici possono essere definiti "attivi alti" o "attivi bassi". Si dice che un ingresso è "attivo alto" se è in grado di determinare lo stato del circuito quando è portato allo stato "1", mentre non influenza l'uscita quando è tenuto allo stato "0" (ad es. i circuiti OR oppure NOR hanno gli ingressi "attivi alti", in quanto un ingresso ad "1" è in grado di determinare lo stato dell'uscita indipendentemente dagli altri ingressi). Allo stesso modo si dice che un ingresso è "attivo basso" se è in grado di determinare lo stato del circuito quando viene portato allo "0" (ad es. sono attivi bassi gli ingressi di circuiti AND). E' ovvio che un segnale "attivo alto" debba comandare ingressi "attivi alti" e similmente che i segnali "attivi bassi" debbano giungere ad ingressi "attivi bassi". Questo deve essere tenuto in conto quando si disegnano sistemi logici complessi: per individuare gli ingressi "attivi bassi" si usa contraddistinguerli con il pallino della negazione. 2.4 Prestazioni dinamiche Nella grande maggioranza dei casi le singole porte fanno parte di un circuito logico più complesso tutto realizzato con la stessa tecnologia, e quindi si trovano ad essere pilotate da porte a loro analoghe ed a dover pilotare porte analoghe, come disegnato nella figura 1.6 dove si è indicata con DUT (Device Under Test) la porta sotto esame. Questa è anche la situazione nella quale si definiscono le prestazioni dinamiche della tecnologia in esame, cioè la sua velocità. Si supponga di pilotare la prima porta di figura 2.6 con un generatore ideale di onda quadra, e di osservare con un oscilloscopio gli andamenti nel tempo del segnale all'ingresso e all'uscita della DUT. Figura 2.6 – Schema di misura delle prestazioni dinamiche 78 Nella figura 2.7 sono schematizzati questi segnali. Si definisce: − Dinamica logica l'escursione di tensione tra il livello dello "0" e dell'"1", − Tempo di salita tr (di discesa tf), il tempo che è necessario alla forma d'onda d'uscita per passare dal 10% al 90% della dinamica logica. − Tempo di ritardo td, il tempo che intercorre tra l'istante in cui la forma d'onda all'ingresso passa per il valore al 50% della dinamica logica e l'istante in cui questo accade per la forma d'onda in uscita. Si possono avere due diversi tempi di ritardo td1 e td2 a seconda che si tratti di una commutazione in salita o in discesa, ma spesso viene fornito come td la media oppure il maggiore dei due. Una tecnologia è considerata tanto più veloce quanto più è piccolo il tempo di ritardo td che, quindi Figura 2.7 – Segnali corrispondenti alla figura 1.6 viene spesso utilizzato come parametro di confronto per le prestazioni dinamiche. Si noti come, benché il segnale d'ingresso sia ipotizzato essere una perfetta onda quadra, già l'uscita della porta P1 presenti fronti non perfettamente ripidi: tempi di salita e ritardi sono dovuti alla presenza di capacità parassite nella struttura della porta, che dovendosi caricare e scaricare rallentano le velocità di variazione delle tensioni. Poiché la dV/dt ai capi di una capacità dipende dalla corrente con la quale si carica (o scarica), volendo costruire tecnologie molto veloci occorre ridurre al minimo le capacità parassite, e avere a disposizione corrente a sufficienza per caricarle velocemente. Velocità e basso consumo sono difficilmente conciliabili. Un parametro spesso adoperato per identificare la qualità di una tecnologia è il prodotto td Pd (dove Pd è la potenza dissipata dalla porta elementare, come definito nel paragrafo seguente). Questo parametro ha le dimensioni di un'energia: una famiglia logica è tanto migliore quanto più quest'energia è piccola. 2.5 Potenza assorbita Ogni circuito logico necessita di una fonte di energia a tensione continua, dalla quale preleva la corrente necessaria al suo funzionamento. Il prodotto tra la tensione di alimentazione e la corrente prelevata corrisponde alla potenza assorbita dalla porta. 79 Tutta la potenza assorbita da un sistema logico è anche dissipata sotto forma di calore, in quanto non vi è trasformazione in altre forme di energia. La potenza dissipata da una porta deve essere la minore possibile e questo per due serissimi motivi: − La complessità dei moderni sistemi logici richiede un numero elevatissimo di porte, e anche il minimo risparmio sul consumo di ciascuna comporta un enorme risparmio globale. Si pensi in proposito quanto questo sia importante per tutti i sistemi elettronici portatili. − Tutta la potenza consumata è tramutata in calore, e questo deve essere trasmesso al di fuori del sistema se non si vuole che la temperatura interna salga a valori pericolosi. Il processo di miniaturizzazione delle singole porte e la crescente e spaventosa complessità dei circuiti integrati a larghissima scala di integrazione fa sì che ciascuna porta occupi un'area di silicio veramente minuscola, per cui vi è grande difficoltà a smaltire il calore che viene generato dalla dissipazione di potenza. L'entità della potenza dissipata limita l'integrabilità della famiglia logica. Ogni porta logica assorbe una certa potenza quando è in situazioni statiche (cioè con l'uscita a "0" oppure "1"), ma soprattutto assorbe una certa energia durante le commutazioni da uno stato all'altro, dando luogo ad una potenza dissipata che cresce proporzionalmente con la frequenza di commutazione. 80