Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi...

30
Reti Sincrone

Transcript of Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi...

Page 1: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

Reti Sincrone

Page 2: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

• Le reti sequenziali sincrone memorizzano il proprio stato in dei FF-D

• Le variabili di stato future sono quelle all’ingresso dei FF-D mentre le variabili di stato presente sono le uscite dei FF-D.

• Lo stato cambia al fronte del clock. Il clock deve quindi essere tale che lo stato futuro sia stabile prima dell’arrivo del fronte

• Il metodo di sintesi ed analisi di una rete sincrona è analogo a quello delle reti asincrone, ma ci sono meno restrizioni, ad esempio• le configurazioni di stati fra cui esistono transizioni non devono

essere necessariamente adiacenti. • Gli stati non devono essere necessariamente stabili per le

configurazioni di ingresso che li hanno generati• … (vedi fine blocco sulle reti sequenziali)

• Il Flip Flop assume quindi una grande importanza in quanto blocco elementare di memorizzazione di un bit

Page 3: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

Componenti sincroni di largo impiego• Registri

• Semplice

• Con write enable (WE)

• Con output enable (OE)

• Universal Shift register (USR) => Quattro modalità

• Contatori

• Riconoscitore di sequenza

• Generatore di forme d’onda

Page 4: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

4

Reti sincrone: come realizzare il ritardo T0

Rete combinatoria ideale

Ingressi

Stato presenteStato futuro

sf1

sfk

s1

sk

REGISTRO

Uscite

Q D

F.F.-D

Q D

F.F.-D

Q D

F.F.-D

Clock di periodo T0. T0 deve essere tale che tutti I segnali sfi e le uscite siano stabili prima del fronte e rispettando inoltre il tsetup

T0

tsmax = max(ts1,…,tsk)

tRmax : tempo di risposta ; tSUmin : tempo di set-up

Page 5: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

5

Registri in cascata e tempo di HOLD

ATTENZIONE: Se l’uscita di un registro risulta essere l’ingresso di un altro registro, occorre che il tempo di risposta (TR) sia sufficientemente elevato in modo tale che sia rispettato il tempo di hold (TH) del registro a valle, quindi: TR > TH

R1 R2

I O

It(n-1) It(n-1) Itn

ItnIngresso di R1

Uscita di R1=

Ingresso di R2

TSU

TR

TH

Se TR < TH non viene rispettato il tempo di hold!!

Clock

Clock

Page 6: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

6

Sincronizzazione di segnaliasincroni

Se le condizioni espresse nel lucido precedente sono soddisfatte, la cascata di 2 registri può essere utilizzata per sincronizzare degli ingressi asincroni

R1 R2

Clock

Sistema esterno asincrono

Rete sincrona

Segnali sincroni

Segnali asincroni

Rete di sincronizzazione

• I segnali sincroni arrivano subito dopo il fronte del clock o comunque con anticipo rispetto al fronte successivo

• I segnali asincroni possono arrivare in qualsiasi momento, siccome c’è il rischio che essi pervengano durante un tempo di setup, è talvolta necessario sincronizzarli tramite lo schema sopra

Page 7: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

7

Il procedimento di sintesi delle reti sincrone

Specifiche Grafo degli stati Tabella di flusso

Codifica dello stato (arbitraria)

Tabella delle transizioniSintesi MINIMA di F e G

SCHEMA LOGICO

F(rete combinatoria)

G(rete combinatoria)

REGISTRO

u(tn)i(tn)

s(tn+T0) s*(tn)T0

Page 8: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

Registro Registro con OE

R

Q0

Qn-1

D0

Dn-1

>

Qui, cioè nella rete a monte, viene calcolato, durante il periodo di clock, il valore futuro del registro nel clock successivo

QD

>

FF-D

DiQi

CLK

CLK

All’interno n FF-D che condividono il clock

R

Q0

Qn-1

D0

Dn-1

>

SE OE (Output Enable) attivo, allora l’uscita vale come in un normale registro. Se OE non è attivo l’uscita va in alta impedenza. Si usa in schemi dove l’uscita può essere controllata da più reti di cui è garantito che una sola abbia OE attivo

QD

>

FF-D

Di

Qi

CLK

CLK

OE si usa allo stesso modo per tutti i FF componenti ed ha effetto immediato, cioè non agisce sullo stato futuro, ma direttamente sulle uscite

OEOE

OE

Page 9: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

