Sei sulla pagina 1di 34

MANUALE per LUSO di CADENCE DISEGNO del LAYOUT VIRTUOSO

CAP 1 CADENCE
Lobiettivo di questo capitolo utilizzare Cadence. Per fare ci, lambiente di ciascun utente stato settato in modo appropriato. Nella home di ogni utente, c infatti una cartella denominata CADENCE_AMS. Per vederla, cliccare con il tasto sinistro del mouse sul desktop e scegliere Home tra le Applications, come in figura.

La cartella CADENCE_AMS contiene dei file importanti di configurazione. Se si utilizza Cadence con tecnologie differenti, bene creare una cartella contenente i file di configurazione per ogni tecnologia. Ogni utente trover gi il suo ambiente settato in modo corretto. Nella cartella CADENCE_AMS verr salvato il lavoro svolto (layout, schematici, verifiche). Tra i file gi presenti, particolarmente importante il cds.lib che contiene informazioni sulla tecnologia utilizzata e, come dice il nome, sulle librerie di Cadence che vengono caricate. Per lanciare Cadence, occorre aprire una schell: cliccare con il tasto sinistro del mouse sul desktop e scegliere Terminal. Nella shell, editare il comando cd CADENCE_AMS e premere invio. Editare poi il comando che lancia Cadence in tecnologia AMS: ams_cds tech c35b4 newtech mode fb & Il comando vero e proprio in realt icfb e ams_cds uno script, i cui attributi si usano la prima volta che si lancia Cadence da una particolare libreria (in questo caso dalla libreria CADENCE_AMS) e dicono al programma che tecnologia utilizzare (c35b4 significa che la lunghezza di canale 0.35um e ci sono 4 livelli di metalma ogni tecnologia ha la sua nomenclatura), che una nuova tecnologia (-newtech) e che si desidera sia disegnare/simulare schematici che layout (-mode fb).

CAP 2 DISEGNO DEL LAYOUT


Lobiettivo di questo capitolo il disegno del layout. Per farlo, dalla barra di icfb-log, cliccare su File->Create New->Library. Scegliere il nome della libreria (ad esempio: prove_Layout), Attach to an existing techfile e usare TECH_C35B4. In questo modo i layout disegnati nella libreria prove_Layout avranno i layer della tecnologia scelta. Per disegnare il layout di un circuito cliccare su File->Create New->Cellview e scegliere il tool Virtuoso: comparir automaticamente la vista layout, come in figura.

Per disegnare il layout, prendiamo innanzitutto confidenza con gli strumenti principali di disegno. Sulla toolbar verticale della finistra di Virtuoso layout editor, compaiono

gli strumenti: Save, Fit, Zoom, Stretch, Copy, Move, Delete, Undo, Properties, Instance, Path, Polygon, Label, Rect, Ruler. Tra questi, quello di gran lunga pi utilizzato per disegnare il layout Rect, perch consente di disegnare rettangoli (e quindi oltre alle strutture geometriche dei transistor, anche le piste di connessione). Ad esempio, per diesgnare un rettangolo con il layer diffusione, selezioniamo prima il layer Diff dalla LSW (Layer Selection Windows) si veda il cerchio viola- e poi lo strumento Rect (cerchio arancio). Infine puntando il mouse e trascinando possibile disegnare il rettangolo. Una volta disegnato il rettangolo di diffusione, si prenda confidenza con i comandi: Stretch, Copy e Move, che sono quelli pi utilizzati nel disegno del layout. I comandi di Cadence sono particolarmente semplici da utilizzare. Basta cliccare sul comando desiderato e poi selezionare loggetto che si vuole copiare, cancellare, muovere e cos via. Ma possibile anche fare il contrario, cio selezionare loggetto cliccandolo con il mouse e poi scegliere il comando. Infine, i comandi possono essere selezionati anche dalla toolbar orizzontale di cadence, selezionando il men a tendina di Edit.

CAP 3 CELLE E VISTE


