Simulazione Circuitale SPICE Lucidi del Corso di Elettronica Digitale Modulo 6 Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica (EOLAB) Simulazione SPICE SPICE è un software per la simulazione di circuiti a livello transistor diventato ormai lo standard, sviluppato negli anni ’70 all’università di Berkeley. Esistono diverse versioni di SPICE che si differenziano per aspetti esteriori (interfaccia grafica, ausilio alla simulazione) ma che si basano sullo stesso motore di simulazione e la stessa sintassi. Noi utilizzeremo LTspice (SwitcherCAD III), della Linear Technologies. Una versione freeware con interfaccia grafica completa e senza limitazioni nel numero di transistor o nodi (come capita per molte versioni demo). 17 Ottobre 2006 ED - Simulazione Spice Massimo Barbaro Software commerciali Fra le versioni commerciali di simulatori tipo SPICE (di alcuni di essi esistono versioni demo ma, tipicamente, presentano limitazioni di uso, come un limitato numero di nodi circuitali o componenti o la disabilitazione di alcune funzioni): Versioni freeware del simulatore: HSPICE (Synopsys) PSPICE (Cadence) Eldo (Mentor Graphics) Multisim (Electronics Workbench) Winspice (piattaforme Windows) Ngspice (piattaforme Linux) Alcuni simulatori che NON implementano lo stesso motore di simulazione di SPICE: Spectre (Cadence) Nanosim (Synopsys) 17 Ottobre 2006 ED - Simulazione Spice Massimo Barbaro Design entry Esistono due meccanismi principali per fornire al software la descrizione del circuito che deve essere simulato (design entry): Schematic entry: il circuito viene descritto graficamente mediante un tool che consente di piazzare i singoli componenti (MOS, capacitori, generatori, etc.) su un foglio (sheet) ed interconnetterli fra loro. Il grafico viene chiamato schematico. Netlist entry: il circuito viene descritto mediante un file di testo (netlist), tramite una opportuna sintassi che fornisce informazioni sui componenti utilizzati ed il modo in cui sono connessi. Tipicamente, anche i simulatori dotati di schematic entry effettuano la simulazione convertendo, preliminarmente, lo schematico in una netlist e poi inviando la netlist stessa al motore di simulazione vero e proprio. 17 Ottobre 2006 ED - Simulazione Spice Massimo Barbaro Netlist La netlist è un file di testo che può essere realizzato con un qualsiasi editor (Notepad, Writepad, Word) purché capace di salvare in formato testo semplice (senza aggiunta di formattazioni) La netlist contiene: Titolo Inclusione di modelli e librerie di componenti Descrizione del circuito Generatori di segnali di ingresso Le analisi da compiere Eventuali opzioni Esistono in commercio tool per la generazione automatica di netlist a partire da un’interfaccia grafica ma non sono in genere gratuiti. 17 Ottobre 2006 * Inverter CMOS – Processo 90nm * ED – Elettronica Digitale - A.A. 2006/2007 * Data: 31/10/2006 - Autore: M. Barbaro * EOLAB – Microeletronics Lab * Inclusione modelli .include models.mod * Circuito M1 out in vdd vdd P90 W=240n L=90n M2 out in 0 0 N90 W=120n L=90n * Alimentazione Vdd vdd 0 dc 1 * Generatore di Ingresso Vin in 0 pulse 0 1 100p 0.1p 0.1p 100p 200p * Analisi in continua .dc Vin 0 1 0.001 * Analisi in transitorio .tran .1p 400p .plot v(in) v(out) .end ED - Simulazione Spice Massimo Barbaro Netlist La prima riga è sempre il titolo della simulazione La netlist è case-insensitive Ogni riga che inizia con un asterisco è un commento Ogni riga che inizia con un punto è una direttiva (un’opzione o la richiesta di un’analisi) Ogni riga che inizia con una lettera è la definizione di un componente (a seconda di quale è la lettera cambia il componente) Se è necessario andare a capo (per ragioni di leggibilità) si fa iniziare la nuova riga con un + 17 Ottobre 2006 ED - Simulazione Spice Massimo Barbaro Netlist Inverter •Inverter CMOS – Processo 90nm * ED – Elettronica Digitale - A.A. 2006/2007 * Data: 31/10/2006 - Autore: M. Barbaro * EOLAB – Microeletronics Lab * Inclusione modelli .include models.mod * Circuito (la sintassi spice è case-insensitive) M1 out in vdd vdd P90 W=240n L=90n M2 out in 0 0 N90 W=120n L=90n CL out 0 0.5f * Alimentazione (il nodo 0 è sempre la massa) Vdd vdd 0 dc 1 * Generatore di Ingresso Vin in 0 dc 0 pulse 0 1 100p 0.1p 0.1p 100p 200p *Analisi in continua .dc Vin 0 1 0.001 *Analisi in transitorio .tran .1p 200p .plot v(in) v(out) .end 17 Ottobre 2006 ED - Simulazione Spice Massimo Barbaro Definizione componenti Un MOS è definito così: La prima lettera M indica che si tratta di un MOS, le altre lettere indicano il nome del MOS specifico (M1, M2, Mn) Mxxxx D G S B modelname listaparametri Valori dei parametri (W, L, AD, PD, etc.) Nome del nodo drain Nome del nodo gate 17 Ottobre 2006 Nome del nodo source Nome del nodo body ED - Simulazione Spice Nome del modello Massimo Barbaro Modelli Il modello di un MOS è un insieme di equazioni che descrivono la caratteristica del dispositivo. Tali equazioni necessitano di un insieme di parametri che è contenuto in un file (COX, mobilità, capacità di giunzione, etc). All’interno di tale file (che deve essere incluso nella netlist con la direttiva .include) è definito il nome del modello stesso. Esistono diversi modelli, a diverso livello di accuratezza, che descrivono il MOS. Ogni modello è etichettato con un numero (LEVEL) che lo contraddistingue. Fra i modelli più completi ed utilizzati ci sono il BSIM3v3 (level 8), il BSIM4 (level 14), lo EKV (level 12). La sintassi con cui si assegna un numero (level) ad un tipo di modello non è univoca, ad esempio il BSIM4 è definito come LEVEL 14 in Winspice e LTspice ma come LEVEL 53 in HSPICE. 17 Ottobre 2006 ED - Simulazione Spice Massimo Barbaro Parametri Alcuni dei principali parametri di un MOS: W (larghezza) L (lunghezza) AD (area di drain) PD (perimetro di drain) AS (area di source) PS (perimetro di source) Di questi, solo W e L sono obbligatori, gli altri sono opzionali visto che sono disponibili solo dopo avere disegnato il layout, quindi dopo che si conoscono aree e perimetri delle diffusioni. Vanno però inseriti, se conosciuti, dato che aumentano l’accuratezza dei risultati di simulazione. 17 Ottobre 2006 ED - Simulazione Spice Massimo Barbaro Definizione componenti Un generatore in continua è definito così: La prima lettera V indica che si tratta di un generatore di tensione Vxxxx P M DC val Nome del nodo positivo 17 Ottobre 2006 Valore di tensione Nome del nodo negativo ED - Simulazione Spice Tipo di generatore Massimo Barbaro Definizione componenti Un generatore di segnale digitale è definito così: La prima lettera V indica che si tratta di un generatore di tensione Parametri Vxxxx P M PULSE v1 v2 delay tr tf width period Nome del nodo positivo 17 Ottobre 2006 Tipo di generatore Nome del nodo negativo ED - Simulazione Spice Massimo Barbaro Tensione impulsiva V V2 V1 t delay tr 17 Ottobre 2006 period Si ripete poi sempre uguale la parte compresa in period ED - Simulazione Spice Massimo Barbaro width tf Netlist Deve sempre esistere il nodo 0 (la massa) Le unità si esprimono con lettere (f=femto, p=pico, n=nano, u=micro, m=milli, k=chilo, meg=mega) Rxxx plus minus res_value (Resistenza) Cxxx plus minus res_value (Capacità) La netlist termina sempre con la riga .END Quando i nodi di due componenti hanno lo stesso nome significa che sono connessi. Esempio (drain e gate dei 2 mos sono cortocircuitati perché hanno lo stesso nome): in vdd vdd P90 W=240n L=90n M1 out in M2 out in in 0 0 N90 W=120n L=90n 17 Ottobre 2006 ED - Simulazione Spice Massimo Barbaro Analisi in DC Per trovare la VTC dovremo fare un’analisi in DC (fare variare la tensione di ingresso però come se fosse continua per ogni valore) .DC VSOURCE START STOP STEP VSOURCE: nome della sorgente da far variare START: valore iniziale STOP: valore finale STEP: incremento fra un valore e il successivo 17 Ottobre 2006 ED - Simulazione Spice Massimo Barbaro Analisi in transitorio Per trovare le caratteristiche dinamiche bisogna fare un’analisi in transitorio: .TRAN STEP STOP STEP: incremento temporale STOP: valore finale 17 Ottobre 2006 ED - Simulazione Spice Massimo Barbaro Schematico Lo schematico è un disegno contenente i simboli (symbol) dei componenti ed i fili (wire) di interconnessione fra i loro terminali, più tutte le informazioni sulle caratteristiche dei dispositivi (nome, dimensioni, etc.) Lo schematico, tipicamente contiene: Nome del progetto e del progettista e data di realizzazione Componenti e loro parametri Terminali di ingresso ed uscita Eventuali generatori di segnali di ingresso Ogni tool commerciale ha un suo diverso schematic editor ma le caratteristiche di tali strumenti software sono molto simili fra loro e non è difficile passare dall’uno all’altro. 17 Ottobre 2006 ED - Simulazione Spice Massimo Barbaro Schematico La creazione di uno schematico parte dal piazzamento dei componenti sul foglio di lavoro (sheet). Per ogni componente vengono visualizzati, tipicamente, il nome ed i parametri (nel caso di un MOS, la W e la L). Il simbolo (symbol) presenta i terminali di accesso (pin) utilizzati per le connessioni. NOME SIMBOLO PARAMETRI PIN 17 Ottobre 2006 ED - Simulazione Spice Massimo Barbaro Schematico I componenti vengono poi interconnessi con i fili (wire) che vanno da pin a pin. Ad ogni filo può sempre essere assegnato un nome (per chiarezza e semplicità di lettura) In schematici particolarmente complessi (con molti componenti variamente interconnessi) è possibile e consigliabile non disegnare tutti i fili ma effettuare le connessioni per nome WIRE Per fare una connessione per nome si attribuisce lo stesso nome a due pezzi di filo separati, in questo modo li si connette implicitamente 17 Ottobre 2006 ED - Simulazione Spice Massimo Barbaro Schematico Una volta piazzati tutti i componenti e fatte le connessioni per mezzo dei fili si definiscono i terminali di ingresso e uscita del circuito. A tal fine si piazzano nello schematico i pin. Ogni pin (terminale) può essere di ingresso, uscita, oppure ingresso e uscita (sono di tale tipo le alimentazioni e i terminali bidirezionali). PIN (inout) PIN (input) PIN (output) 17 Ottobre 2006 ED - Simulazione Spice Massimo Barbaro Schematico Al termine della realizzazione di tutto lo schematico è consigliabile aggiungere un cartiglio descrittivo (title) contenente nome e funzionalità del circuito, la data di creazione, l’autore. Il titolo è importante perché, in progetti complessi, consente innanzitutto la comunicazione fra diversi progettisti che lavorano allo stesso design. Consente inoltre allo stesso autore di riprendere un progetto a distanza di tempo senza avere difficoltà a ricordarne le caratteristiche e l’uso. 17 Ottobre 2006 TITLE ED - Simulazione Spice Massimo Barbaro Schematico Una volta terminato lo schematico del circuito si crea un nuovo simbolo che lo descriva. Il simbolo avrà gli stessi pin dello schematico realizzato ed una forma grafica descrittiva delle funzionalità del circuito. Il simbolo creato potrà a sua volta essere inserito in un altro schematico. In tal modo si può costruire una libreria di circuiti base da usare per realizzare circuiti più complessi. 17 Ottobre 2006 ED - Simulazione Spice Massimo Barbaro Schematico Per effettuare la simulazione è necessario inserire i generatori dei segnali di ingresso (primo fra tutti il generatore di alimentazione). Esistono poi, a seconda dei software, interfacce grafiche opportune per stabilire il tipo di analisi da effettuare. Tali interfacce, tipicamente, prendono in ingresso gli stessi parametri impostabili tramite la netlist. Istanza del circuito da simulare Connessione per nome Generatore (in continua) 17 Ottobre 2006 Generatore (in transitorio) ED - Simulazione Spice Massimo Barbaro Simulazione inverter: VTC 17 Ottobre 2006 ED - Simulazione Spice Massimo Barbaro Simulazione inverter: transitorio 17 Ottobre 2006 ED - Simulazione Spice Massimo Barbaro Tempo di propagazione HL Overshoot Fine commutazione 17 Ottobre 2006 ED - Simulazione Spice Massimo Barbaro Riassumendo SPICE è il software per la simulazione di circuiti elettronici per eccellenza Esistono varie versioni di questo software, implementate da diversi vendor La netlist è una descrizione testuale del circuito necessaria per la simulazione La netlist contiene informazioni sui componenti presenti ed il modo in cui sono interconnessi Le simulazioni spice consentono di verificare le caratteristiche statiche (.dc) e dinamiche (.tran) calcolate a mano 17 Ottobre 2006 ED - Simulazione Spice Massimo Barbaro