DECIMATORE DIGITALE A 200 MEGAHERTZ
|
|
|
- Antonina Falco
- 9 anni fa
- Просмотров:
Транскрипт
1 POLITECNICO DI MILANO Dipartimento di Elettronica e Informazione DECIMATORE DIGITALE A 200 MEGAHERTZ PER A/D SIGMA-DELTA : DALL ARCHITETTURA AL LAYOUT Relatore: Correlatore : Prof. Andrea LACAITA Ing. Carlo SAMORI Tesi di laurea di: Alfio ZANCHI Matricola Ingegneria Elettronica Orientamento Segnali e Sistemi Elettronici ANNO ACCADEMICO 1994/95
2 Indice Introduzione... I Capitolo 1 - La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore L importanza della conversione A/D e D/A Un metodo ideale per i sistemi misti: la conversione Sigma-Delta Campionamento e conversione ADC di tipo convenzionale Sovracampionamento: lo scambio risoluzione-velocità Dal convertitore tracking al Sigma-Delta del 1 ordine Comportamento nei tempi del modulatore Sigma-Delta: una simulazione preliminare Comportamento in frequenza del modulatore Sigma-Delta: analisi del rapporto Segnale/Rumore Pattern noise per modulatori del 1 ordine Il modulatore Sigma-Delta del 2 ordine Evidenza spettrale delle proprietà di shaping sul rumore Cenni alla realizzazione circuitale Decimazione del segnale digitale sovracampionato Scelta dell ordine e del fattore di decimazione Numero di bit in uscita dal decimatore FIR Simulazioni dell intera catena A/D Sigma-Delta 40 Capitolo 2 - La scelta dell architettura a blocchi del filtro Implementazione canonica di un filtro FIR Realizzazione in Forma DIRETTA Realizzazione in Forma RICORSIVA Sezione IIR del decimatore: le aritmetiche modulari Il problema dei cicli limite Sezione FIR del decimatore: stato iniziale e latenza Simulazione e scelta finale Strutture di decimazione alternative Confronto tra filtraggio eseguito direttamente e mediante FFT 66 Capitolo 3 - Dall architettura alla logica: tecniche adottate per l aritmetica digitale Uso dei sommatori nel circuito Parte IIR : Limite di Winograd per la velocità dei sommatori Parte IIR : Ripple carry e full-adder 70
3 3.4 Parte IIR : Carry look-ahead (CLA) Parte IIR : Carry select, o somma condizionale Parte IIR : Carry select + Carry look-ahead Parte IIR : Carry save (applicazione del pipe-line alla somma binaria) Parte IIR : Altre tecniche alternative di somma Parte IIR : Progetto a livello logico delle tecniche individuate Parte FIR : Sottrattore dinamico a Manchester carry chain Parte FIR : Sottrattori veloci e risparmio di latenza Uso dei registri/ritardi nel circuito Parte IIR : Corsa critica e latch a NPTC Parte IIR : Tecnica C 2 MOS e memorizzazione dinamica Parte IIR : Tecnica NORA Parte IIR : Tecnica TSPC Parte IIR : Scelte di temporizzazione finali Parte FIR : Registri Parte Intermedia : Divisore di frequenza 4:1 118 Capitolo 4 - Dalla logica circuitale allo schematico a transistori: problemi e soluzioni Uno sguardo alla tecnologia a disposizione: BiCMOS Dimensionamento dell invertitore digitale minimo Ritardo del buffer minimo digitale Parte IIR : Implementazione a transistori delle singole porte logiche Parte IIR : Ottimizzazione dei singoli blocchi carry-select da 2 bit Parte IIR : Progetto CMOS della rete di look-ahead del sommatore Parte IIR : Progetto BiCMOS a Wired-OR della rete CLA Parte IIR : Ottimizzazione dei registri a latch Parte IIR : Tentativo useful clock skew Parte IIR : Introduzione del carry save/pipe-line Parte IIR : Modifiche finali a sommatori e registri Parte IIR : Simulazioni conclusive Parte FIR : Sottrattori a Manchester carry chain semplice Parte FIR : Manchester carry chain rigenerata Parte FIR : Simulazioni conclusive della soluzione Manchester Parte FIR : Sottrattori veloci e calo di latenza Parte Intermedia : Tecniche di distribuzione del sincronismo Parte Intermedia : Divisore di frequenza e sincronismo di sottocampionamento Consumo di energia : alimentazioni e clock Stime dell occupazione di area Il problema della temperatura Ultima modifica circuitale : tecnica dìvide et ìmpera 229
4 Capitolo 5 - Floorplanning e layout in tecnologia BiCMOS Obiettivi principali del floorplanning Parte IIR : Geometria con percorso dei dati rettilineo Parte IIR : Geometrie con percorso dei dati ripiegtao Parte IIR : Geometria mista e problemi di clock skew Parte FIR : Prosecuzione della geometria IIR precedente Parte IIR : Il floorplan delle singole porte logiche nei blocchi modulari Parte FIR : Floorplanning funzionale alla precarica Elementi fondamentali e parametri principali utili per il layout Design rules del processo BiCMOS Layout della sezione IIR: i blocchi unitari carry select Dimensionamento delle linee di alimentazione Distribuzione del clock Layout della sezione intermedia del filtro Layout della sezione FIR: sottrattori con celle a pitch minimo Layout della sezione FIR: i registri a pitch minimo Risultato finale e corrispondenza con le previsioni Fasi post-layout: estrazione del circuito, LVS e calcolo di alcuni parametri caratteristici dei circuiti digitali 276 Capitolo 6 - Vettori di test e diverse verifiche di funzionamento Uso di Matlab per il controllo delle sequenze binarie Simulazioni complete di casi critici Sintesi del macromodello di un modulatore Sigma-Delta del 2 ordine Schemi completi della catena di conversione A/D Sigma-Delta Simulazioni miste behavioural-circuitali della catena A/D Analisi di worst-case del filtro decimatore Condizioni di funzionamento consigliate Conclusioni e sviluppi futuri 306 Appendice 1 - Il simulatore TOSCA... 1 Appendice 2 - Listati Matlab per la simulazione dei decimatori.. 4 Appendice 3 - Sintesi della logica di riporto condizionale mediante mappe di Karnaugh Bibliografia Ringraziamenti... 29
5 Introduzione Introduzione Lo scopo del presente lavoro di tesi è quello di progettare un filtro decimatore da porre a valle di un modulatore del tipo Sigma-Delta. E noto infatti come la conversione Analogico/Digitale eseguita mediante la tecnica di sovracampionamento a Sigma-Delta sia efficiente nel rimuovere il rumore di quantizzazione dalla banda base del segnale, ma richieda un intera catena DSP (Digital Signal Processing) per scendere in frequenza sino al limite di Nyquist, e contestualmente aumentare il numero di bit della rappresentazione digitale dei dati. In effetti, in letteratura si parla propriamente di modulazione Sigma-Delta per la parte analogica, ma di conversione A/D Sigma-Delta per il sistema completo. L ambito applicativo a cui questo progetto si rivolge è quello dell elaborazione di segnali a frequenza video; tale locuzione è usata, in questo contesto, per soli fini indicativi e si riferisce in generale a segnali aventi uno spettro estendentesi fino a 4 MegaHertz. Ciò ha implicato la realizzazione di un modulatore funzionante a 200 MegaHertz e con uscita a 2 bit, per ottenere una risoluzione finale superiore a 10 bit per i segnali in banda; il primo stadio della cascata di decimazione dovrà dunque prelevare la sequenza binaria a 2 per 200 Megabit/secondo, ed estrarne una sequenza di dati da 8 bit a 50 MegaHertz. Il risultato viene acquisito attraverso un sottocampionamento, previo filtraggio passa-basso per evitare aliasing del rumore nelle bande di interesse. Il tipo di elaborazione seguita è a comb filter, o filtro a pettine, che garantisce grande semplicità di implementazione ed efficace reiezione del rumore di quantizzazione ad alta frequenza. Il lavoro svolto si è esplicato dapprima nell individuazione dell architettura a blocchi più adeguata allo scopo; in un secondo tempo nella traduzione dell architettura scelta in una configurazione circuitale a livello di porte logiche, con particolare enfasi dedicata all ottimizzazione, rispetto alla velocità, dell aritmetica binaria utilizzata; in terza istanza, nel passaggio da tale logica alla sua realizzazione mediante transistori; ed in ultimo luogo, nella trasposizione della rete di componenti progettata nel layout fisico dei dispositivi, con attenzione particolare dedicata agli aspetti di bassa occupazione di area e basso consumo di potenza. I
6 Introduzione La tecnologia elettronica a nostra disposizione per portare avanti il progetto è di tipo BiCMOS (Bipolar + CMOS), quindi il circuito digitale finale sarà realizzato con la prospettiva di terminare sul medesimo chip che allocherà il modulatore Sigma- Delta, già preesistente come frutto di una tesi di dottorato. Le alimentazioni sono già fissate a 3.3 V, quindi si tratta di un applicazione low-power; in effetti, il decimatore e l intera catena di conversione devono consumare poco anche per non perturbare le caratteristiche del circuito principale a cui renderanno servizio di front-end A/D. Va chiarito subito, in quest ottica, come il progetto finale faccia uso di soli componenti MOSFET evitando l utilizzo dei più dissipativi ed ingombranti BJT. Il segnale di sincronismo del sistema è supposto giungere dall esterno, con fronti simmetrici di salita e discesa di durata 0.3 nanosecondi e ciclo di lavoro pari al 50%; idem dicasi per le due linee binarie provenienti dal modulatore, già pensate sincronizzate con il clock. La fase di temporizzazione divisa per quattro, cioè il fattore di decimazione, va viceversa generata all interno del circuito. Le otto uscite binarie (byte) sono rese disponibili all esterno attraverso un registro finale non bufferizzato; il progetto non si deve occupare inoltre dei problemi inerenti le sezioni di ingresso ed uscita dei segnali (pad di connessione con l impaccamento, numero di connessioni per le alimentazioni, etc.), essendo solo una parte di un chip completo. La versione disponibile della tecnologia BiCMOS contempla la presenza di tre livelli di metallo e di due tipologie di polisilicio; non consente la sovrapposizione dei contatti (stacked contact); la minima lunghezza di canale è di 0.7 µm, mentre la larghezza minima praticabile vale 2.2 µm. Le tensioni di soglia valgono V per i transistori NMOS e V per i PMOS; purtroppo non si ha a disposizione una tecnologia con soglie scalate rispetto alla alimentazione in uso, che avrebbe fornito invece componenti con soglie attorno a 0.5 V; la velocità del circuito risente sicuramente di questa particolarità. Il transistore bipolare minimo realizzabile ha inoltre un area di emettitore di 3.5x3.5 µm 2. I programmi di sviluppo dei circuiti integrati che sono stati utilizzati sono: OPUS TM (della Cadence Design Systems, Inc.) per il disegno dei circuiti, sia a livello dello schematico che del layout; ST-SPICE (della SGS-Thomson Microelectronics) per la simulazione, ammessa però al solo livello circuitale e non anche a livello II
7 Introduzione behavioral; e Xelga (della Anacad Corp.) per l analisi dei segnali prodotti dalle simulazioni. Si segnala in questa sede la mancanza di un mezzo di simulazione a livello astratto per le funzioni digitali, nonchè di un analizzatore automatico dei ritardi del circuito, che che avrebbero probabilmente consentito di migliorare il flusso di progettazione. I mezzi di calcolo a nostra disposizione erano delle workstation Sun SPARC10 e SPARC20. La presente dissertazione scritta è suddivisa in 6 capitoli, i cui contenuti sono per sommi capi i seguenti: 1. Il primo capitolo tratta gli aspetti generali inerenti il problema della conversione Analogico/Digitale, fornendo le principali definizioni utili per comprendere il prosieguo dell analisi del problema. Dalle strutture più classiche di A/D si passa gradualmente alle tecniche sovracampionate, sino al Sigma-Delta del 2 ordine; per quest ultimo si riconosce la necessità di una decimazione, e si investigano le proprietà spettrali che il fltro decimatore deve possedere, in riferimento alla risoluzione desiderata all uscita della catena di conversione. 2. Nel secondo capitolo si analizzano diverse tipologie di schemi a blocchi in grado di fornire le caratteristiche identificate del decimatore. Partendo da strutture di filtraggio utilizzate in altri contesti, si giunge a proporre due soluzioni alternative che vengono quindi confrontate con l aiuto di simulazioni al calcolatore; particolare enfasi è dedicata allo studio delle aritmetiche binarie occorrenti per assicurare il corretto funzionamento degli schemi individuati. 3. Il terzo capitolo contiene la descrizione delle fasi di passaggio dall architettura funzionale del filtro ad una realizzazione dei singoli blocchi mediante porte logiche, ad alto livello. Sono ivi esaminate alcune configurazioni di porte atte all implementazione di un aritmetica di somma veloce dei dati, a partire dagli schemi più semplici sino a soluzioni più elaborate; inoltre viene trattata la questione della sincronizzazione del sistema, e quindi della efficiente realizzazione dei registri in esso contenuti. 4. Nel quarto capitolo, le tecniche ad alto livello scelte vengono finalmente trasformate in circuiti a transistori e sottoposte a test di simulazione. La maggiore importanza viene data alla sezione del filtro funzionante a 200 MHz: si presentano schematici facenti uso della tecnologia BiCMOS, sia facendo ricorso ai soli MOSFET che usando i transistor bipolari, ed applicando tecniche circuitali (un III
8 Introduzione esempio: lo useful clock skew ) di ottimizzazione rispetto alla velocità di operazione. Seguono le descrizioni della rete di divisione e distribuzione del clock, e della sezione di sottrazione dei dati funzionante a 50 MHz. Infine, si presentano i risultati dell analisi worst-case dell intero schema. 5. Il capitolo quinto è dedicato all implementazione fisica del circuito progettato. Vengono discusse le problematiche afferenti al floor-planning (disposizione ottima dei blocchi logicamente omogenei dei transistori) ed al layout (progetto delle configurazioni geometriche di transistori e connessioni), e si illustrano le soluzioni trovate con l ausilio di immagini tratte dal circuito finale disegnato. 6. Nel capitolo sesto si trova infine una breve descrizione dei metodi utilizzati per verificare la correttezza del funzionamento del circuito, sia durante lo svolgimento del progetto che in sede di test conclusivo. IV
9 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 Capitolo La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore In questo capitolo si descrivono i principi fondamentali ed i comportamenti principali che caratterizzano il funzionamento dei sistemi di conversione A/D di tipo Sigma-Delta. Partendo dai metodi classici di conversione si definiscono i parametri atti a quantificarne le proprietà, per poi passare alle tecniche alternative sovracampionate, e giungere all analisi dei modulatori Sigma-Delta sino al 2 ordine. Compresa la necessità di porre degli stadi di decimazione a valle del modulatore, si analizzano infine le prestazioni di questi ultimi sia da un punto di vista teorico che fornendo simulazioni più intuitive L importanza della conversione A/D e D/A L interesse devoluto alle tecniche di conversione Analogico/Digitale e Digitale/Analogico è oggigiorno in continua ascesa; sono testimonianza di ciò le numerose realizzazioni di integrazione di sistemi misti, che contemplano cioè la concomitante presenza di elettronica binaria - digitale - e continua - analogica - sul medesimo die di silicio. A supporto di questa affermazione si possono annoverare svariati esempi, in prima istanza divisibili in due vaste categorie : -1-
10 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 - i sistemi digitali presenti in blocchi a funzione essenzialmente analogica; tipico è il caso delle schede Smart-Power per attuatori, laddove si utilizzano dispositivi di potenza pilotati da reti logiche anche complesse, con capacità di calcolo e di memoria per la bufferizzazione di dati; - i sistemi analogici presenti in blocchi a vocazione eminentemente digitale; e questo è forse il caso che più frequentemente si incontra : basti pensare ai sottosistemi di driving delle linee di dato e/o selezione in una memoria Flash-EPROM, oppure agli outlet dei modem, e ancora più in generale ad ogni sistema di interfaccia di una rete di telecomunicazioni. In effetti, la presenza onnipervasiva dei processori, con la loro facilità di controllo da parte dell utente umano e la flessibilità di gestione delle loro risorse, grazie alla programmabilità che ne rappresenta la caratteristica peculiare, è già una risposta molto appetibile a svariati problemi che la moderna elettronica deve affrontare. Risolti quei problemi, tende inoltre a farne sorgere di nuovi, in una continua spinta verso l aumento delle velocità, la riduzione delle aree, la moltiplicazione delle funzioni e la minimizzazione delle potenze dissipate dal singolo chip. Questo proficuo processo di fusione delle due branche dell elettronica pone, di conseguenza, richieste sempre più stringenti ai progettisti dell interfaccia tra i due blocchi: il convertitore, sia esso A/D oppure D/A. In questa tesi di laurea sarà affrontato soltanto il tema della trasformazione A/D (Analogico Digitale) dei segnali in arrivo; purtuttavia è bene aver presente che la filosofia Sigma-Delta trova applicazione anche nell operazione inversa, di passaggio D/A Un metodo ideale per i sistemi misti : la conversione Sigma-Delta La maggioranza degli schemi di conversione A/D fa riferimento a circuiti che, tra le possibili scelte di realizzazione, privilegiano quelle che si appoggiano più a tecniche analogiche che non a tecniche digitali. I convertitori a rampa (semplice, doppia, multirampa,...) si basano sulla precisione e sulla riproducibilità di una rampa di tensione; il dispositivo di conteggio dei cicli di clock che intercorrono tra i segnali di sincronismo forniti dai comparatori riveste importanza marginale, -2-
11 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 rispetto alla rete di integrazione della corrente continua che darà la rampa. I convertitori ad approssimazioni successive (sia che lavorino in una fase sola, oppure con raffinamento progressivo della stima binaria presentata in uscita) hanno bisogno di precisi comparatori e di un buon DAC; la cosiddetta pesiera, logica di controllo che scala progressivamente i bit, non è certo una rete concettualmente critica, data anche la relativa lentezza del dispositivo. Infine, gli ADC di tipo Flash hanno sì una logica di priority encoding che deve essere veloce, ma sono ancora più difficili da integrare sia la rete resistiva di partizione della tensione di fondo-scala che la batteria di comparatori, il cui numero esplode esponenzialmente con il numero di bit. Tutto questo tende a sposarsi poco felicemente con le attuali risorse messe a disposizione dalle tecnologie utilizzate per implementare i sistemi misti. Naturalmente infatti, data la complessità dei compiti che tali circuiti saranno chiamati a svolgere, la spinta tecnologica massima è verso standard di tipo VLSI (Very Large Scale Integration); solo così un intera logica di controllo microprogrammata può adattarsi a stare sul singolo chip di silicio. Ma le applicazioni VLSI ottimizzano i parametri legati alla densità dei transistori, a netto discapito della precisione dei dispositivi medesimi. Solo a titolo di esempio, sappiamo dalla consolidata teoria del progetto degli amplificatori operazionali quanto sia utile aumentare le dimensioni dei componenti di ingresso per ridurre l incidenza della dispersione delle dimensioni fisiche ottenute realmente, che pesano direttamente sui valori degli errori in continua; in un ambito di processo pensato per produrre milioni di transistori di dimensioni submicrometriche, questo bisogno di precisione è quanto meno mal soddisfatto, e snatura l intenzione originaria che ha portato a sviluppare il processo medesimo. Molto meglio sarebbe poter barattare precisione con velocità di elaborazione, possibilmente di un segnale già digitalizzato; il che è esattamente quel che accade nel caso dei convertitori A/D del tipo Sigma-Delta. Esso è il supporto ideale per i circuiti misti: data una qualsiasi operazione da compiere su un segnale, esso può essere presentato in ingresso ed ivi convertito da un ADC Sigma-Delta, occupando poco spazio e necessitando di una precisione circuitale poco spinta. In un secondo tempo l elaborazione dell informazione può quindi procedere interamente in maniera intelligente, digitale, a bordo del chip; alla fine i risultati si presenteranno al pin di uscita, riconvertiti in analogico di nuovo con la medesima tecnica Sigma-Delta. Il DAC utilizzato sarà ancora una volta velocissimo, e poco influenzato dalla probabile scarsa precisione dei suoi componenti analogici. -3-
12 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap Campionamento e conversione ADC di tipo convenzionale Gli schemi dei tre tipi di ADC accennati in precedenza lavorano, con gran precisione circuitale, alla minor frequenza possibile; essa è fissata dal teorema del campionamento di C. Shannon, ed è la cosiddetta frequenza di Nyquist: f N = f 2 0 laddove f 0 rappresenta la massima frequenza formante il segnale in questione, supposto essere limitato in banda. Detta f s =1/T s la frequenza di campionamento utilizzata, si avrà quindi f s =f N. E noto dalla teoria dei segnali che un campionamento eseguito su una forma d onda, nei tempi, corrisponde ad una ripetizione dello spettro di frequenza dell onda nel dominio coniugato; le repliche spettrali aggiunte si posizionano a frequenze multiple di f s : f 0 0 f N f s 2 f s 3 f s f 0 0 f s =f N =2 f 0 Figura Effetto della diversa frequenza di campionamento sugli spettri di segnale Dalla figura si comprende come il limite dato dal teorema di Shannon implichi in pratica che l onda di tensione venga campionata in modo sufficientemente fitto, tale da poterla -4-
13 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 ricostruire univocamente a partire dalla successione di campioni presi, senza scambiarla con altri segnali (inconveniente che viene definito equivocazione in frequenza, o aliasing). I dati analogici ottenuti dal campionatore (Sample & Hold) vengono passati agli ADC che provvedono a rappresentarli con un appropriato numero di bit, adatto a conservare l informazione di ampiezza prelevata con una precisione sufficiente; vale a dire, non così spinta da riprodurre anche le oscillazioni di rumore ad essa sovrapposte. Tale operazione va necessariamente compiuta con accuratezza, perchè l osservazione eseguita sull ingresso è priva di ridondanza; il flusso binario ottenuto è il minimo necessario a descrivere correttamente i dati in arrivo. L operazione di passaggio dalla rappresentazione a valori continui di un segnale x al suo equivalente digitale a valori discreti comporta necessariamente l introduzione di un errore di quantizzazione dato da e = x x quantizzato x quantizzato (discreto) e + / x (continuo) /2 x (continuo) 0 Figura Caratteristica ed errore di quantizzazione Il numero di livelli orizzontali disponibili in un ADC è pari a 2 N, dove N è il numero di bit in uscita. Dalla caratteristica di conversione statica A/D si capisce che la minima variazione del segnale in ingresso apprezzata dal convertitore vale, che è anche chiamato LSB (Less Significant Bit) perchè corrisponde, nell uscita binaria, ad una variazione della cifra meno significativa. Dell errore di quantizzazione è immediato calcolare la potenza: la sua -5-
14 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 distribuzione all interno del passo minimo è uniforme, se il segnale x è sufficientemente variabile nella dinamica a disposizione; avendo inoltre e media nulla si scrive: / / 2 e = e p() e de = e de = 12 / 2 / Distribuendo la potenza ottenuta sull intervallo di frequenza occupato dal rumore (cioè sull intero range f s, se il rumore si suppone bianco come da prassi) se ne ricava infine la densità spettrale di potenza E 2 (f) : E 2 ( f) = 2 e f s Sovracampionamento : lo scambio risoluzione-velocità Il concetto base per la comprensione del funzionamento di una catena di conversione del tipo Sigma-Delta è quello del sovracampionamento. A differenza degli ADC discussi precedentemente il convertitore Sigma-Delta opera ad una frequenza molto superiore ad f N, campionando l onda di tensione molto più spesso ed estraendone una sequenza di valori binari che è assai meno risolta in ampiezza, ma molto più fitta temporalmente. Il sovracampionamento, in linea di principio, è un concetto che si può applicare anche alle modalità di conversione convenzionali, cioè al caso consueto di campionamento seguito da semplice discretizzazione del livello letto, spesso denominato PCM (Pulse Code Modulation) in letteratura. Basta infatti elevare la f s molto al disopra del limite di Nyquist, ad esempio di un fattore OSR (OverSampling Ratio, o rapporto di sovracampionamento); si otterrà un calo proporzionale della densità spettrale di rumore. Per quantificarlo occorre però introdurre il Rapporto Segnale/Rumore e la sua misura in decibel, nonchè in bit equivalenti. Dato un ADC con tensione di fondo-scala V FS e N bit di uscita, si definisce SNR (Signal/Noise Ratio) il rapporto : -6-
15 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 Pot. segnale VFS / 12 SNR = = = 2 N 2 Pot. rumore ( V / 2 ) / 12 FS 2 N valutato solitamente iniettando nell ADC un rumore bianco che occupa la massima dinamica possibile, cioè il valore di fondo-scala del convertitore; di qui la seconda espressione fornita. La sua misura in decibel, unità logaritmica, è : SNR db = 20 log10 SNR Parlare di calo di 6dB di SNR significa dunque riferirsi ad un dimezzamento effettivo del rapporto. In termini di numero di bit, l espressione diventa : N = log SNR = 2 20 log10 SNR 20 log 2 10 = SNR db / 602. e dunque un calo di 6dB traduce una perdita di un bit nella risoluzione. Veniamo ora all effetto del sovracampionamento : il rumore di quantizzazione σ 2 q e 2, quantità fissa una volta deciso il numero dei bit da utilizzare, viene distribuito su un intervallo di frequenza di larghezza superiore al consueto f N (0 OSR f N ); la densità spettrale di potenza di rumore E 2 (f) cala allora in maniera inversamente proporzionale ad f s,e la risoluzione S/N guadagna perciò 3 db per ogni raddoppio della frequenza di campionamento. La banda su cui la E 2 (f) viene integrata resta invero costante, 0 f 0,masi hanno più dati di segnale a disposizione essendo calato T s ; da qui deriva il vantaggio netto. La formula che fornisce il valore del rumore che rimane nella banda del segnale lega la potenza del disturbo medesimo al tasso di sovracampionamento OSR: 2 f e n0 = 0 E ( f) df = 2 f0 = e / OSR, f 2 s essendo e 2 = 2 /12 la potenza del rumore di quantizzazione. -7-
16 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 Il guadagno ottenuto non è molto notevole nel caso considerato, se si pensa ai problemi squisitamente circuitali che siffatto aumento della f s comporta. Osserveremo però in seguito che il PCM è un caso particolare, degenere, di conversione Sigma-Delta, la quale invece ottiene vantaggi molto superiori dal sovracampionamento se applicata in modo adeguato Dal convertitore tracking al Sigma-Delta del 1 ordine Il circuito che si può considerare il progenitore del Sigma-Delta è il cosiddetto convertitore tracking, di cui presentiamo lo schema: IN OUT DAC UP-DOWN COUNTER CLOCK Figura Schema a blocchi del convertitore tracking In esso, il segnale in input viene continuamente confrontato con l accumulazione dell uscita; se essa è inferiore al dato ora presente al morsetto +, allora l uscita va mantenuta alta, per riportare la sua accumulazione (morsetto - ) più vicina ad IN; questo finchè il valore in reazione raggiungerà quello letto dall esterno, facendo ricommutare il comparatore che abbasserà l OUT; ciò farà decrementare il contatore sul ramo di reazione, ancora tentando di adeguarsi al dato IN, e così via. La retroazione negativa tende dunque a far inseguire l ingresso dall output del contatore, che ne rappresenta così una versione digitalizzata. In tale processo di inseguimento si ravvisano subito due comportamenti caratteristici che sono causa d errore: -8-
17 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 - la differenza di pendenza che può sussistere tra le due onde, continua e a gradinata, nel caso in cui l input varî troppo velocemente; l incremento del contatore/accumulatore è fisso nel tempo, e ciò può portare ad avere un ragguardevole errore a monte del comparatore. Questo fenomeno prende il nome di slope overload ; - l instabilità che caratterizza la conversione di un segnale costante IN; ogni valutazione del comparatore troverà infatti un valore troppo alto o troppo basso del segnale su -, generando una incessante commutazione di OUT. Questo introduce un granularity noise sul nostro valore convertito, ed inoltre non dà informazione sull esatta dislocazione della continua all interno del passo di quantizzazione; una media dell onda quadra in uscita restituirebbe comunque il valore a metà tra i due livelli, avendosi qui duty cycle pari al 50%. GRANULARITA' OUT IN SOVRACCARICO DI PENDENZA Figura Uscita caratteristica della conversione A/D tracking con errori L uscita del convertitore tracking è una replica quantizzata del segnale in ingresso. Si osservi però che l informazione in esso contenuta è conservata anche nel segnale che comanda il contatore, che ha l aspetto di un flusso binario ; basta integrarlo per recuperare IN. Questo è comodo nel momento in cui si debba per esempio trasmettere il segnale su una linea: non serve un bus da N piste, ma una pista solamente; il ricevitore all altro capo della linea a questo punto sarà costituito da un blocco di integrazione che completerà il trasferimento dei dati, restituendo IN nel suo aspetto originario. -9-
18 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 Quest osservazione consente di avvicinarsi ulteriormente al principio di funzionamento del Sigma-Delta, qualora si esamini il comportamento dell anello tracking come risposta in frequenza. Lo schema dell ADC tracking può essere rappresentato agevolmente adoperando la Trasformata Zeta; lavorando infatti ad istanti di tempo ben definiti, temporizzati dal clock che governa l Up/Down counter in retroazione, il sistema è rappresentabile con un equivalente a segnali campionati. Essendo il contatore un integratore dell uscita, esso avrà un polo in z=1; inoltre introdurrà un ritardo nell anello, per cui schematizzando: E(z) IN OUT X(z) Y(z) z z -1 z z -1 Figura Schemi a blocchi del convertitore A/D di tipo Delta dove l uscita è stata prelevata nel nuovo punto proposto, a monte del contatore. Denominando ora con X(z) l input, Y(z) l output e con E(z) l errore di quantizzazione introdotto dalla presenza della soglia del comparatore, si può scrivere : Yz () = ( Xz () + Ez ()) = Xz ()( 1 z ) + Ez ()( 1 z ) 1 z z Essendo peraltro 1-z -1 la trasformata del più semplice differenziatore discreto, si nota come segnale e rumore vengano egualmente formati in frequenza da questo circuito. La caratteristica di trasferimento è una derivazione alle differenze finite; in quanto tale, questo schema di modulazione dell uscita digitale prende il nome di modulatore Delta. In ricezione, la de-enfasi subita dal segnale utile va recuperata come detto mediante integrazione, che però enfatizzerà anche il rumore in banda; non si tratta certo di una tecnica efficiente per il passaggio A/D, insomma. -10-
19 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 Il passo successivo è quello di integrare X(z) prima che esso acceda all anello; così facendo si otterrà stavolta un dato in uscita del tipo: 1 z Yz () = Xz () + Ez () ( 1 z ) = Xz () z + Ez ()( 1 z ) 1 1 z che ha preservato a meno di un ritardo il segnale in ingresso, formando viceversa il rumore di quantizzazione (introdotto dalla presenza della soglia) verso la zona ad alte pulsazioni, ossia f N Stavolta, la stringa binaria trasmessa OUT non necessita di alcuna enfasi, e così è stata veramente ripulita dalla densità spettrale di rumore espulsa dalla banda base. Inoltre, è chiaro che il blocco di integrazione preliminare di X(z) può essere importato nell anello senza cambiare l espressione precedente; E(z) non lo vede, nel computo delle trasmittenze H(z) tra il comparatore ed Y(z). Avendosi già un integratore in reazione, esso può anzi essere spostato sul ramo di andata, continuando a mantenere tutti i trasferimenti come prima. E(z) X(z) z z -1 W(z) Y(z) Figura Schema a blocchi del modulatore Sigma-Delta del 1 ordine Si è allora ottenuto lo schema di principio per il modulatore Sigma-Delta (spesso abbreviato con l acronimo simbolico Σ ; Σ indica l integrazione iniziale e la differenziazione subìta dal segnale); nella letteratura inerente, con ordine del modulatore si definisce il numero di anelli di integrazione nidificati che esso contiene. In particolare, questo è un Sigma-Delta del 1 ordine e ad 1 bit, in quanto presenta un solo anello di reazione e utilizza un semplice comparatore, cioè esce con una sequenza monobit
20 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap Comportamento nei tempi del modulatore Sigma-Delta : una simulazione preliminare La teoria che regola il funzionamento di questi modulatori è tutt altro che banale; la maggior parte dei modelli utilizzati sono basati di conseguenza su approssimazioni lineari (in particolare quella che riguarda il quantizzatore), le quali vanno ad un certo punto del lavoro verificate mediante simulazione del sistema. E quindi opportuno non ritardare il ricorso al calcolatore, che già in questa prima fase può fornire un valido appoggio dando una sensazione di prima mano sulla qualità dei segnali in gioco in questo oggetto. La simulazione può essere tentata a vari livelli. Esistono quantomeno: un livello astratto, che consente di specificare i blocchi con parametri di tipo behavioural, ai morsetti esterni, senza modellizzarne nè i particolari, nè le eventuali nonidealità; ed un livello più circuitale, che permette un analisi puntuale di sfumature quali l effetto dello slew-rate o del prodotto guadagno-banda sulle prestazioni globali dello strumento. In questa sede è d uopo utilizzare la prima descrizione, per conservare una visione dall alto sull argomento; il mezzo informatico da usare è allora Simulink, un toolbox di Matlab della The MathWorks Inc., che lavora essenzialmente per blocchi. Essi possono essere predefiniti (ve ne sono parecchie decine) oppure realizzati dall utente, mediante delle chiamate a routine scritte appositamente nel linguaggio di Matlab. Si tratta allora di comporre lo schema prima descritto con le funzioni a disposizione : -12-
21 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 Figura Schema a blocchi Simulink del modulatore Sigma-Delta del 1 ordine Signal Gen. 1 è un generatore di forme d onda, capace di produrre sinusoidi, onde quadre, denti di sega e rumore bianco, a diverse frequenze e con differenti ampiezze; sempre però centrate attorno a 0 Volt, quindi si rende necessario aggiungere un offset che ci riporti nella dinamica di ingresso che avremo poi realmente a disposizione (0-3.3 V). Lo Zero Order Hold non servirebbe nemmeno, dato che l anello lavora molto più velocemente del segnale esterno, ma è in linea di principio obbligatorio per passare dal dominio continuo a quello discreto. Guadagno è posto ad 1, ma può essere variato per apprezzare i vari comportamenti del modulatore al variare del guadagno d anello. Vi è poi un gruppo di oscilloscopi, come Uscita sovracampionata, per consentire una visione in tempo reale dell andamento della simulazione. Il Quantizzatore è predefinito, ed ha una caratteristica di trasferimento data da una gradinata ad infiniti livelli; il passo centrale è inoltre simmetrico attorno allo 0, ragion per cui occorre limitare a priori l uscita del gruppo di accumulazione (sommatore Integratore e registro Accumulatore) per limitare il range utile delle gradinata, e spostare l intera risposta di 0.5 V per giungere al comportamento desiderato. Tali operazioni sono rispettivamente svolte da Saturazione 0/3 V edaoffset quantizzatore. La taratura della caratteristica di conversione dell ADC interno è una parte cruciale della stesura del circuito, poichè dal posizionamento delle soglie dipende la caratteristica di overload del Sigma-Delta, ossia la massima dinamica di input che non manda fuori linearità il loop. Ci si è così preventivamente assicurati della bontà dell ADC inserito, provandolo con una simulazione a parte: -13-
22 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 Figura Circuito Simulink di prova del quantizzatore Il risultato della prova è quello atteso; la scalinata risultante conserva in effetti la pendenza unitaria, che fa sì che il guadagno dell anello intero sia determinato dal solo blocco di moltiplicazione inserito a tal fine; e presenta inoltre quattro livelli di quantizzazione, simmetrici attorno ad 1.5 V. Figura Caratteristica a gradinata del quantizzatore ottenuta -14-
23 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 L ADC interno che si simula è da due bit, come il modulatore a monte del circuito decimatore oggetto della tesi. L irregolarità nelle pareti verticali del gradino è dovuta all interpolazione grafica che il programma esegue tra punti consecutivamente plottati; il segnale di prova utilizzato per lo sweep della dinamica è un onda triangolare. L esempio che proponiamo nel dominio dei tempi riguarda la conversione di un onda sinusoidale a 500 khz; si riporta qui l immagine fornita dai monitor disposti lungo l anello : Input : sinusoide a 500 khz V picco-picco Integrazione dell errore : - ingresso w(t) all ADC Flash interno Uscita sovracampionata a 200 MHz : - sequenza da 2 bit Figura Segnali prelevati lungo l anello del modulatore Sigma-Delta del 1 ordine durante la simulazione Essa lascia apprezzare come il segnale di input sia conservato nel valor medio dell uscita, mentre il rumore è ad alta frequenza; comportamento che si dovrà ritrovare poi anche nella successiva analisi nel dominio coniugato. In questo esempio introduttivo sono stati utilizzati due bit, in uscita, per rifarsi al nostro caso reale; del resto, anche i valori di tensione utilizzati e le frequenze operative sono quelle con cui ci si dovrà confrontare in seguito. Per poter avere una certa intelligibilità dell uscita, -15-
24 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 l uso di 4 livelli di quantizzazione sembra qui indispensabile; in effetti, il tasso di sovracampionamento (OSR) non è tale da provocare un calo decisivo del rumore in banda, e già dapprincipio si deve partire garantendosi una certa risoluzione in ampiezza, senza fare affidamento esclusivamente sull effetto del calo di bit-rate. Ciò accade perchè l input in questione è un segnale video, quindi a larga banda di per se stesso; un sovracampionamento di un fattore 24 porta da 8 MHz, frequenza di Nyquist per una ipotetica luminanza, a quasi 200 MHz! Nel caso molto più frequente di utilizzo per conversioni a frequenze audio, OSR maggiori di 128 sono comuni, con la conseguenza che anche l impiego di modulatori da 1 bit è sufficiente a conservare una risoluzione elevata Comportamento in frequenza del modulatore Sigma-Delta : analisi del rapporto Segnale/Rumore Le proprietà spettrali dell uscita del modulatore ricavate al paragrafo 5 sono le seguenti: -segnale : X(z) z -1, solo ritardato ma conservato in toto; - rumore : E(z) (1-z -1 ), formato con un profilo a sen(ωt). Proprio il profilo passa-alto che il rumore in uscita assume è la peculiarità fondamentale dei convertitori Sigma-Delta. La ricezione dei flussi binari di uscita sarà infatti eseguita da un filtraggio passa-basso, cioè da una media, per recuperare l ingresso rigettando il rumore; è di nuovo quell integrazione che già il convertitore tracking eseguiva nell anello medesimo. Il più semplice mezzo per togliere il disturbo sarebbe quindi un filtraggio con profilo idealmente a scatola nelle frequenze, che comunque è difficilmente approssimabile con circuiti semplici; ci si accontenta di solito di profili a seno cardinale ( sen(πf)/πf ). Il limite teorico comunque è fissato dal filtro ideale con frequenza di taglio ad f 0, limite di banda per il segnale da convertire; l integrazione del rumore dovrà dunque essere eseguita sino a tale limite, come da prassi consolidata. Si noti inoltre come il valore trovato del rapporto Segnale/Rumore dipenda direttamente dalla sua definizione, che fa riferimento ad un segnale che sfrutta tutta la dinamica disponibile dell ADC. Nel caso Sigma-Delta allora i valori di SNR trovati si riferiscono alle massime ampiezze di segnale fisicamente convertibili dal modulatore; per ampiezze inferiori il denominatore (R) del rapporto resta invariato, mentre è -16-
25 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 il numeratore (S) di SNR che cala proporzionalmente all ampiezza. Definito come range dinamico il rapporto in decibel tra massimo e minimo segnale convertibile, si avrà semplice legame lineare tra esso e SNR : SNR(dB) MDS Range Dinamico(dB) V FS Figura Andamento del Rapporto Segnale/Rumore in funzione della dinamica di ingresso per la modulazione Sigma-Delta (grafico bilogaritmico) Il minimo segnale convertibile è fissato dall essere SNR = 1 (in analogia al minimum detectable signal, MDS, dei rivelatori). Nel paragrafo 4 si è già parlato del caso PCM; configurazione che possiamo considerare alternativamente come un anello Sigma-Delta di ordine zero, un modulatore cioè senza reazione che si riduce al solo ADC flash interno. La formula che calcolava il rumore era: 2 f e n0 = 0 E ( f) df = 2 f0 = e / OSR f 2 s Passando all anello del primo ordine si ha allora una modifica nella formula per introdurre lo shaping del rumore; ricordando che z = e j2πft s il calcolo stavolta è: n 2 f E 2 e f sen 2 f π = 0 ( ) 4 ( πfts ) df 0 4 ( π f Ts ) df = e ( 2 f0ts ) f 3 s
26 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 da cui si evince come un raddoppio delle frequenza porti ad un miglioramento di SNR pari ad un fattore 2 3/2 ; sono 9dB, ossia circa 1.5 bit di risoluzione guadagnati grazie all aumentata bit-rate. Per capire ciò, basta passare dalla lettura della dinamica di funzionamento dell anello in trasformata Zeta a quella, ora più intuitiva dopo la simulazione, nel dominio del tempo. Il fatto che all uscita dell integratore, indicata con W(z), esista una trasformata Zeta pari a : 1 z 1 z Wz () = Xz () ( 1 z ) E() z ( 1 z ) = ( X() z E() z ) z z 1 z Tradotto nei tempi significa che il registro accumulatore tenta di PREDIRE il rumore introdotto dal quantizzatore flash interno; l integratore sa che l errore sommato prima di raggiungere l uscita è e i, e quindi prova ad abbatterlo dando in input all ADC il valore x i-1 -e i-1. Vadasèchesel erroree i introdotto fosse perfettamente bianco, per definizione sarebbe impredicibile e dunque vanificherebbe l azione di previsione; ma esso non è bianco, specialmente laddove la bassa variabilità del segnale di ingresso non consente all integratore di avere un output abbastanza variabile. La staticità dell uscita del registro accumulatore porta ad avere errore non decorrelato dal segnale, ma piuttosto sticky, appiccicoso, ossia lento; ragion per cui nell errore è possibile riscontrare una dinamica non casuale, magari addirittura una periodicità, che si deve tentare di riconoscere. Fatto ciò, il passo successivo è depurare la sequenza errore dalla dinamica identificata, cioè eseguire uno SBIANCAMENTO del rumore che consenta di lasciarne attiva la sola parte impredicibile, che sperabilmente non è dislocata in banda base (questo discorso è meglio formalizzabile in termini di decomposizione di Wold; ma per gli attuali fini introduttivi ciò non si rende indispensabile) Pattern noise per modulatori del 1 ordine Come è facile arguire, la predizione effettuata da questo anello è piuttosto inefficace; ci si potrà attendere allora che la risposta a segnali d ingresso lenti dell ADC Sigma-Delta introduca componenti di rumore non bianche, ma magari periodiche a bassa frequenza, e dunque estremamente fastidiose in applicazioni audio: è il cosiddetto problema del pattern noise. -18-
27 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 Una simulazione dell uscita del filtro al variare di un ingresso costante chiarisce immediatamente il concetto. Si osservi il comportamento del sistema quando l ingresso è d.c. e pari ad 1.8V (si riportano un centinaio di campioni, o taps, dell uscita) : Figura Pattern noise con Vin = 1.8 V costante In effetti, come evidenziato dalla trasformata Zeta, il segnale è presente illeso nella sequenza elaborata; si trova a bassissima frequenza, cioè insito nella media del segnale ottenuto; il calcolo : Valor Medio = 100 Uscita k=1 100 restituisce , come atteso. Il rumore sovrapposto al valor medio è però molto regolare; l E(z) delle formule non sarà certamento un termine bianco, ma piuttosto si evidenzierà la presenza di alcuni TONI di rumore distribuiti in frequenza. Alcuni di tali toni possono purtroppo terminare entro il range ove è presente il segnale, sporcandolo irrimediabilmente. Per fortuna, questa fastidiosa eventualità nel caso di costante 1.8V in input non si verifica. Si noti che il valore 1.8 può essere espresso come 9/5 = 1 + 4/5, e che quindi la periodicità di variazione richiesta all uscita era 5; l 1 in surplus viene sistemato dalla -19-
28 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 posizione del gradino di quantizzazione entro il quale si oscilla. Un colpo ogni 5, per una sinusoide campionata, è una locuzione che ha una traduzione diretta sul cerchio unitario del piano delle Zeta. Può essere interpretato come il risultato di una decimazione di una costante unitaria, quindi come il passaggio da un polo in z=1acinque poli, disposti a pentagono con un vertice sempre in z=1(per proprietà matematiche della trasformata Zeta meglio descritte nel prossimo paragrafo): il tono visibile risulta dunque da una composizione di sottotoni. Il grafico della trasformata del solo pattern noise in uscita, avendo già estratto la continua, è il seguente: esso si ricava prendendo campioni (2 14 ) del tipo sopra illustrato. Non interessando l ampiezza delle delta di Dirac, non si riscala il risultato della FFT Figura Spettro dell uscita del modulatore con toni di pattern noise (non è mostrata la componente continua) Se si passa da un valore di tensione da convertire esprimibile con una frazione con basso denominatore ad un altro più complesso da tradurre in un rapporto, si avrà un periodo più esteso delle variazioni, e quindi un pericoloso avvicinamento dei toni alla banda base (qui riconoscibile come π/osr, in termini di pulsazione). Questo caso si presenta giustappunto con una frazione del tipo 1/301, non riducibile; la conversione corretta richiederà un colpo -20-
29 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 ogni 301 transizioni del clock, sull uscita; quindi, l onda ripetitiva introdotta sarà circa 300 volte sotto la frequenza di campionamento f s, e presumibilmente nella banda di segnale. La sua potenza non è però paragonabile a quella del tono visto precedentemente, quindi i valori in ordinata della FFT saranno molto inferiori. Figura Pattern noise con Vin = 1/301 = 3.32 mv costante Il registro dell integratore ha una condizione iniziale che è stata accuratamente specificata a zero. E la distanza tra le variazioni che deve essere pari a 301; la prima di esse può avvenire ad un istante variabile, prima che l anello raggiunga la situazione di regime. E importante notare come spesso lo stato iniziale introduca in anello una continua che non si smorza; infatti G loop è unitario, e in ogni caso può sopportare variazioni di ±30% senza inficiare la funzionalità dello strumento. Una componente continua iniettata allo startup nell integratore può essere deleteria, e lo si vedrà con la prossima FFT che rispecchia un caso equipollente. Può per converso essere desiderabile come aiuto al cosiddetto dithering : volendo decorrelare il rumore dal segnale, una tecnica adottata è proprio quella di far circolare nell anello una continua, o un onda quadra, randomizzante ; tale segnale genera un veloce tremolìo in tensione (dither, appunto) che scrollerà l uscita abbastanza sovente, in modo da -21-
30 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 non permettere permanenze troppo lunghe dell output nel range dello stesso gradino di quantizzazione. Tornando al pattern noise provato poco sopra, se ne presenta la trasformata: sarà simile ad un pettine di Dirac, ancora; ma essendo le ripetizioni molto distanziate nei tempi, avranno un corrispettivo fitto nelle frequenze, cioè genereranno molti toni sinusoidali (per quanto piccoli): Figura Spettro dell uscita del Sigma-Delta con numerosi toni di bassa entità La spiacevole presenza di questo effetto di pattern noise, nonchè l eccessiva semplicità della predizione dell errore e i, indirizzano verso uno schema più complesso che preveda un potenziamento della valutazione dell errore futuro: un Sigma-Delta del 2 ordine Il modulatore Sigma-Delta del 2 ordine -22-
31 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 L aggiunta di un anello di reazione ulteriore, con il relativo integratore, aumenta la quantità di memoria presente nel sistema consentendo così una stima di e i basata sui due valori precedenti (si veda Candy in [1]). E(z) X(z) z z 1- z -1-1 z W(z) Y(z) Figura Schema a blocchi del modulatore Sigma-Delta del 2 ordine Il nostro convertitore è pensato per lavorare su un segnale video; come tutte le rappresentazioni di immagini quindi esso avrà alta correlazione tra i campioni vicini, e di conseguenza se il rumore non è ben decorrelato dal segnale risulterà essere correlato a se stesso; allora il miglioramento della predizione è potenzialmente foriero di grandi vantaggi. Passando di nuovo attraverso il paradigma della trasformata Zeta, si ottiene: 1 z loop int erno 1 Wz () = Xz () 1 z 1 + Ez () 1 1 z loop int erno z z loop int erno z 1 ( z ) 2 ( 1 2 1) ( 2 ) = Xz () z + Ez () ( z + z ) = Xz () z + Ez () z z z 1 1 = cioè, nel dominio dei tempi : y = ( x 2 e + e ) + e i i 1 i 1 i 2 i e Si spera allora che sia : e 2 e + e = 0 e = i i 1 i 2 i 1 un interpolazione lineare dei campioni di rumore (il che era prevedibile; l ADC del primo ordine lavora come un mantenitore, ai fini della predizione). La formatura del disturbo -23- i + e 2 i 2, ossia si esegue
32 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 migliora sensibilmente; si passa da uno zero del primo ordine, in banda base, ad uno zero del secondo ordine. I calcoli del rapporto Segnale-Rumore diventano: 2 ( ) f ( 4 π s ) 0 2 s ( 2 π s ) 2 f n E f sen ft df e T sen ft 0 0 = ( ) ( ) = ( ) f 2e π ( π f Ts ) df = e ( 2 f0ts ) f 5 s Un aumento della frequenza di campionamento porta ad un allontanamento del sen 2 di rumore dalla banda del segnale; ciò è più efficace del caso del primo ordine, nella misura di 15 db per ogni raddoppio di OSR; ritradotto in bit, significano 2.5 bit per il passaggio f s 2 f s.. Figura Profili in frequenza del segnale e del rumore per A/D Sigma-Delta del 2 ordine Il miglioramento si paga in termini di stabilità; l anello semplice reggeva variazioni di guadagno da 0.7 a 1.3 funzionando correttamente, e comunque restava stabile fino ad un gain uguale a 2; i due loop nidificati tollerano al massimo variazioni del 5% sui guadagni. Le amplificazioni però ora sono due, fornendoci un grado di libertà in più (Candy-Temes, [2]). -24-
33 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 Un altro inconveniente che si subisce è la riduzione della dinamica utile per il segnale. La rete di predizione è più efficace, ma occupa una dinamica superiore rispetto ai ± /2 necessari ad e i. Laddove nell anello singolo l uscita variava sempre tra due livelli adiacenti di discretizzazione, ora con il loop doppio essa può mostrare salti di livello; comportamento sintomatico del fatto che l ingresso alla scalinata è stato sollecitato da una variazione robusta, indotta dalla somma algebrica di e i-2-2e i-1,che può raggiungere 3/2. Siccome l overload del quantizzatore è da evitare, perchè corrisponde (linearizzando) ad una perdita di trasmittenza nell anello saturato e quindi ad un aumento secco del rumore (non più predetto), occorre limitare a priori la dinamica dei segnali da convertire presentati al primo sottrattore dell ADC Sigma-Delta. Da ultimo, le imperfezioni degli integratori (lossy integrators) provocano perdite di memoria che peggiorano la qualità della predizione; però, per notare il build-up dell errore provocato da questa non-idealità, occorre avere transitori in input veramente lentissimi. La reiezione del pattern noise, fortunatamente, cresce assai con l aggiunta del secondo anello; anche con ingressi costanti il sistema decorrela bene il disturbo di quantizzazione dalla sua causa generante. Sia detto, per inciso, che aumentare ancora il numero di loop è difficile: un ADC Sigma- Delta del 3 ordine è composto da tre integratori ed un ritardo in retroazione, e mostra quindi forti problemi di stabilità. Esistono altre tecniche per acquisire caratteristiche ai morsetti del terzo ordine, e ordini superiori: sono denominate MASH (o metodi Multistage) e si basano sul prelievo di segnali intermedi tra un anello e l altro, nonchè sulla ricomposizione delle uscite binarie per mezzo di blocchi digitali. Presentano comunque anch esse inconvenienti di matching tra le funzioni di trasferimento digitali e quelle dei blocchi analogici, che devono essere ben fissate per impedire una trasmissione degli errori tra i circuiti in cascata Evidenza spettrale delle proprietà di shaping sul rumore Visto tutto ciò, resta da risolvere il problema di visualizzare l effetto del filtraggio eseguito dall anello Sigma-Delta sul rumore introdotto all altezza del quantizzatore; e questo -25-
34 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 va effettuato per anelli di ordine 1 e 2, onde confrontarne visivamente le caratteristiche. Occorre di conseguenza iniettare un E(z) il più possibile bianco, per non rischiare di avere una successione di toni sinusoidali bensì una fascia uniforme di rumore che lasci intravedere l effetto dello shaping. In ultima analisi, occorre decorrelare E(z) da X(z) anche per un Sigma- Delta del 1 ordine: ma allora si può inviare direttamente del rumore bianco in ingresso, a cui l ADC non può certamente infliggere pattern noise! Si acquisisce in tal modo la sicurezza che E(z) ha spettro uniforme, e quindi subisce in pieno la formatura verso le alte frequenze. Dato poi che Y(z) = X(z) +...[E(z) formato], l ingresso va sottratto al risultato finale, al fine di evitare di ritrovarsi la fascia iniettata presente anche alle basse frequenze. Se ne ricava una riprova grafica evidente delle caratteristiche spettrali dei convertitori Sigma-Delta : - anello del 1 ordine: inviluppo del rumore del tipo sen(ωt) Pulsazione Omega Figura Trasformata del rumore simulato per anello del 1 ordine - anello del 2 ordine : inviluppo del rumore del tipo (sen(ωt)) 2 =1-cos(ωt/2), a coseno rialzato: -26-
35 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap Figura Trasformata del rumore simulato per anello del 2 ordine In ambedue i casi, la trasformata del rumore presentata ha solo scopo illustrativo; ci interessa l andamento, in particolare alle basse frequenze, dove il fitting è stato curato con maggior attenzione. Essendo osservazioni di una sola realizzazione del processo stocastico di uscita, esse hanno bassa confidenza statistica, ed andrebbero mediate con tecniche passa-basso per aumentare quest ultima; segnatamente, si potrebbe ricorrere alla teoria del periodogramma, e utilizzare il metodo di Welch. Esso si esplica spezzando la sequenza di ingresso in più tronconi, trasformandoli e quadrando la FFT (secondo la definizione di periodogramma, H(z) 2 /N ), regolarizzandola con una finestratura e mediando infine tra loro gli spettri così ottenuti. La riprova dell esistenza di contatti con l asse delle ascisse, rispettivamente del primo e del secondo ordine, è purtuttavia stata fornita con più chiarezza in questo modo. Il fatto che i dati che nelle tecniche ADC convenzionali erano unici ed indispensabili ad una ricostruzione dell ingresso ora siano rappresentati nascosti in interi treni di bit ad alta bit-rate, ha fatto infine comprendere come gli errori introdotti dalle imperfezioni circuitali sulla singola transizione pesino molto meno, essendo compensati dai filtraggi successivi. Per giunta, l andare a quantizzare l uscita dell integratore in modo tanto manicheo è di per sè una garanzia di robustezza rispetto a piccole variazioni dei parametri della rete. -27-
36 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap Cenni alla realizzazione circuitale L implementazione fisica di un modulatore Sigma-Delta si presta molto bene all uso dei filtri di tipo switched capacitors. Il blocco di integrazione, qualora realizzato con un amplificatore operazionale con R in input e C in reazione, avrebbe sofferto del mismatch dei parametri tra i due componenti, certo così diversi; poter costruire invece un resistore equivalente servendosi di una capacità garantisce la superiore precisione ottenuta con design del tipo a centroide comune. Gli interruttori che servono in questo tipo di applicazione sono transistori MOS, che poi costituiranno il mattone elementare della parte digitale di filtraggio a valle; l operazionale medesimo ha requisiti che giustificano una sua costruzione a MOSFET; da ultimo, trattandosi di un circuito di interfaccia verso una logica, può esso stesso già agire da Sample & Hold, condensando in sè le funzioni di campionamento e conversione. Lo schematico consterà quindi di una sezione di ingresso che leggerà alternativamente il dato continuo in arrivo, e invertendolo quello continuo in reazione; un operazionale con capacità in retroazione, che integrerà tale errore d anello; seguito da una sezione di conversione A/D che potrebbe consistere di un solo comparatore, oppure di un semplice convertitore flash da pochi bit; la sua uscita è la stringa binaria che viene effettivamente trasmessa a valle, e che va anche riportata all ingresso previa conversione DAC (si confronterà infatti con un input scalare, ovviamente). Nel caso di anello del 2 ordine, tale disposizione schematica risulta essere: C C C 1 2 C 1 2 In ADC z -1 DAC Figura Esempio di realizzazione a switched-capacitors di un modulatore Sigma-Delta del 2 ordine Out -28-
37 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap Decimazione del segnale digitale sovracampionato Dalla precedente, sommaria rivisitazione delle proprietà peculiari dei convertitori Sigma-Delta si deduce senz altro la necessità di una catena di elaborazione digitale a valle del filtro a switched capacitors. L uscita dell anello nel nostro caso è a 2 bit, e velocissima; contiene in sè tutta l informazione desiderata, ma anche parecchio rumore seppure traslato in frequenza. Non è certamente fruibile da un DAS (Data Acquisition System) convenzionale; già si è parlato di come gli ADC tradizionali escano con sequenze di parole binarie, a molti bit, rinnovate con frequenza poco superiore a quella di Nyquist. Il segnale grezzo che esce dal blocco flash interno va quindi sottoposto ad un processo di estrazione dell informazione, che si tradurrà in un baratto tra velocità (da calare) e numero di bit di ogni parola (da alzare). In nuce, quel sovracampionamento che costituiva la premessa alla eccezionale robustezza dell anello ora non ha più ragione di essere mantenuto, dal momento che si lavora con oggetti digitali e quindi immuni da errore; servono piuttosto i 2.5 bit di risoluzione in ampiezza garantiti da ogni raddoppio della f s rispetto al suo valore minimo teorico. Proprio per questo è opportuno non parlare di convertitore A/D Sigma-Delta tout-court, quanto piuttosto di modulatore 1 Sigma-Delta e di catena di conversione A/D di tipo Sigma-Delta. La funzione di abbassamento della frequenza operativa in ambito digitale prende il nome di decimazione: da un bitstream rapido si prende un campione ogni N, rallentando del medesimo fattore la sequenza a valle del blocco. Tale azione non è indolore, nel dominio delle frequenze: se l operatore z -1, infatti, rappresenta il ritardo unitario a 200 MHz, ad una bit-rate decimata a 50 MHz esso vale 4 dei ritardi precedenti. Potremmo chiamare questo nuovo ritardo con Z -1, laddove : Z = z N La trasformata Zeta dell uscita del loop Sigma-Delta è invariata, formalmente; a meno della sostituzione di z con Z -N. Questo significa che da ogni polo se ne generano N, equidistanziati in fase sulla circonferenza individuata dal modulo (elevato ad 1/N) del polo originario e centrata nell origine degli assi complessi. Dove prima si incontrava una sola 1 Un modulatore, oggetto usato per le Telecomunicazioni, ha due ingressi : si pensi alla modulazione di ampiezza AM, o di frequenza FM. In entrambi i casi l un segnale interagisce con il secondo, trasformandolo. Parlare di modulatore Sigma- Delta significa invece fare riferimento alla modulazione della stringa binaria di uscita sulla base dell ingresso, come si modula una portante QPSK con un flusso binario; si scambia cioè l effetto con la causa, usando la figura retorica della metonimìa. -29-
38 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 replica spettrale del segnale e del rumore, ora se ne incontrano N; il pericolo di commettere aliasing è quindi aumentato, consistentemente col fatto che il segnale di partenza viene ora osservatoinmenopunti. L aspetto della sequenza discreta è passato da un flusso fitto ad uno più rado; dualmente, nelle frequenze si avrà uno spettro del segnale, e del suo rumore intercalato, che tende a collassare verso l origine dell asse delle ascisse, divenendo più stretto. Graficamente, avendo già presente la forma delle onde con le quali ci confronteremo: Figura Effetto della decimazione sugli spettri in uscita da un anello Sigma-Delta In un caso come quello illustrato la decimazione è di un fattore 2. Solo un picco di rumore è stato riportato, per non congestionare il grafico. Se si decima invece di un fattore N = 4, si avrà la presenza di ben tre repliche spettrali che si immergono nel rumore di modulazione della replica ferma in banda base; si produce così un deterioramento del segnale inaccettabile per gli standard audio ed anche per quelli video. Occorre allora predisporre un blocco di filtraggio, digitale, immediatamente a monte della sezione di downsampling. La forma del filtro deve soddisfare due requisiti fondamentali: - essere adatta a ripulire dal rumore le bande adiacenti alle frequenze alle quali scenderanno le repliche; -30-
39 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 - avere una implementabilità numerica non troppo complessa, per non incidere eccessivamente sulla difficoltà della progettazione successiva. La prima idea realizzativa viene dalla teoria delle misure simultanee, usata nei dispositivi numerici per l elaborazione dei segnali. Prendere un campione su N senza previo filtraggio significa perdere informazione netta; se però si fa in modo di leggere i campioni di ampiezza ed i campioni (ad esempio) della derivata dell ampiezza, anche leggendo la sequenza più lentamente della frequenza di Nyquist la ricostruibilità dell onda è garantita. Più in generale: campionare una generica funzione che abbia una qualche forma di memoria dei campioni adiacenti non letti, oltre alla mera magnitudo del segnale, riporta il loro contenuto informativo nella catena. E come se si avesse a disposizione una successione di combinazioni lineari dei taps, che fornisce i termini noti per scrivere il sistema di equazioni che l ha generata; per riottenere i valori dei campioni combinati basta invertire il sistema lineare. Nel nostro caso basta collezionare l informazione relativa al rumore, supposto bianco, che affligge i taps intermedi; si può allora pensare di mediare N campioni tra una lettura e la successiva. In effetti, nel dominio trasformato all operazione : y n = N 1 x i= 0 N i N 1 i z i= z Yz () = Xz () = Xz () N N 1 z N 1 corrisponde un abbattimento del rumore alle varie frequenze del tipo : sen( πfnts ) Y( f) = X( f) N sen( πft ) s Il blocco precedente è del tipo FIR (Finite Impulse Response), quindi comodo da realizzare e con bassa latenza di risposta. Il seno cardinale è periodico, trattandosi di segnali discreti; e presenta proprio N zeri in ogni periodo di 2π, preserva cioè dal rumore le zone che alloggeranno le repliche in seguito. L aspetto della sua risposta all impulso è quello di N campioni alti 1/N e poi di un pad infinito nullo; per analogia con un pettine, tale categoria di filtri è denominata COMB FILTERS. -31-
40 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap Scelta dell ordine e del fattore di decimazione Come esplicitato nel tutorial di Crochiere-Rabiner ([3]), in genere ogni fase di decimazione ammette una implementazione più semplice se svolta in più passi. Il primo stadio dovrà essere veloce, ma se non cala la f s di molto potrà anche essere un filtro poco selettivo in frequenza, e quindi semplice; l ultimo filtro potrà viceversa avere requisiti molto restrittivi in termini di ripple e intervallo di transizione tra stop- e pass-band, perchè ormai opera su una sequenza lenta. L ottimizzazione del carico computazionale della catena di decimazione passa allora necessariamente attraverso il sezionamento dell azione, da compiere in almeno due fasi successive. Dovendo essere il nostro prodotto finale un commodity system da piazzare su chip che svolgono altre funzioni, si è adottato uno schema a due stadi di decimazione: un FIR (Finite Impulse Response, all-zeros) veloce ed un IIR (Infinite Impulse Response, all-poles) più lento. Il primo si deve occupare solo di eliminare il noise a crescita lenta; il secondo ne raffina l azione e si occupa anche delle distorsioni introdotte vicino alla banda base. Partendo da un fattore di sovracampionamento pari a 25 (200 MHz / 8 MHz di Nyquist per il segnale di tipo televisivo), è opportuno scendere di 24 volte per conservare un poco di margine antialiasing: e si dimostra appropriato dividere la decimazione in un fattore 4 per il FIR ed un 6 per l IIR. Seguendo infatti la filosofia a comb filters, si nota che un limite inferiore per la frequenza decimata dal FIR è 4 f N. Scendendo ulteriormente infatti la quantità di rumore riportata in banda dal refolding - per quanto efficace sia stata la riduzione del medesimo grazie al primo minimo - tende a salire sensibilmente (si confrontino i grafici forniti da Candy-Temes ancora in [2]); fino a 4 f N si sconta invece un peggioramento pressocchè costante di 0.14 db. Il leggero taglio che il lobo principale del sinc inferisce al segnale X(z) viene per giunta limitato entro 2.75 db di calo; inoltre, la reiezione ai disturbi in alta frequenza che potrebbero venire immessi in banda base, data dal rapporto tra l attenuazione data dal sinc alle due frequenze corrispondenti che si sovrapporrano poi nel folding, è di 48 db. Lavorare a 200 MHz con tale filtro non è però agevole: è opportuno spostare la complessità maggiore dove le frequenze sono già calate. Inoltre la struttura a comb filter implementa quella operazione di media che abbiamo visto essere necessaria per recuperare il segnale X(z) uscente da un modulatore Sigma-Delta; ma essendo i campioni di h(n) uguali ad -32-
41 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 1/N, il filtraggio richiede uno stadio finale di divisione per 1/N dei valori calcolati, per avere guadagno unitario; e la divisione si riduce ad uno shift binario, se N è una potenza di 2; meglio dunque scendere solo di un fattore di decimazione 4 con lo stadio FIR, giungendo ad una frequenza intermedia f d di campionamento pari a 6 f N. Il sinc alla prima potenza dato dalla semplice operazione di media ha comunque dei lobi laterali che sono relativamente alti; ricordando che lo shaping del rumore è del secondo ordine nel nostro caso, è desiderabile avere una decrescenza dei lobi del filtro almeno del terzo ordine, in maniera da contrastare con successo la crescita di 20 db/decade dello spettro di disturbo. Per confermare quest intuizione è utile però procedere in modo più formale (come fatto da Candy in [4]). Nota la trasformata Zeta del rumore uscente dal modulatore Sigma-Delta, ad essa si applica il filtraggio a sinc di ordine pari almeno all ordine dell anello; lo spettro ottenuto va poi ridiviso per il profilo del sinc per riportarlo indietro, all uscita dell anello, laddove esso potrà essere interpretato come rumore prodotto da un ADC flash interno avente più bit di quello reale. Indicati con K l esponente del sinc e con L l ordine del loop, si ottiene: K=L: 1 L 1 z N'( z) = E( z)( 1 z ) 1 z N 1 K 1 N K dopo la semplificazione, passando ad esprimere le frequenze con z = e j2π ft s, e noto che il rumore bianco ha e = / 12 di potenza da trasformare in densità spettrale unilatera : N N'( f) = e 2Ts 2 ( π K s ) N ( sen fnt ) 1 stavolta l estensione in frequenza è infatti f =. Per tornare a monte del decimatore 2NT s occorre ridividere per il seno cardinale periodico, ottenendo infine l espressione del rumore equivalente : K ( ) N' equiv. = e 2 NTs 2 sen( π fts ). K -33-
42 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 Quest ultima va confrontata con quella fornita in precedenza al paragrafo 9; se ne noterà l immutata forma e l aggiunta di N, che implica un peggioramento del rapporto segnalerumore. Agli effetti esterni tuttavia è utile rimarcare che N (f) è analogo a quello di un Sigma- Delta con passo di quantizzazione pari a /N K ; ecco allora trovata una maniera per determinare il numero di bit di risoluzione all uscita dal decimatore FIR. K=L+1: N 1 z L z N'( z) = E( z) L z N N 1 1 z 1 L 1 z = E'( z) mediato ( 1 z ) 1 z apettine N L N = ed il rumore ha già subìto un abbassamento da parte del filtro; avendone mediati N campioni, il calo di potenza sarà proprio N, ossia sul valore quadratico medio N : 1 N L 2Ts N L N'( f) = e ( 2 sen( πfnt L s )) = N N 1 L = e 2T sen fnt N ( 2 ( π )) s L s Stavolta il passo dei livelli di quantizzazione del Sigma-Delta equivalente vale N/N K. Il rumore equivalente è : L sen( fts ). = ( ) π 2 2 π N' e T sen( ft ) equiv s s sen( πfnt ) che valutato a bassa frequenza non è praticamente diverso dal rumore originario. Si conferma quindi la bontà dell idea di utilizzare un ordine di decimazione K = L+1, cioè nel nostro caso K = 3. Tale scelta è pressocchè universalmente adottata nelle catene di filtraggio e downsampling successive agli ADC sovracampionati; i vantaggi portati dall uso di caratteristiche passa-basso di ordine superiore non bilanciano la complessità aggiunta, ed anzi tali filtri tendono a deprimere troppo il segnale a bordo-banda. In definitiva, la h(n) usata sarà data dalla convoluzione di 3 pettini da 4 campioni ciascuno, cioè da una composizione di parabole : s -34-
43 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 Figura Risposta all impulso h(n) e profilo in frequenza del decimatore a comb filter del 3 ordine Una misura del ritardo introdotto dal filtraggio è quantificabile con la posizione del baricentro del grafico di sinistra; essendo simmetrico la media vale senz altro 4.5 campioni (22.5 ns). Lo spettro della trasformata, includendo anche la normalizzazione ad 1 del guadagno, ha espressione: K N 1 1 z 1 sen( fnts ) sen( fts ) Hz () = H( f) H( f) K = K N z N π 1 = sen( ft ) 4π π 4 sen( πft ) s K s 3 Per inciso, in tale condizione di ottiene: Frequenza intermedia di decimazione : 50 MHz Ordine del comb filter adottato K = L+1 : 3 Fattore di decimazione N : 4 Aumento del noise in banda : 0.09dB Taglio del segnale al bordo della banda : 1.35dB Reiezione ai disturbi in alta frequenza : 58dB -35-
44 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 La bontà dei parametri sopra esposti dimostra che una complicazione superiore della forma del filtro non paga, a questo punto; anche perchè la egualizzazione del taglio introdotto e la pulitura definitiva del segnale sono compito della sezione IIR, decimante di un fattore 6, a valle. In conclusione, l azione del filtro si esplica così, abbattendo con degli zeri i profili di rumore laddove arriveranno le repliche del segnale dopo la decimazione: Figura Effetto del filtraggio pre-decimazione sulle repliche spettrali Numero di bit in uscita dal decimatore FIR Definito il tipo di decimatore da adottare, resta ancora da capire quanti bit utili escono da esso. Trattandosi di un filtro digitale, la minimizzazione di questa dimensione ha riflessi estremamente condizionanti sull intero progetto, e va studiata con attenzione. La questione possiede oltretutto due aspetti differenti ma complementari: esiste un numero di bit logici, traduzione del rapporto segnale/rumore ottenibile all uscita dall apparecchio, ed un numero di bit fisici, legati alla correttezza di rappresentazione del segnale in uscita medesimo. -36-
45 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 I) Il primo aspetto è già stato in parte esaminato. Nel momento in cui si è scelto l ordine 3 per il seno cardinale, la giustificazione addotta si è basata su una valutazione del rumore a valle del decimatore; ragion per cui, essendo noto che il segnale passa praticamente indistorto, già si conosce il SNR. Il passo di quantizzazione, usando K = L+1, fu visto calare di un fattore N/N K ;daib bit originari c è bisogno dunque di passare almeno ad una rappresentazione che sia in grado di tenere conto del potenziamento della risoluzione, cioè al solito : K 12 / n= b+ log ( N ) = b+ ( K 1/ 2) log N 2 2 : Per motivi di efficienza della discretizzazione con 2 bit, si dimostra che in realtà bastano n= b + ( K ) log N 1 2 per contenere l informazione pulita a valle del decimatore. Nel caso monobit si sa infatti che l atto di sommare b = 1 non è un abuso, dato che la dinamica disponibile in entrata al comparatore flash è completamente occupata; è necessario altresì ricordare che nel caso multibit le caratteristiche della gradinata vedono i passi estremi utilizzati in modo ridotto rispetto a quelli centrali, e quindi che sommare b = 2 stavolta è una parziale sovrastima delle capacità dell ADC. Nella nostra situazione, con N = 4, b = 2 e K = L+1 = 2+1 = 3, si ricava n = 6 bit. Per altra via, si può ricalcolare SNR ripartendo dai primi principi: se il segnale di test è sinusoidale di picco A, come di consueto per questi conti, si scriverà : ( SNR) 2 = A 2 2 2A b f π fs 2 52 / 2 2 ( 2A) A n 2 12 dove la seconda espressione converte SNR nel numero di bit equivalenti n, essendo come già assunto: -37-
46 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 n= log 2 SNR Proseguendo nei calcoli si ricava allora : fs n= b+ 5/ 2 log f 0 La correzione dovuta all overloading della scalinata è da apportare anche qui; concerne il fatto che i passi estremi non sono utilizzati appieno, per cui il termine (2A)/2 b va piuttosto riscritto come (2A)/(2 b -1). La stima corretta della risoluzione va allora quantificata in questo modo: b fs n = log 2( 2 1) + 5/ 2 log f 0 con un termine che pesa apprezzabilmente perchè 2 b è solo 4. Tale formula va valutata alla frequenza intermedia, tra FIR ed IIR, ossia con un rapporto tra frequenza di campionamento e di Nyquist che vale 6; si ottiene n = 6.34 bit, contro un valore di n = 6.76 bit ottenuto senza la correzione introdotta. Con la medesima espressione è anche possibile valutare quale sarà la risoluzione globale acquisibile al termine di tutta la cascata di decimazione, dopo la parte IIR; il responso è di db (ottimistico; le simulazioni ad alto livello suggeriscono di considerare un valore più realistico di circa 10 bit). Infine, la criticità dell analisi di questo parametro è così elevata da giustificare anche un ulteriore riprova, naturalmente appoggiandosi ad una simulazione. Non essendo agevole l utilizzo di Matlab per una accurata integrazione del rumore in banda base, si è fatto ricorso ad uno strumento informatico che è stato creato appositamente per lo studio dei modulatori Sigma-Delta e delle relative cascate di filtri decimatori: TOSCA (Tool for Oversampled Switched-capacitor A/D Converter Analysis), sviluppato all Università di Pavia ([5]; si veda anche l Appendice 1). -38-
47 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 L analisi desiderata prevede una valutazione degli SNR per varie ampiezze delle sinusoidi di prova in ingresso. Come già illustrato, lo sfruttamento della dinamica migliorerà all aumentare del picco dell onda, e così sarà per SNR fino a raggiungere la condizione di overload in cui l integratore tenderà a saturare degenerando la qualità del funzionamento del Sigma-Delta. Per inciso, va detto che tale peggioramento avviene precocemente per anelli del primo ordine (la cui scarsa dinamica di quantizzazione è per giunta condivisa con la predizione di e i ), mentre preoccupa meno per i multibit, più tolleranti rispetto a tale condizione limite. Allorquando il segnale sfrutterà tutta la dinamica, arrivando a leggere l intera scala del quantizzatore, sarà lecito confrontare i punti ottenuti con i risultati teorici dedotti sopra. La spazzata delle ampiezze è specificata in unità logaritmiche per compatibilità con la letteratura esistente in argomento. L integrazione della densità spettrale del rumore è stata eseguita solo nella banda 0 f 0 di interesse del segnale, quindi tra 0 e 4 MHz; la successione di punti rappresentativi del rapporto Segnale/Rumore è stata graficata con l ausilio di XPLOT, fornendo l andamento: Figura Simulazione TOSCA del Rapporto Segnale/Rumore in funzione dell ampiezza dell ingresso -39-
48 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 Si tratta di grafico rettilineo, come previsto al paragrafo 7; il massimo della curva vale db; ogni bit aggiunto conta per 6 db, allora dalla simulazione si stima un incremento di circa 6.34 bit totali, in ottimo accordo con la previsione teorica. In conclusione il numero di bit logici ammonta a circa 6.3. II) Il secondo aspetto del problema concerne il numero di bit FISICI. Il computo è molto più diretto: dalle due linee binarie pilotate dall ADC flash interno all anello può uscire al più il valore 11 binario, cioè 3. Nel caso pessimo, può aversi una stringa di valori 3 che occupa tutti i campioni della risposta all impulso finita del filtro FIR; l uscita è allora 3 (guadagno FIR) = 3 64 = 192. Il fattore 1/N K di riscalatura della h(n) del filtro non può essere implementato a monte della sommatoria di campioni, perchè questo implicherebbe ovviamente l uso di aritmetica su numeri frazionari, in luogo della semplice aritmetica sugli interi; esso verrà posto dopo il filtro, o addirittura conglobato in un blocco divisore dopo l IIR. Nel caso attuale oltretutto si deve eseguire una divisione per 64 = 2 6, che si trasforma in un semplice shift binario di 6 posizioni e non presenta affatto elevata complessità circuitale. Per rappresentare il numero 192 occorrono 8 bit, in quanto 2 8 = 256. Purtroppo non è possibile adottare il provvedimento spesso usato in cascata ad anelli monobit, che producendo uscita 64 e non 192 possono tollerare l uso di un bit in meno del dovuto (6 bit si mappano in 0 63, e si perde un solo livello post-decimazione; saturazione tranquillamente accettabile). In conclusione il numero di bit FISICI ammonta ad 8 bit. La potenza di rappresentazione è in eccesso al rapporto Segnale/Rumore, inferiore a 7 bit, ma un arrotondamento NON può essere introdotto già adottando strutture da 7 bit nel corpus della decimazione! Questo perchè una tale operazione equivarrebbe ad una iniezione di rumore bianco netto nella catena, come ogni round-off. In più, essendo 8 una potenza di 2, gli oggetti binari da 8 bit (quantità nota come byte) sono ideali da trattare, addirittura a componenti discreti Simulazioni dell intera catena A/D Sigma-Delta Ora la catena di conversione A/D basata su modulatore Sigma-Delta è caratterizzata appieno. Dal primo blocco esce il segnale originario con una forte presenza di rumore, concentrato alle alte frequenze; l uscita inseguirà allora in media l ingresso, con forte disturbo -40-
49 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 velocemente variabile sovrapposto. Il disturbo ha dinamica non più limitata ad un gradino di quantizzazione per volta, ma ne può spazzolare anche due (o più, ma solo in overload). Se nel segnale in oggetto è presente una sinusoide ad 80 KHz, con ampiezza di 1.4 V, la catena si comporta così: Figura Uscita del modulatore Sigma-Delta secondo Simulink - Input sinusoidale Ogni campione è distanziato 5 ns dall altro. L ampiezza dell ingresso provoca un poco di saturazione ai picchi, che non si nota dalla figura sopra ma si apprezza meglio nel prossimo grafico. Il secondo blocco FIR rallenta di un fattore 4, scendendo a 50 MHz, e aumenta la risoluzione in ampiezza fino a più di 6 bit; è ragionevole allora attendersi di rivedere l input descritto con una precisione di una parte su 2 6 = 64, e quindi già abbastanza pulito. -41-
50 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 Figura Uscita del primo stadio decimatore FIR 4:1 - Input sinusoidale Il terzo blocco ha struttura IIR che va scelta anche per equalizzare le imperfezioni introdotte dal FIR; a puro livello illustrativo si è qui utilizzato un filtro di Butterworth, del 4 ordine, con frequenza di taglio posta a 0.1 volte la f s (che è ancora 50 MHz, all atto del filtraggio); l uscita è sottocampionata del fattore 6 che porta agli 8.33 MHz finali. La risoluzione in ampiezza è arrivata all apice, ai quasi 11 bit finali, quindi il rumore rms influisce per una parte su all incirca 2000 dell ampiezza picco-picco. Figura Uscita del secondo stadio decimatore IIR 6:1 secondo Simulink - Input sinusoidale -42-
51 La catena di conversione A/D Sigma-Delta ed il ruolo del decimatore - Cap. 1 La lentezza dell uscita nel variare a scatti non lascia apprezzare completamente la precisione della conversione, che si intuisce comunque dalla prima figura. Infine è bene chiarire un apparente incongruenza, che può essere spiegata invocando la non-linearità della relazione che lega il SNR alla f s. Può in effetti sembrare strano che si esca dal blocco di conversione A/D con 2 bit ed una bit-rate di 200 MHz, per poi ritrovarsi con 8 bit viaggianti a 50 MHz, per terminare con circa 10 bit quasi alla f N, ossia 8 MHz. Il throughput non sembra conservarsi, nelle varie sezioni della catena di trasformazione dati : 2bit 200 MHz = 400 Mbps 8bit 50 MHz = 400 Mbps 10 bit 8MHz=80Mbps ma questo non accadrebbe nemmeno con il PCM puro: a restare costante è, in quel caso, il prodotto f s (SNR) 2, quindi in ultima analisi f s (2 doppio del N bit da aggiungere ). L informazione raddoppia se la frequenza raddoppia; ma raddoppia anche aggiungendo solo mezzo bit, e non addirittura raddoppiandone il numero. Ben lungi dall essere un paradosso, la successione di prodotti proposta mostra come si venga a migliorare la BIT-RATE 2 NETTA lungo la catena; l efficienza della codifica aumenta man mano che si erode l OSR per trasformarlo in lunghezza di parola. 2 Allorquando in precedenza si è parlato di bit-rate usandola come sinonimo di frequenza di commutazione del segnale sulla linea, sarebbe stato più corretto utilizzare la nomenclatura baud-rate, che ha una connotazione elettrica e non legata alla teoria dell informazione. Non codificando tuttavia di-bit o quad-bit con livelli non binari da trasmettere in linea, non si creano equivoci e tale abuso di linguaggio è universalmente tollerato. -43-
52 La scelta dell architettura a blocchi del filtro - Cap. 2 Capitolo La scelta dell architettura a blocchi del filtro Si presenta la fase di scelta della struttura a blocchi del filtro decimatore del tipo deciso al capitolo precedente. Per la struttura ricorsiva (IIR+FIR, a dare il filtro FIR complessivo) è discussa la problematica dell aritmetica binaria da utilizzare per sottrarre i dati e contrastare l overflow.una simulazione finale ed il confronto con la tecnica FFT avallano le decisioni prese Implementazione canonica di un filtro FIR La sintesi del filtro FIR di decimazione dell uscita di un anello Sigma-Delta del secondo ordine, obiettivo di questo lavoro di tesi, deve partire dalla conoscenza acquisita del comportamento in frequenza desiderato : 3 3 proporzionale z proporzionale sen( fts ) Hz ( ) 4 1 H( f) z 4π 1 1 sen( πft ) s Esiste più di un modo per sintetizzare uno schema a blocchi avente tale funzione di trasferimento. -44-
53 La scelta dell architettura a blocchi del filtro - Cap. 2 Rifacendosi alla natura FIR dell oggetto, a risposta all impulso finita, viene spontaneo sviluppare tutti i termini della lunga divisione Numeratore/Denominatore di H(z); essi sono 10 (è la tripla convoluzione di un pettine da quattro campioni con se stesso), e cioè : ( 1 z ) ( 1+ z + z + z ) Hz () = = 1+ 3z + 6z + 10z + 12z + 12z z z + 6z + 3z + z 3 Una implementazione canonica del filtro è quella che prevede una cascata di 9 celle di ritardo, la cui uscita va poi ad un moltiplicatore che applica il coefficiente appropriato; il tutto conferisce infine verso un sommatore che completa l operazione. Trattandosi anzi di un filtro simmetrico, il numero di moltiplicatori potrebbe essere dimezzato; gli output del quarto e del quinto registro di ritardo ad esempio vedono un termine 12 ambedue, e così per tutti i taps simmetrici, e quindi possono essere sommati a monte del prodotto con notevole risparmio in fatto di complessità. In analogia con la scienza dell informazione, in cui studiando le complessità Θ(n) degli algoritmi si computa il numero di moltiplicazioni trascurando quello delle addizioni, la prassi di minimizzare i prodotti è adottata anche in ambito circuitale; e pensando alla difficoltà realizzativa di un blocco moltiplicatore, da progettare via hardware senza potersi appoggiare alla ALU (Arithmetic Logical Unit) di un microprocessore, questo risulta ragionevole. La strada maestra indicata dalla complessità porta allora direttamente verso un architettura che eviti del tutto le moltiplicazioni. Sempre trascurando il fattore di normalizzazione 1/64, applicabile dopo il filtro e per giunta con solo degli shift di bit, la funzione di trasferimento si presta per costruzione ad un implementazione fatta di pure somme. Esistono almeno due modi per recepire questa peculiarità e tradurla in un design ad alto livello del decimatore: uno legato al dominio dei tempi ed un altro più connesso al dominio trasformato. -45-
54 La scelta dell architettura a blocchi del filtro - Cap Realizzazione in Forma DIRETTA La realizzazione proposta nel dominio dei tempi fa uso del fatto che la composizione di parabole che dà la h(n) deriva dalla convoluzione del pettine a 4 taps eseguita tre volte. Prendendo allora una forma canonica di descrizione del filtro comb del 1 ordine, basta ripeterla tre volte di seguito per ottenere la convoluzione nidificata voluta: IN z z -1 4 z -1 6 z -1 4 z z -1 4 OUT z -1 2 z -1 4 z -1 6 z -1 z z -1 z -1 6 Figura Architettura a blocchi della decimazione in Forma Diretta I registri intermedi aggiungono tre colpi di ritardo apparentemente gratuiti; ma si tenga conto che la f s vale 200 MHz, e senza di essi il segnale in entrata dovrebbe stimolare in cascata tutti e tre i sommatori in un colpo solo da 5 ns; insomma, la loro introduzione è già una forma di pipe-lining implicita ed obbligata. Con pipe-line si intende quella tecnica per cui un algoritmo viene diviso in più funzioni, da eseguire in sequenza; le sezioni circuitali che svolgono quelle funzioni hanno in ogni istante un dato da elaborare, per cui un ingresso progressivamente passa dalla prima all ultima fase di calcolo attraverso tutte le sezioni. Sorprendentemente, tale tipo di costruzione non è stata mai incontrata nella letteratura consultata in fase di studio del progetto; esistono vari tipi di proposte, alcuni più consolidati di altri, ma l implementazione descritta è completamente negletta. Uno studio teorico che potrebbe parzialmente motivare la scarsa considerazione di cui gode l idea precedente è quello eseguito da J.F.Kaiser (Rabiner-Gold, [6]); in esso si dimostra la elevata sensitività del comportamento dell unità base del filtro, ossia della posizione dei suoi poli e zeri, agli errori di quantizzazione dei coefficienti. Un indicazione euristica per comprendere il perchè può -46-
55 La scelta dell architettura a blocchi del filtro - Cap. 2 basarsi sull osservazione che blocchi siffatti posizionano più zeri e poli per volta, e che la precisione ottenibile nel piazzare una singolarità nel piano Zeta diminuisce con l aumentare del numero di poli+zeri nella stessa cella; è il principio che fa scegliere quasi sempre celle biquadratiche (2 zeri+2 poli, scarsa influenza reciproca quindi) in cascata per sintetizzare funzioni di trasferimento razionali con gradi elevati di numeratore e/o denominatore. Ma nel caso attuale i coefficienti adoperati valgono tutti 1, e dunque non esistono problemi di arrotondamento del loro valore. Inoltre, questa FIR direct form come è talvolta chiamata presenta requisiti di parallelismo notevoli, limitandosi a richiedere l espletamento di una somma ed un immagazzinamento nel registro successivo per ogni ciclo di clock. Da ultimo, questa architettura consente un risparmio sulle strutture sia di calcolo che di storage; dalla prima batteria di somme può uscire al più ( ) = 12, occupante 4 bit; dalla seconda ( ) = 48, occupante 6 bit; ed analogamente si giunge a ( ) = 192 cioè agli 8 bit previsti finali. Insomma, lo schema sembra di ottima fattibilità; a meno di un inconveniente : i sommatori sono a 4 ingressi, e ciò costringerebbe comunque ad uno scaglionamento interno delle operazioni, eseguendole a due a due. In altre parole, ogni sommatore quaternario va visto spezzato in tre sommatori binari, che a loro volta offrono più di una modalità di connessione: - senza pipe-lining : la struttura richiede allora due somme binarie ed una memorizzazione ad ogni ciclo di clock, decisamente troppo per un sistema (nel nostro caso, probabilmente CMOS) temporizzato a 200MHz : z -1 z -1 z -1 Figura Realizzazione di un sommatore a quattro ingressi - con pipe-lining : la struttura viene frazionata includendo anche due memorie temporanee interne, che aumentano di 3 passi la latenza complessiva dei dati (poco -47-
56 La scelta dell architettura a blocchi del filtro - Cap. 2 importante per un segnale video); anch esse sono scalate come il resto del sistema, quindi contengono ( 2 bit + 2 bit ) = 3bit, ( 4 bit + 4 bit ) = 5 bit, e ( 6 bit + 6 bit ) = 7 bit rispettivamente : z -1-1 z z -1 z -1 z -1 Figura Realizzazione di un sommatore a quattro ingressi con pipe-line - con pipe-lining distribuito : perchè aggiungere stadi di memoria quando essi sono già presenti per ritardare i taps? Si sfrutta la tapped-delay line digitale già funzionalmente obbligatoria per far avvenire la somma gradualmente, ad accumulo progressivo, formando delle somme parziali. E come decomporre l espressione del pettine elementare in una nested polynomial form, nota tecnica matematica usata per esempio nei microprocessori che eseguono la correzione di linearità delle termocoppie : ( ( )) Out = 1+ z + z + z = 1+ z 1+ z 1+ z blocco sin golo
57 La scelta dell architettura a blocchi del filtro - Cap. 2 IN z -1 z -1 z z -1 z -1 z -1 z z -1 z -1 z -1 z OUT z -1 8 Figura Architettura alternativa del decimatore in Forma Diretta La latenza resta invariata; al transitorio iniziale, l uscita resta ferma a zero per 9 campioni (puro ritardo dovuto alla forma della h(n) ) più 3 (i registri intermedi) e poi parte subito con la sequenza corretta; nei casi precedenti l uscita iniziava a muoversi prima, in maniera spuria, ma lo riempimento della linea di ritardo avveniva comunque in 9 passi più 3. Si noti per inciso che un tentativo costruttivo di tipo polifase mal si adatta ad una struttura come questa; si tratterebbe di spostare la sezione di downsampling davanti agli ultimi filtri, ma essi non esistono, dato che sui rami uscenti dai ritardi non si moltiplica. Al più, nel caso di applicazione della prima idea, comprensiva di 9 prodotti, si sarebbe potuto tentare un éscamotage del genere; ma esso va scartato in tutti i casi successivi. L ultimo schema proposto è senz altro il migliore del tipo diretto; come tale va ricordato per essere confrontato con le prossime idee. -49-
58 La scelta dell architettura a blocchi del filtro - Cap Realizzazione in Forma RICORSIVA La realizzazione proposta nel dominio delle trasformate fa uso della natura IIR del denominatore e FIR del numeratore; dato che i poli hanno espressione numerica traducibile in una retroazione di tipo accumula e moltiplica, influenzano cioè se stessi nel futuro, le si dà il nome di ricorsiva. Il decimatore ha una funzione di trasferimento all-zeros poichè è un FIR; ma le espressioni proposte per la F.d.T. avevano numeratore e denominatore, quindi poli e zeri! E dalla cancellazione polo-zero in z=1che nasce la natura finita del filtro; e questa osservazione, apparentemente banale, sarà la chiave per la comprensione del funzionamento del prossimo schema. Intanto si noti un analogia che potrebbe tornare utile: la tecnica di distribuire un numero N di zeri equispaziati lungo la circonferenza unitaria nel piano complesso delle Zeta, per poi sopprimerne alcuni sovrapponendovi dei poli di diversa ampiezza, è quella nota come design a campionamento in frequenza (si veda ad esempio Rocca-Tedeschi, [7]). Dato un certo profilo spettrale voluto, definito tra -π e+π, lo si può andare a valutare in N punti; e le ampiezze A(ω i ) lette possono essere riprodotte nella F.d.T. di un filtro che abbia N zeri ( un numeratore 1-z -N ), e un polo a quella pulsazione ω i del tipo A( ω ) 1 e 1 i jω T i s z 1 Il profilo ottenuto sarà esatto alle pulsazioni campionate, approssimato per quelle intermedie; potrà essere raffinato poi da altri filtri a valle. Lo zero multiplo si costruisce con un sottrattore ed una batteria di N ritardi che mantengono il dato in ingresso per N colpi; i poli sono blocchi integratori con perdita, composti da accumulatore e registro di dumping, che leggono tutti l uscita del sottrattore e sommano i loro output. -50-
59 La scelta dell architettura a blocchi del filtro - Cap. 2 Figura Diagramma poli-zeri del decimatore da realizzare Dover ripetere tre volte questa struttura è alquanto disagevole. In particolare sono i 4 registri in cascata prima di ogni sottrattore a provocare un overhead di area notevole; E. Dijkstra (in [8]) ha proposto allora una variante non convenzionale, in cui si mantiene sostanzialmente invariata la parte IIR proposta ma si semplifica la parte FIR. Invertendo l ordine FIR IIR tipico dei filtri a campionamento in frequenza, e riprendendo l idea propria dei filtri polifase, si può spostare il blocco di sottocampionamento davanti alla triplice sezione avente caratteristica di trasferimento (1 - z -4 ) ; la temporizzazione ora quadruplica, e quindi i 4 ritardi necessari a 200 MHz ora valgono un ritardo soltanto a 50 MHz, poichè Z=z - 4. Il risparmio di area, potenza e tempo di progettazione è evidente; in particolare va sottolineato il fatto che la criticità dell elevata velocità da tenere nello schematico viene ora circoscritta solo alla prima parte del circuito, rilassando i requisiti che la sezione FIR deve possedere. -51-
60 La scelta dell architettura a blocchi del filtro - Cap. 2 IN z -1 z -1 z z -1 z -1 z -1 OUT 8 z -1 z -1 z -1 Figura Architettura a blocchi per la decimazione in Forma Ricorsiva Sorge però subito un dubbio inerente il numero di bit necessari alla rappresentazione interna dei valori. La parte IIR o ricorsiva del filtro ha tre poli in cascata; ogni polo introduce una singolarità di tipo esplosivo ai fini della risposta in frequenza, massimamente se è posto sulla circonferenza unitaria come l integratore; tale dislocazione anzi implica che il filtro non sia stabile, ma si trovi al limite di stabilità. Nel caso in oggetto il polo ha molteplicità tre, determinando addirittura un instabilità del sistema, come affermato dalla Teoria del Controllo. Se i poli fossero seguiti immediatamente dalla sezione FIR che loro compete, ossia se li si cancellasse subito tra una sezione e l altra, non si porrebbe il problema dell overflow del segnale lungo la cascata; all azione accumulante del polo integratore farebbe seguito infatti l azione calmieratrice dello zero, che ripristinerebbe la normalità nei valori assunti dal flusso numerico. Per guadagnare semplicità riducendo il numero dei registri, questa stabilità numerica viene messa a repentaglio; un impulso uscente dal Sigma-Delta, triplicemente integrato, diviene una parabola crescente. Oltretutto, il dato binario in input è sempre positivo, tra 0 e 3; non sussiste alcuna possibilità di compensazione dell accumulo con dati negativi, la crescita è monotona. Come rappresentare numeri comunque divergenti? -52-
61 La scelta dell architettura a blocchi del filtro - Cap Sezione IIR del decimatore : le aritmetiche modulari Fortunatamente, esistono strategie computazionali che consentono di mantenere la correttezza dei calcoli eseguiti anche quando il valore assoluto dei segnali in linea diverge. Si tratta delle cosiddette aritmetiche modulari, o aritmetiche wrap-around. Esse fanno uso di una rappresentazione CIRCOLARE dei numeri (di qui il nome): sommando un unità al massimo valore rappresentabile si ricade sul minimo, e viceversa sottraendo. Tra le aritmetiche binarie a nostra disposizione per il progetto di circuiti elettronici per DSP, anche le più semplici già godono di questa proprietà. Si pensi alla rappresentazione unsigned dei numeri binari : solo il valore assoluto della quantità viene rappresentato, senza segno, in essa. Nel caso di un conteggio incrementale eseguito su un byte si ha: , overflow accaduto; Dato che si trascura il carry uscente dal byte, sommare porta ad avere come risultato 0; è accaduto un overflow. Sarà naturale adoperare questa modalità di codifica numerica per la parte IIR dell architettura ricorsiva, che preleva ed accumula solo valori positivi. La parte FIR costringe al contrario ad implementare blocchi di sottrazione. La strategia binaria più semplice per affrontare il compito di sottrarre due numeri è l utilizzo della rappresentazione in complemento a 2 3 per gli operandi. Questa tecnica prevede la 3 La denominazione è legata all esistenza di un ulteriore forma di codifica binaria, detta in complemento ad 1, che ottiene il valore assoluto dei numeri negativi solo complementandone i bit, cioè trovando di ogni bit il complemento mancante a raggiungere 1 (e sarà 0 od 1); l aver ora sommato un ulteriore 1 porta, per analogia, alla dizione menzionata. -53-
62 La scelta dell architettura a blocchi del filtro - Cap. 2 scomposizione del byte in due parti, per conservare l informazione sul segno e sul valore assoluto del dato; volendo rappresentare +13 e -13 si avrà : numero positivo numero negativo Il segno viene indicato dall MSB; quanto al valore assoluto del numero: modulo come nel caso unsigned : = modulo da valutare invertendo tutti i bit e sommando 1, cioè come : = : = Il valore assoluto varia dunque tra un massimo positivo pari a = 127 ed un massimo negativo = -128; la circolarità sussiste, dacchè incrementato porta a , cioè all altro capo della scala numerica. Si noti come venga evitata la doppia rappresentazione per lo zero, +0 e -0, che in altre codifiche (segno e valore, MSB riservato al segno, seguito poi dal valore assoluto; variabile tra +127 e - 127) fa sprecare un pattern binario. L inversione dei bit e l incremento successivo equivalgono a svolgere l operazione ( ); infatti un pattern di bit sommato con se stesso complementato restituisce , alias 255; incrementato, 256; -B si trasforma quindi in 256-B. La sottrazione A-B a questo punto è analoga alla somma A+(-B); si tratta fisicamente di svolgere A+(256-B), conto che su 8 bit è corretto. Il risultato è la misura della distanza che separa A e B sulla circonferenza del wrap-around : -54-
63 La scelta dell architettura a blocchi del filtro - Cap Figura Rappresentazione circolare delle operazioni in aritmetica modulare Sapendo a priori che l uscita del decimatore è comunque positiva, emerge dunque il ruolo della sottrazione come misura modulo 256 delle differenze positive delle uscite precedenti. Se la differenza è positiva, la distanza va letta nel senso del percorso più corto; se è negativa, nell altro senso. L operazione (2-3) ha allora una duplice lettura : -1 e Figura Le due interpretazioni del risultato di una sottrazione in complemento a 2 Per lavorare in aritmetica modulare basta ignorare il riporto uscente a sinistra dell operazione; i circuiti da progettare non prevedendo perciò alcuna forma di carry-handling agiranno automaticamente in maniera circolare, calcolando il resto della divisione: Risultato modulo =Resto(Risultato vero / 256) = (Risultato vero ) mod
64 La scelta dell architettura a blocchi del filtro - Cap. 2 che mantiene comunque la potenzialità di rappresentazione necessaria per la nostra uscita (2 8 = 256 > 192, massimo output possibile del decimatore; è una condizione sufficiente per garantire l esattezza delle elaborazioni, e va sotto il nome di worst-case scaling ; cfr. Saramäki-Tenhunen in [9]). Ragionando in modo più articolato: in astratto, si può pensare di avere a disposizione dei registri con un numero infinito di bit; registri capaci di contenere anche la parabola crescente prodotta dalla nostra catena di integratori, strutture che reggono senza errore il blow-up numerico avvenuto all altezza della loro sezione. Se siamo in grado di conservare senza errori la somma e di avere poi tre estesissimi blocchi FIR consecutivi capaci di sottrarre tali enormi numeri, la catena svolgerà la sua funzione correttamente, restituendo un uscita che è pari alla convoluzione dell ingresso per la h(n) da 10 campioni del decimatore; uscita compresa tra 0 e 192, e quindi contenuta entro gli 8 bit previsti. Alla fine dei calcoli, cioè, della stringa binaria infinita sono solo gli ultimi 8 bit che interessano. Ma allora, procedendo a ritroso: se la sottrazione è in grado di valutare la distanza corretta tra due numeri, a meno di multipli interi del modulo 2 8 = 256, non importa che arrivino altri MSB; essi non conterebbero, perchè ad esempio ( ) mod 256 = (N ) mod 256 = 3. Dalla sottrazione precedente è importante che arrivino corretti gli ultimi 8 bit; ed idem per quella prima. Essa vede poi la sequenza decimata dei segnali in input tre volte integrati, di cui importano nuovamente solo gli ultimi 8 bit. In ultima istanza, se si è in grado di garantire la correttezza degli 8 LSB di ciascuno dei registri ideali ad ampiezza infinita, la catena lavorerà comunque correttamente : le operazioni binarie da eseguire si propagano da destra verso sinistra, quindi i bit che eccedono la finezza del risultato desiderato possono essere trascurati; scompaiono dal computo senza inficiare la validità del troncone di calcolo compiuto sui bit meno significativi. La giustificazione testè addotta dell utilizzo di un aritmetica modulare, nonchè la scelta fatta del numero di bit che evitano l overflow nella catena digitale, sono ben fondate ma ampiamente euristiche. Un fondamento matematico più concreto è stato proposto da S. Chu e C. Sidney Burrus (in [10]), caratterizzando proprio una cascata multi-rate di filtri per decimazione. In sostanza, essi riportano il sottocampionatore dopo l intera catena, e riscrivono l espressione dell uscita come convoluzione di convoluzioni, che usando delle h(n) di tipo comb diventa somma di somme, modulo R. La conclusione è invariata : per evitare l overflow -56-
65 La scelta dell architettura a blocchi del filtro - Cap. 2 occorre conservare la recuperabilità dei dati, tenendo il modulo dell ultima operazione maggiore del maggior valore assumibile dall output; avendo convoluto pettini di differenti K estensioni sarà R N N NK Ringresso = ( ) Ni R i= 1 ingresso, ma nel caso attuale, uniforme, R = 256 > N K R ingresso =4 3 3 ossia 192. Si evidenzia la possibilità di risparmiare bit intermedi provando a diversificare i pettini, ma la regolarità che deve informare le scelte progettuali sin da ora fa preferire l iterazione delle stesse risposte a 4 taps. Infine, una trattazione algebrica formale del problema è data da H.L.Garner ([11]); la derivazione è estremamente pesante, ma si arriva a dimostrare che l esistenza di una relazione di congruenza tra gli interi (quale quella di somma modulo 256, e differenza pure) e la chiusura di tale insieme rispetto all operazione in questione coimplicano la possibilità di attuare un extended computing through overflows : l overflow si verifica, ma non va recuperato in alcun modo perchè è un operazione modulare e non rovina i risultati delle somme modulari Il problema dei cicli limite In un certo senso l uso dell aritmetica modulare è l operazione duale dell arrotondamento : nel primo caso si tolgono gli MSB, nel secondo gli LSB. L arrotondamento introduce del rumore bianco (round-off noise); invece l aritmetica modulare può provocare i cosiddetti cicli limite, che si verificano solo se il numero di LSB adottati è insufficiente per rappresentare il risultato. Di cicli limite si parla più propriamente in altre strutture, come ad esempio negli schemi di realizzazione delle celle biquadratiche, a due poli e due zeri, formanti i decimatori IIR a valle dell oggetto di questa tesi (cfr. Candy-Wooley-Benjamin [12]; interessante anche Dijkstra-Degrauwe-Rijmenants-Nys [13] per la minimizzazione dei coefficienti e della loro lunghezza, con un metodo euristico di simulated annealing ). Le aritmetiche ivi adottate infatti comportano una computazione seriale delle somme: esse vengono costruite dal basso, dall LSB all MSB, conteggiando o no i bit del segnale a seconda della configurazione binaria dei coefficienti, cioè della posizione delle cifre 1 nel numero che esprime il coefficiente. Questi ultimi per parte loro sono scelti posizionando i poli del filtro a frequenze del tipo A/2 n -57-
66 La scelta dell architettura a blocchi del filtro - Cap. 2, con A tale che abbia il minor numero di 1 possibile. L errore compiuto sostituendo: a) la vera posizione del polo, con: b) la più vicina posizione esprimibile secondo tale formato standard, pesa sempre pochissimo nel bilancio del segnale, ed è oltretutto suscettibile di tradeoff con la complessità tollerata della circuiteria numerica. In questi casi, comunque, la rappresentazione dei valori si presta all overflow, perchè la lunghezza della parola necessaria ad evitarlo sarebbe insostenibile; si preferisce allora sorvegliare la magnitudo dei segnali in linea con sentinelle, porte logiche appropriate appostate sui carry finali delle catene dei full adder, che in caso di overflow cambiano segno ai dati in modo da minimizzare la portata dell errore commesso smorzandone gli effetti il prima possibile. La perturbazione numerica che deriva al flusso dei dati da questi inconvenienti di overflow può assumere caratteristiche cicliche, nel caso delle strutture ricorsive che servono per realizzare i poli; ed esistono dei valori di ingresso che consentono di uscire dal ciclo, mentre altri fanno permanere il sistema nel funzionamento anomalo. I valori del secondo tipo costituiranno il bacino di attrazione del ciclo limite. Per estensione, nella situazione attuale parleremo di cicli-limite allorquando l utilizzo di una lunghezza insufficiente di parola binaria porta ad errori in uscita. Anche per tale tipo di questione ci siamo basati su un analisi numerica del problema: Simulink non supporta routines per modellizzare il comportamento di una rete binaria, e così il modello integrato del modulatore Sigma-Delta e del decimatore digitale è stato costruito con un programma a routines statiche, di tipo tradizionale. Lo schema modellizzato è del secondo ordine con quantizzatore a due bit e guadagni unitari; il lettore zelante troverà comunque i listati delle procedure nell Appendice 2. La funzionalità del simulatore di modulatore Sigma-Delta (procedura CONVERT.M) può essere apprezzata dal seguente esempio di overload sinusoidale, di cui già si era parlato ma senza esemplificarlo: -58-
67 La scelta dell architettura a blocchi del filtro - Cap. 2 Figura Modulazione di una sinusoide con overload secondo le routine Matlab Per provare l overflow si simula il filtro decimatore ricorsivo con tre integratori e tre sottrattori, in DECRICOR.M. Accorciando i registri da 8 a 7 bit si otterrà un corretto trattamento dei dati decimati che cadono nel range 0 127; di quelli residenti nella fascia si descrivono bene gli ultimi 7 bit, quindi l andamento in dettaglio, errando però il primo bit sempre alla maniera ciclica, in modulo. Ciò accade per i medesimi motivi esplicitati in precedenza; i sottrattori leggono bene le distanze tra i numeri finchè esse sono minori di 127, cioè restano contenute nei 7 bit. Tali cifre restano uguali ai primi 7 degli 8 bit calcolati nel caso aciclico, corretto. I sottrattori non discernono però l informazione dell MSB, cioè il quadrante in cui l onda si trova. Il bacino di attrazione del ciclo-limite coinciderà allora con i livelli di segnale convertiti in un dato > 127, che necessiterebbe anche dell ottavo bit : -59-
68 La scelta dell architettura a blocchi del filtro - Cap. 2 Figura Decimazione con incursione in un ciclo-limite numerico La dinamica del convertitore presentato è V V; il massimo valore uscente dal decimatore è 192, quindi il valore 127 corrisponde ad una tensione di (1.5 / 192) 127 = V, che è appunto il livello a cui l errore interviene. Come teorica contromisura, al solito si può predisporre un circuito (XOR tra i carry finali) capace di rilevare il salto di quadrante; esso può abilitare lo scrollamento del sistema fuori dal ciclo, mediante l iniezione di una componente continua che lo riporti nel range corretto; continua da risommare poi a valle della catena, riportando allora ad 8 il numero di bit. Fuor di paragone con i veri cicli-limite, però, nel nostro caso l iniezione della continua non serve perchè l aritmetica modulare si riscala da sè; si starebbe solo scambiando complessità degli adder con complessità del sistema di rilevamento dell overflow. Usare 8 bit insomma è l unica strada ragionevolmente percorribile Sezione FIR del decimatore : stato iniziale e latenza Resta da valutare il problema, ora pertinente la parte FIR, della costruzione dei sottrattori; ma l uso oculato della aritmetica in complemento a 2 ha trasformato l onerosa sottrazione in somma, previa negazione di tutte le linee del sottraendo; e sommare 1 non presenta difficoltà aggiuntive, perchè basta all uopo alzare il carry entrante nell LSB dell adder. La presenza dei sottrattori oltretutto ha un implicazione circuitale estremamente importante : non è necessario predisporre una rete di reset iniziale dei registri. Gli integratori tengono memoria dei dati spurî inizialmente contenuti nelle celle dei ritardi; ma i sottrattori depurano comunque questa inevitabile continua, con il loro zero in d.c.. Si dimostra anzi che gli effetti di eventuali errori di calcolo compiuti nei sommatori dei poli svaniscono in un numero finito di colpi, all uscita; allorquando cioè il differenziatore ha tempo di subire sia nel minuendo che nel sottraendo l effetto dell equivoco occorso. La latenza è superiore a quella aggiunta dallo schema diretto. La parte IIR conta per 3 passi di ritardo, potendo riutilizzare le memorie di accumulazione come blocchi di storage per il pipe-line; quella FIR conta per altri 3... ma a 50 MHz; che diventano 12 a 200 MHz, assommando ad un totale di 15 passi di latenza iniziale. Si tratta però di uno scrupolo fittizio; nella realtà delle applicazioni televisive la latenza non pesa, infatti; come pure non pesa ogni volta che che la conversione non fa parte di un feedback per un controllo ad anello chiuso. -60-
69 La scelta dell architettura a blocchi del filtro - Cap. 2 Trasmettere un segnale televisivo con ritardo di qualche nanosecondo non è cagione di alcun problema, mentre controllare con latenza un attuatore introduce ritardo nell anello, cioè fase supplementare che potrebbe degradare il margine di fase del sistema di controllo in maniera ingegneristicamente inaccettabile. La latenza, ai nostri fini attuali, diventa dunque un grado di libertà di cui potremo usufruire pressocchè ad arbitrio Simulazione e scelta finale Con il programma Matlab presentato in precedenza si possono confrontare infine anche visivamente i comportamenti delle due opzioni contrapposte; basta scrivere una procedura che simuli anche il comportamento dell implementazione diretta del decimatore ( DECIMAT.M ). Il caso prova scelto è un classico transitorio ad esponenziale decrescente, sufficientemente lento rispetto al passo di campionamento a disposizione: Figura Modulazione di un esponenziale decrescente secondo le routine Matlab -61-
70 La scelta dell architettura a blocchi del filtro - Cap. 2 I due decimatori hanno risposto nei due modi seguenti : Figura Uscita del decimatore in Forma Diretta secondo le routine Matlab, con latenza a 200 MHz pari a 12, decimata a 3, più lo storage finale ulteriore; Figura Uscita del decimatore in Forma Ricorsiva secondo le routine Matlab -62-
71 La scelta dell architettura a blocchi del filtro - Cap. 2 con latenza a 200 MHz pari a 3, decimata ad 1, e altre 6 latenze FIR già a 50 MHz. A meno della latenza, inessenziale in questa sede, le differenze rilevate sono rigorosamente nulle usando delle voci 4 abbastanza estese. Il confronto tra le due implementazioni si gioca allora solo sul piano della complessità circuitale prevedibile a questo punto del progetto. La forma diretta ha sommatori di dimensione variabile; in linea teorica consente di risparmiare spazio, e se gli adder sono progettati come composizione di slice da 1 o due o più bit non costa molto dimensionarli; lo schematico non va nemmeno ripensato, ma solo iterato quasi pedissequamente fino al raggiungimento del numero di bit richiesto per quella sezione. I registri intermedi tra i tre blocchi devono però pilotare ciascuno tre sommatori ed un registro; un carico che a 200 MHz potrebbe risultare insostenibile. Per giunta, la fase di progetto della dislocazione dei dispositivi fisici nel circuito, il cosiddetto floorplanning precedente il layout materiale, diventa così un difficile gioco all incastro che deve cercare di compensare le dissimmetrie di lunghezza di registri ed adder; nei vuoti di una sezione a monte andrebbero posizionate le parti in eccesso di una a valle, costringendo a pianificare un flusso geometrico dei dati alquanto irregolare. Il discapito apportato al fattore di regolarità del layout, che è una delle cifre guida dei progetti VLSI insieme alla modularità, località e gerarchia del design, fa pendere la bilancia decisamente a favore della seconda architettura progettuale. Una volta appurata la semplicità di prevenzione degli overflow e la modica fatica circuitale di gestione dell aritmetica modulare, lo schematico risultante infatti è ripetitivo sia nella parte prima del downsampling che nella successiva; l obbligo di usare registri tutti di lunghezza massima, per salvaguardare gli LSB utili, ben lungi dall essere un onere è un vantaggio per il progettista. La ridotta frequenza di funzionamento della parte FIR consente poi un ottimizzazione di altri parametri, segnatamente area e consumo, che sfruttano i gradi di libertà non più sacrificati alla velocità dei circuiti Strutture di decimazione alternative In letteratura è disponibile una certa varietà di strutture alternative a quelle proposte, più o meno orientate a particolari applicazioni. 4 In un sistema a microprocessore, di solito si indica con voce la lunghezza di parola del registro accumulatore principale del chip. Tale denominazione è usata spesso come sinonimo di lunghezza di word in generale. -63-
72 La scelta dell architettura a blocchi del filtro - Cap. 2 J.C.Candy e G.C.Temes in [2] propongono un circuito di accumulate and dump, somma e deposita, che realizza economicamente la funzione del comb singolo mediante sommatore e registro temporizzati da un gated clock che emette un segnale ogni N colpi. Naturalmente la cascata di tali blocchi non fornisce il risultato voluto, perchè la decimazione è già insita in ognuno e si finirebbe per decimare di un fattore N N stadi, e non N; le architetture necessarie per la sintesi del sinc cubo periodico allora devono prevedere blocchi di riscalatura per fattori N ed N 2 (che saranno shift binari ma occupano area), ritardi, più di un sommatore e di un sottrattore. Il tutto funziona alla bit-rate già decimata, eccezion fatta per l accumulate and dump; ma il progetto è comunque area-intensive, e sembra piuttosto orientato ad un ambito di progettazione industriale a standard cells di alto livello (funzioni aritmetiche di base e memorizzazione già disponibili on-chip). Dijkstra medesimo (sempre in [8]) ha realizzato un prototipo dello schema proposto, utilizzando nella parte degli zeri una circuiteria di tipo distribuito. Essa comprende una memoria ROM per alloggiare i coefficienti del polinomio cubico di sottrazione (1-3 z z -2-1 z -3 ), la cui parola in uscita - che è poi una somma parziale con un certo peso - confluisce in un accumulatore dove verrà conservata, dividendola per 2 ad ogni passo di arrivo di bit più pesanti. L applicazione è insomma un tipico esempio di progettazione alla Peled e Liu di blocchi algebrici digitali; con per giunta la possibilità di mappare anche l operazione di accumulazione dentro la ROM, senza farne esplodere le dimensioni, predisponendo nelle celle le somme pronte. Va da sè però che un design full-custom di questa struttura è improponibile, soprattutto a causa della necessità di integrare un puntatore circolare alla ROM, che non shifta i risultati IIR ma fa shiftare il riferimento ai coefficienti. Il preteso risparmio di area va poi verificato a posteriori, magari alla conclusione della fase di layout del nostro lavoro che non userà strutture di storage così grandi. Sempre del tipo seriale, con accumulo progressivo della somma degli addendi filtrati dalla maschera binaria dei coefficienti, è la soluzione proposta dai citati Candy-Wooley- Benjamin ([12]). L opzione è indubbiamente economica e di semplice progetto; potrebbe forse essere plausibile ai 50 MHz, non certo tuttavia a 200 MHz dove il parallelismo non deve essere tolto ma semmai incrementato, ed affiancato al pipe-lining. H. Meleis e P. Le Fur hanno messo a punto in [14] un metodo di generazione dei coefficienti della composizione di parabole che costruisce la h(n) del filtro a sinc cubo usando un contatore, dei sommatori e registri temporizzati da una logica di controllo. E -64-
73 La scelta dell architettura a blocchi del filtro - Cap. 2 una sintesi fatta nel dominio dei tempi, come quella diretta illustrata sopra; i coefficienti formati vengono poi sommati o meno a seconda del valore dato dal modulatore Sigma- Delta da decimare, in un altra sezione del circuito. La gestione dell apparato previsto non è semplice, anche perchè implica il pilotaggio di tre multiplexer intermedi ed uno finale; il routing del controllo poi si preannuncia disagevole. Il fatto poi che il modulatore Sigma- Delta esca a due bit complica non poco lo schematico necessario, che resta comunque un alternativa valida con N molto grandi (per noi N = 4 ). E. Roza (si veda [15]) infine ha sintetizzato un unico circuito che svolge ambedue le funzioni, di decimazione FIR preliminare e IIR di raffinamento conclusivo. L attenzione è stata rivolta all uso di tale rete per frequenze di tipo televisivo (144 MHz) quasi analoghe a quelle qui in oggetto, ed è quindi opportuno vagliare accuratamente le idee proposte. Si tratta dello studio di un nuovo algoritmo nel dominio dei tempi per la trasformazione dei dati, chiamato REBIC (REcursive BItstream Conversion). Data la sequenza di di-bit da decimare, la si suppone filtrata da una H(z) all-poles qualsivoglia purchè in grado di preservare dall aliasing; si suppone egualmente filtrata anche la sequenza decimata, e si impone l eguaglianza delle due negli istanti di decimazione, alla bit-rate più lenta. Questo consente di istituire un legame tra i taps entranti e quelli uscenti diradati, che esprimendo la h(n) arbitraria come somma degli esponenziali complessi dati da ogni polo assume una forma ricorsiva. L esponenziale gode della proprietà fondamentale di riscalarsi, se traslato; proprio per questo uno spostamento temporale delle sequenze si tramuta in una loro riscalatura, che a sua volta consente di isolare un nucleo ricorsivo Stabilita le relazione, la sua mappatura in circuito è diretta, e mostra all input un registro di conversione serie/parallelo seguito da una somma di prodotti; come dire che ogni filtraggio successivo avviene già ad una frequenza decimata, e vede dunque molto rilassati i requisiti elettronici richiestigli. Non solo, ma l intero blocco iniziale può venire sostituito manu militari da una look-up table, sicuramente meno costosa dal punto di vista computazionale. I lenti anelli (ricorsione retroazione) successivi necessitano di una moltiplicazione del dato per gli esponenziali formanti la h(n); ma essendo questa pressocchè arbitraria i poli stabili saranno piazzati in 1/2 n o multipli, riducendo il prodotto in shift binario. Siffatta comodità comporta comunque, derivante dalle formule ricorsive sviluppate, l esistenza in anello di un prodotto per un coefficiente logaritmico; o si utilizza una approssimazione, oppure il ricorso alla rappresentazione floating point sembra -65-
74 La scelta dell architettura a blocchi del filtro - Cap. 2 inevitabile. L equalizzazione infine è strutturalmente congenita nella REBIC, quindi non sevono filtri correttivi a valle. Pur essendo realizzativamente non semplice, la REBIC ci sembra comunque avere ottime caratteristiche di compattezza e affidabilità, se si deve progettare una catena di decimazione completa FIR + IIR; purtroppo però è monolitica, non è pensata per essere logicamente scissa, e quindi non rappresenta una via percorribile nel caso attuale di progettazione del solo filtro FIR Confronto tra filtraggio eseguito direttamente e mediante FFT Prima di passare dall architettura del sistema ad una sua realizzazione circuitale concreta, è necessaria un ultima considerazione: lo schema a scatole nere che è stato scelto tra le varie possibilità esaminate non ammette valide realizzazioni alternative impieganti la FFT (Fast Fourier Transform). L operazione di taglio delle componenti di aliasing eseguita nel dominio delle frequenze potrebbe infatti essere tradotta nella moltiplicazione numerica dei due spettri, del segnale e del filtro FIR; a tale scopo dovrebbero essere immagazzinati N campioni successivi dell ingresso, e l elaborazione verrebbe svolta in un periodo N T, rilassando quindi le proprietà di velocità dello schema altrimenti molto spinte. Il numero di moltiplicazioni complesse (la complessità computazionale dell algoritmo) in una FFT vale come noto : Θ( N) = N log2 2 N dove N è il numero dei campioni, già con guadagno notevole sulla complessità N 2 tipica della DFT (Discrete Fourier Transform) normale. L espressione fornita concerne il numero di moltiplicazioni complesse; quindi il numero dei prodotti reali è il suo quadruplo. Una misura veramente indicativa del carico computazionale a cui si sottopone il sistema si ricava tuttavia solo dalla quantità unitaria di prodotti, ossia eseguita per ogni valore calcolato in uscita all algoritmo. Occorre per giunta stabilire il tipo di trattamento utilizzato per la sequenza in arrivo, che deve infatti essere memorizzata per consentire poi l esecuzione della FFT, del prodotto tra le trasformate e dell anti-trasformazione FFT -1. Si può supporre che si tratti di un -66-
75 La scelta dell architettura a blocchi del filtro - Cap. 2 classico overlap and save, in cui la sequenza iniziale viene spezzata in tronconi da N elementi, e poi elaborata nel modo suddetto dagli M campioni di h(n) (M = 10 nel nostro caso), risentendo quindi degli effetti di circolarità della convoluzione equivalente eseguita; ogni convoluzione aggiunge (10-1) = 9 campioni alla sequenza originaria, allora la circolarità affliggerà 9 campioni su N. Gli spezzoni saranno dimensionati in modo sufficientemente esteso da minimizzare tale effetto (il limite inferiore di solito assunto indica N 10 M, cioè 100 elementi nel nostro caso; il ritardo intrinseco nell acquisizione del risultato come già detto non sarebbe importante nella nostra applicazione, e quindi N potrebbe salire ancora). Normalizzando il tutto al numero di campioni in uscita effettivamente ottenuto, si ha : - filtraggio diretto : tenendo conto della simmetria della risposta all impulso h(n) ogni campione subisce in successione M/2 = 5 prodotti - filtraggio FFT : dimezzando artatamente il numero di moltiplicazioni (mediante la mappatura di uno spezzone nella parte reale e del successivo nella parte immaginaria della sequenza trasformanda) resta N prodotti reali = 2 N log N 2 2 N M log = = il cui limite inferiore con M = 10 risulta pari a 16, ottimizzando N. Ogni operazione prevede infatti lo svolgimento di FFT ed FFT -1, con medesima quantità di calcoli, al primo addendo; più il prodotto X(f) H(f) che realizza il filtraggio, secondo addendo ( + 2). Un grafico che tabula l espressione precedente per alcuni valori di M è il seguente : -67-
76 La scelta dell architettura a blocchi del filtro - Cap Figura Complessità computazionale delle tecniche ad FFT overlap and save I minimi delle curve disegnate vanno confrontati con le rette orizzontali di ordinata M, cioè con la quantità di moltiplicazioni necessarie nel caso diretto. Con M = 10 la retta orizzontale è addirittura fuori dal grafico, quindi il risparmio di calcoli rispetto alla tecnica FFT è evidente; per M = 20 la curva tracciata resta al disotto della linea di ordinata 20, ed è la FFT che conviene; per M poco superiore a 15 si ha un sostanziale pareggio. Viene quindi confermata la regola secondo cui i filtri FIR con memoria inferiore ad una quindicina di campioni sono meglio implementabili con circuiti o routines software nel dominio diretto, piuttosto che ricorrendo a passaggi nel dominio delle frequenze. Il limite di convenienza si alza se la risposta all impulso in oggetto è di tipo simmetrico. La totale assenza di prodotti che la scelta del decimatore ha consentito di ottenere, unita al fatto che agli svantaggi delle prestazioni della tecnica FFT vanno aggiunti i tempi di somma e di debita preparazione delle parti reale ed immaginaria, conclude indubbiamente il discorso. -68-
77 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 Capitolo 3 Dall architettura alla logica : tecniche adottate per l aritmetica digitale Lo schema a blocchi uscito dalla fase di analisi dell architettura del filtro decimatore ha in sostanza due componenti fondamentali: i sommatori ed i registri di ritardo. Nel corso del progetto sono state prese in considerazione svariate opzioni realizzative dei medesimi, che verranno presentate nell ordine in questo capitolo. La prima parte concerne le tecniche di implementazione logica dell addizione digitale, separate per la sezione IIR e quella FIR del filtro; la seconda parte del capitolo tratta la realizzazione dei registri/ritardi, con tecniche statiche e dinamiche Uso dei sommatori nel circuito I sommatori assolvono una doppia funzione, all interno dello schema prescelto: aggiungono il dato in arrivo accumulandolo al preesistente negli integratori della parte IIR a 200 MHz, e sottraggono i dati decimati nella parte FIR a 50 MHz. La loro posizione in sezioni della catena funzionanti a bit-rate così differenti li rende obiettivo di ottimizzazioni logiche rispetto ad aspetti diversi. I sommatori IIR vanno assolutamente curati per un solo parametro dominante, la rapidità di operazione, mentre per i sottrattori FIR si può prestare maggior attenzione all occupazione di area sul silicio (ossia, in gergo, al real estate ) ed al consumo di potenza. Nel prosieguo verranno dunque analizzate diverse tecniche di implementazione logica dell addizione digitale, per la parte IIR e la parte FIR, nell ordine. -69-
78 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap Parte IIR : Limite di Winograd per la velocità dei sommatori Per quanto attiene alla parte IIR del circuito, un intuitivo limite teorico per il confronto delle prestazioni dei sommatori in termini di velocità è quello stabilito da Winograd (Waser- Flynn, riferimento [16]). Dato che il risultato di un addizione ad N bit può dipendere dal valore di tutte le 2 N linee di input, il numero di ingressi da valutare è 2 N; inoltre, se il fan-in (alias numero di ingressi) massimo di una certa classe di gate digitali vale F, certamente il modo di minimizzare il tempo di valutazione della somma è quello di eseguirla tramite una struttura di porte disposte ad albero. In ogni nodo intermedio dell albero possono afferire al più F connessioni, quindi il numero di livelli, o profondità dell albero, vale log F (2 N). Il limite di Winograd concerne il ritardo di valutazione della somma, legato ovviamente al numero di porte viste in cascata nel percorso più lungo, e vale allora: T = log ( 2 N) T ritardo F porta minimo logica Va tuttavia notata l assoluta mancanza di considerazione data dal criterio ad altri parametri vitali, quali il fan-out massimo delle porte logiche (ossia il numero massimo di porte pilotabili da una porta logica analoga), il ritardo dovuto alle connessioni, le differenze dei ritardi dovuti a diverse strutture di porta, etc.; si tratta insomma di un limite da assumere come linea guida qualitativa più che quantitativa Parte IIR : Ripple-carry e full-adder La più classica in assoluto tra le tecniche di somma è quella del ripple-carry. Essa trae spunto dalla meccanica dello svolgimento del calcolo binario: -70-
79 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap = = Il riporto (carry) viene generato dalla somma degli LSB e poi trasmesso verso sinistra, verso le somme dei bit più significativi, propagandosi come l increspatura di un onda (ripple). Il ritardo totale si compone di una parte iniziale, per generare il primo carry, e di N-1 ritardi ulteriori che ogni stadio aggiunge per valutare il proprio riporto in uscita. B 2 A 2 B 1 A 1 B 0 A 0 F.A. F.A. F.A. T fisso iniziale C C C C 0 T decisione carry Figura Schema a blocchi del sommatore ripple-carry Ogni bit degli addendi viene sommato con il suo corrispondente e con il carry proveniente dal bit immediatamente meno significativo; all inizio del computo quindi la configurazione in uscita all adder è data solo dalle somme monobit locali, dei due bit in ingresso in quel sito, salvo poi cambiare man mano che il carry attraversa tutta la struttura. Circuitalmente, questa modalità di effettuare la somma è senz altro la più semplice: basta predisporre 8 blocchi identici che leggano in input due bit appartenenti ai due addendi ed il riporto precedente, e che restituiscano un solo bit di uscita insieme al carry rielaborato; tali blocchi prendono notoriamente il nome di FULL ADDER (F.A. in figura), salvo il primo di -71-
80 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 essi che avendo Cin nullo può essere semplificato e divenire così un HALF ADDER.. Dato che l addizione elementare ha la seguente tabella della verità : Bit A Bit B Cin Bit Somma S Cout per integrare un FULL ADDER basterebbe dunque: - usare uno XOR ternario per il bit Somma : la funzione logica dell operatore OResclusivo, o XOR, è proprio quella di contare la quantità di 1 presenti sulle linee ai suoi ingressi, restituendo 1 se le linee affermate sono in numero dispari e 0 altrimenti (è una porta logica molto usata, infatti, nei controllori di parità delle linee di trasmissione e delle memorie). La colonna dell uscita ha proprio la caratteristica di riportare 0 quando sono bassi esattamente due o nessuno dei tre bit d ingresso. Esiste la possibilità di ottenere questo funzionamento ponendo in cascata due porte XOR da due input, perchè l operazione OR-esclusivo è di tipo serie, come AND ed OR e a differenza di NOT, NAND e NOR. Comunque sono state individuate altre strutture, a pass-transistor od anche dinamiche, che condensano una XOR da 3 ingressi in un layout più monolitico, quindi (indicando XOR con, notazione universalmente riconosciuta): S=A B Cin - per il bit Cout non sussiste la possibilità di sintetizzare immediatamente la funzione logica, solo osservando in maniera sinottica la tabella di verità; da elaborazioni più standard, le mappe di Karnaugh (si veda l Appendice 3), si ricava: -72-
81 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 Cout = A B+B Cin + A Cin = A B+Cin (A+B) dove l ultima espressione assume una forma interessante; la OR vale infatti per cui si potrà scrivere: A+B=A B+A B Cout = A B+Cin (A B+A B) = A B (1 + Cin) + Cin (A B) potendo allora elidere la prima istanza di Cin e scrivere infine : Cout = A B+Cin (A B) ( ) laddove si utilizza un risultato intermedio XOR già da calcolare per avere Somma. Piuttosto però di affidarsi subito, pedissequamente, alle tecniche automatiche di estrazione della rete logica dalla tabella di verità, è opportuno cercare di capire il meccanismo che la determina. Cout deriva da un termine dipendente soltanto dai due bit locali e da un termine propagativo, che tiene conto del valore del riporto precedente. In effetti, se A e B sono entrambi alti il carry esiste in uscita indipendentemente dal fatto che fosse giunto in Cin, e quindi si parla di carry generation: G=A B Diversamente, se è presente almeno uno tra A e B un eventuale riporto proveniente da destra riesce a procrastinare la sua corsa di un ulteriore stadio verso MSB, e si parlerà di carry propagation: P=A B (oppure A+B) Tra A B ed A+Bil caso che fa la differenza è quello in cui A e B sono ambedue ad 1 ; ma allora il carry si genera comunque e P non serve più, per cui le due espressioni sono equivalenti ai fini pratici. Talvolta serve anche introdurre un carry kill, che si -73-
82 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 verifica allorquando nè A nè B sono alti ed un riporto in arrivo viene assorbito nello stadio locale: K = A+ B Si può utilmente riscrivere la formula presentata sopra, alla luce delle nuove definizioni, come: Cout=G+Cin P Il full-adder potrebbe allora presentarsi in questo modo: A B G Vdd Cin A B P A B Cin K Cout S Figura Schema circuitale del full-adder con carry velocizzato E opportuno ricordare che il simbolo a farfalla rappresenta una transmission-gate (abbreviato tx-gate), cioè un interruttore controllato in tensione; resta chiuso quando il suo ingresso di pilotaggio non complementato vale 1, ed aperto viceversa. Lo schema è molto attraente nella sua semplicità, perchè consente di utilizzare la prima XOR in ambedue i percorsi di segnale e sembra appesantire il meno possibile la linea del -74-
83 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 carry; pur avendosi infatti Cout = f(cin), Cin non deve pilotare alcuna porta logica per produrre Cout, ma al peggio trasmettersi entro una tx-gate. Si nota oltretutto che la XOR tra A ebèesprimibilecome: A B = A B+ A B = A B+ A B+ A A+ B B = ( A B) ( A B) ( A B) ( A B) ( A B) ( A B) = + + = + = + per cui mostra parti condivise con NOT(G) e K; si possono quindi realizzare i sottoprodotti G e K e comporli per avere la XOR, potenzialmente risparmiando area. Il grave problema risiede però nella mancanza di rigenerazione dei livelli di tensione sulla linea del riporto; se non intervengono Kill o Generate di stadi intermedi, il segnale di carry rischia di doversi trasmettere dall LSB all MSB attraverso una cascata di 8-1 = 7 txgate (tutti meno l ultimo full-adder, che non deve propagare nulla). La linea è sufficientemente lunga e caricata capacitivamente da suggerire piuttosto l impiego di un fulladder più tradizionale che produca Cout mediante una logica statica, sintesi della espressione ( ) data in precedenza; l idea iniziale di G, P e K tornerà comunque utile con circuiti più lenti. In ambedue le situazioni, la peculiarità della catena di ripple-carry è quella di eseguire la somma in un tempo direttamente proporzionale al numero N di bit degli addendi, nel caso pessimo di generazione di riporto all LSB e propagazione continua sino ad MSB 5.Salvoil tempo iniziale di decisione del riporto C1, poi ad ogni blocco la parte di logica che è funzione di A e B si sarà già assestata e si avrà un ritardo fisso T decisione carry tra Cin e Cout; nel caso illustrato in Figura 3.2 il T decisione carry sarà pari a circa un ritardo di porta logica, mentre ne varrà due nel caso di realizzazione AND-OR come in ( ): Tripple carry = Tfisso + ( N 1 ) Tdecisione ( ) ( caso pessimo) iniziale carry L efficienza del sommatore a ripple-carry è dunque molto bassa, rispetto al limite di Winograd; non è certo il metodo migliore da utilizzare quando la preoccupazione principale risiede nella velocità. Per aumentare le prestazioni dell adder occorrerebbe sganciarsi dalla bieca meccanica del calcolo a mano delle somme, per inserire una qualche forma di parallelismo all interno del computo; perchè, ad esempio, attendere il riporto dal blocco precedente quando è possibile prevederlo con una rete logica a parte? 5 Si noti incidentalmente che il caso tipico della distanza di percorrenza dei carry intermedi dipende in modo logaritmico da N, come si dimostra con un analisi di tipo probabilistico. -75-
84 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap Parte IIR : Carry look-ahead (CLA) La strategia che aumenta la rapidità del sommatore prevedendo, sbirciando in avanti il carry in arrivo prende il nome di carry look-ahead (abbreviato in CLA). L idea basilare che la sostiene è la seguente : riportiamo nuovamente l espressione Cout = A B+Cin (A B) Ma Cin è il Cout* del blocco immediatamente a monte, di cui indicheremo ingressi ed uscite con un asterisco, e quindi Cout = A B+[A* B* + Cin* (A* B* ) ] (A B) e così via iterando le nidificazioni delle formule sino a giungere al blocco dell LSB, l half adder che stavolta ha Cin noto perchè uguale a 0. Adottando l espressione iniziale equivalente, per ogni singolo blocco Cout=G+Cin P e si giunge insomma ad avere, terminato il processo di riscrittura per il caso didattico di una parola da quattro bit (nibble), Cout = G i + {G i-1 + [G i-2 +(G i-3 +0 P i-3 ) P i-2 ] P i-1 } P i = ( ) =G i +P i G i-1 +P i P i-1 G i-2 +P i P i-1 P i-2 G i-3 +P i P i-1 P i-2 P i-3 0 di cui si elide l ultimo termine. Carry ci sarà, in sostanza, se generato nello stadio locale dall avere A e B entrambi alti, oppure se generato in uno stadio a monte e propagato dai successivi, che hanno A o B alto e dunque mantengono il carry fornito loro senza assorbirselo. -76-
85 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 B 2 A 2 B 1 A 1 B 0 A 0 G P G P G P C 0 C 3 C C 2 1 Rete CLA: C i = Gi-1+Gi-2 Pi-1+Gi-3 Pi-2 Pi Figura Schema a blocchi del sommatore con carry look-ahead Una valutazione dei ritardi fatta osservando la formula del look-ahead porterebbe alla drastica conclusione che bastano 2 ritardi di porta per ottenere qualsiasi Cout, dato che i livelli logici sono sempre e solo una AND + una OR; ma va tenuto naturalmente in considerazione il limitato fan-in delle porte logiche, che nel caso CMOS permette velocità elevate solo se resta almeno al disotto di 4. Un blocco AND più grande diventa troppo lento per motivi realizzativi, ed il suo utilizzo rende a lungo andare svantaggioso il look-ahead; dovendo trattare dei byte nel nostro caso, non è possibile immaginare la costruzione di porte AND da addirittura 7 ingressi per tradurre l espressione P 6 P 5 P 4 P 3 P 2 P 1 G 0, altrimenti si finirebbe per andare più lenti del caso ripple. Occorre limitare l estensione del prodotto logico al più a tre termini (e trattandosi di calcoli a 200 MHz è un limite ancora benevolo); e qui fortunatamente si nota che la sequenza AND-OR ha una formulazione estremamente regolare, che ne rende possibile un implementazione molto modulare. E possibile cioè applicare questa tecnica in maniera ricorsiva; tutto consiste nel leggere in maniera appropriata la formula ( ) data, identificando i termini che fanno le veci dei G e P composti : Cout = G i +P i G i-1 +P i P i-1 G i-2 +P i P i-1 P i-2 G i-3 + P i P i-1 P i-2 P i-3 Cin deve equivalere ad una forma del tipo Cout = G +Cin P,e siha: G composto = G i +P i G i-1 +P i P i-1 G i-2 +P i P i-1 P i-2 G i-3 P composto = P i P i-1 P i-2 P i-3-77-
86 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 DaiblocchielementaridisommadeisingolibitsipossonoricavareisegnaliGeP;ma essi allora non devono essere elaborati in un livello solo avente fan-in elevati, bensì gerarchicamente, in più livelli aventi fan-in inferiori (in gergo, si tratta di passare da una rete sviluppata orizzontalmente ad una rete più verticale ). Partiamo da una rappresentazione a livello di porta logica, che sarà il livello-base della ricorsione: B A Generate Propagate S (parziale) Figura Schematico della rete elementare di calcolo di G e P, per il singolo bit Da qui si passa poi al livello superiore, con le stesse funzioni look-ahead al suo interno: Dati B3 A3 B2 A2 B1 A1 B0 A0 f(dati) f(dati,cin) Cin Gcomposto S3 S2 S1 S0 G3 P composto Uscite dati P3 Figura Blocco carry look-ahead basilare da 4 bit -78-
87 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 in cui G e P composti vengono prodotti rielaborando i G ed i P elementari forniti in Figura 3.4, tramite reti del tipo : G3 P3 G2 P2 G1 P1 G0 G composto G3 Figura Rete per il calcolo del Generate composto, su 4 bit Le uscite di blocchi da 4 bit come il precedente possono poi essere inviate a blocchi di livello ancora superiore, del tipo: G,P composti G15 P15 G11 P11 G7 P7 G3 P3 f(g,p) f(g,p,cin) Cin (qui è C0) G' composto G15 P' composto P15 C12 C8 C4 Carry calcolati Figura Blocco di livello superiore nella gerarchia del look-ahead e così via. Ecco allora come trarre vantaggio dalla modularità del look-ahead per spezzare la catena di riporto, ed abbassare così il fan-in richiesto allo schematico. La gerarchia imposta -79-
88 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 dai livelli di formulazione ricorsiva delle espressioni di look-ahead genera anzi un albero, e non più una catena, di riporto. Tentare di riutilizzare le combinazioni AND usate per riporti precedenti al fine di accorciare quelle successive non paga: dalla riscrittura di... + P i P i-1 G i-2 +P i P i-1 P i-2 G i come... + P i P i-1 ( G i-2 +P i-2 G i-3 ) +... scaturisce solamente una riedizione del sistema a ripple-carry, perchè il numero di stadi da attraversare torna ad aumentare, pur diminuendo contestualmente il fan-in occorrente. Un confronto con il limite di Winograd porta a risultati molto migliori che non nel caso ripple, ovviamente: grazie al partizionamento gerarchico subìto dalla rete di CLA, ad ogni livello si hanno davvero 2 soli ritardi di porta, perchè OR ed AND hanno fan-in basso e non sono da suddividere in AND di porte AND od OR di porte OR. Se il numero di bit è N ed il fan-in massimo ammesso è F, i blocchi elementari saranno al massimo da F bit e l albero risultante dalla ricorsione avrà log F N livelli, da cui : = percorso critico =GePdelblocco = carry definitivo B A B6 A B5 A B A B A B A B A B A C 7 C C C C C C CLA 1 livello CLA 1 livello CLA 1 livello CLA 1 livello CLA 2 livello CLA 3 livello CLA 2 livello (al blocco CLA successivo) Figura Albero gerarchico della tecnica look-ahead e percorso critico -80-
89 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 Tcarry look ahead = Tfisso iniziale + 2 Tporta N livelli attraversati = ( caso pessimo) logica ( ) = T N livelli albero 1 T = fisso iniziale = T + ( 4 log N 2) T fisso iniziale F porta logica porta log ica in cui finalmente si ottiene dipendenza logaritmica, e non lineare, dalla quantità di bit da processare. Un altro risvolto pratico a favore dell utilizzo di una metodologia di calcolo a carry look-ahead concerne lo sforzo di progetto, il quale va orientato precipuamente ad ottimizzare i percorsi per il bit più significativo finale, mentre poi i dati intermedi verranno generati semplicemente clonando delle parti della rete sintetizzata. Il partizionamento dell addizionatore da un byte che ci serve risulta comunque assai problematico bit possono essere divisi in due blocchi da 4, il meno significativo dei quali produca G e P composti che vanno in una semplice porta AND-OR con Cin; ma Cin = 0, per cui serve trasmettere solo G come riporto in input al secondo blocco (il carry si può generare, ma non certo propagare in un blocco che non ha riporto al suo ingresso!). La sola rete di G conserva comunque un aspetto formidabile, sapendo che il tutto ha 5 ns di tempo per funzionare, per giunta condivisi con i registri; si veda la Figura Il byte allora può partizionarsi in quattro pezzi da 2 bit; la rete di look-ahead esterna vede comunque 4 ingressi G e 4 ingressi P, per cui rimane piuttosto ardua da integrare; ma stavolta è unica, non va ripetuta. All interno del singolo blocco poi il look-ahead si traduce con poca spesa, essendo P composto = P 1 P 2 G composto = G 2 +P 2 G 1 In definitiva, questa seconda scelta è per ora la migliore. -81-
90 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap Parte IIR : Carry select, o somma condizionale Fino ad ora non si è ancora introdotta alcuna forma di parallelismo nella somma; eppure è noto come la circuiteria digitale veloce, quantomeno a livello di microprocessori, faccia un utilizzo estensivo di questa modalità di funzionamento. L unico lasso di tempo condiviso da tutti i blocchi dell adder è finora T fisso iniziale, in cui si valuta la somma dei bit di ingresso (o meglio A B, il loro OR esclusivo) al netto dell influsso del carry, di cui poi occorre attendere l arrivo per completare l elaborazione dei dati. Un metodo per velocizzare la somma è quello di predisporre non solo una parte dell addizione medesima, da completare a posteriori aspettando l arrivo del carry, ma preparare addirittura tutta l addizione nelle due versioni occorrenti, proprio in quegli istanti comuni T fisso iniziale. Si eseguiranno quindi due somme, completamente in simultanea: una che assume a priori che il carry in arrivo sarà alto, e l altra viceversa. Quale delle due vada effettivamente posta sulle linee in uscita verrà deciso poi dall arrivo del carry, che tuttavia in questa nuova configurazione non interviene più come ingresso di una logica combinatoria, ma solo come selettore; in pratica, governa un multiplexer che commuta l una o l altra delle due opzioni verso l output del blocco. Tale tecnica di somma viene denominata somma condizionale, o con riferimento alla funzione svolta dal riporto anche carry select. Va da sè che anche il carry Cout, in uscita dal blocco, è influenzato dal valore di Cin; e la filosofia va mantenuta, predisponendo anche due versioni di riporto tra cui scegliere mediante Cin. Per chiarire il concetto è utile fare riferimento al caso di un blocco monobit; naturalmente, in mancanza di carry le formule per S e Cout restano quelle dell half adder : Cin = 0 S = A B Cout = A B (*) e convenzionalmente chiameremo SN e CN questi risultati parziali, per indicare la Non esistenza del Cin; mentre se il riporto si suppone esistere in ingresso si avrà: Cin = 1 S = A B 1 = A B Cout = A B + ( A B) = A + B (**) -82-
91 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 e queste linee assumeranno il nome di SE e CE, per indicare Esistenza del carry. Lo schema del singolo blocco condizionale è il seguente : A B Blocco CARRY Blocco CARRY 1 0 SE CE SN CN MUX2 MUX2 Cin Cout S Figura Schema elementare di carry select, sul singolo bit mentre ai soli fine del riporto il tutto si può rappresentare così : B 2 A 2 B 1 A 1 B 0 A 0 CN CE CN CE CN CE α.t fisso iniziale MUX2 MUX2 MUX2 C 3 C 2 β. C 1 T decisione carry C 0 Figura Schema a blocchi del sommatore carry select Per ogni blocco, dai due bit A i eb i in ingresso si è passati a quattro possibili uscite, e ciò in un unico colpo per tutto il sommatore; quattro linee che convergono però due a due ai multiplexer comandati da Cin; le due uscite reali verranno selezionate poi, dalla catena di riporto... e proprio qui si offre un ulteriore possibilità di aumentare la velocità della tecnica di somma. -83-
92 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 Di solito l applicazione del look-ahead e del carry select non è contemporanea; segnatamente, la catena di propagazione dei riporti per il caso di somma condizionale funziona a ripple, trasmettendo il Cout vero uscito dal multiplexer in avanti, ai blocchi successivi. Questo porta ad un ritardo di calcolo che aumenta di nuovo linearmente con N, numero di bit; l unico vantaggio sta nella riduzione, che è comunque sensibile, del T decisione carry citato sin dalla prima formula ( ) del ripple: T = α T + ( N 1) β T α> 1, β< 1; carry select ( caso pessimo) fisso iniziale decisione carry L aumento del T fisso iniziale conseguente alla accresciuta complicazione del calcolo di SE,CE,SN e CN pesa molto meno rispetto al risparmio in T decisione carry proprio a motivo del parallelismo delle operazioni preliminari, che si esplica nella presenza di un termine solo, non moltiplicato per il numero di stadi. Nulla impedisce però che si faccia ricorso ad una catena di tipo look-ahead anche con blocchi a carry select; si otterranno così i vantaggi di una propagazione in tempo logaritmico dei riporti e di un parallelismo iniziale che alleggerirà poi i ritardi dei carry Parte IIR : Carry select + Carry look-ahead La coesistenza delle due tecniche fuse in una, carry select + carry look-ahead, riesce assolutamente naturale; basta che la struttura logicamente più esterna, che è la rete del lookahead, si adegui a gestire non più dei segnali di tipo G(enerate) e P(ropagate), ma le due uscite di riporto ora disponibili: CE e CN. Analizzando le modifiche da apportare alle formule che elaboravano G e P per riadattarle alla nuova configurazione del circuito, ci si accorge peraltro di un fatto notevole: - G era dato da A B; ma anche CN vale A B, perchè il riporto all uscita di un blocco senza riporto in ingresso o si è ivi generato o non si ha; - P era dato da A B, ma anche A + B sarebbe servito allo scopo perchè basta che almeno uno tra A e B sia alto per ritrasmettere un carry; ed anche CE vale A + B, perchè il riporto all uscita di un blocco che ha Cin = 1 o si è ivi propagato e si ha 1, oppure è stato assorbito dall essere A = B =
93 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 All atto pratico non va quindi aggiunto nulla; gli schemi delle parti di sommatore sintetizzate per usare la tecnica di somma condizionale già forniscono G = CN e P = CE alla rete di look-ahead senza colpo ferire. All albero di look-ahead come era stato prospettato in precedenza va anzi levato l intero livello superiore, degli ADDER iniziali (tecnicamente parlando : delle foglie terminali). Senza invocare la modularità delle espressioni per avere G e P, ora infatti essi sono già disponibili; ne deriva che N nuovi livelli albero vale adesso ( log F N) - 1, avendo tolto un livello. Il ritardo di calcolo sarà del tipo : Tcarry select+ look ahead = α Tfisso iniziale + 2 Tporta N livelli attraversati = ( caso pessimo) logica ( ) = α T N nuovi livelli albero 1 T = fisso iniziale = T + ( 4 log N 6) T, α > 1 fisso iniziale F porta logica porta log ica B 2 A 2 B 1 A 1 B 0 A 0 CN CE CN CE CN CE C 3 MUX2 MUX2 MUX2 C C 2 1 Rete CLA: C i = Gi-1+Gi-2 Pi-1+Gi-3 Pi-2 Pi C 0 Figura Schema a blocchi del sommatore carry select + carry look-ahead Parte IIR : Carry save (applicazione del pipe-line alla somma binaria) Da quanto mostrato si evince la convenienza di associare le due tecniche; e ciò verrà senz altro fatto, nel circuito. Il metodo trovato però sfrutta il parallelismo della prima sezione di calcolo, per poi mantenere intatta la lunghezza della catena di riporto che va attraversata; è evidente che, nonostante l andamento dei ritardi sia logaritmico con il numero di bit grazie al -85-
94 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 look-ahead, si potrebbe trarre ancora un discreto vantaggio dal partizionamento dell operazione in tronconi. La somma si presta benissimo ad essere partizionata in più operazioni elementari, viste le sue proprietà di spiccata modularità che già in parte abbiamo potuto esplicare. Segnatamente, l addizione di 8 bit può trasformarsi in due addizioni contemporanee di 4 bit più il salvataggio del riporto. Sommare 8 bit comporta attivare dei full-adder e far scorrere il carry, nel caso più semplice; ma allora si potrebbe: sommare i primi 4 bit meno significativi interrompere la catena di riporto a metà, salvando il carry in una memoria temporanea riprendere i calcoli al ciclo successivo, sommando i 4 bit più significativi con il riporto iniziale ripreso dalla cella di memoria. Se i bit che si presenteranno agli input della seconda metà del circuito (preposta alla somma degli MSB) saranno essi pure ritardati di un colpo di clock, si vedranno recapitare dalla cella il carry relativo alla prima metà dei bit di quella stessa parola, e la somma verrà completata correttamente. E il concetto di pipe-line, che nello specifico assume la denominazione tecnica di carry-save; una metodologia che veniva usata addirittura ai tempi dei tubi elettronici, e che è tornata in auge negli anni 80 con l aumentare delle lunghezze di parola da manipolare per sistemi a microprocessore con voci sempre più estese. Il pipe-line, più in generale, è una filosofia di ottimizzazione dei processi: nei circuiti DSP di tipo tradizionale gli stadi che compiono le fasi iniziali del processo completo vengono attivati subito all arrivo dei dati, li trattano, e poi restano completamente inutilizzati sino all arrivo del dato successivo; visto che il tempo di completamento dell operazione sarà lungo, l efficienza totale di un processore siffatto è alquanto scarsa. Meglio invece tenere sempre occupati tutti i circuiti che si trovano lungo il cammino dei dati, facendo giungere loro dei pacchetti di dati semi-elaborati su cui possano effettuare la loro funzione aumentando il grado di rifinitura dell elaborazione; ciò in analogia con il lavoro in catena di montaggio. Come esempio consideriamo un flusso di addendi del tipo:...,(u V),(W X),(14 151),(Y Z),(J K),
95 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 La somma = 165 indicato con A LSB ed un adder per i 4 MSB chiamato A MSB,in: può allora trasformarsi, usando un adder per i 4 LSB = Clock=x-1... Clock = x Clock = x+1 A LSB somma LSB W+ LSB X, numeri precedenti A MSB somma U MSB +V MSB, numeri precedenti A LSB somma LSB LSB 0111 = 0101 più Carry intermedio = 1; A MSB somma W MSB +X MSB, numeri precedenti A LSB somma LSB Y+ LSB Z, numeri successivi A MSB somma 0000 MSB MSB + Carry intermedio = 1010; Ogni sezione è sempre occupata; dovendo inoltre svolgere operazioni più semplici, può essere temporizzata ad una velocità superiore. L unica controindicazione risiede nell aumento della latenza iniziale del risultato; il ritardo introdotto nel flusso dei dati è però di un solo ciclo di clock, se il partizionamento del blocco sommatore si riduce a due soli sottoblocchi. Un ottima idea realizzativa è quindi : B 2 A 2 LATCH RITARDO B 1 A 1 B 0 A 0 CN CE CN CE CN CE MUX2 C 2 MUX2 MUX2 C 0 C 2 C 1 C 3 CLA... F.F. Carry Save Rete CLA: C i =... Figura Schema a blocchi del sommatore carry save+carry select+carry look-ahead -87-
96 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 Ovviamente il carry-save non interferisce con le due tecniche già proposte; limita soltanto il numero di porte logiche necessarie al look-ahead per produrre il riporto più lontano. Peraltro va notato immediatamente che la complessità dei blocchi look-ahead aumenta molto in fretta con l aumentare del numero di blocchi da servire; levare anche un solo C i, fermandosi ac i-1, fa risparmiare una porta AND ed una OR magari di dimensioni 3 o 4, o maggiori ancora se non si era utilizzata una struttura ad albero. D altro canto il pipe-lining in generale richiede un surplus di area per i registri di immagazzinamento temporaneo dei dati; in alcuni progetti l area necessaria è una percentuale molto sensibile dell occupazione totale, e sarà solo a livello di schematico che il bilancio potrà essere eseguito e presa una decisione. In conclusione, un utile miglioria da apportare alla tecnica carry select + carry lookahead qualora essa non dovesse funzionare adeguatamente è l aggiunta di uno stadio di carry-save Parte IIR : altre tecniche alternative di somma Nel corso del progetto sono state prese in considerazione anche altre tecniche di somma, poi non applicate nella soluzione finale, che per completezza sono illustrate in questo paragrafo; la sua mancata lettura non comporta comunque perdita di continuità per il lettore. Somma canonica : Una particolare metodologia di somma veloce, raramente usata nella pratica circuitale, è l addizione canonica. Il nome rispecchia bene la meccanica del metodo; si tratta di un applicazione puntuale della definizione canonica di addizione per ogni bit dell uscita. Dovendo per esempio sommare 4 e 3, si ha: =? Il primo bit non ha carry, e la somma vale localmente A0 B0 = 1. Il secondo legge A1 e B1, esegue A1 B1 = 1, e pone in XOR l 1 ottenuto con A0 B0.IlterzobitesegueA2 B2 = 1, e ha una rete logica che legge ancora A1 e B1 nonchè A0 e B0 per produrre ex novo -88-
97 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 l espressione A1 B1 + (A1 + B1) (A0 B0) che è poi il suo carry in ingresso. Ogni posizione binaria dell uscita ha insomma associata una rete AND-OR del tipo look-ahead, ma che legge direttamente i bit in ingresso senza prelevare G e P da uno stadio apposito unico. Per saltare un livello di porte logiche ci si sobbarca ad ogni posizione dell onere di eseguire tutta la catena di riporto; non più quindi S i =(A i B i ) (G i-1 +P i-1 G i-2 +P i-1 P i-2 G i ) ma addirittura S i =(A i B i ) ((A i-1 B i-1 )+(A i-1 +B i-1 ) (A i-2 B i-2 )+(A i-1 +B I-1 )... ) A3 A2 A1 A0 C 0 Cin=1 C 3 C 2 C 1 S3 S2 S1 S0 Figura Sommatore canonico (incremento unitario) La velocità raggiunta è massima, teoricamente; con 2 ritardi di porta si ottengono tutti i riporti. Restano comunque gravi problemi di sintesi delle porte AND, che si è giocoforza obbligati a separare in alberi per calare il fan-in; e poi, anche per parole relativamente corte, sussiste una progressione aritmetica della quantità di transistori necessari. Nelle applicazioni pratiche le difficoltà di connessione e lo spreco di area dovuti al grande numero di porte sono soverchianti; l unico caso in cui il metodo diviene appetibile è quello del semplice incremento -89-
98 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 di una quantità. Sommare +1 comporta in effetti avere una rete di generazione dei riporti a partire da un solo bit, dato che l altro addendo è ; ed è un caso notevole, visto che nelle rappresentazioni in complemento a due la conversione positivo negativo prevede negazione ed incremento dell operando. Nel nostro schema di sottrattore però si è proceduto a sommare 1 mediante il trucco del carry in ingresso al primo blocco di addizione, risparmiando così parecchio in termini di area e consumo. Somme in Aritmetica dei residui : Un altra tecnica che risolve alla radice il problema della propagazione del carry è quella basata sulle cosiddette aritmetiche dei residui; esse infatti non fanno alcun uso di riporti intermedi ( si veda al proposito di nuovo Waser-Flynn, [16]). Il sistema numerico dei residui consta di una rappresentazione dei numeri interi ottenuta associando ad ogni quantità una n-pla di resti rispetto ad N numeri, primi tra di loro; indicheremo quest ultimi con P i. Per il teorema che va sotto il nome di Teorema del Resto Cinese, esiste una corrispondenza biunivoca tra l insieme degli M = N P i i=1 numeri interi compresi tra 0 ed M-1 e le n-ple suddette; un semplice esempio pratico può essere: Numeri da rappresentare Coordinata 1 - Base P 1 =2 Coordinata 2 - Base P 2 = Si possono dunque istituire una serie di operazioni matematiche sul nuovo sistema algebrico individuato, per poi riconvertire univocamente il risultato trovato nel sistema classico di partenza. Il calcolo di una somma va eseguito nella maniera seguente, ad esempio: -90-
99 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap (0 1) + 5= (1 2) = (1 0) =3=9mod6 in cui interviene già la modularità che è caratteristica intrinseca anche di queste strutture algebriche; le due cifre delle colonne nel risultato tra parentesi sono ricavate calcolando la somma delle colonne sovrastanti, modulo 2 e modulo 3 rispettivamente. Per ogni singola colonna le addizioni vengono svolte normalmente, in matematica modulare, e quindi richiedono una gestione del carry; ma tra le diverse colonne non vi è comunicazione alcuna. Ciò comporta una netta riduzione della complessità del problema di gestire i riporti in somme tra addendi a molti bit; la catena di propagazione del carry passa da un caso pessimo legato alla quantità di bit totali degli operandi, ad uno legato al massimo valore di P i prescelto; segnatamente, nella prova eseguita si passa da due fasi di ripple necessarie (per 4 e 5, cioè 100b ed 101b) ad una sola (per il massimo modulo, che è 3 alias 11b). Il vantaggio è ancora più evidente allorquando si prendono in considerazione somme a molti bit; il numero di stadi da servire con il carry aumenta molto lentamente rispetto al caso analogo di implementazioni dirette. Oltre ad avere conservato il requisito della modularità, fondamentale per l applicazione in questione, si noti come sia stato anche mantenuto invariato il trattamento delle sottrazioni; come quantità negative potremo considerare la prima metà delle terne residuali ottenute, mentre numeri positivi saranno ritenuti quelli mappati da M/2 in poi nella tabella delle corrispondenze.. Nel nostro caso, avendo l insieme da rappresentare una cardinalità 193 (0 192) dovremo scegliere un insieme di numeri P i, sperabilmente piccoli, che garantiscano un M sufficiente; i primi atti allo scopo sono 2,3,5 e 7 la cui produttoria fornisce 210. Meglio della quaterna data si può fare con la terna 8,7,5 (produttoria 280); la logica suggerisce in effetti lo sfruttamento delle potenze di 2, in quanto ben manipolabili circuitalmente per la determinazione dei residui. I vantaggi acquisiti nell esecuzione delle operazioni sono infatti indubbi; resta però da definire come passare da una rappresentazione normale alla terna di valori corrispondente e viceversa. -91-
100 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 Il calcolo dei residui rispetto ad una base del nuovo spazio numerico che sia del tipo 2 n è diretto: basta prendere gli n-1 bit meno significativi. Per le basi del tipo 2 n -1, comeil7 proposto sopra, il computo è ancora semplificato grazie a speciali algoritmi. Per le altre basi, come 5, il ricorso a blocchi di memoria ROM è però obbligato, e ciò comporta un esteso utilizzo di look-up table in questa fase. La fase inversa (residui numeri interi) purtroppo è ancora più legata all uso di tabelle: si tratta di rimoltiplicare le colonne del risultato per le rispettive basi P i e risommare il tutto. Il ricorso ai blocchi di memoria, come si è già osservato valutando altre soluzioni a livello architetturale, mal si sposa con il bisogno di velocità insito nel problema e con la semplicità di un layout di tipo full-custom; benchè le memorie necessarie siano di piccole dimensioni resta comunque l albero delle decodifiche di riga da realizzare, che dovendo indirizzare 256 celle può essere convertito in una matrice di due alberi ortogonali da 16 rami finali (16 16 = 256), i quali comportano comunque 4 livelli di interruttori. Pure per eseguire le somme all interno di ogni colonna si fa uso di tabelle preordinate; se è facile sommare modulo 8 con le tecniche binarie consolidate, sommare modulo 7 e modulo 3 non lo è affatto. Esiste un alternativa circuitale che limita l uso delle ROM in questa sede sfruttando particolari regolarità della divisione modulo 2 n-1 ; ma servirebbero comunque decodificatori dei registri dei residui, e uso di registri a ricircolo dei dati (barrel shifter) che nel caso di base 3 richiedono già una ventina di porte logiche. In conclusione, la strategia di usare aritmetiche di tipo residuale si rivela troppo onerosa circuitalmente per parole da 8 bit, anche perchè ogni apparato di addizione testè visto va ripetuto almeno 3 volte all interno del decimatore. Per lunghezze di parola più estese tale possibilità va tuttavia tenuta seriamente in considerazione, anche in forza della disponibilità di blocchi ROM di medie dimensioni concessa dalla progettazione a celle standard e dell abbattimento dei loro tempi di accesso che le nuove tecnologie continuamente consentono. Somma ad addendi multipli : Un cenno merita la somma di tipo multiplo; se si fosse scelta la forma diretta di realizzazione della nostra funzione di trasferimento, questo sarebbe stato potenzialmente il metodo da seguire : predisporre più di un full-adder per cifra. La somma a quattro addendi = 10 si esegue normalmente per colonne, infatti : -92-
101 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap A B C + 11 = 1 1 = D = riporto = 1010 ; Il riporto può stavolta essere anche 2, nel caso pessimo mostrato, e non solo 1; come manipolarlo? Per ogni colonna si predispongono due full-adder; il primo legge tre bit rispettivamente da A, B, C (due sulle linee di dato, il terzo su Cin); il secondo legge l uscita del primo, il quarto bit preso da D, ed un carry della colonna precedente. La colonna ha due full-adder; ma allora ha anche due carry, e quindi il riporto 10 precedente può essere rappresentato senza problemi. L operazione si conclude con una somma, magari a CLA o carry-select, dell unica serie di riporti intermedi rimasta ( column carry ) e delle uscite dei sommatori. Si nota incidentalmente che comunque la velocità richiesta ai sommatori da 4 ingressi sarebbe stata eccessiva, ai 200 MHz; a meno di non proporre pipe-line intermedio, come si è già fatto a suo tempo nel Capitolo 2. Sommatori di Ling : Un ultima struttura di sommatore veloce individuata è l adder di Ling, che qui si cita solamente perchè ha fornito un idea circuitale applicata poi in maniera differente, come si vedrà nel Capitolo 4. Il suo principio di funzionamento si basa su una riscrittura delle formule di riporto ottenuta lavorando su paia di cifre binarie e non su bit singoli; oltre ad un ovvia compressione del numero degli operandi, si ottiene di calcolare i carry da funzioni logiche implementabili in maniera particolarmente efficace in tecnologia ECL (Emitter Coupled Logic). Ciò accade perchè in ECL ogni porta fornisce un uscita e la sua complementare, e soprattutto perchè è ivi ammesso eseguire il cosiddetto Wired-OR od OR-cablato, che fa risparmiare di colpo un ritardo di porta; le formule necessarie abbisognano infatti di queste caratteristiche, e il circuito ne fa un punto di forza. La peculiarità che si è tentato di mettere a -93-
102 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 frutto nel nostro schema è naturalmente la predisposizione dei transistori bipolari a supportare l OR-cablato, e quindi a saltare un ritardo logico Parte IIR : Progetto a livello logico delle tecniche individuate A questo punto del progetto si conosce il tipo di funzionamento che può consentire al circuito di svolgere il calcolo entro i 5 ns assegnatigli; occorre implementare blocchi di tipo carry-select, che si trasmettano il riporto attraverso una rete di look-ahead. Dei blocchi a somma condizionale si era già data addirittura un espressione logica compiuta del funzionamento, nel caso semplice di blocco da 1 bit; resta da decidere la dimensione dei blocchi ottimale. Intanto, le ragioni della regolarità impongono una restrizione della scelta entro tre possibilità : 1-8 blocchi da 1 bit, oppure 2-4 blocchi da 2 bit, o ancora 3-2 blocchi da 4 bit. Blocchida3o5bitcomporterebberoinfattiunutilizzo parziale del numero di bit supportato, cioè 9 bit (3 pezzi da 3) o 10 (2 pezzi da 5). 1) - Le fette da 1 bit sono molto compatte e semplificano grandemente lo sforzo di design; inoltre, la modesta fatica di progettazione riposta nella singola cella produce poi 8 cloni identici, per cui si ha veramente un alta resa del lavoro di messa a punto dello schematico prima, e del layout in seconda istanza. La cella base sintetizza le espressioni date in (*) e (**) : -94-
103 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 B A SE SN Cin CN CE S Figura Cella da 1 bit del sommatore carry select E pur vero però che la rete CLA assume proporzioni difficilmente tollerabili. La Figura 3.6 proposta in precedenza per la generazione di G composto - G3 riguardava un caso a quattro ingressi, e già il fan-in delle AND richieste poneva seri problemi di performance al circuito. Il settimo bit della configurazione attuale richiederebbe porte AND con improponibili fan-in pari a 7, per valutare l espressione P 6 P 5 P 4 P 3 P 2 P 1 G 0 ; sarebbero stringhe di transistori MOS in serie con fortissimi problemi di pilotaggio delle porte a valle, che risulterebbe estremamente lento. Il ricorso all albero di CLA porterebbe almeno a calare il fan-in sino a 4, come già visto; ma sembra aleatorio basare un progetto con caratteristiche di rapidità di commutazione così spinte su porte così macchinose. Vale la pena di inserire già qui un piccola stima del ritardo introdotto da porte NAND sul segnale, solo per dare un ordine di grandezza a quanto si va affermando. Ipotizzando, e ciò è già ottimistico dato che i transistori andranno allargati, che il segnale in ingresso sia un gradino ideale, si esamini la transizione pessima cui la porta è sottoposta : gli ingressi salgono tutti simultaneamente. Si ha una accensione idealmente istantanea dei quattro MOSFET connessi verso massa, ed il cammino resistivo finale si valuta essere pari a circa 4 ( 10KΩ ) =40KΩ, a pilotare una capacità stimabile attorno ai 30 ff; se ne ha R C = 1.2 ns, ossia il 24% del periodo a disposizione. -95-
104 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 Vdd OU A 30 ff B C 10 KΩ D Figura Porta logica CMOS, con percorso resistivo verso massa La stima andrebbe poi gravata dei tempi di commutazione non nulli dei MOSFET, delle capacità delle connessioni tra porta e porta nonchè di altri pesanti effetti spuri (effetto body), che saranno esaminati in dettaglio nei capitoli a seguire; tutti peggioramenti che segnalano al progettista la criticità di un approccio del genere. Spezzettare ulteriormente l albero di look-ahead sarebbe possibile; ma ci si ritroverebbe con una topologia che è esattamente quella rappresentata nell albero di CLA della Figura 3.8 corrispondente, nel paragrafo 3.4, cioè con 5 passaggi di look-ahead in cascata da attraversare nel caso pessimo; e per quanto possa essere elementare la funzione realizzata da ogni blocchetto CLA, non si ritarda meno di due porte logiche AND-OR ad ogni passaggio. 2)- Come già si era visto in sede di valutazione del puro look-ahead, anche nell attuale caso misto una parte della complessità della rete di riporto può essere vantaggiosamente conglobata nei blocchi iniziali, alleggerendo quelli del CLA esterno. -96-
105 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 Resta da gestire un totale di 3 coppie G e P (l ultimo blocco non dà carry per un eventuale 9 bit, perchè l aritmetica usata è modulare), che comporta l uso di AND ed OR da 3 input; il minimo fan-in raggiunto, perchè al punto 3) si giungerà ancora a determinare la necessità di porte logiche più grandi, a 4 ingressi, scomponendo diversamente l operazione. Questa volta la rete sembra oltretutto fattibile con successo, stante la possibilità di ingegnerizzare tali ingombranti gate da tre input regolando la dimensione dei dispositivi fisici che li compongono, e pilotandone in sequenza opportuna gli ingressi. I blocchi iniziali devono dunque leggere 2 bit dall addendo A (Ax,Ay) e 2 bit dall addendo B (Bx,By), e produrre 2 bit di somma (Sx,Sy) nonchè due opzioni per il carry composto uscente dal di-bit (CE,CN) : - le somme sono scelte dal Cin tra le due possibilità preparate a priori, SNx ed SEx per la posizione meno significativa ed SEy e SEy per l altro bit; le espressioni saranno : SNx = Ax Bx SEx = Ax Bx perchè derivando dalla consueta formula S=A B Cin, se Cin = 0 la XOR iniziale resta invariata e viene complementata viceversa; e ( ) SNy = Ay By Ax Bx SEy = Ay By ( Ax + Bx) perchè S=A B Cx (alias carry uscente dal blocco x ); ma se Cin = 0 Cx può solo essere il Generate, Ax Bx; e se Cin = 1 Cx dipende dalla possibilità di propagarlo, Ax + Bx. - i carry presentano all uscita ambedue le opzioni : CN = ( Ay By) + ( Ay By) ( Ax Bx) CE = ( Ay By) + ( Ay By) ( Ax + Bx) perchè il carry in uscita si può generare al secondo stadio, oppure generarsi al primo e propagarsi; esiste solo questa possibilità se Cin = 0, mentre per Cin = 1 anche la possibilità di -97-
106 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 propagazione attraverso il primo stadio va sommata al risultato, e allora Ax Bx + Ax Bx = Ax + Bx nell espressione di CE. Lo schematico risultante è allora: By Ay Bx Ax SNy SEy SEx SNx Cin CN Sy CE Sx Figura Cella-base da 2 bit del sommatore carry select Il procedimento seguito per arrivare ad una sintesi della rete logica che realizza le funzioni presentate per i singoli blocchi da due bit si è imperniato sulla comprensione della meccanica del carry select; le porte sono poste dove serve un operazione logica del loro tipo, a ragion veduta. E stato tentato un ulteriore approccio alternativo, che si basasse solo sulla derivazione automatica della rete implementante dalla tabella di verità: l algoritmo di sintesi è consistito -98-
107 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 nella mappa di Karnaugh 6. Lo sviluppo del metodo, almeno per la parte riguardante le uscite CE e CN, è riportato nell Appendice 3; il risultato finale della derivazione è: CN = Ax Ay + Bx Ay By + Ax Bx By CE = (Ax+Ay) (Bx+Ay+By) (Ax+Bx+By) Dalle due espressioni ci si rende conto della pesantezza di una siffatta realizzazione logica dei carry; l uso di una sintesi maggiormente basata sulla valutazione intelligente delle funzioni occorrenti ha portato ad avere una rete sicuramente più efficiente. Non sarebbe valso a migliorare l implementazione trovata nemmeno l uso di una tecnica a multiplexer; in pura teoria, infatti, la tavola di verità dell intero blocco elementare da 2 bit può essere tradotta in una look-up table. Essa prevede 16 linee collegate alla massa comune o all alimentazione da un lato, e dall altro all uscita a cui possono trasmettere il loro stato logico attraverso una serie di 4 interruttori; data la configurazione dei segnali di ingresso, una sola linea è quella ammessa in output. Ogni blocco dovrebbe prevedere ben 6 di queste strutture, però; ed è facile immaginare il carico capacitivo gravante sugli ingressi, nonchè la contorta topologia delle connessioni necessarie a livello di layout fisico; ogni multiplexer sarebbe composto da 16 fette del tipo : Vdd OUT Ax Bx Ay By Figura Percorso singolo di una funzione logica cablata con multiplexer 6 Una valida alternativa si poteva trovare nell algoritmo di Quine-McCluskey; non avendo però un elevato numero di variabili logiche in gioco e dovendo svolgere l operazione a mano si è ritenuto opportuno optare per le più semplici mappe di Karnaugh, che restano in assoluto il metodo più classico in questo settore. -99-
108 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 con relativi invertitori iniziali per il pilotaggio delle linee complementate in alto, qui non connesse! La serie di quattro MOSFET è inoltre già stata brevemente studiata, ed ha evidenziato una certa lentezza di commutazione che obbligherebbe ad aumentare le dimensioni di ogni tx-gate, con devastanti conseguenze sull occupazione di silicio; l area non è la cifra di merito dominante ora, ma non va penalizzata oltre un certo limite. La rete di look-ahead esterna deve prevedere sei ingressi: tre G e tre P, dai primi tre blocchi. Le formule che ne descrivono il funzionamento sono del consueto tipo AND-OR; si ribadisce qui che G CN e che P CE: C0 = 0 C2 = CN1 C4 = CN3 + CE3 CN1 C = CN + CE CN + CE CE CN che ammette una costruzione del seguente tipo:
109 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 B7 A7 B6 A6 B5 A5 B4 A4 B3 A3 B2 A2 B1 A1 B0 A0 CARRY SELECT - 2bit CE CN CARRY SELECT - 2bit CE CN CARRY SELECT - 2bit CN CARRY SELECT - 2bit C0 S7 S6 S5 S4 S3 S2 S1 S0 C6 C4 C2 Figura Logica del riporto in un sommatore look-ahead anch essa realizzabile senza grandi difficoltà, grazie al fatto che C0 = 0. 3)- Sull onda della progressiva complicazione dei blocchi di elaborazione iniziale dei segnali, si valuta il caso a 4 bit. La parte della catena di riporto che ora non compare più al di fuori dei blocchi è però finita al loro interno; per fornire G composto e P composto serve pur sempre collezionare i 4 G e P elementari, per poi aggregarli mediante un operazione logica AND-OR. E una riedizione interna del CLA da quattro ingressi, esterno, del caso 1); e di quel caso conserva insoluti i problemi realizzativi delle porte, che il caso 2) ha invece bilanciato molto meglio; in definitiva, la soluzione di usare 4 blocchi da 2 bit è preferibile alle altre presentate
110 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap Parte FIR : Sottrattore dinamico a Manchester carry chain Ogni modifica circuitale aggiunta sullo schematico ha appesantito il disegno che lo rappresentava; dalla linearità del primo grafico, relativo al ripple-carry, si è passati alla soluzione di carry-select + look-ahead + carry save/pipeline che ha una topologia molto più articolata. Ciò ha una diretta contropartita sul silicio; per aumentare la velocità dei blocchi ricorsivi si è stati costretti a complicare le configurazioni dei sommatori, ampliandone l occupazione di area. Presumibilmente anche la potenza assorbita è creciuta; non si è lasciata alcuna parte della rete aggiunta inattiva per lunghi periodi, anzi! il pipe-lining promette di distribuire uniformemente lo sforzo computazionale nel tempo, mantenendo costantemente in regime di commutazione le porte di ogni sezione del circuito. Volendo ottimizzare la parte FIR rispetto ai parametri prima negletti perchè dominati dall imperativo della velocità, non resta che da tornare indietro nelle scelte fatte; la tecnica di ripple-carry risulterà essere quindi la più appetibile, stanti i nuovi obiettivi di area e consumo. I sottrattori si presenteranno quindi come successioni di 8 fette identiche, le bit slice, ciascuna che attende il riporto da quella precedente per decidere il proprio bit di somma e per emettere a sua volta un carry. Tutta l attenzione va rivolta al singolo modulo da ripetere, che (come accade, su scala molto magnificata, nel progetto delle memorie) deve essere reso il più compatto e semplice possibile. Alla luce di quanto affermato parlando dei sommatori ripple, la strategia più economica in termini di componenti è quella che non prevede nemmeno una logica combinatoria di valutazione di Cout, ma lascia viaggiare o meno Cin controllandone il flusso mediante un comando Propagate, e impone la presenza o l assenza di carry manovrando la linea mediante Generate e Kill. Un metodo particolarmente compatto di traduzione in schematico delle operazioni necessarie per l addizione è la cosiddetta Manchester carry chain (v. Weste-Eshraghian, [17]), una variazione sul tema del ripple-carry che elimina il bisogno del segnale di Kill. Mentre tutti i circuiti proposti finora avevano una implementazione di tipo statico, con porte che commutano comunque all arrivo degli ingressi connettendo l uscita a GND oppure a Vdd, l idea del sottrattore Manchester è di tipo dinamico: un nodo della rete viene precaricato a Vdd ad ogni ciclo di clock, ed ha afferente ad esso una logica di scarica che lo abbasserà a GND o lo lascerà caricato a seconda della configurazione di ingresso. La carica del nodo consiste in un afflusso di corrente da Vdd al nodo medesimo, per caricare la capacità parassita ivi esistente; la carica accumulata non andrà persa se non intenzionalmente
111 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 drenandola a GND, perchè è riposta in un nodo che vede solo interruttori aperti e gates di transistori MOSFET, isolati grazie all ossido di canale. La pre-carica avviene in una ben precisa fase del clock di sistema, detta appunto Precharge; la decisione sullo stato finale del nodo critico di uscita è invece eseguita durante la fase complementare di Evaluate. La cella basilare del blocco sarà dunque : Φ Vdd IN Logica f(in) OUT Φ Φ Figura Principio fondamentale delle logiche dinamiche a precarica ove Φ è il segnale di clock; la fase di Precharge è con Φ = 0, che chiude il PMOS superiore e carica OUT, mentre la possibile scarica di Evaluate è con Φ = 1, che apre il PMOS e chiude l NMOS creando un percorso verso massa. Un confronto tra metodologie statiche e dinamiche sarà eseguito nel paragrafo inerente i registri. Per ora basti notare che in ogni fase di precarica il nodo dinamico (in cui si immagazzina la carica che potenzialmente rifluirà a massa poi) va alto, ed è scaricato in base all accadere di una condizione logica. Nel caso specifico della catena Manchester, se nel nodo dinamico della catena si genera un carry se ne dà notizia agli stadi successivi: bloccando il segnale precedente (chiudendo il pass-transistor a monte della slice interessata) collegando la linea di riporto, che connette tra loro tutti i nodi dinamici dei carry, verso massa
112 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 In caso di semplice abilitazione dello stadio a propagare il riporto, ci si limita viceversa a lasciar passare il segnale precedente; è una sorta di reificazione delle azioni compiute nel corso di una somma binaria a mano, in versione elettronica. A i B i P Φ Vdd S i NOT C i NOT C i+1 G Φ A i B i Figura Slice da un bit del sommatore Manchester Nella figura, riquadrate ed ombreggiate si riconoscono chiaramente le parti di precarica e scarica caratteristiche della tecnica dinamica; per il fatto di comunicare i carry su una linea condivisa, la filosofia Manchester ricorda molto da vicino le reti di segnalazione dell interrupt ai microprocessori (del già citato tipo ad OR cablato ). Nello schema, il fatto che G = 1 porti a 0 la linea induce a chiamare i segnali insistenti sui nodi intermedi NOT CARRY ; e ciò spiega l assenza del carry Kill, che consistendo in un portare NOT CARRY ad 1 coincide con la precarica. E come se si eseguisse Kill una volta ogni periodo, in modo incondizionato. Quanto detto finora si potrebbe enunciare anche per un sommatore; le caratteristiche del sottrattore in complemento a due impongono anche: - negazione binaria del sottraendo
113 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 - aggiunta di 1. L aggiunta di 1 è brillantemente acquisita sfruttando l unico grado di libertà proprio del sommatore: il valore del carry iniziale C0. Ogni somma presuppone nullo il riporto iniziale; supporlo ad 1 comporta eseguire un incremento del risultato con costo circuitale e ritardo di calcolo zero (si confronti invece la soluzione del tipo somma canonica, a volte adottata in casi analoghi). La negazione del sottraendo implica il passaggio del medesimo attraverso una batteria di porte NOT; però lo schema del sottrattore, presentando altre porte immediatamente al suo ingresso, invita a conglobare tale complementazione in esse. Ad esempio, si è visto che : S = A B CARRY = ( A B) ( NOT CARRY) ma allora è anche, essendo B il sottraendo : S = A B CARRY = A B ( NOT CARRY) = A B ( NOT CARRY) = = A B ( NOT CARRY) essendosi accorti che la parità non cambia permutando le NOT; ciò che riassorbe senza colpo ferire il negatore iniziale, risparmiando tempo, area e consumo. Per inciso si fa notare che la propagazione di riporto vale qui P=A B, e NON vale A +B; il caso che fa la differenza è infatti A B=1, che prevede la scarica della linea data dal segnale G = A B. Se il riporto precedente fosse fatto propagare infatti, la linea di comunicazione del carry sarebbe collegata agli stadi precedenti; si avrebbe continuità ohmica sino al più vicino blocco non-propagante; cioè si calerebbe la tensione in linea anche a monte dello stadio attivo, dando luogo ad una assurda retro-propagazione del carry, e rallentando sensibilmente la scarica; un errore da evitare. Le conformazione schematica del circuito costringe quindi a scegliere univocamente la definizione di P, come XOR e non come OR; del resto però le connessioni ad interruttore impongono di classificare questa rete come una passtransistor logic, che non rientra strettamente nel paradigma del algebra di Boole e che quindi non è tenuta a rispettarne tutte le leggi
114 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap Parte FIR : Sottrattori veloci e risparmio di latenza In precedenti occasioni si è parlato con grande risonanza di regolarità del circuito; poter ripetere in più siti della rete le medesime soluzioni trovate altrove alleggerisce il compito dapprima di ideare nuovi metodi per affrontare un problema, e in seconda battuta di disegnare il layout dello schema trovato. Nel caso attuale, sia nella sezione IIR che in quella FIR si ha bisogno di sommatori; e potrebbe così sembrare vantaggioso riutilizzare il medesimo tipo di adder individuato per la parte a 200 MHz anche nella parte a 50 MHz, senza studiare ex novo una nuova implementazione. In effetti la proposta è valida; il requisito fondamentale desiderato in questi casi è che il nuovo uso del circuito non costringa a modifiche pesanti del design di partenza, ed in questo frangente ciò si verifica: se è vero che la rete di look-ahead per il sommatore veloce elabora solo CN del primo blocco (supposto avere Cin = 0) è altrettanto vero che Cin = 1 implica solamente usare CE in luogo di CN, senza doverli affatto trattare entrambi; noto che sia Cin, è sempre vero che uno solo tra CE e CN va considerato. Far funzionare dei sommatori progettati per lavorare a 200 MHz ad una frequenza di clock quattro volte inferiore vorrebbe dire sicuramente spreco di circuiteria, tuttavia, se non vi fosse un altro risvolto di tale scelta da considerare: la possibilità di abbattere la latenza del decimatore. Quando fu svolta una disamina della latenza del circuito, nel Capitolo 2, si mise in evidenza il costo di dover mantenere dei registri di latch intermedio tra i blocchi di sottrazione ( ci si rifaccia alla Figura 2.6); un ritardo in quella sede costa infatti come 4 ritardi in zona IIR. E pur vero che la latenza importa poco in un progetto del tipo in questione; ma permane egualmente un parametro di merito del decimatore. Un modo per eliminare i registri intermedi tra i sottrattori FIR è proprio quello di usare aritmetica tanto veloce da completare tre sottrazioni in 20 ns, senza pipe-line intermedio. Le catene Manchester per costruzione impiegano mezzo ciclo di clock solo per precaricare le linee, e nei 10 ns rimanenti non riescono sicuramente a completare più di un operazione (alzandosi la temperatura e peggiorando la tecnologia, rischiano di non completare nemmeno quella...) a causa del forte ritardo di propagazione del segnale lungo l estesa linea, che è poi una rete RC distribuita per cui i ritardi salgono con il quadrato della lunghezza 7. Per eseguire due operazioni occorrerebbero tempi di valutazione del ordine di 5ns per tutta la catena, cioè 5ns / 7 stadi nel
115 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 caso pessimo, alias 0.71 ns ogni cella monobit! Troppo poco, per una tecnologia che ha un ritardo si commutazione tra due porte NOT stimato pari a circa 0.4 ns. I sommatori IIR in primo luogo erano statici, quindi asincroni; per giunta, operavano in meno di 5 ns; quindi sfruttano tutti i 20 ns concessi dalla temporizzazione a 50 MHz ed oltretutto resta loro un margine del 25% del tempo. L ultima unità di calcolo inizierà la sottrazione sui dati, definitivamente assestatisi, delle unità precedenti verso i 10 ns per completarla ai 15 ns; le uscite antecedenti saranno spurie, ma non giungeranno ai pin fisici del circuito perchè l uscita prevederà un registro di latch finale. La latenza accumulata si ridurrà in tal modo ai 3 ritardi IIR più i 3 (per 4 colpi) ritardi FIR congeniti nella funzione di trasferimento del decimatore, quindi risparmiando due periodi di latenza rispetto al caso Manchester. Anche questa seconda idea vale dunque la pena di essere esaminata; è in effetti quanto si farà a livello di schematico. Il layout finale è stato effettuato solo per il circuito con sottrattori Manchester, in parte perchè la latenza conta poco nel nostro problema ed in parte perchè il design fisico della catena medesima risulta una sfida molto stimolante per risparmiare area; sfida che ha consentito all autore di fare esperienza sul progetto di strutture di tipo modulare, composte da varie slice accostate Uso dei registri/ritardi nel circuito I registri nel nostro schema svolgono essenzialmente la funzione di ritardi; ognivolta che nella espressione della trasformata Zeta compare il termine z -1, occorre porre un registro nel circuito. Oltre a questo compito eminentemente funzionale però, e questo accade nella seconda parte dello schema, i registri fungono anche da memoria temporanea dei dati semilavorati per l applicazione del pipe-line alle operazioni; la triplice sottrazione è stata spezzata in tronconi operanti simultaneamente, separati da latch intermedi. Da ultimo i registri sincronizzano il flusso dei segnali, che altrimenti sarebbero sfasati a causa dei diversi ritardi subìti nelle catene dei riporti. 7 Di questo aspetto si tratterà più diffusamente nel Capitolo
116 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap Parte IIR : Corsa critica e latch a NPTC I registri che si trovano nella sezione IIR devono giocoforza condividere i 5 ns di periodo di clock con gli adder; questi 5 ns non servono solo per la somma, ma per somma + memorizzazione dei dati. Ne scaturisce l esigenza di avere celle le più veloci possibile, ma anche resistenti ad eventuali errori che possono affliggere i clock ad elevata frequenza, come il clock skew. Quest ultimo è una conseguenza della distribuzione fisica del segnale di sincronismo lungo un chip intero, e si esplica sotto due aspetti: il fronte di tensione in arrivo sarà diversamente ripido in diversi punti dell albero di trasmissione, ed il diverso ritardo di propagazione subìto farà presentare il segnale in istanti differenti alle differenti sezioni. Se i registri falliscono nel sincronizzare i segnali risentendo di questi difetti del riferimento temporale del sistema, si ha un errore cosiddetto di corsa critica : un dato che doveva restare ignoto alla successiva sezione del circuito sino al fronte di clock successivo riesce a giungere subito in uscita al latch, non rispettando la sequenza cronologica programmata e dunque subendo un filtraggio diverso da quello desiderato. Esistono diverse realizzazioni possibili per le celle dei registri; alcune di esse portano ad una lettura dei dati in ingresso sul fronte del clock (e si parlerà di flip-flop), altre lasciano leggere al dispositivo gli input durante una finestra temporale di durata pari ad una fase intera del sincronismo (e questi sono propriamente i latch). I flip-flop si derivano da una connessione in serie di due latch opportunamente temporizzati (si veda Bakoglu, [18]). Volendo risparmiare area e diminuire il numero delle linee di clock è bene certamente progettare un circuito basato su latch singoli e non su flip-flop, allora; si usa un blocco invece di due. La contropartita da pagare, stante il loro maggiore periodo di sensibilità agli ingressi, consiste in un controllo più rigoroso del clock skew prodottosi durante la distribuzione del sincronismo in tutto il sistema. Spesso le strutture adottate per i latch sono retroazionate positivamente, in modo da leggere il dato e riconfermarlo in ingresso fino al successivo aggiornamento; tale loop di reazione si ottiene nel modo digitalmente più semplice, utilizzando come blocchi rigenerativi elementari due invertitori in serie :
117 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 Φ IN Φ Φ OUT Φ Φ Figura Latch rigenerativo Data latch è la fase di mantenimento del dato sulla linea OUT in uscita; il valore binario era stato incamerato nella fase di Data in. Il guadagno d anello da avere per divergere e far scattare effettivamente il processo di memorizzazione deve semplicemente superare 1; ed è ben noto come la pendenza della caratteristica degli invertitori superi il migliaio, nella zona di commutazione in questione. Ogni perdita di carica avvenuta nei nodi dei dispositivi viene contrastata dalla tendenza dell anello di due invertitori a saturare verso l alto od il basso, permanendo nello stato di saturazione raggiunto fino all arrivo di un input più coercitivo del semplice leakage di corrente. Il più semplice schema di ritardo temporizzato non ha però bisogno di retroazione: IN Φ Φ OUT Φ Φ Φ Figura Latch dinamico tipo NOT+TX.GATE e ciclo temporale
118 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 Si lascia passare il segnale solo in corrispondenza di una delle due fasi del ciclo di clock; in pratica i dati vengono costretti ad attendere sulla linea l apertura dell interruttore seguente, venendo spostati in avanti ad istanti ben precisi (la cella in questione è infatti l unità che compone tipicamente i registri a scorrimento). Gli invertitori servono solamente per la rigenerazione logica del segnale, che altrimenti verrebbe progressivamente degradato lungo la catena; in linea di principio potremmo levarli, ma il segnale sarebbe poi estremamente sensibile ai disturbi. La forma d onda riportata sotto lo schematico è molto importante da capire, in quanto si riferisce all anello di somma dei dati nella parte IIR : A0..A7 S0..S7 B0..B7 Φ Φ Φ Φ Figura Schema di funzionamento dell anello ricorsivo IIR sommatore+latch L uscita del latch si assesterà dopo un ritardo dato dalla seconda porta NOT; con la fase Φ = 0 infatti l interruttore in mezzo al latch si apre, e l ultimo dato letto finisce sul secondo negatore, che terminata la commutazione lo metterà in uscita. Il dato passa quindi all adder, che lo elabora in maniera asincrona; basta a questo punto che il risultato finale dell elaborazione sia pronto almeno un ritardo di NOT prima del fronte di discesa di Φ. L interruttore centrale si apre infatti in corrispondenza di quel fronte, e quindi l ultimo dato che esso fa in tempo a lasciar passare è l ultima uscita del primo invertitore, riferentesi al dato letto appena un T propagazione prima. Le fasi di lettura e scrittura dei latch sono quelle che
119 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 verranno effettivamente adoperate nel prosieguo del progetto, e vanno dunque tenute presenti d ora in poi: Fronte + di Φ: il latch aggiorna la sua uscita - Inizio ciclo di somma Fronte - di Φ: il latch legge l ingresso per l ultima volta - Fine obbligata del ciclo di somma: il dato deve essere pronto sulla linea. Lo schema precedente si adatta benissimo alle esigenze di velocità del circuito: dalle forme d onda mostrate si evince come la frazione di periodo sottratta al sommatore ammonti solamente ai due ritardi delle porte NOT, che potremo agevolmente mantenere al disotto del nanosecondo. I tempi di carica dei gate attraverso gli interruttori saranno poi da valutare; ma questa soluzione minimale lascia intravedere buone possibilità di applicazione. E pratica consueta temporizzare i due stadi in cascata (disposti in maniera cosiddetta Master-Slave, con il primo blocco che fornisce al secondo l input ricevuto solo dopo averlo ritardato) secondo un metodo denominato NPTC, acronimo di Nonoverlapping Pseudo Two-phase Clock; l un interruttore si chiude non immediatamente dopo l apertura dell altro, ma lasciando trascorrere un tempuscolo morto che garantisce contro il pericolo di corsa critica; il tutto diretto non da Φ e dal suo complemento, ma da Φ e dal segnale Φ. Φ è una pseudonegazione di Φ, con fasi non esattamente sovrapposte (Non-overlapping, appunto) ad esso, e pilota la seconda porta. Questo comporta due svantaggi: - l introduzione appunto di un tempo inutilizzato che grava sul già ristretto periodo a disposizione; - la distribuzione di due segnali all interno del circuito, da negare oltretutto separatamente in loco Parte IIR : Tecnica C 2 MOS e memorizzazione dinamica Un primo raffinamento proposto in letteratura è il cosiddetto clocking C 2 MOS (Clocked CMOS); l interruttore a valle dell invertitore viene completamente conglobato in esso, ponendo il transistore MOS a canale P in serie all omologo componente della porta logica, ed idem per il canale N :
120 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 IN Vdd Vdd Φ IN OUT Φ OUT Φ Φ Figura Dal latch dinamico classico al latch C 2 MOS Il risparmio di area a livello di layout finale è in tal modo assicurato, potendosi fondere insieme delle parti di Drain e Source dei transistori adesso posti in cascata. Va notato però che i due schematici non sono in tutto equivalenti: ad esempio in quello originale la trasmissione di un segnale 1 in uscita passa attraverso il PMOS della porta NOT ed il parallelo degli altri due transistori; nella variante C 2 MOS si ha una serie di transistori PMOS, percorso di resistenza certamente più elevata (anche se di capacità inferiore). La cura prestata nel minimizzare la lunghezza delle connessioni in serie delle porte logiche AND, all atto della scelta del metodo di somma, fa intuire che la strada da noi seguita rimarrà comunque quella di evitare i collegamenti di tipo serie ovunque possibile, privilegiando quindi la scelta del paragrafo 13. Le ultime figure (3.22 e 3.24) mostrano una particolarità rispetto a tutte quelle viste sino ad ora: una volta chiusa la transmission-gate, la porta immediatamente a valle resta scollegata dal resto del circuito, con l ingresso apparentemente fluttuante. Nella realtà fisica questo non è vero: il nodo di ingresso dell invertitore ha comunque più di una capacità parassita
121 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 afferente ad esso, che una volta caricata attraverso l interruttore viene lasciata fluttuante; conserva cioè l informazione di tensione, carica/scarica, che la NOT consecutiva deve leggere. Semplicemente, lo schematico non rende conto dell esistenza di tale capacità perchè la sua presenza è considerata sottintesa. Lo sfruttamento dei condensatori parassiti presenti ad ogni nodo del circuito dà origine ad una nuova filosofia di progettazione delle reti digitali: quella a logiche dinamiche. Logiche statiche vengono viceversa denominate quelle nelle quali il segnale viaggia da una porta all altra facendo commutare le posizioni dei transistori/interruttori verso GND oppure Vdd, quindi sempre creando percorsi di corrente che terminano alle alimentazioni, e non mai a nodi precaricati ed ora non connessi. Dato che il problema della sintesi dei registri ha soluzioni principalmente nel campo delle logiche dinamiche è d uopo eseguire un breve confronto i due tipi di logica, per il resto già introdotti illustrando la Manchester carry chain : - avendo precaricato un nodo a Vdd durante la fase di Precharge, per svolgere la funzione logica booleana richiesta basta predisporre una maglia di transistori NMOS atti eventualmente a scaricarlo, nella fase complementare di Evaluate. Gli ingressi vedono solamente 1 transistore e non più la coppia PMOS-NMOS tipica della logica complementare: ne deriva un ridotto carico capacitivo e quindi un incremento della velocità del circuito; - l uscita è alta, all inizio della fase di valutazione; può al più scendere a massa, ma non si dà il caso di alea logica (altrimenti detto glitch di tensione) cioè di transitorio spurio sull uscita, che invece è frequente nella controparte statica; - il nodo dinamico è però delicatissimo; se la carica immagazzinata in esso va persa a causa di un transitorio spurio su una porta della rete di scarica, non è recuperabile (a meno di usare tecniche rigenerative a trickle transistor ) e si ha errore; - se la capacità del nodo dinamico non è predominante rispetto alle altre capacità che compaiono nella rete di scarica, si inducono fenomeni di ripartizione della carica che deteriorano il livello di tensione in uscita (charge sharing); - correnti di perdita attraverso i dispositivi procedono comunque alla progressiva scarica di qualsiasi nodo non connesso ad un alimentazione. Nel caso di frequenze di clock molto elevate tuttavia nè la perdita di carica attraverso il substrato del MOSFET nè la perdita di carica attraverso il suo canale (supposto magari aperto, ma in realtà sempre un poco conduttivo) possono provocare un calo apprezzabile della tensione ad eventuali nodi di immagazzinamento dinamico del segnale. Per processi CMOS
122 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 con lunghezze di canale comparabili alla nostra un parametro di massima per la densità di corrente di perdita nel substrato vale 0.25 fa/µm 2 (Geiger-Allen-Strader, [19]); ciò porta ad avere 2.74 fa persi dai drain dei MOSFET minimi componenti il tx-gate, che se escono da una capacità di circa 30 ff provocano, nei 2.5 ns di chiusura dell interruttore, 0.2 nv di calo di tensione! Anche se l analisi fosse una sottostima di un fattore 10 5 (per correnti di perdita perimetrali, sotto-soglia, etc.), il che certamente non è, l effetto complessivo sarebbe irrisorio Parte IIR : Tecnica NORA Partendo da questo presupposto sono state esaminate altre tecniche di sincronizzazione, le quali prendendo spunto dalla struttura dei registri propongono però delle configurazioni circuitali che non fungono solo da memorie, concentrate in un singolo blocco, bensì da sincronismi che vanno alternati alle funzioni logiche vere e proprie, delocalizzando in tal modo la memorizzazione dei dati lungo il percorso di elaborazione. Gonçalves e De Man (nell articolo [20]) hanno proposto un metodo sempre a due fasi, detto NORA (NO RAce clocking system), che utilizza ancora il principio della precarica dei nodi interni per velocizzare il funzionamento del latch. La successione delle operazioni logiche da compiere va spezzata in blocchi che lavoreranno pilotati da Φ o da NOT Φ, alternativamente; mentre un blocco precarica con Φ alto il successivo fa lo stesso con Φ basso. In tal modo, ad ogni blocco in fase di precarica ne segue uno in fase di valutazione, seguito da un altro precaricante,... eccetera. Ogni blocco deve essere resistente a due tipi di errori: - anche se gli ingressi ritardano, la logica combinatoria di Evaluate deve comunque astenersi dallo scaricare il nodo dinamico; ciò impone vincoli sul numero di negazioni che il segnale deve subire tra un blocco precaricato ed il successivo, come nelle logiche Domino. La precarica alza infatti la tensione del nodo DYN; se questi comanda gli NMOS della logica a valle, rischia di accenderli erroneamente già in precarica pregiudicando il resto dell operazione, il che va evitato mediante un numero dispari di negazioni tra un blocco dinamico e quello seguente. Inoltre, lo stesso rischio obbliga ad incapsulare tutti i pezzi di logica realizzata in modo statico all interno di sezioni compatte, che comunichino con il resto
123 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 del circuito mediante latch C 2 MOS. Le parti statiche sono infatti soggette a glitches di cui va evitata la propagazione; - anche se Φ e NOT Φ sono sfasati, uno solo dei due deve essere colui che consente le variazioni in uscita ai blocchi; ad esempio, il Φ di Evaluate di un blocco che non scarica il nodo dinamico è anche il segnale che consente al latch C 2 MOS successivo di emettere il risultato, 0, quindi conta solo la successione temporale di variazioni di Φ, per tale sezione; lo skew con NOT Φ è completamente ignorato. Tali requisiti sono soddisfatti dai due schemi : Φ Vdd Vdd Φ Vdd Vdd IN IN DYN LOGICA Φ Φ OUT LOGICA DYN Φ Φ OUT Φ Φ SezioneΦ SezioneΦ Figura Blocchi basilari della tecnica dinamica NORA - Logica e latch alternati secondo opportune regole, lungo il percorso dei dati. Restano le connessioni in serie dei transistori, e per giunta il clock resta sempre da invertire; se il blocco combinatorio LOGICA ha già una cascata di transistori per esigenze proprie, i ritardi si fanno pesanti e questa strada diviene di nuovo poco praticabile
124 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap Parte IIR : Tecnica TSPC L effettiva velocità di un circuito, in uno schema a pipe-line, è legata al tempo necessario a svolgere il singolo troncone di operazione più lento. Yuan e Svensson (riferimento [21]) hanno proposto una tecnica di velocizzazione dei circuiti digitali basata sull esasperazione del pipe-line, che prevede lo spezzettamento di ogni funzione sino alla singola porta logica ed una efficiente metodologia di storage dei risultati intermedi. Il metodo si chiama TSPC (True Single Phase Clock) perchè riesce a distribuire una sola linea di clock nel circuito; di conseguenza, basta che il clock skew sia inferiore almeno al tempo di commutazione della porta per garantire il corretto funzionamento del sistema, perchè il segnale in questione è unico. Un latch di uscita che usi un solo clock si ottiene osservando che le sezioni finali NORA hanno una ridondanza di un transistore; dalla Figura 3.25 si nota che nelle fasi di precarica è inutile bloccare l output con il PMOS controllato da NOT Φ, quando già il nodo precedente DYN è alto e blocca comunque il PMOS sovrastante. Le due sezioni Φ e NOT Φ ora si trasformano negli stadi TSPC-1 : Φ Vdd Vdd Φ Vdd Vdd IN IN DYN LOGICA Φ OUT LOGICA DYN Φ OUT Φ Sezione N - precarica ( Φ = 0 ) Φ Sezione P - prescarica ( Φ = 0 ) Figura Modifica TSPC alla tecnica NORA
125 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 che possono essere posti al termine di catene statiche di elaborazione digitale, sincronizzandole tra di loro, sempre in ossequio alle regole di alternanza P-N-P-N-... dei blocchi. Esiste pure una TSPC-2, ottenuta spostando il MOSFET che abilita alla scarica del nodo dinamico; ma aumenta solamente il numero di transistori in serie, senza vantaggi.fondamentali. Il metodo di temporizzazione dati TSPC-1 elimina i problemi di inversione del clock e di distribuzione delle linee di NOT Φ, e necessita di due soli transistori in più del metodo classico NOT + TX-GATE; però ha un uscita maggiormente soggetta alle fastidiose iniezioni di carica spurie provenienti dal clock, e la connessione in cascata dei MOSFET permane obbligando ad allargare i dispositivi in questione. Gli stessi ideatori di questa tecnica prevedono una fase automatizzata di dimensionamento dei MOSFET, per massimizzare la velocità; azione che nel nostro caso va compiuta per prove ed errori, ma non inficia l utilità potenziale del metodo di memorizzazione. Per inciso si fa notare che l altra idea insita nella tecnica TSPC, cioè l estensione del pipe-line sino a basso livello, sembra invece estremamente onerosa dal punto di vista dell occupazione di area; ed in effetti gli autori riportano aumenti di velocità sino al 90% rispetto alle realizzazioni senza partizionamento, ma aumenti di area sino al 110% (IEEE Spectrum, pagg , [22]). Nel nostro progetto il pipe-line troverà effettivamente applicazione, ma non fino a tali estremi Parte IIR : Scelte di temporizzazione finali In conclusione, la via da percorrere per implementare i nostri registri passa dapprima attraverso una prova della soluzione più banale, la cella NOT + TX-GATE, tentando di utilizzare soltanto le fasi Φ e NOT Φ senza tempo morto di non-overlap; solo in un secondo tempo un approccio di tipo TSPC-1 andrà eventualmente perfezionato, se la performance del primo non risultasse soddisfacente. Si cercherà di affrontare i problemi di clock skew con l approccio più classico, consistente in una progettazione estremamente accurata dell albero di diffusione del clock; fino all arrivo al livello capillare del singolo interruttore, l egualizzazione dei ritardi deve essere un principio inderogabile, la prima preoccupazione che
126 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 informa il processo di design; è un obiettivo difficile da acquisire a 200 MHz, ma se raggiunto comporta vantaggi in termini di velocità pura delle sezioni circuitali ed occupazione di area. Un idea valida resterà in ogni caso quella mutuata dalla strategia NORA e dalle successive, di non concentrare le fasi di latch in un blocco solo, il registro a celle latch classico, bensì di dislocare le sezioni di sincronizzazione lungo il cammino dei dati, all interno dei sommatori. Si deve in altri termini acquisire una partizione delle operazioni ottimale, allocando nel mezzo ciclo di clock mezzo spezzone di somma; concetto che verrà approfondito nel Capitolo Parte FIR :Registri La temporizzazione è rallentata di 4 volte; ogni requisito inerente i registri si rilassa di conseguenza, e quindi la realizzazione ottimale è quella più semplice : NOT + TX-GATE. Si noti che il fattore di abbassamento della frequenza non è affatto tale da ingenerare preoccupazione per le perdite di carica nei nodi dinamici, alla luce del calcolo di primissima approssimazione eseguito in precedenza Parte Intermedia : Divisore di frequenza 4:1 Parlando dei registri è stato introdotto il concetto di sincronizzazione. Esso si presenta anche nel sottocircuito che temporizza il cuore della decimazione, cioè il divisore per 4 della frequenza del clock. Si è supposto in effetti di ricevere solamente l orologio di sistema dall esterno del circuito, per cui la generazione della fase rallentata è compito nostro. Fortunatamente, la divisione di frequenza di un onda quadra per una potenza di 2 non presenta particolari problemi. Nei circuiti a discreti si utilizzano di solito dei flip-flop cosiddetti toggle, che commutano ad ogni nuovo fronte dell onda pilota (solo di salita o solo di discesa) dividendola quindi per due; nel caso attuale si possono sfruttare invece le idee di sincronizzazione presentate nei paragrafi precedenti, coniugate con una struttura in grado di generare essa stessa un onda quadra da rifasare poi
127 Dall architettura alla logica: tecniche adottate per l aritmetica digitale - Cap. 3 Lo schema più immediato è noto in letteratura col nome di ring oscillator; disporre in anello un numero dispari N di invertitori li obbliga ad un ciclo di commutazione infinito, con un semiperiodo pari a N t propagazione NOT ; la frequenza di oscillazione è altamente instabile in temperatura, in tensione Vdd, ed al variare del carico in output. Se però nel loop di negatori si intercalano due transmission-gate, allora è il riferimento esterno che impone gli istanti di commutazione: NOT 1 Φ Φ Φ Φ Φ NOT 3 Φ:2 NOT 2 Φ:2 Figura Divisore di fase ad anello temporizzato dal clock esterno L arrivo del fronte di Φ abilita l uscita di NOT 1 a trasmettere il suo segnale, ad esempio 1, alla successione NOT 2/NOT 3 che transisce quindi 1 0/0 1; NOT 1, all arrivo del fronte di Φ ricambierà dunque 1 0; ma la commutazione non viene propagata alla NOT 2 finchè non giunge il fronte di Φ, con il quale si fa commutare NOT 2 in maniera 0 1, e subito NOT 3 in modo 1 0 riacquistando come ovvio lo stato iniziale. L onda quadra prelevata in uscita di NOT 3 è Φ:2 ; commuta una volta ogni periodo di Φ, eseguendo una divisione per due della frequenza. Il processo è ripetibile ora su Φ:2 con il medesimo circuito a produrre Φ:4, e così via; si noti per inciso che le commutazioni sono sincronizzabili sul fronte desiderato di Φ, bastando scambiare la posizione dei tx-gate per raggiungere lo scopo. Il dimensionamento degli invertitori è critico per la temporizzazione del circuito: ma si tratta di un problema che tratteremo nel prossimo capitolo
128 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Capitolo 4 Dalla logica circuitale allo schematico a transistori : problemi e soluzioni Questa parte del lavoro di tesi concerne il passaggio dalle tecniche di principio, individuate a livello logico nel capitolo precedente, alla loro realizzazione pratica sotto forma di reti di transistori. Mostrata la tecnologia a disposizione si costruiscono dapprima le singole porte logiche, e poi blocchi sempre più complessi, sino a giungere alla realizzazione completa dello schematico funzionante. Sono illustrati i vari problemi incontrati durante le fasi di ottimizzazione delle diverse sezioni del circuito che vengono qui ristudiati e risolti con l aiuto di simulazioni. Si dà il dovuto risalto alle varie alternative progettuali dei sommatori (tentativi BiCMOS e di sfruttamento del clock skew) ed anche dei registri (studio dei transmission-gate, partizionamento dei latch,...); il capitolo si conclude con l analisi della dissipazione e dell occupazione di area delle varie opzioni prese in considerazione Uno sguardo alla tecnologia a disposizione : BiCMOS Le idee proposte nel capitolo precedente, sia quelle che ormai vantano una tradizione consolidata che quelle più innovative, vanno ora implementate al penultimo livello del
129 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 processo di progettazione : lo schematico a transistori. Tutte le porte logiche prima identificate da un simbolo standard ora troveranno un corrispettivo in una rete di dispositivi elementari opportunamente dimensionati. La tecnologia a nostra disposizione è la BiCMOS (Bipolar - CMOS) della SGS- Thomson Microelectronics: un processo che consente di ottenere sul medesimo wafer di silicio sia dispositivi MOSFET che dispositivi bipolari BJT. I primi hanno ottime caratteristiche di impaccamento e consumano poca potenza; i secondi sono più ingombranti e dissipativi ma possiedono migliori capacità di pilotaggio in corrente di stadi successivi. Al fine di poter progettare le configurazioni logiche occorrenti con cognizione di causa, è necessario conoscere alcuni dei parametri basilari che regolano il funzionamento di questi due oggetti; in particolare, serve sapere i valori delle grandezze che intervengono nella fisica della commutazione, e dei componenti parassiti che la affliggono. MOSFET : vanno ovviamente divisi in FET (Field Effect Transistor) a canale N, o NMOS, ed in FET a canale P o PMOS; la conduzione nei due casi è eseguita da portatori diversi, rispettivamente elettroni e lacune, ed in substrati diversi, rispettivamente drogato p e drogato n. La conduzione avviene per trasporto a deriva (drift) dei portatori in un canale conduttivo indotto sotto l ossido di isolamento dall elettrodo di controllo; elettroni o lacune sono emessi dalla diffusione di source e devono raggiungere, attraverso il canale, la simmetrica diffusione di drain. Le differenze di drogaggio comportano discrepanze tra i valori dei parametri caratteristici; una simulazione preliminare eseguita apposta per estrarli ha fornito i risultati seguenti : L XA DRAIN SOURCE W REC RECL Figura Il transistore MOSFET
130 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Parametro Descrizione Valore NMOS Valore PMOS L Minima lunghezza di canale 0.7 µm 0.7 µm W Minima larghezza di canale 2.2 µm 2.2 µm VT0 Tensione di soglia V V EOX Spessore dell ossido di canale 17.5 nm 17.5 nm K0 Fattore di processo 30 µa/v µa/v 2 DL Differenza tra lunghezza L µm µm progettata ed L ottenuta DW Differenza tra larghezza W µm µm progettata e W ottenuta REC Overlap del gate sulle diffusioni 0.13 µm 0.10 µm laterali D ed S RECL Overlap longitudinale del gate sul 0.17 µm 0.17 µm bulk CJS Capacità per unità di area del fondo ff/µm ff/µm 2 diffusione (a 0V) CJP Capacità perimetrale della diffusione ff/µm ff/µm - lato bulk (a 0V) CJC Capacità perimetrale della diffusione ff/µm ff/µm 2 - lato canale ( a 0V) XA Estensione laterale delle diffusioni D ed S - stimata 2 µm 2 µm KB1 Coefficiente di effetto body per le V V aree impiantate ionicamente DVT Coefficiente di temperatura di VTO - 2 mv/ C -2 mv/ C Un parametro che si può ricavare immediatamente dai dati a disposizione è la f T,o frequenza di transizione, del transistore; essa dà un idea della massima frequenza alla quale i modelli utilizzati sono validi, che è anche la massima frequenza teorica alla quale il dispositivo funziona ancora :
131 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 f T = 2π 1 ( ) C + C + C + C gs canale gd gb g m per cui l NMOS minimo, avendo C canale = ff = 3.03 ff C gd =C gs = ff C gs = = ff C gb = = ff seèsaturatohag m =K N W/L (Vdd - V tn ) = 206 µa/v per cui f T = 7.46 GHz. Il simulatore a disposizione, ST-SPICE, consente di effettuare le simulazioni dello schematico usando due livelli di precisione dei modelli MOSFET: Level 1 e Level 3. L accuratezza che verrà sempre adottata è quella del Livello 3, semi-empirico, adatto per grandi circuiti digitali grazie alla semplicità delle equazioni di cui è composto; il Livello 1 è basato su modelli maggiormente fisici più precisi ma 20 volte più lenti, adatti perciò per i circuiti analogici. Anche nel Capitolo 6, dedicato alle prove finali, si parlerà nuovamente di questi aspetti. DRAIN DRAIN GATE BULK (Substrato) GATE BULK (Substrato) SOURCE SOURCE N-MOSFET P-MOSFET Figura MOSFET complementari e capacità parassite Si completa la descrizione dei MOSFET dicendo qui che Cdb = Csb = 6.09 ff per gli NMOS minimi, e Cdb = Csb = 7.23 ff per i PMOS pure minimi
132 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 BJT : i transistori BJT (Bipolar Junction Transistor) disponibili sono del tipo NPN verticale; dall emettitore realizzato in un apposito strato di polisilicio N (poly-emitter), che migliora l efficienza di emissione γ E, gli elettroni attraversano la base P per diffusione, e giungono infine al collettore N poco drogato. La struttura è fondata su una conduzione della corrente di tipo volumetrico, e non di tipo superficiale come per i MOS; ne deriva una necessità di isolamento anche in profondità dei BJT che obbliga la tecnologia a trincerare tali dispositivi dal resto del substrato, occupando parecchia area. I valori dei parametri ne sono una prova; per il bipolare minimo realizzabile tecnologicamente: Parametro Descrizione Valore NPN BF Beta diretto (guadagno di corrente) 94.5 IS Corrente di saturazione diretta A VAF Tensione di Early diretta 89 V VAR Tensione di Early inversa 3.88 V IKF Corrente diretta di ginocchio (al crollo di BF) 2.1 ma BVC Breakdown base-collettore 17.3 V RB Resistenza di base 747 Ω RE Resistenza di emettitore 20 Ω RC Resistenza di collettore 43.9 Ω CJE Capacità base-emettitore 8.64 ff/area (a 0 V) CJC Capacità base-collettore 13.3 ff/area (a 0 V) CJS Capacità collettore-substrato ( a 0 V) 51.2 ff/area TF Tempo di transito diretto 14.3 ps TR Tempo di transito inverso 260 ns AREA vale 1, nel caso minimo; e la dimensione fisica dell emettitore è ivi 3.5x3.5 µm 2. La frequenza di transizione in questo caso vale :
133 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 f T 1 1 = = Cπ + Cµ Cbe C 2π + 2π τf + g g m m bc cioè, essendo τ F = 14.3 ps C be = 8.64 ff C bc = 13.3 ff e se si polarizza il BJT minimo con 25 µa di corrente nel collettore (già avendo J corrente = 200 A/cm 2 ), avendo g m =I C /V termica = 968 µa/v si ricava f T= 4.3 GHz che dà prova della velocità del transistore bipolare. I parametri di capacità hanno espresso chiaramente quanto l utilizzo dei BJT sia da centellinare nel circuito, riservandoli al pilotaggio di linee veramente molto caricate capacitivamente. COLLETTORE BASE BULK (Substrato EMETTITORE Figura Il transistore bipolare e capacità parassite La struttura delle porte BiCMOS consiste di uno stadio normale, a CMOS, che pilota la base di un transistore bipolare; il tutto è illustrato nella Figura 4.25 a seguire. In tutti i progetti BiCMOS, quindi, capita che l uso del bipolare penalizzi in un primo tempo lo stadio MOS che lo pilota, a causa dell entità delle capacità parassite inerenti al dispositivo; per poi far riguadagnare il tempo perduto grazie all amplificazione di corrente Beta, se il carico C L a valle è effettivamente molto oneroso. A livello teorico le equazioni che regolano i ritardi inflitti al segnale per le porte CMOS e BiCMOS sono : V BiCMOS: Tritardo = Taccensione + BJT β I VOUT CL CMOS: Tritardo = I MOS OUT C MOS L
134 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 dove si è omessa la capacità parassita interna, che inizialmente conta; esse, riportate su un grafico, confermano l intuizione (le scale sono soltanto indicative) : Figura Andamento di principio dei ritardi di commutazione per le logiche CMOS e BiCMOS, e punto di pareggio Il prossimo progetto del sommatore fornirà anche una riconferma pratica di quanto asserito Dimensionamento dell invertitore digitale minimo Lo schema seguito per illustrare i problemi incontrati e le soluzioni individuate nel corso del design è, al solito, articolato nelle tre sezioni principali dell architettura del decimatore: sezione IIR, Intermedia, e FIR. Prima di tutto però è necessario caratterizzare il comportamento della porta più semplice, l invertitore o NOT, che darà alcune indicazioni di massima su come procedere nel prosieguo del progetto. Dalla tabella dei parametri fornita si nota subito che il fattore di processo
135 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 K 0 µ 0 = C OX non è il medesimo per NMOS e PMOS; tra i due K0, che d ora in avanti distingueremo con un pedice, esiste un rapporto pari a K N /K P =1.7, dovuto essenzialmente alle differenze di mobilità superficiale dei portatori. Il nostro circuito non ha alcuna ragione per privilegiare la commutazione 1 0 rispetto alla 0 1, in alcuna occasione; la probabilità di arrivo dei dati a 0V eguaglia quella dei dati a 3.3V. La caratteristica ingresso-uscita dell invertitore va quindi portata ad essere simmetrica, ed i due transistori vanno scalati di conseguenza.. Questo deve accadere altresì per massimizzare i margini di immunità al rumore della porta (e dato che il dimensionamento scelto ora verrà ripetuto per ogni porta logica del circuito, l intero decimatore vedrà irrobustiti i suoi margini di rumore); questi sono definiti ( Riccò-Fantini-Brambilla, [23])come: - margine di rumore - stato 1 : è la differenza tra la minima tensione di uscita classificata alta, e la minima tensione di ingresso classificata alta; - margine di rumore - stato 0 : è la differenza tra la massima tensione di uscita classificata bassa, e la massima tensione di ingresso classificata bassa. I punti di definizione degli stati alto e basso sono quelli per cui la pendenza della curva caratteristica vale -1; oltre quelle tensioni cioè il circuito non è più rigenerativo, ma è saturato nello stato ormai acquisito. In ambedue i casi, il parametro esprime la massima ampiezza che una tensione di disturbo può assumere senza mandare la porta in zona a pendenza maggiore di 1, ossia di rigenerazione. Vout Vout Vin Vin Vout Vdd 0 Vin Figura Caratteristica di trasferimento Vout/Vin dell invertitore digitale
136 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 L invertitore statico CMOS utilizza i transistori come degli interruttori che, pilotati dall ingresso, connettono l output con GND o con Vdd. Il punto centrale della caratteristica può essere definito come quello per cui si ha eguaglianza tra le due correnti che fluiscono negli interruttori; dato che le soglie Vt dei MOSFET sono inferiori a Vdd/2, NMOS e PMOS sono entrambi in zona satura quando uscita ed ingresso sono al centro della caratteristica, e si può scrivere : I NMOS WN K Vin V I K W P = N ( tn ) PMOS = P ( Vdd Vin Vtp ) L L Vdd V + V tp Vin = 1 + K K tn N P W W K K N P N P 2 2 W W e meglio ancora, ponendo direttamente Vin = Vdd/2, si scriverà: N P W W P N = K ( Vdd / 2 V ) N tn K ( Vdd / 2 V ) P tp 2 2 da cui si ricava la condizione per avere simmetria : W P =2,35 W N. Stante il limite tecnologico che fissa W = 2.2 µm a causa delle dimensioni minime dei contatti, si ricaverebbe W N =2.2 µmew P =5.2µm. Naturalmente la formula ha dato un idea della scalatura da mantenere; in essa non compaiono quegli effetti della modulazione del canale di solito conglobati nella resistenza di uscita r 0 del transistore. Per una valutazione con tali e tanti riflessi sulle prestazioni dell intero circuito però si rende obbligatorio basarsi su una simulazione della caratteristica della porta NOT; data la pendenza elevatissima della curva, ogni piccola dissimmetria ulteriore provoca infatti grandi spostamenti della Vout con Vin = Vdd/2 : W P /W N Vout (con Vin = 1.5V) V V V V V
137 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Schematico Opus dell invertitore minimo Avere simmetria di risposta con il PMOS doppio (W P = 4.4 µm) dell NMOS è estremamente comodo: consente di raddoppiare tout-court il numero di contatti alle diffusioni, senza lasciare zone diffuse ma non contattate direttamente. Per questo una volta ottenuto il risultato all ultima riga della tabella non conviene cercare altre soluzioni. Figura Caratteristica di inversione simulata per il negatore simmetrico W P =2 W N La caratteristica uscente si presenta in effetti sufficientemente simmetrica e centrata a metà dinamica. I margini di rumore risultano : V MH = ( ) V = 1.15 V V ML = ( ) V = 1.23 V
138 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 avendo identificato i due punti a pendenza unitaria in modo automatico, con il processore di dati Xelga. L alimentazioneèa3v;ineffetti, a parte le simulazioni finali, tutta la fase di progetto dello schematico è stata portata avanti con questo valore della tensione Vdd, così da far nascere robusto il circuito. E pratica consigliata (Weste-Eshraghian, [17]) anche mantenere una frequenza del clock superiore rispetto a quella con cui poi il sistema dovrà effettivamente misurarsi; trattandosi già di 200 MHz tuttavia questa secondo provvedimento cautelativo non è stato applicato Ritardo del buffer minimo digitale Un caso-prova atto invece a valutare la velocità intrinseca della tecnologia in uso è il ritardo del BUFFER, ossia della serie NOT-NOT: una sua transizione consta già di un ritardo 0 1 sommato ad un 1 0, per cui basta dimezzare il ritardo totale per ottenere la definizione di ritardo di propagazione: T T Tpropagazione = L uscita della coppia di invertitori stavolta non è fluttuante ma comanda un ulteriore negatore, per avere un risultato più realistico (scelta analoga a quella operata da Yuan e Svensson per il testing della loro TSPC, ad esempio). Il ritardo, calcolato al 50% delle transizioni, ammonta a ns; la transizione di salita di queste NOT risulta come prevedibile leggermente più lunga di quella di discesa, perchè il PMOS è un poco sottodimensionato. Figura Transitori di commutazione di un buffer digitale
139 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 In figura, N0 è il nodo intermedio tra i due invertitori del buffer. I fronti di salita e discesa del clock ed anche dei segnali provenienti dal modulatore Sigma-Delta sono stati assunti di durata 0.3 ns; la scelta era piuttosto arbitraria, dato che essi sono comunque bufferizzabili dall esterno; si è propeso per un valore comparabile con i ritardi testè simulati, e compatibile con un caso reale riportato in Weste-Eshraghian (riferimento [17]). Una valutazione del carico capacitivo presentato da un invertitore simmetrico minimo all ingresso è importante per avere in mente un ordine di grandezza in seguito: C inv-n = ( ) ff = 4.95 ff Ccanale Cgs Cgb Cgd raddoppiato per effetto Miller Cinv-P=2 ( ) ff = 9.13 ff per un totale di 14 ff cui va aggiunta realisticamente la capacità di drain vista in uscita allo stadio pilotante: C out = ( ) = ff Cdb NMOS Cdb PMOS a dare un totale di circa 34 ff, valore che va memorizzato Parte IIR : Implementazione a transistori delle singole porte logiche Lo schema logico da adoperare per realizzare la tecnica di carry select + carry lookahead è già stato proposto nel Capitolo 3. L inserzione del pipe-line per ora non è prevista, perchè si tentano di risparmiare latenza e latch intermedio non usandolo. Del singolo blocco carry-select che tratta due bit si è scelta una configurazione circuitale nel capitolo precedente; è buona regola, per iniziare la sintesi di apparecchiature digitali di una certa complessità, partire verificando la funzionalità logica della soluzione proposta realizzandola con transistori tutti di dimensione minima; poi diverrà possibile identificare i percorsi critici del segnale analizzando i probabili malfunzionamenti ottenuti, e ridisegnando le porte afferenti a tale cammino
140 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 L approccio in tal senso è obbligato, nel nostro caso; l alternativa usata a livello industriale consiste nell analisi temporale preliminare del circuito mediante i cosiddetti timing analyzer (Crystal, VeriTime), che basandosi su modelli semplificati (ma accurati dal punto di vista dei ritardi) delle porte logiche riescono a determinare i cammini critici con ogni configurazione di input e li segnalano al progettista; non disponendo di un tale strumento, la procedura a prove ed errori è l unica che ci rimane da perseguire. Già un dimensionamento ragionevole per l invertitore è stato trovato; il primo passo consisterà allora nel tradurre lo schematico della figura in un circuito implementabile a CMOS, con porte che già recepiscano il corretto rapporto PMOS/NMOS quantificato, sforzandosi di riprodurre le resistenze di carica e scarica dell uscita incontrate nell analisi del negatore. E un approccio di tipo empirico; anche per la fase di dimensionamento sarebbe possibile invece automatizzare le procedure di scambio area/velocità mediante programmi (SLOP, Switch Level OPtimization; si veda al proposito Yuan-Svensson) di ricerca operativa. I blocchi a due bit sono da ripetere svariate volte, quindi occorre realizzarli occupando meno spazio possibile e consumando poco: la tecnologia ammessa per quest uso è quindi solo la CMOS. 1 - NAND) Le porte AND non sono realizzabili con una sola rete CMOS; il principio è quello di porre in serie due NMOS, e dualmente in parallelo due PMOS, ma allora si realizza una NAND (AND + NOT) che restituisce 0 quando ambedue gli ingressi sono 1, perchè in tal caso la cascata NMOS dà connessione ohmica con la massa : Figura Porta NAND a 2 ingressi
141 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Il caso critico per il pull-up PMOS è quando un solo transistore è acceso; la situazione è analoga a quella della porta NOT che deve emettere un 1, e quindi il sizing di ognuno dei due PMOS deve essere il medesimo del caso NOT : servono due PMOS da 4.4 µm. Per il pulldown NMOS, è critico il percorso che li prevede in serie; volendo riottenere la resistenza verso massa presentata da un NMOS largo 2.2 µm, ogni transistor dovrebbe offrire metà di tale resistenza, e quindi essere largo 4.4 µm anch esso. Fortunatamente le simulazioni eseguite lasciando minimi i due NMOS non hanno mostrato peggioramenti sensibili delle prestazioni, perchè ciò che si perde nella resistività della scarica lo si è riguadagnato nello stadio pilotante precedente, che vede un carico capacitivo inferiore; la configurazione presentata rimarrà lo schema standard da usare ad ogni occorrenza di porte NAND a due ingressi. 2 - NOR) Neanche le porte OR, duali delle precedenti, ammettono realizzazione monolitica CMOS; si costruisce invece la NOR (OR + NOT), dove il pull-down dell uscita consta di due rami in parallelo ed è il pull-up ad essere di tipo serie : Figura4.10-PortaNORa2ingressi Caso critico di scarica : come per le NOT, quindi NMOS da 2.2 µm. Per la carica il discorso è diverso. Le porte NOR hanno caratteristiche elettriche peggiori delle NAND, dal momento che prevedono la posizione in cascata dei dispositivi già fisicamente meno conduttivi, i PMOS; presentano quindi dei transitori molto più asimmetrici delle porte duali, nei casi non pessimi; se fosse insomma possibile rimpiazzare economicamente la NOR con una NAND, lo scambio certamente gioverebbe. I PMOS andrebbero raddoppiati di dimensione; in forza della considerazione fatta nel punto precedente però è possibile risparmiare area senza perdere sensibilmente in velocità
142 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap XOR) Le porte XOR e XNOR si possono considerare gate multipli; l espressione logica non è del tipo elementare, bensì A B= A B+ A B e quindi potrebbe essere prodotta componendo due NOT, due AND ed una OR (o una NAND e due NOR, per restare in ambito di fattibilità CMOS). Rielaborando la formula della XNOR si fa di meglio : grazie ai teoremi di De Morgan 7 si riconosce l equivalenza A B= A B+ A B= A B+ A B+ A A+ B B= ( A+ B) ( A+ B) = ( A+ B) A B e si passa quindi ad una realizzazione del tipo NAND + porta composta OR-AND-INVERT, od OAI (si veda il punto seguente) che comunque non è ben impaccabile e conserva un ritardo complessivo pari a due ritardi semplici NAND-NAND. Per diminuire la complessità dello schema XOR si può ricorrere a tecniche tipiche delle logiche a pass-transistor; nelle quali rispetto al solito si aggiunge il connotato di percorso condizionato ad uno stato logico. In effetti, nella Figura 3.16 di cui riportiamo per comodità del lettore la parte qui interessante, SEx SNx Cin Sx Figura Lo stadio finale di selezione dei dati del blocco carry select la parte finale della linea Sx del blocco carry-select prevedeva che Cin selezionasse tra A B ed il complementare; ma Sx = (A B) Cin 7 Teoremi dell algebra di Boole che consentono il passaggio da funzione OR ad AND e viceversa, dovuti al matematico A. De Morgan: A+ B= A B A B= A+ B
143 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 quindi nella figura citata già abbiamo realizzato una XOR a tx-gate senza saperlo! La porta XOR con ingressi A e B si presenta in ultima analisi così: Figura4.12-PortaXORa2ingressi-8transistor La realizzazione prevede l uso di 8 transistori, contro i 10 di quella composita precedente ed i 16 della definizione booleana di XOR. In un primo tempo è stato tentato l utilizzo di una porta addirittura a 6 MOSFET, che purtuttavia si è dimostrata troppo asimmetrica per poter funzionare in modo veloce, oltre che corretto : Percorso critico Vdd A B Figura4.13-PortaXORa2ingressi-6transistor A xor B
144 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 L input A pilota infatti 4 transistori ed a volte anche il carico esterno, vedendolo addirittura attraverso la resistenza del tx-gate; queste lente transizioni risultano letali per il circuito, in questa sede. Tale eventualità oltretutto rende una porta simile non rigenerativa: l ingresso non viene rinforzato prima di giungere in uscita ma viene trasferito così com è, e quindi la pendenza della caratteristica Vout/Vin è unitaria per tutto l intervallo in cui B è basso ed A è alto: i margini di rumore sono pessimi. Se A = 0, poi, solo B è trasferito in uscita, e la caratteristica degenera in una retta! In parte l asimmetria è rimasta tuttora, anche nel nuovo schema; l ingresso A può essere chiamato a fluire direttamente in uscita caricando le porte a valle, mentre l input B si limita a fungere da selettore ed ha quindi oneri inferiori. Sta al designer scegliere l ingresso più debole tra i due per assegnarlo a B. Segnatamente, nell ambito del decimatore in questione si può supporre che il segnale che ritorna dal latch di accumulo sia in prossimità dell adder, mentre quello proveniente dall integratore precedente avrà percorso distanze superiori, vedrà capacità parassite maggiori e dunque sarà più delicato; è lui il candidato per essere il selettore B. Va notato infine che tra XOR e XNOR sussiste soltanto uno scambio delle linee del multiplexer finale, scambio circuitalmente gratuito; ogni porta OR-esclusivo pertanto sarà utile per riassorbire le negazioni NOT provenienti dai processi di trasformazione AND NOR della rete; infatti i teoremi di De Morgan producono negazioni a monte della porta trasformata (paragrafo 3), che vanno risistemate. Le porte XOR hanno una tabella di verità che differisce in modo sostanziale da quella delle altre funzioni: è una scacchiera di 0 ed 1. Come tale è pesantemente soggetta ai glitch; passando da input 01 ad 10, infatti: - o gli ingressi sono sfasati, e allora la porta produce una transizione temporanea errata completa: provoca stati oppure, al meglio essi transiscono simultaneamente; quando si trovano a Vdd/2 tuttavia anche le NOT interne sono a Vdd/2 ed il multiplexer sta facendo passare ambedue le linee da selezionare. Il transitorio in questione è riportato nella figura:
145 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Glitch all uscita di una porta XOR ove le alee statiche rappresentano un grave problema per i circuiti pilotati a valle, ed impediscono l adozione di tecniche dinamiche precaricate per propagare i carry, che dalle XOR dipendono (a meno di non utilizzare una configurazione XOR a sua volta precaricata, composta addirittura da soli 3 transistori; ma essa a sua volta sarebbe sensibile ai glitch a monte). Questo è un problema strutturale congenito alla porta XOR, ed alla sua natura di controllore di parità: è un gate dall uscita strutturalmente estremamente spuria. Va detto però che non è possibile istituire un aritmetica digitale senza fare un uso massiccio dell OResclusivo, e il difetto precedente va giocoforza tollerato. 4 - Multiplexer) Presentando l uscita della porta XOR si è vista una connessione a MULTIPLEXER a 2 ingressi, l oggetto che serve anche per selezionare Sx ed Sy mediante Cin. Qui si fa notare solo la posizione dei tx-gate che concettualmente offrono sempre il terminale di Drain verso il nodo da pilotare, perchè è la giunzione Gate-Source colei che controlla il dispositivo con Vgs fissa, mentre il Drain funge da output. NON è possibile, in logica CMOS, adoperare dei singoli transistori NMOS facenti funzioni di interruttore: sono ideali per scaricare i nodi alti in tensione, ma la carica di un nodo basso è incompleta a causa della perdita di una soglia V tn che si ha quando il
146 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 transistore si chiude (è proprio in tale fase che il PMOS interviene, nelle transmission-gate, a completare la carica): 0V 0V +3V (3-V ) V tn +3V +3V Figura Comportamento del pass-transistor NMOS con Vin alto e basso Una eventuale porta NOT successiva si vedrebbe pilotata da un range incompleto di tensioni, rischiando di non riuscire mai a chiudere completamente il PMOS superiore e drenando quindi una corrente continua tra alimentazione e massa. I transitori di salita e discesa risulterebbero infine diseguali, peggiorando nel complesso in maniera intollerabile le prestazioni del circuito. La ricerca della simmetria cominciata con la taratura della caratteristica del negatore deve proseguire attraverso un utilizzo coerente dei tx-gate. 5 - AND-OR-INVERT) La generazione di CE e CN avviene attraverso la ormai ben nota serie AND-OR tipica del look-ahead. Esistono in CMOS delle connessioni di transistori, le cosiddette porte composte o compound gate, che conglobano le funzioni AND-OR- INVERT (AOI, (+) ) oppure OR-AND-INVERT (OAI, ( )+ ) in una struttura sola: Figura Porta OR-AND-INVERT (OAI) a 3 ingressi
147 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Come la NAND era immaginabilmente una serie di interruttori NMOS, così AOI prevederà percorsi in serie affiancati ad altri cammini paralleli; l INVERT finale è poi implicito. Si cercherà di utilizzare questa compatta configurazione, piuttosto che la cascata di due porte; il che si renderà possibile dopo un riarrangiamento delle funzioni logiche, proposto tra poco. La disposizione degli NMOS non è invertibile, rispetto a quella presentata: ogni collegamento serie causa la presenza di capacità parassite intermedie, che vanno minimizzate per accelerare le transizioni; la topologia della rete deve quindi assumere una forma a piramide, con basi a GND e Vdd e vertici sull uscita, e non è intercambiabile. L esistenza delle capacità Csb dei due NMOS sulla linea di massa non disturba; vederle in uscita darebbe viceversa molto fastidio. Source e Bulk sono adesso sempre ambedue attaccate a GND, quindi la capacità esiste ma è sempre scarica; per converso, l output è un punto capacitivamente critico e quindi i condensatori parassiti Cdb che vi convergono devono essere il minor numero possibile. Il dimensionamento dei transistori prevede due casi critici : - il pull-down vede due NMOS in serie: ognuno andrebbe allargato a 4.4 µm. Considerando tuttavia che uno dei dispositivi in parallelo è guidato da una porta XOR, mentre il transistore sovrastante vede un ottima NAND a monte, è bene calare il parallelo a 3.3 µm (con un occhio al caso medio e non al percorso critico) e rendere più conduttivo l altro NMOS a 5.5 µm, ripartendo così diversamente il carico; - il pull-up vede due PMOS in serie; 8.8 µm ognuno conserverebbe la figura di merito individuata nel caso NOT. Tuttavia va osservato che ora il carico visto in uscita è notevolmente superiore a quello NOT, stante la confluenza di tre dispositivi grandi in tale nodo; allora l altro PMOS parallelo va allargato almeno a 5.5 µm ( 6.6 µm è risultato eccessivo), e comporta un ulteriore aumento della capacità di uscita; il caso va insomma ristudiato dalle fondamenta. Una analisi semplificata che tenga conto del ritardo indotto dai PMOS sulla porta pilotante e del ritardo della serie dei due PMOS verso la porta successiva si effettua con il modello RC di Elmore (si confronti Weste-Eshraghian, Cap.4), che è poi un calcolo del polo con il metodo delle costanti di tempo. Definito W il numero adimensionale che esprime la larghezza (valutata in micron) del PMOS e ricordando i valori delle capacità trovati all inizio del capitolo, si ottiene:
148 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Cdb=(1.78fF W) + (0.419 ff W) + (0.490 ff W) = ( 2.69 W) ff = C W contando i contributi di area e di perimetro, e trascurando il contributo perimetrale fisso di XA (1.84 ff). L uscita è gravata da 11 µm di W degli altri transistori (NMOS e PMOS) e dalla porta successiva, ad esempio un invertitore con capacità vista di 34 ff. Il PMOS mostra all ingresso una capacità di canale 1.97fF/µm ff/µm W, con Cgs e Cgd di overlap che aggiungono 0.10µm 1.97fF/µm 2 2 (effetto Miller) 2(sulDraine sul Source) = 0.79fF/µm; si definirà dunque C in =C canale +C overlap =2.76fF/µm. Allora si scrive, riscalando le resistenze di canale R (valore di resistenza per un PMOS standard, da 4.4µm) per W e supponendo il tutto pilotato da un NMOS-2.2 µm acceso, per accendere i PMOS in questione: T R C W R 2 R ritardo = ( / 44. ) in + ( 2 C W) + W W C W + C T ritardo W ( ) 2 R C = R C 0 ( / 44. ) = 0 W = 2 C 44. C 2 0 W in opt in 0 che valendo C 0 =( ) ff = ( ) ff = 63.6 ff restituisce un W di Il calcolo presentato è esemplificativo del metodo con cui si è proceduto anche in altri casi. Il risultato finale tuttavia è poco soddisfacente, costringendo ad allargare troppo i componenti; per via di simulazione si è progressivamente tentato di trovare un compromesso, salendo dagli 8.8 µm iniziali fino a 10 µm prima di avere una capacità di pilotaggio accettabile. Ciò indica comunque la necessità di bufferizzare la XOR pilotante la OAI; e di non caricare troppo i carry
149 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap Parte IIR : Ottimizzazione dei singoli blocchi carry-select da 2 bit Per poter adoperare i blocchi ora costruiti all interno delle celle a due bit del carry-select occorre rielaborare lo schematico, alla luce dei teoremi di De Morgan. Per passare da OR ed AND a NOR e NAND si sfrutta il teorema della doppia negazione e si procede poi facendo viaggiare le complementazioni attraverso le porte logiche: Figura I teoremi di De Morgan agenti sulle porte logiche Con questa tecnica, reiterata ad ogni occorrenza di AND ed OR, si giunge ad uno schematico trasformato del blocco: Grazie alla presenza di porte XOR, trasformabili in XNOR senza ricadute circuitali, le inversioni retropropagate sono state assorbite senza alcun onere. Già una parte di simulazione è stata compiuta su questo stesso circuito per progettare a ragion veduta le singole porte. I problemi sono però ancora presenti a livello di aggregato: il funzionamento del blocco è stato verificato dando una sequenza di ingressi a 5 ns completa, che consenta il test di ogni condizione logica, ed alcune transizioni si rivelano malsicure. Le condizioni logiche si forniscono dando le colonne della tabella di verità all input: Ax Bx Ay By
150 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 sotto forma di conteggio binario; è Cin a cambiare più di rado, ogni 2 (4 ingressi) = 16 cicli di clock. Le transizioni pericolose sono ai 20 ed ai 100 ns per CN e CE: Figura Analisi binaria esaustiva del blocco carry select da 2 bit e il perchè si capisce subito: calato Ay, con By alto, le porte OAI lavorano solo come OR perchè l azione di gating della AND viene meno; allora la OAI attende la stabilizzazione delle uscite della AND di Ax e Bx e della XNOR di Ay e By, peraltro ambedue commutanti. I tempi di decisione delle due funzioni sono diversi, perchè molto diversa è la conformazione a transistor di AND e XNOR: ne deriva che la XNOR resta alta troppo a lungo anche avendo ora Ay e By diseguali, e propaga un profondo picco negativo su CN. Il discorso vale anche per CE, dato che pure Ax OR Bx è in fase di transizione. Sx non ha spurie di sorta, vedendo una porta sola a monte; Sy però, il cui fronte è sempre in ritardo rispetto a quello di Sx, subisce di nuovo gli effetti della transizione lenta su Ay XNOR By e presenta anch esso in uscita un glitch notevole ai 20 ns
151 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Al di là di questi problemi da risolvere, la successione delle uscite è comunque booleanamente corretta; si noti in particolare l uguaglianza delle sequenze di CE e CN al variare di Cin, dato che essi non ne dipendono per definizione di carry-select. La cura circuitale per migliorare la risposta del blocco passa attraverso alcune modifiche da apportare alla sezione di elaborazione del secondo bit, Ay e By. La successione in cascata di due porte XOR realizzate a tx-gate dimostra di soffrire particolarmente di ritardi nella trasmissione del segnale; come si era notato discutendo la porta XOR elementare, è necessario proteggerne l uscita mediante un buffer che ne esegua oltretutto una rigenerazione del fronte; stante il limitato budget temporale a disposizione, lo stadio da usare può essere solamente una porta NOT. L analisi appena svolta mostra inoltre il bisogno di un equalizzazione dei ritardi nei percorsi identificati. L aggiunta di un ulteriore livello logico nel cammino più lento migliorerà certo la velocità di transizione delle porte OAI e XOR finali di Sy in risposta all impulso dato dalla XNOR pilota, ma aggiungerà un altra piccola latenza sulla linea; occorre prendere quantomeno un provvedimento analogo nel percorso che giunge ad OAI e XOR dalle porte NAND e NOR della sezione del primo bit, negando la loro uscita. Questo purtroppo è possibile sul ramo che afferisce alle porte XOR, ma non sulle linee che vanno alle due OAI: se è vero infatti che le XOR sopporteranno la negazione di un ingresso semplicemente invertendo l uscita, d altra parte le OAI non daranno più la stessa funzione logica; e non esiste stavolta una trasformazione di De Morgan in grado di recuperare l espressione originale. L unica azione da intraprendere consiste allora nel parificare almeno i percorsi che giungono alle due XOR finali di SEy ed SNy; esse dovranno essere a loro volta bufferizzate con un negatore in uscita, che ripristinerà l espressione logica corretta per Sy neutralizzando l inversione subita più a monte. CE e CN pagheranno lo scotto di essere affetti da pesanti glitch, vedendo precluso l utilizzo di catene dinamiche di look-ahead; ma almeno non subiranno ritardi ulteriori nella rete di valutazione, oltre alla nuova NOT agente sulla XNOR. La topologia della rete di valutazione di Sx deve infine introdurre un negatore di rigenerazione per la XOR di Ax e Bx, ma il percorso non è critico e la modifica sarà indolore. La porta di rinforzo aggiunta a valle di XNOR assurge ad un ruolo decisivo nell economia temporale delle operazioni: deve pilotare ben quattro porte logiche, determinando CE, CN e Sy, alias 3 uscite su un totale di 4; ne deriva l obbligo di ottimizzarla rispetto al ritardo introdotto. Il quesito è ben noto in elettronica digitale poichè si manifesta in
152 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 maniera pressocchè ubiqua, ed esiste un metodo per risolverlo: il tromboncino (Mead- Conway, [24]). Si tratta di una tecnica di minimizzazione del ritardo di pilotaggio di grandi carichi capacitivi C L mediante buffer invertitori; dalla soluzione matematica del problema si ricava che, volendo comandare la commutazione nel più breve tempo possibile partendo con un invertitore minimo, occorre interporre tra la porta in ingresso (con capacità di input pari a C 0 )edilcaricoinuscitaunnumerodibufferparia N=ln(C L /C 0 ) ciascuno più grande del precedente di un fattore e = Un risultato intermedio della dimostrazione afferma che, qualunque sia N utilizzato, gli stadi in cascata devono avere rapporti di aree in progressione geometrica; la ragione Q sarà quindi Q = N C C L 0 Nel nostro caso N = 2 perchè si vuole interporre una singola porta tra la XNOR e le quattro seguenti; valutando solo le capacità di canale, esse presentano un carico equivalente C L =2 ( ) µm +2 ( (2.2) ) µm = 48.6 µm (due OAI sul ramo OR, e due XOR sull ingresso B, che guarda un invertitore e due metà di tx-gate) di canale da guidare; la XNOR è assimilabile in primissima approssimazione ad un invertitore, anche se il segnale passa poi attraverso un interruttore, ed ha quindi C 0 = ( ) µm ; ne deriva Q = Lo schematico definitivo è il seguente:
153 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Struttura schematica del blocco carry-select da 2 bit, x ed y nel quale si nota come il ramo di carry sia stato opportunamente bufferizzato a sua volta; il ritardo introdotto è più che mai cruciale sulla catena di riporto, per cui occorre ripetere il calcolo del tromboncino che dà ( ) µm /6.6µm = 3.33 per cui l ampliamento varrebbe 3.33 = 1.8. Il valore di scalatura applicato è invece 2.5, nel tentativo di far scattare il multiplexer finale più velocemente riducendo la durata dei glitches sulle uscite. I nuovi transitori mostrano l abbattimento almeno della spuria su Sy:
154 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Miglioramento della risposta del blocco su Sy Parte IIR : Progetto CMOS della rete di look-ahead del sommatore Il passo successivo concerne il dimensionamento della rete di look-ahead. Dopo la trasformazione con De Morgan dello schema originario restano solamente percorsi di tipo NAND, e quindi impieganti porte del tipo migliore dal punto di vista della commutazione CMOS
155 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Sommatore CLA + carry select con soli componenti CMOS Due di esse hanno fan-in pari a 3, e non possono essere disegnate come semplice estensione della NAND a due input; il criterio a piramide (descritto al paragrafo 4.4)
156 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 consiglia di rendere la stringa di NMOS sempre più larga verso la massa, aumentando di conseguenza i valori delle capacità parassite verso nodi sempre più distanti dall uscita; si fa pagare il prezzo capacitivo del calo di resistenza della cascata a nodi che comunque non soffrono del problema. Il metodo delle costanti di tempo suggerisce del resto che per minimizzare il polo dominante la serie finale delle R veda una C piccola, e le C grandi siano viste all inizio della propagazione quando la Σ i R i è ancora bassa. Il metodo è usato spesso efficacemente nei progetti CMOS : Figura Porta NAND da 3 ingressi, e dimensionamento progressivo del pull-down Il cosiddetto tapering della serie di pull-down si è basato sul valore standard della W n indicato dal caso NOT, ossia 2.2 µm 3 = 6.6 µm, e su una ridistribuzione delle larghezze che si è dimostrata conveniente solo se mantenuta entro il limite del micron di differenza tra le W (altrimenti il transistore più piccolo aumenta troppo la sua R equivalente). La seconda delle porte NAND da 3 input può essere uniformemente ampliata in ossequio alla regola della progressione geometrica. Il risultato valido per il tromboncino è infatti generalizzabile anche a funzioni logiche generiche, e non alla sola complementazione; in previsione di carichi notevoli l intera rete logica può essere progressivamente scalata fino ad avere le ultime porte in grado di pilotarli (peraltro un ottimizzazione per ritardo ed area occupata sembra più ragionevole, e porta ad esponenti diversi da 1/N stadi ; si veda Lewis [25] in bibliografia). Il carico finale è il buffer invertente interno dei carry, largo 2.5 volte una
157 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 NOT normale; l ampliamento richiesto è dunque di un fattore 1.6, come si nota in figura anche per la seconda porta NAND a due input. La simulazione da svolgere sul sommatore da 8 bit completo per mettere in evidenza le caratteristiche di velocità dei suoi transitori deve interessare nella sua interezza la catena dei riporti; come caso ideale di commutazione abbiamo scelto allora l addizione: = , alternata ad = che propaga il primo carry fino all ultimo blocco. La successione delle uscite ottenuta è la seguente: Figura Uscite alternate del sommatore CLA + carry select ottimizzato che va confrontata con l equivalente risultato di una catena ripple-carry, simulata con gli stessi pezzi da due bit ma selezionando anche il carry, e non solo le uscite, con Cin; si tratta insomma dell algoritmo di somma condizionale classico privo di CLA :
158 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Uscite alternate del sommatore carry select + ripple Il vantaggio è evidente; se l LSB S0 parte un poco prima nel caso ripple, la carica dell MSB S7 termina però a 9.5 ns per il carry select ed a 12 ns, cioè oltre il periodo consentito, per il ripple (che non presenta peraltro nessun intervallo avente tutti i dati stabili). Le figure mostrano la netta separazione iniziale tra i due bit provenienti dallo stesso blocco, e la coincidenza delle commutazioni dei bit successivi, pilotate dai carry; transizioni pressocchè equispaziate nel secondo caso, molto raggruppate nel primo. Il CLA ha elaborato i carry in anticipo, fornendoli in tempi molto simili al terzo ed al quarto blocco (che paga leggermente le dimensioni delle porte a fan-in superiore); il secondo blocco sa già che il suo Cin è CN del precedente e commuta quindi in anticipo rispetto agli altri. Si osservi che la vicinanza delle due curve S4-S5 ed S6-S7 è stata ottenuta solo dopo vari passi di taratura del tapering delle NAND a fan-in Parte IIR : Progetto BiCMOS a Wired-OR della rete CLA Proprio il desiderio di avvicinare ancor di più le ultime due curve ci ha spinto a tentare un implementazione della rete di look-ahead facente uso di transistori bipolari. Tale parte di logica va del resto ripetuta solo 3 volte nella sezione IIR, ed eventuali svantaggi di ordine dissipativo resterebbero tollerabili. Nel caso ad 8 bit la catena CLA NON HA componenti parassiti così notevoli da rendere vantaggioso l impiego delle classiche porte BiCMOS; il ritardo introdotto dai voluminosi
159 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 NPN frustra ogni tentativo. Si può purtuttavia cercare di eliminare dei livelli di gate logici attraverso l uso di configurazioni alternative molto meno convenzionali, usate a volte in logica ECL (Emitter Coupled Logic, tutta a bipolari) che la presenza di BJT permette di applicare con profitto: le connessioni ad OR cablato, o Wired-OR. Si tratta di alzare in tensione una linea quando uno solo dei componenti afferenti si accende; la linea comune è normalmente polarizzata a massa da un carico resistivo di pull-down realizzato con un transistor NMOS, che da solo costituisce il livello logico OR. L operazione logica riesce pressocchè gratuita: Vdd IN Cmos-A IN Cmos-B Wired-OR Vdd OUT Vdd Vdd IN OUT IN OU NOT BiCMOS NOT Half-BiCMOS Figura Porte Wired-OR da 2 ingressi, e passaggio dall invertitore BiCMOS allo stadio Half-BiCMOS occorrente per esse
160 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 I dispositivi di uscita delle porte pilota devono poter reggere il transitorio di tensione indotto in linea da qualche transizione altrui, senza provocare corti circuiti. Le uscite CMOS convenzionali, statiche, prevedono che l output sia sempre collegato a Vdd oppure a GND, e connettendo più porte di tale tipo in parallelo si creano contenziosi in linea; occorre quindi dotarle di un sistema di pull-up che quando non è acceso sia insensibile a Vout non interferendovi. Il sistema più semplice consta di un solo transistore, BJT o MOS; dovendosi garantire commutazioni veloci ad un nodo gravato dalla presenza di altre uscite, oltre che del carico a valle, è naturale propendere per la prima soluzione. Si noti che non si sta facendo riferimento quindi all uso di un invertitore BiCMOS completo, ma piuttosto ad una sua parte, che potremo etichettare NOT half-bicmos. Se si riesce a tradurre la configurazione CLA originaria in una combinazione di sole NOT half-bicmos e Wired-OR, il circuito risultante è minimo per ingombro e ha pull-down tutti ad NMOS, dunque resistivamente ottimali; si pensi per converso all occupazione ed alla resistività dovute alle porte NAND a tre ingressi. L operazione è stata portata a termine con successo, mediante elaborazione di De Morgan OR-AND OR-NOT (che è del resto una logica completa) :
161 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Sommatore CLA + carry select con rete di riporto BiCMOS anche se in taluni siti ( si veda il CN del terzo blocco dall alto) ciò comporta, per avere il BJT e rispettare la funzione logica, una cascata di NOT CMOS+NOT half-bicmos; questi ultimi
162 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 sono indicati con il triangolo inscritto. Pensare di introdurre il transistore bipolare occorrente già nel blocco carry-select implica un consumo superiore (da moltiplicare per 4 blocchi 3 sommatori = 12 blocchi) ed un ulteriore onere per la porta OAI dei carry; inoltre il secondo blocco dei quattro di-bit non si gioverebbe della modifica, dovendo comunque subire inversione sul CN. La trasformazione obbliga ad avere alcune cascate NOR-OR; piuttosto che realizzare anche un Wired-NOR, che necessiterebbe stavolta di BJT di pull-down riducendo anche lo swing inferiore dell uscita, è meglio usare comunque le sole OR seguite da un invertitore; esso disaccoppierà la linea comune delle due porte introducendo peraltro anche il BJT occorrente per il pilotaggio della seconda. Si osservi per inciso che la cascata di due wiring, NOR-OR, non funziona; si tratterebbe di comandare un bipolare della OR con un intervallo di tensioni BiCMOS Vbe Vdd generate in output dalla metà inferiore della porta BiCMOS NOT, non riuscendo mai a spegnerlo completamente e creando conflitti con gli altri ingressi. Per calare il limite inferiore di tensione offerto dalla Wired-OR si potrebbe saturare tale bipolare, ponendo un NMOS sulla sua base che la connetta non all output bensì a Vdd quando l uscita deve essere bassa; ma la scarica di una base saturata è lentissima, e ciò che servirebbe a queste velocità è piuttosto una ECL (logica appunto non saturata ) anzichè una TTL normale. Esistono altri metodi per aumentare lo swing anche fino a 0 3V, ma fanno uso di transistori NMOS che devono intervenire nell ultima fase di scarica della base; essi vanno pilotati dalla linea di uscita, purtroppo caricandola ulteriormente, oppure addirittura da altri negatori CMOS dedicati che introducono ritardi (una breve rassegna di configurazioni a bassa tensione si trova in Chik-Salama [26], che mostrano anche come il limite superiore del range 0 Vdd-Vbe possa essere alzato mediante bootstrapping sino a Vdd; ma pregiudicando la semplicità del circuito e richiedendo sacche PMOS isolate). Il pull-down terrà conto delle caratteristiche del bipolare; nel caso pessimo è un solo BJT ad essere acceso, che alla fine dovrà alimentare in corrente l NMOS di pull-down sottostante per tenerlo saturo; scegliendo un NMOS da 3.3 µm si ha una I sat = 320 µa, che distribuita sull area di 2 (3.5 µm 2 ) = 24.5 µm 2 di emettitore manda il transistor in alta iniezione (scendendo dunque 0.8 / 0.85 V sotto a Vdd). D altra parte, la scarica del nodo di wiring deve essere sufficientemente celere, e calare da 3.3 a 2.2 µm ne penalizza eccessivamente la discesa
163 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Alcuni negatori comandano due Wired-OR e devono quindi prevedere due BJT separati in uscita, il che costituisce un carico piuttosto rilevante. Il bipolare multi-emitter non è supportato dalla tecnologia disponibile; ma anche se lo fosse, connettere due nodi di wiring allo stesso dispositivo sarebbe un errore circuitale perchè le due OR interferirebbero tra di loro attraverso l emettitore del BJT comune! Il dimensionamento della NOT half-bicmos va eseguito simulando con attenzione, dato che il carry è un percorso critico ed il transistore bipolare non conta solo per la sua capacità, ma drena anche corrente dalla base. Il BJT è scelto minimo, perchè tecnologicamente il minimo realizzabile ha già il parametro AREA = 2; le capacità degli altri bipolari connessi al nodo di wiring sono schermate dall effetto del guadagno di corrente del transistore BJT, che le riscala in prima approssimazione di un fattore Beta diretto ; la capacità C be si carica ad ambedue i capi e la capacità C bc pesa completamente, con i suoi = 26.6 ff; ricordando che la porta NOT CMOS aggiungeva invece circa 14 ff alla capacità di uscita dello stadio precedente, si ottiene un ordine di grandezza del fattore di ampliamento necessario di 1.8, da cui iniziare le simulazioni. Sorprendentemente, l ottimo trovato non si discosta molto da questa prima, rudimentale stima. Infatti, provando la medesima stringa di test fornita agli altri due sommatori, ed usando porte più grandi della NOTx1.8 (la stima si era ritenuta troppo ottimistica) si ottiene: Figura Uscite alternate e carry intermedi dei blocchi del sommatore con CLA BiCMOS
164 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 (C23, C45 e C67 sono i carry intermedi già presenti nello schematico) in cui effettivamente la differenza temporale tra i bit S4-S5 ed S6-S7 è stata annullata, come da obiettivo posto per questa variante circuitale; ma il tempo di discesa dei carry intermedi è però vistosamente migliorabile. Aumentando le dimensioni dei pull-down facendole giungere a 4.4 µm, e provando con porte NOT del tipo previsto, l uscita si velocizzerà; ma la modifica decisiva è concernente le soglie delle porte pilotate da nodi ad OR cablato. Lo swing logico si è ridotto di una Vbe, che per essere recuperata richiede la costruzione di configurazioni di transistori abbastanza complesse (non meno di una dozzina di MOSFET per porta); accettando quindi di non riuscire a chiudere completamente il PMOS del gate successivo, sembra più economico procedere ad un riposizionamento della sua soglia di scatto. La nuova dinamica è V; allora si allarga l NMOS e si restringe il PMOS dell invertitore a valle della Wired-OR, fino ad avere una soglia ad 1.1V : Figura Caratteristica di trasferimento degli invertitori a soglia ribassata il che si ottiene prendendo Wn = 3.3 µm e W p = 3.3 µm (in realtà l NMOS andrebbe allargato ancora, ma questi valori sono ben realizzabili e danno un risultato consimile). Questo capiterà nella rete di look-ahead ed anche all interno dei blocchi, nel driver dei multiplexer finali. La risposta è diventata :
165 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Transitori dell adder BiCMOS dopo le modifiche apportate pull-down : Infine, dopo un ulteriore ritocco per limare i fronti di discesa dei carry dimensionando i Figura Transitori finali dopo l ottimizzazione di soglie e dimensioni dei CMOS
166 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 dove si guadagnano 0.3 ns ancora. I transitori dei carry sono visibilmente più veloci, sia come fronte che come istante di partenza, rispetto a quelli della prima simulazione. Sui bit di uscita il vantaggio è quasi impercettibile nella fase di salita, tranne che all immediato inizio del fronte, ma diventa sensibile durante la discesa, che termina ai 13.5 ns contro gli oltre 14 ns precedenti. Sono forse le massime prestazioni estraibili dall uso della tecnologia BiCMOS nel nostro caso: in letteratura sono riportati grafici (Bellaouar-Elmasry-Embabi [27]), relativi a lunghezze di canale inferiori però agli 0.7 µm, che forniscono per le diverse varianti circuitali i valori delle capacità di carico ai quali le logiche BiCMOS superano in velocità le logiche CMOS ( crossover capacitances ); a 3.3 V occorrono in media più di 100 ff di carico per ottenere ciò; e occorrerà correggere i dati riscalando le capacità al rialzo, nel caso attuale, perchè i dispositivi sono più larghi. Ancora, in (Nakase-Suzuki-Makino-Shinohara-Mashiko [28]) altri grafici relativi proprio all uso di logiche cablate a BiCMOS riportano come vantaggiosa l alternativa a bipolari solo con fan-in superiori a 4 (che è giusto quanto si è strenuamente cercato di evitare nella fase del progetto ad alto livello), e per giunta confrontando Wired-OR con NOR CMOS, e non con la più veloce NAND CMOS. Il circuito realizzato ora invece riesce ad erodere una piccola parte del ritardo anche se il massimo fan-in vale solo 3. La relativa esiguità del vantaggio acquisito è la riprova che si sta lavorando al limite della convenienza delle due tecnologie : con tre soli riporti da generare la tecnica CLA inizia a dare problemi se implementata a CMOS, e tuttavia non coglie ancora i duplici vantaggi BiCMOS / cablata garantiti nel caso di somme più lunghe; è davvero una situazione di frontiera. Figura Confronto CMOS - BiCMOS eseguito dagli autori di [28]
167 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 L articolo citato or ora 8 propone anche un pull-down dinamico del nodo di Wired-OR (e al proposito si veda anche Sharaf-Elmasry [29]) che fa pensare di poter ridurre la corrente, ora maggiore di 320 µa, portata dallo stadio da noi proposto; è una variante delle tecniche BiCMOS che leggono l uscita e retroagiscono sui resistori attivi, o VCR (Voltage Controlled Resistor), per aumentare la corrente drenata solo al transitorio di pull-down mantenendola molto più bassa in condizioni di quiescenza. Un tentativo effettuato ha però confermato che il fan-in della OR cablata è troppo basso per poter sopportare l aggiunta di ulteriore carico (NOT di controllo da W P =10 µm ew N =2.2µm, nonchè pull-down controllato ausiliario NMOS da 10 µm); i tempi di commutazione simulati si sono dimostrati ampiamente insoddisfacenti per i nostri scopi. Si noti infine che nel circuito dell articolo medesimo viene utilizzata una quota fissa di corrente di pull-down da 500 µa, e sono inclusi BJT di dimensioni inferiori alle nostre con effetti di alta iniezione quantificati sempre in 0.8 V; la dissipazione ottenuta con la rete qui proposta è certamente inferiore. Il consumo di potenza è sicuramente un fattore che penalizza la configurazione BiCMOS proposta; se il precedente tentativo CMOS funzionasse egualmente il risparmio sarebbe assicurato. Nel prosieguo dunque le due opzioni saranno portate avanti in parallelo, con una preferenza comunque attribuita alla realizzazione CMOS Parte IIR : Ottimizzazione dei registri a latch Nell ottica di costruire il circuito verificandone in continuazione il funzionamento, si implementano ora i registri necessari a completare gli accumulatori. La tecnica prescelta era stata quella a celle NOT + TX.GATE tipica degli shift register; il problema sta nel dimensionare invertitori ed interruttori. La prima idea si rifa direttamente al tromboncino; gli integratori sono circuiti a struttura circolare, quindi l uscita del registro torna all ingresso del sommatore ed ivi incontra, nel caso peggiore di bit pari, una porta XOR, una NAND ed una NOR. Idem accade anche per l adder successivo, pilotato sempre dal medesimo registro che funge da memoria di pipe-line. In totale, ricordando le strutture delle porte logiche si ha 8 La pubblicazione è recente, del Giugno 1995; l idea di applicare le tecniche di OR cablato a BiCMOS alla somma con look-ahead è venuta all estensore di questa tesi in modo assolutamente autonomo rispetto a tale
168 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 C OUT registro =2 [ ( )] = 48.4 µm di capacità equivalente; divisi per i 6.6 µm di capacità dell invertitore unitario, ed estraendo la radice quadrata si ottiene una dimensione 2.7 volte maggiore per la seconda porta NOT del registro. Il calcolo è stato effettuato in relazione all ingresso B della XOR di input del sommatore; A è più critico, ed oltretutto gli interruttori intermedi consigliano un atteggiamento maggiormente cautelativo, per cui si sceglierà un valore pari a 3. Figura Transmission-gate minima Gli interruttori sono stati finora mantenuti minimi, con dimensioni di 2.2 µm; si osserva che l aumento delle dimensioni gioca teoricamente effetti paritetici ma contrapposti su R e su C, quindi nulla dovrebbe variare aumentando la W dei dispositivi. Le componenti parassite di capacità tuttavia si incrementano con W e finiscono a volte per peggiorare le caratteristiche di commutazione; del resto, da una sommaria valutazione del ritardo con un albero RC di Elmore si ha : TX-GATE TX-GATE R 1 R 2 R 1 R 2 /2 C C 2C 2C Figura Confronto dei ritardi RC con diversi dimensionamenti dei tx-gate articolo. Dell articolo si è ripreso solamente il circuito di pull-down attivo, peraltro sfortunatamente rivelatosi inadatto allo schematico in oggetto
169 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Nel primo caso, T tot =R 1 C+(R 1 +R 2 ) C =2 R 1 C+R 2 C mentre nel secondo T tot =R 1 2 C +(R 1 +R 2 /2) 2 C =4 R 1 C+R 2 C e quindi la situazione peggiora, laddove quest analisi è applicabile (cioè dove le capacità dominanti sono quelle del tx-gate). Un grado di libertà che resta da sfruttare nella fisica dei transmission-gate è il valore del potenziale di substrato; se non si prevede l effettuazione di opportuni isolamenti delle sacche, o well, in cui giacciono i transistori, i potenziali valgono rispettivamente GND per il substrato drogato P, e Vdd per la N-well. La differenza di potenziale tra i morsetti di Source (che nei txgate è l ingresso e dunque varia) e di Bulk provoca nei MOSFET delle modulazioni della tensione di soglia V t che li rendono più resistivi, in ragione del coefficiente KB1 dato all inizio del capitolo. La formula da adottare è : ( SB φ φ ) V = KB V + t dove φ 1 è la curvatura totale delle bande di energia e vale V per la tecnologia in uso; se il source si trova 1 V sopra il bulk, per un NMOS si ha un incremento della soglia di V: 50% in più del normale. Tale comportamento prende il nome di effetto body. Per aumentare la velocità si possono individuare più soluzioni : collegare Source e Bulk in modo da avere sempre V SB = 0; ciò richiede naturalmente la creazione di well isolate per ogni transmission-gate, con notevole dispendio di area. Oltretutto, se il Source di un NMOS (diffusione n+ connessa al substrato isolato p) sale sopra al valore di tensione posseduto dal Drain in quell istante, si ha una polarizzazione diretta della giunzione p-n+ che fa variare l uscita senza che l interruttore sia stato chiuso, introducendo un errore
170 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 OUT IN Figura Tx-gate con V SB = 0, non funzionanti per mantenere V SB = 0 e non indurre variazioni fallaci all uscita si possono commutare i substrati. Quando cioè l interruttore è chiuso, allora si chiude anche un percorso ohmico che connette il bulk originario alla diffusione di source, azzerando l effetto body. In fase di chiusura, l NMOS del tx-gate è preposto a trasmettere tensioni basse, e dunque è facile che il suo bulk serva polarizzato basso; ne deriva che va munito di NMOS per la scarica; dualmente per il PMOS. All apertura, anche source e bulk si separano; il bulk resta fluttuante, e dunque potenzialmente è un ricettacolo di interferenze da evitare; però la realizzazione fisica della configurazione risulta particolarmente compatta, ed il pericolo di polarizzazioni erronee non sussiste più. La compattezza del layout della configurazione deriva dalla possibilità di condividere il Source del transistore principale con il Source del MOSFET di servizio che lo affianca, usando così tre diffusioni elettrodiche in luogo di quattro. Il bulk del transistor di servizio può essere connesso classicamente a Vdd (PMOS) e GND (NMOS), oppure essere comune al substrato che esso deve commutare col suo drain, per avere il massimo impaccamento
171 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 OUT IN IN G G OUT G G D-bulk S S D-bulk D D p + p + p + n + n + n + n-epitassia p-well n + sinker n + buried n-iso p-substrato Figura Tx-gate con substrato commutato in una fase, e sezione degli strati tecnologici componenti tale configurazione - Soluzione a massimo impaccamento possibile a parziale modifica dello schema precedente si può far sì che, a tx-gate aperta, i due substrati vengano commutati da un ulteriore transistor verso massa e Vdd; non dovendovi essere conduzione in quei periodi, la polarizzazione dei bulk non ha effetti ritardanti su alcun segnale
172 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 OUT Vdd IN Figura Tx-gate con substrato commutato in due fasi - Soluzione più sicura della precedente Gli interruttori di switching del substrato saranno a loro volta dei MOSFET. Sul bulk p dell NMOS del tx-gate occorre predisporre un NMOS (elemento adatto per abbassare tensioni) per portarlo a massa, ed un PMOS (elemento ideale per alzare le tensioni dei nodi) per rialzarlo alla V source, dopo la commutazione; dualmente per il PMOS. La simulazione delle cinque possibilità illustrate, con carico di 100 ff in output, fornisce Figura Commutazioni dei diversi modelli di tx-gate al variare di V-in e V-controllo
173 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 alias nell ordine : OUTPUT1 Bulk Source, con polarizzazione errata della giunzione e chiusura indesiderata OUTPUT2 ogni bulk è connesso alla rispettiva alimentazione; lento ma insensibile alle variazioni degli ingressi, in condizioni di apertura OUTPUT3 soluzione con 4 transistor di servizio aventi bulk separato, polarizzato alla rispettiva tensione di Source; pesanti feed-through degli ingressi, accoppiati con i transistori principali mediante percorsi plurimi OUTPUT4 soluzione con 2 transistor di servizio, aventi bulk separato e connesso alla rispettiva alimentazione OUTPUT5 soluzione con 2 transistor di servizio, aventi bulk in comune con il loro MOSFET principale e connesso al loro drain. Il risparmio di circa 0.4 ns, sul ciclo di clock a 200 MHz significa un buon 8%; ma la complessità circuitale e di disposizione delle sacche di isolamento è veramente soverchiante, e il pericolo di latch-up (innesco di meccanismi di scarica volumetrica di tipo bipolare tra i MOSFET) corso lasciando i bulk fluttuanti è elevato, quindi l unica soluzione ragionevole è adottare la connessione classica : ogni well fissa alla sua alimentazione, Vdd o GND. Stando a (Geiger-Allen-Strader, [19], pag.302), per sistemi con alimentazione inferiore a 4 V l uso di tx-gate in percorsi di segnale è possibile solo usando clock di pilotaggio dei terminali di gate da 5 V o superiori, ottenuti on-chip mediante circuiti di innalzamento delle tensioni; va già comunque detto che pur senza usare tale tecnica di hot clocking siamo riusciti ad ottenere i risultati desiderati. La struttura delle celle semplici del registro è in conclusione la seguente: Figura Cella base a latch dei registri dati
174 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 La più semplice prova dei registri è quella che prevede una connessione del sommatore con il latch a valle, senza chiudere l anello di accumulo; gli ingressi sono tali da far commutare ad ogni colpo del clock tutte le uscite, al solito sommando con (bit LSB variabile ogni periodo) : Figura Apparato di test Sommatore + Registro Il primo tentativo prevede una struttura del registro avente interruttori triplicati, ossia con W = 6.6 µm, perchè sembra che una porta NOT larga il triplo del normale tragga benefici dal vedere una linea meno resistiva. Se ciò è vero per la parte da essa comandata, la prima NOT minima però mostra di soffrire il carico capacitivo :
175 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Uscite errate del registro - Prova 1 laddove le uscite avrebbero dovuto essere ed Invece, utilizzando transmission-gate larghe solo 4.4 µm (e contestualmente rimpicciolendo la NOT che inverte il clock per i tx-gate) si migliora fino ad avere : Figura Miglioramento dei transitori - Prova 2 Le uscite O4..O7 sono ancora imperfette, ma vengono quasi completamente sistemate da un ritocco al driver di pilotaggio dei tx-gate che viene di nuovo allargato. Il modesto carico di 8.8 µm di MOSFET che lo gravava aveva indotto a disegnarlo minimo, ma la sua
176 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 posizione è critica per il buon funzionamento del circuito, in quanto gli interruttori devono aprirsi celermente per far salire il loro carico in 2.5 ns. Anche in seguito si deve tenere presente che avere fronti lenti del clock nei registri è letale; meglio piuttosto ritardare i fronti ed averli più ripidi, che pilotare male gli interruttori. La capacità di driving del clock esterno è poi un parametro garantito al progettista, e quindi ci si può fare affidamento; allargare i driver ove necessario diventa un obbligo, più che un opportunità. Il negatore è ora 1.5 volte quello minimo: Figura Uscite quasi completamente assestate - Prova 3 Le curve delle uscite del addizionatore sono fino ad ora rimaste immutate nei tre casi presentati; le modifiche hanno riguardato solo i latch. Esaminando le linee S(0..7) dell ultimo transitorio, si nota come il sommatore abbia prolungato il suo ritardo di quasi 1 ns, con l aggiunta del carico; è possibile prendere provvedimenti per velocizzarlo ancora, però. Infatti, ci si ricorda che i blocchi di carry-select forniscono sempre CE e CN; ma l ultimo blocco potrebbe esimersi dal farlo, perchè non deve propagare riporto in aritmetica modulare; e del primo blocco solo CN viene usato. Le grandi porte OAI dei carry condizionali inutili possono allora essere sconnesse dalle uscite che le pilotavano, con grande beneficio soprattutto dei bit 6 e 7 che sono poi coloro che faticavano maggiormente a salire e scendere. In ossequio alle indicazioni che impongono la regolarità le porte non saranno eliminate dal layout, ma semplicemente saranno connesse in ingresso alle alimentazioni, mantenendo fissa la loro tensione in uscita; anche lasciarle inutilizzate ad ingressi flottanti infatti potrebbe cagionare
177 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 disturbo ai gate più vicini. Un altra miglioria riguarda il pilotaggio dei multiplexer finali, che per alleggerire il CLA viene ora eseguito da un buffer invertente più piccolo, una NOTx1.5, contro la NOTx2.5 (scalata due volte e mezza rispetto al minimo) prima presente. Figura Squadratura delle uscite del registro e conseguente sistemazione dell output finale L aspetto assunto dalla solita sequenza di testing ridiviene parecchio più squadrato sui segnali S0..S7, riguadagnando soprattutto in ripidità dei fronti; ciò è sintomo soprattutto di un migliore pilotaggio dei multiplexer finali. Il registro a questo punto scatta uniformemente su tutto il byte. E stata anche eseguita una prova utilizzando il sommatore a ripple-carry select già illustrato; nonostante le modifiche, il bit S7 arriva così ritardato al registro finale che la sequenza di uscita, anzichè valere si presenta come Le uscite O0..O7 finali presentano un tipico effetto di clock feed-through ad ogni chiusura degli interruttori; si tratta dell iniezione di carica dalle linee del clock verso l uscita, ingenerata dall accoppiamento capacitivo Gate-Drain dato dalla presenza di Cgd. Peraltro l effetto è sempre a favore del livello binario memorizzato, andando nel senso della transizione completata. Questo si spiega col fatto che uno solo dei due MOSFET è conduttivo,
178 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 agli estremi della dinamica; quindi, esso avrà ancora canale pur non portando praticamente più corrente; è in zona ohmica, o lineare nell origine. La capacità che lega dunque il gate al nodo di uscita è composta dal parallelo Cgd + Cgs + Ccanale, mentre per l altro transistore della coppia di switch, spento, l accoppiamento è dovuto alla sola Cgd; si avrà dunque: 0V 0V Figura Circuito per lo studio del clock feed-through e considerando che anche l uscita della NOTx3 viene vista attraverso il canale esistente, si ha il partitore capacitivo: Cgs + Cgd + Ccanale V = 3V Ctot Cgd Ctot feed through NMOS PMOS ove Ctot = ( Cgs + Cgd + Ccanale) + ( Cgd) + Cdb + Cdb + C NMOS PMOS NMOS PMOS nodo input che sostituendo i valori per transistori da 4.4 µm (Cin = ff, ed output aperto ossia caricato dei soli ff dei due dispositivi) porta a Ctot = ff, con conseguente V feedthrough = 0.23 V. Correzioni al calcolo andranno apportate per via della resistività del canale (si scala Cin in percentuale), ma il risultato è consistente con la simulazione. Le asimmetrie nel feed-through sono dovute probabilmente alle diverse resistività dei canali; la componente di carica iniettata dovuta allo svuotamento finale delle cariche di canale medesime gioca un ruolo marginale, prevedibilmente di ±0.05 V (Riccò-Fantini-Brambilla, [23],pag. 268)
179 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap Parte IIR : Tentativo useful clok skew Il passo successivo consiste nel chiudere l anello dell integratore connettendo le uscite del registro all adder. Questa volta le uscite consisteranno in un accumulo dei dati in arrivo, quindi per agio di comprensione dei risultati si porrà in input una costante pari ad 1; l ingresso SIGMA_DELTA0 varrà 1 e il SIGMA_DELTA1 sarà 0 (sono i due bit uscenti dal modulatore). Le linee in uscita eseguiranno un incremento ed i bit avranno dunque periodi multipli di quelli del clock: O0 10 ns, O1 20 ns, e così via fino ad O nanosecondi. L uscita è: Figura Errore nel transistorio di uscita dell anello chiuso di accumulo in cui si evidenzia una transizione critica agli ns, che è naturalmente uno scatto del tipo Il conteggio non è solo immediato da interpretare e controllare a vista, ma si pone quindi anche come caso-prova piuttosto impegnativo per il circuito in occasione di ogni transizione del tipo indicato. La somma graficata fallisce perchè il bit S4, che pure era salito, non è stato sentito in tempo dal latch seguente; il suo livello lo fa apparire basso all arrivo del fronte di salita del clock, istante nel quale il latch legge l ultimo stato
180 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 dell ingresso. Perso S4, il dato letto è che fa ricominciare il conteggio. In concomitanza di ciò si notano spurie sui bit inferiori,. glitch simili a quello visibile per S1 ai 74 ns, ma molto più pronunciati. Le spurie osservate in uscita sono ancora legate ai veloci transitori imposti sul selettore finale dal CN del primo blocco, già discussi in precedenza; la novità è che la rigenerazione delle XOR interne le rende sì più veloci, ma proprio per questo rende anche gli inerenti glitch più profondi; il transitorio RC si fa più nervoso e la logica dei carry ne risente di nuovo direttamente, stabilizzandosi dopo che le spurie si sono esaurite. Un aumento dei tx-gate delle XOR non provoca effetti positivi, nè se ne ottengono calando la dimensione della porta NOTx2.7 di bufferizzazione intermedia; il difetto è congenito al circuito, e contrastarlo con ridondanze di logica per ripararsi dai glitch farebbe aumentare notevolmente la complessità del singolo blocco. S4 è il primo bit che dovrebbe essere selezionato da un carry proveniente dalla rete di look-ahead, che per parte sua è già stata ottimizzata; il dato è presente regolarmente in uscita, all inizio, ma ormai troppo tardi. Per tentare un ulteriore aumento di velocità nella rete lookahead si può curare l ordine delle connessioni tra una porta e la successiva: i tre input di una NAND sono logicamente identici, ma non circuitalmente. Infatti, riferendosi al MOSFET affacciato all uscita della porta, si ha che l effetto body interviene se la capacità parassita sul Source del transistore è carica; eventualità che accade quando OUT è a 3 V e quel MOSFET è acceso, ma i transistori sottostanti non lo sono. All arrivo di un input che accende tutti gli NMOS, se l ultimo ad attivarsi sarà quello collegato ad OUT esso troverà la sua Csb già scaricata dai transistori sottostanti, quindi avrà Vsb minima, e la commutazione procederà più spedita:
181 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Vdd senza BODY EFFECT con BODY EFFECT A OU C L B C Figura Porta CMOS con problemi di rallentamento della commutazione dovuti all effetto body Le connessioni presentate nello schematico del sommatore illustrato in precedenza vanno dunque ottimizzate di nuovo, nel senso che l ultima NAND-3 input vorrà sull ingresso A, quello accosto al uscita, l input più ritardatario: l uscita della precedente NAND-3. L input C, connesso all NMOS più grande e che deve commutare prima, sarà appannaggio certamente della porta NOT che elabora CN del 3 blocco; e così via, con una filosofia che verrà conservata in tutti gli schematici successivi del progetto (in particolare in presenza delle porte XOR, massimamente critiche sotto questo punto di vista). Purtroppo tali variazioni migliorano le prestazioni, ma non in maniera decisiva. Nemmeno levando l ultima NOT di Sy, prima del multiplexaggio, e cambiando conseguentemente XOR in XNOR si sortisce effetto. Quest ultima contromisura indica anzi che la cascata di due tx-gate (uno interno alla XOR ed il secondo dovuto al multiplexer) aumenta il ritardo in modo intollerabile; una rigenerazione intermedia è sempre necessaria. La soluzione del problema si trova ricordandosi di come la sincronizzazione dei registri possa essere falsata dal ritardo subìto dal clock lungo le linee dei circuiti integrati; il fenomeno è detto clock skew, per via della dispersione dei fronti che esso implica. Se si potesse inseguire il ritardo inflitto dal metodo di somma agli ultimi bit (S4..S7) con un analogo ritardo degli istanti di lettura dei latch corrispondenti, forse il segnale S4 potrebbe variare in tempo per essere memorizzato correttamente. In effetti, temporizzare tutta la
182 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 batteria di celle dei registri allo stesso istante è, a ben vedere, uno spreco di risorse temporali : tutti gli input vengono forniti dal registro al sommatore successivo simultaneamente, ma allora A7 e B7 terminata la fase di preparazione di SEy ed SNy devono aspettare a lungo l arrivo del carry per vedere deciso il valore di S7, già pronto da tanto tempo! Meglio sarebbe far giungere le varie coppie di bit sfalsate temporalmente, così (leggendo da destra verso sinistra le colonne): A1/B1 A0/B0 A3/B3 A2/B2 - calcolo SE/SN A6/B6 A5/B5 - calcolo SE/SN - selezione S0/S1 A7/B7 A6/B6 - calcolo SE/SN - selezione S3/S2 RIPORTO - calcolo SE/SN - selezione S6/S5 RIPORTO - latch - selezione S7/S6 RIPORTO - latch A0 /B0 A1 /B1 A7 e B7 arrivano dopo A0 e B0, così la catena dei riporti è già attivata; appena finita la fase di calcolo di SE7 ed SN7 arriverà il riporto che selezionerà il bit giusto, senza attese. Si tratta di una riedizione del pipe-line che però non fa uso di cicli sincroni diversi per le diverse fasi; una definizione calzante sarebbe pipe-line frazionario, perchè temporalmente il sincronismo tra le operazioni non è affidato a periodi diversi ma a tempidiarrivodiversi, per i differenti bit, dello stesso fronte di clock; un sincronismo variabile con continuità dunque. Il problema di realizzarlo risiede proprio qui, nella difficoltà di controllare a livello di layout i ritardi introdotti; ma se il ritardo intrinseco dato dalle linee peserà poco, con una cascata di invertitori si riuscirà a differire il segnale di intervalli temporali standard. Affidarsi solamente all effetto introdotto dalla conduzione del clock nelle piste sarebbe in ogni caso pericoloso, anche perchè verrebbe a trovarsi fuori controllo la pendenza del fronte finale, importante per ragioni di dissipazione. Questa tecnica, invero assai poco utilizzata e citata, viene chiamata useful clok skew (qualche cenno si trova in Bakoglu [18]). Componendo due problemi si ottiene una soluzione: il ritardo dato da lunghe linee di segnale è indesiderato; il sommatore va velocizzato per tener dietro al registro; ma se le linee lunghe sono quelle del clock del registro, il circuito funziona. Anzi, a livello di layout ci si potrà preoccupare di meno della criticità delle connessioni del clock, a patto che il ritardo vada nella direzione voluta
183 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Nel nostro caso il problema si manifesta già a partire dal bit S4; i registri allora andranno rallentati a partire dal quarto bit, con un primo stadio di doppia inversione del clock; per poi inserirne magari un altro prima delle celle di S6/S7, all occorrenza: Figura Registro predisposto per sfruttare il clock skew controllato Il controllo da conservare sulla temporizzazione delle singole celle del registro impedisce che la negazione del clock, occorrente per comandare i tx-gate interni, venga eseguita una volta per tutte le 8 celle; essa è relegata all interno di ogni cella con notevole dispendio di area, se si pensa al numero di registri necessari: sono 24 celle, nella parte IIR. La frazione di skew controllato introdotta è regolabile tramite il dimensionamento delle porte interposte. Già con la coppia di NOT minime si perviene comunque alla correzione del problema che si era presentato prima; il sommatore non ha virtualmente mutato comportamento, però il latch stavolta è in grado di avvertire la transizione avvenuta su S4, ed il conteggio prosegue regolarmente:
184 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Transitorio di incremento corretto grazie allo useful clock skew Il fatto che O4 salga con oltre 1 ns di ritardo rispetto alle transizioni dei bit O0..O3, e che comunque la somma S4 venga emessa quasi nello stesso istante di prima, conferma che si è avuto un guadagno netto di efficienza grazie allo sfruttamento dei tempi morti dei riporti. La presenza di skew aggiunto è ben visibile sulle periodiche iniezioni di clock feed-through, che risultano sfalsate tra gli LSB ed i bit superiori. L effetto del feed-through su O0..O7 era calato rispetto alla simulazione ad anello numerico aperto, per l incremento subìto dalla capacità di uscita che aveva depresso la partizione capacitiva; le celle del latch governate dal clock differito hanno però un fronte di sincronismo rigenerato, di pendenza elevata, che torna a far crescere l iniezione di carica. Figura Particolare di feed-through che evidenzia la dispersione dei fronti di segnale
185 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Questa tecnica consente un miglioramento delle caratteristiche del sistema, ma a prezzo di una minor sicurezza progettuale. Occorre infatti riuscire a controllare iritardispurînel circuito fisico, anche se li si può maggiormente tollerare; laddove in precedenza si poteva progettare assumendo che il clock fosse simultaneo, e lavorare dividendo in isole sincrone il circuito, ora si deve stare molto più attenti. Esiste inoltre un risvolto negativo del fatto di disperdere i fronti di commutazione dei dati nel tempo, per apprezzare il quale però occorre costruire almeno tutta la parte IIR del decimatore. Con la presenza di tutti e tre gli integratori, le uscite di ogni registro sono gravate del carico capacitivo che dovranno effettivamente sopportare nella realizzazione finale; ogni uscita vedrà due insiemi di porte logiche, quello del proprio sommatore in reazione e quello dell addizionatore successivo. Nel caso (pessimo) di bit pari, saranno due XOR, due NAND e due NOR da pilotare; si nota comunque che la rete di valutazione dei bit pari è molto più semplice di quella dei corrispettivi dispari, e dunque lo svantaggio di pilotare capacità maggiori è più che compensato dalla velocità successiva della logica. L aggiunta dei nuovi blocchi complica notevolmente il compito del progettista di controllare il corretto andamento dell accumulazione; si perde infatti la linearità del conteggio binario, dovendo verificare invece sequenze incrementalmente crescenti. In questo frangente si è resa obbligatoria una simulazione ausiliaria del decimatore binario, a proposito della quale rimandiamo al Capitolo 6. Il sistema in osservazione adesso è il seguente: Figura Parte IIR del filtro decimatore completa in cui : il primo sommatore ha uscite S0..S7 ed ha come latch il bus O0..O7 il secondo sommatore ha uscite T0..T7 ed ha come latch il bus U0..U
186 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 il terzo sommatore ha uscite V0..V7 ed ha come latch il bus Z0..Z7 Al solito, l input supposto provenire dal modulatore Sigma-Delta è una costante unitaria; ci si attende dunque un comportamento delle uscite del tipo: S_D0 : 1 costante S_D1 : 0 costante O0..O7 : U0..U7 : Z0..Z7 : per cui l effetto del ritardo selettivo inflitto ai bit più significativi sarà ben visibile, quasi da subito, in particolare nel terzo accumulatore. La riprova di ciò è nella figura seguente, in cui si apprezza come lo skew artificialmente introdotto tra Z7 e Z0..Z3 sfiori i 2 ns, per consentire il funzionamento del circuito. Naturalmente, il limite superiore per lo skew vale un periodo, cioè 5 ns; è però misura prudenziale mentenersi almeno al disotto del semiperiodo, per non rischiare di incorrere in fenomeni di corsa critica nel caso in cui qualche transizione si rivelasse un poco più lenta del normale: Figura Conteggio binario integrato due volte nella sezione IIR
187 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Per apprezzare la correttezza del conteggio, si disassembla qui il byte finale nei suoi 8 bit costitutivi, che riproducono i valori attesi della stringa numerica Z0..Z7 scritta precedentemente. Figura Sequenze di ciascuno degli 8 bit del sommatore finale (che descrive una cubica) La dispersione dei fronti causa a questo punto un inconveniente non indifferente all atto della decimazione fisica del segnale. Occorre infatti far calare di 4 volte la bit-rate; e ciò si
188 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 ottiene semplicemente interponendo un blocco di tipo Sample & Hold sulle linee che trasmettono il byte dalla parte IIR a quella FIR del circuito. Il blocco di sincronismo genererà un segnale, etichettato come SYNC, durante 1 ciclo di clock ogni 4; il segnale provocherà la memorizzazione (sempre dinamica e di tipo latch) del byte presente sulle linee Z0..Z7 in un registro che lo manterrà fisso sino al colpo successivo. Ma allora la temporizzazione del comando di campionamento è estremamente critica per il decimatore; occorre far sì che il registro di latch intermedio legga i dati IIR solo quando questi ultimi si sono ben assestati sul rispettivo bus. E se i dati giungono sfalsati, occorrerebbe ritardare ulteriormente anche il sincronismo, in modo controllato; ciò che sembra certamente un compito arduo da eseguire con successo, in previsione del layout! Come se non bastasse, interviene un altro problema fondamentale ad indirizzarci verso un altra soluzione. Le prove eseguite finora sono tutte accomunate dal fatto di avere in ingresso un dato costante, pari ad 1, per motivi di verifica dei transitori; ma, pur avendo notato che i passaggi del tipo sono probanti per il sistema perchè l esattezza della somma risiede completamente nella sufficiente velocità della catena di riporto, non si è affatto certi che si tratti di un caso-prova davvero critico per questa rete. In effetti, sembra invece che il circuito possa essere messo in difficoltà da ingressi più variabili, che costringano le porte logiche poste al front-end dei sommatori a scaricare e ricaricare continuamente le loro capacità parassite, così da finire magari in condizioni di effetto body notevole e, in ultima istanza, fallire le operazioni. E quanto si è imposto al circuito dando un ingresso del tipo : che è poi verosimile; è come se il Sigma-Delta stesse convertendo un segnale che si trova esattamente a metà della sua dinamica di tensione (1.5 V), ed introducesse quindi un tono spurio alla frequenza di Nyquist (si ricorda che una sinusoide ad f N ha periodicità di due campioni, proprio come accade qui...). La sezione IIR del decimatore sembra dappricipio rispondere correttamente; ma occorre attendere che siano i bit più significativi a dover commutare con regolarità, per mettere davvero in difficoltà la rete. Ed in effetti, dopo 400 ns (circa 80 transizioni) il secondo integratore non completa una transizione, sbagliando il conteggio:
189 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Errore del secondo integratore nell accumulo di Un tentativo analogo eseguito con una sezione BiCMOS purtroppo non riesce a correggere l errore; anche se migliora un poco il livello raggiunto da U5, esso non viene letto come 1 all istante successivo, ma provoca egualmente un fallimento dell operazione Parte IIR : Introduzione del carry save/pipe-line Tali ragioni determinano una modifica profonda al circuito: l aggiunta del pipe-line. Il sommatore in effetti è stato ottimizzato il più possibile, e non lascia altri margini circuitali di miglioramento; occorre fare un passo indietro, ed agire sulla struttura logica (passo indietro che viene definito, in gergo progettuale, back-annotation) del sistema. Per realizzare un pipelining di questa somma oltretutto non occorrono nemmeno registri di memorizzazione temporanea aggiuntivi; basta sfruttare i ritardi già esistenti nel filtro, necessari dal punto di vista algoritmico. La somma sarà eseguita in due tronconi simultanei: S0..S3 e S4..S7, che avranno strutture leggermente differenti a causa del carry iniziale. Il blocco S0..S3 conserva infatti Cin = 0, come ovvio, e deve produrre il carry intermedio C4; dunque la sua struttura è del semplice tipo AND-OR tipica del look-ahead (si veda il Capitolo 3), con uno stadio solo
190 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 La traduzione di AND-OR in logica CMOS mediante i teoremi di De Morgan porta all espressione: Cout = CN + CE Cin = CN CE Cin quindi a due livelli NAND da 2 ingressi; molto meglio rispetto alle grandi porte NAND-3 input, e con carico ridotto (il solo flip-flop) per il carry generato dal nuovo percorso critico. Inoltre, si può ricorrere anche alla realizzazione del CLA con una porta sola, la AOI (AND- OR-INVERT), ottenendo: Figura Parte LSB del sommatore da 8 bit con pipe-line Il prodotto finale è l inverso del carry desiderato; ma si tratta di un vantaggio, in quanto rende possibile eliminare il primo invertitore della cella di carry-save, che ora diventa: Figura Flip-flop del carry-save Il dimensionamento della porta logica AOI segue ovviamente la falsariga di quello effettuato per la OAI, e ora come allora è stato raffinato in base alle simulazioni
191 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Il secondo spezzone di addizionatore leggerà il carry in uscita dal flip-flop del carrysave, e con la stessa porta logica elaborerà il Cmiddle = NOT C6 da fornire all ultimo blocco da due bit. Stavolta l inversione del riporto costringe veramente a prendere provvedimenti anche all interno della circuiteria di carry-select, finora mai influenzata dalle scelte progettuali del CLA; ma non si rende necessario aggiungere un inversione in linea, dacchè il pilotaggio dei multiplexer ammette che con il semplice scambio dei due contatti ai tx-gate si riequilibri il bilancio delle inversioni subite dal riporto. Il secondo blocco si presenterà dunque così, nello schematico: Figura Parte MSB del sommatore da 8 bit con pipe-line Da ultimo, un particolare importante: se si vuole conservare la filosofia di tipo carryselect + look-ahead della somma, aumentare il grado di parallelismo con un pipe-line fatto su ognuno dei 4 blocchi non è efficiente. Il carry da memorizzare nel flip-flop intermedio andrebbe infatti sempre prodotto dall espressione Cout = CN + CE Cin e dunque richiederebbe in ogni caso un doppio livello, AND-OR, come nel caso a due sole partizioni della somma
192 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap Parte IIR : Modifiche finali a sommatori e registri Applicare pedissequamente la strategia di pipe-line senza tentare qualche miglioria ulteriore lascerebbe comunque irrisolti alcuni problemi, che una volta identificati nelle simulazioni sin qui presentate meritano invece grande attenzione. I blocchi di carry select sono conservati immutati, nel passaggio dall unico sommatore ad 8 bit ai nuovi due da 4 bit; e conservano quindi anche i glitch all uscita che si presentavano come l effetto della natura delle porte XOR, peggiorato dapprima con la loro rigenerazione mediante invertitore in cascata, e calmierato poi con l egualizzazione dei ritardi ai loro ingressi. Nel caso del conteggio, quei profondi transitori visibili dopo ogni aumento di significatività del dato ( ad esempio) erano riconducibili a tale causa; ora, l effetto sui dati S0..S4 è rimasto comunque ben evidente. Inoltre con la nuova configurazione quello che era certamente il percorso critico, alias la catena del riporto, è stato accorciato sensibilmente; è divenuto un cammino che richiede tempi comparabili, se non inferiori, a quelli richiesti dal percorso di somma per un bit di posizione dispari: Carry : XOR NOTx2.7 OAI3 AOI3 TX.GATEx2 (CN) (di CLA) (del flip-flop di carry-save) Bit dispari : XOR NOTx2.7 XNOR NOT MULTIPLEXER NOT TX.GATEx2 NOTx3 TX.GATEx2 ( del registro di ritardo) Le porte composte costituiscono un carico senz altro maggiore; ma l anello di segnale della somma ha molti livelli logici in più da passare. Questi due problemi possono essere affrontati in un colpo solo: basterebbe accorciare la serie di livelli logici della somma, non lasciando giungere il segnale in uscita finchè il glitch non si è esaurito. In effetti, ben tre dei livelli logici attraversati dal bit dispari per venire elaborato sono dei tx-gate; portandone uno a monte del multiplexer, o imponendo un comando appropriato al multiplexer medesimo, si evita l infiltrazione della variazione spuria di tensione verso l uscita Sy e nel contempo si può eliminare una delle due inversioni tipiche
193 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 della struttura del latch classico. In altre parole, si tratta di delocalizzare una parte della temporizzazione, spostando il primo stadio NOT+TX.GATE del latch all interno del sommatore, che diviene così sincrono; si spiega perciò la presenza del segnale di CLOCK come ingresso ai blocchi presentati poco sopra. Del resto, con velocità di 200 MHz richieste ad un unità matematica digitale quale questa è, mantenere una suddivisione delle operazioni di somma e memorizzazione costruendo due blocchi ad hoc, uno per ciascun compito, è indice di una progettazione troppo legata all idea realizzativa originaria. I blocchi sommatore e registro vengono naturali perchè sono filiazione diretta dell architettura ad alto livello prescelta; occorre staccarsi da quest idea e fonderli insieme, per progettare invece una serie di blocchi meno convenzionali ma più compatti e veloci. Le idee vagliate sono almeno tre : 1) - Importare metà del latch nei rami SEx ed SNx, nonchè SEy ed SNy. Questo implica la possibilità di sfruttare le porte NOT di rigenerazione delle funzioni XOR per fare le veci dei negatori di ingresso dei latch, che vengono così tolti; si guadagna un livello logico netto. Lo svantaggio risiede nella posizione del tx-gate importato, che vede in serie un altro interruttore, stavolta del multiplexer: Figura Blocco carry-select con semi-latch importato, per semplificare un livello logico e velocizzare le operazioni
194 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Almeno il primo dei due interruttori va mantenuto di dimensione doppia, come se fosse ancora appartenente al primo stadio di un latch normale. Le simulazioni precedenti in cui si fece variare la W dei transistori della transmission-gate segnalarono infatti W = 4.4 µm come ottimo; come noto inoltre il polo dominante della serie RC trae benèfici effetti da un allargamento del primo interruttore (la successione di due tx-gate uguali ha un polo di RC + (R+R) C =3 RC; raddoppiando la larghezza del primo si ha invece R/2 2C + (R/2+R) C =RC +1.5 RC = 2.5 RC, in primissima approssimazione). La cascata dei due elementi non rigenerativi provoca un ritardo nel segnale che riassorbe in parte il vantaggio temporale di aver tolto un negatore. D altra parte l interruttore (su Sy, cammino critico) non può essere spostato a monte della sua NOT, perchè verrebbe a trovarsi in serie alla debole uscita della porta XNOR precedente; nè può migrare a monte della XNOR medesima, perchè andrebbe posto su ogni ingresso, aumentando a dismisura l area occupata dal blocco e dalle necessarie connessioni del clock. E da notare anche l ininfluenza, ai fini del sincronismo, del posizionamento del semi-latch nell ambito della catena di calcolo; al sommatore restano comunque i 5 ns meno i due ritardi di inversione, come tempo disponibile per il calcolo (si veda il paragrafo 3.13 per una motivazione di ciò nel caso del latch normale). La configurazione proposta ha effettivamente il vantaggio di evitare che le transizioni spurie generate all interno del blocco si presentino in uscita: esse infatti si generano sempre prima che il semi-latch immediatamente a valle delle XOR lasci passare il segnale, e quindi non vengono trasmesse. 2) - Usare il multiplexer anche come primo stadio del latch; consentendo cioè il passaggio di uno dei due segnali, SEy od SNy, solo quando CLOCK = 1. Ciò consentirebbe di eliminare uno dei tx-gate, e di riassorbire anche la sua NOT (tramite le solite proprietà della porta XOR); ma comporta una rielaborazione del segnale di carry in arrivo che appesantisce di nuovo il percorso critico del riporto. Non basta infatti un gating unico di ogni segnale, Cin e NOT Cin, per zittire contemporaneamente tutti e quattro gli interruttori dei due selettori in questione, per Sy ed Sx. Gli NMOS vorrebbero tensione 0 per spegnersi, i PMOS un valore 1 ; dopo alcuni tentativi ci si rende conto che la circuiteria minima di spegnimento sincrono dei selettori è la seguente:
195 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Blocco di carry-select con logica di gating dei dati sui multiplexer Il carry viene dunque notevolmente caricato dalle nuove porte aggiunte; una simulazione della struttura mostra come essa non fornisca risultati soddisfacenti, proprio perchè il percorso di riporto è troppo lento a fronte delle transizioni più critiche addirittura nel semplice caso del conteggio. Un modo per semplificare la logica di interruzione del segnale consiste nell adoperare transistori di un solo tipo nei multiplexer, quindi passando da tx.gate a pass-transistor; una rete che esegua un operazione NOR del carry con CLOCK, quando questi vale 1 spegne infatti ogni transistore NMOS. La perdita della soglia V tn andrebbe però recuperata a valle, con sistemi di rigenerazione del livello alto (trickle transistor, con consumo di area per avere L grande rispetto a W; o addirittura soluzioni precaricate, pericolose vista la presenza massiccia di glitch sulle linee). 3) - Il metodo più ardito per superare il problema è quello di togliere tout-court uno dei due stadi del latch, lasciando quest ultimo completamente trasparente per un semiperiodo di clock. Gli inconvenienti di temporizzazione dei dati vengono universalmente chiamati corsa critica ; ma nel nostro caso il problema è opposto, il tempo disponibile per il processo di
196 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 calcolo è troppo esiguo; perchè allora bloccare il flusso del segnale, quando invece esso potrebbe proseguire senza comunque riuscire ad anticipare i tempi, ma riuscendo a non rimanere in ritardo? Basterebbe garantire che l inizio del ciclo di somma sia fissato quando CLOCK diventa 0, lasciando attivo solo il secondo blocco di NOT+TX.GATE del latch; il dato viaggerebbe lungo il suo anello di porte logiche, subendo ritardi superiori a 2.5 ns, e ripresentandosi all unico interruttore quando questi si è già richiuso, con CLOCK = 1. Il segnale di ritorno dall anello non potrebbe ripropagarsi a valle del tx-gate sino al successivo fronte di discesa (istante da cui era partito, del resto). Questa auto-temporizzazione del circuito, basata sui ritardi intrinseci introdotti dalle porte logiche, applica idee somiglianti a quelle delle tecniche wave pipeline di recente introdotte nel campo della progettazione circuitale. L idea purtroppo si è dimostrata valida per i bit di posto dispari, ma non per quelli pari; la loro rete di valutazione logica è troppo semplice e veloce, ed essi fanno in tempo a completare l intero ciclo in meno di 2.5 ns, dando origine appunto ad una corsa critica su Sx che fa sbagliare la somma; la proposta va abbandonata. Il primo dei tre metodi è quindi il più idoneo ad essere realizzato; ed è infatti quello definitivo, che è stato portato avanti sino alla fase di layout fisico. Ciò comporta naturalmente una variazione nella struttura dei registri (o di quel che ne rimane dopo la fusione della funzione di somma con quella di ritardo), come sono indicati nella struttura a blocchi del circuito; delle celle a due stadi consuete è rimasto solo un blocco di tipo NOT+TX.GATE, che peraltro va ridimensionato alla luce della nuova configurazione che ha al suo ingresso. Il progetto precedente prevedeva l uso di una NOTx3, nel secondo stadio del latch, pilotata da una NOT minima attraverso un interruttore; ma adesso gli interruttori tra il primo negatore ed il secondo sono due, in serie, e da un analisi dei ritardi RC alla Elmore (paragrafo 4.4 e 4.8) si deduce l opportunità di ridurre il carico capacitivo finale, che pesa molto sul polo dominante perchè vede la serie di tutte le resistenze della cascata. Un buon compromesso si trova usando celle del tipo:
197 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Semi-latch esterno al sommatore Nella cella unitaria dei semi-registri proposta si nota la mancanza dell invertitore per ottenere NOT Φ. Infatti, alla luce delle considerazioni svolte illustrando le tecniche TSPC, nel Capitolo 3 si è supposto di riuscire comunque a temporizzare il sistema con latch del tipo più semplice (NOT+TX.GATE) anche senza ricorrere ai clock a pseudo-2 fasi, non sovrapposte; per ottenere una sincronizzazione corretta tra Φ e NOT Φ però occorre prendere provvedimenti circuitali. Un metodo tipico per egualizzare i tempi di ritardo sui due rami di pilotaggio degli interruttori è quello di bilanciare il tempo di inversione sul ramo NOT mediante una transmission gate sull altro ramo. Tale disposizione è visibile anche nella struttura del blocco singolo carry-select, in figura 4.57; il tempo di inversione del clock, su un ramo, viene compensato sull altra linea introducendo un appropriata costante di tempo RC tramite un tx-gate sempre chiuso, in qualità di minimo elemento non invertente. Gli impulsi di apertura/chiusura vanno resi simili il più possibile, proprio per evitare fenomeni di corsa critica o transizioni spurie dovute a temporanee discrepanze tra Φ e NOT Φ; un calcolo teorico adeguato alla delicata situazione dovrebbe però tenere conto almeno delle pendenze dei fronti di salita/discesa, nonchè di ogni capacità parassita esistente nelle porte: meglio quindi procedere per simulazione. La prova consiste nel simulare a parte i transitori di pilotaggio delle parti effettivamente viste dal clock, al variare delle dimensioni di NOT e TX.GATE interposti. Si tenta cioè di rendere simultanee le transizioni di controllo sui due rami, e questo facendo uso di porte di dimensioni standard multiple della minima, che garantiranno in seguito una comoda realizzazione in fase di layout; la simulazione relativa al pilotaggio del singolo semi-registro prevede ad esempio uno schema del genere:
198 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Registro da 4 semi-latch, con ritardi RC di sincronismo equalizzati che, con le dimensioni di negatore ed interruttore riportate in figura, fornisce questi transitori di salita e discesa (INPUTCK è il sincronismo esterno): Figura Confronto tra i transitori di pilotaggio sui due percorsi Va osservato come l incrocio delle curve di tensione dei due rami avvenga effettivamente vicino alla metà dinamica, a circa 1.5 V; ed è proprio questo il livello di uscita a cui si misura per definizione l entità del tempo di ritardo, che risulta così parificato. In
199 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 generale, ogni sincronizzazione che comporta la presenza di Φ e NOT Φ è stata trattata in tal modo, sia nella parte IIR che nella parte FIR del decimatore: è l unica tecnica che consente di sperare nella buona riuscita di una temporizzazione così semplice, per un circuito così critico. Un tentativo di realizzazione degli stadi di arresto sincrono del segnale con C 2 MOS e tecniche TSPC è stato effettuato, ma ha evidenziato almeno due inconvenienti: - una superiore lentezza di commutazione, dovuta alla serie di due transistori; inoltre, non va trascurata l incidenza dell effetto body, che affligge maggiormente la cascata di MOSFET di quanto non accada per la connessione a tx-gate, in cui uno dei due MOSFET non risente in ogni caso del fenomeno; - un effetto di clock feed-through superiore a quello presente ora; ciò deriva dalla mancanza di un effetto di compensazione delle iniezioni di carica, che invece si verifica sempre usando dei tx-gate. Le iniezioni che giungono dal PMOS e dall NMOS hanno infatti segno opposto, derivando da Φ edanotφ simultaneamente. Comunque un eventuale opzione che è rimasta ora inutilizzata, e che in fase di correzione del circuito (se dovesse non funzionare a livello post-layout) può rivelarsi utile, consiste nell utilizzo di useful clock skew anche nello schema di carry-save; la difficoltà di controllare i ritardi con la precisione necessaria permane tuttora, ed è meglio evitare l uso di questa tecnica fin quando possibile; ma è un opportunità in più che potrebbe rivelarsi determinante, per il progetto in questione come pure in altre occasioni Parte IIR : Simulazioni conclusive Lo schematico finale della parte IIR del circuito, dopo l applicazione dei concetti di pipe-line all addizione, è diventato il seguente:
200 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Sezione IIR con applicazione della tecnica di carry-save Integratore 1 : sommatore R0..R3,R4..R7 latch S0..S3,S4..S7 Integratore 2 : sommatore T0..T3,T4..T7 latch U0..U3,U4..U7 Integratore 3 : sommatore V0..V3,V4..V7 latch Z0..Z3,O4..O7 Registro sincronizzatore : Z0..Z3 latch O0..O3 Si osservi la presenza del registro finale di risincronizzazione dei primi 4 bit, che vanno ritardati rispetto al mezzo byte successivo. Quest ultimo per parte sua doveva subire analogo ritardo all ingresso della catena di tre integratori, con un registro apposito; ma ci si ricordi che gli ingressi sono solo i 2 bit S_D0 ed S_D1 uscenti dal modulatore Sigma-Delta; gli altri 6 bit iniziali sono costantemente a 0, quindi non ha senso ritardarli e si ottiene un risparmio di area. Il nuovo schema di integrazione tripla va ora provato con i medesimi vettori di test a cui erano state sottoposte le precedenti soluzioni. Una difficoltà in più per la lettura dei dati in uscita è rappresentata adesso dallo sfasamento, di un colpo di clock, che è stato introdotto dal pipe-line tra i primi ed i secondi 4 bit di ogni parola intermedia; solo i dati finali, risincronizzati dal registro visto sopra, sono di nuovo leggibili con facilità. La prova del conteggio, cioè dell integrazione di una costante pari ad 1 in ingresso, viene superata senza problemi: si mostra qui l iterazione numero 129 (645 ns/5 ns, meno 1 ciclo di ritardo imposto alla seconda nibble), che presenta lo scatto critico dell ultimo bit S7 al primo integratore:
201 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Salita del bit più significativo durante il conteggio nel primo integratore - I bit sono sfalsati di un ciclo di clock Leggendo i dati in modo da tener presente il ritardo della seconda tavola, si apprezza la correttezza dell uscita. Il caso critico che aveva indotto ad inserire il pipe-line nel circuito aveva tuttavia ingresso alternato; ed è il secondo caso prova. I transitori che presentiamo sono relativi sia all uscita del sommatore che a quella del relativo latch: Figura Transizioni prima e dopo il latch compiuto dei registri esterni
202 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Naturalmente ad un valore logico di R i corrisponde il valore negato per S i, dal momento che la stuttura del semi-registro è diventata invertente. C era da attendersi poi un lieve peggioramento nella qualità delle uscite dell addizionatore, avendo ora due tx-gate in serie al suo interno; l importante è che le uscite S, ossia quelle globali dell anello di somma siano migliorate, grazie alla semplificazione di un livello logico NOT che si è eseguita; l addizionatore è più lento, ma l anello nella sua globalità è più veloce di prima. I transitori di R sono rimasti affetti da profonde transizioni spurie, che si creano sui bit da 2 a 7; inoltre, stavolta i glitch vanno spesso a coppie: dopo circa 83 ns R2 ed R3 tendono a portarsi al livello di metà dinamica, e lo stesso accade ai 113 ns tra R4 ed R5. Bloccando il segnale con un semi-latch interno all addizionatore si è infatti riparata l uscita dalle alee dovute alle porte XOR, ma non da un altro comportamento del circuito; esso è imputabile allo scatto del multiplexer finale, perchè: tutte quelle citate sono le uscite che vengono commutate dal carry; i bit 0 ed 1 viceversa seguono sempre lo stesso percorso avendo C0 = 0, e hanno un aspetto molto meno tormentato. le coppie di glitch contemporanee si interpretano con il fatto che il riporto è contemporaneo per ogni blocco carry-select, agendo sui due bit. Si riconosce di conseguenza la necessità di far arrivare il carry il prima possibile ai blocchi, che in tal modo subiranno la pericolosa degenerazione del livello di tensione in un istante ancora lontano da quello critico, di ultima lettura del segnale da parte del latch. Il requisito necessario è proprio quello che il pipe-line ha sistemato: le spurie ci sono, ma sono mantenute più lontane di prima dal fronte di discesa del clock, all arrivo del quale il segnale ha già recuperato il suo livello in modo soddisfacente. In alcune occasioni anzi il multiplexer ha anticipato l arrivo dei due segnali da selezionare, ed un fronte di salita o discesa resta diviso in due parti (si osservino R4 ed R5 ai 105 ns): la spuria di corto-circuito tra le due linee SE ed SN, una alta ed una bassa e la transizione definitiva del segnale, finalmente deciso dalla logica a monte. Non si devono insomma prendere altri provvedimenti, oltre a quelli già in opera nel circuito. Anche lasciando proseguire il conteggio sino ai 400 ns che furono fatali al precedente
203 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 schema non si osservano errori in uscita; al più si nota un leggero deterioramento dei livelli in occasione di transizioni critiche, di scatto dell ultimo bit S7 ad esempio: Figura Fronte di discesa lento in occasione di un transitorio critico ma ciò non crea problemi di sorta. Una carrellata finale sulla qualità delle uscite di tutti e tre gli integratori, ancora nel caso del conteggio semplice, conclude la fase di progetto della sezione IIR del decimatore; è possibile notare come anche a fronte di transizioni piuttosto sporche in uscita agli adder si ottengano livelli netti, compresi tra 0.3 V e 2.7 V, dopo la fase di latch; il problema della velocità è stato superato, quantomeno nel caso tipico:
204 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Uscite relative a tutto il blocco IIR, con ingresso Parte FIR : Sottrattori a Manchester carry chain semplice I tre sottrattori che costituiscono la parte FIR del decimatore hanno molti meno problemi di temporizzazione, rispetto alla sezione IIR; il periodo che essi hanno a disposizione per completare la loro funzione è ora di 20 ns, dopo la decimazione 4:1 subita dalle uscite IIR. D altra parte l attenzione del progettista può essere orientata ad altri aspetti, tra cui il principale è quello dell occupazione di area. Nel capitolo 2 è già stata presentata la metodologia da seguire per realizzare i tre sottrattori: una tecnica dinamica, molto compatta, denominata Manchester carry chain. Un sommatore Manchester si presenta così:
205 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Sottrattore dinamico Manchester non rigenerato La struttura risultante si compone di 8 fette, una per ogni bit, in cui il cuore dell elaborazione consiste nella possibilità di scaricare un nodo elettrico o propagarne la tensione verso le slice successive, secondo i concetti di Generate e Propagate già illustrati (i gruppi centrali di 4 MOSFET sono quelli discussi al paragrafo 3.10). La linea comune alle
206 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 celle soffre comunque di un problema: i livelli di tensione, nel caso pessimo, non vengono rigenerati lungo di essa; il carry iniziale potrebbe propagarsi attraverso 7 transistori, e giungere all ultimo bit senza passare attraverso una porta di bufferizzazione. Il ritardo accumulato da siffatto segnale è approssimabile con la teoria delle linee di trasmissione resistive, o RC-distribuite; ogni stadio aggiunge una porta XOR (e un ingresso B significa dunque NOT+1 PMOS+1 NMOS degli interruttori della XOR, circa 40 ff) ed almeno 4 capacità di tipo C db ; usando transistori doppi dei minimi (per ragioni di conducibilità) significa altri 50 ff; con resistenza del pass-transistor (interpolata sulla caratteristica Id-Vds) di circa 5 KΩ, si ha un RC elementare pari a 0.45 ns. Il polo dominante della serie si calcola con il metodo delle costanti di tempo, considerando sempre la medesima capacità che vede R, poi 2R,... fino a 7R, per cui la formula generale N τ do ante R i C N ( N + 1) min = ( ) = RC 2 i = 1 ha N = 7. Se ne trae τ = 12.6 ns; nei 10 ns di Evaluate un transitorio di salita ad un polo raggiungerebbe il 54% del valore finale, non riuscendo ad arrivare al livello logico desiderato; e si tratta oltretutto di una valutazione largamente ottimistica del transitorio. Una simulazione dell andamento dei NOT-CARRY che si trovano sulla linea di trasmissione del riporto (e delle uscite S0..S7 vere e proprie) che consenta di far correre il riporto iniziale lungo la catena di transistori intera, è la seguente:
207 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Lenta scarica dei nodi interni di carry, ed errore sulle uscite E la somma ( ,riporto in ingresso) mod 256 = 255 ; tradotta in binario si esprime come = , con il riporto che viene introdotto nella catena e propagato sino in fondo. La serie di due NMOS scarica a fatica i nodi Ci_BAR (ossia barrati, negati) precaricati, in particolare quando si raggiunge la zona ohmica dei dispositivi, alla fine dei transitori; e gli ultimi due riporti non riescono nemmeno ad essere avvertiti dalla logica di uscita corrispondente. Una prima soluzione al problema consiste nel dimensionamento della serie degli NMOS; in particolare quello più vicino a massa, pilotato esternamente dal clock, viene allargato sino a 4.4 µm; idem pure per il PMOS omologo verso Vdd (che pure avrebbe 10 ns interi per precaricare). L NMOS interno viene portato a 3.3 µm, e soprattutto viene allargato il pass-transistor NMOS, fino a 4.4 µm anch esso; l effetto è notevole, ma non ancora sufficiente:
208 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Miglioramento otenuto con il solo ri-dimensionamento dei transitori Parte FIR : Manchester carry chain rigenerata L idea necessaria per sistemare le transizioni nella catena di riporto è la rigenerazione dei livelli di carry; da una linea di propagazione unica occorre passare a più tratte rigenerative, interrompendola in uno (o massimo due) punti con dei buffer. Il primo tentativo eseguito in effetti prevedeva semplicemente due invertitori in cascata tra il quarto ed il quinto bit, tra C3_BAR e C4_BAR; ma anche quattro fette in serie restano troppe, ed inoltre il ritardo aggiunto dal buffer non invertente porta C7_BAR a non completare il proprio transitorio, pur riuscendo a commutare l uscita omologa. Una nuova soluzione ha previsto allora di spezzare la linea in tre, con due buffer intermedi; ma stavolta è stato il ritardo aggiunto dai buffer ad apparire eccessivo, pur consentendo un funzionamento corretto del sottrattore. L ottimo è stato invece raggiunto con il circuito seguente:
209 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Sottrattore a Manchester carry chain rigenerata due volte
210 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Gli spezzoni di linea del riporto sono sempre tre; ma stavolta i buffer intermedi sono invertenti, e dunque costituiti da un solo stadio. Ciò comporta naturalmente un inversione dei segnali appropriata nella parte centrale del circuito, cui arrivano C3 e C4 non più negati; ma l obiettivo di gestirli correttamente si acquisisce senza problemi. La prima e la terza parte del sottrattore pre-caricano con PMOS i nodi dinamici Ci_BAR ad 1, cioè eseguono di fatto un carry Kill ad ogni ciclo; la parte centrale vede tutto dualmente ora, in logica complementare, e quindi dovrà pre-scaricare il nodo Ci in questione attraverso un NMOS per eseguire il carry Kill a sua volta. Le sezioni sono dunque del tipo : Pre-carica (0..2) Pre-scarica (3,4) Pre-carica (5..7) Il PMOS di Precharge era 4.4 µm; ora però basta veramente un NMOS minimo, da 2.2 µm, per scaricare il nodo nei 10 ns allocati per tale scopo. La serie di transistori per la funzione di Generate passa adesso di tipo PMOS, e quindi le dimensioni 3.3/4.4 µm della cascata NMOS diventano ora 6.6/8.8 µm. Il pass-transistor NMOS, adatto per scaricare i nodi successivi ancora alti dopo Precharge, ora diventa un pass-transistor PMOS, atto a caricare nodi consecutivi ancora scarichi dopo la prima fase; le loro dimensioni però vanno limitate ancora a 4.4 µm, perchè altrimenti il carico imposto alla porta che li pilota diviene eccessivo. Ovviamente la fase di Precharge deve essere comune; quando CLOCK vale 0 per le due sezioni iniziale e finale, CLOCK deve valere 1 per quella centrale. Si osserva comunque che il flusso dei dati è uniformemente ritardato, da sinistra verso destra: utilizzare un clock negato e dunque lievemente ritardato per i due bit centrali, salvo poi tornare ad usare il sincronismo originario per quelli finali, non si confa al meccanismo di funzionamento del sistema; piuttosto è meglio generare il clock per i bit 5, 6 e 7 reinvertendo quello usato per 3 e 4, il che segue il flusso originario dei ritardi nella catena. Inoltre, i due negatori/rigeneratori di livello che compaiono sulla linea del riporto non possono essere di tipo standard: in effetti, hanno a che fare con segnali più analogici che digitali, visto il triplo percorso RC che hanno già affrontato per giungere a C3. L uso di negatori minimi comporta un risultato del tipo:
211 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Tensioni sulla linea dei riporti ed in uscita; i carry centrali sono rigenerati, le uscite corrette, ma i driver vanno ridisegnati Il caso usato come test è veramente probante: si tratta della sottrazione 0-0 = 0, che porta alla scrittura in complemento a 2 : (Cin) = la cui correttezza si basa completamente sulla velocità della linea del riporto. La fase di precarica/prescarica funziona benissimo; a tal uopo i pass-transistor sono stati posti dopo le inversioni in logica statica. In caso contrario infatti le uscite delle porte NOT, magari rimaste con l ingresso fluttuante, rischierebbero di collidere con i nuovi stati imposti alla linea dalla fase di Precharge deteriorandoli. La valutazione dei dati invece presenta problemi su C4, che dovrebbe essere sollevato in tensione dal PMOS della prima porta NOT di rigenerazione; essa quindi non può essere progettata secondo i consueti criteri, bensì considerandola come l insieme di due switch che commutano l uscita verso Vdd e GND, e la
212 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 cui resistività va calibrata anche in funzione del carico più lontano da pilotare. I due invertitori diventano così: Figura Nuove dimensioni dei driver della linea di riporto Il primo guida C5_, C6_ e C7_BAR, normalmente carichi ma che potrebbero scendere in tensione attraverso il suo NMOS, allargato; il secondo a sua volta guida C3 e C4, normalmente scarichi ma che potrebbero salire in tensione attraverso il suo PMOS, a sua volta allargato. Le loro soglie sono sistemate opportunamente; il secondo è infatti più sensibile ai livelli bassi di tensione, che la rete C0..C2 potrebbe faticare a fornirgli; e viceversa per il primo. Dopo tali migliorie le simulazioni della sottrazione diventano: Figura Risultato definitivo della fase di ottimizzazione del sottrattore
213 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 definitivamente sistemate, ed anzi con un buon anticipo (fino a 4 ns) rispetto al limite temporale richiesto. Si osservi che gli ingressi A e B delle XOR non sono stati connessi senza cura alla catena dinamica; l input A può anche finire in uscita ad una XOR, e connetterlo ad un nodo precaricato significa andare incontro a fenomeni di charge sharing, o addirittura di scarica totale, letali per il funzionamento del circuito; la ben nota delicatezza delle tecniche dinamiche di addizione ha meritato insomma parecchie attenzioni. La logica che fa da contorno alla catena di riporto dinamica serve per produrre i segnali Propagate e Generate; nel Capitolo 3 si era già dato un esempio di sintesi della rete logica per valutare il segnale di somma, e si era discussa la differenza tra usare A+B ed A B peril segnale Propagate. Nella figura 3.20 si era riportata anche una porta AND per avere G, che in logica CMOS diventa una NOR con ingressi negati; ma la complementazione a 2 richiedeva di per sè la negazione di un ingresso, il sottraendo B, che allora va lasciato non complementato. Questo comporta anche l uso di XNOR in luogo di XOR per ottenere il segnale P. Nella sezione centrale la logica deve cambiare, per adattarsi a pilotare dispositivi PMOS in luogo di NMOS; la AND tipica di G deve diventare NAND, e stavolta B va effettivamente negato. Si segnala da ultimo una peculiarità del circuito che obbliga ad una modifica della struttura delle porte XOR centrali: i transitori spuri, in una rete tutta costruita ad interruttori come questa, non si trasmettono solo a valle ma addirittura a monte del blocco. Attraverso il pass-transistor alcuni glitch si accoppiano all uscita della XOR e da qui al suo ingresso A, se era abilitato da B a comunicare con l uscita; il problema si risolve comunque usando porte aventi A bufferizzato, che termina in output non direttamente ma al più dopo aver subìto una doppia negazione Parte FIR : Simulazioni conclusive della soluzione Manchester Le caratteristiche del circuito di sottrazione Manchester sono marcatamente influenzate dalla buona riuscita tecnologica dei transistori PMOS e soprattutto NMOS; eventuali variazioni nelle soglie, o comunque nei parametri dei modelli dei MOSFET, provocano notevoli variazioni nei tempi di risposta della rete. Per avere una misura della sensibilità dei sottrattori al variare delle proprietà tecnologiche sono state eseguite due ulteriori simulazioni, sull apparato circuitale FIR completo:
214 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Sezione FIR completa del circuito
215 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 laddove le uscite dei sottrattori sono: Sottrattore 1: L0..L7 con latch adiacente P0..P7 Sottrattore 2: M0..M7 con latch adiacente Q0..Q7 Sottrattore 3: R0..R7 con latch adiacente O0..O7 I due esempi di deviazioni dal caso tipico sono: - uno con NMOS a soglia minima e PMOS a soglia massima: Figura Comportamento del sottrattore Manchester con PMOS resistivi che mostra come la fase di valutazione sia molto veloce (istanti ns), mentre la precarica risente della lentezza dei PMOS (le sezioni con precarica a PMOS sono infatti ben sei su otto; istanti ns). La distanza tra i fronti di R3 ed R4 rende conto invece del ritardo di valutazione per i PMOS della sezione intermedia; - uno con NMOS a soglia massima e PMOS a soglia minima Figura Comportamento del sottrattore Manchester con NMOS resistivi
216 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 che invece ha transitori di precarica veloci (risparmia più di 1 ns in quella sede), ma di valutazione più dispersi, perchè i pass-transistor sono in massima parte NMOS e ritardano più del consueto la trasmissione del segnale. Ambedue queste simulazioni sono un esempio di come si è proceduto anche in altri casi, e segnatamente per il circuito intero, ad una caratterizzazione del comportamento della rete in diverse condizioni operative. La prova funzionale della serie dei tre sottrattori è stata eseguita su una stringa di ingressi scelti in modo tale da proporre uscite facilmente verificabili dal progettista, e comunque con transizioni (del tipo 0-0 = 0) critiche per l apparato: Ingressi: Uscite 1 blocco P0..P7 : Uscite 2 blocco Q0..Q7 : Uscite 3 blocco O0..O7 : Figura Simulazione di test globale della sezione FIR dinamica
217 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap Parte FIR : Sottrattori veloci e calo di latenza Sempre nel Capitolo 3 si è parlato di una possibilità alternativa di realizzare i sottrattori della sezione FIR; in essa, si riutilizza la stessa struttura di sommatore che serve nella sezione IIR. Il sommatore viene conservato nella sua versione asincrona, senza importarvi una parte dei registri; registri che qui come nel caso Manchester sono semplicemente costituiti da 8 celle di latch classici; hanno poi un unico negatore per produrre NOT Φ di controllo degli interruttori, bilanciato sull altro ramo da una tx-gate sempre chiusa; e sono comunque di dimensioni minime, perchè la velocità non è stavolta un parametro da ottimizzare. Il carry iniziale vale 1, e costringe perciò a modificare leggermente la struttura della rete di CLA preposta a trasmetterlo; del primo blocco carry-select si considera CE, e non più CN. Il sottraendo deve inoltre passare in un blocco di 8 invertitori che provvede a completare la preparazione dell operando in complemento a 2. Il tempo a disposizione per la sottrazione fa sì che non si debba più pensare di ricorrere a strategie di pipe-line per riuscire nell intento, nè spezzando il singolo sottrattore in due, e nè spezzando in tre la catena di sottrazioni necessarie. La soluzione, oltre ad essere più regolare perchè impiega blocchi quasi completamente identici a quelli già progettati, ha infatti la caratteristica di far diminuire drasticamente la latenza dell uscita, perchè non ha bisogno di interporre dei latch tra le unità matematiche: riesce a sottrarre i dati tre volte in un periodo solo. Ciò accade grazie al fatto che i sottrattori adesso in uso sono completamente asincroni, e dunque: non perdono 10 ns in precarica ogni sottrattore parte a rivalutare le sue 8 uscite non appena il precedente, non schermato da latch di sorta, si assesta su un nuovo dato; non c è bisogno di avere segnali di temporizzazione, l attesa dei quali comporta l introduzione di tempi morti; le operazioni procedono in cascata, come nelle logiche dinamiche Domino (Geiger-Allen- Strader,[19]), temporizzandosi automaticamente l una alla fine dell altra (un poco come nei sistemi self-timing, che sono comunque più complessi; Mead-Conway,[24]). Abbiamo 20 ns per completare 3 operazioni, quindi circa 6.6 ns a testa per ciascun sottrattore; il margine è rassicurante, un 30% in più rispetto ai 5 ns della parte IIR, però andrà posta molta attenzione in fase di sincronizzazione della sezione intera con i dati campionati
218 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 4:1, provenienti dalla parte IIR; è vitale evitare di perdere nanosecondi preziosi per negligenze in sede di acquisizione del segnale (si veda il paragrafo successivo). Le prove sono state eseguite sul circuito completo FIR, con la struttura seguente: Figura Sezione FIR a bassa latenza realizzata con sottrattori veloci (5 ns)
219 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 I sottrattori usano catene CLA del tipo completamente CMOS, come in figura Dalle simulazioni ci attende una forma d onda in buon anticipo sul fronte di latch finale, ma estremamente sporca nella fase iniziale; il primo sottrattore si assesterà nei 5 ns successivi all arrivo del dato IIR campionato, il secondo nei 5 ns successivi all assestamento del primo, ed il terzo nei 5 ns successivi all assestamento del secondo. Il terzo sottrattore subisce cioè un transitorio di circa 10 ns, in cui insegue le uscite scorrette del suo predecessore; salvo poi aggiungere altri 5 ns di transitorio suo proprio. La simulazione risponde in pieno alle attese; la sequenza è la medesima provata poco sopra: Figura Comportamento della catena FIR veloce, con spurie iniziali
220 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 ed anzi evidenzia una velocità superiore del blocco, rispetto al previsto. I 5 ns si riferiscono in effetti all anello IIR, completo di tempi di set-up ed hold necessari ai latch; i tempi di pura addizione qui in gioco sono in realtà inferiori, e si vede. La successione di valori numerici è quella già presentata in precedenza per il caso Manchester Parte Intermedia : Tecniche di distribuzione del sincronismo La sezione FIR del decimatore consta quindi di tre blocchi da servire con il clock; nel caso Manchester ogni blocco consta a sua volta di due registri minimi e di un sottrattore sincrono, mentre l implementazione a latenza ridotta richiede solo dei segnali di timing per quattro registri minimi (latch finale compreso). Esistono fondamentalmente due metodi per distribuire il clock attraverso un circuito: il metodo concentrato, a tromboncino il metodo ad albero Del primo metodo già si è parlato al paragrafo 4.5 ; l azione di pilotaggio di un intero circuito può essere vista in effetti come il pilotaggio di un carico capacitivo C L molto notevole, e dunque l approccio potrebbe essere ripetuto (anche se non si deve minimizzare alcun ritardo). Prendiamo ad esempio il caso Manchester: ogni registro mostra al clock 8 celle; questo avviene però attraverso un tx-gate di ritardo, quindi se si vuole conservare il carattere puramente capacitivo del calcolo occorre mantenere dei margini cautelativi. Considerando ad esempio un modello di cella minima del tipo: Figura Cella minima dei registri FIR da pilotare
221 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 si ricava un carico equivalente di ( ) µm =11µm, dovuti all invertitore (che produce NOTCLOCK) ed ai tx-gate rispettivamente. Allora C REGISTRO =88µm per i sottrattori, da un analisi dei componenti da pilotare si ricava un carico capacitivo di ( ) µm =33µm (buffer e primi tre stadi dinamici). Questo fa capire come l inserimento di stadi di rigenerazione del clock servano anche per asportare una parte del carico dalle linee di clock per conferirla ad altre linee, stavolta interne ad ogni blocco; senza la NOT minima di rigenerazione il carico per ogni sottrattore sarebbe stato maggiore, e quindi l albero di clock avrebbe dovuto essere aumentato di dimensioni. Il carico totale è di 3 sottrattori e 6 registri, a dare C L = 627 µm equivalenti di carico. Il fattore di carico C L /C NOT minima è quindi 627/6.6 = 95, che richiede l uso di almeno 3 stadi (per minimizzare il ritardo ce ne vorrebbero ln(95) 5), scalati di un fattore 4.56 l uno rispetto al precedente; servirebbe dunque una catena del tipo NOT minima 4.56 x NOT x NOT Con 4 stadi l occupazione di area cresce notevolmente: da µm di larghezza equivalente a µm; meglio allora accettare l inversione del segnale ma limitare il numero dei livelli. Si pensi però alla difficoltà di mantenere uguali i ritardi delle linee di distribuzione, con questa strategia; esse si dipartono da un unico punto per poi raggiungere ogni parte del circuito FIR, e difficilmente si potrà conservare una simmetria tale da impedire che lo skew deteriori l isocronismo del clock. Meglio piuttosto predisporre degli stadi intermedi di bufferizzazione del sincronismo, che rigenerino in punti topici il clock (soprattutto come fronte) ed offrano alle diverse linee di trasmissione che li governano delle capacità di carico dominanti uguali, in modo da parificare altre discrepanze dovute alle geometrie delle linee stesse. La seconda filosofia, di distribuzione ad albero, è del tipo dìvide et ìmpera ; avendosi tre sotto-blocchi FIR, si predisporranno tre rami principali di clock; ogni sotto-blocco sarà a
222 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 sua volta composto da altre sotto-sezioni, per le quali di nuovo si dividerà la linea,... e così via sino al livello infimo della distribuzione. Il fatto che il carico da sincronizzare con il clock sia così strutturato indirizza in maniera naturale verso questa soluzione. Il carico finale da pilotare è pari a quello visto dal tromboncino, quindi i diversi stadi vanno dimensionati progressivamente più grandi. Il calcolo eseguito parte di nuovo dall essere C L totale = 627 µm, quindi pilotabile da 3 stadi a tromboncino con l ultimo buffer grande quello minimo; se lo si ripartisce in 3 rami uguali si hanno invertitori da 20.73/3 = 6.91 volte il minimo; dato che ognuno vede un carico tri-ripartito, in 88 / 88 / 33 µm, il budget di 6.91 va suddiviso in proporzione, e quindi in porte da 2.9/2.9/1.09 volte quelle minime (arrotonderemo, per modularità realizzativa in layout, a 3/3/1). Lo stadio precedente della serie era largo 4.56, e vedendo 3 rami uguali da 3 invertitori ciascuno va diviso equanimemente: tre negatori da 1.52 (si farà 1.5) volte il minimo. Infine, essi sono pilotati da una NOT minima, a sua volta comandata dal divisore di frequenza. Figura Albero di distribuzione del clock - Caso Manchester Nel caso dei sottrattori (asincroni!) a latenza ridotta ovviamente il clock ha una distribuzione agevolata; restano 4 rami soltanto, e ciascuno vede gli 88 µm (sovrastimati) dei registri. Con un calcolo analogo al precedente si ricava una C L totale = 352 µm, con conseguente fattore di carico di 352/6.6 = 53.3; spezzato in tre stadi, richiede un incremento di dimensioni di 3.76 ad ogni livello :
223 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 NOT NOTx3.76 NOTx14.17 da cui dividendo l ultimo stadio in 4 si ricavano negatori 3.54 (arrotondati a 3) volte il minimo, guidati da invertitori 1.88 (circa 2) volte il minimo. Figura Albero di distribuzione del clock - Caso a bassa latenza Un osservazione : è noto che le catene di invertitori possono essere realizzate anche con transistori PMOS minimi, uguali agli NMOS; la capacità di pilotaggio verso Vdd calerà, ma il carico pure è calato ed in media i ritardi eguagliano quelli di una catena fully-complementary (Weste-Eshraghian, pag.227, [17]). Nel nostro caso, dato che l ultimo negatore deve garantire comportamento simmetrico abbiamo preferito conservare la simmetria in tutta la catena, per evitare pericolose differenze tra i fronti del sincronismo finali e maggiori dissipazioni di potenza (dovute ai transitori, meno ripidi) Parte Intermedia : Divisore di frequenza a sincronismo di sottocampionamento Il circuito da utilizzare per effettuare la divisione del clock è stato presentato nel Capitolo 3: si basa sul principio del ring-oscillator, ma temporizzando le commutazioni degli stadi in base alle fasi del sincronismo esterno. La struttura completa del divisore di frequenza è la seguente:
224 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Doppio ring-oscillator temporizzato come divisore di frequenza 4:1 Il dimensionamento degli invertitori in anello è importante; del segnale diviso in frequenza all uscita interessa non solo la posizione del fronte rispetto al fronte del clock esterno, ma anche la ripidità del fronte medesimo; pilotare un albero di distribuzione delle temporizzazioni con fronti lenti significa far dissipare di più l intera struttura (perchè le porte restano più a lungo nella zona intermedia della caratteristica di trasferimento), e rischiare di comandare in modo inefficace gli interruttori dei registri della sezione FIR, cui serve la fase rallentata di 4 (lasciandoli in condizioni di indecisione più a lungo). Il nodo da cui si spillerà la nuova fase va quindi pilotato da una porta sufficientemente forte; con quest idea guida si è proceduto alla sintesi dei due anelli, caricandoli già con la logica necessaria a produrre il sincronismo SYNC per il campionamento 4:1 delle uscite della sezione IIR, ottenendo: Figura Fasi di clock derivate dal sincronismo esterno
225 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Le dimensioni delle porte usate ricordano la tecnica a tromboncino, con 3 = 1.73 portata ad 1.5 per comodità di layout. Il requisito basilare che ha portato alla loro scelta è stato il posizionamento dei fronti di commutazione ottenuti; essi devono garantire la possibilità di generare un segnale SYNC nel momento più adatto per la lettura dei dati della sezione IIR, e per l elaborazione dei dati nella successiva sezione FIR. Diamo immediatamente una spiegazione di ciò. Il campionamento del byte filtrato IIR poteva essere eseguito semplicemente con una batteria di switch, attivati ogni 4 colpi di clock; ovviamente però si è preferito adottare una struttura meno rozza, ricorrendo all uso di un registro intermedio in tutto uguale ai normali shift-register adoperati nella parte FIR. Esso è composto da 8 celle latch classiche (NOT+TX.GATE), comandate appunto da SYNC: esso attiva il primo stadio (il master, di lettura dati) per un tempo di 2.5 ns, ed il secondo (lo slave di mantenimento dell uscita) per il resto del nuovo periodo, cioè 17.5 ns. Un segnale del genere si ricava da un AND logico tra le diverse fasi a disposizione: SYNC = CLOCK CLOCK: 2 CLOCK: 4 - CLOCK, perchè quando CLOCK vale 1 i latch della sezione IIR sono in fase di mantenimento stabile del segnale, ed ivi vanno letti; - CLOCK:2 va usato con la fase che ha quando fa scattare basso CLOCK:4, che in questo caso è alta - CLOCK:4 va usato quando è basso; studiando ambedue i casi FIR, infatti: -se la parte FIR è di tipo Manchester, ha la fase di precarica con CLOCK:4 basso, edè obbligatorio già preparare i dati all ingresso in sede di Precharge prima che parta la valutazione della sottrazione; diversamente, i nodi dinamici potrebbero scaricarsi per errore mentre, già in fase Evaluate, gli ingressi sono ancora in transitorio di assestamento;
226 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 CLOCK (IIR) CLOCK:2 CLOCK:4 (FIR) Tassestamento Tcalcolo Precharge Evaluate Precharge SYNC Figura Posizionamento del sincronismo di decimazione nel caso Manchester - se la parte FIR è di tipo veloce, le somme sono asincrone e partono comunque da ogni assestamento del dato in ingresso; i latch però registrano gli ultimi dati con il fronte di discesa di CLOCK:4, e dunque è opportuno iniziare la successione delle tre sottrazioni quando anche i registri iniziano ad emettere la loro uscita, cioè con CLOCK:4 basso. CLOCK (IIR) CLOCK:2 CLOCK:4 (FIR) SYNC T assestamento+calcolo 3 sottrazioni OUT variabile OUT fisso OUT variabile Figura Posizionamento del sincronismo di decimazione nel caso a bassa latenza Con CLOCK:4 già si intende il segnale distribuito attraverso i rami dell albero di temporizzazione, e non quello uscente dal secondo anello di divisione di frequenza; i discorsi sulle fasi vanno infatti riferiti al livello capillare, di pilotaggio fisico dei registri, dove
227 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 giungono i segnali e vengono letti dai latch. Riferirsi a segnali a monte dell albero sarebbe infatti un errore progettuale, con tutto il ritardo di distribuzione (prevedibilmente elevato!) ancora da subire. In realtà, questa è forse la parte del progetto in cui le simulazioni sono state maggiormente d aiuto alle considerazioni teoriche. Con la logica di deduzione di SYNC testè ideata si ottiene infatti un risultato come il seguente: Figura Errore di sincronismo Il sincronismo è esattamente a cavallo della transizione del dato IIR, che è quanto si voleva evitare usando CLOCK non complementato. Il fatto è che la porta NAND a tre ingressi necessaria, seguita dal relativo buffer invertente e dal pesante carico rappresentato da tutto il registro di Sample & Hold, introduce una dilazione tale su SYNC da spostarlo di mezzo ciclo di clock, rovinando così la fase di campionamento. L unica soluzione è eseguire il gating delle tre fasi dando l impulso su NOT CLOCK, prevedendo cioè il ritardo che SYNC incontrerà e facendolo partire in anticipo; la variazione si rivela azzeccata, e quindi lo schema finale della sezione intermedia è:
228 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figiìura Sezione intermedia, di divisione del clock e decimazione fisica Il nuovo posizionamento del sincronismo è ben centrato rispetto alle variazioni del segnale in uscita dai latch IIR; inoltre il sistema verrà provato anche in temperatura, e risulterà robusto nei confronti di tali variazioni del punto di lavoro: Figura Corretto posizionamento del sincronismo rispetto alle transizioni della parte IIR
229 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 All accensione del circuito il divisore di frequenza attraverserà ovviamente degli stati instabili, prima di iniziare a svolgere la sua funzione; ma ciò accadrà in corrispondenza della latenza iniziale dell intero filtro, per cui non provocherà alcun problema in uscita. In conclusione, si apprezzi quale sarebbe stata la difficoltà di sincronizzare la lettura dei dati nel caso di uso della tecnica di clock skew: Figura Il problema del sincronismo, in teoria da adattare al clock skew Per aspettare i segnali ritardati, si leggono i più veloci quando già stanno cambiando. Occorrerebbe ritardare anche SYNC in fase alla dispersione subita dalle varie coppie di bit; operazione difficile, e comunque fuori controllo con il variare della temperatura operativa Consumo di energia: alimentazioni e clock A questo punto il progetto è completo; parte IIR, parte FIR e sezione intermedia sono state dimensionate e provate separatamente; i risultati delle simulazioni sono stati verificati, sia dal punto di vista della qualità dei transitori attesa che da un punto di vista schiettamente numerico, controllando la correttezza delle sequenze numeriche in uscita dai vari blocchi. Ora si tratta di connettere insieme il tutto e verificarne il funzionamento in modo ancora più ad alto livello: data la sequenza a di-bit di ingresso, così come potrebbe provenire da un modulatore Sigma-Delta, si potrà finalmente apprezzare l uscita come prodotto del filtraggio completo, e quindi sapendone già l andamento atteso senza bisogno del supporto informatico,
230 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 ma ad occhio. Del circuito globale si può inoltre analizzare un altro aspetto importante, quello del consumo. I due casi proposti sono : 1. Decimatore con parte IIR all-cmos, senza clock skew nè pipe-line, e parte FIR Manchester 2. Decimatore con parte IIR all-cmos, con pipe-line (carry-save), e parte FIR veloce a bassa latenza Il primo schematico ha il seguente aspetto a blocchi: (foglio allegato) e come noto ha avuto problemi nel caso di ingresso alternato La latenza in uscita è stata determinata al Capitolo 2, e vale 7 colpi di clock da 20 ns. Ciò che qui interessa è però il consumo di questo configurazione, che va suddiviso in due parti: quello relativo all alimentazione e quello delle linee di clock. Ambedue gli andamenti della corrente drenata dalle linee dei generatori (Vdd da 3 V, e CLOCK ad onda quadra 0/3 V a 200 MHz) sono mostrati nella figura: Figura Consumo di corrente di alimentazione e clock, nel caso Manchester
231 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 I cicli a 50 MHz dei sottrattori partono ogni 20 ns, a cominciare dalla prima precarica dopo 10 ns di simulazione. Il programma Xelga utilizzato per la visualizzazione dei segnali ha anche funzioni per determinare il valor medio di essi; i risultati ottenuti sono: P alimentazioni = t2 Vdd Idd dt t1 = mw t2 t1 P clock = t2 Vclock Iclock dt t1 t2 t1 = mw Il clock ha una corrente di tipo bipolare perchè deve caricare e scaricare le capacità di sua competenza; ma naturalmente occorre guardare al valore assoluto delle correnti drenate dalla sua alimentazione, commutata ogni periodo verso il circuito. Una simulazione del circuito gemello, ma utilizzante la rete di look-ahead nei sommatori IIR con dispositivi bipolari connessi a Wired-OR, portava invece ad avere: Figura Aumento del consumo nel caso di circuiteria BiCMOS in cui resta una periodicità lenta da 20 ns (effetto dei sottrattori), ma meno visibile perchè immersa nella superiore corrente consumata dalla sezione IIR, che fa crescere la dissipazione fino a mw. La prima delle due figure evidenzia meglio la duplice attività del circuito;
232 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 sia all inizio di Precharge che di Evaluate le commutazioni si fanno più frequenti, ed infatti i picchi di consumo nella curva I(Vdd) si susseguono ogni 10 ns e sono qualitativamente diversi: più secchi e piccati quelli di precarica a ns, e più larghi quelli di valutazione a ns-... ns. Un aspetto sino ad ora poco evidente era stato quello della criticità delle linee di alimentazione; in effetti, la soluzione Manchester introduce la necessità di precarica sincrona delle linee. In certi istanti, tutti e tre i sottrattori richiederanno carica a Vdd, provocando un afflusso di corrente simultaneo che darà certamente fastidio alla linea Vdd stessa sotto forma di caduta ohmica (power bounce). Questo transitorio critico si presenta invece in misura molto inferiore per la soluzione asincrona, in cui tutti i blocchi inizieranno sì a commutare nel medesimo istante, ma solo per i bit che devono davvero farlo; non vi sarà più una precarica generalizzata, ma riguardante solo quella percentuale dei gate che si trova in condizione di dover cambiare il suo stato (di solito si parla di un 25% del numero totale di porte attive, ad ogni commutazione). Resteranno viceversa presenti sulla linea di alimentazione i fastidiosi picchi in corrispondenza delle transizioni del clock, che sono dovuti alla rete di divisione di frequenza e soprattutto allo scatto dei driver di ogni latch della sezione IIR. Il circuito proposto in allegato ha i registri sono ancora completi, fatti da latch interi e non semi-latch, in questa prova; esso mostra un comportamento del tipo: Figura Consumo di energia nel caso di catena di sottrazione veloce
233 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 La periodicità di 20 ns si nota ancora, anche se con distribuzione un poco diversa rispetto alla netta distinzione Precarica/Valutazione (che introduceva picchi secondari ogni 10 ns, infatti) del caso precedente. La dissipazione diventa adesso: P alimentazioni = mw P clock =1.11mW In altri casi i valori non si scostano di molto; con ingresso costante al valore 3 si hanno P alimentazioni = 13.3 mw e P clock = 1.18 mw, ad esempio. I risultati ottenuti sono in buon accordo con le previsioni teoriche; ad esempio, nel caso del clock si poteva stimare: Carico equivalente clock = 7 registri da 4 bit + 3 latch carry-save + rete di divisione frequenza = 7 (4 8.8 µm tx.gate µm driver) + 3 ( 18.7 µm) + +( 15 µm) = 456 µm circa di carico equivalente; si sono trascurate le capacità dei tx-gate di egualizzazione dei ritardi. Avendo mantenuto sempre L = 0.7 µm si ha un area di gate di 319 µm 2, che porta ad avere C clock = 629 ff. Questa capacità viene commutata tra 0 e 3 Volt ogni 5 ns, perchè è tutta afferente alla parte IIR; allora si scriverà : P clock =C Vdd 2 f=1.13 mw Va osservato, a proposito della formula per il calcolo della potenza dissipata, che la soluzione di portare il blocco di downsampling all interno del decimatore consente notevoli risparmi; tutti i blocchi della parte FIR funzionano con frequenza 4 volte inferiore alla massima. Nel caso di una realizzazione diretta del filtro, ognuno dei dodici blocchi necessari avrebbe viceversa consumato energia al ritmo dei 200 MHz. L importazione dei semi-latch (NOT+TX.GATE) nella logica di somma costringe invece a raddoppiare il numero di driver, appesantendo certamente il carico sul clock, e rendendolo ancor più critico. Già così, le transizioni sulle linee del clock provocheranno problemi legati ad effetti induttivi sulle linee di pilotaggio del sincronismo; in prima approssimazione, si può utilizzare la formula (Bakoglu, pag.304,[18]) :
234 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 V I = L t in cui L è l induttanza del sistema di bonding (connessione chip di silicio-impaccamento esterno); I vale circa 6 ma, per la corrente I clock,e t è la durata del fronte di salita del clock, per noi 0.3 ns. Nel caso in cui si utilizzi un DIP-package, con L = 20 nh, si hanno addirittura 0.4 V di V indotta, che su 3.3 V di alimentazione costituiscono una perdita insostenibile; a livello di realizzazione fisica occorrerà prendere provvedimenti del tipo: aumentare il numero di pin di ingresso del clock; le induttanze dei fili di connessione verranno in tal modo messe in parallelo, e diminuirà l induttanza effettiva vista dal circuito. Si potrebbe pensare di allocare al clock la stessa quota di tensione lasciata al feedthrough,0.2v,edallora3o4pindiclockbastano supporre che si usi una tecnica di bonding meno induttiva (ad esempio, le nuove metodologie flip-chip con solder bump-bonding garantiscono L dell ordine di 1 nh o inferiori), nel qual caso però i costi aumentano sensibilmente ricorrere a moltiplicazione on-chip della frequenza del clock esterno, che così potrebbe rilassare le sue caratteristiche. Come il convertitore A/D Sigma-Delta è un circuito alateredi altri sistemi più grandi, non è affatto peregrino ipotizzare di realizzare un circuito PLL che generi il sincronismo interno necessario, dal riferimento di clock esterno per il circuito principale (che sarà presumibilmente molto più lento del convertitore). Il nuovo riferimento veloce così sintetizzato vedrebbe poi delle induttanze L molto inferiori rispetto a quelle tipiche del bonding Il tutto va corredato naturalmente da una distribuzione del clock non troppo dendritica, una volta passati alle piste di metallo del layout Stime dell occupazione di area Le dissipazioni di potenza non costituiscono comunque un elemento nettamente discriminante per la scelta del circuito finale, tra la parte FIR Manchester e quella veloce. Un altro aspetto che può fare la differenza è però l area occupata, che ora può venire valutata al netto delle connessioni (comunque importantissime, per realizzazioni submicrometriche; ma il loro contributo può sperabilmente essere in proporzione all area totale dei transistori da
235 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 connettere, come linea guida). Dopo un paziente calcolo che qui omettiamo, si ricavano finalmente i dati : - area di gate totale occupata dalla sezione FIR veloce : Sottrattori veloci (3) 3928 µm Registri necessari (4) 915 µm Negatori dei byte sottraendi (3) 158 µm Area equivalente occupata totale = = 3501 µm 2 -area di gate totale occupata dalla sezione FIR Manchester : Sottrattori dinamici (3) 2020 µm Registri necessari (6) 1373 µm Area equivalente occupata totale = = 2375 µm 2 Il risparmio si valuta in un 30%; e non è poco, perchè l area occupata dalla parte IIR non è così soverchiante rispetto a quella della parte FIR; basti pensare che la prima soluzione proposta utilizza esattamente gli stessi blocchi carry-select, e nello stesso numero... Va da sè che le altre aree dei dispositivi sono proporzionali alle aree di gate, senza componenti fisse proprie: quindi il calcolo è pienamente valido, ed orienta verso l uso della catena Manchester come metodo di sottrazione; cosa che verà eseguita, ed illustrata nel Capitolo Il problema della temperatura Le simulazioni finali devono prevedere anche le variazioni tecnologiche e di temperatura più pericolose per il funzionamento del decimatore progettato. Per le prime si rimanda al Capitolo 6, mentre le seconde sono presentate subito. La temperatura che il die di silicio interno al chip può raggiungere è legata alle condizioni ambientali esterne ed alla potenza dissipata nel circuito stesso mediante la formula:
236 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 T interna =T ambiente + θ T P dissipata La temperatura ambiente da considerare dipende dalle condizioni standard assunte; per applicazioni commerciali T ambiente = 70 C, per passare a T ambiente = 100 C in applicazioni industriali, ed oltre per applicazioni militari ed aerospaziali. θ T èlaresistenzatermicatrala giunzione fisica dove si produce calore, all interno nel chip, e l ambiente; con buoni impaccamenti DIP si riesce a scendere sotto ai 40 C/W (cfr. Bakoglu, pag. 115, [18]), pur non aumentando il costo dell oggetto. Alla luce dei dati di dissipazione presentati in precedenza, anche supponendo di raddoppiarli per tenere conto della capacità in surplus aggiunta dalle linee di connessione, si avrebbe : T interna = 70 C + 40 C/W 30 mw = 71.2 C Nemmeno aggiungendo la dissipazione del modulatore Sigma-Delta adiacente il bilancio muta; però, se è vero che questo è un circuito di servizio, potrebbe finire in un chip con della circuiteria molto più dissipativa, per cui il rischio di un innalzamento di temperatura si fa concreto; si rammenti che all interno degli integrati sussiste buona conduzione del calore, essendo tipicamente θ T = 0.3 C/W (Solomon, riferimento [30]). Un buon margine di sicurezza è costituito di solito dall esecuzione di prove del circuito a 100 C, che in effetti verranno eseguite al Capitolo 6; un ottimo caso di riferimento potrebbe essere quello riportato nel Capitolo 9 di Weste-Eshraghian, in cui la temperatura massima di test vale comunque 110 C, pure a fronte di dissipazioni di 2/3 W! Una simulazione preliminare del solito caso ad ingressi alternati, con T = 70 C, porta qui purtroppo al fallimento delle operazioni; le uscite in teoria dovevano restare costanti, cosa che non avviene:
237 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Simulazione dall esito sbagliato, ai 70 C In effetti, i transistori MOSFET risentono del calo di mobilità indotto dal riscaldamento del circuito; l effetto prodotto supera il calo della V th introdotto nei modelli dei dispositivi tramite il parametro DVT = -2mV/ C; inoltre, ci sarà da aspettarsi anche un aumento delle resistenze delle connessioni, oltre che del canale Ultima modifica circuitale : tecnica dìvide et ìmpera Per contrastare l effetto di aumento della temperatura che fa fallire la decimazione va preso un provvedimento: l ultima back-annotation circuitale che è stata eseguita in questo progetto è consistita in una modifica dei blocchi carry-select. In alternativa si sarebbe potuto tentare di compensare il calo di prestazioni dei MOSFET con una rete di look-ahead a bipolari, che migliorano in velocità con tali effetti termici; ma le considerazioni di dissipazione svolte sconsigliano di intraprendere questa strada
238 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura La struttura definitiva del blocco carry-select Una disamina del tipo di errore occorso lascia infatti intravedere un aumento eccessivo del ritardo sul solito percorso critico, l anello dei bit dispari, ed anche sul carry intermedio (che afferisce al flip-flop di carry-save); in queste pessime condizioni di funzionamento i ritardi sono stati evidentemente esacerbati. La tecnica adottata per snellire la rete è del tipo dìvide et ìmpera; quello che prima era un pilotaggio eseguito da una sola porta, ora è stato diviso in due percorsi identici in parallelo, più leggeri e sicuramente più veloci; il buffer invertente grande 2.7 volte una NOT minima si trasforma in due invertitori da 1.5. In questo modo ovviamente l inconveniente viene trasportato a monte; la capacità vista dal latch davanti al sommatore peggiora, raddoppiando; ed allora si introduce un ulteriore invertitore nella porta XOR (che diventa ormai da un blocco con 10 transistori, denominato con FB Fully complementary and Buffered) con la speranza che il ritardo introdotto dal nuovo livello logico sia sovracompensato dalla nuova capacità di driving dell ingresso A:
239 Dalla logica circuitale allo schematico a transistori: problemi e soluzioni - Cap. 4 Figura Porta XOR Bufferizzata sull ingresso A La speranza non è andata delusa; nel Capitolo 6 verrano mostrate le simulazioni definitive del circuito così modificato, e se ne apprezzerà per intero la robustezza delle prestazioni. In conclusione: stando alla letteratura (Weste-Eshraghian, pag. 291,[17]), avendo una tecnologia già sub-micrometrica ci si potevano attendere miglioramenti della velocità all incirca del 4%, passando da un progetto automatizzato (senza dimensionamenti studiati caso per caso) ad uno di tipo full-custom ; ma il mix di ottimizzazioni algoritmico/logiche ha consentito di migliorare il circuito in misura molto superiore
240 Floorplanning e layout in tecnologia BiCMOS - Cap.5 Capitolo 5 Floorplanning e layout in tecnologia BiCMOS Sono qui discusse le varie soluzioni adottate per superare i molteplici problemi di traduzione del circuito schematico (individuato nel capitolo precedente) in layout, cioè in una configurazione geometrica dei transistori e delle loro interconnessioni che può essere poi costruita con la tecnologia planare a disposizione, la BiCMOS. Dalle scelte ad alto livello, inerenti la disposizione dei blocchi logici per massimizzarne la contiguità, si scende poi progressivamente sino a trattare le principali caratteristiche della disposizione di transistori ideata Obiettivi principali del floorplanning Nel capitolo precedente gran parte dello sforzo progettuale è stata dedicata alla minimizzazione dei ritardi di propagazione lungo certi cammini critici, in special modo nella sezione IIR del filtro. Essi sono stati riconosciuti dapprima nella catena di riporto, e in un secondo momento (dopo l applicazione del pipe-line ai sommatori) negli anelli di somma dei bit di posizione dispari. L attenzione che era stata riposta nell ottimizzare le prestazioni dello schematico a transistori deve trovare continuità anche nella fase successiva, di decisione della
241 Floorplanning e layout in tecnologia BiCMOS - Cap.5 disposizione fisica dei dispositivi nell area di silicio che ospiterà il decimatore: il cosiddetto floorplanning del circuito. Il floorplanning si concretizza in ultima analisi in un disegno illustrante la posizione dei blocchi decisa e l allocazione deille connessioni relative ad essi. Nel caso attuale, si tratta di scegliere come distribuire il clock in modo tale da rispettare il proposito di egualizzazione dei ritardi formulato nel Capitolo 4, e come mantenere la massima contiguità tra i tre integratori della sezione IIR. Le simulazioni a livello di schematico hanno dimostrato infatti la praticabilità di un approccio ad una singola fase del clock, seppure vada invertita in loco per avere anche NOT Φ oltre a Φ; ora il problema fondamentale risiede nel rendere le simulazioni eseguite le più verosimili possibile, facendo pesare poco le capacità di interconnessione tra i vari blocchi. Particolarmente critico si presenta poi il posizionamento relativo dei vari integratori; se nello schematico il carico gravante sull uscita di ogni latch IIR era dato solo dagli ingressi dei due sommatori, ora l aggiunta di una linea di metallo risulterebbe probabilmente devastante per i transitori di quel nodo, già delicato così com è (anche perchè la linea rischia di essere piuttosto lunga, se i due blocchi vengono realizzati in modo troppo monolitico e disposti poi lontani tra di loro). Ovviamente anche il floorplan deve recepire i requisiti necessari per le diverse sezioni del circuito: sarà così suddiviso nelle solite parti IIR e FIR, collegate tramite una sezione intermedia Parte IIR : Geometria con percorso dei dati rettilineo La prima idea che potrebbe venire per la parte IIR è quella di progettare i blocchi di elaborazione con geometria lineare: si prende il dato dall ingresso e lo si fa viaggiare orizzontalmente, lungo un percorso rettilineo sul quale agiscono i blocchi di somma e sottrazione, come in una catena di montaggio. Uno schema del genere è molto comune nei sistemi digitali, e presenta il vantaggio di distribuire l area necessaria lungo una sola dimensione; per un circuito che deve operare a margine di altri su un chip, interagendo essenzialmente con i pad degli ingressi per la loro conversione A/D preliminare, sembra l ottimo. Inoltre anche l operazione principale da eseguire nel nostro caso, la somma, verrebbe realizzata in maniera abbastanza naturale, come mostra la prossima figura; c è da tenere ben
242 Floorplanning e layout in tecnologia BiCMOS - Cap.5 presente a questo proposito che un addizionatore consta di due percorsi informativi principali, la somma parziale per colonne e la catena del riporto, ortogonali tra di loro; ottimizzare l uno significa spesso andare a detrimento dell altro, e le scelte possibili sono sempre dei compromessi. Flusso CARRY SIGMA-DELTA Uscitaa2bit Flusso DATI S0-S1 S2-S3 S4-S5 S6-S7 C01 MUX select S0-S1 C23 MUX select S2-S3 C45 MUX select S4-S5 C67 MUX select S6-S7 IIR 1 IIR 2... Linee Byte 0..7 Figura Floorplan della sezione IIR con percorso dati rettilineo Questa soluzione è molto efficace per la gestione dei carry, dacchè sviluppa la struttura lungo l asse orizzontale, assottigliandola verticalmente e dunque favorendo la veloce trasmissione del riporto tra i vari blocchi, nella colonna apposita. Il problema è però insito nella funzione IIR da compiere. Non si tratta di sommare dei dati e poi di trasmetterli solo in avanti; il risultato della somma deve tornare indietro, e quindi ripercorrere la lunga pista orizzontale dei dati a ritroso, rischiando davvero di subire un ritardo letale ai fini della buona riuscita dell operazione. Inoltre, orizzontalmente si fa correre la linea dei dati S0..S7, da selezionare con i multiplexer finali, sopra a blocchi che non le competono, cioè dove solo il riporto serve alla logica sottostante. Con gli stringenti limiti temporali che ci sono imposti, laddove la linea passa deve essere elaborata, e non deve trovarsi in puro transito verso un altro punto del circuito: starebbe perdendo tempo prezioso. Sembra cioè più aderente alle nostre necessità cercare di mantenere una maggiore isotropia delle due dimensioni, ossia un rapporto d aspetto orizzontale (DATI)/verticale (CARRY) più equilibrato; il carry non sarà forse così veloce come in questa soluzione, ma il percorso dati risentirà benèfici effetti da una riconformazione del circuito in tal senso. Il cammino del carry oltretutto è già stato spezzato usando la tecnica di carry-save, ed è quindi già divenuto meno critico rispetto al caso senza pipe-line
243 Floorplanning e layout in tecnologia BiCMOS - Cap Parte IIR : Geometrie con percorso dei dati ripiegato A completamento dell idea di regolarizzare le due dimensioni va aggiunta un altra possibile tecnica di ottimizzazione dei percorsi, legata veramente all essenza della funzione IIR: se non è possibile sprecare tempo facendo viaggiare il segnale lungo linee di puro trasferimento, ed il segnale IIR è ricorsivo cioè deve ripiegarsi e tornare da dove è partito, perchè non ripiegare su se stesso anche il circuito? Il segnale viaggiante lungo una linea subisce ipso facto un ritardo; pure il segnale che deve pilotare delle porte logiche subisce un ritardo; ma sembra allora naturale porre le porte logiche lungo il percorso, non sommando i due ritardi ma facendo viaggiare il segnale il più possibile all interno delle porte, mentre è in corso di elaborazione 10 ; in tal modo inoltre i livelli binari vengono costantemente rigenerati, e non incontrano lunghi tratti RC in grado di degenerarli. La disposizione del circuito deve insomma essere informata dal flusso del segnale. IIR 2 IIR 3 S2-S3 rry S S4-S5 S0-S1 SIGMA-DELTA Uscitaa2bit IIR 1 S6-S7 Linee Byte 0..7 Figura Floorplan per la sezione IIR con blocchi ripiegati, e sincronizzati con clock simmetrico 10 L idea ricorda un poco quella degli oscilloscopi a deflessione progressiva del fascio elettronico, che attivano le placchette elettrodiche quando il fascio giunge in loro corrispondenza; anche qui è importante che il segnale venga elaborato mentre si trasferisce, e non che si trasferisca per essere elaborato
244 Floorplanning e layout in tecnologia BiCMOS - Cap.5 Per non appesantire ulteriormente la tavola i blocchi sono mostrati molto distanti tra di loro, ma in realtà verrebbero ad essere pressocchè adiacenti. Sono rappresentati in figura i tre blocchi IIR, ciascuno separato nei 4 carry-select con struttura completamente ripiegata; la rete di look-ahead verrebbe convenientemente costruita in mezzo ad ogni quaterna di anelli di dati. Il clock è distribuito simmetricamente, con la struttura a linee nere centrale, e potrebbe essere bufferizzato giusto nel centro dei singoli blocchi. Ogni bit in uscita dovrebbe percorrere distanze pari al lato di due blocchi, che però essendo ripiegati hanno dimensioni laterali abbastanza contenute. Il problema si annida invece nella frequente sovrapposizione di linee ortogonali che è impossibile evitare con questa nuova soluzione, e che costringe a cambiare livello di pista molte volte. Inoltre, se si proseguisse nel progetto si arriverebbe a dover disegnare i quadrilateri di carry-select; perciò il fatto stesso di avere una circolarità del flusso di dati, con un percorso più interno ed uno più esterno di lunghezza differente, rende difficilissima la disposizione delle porte, la loro alimentazione, il mantenimento della contiguità delle well... Un percorso di dati meno inusitato ma che conserva la caratteristica del ripiegamento è invece il seguente: IIR 1-a SIGMA-DELTA Uscitaa2bit IIR 3-a IIR 1-b IIR 2-a IIR 1-c IIR 1-d Linee Byte 0..7 Figura Floorplan con percorsi ripiegati e routing centrale del carry e delle somme
245 Floorplanning e layout in tecnologia BiCMOS - Cap.5 I sommatori non sono più nemmeno contigui; sono i tre blocchi carry-select corrispondenti, appartenenti ciascuno ad un sommatore diverso a trovarsi affacciati l uno all altro, e a minimizzare dunque il ritardo di trasferimento dei dati. I carry generati andrebbero poi trasmessi al blocco successivo (ad es. IIR 1-b IIR 1-c) passando nell intercapedine lasciata centralmente tra gli elementi, e sopportando un trasferimento comunque breve, lungo metà del lato corto dei blocchi rettangolari. L idea presentata incorre essa pure in un inconveniente di natura topologica, purtroppo. Se il segnale deve tornare dove è partito, è anche da lì che deve uscire: infatti il byte prodotto dal sommatore torna indietro, ma va anche a costituire l input esterno del successivo blocco integratore. Allora, per minimizzare i ritardi di trasmissione dei dati da un blocco al successivo, ogni ingresso ha dovuto essere disegnato prospiciente ad ogni uscita, nell intera sezione IIR; idem dicasi per i carry, che devono pilotare i selettori finali e quindi afferiscono anch essi nella medesima zona; il tutto con gli immaginabili problemi di routing e di crosstalk (accoppiamento dei segnali su linee diverse) collegati. L idea di ripiegare il circuito su se stesso è in sè interessante, ma va trovato un compromesso per evitare questi congestionamenti di linee indesiderati Parte IIR : Geometria mista e problemi di clock skew Il compromesso ottenuto fondendo insieme la prima e l ultima delle idee precedenti è in effetti praticabile; si tratta di mantenere verticale il flusso dei carry, ed orizzontale il flusso dei dati, come nel primo caso; di diminuire poi il più possibile le dimensioni orizzontali del blocco del carry select, così da garantire un rientro veloce sull ingresso del dato in uscita. Il percorso di ritorno deve essere poi coperto dalle (meglio sarebbe dire temporalmente pagato con le... ) porte logiche del sommatore; il segnale avrebbe dovuto comunque raggiungerle per pilotarle, quindi tanto vale comandarle mentre il segnale sta tornando indietro:
246 Floorplanning e layout in tecnologia BiCMOS - Cap.5 SIGMA-DELTA Uscitaa2bit IIR 1 IIR 2 IIR 3 DATI - Sx,Sy CLOCK CARRY - CE,CN Figura Distribuzione del clock per simmetria ternaria e struttura mista del blocco carry select Per ridurre il passo orizzontale della struttura è giocoforza disporre il resto della logica in verticale: metà logica fa salire il segnale e l altra metà lo fa scendere, ripiegandosi ed applicando così la seconda idea. In tal modo: - il percorso verticale del carry non viene allungato di molto (solo metà profondità della logica) - il segnale defluisce ed affluisce alla breve pista trasmissiva orizzontale. Viene oltretutto conservata una direzione preferenziale dei dati, che porta ad una progettazione della serie dei tre integratori assolutamente modulare: i dati escono dal lato destro del circuito ed entrano nel lato sinistro del blocco successivo, senza problemi di sorta. Con la delocalizzazione dei registri, nella parte IIR i blocchi sono un tutt uno di calcolo/memorizzazione; anche il semi-latch rimasto esterno, in linea di principio, al sommatore va fuso con il resto della logica, posizionandolo dove meglio riesce a svolgere la sua funzione: al centro del blocco, dove può pilotare le linee di uscita (che sono anche degli
247 Floorplanning e layout in tecnologia BiCMOS - Cap.5 ingressi...) dell integratore. C è bisogno allora di portare il clock ad ognuno dei 12 blocchi carry-select; esso va distribuito con estrema attenzione perchè a queste velocità lo skew può essere determinante, ed in questo la simmetria ternaria della configurazione non giova. Un ottimo metodo per trasmettere il segnale di sincronismo in maniera controllata e parificando i ritardi è infatti quello basato sulle simmetrie binarie dei circuiti, che può risolversi ad esempio mediante forme ad H della rete distributrice (Bakoglu,pag. 367, [18]); nei casi ternari invece sembra che l unica opportunità sia quella di spiccare tre rami a 120 l uno dall altro dalla linea principale, però se i tre blocchi da alimentare sono paralleli questa metodologia non si confa loro. Il problema è stato affrontato mantenendo egualmente 4 rami totali nella rete di sincronismo; tre per i tre blocchi IIR, ed il quarto per il divisore 4:1 delle fasi nonchè per il pilotaggio del registro intermedio da 4 bit. Si confida poi almeno in una somiglianza dei carichi terminali, se non proprio in una loro equivalenza, per pareggiare i ritardi RC. Al termine della triplice cascata IIR si provvederà appunto alla risincronizzazione delle due nibble da 4 bit con un registro da 4 celle disposte verticalmente, come ovvio; e di seguito si disporrà il registro di decimazione 4:1 della sequenza di byte uscente, con la medesima orientazione Parte FIR : Prosecuzione della geometria IIR precedente La parte FIR del circuito non presenta a questo punto altre questioni di velocità, e la si può disporre in più di una maniera; sembra comunque ideale preservare il flusso di dati orizzontale, progettando le 8 fette del sottrattore Manchester in modo che prelevino i dati dalla sinistra e li riemettano da destra:
248 Floorplanning e layout in tecnologia BiCMOS - Cap.5 Parte IIR Uscita ad 8 bit Figura Floorplan della sezione FIR, con la triplice sequenza registro-sottrattoreregistro e flusso dei dati analogo a quello IIR Le slice sono evidenziate in tutti i sottrattori, e solo nel primo dei registri. I registri a 50 MHz devono soddisfare adesso i requisiti di passo verticale (in gergo, pitch) imposti dal sottrattore; ogni cella deve essere contenuta in uno spazio pari all altezza della slice corrispondente. L approccio qui potrebbe prevedere di mantenere costante la dimensione verticale del filtro completo IIR + FIR, allargando i sottrattori verticalmente e restringendone la profondità; ne nascerebbe un aspetto finale del circuito esattamente rettangolare. I registri della parte FIR però possono essere tenuti molto stretti; allargare il loro passo verticale equivale a perdere area, perchè le design rules (vedere paragrafo 5.9; qui si tratta, per inciso, di un problema di distanza tra n-well e diffusioni n + degli NMOS dirimpetto) non permettono di calare ulteriormente il pitch orizzontale. Si è preferito invece sfruttare fino all ultimo le possibilità di impaccamento che una disposizione stirata orizzontalmente offre, giungendo ad una forma finale del filtro composta come una L: Parte IIR Parte FIR Figura Floorplan del circuito completo
249 Floorplanning e layout in tecnologia BiCMOS - Cap.5 Del resto, il circuito del modulatore Sigma-Delta da accoppiare al decimatore ha un blocco di generazione delle fasi che potrebbe magari essere posto nello spazio risparmiato. A tal proposito, è opportuno notare che il modulatore analogico allo stato dell arte ha forma rettangolare e dimensioni di circa 1 mm x 280 µm; ci si attende tuttavia di poterne ridisegnare facilmente alcune parti, quelle che fanno uso di grandi transistori MOSFET, per meglio integrarle con una nuova forma delle diffusioni nello schema del decimatore proposto Parte IIR : il floorplan delle singole porte logiche nei blocchi modulari Si può quindi passare alla fase di floorplanning successiva, che concerne una decisione di massima della posizione delle varie porte logiche all interno dei blocchi definiti. Per la parte IIR, ora è noto che gli ingressi devono arrivare da sinistra ed uscire da destra, mentre il carry giungerà dall alto ed uscirà dal lato inferiore; vanno poi disposti verticalmente due anelli di logica, per il bit di posto pari e quello di posto dispari; ed inoltre il clock quaternario giunge dalla destra, e va bufferizzato in loco. Lo schema di cui decidere l aspetto finale è quello, definitivo, già presentato in Figura 4.95: Figura Schematico del blocco di carry select a 2 bit sintetizzato nel Capitolo
250 Floorplanning e layout in tecnologia BiCMOS - Cap.5 I carry vanno poi trattati nella catena di look-ahead tramite porte AOI da tre ingressi, e flip-flop di carry-save intermedio; ma per conservare regolarità diventa opportuno progettare ogni blocco come se dovesse fornire il carry al latch, e quindi dotato di AOI e doppia NOT+TX.GATE; almeno due blocchi su quattro avranno poi gli ingressi di queste porte posti a massa o all alimentazione, a seconda di come risulti più comodo in quella posizione. L unità minima costituente l intero corpo della sezione IIR assumerà quindi l aspetto in figura: Cin Bit 0 Out Bit 0 In FB Bit 1 Out Bit 1 In FB FB Cout Figura Studio per la disposizione delle singole porte logiche del blocco della figura precedente
251 Floorplanning e layout in tecnologia BiCMOS - Cap.5 A questa disposizione si è giunti dopo parecchie prove grafiche di accostamento delle porte logiche; infatti, le dimensioni e la topologia costruttiva di ogni singola porta, pur essendo passibili di ampie modifiche, erano più o meno note sin dal floorplanning. Ciò ha comportato una fase di incastro tra le varie funzioni logiche necessarie, per trovare la geometria che costringesse al minor numero di customizzazioni possibile; ogni modifica apportata alle strutture tipiche delle porte logiche comporta una stesura completamente manuale di ogni maschera, financo quella per le diffusioni di taratura delle soglie V th, risultando in un lavoro lungo e spesso soggetto a continui ritocchi. La soluzione presentata invece si presta ad una disposizione strutturata dei transistori, che consente lo specchiamento di alcuni blocchi di MOSFET (si notino a proposito i gruppi XOR-NOT-NOT-XOR ed OAI- OAI orizzontalmente in basso, e l eguaglianza delle prime due colonne a sinistra), ed alcuni fusioni di componenti che fanno risparmiare area (è il caso dei gruppi NOT+TX.GATE, tenuti adiacenti; dei multiplexer monoblocco; e delle porte NOT affacciate, che condivideranno le diffusioni di Source). Inoltre, questi vincoli di convenienza realizzativa sono validi all interno della linea guida principale che determina tutta la sintesi della parte IIR: la minimizzazione degli incroci delle piste, e della lunghezza delle piste stesse. Algoritmi di ricerca operativa - basati essenzialmente sull uso di grafi multi-livello - che tentano un approccio euristico a questo problema esistono, anche se non sempre si rivelano efficaci, e soprattutto non per ogni classe di problemi; nel nostro caso tale questione è stata risolta a mano e ammette sicuramente ampi margini di miglioramento. Si fa solo notare la presenza di nodi con elevati numeri di connessioni, che hanno meritato perticolare attenzione: - i multiplexer finali, cui afferiscono Cin, NOT Cin, SEy ed SNy, per esempio; essi sono dunque stati spostati centralmente rispetto alle due colonne verticali di segnale, ed il carry entrante è stato negato e bufferizzato proprio a ridosso di essi, in alto; - le due porte NOT grandi 1.5 volte il negatore minimo, che seguono le XOR bufferizzate del bit y, di posto dispari; esse infatti devono pilotare sia il percorso dati (le XNOR verticali a sinistra) che i generatori del carry, in basso, e quindi sono state poste al centro (per quanto possibile) del quadrilatero individuato dalla posizione di tali funzioni - un discorso a parte meriteranno in seguito le porte XOR
252 Floorplanning e layout in tecnologia BiCMOS - Cap Parte FIR : Floorplanning funzionale alla precarica La parte FIR è in pratica stata già decisa; una volta asserito che conviene mantenerne la struttura a fette, esasperando le dimensioni orizzontali per snellire il tutto verticalmente, si è già immaginato uno schema del tipo: Bit In Cin Cou Bit Out Figura Studio per il piazzamento delle porte logiche (Ingresso,Uscita, Precarica) per la singola slice della catena Manchester La linea critica, ovviamente quella del riporto, viene allora minimizzata in lunghezza. Si noti che un utilizzo così rigoroso e categorico delle orientazioni orizzontale e verticale favorisce la distribuzione delle alimentazioni secondo lo schema interdigitato, che si
253 Floorplanning e layout in tecnologia BiCMOS - Cap.5 è dimostrato essere il più conveniente per grandi sistemi digitali; e inoltre, che una caratteristica siffatta permette di pari passo anche di disporre i componenti NMOS e PMOS formandone delle schiere ininterrotte, raggruppabili in sacche omogenee, e riducendo in tal modo il pericolo di latchup tipico dei CMOS Elementi fondamentali e parametri principali utili per il layout Mostriamo qui di seguito i mattoni fondamentali con cui è stato costruito il circuito: i due tipi di MOSFET, NMOS e PMOS: Figura Transistori MOSFET minimi della tecnologia BiCMOS disponibile Un confronto in scala con l analogo transistore bipolare, quello minimo realizzabile tecnologicamente (che ha AREA = 2, e non inferiore; è il cosiddetto T2), mette in evidenza la correttezza delle scelte operate nel Capitolo 4 a proposito dell impiego dei BJT:
254 Floorplanning e layout in tecnologia BiCMOS - Cap.5 Figura Transistore bipolare NPN minimo utilizzabile Si nota un ingombro molto superiore, cui vanno aggiunte le considerazioni di consumo già proposte in sede opportuna. Nei vari schemi saranno riconoscibili i seguenti strati: il substrato p (o meglio, π poco drogato) che è lo sfondo bianco; la n-well, sempre sottesa da un omologo strato n-buried: le diffusioni p-plus (p + ) e pldd, più esterna, degli elettrodi dei transistori PMOS: le diffusioni n-plus (n + ) ed nldd, più esterna, per l NMOS:
255 Floorplanning e layout in tecnologia BiCMOS - Cap.5 l area attiva; con attiva ci si riferisce alla cosiddetta moat dei dispositivi, cioè all apertura praticata nell ossido di campo in cui è presente o solo l ossido fine di canale oppure nemmeno quello, scavato dal contatto il polisilicio di gate la metallizzazione 1, ossia la più profonda la metallizzazione 2, immediatamente sovrastante la metallizzazione 3, l ultimo strato realizzato prima dell incapsulamento globale passivante di protezione finale; le ultime 5 piste citate sono rappresentate nell ordine: i tre tipi di contatti, metal 1-polisilicio / metal 1-metal 2 (via1-2) / metal 2-metal 3 (via 2-3): Figure Strati e piste tecnologiche del processo BiCMOS Il processo tecnologico BiCMOS con cui il filtro progettato dovrà essere realizzato ha i seguenti valori di resistività in Ohm/quadrato, per i vari strati: Resistenze di strato ρ (in Ω/ ) Strato tecnologico MIN TYP MAX Substrato n-well n + buried
256 Floorplanning e layout in tecnologia BiCMOS - Cap.5 n + Source/Drain p + Source/Drain p - base BJT, e per resistori p - pinched per resistori Polisilicio emettitori Polisilicio Metallizzazione Metallizzazione Metallizzazione Questi dati sono molto importanti, perchè indicano al progettista quali piste vanno utilizzate preferenzialmente per i percorsi più lunghi e critici. In particolare, si nota il valore assai basso della resistività degli strati di polisilicio, il che è sintomatico della presenza di uno strato gemello di siliciuro (molto usato il siliciuro di tungsteno WSi, per questi casi) depositato sopra il polisilicio vero e proprio; valori di ρ per il polisilicio normale infatti si aggirerebbero attorno ai 25 Ω/ (Geiger-Allen-Strader, [19]). Per converso, i valori di resistività delle diffusioni pesantemente drogate non sono incoraggianti, soprattutto nel caso massimo; l utilizzo di connessioni diffuse risulta quindi sconsigliato fin dall inizio. Per i valori di capacità invece non abbiamo a disposizione una tabella completa. Per le capacità introdotte dalla presenza di transistori i valori sono noti dai modelli (peggiorativi, peraltro) usati per lo schematico; per le interconnessioni sono state eseguite delle simulazioni di caratterizzazione delle piste da utilizzare, disegnando sempre 100 µm di pista su ossido spesso, di campo, ed estraendo poi i valori di capacità mediante le apposite funzioni di Opus. Dato che le larghezze di pista che verranno utilizzate saranno spesso quelle minime, la prova fatta era concernente piste aventi larghezza pari alla design rule: Capacità parassite C par (in ff) Tipo di pista caratterizzata C par Polisilicio (W = 0.7 µm) Metallizzazione 1 (W = 1 µm) Metallizzazione 2 (W = 1.3 µm) Metallizzazione 3 (W = 1.4 µm)
257 Floorplanning e layout in tecnologia BiCMOS - Cap.5 Via I calcoli eseguiti dal programma tengono già conto degli effetti di bordo del campo elettrico. I valori trovati non comprendono effetti di accoppiamento con altre linee vicine, che invece nel circuito reale peseranno probabilmente in misura apprezzabile; è noto però che questi effetti di prossimità vengono calcolati dal programma quando la distanza tra due linee adiacenti scende al disotto di 2 volte e ½ la design rule minima, quindi nel progetto si cercherà di regolarsi in base a tale norma, tenendo lontane le linee il più possibile. Nel Capitolo 4 si determinò la capacità di un invertitore minimo, ottenendo circa 34 ff; quindi i valori trovati possono venire reinterpretati in rapporto a quel dato. Per ottenere un carico equivalente a quello di una porta NOT minima, occorre avere: a) 202 µm di polisilicio, oppure b) 263 µm di metal 1, oppure c) 316 µm di metal 2, od ancora d) 358 µm dimetal3. Sono solo parametri di merito largamente indicativi, visto che ogni linea sarà poi appesantita da un congruo numero di contatti e interferirà con le piste vicine; ma è importante avere subito un idea delle distanze che è lecito coprire senza porsi troppi problemi (in termine tecnico, che costituiscono un nodo elettrico unico), e di quelle che invece divengono una minaccia per la performance globale della rete Design rules del processo BiCMOS Ogni processo di layout deve sottostare ad una serie di limitazioni imposte dalla fattibilità tecnologica di talune geometrie; per fare un esempio, due piste di metallo parallele non possono essere disegnate l una troppo vicina all altra, perchè il processo planare ha delle tolleranze di precisione e potrebbe dunque verificarsi un corto circuito tra i percorsi medesimi (causato magari da protuberanze, o hillock, formatesi durante la deposizione del metallo, oppure per errori di realizzazione delle maschere). La lista delle distanze di sicurezza da mantenere e delle minime ampiezze di linea tracciabili, i cui valori sono valutati su base
258 Floorplanning e layout in tecnologia BiCMOS - Cap.5 probabilistica al fine di conservare una resa accettabile per il processo (yield), è detta lista delle design rules (regole di progetto); il progettista deve produrre una geometria di dispositivi rispettando tutte queste norme, che vengono verificate automaticamente da procedure dette di DRC (Design Rules Checker) in sede di controllo finale del layout. Riportiamo qui le più importanti: Design Rules fondamentali per il circuito in oggetto 11 Strati tecnologici Distanze minime da mantenere (in µm) I.1) Transistor attiva Sinker attiva 2 I.2) n-well n + attiva 2.6 I.3) Diffusione p + Diffusione p I.4) Diffusione n + Diffusione n I.5) Zona attiva (n +,p + ) Zona attiva (n +,p + ) 1.4 I.6) Polisilicio Transistor attiva (non sua) 0.6 I.7) Polisilicio Contatto alla diffusione (anche 0.9 Drain e Source suoi) I.8) Metallizzazione 1 Metallizzazione I.9) Metallizzazione 2 Metalizzazione I.10) Metallizzazione 3 Metallizzazione I.11) Via 1-2 Contatto alla diffusione 0.8 I.12) Via 1-2 Polisilicio 0.6 I.13) Via 1-2 Via I.14) Via 1-2 Via I.15) n-well Contatto alla p-well 1.2 dove l ultima regola impone limiti al posizionamento dei contatti al substrato, che sono indispensabili per controllare effetti di latchup e che, nel caso di area a densità elevata di transistori, non trovano posto; 11 Sono qui omesse tutte le regole inerenti gli strati nldd e pldd, di drogaggio leggero, presenti per migliorare le caratteristiche di durata dei dispositivi rendendoli più robusti rispetto al fenomeno di perforazione dell ossido; esse seguono quasi sempre le design rules omologhe per le diffusioni n + ep
259 Floorplanning e layout in tecnologia BiCMOS - Cap.5 Strati tecnologici Dimensioni da rispettare (in µm) II.1) Distanza bordo esterno Source/Drain dal Gate 1.8 II.2) Ricopertura n + op + di Transistor attiva 0.8 II.3) Bordo Gate polisilicio Transistor attiva (sua) 0.9 II.4) Ricopertura Via 1-2 del contatto 0.6 II.5) Larghezza metallizzazione 1 1 II.6) Larghezza metallizzazione II.7) Larghezza metallizzazione dove la prima regola costringe, nel caso di strutture non convenzionali (che si vedranno nella porta NAND a tre input del generatore di SYNC, oppure nelle porte XOR monoblocco), a mantenere una distanza tra i Gate superiore a quella minima di 1 µm che competerebbe loro, aumentando le capacità parassite di area e perimetro; le design rules insomma hanno un impatto molto diretto sul progetto, e talvolta hanno impedito di realizzare idee che sembravano molto utili per migliorarne le prestazioni. Sono state qui riportate per consentire al lettore di comprendere alcune scelte effettuate negli schemi che verranno poi riportati, ed altrimenti inspiegabili Layout della sezione IIR: i blocchi unitari carry select Osservando il floorplan disegnato per il singolo blocco carry-select da 2 bit, potrebbe sembrare di trovarsi davanti ad una circuiteria a standard cells, piuttosto che ad un layout di tipo full-custom. Ciò all atto pratico si rivela non vero; in effetti, i progetti a standard cells magari adoperano le medesime forme delle connessioni per creare porte NOR, o NAND, ma devono comunque prevedere di lasciare un binario libero tra PMOS ed NMOS molto più largo di quello che si vedrà in questa realizzazione, perchè non hanno la flessibilità d uso dei livelli di metallizzazione che invece la progettazione più dedicata garantisce. La struttura risultante dalla traduzione del floorplan in layout è la seguente, che segue quasi passo passo lo schema logico fornito in Figura 5.8:
260 Floorplanning e layout in tecnologia BiCMOS - Cap.5 Figura Layout della cella studiata alla Figura Blocco carry select alta 107 µm e larga 119 µm. Le proporzioni quasi quadrate testimoniano lo sforzo di privilegiare in egual misura i cammini dei dati e del riporto, che come si era desunto al Capitolo 4 sono ambedue cammini critici; il segnale di riporto viaggia infatti al più dalla parte inferiore di un blocco a quella del successivo, ora che si applica la tecnica di carry-save. La successione delle linee di alimentazione Vdd e di massa GND è alternata, e consente di non dover accostare linee Vdd-GND (si sprecherebbe area) nemmeno tra un blocco carryselect intero e l altro: si inizia con Vdd e si termina con Vdd, in orizzontale ed in verticale. Ciò aiuta nel compito di mantenere compatte le sacche n-well ed il substrato; la sacca si
261 Floorplanning e layout in tecnologia BiCMOS - Cap.5 dispone lungo ogni pista di alimentazione, rimanendo a sua volta ininterrotta. Un progetto che disponesse PMOS ed NMOS a scacchiera costringerebbe a continue interruzioni delle sacche, creando così molte giunzioni bipolari parassite distribuite, e favorendo le condizioni di innesco del processo di latchup CMOS; quindi la necessità di raggruppare i MOSFET con lo stesso tipo di canale in grandi gruppi penalizza forse l utilizzo di geometrie innovative fullcustom, ma rende indubbiamente più sicuro il sistema intero. A tal proposito va citato il problema dei contatti alle well; non sono disponibili altre tecniche come l isolamento a trincea, altre volte adottate in casi simili, e ciò fa pensare ad ottime caratteristiche di bassa resistività dei bulk acquisite in processi BiCMOS grazie agli strati sepolti autoallineati; si è evidentemente protetti da proprietà intrinseche del processo, al punto di non dover provvedere esplicitamente a controllare questo fenomeno. Ci siamo comunque cautelati dalla possibilità che latchup e cross-talk (accoppiamento spurio tra dispositivi, interferenza) minaccino il funzionamento del circuito tramite l uso delle cosiddette diffusioni di guardia, isole di drogante non necessarie funzionalmente, ma per la protezione dei componenti. Fortunatamente, in fase di progetto dello schematico si è riusciti a fare a meno di transmission-gate a bulk commutato, in favore di soluzioni con bulk invariabilmente connesso a Vdd (le n-well) od a GND (il substrato p); questo collegamento va effettuato il più spesso possibile, lungo le linee dell alimentazione, per evitare che restino presenti percorsi molto resistivi tra il fondo della sacca ed il contatto stesso. La presenza di un contatto permette il drenaggio delle correnti parassite che altrimenti provocherebbero l innesco del processo rigenerativo che si conclude con la distruzione del circuito; ed inoltre, asporta le correnti che potrebbero in caso contrario produrre interferenza tra i dispositivi vicini, a queste elevate frequenze di funzionamento. Una regola di pronto uso prescrive la presenza di un contatto ogni transistori; ed è il massimo che si può fare all interno della cella mostrata, dato che le porte logiche sono state disposte adiacenti e la distanza NMOS PMOS coincide spesso con la design rule relativa; disporre i contatti sotto i binari di alimentazione non è parimenti possibile, perchè ogni contatto necessita di una diffusione sottostante che costringerebbe (per non collidere con le diffusioni dei transistori che si affacciano sulla metal di Vdd o GND) ad allargare il passo della logica circostante. I contatti, in violaceo per le n- e con riquadro rosa per le p-well, sono posti di solito nei pochi spazi che sono rimasti liberi di lato alle porte; spazi generatisi a seguito di geometrie più rilassate, dovute al fatto che il pitch magari viene determinato da altre parti del circuito e quindi un poco di area è gestibile liberamente. I percorsi orizzontali dei dati però non
262 Floorplanning e layout in tecnologia BiCMOS - Cap.5 consentono nemmeno questo: per cercare di attenersi alla regola enunciata in precedenza, il numero dei contatti è stato mantenuto alto grazie ad un accorgimento surrogato: l utilizzo di tasche di guardia non contattate (si veda K. Joardar, [31]). Si nota infatti che la presenza di diffusioni di superficie non polarizzate agisce comunque contro il cross-talk, anche se ovviamente in maniera meno efficace rispetto ad una polarizzazione delle stesse; il contatto richiede una dimensione minima di 2.2 µm di lato, contro 1 µm della sola zona attiva non contattata, e dunque questo provvedimento si lascia preferire almeno nella densa zona menzionata. Quanto ai problemi di collegamento delle varie funzioni logiche, critici in un sistema veloce e compatto come il decimatore deve essere, sono stati risolti in modo gerarchico. La metal 1 è dedicata al routing locale ed alle connessioni che devono incrociarsi con le alimentazioni; peraltro la necessità di contattare Drain e Source con metal 1 comporta un ostacolo notevole all uso della medesima per condurre i segnali a medio raggio: il cosiddetto routing sopra le celle a basso livello è impedito dalla presenza dei contatti dei transistori. Al più si può passare in mezzo a NMOS e PMOS, ma per non allargare eccessivamente la distanza tra n-well e NMOS le piste previste sono al più due. I segnali principali del circuito invece, più a lungo raggio, vengono condotti ancora in metal 2 (e lo si vede dalla figura 5.19), in parallelo alle linee di alimentazione; tra questi i bit di dato. Le porte del flusso principale dei dati, orizzontali, vengono pilotate dai due bit di ingresso su linee in metal 2 che per ridurre l interferenza reciproca sono poste accanto alle alimentazioni; si accoppieranno prevalentemente con esse, che però sono a potenziale fisso e non disturbano i segnali. Il di-bit che giunge dal sommatore precedente è quello spostato verso le linee GND; le linee interne, verso Vdd, sono i due bit di uscita del sommatore che ritornano al suo ingresso, pilotando porte logiche lungo tutto il percorso; l uscita del semi-latch di cui allo schematico è la coppia di tx-gate esattamente al centro della struttura, che comandano tali linee. Esse, divenendo poi ingressi per il sommatore successivo, verso destra si allargano a loro volta verso le piste di massa
263 Floorplanning e layout in tecnologia BiCMOS - Cap.5 Figura Doppio multiplexer a 2 ingressi, con routing in policiuro e senza cavallotti metallici diagonali Si era detto che i punti con molti segnali afferenti erano stati particolarmente curati nel corso del floorplan; i multiplexer sopra illustrati sono assai critici al proposito. Li si nota poco sopra ai tx-gate citati prima, con NMOS e PMOS identici; il lungo giro di polisilicio che parte dal buffer invertente del carry in ingresso, in alto, testimonia la difficoltà di trovare alternative al posizionamento delle piste. Il polisilicio a disposizione è policiuro, quindi molto migliore rispetto alla norma; ma la velocità da tenere ne ha comunque sconsigliato l uso per il routing nell intera sezione IIR; il percorso illustrato si aggira sui 70 µm, quindi 70/0.7 = 100 quadri, allora sono 300 Ω nel caso tipico. Figura Porta XOR bufferizzata a 10 transistori, con stretch dei componenti per consentire la connettività necessaria, e varie comunanze di diffusione
264 Floorplanning e layout in tecnologia BiCMOS - Cap.5 Quella presentata è una delle tre porte XOR bufferizzate (FB) presenti nel percorso orizzontale; è composta in totale da 10 transistori, con tre negatori ed un multiplexer tutti fusi in una struttura unica. I problemi di connessione sono notevoli; basta osservare anche qui il passaggio in polisilicio esterno Una valida alternativa per la realizzazione compatta dei multiplexer a due ingressi si trova in Weste-Eshraghian ([17], pag. 294); essa prevede l incrocio di un gate in polisilicio con una metallizzazione, inclinati a 45 e formanti una X ; ma nel nostro caso sono i contatti ad inficiare la convenienza di una struttura del genere. I contatti sono già piuttosto grandi, 2.2x2.2 µm 2 ; ma dato che essi sono costituiti da un quadrato di metal 1 sovrapposto ad uno di polisilicio, attorno ad ogni contatto va lasciata un isola di 1 µm ulteriore libera da piste di polisilicio, il che costringerebbe ad allargare il passo verticale in maniera eccessiva. Considerando poi la densità di zone attive circostanti, non si riesce a condurre il polisilicio internamente alla porta ma occorre seguire un percorso esterno; come nel caso precedente dei multiplexer, le piste di gate non vengono sovrapposte con un cavallotto, ma l una aggira l altra. Si noti infine come sia possibile mettere in comune le diffusioni di drain delle porte NOT affacciate al selettore con le diffusioni esterne delle tx-gate; si ha un dimezzamento netto delle capacità parassite della configurazione, per non parlare della minore capacità perimetrale. Al fine di ottenere questo vantaggio, le due NOT in cascata che da A producono NOT A e di nuovo A (paragrafo 4.22) devono giocoforza essere connesse con un tratto in metal 2, cioè sfruttare un nuovo grado di libertà di movimento; la capacità parassita aggiunta dalla via 1-2 è comunque trascurabile, e nel passo verticale la nuova metal 2 trova posto tra le altre due di segnale, perchè stavolta esse possono eseguire il routing sopra le celle e sfruttano anche l area dei transistori. Infine, va osservata la difficoltà di far uscire il segnale dal blocco: occorre spostare il contatto a massa della NOT di destra e passare sopra la diffusione con la pista metallica, operazione che rischia di appesantire la pista a causa del MOSFET parassita che si viene così a creare. Un altra versione della medesima porta logica è nel percorso verticale di segnale:
265 Floorplanning e layout in tecnologia BiCMOS - Cap.5 Figura Porta XNOR da 8 transistori con routing in policiuro Si tratta di una porta XNOR, usata per il cammino logico di Sy; non manca solo un negatore, rispetto alla precedente, ma la struttura è differente ad esempio per quanto concerne la sezione di uscita. In un altra occasione si è fatto ricorso davvero al cavallotto tra i due gate del selettore finale, anche se lo stile di routing è restato Manhattan, ortogonale, e non diagonale a 45. Questo per ribadire la differenza tra layout a standard cells e full-custom; peraltro, una quarta implementazione diversa delle porte XOR si troverà nel sottrattore Manchester della parte FIR. Figura Doppio invertitore specchiato, con connettività verticale conservata grazie all allargamento di una diffusione verso le alimentazioni
266 Floorplanning e layout in tecnologia BiCMOS - Cap.5 La figura illustra il particolare delle due porte NOT grandi 1.5 volte la minima pilotate dalle due porte XOR, nel percorso dati del bit Sy, più significativo. I transistori di sinistra sono stati resi oblunghi per consentire il passaggio di un segnale altrimenti costretto ad allungare troppo il percorso; l aggiunta delle capacità parassite del fondo della diffusione ingrandita interessa del resto solo Csb, e non rallenta la commutazione della porta ma anzi stabilizza le alimentazioni (potrebbe essere previsto un carico capacitivo ad hoc da porre sulle linee di distribuzione più esterne, in fase di ultimazione del circuito). I due PMOS hanno Source e Drain contattati su tutta la loro area utile; si comprende ora perchè, a livello di progetto dello schematico, le scelte siano spesso ricadute sull utilizzo di transistori multipli di quelli minimi. Questa scelta inoltre ha comportato spesso la possibilità di implementare grandi transistori ripiegandoli in più parti, cioè realizzandoli come parallelo di due (o più) MOSFET più piccoli, con drain in comune; la tecnica è molto usata in ambito analogico dove le dimensioni dei dispositivi superano spesso W = 100 µm, e fa risparmiare sensibilmente sulle capacità parassite sia perimetrali che di area. Un esempio di ripiegamento riguarda i transistori PMOS delle porte OAI da 3 ingressi che generano CE e CN, nella parte bassa del circuito: Figura Porta OR-AND-INVERT (OAI) con transistori PMOS ripiegati, per motivi di passo verticale e di riduzione delle capacità parassite
267 Floorplanning e layout in tecnologia BiCMOS - Cap.5 Si hanno due PMOS in serie, da 10 µm, in parallelo ad un PMOS da 5.5 µm: il Source del componente connesso a Vdd è diviso in due; il Drain è comune al Source del successivo, ed occupa un area molto modesta perchè è la distanza minima tra due gate che conta, ed ammonta solo ad 1 µm; infine, il Drain finale è unico e non ha area XA W=2 10 ma soltanto XA W/2 = 2 5 µm. Le capacità al nodo intermedio oltretutto sono calate drasticamente, con positivi risvolti sulla velocità di commutazione e sull effetto body. Per gli NMOS tale accorgimento non si sarebbe reso necessario, ma essendosi determinato un allargamento orizzontale del pitch della porta logica a seguito del ripiegamento dei PMOS, anche l NMOS adiacente all uscita è stato ripiegato proficuamente Dimensionamento delle linee di alimentazione Le alimentazioni sono portate sempre in metal 2, per motivi di minimizzazione della caduta ohmica R I indotta quando le porte commutano simultaneamente, richiedendo picchi di corrente a Vdd. La dimensione verticale delle piste aumenta infatti man mano che si sale di livello, dalla metal 1 alla 3, e di pari passo cala la resistenza di quadro specifica; inoltre, portare Vdd e GND in metal 1 significa bloccare tutti i percorsi di segnale a breve raggio (che escono in modo naturale dalle porte viaggiando in metal 1) all interno dei due binari, perdendo connettività in generale. Non è pensabile, per le linee di segnale, contattare diffusione metal 1 metal 2 ad ogni porta logica, per ingombro e capacità aggiunte; tale soluzione va utilizzata solo localmente, per risolvere i numerosi problemi di connessione che sorgono con impaccamenti così esasperati. D altra parte, usare invece la metal 3 per il routing (distribuzione) delle alimentazioni comporta lunghe serie di contatti ad ogni porta, che dal punto di vista capacitivo sono vantaggiose perchè stabilizzano le tensioni in linea ma sono estremamente scomode in termini di occupazione di real estate. La soluzione metal 2 ha il vantaggio di poter alloggiare la via 1-2 sotto la pista, e di avere il contatto metal 1-diffusione sul transistore, senza occupare area intermedia; effettuare un passaggio alla diffusione già sotto la pista per poi alimentare il transistore attraverso un percorso diffuso è capacitivamente utile, ma come visto introduce una resistenza di 95 Ω/ nel caso pessimo p + ; questo effetto, ripetuto migliaia di volte lungo il circuito, farebbe discostare sensibilmente i comportamenti dello schematico da quelli finali del layout, ed è
268 Floorplanning e layout in tecnologia BiCMOS - Cap.5 quindi stato accuratamente evitato. Date la prestazioni da ottenere, del resto, è meglio pagare in termini di area che non in termini di criticità temporale della rete. La larghezza delle linee dell alimentazione è dettata da più di una considerazione: la caduta V = R I deve restare entro limiti accettabili anche in condizioni di picco della corrente; dai relativi grafici del paragrafo 4.19 si nota che tale picco è all incirca di 10 ma per l intero circuito; questo significa che un ipotetica pista che dovesse sopportare questo carico perdendo 0.1 V (tanto quanto un effetto di feed-through) dovrebbe avere R = 10 Ω, che nel caso pessimo della metal 2 significa 200 quadri; le linee adoperate sono larghe 2.2 µm, perchè tenerle più strette non fa risparmiare area in quanto il pitch è fissato dallla presenza del contatto, e quindi 200 quadri significano 440 µm di lunghezza, che è giusto l altezza del circuito intero. Si può quindi affermare che l uso di piste interne larghe 2.2 µm è abbondantemente sufficiente (10 ma la parte IIR porterà magari 7 ma al singolo blocco competono 7/12 = 0.58 ma le linee orizzontali vedono 3 blocchi interi, quindi assorbono 1.74 ma, distribuiti su = 357 µm ossia 8.18 Ω, per una caduta di 14 mv); esternamente va fatto correre un anello di Vdd / GND largo magari da 5 µm insu, in modo che la caduta da sommare alla precedente sia trascurabile. Le considerazioni svolte sono attendibili anche grazie al tipo di distribuzione dell alimentazione, che segue i criteri stabiliti in [32] (Song e Glasser) ed usatissimi in ambito digitale: la distribuzione è del tipo a pettine, e non ad albero; tende quindi ad avere una profondità inferiore, spiccando numerosi rami da un troncone principale, e non sviluppando un ramo in cascata all altro. Il tronco principale può poi essere derivato da un anello, appunto, oppure essere portato a livello di metal 3; nel nostro caso però tale ultima metallizzazione va riservata al clock. i picchi di tensione indotti devono rimanere contenuti; ma tale problema si verifica a livello di bonding, come già enunciato, perchè una volta sul chip le induttanze sono relativamente basse (anche se nel caso ECL il problema è talvolta avvertito); la distribuzione esterna ad anello (per la quale si consulti Bakoglu, pag.323, [18]) e la relativamente tozza struttura a pettine garantiscono oltretutto L basse per motivi schiettamente geometrici. l elettromigrazione, fenomeno microscopico che tende a deteriorare le piste di alluminio, deve essere contenuta; si tratta di non imporre carichi di corrente unidirezionale troppo gravosi alla linea. Esiste un vasto numero di osservazioni empiriche a tal proposito; una regola abbastanza conservativa è quella di mantenere la densità lineare (lungo la W della
269 Floorplanning e layout in tecnologia BiCMOS - Cap.5 linea) di corrente media al disotto di 0.8 ma/µm. Nel nostro caso, la linea principale porta una media di circa 4 ma, ottenuta dividendo la potenza media dissipata per Vdd, e quindi supponendo conservativamente che 3 ma vadano alla parte IIR si ottiene che ciascun blocco assorbe 3 / 12 = 0.25 ma; le piste orizzontali che vedono 3 blocchi di seguito porteranno 0.75 ma, richiedendo meno di 1 µm di larghezza. Il conduttore esterno va allargato almeno a 4 / 0.8 = 5 µm, come già indicato, e ciò non provoca comunque problemi. Riportiamo qui uno schema inerente l intero circuito del filtro, che mostra l uso della metallizzazione 2 per le alimentazioni e per eventuali percorsi di segnale (la parte IIR è in basso, e la FIR in alto), evidenziando per quanto possibile la struttura a pettine: Figura Livello di metallizzazione 2 del circuito; sono visibili le interdigitazioni della rete di alimentazione e nella parte IIR in basso anche i percorsi principali dei dati
270 Floorplanning e layout in tecnologia BiCMOS - Cap Distribuzione del clock La disposizione dei semi-latch, che per costruzione si devono trovare sul percorso dei segnali, obbliga a portare il clock all interno del blocco. La prima metà del latch completo è sulle due colonne verticali di sinistra per il bit Sy, e sulla penultima colonna da destra per il bit Sx; la seconda è centrale e prevede due porte NOT doppie (a PMOS ripiegati) e due tx-gate a seguire. I segnali locali e quelli globali utilizzano già metal 1 e metal 2; i percorsi dei carry, che sono verticali e devono viaggiare da una cella alla sottostante, hanno l unica possibilità di essere trasmessi lungo la metal 3, che peraltro è poco resistiva e meno capacitiva degli altri livelli di conduttori. Al routing del sincronismo va quindi aggiunta anche una connessione verticale di segnale che blocca orizzontalmente i percorsi in metal 3, che originariamente si pensava di riservare solo al clock. La distribuzione ad H, quaternaria, che si immaginava di poter utilizzare senza problemi per la parte IIR va dunque modificata (back-annotation): i tratti orizzontali vanno spostati all esterno dell intera sezione IIR, e la rete del clock diventa quindi (l incrocio di linee scure visibile è il sistema di coordinate proprio dell editor di layout Opus):
271 Floorplanning e layout in tecnologia BiCMOS - Cap.5 Figura Rete di distribuzione del clock; si nota l accorgimento di egualizzazione dei ritardi per la sezione FIR, e la struttura simmetrica da 16 rami per la IIR; all interno delle 12 celle il clock permane comunque condotto in metallizzazione 3 in cui gli 8 rebbi orizzontali, 4 su una fila e 4 opposti, costituiscono la nuova conformazione dell albero trasmissivo, ossia la rielaborazione della struttura ad H da cui si era partiti per affrontare il problema; la simmetria dei percorsi globali di trasmissione del sincronismo è comunque conservata. Il dimensionamento delle linee di distribuzione del clock è cruciale per il buon funzionamento di un circuito a cui sia richiesta la velocità di 200 MHz:
272 Floorplanning e layout in tecnologia BiCMOS - Cap.5 le perturbazioni di tipo induttivo sono già state trattate al Capitolo 4; per mantenere valide le conclusioni tratte a suo tempo basta che le induttanze messe in gioco dalla topologia della rete in metal 3 non superino i 20 nh, valore molto difficile da raggiungere con percorsi metallici integrati il problema dell elettromigrazione non si presenta, perchè il flusso di corrente è assolutamente bidirezionale per il segnale di clock le considerazioni di caduta del tipo R I prevedono picchi di 6 ma stavolta; la struttura è regolare, ma ad albero, e quindi si deduce una lunghezza massima del percorso che raggiunge i 776 µm dall ingresso ad uno dei rami terminali (le metal 3 locali sono pilotate dai buffer previsti nello schematico per ogni cella); supponendo per la metal 3 un valore di 0.03 Ω/, si può calcolare la caduta in modo preciso tenendo conto delle biforcazioni della corrente e dei cammini che ogni corrente percorre: V=[3mA ( ) µm ( ) ] / (lato ) 0.03Ω = (1714 ma µm / lato ) 0.03 Ω Con la larghezza minima della metal 3 (1.4 µm) si ottengono circa 37 mv di caduta ohmica, tranquillamente accettabili. un aspetto ulteriore riguarda i ritardi di tipo RC che il clock subisce. La stima eseguita nel paragrafo 4.19 per la C totale vista dal clock riportava 629 ff, ed era attendibile; cautelativamente considerando il doppio, 1.2 pf, e dividendo per 12 blocchi si hanno 100 ff per ogni carry-select; una linea metal 3 da 776 µm conta per 9.50 ff 776/100 = 73.7 ff, ed accumulando la capacità tutta al nodo terminale si stima, con 1.4 µm dilarghezzadi linea: t skew = ff 776 µm/1.4 µm 0.03 Ω = ff 16.6 Ω = 2.88 ps di polo introdotto; anche se il ritardo vero giungesse a 10 ps non darebbe fastidio. Probabilmente però la linea del clock, essendo accoppiata a molte metal 2 sottostanti (soprattutto le alimentazioni) ha una capacità parecchio superiore, ed un allargamento almeno dei primi rami dell albero di distribuzione è raccomandabile, almeno a 5 µm se non oltre
273 Floorplanning e layout in tecnologia BiCMOS - Cap.5 La parte IIR completa è infine la seguente, in cui si nota la regolarità conferita dall uso dei dodici blocchi carry-select + look-ahead + carry save uguali; i sommatori sono composti dalle colonne di 4 celle, e si susseguono per riga. Figura Layout completo della parte IIR
274 Floorplanning e layout in tecnologia BiCMOS - Cap Layout della sezione intermedia del filtro La parte intermedia del circuito non presentava particolari difficoltà realizzative; si è trattato di realizzare il registro di risincronizzazione dei dati dopo il pipe-line, ed il divisore di frequenza del clock. Il registro è una normale batteria di 4 celle del tipo latch a NOT+TX.GATE, disposte in modo da ricevere i dati sopraggiungenti da sinistra in metal 2; al solito la cascata del negatore con la tx.gate è stata compattata, e si sono ripiegati alcuni PMOS particolarmente voluminosi. La struttura compare a sinistra della figura seguente: Figura Sezione intermedia del filtro decimatore; sulla sinistra si nota il registro di risincronizzazione da 4 celle, e sulla destra il divisore di frequenza 4:
275 Floorplanning e layout in tecnologia BiCMOS - Cap.5 Dato che i bit Z0,Z1 sono parecchio più in alto dei bit Z2 e Z3, il driver per il registro ha trovato posto a metà della colonna sinistra; i segnali di clock, diretto e negato, vengono trasmessi alle celle mediante le linee verticali in metal 2 posizionate al centro della colonna. Il divisore di frequenza era costituito da due anelli di invertitori e tx-gate, a destra nella figura; i due anelli sono identici e ben distinti, e comunicano tra di loro sempre grazie ad una pista verticale in metal 2. Ogni catena di negatori è chiusa naturalmente da un linea che passa sopra alle tre porte. Con le tre fasi del clock, quella originaria e le due divise, si genera il segnale SYNC che comanda il registro di decimazione del filtro; apprezzammo nel Capitolo 4 l importanza delle fasi relative delle tre onde quadre, quindi bisogna evitare di far subire loro degli skew su linee troppo lunghe: SYNC va generato in loco. La porta NAND a 3 ingressi necessaria è anch essa a metà delle colonne; ne presentiamo uno zoom: Figura Particolare della porta NAND da 3 ingressi per la generazione del sincronismo di decimazione SYNC I transistori PMOS erano grandi; avendo spazio orizzontale lasciato a disposizione sia dal registro che dal generatore di fase li si è suddivisi in due parti in parallelo, che condividono con gli NMOS i gate rettilinei (le capacità parassite della singola porta interessano relativamente in questo frangente). La disposizione degli NMOS è una traduzione diretta del concetto di piramide introdotto parlando delle connessioni in cascata di transistori; il più vicino all uscita è il più piccolo dei tre. Si nota anche l effetto della design
276 Floorplanning e layout in tecnologia BiCMOS - Cap.5 rule secondo cui la zona attiva di un MOSFET deve estendersi fino ad almeno 1.8 µm dalgate relativo, il che non consente di compattare fino ad 1 µm le distanze tra il polisilicio Layout della sezione FIR: sottrattori con celle a pitch minimo La parte FIR del circuito comprende i sottrattori Manchester, che già si era deciso di allungare orizzontalmente. I registri sono composti da 8 fette che conferiscono al layout un aspetto molto regolare: Figura Sottrattore Manchester rigenerato, con 8 celle verticali e due stadi di buffer della catena di riporto (dopo il bit 2 ed il bit 4, da sinistra) La velocità operativa è calata a 50 MHz, in questa sezione, quindi si ha maggiore libertà nella scelta delle geometrie e nell uso delle piste di interconnessione. Dovendo disegnare delle celle non perfettamente identiche, a causa dell inversione di logica e di fasi per i due bit centrali 3 e 4, la cella è stata progettata guardando al caso peggiore: le fette in cui la XOR iniziale è stata bufferizzata per evitare le iniezioni di carica a monte del sottrattore. Le altre celle stavolta non hanno delle porte collegate a Vdd o GND, ma lasciano spazio all inserimento dei contatti alle well che in taluni casi possono anche essere raggruppati in numero ragguardevole, sia per le n-well che per il substrato. Anche per questo dispositivo si nota l alternanza di Vdd e GND che consentirà di spartire le alimentazioni con i registri senza dover duplicare le ultime linee: in alto ed in basso c è sempre Vdd. Le sacche sono ancora ben
277 Floorplanning e layout in tecnologia BiCMOS - Cap.5 compatte, senza interruzioni di sorta, rispetto ai blocchi IIR però la n-well centrale è più frastagliata; questo è dovuto alla presenza dei multiplexer interni delle porte XOR, che hanno dimensioni particolari e che sono stati comunque disposti in verticale per rispettare il pitch impostoci orizzontalmente. Non necessitando di alimentazione propria, questi interruttori sono anche stati fatti scorrere al disotto delle linee di alimentazione, invadendo lo spazio al di là del loro binario Vdd/GND; è un accorgimento affatto inusitato in un progetto a CMOS, ma la particolarità della situazione lo rende lecito: Figura Particolare di due slice, una precaricata e l altra (a destra) prescaricata, con buffer invertenti intermedi
278 Floorplanning e layout in tecnologia BiCMOS - Cap.5 Sono qui mostrate le slice di tipo pre-carica (A2 e B2) e pre-scarica (A3 e B3), nell ordine. Dall alto, si notano: - la porta XOR, realizzata stavolta partendo dai blocchi elementari, negatori e multiplexer, tutti comunque realizzati allungando i transistori verso l alto. La connettività necessaria implica l uso di metal 1 tirate in verticale; il segnale B2 andrebbe anch esso portato alle porte su una pista di metallo, ma per mantenere stretto il passo orizzontale tra le due NOT in alto lo si fa scendere su polisilicio. Le ridotte prestazioni in termini di velocità consentono adesso queste ottimizzazioni; la pista di policiuro in effetti percorre un tratto abbastanza lungo, ma ciò non dà preoccupazioni in questa sede; - la porta NOR, per la prima slice, e corrispondentemente la porta NAND per la seconda, che fanno parte dello stadio di ingresso del sottrattore; - il blocco precaricato; si notino le dimensioni maggiorate della pista del riporto in metal 1, per abbattere la resistenza del percorso. I due NMOS in serie seguono il principio del dimensionamento a piramide, già visto altrove, e sono fusi minimizzando così la capacità intermedia; sempre in questa fascia orizzontale si ha l invertitore del riporto, nella zona della fetta B3 ed A3, ed il pass-transistor PMOS che lo segue; - in basso è presente la porta XOR della sezione di uscita, che come enunciato in precedenza fa uso di un cavallotto metallico in sede di multiplexing finale dei due dati. In questa area del circuito inoltre si nota la presenza di un numero maggiore di contatti, che qui hanno trovato uno spazio molto superiore che non nella parte IIR, più veloce e quindi impaccata al massimo; li si nota nei rettangoli violacei in alto ed in basso, ed in gruppi irregolari rosacei sul substrato centrale Layout della sezione FIR : i registri a pitch minimo I registri di memorizzazione del segnale sono stati progettati quindi in modo da alloggiare all interno di ciascuna fetta, fondendo il maggior numero di diffusioni possibile. A prezzo di maggiore occupazione verticale li si sarebbe potuti allungare in quella dimensione; invece l economia di area che è risultata dal merge tra NOT e tx-gate ha consentito di disegnarli nel seguente modo (le uscite si affacciano direttamente alle linee A e B del sottrattore, che è disposto verticalmente anch esso, in realtà):
279 Floorplanning e layout in tecnologia BiCMOS - Cap.5 Figure Doppio registro da 8 bit (di memorizzazione, e per l esecuzione di 1 - z -1 )e particolare della cella latch costitutiva, specchiata e con diffusioni condivise
280 Floorplanning e layout in tecnologia BiCMOS - Cap.5 La distribuzione verticale dei latch, nella figura a sinistra, mostra lievi allargamenti in corrispondenza della presenza degli invertitori di rigenerazione della catena Manchester; dall alto, 3 celle - 2 celle - 3 celle è la successione contigua, infatti. Le porte in cima alla colonna sono i driver del registro. Il particolare a destra mostra come anche le porte NOT siano state parzialmente compenetrate, nei contatti alle alimentazioni, guadagnando i micron decisivi per rispettare il passo imposto dal sottrattore; l uso della metal 2 per le connessioni consente impaccamenti del genere, ed i contatti possono essere ancora aggirati con il polisilicio senza problemi di design rule. Clock e clock negato sono distribuiti in parallelo, e simmetrizzati il più possibile nel momento in cui si spicca il polisilicio che piloterà l interruttore. Si noti peraltro come l ordine di significatività dei dati sia crescente verso il basso, e quindi come i ritardi della catena Manchester si accumulino in tale direzione; è importante allora condurre anche il clock in quel verso, portandolo dall alto in modo tale che esso subisca ritardi in analogia ai dati, e che quindi i latch non vengano per errore pilotati in anticipo rispetto all arrivo effettivo del dato. La simmetria ternaria della parte FIR ha costretto ad utilizzare una distribuzione del sincronismo a tridente, come illustrato in figura 5.20; il ritardo sul lato centrale è stato egualizzato ai laterali mediante l aggiunta di diversioni di lunghezza appropriata. Dal punto di vista induttivo e dell interferenza tale accorgimento è discutibile, trovandosi sopra delle celle, ma la velocità ridotta della sezione ne consente l uso. Ciascun ramo della metal 3 giunge ad un invertitore, che poi a sua volta pilota i tre buffer invertenti relativi al sottrattore ed ai due registri di sua competenza. Le porte NOT dell albero di routing del clock erano di dimensioni anche ragguardevoli; allora, per risparmiare spazio in direzione verticale, le NOTx3 sono state divise in tre NOT unitarie in parallelo, poi disposte per lungo in cima alla struttura FIR; ne risulta un blocco monolitico, modulare e ben compatto che sfrutta tutto lo spazio a disposizione mediante gli specchiamenti opportuni: Figura Serie ternaria di driver per i registri e per i sottrattori, con passo verticale minimizzato
281 Floorplanning e layout in tecnologia BiCMOS - Cap.5 situato appunto in alto, rispetto alla serie di sottrattori e registri disposti verticalmente. Lo si nota sul lato destro del blocco totale FIR, qui ruotato di 90 per comodità di visualizzazione nella figura seguente: Figura Layout completo della sezione FIR
282 Floorplanning e layout in tecnologia BiCMOS - Cap.5 Presentiamo infine una figura da cui si apprezza la contiguità delle well, che derivando dalla disposizione interdigitata (a pettine) delle alimentazioni si è riusciti agevolmente a mantenere: Figura Panoramica sulla posizione delle n-well nel circuito Risultato finale e corrispondenza con le previsioni In conclusione, a proposito della metodologia di layout in generale si può affermare di aver seguito un misto tra i due approcci opposti: a volte il posizionamento delle porte è stato conseguente a quello delle piste, deciso a priori; a volte è successo l opposto, ossia (più classicamente) piazzati i transistori si è proceduto alla fase del loro collegamento
283 Floorplanning e layout in tecnologia BiCMOS - Cap.5 Il filtro decimatore nella sua versione conclusiva si presenta quindi così: Figura Layout completo del filtro decimatore progettato
284 Floorplanning e layout in tecnologia BiCMOS - Cap.5 e se ne possono osservare le dimensioni. A tal proposito, nel Capitolo 4 si era azzardata una previsione di un 30% di risparmio di area che l uso dei sottrattori Manchester avrebbe consentito di ottenere; è sulla base di tale parametro che si scelse questo tipo di blocco aritmetico. Ebbene, a lavoro fatto si deduce che il risparmio di area previsto è stato rispettato, e con ottima approssimazione; infatti: area IIR = 428 µm 357 µm = µm 2 area FIR = 375 µm 268 µm = µm 2 L area è inferiore per la sezione FIR; va confrontato con un valore di occupazione che è circa analogo a quello precedente, IIR, aventesi nel caso di implementazione a sottrattori veloci; il risparmio percentuale si quantifica con: area FIR / area IIR = (area IIR - area FIR)/area IIR = / = 34% Fasi post-layout : estrazione del circuito, LVS e calcolo di alcuni parametri caratteristici dei circuiti digitali Terminata la fase di stesura del disegno di un circuito, e verificatane la consistenza con le regole di layout tramite le routine di DRC, occorre controllare la congruenza del progetto ultimato con lo schematico che si voleva tradurre. La fase di verifica dell isomorfismo tra layout e schematico però ha bisogno di lavorare su due grafi affini; lo schematico può essere tradotto in un grafo con relativa facilità, prendendo ogni transistore MOSFET, usandone i 4 terminali come vertici e tenendo conto della topologia delle connessioni per determinarne i lati; il layout deve passare attraverso uno stadio intermedio, cosiddetto di estrazione del circuito. I transistori disegnati vengono riconosciuti, sia come tipo che come dimensioni (W, L,...), dall estrattore; non solo, ma anche le capacità parassite Cgb, Cdb, Csb, Cgs di overlap, etc. che erano state valutate precedentemente solo sulla base di stime più o meno corrette, ora possono essere calcolate con grande precisione. I loro valori derivavano infatti da computi in cui contavano l area ed i perimetri delle diffusioni; ora che ogni aspetto geometrico, standard
285 Floorplanning e layout in tecnologia BiCMOS - Cap.5 oppure customizzato, è stato definitivamente deciso, diventa possibile valutare i parametri parassiti in maniera definitiva; e questo anche in relazione alle connessioni tra i dispositivi, i cui parassiti costituivano l unico dato fondamentale mancante negli apparati di simulazione dello schematico. L output di questa procedura è sia grafico che testuale; interessiamoci prima al file risultante, da cui si nota:... C729 B7 VDD C730 B7 GND C719 B7 N108 C723 B7 N e e e e-16 (valori in Farad) per le capacità afferenti al nodo B7, che è poi un ingresso; i valori ottenuti per le capacità di accoppiamento con le alimentazioni sono giustamente preponderanti, dato che la linea B7 è un tortuoso percorso in polisilicio che incrocia più volte Vdd e GND. Per i componenti attivi:... M229 N106 N94 N92 GND EN3 W=4.4e-06 L=0.7e-06 AD=1.1e-11 AS=1.1e-11 PD=9.4e-06 PS=9.4e-06 M230 N93 N92 GND GND EN3 W=2.2e-06 L=0.7e-06 AD=5.5e-12 AS=3.08e-12 PD=7.2e-06 PS=2.8e (valori in m e m 2 ) in cui, oltre ai 4 terminali nodali ed al modello utilizato (EN3, ambedue sono NMOS di tipo Level 3), sono mostrati i valori di Area Drain ed Area Source, Perimetro Drain e Perimetro Source; M230 in effetti ha Source e Drain asimmetrici, perchè il Source è condiviso (sulla sinistra, nella prossima figura). L output grafico dell estrattore è altrettanto eloquente:
286 Floorplanning e layout in tecnologia BiCMOS - Cap.5 Figure Output grafico dell estrattore di circuiti, con indicate le piste principali ed i componenti parassiti estratti (oltre al transistore) Una volta che anche il layout è stato tradotto in uno schematico equivalente, altri programmi (gli LVS, Layout Versus Schematic) completano l opera di confronto tra i due grafi; e l operazione va ripetuta, correggendo le incongruenze, finchè le due reti non vengono dichiarate identiche. Da quanto detto si evince che il circuito estratto è in teoria l unica rete davvero valida per eseguire le simulazioni preliminari ad una implementazione fisica, su silicio, del filtro; ma si tenga anche conto del numero di capacità che compaiono in una rete del genere! Ogni MOSFET ne introduce almeno 4o5;eperogniincrociotraduepistesihailrelativo condensatore di accoppiamento. Ne deriva un impossibilità pratica, con i mezzi a nostra disposizione, di eseguire queste ulteriori simulazioni conclusive. In qualità di esempio basterà ricordare che nel caso del singolo sottrattore Manchester disegnato al paragrafo 5.14 da cui le tavole precedenti sono state tratte, dopo l estrazione si ricava una lista di componenti che conta ben 244 transistori, e 730 capacità parassite! L estrazione del circuito intero del decimatore fornisce quindi il numero di transistori totale: sono 3173, con oltre condensatori parassiti. A questo punto si può allora
287 Floorplanning e layout in tecnologia BiCMOS - Cap.5 calcolare un parametro che riveste di solito parecchia importanza, nei progetti digitali: il fattore di regolarità del chip (Lattin, 1979), che si calcola come: N totale transistori Fattore di regolarità = = N transistori disegnati individualmente 3173 = = 74( carry select ) + 38( Manchester ) + 8( cella latch FIR ) + 36( sezione int ermedia ) 3173 = Il calcolo effettuato non è da prendere alla lettera. Vero è che, soprattutto nella parte FIR, la modularità delle bit-slice Manchester (disegnate circa 2 celle su 3 8 = 24, ossia le celle a pre-carica ed a pre-scarica) e delle celle dei registri (disegnata una cella, ripetuta poi 7 8 = 56 volte) contribuisce molto ad alzare il parametro; la parte IIR poi conserva poi una ripetitività 12 (disegnata 1 cella carry-select, appositamente ridondante, da ripetere 4 volte per ogni sommatore, per 3 sommatori); però si tratta solamente di un indice riferito ai transistori, e non al lavoro svolto per connetterli. Magari esistono zone del circuito in cui la configurazione dei dispositivi è la medesima, ma la direzione di arrivo del segnale cambia, e quindi anche tutta la topologia di routing (tracciamento dei percorsi connettivi) delle piste ha dovuto essere rivoluzionata. Tenendo conto di quest ulteriore contributo di lavoro del progetto, il fattore di regolarità tende piuttosto ad avvicinarsi a 3; è l ordine del comb filter, ossia è la cifra complessiva che descrive il grado di ripetitività del circuito; è quel vantaggio finale che in fase di scelta architetturale si era previdentemente deciso di mantenere, evitando di de-strutturare lo schema a blocchi ricorrendo magari all implementazione diretta del filtro, con sommatori diseguali. Come termine di paragone si tenga presente che solo recentemente i valori di questo fattore hanno superato 10; e per giunta grazie all introduzione di tecniche automatiche di progetto, qui non utilizzate, come gli algoritmi di Place & Route (Geiger- Allen-Strader,[19],pag.783). Un utile confronto si ricava con i dati riportati da Dijkstra, al riferimento ([8]): la funzione di trasferimento realizzata è la medesima, ed egli utilizza però aritmetica distribuita per la parte FIR, reputandola meno onerosa in termini di occupazione, e più flessibile (il filtro implementato nell articolo citato vanta infatti un fattore di decimazione programmabile). Così facendo utilizza 7800 transistori, oltre il doppio di quelli qui utilizzati; il paragone non può
288 Floorplanning e layout in tecnologia BiCMOS - Cap.5 essere esteso ad altri parametri più fisici come il consumo, stante la differenza di tecnologia adottata che era a 3 µm nel caso citato; ma conserva un certo valore indicativo. Sempre dai dati aggregati riportati sopra si ricava un altro parametro utile per valutare il lavoro svolto: il numero di transistori effettivamente disegnati in un giorno. Trascurando il lavoro di aggiustamento delle interconnessioni e di posizionamento dei contatti alle well (!) e considerando soltanto il numero di componenti attivi progettati ex-novo, si otterrebbe: 156 Transistor / giorno = = dato che il periodo di layout si è esteso per circa un mese. Uno studio di C.F. Fey del 1989 stima tra 6 e 17 l intervallo di variabilità per questo parametro; ed in effetti la stima effettuata è un poco ingenerosa, perchè come per il parametro di regolarità riferirsi ai soli 156 transistori è una stima per difetto del lavoro compiuto
289 Vettori di test e diverse verifiche di funzionamento - Cap. 6 Capitolo Vettori di test e diverse verifiche di funzionamento La conclusione del progetto prevede la verifica del funzionamento del decimatore progettato, sia dal punto di vista funzionale che dal punto di vista circuitale. Il primo controllo consiste nel confronto, ad alto livello, delle uscite ottenute dal circuito con le previsioni generate mediante programmi in linguaggio Matlab; la seconda disamina consiste nei test di prova in condizioni di alta temperatura, tensione di alimentazione ridotta rispetto al caso nominale, e casi critici dei dispositivi prodotti dalla tecnologia (worst corner). Vengono inoltre tratte le conclusioni del lavoro svolto, e suggeriti possibili sviluppi futuri Uso di Matlab per il controllo delle sequenze binarie Nella moderna elettronica digitale la fase di test del circuito prodotto va acquisendo un peso sempre maggiore; è sembrato opportuno allora inserire un capitolo finale dedicato alle tecniche utilizzate per controllare il comportamento del circuito progettato. Nel Capitolo 4 sono state presentate molte simulazioni, soprattutto di sottosezioni del circuito completo; spesso i segnali in gioco in ogni grafico incluso sono molti, trattandosi magari di uscite binarie ad 8 bit di un qualche registro, e verificare la
290 Vettori di test e diverse verifiche di funzionamento - Cap. 6 correttezza dei transitori non risulta proprio immediato; solo in un occasione si è fornita anche una stampa dell uscita di un byte suddivisa nelle 8 linee componenti. Trattandosi di elaborazioni intermedie, inoltre, non si può capire come la simulazione sta evolvendo solo dall andamento di alcuni bit chiave (magari i più significativi); questo diviene lecito solo per l uscita globale del decimatore, visto che si sa solo quale è l effetto del filtraggio completo sulla sequenza di input. Un controllo dell esattezza del calcolo in via di svolgimento nel decimatore poteva appoggiarsi soltanto su una simulazione analoga, svolta a priori al calcolatore, che mostrasse l intera successione dei valori binari come avrebbero dovuto presentarsi nei vari. stadi intermedi. Ricordiamo infatti che nell Appendice 2 si trovano dei listati di routine in grado di simulare il comportamento del decimatore anche da un punto di vista squisitamente binario; erano servite in un primo tempo per scegliere l aritmetica ed il numero di bit da usare, ma poi con una piccola aggiunta si dimostrano ottime per produrre le sequenze binarie corrette da confrontare con i grafici. La procedura in questione da usare è DECRICOR.M, modello dell implementazione ricorsiva del filtro; basta predisporre una funzione supplementare per il salvataggio dello stato dei registri ad ogni iterazione, e si dispone della stringa binaria esatta in ogni punto dello schema. Il file di testo prodotto è una successione di linee di questo tipo, in cui si riconoscono gli stati iniziali dell accumulo di ingressi del tipo Iterazione N^ IIR : Iterazione N^ IIR : Iterazione N^ IIR : Iterazione N^ IIR : FIR : latenza del campionatore : IIR3 - ritardo - FIR
291 Vettori di test e diverse verifiche di funzionamento - Cap Iterazione N^ IIR : Iterazione N^ stato del sistema ai 320 ns IIR : Iterazione N^ IIR : FIR : uscita già assestata al valore = Iterazione N^ IIR : Iterazione N^ stato del sistema a fine simulazione, 800 ns IIR : FIR : uscita sempre costante, al valore Ogni 5 ns viene aggiornato lo stato dei 3 registri IIR; ed ogni 4 transizioni, a decimazione avvenuta, si provvede a rinfrescare il contenuto della triplice parte FIR del circuito
292 Vettori di test e diverse verifiche di funzionamento - Cap Simulazioni complete di casi critici L esempio illustrato fa capo alla serie di test eseguiti sul circuito con l ingresso alternato ; esso ha consentito di scoprire delle debolezze nella prima realizzazione dello schema (paragrafo 4.9), poi sistemate opportunamente ottimizzando alcuni parametri circuitali; la sequenza è probante perchè obbliga le porte di ingresso a commutare continuamente le loro capacità, magari non cambiando stato ma introducendo delle spurie che danno fastidio alla rete. L uscita finale attesa è una costante: la sequenza può infatti essere vista come la costante 1.5 più la sinusoide, campionata a frequenza di Nyquist, ; ma il decimatore ha una risposta in frequenza nulla per ω = π, e quindi rigetta la sinusoide conservando solo la costante moltiplicata per il suo guadagno, che vale 4 3 = 64: l uscita finale è = 96. Figura Risultati binari delle parti IIR e FIR con ingresso Nelle uscite F0..F7 si può riconoscere la sequenza riportata come terzo byte della serie IIR del file presentato; O0..O7 invece rende conto del funzionamento totale (costante) del circuito, con relative transizioni spurie iniziali dovute alla latenza prevista; e non solo, ma i primi transitori sono imperfetti anche a causa di problemi numerici del simulatore. Il circuito progettato, dato che fa uso di anelli numerici al suo interno, in fase
293 Vettori di test e diverse verifiche di funzionamento - Cap. 6 di decisione iniziale del punto operativo necessita addirittura di un aiuto alla convergenza; tutti i processi di test riportati in questo lavoro di tesi partono da uno stato iniziale a metà dinamica, 1.5 V, imposto ad imperio in fase di pre-processing. A volte la simulazione addirittura si blocca, a causa di queste difficoltà; il numero di iterazioni che deve essere concesso al programma per arrivare ad un risultato finale è spesso assai elevato. D altra parte, anche un passo temporale massimo tra un punto ed il successivo della simulazione va imposto; e nemmeno troppo esteso, perchè talune transizioni hanno avuto esito diverso a seconda della precisione con cui la simulazione è stata impostata. L ingresso a bit alternati è stato prescelto, come le altre sequenze di bit (stavolta costanti), anche perchè dovendo specificare manualmente la successione delle tensioni ai pin S_D0 ed S_D1 non si può praticamente fare altro. Purtuttavia, pure le prove eseguite con input costanti hanno mostrato un certo grado di efficacia nel provare la rete disegnata, nella fattispecie durante i transitori di cambio di significatività del byte: I risultati intermedi sono stati mostrati spesso in precedenza, per esemplificare dei malfunzionamenti poi corretti; le uscite dell intera rete sono però inedite, e vengono proposte ora per il caso di configurazione a sottrattori veloci (con latenza 4; i transitori iniziali non hanno pesato, in questo caso): - costante in ingresso 1: l uscita sarà costante pari a 64, cioè , ed infatti si osserva il bit O5 scendere mentre O6 sale: Figura Uscita del decimatore con ingresso costante pari a 01 - costante in ingresso 3: l uscita sarà il massimo possibile per il decimatore, cioè 192, alias in binario ; il bit O6 sale quasi contemporaneamente alla discesa di O5:
294 Vettori di test e diverse verifiche di funzionamento - Cap. 6 Figura Uscita del decimatore con ingresso costante pari a 11 Il simulatore ST-Spice consente l uso di due differenti livelli di complessità per compiere le simulazioni: i cosiddetti Level 1 e Level 3. Il primo ha connotazione più teorica, e descrive il comportamento dei dispositivi MOSFET come prodotto da una serie di leggi fisiche fondamentali che legano la mobilità, i livelli di drogaggio, le densità di stati di interfaccia, le velocità limite, i coefficienti di ionizzazione, etc. ; il secondo ha carattere più empirico e descrive il transistore come retto da un numero inferiore di equazioni, che ne approssimano il funzionamento misurato (in gergo, caratterizzato) grazie ad alcuni parametri di fitting determinati sperimentalmente. La differenza principale risiede nel comportamento in zona di saturazione: il livello 1 ammette valori variabili per r o, mentre il livello 3 assume costante ovunque il valore determinato al ginocchio della caratteristica. Il livello da noi utilizzato è sempre stato il Level 3, che consente tempi-macchina circa 20 volte inferiori al Level 1; l errore medio che ci si attende è del 7.7%, contro il 3.7% del Level 1 (si confronti ST-Spice User s Manual, [33]). Dovendosi simulare una rete digitale abbastanza estesa si tratta praticamente di una scelta obbligata; una precisione estrema del resto non è richiesta, basta che le commutazioni tra 0 ed 1 vengano eseguite con sufficiente dettaglio da consentire di capire se sono a rischio o meno (nel qual caso si cambia il passo di simulazione e si ripete il tutto)
295 Vettori di test e diverse verifiche di funzionamento - Cap Sintesi del macromodello di un modulatore Sigma-Delta del 2 ordine Le prove eseguite scegliendo direttamente le sequenze binarie S_D0 ed S_D1 sono valide per stimolare particolari comportamenti circuitali del sistema; essendo input pensati a basso livello però non permettono di apprezzare il funzionamento del filtro decimatore nella sua globalità, inserito nella catena di conversione Sigma-Delta. Per eseguire la validazione del progetto è necessario procedere infatti anche ad una simulazione a livello funzionale del decimatore, provando a fargli filtrare la modulazione di una sinusoide, o di una rampa di tensione, ad esempio. La versione dell ambiente Opus a disposizione purtroppo non supporta funzioni del tipo behavioural, blocchi descritti da linee di codice che il simulatore potrebbe eseguire come fossero routine sul tipo di quelle già usate nel Capitolo 2. Ciò implica da una parte l obbligo di usare il simulatore in modo analogico, facendo svolgere l analisi dei transitori in maniera accurata, ma fin troppo lenta e dettagliata ora che il progetto è concluso sul versante elettronico; d altra parte ci priva di una basilare tecnica per simulare anche il modulatore a monte, e provare così la catena intera. Il problema sta proprio nel procurarsi la sequenza di-binaria uscente dal modulatore nei casi reali oggetto di test, e nel fornirla in ingresso ad ST-Spice; le uscite su file del tipo Istante temporale X Valore di tensione al nodo Y standard tipico sia di TOSCA che di Matlab, non sono purtroppo accettate dal simulatore. Proprio l importanza attribuita oggidì al testing, e più che mai in questo settore di DSP digitale (se ne ha riprova per esempio nell articolo di Sköld-Ayani,[34], sui linguaggi di simulazione digitale HDL), ha motivato però lo sforzo di progettare anche un macromodello circuitale per il modulatore Sigma-Delta. In mancanza di meglio, i mattoni elementari disponibili sono: componenti ideali : resistori e capacità, diodi transistori
296 Vettori di test e diverse verifiche di funzionamento - Cap. 6 generatori comandati, di ogni tipo (VCCS,VCVS,CCCS,CCVS = Current Controlled Voltage Source) macromodelli di amplificatori operazionali, con dinamica di uscita saturata e con guadagni variabili Il modello di convertitore Sigma-Delta deve prevedere due anelli di integrazione, con relativi blocchi di somma, sottrazione e memorizzazione dei risultati; nonchè un quantizzatore da 4 livelli, ed un blocco di conversione dai 4 livelli ai 2 bit in uscita. Il tutto con tensioni 0-3 V e possibilmente fronti di commutazione in output da 0.3 ns (analoghi a quelli del clock), sincroni al clock di sistema. Posto il problema, le soluzioni hanno richiesto molto tempo per essere individuate; alla fine del lavoro si è giunti ad avere: Figura Schematico a blocchi del macromodello di modulatore Sigma-Delta del 2 ordine realizzato - sommatori e sottrattori costruiti con generatori comandati VCVS; essi possono infatti essere comandati da più ingressi in combinazione, mediante un polinomio V 0 =a+(b V 1 +c V ) + (d V 1 2 +e V 1 V ) +... dacuisihaunaddizionatoreconb=c=1,unsottrattoreconb=-c=1,edun moltiplicatore con e = 1 (essendo nulli i coefficienti qui non esplicitati)
297 Vettori di test e diverse verifiche di funzionamento - Cap. 6 - un quantizzatore con struttura tipica del convertitore Flash (privo di encoder), senza nemmeno dover predisporre la rete di resistori per dividere la tensione: Figura Quantizzatore di tensione Le tensioni al suo ingresso sono limitate da un apposito opamp saturato tra 0 e 3V, a guadagno unitario. Le soglie sono posizionate direttamente in tensione, a 0.5 V, 1.5 V e 2.5 V come necessario nel nostro caso (si veda la Figura 1.9). Gli amplificatori fungono da comparatori, avendo limitazioni a 0V - 1V ed avendo guadagno sufficiente a scattare in modo abbastanza secco quasi sempre; alcuni livelli di tensione in ingresso mettono però in crisi questo sistema, perchè il prodotto (V in - V soglia ) Gain non fa saturare l amplificatore, e la quantizzazione resta a mezz aria; ma alzare ulteriormente i guadagni provoca problemi di convergenza, e comunque i casi critici sono abbastanza rari. La somma di tensioni in uscita ritraduce in analogico il segnale 111 3, 011 2, od ancora 000 0, come se la serie di decisioni 1 prese dai comparatori rappresentasse una colonna termometrica, esempio tipico in questi casi. Altri metodi di conversione, basati sulla carica controllata di capacità fino a livelli prestabiliti (quantizzati), o su successioni sincrone di confronti dell ingresso con i livelli discreti medesimi, si sono rivelate meno semplici ed efficaci. - i latch sono stati realizzati con un sistema apparentemente cervellotico, ma in realtà pressocchè obbligato. Il modulatore ha infatti bisogno di una precisione sufficiente nella memorizzazione degli errori, per funzionare in modo proprio; ciò significa che l intervento del clock feed-through non deve incidere sui segnali in maniera apprezzabile
298 Vettori di test e diverse verifiche di funzionamento - Cap. 6 Strutture del tipo interruttore + capacità, che sono in linea di principio il cuore di un Sample & Hold, non si rivelano idonee: o risentono dell iniezione di carica, perchè le capacità di memoria sono troppo piccole; oppure hanno pass-transistor troppo piccoli e capacità grandi, ed allora non riescono ad assestarsi velocemente nei 5 ns a disposizione. Nemmeno l uso di interruttori a transmission-gate migliora la situazione, perchè l effetto del feed-through viene compensato solo in parte al nodo di uscita e permane inaccettabile; nè serve adoperare configurazioni reazionate, del tipo S/H, che conservano problemi di stabilità numerica che le rendono inutilizzabili; si tratta di abbandonare completamente l uso dei transistori MOSFET, e con essi degli interruttori in generale. Un latch senza interruttori potrebbe ad esempio essere realizzato così: 1=LATCH Vin R R Vout C C =IN SFASAMENTO 1/2 ciclo Figura Primo tentativo di realizzare un latch privo di interruttori, e quindi scevro da clock feed-through Il filtro RC è indispensabile per evitare l indeterminazione del sistema (si creerebbe un loop numerico istantaneo), ma può essere un polo velocissimo, da 10 ps. L inconveniente risiede piuttosto nell imperfezione dei moltiplicatori, che essendo saturati non forniscono uno 0 perfetto nella fase di Hold, ma un numero diverso da 0; questo si somma al dato in fase di mantenimento nell anello, e lo fa velocemente divergere, senza possibilità di correzione. L idea finale è quella di non bloccare l evoluzione del sistema, bensì di farlo evolvere in maniera stabile verso il valore del dato di ingresso. Mantenere fisso un segnale su una linea si è rivelato difficile; mediante i generatori comandati però si può
299 Vettori di test e diverse verifiche di funzionamento - Cap. 6 imporre una dinamica reazionata, magari a singolo polo, che ha la velocità ed il punto d arrivo desiderati. Il latch ha la struttura qui illustrata: Vin Vo G=1 Vout C I = k(vin-vo) V = Vin-Vo 1 = istanti di INSEGUIMENTO Vo - Vin 0=istantidiLATCH Figura Seconda realizzazione del latch senza interruttori, reazionata ed a singolo polo Se il generatore di corrente è comandato dalla differenza tra la tensione in ingresso e quella in uscita, si può costringere quella differenza a divenire piccola a piacere pompando o drenando corrente dalla capacità. Le equazioni che regolano le transizioni sono:.. i = C V k V i k V V C V k 0 0 = 0 + C V = ( in 0 ) in quindi se k > 0 il sistema è sempre stabile, con posizione del polo manipolabile sia mediante k che attraverso C; il valore finale dell esponenziale sarà in ogni caso V 0 =V in come si voleva. Dovendo campionare il segnale in ingresso istantaneamente, V in -V 0 verrà fornito non direttamente al generatore di corrente comandato, ma moltiplicato da un onda quadra a duty-cycle molto basso; quando essa vale 1 il transitorio avviene (e il tutto va completato entro soli 100 ps, ad esempio; ma k/c è completamente sotto controllo e
300 Vettori di test e diverse verifiche di funzionamento - Cap. 6 garantisce qualsivoglia velocità di scatto) e V 0 si assesta; per il resto del tempo il generatore di corrente vede 0 al nodo di pilotaggio, e quindi la capacità resta carica al livello raggiunto. Anche se il moltiplicatore sbaglia un poco e non dà uno zero perfetto, questo significa solo che V in -V 0 non è preciso, e V 0 si aggiusta di quel poco; ora la correzione spuria non diverge più, perchè il polo è stabile. Per avere un latch completo si comporranno allora due sezioni come quella qui vista, aventi sincronismi intercalati (secondo i dettami della temporizzazione master-slave); il risultato, nel caso in cui la dinamica imposta sia velocissima e le due fasi di Input e Latch (FASE1 e FASE2) vengano tenute vicine, approssima il S/H: Figura Esempio di latching istantaneo dell ingresso (Latch = Sample & Hold) Il problema della durata dei fronti dei transitori di uscita del modulatore è per giunta superato: basterà usare latch finali ad un singolo polo come questi. Volendo un fronte (del tipo 10-90% della dinamica) da 0.3 ns, si impone 0.3 ns = 2.2 τ= 2.2 C/k, dacuisi ricava C/k = 136 ps. Il metodo trovato risolve dunque due problemi contemporaneamente: il ritardo dei segnali e la durata delle commutazioni di uscita. - per passare dai livelli quantizzati ai bit non si fa altro che leggere le soglie in modo dicotomico: un comparatore discrimina se il livello è sopra gli 1.5 V (ed il bit S_D1 sarà quindi alto a 3 V, oppure basso a 0 V); la sua uscita divisa per 2 dà 0 V o 1.5 V, per cui sommando 0.75 V si generano ad hoc ulteriori soglie a 0.75 V oppure 2.25 V, a seconda che il dato in ingresso possa essere 1 oppure 3. Le soglie sono per l appunto in grado di decidere se va aggiunto anche il bit S_D0 oppure l uscita va mantenuta com è (ossia 10, oppure 00). Segue lo schematico:
301 Vettori di test e diverse verifiche di funzionamento - Cap. 6 Figura Blocco di conversione del segnale modulato, da 4 livelli discretizzati a 2 bit Il modulatore Sigma-Delta che ne esce non è naturalmente ottimale. In particolare, se si dovesse imitare con tale macromodello il modulatore del 1 ordine sorgerebbero problemi di stabilità numerica del simulatore, che costringono a mantenere il guadagno d anello minore di 1, ed anche caratteristiche dei comparatori poco ripide; l uscita quantizzata soffre di conseguenza di una deformazione dei fronti, e l anello non riesce a limitare l errore entro una fascia di un LSB, ma mostra variazioni erronee. Nel caso di una sinusoide da 5 MHz (T = 200 ns; quindi anche il fattore di sovracampionamento OSR è basso, nell esempio): Figura Modulazione di una sinusoide (con OSR basso) con un anello del primo ordine
302 Vettori di test e diverse verifiche di funzionamento - Cap. 6 Il Sigma-Delta del secondo ordine ottenuto fortunatamente ha caratteristiche migliori, perchè si può giocare sui guadagni in maniera appropriata sino ad ottenere comportamenti quasi ideali. Ricordando ad esempio la conversione di un transitorio esponenziale presentata nel Capitolo 2, si apprezza la verosimiglianza dell uscita fornita dal macromodello (l esponenziale ha 17 ns di tempo morto iniziale e una τ = 400 µs): Figura Modulazione di un transitorio esponenziale con un anello del 2 ordine - Livelli quantizzati e di-bit in uscita N10 è il nodo di ingresso ed N8 l uscita sovracampionata; S_D0 ed S_D1 sono i due bit in uscita dal Sigma-Delta. In precedenza si era già simulata anche una sinusoide; per ottenere risultati graficamente decenti si usa qui un periodo di 2.5 µs, ossia 400 khz di frequenza (del resto verosimile, per le nostre applicazioni), e un ampiezza di 1.3 V che consente di non saturare l integratore interno:
303 Vettori di test e diverse verifiche di funzionamento - Cap. 6 Figura Modulazione di una sinusoide (con OSR accettabile) da parte di un macromodello dell anello del 2 ordine L andamento è ottimo (anche le rapide transizioni 0 V - 3 V a metà della dinamica di ingresso sono caratteristiche degli anelli del 2 ordine, come spiegato a suo tempo), e ci garantisce finalmente la significatività delle simulazioni che verranno eseguite sul decimatore da montare a valle. Anche la successione degli errori integrati, in SOMMA1 e SOMMA2, è simile a quella proposta in Figura Schemi completi della catena di conversione A/D Sigma-Delta Per completare la disposizione sperimentale della catena di conversione Sigma- Delta manca solo il dispositivo che riassembli le 8 informazioni binarie O0..O7 all uscita del decimatore in maniera più intelligibile: un DAC, che mostri l uscita sotto forma di
304 Vettori di test e diverse verifiche di funzionamento - Cap. 6 numeri nell intervallo 0 192, consentendo un confronto diretto con l equivalente Simulink. Esso sarà banalmente costruito così: Figura Schema del DAC finale 8 bit intervallo numerico dove i livelli di saturazione dei comparatori sono posizionati in modo da compensare gli errori di tensione prodotti dal circuito a diodi che svolge fisicamente il clamping di tensione (errori piccoli; ma moltiplicati per 128, nel caso dell MSB...). Il sistema finale di test è allora: Figura Catena completa di conversione A/D Sigma-Delta con uno stadio di decimazione che trova la sua controparte Simulink del secondo ordine realizzata nella maniera:
305 Vettori di test e diverse verifiche di funzionamento - Cap. 6 Figura Catena completa Simulink di conversione A/D, con due stadi; l anello è del 2 ordine che non necessita più di cenni di spiegazione, già forniti nel Capitolo Simulazioni miste behavioural-circuitali della catena A/D Le prove sono eseguite sul decimatore costruito con dispositivi tipici prodotti dalla tecnologia, ed alla temperatura ambiente: si ricava, per esempio nel caso classico della sinusoide, un andamento del genere:
306 Vettori di test e diverse verifiche di funzionamento - Cap. 6 Figura Conversione di una sinusoide a 500 khz - Uscita a livelli, bit modulati, uscita binaria del decimatore ed equivalente tradotto dal DAC N33 è il nome assegnato dal simulatore all uscita del DAC finale a valle del decimatore, compresa tra 0 e 192. Anche se i punti di massima pendenza dell onda comportano brusche transizioni , presumibilmente critiche per gli input del decimatore, esso risponde senza problemi di sorta allo stimolo ricevuto. Alla luce delle Figure 1.25 ed 1.26 l uscita globale è assolutamente esatta, anche dal punto di vista del ritardo di filtraggio introdotto. I picchi visibili nella forma d onda finale sono causati dalle transizioni delle uscite O0..O7, che hanno tempi di salita piccoli ma sufficienti per essere rilevati dal DAC a valle; esso infatti è una rete a risposta pressocchè istantanea e risente subito delle transizioni ai suoi input (soprattutto al cambio di valore dei bit più significativi). Il passaggio dai bit O0..O7 alla tensione N33 è corretto; si osservino ad esempio gli andamenti di O7 ed O6 per averne una riprova
307 Vettori di test e diverse verifiche di funzionamento - Cap. 6 L ultimo confronto eseguito è il caso della rampa di tensione; nei tratti di lenta variazione discendente forniti al modulatore Sigma-Delta le sue due uscite binarie tendono a riproporre progressivamente i casi già provati a parte nel corso del progetto, dalla costante all alternanza continua 11-10, alle variazioni (questo nei pressi del livello 1.5 V); si tratta insomma di casi sufficientemente probanti: Figura Caso della rampa di tensione discendente, simulato con ST-Spice ed anche in questo caso la rete si comporta come previsto dall altra simulazione Simulink di controllo (a meno del transitorio iniziale, che per Simulink è accuratamente tarabile ma che per il circuito reale non si può coartare in alcun modo):
308 Vettori di test e diverse verifiche di funzionamento - Cap. 6 Figura Risposta alla rampa generata con Simulink, passodisimulazionefissoa5ns Analisi di worst-case del filtro decimatore Il processo BiCMOS fornisce, come ogni processo tecnologico di realizzazione di dispositivi su silicio, dei componenti elettronici non identici tra di loro; i parametri caratteristici di ogni transistore non sono perfettamente uguali tra un componente e l altro, ma presentano una distribuzione statistica gaussiana dei loro valori; tutte le simulazioni eseguite finora (eccetto quelle delle figure 4.75 e 4.76 per la catena Manchester, particolarmente esemplificative del degrado delle prestazioni) hanno supposto che i transistori in oggetto fossero prodotti tipici del processo planare, quelli generati con la massima frequenza statistica. In realtà però il processo può restituire dispositivi con caratteristiche che si discostano abbastanza da quelle più probabili; i modelli che caratterizzano questi casi sfortunati son detti min e max, minimo e massimo. Il modello minimo è quello che contiene, come caratteristica saliente, i transistori con soglia massima: l NMOS con soglia V TN = V da V che erano, ed il PMOS con
309 Vettori di test e diverse verifiche di funzionamento - Cap. 6 soglia V TP = V da V che erano; viceversa accade per il modello massimo (V TN = V e V TP = V). Per motivi di processo non si dà il caso che ambedue le qualità di MOSFET abbiano soglie contemporaneamente basse, od alte; i casi pessimi sono quelli riportati come N min/p max e come N max/p min, inerenti variazioni complementari per i due tipi di transistore. Di solito il limite accettato per non rigettare la fetta di silicio malriuscita è dato da 3 σ, ossia si tiene buono il 99.86% dei prodotto ed i circuiti devono riuscire a funzionare anche quando sono costruiti con quei dispositivi; nel nostro caso i modelli min e max riportano i dati di MOSFET che si trovano lontani ben 8 σ dal centro della distribuzione gaussiana, e sono quindi estremamente diversi dal caso tipico. Nella fase di test di qualsiasi circuito digitale assume particolare importanza l analisi di caso critico del funzionamento dell oggetto. Immaginando di diagrammare in tre dimensioni i principali parametri fisici che ne influenzano il comportamento, alias Temperatura, Processo tecnologico e Tensione di alimentazione, l ipotetico parallelelepipedo che contiene tutte le condizioni operative possibili del circuito ha 8 vertici; un angolo in particolare è quello critico, e viene perciò detto worst-corner: Temperatura : 100 C, massima Processo : modelli di dispositivi min e max, i peggiori Tensione Vdd : 3.3 V - 10% 3V,lapiùbassa. In altri casi progettuali, spesso il worst-corner non è così immediato da trovare, e richiede ulteriore lavoro di simulazione per venire identificato; ma in questo caso, e più in generale in ambito digitale, è noto come siano le condizioni sopra riportate a minacciare maggiormente la performance del circuito. Il segnale più adatto a costituire il banco di prova nelle diverse condizioni è probabilmente ancora la sequenza alternata , per i motivi ormai noti dal Capitolo 4; in effetti, con questi input il funzionamento corretto si noterà immediatamente, bastando osservare se le 8 uscite si assestano davvero al livello oppure se interviene qualche transizione erronea a far fallire la decimazione. Il tempo di simulazione sarebbe un parametro fondamentale per tutti questi casi; un ottimo (ma nient affatto totale) grado di sicurezza si acquisisce infatti quando il primo anello di integrazione della parte IIR ha raggiunto i suoi massimi valori compiendo un giro sul cerchio wrap-around della aritmetica modulare - in complemento a 2, costringendo gli
310 Vettori di test e diverse verifiche di funzionamento - Cap. 6 integratori a valle alle massime variazioni compatibili con l uso di numeri modulo 256. Al ritmo di addizioni alternate, in media quindi sommando un valore 1.5 ogni periodo, per arrivare al valore 255 un accumulatore che parta scarico deve essere lasciato funzionare per almeno 255/1.5 = 170 colpi; transizioni da 5 ns ciascuna 850 ns. In condizioni di medio carico operativo, i calcolatori Sun a nostra disposizione impiegano circa un dì ed un notte per completare un lavoro simile, producendo circa 20 Mbyte di file di dati; ragion per cui ci si è praticamente sempre limitati a controllare solo 400 ns di transitori. Le considerazioni concernenti la temperatura che sono state effettuate alla fine del Capitolo 4 impongono tuttavia che le simulazioni provino anche a verificare il comportamento a solo 70 C del sistema; magari in particolari condizioni operative la temperatura è garantita a questo standard, e l alimentazione può contestualmente calare; insomma, diversi compromessi sono possibili all interno degli intervalli di operazione leciti. Due esempi grafici di transitori ottenuti, uno sbagliato ed il secondo che ha avuto successo, vengono riportati di seguito: Figura Conversione con errori temporanei della sequenza , a 70 C - Le scale temporali sono differenti, in rapporto 1:
311 Vettori di test e diverse verifiche di funzionamento - Cap. 6 a 70 C, con alimentazione 2.85 V; la sequenza è definitivamente continua come aveva da essere, ma è errata tra 230 e 300 ns; l altro caso invece: Figura Uscita corretta del filtraggio a 100 C - Le scale temporali sono differenti, in rapporto 1:10 a 100 C, con alimentazione di 3.15 V, e con caso pessimo tecnologico di NMOS a soglia minima e PMOS, già più resistivi, a soglia massima. I tempi di ritardo di uno schema CMOS sono di solito considerati essere inversamente proporzionali al valore di Vdd (ad esempio si consulti Riccò-Fantini- Brambilla, [23], pag. 293 sgg.), perchè V th viene riscalato di pari passo; un equazione valida per fissare le idee è: 2 = CLoad Vth K W L Vdd V τ 1 0 NMOS 0 saturo ( ) th
312 Vettori di test e diverse verifiche di funzionamento - Cap. 6 Il fatto è che i transistori utilizzati non seguono le regole di scaling a campo costante di solito presupposte in casi analoghi; il progetto CMOS VLSI con alimentazione a 3 V viene pressocchè sempre eseguito con dispositivi aventi soglie inferiori alle nostre, tra 0.5 V e 0.4 V, e non a 0.8/0.9 V. La regola più spesso adottata accoppia l uso di transistori con V th = 1V con Vdd = 5V, mentre per Vdd = 3V si richiede appunto V th = 0.5/0.4 V; se poi si aggiunge il fatto che i dispositivi minimi non hanno W = L = 0.7 µm malaminima Wvale2.2µm per i noti motivi di fattibilità dei contatti, il quadro che se ne trae è sufficientemente drastico. Il nostro progetto è così critico riguardo alla velocità operativa che l alimentazione di tipo low-power si presenta come un vero problema; pur avendo portato avanti l intero progetto con Vdd = 3 V, un calo anche solo di un 5% rispetto a questo valore comporta pesanti conseguenze sulle prestazioni di velocità del decimatore, come notato nelle figure sopra. Per converso, un piccolo aumento di Vdd può però portare a netti miglioramenti, come espresso dal secondo grafico. Non si dimentichi poi che il caso tecnologico critico è veramente estremo; accettare i die che dimostrano di essere anche solo 3 σ discosti dal caso tipico sembra più ragionevole, e le positive conseguenze di cui le simulazioni effettuate potrebbero giovarsi sono facilmente intuibili; quelle presentate sopra sono insomma peggiorative, in qualche misura. Il quadro sinottico dei risultati ottenuti è il seguente: Alimentazione Vdd Temperatura Modello tecnologico Risultato ottenuto 2.7 V 70 C Nmin,Pmax ERRATO 2.7 V 70 C Nmax,Pmin ERRATO 2.7 V 27 C N typ, P typ CORRETTO 2.85 V 70 C Nmax,Pmin ERRATO 2.85 V 70 C Nmin,Pmax ERRATO 3 V 27 C N typ, P typ CORRETTO 3 V 70 C N typ, P typ CORRETTO 3 V 70 C N max, P min CORRETTO 3 V 100 C N typ, P typ CORRETTO 3V 100 C Nmax,Pmin ERRATO 3.15 V 70 C N max, P min CORRETTO 3.15 V 100 C N max, P min CORRETTO 3.15 V 100 C N min, P max CORRETTO
313 Vettori di test e diverse verifiche di funzionamento - Cap. 6 Le prove eseguite seguono un klimax ascendente di tensione di alimentazione e temperatura; dopo ogni fallimento si è provato a rilassare un parametro, finchè non si è giunti ad un funzionamento in ogni condizione. Come si vede, è l innalzamento di Vdd a far guadagnare affidabilità al circuito; a mano di non accontentarsi di avere 70 C come limite termico raggiungibile. Ricordiamo qui che il modello max per un componente è quello che gli conferisce soglia MINIMA, e viceversa il modello min dà soglia MASSIMA; i PMOS sono già più resistivi, ed una soglia V TP massima è il caso pessimo in assoluto (N max,pmin) Condizioni di funzionamento consigliate Il filtro progettato non è un dispositivo commerciale. Infatti la tecnica Sigma-Delta è di applicazione relativamente recente nel campo di elaborazione dei segnali, e questo nel settore audio; nel campo più vicino alle frequenze video la modulazione Sigma-Delta è invece veramente una novità, e anche il filtraggio necessario non gode di una vasta libreria di applicazioni già realizzate. Non è affatto inverosimile richiedere allora per un circuito del genere delle condizioni operative migliori dello standard: segnatamente, un range termico limitato ai 70 C (che commercialmente è addirittura esso stesso uno standard), o in preferibile alternativa una stabilizzazione dell alimentazione a meno di ±5% del valore nominale, cioè tra 3.15 V e 3.45 V, che in taluni àmbiti è pure essa una norma. In realtà, con il restringersi dell intervallo tecnologico di componenti considerati buoni anche questi requisiti potrebbero rilassarsi, e 100 C accoppiati a 3 V di alimentazione potrebbe rivelarsi una condizione di corretto funzionamento del sistema; addirittura, accettare un calo nella resa quantitativa del processo planare (un calo di yield, in termine tecnico) potrebbe far rivalutare la proposta di mantenere un alimentazione Vdd nominale a 3 V. Va detto comunque che: a) l impossibilità pratica di effettuare prove di test più estese temporalmente e qualitativamente, b) il peggioramento inevitabile delle prestazioni del circuito reale, rispetto a quello simulato senza le capacità di interconnessione del layout (per quanto poi le capacità inserite nei componenti dello schematico siano in realtà sovrastimate),
314 Vettori di test e diverse verifiche di funzionamento - Cap. 6 consigliano di mantenersi il più cautelativi possibile, anche in questa fase avanzata del progetto Conclusioni e sviluppi futuri In conclusione, si è progettato un filtro decimatore VLSI per una catena di conversione A/D di tipo Sigma-Delta a frequenze video; il circuito finale ha dimostrato di essere robusto rispetto alla dispersione dei parametri tecnologici, e quindi di consentire il mantenimento di un elevato yield in una ipotetica produzione su larga scala. Il progetto funziona con alimentazione di 3.3 V, preferibilmente stabilizzata entro il 5% del valore nominale; e consente di raggiungere temperature interne al chip di 100 C. Il consumo di potenza della realizzazione su silicio finale si assesterà prevedibilmente attorno ai 30 mw. Grazie all utilizzo di tecniche di pipe-line, carry select, carry look-ahead, suddivisione dei registri, egualizzazione dei ritardi, applicazioni del principio dìvide et ìmpera, e con tentativi di tipo logica cablata (Wired-OR) a bipolari e useful clock skew, la fattibilità di un filtro a 200 MHz in tecnologia BiCMOS è stata così provata, quantomeno a livello di simulazione dello schematico conclusivo; una realizzazione effettiva del circuito è l ultimo anello mancante al progetto, ed è lo sviluppo futuro che l autore si augura di vedere realizzato al più presto. Questo lavoro di tesi andrebbe però completato con altre modifiche ulteriori; in particolare, così come si è proceduto per raffinamenti progressivi nelle fasi di decisione dell architettura a blocchi, di scelta della logica circuitale da adottare, e (in misura di gran lunga maggiore) di individuazione delle tecniche per l implementazione a livello di transistori, occorrerebbe procedere anche per il layout. Lo schema finale è in effetti conforme allo schematico proposto, quindi è corretto da un punto di vista funzionale; ma non è stato ottimizzato come le altre parti del progetto, specie per quanto concerne il dimensionamento delle piste. I dimensionamenti delle reti di distribuzione del clock e delle alimentazioni potrebbero nella fattispecie essere oggetto di miglioramento; taluni percorsi critici mostrano inoltre possibili alternative che li renderebbero più veloci, anche se ciò a costo magari di richiedere back-annotation non semplici. Il circuito manca inoltre della parte di connessione con l esterno, che non era stata richiesta in sede di posizione
315 Vettori di test e diverse verifiche di funzionamento - Cap. 6 del problema ma che a livello pratico è non solo indispensabile, ma anche molto difficile ed interessante da realizzare; e questo specialmente se si vuol dare la possibilità all esterno di leggere anche segnali intermedi circolanti nel circuito (o, perchè no, anche del di-bit a 200 MHz che costituisce l uscita del Sigma-Delta di ingresso...). Un completamento della catena di conversione mediante un filtro IIR selettivo, che decimi ancora del fattore 6 mancante per calare alla frequenza di Nyquist f N, è uno sviluppo desiderabile; certo il progetto sarebbe algoritmicamente più complesso del presente, ma funzionante con un periodo di clock massimo di 50 MHz, e quindi gratificato di una maggiore libertà di scelta progettuale sotto questo punto di vista. Da ultimo, uno sviluppo tecnologico invero assai sperabile concerne un passaggio del presente progetto da una realizzazione in processo BiCMOS con canale da 0.7 µm ad una in un processo avente un canale più corto (ad esempio 0.5 µm, già esistente a livello industriale); ciò aprirebbe la strada non solo a nuove alternative circuitali, ma anche a nuove opzioni realizzative a livello architetturale e di scelta iniziale del tipo di blocchi
316 Il simulatore TOSCA - Appendice 1 Appendice Il simulatore TOSCA Si tratta di un programma sviluppato all Università di Pavia, che data in ingresso la NET(work)LIST di un modulatore Sigma-Delta composta da blocchi quali l integratore, il sottrattore, il DAC,... è in grado di simulare il comportamento del sistema a capacità commutate, nelle varie fasi dello switching. L uscita dell anello può essere poi rielaborata: - semplicemente memorizzandola, e mostrando i transitori ai nodi (come Simulink) comando TIME - producendo un istogramma della distribuzione di ampiezza rilevata in quel nodo comando HISTOGRAM - eseguendo una FFT del segnale, oppure passando addirittura allo spettro di potenza comando FREQ - infine, esaminando in svariati punti il valore del rapporto Segnale/Rumore comando SNR. Quest ultima possibilità serve allo scopo di determinare il numero di bit equivalenti al SNR (ENOB, Equivalent Number Of Bits). La rete da istanziare per la simulazione può, a discrezione del programmatore, includere molteplici effetti delle non-idealità dei componenti, quali lo slew-rate, la non-linearità del trasferimento e inerente distorsione, le saturazioni, eventuali isteresi dei comparatori, e così via; sono tutti parametri specificabili nelle descrizione dei blocchi utilizzati. Nel caso attuale eravamo interessati solamente all estrazione di un limite superiore al rapporto Segnale/Rumore e quindi si è supposto che l intero circuito fosse funzionante in modo ideale, senza aggiunta di disturbo proprio, oltre a quello di modulazione. La netlist fornita al calcolatore per ottenere il grafico del paragrafo 1.14 è: 1
317 Il simulatore TOSCA - Appendice 1 NUMBIT.NET : TITLE : convertitore Sigma_Delta del 2^ordine per valutazione numero bit S/N; TIMING; { frequenza di 200MHz } PERIOD 5e-9; END; CIRCUIT; { segnale di testing : sinusoide a 500KHz } Vinput 1 DC 1.5 SIN 1.2V 500e3 0.0; { integratori saturati } Iin1 2 (1,5*1:2) standard SwingDown = 0 SwingUp = 3; Iin2 3 (2,5*1:2) standard SwingDown = 0 SwingUp = 3; { quantizzatore con soglie riposizionate ad hoc mediante somma di un offset} Voffs 7 DC 0.5; Aquant 8 (3 7) ideal; Qcomp 4 (8:2) multilevel Nbit = 3 Type = 1 DRMax = 3 DRMin = -3 ; { ritardo d'anello } Del1 5 (4) full; { decimatore a sinc cubo, e fattore di downsampling 4 } Fdec1 6 (4:2) SINC 3 4; END; ANALYSIS; { si valuteranno 1024 campioni post-decimazione, cioe' 4096 nell'anello } NSAMPL 1024 Node 6; INITIALIZE; { disamina logaritmica al variare delle ampiezze } SNR 6 sweep Vinput ac dbv ; NOISEBAND AC 4e6; END; END; 2
318 Il simulatore TOSCA - Appendice 1 In essa, PERIOD specifica la frequenza massima di campionamento dell intera catena (200 MHz 5 ns); Vin è il generatore che fornisce una sinusoide di prova in input; I è l integratore saturato mediante le proprietà SwingUp e SwingDown, Qcomp multilevel è l ADC flash. Il multicomparatore ha per costruzione un trasferimento a scalinata che abbraccia tensioni positive e negative; per riprodurre il profilo di discretizzazione riportato nel paragrafo 1.3 è stato necessario allora usare 3 bit, così da avere 8 livelli simmetrici attorno allo 0, cioè 4 livelli piazzati nella dinamica utile, positiva 0-3 V. L offset di tensione Voffset aggiunto in linea grazie al sommatore A ha sistemato, come già in Simulink, la posizione delle soglie, e così il ritardo d anello è stato riprodotto mediante D. Il decimatore Fdec ha forma a SINC, di ordine 3, con fattore di sottocampionamento 4, come quello da realizzare. NOISEBAND consente l integrazione della densità spettrale del rumore solo nella banda 0 f 0 di interesse del segnale, quindi tra 0 e 4 MHz; l opzione AC infine rimuove la continua dal computo, per evitare di introdurre una perturbazione notevole nel metodo di calcolo della potenza. Il circuito proposto è insomma un clone di quello già testato in ambiente Simulink, nè poteva essere altrimenti dato che esso è creato a somiglianza del Sigma-Delta già progettato prima che questo lavoro di tesi prendesse inizio. 3
319 Listati MATLAB per la simulazione dei decimatori - Appendice 2 Appendice Listati MATLAB per la simulazione dei decimatori Di seguito si riportano i listati delle procedure MATLAB per la simulazione del funzionamento binario dei decimatori, in ordine di dettaglio; ogni procedura contiene al suo interno delle chiamate solo a funzioni riportate prima di essa. I commenti posti nel corpo delle istruzioni li rendono sufficientemente autoesplicativi. XOR.M : function [Out] = xor(op1,op2) % % Operazione logica "OR esclusivo", non implementata direttamente % in Matlab - Versione 3.5f e quindi qui ridefinita. % % Variabili esterne : % % Op1,Op2 : operandi binari, necessariamente rappresentati da % un singolo numero intero; questa funzione e' infatti 4
320 Listati MATLAB per la simulazione dei decimatori - Appendice 2 % da intendersi "bit-wise" % Out : risultato, anch'esso binario % Out = (Op1 & ~Op2) (~Op1 & Op2); return SOMMACPL.M : function [Somma] = sommacpl2(addendo1,addendo2) % %Funzionedisimulazionedellasommabinaria-incomplementoa2-mediante % elaborazione dei singoli bit, elementi binari dei vettori in ingresso. % Ai fini del calcolo, l'ordine dei bit e' il seguente : % % MSB --> b1 b2 b3 b4... b(numeromaxbit) <-- LSB. % % Variabili esterne : % % Addendo1,Addendo2 : vettori di cifre binarie, di dimensioni anche % differenti l'uno dall'altro; il bit MSB viene % considerato come SEGNO da questo algoritmo % Somma : risultato binario dell'operazione, che va a sua % volta interpretato come numero "in complemento a 2" % % Variabili locali : % % NumeroMaxBit : lunghezza massima tra i due input, che puo' essere % superata da Somma qualora vi sia riporto finale % (e Somma non superi il byte, dati i limiti % circuitali previsti) 5
321 Listati MATLAB per la simulazione dei decimatori - Appendice 2 % Carry : riporto rilevato ad ogni bit, da LSB verso MSB % NumeroMaxBit = max(length(addendo1),length(addendo2)); % Aggiunta di bit "0" a sinistra, per eguagliare le dimensioni dei due % operandi. Se le word sono uguali, non si concatena nulla; infatti, nel caso % di sottrazione (in cui la presente operazione rovinerebbe il segno) % i due operandi sono necessariamente di pari dimensioni gia' al momento % del passaggio di parametri if length(addendo1) > length(addendo2), Addendo2 = [zeros(1, length(addendo1)-length(addendo2)),addendo2]; else Addendo1 = [zeros(1, length(addendo2)-length(addendo1)),addendo1]; end % Applicazione delle consuete formule logiche del full-adder : i bit % vengono letti a ritroso, propagando il riporto Carry = 0; for i = NumeroMaxBit : -1 : 1, Somma(i) = xor(addendo1(i), xor(addendo2(i),carry)); Carry = (Addendo1(i) & Addendo2(i)) (Carry & (Addendo1(i) Addendo2(i))); end % In caso di riporto finale la word viene allungata, fino a giungere % al piu' alla dimensione di 1 byte if Carry & (NumeroMaxBit < 8), Somma = [1,Somma]; end return 6
322 Listati MATLAB per la simulazione dei decimatori - Appendice 2 NEG.M : function [Opposto] = neg(numero) % %Funzionedicalcolodelcomplementoa2diunnumerobinario, % mediante negazione bit-wise e somma di 1. % % Variabili esterne : % % Numero : operando binario, di lunghezza arbitraria, da complementare % Opposto : risultato dell'operazione di cambio di segno % % Variabili locali : % % Uno :costantebinaria,divalore1edimensionipariaquelle % del numero in input % Uno = zeros(1,length(numero)); Uno(length(Numero)) = 1; Opposto = sommacpl2(~numero,uno); return QUANTIZZ.M : function [Digitale] = quantizzatore(analogico) % % Blocco avente come caratteristica di trasferimento la scalinata a 4 livelli % da adottare nel modulatore Sigma-Delta; il "guadagno" del convertitore 7
323 Listati MATLAB per la simulazione dei decimatori - Appendice 2 % e' reso unitario mediante la scelta delle soglie, che dato il range supposto % di -0.75V +0.75V sono poste a -0.5V, 0V, +0.5V. % % Variabili esterne : % % Analogico : dato continuo in ingresso al blocco % Digitale : dato binario quantizzato (di-bit) risultante dal confronto % multiplo, posto in uscita al rudimentale ADC % % Cascata di comparazioni dell'input con le soglie desiderate if Analogico > 0.5, Digitale = [1 1]; elseif Analogico > 0, Digitale = [1 0]; elseif Analogico > -0.5, Digitale = [0 1]; else Digitale = [0 0]; end return Procedura di simulazione del modulatore Sigma-Delta del 2 ordine a 2 bit : CONVERT.M: % Programma di simulazione del solo convertitore Sigma-Delta, ancora privo % di stadio di decimazione. L'ADC e' a 4 livelli, cioe' presenta 2 linee % in uscita; la dinamica assunta è -0.75V +0.75V. % % Variabili utilizzate : % 8
324 Listati MATLAB per la simulazione dei decimatori - Appendice 2 % Ampiezza : regola i valori delle forme d'onda in input % In : segnale analogico in ingresso, da convertire % OutDigitale :segnaledigitalea2bitinuscita;e'il % flusso seriale che rappresenta In codificato % InInterno1,OutInterno1 : ingresso ed uscita del 1 integratore % (anello esterno) % InInterno2,OutInterno2 : ingresso ed uscita del 2 integratore % (anello interno) % OutFinale : segnale analogico, ricostruito a partire % da OutDigitale, adatto per completare il % secondo anello di reazione del modulatore % (funzione di conversione DAC) % GraficoIn,GraficoOut : variabili per la visualizzazione a posteriori % dei segnali % % Inizializzazione delle linee, a circuito spento OutDigitale = [0 0]; OutInterno1 = 0; OutInterno2 = 0; % Regolazione della magnitudo del segnale di input Ampiezza = 0.7; GraficoOut = zeros(1,200); GraficoIn = GraficoOut; % Il transitorio iniziale parte comunque dal minimo della scala, cioè -0.75V for i = 1:200, In = Ampiezza * exp(-i/50); % Ingresso esponenziale, ad esempio GraficoIn(i) = In; % Traduzione degli anelli interni in somme e sottrazioni decimali : % 1 blocco integratore; l'uscita digitale influenza l'ingresso % sottraendovisi ANALOGICAMENTE... OutFinale = OutDigitale(1)+OutDigitale(2)*0.5; %...va dunque convertita D/A 9
325 Listati MATLAB per la simulazione dei decimatori - Appendice 2 InInterno1 = In - OutFinale; OutInterno1 = OutInterno1 + InInterno1; % 2 blocco integratore InInterno2 = OutInterno1 - OutFinale; OutInterno2 = OutInterno2 + InInterno2; OutDigitale = quantizzatore(outinterno2); GraficoOut(i) = OutFinale; end % Graficazione dati ottenuti, con scala dei tempi a 200 MHz axis([0 995e ]); plot(0 : 5e-9 : 995e-9,GraficoIn,'.b'); plot(0 : 5e-9 : 995e-9,GraficoOut,'b'); Procedura di simulazione del decimatore realizzato in forma ricorsiva : DECRICOR.M : % Programma di simulazione del convertitore Sigma-Delta, seguito % dallo schema RICORSIVO di decimazione. La wordlength utilizzata è quella % corretta da 8 bit, ma per studiare gli effetti dei cicli-limite basta accorciare % le dimensioni dei vettori binari che fungono da registri di stato. % % Variabili utilizzate : % % Ampiezza : regola i valori delle forme d'onda in input % In : segnale analogico in ingresso, da convertire % OutDigitale :segnaledigitalea2bitinuscita;e'il % flusso seriale che rappresenta In codificato % InInterno1,OutInterno1 : ingresso ed uscita del 1 integratore 10
326 Listati MATLAB per la simulazione dei decimatori - Appendice 2 % (anello esterno) % InInterno2,OutInterno2 : ingresso ed uscita del 2 integratore % (anello interno) % OutFinale : segnale analogico, ricostruito a partire % da OutDigitale, adatto per completare il % secondo anello di reazione del modulatore % (funzione di conversione DAC) % IIR1,IIR2,IIR3, % VecchioIIR1,... : registri accumulatori, e simulatori di latenza annessi % FIR1,FIR2,FIR3, % VecchioFIR1,..., % VecchioBisFIR1,... : registri per la sottrazione, e simulatori di latenza annessi % VecchioQuaterIIR3 : registro di memorizzazione di IIR3 post-decimazione 4:1 % Uscita : byte prodotto dal decimatore a 50MHz % GraficoIn,GraficoOut : variabili per la visualizzazione a posteriori % dei segnali % % Inizializzazione dei blocchi del decimatore, recursivi e non: segno + 7 bit IIR1=[ ]; IIR2=[ ]; IIR3=[ ]; FIR1=[ ]; FIR2=[ ]; FIR3=[ ]; VecchioFIR1=[ ]; VecchioFIR2=[ ]; VecchioQuaterIIR3=[ ]; % Sezione di simulazione del convertitore Sigma-Delta OutDigitale = [0 0]; OutInterno1 = 0; OutInterno2 = 0; Ampiezza = 0.7; 11
327 Listati MATLAB per la simulazione dei decimatori - Appendice 2 GraficoOut = zeros(1,200); GraficoIn = GraficoOut; % L'output del modulatore e' forzato a partire da 00, cioè -0.75V for i = 1:200, In = Ampiezza * exp(-i/50); GraficoIn(i) = In; % ingresso esponenziale, ad esempio OutFinale = OutDigitale(1) + OutDigitale(2)*0.5; InInterno1 = In - OutFinale; OutInterno1 = OutInterno1 + InInterno1; InInterno2 = OutInterno1 - OutFinale; OutInterno2 = OutInterno2 + InInterno2; OutDigitale = quantizzatore(outinterno2); % Sezione di simulazione del decimatore a sinc cubo Ingresso = OutDigitale; % Non si ha corsa critica dei dati, ossia trasferimento immediato dei % risultati da un blocco al successivo; la latenza e' 3, insomma VecchioIIR1 = IIR1; VecchioIIR2 = IIR2; VecchioIIR3 = IIR3; % Triplice blocco IIR IIR1 = sommacpl2(ingresso,vecchioiir1); IIR2 = sommacpl2(vecchioiir1,vecchioiir2); IIR3 = sommacpl2(vecchioiir2,vecchioiir3); % Decimazione 4:1 if ~rem(i,4), % Trasferimento dati nei registri di storage intermedi VecchioBisFIR1 = VecchioFIR1; 12
328 Listati MATLAB per la simulazione dei decimatori - Appendice 2 VecchioBisFIR2 = VecchioFIR2; VecchioFIR1 = FIR1; VecchioFIR2 = FIR2; VecchioFIR3 = FIR3; % Triplice blocco FIR FIR1 = sommacpl2(vecchioiir3,neg(vecchioquateriir3)); VecchioQuaterIIR3 = VecchioIIR3; FIR2 = sommacpl2(vecchiofir1,neg(vecchiobisfir1)); FIR3 = sommacpl2(vecchiofir2,neg(vecchiobisfir2)); Uscita = VecchioFIR3; % Calcolo analogico dell uscita, convertendo DAC il byte decimato ricavato Acc = 0; for k = 1:8, Acc = Acc + Uscita(k)* 2^(8-k)/256; end GraficoOut(i) = Acc*1.5 * 256/192; % correzione del guadagno end end % Graficazione dati ottenuti, con scala dei tempi a 200MHz axis([0 995e ]); plot(0 : 5e-9 : 995e-9,GraficoIn,'b'); stem(0 : 5e-9 : 995e-9,GraficoOut,'b'); Procedura di simulazione del decimatore realizzato in forma diretta : DECIMAT.M: % Programma di simulazione del convertitore Sigma-Delta, seguito 13
329 Listati MATLAB per la simulazione dei decimatori - Appendice 2 % dallo schema DIRETTO di decimazione dato da un filtro a pettine del terzo ordine, % con 4 taps. % % Variabili utilizzate : % % Ampiezza : regola i valori delle forme d'onda in input % In : segnale analogico in ingresso, da convertire % OutDigitale :segnaledigitalea2bitinuscita;e'il % flusso seriale che rappresenta In codificato % InInterno1,OutInterno1 : ingresso ed uscita del 1 integratore % (anello esterno) % InInterno2,OutInterno2 : ingresso ed uscita del 2 integratore % (anello interno) % OutFinale : segnale analogico, ricostruito a partire % da OutDigitale, adatto per completare il % secondo anello di reazione del modulatore % (funzione di conversione DAC) % A1,A2,A3,B1,... : registri di ritardo dei campioni per la tapped-delay line % Blocco1,Blocco2,... % VecchioBlocco1,... : somme a quattro addendi e simulatori di latenza annessi % Uscita : byte prodotto dal decimatore a 50MHz % GraficoIn,GraficoOut : variabili per la visualizzazione a posteriori % dei segnali % % Inizializzazione dei blocchi del decimatore... A1 = [0 0]; A2 = [0 0]; A3 = [0 0]; B1=[0000]; B2=[0000]; B3=[0000]; C1=[000000]; C2=[000000]; C3=[000000]; Blocco1=[0000]; Blocco2=[000000]; Blocco3=[ ]; %...e del modulatore 14
330 Listati MATLAB per la simulazione dei decimatori - Appendice 2 OutDigitale = [0 0]; OutInterno1 = 0; OutInterno2 = 0; % Regolazione della magnitudo del segnale di ingresso Ampiezza = 0.7; GraficoIn = zeros(1:200); GraficoOut = GraficoIn; for i = 1:200, In = Ampiezza * exp(-i/50); GraficoIn(i) = In; % Ingresso esponenziale, ad esempio % Sezione di simulazione del convertitore Sigma-Delta OutFinale = OutDigitale(1) + OutDigitale(2)*0.5; InInterno1 = In - OutFinale; OutInterno1 = OutInterno1 + InInterno1; InInterno2 = OutInterno1 - OutFinale; OutInterno2 = OutInterno2 + InInterno2; OutDigitale = quantizzatore(outinterno2); % Modalita' alternativa di testing per il decimatore: generazione di rumore bianco % pseudocasuale, con distribuzione uniforme delle ampiezze tra 00 ed 11 % % Zeri = zeros(1,2); % j = find(rand(1,2) < 0.5); % Ingresso = ones(1,2); % if j, % Ingresso(j) = Zeri(j); % end % Sezione di simulazione del decimatore a valle Ingresso = OutDigitale; % Non si ha corsa critica dei dati, ossia trasferimento immediato dei 15
331 Listati MATLAB per la simulazione dei decimatori - Appendice 2 % risultati da un blocco al successivo; la latenza e' 3, insomma VecchioBlocco1 = Blocco1; VecchioBlocco2 = Blocco2; VecchioBlocco3 = Blocco3; % Cascata dei 3 filtri a pettine; le operazioni vengono qui simulate % in sequenza, ma in realta' sono simultanee nei tre blocchi Blocco1 = sommacpl2(ingresso,a1); Blocco1 = sommacpl2(blocco1,a2); Blocco1 = sommacpl2(blocco1,a3); A3 = A2; A2 = A1; A1 = Ingresso; Blocco2 = sommacpl2(vecchioblocco1,b1); Blocco2 = sommacpl2(blocco2,b2); Blocco2 = sommacpl2(blocco2,b3); B3 = B2; B2 = B1; B1 = VecchioBlocco1; Blocco3 = sommacpl2(vecchioblocco2,c1); Blocco3 = sommacpl2(blocco3,c2); Blocco3 = sommacpl2(blocco3,c3); C3 = C2; C2 = C1; C1 = VecchioBlocco2; % L'uscita viene fornita comunque in formato byte Uscita = [zeros(1,8-length(vecchioblocco3)), VecchioBlocco3]; % Ora si esegue la decimazione 1:4, prelevando solo i valori selezionati if ~rem(i,4), Acc = 0; for k = 1:8, Acc = Acc + Uscita(k)* 2^(8-k)/256; end % Rigenerazione di un valore continuo a partire dai byte ottenuti % dalla catena di conversione, per poter poi eseguire un confronto con % il segnale originario 16
332 Listati MATLAB per la simulazione dei decimatori - Appendice 2 end end GraficoOut(i) = Acc*1.5 * 256/192; % Correzione di guadagno % Graficazione dati ottenuti, con scala dei tempi a 200 MHz axis([0 995e ]); plot(0 : 5e-9 : 995e-9,GraficoIn,'b'); stem(0 : 5e-9 : 995e-9,GraficoOut,'b'); Si presenta ora la procedura che consente di salvare in un file i flussi di 8 bit che si producono progressivamente nei registri all interno del blocco decimatore; queste sequenze costituiscono i dati principali che consentono di controllare la correttezza dei transitori presentati nelle figure del Capitolo 4, segnalando la necessità di correzioni del circuito. Le scritte di separazione (IIR, FIR, ed eventualmente numero ed istante - in nanosecondi - della simulazione cui i dati si riferiscono) vanno incluse nella procedura chiamante, prima di lanciare Bytesave. BYTESAVE.M : function [] = Bytesave(Registro) % % Funzione di salvataggio su file del contenuto del registro passato come % variabile di ingresso % global FileId % I bit del registro vanno salvati uno per uno, trattandosi di un vettore for i = 1:length(Registro), fprintf(fileid,'%g',registro(i)); end 17
333 Listati MATLAB per la simulazione dei decimatori - Appendice 2 % Aggiunta del Carriage Return di separazione fprintf(fileid,'\n'); return 18
334 Sintesi della logica di riporto condizionale mediante mappe di Karnaugh -Appendice 3 Appendice Sintesi della logica di riporto condizionale mediante mappe di Karnaugh Si illustra in questa sede il metodo seguito per sintetizzare la rete logica dei carry condizionali, per i quattro blocchi costituenti i sommatori veloci. La tavola di verità delle sei funzioni contenute nel blocco elementare di carry select, con ingressi da 2 bit, è : Ay Ax By Bx CN CE SEx SEy SNx SNy
335 Sintesi della logica di riporto condizionale mediante mappe di Karnaugh -Appendice Occupandosi per esempio della sintesi del solo circuito per il carry, che si è già visto essere quello temporalmente critico: - per CE e CN separatamente si deve creare una tabella a doppia entrata, di dimensioni al più differenti di un unità tra orizzontale e verticale; - gli ingressi vanno quindi disposti metà orizzontalmente e metà verticalmente, senza un ordine particolare; AB ecd, oppure AD ecb, o altre disposizioni, non fa insomma differenza; - le colonne e le righe sono quindi identificate dalle coppie di valori assunti dagli ingressi. Le coppie devono susseguirsi in maniera da differire al più in 1 posizione binaria tra l una e la consecutiva; nel caso, non va bene perchè hanno variazioni in due posizioni, e così pure A questo proposito : Importante : le mappe di Karnaugh sono da vedere in modo circolare, cioè come se l estremità destra del rettangolo fosse riattaccata con il lato sinistro ed il lato verticale comparisse anche sotto quello orizzontale. Alternativamente, si può immaginare la mappa ripetuta infinite volte nello spazio, il che riproduce la stessa contiguità del ripiegamento: 20
336 Sintesi della logica di riporto condizionale mediante mappe di Karnaugh -Appendice La successione invece rispetta la regola precedente, e quindi la parte inerente CN della tavola di verità si può riscrivere come : Tabella CN : Ax Bx Ay By a questo punto si procede all identificazione, all interno della tabella, dei massimi rettangoli di celle contenenti 1 (cosiddetti cubi generalizzati ); essi devono avere lati lunghi 2 n celle; ad esempio 2x2, 4x1, 4x2,... e possono sfruttare la circolarità del metodo. Ogni cella può essere ricoperta da un qualsivoglia numero di rettangoli : 21
337 Sintesi della logica di riporto condizionale mediante mappe di Karnaugh -Appendice 3 Tabella CN : Ay By Ax Bx Tabella CE : Ay By Ax Bx Avendo scelto i sottocubi fatti da 1, si sta sintetizzando una forma canonica del 1 tipo, detta anche AND-OR o disgiuntiva; ogni rettangolo rappresenta un termine (tecnicamente denominato mintermine ) della somma logica, dato dal prodotto degli ingressi che compaiono con un valore solo sulle righe e sulle colonne occupate dal rettangolo stesso. Si avrà così che il sottocubo 2x2 a sfondo più chiaro nella tabella CN vede : - orizzontalmente, Ay stabile ad 1 e By che assume valori 1 e 0, nelle due colonne occupate; solo Ay fa parte nell espressione; - verticalmente, Ax stabile ad 1 mentre Bx varia da 1 a 0, nelle due righe occupate; solo Ax entra nell espressione finale che è : Ax Ay Se l ingresso che si mantiene costante nelle righe o colonne valesse 0, andrebbe posto nel prodotto sì, ma complementato. In ultima analisi, per le due uscite desiderate si ha (sempre in ordine di ombreggiatura, dal più chiaro al più scuro, dei rispettivi sfondi) : CN = Ax Ay + Bx Ay By + Ax Bx By 22
338 Sintesi della logica di riporto condizionale mediante mappe di Karnaugh -Appendice 3 CE = Ax By + Ay By + Ax Bx + Bx Ay + Ax Ay Scegliere i sottocubi composti da 0 invece avrebbe comportato una sintesi di forma canonica del 2 tipo, o OR-AND o congiuntiva, da svolgere con regole esattamente duali alle precedenti. Questo poteva sembrare vantaggioso nel caso della prima tabella, in cui l elevato numero di zeri lascia trovare rettangoli più grandi e quindi realizzazioni con meno ingressi; ma i rettangoli trovati, tutti a due input, sarebbero ben cinque costringendo ad avere una porta AND da 5 ingressi come stadio di collezione delle uscite OR! Per la seconda tabella invece il vantaggio è invece reale : Tabella CE : Ay By Ax Bx ed il risultato prodotto è: CE = (Ax+Ay) (Bx+Ay+By) (Ax+Bx+By) riducendo il fan-in massimo da 5 a 3, ossia regolarizzando un poco la forma dell albero OR- AND; prima infatti era un albero con base eccessivamente ampia. Le due espressioni che sarebbero più convenienti da realizzare sono in definitiva: CN = Ax Ay + Bx Ay By + Ax Bx By CE = (Ax+Ay) (Bx+Ay+By) (Ax+Bx+By) 23
339 Bibliografia Bibliografia [1] - J.C. Candy A use of double integration in Sigma Delta modulation IEEE Transactions on Communications, vol. COM-33, pagg , March 1985 [2] - J.C. Candy e G.C. Temes Oversampling Methods for A/D and D/A conversion tratto da Oversampling Delta-Sigma data converters - Theory, design and simulation IEEE Press, pagg [3] - R.E. Crochiere e L.R. Rabiner Interpolation and decimation of digital signals - A tutorial review Proceedings IEEE, vol. 69, pagg , March 1981 [4] - J.C. Candy Decimation for Sigma Delta modulation IEEE Transactions on Communications, vol. COM-34, pagg , January 1986 [5] - V.F. Dias, V. Liberali e F. Maloberti TOSCA user s guide - Version 1.0 (g) Dipartimento di Elettronica - Università di Pavia, March 1995 [6] - L.R. Rabiner e B. Gold Theory and application of Digital Signal Processing Prentice-Hall,
340 Bibliografia [7] - F. Rocca e M. Tedeschi Dispositivi numerici per l elaborazione dei segnali CLUP - CittàStudi, 1986 [8]-E.Dijkstra,O.Nys,C.Piguet e M.Degrauwe On the use of modulo arithmetic comb filters in Sigma Delta modulators IEEE Proceedings ICASSP 88, pagg , April 1988 [9] - T. Saramäki e H. Tenhunen Efficient VLSI-realizable decimators for Sigma-Delta Analog-to-Digital converters IEEE Proceedings ISCAS 88, pagg , June 1988 [10] - S. Chu e C.Sidney Burrus Multirate filter designs using comb filters IEEE Transactions on Circuits and Systems, vol. CAS-31, pagg , November 1984 [11] - H.L. Garner Theory of computer addition and overflows IEEE Transactions on Computers, vol. C-27, N. 4, April 1978 [12] - J.C Candy, B.A. Wooley e O.J. Benjamin A voiceband codec with digital filtering IEEE Transactions on Communications, vol. COM-29, pagg , June 1981 [13] - E. Dijkstra, M. Degrauwe, J. Rijmenants e O. Nys A design methodology for decimation filters in Sigma Delta A/D converters IEEE Proceedings ISCAS 87, pagg , May 1987 [14] - H. Meleis e P. Le Fur A novel architecture design for VLSI implementation of an FIR decimation filter IEEE Proceedings ICASSP 85, pagg , March
341 Bibliografia [15] - E. Roza Recursive bitstream conversion IEEE Transactions on Circuits and Systems - II : Analog and Digital signal processing, vol. 40, N.2, pagg , February 1993 [16] - S. Waser e M.J. Flynn Introduction to arithmetic for digital systems designers Holt,Rinehart & Winston, 1982 [17] - N.H.E. Weste e K. Eshraghian Principles of CMOS VLSI design - A systems perspective Addison-Wesley Publishing Company, 2 edizione [18] - H.B. Bakoglu Circuits, interconnections and packaging for VLSI Addison-Wesley Publishing Company, 1990 [19] - R.L. Geiger, P.E. Allen e N.R. Strader VLSI design techniques for analog and digital circuits McGraw-Hill Publishing Company, 1990 [20] - N.F. Gonçalves e H.J. De Man NORA: a racefree dynamic CMOS technique for pipelined logic structures IEEE Journal of Solid-State Circuits, vol. SC-18, N. 3, pagg , June 1983 [21] - J. Yuan e C. Svensson High-speed CMOS circuit technique IEEE Journal of Solid-State Circuits, vol. 24, N. 1, pagg , February 1989 [22] - J. Yuan e C. Svensson Pushing the limits of standard CMOS IEEE Spectrum, pagg.52-53, February
342 Bibliografia [23] - B. Riccò, F. Fantini e P. Brambilla Introduzione ai circuiti integrati digitali Zanichelli Telettra, 1991 [24] - C. Mead e L. Conway Introduction to VLSI systems Addison-Wesley Publishing Company, 1980 [25] - E.T. Lewis Optimization of device area and overall delay for CMOS VLSI designs Proceedings of the IEEE, vol. 72, N. 6, pagg , June 1984 [26] - R.Y.V. Chik e C.A.T. Salama Design of a 1.5 V full-swing bootstrapped BiCMOS logic circuit IEEE Journal of Solid State Circuits, vol. 30, N. 9, pagg , September 1995 [27] - A. Bellaouar, M.I. Elmasry e S.H.K. Embabi Bootstrapped full-swing BiCMOS/BiNMOS logic circuits for V supply voltage regime IEEE Journal of Solid State Circuits, vol. 30, N. 6, pagg , June 1995 [28] - Y. Nakase, H. Suzuki, H. Makino, H. Shinohara e K. Mashiko A BiCMOS Wired-OR logic IEEE Journal of Solid-State Circuits, vol. 30, N. 6, pagg , June 1995 [29] - K.M. Sharaf e M.I. Elmasry Active-pull-down nonthreshold logic BiCMOS circuits for high-speed low-power applications IEEE Journal of Solid State Circuits, vol. 30, N. 6, pagg , June
343 Bibliografia [30] - J.E. Solomon The monolitic Op Amp : a tutorial study IEEE Journal of Solid-State circuits, vol. SC-9, N. 6, December 1974 [31] - K. Joardar A simple approach to modeling cross-talk in integrated circuits IEEE Journal of Solid-State Circuits, vol. 29, N. 10, pagg , October 1994 [32] - W.S. Song e L.A. Glasser Power distribution techniques for VLSI circuits IEEE Journal of Solid-State Circuits, vol. SC-21, N. 1, February 1986 [33] - J-P. Morin ed E. Nercessian ST-SPICE User s manual - Version 3.0 SGS-Thomson Central R&D - Design Automation and Integrated Systems, June 1992 [34] - S. Sköld e R. Ayani Fast simulation of HDL models IEEE Potentials, pagg , December 1995/January
344 Ringraziamenti Molte persone hanno collaborato alla buona riuscita di questo progetto. In primo luogo ringrazio il mio tutore, Ing. Carlo Samori, per la sua disponibilità all ascolto, per la sua carica umana e per la pazienza che ha spesso saputo dimostrare nei miei confronti, preoccupandosi non solo del mio presente ma anche del mio futuro. Rinnovo tutta la mia stima al Prof. Andrea Lacaita, ringraziandolo per il suo impegno e per l alto esempio di animus pugnandi che mi ha saputo offrire ben prima di iniziare questo lavoro. Devo molto inoltre al Prof. Giancarlo Ripamonti per le preziose indicazioni bibliografiche e per altri consigli di cui è stato generoso, ora come in altre occasioni. Un ringraziamento speciale va tributato ai Proff. Alessandro De Gloria, dell Università di Genova, e Rinaldo Castello dell Università di Pavia per l interesse di cui mi hanno gratificato e per le utilissime indicazioni che mi hanno fornito, spartendo con me la loro competenza con una gentilezza davvero squisita. Ringrazio qui anche l Ing. Daglio e l Ing. Maiorca, della SGS-Thomson Microelectronics, per le loro indispensabili indicazioni di carattere tecnico che mi hanno consentito in più di una occasione di risolvere problemi altrimenti insormontabili. Desidero ringraziare inoltre i dottorandi Ing. Andrea Pacelli, Ing. Alessandro Spinelli ed Ing. Stefano Villa per il loro costante aiuto in tutte le questioni, informatiche o culturali che fossero. Accomuno in questo anche i miei colleghi tesisti, Dario Cini, Amos Bianchi, e gli altri che si sono succeduti nel dipartimento durante la mia presenza e che hanno saputo creare un ambiente unico per vitalità ed operosità. Infine, una menzione particolare va all Ing. Franco Zappa, che si è prodigato quant altri mai nel darmi una mano soprattutto nei momenti di difficoltà, e la cui presenza è sempre equivalsa ad una sicurezza. 29
LSS ADC DAC. Piero Vicini A.A
LSS 2016-17 ADC DAC Piero Vicini A.A. 2016-2017 Conversione Digitale-Analogica La conversione digitale-analogica (DAC, Digital to Analog Conversion) permette di costruire una tensione V (o una corrente
DECIMATORE DIGITALE A 200 MEGAHERTZ PER A/D SIGMA-DELTA
DECIMATORE DIGITALE A 200 MEGAHERTZ PER A/D SIGMA-DELTA DALL ARCHITETTURA AL LAYOUT Tesi di Laurea di Alfio Zanchi - 603716 Relatore : Correlatore : Prof. A.L. Lacaita Ing. C. Samori Corso di Laurea :
Capitolo IX. Convertitori di dati
Capitolo IX Convertitori di dati 9.1 Introduzione I convertitori di dati sono circuiti analogici integrati di grande importanza. L elaborazione digitale dei segnali è alternativa a quella analogica e presenta
Rappresentazione digitale del suono
Rappresentazione digitale del suono Perché rappresentazione del suono Trasmettere a distanza nel tempo e nello spazio un suono Registrazione e riproduzione per tutti Elaborazione del segnale audio per
Conversione analogico-digitale
Corso di Laurea a Distanza in Ingegneria Elettrica Corso di Comunicazioni Elettriche Campionamento e quantizzazione A.A. 2004-05 Alberto Perotti DELEN-DAUIN Conversione analogico-digitale L elaborazione
Campionamento e quantizzazione
Corso di Laurea a Distanza in Ingegneria Elettrica Corso di Comunicazioni Elettriche Campionamento e quantizzazione A.A. 2008-09 Alberto Perotti DELEN-DAUIN Conversione analogico-digitale L elaborazione
DISCIPLINA ELETTRONICA ED ELETTROTECNICA INDIRIZZO DI ELETTRONICA ED ELETTROTECNICA ARTICOLAZIONE ELETTRONICA 3 ANNO COMPETENZE ABILITA CONOSCENZE
DISCIPLINA ELETTRONICA ED ELETTROTECNICA INDIRIZZO DI ELETTRONICA ED ELETTROTECNICA ARTICOLAZIONE ELETTRONICA 3 ANNO MACRO-COMPETENZA A Applicare nello studio e nella progettazione di impianti e apparecchiature
D SISTEMI DI ELABORAZIONE DIGITALE DEI SEGNALI
Ingegneria dell Informazione Modulo SISTEMI ELETTRONICI D SISTEMI DI ELABORAZIONE DIGITALE DEI SEGNALI 10-Jan-02-1 1 Obiettivi del gruppo di lezioni D Analisi Sistemistica di soluzioni analogiche/digitali»
Conversione Analogico - Digitale
Conversione Analogico - Digitale Funzione: - convertire una grandezza analogica tensione) in formato digitale; cioè convertire un livello di tensione in una stringa di bit. A D non necessariamente in parallelo)
Ingegneria dell Informazione D SISTEMI DI ELABORAZIONE DIGITALE DEI SEGNALI. Analisi Sistemistica di soluzioni analogiche/digitali
Ingegneria dell Informazione Modulo SISTEMI ELETTRONICI D SISTEMI DI ELABORAZIONE DIGITALE DEI SEGNALI 10-Jan-02-1 Obiettivi del gruppo di lezioni D Analisi Sistemistica di soluzioni analogiche/digitali»
SEGNALE ANALOGICO. Un segnale analogico ha un ampiezza che varia in maniera continua nel tempo
ACQUISIZIONE SEGNALE ANALOGICO 6 5 4 3 2 t Un segnale analogico ha un ampiezza che varia in maniera continua nel tempo CONVERTITORE A/D Dispositivo che realizza la conversione tra i valori analogici del
Fondamenti di Elettronica Ing. AUTOMATICA e INFORMATICA - AA 2010/ Appello 09 Febbraio 2012
Fondamenti di Elettronica Ing. AUTOMATICA e INFORMATICA - AA 2010/2011 3 Appello 09 Febbraio 2012 Indicare chiaramente la domanda a cui si sta rispondendo. Ad esempio 1a) Esercizio 1. R 1 = 20 kω, R 2
Unità C: Conversione A/D e D/A. Cosa c è nell unità C
Elettronica per l informatica 1 Cosa c è nell unità C Unità C: Conversione A/D e D/A C.1 Catena di conversione A/D C.2 Convertitori D/A C.3 Convertitori A/D C.4 Condizionamento del segnale C.5 Convertitori
Conversione Analogico/Digitale
Conversione Analogico/Digitale La conversione Analogico/Digitale (A/D) e quella Digitale/Analogico (D/A) forniscono il legame tra il mondo delle grandezze fisiche (analogiche) e quello del calcolo e della
Conversione Analogico/Digitale
Conversione Analogico/Digitale 1 Fondamenti di Segnali e Trasmissione Conversione analogico/digitale (A/D) Per rappresentare numericamente un segnale continuo nel tempo e nelle ampiezze è necessario: Campionare
CAMPIONAMENTO CATENA ELETTROACUSTICA DIGITALE, CAMPIONAMENTO, QUANTIZZAZIONE
CAMPIONAMENTO CATENA ELETTROACUSTICA DIGITALE, CAMPIONAMENTO, QUANTIZZAZIONE Catena elettroacustica DIGITALE 2 Compressione/ Rarefazione dell aria Compressione/ Rarefazione dell aria ADC DAC Segnale elettrico
Elementi di informatica musicale Conservatorio G. Tartini a.a Sintesi del suono. Sintesi del suono
Elementi di informatica musicale Conservatorio G. Tartini a.a. 2001-2002 Sintesi del suono Ing. Antonio Rodà Sintesi del suono E neccessaria una tecnica di sintesi, ossia un particolare procedimento per
Esercizio C2.1 - Acquisizione dati: specifiche dei blocchi
Esercizio C2.1 - Acquisizione dati: specifiche dei blocchi È dato un segnale analogico avente banda 2 khz e dinamica compresa tra -2 V e 2V. Tale segnale deve essere convertito in segnale digitale da un
Le principali architetture dei Convertitori Analogico/Digitale
Le principali architetture dei Convertitori Analogico/Digitale 1 Principali architetture di convertitori A/D ADC a scala; ADC ad integrazione a rampa semplice, doppia e multipla; ADC ad approssimazioni
convertitore D/A convertitore A/D
n bit linee digitali N =2 n livelli range o dinamica tensione analogica d'ingresso IN IN convertitore D/A convertitore A/D OUT 1 filo linea analogica la tensione v out è quantizzata OUT n bit o N livelli
6. ACQUISIZIONE DIGITALE DEI SEGNALI
6. ACQUISIZIONE DIGITALE DEI SEGNALI La realtà fisica macroscopica è analogica Attualmente sono sempre più utilizzati sistemi digitali per il calcolo numerico, per l acquisizione, l elaborazione e la trasmissione
FONDAMENTI DI INFORMATICA
FONDAMENTI DI INFORMATICA CENNI ELEMENTARI AL TEOREMA DEL CAMPIONAMENTO E SPETTRO DI UN SEGNALE Prof. Alfredo Accattatis Fondamenti di Informatica - Alfredo Accattatis 2 Vi ricordate la slide introdotta
Rappresentazione digitale del suono
Rappresentazione digitale del suono Rappresentazione del suono Trasmettere a distanza, tempo e spazio Registrazione, riproduzione, elaborazione segnale Consumer e professional flessibilità, velocità costi
Corso di Fondamenti di Telecomunicazioni
Corso di Fondamenti di Telecomunicazioni 1 - INTRODUZIONE Prof. Giovanni Schembra 1 Argomenti della lezione Definizioni: Sorgente di informazione Sistema di comunicazione Segnali trasmissivi determinati
Campionamento e quantizzazione, errori, SNR. errori, tipi base, esempi di circuiti. errori, classificazione, esempi di circuiti
Elettronica per telecomunicazioni 1 Contenuto dell unità C Processo di conversione A/D Campionamento e quantizzazione, errori, SNR Convertitori D/A errori, tipi base, esempi di circuiti Convertitori A/D
T10 CONVERTITORI A/D E D/A
T10 CONVERTITORI A/D E D/A T10.1 Esplicitare i seguenti acronimi riguardanti i convertitori A/D e D/A: ADC.. DAC.. LSB.. SAR... S&H.. T10.2 Quanto vale l intervallo di quantizzazione in un ADC a 8 bit
Progetto dei Sistemi di Controllo Digitali. Docente: Prof. Francesco Amato
Progetto dei Sistemi di Controllo Digitali Docente: Prof. Francesco Amato 1 Schema di un sistema di controllo digitale Controllore digitale r e A/D e* u* D/A u y Processo Sistema a empo-continuo Sistema
Convertitori Analogico-Digitali o ADC. Generalità
Convertitori Analogico-Digitali o ADC ipi di convertitori Flash Ad approssimazioni successive Subranging Integratori a singola/doppia rampa, multislope Sigma delta Caratterizzazione degli ADC 1 Generalità
QUANTIZZAZIONE E CONVERSIONE IN FORMA NUMERICA. 1 Fondamenti Segnali e Trasmissione
UANTIZZAZIONE E CONVERSIONE IN FORMA NUMERICA Fondamenti Segnali e Trasmissione Campionamento e quantizzazione di un segnale analogico Si consideri il segnale x(t) campionato con passo T c. Campioni del
INTRODUZIONE AL CONTROLLO DIGITALE
INTRODUZIONE AL CONTROLLO DIGITALE Prima della rivoluzione digitale l implementazione hardware degli elementi di controllo e dei trasduttori era basata sull uso di componenti idraulici, pneumatici e di
MODULAZIONE AD IMPULSI
MODULAZIONE AD IMPULSI PM Pulse Modulation La portante è costituita da un segnale impulsivo periodico con le seguenti caratteristiche: ampiezza Vp, durata dell impulso, periodo T. All atto della modulazione,
1. CONVERSIONE ANALOGICO DIGITALE: SCHEMA, FUNZIONALITÀ E CARATTERISTICA DELL ADC
1. CONVERSIONE ANALOGICO DIGITALE: SCHEMA, FUNZIONALITÀ E CARATTERISTICA DELL ADC I dati numerici sono codificati, nei sistemi di elaborazione, in forma binaria. Per fissare le idee facciamo riferimento
I.P.S.I.A. Di BOCCHIGLIERO Conversione analogico digitale ---- Materia: Elettronica, Telecomunicazioni ed applicazioni. prof. Ing.
I.P.S.I.A. Di BOCCHIGLIEO a.s. 011/01 classe IV Materia: Elettronica, Telecomunicazioni ed applicazioni Conversione analogico digitale alunni Valente Francesco Chindamo Michelangelo prof. Ing. Zumpano
Esercitazione 6: Convertitori A/D Delta e Sigma-Delta
Esercitazione 6: Convertitori A/D Delta e Sigma-Delta Scopo dell esercitazione Gli obiettivi di questa esercitazione sono: - Verificare il comportamento di un convertitore A/D differenziale - Determinare
Appendice A. A.1 Amplificatore con transistor bjt
Appendice A A.1 Amplificatore con transistor bjt Il circuito in fig. A.1 è un esempio di amplificatore a più stadi. Si utilizza una coppia differenziale di ingresso (T 1, T 2 ) con un circuito current
Un convertitore D/A o digitale/analogico è un dispositivo che ha lo scopo di
Convertitore D/A Un convertitore D/A o digitale/analogico è un dispositivo che ha lo scopo di trasformare un dato digitale in una grandezza analogica, in generale una tensione. Naturalmente vi deve essere
In realtà i segnali con i quali dobbiamo confrontarci più frequentemente sono limitati nel tempo
Segnali trattati sino ad ora: continui, durata infinita,.. Su essi sono stati sviluppati strumenti per analizzare output di circuiti e caratteristiche del segnale: Risposta all impulso, prodotto di convoluzione,
Soluzione: prof. Stefano Mirandola PRIMA PARTE. 1) 2) Schema a blocchi e progetto circuitale della catena di condizionamento.
ITEC - ELETTRONICA ED ELETTROTECNICA Sessione ordinaria 206 ARTICOLAZIONE ELETTRONICA Tema di: ELETTROTECNICA ED ELETTRONICA Soluzione: prof. Stefano Mirandola PRIMA PARTE ) 2) Schema a blocchi e progetto
Fondamenti di Data Processing
Fondamenti di Data Processing Vincenzo Suraci Automazione INTRODUZIONE AL DATA PROCESSING ACQUISIZIONE DATI SCHEMA COSTRUTTIVO SCHEDA INPUT OSCILLATORE A FREQUENZA COSTANTE BANDA PASSANTE ACCORDATA AL
Il tema proposto può essere risolto seguendo due ipotesi:
Per la trattazione delle tecniche TDM, PM e Trasmissione dati si rimanda alle schede 41, 42, 43, 44, 45, 46, 47 e 48 del libro Le Telecomunicazioni del Prof. F. Dell Aquila. Il tema proposto può essere
Teoria dei Segnali Quantizzazione dei segnali; trasformata zeta
Teoria dei Segnali Quantizzazione dei segnali; trasformata zeta Valentino Liberali Dipartimento di Fisica Università degli Studi di Milano [email protected] Teoria dei Segnali Quantizzazione;
Misure con l oscilloscopio (e non) su circuiti con amplificatori operazionali
Misure con l oscilloscopio (e non) su circuiti con amplificatori operazionali Edgardo Smerieri Laura Faè PLS - AIF - Corso Estivo di Fisica Genova 2009 Amplificatore operazionale perché? Moltiplicazione
Esame di Stato per l abilitazione alla professione di Ingegnere II sessione, anno 2008 Candidati in possesso della Laurea triennale
Esame di Stato per l abilitazione alla professione di Ingegnere II sessione, anno 2008 Candidati in possesso della Laurea triennale Prima prova scritta 4 dicembre 2008 Tema di Informatica Dopo aver ricordato
ISTITUTO ISTRUZIONE SUPERIORE "L. EINAUDI" ALBA ANNO SCOLASTICO 2015/2016
ISTITUTO ISTRUZIONE SUPERIORE "L. EINAUDI" ALBA ANNO SCOLASTICO 2015/2016 CLASSE 5 I Disciplina: Elettronica PROGETTAZIONE DIDATTICA ANNUALE Elaborata e sottoscritta dai docenti: cognome nome Milio Davide
6. Amplificatori di potenza
6.1 Amplificatori switching 6. Amplificatori di potenza Lo studio degli amplificatori in classe A (capitolo 4) ha mostrato come ci sia una relazione lineare fra l ampiezza del segnale d ingresso e quello
Laboratorio di metodi di acquisizione dati. Giorgio Maggi
Laboratorio di metodi di acquisizione dati Giorgio Maggi Sommario La conversione Digitale analogica I vari tipi di ADC L SNR e ENOB Il Time to Digital converter L Input-Output Register Il sistema di acquisizione
Reti di Calcolatori a.a
Analogico e digitale 2 Corso di laurea in Informatica Reti di Calcolatori a.a. 2007-2008 Prof. Roberto De Prisco Capitolo 3 Dati e segnali Per essere trasmessi i dati devono essere trasformati in segnali
Comunicazioni Elettriche Esercizi
Comunicazioni Elettriche Esercizi Alberto Perotti 9 giugno 008 Esercizio 1 Un processo casuale Gaussiano caratterizzato dai parametri (µ = 0, σ = 0.5) ha spettro nullo al di fuori dellintervallo f [1.5kHz,
Corso di Fondamenti di Telecomunicazioni 1 - INTRODUZIONE
Corso di Fondamenti di Telecomunicazioni 1 - INTRODUZIONE 1 Argomenti della lezione Definizioni: Sorgente di informazione Sistema di comunicazione Segnali trasmissivi determinati e aleatori Architettura
Modulazione a larghezza di impulso ( PWM )
Modulazione a larghezza di impulso ( PWM ) La tecnica denominata P.W.M. ( pulse width modulation ) consta essenzialmente nel trasmettere l informazione attraverso un segnale impulsivo mediante la larghezza
Le modulazioni impulsive
Le modulazioni impulsive a cura di Francesco Galgani (www.galgani.it) Indice 1 Introduzione 2 2 La modulazione PAM 3 2.1 Cenni teorici....................................... 3 2.2 Simulazione con il computer
Acquisizione digitale dei segnali
Acquisizione digitale dei segnali Rodolfo Taccani Dipartimento di ingegneria ed architettura Presentazione elaborata dalle lezione del prof. Cigada - POLIMI Contenuti Conversione analogico/digitale (A/D)
ESERCIZI - SERIE N. 4
ESERCIZI - SERIE N. 4 EMISSIONE DI SEGNALI ANALOGICI Problema: convertire il risultato da formato binario, ottenuto dall'algoritmo di controllo ed elaborato dall'unità di governo realizzata con tecnologia
Convertitori D/A e A/D
Convertitori D/A e A/D n bit linee digitali N =2 n livelli range o dinamica tensione analogica d'ingresso IN IN convertitore D/A convertitore A/D OUT 1 filo linea analogica la tensione v out è quantizzata
SISTEMI DI ACQUISIZIONE
SISTEMI DI ACQUISIZIONE Introduzione Lo scopo dei sistemi di acquisizione dati è quello di controllo delle grandezze fisiche sia nella ricerca pura, nelle aziende e, per i piccoli utenti. I vantaggi sono:
Classe V specializzazione elettronica. Sistemi automatici
Macro unità n 1 Classe V specializzazione elettronica Sistemi automatici Sistema di sviluppo Arduino e traduttori Gli studenti proseguono e approfondiscono lo studio dei sistemi a microcontrollore e del
Acquisizione Dati. Introduzione
UNIVERSITÀ DEGLI STUDI DI CAGLIARI Dipartimento di Ingegneria Meccanica, Chimica e dei Materiali Corso di Sperimentazione sulle Macchine Acquisizione Dati Introduzione Introduzione In campo scientifico
ESEMPIO DI SVILUPPO DELLE COMPETENZE A PARTIRE DALLE LINEE GUIDA (PECUP DI UNA DISCIPLINA)
ESEMPIO DI SVILUPPO DELLE COMPETENZE A PARTIRE DALLE LINEE GUIDA (PECUP DI UNA DISCIPLINA) DISCIPLINA ELETTRONICA ED ELETTROTECNICA INDIRIZZO DI ELETTRONICA ED ELETTROTECNICA ARTICOLAZIONE ELETTRONICA
INDICE. Capitolo 1 Introduzione 1. Capitolo 2 Rappresentazione di Fourier di segnali e sistemi 19. Capitolo 3 Modulazione d ampiezza 99
INDICE Capitolo 1 Introduzione 1 1.1 Inquadramento storico 1 1.2 Applicazioni 4 1.3 Risorse principali e requisiti operativi 13 1.4 Teorie alla base dei sistemi di comunicazione 14 1.5 Osservazioni conclusive
Indice. I Dispositivi a semiconduttore 1. Prefazione. Prologo. Breve storia dell elettronica
Indice Prefazione Prologo. Breve storia dell elettronica XI XIII I Dispositivi a semiconduttore 1 1 Semiconduttori 3 1.1 Forze, campi ed energia 3 1.2 Conduzione nei metalli 6 1.3 Semiconduttori intrinseci
CAMPIONAMENTO E RICOSTRUZIONE DI SEGNALI
CAMPIONAMENTO E RICOSTRUZIONE DI SEGNALI 1 Fondamenti di segnali Fondamenti e trasmissione TLC Segnali in formato numerico Nei moderni sistemi di memorizzazione e trasmissione i segnali in ingresso sono
L amplificatore operazionale
L amplificatore operazionale terminali di input terminale di output Alimentazioni: massa nodo comune L amplificatore operazionale ideale Applichiamo 2 tensioni agli input 1 e 2 L amplificatore è sensibile
Analisi armonica su dati campionati
Sistemi di misura digitali Analisi armonica su dati campionati - 1 Analisi armonica su dati campionati 1 - Troncamento del segnale Distorsione di leakage L analisi di Fourier è un metodo ben noto per ottenere
