Simulazione Circuitale SPICE Simulazione SPICE

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