Sei sulla pagina 1di 120

Indice

Introduzione ................................ ................................ ........................... 4

CAPITOLO 1 ................................ ................................ ......................... 6 FlipPrincipi di funzionamento di Latch, Flip - Flop e Logica Dinamica funziona mento Introduzione .......................................................................................... 6 1.1 Generalit ....................................................................................... 8 1.2 1.3 1.4 1.5 Il Latch base .................................................................................. 9 Il Flip-Flop ................................................................................... 13 Parametri temporali di un Flip-Flop in ambito digitale .............. 17 Dissipazione di potenza in circuiti CMOS .................................. 19

1.5.1 Consumo di Potenza Dinamico ............................................. 20 1.5.2 Consumo di Potenza di Cortocircuito ................................. 21 1.5.3 Consumo di Potenza Statico ................................................. 21 1.6 Logica Dinamica CMOS ............................................................... 21

CAPITOLO 2 ................................ ................................ ....................... 25 Circuiti Ausiliari 2.1 2.2 2.3 Circuito per il Test dei Flip-Flop ................................................ 25 Inverter simmetrico .................................................................... 27 FO4.............................................................................................. 30

CAPITOLO 3 ................................ ................................ ....................... 31 FlipSviluppo e Analisi di Flip - Flop TSPC 3.1 3.2 3.3 3.4 True Single Phase Clocking Logic (TSPC Logic) ......................... 31 Edge Triggered TSPC .................................................................. 32 Ottimizzazione dei Flip-Flop TSPC ............................................. 34 SN + PP + SP ............................................................................... 36 Funzionamento ..................................................................... 37 Ottimizzazione ..................................................................... 38 Parametro D (Delay)............................................................ 46 Minima tensione di alimentazione ........................................ 51 Potenza dissipata .................................................................. 53 Area occupata ...................................................................... 54

3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.6 3.5

SN + PP + SP improved .............................................................. 55 Funzionamento ..................................................................... 56 Ottimizzazione ..................................................................... 57 Parametro D (Delay)............................................................ 60 Minima tensione di alimentazione ........................................ 65 Potenza dissipata .................................................................. 67 Area occupata ...................................................................... 69

3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.5.6 3.6

SP + PN + SN .............................................................................. 69 Funzionamento ..................................................................... 70 Ottimizzazione ..................................................................... 71 Parametro D (Delay)............................................................ 74 Minima tensione di alimentazione ........................................ 79 Potenza dissipata .................................................................. 81 Area occupata ...................................................................... 82

3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6

3.7

SP + PN + SN improved ............................................................. 82 Funzionamento ..................................................................... 83 Ottimizzazione ..................................................................... 84 Parametro D (Delay)............................................................ 87 Minima tensione di alimentazione ........................................ 93 Potenza dissipata .................................................................. 94 Area occupata ...................................................................... 96

3.7.1 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.8

PN + SN + PP + SP (Precharged) ............................................... 97 Funzionamento ..................................................................... 98 Ottimizzazione ..................................................................... 99 Parametro D (Delay).......................................................... 108 Potenza dissipata ................................................................ 112 Area occupata .................................................................... 113

3.8.1 3.8.2 3.8.3 3.8.5 3.8.6

3.8.4. Minima tensione di alimentazione ...................................... 111

Conclusioni ................................ ................................ ......................... 114

Bibliografia ................................ ................................ .......................... 120

Introduzione

Lo scopo di questa tesi quello di sviluppare ed analizzare, su diversi piani, cinque topologie di flip-flop in logica TSPC (True Single Phase Clocking), alla quale appartengono un vasto numero di circuiti CMOS. Tra le qualit pi interessanti di questa logica vi la velocit e le topologie di flip-flop che andremo ad esaminare sono contraddistinte da elevate prestazioni da questo punto di vista. Tutte le misurazioni in termini di prestazioni e le ottimizzazioni delle topologie sono state condotte mediante il simulatore PSpice ed utilizzando una tecnologia sub-micrometrica con lunghezza di canale da 0,18 m . Per confrontare uniformemente le prestazioni dei flip-flop si utilizzato un segnale di clock con frequenza pari a 100MHz ed una tensione di alimentazione pari a 3V. In una fase iniziale si cercato di analizzare e comprendere il comportamento dei circuiti in esame al variare delle configurazioni dingresso; successivamente stata condotta lottimizzazione di ciascuna topologia attraverso uno studio sullopportuno dimensionamento dei transistor CMOS. Da questo punto di vista si possono utilizzare svariate tecniche ognuna delle quali, nella maggior parte dei casi, porta a risultati differenti. In questa tesi si seguito un criterio da noi ritenuto ottimale per quanto riguarda la logica in esame; ad ogni modo si tentato di

raggiungere il compromesso migliore tra prestazioni in termini di velocit e area di silicio occupata. Trattandosi di topologie circuitali appartenenti alla medesima logica si pensato di confrontarle mediante lutilizzo di parametri di facile misurazione, ma che permettano una uniformit nei paragoni in termini di velocit, di dissipazione di potenza, di occupazione di area e complessit circuitale. Per quanto concerne le prestazioni, sono state effettuate simulazioni parametriche che consentissero di calcolare e quantificare oggettivamente la reale velocit dei flip-flop e la loro minima tensione operativa. Infine tutti i risultati ottenuti per le differenti topologie sono stati confrontati per valutare la topologia di flip-flop con prestazioni migliori.

CAPITOLO 1

Principi di funzionamento di Latch, Flip-Flop e Logica Dinamica

Introduzione

I circuiti a logica combinatoria possiedono la caratteristica di fornire una uscita o pi uscite dipendenti esclusivamente dallingresso o dagli ingressi applicati in quello stesso istante, quindi questi circuiti non hanno capacit di memorizzazione. A differenza dei precedenti, i circuiti a logica sequenziale ,di cui fanno parte i Latch e i Flip-Flop, hanno invece la capacit di memorizzazione; cio

le loro uscite non dipendono esclusivamente dal valore attuale degli ingressi ma anche dai valori di uscite negli istanti precedenti. Per questa loro caratteristica i circuiti sequenziali sono utilizzati in moltissime applicazioni allinterno dei sistemi digitali. I Flip-Flop sono dei dispositivi sequenziali che necessitano di un segnale di temporizzazione (clock) che regola il loro funzionamento. Un latch un dispositivo che a differenza del precedente risulta trasparente al segnale dingresso quando abilitato. Flip-Flop e Latch sono probabilmente le strutture pi analizzate e pi dibattute nel progetto dei moderni microprocessori. I circuiti a Logica Dinamica sono nati per soddisfare lesigenza di disporre di strutture pi veloci rispetto a quelle implementate con approccio standard. Questo possibile grazie ad una minore occupazione darea che determina un minore carico capacitivo con la naturale conseguenza di un incremento della velocit di queste strutture. In questo capitolo descriveremo le principali caratteristiche di Latch, Flip-Flop e dei circuiti a Logica Dinamica.

1.1 Generalit
I sistemi digitali possono essere divisi in due categorie:

1. Sistemi a LOGICA COMBINATORIA; 2. Sistemi a LOGICA SEQUENZIALE.


I primi hanno la caratteristica di fornire la generica uscita allistante t dipendente unicamente dal valore assunto nello stesso istante dagli ingressi. I secondi hanno la caratteristica di fornire la generica uscita allistante t dipendente non solo dal valore assunto dagli ingressi nello stesso istante t, ma anche da configurazioni dingresso negli istanti passati. Affinch questi eventi passati (stati del sistema) possano essere resi disponibili alla struttura sequenziale, questa ultima deve disporre di elementi in grado di mantenere memoria dello stato del sistema. La funzione di memorizzazione dei dati pu essere implementata seguendo due strade: usando un feedback positivo (con circuiti CMOS statici); usando limmagazzinamento di cariche attraverso le capacit (con circuiti CMOS dinamici). Parlando di sistemi digitali con logica sequenziale non si pu fare a meno di citare i bi-stabili. Essi sono degli elementi in grado di immagazzinare informazioni, infatti il termine bi-stabile deriva dal fatto che tale elemento stabile in due stati (0 e 1) e che le transizioni sono forzate da un segnale dingresso.

Le principali differenze tra i vari tipi di bi-stabili sono date dal numero di ingressi dellelemento di memoria e dal modo in cui tali ingressi ne determinano lo stato. I bi-stabili si possono classificare in: bi-stabili asincroni; bi-stabili sincroni.

I primi sono privi di un segnale di sincronizzazione e modificano il loro stato rispondendo direttamente ad eventi collegati ai segnali dingresso. I secondi sono sensibili ad un segnale di controllo (spesso il clock) e la transizione da uno stato allaltro avviene solo in corrispondenza di un impulso del segnale di controllo. A questa ultima categoria appartengono i Latch e i Flip-Flop.

1.2

Il Latch base
Un latch un dispositivo in grado di memorizzare un bit di informazione e

costituisce la cella elementare di memoria. Si chiama latch (catturare) perch capace di catturare il livello del segnale d'ingresso e di mantenerlo in memoria. Il funzionamento del latch abbastanza semplice, infatti quando il segnale di sincronismo attivo leffetto di una variazione presente sugli ingressi si riflette nel valore delluscita. Il tempo durante il quale il segnale di sincronismo attivo detto intervallo di trasparenza del latch.

Come mostrato in fig. 1.1, il latch nella forma pi semplice costituito da una transmission gate T1, guidata da un segnale di controllo, clock (CLK), seguita da un buffer B1 [1].

CLK

T1

B1

Figura 1.1: Transparent High Latch (THL)

Il segnale di clock un segnale di controllo e come tale serve, nel caso che stiamo analizzando, per labilitazione o disabilitazione della transmission gate. Nella descrizione del funzionamento di questo dispositivo bisogna fare riferimento a due fasi distinte:

1. quando il segnale di clock alto (1 logico). In questa fase del clock la


transmission gate abilitata, il latch passa il dato in ingresso D, in uscita Q, attraverso il buffer B1;

2. quando il segnale di clock basso (0 logico). In questa fase la


transmission gate disabilitata, lingresso ignorato e il latch mantiene dinamicamente in uscita il valore pi recente campionato dallingresso, momento in cui il clock commuta da alto a basso.

10

Il latch chiamato Transparent High Latch (THL), se risulta attivo quando il CLK alto, mentre chiamato Transparent Low Latch (TLL), se risulta attivo quando il CLK basso. Risultano essere molto importanti le caratteristiche temporali di un latch in quanto possono essere intese come indici di prestazione assieme allarea occupata ed alla potenza dissipata. In fig. 1.2 vengono mostrate le caratteristiche temporali del Transparent High Latch.

clock tSU tH ingresso

uscita

tCQ

tDQ

Figura 1.2: Forme donda temporali per il THL

Per quanto concerne la misura del ritardo che caratterizza il latch, dipende da come si presenta il dato in ingresso nei confronti del segnale di clock. Se il dato assertato gi prima del fronte di salita del clock e lo rimane per tutta la durata dellintervallo di trasparenza del latch, il ritardo di questo ultimo viene definito

11

come lintervallo temporale che intercorre tra il fronte di salita del clock e la variazione delluscita (qualora ci fosse) ed indicato in fig. 1.2 come tCQ. Se il dato in ingresso varia allinterno dellintervallo di trasparenza del latch, in questo caso durante il livello alto del clock, il ritardo o latenza definita come lintervallo temporale che intercorre tra la transizione dellingresso e la conseguente commutazione delluscita ed indicato in fig. 1.2 come tDQ. Affinch si trasferisca con successo e si mantenga il dato in uscita bisogna garantire un minimo intervallo temporale prima , chiamato tempo di setup ed indicato in fig. 1.2 come tSU, durante il quale il dato in ingresso deve mantenersi stabile prima della commutazione del clock che disabilita il latch. Tuttavia il dato in ingresso deve anche essere mantenuto stabile per un minimo tempo, chiamato tempo di hold ed indicato in fig. 1.2 come tH, dopo la commutazione del clock che disabilita il latch per assicurare che il dato sia stato catturato in maniera appropriata. Luso dei latch come celle di memoria determina un ingente problema, infatti, durante tutto lintervallo di tempo in cui il clock lo abilita, ogni segnale dingresso si propaga nel latch condizionando luscita e lo stato, che diventano quindi facilmente influenzabili da eventuali disturbi. Questa eccessiva trasparenza del latch porta allutilizzo dei Flip-Flop.

12

1.3

Il Flip-Flop
I flip-flop sono dei dispositivi bistabili sincroni che presentano un

funzionamento analogo a quello dei latch. Le differenze sostanziali tra flip-flop e latch sono principalmente due:

1. al contrario del latch, che registra qualunque cambiamento degli


ingressi (anche possibili ed indesiderate fluttuazioni del segnale) durante lintero lintervallo di trasparenza, un flip-flop campiona il suo ingresso in un breve periodo chiamato aperture window, grazie al quale evitiamo la propagazione di spiacevoli disturbi verso luscita;

2. nei flip-flop la commutazione delluscita non avviene sul livello del


segnale di sincronismo, ma avviene in corrispondenza del suo fronte. Durante il periodo temporale che individua il fronte attivo del segnale di sincronismo, il flip-flop pu essere pensato trasparente e capace di sovrascrivere il dato precedente per creare un nuovo stato. Nel rimanente tempo il flip-flop risulta opaco e ignora ogni cambiamento che si presenta in ingresso. Se il flip-flop cattura il dato in ingresso sul fronte di salita del CLK, chiamato positive edge-triggered, altrimenti negative edge-triggered flip-flop. I flip-flop sono delle strutture che hanno un vastissimo impiego nellambito dei sistemi digitali, infatti essi sono sfruttati nella realizzazione di elementi di memoria ( buffer ), di divisori di frequenza, di contatori sincroni e asincroni, registri a scorrimento, microprocessori ecc. ecc. .

13

Il flip-flop mostrato in fig. 1.3, rappresenta un master-slave positive edge-triggered.

CLK P1 D T1 SM B1 IS T2 P2 SS B2 Q

CB

CLKB

Figura 1.3: Master-Slave Positive Edge-Triggered Flip-Flop

I flip-flop master-slave vengono realizzati utilizzando due latch in cascata che hanno il segnale di sincronismo in contrapposizione di fase. La caratteristica principale di questo tipo di flip-flop quella di possedere un percorso ingresso-uscita non continuo. Il circuito in questione comprende un master transparent high latch (THL) seguito da uno slave transparent low latch (TLL), ed entrambi sono pilotati dal segnale di clock (CLK). Esaminiamo pi in dettaglio il funzionamento del flip-flop mostrato in fig. 1.3. Quando il clock basso, il master TLL risulta trasparente in quanto la transmission gate T1 viene attivata e in questo modo lingresso D viene acquisito. Durante questa fase i cambiamenti in corso sono ignorati dallo slave THL che appare opaco in quanto la transmission gate T2 disattivata perch il suo segnale di clock sempre il negato del segnale di clock del master; come risultato luscita Q

14

mantiene il suo stato. Sul fronte di salita del clock il TLL diventa opaco e mantiene il suo stato sul nodo IS. Nel frattempo il THL diventa trasparente e lo rester per tutto il semiperiodo in cui il clock alto, il suo ingresso IS si propaga attraverso la transmission gate T2 sovrascrivendo luscita Q. In questa seconda fase in cui il clock alto, lingresso IS per il THL non subir variazioni dato che il nodo IS rappresenta luscita per il TLL che rester opaco durante tutto questo semiperiodo.

