Flip-flop e loro applicazioni - Roberto Roncella...

50
Flip-flop e loro applicazioni Flip-flop e loro applicazioni Reti sequenziali elementari (6) L'elemento bistabile Latch o flip-flop trasparenti Temporizzazione dei flip-flop trasparenti Architettura master-slave Flip-flop non trasparenti o edge-triggered Registri, riconoscitori di sequenza Contatori

Transcript of Flip-flop e loro applicazioni - Roberto Roncella...

Flip-flop e loro applicazioniFlip-flop e loro applicazioni

Reti sequenziali elementari(6)

L'elemento bistabileLatch o flip-flop trasparentiTemporizzazione dei flip-flop trasparentiArchitettura master-slaveFlip-flop non trasparenti o edge-triggeredRegistri, riconoscitori di sequenzaContatori

2

Reti sequenziali

➢ L'uscita non dipende soltanto dagli ingressi nell'istante corrispondente, ma anche dalla sequenza dei valori precedenti➢ Alcuni nodi della rete possono assumenre valore

diversi a parità di ingresso➢ Due tipologie

➢ Asincrone➢ Un cambiamento in un qualsiasi ingresso determina la

valutazione di un nuovo stato della rete e delle uscite➢ Sincrone

➢ Il calcolo di un nuovo stato viene attivato soltanto dalla commutazione di una particolare linea di ingresso (clock)

3

L'elemento bistabile

➢ La chiave per realizzare reti sequenziali è un circuito con più stati stabili➢ A parità di ingressi➢ Avendo un circuito con 2 stati stabili, si possono

ottenere 2n stati usando n repliche del circuito

4

Il latch SR

S

R

S

Q

Q

5

Un esempio di applicazione

➢ La funzione antirimbalzo

6

Il latch S R

S

R

S

Q

Q

7

Il latch SR con abilitazione

S

R

S

Q

Q

E

E

8

Il latch D

D

Q

Q

E

E

9

Temporizzazione dei latch (1)

10

Temporizzazione dei latch (2)

11

Durata minima dell'impulso

12

Tempo di impostazione (setup) e mantenimento (hold)

13

Metastabilità

E

14

Reti trasparenti e non

➢ I latch sono reti sequenziali sincrone che si definiscono trasparentitrasparenti in quanto l'effetto degli ingressi generalmente si riflette sull'uscita immediatamente➢ Non è consigliabile riportare l'uscita su uno degli

ingressi➢ Si rischia di innescare una situazione oscillatoria, se la

commutazione modifica l'uscita

➢ Per questo servono reti non trasparentinon trasparenti in cui l'aggiornamento delle uscite avviene in un momento successivo alla lettura degli ingressi➢ Architettura master-slavemaster-slave➢ Reti edge-triggerededge-triggered

15

Architettura master-slave

MASTER SLAVE

CkM

QextD Q

En

CkS

D Q

En

Din

16

Clock non sovrapposto

●Il clock master e il clock slave non devono mai essere attivi (alti, 1) contemporaneamente●Non possono essere ottenuti con un inverter

CkM CkS

CkM

CkS

no no

17

Tabella di verità

CkCk DD QQ

00 XX QQ

11 XX QQ

XX QQ

00 00

11 11

CkM

QextD Q

En

CkS

D Q

En

Din

Generazione clock

Ck

18

Tempi di rispetto

Per evitare errori in fase di memorizzazione è necessario che il dato sia stabile un po’ prima e un po’ dopo la commutazione del clock

Ck

t

AbilitatoSLAVE

AbilitatoMASTER

AbilitatoSLAVE

D

Q

T setup T hold T propagation

19

Clock a due fasi non sovrapposte

●Tecnica di generazione a soglia

CkM

CkS

SH

SL

Ck

20

Sequenza di funzionamento

Ck

tAbilitatoSLAVE

AbilitatoMASTER

AbilitatoSLAVE

Master accoppiatoagli Ingressi

Slave disaccoppiatodal Master

Master disaccoppiatodagli Ingressi

Slave accoppiatoal Master

21

Clock a due fasi

●Un altro modo di generare il clock a due fasi non sovrapposte

Φ1

Φ2

Ck

/Ck

22

Forme d’onda

Ck

/Ck

ΦΦ11

ΦΦ22

tt∆ ∆ TT

23

Il flip-flop JK

Q

Q

S

R Q

QS

R E E

CKM

CKS

J

K

24

Problema: impulso in ingresso

Errore: doveva

conservare!

25

Flip-flop sensibili al fronte

