43
Flip-flop Macchine sequenziali

Flip-flop Macchine sequenziali - uniroma1.italberto/didattica/Calcolatori/2c_CE.pdffar commutare i flip-flop, ma inferiore al minimo tempo di commutazione dei circuiti combinatori

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Flip-flopMacchine sequenziali

Introduzione

I circuiti digitali possono essere così classificati• Circuiti combinatori

– Il valore delle uscite ad un determinato istante dipendeunicamente dal valore degli ingressi in quello stessoistante

• Circuti sequenziali– Il valore delle uscite in un determinato istante dipende

dal valore degli ingressi in quell’istante E dal valore degliingressi in istanti precedenti

Esempio: bistabile

Y1

Y2

0001 A

B

AB

X2

X1

X1=1X2=0

Y1

Y2X2

X1

1

0 1

0

1

0

0

0 1

X1=0X2=1

1

10

0

0

1

1

Tabella verità NOR

Se un ingresso vale 1allora l’uscita vale 0Se un ingresso vale 0 allora l’uscita vale l’altro ingresso negato

Bistabile

Y1

Y2

00

01A

B

X2

X1

X1=0X2=0

Y1

Y2X2

X1

0

0 1

0

10

0

0 1

X1=0X2=0

0

10

0

0

1

1

Y1

Y2X2

X1

X1=1X2=1

10

0

1 0

0

Equazioni bistabileQ stato attuale, Q’ prossimo stato

Q

QS

R

Q’ = SR + RQ

00 01 11 100 0 0 x 1

1 1 0 x 1

SRQ

0111

1011

0101

1001

0110

1010

0100

0000

Q S R Q’

NOTA Con R=S=0 il bistabile mantiene lo stato precedente (Q’=Q)Questa rete è in grado di memorizzare un bit

Bistabile: temporizzazione

Set

Reset

Q

Q Q

0

1

R

1

0

S

0

1

Q

1

0

Q-100 Q-1

Non usata11

Reset

Set

Q

Q

tempo

Bistabile: input ammissibili

• Con R=S=0 il bistabile mantiene (hold) lo stato acquisito• Con R o S diversi da 0 si cambia lo stato• La configurazione di ingresso R=S=1 non è ammessa, poiché

se da questa si passa a R=S=0 sono possibili dueconfigurazioni per l’uscita. La configurazione effettiva non ècioè prevedibile

S R Q’0 0 Q0 1 01 0 11 1 ?

R

S

Q

Q

HoldResetSet

SincronizzazioneAl tempo t0 sia A=0, =0 e Q=0Se i valori A e B cambiano

“contemporaneamente” al tempot1 allora, l’uscita Q rimane a 0

Tuttavia nella realtà i cambiamentidi A e B non sono contemporanei:ad esempio può succedere che Acambi prima di B (che cambia at2)

In questo modo si avrà unaconfigurazione temporanea A=B=1e Q commuta a Q=1

Quando B varia, Q continuerà ancoraa valere Q=1

R=0 Q=0

Q

FF

S=0

A=0

B=1

A

B

Q

t0 t1 t2

Segnale di sincronizzazione

Un clock ha le seguenti caratteristiche:– E’ un segnale binario– E’ un segnale periodico (durata T)– frequenza del clock f=1/T

Fronte di discesa

Fronte di salitaPeriodo T

1

0

In realtà le transizioni 0->1 e 1-> non sono istantanee

Bistabili Sincroni

Utilizzano un segnale di controllo CK, detto Clock• Livello, chiamati Latch trasparenti

– L’ingresso viene sentito, e l’uscita può variare, durante tutto ilperiodo in cui C=1 (oppure C=0)

• Fronte di salita, chiamati (positive edge triggered) Flip-Flop– L’uscita cambia in base al valore dell’ingresso in corrispondenza

della transizione di C da 0 ad 1• Fronte di discesa (negative edge triggered) Flip-Flop

– L’uscita cambia in base al valore dell’ingresso in corrispondenzadella transizione di C da 1 ad 0

• Master-Slave Flip-Flop– Segnale d’ingresso campionato su un fronte, uscita cambia

sull’altroNota: Spesso letteratura si usa il termine Flip-Flop per indicare

in modo generico un bistabile (quindi anche i latch)

Esempio, Latch RS

R

S

Q

Q

CK

R Q

QS

CK

?111

1011

0101

Q001

Q110

Q010

Q100

Q000

CK S R Q’

Quando CK=1 allora si ha il consenso alla transizione

Perché abilitare sui fronti?

Sia d il tempo in cui CK=1 e t il ritardo di propagazione del FF• assumiamo che d>t

Esiste un problema nel collegamento in cascata di bistabili.Durante CK=1 l’uscita di FF1 modifica l’uscita di FF2 poichéd>t. In alcuni casi questo non è il comportamento voluto(registri a scorrimento)