Comprendiamo, allora, come luscita Q del flip-flop soggetta ad essere sovrascritta solo una volta per ciclo in corrispondenza del fronte di salita del clock. Un problema, in questo tipo di flip-flop, potrebbe essere rappresentato dal ritardo introdotto dallinversione del clock che crea una finestra temporale sul fronte attivo del clock ( quello che porta lo slave da disattivo ad attivo) dove entrambi i latch risultano trasparenti. In questo caso se il ritardo dellinversione del clock, pari al ritardo di propagazione dellinverter CB, maggiore del ritardo accumulato attraverso le transmission gate T1 e T2 e linverter BI, dati errati si infiltreranno proponendosi in uscita. Una valida soluzione a tale problema potrebbe risiedere nel progettate linverter CB in modo di ridurre il suo ritardo sul fronte di salita; mentre linverter BI ha lo scopo di aumentare il ritardo di propagazione tra T1 e T2 in modo che il ritardo di CB sia maggiore di quello della somma di T1, T2 e B1. Attraverso le forme donda mostrate in fig. 1.4, ricaviamo le caratteristiche temporali del flip-flop.

15

tH tSU clock

ingresso tCQ

uscita master

uscita slave

tDQ

Figura 1.4: Forme donda del Flip-Flop Master-Slave

Tutte le caratteristiche temporali mostrate in fig. 1.4 sono riferite al fronte attivo del clock. Anche in questo caso, affinch si trasferisca con successo e si mantenga il dato in uscita, bisogna garantire un minimo intervallo temporale, indicato in fig. 1.4 come tSU, precedente il fronte attivo del clock, in cui il dato risulti stabile; e un tempo minimo, indicato in fig. 1.4 come tH, dopo il fronte attivo del clock. Quindi laperture window del flip-flop, cio lintervallo temporale durante il quale lingresso si deve mantenere stabile attorno al fronte attivo del clock, costituita da tSU + tH.

16

Il ritardo del flip-flop viene misurato dal parametro tDQ, costituito dalle componenti tSU e tCQ, e rappresenta lintervallo temporale da quando lingresso commuta a quando luscita risulta valida. Alcune volte risulta utile forzare il flip-flop per poter estrarre unuscita indipendentemente dai valori dingresso, in genere viene realizzato ci per assicurare che nellistante in cui si alimenta il circuito luscita si porti ad uno stato noto a priori. Per questa ragione i flip-flop, ma in generale ogni bistabile, possono essere provvisti di un ingresso asincrono di reset.

1.4

Parametri temporali di un Flip-Flop in ambito digitale


Dopo aver fatto una panoramica sul latch e sul flip-flop base, descriviamo i

parametri utilizzati per misurare dalle simulazioni le caratteristiche temporali dei flip-flop. I principali parametri temporali per descrivere i flip-flop sono: il CLOCK-TO-OUTPUT (tCQ); il tempo di SET-UP (tSU); il tempo di HOLD (tH).

17

Il ritardo clock-to-output viene definito come il ritardo tra il fronte attivo del clock e la variazione delluscita. In questa sezione verranno definiti il tempo di setup e il tempo di hold in modo leggermente diverso rispetto alla precedente definizione. In riferimento alla fig. 1.5: il tempo di setup definito come il tempo che intercorre tra la variazione del dato in ingresso e il fronte attivo del clock, che corrisponde ad un incremento del 5% dal valore nominale del tCQ; in modo analogo definiamo il tempo di hold, che corrisponde allintervallo temporale tra il fronte attivo del clock e la variazione accettabile del dato in ingresso quando si ha un incremento del 5% del tCQ dal suo valore nominale.

tCQ ( ps )

+ 5%

+ 5%

tDATA-CLOCK ( ps ) TSET-UP THOLD

Figura 1.5: Tempi di Set-Up e di Hold in ambito digitale

18

Si definisce, inoltre, unimportante parametro chiamato DELAY, di cui faremo uso in seguito e attraverso il quale cercheremo di quantificare la reale velocit dei flip-flop. Tale parametro descritto dallequazione 1.1.

D = 1, 05 t CQ + t SetUp _ 5%

(1.1)

1.5

Dissipazione di potenza in circuiti CMOS

Negli ultimi anni la domanda di dispositivi portatili elettronici (telefonia mobile, computer portatili, applicazioni spaziali, ecc.) ha subito una forte impennata. Affinch tali dispositivi siano sempre pi funzionali, cio sempre pi leggeri e compatti, bisogna che si riduca la batteria in termini di dimensioni e peso. Per poter seguire questa linea occorre ridurre la potenza dissipata, che diventata un fattore di progetto di primo ordine. I benefici in questo senso, comunque, riguardano anche i dispositivi non portatili, infatti con un basso consumo di potenza saranno minori le spese di alimentazione e raffreddamento. Di seguito analizzeremo le principali cause di dissipazione di potenza nei circuiti CMOS. Il consumo di potenza nei circuiti CMOS di tre tipologie [2].

19

1.5.1 Consumo di Potenza Dinamico


Determinato dalla carica e scarica delle capacit parassite del circuito. Essa rappresenta la pi larga percentuale della potenza dissipata in un circuito (70%-90%). Tale potenza descritta analiticamente attraverso lequazione 1.2:

2 Pd = fC CL VDD

(1.2)

dove rappresenta la probabilit che un nodo ha di cambiare valore per ogni ciclo di clock; fC esprime la frequenza con la quale si carica e scarica la capacit di carico del circuito (nei circuiti sincroni tale frequenza quella del clock); CL rappresenta la capacit equivalente al nodo duscita; mentre VDD rappresenta la tensione dalimentazione del circuito. Risulta chiaro come un circuito pi spinto sotto il profilo della frequenza del clock, sia anche un circuito che dissipa pi potenza dinamica. Daltra parte un circuito realizzato con tecnologie che permettono di utilizzare transistor di dimensioni ridotte cio considerare capacit parassite pi piccole oppure un circuito con tensione dalimentazione minore, determinano un minor consumo di potenza dinamica.

20

1.5.2 Consumo di Potenza di Cortocircuito


Dipende dalla natura reale dei segnali (fronti di salita e discesa non nulli) in ingresso al circuito che provocano un percorso di corrente tra alimentazione e massa. Anche se ci avviene per pochi istanti, la potenza di cortocircuito pu essere significativa e pu raggiungere il 30% della potenza totale dissipata da un circuito.

1.5.3 Consumo di Potenza Statico


Tale consumo di potenza costituito principalmente da tre contributi: quello dovuto alle correnti inverse delle giunzioni p-n in interdizione relative ai pozzetti di drain o source; quello dovuto alle correnti di sottosoglia che attraversano il canale anche quando il transistor spento; quello dovuto alle correnti di gate-tunnel tra gate e substrato.

1.6

Logica Dinamica CMOS


Le logiche CMOS statiche sono strutture molto versatili, infatti risultano

essere molto robuste e contraddistinte da una dissipazione di potenza minima, ma presentano notevoli limitazioni soprattutto in termini di frequenza di lavoro e di occupazione d'area. Quando occorrono circuiti che lavorino a frequenze elevate e

21

che non occupino troppa area si ricorre alle logiche dinamiche. Lapproccio a Logica Dinamica, che continua a fare riferimento alla tecnologia CMOS, nato sostanzialmente per realizzare circuiti logici pi veloci rispetto alle strutture CMOS statiche, tale incremento di velocit legato al fatto che si introducono minori carichi capacitivi, in quanto loccupazione di area globale minore rispetto alle strutture CMOS statiche. Il prezzo che si paga, in termini di una maggiore velocit, una minore robustezza e una dissipazione di potenza pi elevata rispetto allapproccio CMOS statico. Il funzionamento di queste logiche dinamiche diviso in due momenti temporali ben distinti :

1. FASE DI PRECARICA; 2. FASE DI VALUTAZIONE.


Durante la prima fase la tensione duscita settata ad un valore prefissato che pu essere nulla o pari alla tensione dalimentazione, indipendentemente dal valore degli ingressi. Durante la seconda fase viene elaborata linformazione proveniente dagli ingressi. Affinch ci sia una distinzione netta tra le due fasi necessario un segnale di cadenza meglio conosciuto come segnale di clock. Lo scopo di tale segnale proprio quello di sincronizzare funzionamento del circuito. In fig. 1.6 riportata la struttura di un inverter implementato con logica dinamica. Limplementazione della funzione logica viene realizzata dal transistor M1. le varie operazioni eseguite durante il

22

I transistors MP e MN sono entrambi controllati dal segnale di clock e si occupano rispettivamente della precarica e della valutazione.

VDD

MP Precarica OUT CLOCK IN M1 Logica

MN Valutazione

Figura 1.6: Inverter Dinamico

Esaminiamo pi in dettaglio la fase di precarica e quella di valutazione, prendendo come esempio linverter in fig. 1.6. FASE DI PRECARICA. Durante questa fase il clock posto a zero, quindi MP risulter acceso mentre MN risulter spento. Il cammino dalluscita a massa aperto, qualunque sia il valore in ingresso, invece il cammino dallalimentazione alluscita risulta chiuso. Indipendentemente dal segnale in ingresso luscita settata a VDD mediante MP.

23

FASE DI VALUTAZIONE. Durante questa fase il clock posto a VDD, quindi MP risulter spento mentre MN risulter acceso. Il cammino dallalimentazione alluscita aperto, invece il cammino dalluscita a massa risulta aperto o chiuso in funzione del segnale in ingresso a M1. Se IN=0 M1 sar spento e il cammino tra luscita e massa aperto e quindi la tensione duscita rimane vincolata a VDD perch

precedentemente precaricata. Se IN=VDD M1 sar acceso e il cammino tra luscita e massa chiuso e la capacit di carico si scarica portando la tensione duscita a zero.

24

CAPITOLO 2

Circuiti Ausiliari

2.1

Circuito per il Test dei Flip-Flop


Il circuito adoperato per testare i flip-flop che prenderemo in esame,

riportato in fig. 2.1. In ingresso si hanno da una parte due inverter in cascata 1A e 1B sulla linea su cui viaggia il segnale dingresso; dallaltra gli inverter 2A e 2B attraversati dal segnale di clock. Per mezzo del posizionamento di due inverter sulle linee dingresso del flip-flop, rendiamo le transizioni pi morbide avvicinandoci alle reali caratteristiche dei segnali, che altrimenti avrebbero avuto transizioni idealmente istantanee. Gli inverter sono dimensionati simmetrici al fine di ottenere transizioni basso-alto e alto-basso pi simili possibili.

25

3A

Data In
1A 1B

D Clk

3B

Clock
2A 2B

Flip-Flop

3C

3D

Figura 2.1: Circuito test utilizzato per le simulazioni

In uscita al flip-flop collochiamo quattro inverter minimi, 3A, 3B, 3C, 3D, disposti in parallelo al fine di standardizzare il carico capacitivo, per mezzo del quale possibile confrontare i diversi flip-flop nelle medesime condizioni di carico. Infatti bisogna dire che le prestazioni dei flip-flop variano profondamente al variare del carico capacitivo. Nel progetto si fa riferimento a transistor MOS con una tecnologia da 0.18 m e ad un segnale di clock a 100MHz.

26

2.2

Inverter simmetrico
Al fine di comprendere meglio largomento che affronteremo in questo

paragrafo bisogna prima dare alcune importanti definizioni sullinverter di fig. 2.2.

VDD

MP

IN

OUT

MN

Figura 2.2: Esempio di Inverter in logica CMOS

Unimportanza fondamentale, tra le caratteristiche statiche, ricopre la Tensione di soglia logica VLT , definita come quella tensione che posta in ingresso causa una tensione duscita dello stesso valore, cio VIN = VOUT = VLT . Riferendoci alla fig. 2.3, tra le caratteristiche dinamiche, definiamo: il RITARDO DI SALITA, che rappresenta lintervallo di tempo che intercorre tra listante in cui VIN = 50% e listante in cui VOUT = 50% , ed indicato in fig. 2.3 come t LH ;

27

il RITARDO DI DISCESA, definito in maniera analoga al precedente e indicato in fig. 2.3 come t HL ;

VIN

VLT

50%

VOUT
tLH tHL

VLT

50%

Figura 2.3: Caratteristiche Dinamiche dellInverter

Tali grandezze possono anche essere definite come lintervallo temporale tra listante in cui lingresso raggiunge la soglia logica e quello in cui luscita raggiunge la soglia logica. Un altro importante parametro dinamico il RITARDO DI

PROPAGAZIONE definito come il valore medio tra il ritardo di salita e quello di discesa, e descritto analiticamente dallequazione 2.1:

t PD =

t LH + t HL 2

(2.1)

28

Questo parametro utilizzato per quantificare la velocit di risposta dellinverter in seguito ad una variazione dellingresso. Nel caso di inverter simmetrici si ha t LH = t HL e quindi t PD = t LH = t HL . La strada da noi intrapresa per ottenere un inverter simmetrico di tipo statico. In condizioni di simmetria se in ingresso allinverter forziamo la tensione logica VLT , pari a met della tensione dalimentazione VDD , luscita fornir un valore di tensione proprio uguale alla tensione dingresso, cio VLT . Operativamente abbiamo imposto una tensione dingresso di 1,5V (le simulazioni sono state svolte con una tensione dalimentazione di 3V). Variando in modo crescente il W del PMOS ( WP ) dellinverter abbiamo ottenuto diversi valori della tensione duscita. In corrispondenza del valore pi prossimo a 1,5V della tensione duscita si ha il W del PMOS che meglio rende simmetrico linverter. In fig. 2.4 mostrato il risultato grafico delle simulazioni effettuate sullinverter al variare del WP .

1.7V

1.6V

1.5V

1.4V

1.3V

1.2V

1.1V

0s

2ns ...

V(M2:d)

4ns

6ns Time

8ns

10ns

12ns

14ns

15ns

Figura 2.4: Tensioni duscita dellInverter con WP parametrico

29

Come si pu notare in tale figura la traccia pi vicina ma inferiore a 1,5V (nostra scelta) quella di color giallo, in corrispondenza della quale si ha un

WP = 1,56m .

2.3

FO4
Tale parametro rappresenta il ritardo di propagazione (inteso come

nellequazione 2.1), di un inverter simmetrico caricato da quattro inverter minimi disposti in parallelo, come in fig. 2.5.

INIDEAL

IN FO4

OUT

Figura 2.5: Circuito utilizzato per la misura dellFO4

Dalla misurazione effettuata risulta: FO4= 50ps circa. Questo risultato ci servir per normalizzare quei parametri che quantificano la velocit dei flip-flop analizzati nel seguito.

30

CAPITOLO 3

Sviluppo e Analisi di Flip-Flop TSPC

3.1 True Single Phase Clocking Logic (TSPC Logic)


Questa rappresenta una vera e propria tecnica di progetto di un vasto numero di circuiti CMOS. Uno dei principali motivi che port allo sviluppo della logica TSPC [3] fu lesigenza di eliminare o ridurre il numero di transistor dipendenti dal clock, eliminando i suoi segnali negati che introducono inevitabilmente delle non idealit, ovvero dei ritardi. Una qualit importante che contraddistingue questa logica quella di possedere buone prestazioni in velocit, dovute particolarmente alla presenza del metodo di memorizzazione dinamico.

31

Riassumiamo quali sono i maggiori vantaggi che presenta la logica TSPC: distribuzione del clock semplice e compatta; alta frequenza di funzionamento; flessibilit di progetto; nessun problema legato allo skew.