Ogni utente pu creare in Cadence (e verranno salvate in CADENCE_AMS) una o pi librerie contenenti il lavoro svolto. Le librerie contengono le celle, Cell, che sono i singoli circuiti o blocchi circuitali disegnati. Poich Cadence pu essere utilizzato sia per la simulazione circuitale (come Spice) che per il disegno e la verifica del layout, ogni cell pu avere pi view cio ogni cella pu essere vista come schematico (cio schema circuitale), oppure come layout, oppure come simbolo (cio come scatola nera) e cos via.

Passiamo al 2 manuale!

MANUALE per LUSO di CADENCE Disegno dello Schematico Uso di Analog Environment

CAP 1 DISEGNO DELLO SCHEMATICO


Lobiettivo di questo capitolo il disegno dello schematico. Lo schematico il circuito che vogliamo dimensionare e simulare. Per procedere in modo ordinato, creiamo una cartella, detta anche libreria, in cui contenere tutti i circuiti che vogliamo disegnare. La cartella in Cadence si chiama Library. Per farlo, dalla barra di icfb-log, cliccare su File->Create New->Library, come illustrato nella figura sottostante.

Scegliere il nome della libreria (ad esempio: prove_schematici), Attach to an existing techfile e usare TECH_C35B4.

In questo modo gli schematici disegnati nella libreria prove_schematici saranno pronti per usare, nelle simulazioni, i modelli dei dispositivi della tecnologia AMS 0.35.

Infatti lo schematico composto dal simbolo grafico dei dispositivi, che possono essere ideali (come i generatori di tensione, i resistori e i condensatori ideali) oppure reali, cio propri della tecnologia (come per esempio gli NMOS, i PMOS, etc..). Questi ultimi, per essere simulati, hanno bisogno dei corrispondenti modelli circuitali. Una volta creata la libreria che conterr gli schematici, siamo pronti per disegnarne uno. Dobbiamo allora andare sulla barra dellicfb-log e cliccare su File->Create New>Cellview, compilare Cell Name (che il nome del circuito che vogliamo disegnare, ad esempio inverter) e scegliere il tool Composer-Schematic: comparir automaticamente la vista (View Name) schematic, come in figura.

Le viste sono i modi per rappresentare un circuito. Ad esempio, noi ora siamo interessati a simulare un circuito per scegliere la dimensione ottima dei transistor o il valore opportuno della tensione di alimentazione; in altre parole siamo interessati allo schema elettrico. Ma dello stesso circuito possiamo anche creare il layout, cio il disegno delle maschere che compongono il circuito integrato, oppure ne possiamo creare un simbolo per utilizzarlo allinterno di un circuito pi complesso. Per distinguere lo schema elettrico dal layout, dalla rappresentazione simbolica e cos via, si utilizzano le viste. Se ci interessa lo schema elettrico, la View Name sar schematic, se vogliamo disegnare il layout della cella inverter invece la View Name sar layout, e via dicendo. Una volta cliccato su OK, si aprir la finestra con sfondo nero (del programma Virtuoso Schematic Editing) su cui ora possiamo disegnare lo schema circuitale della cella inverter. Per farlo possiamo usare la toolbar verticale della finestra, composta da varie icone che corrispondono ai comandi pi utili e frequenti. Come suggerisce il nome, vogliamo disegnare un inverter che composto da un NMOS e da un PMOS. Iniziamo a posizionare lNMOS. Per farlo bisogna cliccare sullicona corrispondente a Instance, come in figura.

Cliccando su Instance si apre la finestra di dialogo Add Instance che ci consente di scegliere il dispositivo che vogliamo mettere, tra quelli contenuti nelle varie librerie. Clicchiamo quindi su Browse e sfogliamo le librerie per trovare il componente desiderato, che troviamo nella libreria PRIMLIB, alla voce nmos4. Ne scegliamo come vista symbol.

Se ci servono componenti ideali, come ad esempio, generatori di tensione etc li selezioniamo dalla libreria analogLib e scegliamo come vista symbol.

