Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici Capitolo 1-1 1. Progettazione e realizzazione di ASIC. Metodologie di approccio. I fattori che il progettista deve valutare, nel momento che si accinge alla progettazione di sistema elettronico integrato, sono molteplici. Innanzitutto egli deve verificare che lo sviluppo di un nuovo circuito ASIC (Application Specific Integrated Circuit) sia effettivamente la miglior soluzione al problema. Ciò è così se non esistono in commercio, ad un costo conveniente, altre soluzioni, ovvero altri ASIC con le stesse funzioni, o microprocessori con caratteristiche tali da poter implementare le necessarie procedure via software, oppure insiemi di componenti meno complessi che, collegati opportunamente, permettano di soddisfare le specifiche richieste. Gli aspetti da valutare naturalmente non possono prescindere dai fattori costo e tempo di progettazione e realizzazione. La prima cosa che occorre analizzare a fondo sono le specifiche del sistema. Per quanto riguarda le caratteristiche tecniche sono da prendere in considerazione essenzialmente la complessità delle funzioni da implementare, la frequenza di lavoro, le condizioni operative. Da un punto di vista progettuale l ASIC può essere realizzato seguendo due tipologie di approccio: Full Custom oppure Semi Custom (vedi Figura 1). ASIC Full custom Semi custom Cell based Standard cell Cell generators Gate array Prediffused Compacted array Sea of gates Array based Antifuse Prewired Memory connected Figura 1 Le tipologie realizzative degli ASIC Nel primo caso il circuito integrato viene interamente progettato a basso livello e disegnando direttamente le maschere. Nel secondo caso la progettazione è a livello più alto e si utilizzano porte e sottocircuiti già progettati e caratterizzati, soffermandosi più che sulle primitive sulle connessioni tra queste. Se da un lato si perde la possibilità della regolazione fine di ogni blocco, soprattutto a livello
Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici Capitolo 1-2 di temporizzazione, è pur vero che comunque, per circuiti abbastanza complessi, questo sarebbe impossibile. La realizzazione di un circuito Semi Custom può essere di due tipi: Cell based oppure Array based. Nella prima categoria rientrano le metodologie Standard Cell e Cell Generators. Il metodo di progettazione Standard Cell consiste nell utilizzo di celle predefinite contenute in apposite librerie fornite dalla fonderia, mentre nella categoria dei Cell Generators rientrano i sistemi di sintesi automatica del layout di macrocelle a partire dalla loro funzione logica. Nella seconda categoria rientrano invece sistemi che fanno uso di basi circuitali precostituite, eventualmente modificabili a livello funzionale, alle quali vengono successivamente aggiunte le connessioni. Si possono classificare in Prediffused e Prewired. I primi, noti anche come MPGA, sono programmabili a livello di fonderia con le opportune maschere. In questa categoria rientrano i Gate Array, i Compacted Array ed i Sea of Gates. I secondi, noti anche come FPGA, sono programmabili sul campo e comprendono gli Antifuse ed i Memory Connected. Naturalmente alcune di queste differenti metodologie possono convivere sullo stesso circuito integrato. Si analizzeranno ora le diverse tecniche di progettazione mettendo anche in luce gli aspetti legati agli strumenti CAD utilizzati. Progettazione Full Custom. In questo caso il circuito integrato viene progettato direttamente a livello di layout, ovvero di maschere. Il progettista dovrà realizzare quindi il proprio sistema dimensionando tutti i componenti attivi (i transistori) e passivi cercando la maniera migliore per piazzarli topologicamente su silicio. Una fase preparatoria del progetto, che si basa sull analisi delle specifiche, riguarda la scelta della fonderia e della tecnologia più opportuna da utilizzare. Una tecnologia più avanzata permette di avere a disposizione un numero maggiore di die per ogni fetta di silicio, ma, naturalmente è più costosa e potrebbe avere una resa minore. Per verificare quest ultima affermazione occorrerebbe effettuare una analisi accurata del processo. Da una parte infatti una tecnologia più nuova potrebbe produrre un numero maggiore di imperfezioni per unità di superficie, dall altra, però, permette di produrre die più piccoli e quindi con minore probabilità di avere difetti. Una volta scelta la tecnologia si ottengono dalla fonderia le design rules, i parametri elettrici ed i modelli di simulazione per quella specifica tecnologia. Le design rules indicano al progettista tutte le dimensioni minime che occorre rispettare nel disegno del layout per poter ottenere gli indici di resa della fonderia. Le regole riguardano singoli layer o coppie di layer. Le regole vengono imposte da vincoli elettrici e realizzativi. I primi evitano che si creino problemi elettrici di scarso isolamento tra layer diversi, densità di corrente troppo elevate su linee conduttive, campi elettrici troppo elevati tra strutture. Gli altri permettono di ottenere invece geometrie regolari e prive di imperfezioni come corto circuiti tra linee diverse o linee interrotte. I parametri elettrici permettono di ricavare dal layout il valore dei componenti parassiti che compongono il circuito. Vengono normalmente forniti per ogni grandezza tre valori: un valore tipico e i due valori estremi. Il valore reale potrà variare tra questi e dipenderà dalle tolleranze realizzative del processo. Per circuiti particolarmente critici sarà opportuno
Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici Capitolo 1-3 utilizzare analisi tipo Montecarlo che tengano conto in modo statistico dell intero intervallo di variazione di tutti i componenti. I modelli di simulazione indicano, per i componenti attivi, i parametri da utilizzare durante la simulazione. La prima fase vera e propria del progetto consiste nel realizzare, attraverso un programma di Schematic Entry il disegno del circuito da realizzare, a livello di schematico, di transistori e componenti passivi. Dei componenti attivi, per esempio CMOS, è necessario specificare le dimensioni geometriche che saranno poi utilizzate per l implementazione su silicio. A questa fase segue naturalmente una fase di simulazione elettrica del circuito attraverso la quale avviene il controllo delle forme d onda di uscita in relazione alle forme d onda di ingresso specificate come stimoli del circuito stesso. Vengono qui usati i modelli di simulazione forniti dalla fonderia. Eventuali problemi riscontrati possono essere corretti modificando il circuito elettrico. Una volta che di tale circuito è stata costatata la correttezza da un punto di vista comportamentale si passa alla fase di realizzazione del layout. Lo strumento software utilizzato per produrre il layout di un circuito integrato è il Layout Editor. Questo è un programma di disegno che permette di specificare le opportune geometrie per ogni layer del circuito integrato che si intende realizzare. Il lavoro è naturalmente molto lungo e complesso. Occorre una conoscenza approfondita della tecnologia utilizzata e una ottima esperienza. Per certi componenti molto critici, soprattutto analogici occorre, per esempio rispettare certe regole generali di simmetria ed orientamento dei transistori affinché questi abbiano un comportamento identico. Inoltre bisogna evidentemente rispettare le regole di progetto imposte dalla fonderia. La verifica della correttezza a questo livello è eseguita automaticamente da un apposito software di Design Rules Checker. Questo esegue, durante il disegno, il controllo in tempo reale delle regole. In caso una, o più, di queste non sia stata rispettata, il progettista viene immediatamente avvisato. Oltre al core del chip occorre anche eseguire il piazzamento dei pad di alimentazione e dei segnali di ingresso e di uscita, ovvero delle piazzole sulle quali andrà effettuato il bonding dei fili di collegamento con i pin esterni. Il dimensionamento dei pad è definito dalla fonderia nelle design rules. È da notare che il numero dei pad di alimentazione è regolato da precise regole elettriche che impongono su ogni collegamento una limitata quantità di corrente. A volte il progettista è tenuto anche alla definizione delle scribe lanes, ovvero delle linee di taglio dei chip. Per far ciò egli deve seguire esattamente le specifiche delle design rules. Queste impongono di creare una opportuna struttura dei layer in prossimità del confine di ogni chip per facilitare l operazione ed evitare che il materiale si possa scheggiare. Completato il layout del chip, occorre controllarne la correttezza a livello circuitale. Per far ciò ci si avvale di un ulteriore software di Parameter Extraction. Questo, ricevendo in ingresso la descrizione geometrica del circuito e i parametri elettrici forniti dalla fonderia, estrae uno schematico del circuito equivalente riconoscendo le topologie degli elementi attivi e passivi. Un controllo di coerenza può essere a questo punto effettuato per verificare che il circuito estratto dal layout sia equivalente, in prima approssimazione, a quello precedentemente disegnato. Differenze potrebbero esserci soprattutto nei componenti passivi parassiti. Questo circuito può essere quindi nuovamente simulato con gli stessi parametri già utilizzati nella prima fase ed i risultati di questa operazione sono quindi confrontati con quelli desiderati. Differenze non volute di comportamento possono essere corrette modificando il layout e ripetendo le ultime fasi della procedura.
Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici Capitolo 1-4 Figura 2 Design rules Alcatel Mietec
Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici Capitolo 1-5 Il progetto così completato viene salvato in un formato di file standard, come CIF o GDS2, ed inviato in fonderia per la realizzazione. La fonderia provvederà quindi ad estrarre le informazioni necessarie per la generazione delle maschere da utilizzare nel processo di fabbricazione. Evidentemente una progettazione di questo tipo può essere eseguita solo per circuiti analogici o per creare un blocco che svolga una certa funzione da inserire in un circuito digitale più complesso. In questo caso, come si vedrà in seguito, il risultato sarà la definizione di una cella e la sua caratterizzazione. Caratterizzare una cella digitale significa estrapolare dal suo comportamento quelle caratteristiche utili per utilizzare la cella stessa nel sistema completo che la contiene. In particolare le caratteristiche sono la funzione logica, le capacità su ogni pin di ingresso ed i tempi di ritardo, per ogni possibile transizione di uscita. La funzione logica può essere espressa in forma tabellare o di funzione algebrica booleana. Le capacità di ingresso sono specificate in pf. Il tempo di ritardo si compone di due termini: un tempo di ritardo intrinseco ed uno legato alla capacità vista dall uscita. Il primo, misurato in ns, è il tempo di ritardo misurato a vuoto, ovvero senza carico in uscita, ed è dovuto al tempo di transito dei segnali nella porta ed alle capacità parassite interne. Il secondo termine è circa lineare al variare della capacità vista dal pin e viene misurato in ns/pf. In Figura 2 sono illustrati alcuni esempi di design rules della fonderia Mietec Alcatel per il processo 0.7 µm CMOS. Progettazione Semi Custom Standard Cell. In questo caso l approccio è a livello di porte e di blocchi logici ed il progettista lavorerà sullo schematico logico del proprio sistema. Rispetto ad un approccio di tipo Full Custom è evidentemente molto più veloce in quanto permette di progettare ad un livello più alto. Come nel caso precedente la prima operazione da compiere è quella dell analisi delle specifiche di progetto e la scelta della tecnologia più opportuna. Esistono diversi approcci per la realizzazione di circuiti Semi Custom. Il primo che si analizzerà è quello di tipo Standard Cell. In questo caso il chip viene realizzato utilizzando celle standard predefinite in una libreria. Scegliere la tecnologia significa scegliere la fonderia e la libreria di celle. Normalmente ogni fonderia ha diverse librerie disponibili che si differenziano per il tipo di processo implementato. Una libreria contiene centinaia di celle già sviluppate e caratterizzate dai progettisti della fonderia. L utente che le deve utilizzare conosce di ogni cella solo la sua caratterizzazione e le sue dimensioni geometriche esterne, ma non il suo layout che viene mantenuto riservato e non è comunque in alcun modo modificabile se non dalla fonderia. La caratterizzazione della cella è quella vista in precedenza con la differenza che, normalmente, le capacità non vengono espresse in pf, ma in una unità convenzionale detta standard load (SL). Uno standard load equivale alla capacità media di ingresso di una porta ed il suo valore è indicato tra le specifiche della libreria. Una capacità di ingresso potrà quindi variare, ad esempio, secondo la porta, tra 0.7 SL a 2 SL. Anche i tempi di ritardo non intrinseci sono espressi in ns/sl. Esprimere le capacità in questo modo è abbastanza comodo in quanto permette di avere una idea immediata delle grandezze in gioco.
Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici Capitolo 1-6 Una certa funzione logica può essere implementata in libreria attraverso più celle che si differenziano sui parametri elettrici, come tempi di ritardo o possibilità di pilotaggio in uscita. Un approccio Semi Custom prevede dunque una progettazione che utilizzi le celle standard della libreria scelta. Lo strumento software che permette questo è uno Schematic Entry. L utente piazza quindi sul suo progetto le istanze delle celle disponibili. A questa fase segue quella di simulazione digitale. Questa tiene conto dell aspetto funzionale del circuito e, in parte della parte legata ai tempi di ritardo. Questi ultimi vengono ricavati, per ogni cella, considerando il ritardo intrinseco e quello legato alla capacità vista sull uscita di ogni cella. Questa è data dalla somma delle capacità di ingresso dei pin delle celle collegate e delle capacità delle linee che vi portano i relativi segnali. Queste ultime sono però ancora incognite al programma e possono solo essere stimate. Ogni cella di libreria viene progettata in fonderia rispettando certi precisi vincoli geometrici che ne rendono più semplice il successivo piazzamento sul chip. Tutte le celle hanno la stessa altezza e, secondo la loro complessità, possono essere più o meno larghe. I contatti di alimentazione e di massa vengono posti sempre alla stessa altezza su entrambi i lati verticali della cella. Trattandosi di processi CMOS, occorre realizzare il pozzo N-Well per contenere i transistori a canale P. Questo viene sempre posto alla stessa altezza sulla cella. Questi vincoli topologici permettono di poter affiancare tra loro più celle e di trovare automaticamente collegate tra loro le alimentazioni e l N-Well. In Figura 3 è illustrata questa tecnica. VDD N - Well GND Figura 3 Allineamento di due standard cell. I processi tecnologici mettono a disposizione sempre almeno due livelli di metallo separati dall ossido spesso e quindi tra loro normalmente isolate. Questo permette di utilizzare per le linee orizzontali e verticali dei collegamenti elettrici sempre metalli diversi che vengono connessi solo quando è necessario attraverso un Via, ovvero un foro sull ossido spesso in corrispondenza dell intersezione che permette al metallo superiore di creare il contatto. Negli esempi illustrati le linee orizzontali saranno in Metal-2 e quelle verticali in Metal-1. I segnali di ingresso e uscita vengono resi disponibili su entrambi i lati orizzontali della cella, per quanto appena detto, in Metal-1.
Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici Capitolo 1-7 Metal 2 N - Well Diffusione P Polisilicio Diffusione N Contatto Metal 1 Via Figura 4 Esempio di layout di una standard cell. In Figura 4 è illustrato un tipico layout di una cella inverter, con le indicazioni dei layer. Il segnale di ingresso è quello di sinistra, mentre quello di uscita è a destra. Una volta conclusa la fase di simulazione prima descritta, occorre creare dallo schematico realizzato il layout del chip. Questa operazione viene eseguita automaticamente da un software di Placement & Routing. La procedura si divide in due fasi. La prima, quella di Placement, consiste nel ricercare la migliore disposizione delle celle sul chip ottimizzando la lunghezza dei collegamenti che portano i segnali. Come già detto, le celle vengono affiancate in modo da creare un unico pozzo N-Well e due unici segnali di VDD e GND. VDD GND IN OUT Figura 5 Esempio dei collegamenti in una riga standard cell.
Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici Capitolo 1-8 I collegamenti dei segnali vengono effettuati al di sopra e al di sotto della riga costituita dalle celle dalla seconda fase, quella di Routing. L aspetto di una riga può essere quella illustrata in Figura 5. Si può notare come le linee in Metal-1 e Metal-2 si possono intersecare senza collegare i due segnali. Naturalmente in un chip vengono create più righe in modo da rendere il core del circuito dall aspetto più quadrato possibile. La Figura 6 illustra il layout finale di un chip. Si possono distinguere il core centrale costituito da cinque righe separate dai cosiddetti canali, nei quali vengono fatte passare le linee di collegamento dei segnali. All esterno si distinguono i pad che, attraverso opportune linee, non indicate in figura, portano le alimentazioni ed i segnali di ingresso e uscita tra il core ed i pad di uscita. Figura 6 Layout di un chip realizzato in standard cell Questi sono di due tipi. Quelli dotati di opportune piazzole per la saldatura dei fili del bonding ed i corner pad che si trovano sugli angoli e provvedono a mettere in contatto i quattro lati. Diverso sarebbe l aspetto se la tecnologia rendesse disponibile più di due livelli di metallizzazione. Con più di due livelli, ad esempio, il piazzamento delle celle può essere fatto senza bisogno di creare i canali ed il core occuperà, in proporzione, circa metà dello spazio. Un discorso interessante è quello inerente il problema del piazzamento delle celle. Innanzitutto occorre porre l attenzione su quali parametri occorre valutare per procedere alla valutazione di una funzione costo che indichi quanto buono è un piazzamento. Si può
Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici Capitolo 1-9 realizzare il piazzamento ottimizzando la superficie del die, oppure la frequenza di funzionamento massima del sistema, oppure la potenza dissipata. Un buon algoritmo dovrebbe tenere sotto controllo tutte queste grandezze. È però evidente come non sia possibile valutare queste grandezze a priori partendo da una certa disposizione delle celle. Queste sono variabili che possono solo essere stimate valutandone altre come, ad esempio, la lunghezza dei collegamenti, che hanno il loro equivalente elettrico nelle capacità parassite. Se queste sono basse, risulteranno minori i tempi di ritardo e quindi la frequenza massima di lavoro. Essendo poi la potenza dissipata su ogni nodo per ogni transizione legata alla relazione P = ½ C V², è chiaro come diminuendo C, diminuisca anche P. Anche le dimensioni del chip, infine, vengono influenzate: l area di un chip dove sia stato effettuato un cattivo piazzamento delle celle può essere anche tre volte maggiore del caso ottimo. Ma anche la lunghezza dei collegamenti deve, in un certo modo, essere stimata, poiché la fase di Routing avviene a posteriori dopo quella di Placement. Questa stima però è abbastanza semplice e si può mettere in relazione con la distanza euclidea tra i pin delle due celle, oppure, ancor meglio, con la somma delle proiezioni lungo gli assi verticale e orizzontale. Il problema rimane comunque come valutare la funzione costo. Scegliere come funzione la somma delle singole lunghezze dei collegamenti, potrebbe non essere adeguata. Ipotizziamo come esempio il circuito illustrato in Figura 7. C 1 C 2 C 3 Figura 7 Circuito di esempio per la valutazione dei tempi di ritardo Siano C 1, C 2 e C 3 i valori delle capacità normalizzate in SL dei collegamenti come indicato in figura. Si ipotizzino pari a 0.3 ns i tempi di ritardo intrinseci T I di entrambe le porte, 0.5 ns/sl i tempi di ritardo relativi alle capacità in uscita T C e 1 SL le capacità C I sugli ingressi. Il tempo di ritardo globale del blocco così costituito sarà: T TOT = T I + max (T I + T C * (C 1 + C I ) + T I + T C * (C 2 + C I ), T I + T C * (C 3 + C I )), ovvero: T TOT = 0.3 + max (0.3 + 0.5 * (C 1 + 1) + 0.3 + 0.5 * (C 2 + 1), 0.3 + 0.5 * (C 3 + 1)). L ottimizzatore cercherà di minimizzare la quantità C TOT = C 1 + C 2 + C 3. Si supponga di aver ottenuto come miglior risultato C 1 = 3 SL, C 2 = 4 SL e C 3 = 2 SL. Sarà dunque C TOT = 9 SL ed il tempo T TOT calcolato sarà pari a 5.4 ns.
Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici Capitolo 1-10 Figura 8 Celle di libreria standard cell ES2
Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici Capitolo 1-11 È però possibile che un altra disposizione, valutata come peggiore rispetto a questa, avesse ottenuto come risultato C 1 = 2 SL, C 2 = 3 SL e C 3 = 5 SL. C TOT risultava infatti pari a 10 SL. Il calcolo di T TOT però avrebbe portato ad un valore pari a 4.4 ns. È ovvio che l ottimizzatore dovrebbe valutare non solo la lunghezza totale, ma almeno la distribuzione statistica delle singole lunghezze prendendo in considerazione non solo la media, ma anche la varianza di tale distribuzione. Ciò comunque prescinde ancora dalla topologia del circuito in esame. Stabilita comunque la funzione costo, un altro problema, assolutamente non banale, riguarda l algoritmo da usare per la minimizzazione. Questa è una funzione le cui variabili di ingresso sono la posizione di ogni cella sul chip. Se le celle sono n, si avranno n! permutazioni possibili delle celle. Anche se le celle fossero solo 20 (ma normalmente possono essere 100.000) si avrebbero circa 2 10 18 possibilità di piazzamento delle celle. Provandone un milione al secondo occorrerebbero comunque 100.000 anni! L elevata complessità del problema risiede nel fatto che esso appartiene alla classe dei problemi NP-complete, e per questi non è possibile trovare algoritmi appropriati che diano la soluzione ottima. In generale però questo tipo di problemi non necessitano la soluzione ottima, ma ci si accontenta di arrivare ad una soluzione comunque molto buona. Sono quindi da utilizzare tecniche di ricerca del minimo di funzioni. In genere, partendo da una configurazione iniziale, si procede per gradi migliorando di volta in volta la configurazione esaminata fino a che non si riesce ulteriormente a migliorarla. In letteratura sono stati esplorati una grande quantità di algoritmi ed alcuni di questi verranno successivamente analizzati. Per quanto riguarda questo tipo di progettazione è da notare che la scelta dei componenti da piazzare sullo schematico durante la progettazione deve essere concorde con le celle messe a disposizione dalla libreria fornita dalla fonderia e ciò lega in parte la progettazione alla scelta della tecnologia da utilizzare. È pur vero però che la migrazione tra una tecnologia ed un altra è abbastanza semplice in quanto potrebbero essere fornite tabelle di equivalenza di componenti tra una tecnologia e l altra, soprattutto se si tratta di una stessa fonderia. Ciò può accadere, ad esempio, quando si vuole realizzare un circuito integrato in 0.25 µm a partire da una implementazione in 0.35 µm della stessa casa. In Figura 8 sono mostrati alcuni fogli descrittivi di quattro celle di libreria della tecnologia Standard Cell 0.7 µm della ES2. Le prime due celle sono entrambe porte AND a due ingressi, ma con caratteristiche elettriche diverse. La terza implementa una funzione logica a cinque ingressi e la quarta è un flip-flop di tipo D. Si possono notare le caratteristiche geometriche delle celle (notare per tutte la medesima altezza pari a 38 µm), il numero di transistori, la dissipazione in potenza, le capacità di ingresso e uscita e i tempi di ritardo per tutte le possibili variazioni degli ingressi. Progettazione Semi Custom con Cell Generators. Esistono alcune strutture digitali che non necessitano una definizione dettagliata da parte del progettista, in quanto esistono disponibili appositi strumenti che realizzano in modo automatico le apposite strutture a livello di layout a partire da una descrizione ad alto livello. È questo il caso di strutture regolari e ripetitive, oppure di sottosistemi particolarmente standardizzati e definibili in modo parametrico. Fanno parte di questa categoria le memorie statiche, le memorie a sola lettura, sistemi di codifica e decodifica, sistemi di logica combinatoria. Esistono allo scopo CAD specifici che, a partire da semplicissime descrizioni dell oggetto da realizzare, generano automaticamente il layout. Questi strumenti vengono normalmente
Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici Capitolo 1-12 realizzati congiuntamente con le fonderie che conoscono in modo dettagliato le caratteristiche della tecnologia. Il risultato finale sarà una macrocella che potrà essere inserita automaticamente, al pari di una Standard Cell, nel layout finale del chip. Essa andrà naturalmente trattata dai programmi di placement e di routing in modo differente in quanto le sue dimensioni sono normalmente molto maggiori di quelle di una normale cella di libreria. Apposite procedure sono in grado anche di realizzare celle molto più complesse tipo convertitori D/A e A/D o addirittura di rendere disponibili interi blocchi con le funzioni di un microprocessore (tipo Z80 o 386). Progettazione Semi Custom Array Based. La realizzazione di circuiti integrati attraverso una progettazione di tipo Full Custom o Standard Cell ha sicuramente il vantaggio di ottenere circuiti ad alte prestazioni e molto compatti. Svantaggi sono invece da imputare al costo (piuttosto alto se non ammortizzato dalla vendita di molti pezzi), dal tempo di fabbricazione in fonderia (circa 15 settimane) e dal problema di dover testare i componenti finali per verificare la correttezza da un punto di vista di realizzazione in fonderia. Questi problemi possono essere in parte risolti attraverso una progettazione di tipo Array based. Queste tecnologie si basano sull idea di realizzare in fonderia strutture standard facilmente riconfigurabili che includano già la maggior parte delle fasi realizzative. Negli anni le varie fonderie hanno sviluppato una innumerevole varietà di queste strutture ed è improponibile farne di tutte una descrizione dettagliata. Una possibile classificazione si può sicuramente fare tuttavia tra strutture prediffused (prediffuse) e strutture prewired (precollegate). Alla prima categoria appartengono quei prodotti che necessitano di essere completati in fonderia e sono anche identificati dalla sigla MPGA (Masked Programmable Gate Array). In questo caso la fonderia realizza su silicio una serie di blocchi più o meno complessi (transistor, elementi di memoria, porte logiche, etc.), ma lascia in sospeso il processo di fabbricazione evitando gli ultimi passi che sono quelli relativi alle metallizzazioni che realizzano i collegamenti tra i blocchi stessi. Il nome Array deriva dal fatto che normalmente i blocchi sono disposti in forma ordinata di matrice. In questo modo il progettista, attraverso appositi CAD, conoscendo quali blocchi sono disponibili sul circuito, fornisce alla fonderia il layout dei collegamenti finali tra i blocchi e tra questi ed i pad dei segnali di ingresso e uscita. I tempi di realizzazione in fonderia che interessano il progettista sono solo gli ultimi ed il circuito integrato potrà essere disponibile dopo un paio di settimane. Inoltre il costo delle maschere di fabbricazione relative ai primi passi tecnologici viene ammortizzato su più progetti. La compattezza del circuito finale sarà in aggiunta piuttosto buona. Si consideri che in questo modo sono stati realizzati anche circuiti piuttosto complessi come microprocessori (vedi lo SparcStation I della Sun Microsystems). Alla seconda categoria appartengono quei prodotti che non necessitano di una ulteriore fase di completamento del layout in fonderia. Essi sono noti spesso con la sigla FPGA (Field Programmable Gate Array) e vengono configurati direttamente dall utente finale. I collegamenti tra i blocchi, in questo caso, sono già presenti, ma devono essere configurati. Questo avviene attraverso apposite matrici di commutazione, le quali, una volta programmate istradano i segnali in modo da collegare opportunamente le celle del dispositivo.
Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici Capitolo 1-13 Figura 9 Struttura di una FPGA Le celle stesse, normalmente tutte uguali, sono programmabili ed hanno una parte combinatoria ed una di memorizzazione. In questo modo possono realizzare macro blocchi sequenziali. In Figura 9 è mostrato un layout di principio di una FPGA. Tra i bus orizzontali e verticali di collegamento si notano le matrici di commutazione che permettono di effettuare le corrette connessioni. Figura 10 Struttura di un CLB Xilinx
Marcello Salmeri - Progettazione Automatica di Circuiti e Sistemi Elettronici Capitolo 1-14 In Figura 10 si può vedere come è realizzato un blocco (CLB, Configurable Logic Block) di una FPGA Xilinx, mentre in Figura 11 è rappresentato come vengono implementate le connessioni tra i blocchi. Figura 11 Strutture di connessione di FPGA Xilinx Secondo il tipo di componente, la programmazione delle celle configurabili e delle connessioni tra queste sono realizzate in modo definitivo o attraverso elementi di memorizzazione. Nel primo caso la cosa avviene attraverso elementi detti antifuse. Questi sono dispositivi normalmente funzionanti come circuito aperto, ma in grado di implementare una connessione definitiva quando sottoposti ad un campo elettrico di programmazione abbastanza elevato. Questa operazione avviene in modo analogo a quanto avviene nelle memorie programmabili (PROM, EPROM, EEPROM). Nel secondo caso il dispositivo, ogni volta che viene inizializzato, deve essere sottoposto ad una fase di programmazione. Esso legge la sua configurazione da una apposita linea in ingresso attraverso una sequenza di bit inviata da una memoria esterna (per esempio una PROM) seriale. Tali dispositivi, sebbene ben più costosi dei primi, sono molto versatili, in quanto possono essere riconfigurabili e riutilizzabili ogni volta che si desidera. Come nel caso della progettazione Standard Cell, anche nel caso della progettazione tipo array based sono necessari appositi software che rendano possibile la trasformazione di uno schematico in un file di programmazione che permetta al dispositivo di essere programmato in modo da espletare la funzione desiderata. Sarà compito di questi il cercare la migliore mappatura del circuito desiderato negli elementi disponibili ottimizzando al massimo i ritardi dovuti soprattutto alle connessioni tra i blocchi. Un parametro interessante, dipendente dal tipo di blocchi forniti e dalla tipologia delle connessioni, nonché dalla bontà dell algoritmo di routing, è la percentuale delle celle che si sono potuti utilizzare nel dispositivo. Alcuni di questi software sono normalmente forniti direttamente dalle case costruttrici.