26

Timing del flip-flop D

27

Ingressi asincroni

28

I flip-flop non trasparenti

➢ Tipi di flip-flop non trasparenti➢ Flip-flop Flip-flop DD

➢ L'uscita assume il valore di D➢ Flip-flopFlip-flop D con abilitazione o DEDE

➢ Con E = 0 l'uscita si conserva➢ Con E = 1 l'uscita assume il valore di D

➢ Flip-flop JKFlip-flop JK➢ Con J = 0 e K = 0 l'uscita si conserva➢ Con J = 0 e K = 1 l'uscita vale 0 (reset)➢ Con J = 1 e K = 0 l'uscita vale 1 (set)➢ Con J = 1 e K = 1 l'uscita si complementa

➢ Flip-flop TFlip-flop T ➢ Con T = 0 l'uscita si mantiene➢ Con T = 1 l'uscita si complementa

29

Equazioni caratteristiche

➢ Modo alternativo di esprimere il funzionamento di flip-flop non trasparenti

➢ Flip-flop DFlip-flop D➢ Q' = D

➢ Flip-flop DEFlip-flop DE➢ Q' = QE + DE

➢ Flip-flop JKFlip-flop JK➢ Q' = JK + QJ K + QJK = JQ + KQ

➢ Flip-flop TFlip-flop T➢ Q' = TQ + TQ = T ⊕ Q

30

Da un tipo di flip-flop all'altro

➢ Ogni flip-flop può essere usato per realizzare le funzioni svolte dagli altri tipi➢ Con l'aggiunta eventuale di una rete logica

➢ Per dimostrare questa affermazione➢ 1)1) usiamo il flip-flop D per realizzare tutti gli altri tipi➢ 2)2) usiamo DE, JK e T per realizzare il D

➢ Osservazione➢ Il procedimento proposto ha significato concettuale,

le realizzazione ottenute non sono ottimenon sono ottime➢ Ogni tipo di flip-flop risulta più adatto a particolari

tipi di applicazione

31

Da flip-flop D a DE, JK, T

D

Q

QCK

D

E

0

1

D

Q

QCK

T

0

1

D

Q

QCK

J K

00011011

01

CK

CK

CK

32

Da flip-flop DE, JK, T a D

D

Q

QCK

D

E

T

Q

QCK

K Q

QCK

CK

CK

CK

1JD

D

33

I registri

➢ Array di FF, in grado di memorizzare più bit di informazione➢ Si caratterizzano per il modo con cui avviene la

memorizzazione e la lettura dei dati➢ ParalleloParallelo o serialeseriale nel tempo

➢ Possono eseguire manipolazione dei bit➢ Scorrimenti (shift) destri o sinistri dei bit

➢ Più funzionalità possono essere incorporate in un unico dispositivo➢ Registro universaleuniversale, usato anche all’interno dei

microcontrollori

34

Registro parallelo

Parallel In - Parallel Out (PIPO)

In3

Ck

D Q

Ck

D Q

Ck

D Q

Ck

D Q

Ck

Q3 Q2 Q1 Q0

In2 In1 In0

35

Registro a scorrimento (1)(shift register)

Serial In - Serial Out (SISO)

In

Ck

Out

D Q

Ck

D Q

Ck

D Q

Ck

D Q

Ck

Ck

In

Out

0 1 2 3 4 t

36

Registro a scorrimento (2)(shift register)

Serial In - Parallel Out (SIPO)

In

Ck

Out

D Q

Ck

D Q

Ck

D Q

Ck

D Q

Ck

Q3 Q2 Q1 Q0

37

Registro a scorrimento (3)(shift register)

Parallel In - Serial Out (PISO)

In2

Ck

SO

D Q

Ck

In1

D Q

Ck

SI

In0

D Q

Ck

Load

1 1 1

0 0 0

38

Registro universaleIn2

Ck

D Q

Ck

SIR

C0

00

C1

11

SOL

In1

D Q

Ck

00

11

Q2 Q1

In0

D Q

Ck

00

11

Q0

SOR

SIL

CC11 CC00 EffettoEffetto

00 00 ConservaConserva

00 11 Ingresso paralleloIngresso parallelo

11 00 Shift destroShift destro

11 11 Shift sinistroShift sinistro

39

Riconoscitori di sequenza

➢ Macchine sequenziali con un uscita che si attiva quando l’ingresso presenta in sequenza una serie preordinata di valori➢ Esempio di sequenza: 01101➢ Riconoscimento di sequenze interallacciateinterallacciate