Da analogLib, per lalimentazione clicchiamo su Category: Sources->Independent e scegliamo Vdc; per la massa Category:Sources->Global e scegliamo gnd. I MOS invece sono propri della tecnologia e quindi li dobbiamo prendere dalla libreria PRIMLIB. Una volta che abbiamo posizionato i componenti, per cambiarne le dimensioni (dei transistor) o i valori (dei generatori), dobbiamo selezionare il dispositivo e poi cliccare su Properties nella toolbar verticale di Virtuoso Schematic Editing.

Comando Wire

Infine, una volta disposti tutti i componenti circuitali, li possiamo collegare usando il comando Wire (narrow) cliccando e trascinando il mouse. Quando abbiamo finito di disegnare lo schema elettrico e abbiamo impostato tutti i valori dei componenti discreti e le dimensioni dei transistor, dobbiamo ricordarci di salvare lo schematico, cliccando sul primo bottone dallalto della toolbar verticale Check and Save.

Prima di simulare il circuito ricordarsi di fare Check and Save e non Save soltanto!

CAP 2 USO DI ANALOG ENVIRONMENT


Lobiettivo di questo capitolo il disegno dello schematico. Lo schematico il circuito che vogliamo simulare. Consideriamo ad esempio lo schematico inverter che abbiamo disegnato nel cap. 1 e che riportato in figura.

Per semplicit, le dimensioni dei transistor sono quelle di default, il condensatore in uscita ideale (quindi si usa la libreria analogLib, componente cap, valore di default 1pF), lalimentazione tramite un generatore ideale vdc del valore di 2V, come la

polarizzazione dei gate, che a 1V. Una volta terminato il disegno e cliccato su Check and Save, impariamo a simulare il circuito. Dalla toolbar orizzontale di Virtuoso Schematic Editing, selezioniamo: Tools->Analog Environment, come in figura:

La finestra di Analog Environment si presenta come nella figura in alto: compaiono il programma di simulazione (spectre), definito dalla tecnologia, e lo stato della simulazione (ready perch non ci sono simulazioni in corso). Sulla toolbar orizzontale ci sono i men di Session, Setup, e cos via. Session permette di salvare lo stato (cio tutti i parametri settati, il tipo di simulazione, etc) della simulazione e di

ricaricarlo. Setup importante soprattutto per definire i modelli dei transistor (essi sono gi impostati se lo schematico in una libreria legata -attached- ad un file di tecnologia) e per impostare le simulazioni di corner (*lo vedremo in dettaglio in seguito). Analysis permette di scegliere il tipo di simulazione (DC, AC, Transitorio, etc). Variables consente di impostare alcuni parametri circuitali come variabili (in questo modo si possono, ad esempio, fare pi simulazioni al variare, ad esempio, della tensione di alimentazione, o delle dimensioni dei transistor, e cos via). Output serve a salvare le uscite (correnti, tensioni, espressioni ). Simulation il comando per generare la netlist e fare le simulazioni; permette anche di controllare i file .log della simulazione. Results serve a visualizzare i risultati della simulazione, in formato numerico, oppure come forma donda, a seconda del tipo di simulazione. Tools mette a disposizione calculator, parametric analysis, Monte Carlo, (*li vedremo con maggiore dettaglio in seguito). Per la cella inverter, ci interessa fare uno sweep in DC della tensione di ingresso (cio la tensione con cui sono polarizzati i gate dei transistor) per vedere la trans caratteristica Vout=f(Vin). Per farlo, clicchiamo su Analysis->Choose->dc. Comparir una finestra simile a quella sottostante:

2 3
4

Scegliamo la simulazione dc (passo 1), salviamo il punto di lavoro (passo 2), impostiamo la variabile di cui vogliamo fare lo sweep (in questo caso il parametro di un componente, infatti facciamo variare la tensione del generatore) (passo 3), selezionando il componente (il generatore di tensione) sulla finestra dello schematico (passo 4) e indicando qual il parametro che vogliamo variare (dc vdc DC voltage), come nella finestra sottostante.

