Simulazione Spice Simulazione Circuitale Spice Lucidi del Corso di Elettronica Digitale Modulo 4 Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica (EOLAB) Spice è un software per la simulazione di circuiti a livello transistor diventato ormai lo standard (anche a livello industriale) 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 WinSpice, un port dello Spice originale per Windows, per verificare concretamente il funzionamento dei circuiti a livello transistor trattati nel corso L input di una simulazione spice è in genere un file di testo chiamato netlist 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 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)
Inverter *Simulazione Inverter, la prima riga è sempre il titolo e viene ignorata * Inclusione modelli.include models.mod * Circuito (la sintassi spice è case-insensitive) M1 out1 in1 vdd vdd mp w=3u l=1u M2 out1 in1 0 0 mn w=1u l=1u * Alimentazione (il nodo 0 è sempre la massa) Vdd vdd 0 dc 3.3 * Generatore di Ingresso Vin in1 0 dc 0 pulse 0 3.3 0 0.3n 0.1n 5n 10n *Analisi in continua.dc vin 0 3.3 0.1 *Analisi in transitorio.tran.1n 20n.plot v(in1) v(out1).end 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 nodo drain nodo gate nodo source nodo body Valori dei parametri (W, L, AD, PD, etc.) modello Modelli Il modello di un MOS è in genere un file che contiene tutte le informazioni sul processo (C OX, mobilità, parametri vari) All interno di tale file (che deve essere incluso nella netlist con la direttiva.include) è definito il nome del modello stesso Il file che utilizzeremo noi definisce come nome del modello per i PMOS P1, e come nome degli NMOS M1 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 nodo positivo nodo negativo Valore di tensione Tipo di generatore
Definizione componenti Tensione impulsiva Un generatore di segnale digitale è definito così: V La prima lettera V indica che si tratta di un generatore di tensione Parametri V2 Vxxxx P M PULSE v1 v2 delay tr tf width period V1 t nodo positivo nodo negativo Tipo di generatore delay tr width tf period Si ripete poi sempre uguale la parte compresa in period Deve sempre esistere il nodo 0 (la massa) Le unità si esprimono con lettere (U=micro, N=nano, K=chilo, M=milli) 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): M1 out1 in1 vdd vdd pmos w=3u l=1u M2 out1 in1 0 0 nmos w=1u l=1u 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
Analisi in transitorio Per trovare le caratteristiche dinamiche bisogna fare un analisi in transitorio.tran STEP STOP STEP: incremento temporale STOP: valore finale Winspice Per simulare con WinSpice basta scrivere la netlist e poi aprirla dal menù File->Open Se si è inserita l analisi desiderata la simulazione parte automaticamente Per visualizzare il risultati scrivere, nella linea di comando della finestra di winspice plot segnale1 segnale2 segnale3 Simulazione inverter: VTC Simulazione inverter: transitorio V IL =1.35V V IH =1.7V
Tempo di propagazione HL Tempo di propagazione HL t plh =113psec t phl =103psec 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