Logica Sequenziale Logica sequenziale Macchine a stati Macchine

Transcript

Logica Sequenziale Logica sequenziale Macchine a stati Macchine
Logica sequenziale
„
Logica Sequenziale
„
Lucidi del Corso di Elettronica Digitale
Modulo 10
„
Università di Cagliari
Un blocco di logica sequenziale è un blocco
logico le cui uscite dipendono non solo dagli
ingressi attuali ma anche da tutta la storia
passata degli ingressi (la sequenza di ingressi)
L’esempio più importante è l’elemento di
memoria, la cui uscita dipende dal valore
dell’ultimo ingresso memorizzato
Gli elementi di memoria (latch, flip-flop, registri)
sono blocchi costitutivi fondamentali di ogni
sistema digitale
Dipartimento di Ingegneria Elettrica ed Elettronica
Laboratorio di Elettronica (EOLAB)
11 Dicembre 2006
Macchine a stati
„
„
„
ED - Logica Sequenziale
Massimo Barbaro
Massimo Barbaro
2
Macchine a stati e registri
Lo strumento più efficace per descrivere un
blocco di logica sequenziale complesso è la
macchina a stati
Le macchine a stati rappresentano tutta la storia
passata degli ingressi per mezzo di uno stato
interno (rappresentato da N variabili binarie, per
un totale di 2N stati possibili)
Ad ogni istante, l’uscita di una macchina a stati
è funzione degli ingressi attuali e dello stato
(che riassume la sequenza di ingressi
precedenti)
11 Dicembre 2006
ED - Logica Sequenziale
3
„
„
„
„
La teoria delle macchine a stati viene trattata nel
corso di Sistemi Digitali e Processori
Lo stato deve essere memorizzato ed
aggiornato ad ogni nuovo ingresso
Nel corso di Elettronica Digitale vedremo gli
elementi costitutivi fondamentali per la
memorizzazione dello stato: i registri
I registri sono utilizzati anche per la temporanea
memorizzazione
di
dati
nel
corso
dell’elaborazione in un qualsiasi sistema digitale
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
4
Elemento base
„
L’elemento base per l’implementazione di un
elemento di memoria è il bistabile
Q
Latch e Flip-flop
Concetti di base
Q’
La connessione ad anello di 2 inverter realizza una
retroazione positiva che è la base della memorizzazione.
L’uscita del primo inverter è l’ingresso del secondo la cui
uscita è l’ingresso del primo.
Università di Cagliari
Dipartimento di Ingegneria Elettrica ed Elettronica
Laboratorio di Elettronica (EOLAB)
11 Dicembre 2006
Bistabilità
Vout1=Vin2
A
guadagno d’anello è molto minore
di 1 e piccoli disturbi non alterano il
valore memorizzato ma vengono
ricondotti al valore iniziale per il
principio rigenerativo dell’inverter)
B
Vin1=Vout2
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
6
Bistabile
I punti di intersezione rappresentano i
possibili
valori
assunti
dall’uscita.
Ci sono 3 intersezioni ma solo 2 sono stabili
(bistabile) A e B sono punti stabili (il
C
ED - Logica Sequenziale
„
„
C è punto instabile (il
guadagno
è
molto
maggiore di 1 e piccoli
disturbi
vengono
amplificati riconducendo
l’uscita ad A o B)
Massimo Barbaro
„
„
7
Il bistabile è l’elemento base per qualsiasi
elemento di memoria
Per memorizzare un 1 si porta il bistabile nello
stato in cui Vout2=1 e Vout1=0, mentre per
memorizzare uno 0 si porta il circuito nell’altro
stato stabile
Essendo in tali stati il guadagno d’anello molto
minore di 1 è difficile che il valore memorizzato
venga alterato dal rumore
E’ necessario però trovare un modo per forzare
il bistabile in uno dei 2 stati (scrivere il valore)
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
8
Latch SR
„
Latch SR
Il latch SR è la più semplice implementazione di un
elemento di memoria con segnali di scrittura (S=Set) e
cancellazione (R=Reset)
„
„
„
S
Q’
Q
R
S
0
0
1
1
R
0
1
0
1
Q Q’
Q Q’
0 1
1 0
0 0
„
Quando S=0, R=0 si riduce ad un bistabile perché una
NOR con un ingresso a 0 equivale ad un inverter
dell’altro ingresso
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
9
La combinazione S=1, R=0 memorizza un 1
La combinazione S=0, R=1 memorizza uno 0
La combinazione S=0, R=0 non altera il valore
del latch che mantiene il dato memorizzato
precedentemente
La combinazione S=1, R=1 è proibita perché
porta il latch in uno stato instabile (Q=Q’) in cui il
guadagno d’anello è maggiore di 1. E’
impossibile prevedere quale sarà il valore
assunto da Q al termine della combinazione
proibita (quando ricompare S=0, R=0)
11 Dicembre 2006
ED - Logica Sequenziale
Latch SR
„
R
Q
Q’
S
0
0
1
1
R
0
1
0
1
Q Q’
1 1
1 0
0 1
Q Q’
Quando S=1, R=1 si riduce ad un bistabile perché una
NAND con un ingresso a 1 equivale ad un inverter
dell’altro ingresso
11 Dicembre 2006
ED - Logica Sequenziale
10
Latch SR
L’implementazione con porte NAND è identica
ma i segnali sono attivi bassi (S=0, R=1 per il
set e S=1, R=0 per il reset)
S
Massimo Barbaro
Massimo Barbaro
„
„
Le due implementazioni viste sono l’estensione
del bistabile elementare.
Il termine latch si applica ad una classe di
elementi di memoria di questo tipo (sensibili ai
livelli logici degli ingressi)
S
Q
S
Q
R
Q’
R
Q’
Simbolo grafico del latch SR
con porte NOR
11
11 Dicembre 2006
Simbolo grafico del latch SR
con porte NAND
ED - Logica Sequenziale
Massimo Barbaro
12
Latch SR con enable
„
Latch D
L’implementazione di un latch SR con segnale
di abilitazione (ENABLE) è la seguente. In
questo caso EN viene usato per abilitare il latch.
Se EN=0 il latch memorizza
„
Il latch D è un’evoluzione del latch SR che
permette di memorizzare il valore di un dato in
ingresso D ogni qualvolta il segnale EN (enable)
è alto
Latch SR
S
Latch SR
D
Q
EN
EN
Q’
R
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
13
Q’
11 Dicembre 2006
Latch D
„
„
„
„
ED - Logica Sequenziale
ED - Logica Sequenziale
Massimo Barbaro
14
Latch D e SR
Il latch D è costituito da un latch SR, un inverter
e due NAND
Se EN=1 le porte NAND sono inverter, quindi
fanno passare in uscita con combinazione S=0,
R=1 (uscita a 1) se D=1 oppure S=1, R=0
(uscita a 0) se D=0 quindi con EN=1 il latch
memorizza il dato D in ingresso
Se EN=0 le porte NAND generano la
combinazione S=1, R=1 che mantiene inalterato
il valore memorizzato precedentemente
La presenza dell’inverter impedisce il verificarsi
della conbinazione proibita S=0, R=0
11 Dicembre 2006
Q
Massimo Barbaro
15
„
„
„
Il latch D viene utilizzato per memorizzare un
dato (D è il valore da memorizzare)
Il latch SR viene invece pilotato da 2 ingressi ed
è più utile per settare o resettare delle flag
I latch sono sensibili ai livelli. Nel caso del latch
D, fino a che il segnale EN è alto il valore D
passa direttamente in uscita (il latch è
trasparente) e la memorizzazione coincide con il
momento in cui EN va basso
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
16
Tempi di setup, hold e propagazione
„
„
„
„
Setup, Hold, Propagazione
Le caratteristiche dinamiche di un latch D sono
3: tempo di Setup, di Hold e di Propagazione
Il tempo di Setup è il tempo durante il quale il
dato D deve restare stabile prima che il segnale
EN vada a 0 memorizzando il dato
Il tempo di Hold è il tempo durante il quale il
dato D deve restare stabile dopo che EN è
andato basso
Il tempo di Propagazione è il tempo
necessario perché il dato in ingresso si propaghi
in uscita fintanto che il latch è trasparente
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
17
EN
tsetup
D
tP
Q
„
„
Setup e hold e sono
misurati rispetto al
momento un cui EN
va basso
Il tempo di propagazione
è misurato rispetto alla
variazione di D (quando il
latch è trasparente)
t
11 Dicembre 2006
ED - Logica Sequenziale
Trasparenza
„
thold
Massimo Barbaro
18
Esempio
Il problema principale dei latch è la loro
trasparenza quando l’enable è alto
Questo comporta una potenziale instabilità dei
sistemi che fanno uso di latch
Il problema principale si presenta quando
l’uscita del latch contribuisce a generare il dato
che deve essere memorizzato (Es. se bisogna
memorizzare in un registro il valore dato dalla
somma del registro stesso con un incremento)
Y=Y+C
C[7:0]
Y[7:0]
+
EN
Registro
costituito da 8
latch D con
enable
Finché EN=1 il latch è trasparente e la somma e Y
continua ad essere aggiornato (Y=Y+C+C+C+…). Si crea
cioè un percorso diretto ad anello fra ingresso ed uscita
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
19
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
20
Trasparenza
„
„
„
Master-slave
Il problema della trasparenza pone vincoli molto
forti sul tempo massimo di abilitazione del latch.
Un errore sul tempo di abilitazione può portare a
memorizzare un valore indesiderato sul registro
Il problema è costituito dal percorso chiuso ad
anello fra ingresso ed uscita. Bisogna potere
interrompere tale anello (all’interno del registro)
per essere sicuri che la memorizzazione
avvenga solo sul dato desiderato
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
21
„
La soluzione del problema è data dalla struttura
master-slave
MASTER
Q
D
„
„
ED - Logica Sequenziale
D
Q
EN
φ
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
22
Flip-flop
Il flip-flop D master-slave è ottenuto dal latch D
mettendo due latch in cascata pilotati da segnali
di enable opposti
Quando il segnale φ (clock) è basso il master è
trasparente ed il dato arriva in ingresso allo
slave. Quando φ va alto il master si disabilita e
l’ingresso dello slave non può più cambiare, lo
slave contemporaneamente si abilita e fa
passare in uscita il dato
La memorizzazione del dato avviene quindi in
corrispondenza del fronte (positivo) del segnale
di clock
11 Dicembre 2006
Q
EN
Flip-flop D
„
SLAVE
D
Massimo Barbaro
23
„
„
„
La caratteristica fondamentale del flip-flop è che
il percorso diretto ingresso-uscita è sempre
interrotto (a livello di master o a livello di slave)
Il dato viene quindi memorizzato sui fronti del
clock (in questo caso ascendenti ma si può
modificare facilmente per memorizzare sui fronti
discendenti)
Il flip-flop è sensibile ai fronti (mentre il latch ai
livelli)
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
24
Caratteristiche dinamiche del flip-flop
„
„
„
FF: Setup, Hold, Propagazione
Ovviamente perché il dato in ingresso D si
propaghi (tP del master) attraverso il master fino
all’ingresso dello slave bisogna che il dato
stesso sia costante per un certo periodo di
tempo prima del fronte (tempo di Setup)
Dopo il fronte il master non si disabilita subito
(c’è il ritardo dell’inverter) quindi bisogna che il
dato D resti stabile per un po’ (tempo di Hold)
Infine dopo il fronte deve passare un certo
tempo prima che lo slave si abiliti (ritardo dei
due inverter) ed il dato si propaghi attraverso lo
slave fino all’uscita (tempo di propagazione)
φ
tsetup thold
D
Variazione ignorata
(il FF è sensibile ai
fronti del clock)
tP
Tempi di setup, hold
e di propagazione
sono tutti misurati
rispetto al fronte del
clock.
Q
t
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
25
11 Dicembre 2006
ED - Logica Sequenziale
Flip-flop
„
Massimo Barbaro
26
Esempio
Il simbolo grafico del flip-flop è leggermente
diverso da quello del latch per sottilinearne la
dipendenza dai fronti
C[7:0]
D
Registro
costituito da 8
flip-flop D
Q
φ
CLK
Adesso sappiamo che il nuovo valore verrà memorizzato
sul registro solo in corrispondenza del fronte del clock, a
prescindere del periodo in cui CLK resta alto o basso
L’ingresso di clock è rappresentato da un triangolo
11 Dicembre 2006
Y[7:0]
+
ED - Logica Sequenziale
Massimo Barbaro
27
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
28
Registri
„
„
Un registro è semplicemente un insieme di N flip-flop
ciascuno dei quali può memorizzare 1 bit
Un registro a N bit è quindi un contenitore per la
memorizzazione di N bit costituito da N flip-flop
D3
D2
D1
D0
clk
Logica sequenziale:
implementazione circuitale
Realizzazione circuitale CMOS
FFD
FFD
FFD
FFD
Università di Cagliari
Q3
11 Dicembre 2006
Q2
ED - Logica Sequenziale
Q1
Dipartimento di Ingegneria Elettrica ed Elettronica
Laboratorio di Elettronica (EOLAB)
Q0
Massimo Barbaro
29
Circuiti statici e dinamici
„
„
Esistono due categorie circuitali per l’implementazione
di latch e flip-flop (come per la logica combinatoria)
CIRCUITI STATICI: in ogni istante ogni nodo è
connesso attraverso un percorso a bassa impedenza ad
un’alimentazione
CIRCUITI DINAMICI: si basano sulla memorizzazione
del dato su capacità, quindi esistono istanti in cui alcuni
nodi sono flottanti
Come per la logica combinatoria i circuiti statici sono più
facili da progettare e comprendere ma meno efficienti,
mentre i circuiti dinamici sono più veloci e compatti ma
di maggiore complessità realizzativa e progettuale
Latch e flip-flop
Implementazione CMOS statica
Università di Cagliari
Dipartimento di Ingegneria Elettrica ed Elettronica
Laboratorio di Elettronica (EOLAB)
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
31
Latch: Implementazione CMOS
„
„
„
Latch SR con enable
L’implementazione più immediata consisterebbe
nel realizzare in CMOS tutte le porte logiche del
latch (nel caso del SR le due NAND, nel caso
del D le 4 NAND e l’inverter).
Tale implementazione è la meno efficiente, la
più lenta e più ingombrante
E’ possibile trovare soluzioni circuitali più dirette
basate sulla cella elementare bistabile
Secondo inverter
Primo inverter
M2
M4
Q’
Q
EN
EN
M6
M8
M1
M3
S
R
M5
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
33
11 Dicembre 2006
Latch SR con enable
„
„
„
„
ED - Logica Sequenziale
Massimo Barbaro
ED - Logica Sequenziale
Massimo Barbaro
34
Latch SR: Funzionamento
Il latch è realizzato con un bistabile (due inverter
connessi ad anello: M1-M2 e M3-M4)
Per scrivere 1 o 0 sull’elemento di memoria si
usano due reti di pull-down (M5-M6 o M7-M8)
attive solo quando EN=1
Le due reti di pull-down devono essere
mutuamente esclusive quindi la configurazione
S=R=1 è proibita
Il dimensionamento dei transistor M5-M8 è
critico per garantire il corretto funzionamento dei
segnali S e R
11 Dicembre 2006
M7
35
„
Per scrivere un 1:
„
„
„
„
EN=1 (abilita entrambi i pull-down)
R=0 (disattiva il pull-down M7-M8)
S=1 (attiva il pull-down M5-M6 che porta Q’ a 0,
facendo commutare l’inverter M3-M4 che porta Q a
1)
Per scrivere uno 0:
„
„
„
EN=1 (abilita entrambi i pull-down)
S=0 (disattiva il pull-down M5-M6)
R=1 (attiva il pull-down M7-M8 che porta Q a 0,
facendo commutare l’inverter M1-M2 che porta Q’ a
1)
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
36
Latch SR: dimensionamento
„
„
„
Latch SR: dimensionamento (1)
Perché il meccanismo funzioni bisogna che la
rete di pull-down attiva (M7-M8 o M5-M6) riesca
a fare scendere il segnale (Q o Q’) abbastanza
in basso da fare commutare l’inverter associato
(M1-M2 o M3-M4) e fare quindi cambiare stato
al bistabile.
Il dimensionamento delle reti di pull-down è
dunque critico per garantire che si riesca a fare
cambiare stato al bistabile
Effettuiamo il dimensionamento nel caso di
scrittura di un 1. I risultati valgono ovviamente
per la scrittura di uno 0
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
37
„
„
„
„
11 Dicembre 2006
Latch SR: dimensionamento (2)
M2
Q’
0
„
Q
EN
EN
M6
„
M8
M1
M3
S
R
M5
M7
„
Essendo Q=0, M2-M3-M4 rappresenta un inverter
pseudo-NMOS (M5-M6 la PDN e M2 il pmos di carico)
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
ED - Logica Sequenziale
Massimo Barbaro
38
Latch SR: dimensionamento (3)
EN=S=1
R=0
Q=0
M4
EN=1, S=1, R=0
La rete PD M7-M8 è disabilitata e non conta, la
rete M5-M6 è costituita da due nmos in serie
entrambi accesi ed è quindi equivalente ad un
unico nmos con lunghezza doppia che
chiameremo M56
Se Q=1 (Q’=0) la rete di pull-down non ha niente
da fare perché il bistabile è già nello stato giusto
quindi non c’è problema
Se Q=0 (Q’=1) il pmos M2 ha in ingresso uno 0
quindi è completamente acceso e si oppone
all’azione della rete M5-M6
39
Il transistor equivalente della rete di pull-down
(M56) ed il pmos (M2) sono accesi
contemporaneamente. La tensione al nodo Q’
(VQ’) dipenderà quindi dai rapporti fra le W/L dei
due mos (si ottiene eguagliando le due correnti)
Per fare commutare il bistabile bisogna che VQ’
vada abbastanza in basso da fare commutare
l’inverter M3-M4, a quel punto Q=1 e il mos M2
si interdice non ostacolando più l’azione del pulldown
L’obbiettivo è riuscire ad ottenere VQ’<VM dove
VM è la soglia logica dell’inverter (M1-M2)
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
40
Latch SR: dimensionamento (4)
„
„
Se si vuole che VQ’<VDD/2 bisogna trovare il
valore di VQ’ ed imporre che sia minore di VM
Per trovare VQ’ si uguagliano le correnti del
pmos e del nmos
„
„
Latch SR: dimensionamento (5)
IM56=IM2
Sostituendo le formule per le correnti ed uguagliando:
⎛W ⎞
⎝ L ⎠56
„
VDSn = VDD/2 => VDSn>VDSATn
VSDp = VDD/2 => VSDp>|VDSATp|
VDSATp⎤
⎡
VDSATn⎤
⎛W ⎞
= µpCOX ⎜ ⎟ VDSATp⎢VDD −VTp −
⎥
⎥
2 ⎦
2 ⎦
⎝ L ⎠2
⎣
Risolvendo per (W/L)56:
VDD −VTp −
VDSATp
⎛W ⎞ µpVDSATp
2 ⎛⎜W ⎞⎟
⎜ ⎟ =
⎝ L ⎠56 µnVDSATn V −V − VDSATn ⎝ L ⎠2
DD
Tn
2
Il pmos e lo nmos sono in regione di
SATURAZIONE se VM=VDD/2, infatti:
„
⎡
⎣
µnCOX ⎜ ⎟ VDSATn⎢VDD −VTn −
La dimensione di ciascuno di M5 e M6 si ricava da (W/L)56:
⎛W ⎞
⎛W ⎞ ⎛W ⎞
⎜ ⎟ = ⎜ ⎟ = 2⎜ ⎟
⎝ L ⎠5 ⎝ L ⎠6 ⎝ L ⎠56
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
41
11 Dicembre 2006
Tempo di propagazione
„
„
„
Il tempo necessario per fare scendere Q al di sotto
della soglia logica di M1-M2
Il tempo di propagazione dell’inverter M1-M2
„
„
„
Il tempo di propagazione dunque è dato dalla
somma del tempo di propagazione di M1-M2 e
dell’inverter pseudo-NMOS costituito da M4 e
M78 (M7 in serie con M8)
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
Massimo Barbaro
42
Latch D
Il tempo di propagazione è difficile da calcolare
per via della retroazione positiva
Semplificando si può considerare il problema
diviso in 2 parti:
„
ED - Logica Sequenziale
43
„
Il latch D è facilmente ottenuto dal latch SR con
enable, sostituendo l’ingresso S con l’ingresso D
ed aggiungendo un inverter pilotato da D che
pilota l’ingresso R
In tutto sono necessari 10 transistor (8 per il
latch SR + 2 per l’inverter)
L’implementazione diretta delle porte logiche
avrebbe richiesto 4 porte NAND ed 1 inverter
per un totale di 18 transistor
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
44
Flip-flop D
„
„
Il flip-flop D è ottenuto usando due latch D in
configurazione master-slave
Per l’implementazione di tutto il flip-flop sono
necessari 22 transistor:
„
„
„
„
Latch e Flip-flop dinamici
8+2 per il master (8 per il latch e 2 per l’inverter che
genera R=D’)
8 per lo slave
4 per gli inverter del segnale di clock
Implementazione circuitale dinamica
Per una implementazione diretta delle porte
sarebbe stati necessari 38 transistor (18 per il
master, 16 per lo slave e 4 per gli inverter)
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
Università di Cagliari
Dipartimento di Ingegneria Elettrica ed Elettronica
Laboratorio di Elettronica (EOLAB)
45
Elementi di memoria dinamici
„
„
„
Latch D pseudo-statico
Il bistabile è l’elemento di memoria più robusto che si
può immaginare, in presenza di disturbi anche molto
grandi mantiene inalterato il valore memorizzato per la
proprietà rigenerativa della retroazione positiva
E’ però immaginabile un’altra forma, molto compatta, di
memorizzazione dell’informazione: attraverso la carica
immagazzinata in una capacità
Circuiti che fanno uso di capacitori e cariche si dicono
dinamici perché l’informazione tende a cancellarsi (per il
fenomeno del leakage) ed è quindi necessario
ripristinarla ad intervalli regolari con fasi di refresh
„
Il latch pseudo-statico è una modifica del
bistabile: l’anello di retroazione viene chiuso
solo quando è necessario memorizzare,
altrimenti viene tenuto aperto per semplificare la
scrittura dell’informazione
φ
D
φ’
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
47
11 Dicembre 2006
Finché φ è alto il latch
Q’ è trasparente e l’anello
aperto. Quando φ va
Q basso
l’anello
si
chiude,
D
è
disconnesso ed il latch
memorizza (diventa un
bistabile)
ED - Logica Sequenziale
Massimo Barbaro
48
Flip-flop D pseudo-statico
„
Flip-flop D pseudo-statico
Il flip-flop si ottiene con la solita struttura master
slave
φ
φ’
Q
„
„
D
φ’
„
φ
Le fasi dei due latch sono invertite. Con φ alto il primo è
trasparente ed il secondo memorizza. Con φ basso il primo
memorizza ed il secondo è trasparente
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
49
L’implementazione di tutto il flip-flop richiede 12
transistor (16 se si usano transmission gate per
gli switch)
E’ fondamentale che le fasi φ e φ’ non si
sovrappongano (non overlapping) altrimenti il
flip-flop potrebbe diventare trasparente dando
luogo a percorsi diretti ingresso-uscita
La richiesta di non overlap è molto forte perché
è difficile distribuire su un chip un segnale ed il
suo negato con grande precisione (problemi di
skew del clock, a percorsi diversi corrispondono
ritardi diversi)
11 Dicembre 2006
La soluzione interamente dinamica riduce
notevolmente il numero di transistor eliminando
l’anello di retroazione
φ1
„
φ2
D
Massimo Barbaro
50
Flip-flop C2MOS
Flip-flop dinamico a 2 fasi
„
ED - Logica Sequenziale
„
Q
Il flip-flop C2MOS risolve il problema dell’overlap
evitando che si possono creare connessioni
dirette ingresso-uscita anche in presenza di
sovrapposizione dei due clock
E’ costituito da due inverter in cascata modificati
in modo tale da essere attivati e disattivati da 2
segnali di clock in controfase
I due clock f1 e f2 sono non sovrapposti. Quando sono
entrambi 0 i valori sono memorizzati nelle capacità. Non
esiste mai un percorso diretto fra ingresso e uscita.
L’intero flip-flop richiede solo 6 transistor (8 con
transmission gate al posto degli switch)
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
51
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
52
Flip-flop C2MOS
Sezione φ
Flip-flop C2MOS
„
Sezione φ’
φ’
φ
„
Q
D
φ
φ’
„
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
53
Overlap
„
„
Nel caso che φ=φ’=1 sono potenzialmente attive
solo le reti di pull-down dei due inverter. Ma due
reti di pull-down in cascata non possono fare
propagare il segnale (se la prima si attiva e
scarica il nodo intermedio, la seconda PDN non
può caricare il nodo di uscita)
Nel caso che φ=φ’=0 sono potenzialmente attive
solo le reti di pull-up dei due inverter. Due reti
PUN in cascata non possono fare propagare il
segnale (se la prima carica il nodo intermedio la
seconda non può scaricare l’uscita)
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
55
Quando φ=1 la prima sezione è un inverter, il
dato D viene negato e memorizzato nella
capacità parassita di ingresso del secondo
inverter che è disabilitato
Quando φ=0 la prima sezione si disabilita ed il
dato memorizzato nella capacità parassita si
presenta in uscita negato nuovamente (quindi
uguale al D iniziale)
In presenza di overlap fra i clock il segnale non
si può propagare in uscita
11 Dicembre 2006
ED - Logica Sequenziale
Massimo Barbaro
54