Lo Sweep Range da impostare 0V-2V. Ora lanciamo la simulazione cliccando su Simulation->Netlist and Run, oppure cliccando sullicona del semaforo verde. In questo modo verr generata la netlist e poi sar eseguita la simulazione. Ogni volta che si modifica lo schematico, occorre non solo rifare la simulazione ma anche rigenerare la netlist!

Per simulare il circuito ricordarsi di fare Netlist and Run e non Run soltanto!

Appena finita la simulazione si pu visualizzare il risultato: Results->Direct Plot>DC, come in figura:

Cliccando poi sul ramo della tensione di uscita, si otterr unimmagine simile a questa:

La finestra che visualizza i risultati caratterizzata da una toolbar orizzontale che permette di ottimizzare la visualizzazione e di accedere a tool utili, come calculator. Si prenda confidenza con i principali comandi della toolbar.

CAP 3 CREAZIONE DEL SIMBOLO


Lobiettivo di questo capitolo la creazione del simbolo a partire dallo schematico. Ci pu essere utile per inserire linverter che abbiamo creato in un circuito pi complesso o in un test bench. Per farlo dobbiamo togliere dallinverter i generatori e inserire i pin. In questo caso avremo 4 pin: un pin di alimentazione, uno di ingresso, uno di uscita e uno di massa. Per inserire i pin, clicchiamo sul comando pin nella toolbar verticale di Virtuoso Schematic Editing e compiliamo la finestra di dialogo del comando pin, mettendo il tipo (ad esempio input Output) e il nome del pin (ad esempio Vdd), come in figura.

Ecco lo schematico finale che deve essere salvato con il comando Check and Save, comprensivo dei 4 pin.

Siamo ora pronti a creare il simbolo. Dall Icfb-Log di Cadence, clicchiamo su File>New->Cellview e creiamo la cella inverter, view symbol utilizzando il tool Composer-Symbol.

Si aprir cos la finestra di Virtuoso Symbol Editing, la cui toolbar orizzontale contiene i men a tendina dei comandi Tool, Design, Window, Edit, Add, Check, Options. Per creare il simbolo, scegliere Design->Create Cellview->From Cellview e compilare la finestra di dialogo mettendo From View Name: schematic To View Name: symbol.

Dopo averla compilata come suggerito in figura, apparir una domanda sibillina:

Rispondiamo con convinzione Replace (non Modify!, che a discapito del significato non modifica nulla). Ora, prima che compaia il simbolo, possiamo esprimere le nostre

preferenze sulla collocazione dei pin, compilando la finestra di dialogo Symbol Generation Options riportata qui sotto.

Ed infine comparir il simbolo del nostro inverter: una black-box con 4 pin. Per esercizio, si crei ora una cella (view schematic) che permette di simulare linverter (utilizzando il simbolo).

MANUALE per LUSO di CADENCE Disegno del Layout DRC LVS RCX

CAP 1 DISEGNAMO UN NMOS


Lobiettivo di questo capitolo imparare a disegnare il layout di un MOS. Per farlo dobbiamo innanzitutto conoscere i layer che vengono utilizzati; in generale, alcuni di questi sono standard e intuitivi, altri dipendono dal processo tecnologico utilizzato e possono servire per distinguere i vari dispositivi (si pensi ad esempio ad una tecnologia che mette a disposizione transistor con soglia regolare, con soglia bassa, con soglia nulla e cos via). Esistono tre modi per cimentarsi nel disegno del MOS: il primo consiste nel disegnare il MOS seguendo la documentazione fornita dalla tecnologia (layer utilizzati, regole di disegno, etc), il secondo consiste nellosservare una cella parametrica, il terzo consiste nellusare direttamente la cella parametrica. Dal punto di vista didattico utile considerare per ora i primi due metodi e, in particolare, il secondo. Il primo modo quello infatti pi lungo e complesso: un esempio di documentazione fornito dal documento CMOS035_DR in cui sono elencati i layer, le strutture (cio i dispositivi integrabili) e le regole di disegno. Con un po di fortuna, per, la fonderia che produrr il nostro circuito ci metter a disposizione le celle parametriche. Cosa sono le celle parametriche? Sono i dispositivi integrabili (MOS, condensatori, resistori, etc), rappresentati nelle varie viste (schematic, symbol o spectre, layout), e con dimensioni impostabili. Per capire meglio, apriamo la cella parametrica nmos4, vista layout, che troviamo nella libreria PRIMLIB. La cella rappresenta il layout di un transistore NMOS, avente W=10um e L=0.35um. E una cella parametrica e questo significa che quando viene richiamata come istance in un progetto, il progettista pu settare le dimensioni (W, L e numero di finger, cio di gate->per fare i transistor interdigitati) e il layout si modifica automaticamente, ottimizzando anche il numero di contatti di source e di drain.

