Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
.END
inseriscono le righe contenenti la descrizione dei dispositivi che compongono il
circuito e le modalità di analisi. Non vi è un ordine prestabilito da dare alle
righe di comando per una corretta descrizione del circuito.
Il comando consente di richiamare un altro listato SPICE
.include
Per ogni elemento che compone il circuito deve essere specificato, nell’ordine:
- il nome
- i nodi cui sono collegati i terminali
- il valore dell’elemento circuitale o il nome di un opportuno modello
- eventuali opzioni
La prima lettera del nome denota il tipo di dispositivo:
R per le resistenze
C per le capacità
L per le induttanze
V per i generatori di tensione
I per i generatori di corrente
M per i transistori MOS
Q per i transistori bipolari
D per i diodi
Separati da uno o più spazi, dopo il nome, si elencano i nodi relativi ai terminali
dei dispositivi, che possono essere in numero di due o più a seconda del
dispositivo in considerazione. E’ possibile utilizzare cifre o lettere per indicare i
nodi; il terminale di massa è individuato dal nodo ‘0’ che deve essere presente
in ogni circuito.
Per generatori di tensione, generatori di corrente, resistenze, condensatori ed
induttanze avremo due nodi da definire ed un unico parametro da assegnare. I
valori possono essere espressi con notazione scientifica; si possono inoltre
utilizzare fattori di scala mnemonici come:
9
G per 10 65
6
MEG per 10
3
M per 10
−6
U per 10
−9
N per 10
−12
P per 10
−14
F per 10
Ad esempio, la linea:
VGSn GateN 0 1
rappresenta un generatore di tensione, denominato VGSn, collegato fra il nodo
denominato GateN e massa (il nodo 0) di valore 1V.
Per i MOSFET l’ordine dei terminali è: DRAIN, GATE, SOURCE e BODY. Per ogni
MOS si deve inoltre specificare il valore di W e di L (opzionalmente è possibile
assegnare anche i valori di area e perimetro di source e drain).
Ad esempio, la linea:
MN1 DrainN GateN 0 0 NMOS_VTL L=45n W=90n
rappresenta un NMOS, in cui il drain è collegato al nodo DrainN, la gate al nodo
GateN, mentre source e body sono a massa. Il dispositivo ha la L di 45nm e W
di 90nm; il suo modello è denominato: NMOS_VTL
Il modello del dispositivo è descritto nel file richiamato con il comando
.include.
Il comando consente di definire la temperatura a cui si effettua la
.temp
simulazione
Il comando consente di effettuare una simulazione in continua, in cui il
.dc
valori del generatore viene variato da un valore minimo ad uno massimo, con
un certo step.
Eseguiamo dunque la simulazione col comando “spectre mos_curves.spice”
e visualizziamo il risultato, salvato nella cartella mos_curves.raw, col comando
“wavescan”. Scegliamo di visualizzare le correnti di drain dei MOS MN1 e MN2,
denominate i(MN1) e i(MN2): 66
Fig 5.1
Si osserva che il dispositivo MN1, cioè quello a canale corto, presenta una corrente di
saturazione con una pendenza maggiore rispetto al dispositivo MN2.
Si propone di seguito per il dispositivo MN1 un confronto tra i risultati ottenuti dalla
simulazione e i risultati previsti dai modelli analitici a canale corto e a canale lungo; in
particolare si confronta la corrente di drain valutata per Vgs=Vds=1.1V:
Modello a canale corto Modello a canale lungo
Spectre 2
V V
2
Corrente I = k [2(Vgs – V ) - ](1+
D n th sat sat
Spice 2
I = k (Vgs – V ) (1+ λ Vds)
D n th
λ Vds)
i(MN1) 116 µA 117.18 µA 179.18 µA
Si nota che il modello a canale corto si avvicina di più all’analisi in spice
rispetto al modello a canale lungo.
Si osserva inoltre che il nostro modello analitico, a differenza di spice come si
nota dalle caratteristiche, non prevede la diminuzione della tensione di soglia
all’aumentare della Vds. 67
Tracciamo ora la transcaratteristica dei due dispositivi, con Vds costante pari a
1.1V e Vgs variabile tra 0V e 1.1V, modificando in questo modo le righe di
codice relativi al generatore di tensione e all’analisi DC:
...
VDSn DrainN 0 1.1V
...
.dc VGSn 0 1.1 0.1
Si ottengono i seguenti andamenti: Fig 5.2
Si nota che per il dispositivo MN1, quello a canale più corto, l’andamento della
corrente rispetto a Vgs è lineare, mentre per il dispositivo MN2 l’andamento è
quadratico.
Studiamo ora le caratteristiche di un PMOS con dimensioni di canale pari a
L=45nm e W=90nm. Ecco il listato usato per la simulazione:
**** Title: pmos_curves.spice
.include /home/caduser/NCSU-FreePDK45-1.3/FreePDK45/ncsu_basekit/models/hspice/hspice_nom.include
*.include /home/caduser/NCSU-FreePDK45-1.3/FreePDK45/ncsu_basekit/models/hspice/hspice_ss.include
*.include /home/caduser/NCSU-FreePDK45-1.3/FreePDK45/ncsu_basekit/models/hspice/hspice_ff.include
*Generatori di segnali
* Alimentazione
VDD VDD 0 1.1
VSGp VDD Gatep 0V
VSDp VDD Drainp 0V
* Pmos di cui studiare le caratteristiche
MP1 VDD Gatep Drainp Vdd PMOS_VTL L=45n W=90n
**************************************************************
* PARAMETRI DELLA SIMULAZIONE
**************************************************************
.dc VSDp 0 1.1 0.01 VSGp 0 1.1 0.1
.temp 25
**************************************************************
* PROBES: 68
**************************************************************
.probe v(*)
.probe i(*)
.end
Si ottengono i seguenti andamenti: Fig 5.3
La corrente per Vsg=Vsd=1.1 V vale 48 µA. La corrente del NMOS a parità di
dimensioni e polarizzazione vale 116 µA; il rapporto i(MN1)/i(MP1) vale 2.42,
coerentemente con quanto ci si può aspettare a causa delle diverse mobilità
dei portatori.
Leakage
Effettuiamo ora una simulazione allo scopo di evidenziare la corrente di
leakage, che scorre nel dispositivo quando questo è interdetto. Simuliamo
ancora MN1, con Vds che varia tra 0 e 1.1V, e Vgs fissata a 0V. Mostriamo
l’andamento della corrente di leakage tra drain e source in scala logaritmica: 69
Fig 5.4
La corrente cresce con Vds, coerentemente a quanto previsto dal modello
analitico: −Vds
Vgs−Vt
Id = Is (1 - )
m Vt h Vt h
e e
dove “Vt” è la tensione di soglia, “Vth” la tensione termica e “m” una costante
(circa pari a 2).
La corrente massima ottenuta dalla simulazione, calcolata per Vds =1.1V, vale
circa 10.5 nA.
Aumentando la lunghezza del canale a 90nm si ottiene il seguente andamento,
con valore massimo della corrente pari a 400pA, di gran lunga inferiore alla
corrente di leakage ottenuta per l’altro dispositivo : 70
Fig 5.5
Eseguiamo ora delle simulazioni al variare della temperatura modificando la
scheda .temp come di seguito:
.temp -40 25 125
La corrente di leakage aumenta con la temperatura, come mostrato dal
seguente grafico in scala lineare: 71
Fig 5.6
Col modello fast i valori della corrente sono maggiori rispetto ai precedenti:
Fig 5.7
Analisi dinamica
Ci proponiamo di simulare il seguente listato:
**** Title: inverter.spice
.include /home/caduser/NCSU-FreePDK45-
1.3/FreePDK45/ncsu_basekit/models/hspice/hspice_nom.include
*.include /home/caduser/NCSU-FreePDK45-
1.3/FreePDK45/ncsu_basekit/models/hspice/hspice_ss.include
*.include /home/caduser/NCSU-FreePDK45-
1.3/FreePDK45/ncsu_basekit/models/hspice/hspice_ff.include
*Generatori di segnali
Vsupply VDD 0 1.1
Vin in 0 pulse 0 1.1 20p 10p 10p 500p 1n
MN out in 0 0 NMOS_VTL L=45n W=90n
MP VDD in out VDD PMOS_VTL L=45n W=180n
Cload out 0 5f
**************************************************************
* PARAMETRI DELLA SIMULAZIONE
**************************************************************
.tran 1p 1.2n
.temp 25
**************************************************************
* PROBES:
**************************************************************
.probe v(*)
.probe i(*) 72
.measure tran tpHLnom TRIG V(in) Val=0.55 RISE=1 TARG V(out) VAL=0.55 FALL=1
.measure tran tpLHnom TRIG V(in) Val=0.55 FALL=1 TARG V(out) VAL=0.55 RISE=1
.end
Il circuito simulato è il seguente: Fig 5.8
Ad esso abbiamo applicato una tensione d’ingresso che oscilla tra 0V e 1.1V
con ritardo iniziale pari a 20ps, tempi di salita e discesa pari a 10 ps, periodo di
1ns e duty cicle 50%; la capacità di carico vale 5fF. La simulazione in transitorio
dura 1.2ns con timestep di 1ps. I comandi .measure servono per calcolare i
tempi di propagazione. Ecco il circuit inventory, ovvero il numero di dispositivi
trovati dal simulatore.
Eseguiamo la simulazione ottenendo i seguenti andamenti dei segnali di
ingresso e uscita dell’invertitore: 73
Fig 5.9
I comandi .measure forniscono i seguenti valori dei tempi di propagazione:
Fig 5.10
Le resistenze equivalenti dei dispositivi, utilizzando i modelli switch-level sono:
t
Rn = = 8.56 kΩ
PHL
0.69∗C
t
Rp = = 10.37 kΩ
PLH
0.69∗C 74
Eseguiamo ora due analisi parametriche tese a valutare l’impatto della
capacità di carico e delle non idealità del segnale di ingresso sui tempi di
propagazione.
Nella prima simulazione consideriamo come parametro la capacità di carico; il
file da simulare è il seguente:
**** Title: inverter_cload.spice
.param KK=5f
.include /home/caduser/NCSU-FreePDK45-
1.3/FreePDK45/ncsu_basekit/models/hspice/hspice_nom.include
*.include /home/caduser/NCSU-FreePDK45-
1.3/FreePDK45/ncsu_basekit/models/hspice/hspice_ss.include
*.include /home/caduser/NCSU-FreePDK45-
1.3/FreePDK45/ncsu_basekit/models/hspice/hspice_ff.include
*Generatori di segnali
Vsupply VDD 0 1.1
Vin in 0 pulse 0 1.1 20p 10p 10p 500p 1n
MN out in 0 0 NMOS_VTL L=45n W=90n
MP VDD in out VDD PMOS_VTL L=45n W=180n
Cload out 0 KK
**************************************************************
* PARAMETRI DELLA SIMULAZIONE
**************************************************************
.tran 1p 1.2n sweep KK 2f 20f 1f
.temp 25
**************************************************************
* PROBES:
**************************************************************
.probe v(*)
.probe i(*)
.measure tran tpHLnom TRIG V(in) Val=0.55 RISE=1 TARG V(out) VAL=0.55 FALL=1
.measure tran tpLHnom TRIG V(in) Val=0.55 FALL=1 TARG V(out) VAL=0.55 RISE=1
.end
Nel listato è stato usato un parametro, di nome KK e valore 5f, al fine di definire
il valore della capacità di carico. Si esegue un’analisi in transitorio, variando il
parametro da 2f a 20f. Si mostrano quindi gli andamenti dei tempi di
propagazione in funzione della capacità d