Alla luce dei concetti esposti la tecnica TSPC risulta particolarmente adatta in applicazioni per lelaborazione dei segnali digitali, dove la velocit del datapath ricopre unimportanza primaria. Questi vantaggi, per, si pagano in termini di una maggiore complessit circuitale dovuta ad un numero pi elevato di transistor, e di una struttura meno compatta anche per il layout.

3.2

Edge Triggered TSPC


Un gran numero di latch e flip-flop basati sulla logica TSPC vengono realizzati

partendo dalla opportuna combinazione di quattro blocchi base, rappresentati in fig. 3.1, che prendono il nome di PP, precharged p-stage; PN, precharged n-stage (queste strutture non sono altro che inverter dinamici); SP, static (nonprecharged) p-stage; SN, static (nonprecharged) n-stage.

32

CLK CLK D OUT D

OUT CLK OUT

D CLK

OUT

PP

PN

SP

SN

Figura 3.1: Blocchi base della Logica TSPC

I circuiti che analizzeremo in questo capitolo, realizzati attraverso la combinazione di questi blocchi, sono: SN + PP + SP [4]; SN + PP + SP improved [4]; SP + PN + SN [4]; SP + PN + SN improved [4]; PN + SN + PP + SP (precharged) [3].

Per lultima struttura, topologia a precarica, non si pu definire un tempo di setup diverso da come lo avevamo fissato nel quarto paragrafo del primo capitolo. Infatti il dato viene immagazzinato solo su una fase del clock, ed possibile solo una variazione del dato allinterno di quella fase. In ogni caso il dato viene immagazzinato e si ripropone in uscita come per i flip-flop edge triggered.

33

Le topologie improved presentano delle modifiche rispetto a quelle normali, come il diverso posizionamento di alcuni transistor. La ragione per cui si fa ci, quella di evitare rumore o eventuali glitch nei nodi intermedi.

3.3

Ottimizzazione dei Flip-Flop TSPC


Per lottimizzazione delle strutture analizzate abbiamo seguito una strategia

che ci potesse garantire un ottimo compromesso tra la velocit di risposta e loccupazione darea di silicio. Infatti, disponendo di una tecnologia cos spinta, abbiamo creduto che per raggiungere una buona ottimizzazione non fosse necessario concentrarsi esclusivamente sulle prestazioni in termini di velocit, ma occorresse contemporaneamente tenere presente loccupazione daria come specifica di progetto, la quale, riteniamo ricopra unimportanza primaria. Impostando il lavoro di ottimizzazione sui flip-flop ci siamo accorti che non riuscivamo ad effettuare le opportune misurazioni sul ritardo di propagazione (parametro utilizzato per quantificare la velocit dei flip-flop), quando

consideravamo, da sinistra verso destra, inizialmente il primo blocco base, successivamente il primo ed il secondo assieme e cos via fino a valutare lintero circuito. Escluso il primo blocco che riuscivamo a fare funzionare come normale inverter, le altre strutture in uscita non presentavano commutazioni tali per effettuare le opportune misurazioni. Abbiamo, quindi, impostato lottimizzazione

34

dei flip-flop seguendo unaltra via. Affinch le strutture presentassero delle uscite adeguate, abbiamo deciso di ottimizzare un blocco base per volta, cos da osservare delle commutazioni piene in uscita. Ad esclusione del flip-flop PN+SN+PP+SP, per il quale si cercato di ottimizzare il clock-to-output e si far un discorso a parte, gli altri sono stati ottimizzati per una maggiore velocit di risposta. I blocchi SN ed SP sono stati ottimizzati ponendo il clock (CLK) rispettivamente sempre alto e basso, in modo che potessero funzionare da normali inverter. Le simulazioni sono state condotte, in entrambi i casi, dapprima sul PMOS e poi sullNMOS pilotati dal dato dingresso, in seguito sul transistor pilotato dal clock. I blocchi PP e PN , sia delle topologie semplici sia di quelle improved, sono stati ottimizzati attraverso simulazioni operate prima sul PMOS o sullNMOS pilotato dal dato dingresso e direttamente connesso alluscita, successivamente sullNMOS o sul PMOS pilotato dal clock e direttamente connesso alluscita, infine si agito sul rimanente transistor pilotato dal clock. Il caso del flip-flop PN+SN+PP+SP diverso in quanto si privilegia lottimizzazione del tCQ. Infatti nei blocchi PN e PP si agito prima sul PMOS o sullNMOS pilotato dal clock e direttamente connesso alluscita, successivamente sullNMOS o sul PMOS pilotato dal dato dingresso e direttamente connesso alluscita, infine si operato sul rimanente transistor pilotato dal clock. Per i blocchi SP ed SN si agito in una prima fase sul PMOS o sullNMOS pilotato dal clock e

35

direttamente connesso alluscita, successivamente sullNMOS o sul PMOS pilotato dal dato dingresso e direttamente connesso alluscita, infine sul rimanente transistor pilotato dal dato dingresso.

3.4

SN + PP + SP
La struttura circuitale dellSN+PP+SP [4] riportata in fig. 3.2.

M3

M6

M9

CLK

CLK

CLK Q

M2

M5

M8

M1

M4

M7

Figura 3.2: SN+PP+SP Flip-Flop

Questo flip-flop un negative edge triggered, ovvero memorizza il dato sul fronte di discesa del clock.

36

Tutte le misure sono eseguite con una alimentazione pari a 3V. Ricordiamo che variando la tensione di alimentazione variano anche i parametri temporali.

3.4.1

Funzionamento

Nel semiperiodo in cui il clock alto il primo blocco si comporta da normale inverter in quanto M2 risulta acceso, per cui il dato D viene proposto invertito sul nodo A. Il blocco PP, in questa fase del clock, effettua loperazione di PRECARICA poich M4 acceso, si viene cos ad instaurare un cammino diretto tra luscita del blocco in questione e massa. In questa maniera il nodo B viene precaricato ad un livello di tensione nulla indifferentemente dal valore del dato D in ingresso, quindi anche dal dato che giace sul nodo A. Il terzo blocco disattivato dato che M8 risulta spento, quindi non transita nessuna informazione verso luscita. Nel semiperiodo in cui il clock basso il blocco SN risulta disattivato e non lavora pi da inverter, in quanto M2 spento. Il secondo blocco, in questa fase del clock, effettua loperazione di VALUTAZIONE e funziona da inverter dinamico. Se il nodo A ha un valore di tensione alto, M5 spento ed il cammino tra lalimentazione e il nodo B aperto, quindi la tensione duscita di questo blocco rimane vincolata a massa. Se il nodo A basso M5 risulta acceso, e dal momento che anche M6 lo (clock alto) si ha un cammino diretto tra lalimentazione e luscita del blocco, che porta il nodo B ad un valore di tensione alto (M4 spento).

37

Il blocco finale rappresenta un normale inverter dato che M8 acceso, quindi il dato presente sul nodo B viene invertito e proposto sulluscita Q.

3.4.2

Ottimizzazione

Allo scopo di ottimizzare il blocco SN facciamo uso di un segnale di clock sempre alto in modo tale che il circuito possa funzionare da inverter e potere osservare in uscita delle commutazioni piene alto-basso e viceversa. In questa maniera possiamo stimare la velocit di risposta come una opportuna misura del tempo di propagazione. Da simulazioni parametriche, eseguite sul transistor M3, il cui risultato grafico mostrato in fig. 3.3, possiamo notare come il minimo della curva, pari a 62,66ns circa, che rappresenta il pi basso ritardo di propagazione del blocco circuitale in queste condizioni, sia in corrispondenza di WP = 2,8 m . Al fine di ottenere un buon compromesso tra velocit e area occupata abbiamo scelto WP = 1,5 m .

38

80p

75p

70p

(1.5000u,63.318p) 65p

(2.8000u,62.659p)

60p 0.5u

1.0u (tdelay(V(IN), V(OUT),3)+ tdelay(V(IN), V(OUT),4))/2

1.5u

2.0u WP

2.5u

3.0u

3.5u

Figura 3.3: Ritardo di propagazione calcolato con WP (M3) parametrico

La scelta compiuta stata fatta sulla base del seguente ragionamento: da 0,56 m a 1,5 m circa, lincremento di velocit molto rapido, mentre da 1,5 m a 2,8 m il ritardo di propagazione oscilla allinterno di una fascia di 1,3ps circa, notiamo quindi, come allinterno di tale fascia allaumentare del WP non ci siano sostanziali miglioramenti riguardo la velocit del blocco. Per questa ragione non consideriamo

WP = 2,8 m a fronte di una scelta che ci garantisce una velocit prossima a quella
minima, ma principalmente un notevole risparmio daria di silicio. Da simulazioni parametriche, eseguite sul transistor M1, il cui risultato grafico mostrato in fig. 3.4, siamo giunti alla conclusione che il miglior compromesso lo si raggiungesse attraverso WN = 1,3 m .

39

64p

62p

60p

58p

56p (1.3000u,56.629p)

54p 0.5u

(2.8500u,54.980p) 1.0u (tdelay(V(IN), V(OUT),3)+ tdelay(V(IN), V(OUT),4))/2 1.5u 2.0u WN 2.5u 3.0u 3.5u

Figura 3.4: Ritardo di propagazione calcolato con WN (M ) parametrico 1

Le ragioni di tale scelta sono del tutto analoghe a quelle esposte in precedenza. Per quanto riguarda le simulazioni parametriche eseguite sul transistor M2, ci hanno portato a sostenere, come si pu notare in fig. 3.5, che la migliore scelta in termini sia di velocit che di occupazione daria fosse WN = 0,56 m .

60p

59p

58p

57p

56p

(730.000n,55.339p)

55p

(560.000n,56.529p) 0.6u 0.8u (tdelay(V(IN), V(OUT),3)+ tdelay(V(IN), V(OUT),4))/2 1.0u 1.2u WN 1.4u 1.6u 1.8u 2.0u

Figura 3.5: Ritardo di propagazione calcolato con WN (M2) parametrico

40

Infatti il minimo della curva offre un incremento della velocit rispetto alla nostra scelta di soli 1,2ps circa. Lottimizzazione del blocco PP stata eseguita considerando un segnale di clock che evolve nel tempo in modo tale che in uscita dal circuito potessimo osservare delle commutazioni piene alto-basso e viceversa. In questa maniera possiamo stimare adeguatamente la misura del tempo di propagazione. Dalle simulazioni parametriche effettuate sul transistor M5, il cui risultato grafico riportato in fig. 3.6, emerge come il minimo della curva (90,04ns circa) sia in corrispondenza di WP = 1,15 m , che rappresenta un valore capace di garantire una ridotta occupazione daria e contemporaneamente minimizzare la velocit di risposta del blocco.

105p

100p

95p

(1.1500u,90.045p)

90p 0.5u

1.0u (tdelay(V(IN), V(OUT),3)+ tdelay(V(IN), V(OUT),4))/2

1.5u

2.0u WP

2.5u

3.0u

3.5u

Figura 3.6: Ritardo di propagazione calcolato con WP (M5) parametrico

41

La fig. 3.7 ci mostra il risultato delle simulazioni parametriche condotte su M6.

92p

88p

84p

80p

76p

(1.9000u,72.779p) (3.6000u,71.668p)

72p

68p 0.5u

1.0u 1.5u (tdelay(V(IN), V(OUT),3)+ tdelay(V(IN), V(OUT),4))/2

2.0u

2.5u WP

3.0u

3.5u

4.0u

4.5u

Figura 3.7: Ritardo di propagazione calcolato con WP (M6) parametrico

In questo caso il minimo della curva si ottiene in relazione a WP = 3,6 m . Come possiamo osservare dal grafico, inizialmente il circuito incrementa rapidamente la sua velocit fino a WP = 1,9 m circa, per poi assestarsi attorno al valore di 72ps, toccare il minimo ed infine aumentare. Alla luce di questa analisi un buon compromesso viene raggiunto attraverso WP = 1,9 m , infatti la differenza in termini di velocit tra questo valore e il minimo solo di 1,1ps circa. Le simulazioni parametriche effettuate sullNMOS M4, i cui risultati sono visibili in fig. 3.8, portano alla seguente scelta: WN = 0,9 m . Tale valore si ottiene in corrispondenza del minimo della curva e riesce ad assicurare una minima occupazione daria.

42

88p

84p

80p

76p

72p (900.000n,68.135p)

68p 0.5u

1.0u (tdelay(V(IN), V(OUT),3)+ tdelay(V(IN), V(OUT),4))/2

1.5u

2.0u WN

2.5u

3.0u

3.5u

Figura 3.8: Ritardo di propagazione calcolato con WN (M4 ) parametrico

Allo scopo di ottimizzare il blocco SP facciamo uso di un segnale di clock sempre basso in modo tale che il circuito possa funzionare da inverter e poter osservare in uscita delle commutazioni piene alto-basso e viceversa. In questo modo possiamo stimare la velocit di risposta come unopportuna misura del tempo di propagazione. Da simulazioni parametriche eseguite sul transistor M9, il cui risultato grafico mostrato in fig. 3.9, possiamo notare che per raggiungere un buon compromesso tra un basso ritardo di propagazione e una ridotta occupazione daria abbiamo scelto WP = 2,15 m .

43

110p

100p

90p

(2.1503u,81.115p) (2.8000u,78.685p)

80p

70p 0.5u

1.0u 1.5u (tdelay(V(IN), V(OUT),3)+ tdelay(V(IN), V(OUT),4))/2

2.0u

2.5u WP

3.0u

3.5u

4.0u

4.5u

Figura 3.9: Ritardo di propagazione calcolato con WP (M9) parametrico

Attraverso le simulazioni parametriche effettuate sul transistor M7, i cui risultati sono visibili in fig. 3.10, siamo giunti alla conclusione che il miglior compromesso lo si raggiungesse con WN = 1,3 m . Tale risultato mantiene un ritardo di propagazione molto vicino a quello minimo, infatti la loro differenza in termini di velocit solo di 1ps circa, e assicura un notevole risparmio daria.

85p

80p

75p

(1.3008u,73.802p) (2.2500u,72.867p)

70p 0.5u

1.0u 1.5u (tdelay(V(IN), V(OUT),3)+ tdelay(V(IN), V(OUT),4))/2

2.0u

2.5u WN

3.0u

3.5u

4.0u

4.5u

Figura 3.10: Ritardo di propagazione calcolato con WN (M7 ) parametrico

44

Per quanto riguarda le simulazioni parametriche eseguite sul transistor M8, ci hanno portato a sostenere, come si pu notare in fig. 3.11, che la migliore scelta fosse
WP = 1,65 m , infatti il minimo della curva offre un incremento della velocit

rispetto alla nostra scelta di soli 1,2ps circa.

75p

70p

65p (1.6519u,61.924p)

(2.4000u,61.355p)

60p 0.5u

1.0u 1.5u (tdelay(V(IN), V(OUT),3)+ tdelay(V(IN), V(OUT),4))/2

2.0u

2.5u WP

3.0u

3.5u

4.0u

4.5u

Figura 3.11: Ritardo di propagazione calcolato con WP (M8 ) parametrico

Riassumiamo tutti i risultati ottenuti dallottimizzazione di questo flip-flop nella tab. 3.1.

Blocco SN
WM1 = 1,3 m WM2 = 0,56 m WM3 = 1,5 m

Blocco PP
WM4 = 0,9 m WM5 = 1,15 m WM6 = 1,9 m

