Esercitazione 3: pilotaggio di linee RC con buffer...

16
Università degli studi di Ferrara, Dipartimento di Ingegneria, A.A.2013-2014 1 Esercitazione 2: pilotaggio di linee RC con buffer CMOS Obiettivi 1. Studio e comprensione della propagazione di un segnale digitale lungo una linea RC distribuita 2. Utilizzo dei cursori 3. Le goal function 4. I sottocircuiti 5. Le sezioni 6. Ottimizzazione di un circuito (manuale e automatica) 1. Introduzione Nei circuiti integrati si pone il problema di trasferire i segnali digitali che rappresentano il risultato di particolari elaborazioni da un sottocircuito all’altro. A tal fine i segnali vengono fatti propagare lungo apposite linee di interconnessione. Nella tecnologia planare, molto spesso le interconnessioni su chip presentano resistenza e capacità parassita che dominano gli effetti induttivi. In questi casi la linea di interconnessione si comporta come una linea RC distribuita e viene indicata con il seguente simbolo. Fig. 1. Simbolo utilizzato per indicare una linea RC distribuita. Una linea distribuita si può approssimare con un certo numero di stadi a parametri RC concentrati. I singoli stadi RC possono essere di tre tipi: L, T, . Fig. 2. Tre tipi di stadi utilizzabili per approssimare una linea RC distribuita. Il grado di accuratezza che il modello ha nel descrivere la linea reale aumenta con il numero delle sezioni utilizzate. Ad esempio, in generale, con 3 stadi , l’errore di approssimazione risulta essere minore del 3% rispetto al caso reale.

Transcript of Esercitazione 3: pilotaggio di linee RC con buffer...

Page 1: Esercitazione 3: pilotaggio di linee RC con buffer CMOSserva.altervista.org/files/upd/Elettronica_Digitale/Spice/... · L’implementazione in SPICE del circuito di Fig. 3 è la seguente

Università degli studi di Ferrara, Dipartimento di Ingegneria, A.A.2013-2014

1

Esercitazione 2: pilotaggio di linee RC con buffer CMOS

Obiettivi 1. Studio e comprensione della propagazione di un segnale digitale lungo una linea RC

distribuita

2. Utilizzo dei cursori

3. Le goal function

4. I sottocircuiti

5. Le sezioni

6. Ottimizzazione di un circuito (manuale e automatica)

1. Introduzione

Nei circuiti integrati si pone il problema di trasferire i segnali digitali che rappresentano il risultato

di particolari elaborazioni da un sottocircuito all’altro. A tal fine i segnali vengono fatti propagare

lungo apposite linee di interconnessione.

Nella tecnologia planare, molto spesso le interconnessioni su chip presentano resistenza e capacità

parassita che dominano gli effetti induttivi. In questi casi la linea di interconnessione si comporta

come una linea RC distribuita e viene indicata con il seguente simbolo.

Fig. 1. Simbolo utilizzato per indicare una linea RC distribuita.

Una linea distribuita si può approssimare con un certo numero di stadi a parametri RC concentrati. I

singoli stadi RC possono essere di tre tipi: L, T, .

Fig. 2. Tre tipi di stadi utilizzabili per approssimare una linea RC distribuita.

Il grado di accuratezza che il modello ha nel descrivere la linea reale aumenta con il numero delle

sezioni utilizzate. Ad esempio, in generale, con 3 stadi , l’errore di approssimazione risulta essere

minore del 3% rispetto al caso reale.

Page 2: Esercitazione 3: pilotaggio di linee RC con buffer CMOSserva.altervista.org/files/upd/Elettronica_Digitale/Spice/... · L’implementazione in SPICE del circuito di Fig. 3 è la seguente

Università degli studi di Ferrara, Dipartimento di Ingegneria, A.A.2013-2014

2

2. Esempio di modello a 4 stadi, calcolo del ritardo di propagazione

Poniamoci quindi il problema di studiare la propagazione di un segnale digitale lungo una linea RC

distribuita. Consideriamo una linea di interconnessione di alluminio con una resistenza Rtot=3700

e una capacità Ctot=8pF.

Proviamo ad utilizzare un modello a 4 stadi a L e osserviamo la propagazione del segnale ai vari