Vediamo come fatta la cella parametrica di un NMOS. Per farlo, clicchiamo su Design->Summary, come in figura, e osserviamo che sia apre una finestra di dialogo contenente lelenco di tutti i layer che compongono la cella. Apprendiamo quindi che lNMOS composto dai layer: NPLUS, DIFF, CONT, MET1, POLY1. Il gate in POLY1, source e drain sono fatti con NPLUS e DIFF e contengono i contatti, gi cortocircuitati tra loro con una striscia di MET1. Osserviamo che manca il contatto di gate e il contatto di substrato. Pu essere utile zoomare sulla figura e lo si pu fare anche disegnando un rettangolo con il tasto destro del mouse. Inoltre pu essere comodo visualizzare di volta in volta i layer, selezionando/deselezionando AV (all visible) e NV (not visible) nella finestra LSW (layer selection window). Ora potremmo divertirci a misurare la cella parametrica, in particolare possiamo controllare se vengono rispettate alcune regole di disegno. Nel file CMOS035_DR riportata anche la griglia minima per disegnare il layout, che di 0.025um. Per visualizzare e modificare i disegni in modo corretto occorre perci modificare la griglia di Virtuoso Layout Editing e impostarla a 0.025um. Lo si fa cliccando sulla toolbar orizzontale di Virtuoso e scegliendo Options->Display. Apparir una finestra di dialogo cos:

A questo punto possiamo utilizzare lo strumento righello (Rules) dalla tolbar verticale di Virtuoso e misurare lestensione della NPLUS su DIFF per controllare che la regola NP.E.1 Minimum NPLUS extension of DIFF 0.25 sia rispettata. Altre regole facili da verificare sono quelle riguardanti i contatti, il metal1 e il polisilicio. Nella cella parametrica larea su silicio ottimizzata e dunque le regole di disegno sono rispettate scegliendo i valori minimi. Ora proviamo a disegnare un NMOS di dimensioni: W=3um e L=0.35um, imitando la cella nmos4, che per ha dimensioni W=10um e L=0.35um.

Innanzitutto, partiamo dalle dimensioni del canale e disegnamo un rettangolo di polisilicio di dimensioni 3um X 0.35um, che rappresenta il gate del transistor. Prima per sistemiamo la griglia di visualizzazione da Options->Display (come spiegato precedentemente). Oltre al rettangolo di POLY per avere lNMOS dovremmo usare anche i layer DIFF e NPLUS. Inoltre poich le aree di source e drain devono avere i contatti, il layer DIFF dovr essere sufficientemente ampio da contenere un contatto e le regole dicono CO.C.1 Minimum DIFFCON to GATE spacing 0.3, CO.W.1 Fixed CONT width 0.4, CO.E.1 Minimum DIFF enclosure of DIFFCON 0.15. Quindi quanto deve estendersi il layer DIFF? Di almeno 0.85um, di cui 0.3um servono per tenere il contatto distante dal polisilicio del gate, 0.4um servono per realizzare il contatto vero e proprio e 0.15um servono per estendere attorno al contatto la diffusione. Vediamo nella figura il nostro MOS che si sta formando