SP Blocco SP
WM7 = 1,3 m WM8 = 1,65 m WM9 = 2,15 m

Tabella 3.1: Larghezza dei transistor ottimizzati

45

3.4.3

Parametro D (Delay)

Per la determinazione del parametro D bisogna valutare il tempo clock-to-output e il tempo di setup in ambito digitale, entrambi vanno calcolati sia rispetto ad una transizione dingresso dal valore basso-alto, sia per una transizione contraria. La misura del tempo clock-to-output viene individuata rendendo parametrico il segnale dingresso, che facciamo avanzare allinterno di un intervallo di 1ns attorno al fronte attivo del clock con un passo di 0,1ns. In questo modo provochiamo delle uscite che seguono lingresso e altre che non lo seguono pi. Il clock-to-output di nostro interesse riferito graficamente alla sua parte costante. Il grafico pi in alto, tra i quattro presenti in fig. 3.12, rappresenta il tCQ quando andiamo a considerare degli ingressi le cui transizioni si sviluppano da un valore basso ad uno alto, come possiamo notare nella seconda fascia grafica. La terza fascia grafica raffigura landamento del clock, mentre il grafico pi in basso individua levoluzione delle uscite, le quali si dividono, come gi detto, in quelle che seguono lingresso e quelle che non lo seguono pi. Dalle simulazioni parametriche effettuate otteniamo un tCQ=119,74ps.

46

5.0n

2.5n SEL>> 0 4.5n 4.6n tdelay(V(clock),V(OUT),1) 4.0V 2.0V 0V ... V(IN)

4.7n

4.8n

4.9n

5.0n TS

5.1n

5.2n

5.3n

5.4n

5.5n

4.0V 2.0V 0V

4.0V 2.0V 0V 0s

...

V(clock)

2ns ... V(OUT)

4ns

6ns Time

8ns

10ns

12ns

14ns

15ns

Figura 3.12: Clock-to-Output per transizioni dingresso basso-alto

Per transizioni degli ingressi alto-basso si misura un t CQ = 81,61ps, come

mostrato in fig. 3.13.

100p

50p SEL>> 0 4.5n 4.6n tdelay(V(clock),V(OUT),1) 4.0V 2.0V 0V ... V(IN)

4.7n

4.8n

4.9n

5.0n TS

5.1n

5.2n

5.3n

5.4n

5.5n

4.0V 2.0V 0V

4.0V 2.0V 0V 0s

...

V(clock)

2ns ... V(OUT)

4ns

6ns Time

8ns

10ns

12ns

14ns

15ns

Figura 3.13: Clock-to-Output per transizioni dingresso alto-basso

47

Per il calcolo del tempo di setup in ambito digitale rendiamo parametrico il segnale dingresso, che facciamo variare nei pressi del fronte attivo del clock con un passo di 1ps. In questo modo provochiamo delle uscite che possiamo ritenere seguano lingresso e altre che non lo seguono pi. Operativamente il tempo di setup viene determinato sulla base dellultima uscita che riteniamo segua ancora lingresso. Non c da stupirsi nellottenere tempi di setup negativi, infatti questo ha un preciso significato: lingresso pu commutare, fino al valore raggiunto, dopo il fronte attivo del clock e il dato viene comunque catturato in modo corretto. Tempi negativi di questo tipo prevedibile attenderli, data la natura molto veloce di questi circuiti. Il grafico pi in alto, tra i quattro presenti in fig. 3.14, rappresenta landamento del t SU _ 5% quando andiamo a considerare lingresso la cui transizione evolve da un valore basso ad uno alto e varia parametricamente allinterno dellintervallo che si sviluppa da 5ps a 25ps, come possiamo notare nella seconda fascia grafica, mentre la terza fascia grafica raffigura landamento del clock. Attraverso lultima fascia grafica, che rappresenta le tensioni duscita, notiamo come tutte le tracce fino a quella VERDE (marcata dal quadratino bianco e contraddistinta da un notevole ritardo) possano essere considerate uscite che seguono lingresso. Dalle simulazioni parametriche effettuate otteniamo un t SU _ 5% = 20 ps .

48

100p

75p

50p 4p 4.0V

6p tdelay(V(clock),V(OUT),1)

8p

10p

12p

14p TS

16p

18p

20p

22p

24p

26p

2.0V

0V ... 4.0V V(IN)

2.0V

0V ... 3.0V 2.0V 1.0V SEL>> 0s 2ns ... 4ns V(OUT) Time 6ns 8ns 10ns 12ns 14ns 16ns V(clock)

Figura 3.14: Tempo di Set-Up per transizioni dingresso basso-alto

Consideriamo la transizione dell ingresso che evolve da un valore alto ad uno basso e varia parametricamente nellintervallo che si sviluppa da -32ps a -15ps. Dalle simulazioni parametriche eseguite, i cui risultati sono visibili in fig. 3.15, emerge che t SU _ 5% =-24ps. Dallultima fascia grafica, rappresentante la porzione della tensione duscita di nostro interesse, consideriamo le tracce fino a quella FUCSIA (contraddistinta dal quadratino bianco) come uscite che seguono lingresso, in quanto restano al di sopra di 2,95V.

49

87.5p

81.3p

75.0p -32p -30p tdelay(V(clock),V(OUT),1) 4.0V

-28p

-26p

-24p TS

-22p

-20p

-18p

-16p

-14p

2.0V

0V ... 4.0V V(IN)

2.0V

0V ... V(clock)

3.0V 2.9V SEL>> 2.8V 0s

2ns ...

4ns V(OUT)

6ns

8ns Time

10ns

12ns

14ns

16ns

Figura 3.15: Tempo di Set-Up per transizioni dingresso alto-basso

Riassumiamo nella tab. 3.2 i valori ottenuti per i tempi di setup e clock-to-output.

Clock-toTempo Clock-to-Output (ps) 0 VDD 119,74

SetTempo di Set-Up 5% (ps) 0 VDD 20

VDD 0
81,61

VDD 0
-24

Tabella 3.2: Tempi di Set-Up5% e Clock-to-Output del Flip-Flop

50

Per il calcolo del parametro D, espresso analiticamente dallequazione 3.1, prendiamo in considerazione i valori pi limitanti tra quelli riportati in tab. 3.2.

D = 1, 05 t CQ + t SU _ 5% = 1, 05 119 ,74 p + 20p = 145,73 ps

(3.1)

Per quantificare in modo oggettivo il ritardo del flip-flop prendiamo come parametri di confronto il Delay e il Clock-to-Output normalizzati rispetto allFO4. I risultati a cui siamo giunti sono mostrati in tab. 3.3 .

DELAY (FO4) 2,91

Clock-toRitardo Clock-to-Output (FO4) 2,39

Tabella 3.3: Parametri di confronto, normalizzati rispetto allFO4, che esprimono il ritardo del Flip-Flop

3.4.4

Minima tensione di alimentazione

In questa sezione siamo interessati a stabilire la tensione di alimentazione limite al di sotto della quale il circuito non funziona pi correttamente. Attraverso simulazioni parametriche abbiamo variato la tensione di alimentazione partendo da un valore di 1V, che assicura un corretto funzionamento del flip-flop, per scendere sino a 0,5V con un passo di 0,1V. In fig. 3.16 sono rappresentati, in alto le tensioni dingresso, mentre in basso le corrispondenti tensioni duscita del flip-flop. Come

51

possiamo osservare dai grafici, per valori di tensione che vanno da 1V a 0,7V il flip-flop lavora senza nessun problema, per un valore di 0,6V (tracce fucsia) luscita anche se con un notevole ritardo riesce in modo accettabile a seguire lingresso. Quando consideriamo una tensione di alimentazione pari a 0,5V, notiamo come il flip-flop non stia funzionando pi, infatti osserviamo una evoluzione piatta delluscita (traccia arancio), che non riesce a seguire lingresso, peraltro gi compromesso in quanto non ha proprio un andamento molto corretto. Alla luce dellanalisi appena esposta riteniamo che il valore limite della tensione di alimentazione sia 0,6V.

1.0V

0.5V

0V

V(IN)

1.0V

0.5V

0V SEL>> 0s V(OUT) 5ns 10ns Time 15ns 20ns 25ns

Figura 3.16: Tensioni dingresso e duscita del Flip-Flop con alimentazione parametrica

52

3.4.5

Potenza dissipata

Per il calcolo della potenza media dissipata dal flip-flop bisogna cercare di ottenere due commutazioni delluscita ( da alto a basso e viceversa), dopo almeno tre cicli di clock per permettere al circuito di assestarsi. Il valore della potenza media dissipata, viene calcolato come integrale del prodotto tra il valore della tensione di alimentazione VDD , e la corrente I VDD , che misuriamo sul generatore che alimenta il flip-flop, mediato negli n cicli di clock ( TClk rappresenta il periodo di clock, che nel nostro caso pari a 10ns) allinterno dei quali si consumano le due commutazioni delluscita. La descrizione analitica del calcolo di tale potenza riportata nellequazione 3.2.

Pmedia

1 = ( VDD I VDD ) dt nTClk

(3.2)

In fig. 3.17 mostriamo, nel grafico pi in alto (traccia verde) landamento della potenza media dissipata dal flip-flop, il cui massimo, 31,25 W , rappresenta il valore
numerico a cui facciamo riferimento. La seconda fascia grafica rappresenta il numero di cicli di clock allinterno dei quali si consumano le due commutazioni delluscita. Nel grafico pi in basso vengono rappresentati landamento dellingresso (traccia gialla) e quello delluscita (traccia blu).

53

35u

20u (45.358n,31.251u)

4.0V

S(-V(V4:+)*I(V4))/20n

2.0V

0V V(clock)

4.0V

2.0V

0V SEL>> 30ns V(IN) 32ns V(OUT) 34ns 36ns 38ns 40ns Time 42ns 44ns 46ns 48ns 50ns

Figura 3.17: Potenza media dissipata dal Flip-Flop

3.4.6

Area occupata

Il flip-flop costituito da 9 transistor, di cui cinque sono PMOS e quattro NMOS. Lestensione totale coperta risulta essere di 12,41 m , mentre la totale area di silicio occupata risulta essere di 2,23 m 2 circa.

54

3.5

SN + PP + SP improved
La struttura circuitale dellSN+PP+SP improved [4] riportata in fig. 3.18.

M3

M6

M9

CLK CLK

CLK

M2

M5

M8

M1

M4

M7

Figura 3.18: SN+PP+SP improved Flip-Flop

Anche questo flip-flop un negative edge triggered. Lunica modifica rispetto alla precedente topologia che il PMOS pilotato dal dato, nel blocco intermedio, stato posto in alto. Il comportamento simile al precedente flip-flop, varia la carica e scarica della capacit equivalente al nodo B. Tutte le simulazioni sono eseguite con una alimentazione pari a 3V.

55

3.5.1

Funzionamento

Nel semiperiodo in cui il clock alto il primo blocco si comporta da normale inverter in quanto M2 risulta acceso, per cui il dato D viene proposto invertito sul nodo A. Il blocco PP, in questa fase del clock, effettua loperazione di PRECARICA, infatti M4 acceso ed M5 spento, per cui si viene cos ad instaurare un cammino diretto tra luscita del blocco in questione e massa. In questa maniera il nodo B viene precaricato ad un livello di tensione nulla indifferentemente dal valore del dato D in ingresso, quindi indifferentemente dal dato che giace sul nodo A. Il terzo blocco disattivato dato che M8 risulta spento, quindi non transita nessuna informazione verso luscita. Nel semiperiodo in cui il clock basso il blocco SN risulta disattivato e non lavora pi da inverter, in quanto M2 spento. Il blocco PP, in questa fase del clock, effettua loperazione di VALUTAZIONE, in questo caso M4 spento mentre M5 acceso. Se il nodo A ha un valore di tensione alto, M6 spento ed il cammino tra lalimentazione e il nodo B aperto, quindi la tensione duscita di questo blocco rimane vincolata a massa. Se il nodo A ha un valore di tensione basso M6 risulta acceso e si ha un cammino diretto tra lalimentazione e luscita del blocco in questione, che porta il nodo B ad avere un valore di tensione alto. Il blocco finale rappresenta un normale inverter dato che M8 acceso, quindi il dato presente sul nodo B viene invertito e proposto sulluscita Q.

56

3.5.2

Ottimizzazione

Lottimizzazione dei blocchi SN ed SP uguale a quella discussa nel quarto paragrafo dellattuale capitolo, quindi faremo riferimento ai risultati

precedentemente raggiunti. La stessa cosa non possiamo dire per il blocco PP, che presenta delle differenze circuitali rispetto allomonimo blocco del flip-flop precedente, motivo per il quale tale blocco va ottimizzato nuovamente. Lottimizzazione del blocco PP stata eseguita considerando un segnale di clock che evolve nel tempo, in modo tale che in uscita dal circuito potessimo osservare delle commutazioni piene da alto a basso e viceversa. In questa maniera possiamo stimare adeguatamente la misura del tempo di propagazione. Da simulazioni parametriche eseguite sul transistor M6, il cui risultato grafico mostrato in fig. 3.19, possiamo notare che per raggiungere un buon compromesso tra velocit di risposta e una ridotta occupazione daria abbiamo scelto WP = 1,3 m , in corrispondenza del quale osserviamo un incremento della velocit di circa il 20% rispetto a quella che si ottiene considerando il transistor minimo.

57

110p

100p

90p

(1.3000u,83.227p)

80p

70p

60p

50p 0.5u

1.0u 1.5u (tdelay(V(IN), V(OUT),3)+ tdelay(V(IN), V(OUT),4))/2

2.0u

2.5u WP

3.0u

3.5u

4.0u

4.5u

Figura 3.19: Ritardo di propagazione calcolato con WP (M6) parametrico

Dalle simulazioni parametriche effettuate su M5, i cui risultati sono visibili in fig. 3.20, emerge come il minimo della curva sia in corrispondenza di WP = 1 m , che rappresenta un valore capace di garantire una ridotta occupazione daria e contemporaneamente rendere minima la velocit di risposta del blocco.

100p

96p

92p

88p

84p

80p

(1.0000u,77.002p)

76p 0.5u

1.0u (tdelay(V(IN), V(OUT),3)+ tdelay(V(IN), V(OUT),4))/2

1.5u

2.0u WP

2.5u

3.0u

3.5u

Figura 3.20: Ritardo di propagazione calcolato con WP (M5) parametrico

58

Le simulazioni parametriche effettuate sullNMOS M4, i cui risultati grafici sono mostrati in fig. 3.21, portano alla seguente scelta: WN = 1,05 m . Tale valore si ottiene in corrispondenza del minimo della curva e riesce ad assicurare una minima occupazione daria.

96p

92p

88p

84p

80p

(1.0500u,74.252p) 76p

72p 0.5u

1.0u (tdelay(V(IN), V(OUT),3)+ tdelay(V(IN), V(OUT),4))/2

1.5u

2.0u WN

2.5u

3.0u

3.5u

Figura 3.21: Ritardo di propagazione calcolato con WN (M4 ) parametrico

Riassumiamo tutti i risultati ottenuti dallottimizzazione di questo flip-flop nella tab. 3.4.

Blocco SN
WM1 = 1,3 m WM2 = 0,56 m WM3 = 1,5 m

Blocco PP

SP Blocco SP
WM7 = 1,3 m WM8 = 1,65 m WM9 = 2,15 m

WM4 = 1,05 m WM5 = 1 m WM6 = 1,3 m