➢ I bit di una sequenza riconosciuta possono essere considerati parte di una nuova sequenza➢ Nell'esempio, lo ...01 finale può essere considerato nuovamente

➢ Sequenze non interallacciatenon interallacciate➢ Una volta riconosciuti, i bit non si usano più

➢ Esempio di funzionamento➢ In: ...0111011011011011010110110101000...➢ Out_I: ...0000000010010010010000100100000...➢ Out_NI:...0000000010000010000000100000000...

40

Riconoscitori con shift (1)

D

Q

QCK

IN

CK

D

Q

QCK

CK

D

Q

QCK

CK

D

Q

QCK

CK

D

Q

QCK

CK

R

1 0 1 1 0

Riconoscitore interallacciato

(01101)

41

Riconoscitori con shift (2)

D

Q

QCK

IN

CK

D

Q

QCK

CK

D

Q

QCK

CK

D

Q

QCK

CK

D

Q

QCK

CK

R

1 0 1 1 0

Riconoscitore nonnon interallacciato

(01101)

10110 1x1011 0xx101 0xxx10 ?xxxx1 0

42

Contatori

➢ Macchine sequenziali➢ Sincrone o asincrone

➢ Interfaccia➢ Hanno in ingresso un'onda quadra➢ Generano una sequenza di valori predefiniti

➢ Ogni valore è ricavato dal precedente➢ Sommando o sottraendo un valore costante

➢ Alla fine del conteggiofine del conteggio possono comportarsi diversamente➢ Ripartire da 0➢ Modulo n➢ Restare al valore massimo raggiunto (saturazione)

➢ Possono avere diversi ingressi per funzioni opzionalifunzioni opzionali➢ Azzeramento (Reset)➢ Abilitazione (Enable)➢ Caricamento parallelo (Count/Load)➢ Direzione del conteggio (Up/Down)

43

Divisori di frequenza

T

Q

Q CK

1T

Q

Q CK

1T

Q

Q CK

1T

Q

Q CK

1

CKQ0

Q1

Q2

Q3

t

CK

Q0

Q1

Q2

Q3

T

FF EE DD CC BB

Problema!

Rete asincrona

44

Contatori modulo n

➢ Macchine sequenziali che generano, ciclicamente e in ordine, valori tra 0 e n - 1➢ Al termine del conteggio ripartono da capo➢ Categoria particolare: contatori modulo 2m

➢ Richiedono m variabili di stato

➢ Possibili variabili di controllo➢ Enable: 1 (abilita il conteggio); 0 (conserva)➢ Reset: 1 (azzera); 0 (conta normalmente)➢ Preset: 1 (tutti i bit accesi); 0 (conta normalmente)➢ Up/Down: 1 (conteggio crescente); 0 (decrescente)➢ Load: 1 (carica il valore); 0 (conta normalmente)

45

Contatore sincrono modulo 2n

Q T

Ck

Q0

Ck

E

Q1Q2Q3

Q T

Ck

Q T

Ck

Q T

Ck

T1T

2T3

T i=E Q i−1Qi−2 ...Q 0

T i1=EQ iQi−1Q i− 2 ...Q0=T iQ i

Un bit commuta se:1) il contatore è abilitato

2) i bit di peso inferiore al clock precedente sono tutti a 1

46

Contatore sincrono modulo 10

Q T

Ck

Q0

Ck

E

Q1Q2Q3

Q T

Ck

Q T

Ck

Q T

Ck

T1T

2T3

R

BF

Co

1001 91010 100000 0F-B-

47

Contatori decadici in cascata

Q3 Q2 Q1 Q0

Co E Ck

Q3 Q2 Q1 Q0

Co E Ck

Q3 Q2 Q1 Q0

Co E Ck

E

Ck

UnitàDecineCentinaia

48

Contatori ad anello e Johnson

49

Contatore Johnson mod 7

50

Il problema dell'inizializzazione

➢ In generale, una macchina sequenziale con n flip-flop ha 2n stati

➢ Se la sequenza del contatore ha m < 2n valori, esistono valori non compresi nel conteggio➢ Occorre porsi la domanda: come procede la

sequenza se accidentalmente il contatore viene a trovarsi in uno di questi 2n - m valori?

➢ Possibili risposte➢ In modo arbitrario, ma tornando dopo un numero finito di

cicli a un valore appartenente alla sequenza➢ In modo arbitrario, e senza mai tornare a un valore valido

della sequenza➢ Questa condizione è da evitare➢ All'accensione lo stato dei flip-flop è (in genere) casuale