Ovviamente mancano ancora parecchie cose: i contatti di source e drain, i contatti di gate (che in realt non ci sono nemmeno nella cella parametrica ma che ovviamente vanno aggiunti), linformazione che si tratta di un N (servir il layer NPLUS) e i contatti di bulk (anche questi assenti nella cella parametrica, per questioni di comodit). Innanzitutto diamo linformazione che si tratta di un NMOS, usando il layer NPLUS, che stando alla regola NP.E.1 Minimum NPLUS extension of DIFF 0.25 dovr estendersi di 0.25um oltre il layer DIFF, come in figura:

Proseguiamo poi con la sistemazione dei contatti di source e drain. Esistono due modi per disegnare il contatto: utilizzare singolarmente i layer CONT e MET1, dimensionandoli manualmente, oppure usare il comando (dalla toolbar orizzontale di Virtuoso) Create->Contact e selezionando ND_C che significa contatto di NDIFF.

Osserviamo che il contatto disegnato in questo modo una vera e propria cella parametrica: infatti dalla finestra di dialogo vediamo che possibili creare in modo automatico array o matrici di contatti, semplicemente modificando il numero di righe e di colonne (Rows e Columns). Le dimensioni del singolo contatto e la distanza tra contatti sono invece gi impostate in modo corretto, rispettando le regole di disegno CO.W.1 Fixed CONT width 0.4 e CO.S.1 Minimum CONT spacing 0.4. I contatti cos creati sono inoltre completi, perch la cella contiene tutti i layer (anche se ridondanti, cio gi presenti nel layout): CONT, MET1, DIFF e NPLUS. I layer ridondanti non si sovrappongono, come erroneamente si pu pensare guardando il disegno che risulta a rattoppi. Il contatto va posizionato in modo da soddisfare la regola di vicinanza con il polisilicio: CO.C.1 Minimum DIFFCON to GATE spacing 0.3. Inoltre, considerata la dimensione W=3um del transistor c spazio per mettere 3 contatti, cortocircuitati tra loro, come si vede in figura.

Ora dobbiamo soddisfare la regola PO.O.1 Minimum POLY1 extension of GATE 0.4 e allungare il layer di polisilicio di 0.4um. La dimensione complessiva del rettangolo di POLY1 sar perci di 3.8um X 0.35um. A questo punto, abbiamo realizzato un transistor NMOS con W=3um e L=0.35um perfettamente uguale alla corrispondente cella parametrica e decidiamo perci di controllare il nostro layout con il tool Assura DRC (Design Rule Check), Il MOS da noi disegnato uguale a quello delle celle della libreria PRIMLIB e dunque ci aspettiamo di non aver fatto nessun erroregiusto?

CAP 2 ASSURA DRC


Per eseguire il controllo delle regole di disegno, dalla toolbar orizzontale di Virtuoso, clicchiamo su Assura->Run DRC e vediamo aprirsi una finestra di dialogo simile a questa:

E importante verificare che la tecnologia sia c35b4c3 e che file di regole sia quello giusto (drc.rul) e che il percorso sia corretto. Il risultato che otteniamo :

Gli errori elencati sono: mancanza dei contatti di substrato, mancanza del contatto di gate, regole di densit non rispettate. In realt perci non sono dei veri e propri

errori di DRC ma sono errori di ERC (electrical check rule), alcuni inoltre non sono errori ma warning, come ad esempio minimum density. Aggiungiamo il contatto di gate (da Create->Contact scegliendo P1_C, perch il contatto di POLY1), rispettando la regola PO.C.1 Minimum POLY1 to DIFF spacing 0.2 e i contatti di substrato (si usa il contatto PD_C perch il substrato di tipo p) rispettando la regola OD.S.1 Minimum DIFF spacing 0.6. Il layout ottenuto :