Tabella 3.4: Larghezza dei transistor ottimizzati

59

3.5.3

Parametro D (Delay)

Per la determinazione del parametro D bisogna valutare il tempo clock-to-output e il tempo di setup in ambito digitale, entrambi vanno calcolati rispetto ad una transizione dingresso dal valore basso a quello alto, sia per una transizione contraria. Il grafico pi in alto, tra i quattro presenti in fig. 3.22, rappresenta il tCQ quando andiamo a considerare degli ingressi le cui transizioni si sviluppano da un valore basso ad uno alto, come possiamo notare nella seconda fascia grafica. La terza fascia grafica raffigura landamento del clock, mentre il grafico pi in basso individua levoluzione delle uscite, le quali si dividono in quelle che seguono lingresso e quelle che non lo seguono pi. Dalle simulazioni parametriche effettuate otteniamo un tCQ=122,66ps.

60

5.0n

2.5n

0 4.5n 4.6n tdelay(V(clock),V(OUT),1) 4.0V 2.0V

4.7n

4.8n

4.9n

5.0n TS

5.1n

5.2n

5.3n

5.4n

5.5n

SEL>> -1.0V 4.0V 2.0V 0V

...

V(IN)

4.0V 2.0V 0V 0s

...

V(clock)

2ns ... V(OUT)

4ns

6ns Time

8ns

10ns

12ns

14ns

15ns

Figura 3.22: Clock-to-Output per transizioni dingresso basso-alto

Per transizioni degli ingressi alto-basso si misura un tCQ=77,80ps, come mostrato in fig. 3.23.

100p

50p

0 4.5n 4.6n tdelay(V(clock),V(OUT),1) 4.0V 2.0V

4.7n

4.8n

4.9n

5.0n TS

5.1n

5.2n

5.3n

5.4n

5.5n

SEL>> -1.0V 4.0V 2.0V 0V

...

V(IN)

4.0V 2.0V 0V 0s

...

V(clock)

2ns ... V(OUT)

4ns

6ns Time

8ns

10ns

12ns

14ns

15ns

Figura 3.23: Clock-to-Output per transizioni dingresso alto-basso

61

Per il calcolo del tempo di setup in ambito digitale rendiamo parametrico il segnale dingresso, che facciamo variare nei pressi del fronte attivo del clock con un passo di 1ps. In questo modo provochiamo delle uscite che possiamo ritenere seguano lingresso e altre che non lo seguono pi. Operativamente il tempo di setup viene determinato sulla base dellultima uscita che riteniamo segua ancora lingresso. Il grafico pi in alto, tra i quattro presenti in fig. 3.24, rappresenta landamento del t SU _ 5% quando andiamo a considerare lingresso la cui transizione evolve da un valore basso ad uno alto e varia parametricamente allinterno dellintervallo che si sviluppa da 15ps a 30ps, come possiamo notare nella seconda fascia grafica, mentre la terza fascia grafica raffigura landamento del clock. Attraverso lultima fascia grafica, che rappresenta le tensioni duscita, notiamo come tutte le tracce fino a quella GIALLA (evidenziata dal quadratino bianco e contraddistinta da un notevole ritardo) possiamo considerarle come uscite che seguono lingresso. Dalle simulazioni parametriche effettuate otteniamo un t SU _ 5% = 18 ps .

62

80p

60p

40p 14p 16p tdelay(V(clock),V(OUT),1) 4.0V

18p

20p

22p TS

24p

26p

28p

30p

2.0V

0V ... 4.0V V(IN)

2.0V

0V ... 3.5V 2.0V V(clock)

SEL>> -0.5V 0s

2ns ...

4ns V(OUT)

6ns

8ns Time

10ns

12ns

14ns

16ns

Figura 3.24: Tempo di Set-Up per transizioni dingresso basso-alto

Consideriamo la transizione dell ingresso che evolve da un valore alto ad uno basso e varia parametricamente nellintervallo che si sviluppa da 20ps a 40ps. Dalle simulazioni parametriche eseguite, i cui risultati sono visibili in fig. 3.25, emerge che t SU _ 5% =23ps. Dallultima fascia grafica, rappresentante la porzione della tensione duscita di nostro interesse, consideriamo le tracce fino a quella VERDE (contraddistinta dal quadratino bianco) come uscite che seguono lingresso, in quanto restano al di sopra di 2,95V.

63

80p

70p

60p 20p 22p 24p tdelay(V(clock),V(OUT),1) 4.0V 2.0V 0V ... V(IN)

26p

28p

30p TS

32p

34p

36p

38p

40p

4.0V 2.0V 0V

... V(clock) 3.00V

2.75V SEL>> 0s 2ns ... V(OUT) 4ns 6ns 8ns Time 10ns 12ns 14ns 16ns

Figura 3.25: Tempo di Set-Up per transizioni dingresso alto-basso

Riassumiamo nella tab. 3.5 i valori ottenuti per i tempi di setup e clock-to-output.

Clock-toTempo Clock-to-Output (ps) 0 VDD 122,66

SetTempo di Set-Up 5% (ps) 0 VDD 18

VDD 0
77,80

VDD 0
23

Tabella 3.5: Tempi di Set-Up5% e Clock-to-Output del Flip-Flop

64

Per il calcolo del parametro D, espresso analiticamente dallequazione 3.3, prendiamo in considerazione i valori pi limitanti tra quelli riportati in tab. 3.5.

D = 1, 05 t CQ + t SU _ 5% = 1, 05 122 ,66p + 23p = 151,79 ps

(3.3)

Per quantificare in modo oggettivo il ritardo del flip-flop prendiamo come parametri di confronto il Delay e il Clock-to-Output normalizzati rispetto allFO4. I risultati a cui siamo giunti sono mostrati nella tab. 3.6.

(FO4) DELAY (FO4) 3,03

Clock-toRitardo Clock-to-Output (FO4) 2,45

Tabella 3.6: Parametri di confronto, normalizzati rispetto allFO4, che esprimono il ritardo del Flip-Flop

3.5.4

Minima tensione di alimentazione

In questa sezione siamo interessati a stabilire la tensione di alimentazione limite al di sotto della quale il circuito non funziona pi correttamente. Attraverso simulazioni parametriche abbiamo variato la tensione di alimentazione partendo da un valore di 1V, che assicura un corretto funzionamento del flip-flop, per scendere sino a 0,5V con un passo di 0,1V. In fig. 3.26 sono rappresentati, in alto le tensioni dingresso, mentre in basso le corrispondenti tensioni duscita del flip-flop. Come

65

possiamo osservare dai grafici, per valori di tensione che vanno da 1V a 0,7V il flip-flop lavora senza nessun problema, per un valore di 0,6V (tracce fucsia) luscita anche se con un notevole ritardo riesce in modo accettabile a seguire lingresso. Quando consideriamo una tensione di alimentazione pari a 0,5V, notiamo come il flip-flop non stia funzionando pi, infatti osserviamo una evoluzione piatta delluscita (traccia arancio), che non riesce a seguire lingresso, peraltro gi compromesso in quanto non ha proprio un andamento molto corretto. Alla luce dellanalisi appena esposta riteniamo che il valore limite della tensione dalimentazione sia 0,6V.

1.0V

0.5V

0V

V(IN)

1.0V

0.5V

0V SEL>> 0s V(OUT) 5ns 10ns Time 15ns 20ns 25ns

Figura 3.26: Tensioni dingresso e duscita del Flip-Flop con alimentazione parametrica

66

3.5.5

Potenza dissipata

In fig. 3.27 mostriamo nel grafico pi in alto (traccia verde) landamento della potenza media dissipata dal flip-flop, il cui massimo, 64,34 W , rappresenta il valore numerico a cui facciamo riferimento. La seconda fascia grafica rappresenta il numero di cicli di clock allinterno dei quali si consumano le due commutazioni delluscita. Nel grafico pi in basso vengono rappresentati landamento dellingresso (traccia gialla) e quello delluscita (traccia blu).

70u 50u (50.000n,64.336u)

25u

0 SEL>> 4.0V s(-V(V1:+)*I(V1))/20n

2.0V

0V V(clock)

4.0V

2.0V

0V 30ns V(IN) 32ns V(OUT) 34ns 36ns 38ns 40ns Time 42ns 44ns 46ns 48ns 50ns

Figura 3.27: Potenza media dissipata dal Flip-Flop

Notiamo come nella parte finale della prima fascia grafica di fig. 3.27 la curva subisca una brusca impennata, questo porta ad ottenere un valore della potenza confrontabile con quella calcolata utilizzando una tecnologia da 0,35 m .

67

Il motivo di una dissipazione cos alta deriva da un consumo di potenza di cortocircuito che si concretizza nel blocco SP quando sia il clock che lingresso hanno un valore di tensione basso. Infatti, isolando tale blocco circuitale la potenza media dissipata diminuisce prepotentemente arrivando a 15,55 W , come notiamo in fig. 3.28. Risulta chiaro, quindi, come la maggior parte della potenza venga dissipata dal blocco SP.

20u

10u (45.150n,15.551u) 0 SEL>> s(-V(V1:+)*I(V1))/20n 4.0V

2.0V

0V

4.0V

V(clock)

2.0V

0V

30ns V(IN)

32ns V(OUT)

34ns

36ns

38ns

40ns Time

42ns

44ns

46ns

48ns

50ns

Figura 3.28: Potenza media dissipata dal Flip-Flop senza il contributo del blocco SP

68

3.5.6

Area occupata

Il flip-flop costituito da 9 transistor, di cui cinque sono PMOS e quattro NMOS. Lestensione totale coperta risulta essere di 11,81 m , mentre la totale area di silicio occupata risulta essere di 2,12 m 2 circa.

3.6

SP + PN + SN
La struttura circuitale dellSP+PN+SN [4] riportata in fig. 3.29.

M3

M6

M9

CLK
A

CLK

CLK

M2

M5

M8

M1

M4

M7

Figura 3.29: SP+ PN+ SN Flip-Flop

69

Questo flip-flop, a differenza degli ultimi due un positive edge triggered, ovvero memorizza il dato sul fronte di salita del clock. Tutte le simulazioni sono eseguite con una alimentazione pari a 3V.

3.6.1

Funzionamento

Nel semiperiodo in cui il clock basso il primo blocco si comporta da normale inverter in quanto M2 risulta acceso, per cui il dato D viene proposto invertito sul nodo A. Il blocco PN, in questa fase del clock, effettua loperazione di PRECARICA poich M6 acceso ed M4 spento, si viene cos ad instaurare un cammino diretto tra lalimentazione e luscita del blocco in questione. In questa maniera il nodo B viene precaricato ad un livello di tensione alto indifferentemente dal valore del dato D in ingresso, quindi indifferentemente dal dato che giace sul nodo A. Il terzo blocco disattivato dato che M8 risulta spento, quindi non transita nessuna informazione verso luscita. Nel semiperiodo in cui il clock alto il blocco SN risulta disattivato e non lavora pi da inverter, in quanto M2 spento. Il secondo blocco, in questa fase del clock, effettua loperazione di VALUTAZIONE e funziona da inverter dinamico. Se il nodo A ha un valore di tensione alto M5 acceso e dal momento che anche M4 lo (clock alto), il cammino tra il nodo B e massa chiuso, quindi la capacit di carico che insiste sul nodo B si scarica portando la tensione duscita del blocco a zero. Se il nodo A ha un valore di tensione basso M5 risulta spento, il cammino tra

70

luscita del blocco in questione e massa aperto, e la tensione sul nodo B rimane vincolata al valore dellalimentazione. Il blocco finale rappresenta un normale inverter dato che M8 acceso, quindi il dato presente sul nodo B viene invertito e proposto sulluscita Q.

3.6.2

Ottimizzazione

Lottimizzazione dei blocchi SP ed SN uguale a quella discussa nel quarto paragrafo del corrente capitolo. Lottimizzazione del blocco PN stata eseguita considerando un segnale di clock che evolve nel tempo in modo tale che in uscita dal circuito potessimo osservare delle commutazioni piene da alto a basso e viceversa. In questa maniera possiamo stimare adeguatamente la misura del tempo di propagazione. Attraverso le simulazioni parametriche effettuate sul transistor M6, i cui risultati sono visibili in fig. 3.30, siamo giunti alla conclusione che il miglior compromesso lo si raggiungesse con WP = 1,1 m . Tale risultato mantiene un ritardo di propagazione molto vicino a quello minimo, infatti la loro differenza in termini di velocit solo di 0,2ps circa, e assicura un buon risparmio daria.

71

84p

80p

76p

72p (1.1000u,68.885p) (1.4000u,68.711p)

68p 0.5u

1.0u (tdelay(V(IN), V(OUT),3)+ tdelay(V(IN), V(OUT),4))/2

1.5u

2.0u WP

2.5u

3.0u

3.5u

Figura 3.30: Ritardo di propagazione calcolato con WP (M6) parametrico

Le simulazioni parametriche effettuate sullNMOS M5, i cui risultati sono visibili in fig. 3.31, portano alla seguente scelta: WN = 0,95 m . Tale valore si ottiene in corrispondenza del minimo della curva e riesce ad assicurare una minima occupazione daria.

78p

76p

74p

72p

70p (950.000n,67.221p)

68p

66p 0.5u

1.0u (tdelay(V(IN), V(OUT),3)+ tdelay(V(IN), V(OUT),4))/2

1.5u

2.0u WN

2.5u

3.0u

3.5u

Figura 3.31: Ritardo di propagazione calcolato con WN (M5) parametrico

72

La fig. 3.32 ci mostra il risultato grafico delle simulazioni parametriche condotte su M4. In questo caso il minimo della curva si ottiene in relazione a

WN = 1,65 m . Come possiamo osservare dal grafico la curva presenta un


andamento simile a quello parabolico, infatti inizialmente il circuito incrementa rapidamente la sua velocit fino a WN = 1,25 m circa, tocca il minimo ed infine si impenna verso valori crescenti del ritardo di propagazione. Alla luce di questa analisi un buon compromesso viene raggiunto attraverso WN = 1,25 m , infatti la differenza in termini di velocit tra questo valore e il minimo solo di 0,2ps circa.

70p

68p

66p

64p

62p

(1.2500u,60.990p)

(1.6500u,60.835p)

60p 0.5u

1.0u (tdelay(V(IN), V(OUT),3)+ tdelay(V(IN), V(OUT),4))/2

1.5u

2.0u WN

2.5u

3.0u

3.5u

Figura 3.32: Ritardo di propagazione calcolato con WN (M4 ) parametrico

73

Riassumiamo tutti i risultati ottenuti dallottimizzazione di questo flip-flop attraverso la tab. 3.7.

SP Blocco SP

PN Blocco PN

Blocco SN

WM1 = 1,3 m WM2 = 1,65 m WM3 = 2,15 m

WM4 = 1,25 m WM5 = 0,95 m WM6 = 1,1 m

WM7 = 1,3 m WM8 = 0,56 m WM9 = 1,5 m

Tabella 3.7: Larghezza dei transistor ottimizzati

3.6.3

Parametro D (Delay)

Per la determinazione del parametro D bisogna valutare il tempo clock-to-output e il tempo di setup in ambito digitale, entrambi vanno calcolati rispetto ad una transizione dingresso dal valore basso a quello alto, sia per una transizione contraria. Il grafico pi in alto, tra i quattro presenti in fig. 3.33, rappresenta il tCQ quando andiamo a considerare degli ingressi le cui transizioni si sviluppano da un valore basso ad uno alto, come possiamo notare nella seconda fascia grafica. La terza fascia grafica raffigura landamento del clock, mentre il grafico pi in basso individua levoluzione delle uscite, le quali si dividono in quelle che seguono