nodi. La pianificazione dell’esperimento ci porta a disegnare il circuito mostrato in Fig. 3.

Fig. 3. Pianificazione del circuito che modella una linea RC distribuita.

dove C1=C2=C3=C4=Ctot/4=2pF e R1=R2=R3=R4=Rtot/4=925.

Come segnale di ingresso si consideri l’impulso di Fig. 4.

Fig. 4. Forma d’onda Vin.

Page 3: Esercitazione 3: pilotaggio di linee RC con buffer CMOSserva.altervista.org/files/upd/Elettronica_Digitale/Spice/... · L’implementazione in SPICE del circuito di Fig. 3 è la seguente

Università degli studi di Ferrara, Dipartimento di Ingegneria, A.A.2013-2014

3

L’implementazione in SPICE del circuito di Fig. 3 è la seguente (file circuito1.cir)

* Studio di una linea RC distribuita * modello a 4 stadi a L R1 3 4 925 R2 4 5 925 R3 5 7 925 R4 7 8 925 C1 4 0 2p C2 5 0 2p C3 7 0 2p C4 8 0 2p vin 3 0 PWL(0 0 9.95n 0 10.05n 3.3 69.95n 3.3 70.05n 0) .tran 100p 150n .probe .end

Fig. 5. Forme d’onda di ingresso e di uscita (nodo 8).

La Fig. 5 mostra che il segnale in uscita da una linea RC distribuita non è più un segnale

perfettamente quadrato. Di conseguenza nasce il problema della corretta interpretazione del segnale

da parte dei circuiti logici a valle della linea.

Calcolare il ritardo di propagazione fra ingresso e uscita. Il ritardo di propagazione è definito

come la distanza temporale fra l’istante di tempo in cui il segnale di ingresso alla linea raggiunge il

50% del valore logico alto (50% di 3.3V, e cioè 1.65V) e l’istante di tempo in cui il segnale al nodo

di uscita dalla linea si porta al 50% del valore logico alto (cioè sempre 1.65V).

Il ritardo può essere calcolato utilizzando i cursori disponibili nell’interfaccia grafica del Probe

oppure utilizzando le goal function.

Vediamo prima l’utilizzo dei cursori. I cursori si selezionano dal pulsante indicato in Fig. 6.

Page 4: Esercitazione 3: pilotaggio di linee RC con buffer CMOSserva.altervista.org/files/upd/Elettronica_Digitale/Spice/... · L’implementazione in SPICE del circuito di Fig. 3 è la seguente

Università degli studi di Ferrara, Dipartimento di Ingegneria, A.A.2013-2014

4

Fig. 6 Pulsante di selezione dei cursori.

Selezionando i cursori appare una finestra nella quale è possibile leggere i valori x e y dei due

cursori disponibili (vedi Fig.7).

Fig. 7. Finestra dalla quale è possibile leggere i valori della forma d’onda selezionata.

Il cursore deve essere prima ‘agganciato’ alla forma d’onda desiderata. Per farlo basta cliccare con

il tasto sinistro, se si vuole usare il cursore 1, (o destro se si vuole usare il cursore 2) sul simbolo

della forma d’onda che si trova in basso a destra nel grafico.

Fig.8 Selezione della forma d’onda che si intende seguire con il cursore.

Page 5: Esercitazione 3: pilotaggio di linee RC con buffer CMOSserva.altervista.org/files/upd/Elettronica_Digitale/Spice/... · L’implementazione in SPICE del circuito di Fig. 3 è la seguente

Università degli studi di Ferrara, Dipartimento di Ingegneria, A.A.2013-2014

5

E’ possibile muovere il cursore 1 lungo la curva selezionata tenendo premuto il tasto sinistro del

mouse (destro per il cursore 2). Il ritardo di propagazione può essere letto direttamente nella finestra

dei cursori alla riga “diff” che è la differenza fra i due cursori. Ad esempio nella Fig. 9 si può

leggere un ritardo di circa 14ns.

Fig. 9. Calcolo manuale attraverso i cursori, del ritardo di propagazione fra ingresso e uscita.

Il ritardo può essere calcolato anche automaticamente attraverso l’utilizzo delle goal function.

Una goal function è una funzione predefinita o definibile dall’utente che consente di elaborare