Registro con WE

R

Q0

Qn-1

D0

Dn-1

>

Se Write Enable è non attivo, allora lo stato futuro del registro sarà uguale a quello presente. Se WE è attivo il registro funziona normalmente, cioè campiona gli ingressi sul fronte.

QD

>

FF-DDi

Qi

CLK

Questo schema ci consente di scegliere lo stato futuro in base alla configurazione degli ingressi di controllo del registro

WEWE

0

1

MUX

A

Quando WE è non attivo il registro è in memorizzazione (HOLD) e gli ingressi non vengono campionati

Page 10: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

10

Contatore binario x4

13

2

0

Grafo degli stati

Stato

presente

Stato futuro

0 1

1 2

2 3

3 0

Tabella di flusso

Q1Q0 Q1fQ0f

00 01

01 10

10 11

11 00

Tabella delle transizioni

Q1\ Q0 0 1

0 0 1

1 1 0

Q1\Q0 0 1

0 1 0

1 1 0

Q1f Q0f

Q1f = Q1Q0+ Q1Q0

Q0f =Q0

Andamento temporale

Clock

Q1

Q0

Q0

Q1

Page 11: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

11

Contatore binario x16: funzionamento

0

115

2

16 stati 4 bit per la codifica dello stato

Grafo degli stati

Q3Q2Q1Q0 Q3fQ2fQ1fQ0f

0000 0001

0001 0010

… …

1110 1111

1111 0000

Tabella delle transizioni

Contatore x 16

Clock

Q3 Q2 Q1 Q0L’uscita è un numero binario a 4 bit. Ad ogni impulso di clock l’uscita viene incrementata di 1 (modulo 16). Non è presente alcun ingresso.

Page 12: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

12

Contatore binario x16: realizzazione

CI 4 BIT

a0 ADDER

a1

a2

a3

s0

s1

s2

s3

b0

b1

b2

b3

CO

01

000

D0

D1

D2

D3

Q0

Q1

Q2

Q3

Q0

Q1

Q2

Q3

Page 13: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

13

Contatore: Reset, Load, Up/Down, EnableReset*: il conteggio viene portato a 0

Load*: carica un valore imposto dall’esterno L3L2L1L0

Enable: abilita il conteggio

U_D: incremento del conteggio o decremento

+ Prioritario

- Prioritario

Reset*

Load*

Enable

U_D

L[3..0]4

N.B. Sono tutti comandi sincroni

Page 14: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

14

Load & Reset

Si Di

Reset*

Li

1

0

Load*

Espressione degli ingressi del registro (i=0..3)

Di = Reset* (Load* . Si + Load∗ . Li)

Reset* = 0 Di = 0

Reset* = 1 Di = Load* . Si + Load∗ . Li

Load* = 0 Di = Li (caricamento)Load* = 1 Di = Si (conteggio)

Page 15: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

15

Up/Down & Enable

U_D

CI

Enable

a0

an-1

Espressione degli ingressi ai (i=0..3) e CICI = Enable U_Dai = Enable U_D

Enable = 0 viene sommato, al valore corrente dello stato, 0 il contatore è fermo

Enable = 1 bisogna considerare il valore del segnale U_D Se U_D = 1 si torna alla configurazione di figura: conteggio in avantiSe U_D = 0 si somma al valore corrente “-1” (1111): conteggio all’indietro

Page 16: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

16

Contatore: comandi sincroni e funzionamento

0 0 1 2 3 0 0 1 2 3 2 1 2 3 1 2 6 4 5 6

0 1 2 3 0 0 1 2 3 2 1 2 3 1 2 6 4 5 6 7

x x x x x x x x x x x x x 1 x 6 4 x x x

Q[2..0]

Enable

Reset*

U_D

Load*

L[2..0]

Clock

Q*[2..0]

Page 17: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

17

Contatore: riduzione della base di conteggiox16 x10

?

x16RESET* Q3 Q2 Q1 Q0

“9”

Ipotesi: U_D = 1 (conta in avanti)

Cosa cambia se si vuole comunque disporre anchedi un segnale RESET esterno?

x16LOAD* Q3 Q2 Q1 Q0

“0”

L3 L2 L1 L0

Ipotesi: U_D = 0 (conta indietro)

Cosa cambia se si vuole comunque disporreanche di un segnale LOAD esterno?

1001 “9”