74

lingresso e quelle che non lo seguono pi. Dalle simulazioni parametriche effettuate otteniamo un tCQ=55,5ps.

100p

50p

SEL>> 0 4.5n 4.6n tdelay(V(clock),V(OUT),1) 4.0V

4.7n

4.8n

4.9n

5.0n TS

5.1n

5.2n

5.3n

5.4n

5.5n

2.0V

0V ... 4.0V V(IN)

2.0V

0V ... 4.0V V(clock)

2.0V

0V 0s 2ns ... 4ns V(OUT) Time 6ns 8ns 10ns 12ns 14ns 16ns

Figura 3.33: Clock-to-Output per transizioni dingresso basso-alto

75

Per transizioni degli ingressi alto-basso si misura un tCQ=100ps, come mostrato in fig. 3.34.

5.0n

2.5n SEL>> 0 4.5n 4.6n tdelay(V(clock),V(OUT),1) 4.0V 2.0V 0V ... V(IN)

4.7n

4.8n

4.9n

5.0n TS

5.1n

5.2n

5.3n

5.4n

5.5n

4.0V 2.0V 0V

4.0V 2.0V 0V 0s

...

V(clock)

2ns ...

V(OUT)

4ns

6ns

8ns Time

10ns

12ns

14ns

16ns

Figura 3.34: Clock-to-Output per transizioni dingresso alto-basso

Per il calcolo del tempo di setup in ambito digitale rendiamo parametrico il segnale dingresso, che facciamo variare nei pressi del fronte attivo del clock con un passo di 1ps. In questo modo provochiamo delle uscite che possiamo ritenere seguano lingresso e altre che non lo seguono pi. Operativamente il tempo di setup viene determinato sulla base dellultima uscita che riteniamo segua ancora lingresso. Consideriamo la transizione dell ingresso che evolve da un valore basso ad uno alto e varia parametricamente nellintervallo che si sviluppa da -10ps a 5ps. Dalle simulazioni parametriche eseguite, i cui risultati sono visibili in fig. 3.35,

76

emerge che t SU _ 5% =-6ps. Dallultima fascia grafica, rappresentante la porzione della tensione duscita di nostro interesse, consideriamo le tracce fino a quella FUCSIA (marcata dal quadratino bianco) come uscite che seguono lingresso, in quanto stazionano al di sotto di 50mV.

57.5p 55.0p 52.5p 50.0p -10p -8p tdelay(V(clock),V(OUT),1) 4.0V 2.0V 0V ... V(IN) -6p -4p -2p TS -0p 2p 4p 6p

4.0V 2.0V 0V

... 100mV 50mV 0V SEL>> -75mV 0s

V(clock)

2ns ...

V(OUT)

4ns

6ns

8ns Time

10ns

12ns

14ns

16ns

Figura 3.35: Tempo di Set-Up per transizioni dingresso basso-alto

Il grafico pi in alto, tra i quattro presenti in fig. 3.36, rappresenta landamento del t SU _ 5% quando andiamo a considerare lingresso la cui transizione evolve da un valore alto ad uno basso e varia parametricamente allinterno dellintervallo che si sviluppa da 30ps a 50ps, come possiamo notare nella seconda fascia grafica, mentre la terza fascia grafica raffigura landamento del clock. Attraverso lultima fascia grafica, che rappresenta le tensioni duscita, notiamo come tutte le tracce fino a quella ARANCIO (evidenziata dal quadratino bianco e

77

contraddistinta da un buon ritardo), possiamo considerarle come uscite che seguono lingresso. Dalle simulazioni parametriche effettuate otteniamo un t SU _ 5% = 36 ps .

50.0p 37.5p 25.0p 30p 32p tdelay(V(clock),V(OUT),1) 4.0V 2.0V 0V ... V(IN) 34p 36p 38p 40p TS 42p 44p 46p 48p 50p

4.0V 2.0V 0V

3.5V 2.0V

...

V(clock)

SEL>> -0.5V 0s

2ns ...

V(OUT)

4ns

6ns

8ns Time

10ns

12ns

14ns

16ns

Figura 3.36: Tempo di Set-Up per transizioni dingresso alto-basso

Riassumiamo nella tab. 3.8 i valori ottenuti per i tempi di setup e clock-to-output.

Clock-toTempo Clock-to-Output (ps) 0 VDD 55,5

SetTempo di Set-Up 5% (ps) 0 VDD -6

VDD 0
100

VDD 0
36

Tabella 3.8: Tempi di Set-Up5% e Clock-to-Output del Flip-Flop

78

Per il calcolo del parametro D, espresso analiticamente dallequazione 3.4, prendiamo in considerazione i valori pi limitanti tra quelli riportati in tab. 3.8.

D = 1, 05 t CQ + t SU _ 5% = 1, 05 100 p + 36p = 141 ps

(3.4)

Per quantificare in modo oggettivo il ritardo del flip-flop prendiamo come parametri di confronto il Delay e il Clock-to-Output normalizzati rispetto allFO4. I risultati a cui siamo giunti sono mostrati nella tab. 3.9.

DELAY (FO4) 2,82 2,82

Ritardo Clock-toRitardo Clock-to-Output (FO4) 2

Tabella 3.9: Parametri di confronto, normalizzati rispetto allFO4, che esprimono il ritardo del Flip-Flop

3.6.4

Minima tensione di alimentazione

In questa sezione siamo interessati a stabilire la tensione di alimentazione limite al di sotto della quale il circuito non funziona pi correttamente. Attraverso simulazioni parametriche abbiamo variato la tensione di alimentazione partendo da un valore di 1V, che assicura un corretto funzionamento del flip-flop, per scendere sino a 0,5V con un passo di 0,1V. In fig. 3.37 sono rappresentati, in alto le tensioni dingresso, mentre in basso le corrispondenti tensioni duscita del flip-flop. Come

79

possiamo osservare dai grafici, per valori di tensione che vanno da 1V a 0,7V il flip-flop lavora senza nessun problema, per un valore di 0,6V (tracce fucsia) luscita anche se con un notevole ritardo riesce in modo accettabile a seguire lingresso. Quando consideriamo una tensione di alimentazione pari a 0,5V, notiamo come il flip-flop non stia funzionando pi, infatti osserviamo una evoluzione piatta delluscita (traccia arancio), che non riesce a seguire lingresso, peraltro gi compromesso in quanto non ha proprio un andamento molto corretto. Alla luce dellanalisi appena esposta riteniamo che il valore limite della tensione dalimentazione sia 0,6V.

1.0V

0.5V

0V SEL>> V(IN) 1.0V

0.5V

0V 0s 2ns V(OUT) 4ns 6ns 8ns 10ns Time 12ns 14ns 16ns 18ns 20ns

Figura 3.37: Tensioni dingresso e duscita del Flip-Flop con alimentazione parametrica

80

3.6.5

Potenza dissipata

In fig. 3.38 mostriamo nel grafico pi in alto (traccia verde) landamento della potenza media dissipata dal flip-flop, il cui massimo, 26,33 W , rappresenta il valore numerico a cui facciamo riferimento. La seconda fascia grafica rappresenta il numero di cicli di clock allinterno dei quali si consumano le due commutazioni delluscita. Nel grafico pi in basso vengono rappresentati landamento dellingresso (traccia gialla) e quello delluscita (traccia blu).

30u

20u

10u (45.278n,26.326u) 0 s(-V(V4:+)*I(V4))/20n 4.0V

2.0V

0V SEL>> V(clock) 4.0V

2.0V

0V 30ns V(IN) 32ns V(OUT) 34ns 36ns 38ns 40ns Time 42ns 44ns 46ns 48ns 50ns

Figura 3.38: Potenza media dissipata dal Flip-Flop

81

3.6.6

Area occupata

Il flip-flop costituito da 9 transistor, di cui cinque sono NMOS e quattro PMOS. Lestensione totale coperta risulta essere di 11,76 m , mentre la totale area di silicio occupata risulta essere di 2,12 m 2 circa.

3.7

SP + PN + SN improved
La struttura circuitale dellSP+PN+SN improved [4], riportata in fig. 3.39.

M3

CLK

M6

M9

CLK
A

CLK

M2

M5

M8

M1

M4

M7

Figura 3.39: SP+PN+SN improved Flip-Flop

Anche questo circuito un positive edge trigered.

82

Lunica modifica rispetto alla precedente topologia che lNMOS pilotato dal dato, nel blocco intermedio, stato posto in basso. Il comportamento simile al precedente flip-flop, varia la carica e scarica della capacit equivalente al nodo B. Tutte le simulazioni sono eseguite con una alimentazione pari a 3V.

3.7.1

Funzionamento

Nel semiperiodo in cui il clock basso il primo blocco si comporta da normale inverter in quanto M2 risulta acceso, per cui il dato D viene proposto invertito sul nodo A. Il blocco PN, in questa fase del clock, effettua loperazione di PRECARICA poich M6 acceso ed M5 spento, si viene cos ad instaurare un cammino diretto tra lalimentazione e luscita del blocco in questione. In questa maniera il nodo B viene precaricato ad un livello di tensione alto, indifferentemente dal valore del dato D in ingresso, quindi indifferentemente dal dato che giace sul nodo A. Il terzo blocco disattivato dato che M8 risulta spento, quindi non transita nessuna informazione verso luscita. Nel semiperiodo in cui il clock alto il blocco SN risulta disattivato e non lavora pi da inverter, in quanto M2 spento. Il secondo blocco, in questa fase del clock, effettua loperazione di VALUTAZIONE. Se il nodo A ha un valore di tensione alto M4 acceso e dal momento che anche M5 lo (clock alto), il cammino tra luscita del blocco in questione e massa chiuso, quindi la capacit di

83

carico che insiste sul nodo B si scarica portando la tensione duscita del blocco a zero. Se il nodo A ha un valore di tensione basso M4 risulta spento, il cammino tra luscita del blocco in questione e massa aperto, e la tensione sul nodo B rimane vincolata al valore dellalimentazione. Il blocco finale rappresenta un normale inverter dato che M8 acceso, quindi il dato presente sul nodo B viene invertito e proposto sulluscita Q.

3.7.2

Ottimizzazione

Lottimizzazione dei blocchi SP ed SN uguale a quella discussa nel quarto paragrafo dellattuale capitolo. La stessa cosa non possiamo dire per il blocco PN, che presenta delle differenze circuitali rispetto allomonimo blocco del flip-flop precedente, motivo per il quale tale blocco va ottimizzato nuovamente. Lottimizzazione del blocco PN stata eseguita considerando un segnale di clock che evolve nel tempo in modo tale che in uscita dal circuito potessimo osservare delle commutazioni piene da alto a basso e viceversa. In questa maniera possiamo stimare adeguatamente la misura del tempo di propagazione. Dalle simulazioni parametriche effettuate sul transistor M6, il cui risultato grafico riportato in fig. 3.40, emerge come il minimo della curva sia in corrispondenza di WP = 1,3 m , che rappresenta un valore capace di garantire una ridotta occupazione daria e contemporaneamente minimizzare la velocit di risposta del blocco.

84

85p

80p

75p

(1.3000u,71.446p)

70p 0.5u

1.0u (tdelay(V(IN), V(OUT),3)+ tdelay(V(IN), V(OUT),4))/2

1.5u

2.0u WP

2.5u

3.0u

3.5u

Figura 3.40: Ritardo di propagazione calcolato con WP (M6) parametrico

Da simulazioni parametriche eseguite sul transistor M4, il cui risultato grafico mostrato in fig. 3.41, possiamo notare che per raggiungere un buon compromesso tra velocit di risposta e una ridotta occupazione daria abbiamo scelto WN = 1,75 m , in corrispondenza del quale osserviamo un incremento della velocit di circa il 20% rispetto a quella che si ottiene considerando il transistor minimo.

85

80p

70p

60p

(1.7500u,56.393p)

50p

40p 0.5u

1.0u (tdelay(V(IN), V(OUT),3)+ tdelay(V(IN), V(OUT),4))/2

1.5u

2.0u WN

2.5u

3.0u

3.5u

Figura 3.41: Ritardo di propagazione calcolato con WN (M4 ) parametrico

Per quanto riguarda le simulazioni parametriche eseguite sul transistor M5, ci hanno portato a sostenere, come si pu notare in fig. 3.42, che la migliore scelta in termini sia di velocit che di occupazione daria fosse WN = 0,56 m . Infatti il minimo della curva offre un incremento della velocit rispetto alla nostra scelta di solo 1,1ps circa.

80p

75p

70p

65p

(700.000n,55.671p) (560.030n,56.744p)

60p

55p 0.5u

1.0u (tdelay(V(IN), V(OUT),3)+ tdelay(V(IN), V(OUT),4))/2

1.5u

2.0u WN

2.5u

3.0u

3.5u

Figura 3.42: Ritardo di propagazione calcolato con WN (M5) parametrico

86

Riassumiamo tutti i risultati ottenuti dallottimizzazione di questo flip-flop attraverso la tab. 3.10.

SP Blocco SP

Blocco PN

Blocco SN

WM1 = 1,3 m WM2 = 1,65 m WM3 = 2,15 m

WM4 = 1,75 m WM5 = 0,56 m WM6 = 1,3 m

WM7 = 1,3 m WM8 = 0,56 m WM9 = 1,5 m

Tabella 3.10: Larghezza dei transistor ottimizzati

3.7.3

Parametro D (Delay)

Per la determinazione del parametro D bisogna valutare il tempo clock-to-output e il tempo di setup in ambito digitale, entrambi vanno calcolati rispetto ad una transizione dingresso dal valore basso a quello alto, sia per una transizione contraria. Il grafico pi in alto, tra i quattro presenti in fig. 3.43, rappresenta il tCQ quando andiamo a considerare degli ingressi le cui transizioni si sviluppano da un valore basso ad uno alto, come possiamo notare nella seconda fascia grafica. La terza fascia grafica raffigura landamento del clock, mentre il grafico pi in basso individua levoluzione delle uscite, le quali si dividono in quelle che seguono

87

lingresso e quelle che non lo seguono. Dalle simulazioni parametriche effettuate otteniamo un tCQ=53,42ps.

100p

50p

0 4.5n 4.6n tdelay(V(clock),V(OUT),1) 4.0V

4.7n

4.8n

4.9n

5.0n TS

5.1n

5.2n

5.3n

5.4n

5.5n

2.0V

0V ... 4.0V V(IN)

2.0V

0V ... 4.0V 2.0V V(clock)

SEL>> -1.0V 0s

2ns ... V(OUT)

4ns

6ns Time

8ns

10ns

12ns

14ns

15ns

Figura 3.43: Clock-to-Output per transizioni dingresso basso-alto

88

Per transizioni degli ingressi da alto a basso si misura un tCQ=114,27ps, come mostrato in fig. 3.44.

200p

0 SEL>> -200p 4.5n 4.6n tdelay(V(clock),V(OUT),1) 4.0V 2.0V 0V ... 4.0V 2.0V 0V ... 4.0V 2.0V 0V 0s 2ns ... V(OUT) 4ns 6ns Time 8ns 10ns 12ns 14ns 15ns V(clock) V(IN)

4.7n

4.8n

4.9n

5.0n TS

5.1n

5.2n

5.3n

5.4n

5.5n