opportunamente i dati delle forme d’onda.

Le goal function sono selezionate cliccando sul tasto come indicato in Fig. 10.

Fig. 10. Tasto da selezionare per la selezione delle goal function.

Page 6: Esercitazione 3: pilotaggio di linee RC con buffer CMOSserva.altervista.org/files/upd/Elettronica_Digitale/Spice/... · L’implementazione in SPICE del circuito di Fig. 3 è la seguente

Università degli studi di Ferrara, Dipartimento di Ingegneria, A.A.2013-2014

6

Dopo aver cliccato sul tasto indicato appare un menù come indicato in Fig.11. Sulla destra vi è una

lista di variabili che SPICE ha calcolato (tensioni e correnti ai vari nodi). Sulla sinistra vi è una lista

di funzioni predefinite (Functions or Macros). In basso vi è la Trace Expression, dove va inserita

l’espressione desiderata selezionando le opportune variabili e funzioni dalle due liste.

Fig. 11. Menù di selezione o definizione della goal function.

Il calcolo del ritardo può avvenire utilizzando la goal function predefinita XatNthY come indicato

in Fig.11. Questa funzione calcola il valore della x (ovvero l’istante temporale) corrispondente

all’n-esimo attraversamento di un predefinito valore da parte della variabile indicata.

Il risultato del calcolo è indicato in Fig.12 e ritorna un valore prossimo a quello calcolato

manualmente (14ns).

Fig. 12. Risultato del calcolo della goal function.

Page 7: Esercitazione 3: pilotaggio di linee RC con buffer CMOSserva.altervista.org/files/upd/Elettronica_Digitale/Spice/... · L’implementazione in SPICE del circuito di Fig. 3 è la seguente

Università degli studi di Ferrara, Dipartimento di Ingegneria, A.A.2013-2014

7

Si noti infine che più ci si allontana dalla sorgente più i ritardi ai vari nodi aumentano. Si provi ad

esempio a calcolare il ritardo ai nodi 4, 5 e 7.

3. Verifica dell’accuratezza del modello a 4 stadi

E’ possibile verificare il grado di accuratezza del modello della linea reale RC distribuita variando il

numero degli stadi RC. Per effettuare velocemente il confronto fra modelli con numero diverso di

stadi si farà uso delle sezioni di Spice.

Cosa sono le sezioni. Il file di ingresso in Spice è suddiviso in sezioni. Ogni sezione comprende

tutto ciò che sta fra la riga di titolo (la prima nel file.cir o quella successiva al comando .end della

sezione precedente) e una linea .end. Sullo stesso file di input è quindi possibile scrivere più

sezioni che vengono risolte da Spice in maniera sequenziale.

Si modifichi il file di input come segue (file circuito2.cir)

* Studio di una linea RC distribuita (sezione 1) * modello a 4 stadi a L R1 3 4 925 R2 4 5 925 R3 5 7 925 R4 7 8 925 C1 4 0 2p C2 5 0 2p C3 7 0 2p C4 8 0 2p vin 3 0 PWL(0 0 9.95n 0 10.05n 3.3 69.95n 3.3 70.05n 0) .tran 100p 150n .probe .end * modello a singolo stadio (sezione 2) R1 3 8 3700 C1 8 0 8p vin 3 0 PWL(0 0 9.95n 0 10.05n 3.3 69.95n 3.3 70.05n 0) .tran 100p 150n .probe .end

Si noti che nella sezione 2 si sono utilizzati gli stessi identificativi del nodo di uscita e ingresso della

sezione 1. In questo modo, visualizzando la V(8) con “Add trace” si ottengono in un colpo solo

entrambe le V(8) delle due sezioni che corrispondo entrambe all’uscita della linea.

Facendo girare la simulazione compare la finestra di Fig. 13.

Page 8: Esercitazione 3: pilotaggio di linee RC con buffer CMOSserva.altervista.org/files/upd/Elettronica_Digitale/Spice/... · L’implementazione in SPICE del circuito di Fig. 3 è la seguente

Università degli studi di Ferrara, Dipartimento di Ingegneria, A.A.2013-2014

8

Fig.13 Finestra di selezione delle sezioni da simulare. Cliccare su “All” per selezionarle tutte.