Esercizio: a partire da un contatore binario x16 realizzare un contatore BCD, prevedendo icomandi di Enable, Load*, Reset* e U_D

Page 18: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

18

Divisore di frequenza: esempio con un contatore x 8

0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 . . .

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0

0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0

Q[2..0]

Q0

Q1

Q2

Clock

frequenza(Q0) = fCLOCK/2frequenza(Q1) = fCLOCK/4frequenza(Q2) = fCLOCK/8

Osservando le uscite del contatore si nota che:

Page 19: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

19

Riconoscitore di sequenze: grafo degli statiRiconoscitore di sequenze di 3 bit: “011”. L’uscita si porta ad 1 appena la sequenza

viene riconosciuta e a 0 appena la sequenza di ingresso è “fuori sequenza”

I

1,0

A0,0

0,0

B1,0

0,0C

1,1

1,0

D0,1

E1,1

0,0

F1,1

0,0

0,1

1,0

i: 00011011011110101011010…

U: 00001111111000000001110…

i,U

Page 20: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

20

Diagramma dei tempiClock

Ingresso (i) 1 1 0 1 1 0 1 1 1 1 0 1 1 0 0 …

Stato

Presente

I I I A B C D E F I I A B C D A

Stato

futuro

I I A B C D E F I I A B C D A …

Uscita(U) 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0

Sulla base dell’ingresso presente e dello stato presente la rete calcola lo stato futuro e l’uscita. Lo stato futurodiventerà stato presente a seguito del prossimo fronte del clock.

Page 21: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

21

Riconoscitore di sequenze: grafo degli stati

I

1,0

A0,0

0,0

B1,0

0,0C

1,1

1,0

D0,1

E1,1

0,0

F1,1

0,0

0,1

1,0

i,U

I,0

1

A,00

0

B,01

0C,1

1

1

D,10

E,11

0

F,11

0

0

1

i

Mealy

Moore

Come risulta l’uscita utilizzando Moore?

Page 22: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

22

Riconoscitore di sequenze: tabella delle transizioni

0 1

I A I

A A B

B A C

C D I

D A E

E A F

F D I

Tabella di flusso dello stato futuro

0 1

000 001 000

001 001 010

010 001 011

011 100 000

100 001 101

101 001 110

110 100 000

Tabella delle transizioni dello stato futuro

Codifica dello stato

I: 000 A: 001 B: 010C: 011 D: 100 E: 101F: 110

Stato presente

i i

S0S1S2

Nota: non occorre preoccuparsi di come codificare lo stato interno per evitare problemi di alea.

Page 23: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

23

Riconoscitore di sequenze: mappa di Karnaugh

0 1

000 001 000

001 001 010

010 001 011

011 100 000

100 001 101

101 001 110

110 100 000

Tabella delle transizioni

00 01 11 10

00 001 000 010 001

01 001 011 000 100

11 100 000 --- ---

10 001 101 110 001S0 S1 S2

i

S0 S1

S2 i

Mappa di Karnaugh

S0fS1fS2f

S0fS1fS2f

Page 24: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

24

Riconoscitore di sequenze: reti minima di aggiornamento dello stato

00 01 11 10

00 001 000 010 001

01 001 011 000 100

11 100 000 --- ---

10 001 101 110 001

S0S1

S2 i

Mappe di Karnaugh 00 01 11 10

00 0 0 0 0

01 0 0 0 1

11 1 0 - -

10 0 1 1 0

00 01 11 10

00 1 0 0 1

01 1 1 0 0

11 0 0 - -

10 1 1 0 1

00 01 11 10

00 0 0 1 0

01 0 1 0 0

11 0 0 - -

10 0 0 1 0

S0f= S0S1’i + S1S2i’ + S0S1i’

S2f= S1’i’ + S0’S1S2’ + S0S1’S2’

S2 i

S0S1 S0S1

S0S1

S2 iS2 i

S1f= S0‘S1S2’i + S1’S2i

Nota: non occorre preoccuparsi del problema dell’alea statica!

S0fS1fS2f

Page 25: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

25

Riconoscitore di sequenze: la funzione di uscita

S0S1S2 U

000 0

001 0

010 0

011 1

100 1

101 1

110 1

111 -

Tabella della verità della funzione di uscita

0 1

00 0 0

01 0 1

11 1 -

10 1 1

Mappa di Karnaugh

S0S1

S2

U

U =S0 + S1S2

Alea?

(Modello di Moore)

Page 26: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

26