Figura 3.44: Clock-to-Output per transizioni dingresso alto-basso

Per il calcolo del tempo di setup in ambito digitale rendiamo parametrico il segnale dingresso, che facciamo variare nei pressi del fronte attivo del clock con un passo di 1ps. In questo modo provochiamo delle uscite che possiamo ritenere seguano lingresso e altre che non lo seguono pi. Operativamente il tempo di setup viene determinato sulla base dellultima uscita che riteniamo segua ancora lingresso. Consideriamo la transizione dell ingresso che evolve da un valore basso ad uno alto e varia parametricamente nellintervallo che si sviluppa da 35ps a 60ps. Dalle simulazioni parametriche eseguite, i cui risultati sono visibili in fig. 3.45,

89

emerge che t SU _ 5% =39ps. Dallultima fascia grafica, rappresentante la porzione della tensione duscita di nostro interesse, consideriamo le tracce fino a quella ARANCIO (contraddistinta dal quadratino bianco) come uscite che seguono lingresso, in quanto stazionano al di sotto di 50mV.

52.5p

50.0p

35p tdelay(V(clock),V(OUT),1) 4.0V

40p

45p TS

50p

55p

60p

2.0V

0V ... 4.0V V(IN)

2.0V

0V ... V(clock)

50mV

0V SEL>> 0s 2ns ... 4ns V(OUT) Time 6ns 8ns 10ns 12ns 14ns 16ns

Figura 3.45: Tempo di Set-Up per transizioni dingresso basso-alto

Il grafico pi in alto, tra i quattro presenti in fig. 3.46, rappresenta landamento del t SU _ 5% quando andiamo a considerare lingresso la cui transizione evolve da un valore alto ad uno basso e varia parametricamente allinterno dellintervallo che si sviluppa da 25ps a 40ps, come possiamo notare nella seconda fascia grafica, mentre la terza fascia grafica raffigura landamento del clock. Attraverso lultima fascia grafica, che rappresenta le tensioni duscita, notiamo come

90

tutte le tracce fino a quella ROSSA (evidenziata dal quadratino bianco e contraddistinta da un buon ritardo) possiamo considerarle come uscite che seguono lingresso. Dalle simulazioni parametriche effettuate otteniamo un t SU _ 5% = 33 ps .

50.0p 37.5p

25.0p 24p 26p tdelay(V(clock),V(OUT),1) 4.0V

28p

30p

32p TS

34p

36p

38p

40p

2.0V

0V ... 4.0V V(IN)

2.0V

0V ... 3.0V 2.0V 1.0V SEL>> 0s 2ns ... 4ns V(OUT) Time 6ns 8ns 10ns 12ns 14ns 16ns V(clock)

Figura 3.46: Tempo di Set-Up per transizioni dingresso alto-basso

91

Riassumiamo nella tab. 3.11 i valori ottenuti per i tempi di setup e clock-to-output.

Clock-toTempo Clock-to-Output (ps) 0 VDD 53,42

SetTempo di Set-Up 5% (ps) 0 VDD 39

VDD 0
114,27

VDD 0
33

Tabella 3.11: Tempi di Set-Up5% e Clock-to-Output del Flip-Flop

Per il calcolo del parametro D, espresso analiticamente dallequazione 3.5, prendiamo in considerazione i valori pi limitanti tra quelli riportati in tab. 3.12.

D = 1, 05 t CQ + t SU _ 5% = 1, 05 114 , 27 p + 39p = 158 , 98 ps

(3.5)

Per quantificare in modo oggettivo il ritardo del flip-flop prendiamo come parametri di confronto il Delay e il Clock-to-Output normalizzati rispetto allFO4. I risultati a cui siamo giunti sono mostrati nella tab. 3.12.

DELAY (FO4) 3,18

Clock-toRitardo Clock-to-Output (FO4) 2,28

Tabella 3.12: Parametri di confronto, normalizzati rispetto allFO4, che esprimono il ritardo del Flip-Flop

92

3.7.4

Minima tensione di alimentazione

In questa sezione siamo interessati a stabilire la tensione di alimentazione limite al di sotto della quale il circuito non funziona pi correttamente. Attraverso simulazioni parametriche abbiamo variato la tensione di alimentazione partendo da un valore di 1V, che assicura un corretto funzionamento del flip-flop, per scendere sino a 0,5V con un passo di 0,1V. In fig. 3.47 sono rappresentati, in alto le tensioni dingresso, mentre in basso le corrispondenti tensioni duscita del flip-flop. Come possiamo osservare dai grafici, per valori di tensione che vanno da 1V a 0,7V il flip-flop lavora senza nessun problema, per un valore di 0,6V (tracce fucsia) luscita anche se con un notevole ritardo riesce in modo accettabile a seguire lingresso. Quando consideriamo una tensione di alimentazione pari a 0,5V, il flip-flop non funziona pi correttamente, e si osserva una evoluzione piatta delluscita (traccia arancio), che non riesce a seguire lingresso, peraltro gi compromesso in quanto non ha un andamento molto corretto. Alla luce dellanalisi appena esposta si deduce che il valore limite della tensione dalimentazione sia 0,6V.

93

1.0V

0.5V

0V

V(IN)

1.0V

0.5V

0V SEL>> 0s 2ns V(OUT) 4ns 6ns 8ns 10ns Time 12ns 14ns 16ns 18ns 20ns

Figura 3.47: Tensioni dingresso e duscita del Flip-Flop con alimentazione parametrica

3.7.5

Potenza dissipata

In fig. 3.48 mostriamo nel grafico pi in alto (traccia verde) landamento della potenza media dissipata dal flip-flop, il cui massimo, 60,13 W , rappresenta il valore numerico a cui facciamo riferimento. La seconda fascia grafica rappresenta il numero di cicli di clock allinterno dei quali si consumano le due commutazioni delluscita. Nel grafico pi in basso vengono rappresentati landamento dellingresso (traccia gialla) e quello delluscita (traccia blu).

94

50u (45.300n,60.127u) 25u

SEL>> -5u 3.5V

S(-V(V4:+)*I(V4))/20n

2.0V

0V 4.0V V(clock)

2.0V

0V 30ns V(IN) 32ns V(OUT) 34ns 36ns 38ns 40ns Time 42ns 44ns 46ns 48ns 50ns

Figura 3.48: Potenza media dissipata dal Flip-Flop

Notiamo come nella parte centrale della prima fascia grafica di fig. 3.48 la curva subisca una brusca impennata, questo porta ad ottenere un valore della potenza confrontabile con quella calcolata utilizzando una tecnologia da 0,35 m . Il motivo di una dissipazione cos alta deriva da un consumo di potenza di cortocircuito che si concretizza nel blocco SN quando sia il clock che lingresso hanno un valore di tensione alto. Infatti isolando tale blocco circuitale la potenza media dissipata diminuisce prepotentemente arrivando a 18,71 W , come notiamo in fig. 3.49. Risulta chiaro, quindi, come la maggior parte della potenza venga dissipata dal blocco SN.

95

20u

10u (40.271n,18.715u) 0 SEL>> S(-V(V4:+)*I(V4))/20n 3.5V

2.0V

0V V(clock)

4.0V

2.0V

0V 30ns V(IN) 32ns V(OUT) 34ns 36ns 38ns 40ns Time 42ns 44ns 46ns 48ns 50ns

Figura 3.49: Potenza media dissipata dal flip-flop senza il contributo del blocco SN

3.7.6

Area occupata

Il flip-flop costituito da 9 transistor, di cui cinque sono NMOS e quattro PMOS. Lestensione totale coperta risulta essere di 12,07 m , mentre la totale area di silicio occupata risulta essere di 2,17 m 2 circa.

96

3.8

PN + SN + PP + SP (Precharged)
La struttura circuitale del PN+SN+PP+SP (precharged) [3] riportata in

fig. 3.50.

CL

M3

M6

M9

M1 2

D
M2

CL
M5

CL
M8 C

CL
M1 1

M1

M4

M7

M1 0

Figura 3.50: PN+SN+PP+SP (precharged) Flip-Flop

Questo flip-flop un negative edge triggered, ed inoltre rappresenta una configurazione precharged, per la quale non si pu definire un tempo di setup, come definito nel terzo paragrafo del primo capitolo. Tutte le simulazioni, sono eseguite con una alimentazione pari a 3V.

97

3.8.1

Funzionamento

Nel semiperiodo in cui il clock basso il primo blocco rappresenta un inverter dinamico e in questa fase del clock effettua loperazione di PRECARICA, infatti M3 risulta acceso ed M1 spento, si viene cos ad instaurare un cammino diretto tra lalimentazione e luscita del blocco in questione. In questa maniera il nodo A viene precaricato ad un livello di tensione pari a quella dalimentazione, indifferentemente dal valore del dato D in ingresso. Il blocco SN disattivato, dato che M5 risulta spento. Il terzo blocco rappresenta ancora un inverter dinamico, ( a differenza del precedente il transistor pilotato dal dato un PMOS) e anche lui effettua loperazione di PRECARICA, infatti M7 risulta spento ed M9 acceso, per cui il drain del transistor M9 viene precaricato ad un livello di tensione pari a quella dalimentazione, indifferentemente dal valore del dato presente sul nodo B. il quarto blocco abilitato e si comporta come un normale inverter, in quanto M11 risulta accesso. Nel semiperiodo in cui il clock alto il blocco PN effettua loperazione di VALUTAZIONE, poich M1 risulta accesso ed M3 spento. Se il dato dingresso D ha un valore di tensione alto, M2 acceso e si stabilisce un cammino diretto tra il nodo A e massa, quindi la capacit di carico che insiste sulluscita del blocco in questione si scarica, portando la sua tensione a zero. Se D rappresenta un valore di tensione basso, M2 spento ed il precedente cammino risulta aperto e la tensione sul nodo A rimane vincolata al livello di tensione pari a quella dalimentazione. Il secondo blocco risulta abilitato e si comporta come un normale

98

inverter dato che M5 acceso, quindi il dato presente sul nodo A viene proposto invertito sul nodo B. Il blocco PP effettua, in questa fase del clock, loperazione di VALUTAZIONE, poich M7 risulta acceso ed M9 spento. Se il nodo B ha un valore di tensione alto M8 spento, quindi la tensione al nodo C risulta nulla (M7 acceso). Se il nodo B ha un valore di tensione basso M8 acceso, per cui si viene ad instaurare un cammino diretto tra il drain di M9, precedentemente caricato alla tensione dalimentazione, e il nodo C. Questo porta ad avere la tensione delluscita del blocco PP ad un valore alto. Il quarto blocco risulta disattivato grazie allo spegnimento del transistor M11, quindi non transita nessuna informazione verso luscita.

3.8.2

Ottimizzazione

Per questo tipo di flip-flop, per il quale non si pu definire un tempo di setup, come detto in precedenza, l'obiettivo quello di raggiungere un compromesso ottimale attraverso un basso tempo clock-to-output, vicino al valore minimo, e una ridotta occupazione daria di silicio. Le ottimizzazioni dei blocchi PP e PN sono state eseguite considerando un segnale di clock che evolve nel tempo in modo tale che in uscita dal circuito potessimo osservare delle commutazioni piene da alto a basso e viceversa. In questa maniera possiamo stimare adeguatamente la misura del tempo

clock-to-output.

99

Discutiamo lottimizzazione del blocco PN. Le fig. 3.51, 3.52 e 3.53 rappresentano i risultati grafici ottenuti dalle simulazioni parametriche eseguite rispettivamente sui transistor M3, M1 e M2. Per raggiungere un buon compromesso tra un basso clock-to-output e una ridotta occupazione daria abbiamo scelto:

WM3 = 1,25 m , WM1 = 1,05 m e WM2 = 0,56 m .

80p

75p

70p

(1.2500u,63.920p) 65p (2.8000u,62.659p)

60p 0.5u

1.0u (tdelay(V(clock), V(OUT),3)+ tdelay(V(clock), V(OUT),4))/2

1.5u

2.0u WP

2.5u

3.0u

3.5u

Figura 3.51: Ritardo di propagazione calcolato con WP (M3) parametrico

65p

60p (2.8000u,57.284p)

(1.0500u,58.753p)

55p 0.5u

1.0u (tdelay(V(clock), V(OUT),3)+ tdelay(V(clock), V(OUT),4))/2

1.5u

2.0u WN

2.5u

3.0u

3.5u

Figura 3.52: Ritardo di propagazione calcolato con WN (M ) parametrico 1

100

75p

70p

65p

(560.004n,59.240p) 60p

(800.000n,58.253p)

55p 0.5u

1.0u (tdelay(V(clock), V(OUT),3)+ tdelay(V(clock), V(OUT),4))/2

1.5u

2.0u WN

2.5u

3.0u

3.5u

Figura 3.53: Ritardo di propagazione calcolato con WN (M2) parametrico

Discutiamo lottimizzazione del blocco PP. Le fig. 3.54, 3.55 e 3.56 rappresentano i risultati grafici ottenuti dalle simulazioni parametriche eseguite rispettivamente sui transistor M9, M7 e M8. Per raggiungere un buon compromesso tra un basso clock-to-output e una ridotta occupazione daria abbiamo scelto:

WM9 = 2,15 m , WM8 = 1,8 m . Per quanto riguarda il transistor M7 abbiamo


scelto il valore che minimizza il clock-to-output, cio WM7 = 2,25 m .

101

110p

100p

90p (2.1500u,81.690p) (3.2000u,77.899p)

80p

70p 0.5u

1.0u (tdelay(V(clock), V(OUT),3)+ tdelay(V(clock), V(OUT),4))/2

1.5u

2.0u WP

2.5u

3.0u

3.5u

Figura 3.54: Ritardo di propagazione calcolato con WP (M9) parametrico

84p

82p

80p

78p

76p (2.2500u,72.598p)

74p

72p 0.5u

1.0u (tdelay(V(clock), V(OUT),3)+ tdelay(V(clock), V(OUT),4))/2

1.5u

2.0u WN

2.5u

3.0u

3.5u

Figura 3.55: Ritardo di propagazione calcolato con WN (M7 ) parametrico

102

76p

72p

68p

64p

60p

(1.8000u,54.508p)

56p

52p 0.5u

(1.9500u,54.199p) 1.0u (tdelay(V(clock), V(OUT),3)+ tdelay(V(clock), V(OUT),4))/2 1.5u 2.0u WP 2.5u 3.0u 3.5u

Figura 3.56: Ritardo di propagazione calcolato con WP (M8 ) parametrico

Le ottimizzazioni dei blocchi SN e SP sono state eseguite considerando un segnale di clock che evolve nel tempo, e non stabile ad un certo livello come accadeva in precedenza. In questa maniera possiamo stimare adeguatamente la misura del tempo clock-to-output. Esaminiamo lottimizzazione del blocco SN. Dalle fig. 3.57 e 3.58, che rappresentano i risultati grafici ottenuti dalle simulazioni parametriche eseguite rispettivamente sui transistor M6 ed M5, emerge come i minimi delle curve siano in corrispondenza di: WM6 = 1,55 m e WM5 = 1,1 m ; che rappresentano valori capaci di garantire una ridotta occupazione daria e contemporaneamente minimizzare il clock-to-output.

103

82p

80p

78p

76p

74p

72p

(1.5500u,70.621p)

70p 0.5u

1.0u (tdelay(V(clock), V(OUT),3)+ tdelay(V(clock), V(OUT),4))/2

1.5u

2.0u WP

2.5u

3.0u

3.5u