Scegliere di simulare entrambe le sezioni e di non eliminare alcuna sezione dei risultati (Do not skip

sections). Il risultato del confronto fra i due modelli è mostrato in Fig. 14.

Fig. 14. Confronto fra le due uscite delle due sezioni, cioè tra un modello a 4 stadi e uno a stadio

singolo.

Supponiamo ora di voler migliorare l’accuratezza del modello della linea utilizzando una

approssimazione a 7 stadi. A questo punto, assegnare i valori di 14 elementi potrebbe diventare un

lavoro ripetitivo e noioso. Si può sfruttare la caratteristica di Spice che consente di definire dei

sottocircuiti. Ogni stadio della linea può essere definito una volta per tutte per poi poter essere

utilizzato come blocco a se stante. L’istruzione che consente la definizione dei sottocircuiti è la

.SUBCKT. Ogni sottocircuito deve avere un nome e dei nodi identificativi che permettano la

comunicazione fra mondo interno al sottocircuito e mondo esterno. Gli identificativi di nodo che

vengono utilizzati nella definizione del sottocircuito hanno validità locale alla definizione e non

entrano in conflitto con i nodi definiti nella sezione all’interno della quale è contenuta la definizione

del sottocircuito.

Page 9: Esercitazione 3: pilotaggio di linee RC con buffer CMOSserva.altervista.org/files/upd/Elettronica_Digitale/Spice/... · L’implementazione in SPICE del circuito di Fig. 3 è la seguente

Università degli studi di Ferrara, Dipartimento di Ingegneria, A.A.2013-2014

9

Lo stadio a L che vogliamo trasformare in sottocircuito è indicato in Fig 15. Come con tutti i

circuiti, prima dell’implementazione è necessario procedere alla pianificazione (disegno del circuito

e assegnazione di nodi, valori etc..).

Fig. 15. Sottocircuito RC del singolo stadio. I nodi di ingresso e uscita sono stati definiti con 1 e 2.

Il file di input seguente (circuito3.cir) mostra come aggiungere una terza sezione in cui si modella la

linea con 7 stadi attraverso l’utilizzo dei sottocircuiti.

* Studio di una linea RC distribuita (sezione 1) * modello a 4 stadi a L R1 3 4 925 R2 4 5 925 R3 5 7 925 R4 7 8 925 C1 4 0 2p C2 5 0 2p C3 7 0 2p C4 8 0 2p vin 3 0 PWL(0 0 9.95n 0 10.05n 3.3 69.95n 3.3 70.05n 0) .tran 100p 150n .probe .end * modello a singolo stadio (sezione 2) R1 3 8 3700 C1 8 0 8p vin 3 0 PWL(0 0 9.95n 0 10.05n 3.3 69.95n 3.3 70.05n 0) .tran 100p 150n .probe .end * modello a 7 stadi (sezione 3) .subckt RC 1 2 R 1 2 528.57 C 2 0 1.14p .ends X1 3 4 RC

Page 10: Esercitazione 3: pilotaggio di linee RC con buffer CMOSserva.altervista.org/files/upd/Elettronica_Digitale/Spice/... · L’implementazione in SPICE del circuito di Fig. 3 è la seguente

Università degli studi di Ferrara, Dipartimento di Ingegneria, A.A.2013-2014

10

X2 4 5 RC X3 5 6 RC X4 6 7 RC X5 7 20 RC X6 20 21 RC X7 21 8 RC vin 3 0 PWL(0 0 9.95n 0 10.05n 3.3 69.95n 3.3 70.05n 0) .tran 100p 150n .probe .end

Il sottocircuito viene utilizzato attraverso l’identificativo X seguito dai nodi e dal nome

assegnatogli.

In termini di circuito equivalente, la sezione 3 implementa il circuito di Fig. 16 che mostra

l’assegnazione dei nodi.

Fig. 16. Modello a 7 stadi della linea RC distribuita.

Il risultato del confronto fra le uscite delle tre sezioni, che volontariamente sono state identificate

con lo stesso nodo V(8) in modo da permetterne un confronto agevole, è mostrato in Fig. 17.

Fig. 17. Confronto fra uscite dei tre modelli.