FF1 FF2

CK

R=0

S=1

CK

Q1

Q2

Q1 Q2

t

d

Ritardo di propagazione

Durata clock alto

Abilitazione sul fronte di discesa

Usando FF con abilitazione sul fronte di discesa si ottiene ilcomportamento desiderato. Ad ogni ciclo di clock cambia lostato di un solo flip-flop

CK

R=0

S=1

CK

Q1

Q2

Q1 Q2

Latch D

• Un solo ingresso più uno di abilitazione• Usato come unità elementare di memorizzazione

– Presenta in uscita ciò che era presente in ingresso quandoil era presente il segnale per l’abilitazione (CK=1)

R Q

S

CK

Q

D

CK

D Q

D

CK

Q

Master-Slave

Nel caso di master-slave si ha in corrispondenza del fronte didiscesa.

S

CK

Q

Q

S

R

CK

Q

QR

S

CK

Master Slave

R

Q

Q

S

CK

R

Registri

Un registro è un elemento di memoria– in grado di memorizzare un insieme di n bit– composto da un insieme di bistabili– l’informazione memorizzata in un registro prende il nome

di parolaScrittura

Scrittura Lettura

Lettura

Registri

Modalità di scrittura/lettura dei dati– Parallelo– Seriale

Operazioni sui dati:– Scorrimento a destra– Scorrimento a sinistra– Scorrimento circolare

Registro parallelo-parallelo

D Q D Q D Q

D0 D1 D3

Q0 Q1 Q3

Clock

D Q

D2

Q2

Registri

FFn

C

IN1

Un registro è composto da più flip-flop D che utilizzano gli stessi segnali di controllo

IN2

IN3

INn

OUT1

OUT2

OUT3

OUTn

FF1

FF2

FF3

REG

IN(n:1) OUT(n:1)

C

C

IN(4:1) 0xC 0xD 0xE 0xF

OUT(4:1) 0xC 0xD 0xE 0xF

Barrel Shifter

a a ai+1 i i-1

SH

d/s

zi

Registro circolare (n=4)

D Q D Q D Q

D0 D1 D3

Q

Clock

D Q

D2

Write/Read

Reti sequenziali

Il valore in uscita è funzione della sequenza di valoriforniti in input fino a quel momento

• Hanno una memoria• Varie classi di reti, vedremo la più semplice Level

Level Clocked (LLC)• La sequenza è definita mediante un segnale di clock• Gli ingressi e le uscite sono “a livelli”:

• il livello del segnale d’ingresso determina il livello del segnaled’uscita

• L’ingresso cambia solo dopo che l’uscita è stabile• Altre reti (es. ad impulsi…)

Addizionatore (macchina sequenziale)

Al clock i-esimo arriva in ingresso una coppia di bit del numeroda sommare; l’uscita è pari al bit i-esimo della somma

Macchine sequenziali: schema

LC

LC: circuiti combinatori

M: memoria

Macchine LLC

RETECOMBINATORIA

w,d

FF1

FF2

FFk

z1

z2

zm

y1

y2

yk

y’1

y’2

y’k

Ingressi Uscite

Stato Presente Stato Futuro

Registri di stato

Clock f

La rete combinatoriarealizza le funzioni d ew (tabelle di verità)

Rete sincrona LLC (LevelLevel Clocked)

La macchina cambia stato adogni fronte attivo del clock(ogni “colpo di clock”)

Le uscite dipendono dai livellidei valori d’ingresso (nondalle variazioni)

Prima di cambiare nuovamentele uscite diventano stabili

x1

x2

xn

Macchina a stati finiti (FSM)

• FSM = <I,O,S, d,w>– I alfabeto finito di ingresso (per comodità |I|=2n)– S insieme degli stati, |S|= 2k

– O alfabeto di uscita, |O|= 2m

– d : S x I Æ S, funzione stato successivo– w : S Æ O (Moore) oppure w : S x I Æ O (Mealy)

funzione di uscita

• Se serve specificare uno stato iniziale s Œ S,FSM= <I,O,S, d,w,s >

• Una FSM può essere realizzata come rete LLC

Diagramma degli stati

Il diagramma degli stati è un grafo orientatoetichettato G(V,A,L)

• i nodi rappresentano gli stati della macchina• gli archi le transizioni di stato• le etichette le condizioni di transizione

Macchina di Mealy: l’uscita dipende dallostato e dall’ingresso

Macchina di Moore: l’uscita dipende solo dallostato

Flip/Flop S-R

• Ingresso: Set – Reset (S-R) – solo uno deidue ingressi può essere pari ad uno.

• Stati: 0, 1

uscita= stato del flip flop: macchina di Moore

0 1

10

01

00,10

00,01

Riconoscitore di sequenza

Macchina che riconosce la sequenza ciao• Input: {a,b,c,...,z}