Figura 3.57: Ritardo di propagazione calcolato con WP (M6) parametrico

74p

72p

70p

68p

(1.1000u,66.071p)

66p 0.5u

1.0u (tdelay(V(clock), V(OUT),3)+ tdelay(V(clock), V(OUT),4))/2

1.5u

2.0u WN

2.5u

3.0u

3.5u

Figura 3.58: Ritardo di propagazione calcolato con WN (M5) parametrico

In fig. 3.59 visibile il risultato grafico delle simulazioni parametriche condotte su M4. Per raggiungere un buon compromesso tra un basso clock-to-output e una ridotta occupazione daria abbiamo scelto: WM4 = 1,85 m .

104

70p

65p

60p (1.8500u,56.759p)

(2.8000u,55.207p)

55p 0.5u

1.0u (tdelay(V(clock), V(OUT),3)+ tdelay(V(clock), V(OUT),4))/2

1.5u

2.0u WN

2.5u

3.0u

3.5u

Figura 3.59: Ritardo di propagazione calcolato con WN (M4 ) parametrico

Esaminiamo lottimizzazione del blocco SP. Dalle fig. 3.60 e 3.61, che rappresentano i risultati grafici ottenuti dalle simulazioni parametriche eseguite rispettivamente sui transistor M11 ed M10, emerge come i minimi delle curve siano in corrispondenza di: WM11 = 1,25 m e WM10 = 1,25 m ; che rappresentano valori capaci di garantire una ridotta occupazione daria e contemporaneamente minimizzare il clock-to-output.

105

112p

108p

104p

100p (1.2500u,96.389p)

96p 0.5u

1.0u (tdelay(V(clock), V(OUT),3)+ tdelay(V(clock), V(OUT),4))/2

1.5u

2.0u WP

2.5u

3.0u

3.5u

Figura 3.60: Ritardo di propagazione calcolato con WP (M ) parametrico 11

112p

108p

104p

100p (1.2500u,94.312p)

96p

92p 0.5u

1.0u (tdelay(V(clock), V(OUT),3)+ tdelay(V(clock), V(OUT),4))/2

1.5u

2.0u WN

2.5u

3.0u

3.5u

Figura 3.61: Ritardo di propagazione calcolato con WN (M ) parametrico 10

In fig. 3.62 visibile il risultato grafico delle simulazioni parametriche condotte su M12. Per raggiungere un buon compromesso tra un basso clock-to-output e una ridotta occupazione daria abbiamo scelto: WM12 = 1,75 m .

106

100p

95p

90p

85p

80p (1.7500u,72.582p) (3.8000u,70.266p)

75p

70p 0.5u

1.0u 1.5u (tdelay(V(clock), V(OUT),3)+ tdelay(V(clock), V(OUT),4))/2

2.0u

2.5u WP

3.0u

3.5u

4.0u

4.5u

Figura 3.62: Ritardo di propagazione calcolato con WP (M ) parametrico 12

Riassumiamo tutti i risultati ottenuti dallottimizzazione di questo flip-flop attraverso la tab. 3.13.

Blocco PN

Blocco SN

Blocco PP

Blocco SP

WM1 = 1,05 m WM2 = 0,56 m WM3 = 1,25 m

WM4 = 1,85 m WM5 = 1,1 m WM6 = 1,55 m

WM7 = 2,25 m WM8 = 1,8 m WM9 = 2,15 m

WM10 = 1,25 m WM11 = 1,25 m WM2 = 1,75 m

Tabella 3.13: Larghezza dei transistor ottimizzati

107

3.8.3

Parametro D (Delay)

In questo caso, per la determinazione del parametro D bisogna valutare il solo tempo clock-to-output, infatti, come gi detto, per questa configurazione non possiamo definire un tempo di setup. La misura del tempo clock-to-output viene individuata rendendo parametrico il segnale dingresso, che facciamo avanzare allinterno di un intervallo di 1ns attorno al fronte attivo del clock con un passo di 0,1ns. In questo modo provochiamo delle uscite che seguono lingresso altre che non lo seguono pi. Il clock-to-output di nostro interesse riferito graficamente alla sua parte costante. Il grafico pi in alto, tra i quattro presenti in fig. 3.63, rappresenta il tCQ quando andiamo a considerare degli ingressi le cui transizioni si sviluppano da un valore basso ad uno alto, come possiamo notare nella seconda fascia grafica. La terza fascia grafica raffigura landamento del clock, mentre il grafico pi in basso individua levoluzione delle uscite, le quali si dividono in quelle che seguono lingresso e quelle che non lo seguono pi. Dalle simulazioni parametriche effettuate otteniamo tCQ=101,63ps.

108

200p

100p SEL>> 0 4.5n 4.6n tdelay(V(clock),V(OUT),1) 4.0V 2.0V 0V ... V(IN)

4.7n

4.8n

4.9n

5.0n TS

5.1n

5.2n

5.3n

5.4n

5.5n

4.0V 2.0V 0V

4.0V 2.0V 0V 0s

...

V(clock)

2ns ... V(OUT)

4ns

6ns Time

8ns

10ns

12ns

14ns

15ns

Figura 3.63: Clock-to-output per transizioni dingresso basso-alto

Per transizioni degli ingressi da alto a basso si misura tCQ=100,79ps, come mostrato in fig. 3.64.

105p

100p SEL>> 95p 4.5n 4.6n 4.7n tdelay(V(clock),V(OUT),1) 4.0V 2.0V 0V 4.0V 2.0V 0V 4.0V 2.0V 0V 0s 2ns ... V(OUT) 4ns 6ns Time 8ns 10ns 12ns 14ns 15ns ... V(clock) ... V(IN)

4.8n

4.9n

5.0n TS

5.1n

5.2n

5.3n

5.4n

5.5n

Figura 3.64: Clock-to-output per transizioni dingresso alto-basso

109

Riassumiamo clock-to-output.

nella

tab.

3.14

valori

ottenuti

per

tempi

di

Clock-toTempo Clock-to-Output (ps) 0 VDD 101,63 101,63

VDD 0
100,79

Tabella 3.14: Tempi Clock-to-Output del Flip-Flop

Per il calcolo del parametro D, espresso analiticamente dallequazione 3.6, prendiamo in considerazione i valori pi limitanti tra quelli riportati in tab. 3.14.

D = 1, 05 t CQ = 1, 05 101,63p = 106 ,71ps

(3.6)

Per quantificare in modo oggettivo il ritardo del flip-flop prendiamo come parametri di confronto il Delay e il Clock-to-Output normalizzati rispetto allFO4. I risultati a cui siamo giunti sono mostrati nella tab. 3.15.

DELAY (FO4) 2,13

Clock-toRitardo Clock-to-Output (FO4) 2,03

Tabella 3.15: Parametri di confronto, normalizzati rispetto allFO4, che esprimono il ritardo del Flip-Flop

110

3.8.4.

Minima tensione di alimentazione

In questa sezione siamo interessati a stabilire la tensione di alimentazione limite al di sotto della quale il circuito non funziona pi correttamente. Attraverso simulazioni parametriche abbiamo variato la tensione di alimentazione partendo da un valore di 1V, che assicura un corretto funzionamento del flip-flop, per scendere sino a 0,6V con un passo di 0,1V. In fig. 3.65 sono rappresentati, in alto le tensioni dingresso, mentre in basso le corrispondenti tensioni duscita del flip-flop. Come possiamo osservare dai grafici, per valori di tensione che vanno da 1V a 0,8V il flip-flop lavora senza nessun problema, per un valore di 0,7V (tracce gialle) luscita anche se con un notevole ritardo riesce in modo accettabile a seguire lingresso. Quando consideriamo una tensione di alimentazione pari a 0,6V, notiamo come il flip-flop non stia funzionando pi in modo corretto, infatti osserviamo un andamento appiattito delluscita (traccia fucsia), che non riesce a seguire lingresso. Alla luce dellanalisi appena esposta riteniamo che il valore limite della tensione dalimentazione sia 0,7V.

111

1.0V

0.5V

0V

V(IN)

1.0V

0.5V

0V SEL>> 0s 2ns V(OUT) 4ns 6ns 8ns Time 10ns 12ns 14ns 16ns 18ns

Figura 3.65: Tensioni dingresso e duscita del Flip-Flop con alimentazione parametrica

3.8.5

Potenza dissipata

In fig. 3.66 mostriamo nel grafico pi in alto (traccia verde) landamento della potenza media dissipata dal flip-flop, il cui massimo, 46,72 W , rappresenta il valore numerico a cui facciamo riferimento. La seconda fascia grafica rappresenta il numero di cicli di clock allinterno dei quali si consumano le due commutazioni delluscita. Nel grafico pi in basso vengono rappresentati landamento dellingresso (traccia gialla) e quello delluscita (traccia blu).

112

50u

25u (45.375n,46.722u) 0 s(-V(V4:+)*I(V4))/20n

3.5V

2.0V

0V V(clock)

3.5V

2.0V

SEL>> -0.5V 30ns V(IN)

32ns V(OUT)

34ns

36ns

38ns

40ns Time

42ns

44ns

46ns

48ns

50ns

Figura 3.66: Potenza media dissipata dal Flip-Flop

3.8.6

Area occupata

Il flip-flop costituito da 12 transistor, di cui sei sono NMOS e altrettanti sono PMOS. Lestensione totale coperta risulta essere di 17,81 m , mentre la totale area di silicio occupata risulta essere di 3,2 m 2 circa.

113

Conclusioni

In questa sezione verr fatto un confronto tra le diverse topologie analizzate, in termini di velocit, potenza media dissipata, occupazione darea, complessit circuitale e minima tensione di alimentazione. Lo scopo quello di mostrare quale aspetto delle varie topologie risulti migliore in confronto alle altre, cos da poter facilmente stabilire, in una seconda fase, quale circuito impiegare in una determinata applicazione. Nella tabella C.1 sono riportati i parametri di cui ci siamo serviti per valutare la velocit dei flip-flop. Per quanto riguarda i tempi di setup e clock-to-output sono inseriti solo i valori pi limitanti, mentre le ultime due colonne della suddetta tabella rappresentano i parametri di velocit normalizzati rispetto allFO4.

114

Topologia

SetTempo di Set-Up 5% (ps)

Clk-toClk-to-Output (ps) 119,74

Clk-toClk-to-Output (FO4) 2,39

DELAY (FO4) 2,91

SN+PP+SP SN+PP+SP improved SP+PN+SN SP+PN+SN improved PN+SN+PP+SP (precharged)

20

23

122,66

2,45

3,03

36

100

2,82

39

114,27

2,28

3,18

--

101,63

2,03

2,13

Tabella C.1: Parametri che descrivono la velocit dei Flip-Flop

Si deve osservare che per il flip-flop PN+SN+PP+SP non definito il tempo di setup, dal momento che una configurazione precharged. Risulta evidente che il circuito con il minore tempo di setup sia lSN+PP+SP, con soli 20ps. Da questo punto di vista le peggiori prestazioni si hanno per la topologia SP+PN+SN improved, con 39ps. Si noti che, in ogni caso, le topologie improved offrono valori leggermente maggiori rispetto alle configurazioni da cui esse derivano. Considerando il tempo clock-to-output le migliori prestazioni in velocit vengono fornite dallSP+PN+SN, mentre il pi lento risulta lSN+PP+SP improved.

115

Riguardo i valori del tempo clock-to-output, normalizzato rispetto allFO4, si deduce che la topologia pi veloce la SP+PN+SN, mentre quella pi lenta risulta la SN+PP+SP improved. Per quanto concerne il parametro D (Delay), definito nei capitoli precedenti e riportato nellultima colonna della tabella, si ha, ancora una volta, che lSP+PN+SN rappresenta il circuito pi veloce tra le topologie non precharged, mentre lSP+PN+SN improved fornisce la prestazione peggiore. Per la configurazione PN+SN+PP+SP (precharged) necessario fare un discorso a parte, dato che lottimizzazione effettuata risulta differente rispetto agli altri flip-flop e che per tale configurazione non definito il tempo di setup: tali circostanze portano al Delay pi basso tra tutte le topologie. In definitiva le prestazioni migliori in termini di velocit vengono sicuramente fornite dal flip-flop SP+PN+SN. Nella tabella C.2 sono riportati i parametri utili per valutare la complessit circuitale, loccupazione di area e la dissipazione di potenza.

116

Topologia

Complessit Circuitale (# di transistor)

Occupazione dArea ( m 2 ) 2,23

Potenza Media Dissipata ( W )

SN+PP+SP SN+PP+SP improved SP+PN+SN SP+PN+SN improved PN+SN+PP+SP (precharged)

31,25

2,12

64,34

2,12

26,33

2,17 3,2

60,13 46,72

12

Tabella C.2: Parametri che descrivono la complessit circuitale, loccupazione darea e la potenza media dissipata dai Flip-Flop

Le prime quattro topologie possiedono la stessa complessit circuitale (stesso numero di transistor), mentre lultima la configurazione pi complessa, in quanto costituita da un numero maggiore di transistor. Valutando larea di silicio occupata si nota come le configurazioni che permettono la maggiore integrazione sono lSN+PP+SP improved e lSP+PN+SN. Infine, per quanto riguarda la potenza dissipata la migliore topologia risulta lSP+PN+SN mentre il circuito che dissipa di pi lSN+PP+SP improved seguito a breve distanza dallSP+PN+SN improved.

117

La tabella C.3 riporta i valori delle minime tensioni di alimentazione di tutte le topologie.

Minima Tensione di Topologia Alimentazione (V) SN+PP+SP SN+PP+SP improved improved SP+PN+SN SP+PN+SN improved PN+SN+PP+SP (precharged) 0,6

0,6

0,6

0,6

0,7

Tabella C.3: Valori delle minime tensioni di alimentazione dei Flip-Flop

Dalla tabella si evince come le prime quattro configurazioni lavorano correttamente fino ad un valore pari a 0.6V, mentre la minima tensione operativa per la topologia PN+SN+PP+SP (precharged) 0,7V. La caratteristica di funzionare a valori cos bassi della tensione di alimentazione, permette lutilizzo di questi circuiti in applicazioni che richiedono basse tensioni.

118

In conclusione le prestazioni migliori, tra tutte le topologie, sul piano della velocit, dellarea occupata e della dissipazione di potenza vengono raggiunte dallSP+PN+SN, che rappresenta in questo contesto un flip-flop parecchio versatile che pu adeguarsi ad applicazioni esigenti su pi fronti.

119

Bibliografia

[1]

Hamid Partovi, Clocked Storage Elements, in Design of High Performance

Microprocessor Circuits, A. Chandrakasan, W. J. Bowhill, F. Fox, Eds.


Piscataway, NJ: IEEE Press, 2000, pp. 207-234.

[2]

Christer Svensson, Dake Liu, Low Power Circuit Techniques, in Low Power

Design Methodologies, Jan M. Rabaey, Massoud Pedram, Kluwer Academic


Publishers, 1997, pp. 37-64.

[3]

Jiren Yuan, Christer Svensson, New Single-Clock CMOS Latches and Flipflops with Improved Speed and Power Savings, IEEE Journal of Solid-State Circuits, vol. 32, nu. 1, Gennaio 1997.

[4]

S. M. Mishra, S. S. Rofail, Y. K. Seng, Altering transistor positions: impact on the performance and power dissipation of dynamic latches and flip-flops, IEE Proc-Circuits Devices Svst., vol. 146, nu. 5, Ottobre 1999.

120