La Fig. 17 riporta anche l’andamento dell’ingresso V(3) uguale per tutte e 3 le sezioni.

Le forme d’onda delle uscite differiscono a causa dell’errore di approssimazione ad un numero

finito di stadi.

Provare ad aumentare il numero di stadi e verificare la convergenza della forma d’onda in uscita.

Page 11: Esercitazione 3: pilotaggio di linee RC con buffer CMOSserva.altervista.org/files/upd/Elettronica_Digitale/Spice/... · L’implementazione in SPICE del circuito di Fig. 3 è la seguente

Università degli studi di Ferrara, Dipartimento di Ingegneria, A.A.2013-2014

11

4. Esempio di ottimizzazione di un circuito

Si piloti la linea finora considerata mediante un invertitore CMOS. Si modelli la linea con 4 stadi

RC.

Fig. 18. Pilotaggio della linea RC distribuita mediante invertitore CMOS.

La pianificazione del circuito di Fig. 18 è mostrata in Fig. 19.

Fig. 19. Circuito di pilotaggio pronto per l’implementazione su Spice.

La forma d’onda di Vin è mostrata in Fig. 20.

Fig. 20. Forma d’onda di ingresso.

Il file di input (circuito4.cir) è il seguente

Page 12: Esercitazione 3: pilotaggio di linee RC con buffer CMOSserva.altervista.org/files/upd/Elettronica_Digitale/Spice/... · L’implementazione in SPICE del circuito di Fig. 3 è la seguente

Università degli studi di Ferrara, Dipartimento di Ingegneria, A.A.2013-2014

12

pilotaggio di linea RC .model mosp pmos LEVEL=1 VTO=-1 KP=50U TOX=9E-9 + CGDO=3.5E-10 CGSO=3.5E-10 CGBO=4.5E-10 .model mosn nmos LEVEL=1 VTO=1 KP=100U TOX=9E-9 + CGDO=3.5E-10 CGSO=3.5E-10 CGBO=4.5E-10 M1 1 2 3 1 mosp L=0.5u W=1u M2 3 2 0 0 mosn L=0.5u W=0.5u Vdd 1 0 3.3V Vin 2 0 PWL(0 0 9.95n 0 10.05n 3.3) .subckt RC 1 2 R1 1 2 925 C1 2 0 2p .ends X1 3 4 RC X2 4 5 RC X3 5 7 RC X4 7 8 RC .tran 100p 350n 0 100p .probe .end

La Fig. 21 mostra il ritardo (57ns) tra forma d’onda d’uscita (V(8)), e ingresso (V(2)).

Fig. 21. Forma d’onda d’uscita (V(8)) e ritardo di propagazione rispetto al segnale di ingresso

(V(2)).

Si vuole ora dimensionare opportunamente l’invertitore in modo da garantire un ritardo di

propagazione minore di 15ns. Si vuole inoltre che l’invertitore opportunamente dimensionato

occupi area minima. Il progettista può infatti agire sulle dimensioni L e W dei due transistori che

costituiscono l’invertitore. Per ridurre il numero delle variabili si supponga che il fattore di forma

(W/L) del canale di tipo p (pMOS M1) sia 2 volte quella del canale n (nMOS M2).

Si ipotizzi inoltre di poter agire sulle dimensioni a passi di 0.5m.

Page 13: Esercitazione 3: pilotaggio di linee RC con buffer CMOSserva.altervista.org/files/upd/Elettronica_Digitale/Spice/... · L’implementazione in SPICE del circuito di Fig. 3 è la seguente

Università degli studi di Ferrara, Dipartimento di Ingegneria, A.A.2013-2014

13

L’analisi del circuito suggerisce che per raggiungere l’obiettivo della riduzione del ritardo di

propagazione conviene aumentare W anziché L. Dunque, per ottenere l’obiettivo, conviene tenere L

al minimo ed aumentare W a passi di 0.5m fino a che il ritardo non si è ridotto a 15ns come

richiesto. Conviene procedere a tentativi.

Con il seguente dimensionamento

… M1 1 2 3 1 mosp L=0.5u W=20u M2 3 2 0 0 mosn L=0.5u W=10u

Si ottiene il risultato di Fig. 22 che mostra un ritardo di 15.4ns circa.

