1. Progettazione e realizzazione di ASIC.



Documenti analoghi
Analisi e diagramma di Pareto

Elettronica dei Sistemi Digitali Dispositivi logici programmabili

FUNZIONI DI IMPAGINAZIONE DI WORD

LABORATORIO DI SISTEMI

Dispensa di Informatica I.1

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Database. Si ringrazia Marco Bertini per le slides

Plate Locator Riconoscimento Automatico di Targhe

V= R*I. LEGGE DI OHM Dopo aver illustrato le principali grandezze elettriche è necessario analizzare i legami che vi sono tra di loro.

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Strutturazione logica dei dati: i file

Consumo di Potenza nell inverter CMOS. Courtesy of Massimo Barbaro

Calcolatori: Algebra Booleana e Reti Logiche

Elementi di Psicometria con Laboratorio di SPSS 1

Appunti sulla Macchina di Turing. Macchina di Turing

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

CONTROLLO IN TENSIONE DI LED

per immagini guida avanzata Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel

Algebra Di Boole. Definiamo ora che esiste un segnale avente valore opposto di quello assunto dalla variabile X.

Gestione dei segnali analogici nei sistemi di automazione industriale con PLC.

ARCHITETTURE DI SISTEMI INTEGRATI PER APPLICAZIONI SPECIFICHE. Design Flow

Testi di Esercizi e Quesiti 1

IL COLLAUDO DI ACCETTAZIONE

PROGRAMMA SVOLTO NELLA SESSIONE N.

Dimensione di uno Spazio vettoriale

Reti sequenziali sincrone

( x) ( x) 0. Equazioni irrazionali

VALORE DELLE MERCI SEQUESTRATE

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Il concetto di valore medio in generale

SPC e distribuzione normale con Access

Capitolo 13: L offerta dell impresa e il surplus del produttore

e-dva - eni-depth Velocity Analysis

Dispense di Informatica per l ITG Valadier

Dispositivi di rete. Ripetitori. Hub

~ Copyright Ripetizionando - All rights reserved ~ STUDIO DI FUNZIONE

Guida alla compilazione on-line delle domande di Dote Scuola A.S per le Famiglie INDICE

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

Calcolatori Elettronici B a.a. 2006/2007

Determinare la grandezza della sottorete

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

TECNICO SUPERIORE PER L AUTOMAZIONE INDUSTRIALE

Progetto di simulazione molecolare per il corso di Complementi di algoritmi A.A

Il Campionameto dei segnali e la loro rappresentazione. 1 e prende il nome frequenza di

IL RISPARMIO ENERGETICO E GLI AZIONAMENTI A VELOCITA VARIABILE L utilizzo dell inverter negli impianti frigoriferi.

Sistema operativo: Gestione della memoria

LE FUNZIONI A DUE VARIABILI

MAPPE DI KARNAUGH. Nei capitoli precedenti si è visto che è possibile associare un circuito elettronico o elettrico ad una funzione logica.

Laboratorio di Informatica

Università di L Aquila Facoltà di Biotecnologie Agro-alimentari

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

NOVITA VERSIONE La soluzione CAD/CAM per il cablaggio elettrico

Esercitazione N. 1 Misurazione di resistenza con metodo volt-amperometrico

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Memorie ROM (Read Only Memory)

Registratori di Cassa

Cosa è un foglio elettronico

Come masterizzare dischi con Nero 11

Uso di base delle funzioni in Microsoft Excel

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

La distribuzione Normale. La distribuzione Normale

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi

Circuiti amplificatori

Stampa su moduli prestampati utilizzando Reflection for IBM 2011 o 2008

Soluzione dell esercizio del 12 Febbraio 2004

USO DI EXCEL CLASSE PRIMAI

Elettronica dei Sistemi Programmabili

INDIRIZZI IP ARCHITETTURA GENERALE DEGLI INDIRIZZI IP FORME DI INDIRIZZI IP CINQUE FORME DI INDIRIZZI IP

EXCEL FUNZIONI PRINCIPALI

Olga Scotti. Basi di Informatica. Excel

MOCA. Modulo Candidatura. [Manuale versione 1.0 marzo 2013]

ISTITUTO COMPRENSIVO MONTEGROTTO TERME SCUOLA PRIMARIA DISCIPLINA: MATEMATICA - CLASSE PRIMA OBIETTIVI DI APPRENDIMENTO

TECNICHE DI SIMULAZIONE

Operatori logici e porte logiche

STATISTICA IX lezione

Laurea Specialistica in Informatica

Corso di. Dott.ssa Donatella Cocca

I database relazionali (Access)

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007

Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A

RECUPERO DATI LIFO DA ARCHIVI ESTERNI

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

Transitori del primo ordine

Sistemi Informativi Territoriali. Map Algebra

7. Layer e proprietà degli oggetti

Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati

Project Cycle Management La programmazione della fase di progettazione esecutiva. La condivisione dell idea progettuale.

Effetto reddito ed effetto sostituzione.

Alcuni consigli per un uso di base delle serie di dati automatiche in Microsoft Excel

Prova di Laboratorio di Programmazione

PROGETTO EM.MA PRESIDIO

FIRESHOP.NET. Gestione del taglia e colore.

Calcolatori Elettronici A a.a. 2008/2009

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

Funzioni in C. Violetta Lonati

risulta (x) = 1 se x < 0.

ELABORAZIONE DI DATI TRIDIMENSIONALI - RELAZIONE HOMEWORK 2

L analisi dei dati. Capitolo Il foglio elettronico

Transcript:

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.