Gli errori residui segnalati dal DRC sono errori fittizi cio sono errori di density oppure di ERC, dovuti al fatto che la cella non collegata ad altre celle (gate, source e drain sono, perci, flottanti). Supponiamo ora di collegare il gate con il drain del nostro mos (in configurazione a diodo) e il source con il substrato. Per farlo basta aggiungere delle piste di MET1, larghe almeno 0.5um (M1.W.1 Minimum MET1 width 0.5). In questo modo abbiamo eliminato anche gli errori di ERC, perch non abbiamo pi terminali flottanti.

E utile inoltre mettere delle etichette (Label) e dei pin per meglio comprendere i risultati dellLVS (confronto layout-schematico) e dell RCX (estrazione dei dispositivi e dei parassiti). Si usa perci il comando Label dalla toolbar orizzontale di Virtuoso.

Si sceglie il layer PIN della pista su cui si vuole mettere la label, si clicca su Label, si d il nome e si posiziona la label sulla pista. Per attribuire alla label creata un pin (cio un terminale che verr letto anche da LVS e RCX) occorre usare il comando Create->Pins from Labels dalla toolbar orizzontale di Virtuoso Layout Editing.

I pin possono anche essere creati dopo aver posizionato tutte le label necessarie. Per controllare di aver inserito il numero corretto di label e di pin (e in generale per fare

molti altri tipi di controlli) utile il comando Edit->Search della toolbar orizzontale di Virtuoso.

Con il posizionamento dei pin, possiamo considerare finito il layout, che salviamo!

CAP 3 - ASSURA LVS


Un tool utilissimo quando si disegnano circuiti integrati lLVS. Esso infatti ci permette di verificare se il layout disegnato corrisponde effettivamente al circuito che vogliamo. Pu essere banale quando si tratta di un solo transistor, ma sempre meglio controllare passo per passo ci che si sta disegnando per non ritrovarsi alla fine con errori di difficile comprensione. Per fare il confronto dobbiamo avere ovviamente uno schematico a disposizione. Per comodit lo scegliamo con lo stesso nome del layout (provaMOS, ad esempio), ma con view name schematic. Ora se controlliamo nel Library Manager, osserviamo che la cella provaMOS ha due view: layout e schematic. Anche nello schematico, abbiamo messo gli stessi pin che abbiamo usato nel layout. Sar pi comprensibile cos il risultato dellLVS. Per inserire i pin nello schematico, si usa:

Pin

Osserviamo che nello schematico, abbiamo editato le propriet del transistor per farlo uguale a quello del layout (cio con W=3um e L=350nm). Una volta disegnato lo schematico, lo salviamo con check and save e torniamo alla view layout per usare il tool LVS. Come per il DRC, dobbiamo cliccare sulla toolbar orizzontale di Virtuoso Layout Editing e scegliere Assura-> Run LVS. Compare una finestra di dialogo con gi impostato tutto ci che serve: non ci resta, perci, che dare lOK:

Incrociamo le dita Il messaggio che vorremmo vedere questo:

Cosa succede se la sibilla dellLVS ci dice Schematic and Layout dont Match? Non scoraggiamoci, succede sempre almeno una volta nella vita del Layoutista! Premendo yes nella finestra di dialogo sopra riportata comparir il risultato dettagliato dellLVS. Riassumendo e semplificando moltissimo, esistono due tipi di errori: errori veri e errori di forma. Nei primi rientrano: corto circuiti, circuiti aperti, numero diverso di dispositivi tra layout e schematico, dimensioni e parametri diversi nei dispositivi, nodi collegati in modo sbagliato. Nei secondi rientrano ad esempio i mismatch tra i pin. Alcuni dei pi comuni sono: nel layout abbiamo chiamato la pista di massa gnd, nello schematico labbiamo chiamata GND; ci siamo dimenticati di mettere tutti i pin, i pin sono di tipo diverso (input, output o input/output?), oppure abbiamo disegnato label e pin con un layer sbagliato o che non viene riconosciuto. Come sistemare tutto in modo che lLVS dia il risultato positivo? Ovviamente se ci sono errori veri si devono controllare le piste e i dispositivi. Il consiglio principale per uno solo: non facciamo un unico LVS alla fine di tutto il disegno, quando ormai la complessit troppo alta!