Fig. 22. Forme d’onda d’uscita e di ingresso che mostrano un ritardo di 15ns circa per M1

dimensionato con W=20m e L=0.5m.

Siamo dunque già vicini alla soluzione ottima. La Fig. 23 mostra il risultato della simulazione con il

seguente dimensionamento … M1 1 2 3 1 mosp L=0.5u W=40u M2 3 2 0 0 mosn L=0.5u W=20u …

Page 14: Esercitazione 3: pilotaggio di linee RC con buffer CMOSserva.altervista.org/files/upd/Elettronica_Digitale/Spice/... · L’implementazione in SPICE del circuito di Fig. 3 è la seguente

Università degli studi di Ferrara, Dipartimento di Ingegneria, A.A.2013-2014

14

Fig. 23. Forme d’onda d’uscita e di ingresso che mostrano un ritardo di 14.6ns circa per M1

dimensionato con W=40m e L=0.5m.

La soluzione ottima si trova dunque con un W (di M1) fra 20m e 40m e procedendo per tentativi

si trova W=26m.

Vi è la possibilità di determinare automaticamente l’ottimo.

La .PARAM permette di definire un parametro (Wr) che può essere utilizzato nella definizione di

alcuni valori del circuito (in questo caso la larghezza del canale).

La .STEP permette di fare una analisi in cui si fa variare un parametro definito con la .PARAM.

Si modifichi il file di ingresso come segue (circuito5.cir)

*pilotaggio di linea RC .model mosp pmos LEVEL=1 VTO=-1 KP=50U TOX=9E-9 + CGDO=3.5E-10 CGSO=3.5E-10 CGBO=4.5E-10 .model mosn nmos LEVEL=1 VTO=1 KP=100U TOX=9E-9 + CGDO=3.5E-10 CGSO=3.5E-10 CGBO=4.5E-10 .param Wr=0.5u M1 1 2 3 1 mosp L=0.5u W={2*Wr} M2 3 2 0 0 mosn L=0.5u W={Wr} Vdd 1 0 3.3V Vin 2 0 PWL(0 0 9.95n 0 10.05n 3.3) .subckt RC 1 2 R1 1 2 925 C1 2 0 2p .ends

Page 15: Esercitazione 3: pilotaggio di linee RC con buffer CMOSserva.altervista.org/files/upd/Elettronica_Digitale/Spice/... · L’implementazione in SPICE del circuito di Fig. 3 è la seguente

Università degli studi di Ferrara, Dipartimento di Ingegneria, A.A.2013-2014

15

X1 3 4 RC X2 4 5 RC X3 5 7 RC X4 7 8 RC .step param Wr 0.5u 20u 0.5u .tran 100p 350n 0 100p .probe .end

La .STEP specifica di calcolare il transitorio per ogni valore del parametro Wr che varia da 0.5m a

20m a passi di 0.5m.

Dopo aver fatto girare la simulazione appare la finestra indicata in Fig. 24.

Fig. 24. Finestra di selezione delle analisi generate dalla .STEP.

Continuare semplicemente cliccando su OK. Selezionare “Performance Analysis” (vedi Fig. 25).

Fig. 25. Selezione del comando “Performance Analysis”.

Questo comando permette di sostituire l’asse delle x con la variabile parametrica indicata nella

.STEP (nel nostro caso la Wr). Attraverso la “Add Trace”, si inserisca la funzione di cui si vuole

seguire l’andamento in funzione del parametro Wr. Nel nostro caso ciò che interessa è il ritardo di

propagazione calcolabile come XatNthY(V(8),1.65,1)- XatNthY(V(2),1.65,1). La Fig. 26 mostra

l’andamento del ritardo di propagazione in funzione del dimensionamento dei transistori

dell’invertitore. Su tale grafico è possibile determinare immediatamente il dimensionamento ottimo.

Page 16: Esercitazione 3: pilotaggio di linee RC con buffer CMOSserva.altervista.org/files/upd/Elettronica_Digitale/Spice/... · L’implementazione in SPICE del circuito di Fig. 3 è la seguente

Università degli studi di Ferrara, Dipartimento di Ingegneria, A.A.2013-2014

16

Fig. 26. Ritardo di propagazione in funzione del dimensionamento dei transistori (parametro Wr).