Riconoscitore di sequenze: stati equivalenti

I

1,0

A0,0

0,0

B1,0

0,0C

1,1

1,0

D0,1

E1,1

0,0

F1,1

0,0

0,1

1,0

i,U

Osservando il grafo degli stati è possibile notare che sia C che F vengono raggiunti con la stessa configurazione di ingresso (1) e presentano la stessa uscita (1). Per le due configurazioni di ingresso transitano negli stessi stati con la stessa uscita: con ingresso 0 in D con uscita 1 e con ingresso 1 in I con uscita 0. E’ possibile quindi non aggiungere lo stato F: da E con ingresso 1 si ha uscita 1 e stato fututo C.

1,1

Page 27: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

27

Generatore di forme d’onda: una prima soluzione

0 0 1 0 1 1 0 1 0

0 1 0 0 1 0 1 1 0

Clock

X

Y

x8A0Q0

Q1

Q2

A1

A2

0 1 2 3 4 5 6 7

X 0 0 1 0 1 1 0 1Y 0 1 0 0 1 0 1 1

Uscita

UscitaLa forma d’onda generata è affetta dal problema dell’alea?

E’ ovvio che in questo particolare caso, siccome stiamogenerando una forma d’onda, vorremmo che essa non sia

affetta da alea

U

Versione ai morsetti di principio possono essere aggiunti ingressi per

configurare la forma d’onda o per abilitare e disabilitare la generazione

Page 28: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

Generatore di forme d’onda• Una forma d’onda è un segnale che assume il valore alto o basso in precisi istanti temporali e che

poi, una volta terminata la sequenza, solitamente ricomincia ciclicamente.

• Un generatore di forme d’onda è una rete sequenziale con un’uscita che rappresenta la forma d’onda stessa. Essendo l’uscita la forma d’onda si preferisce che non sia affetta da alee per non confondere le alee con la forma d’onda generata.

• Per progettare un generatore di forme d’onda c’è una rete che tiene conto dell’istante al quale siamo (tipicamente un contatore) Ed una rete che, a partire dallo stato presente (le uscite del contatore) genera in modo combinatorio l’uscita. Nel lucido precedente tale rete era un multiplexer

• Per avere un generatore di forma d’onda programmabile (cioè avere la possibilità di modificare la forma d’onda generata) servono degli ingressi aggiuntivi che consentono la configurazione della forma d’onda da generare (nel lucido precedente veniva usato un registro)

• Per essere sicuri che la forma d’onda non sia affetta da alee ci sono due condizioni: lo stato deve variare fra configurazioni adiacenti (il conteggio binario non va bene in questo caso) . Inoltre la rete F deve essere ottenuta con coperture tali da non ammettere alee statiche sulla variazioni dell’ingresso singolo

• Esistono diversi tipi di contatori non binari, in essi la sequenza degli stati è diversa dall’ordine dei numeri binari• Contatore johnson : conto fino a 2n• Contatore gray: conto fino a 2n

Page 29: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

29

Contatore Johnson (configurazioni di stato adiacenti)000 100 110

111011001

00 01 11 10

0 100 000 001 -

1 110 - 011 111

(y2y1y0)

y1y0

y2

(Y2Y1Y0)

00 01 11 10

0 1 0 0 -

1 1 - 0 1

y1y0

Y2

y200 01 11 10

0 0 0 0 -

1 1 - 1 1

y1y0

Y1

y200 01 11 10

0 0 0 1 -

1 0 - 1 1

y1y0

Y0

y2

Y2 = /y0 Y1 = y2 Y0 = y1

Unico bit che cambia

Page 30: Reti Sincrone - unibo.itsmatt/DIDATTICA/Reti_Logiche_T/PDF/2_5… · Il procedimento di sintesi delle reti sincrone Specifiche Grafo degli stati Tabella di flusso Codifica dello stato

30

Generazione di forme d’onda: con contatore Johnson

D

/Q

D QD Q Q

R.C.

0 4 6 7 3 1 0 4 6 7 …

0 0 1 1 0 0 0 0 1 1 …

0 0 0 1 1 1 0 0 0 1 …

0 1 0 1 0 1 0 1 0 1 …

Clock

Stato(y2y1y0)

U

F

y2 y1 y0

Struttura di un contatore Johnson a 3 bit

Equazioni di stato:Y2 =y0

Y1 = y2

Y0 = y1

Valore decimale dello stato