Elettronica Digitale © Alessandro Bogliolo 1 Introduzione alla simulazione circuitale 1.1 CAD per l’elettronica: strumenti software di supporto alla progettazione elettronica • • • • • • • 1.2 Descrizione del circuito • • • • • 1.3 Elementi della descrizione: • nodi • componenti discreti passivi (resistenze, condensatori, induttanze) e attivi (generatori indipendenti e comandati, diodi, transistor bipolari, transistor MOS, …) a due o più terminali connessi ad altrettanti nodi Sono rami del circuito i collegamenti tra coppie di nodi Ad ogni nodo è associata una tensione, ad ogni ramo è associata una corrente, ad ogni componente è associato un modello matematico che mette in relazione le tensioni ai nodi e le correnti I modelli dei componenti sono il risultato di un processo di caratterizzazione Lo schema circuitale (rete elettrica) è il risultato del progetto Analisi del circuito • • 1.4 Livelli di rappresentazione e fasi di progetto di un sistema digitale: • sistema (system level) • architettura (architectural level) • comportamento (behavioral level) • struttura a blocchi (register transfer level - RTL) • porte logiche (gate level) (segnali logici) • circuito (circuit level) (segnali analogici) • layout (layout level) • dispositivi (physical level) Linguaggi di descrizione dell’hardware Flusso top-down: • Specifica e implementazione • Progetto (sintesi) e verifica (analisi) Flusso bottom-up: • Caratterizzazione Esistono strumenti software di supporto ad ogni fase del progetto e della verifica Esistono strumenti CAD in grado di effettuare in modo completamente automatico alcuni passi di progetto e verifica Motivazioni: efficienza, rigore, riproducibilità La rete elettrica viene analizzata applicando le leggi di Kirchoff ai nodi: • quando possibile le correnti sono espresse in funzione delle tensioni ai capi dei rami I(V) • altrimenti le relazioni corrente-tensione sono espresse in forma implicita Sistema di equazioni differenziali ordinarie non lineari nel vettore delle grandezze incognite x e nel F(x’,x,t)=0 tempo t: Simulazione numerica • • Caso stazionario: sistema di equazioni non lineari F(x)=0 • Soluzione iterativa (Newton-Raphson): (0) • x soluzione iniziale (i+1) (i) (i) -1 (i) • x = x – JF(x ) F(x ) i-esimo passo dell’iterazione • Nel caso di una sola equazione: f(x)=0 (0) • x soluzione iniziale (i+1) (i) (i) (i) • x = x – f(x )/f’(x ) i-esimo passo dell’iterazione • Significato geometrico Caso transitorio: F(x’,x,t)=0 • Discretizzazione del tempo: • tj = tj-1 + ∆tj • x’j = (xj - xj-1) / ∆tj • soluzione Newton-Raphson di un sistema di equazioni non lineari nelle sole xj : F(xj)=0 per valori crescenti di j. Facoltà di Ingegneria – Università di Ferrara – A.A. 2000/2001 1 Elettronica Digitale © Alessandro Bogliolo 2 SPICE 2.1 File d’ingresso (.cir) • • 2.2 Descrizione del circuito • • • • • • 2.3 Principali elementi: • Riga di titolo (senza particolari convenzioni, ma necessaria) • Descrizione del circuito • Modelli dei dispositivi • Specifica del tipo di analisi • Specifica dell’output • .END Convenzioni: • Commento: * in prima colonna • Continuazione di riga: + in prima colonna I nodi sono individuati da numeri interi positivi. Il nodo 0 è il riferimento implicito per le tensioni. Componenti passivi: nome n+ n- valore • la prima lettera del nome indica il tipo di componente: R resistenza, C capacità, L induttanza. Le restanti lettere non devono rispondere a particolari requisiti, ma garantire l’unicità del nome. • n+ ed n- sono i nodi a cui il componente è collegato • per convenzione il modello del componente mette in relazione la tensione V(n+)–V(n-) con la corrente che entra da n+ ed esce da n• il valore è un numero seguito da un suffisso che indica il fattore di scala: Meg, k, m, u, f, p. Non è necessario specificare le unità di misura. Generatori indipendenti: nome n+ n- [DC valore] [AC mag [phase]] [specifica transitorio] • la prima lettera del nome indica il tipo di generatore: I corrente, V tensione. • le parentesi quadre racchiudono elementi opzionali: • DC valore indica il valore in continua della grandezza generata • AC mag phase indica l’ampiezza e la fase iniziali per le analisi ai piccoli segnali • la specifica di transitorio specifica l’andamento nel tempo della grandezza generata. Ad esempio: PWL (T1 V1 T2 V2 T3 V3 T4 V4 ...) indica una forma d’onda lineare a tratti di cui sono specificate le coordinate dei vertici in ordine crescente di tempo Generatori comandati con legge di controllo lineare: i = g v, v = e v, i = f i, v = h i • generatore di corrente controllato in tensione: Gnome n+ n- nc+ nc- valore • generatore di tensione controllato in tensione: Enome n+ n- nc+ nc- valore • generatore di corrente controllato in corrente: Fnome n+ n- Vnome valore • generatore di tensione controllato in corrente: Hnome n+ n- Vnome valore Si noti che le tensioni di controllo sono specificate attraverso una coppia di nodi nc+ nc-, mentre le correnti di controllo come correnti che fluiscono attraverso un generatore di tensione Vnome. Generatori comandati con legge di controllo arbitraria: Bnome n+ n- [I=espressione] [V=espressione] Dispositivi attivi: nome n1 n2 [n3 …] modello [par1=val1 par2=val2 …] • la prima lettera del nome indica il tipo di dispositivo: D diodo, Q bipolare, M mos, … • il modello indica il nome di un modello di dispositivo definito altrove • i valori assegnati ai parametri del modello sovrascrivono (se specificati) i valori di default Modelli di dispositivi • La forma generale per la specifica di un modello è: .MODEL nomemodello tipo [par1=val1 par2=val2 …] Facoltà di Ingegneria – Università di Ferrara – A.A. 2000/2001 2 Elettronica Digitale • • 2.4 I tipi di dispositivi sono: D diodo, NPN transistor npn, PNP transistor pnp, NJF jfet a canale n, PJF jfet a canale p, NMOS mosfet a canale n, PMOS mosfet a canale p Il numero e i nomi dei parametri dipendono dal tipo di dispositivo. Per i transistori NMOS e PMOS sono disponibili diversi modelli tra i quali si sceglie specificando un parametro chiamato livello (level). La scelta del livello condiziona la specifica dei restanti parametri e l’uso che il simulatore ne farà. Alcuni parametri sono legati da relazioni che permettono al simulatore di ricavare il valore dei parametri non specificati dall’utente e all’utente di fornire specifiche parziali. In ogni caso le specifiche dell’utente sovrascrivono i valori dei parametri calcolati dal simulatore. Specifica del tipo di analisi • • • • • 2.5 © Alessandro Bogliolo Analisi DC .DC SRCNAM VSTART VSTOP VINCR SRCNAM è il nome di un generatore indipendente VSTART, VSTOP e VINCR sono gli estremi di un intervallo e il passo di variazione della grandezza generata L’analisi in continua viene ripetuta per ogni valore della grandezza Analisi di transitorio .TRAN TSTEP TSTOP [TSTART [TMAX]] TSTEP è il passo usato per la visualizzazione dei risultati TSTART e TSTOP sono l’inizio e la fine dell’intervallo di tempo da simulare TMAX è il passo massimo da usare per la discretizzazione del tempo Analisi AC .AC DEC ND FSTART FSTOP .AC OCT NO FSTART FSTOP .AC LIN NP FSTART FSTOP Altri tipi di analisi: • Analisi di sensibilità • Analisi di rumore • Analisi statistica • Analisi di stabilità Condizioni iniziali • per la soluzione Newton-Raphson .NODESET V(N1)=VAL1 V(N2)=VAL2 ... • per il transitorio .IC V(N1)=VAL1 V(N2)=VAL2 ... Specifica del formato di output • • • Il simulatore calcola (eventualmente in diversi istanti di tempo) le tensioni a tutti i nodi del circuito e le correnti che attraversano i generatori di tensione. PSpice fornisce inoltre le correnti a tutti i terminali dei dispositivi. Le convenzioni per indicare le variabili d’uscita sono le seguenti: è la tensione al nodo N V(N) è la differenza di tensione tra i nodi N1 e N2 V(N1,N2) è la corrente che attraversa il generatore G I(G) è la corrente di gate del transistor M1 IG(M1) è la corrente di drain del transistor M1 ID(M1) … Nel caso in cui l’analisi sia stata compiuta ripetutamente (in diverse condizioni operative o in diversi istanti di tempo) ad ogni variabile d’uscita non è associato un unico valore, ma un vettore di valori. Il simulatore genera di default un file .out con alcuni risultati. E’ possibile selezionare i risultati da inserire nel file .out inserendo nel file di input il seguente comando: .PRINT [OV1 OV2 …] dove OV1, OV2, … sono variabili d’uscita. Se non è specificato il nome di alcuna variabile d’uscita, il comando determina il salvataggio di tutti i risultati. PSpice è corredato da un postprocessore grafico detto Probe, per la visualizzazione e l’analisi dei risultati. Il salvataggio dei risultati in un file compatibile con Probe si ottiene inserendo nel file di input il comando: .PROBE [OV1 OV2 …] dove OV1, OV2, … sono variabili d’uscita. Se non è specificato il nome di alcuna variabile d’uscita, il comando .probe salva tutti i risultati per la successiva visualizzazione. Facoltà di Ingegneria – Università di Ferrara – A.A. 2000/2001 3 Elettronica Digitale 2.6 Sottocircuiti • • • 2.7 © Alessandro Bogliolo E’ possibile descrivere i circuiti in modo gerarchico definendo dei sottocircuiti. La descrizione di un sottocircuito è racchiusa tra la linea .SUBCKT e la linea .END: .SUBCKT nomemacro N1 [N2 N3 …] ... .ENDS nomemacro I nodi specificati nella linea di intestazione definiscono i terminali esterni del sottocircuito. I loro nomi non sono in conflitto con quelli esterni al sottocircuito. L’uso di un sottocircuito è il seguente: Xnomeistanza N1 N2 N3 ... nomemacro Per convenzione i nomi di istanze di sottocircuiti cominciano per X Inclusione di files • • E’ possibile suddividere il file di input in diversi file. A tal fine occorre individuare un file principale, che verrà usato come input del simulatore, nel quale gli altri vanno inclusi mediante i comandi .INCLUDE nomefile .LIB nomelibfile La differenza tra i due comandi è solo nel contenuto del file da includere, che si assume contenga solo modelli e sottocircuiti se l’inclusione è fatta con il comando .LIB. 3 Esempio 3.1 Dettagli pratici • • • • • 3.2 PC del laboratorio di informatica con sistema operativo Windows Username ele2 Password spice2 Programma principale: PSpiceAD (icona sul desktop) Pspice Student Version 9.1 • Distribuita da OrCAD (http://www.orcad.com) • Limitazioni della versione dimostrativa: • 64 nodi • 10 transistors • 10 linee di trasmissione (ideali o non) • 4 linee di trasmissione accoppiate a coppie File d’ingresso esempio.cir Esempio: inverter CMOS statico ** M1 M2 Cl descrizione del circuito 1 2 3 1 mosp L=0.5u W=1u 3 2 0 0 mosn L=0.5u W=0.5u 2 0 50fF ** modeli dei dispositivi .model mosn nmos level=1 vto=1 kp=80u gamma=0 .model mosp pmos level=1 vto=-1 kp=40u gamma=0 ** Generatori indipendenti di tensione Vdd 1 0 3.3V Vin 2 0 3.3V ** specifica dell'analisi: caratteristica statica .dc Vin 0 3.3 0.01 .probe .end Facoltà di Ingegneria – Università di Ferrara – A.A. 2000/2001 4