Per semplicità assumiamo che il simbolo dinegazione su una lettera individui unaqualunque lettera tranne la lettera stessa(ad es. a indica b,c,...,z); analogamente perpiù lettere

• Uscita: Si, No

Diagramma degli stati (Moore)

1: aspetto c2: aspetto i3: aspetto a , 4: aspetto o; 5: parola completa

1/no 2/no 3/no 4/no 5/sic i a o

cc

c,i c c,a

c

c,o

c

c

Diagramma degli stati (Mealy)

1: attesa c2: attesa i3: attesa a4: attesa o

1 2 3

4

c/no i/no

a/noo/si

cno c/no

c,i/no c/noc,a/no

c/no

Contatore Up e DownMacchina conta modulo 4• U incrementa di uno• D decrementa di uno

FSM Esempio evoluzione (Moore)

INPUT

OUTPUT

SP

SF

Registri di statoClock f

INPUT

s1/o1s2/o2

I1

SP

OUTPUT

O1

S1 S2

O2

TpFFTd

n d : S x I Æ S

nw : S Æ O

Tw

I1d

w

SF S2

s3/o3

I2

I2

S3

O3

S1 S3

f

Dalla macchina sequenziale alla rete• Per realizzare una macchina sequenziale è

necessario– Codificare gli insiemi I,S,O con variabili di commutazione– Realizzare le funzioni d ed w con reti combinatorie

• Comportamento temporale delle variabili diingresso/uscita– Ogni circuito digitale risponde ai nuovi valori di ingresso

producendo la nuova uscita in modo stabile solo un tempodi ritardo d durante il quale sono esauriti tutti itransitori

• Considereremo solo la realizzazione di reti di tipoLLC (Level Level Clocked)

Dalla macchina alla rete

• x1,x2,..,xn variabili di ingresso a livelli– 2n ≥ |I|

• z1,x2,..,zm variabili di uscita a livelli– 2m ≥ |O|

• y1,y2,..,yk variabili di stato– 2k ≥ |S|

• Variabile impulsiva, ck, che ha lo scopo di farcommutare lo stato

Reti LLC

La rete sequenziale lavora con le seguenti ipotesi:• Variabili d’ingresso di tipo a livello (i valori in ingresso

rimangono fissi per un periodo T sufficientemente lungo perfar assumere all’uscita il nuovo valore di regime, ossia T>d)

• Variabili di uscita a livello• Segnale di abilitazione “positive or negative edge trigger”, o

a livello (in quest’ultimo caso la variabile di commutazionedeve essere pari ad 1 per un periodo di tempo sufficiente perfar commutare i flip-flop, ma inferiore al minimo tempo dicommutazione dei circuiti combinatori che calcolano lo statosuccessivo, altrimenti si potrebbero avere più commutazioni)

Dal modello strutturale al circuito

d

w

XZ

Y’Y

d

w

X

Z

Y’Y

Mealy Moore

ck

ck

Rete LLC per macchine di Mealy(flip-flop di tipo D)

RETECOMBINATORIA

w,d

FF1

FF2

FFk

x1

x2

xn

z1

z2

zm

y1

y2

yk

y’1

y’2

y’k

Ingressi Uscite

Stato Presente S Stato Successivo S’

Registro di stato

Clock

Esempio: contatore UP-DOWN modulo 4

0 1

23

U

U

U

U D

D

D

D

I={U,D}O={0,1,2,3}S={0,1,2,3}

320213102031

U D uscitaingresso

stato

0123NOTA: uscita = stato

Codifica simboli

I x

U 0D 1

S y2 y1

0 0 01 0 12 1 03 1 1

O z2 z1

0 0 01 0 12 1 03 1 1

11100010011101001000110100

011011

y2 y1 0 1 z2 z1

x

320213102031

U D uscitaingresso

stato

0123

Sintesi funzioni d e w

• In questo semplice esempio, l’uscita è uguale allo stato– w(y2y1)=z2z1

100001110010110100

011011

y2 y1 0 1x

0110011000

011110

y2 y1 0 1x

1100001100

011110

y2 y1 0 1x

y’1 y’2

y’1= y1

Mappe di Karnaugh

y’2=y2 y1 x+y2y1x +y2y1x + y2y1x

Realizzazione mediante retecombinatoria

RETECOMBINATORIA

w

FF1

FF2

z1

z2

y1

y2

y’1

y’2

Ingresso Uscita

Clock

x

Realizzazione mediante ROM

MemoriaROM

FF1

FF2

z1

z2

y1

y2

y’1

y’2

Ingresso Uscita

Clock

x

000 0 1 0 0001 1 1 0 0010 1 0 0 1011 0 0 0 1100 1 1 1 0101 0 1 1 0110 0 0 1 1111 1 0 1 1

y2y1x y’2y’1z2z1

IndirizzoStruttura parola nella ROM