CAP 4 ESTRATTO (RCX) E SIMULAZIONE DELLESTRATTO


Il DesignKit (DK) fornisce un altro strumento di tortura per il Layoutista masochista: lestratto. Come tante cose brutte, molto utile, specialmente quando il circuito che vogliamo disegnare delicato e pretenzioso. Il primo passo da compiere lLVS. Senza aver eseguito un LVS (non importa se con esito positivo o negativo) non possiamo fare lestratto. Possiamo poi fare lestrazione dal layout dei dispositivi e dei parassiti (capacitivi-sempre-, resistivi-nei DK evoluti, induttivi-non mi sono mai capitati DK cos evoluti!). Che differenza c tra i dispositivi e i parassiti? La domanda banale solo allapparenza. In pratica i dispositivi riconosciuti tali dal DK sono quelli presi dalla Libreria della Tecnologia (ad esempio, il nostro transistor, ma anche un condensatore o un resistore) e visti anche dallLVS, mentre i parassiti sono elementi circuitali creati dalla sovrapposizione o accostamento di opportuni layer.

Per estrarre il Layout, dalla toolbar orizzontale di Virtuoso Layout Editing dobbiamo cliccare su Assura-> Run RCX. La finestra che compare la seguente:

Nel Setup, risulta gi tutto impostato correttamente. Per loutput invece abbiamo diverse possibilit: pu essere salvato come extracted view oppure come netlist. In entrambi i casi possiamo poi simularlo. Se abbiamo pi dimestichezza con lambiente grafico di Analog Environment, per, pi comodo salvarlo come extracted view. Nell Extraction possiamo scegliere se estrarre solo i parassiti capacitivi o anche resistivi. Ad esempio, possiamo mettere C only, coupled e poi mettere il nodo di massa Ref Node, che nel nostro layout si chiama Gnd. In questo modo dallestratto avremo i dispositivi e le capacit parassite, viste da ogni nodo verso il nodo di Gnd.

Vediamo ora come si presenta l Extracted view.

Ora che abbiamo lestratto, pu essere utile rifare su di esso le simulazioni fatte sullo schematico. Per farlo, occorre innanzitutto salvare la vista av_extracted come schematic. Ovviamente dobbiamo cambiare il nome alla cella se non vogliamo sovrascrivere lo schematico vero e proprio. Ad esempio, se la cella provaMOS possiede la vista layout, schematic e av_extracted, potremmo salvare provaMOS av_extracted come provaMOSext (ext dovrebbe ricordarci che si tratta di un estratto) schematic. Perch stiamo copiando un estratto come schematico? Perch in questo modo possiamo creare un simbolo associato allestratto,

cio una scatola con pin di ingresso e uscita, che poi possiamo simulare nellambiente Analog Environment.

Ora, per creare il simbolo, dalla toolbar di icfb-log clicchiamo su File->New->Cellview e impostiamo provaMOSext symbol. Dalla toolbar orizzontale di Virtuoso symbol editing, clicchiamo su Design->Create->Cellview->From Pin List, come abbiamo gi visto precedentemente (cap.3 del manuale sulluso di Analog Environment, pag. 15). Alla fine possiamo inserire il simbolo, che associato allestratto del nostro layout, in un normale schematico (ad esempio provaMOSext-sim, vista schematic) per fare le simulazioni.

Nello schematico per le simulazioni tratteremo questo simbolo come gli altri che abbiamo usato finora, cio attaccheremo i pin ai wire, useremo generati di tensione e corrente, etc A seconda della complessit del circuito che simuliamo, potremmo accorgerci che le simulazioni con lestratto sono pi lente di quelle con lo schematico soltanto. Questo dovuto al fatto che nella netlist ci sono molti pi nodi, a causa dellestrazione dei parassiti. Lestrazione pu essere filtrata, cio si pu suggerire allRCX di considerare solo parassiti grossi e pericolosi! FINE