1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6...

82
1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone

Transcript of 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6...

Page 1: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

1 - Campionamento2 - Sintesi & Analisi3 - Accumulatore4 - Contatore5 - Registro a scorrimento6 - Buffer

Esercizi e applicazioni diReti sincrone

Page 2: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Il modello della rete sincrona: comportamento

t

uscita un=F(i,s)n

stato futuro Sn=G(i,s)n

stato presente sn

ingresso in

sn+1

(n-1)T0 nT0 (n+1)T0

istanti di sincronismo e intervalli elementaridi funzionamento

Page 3: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Il modello della rete sincrona: struttura

Retelogica

combinatoriaideale

z1

z2

zm

uscita u(t) = F(i(t),s(t))x1

x2

xn

ingresso i(t)

s(t+ ) = S(t)

RitardoT0

RitardoT0

RitardoT0

yk

y2

y1

stato presentes(t)

Yk

Y2

Y1

stato futuroS(t) = G(i(t),s(t))

Page 4: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

7.1Campionamento

Page 5: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Il flip-flop D come “ritardo” di durata T0

Q n+1 = D n

equazionecaratteristicadel FF “D”

(n-1) . T0 n . T0 (n+1) .T0

clock C

D Q

Q’

uscita Q Q n-1 Q n Q n+1

D delay

ingresso D D n-1 D n D n+1

Page 6: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Rete sequenziale sincrona a flip-flop D

z i n = F i (x 1,.., x n , y 1 ,.., y k)n per i = 1, .. , m

y i n+1 = D i n = Y i

n = G i (x 1,.., x n , y 1 ,.., y k)n per i = 1, .. , k

Retecombinatoria

1x1

xn

y1

yk

z1

zm

Y1

Yk

m

t1

tk

Q D

Q Df = 1/T0

Page 7: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Campionamento dei comandi

Vincolo per il corretto funzionamento

T 0 R + RC + SU

ff

clock

t

RC

R: tempo max. di risposta dei FF

RC: tempo max. di risposta della rete comb.

SU: tempo min. di set up dei FF

Page 8: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Addizione in serie

a1

b1

r1

s1

r2

a2

b2

r2

s2

r3

a0

b0

0

s0

r1

Q D

Riportoinizialmente

a “zero”

Frequenza e faseuguali a quelledei bit seriali.

T 0 R + FA + SU

FA

a

b

r

s

R

Addendi in serie Somma in seriet t

Page 9: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Esercizio 7.1

Sia EN un “flag” che segnala la presenza in ingresso al full-adder di bit significativi dei due operandi A e B.

a0 a3 an-1a1 a2

b0 b3 bn-1b1 b2

EN

A

B

Come occorre impiegarlo per avere una corretta esecuzione dellasomma e per disporre di un flag di validità dei bit sull’uscita s ?

Page 10: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

7.2Sintesi & Analisi

Page 11: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Il procedimento di sintesi

Il procedimento di sintesi di una rete sequenziale sincronaè formato da 4 passi e consente di dedurne lo schema logico dal comportamento:1: individuazione del grafo degli stati,2: definizione della tabella di flusso,3: codifica degli stati e definizione della tabella delle transizioni,4: sintesi della parte combinatoria e retroazioni con flip-flop.

Page 12: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

I° esempio: il riconoscitore di sequenza

Una rete sequenziale sincrona ha un ingresso x ed una uscita z.La relazione ingresso/uscita è descritta dalla seguente frase:

“zn = 1 quando xn = 1 e solo se xn-2 = xn-1 = 1 ”

1x 0 1z 0

N.B. - Reti che classificano stringhe di valori di ingresso consecutivisono usualmente dette “riconoscitori di sequenze”.

Page 13: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

1,1

I° esempio: il grafo degli stati

A

x, z0,0

1,0

1,1D

1,0C

0,0

M1

•Si completa il grafo, prendendo in considerazione tutte le altrepossibili situazioni e curando di renderlo “strettamente connesso” (ogni stato deve poter essere raggiunto da ogni altro).

•Si traccia la parte di grafo che riconosce la sequenza assegnata, specificando su ogni ramo il valore d’uscita (durata T0).

Page 14: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

I° esempio: macchine equivalenti

Macchine equivalenti - Sono dette equivalenti macchine sequenziali che presentano uno stesso comportamento impiegando un diverso numero di stati: M1 = M2 = M3. La macchina che ha il più piccolo insieme di stati è detta “minima”(M2).

1,1

a

x, z0,0

1,0 b 1,0 c

0,0

M21,1

x, z0,0

1,0 1,0

0,0

0,01,00,0

M3

Page 15: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

I° esempio: tabella di flusso di M1

xstato 0 1 A A,0 B,0 B A,0 C,0 C A,0 D,1 D A,0 D,1

N.B. In una rete sequenziale sincrona ogni stato resta presente peralmeno un periodo di clock, ogni cambiamento di ingresso avvieneall’inizio di tali intervalli ed ogni transizione si verifica al termine.La stabilità dello stato presente non è una condizione necessaria perla variazione di ingresso. E’ proprio la assenza di questo vincolo che consente di specificare comportamenti di tipo 2 o di tipo 3.

Page 16: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Codifica degli stati - In una rete sequenziale sincrona la codificadegli stati è arbitraria (2n M, naturalmente!). Il campionamentoa regime dei segnali di stato elimina infatti a priori il problema di errate interpretazioni causate dal loro iniziale disallineamento.

I° esempio: codifica degli stati

xn

y1ny2

n 0 1 A: 00 00,0 10,0 B: 10 00,0 11,0 C: 11 00,0 01,1 D: 01 00,0 01,1

y1n+1 y2

n+1, zn

Page 17: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

I° esempio: sintesi della rete di aggiornamento dello stato

Funzioni di eccitazione - Funzioni dello stato e dell’ingresso che specificano i valori da attribuire ai segnali di comando di ciascun flip-flop.

La funzione di eccitazione del flip-flop di tipo D coincide con la funzione della variabile di stato futuro.

Le funzioni di eccitazione del flip-flop di tipo JK vanno opportunamente dedotte da quella della variabile di stato futuro.

Dn = Qn+1

Qn+1 Qn Jn Kn

0 0 0 - 1 1 - 01 0 1 - 0 1 - 1

Page 18: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

I° esempio: sintesi di M1 con flip-flop D

D1 = y1n+1 = x.y2’ D2 = y2

n+1 = x.y2 + x.y1 z = x.y2

Ipotesi: si cercano reti minime di tipo SP

Copertura delle funzioni di eccitazione - Il campionamento a regime dei segnali di stato elimina a priori il pericolo di aleestatiche e dinamiche.

0

1

00 01 11 10xy1y2

0 0 0 0

1 0 0 1

0

1

00 01 11 10xy1y2

0 0 0 0

0 1 1 1

0

1

00 01 11 10xy1y2

0 0 0 0

0 1 1 0

y1n+1 y2

n+1 zn

Page 19: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Grafo e tabella di flusso di M3

xstato 0 1

1,1

x, z0,0

1,0 1,0

0,0

0,01,00,0

Page 20: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Codifica e tabella delle transizioni di M3

xn

Q1nQ2

n 0 1

Q1n+1 Q2

n+1 , zn

Page 21: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Sintesi di M3 con flip-flop D

0

1

00 01 11 10xQ1Q2

0 0 0 0

1 1 1 1

0

1

00 01 11 10xQ1Q2

0 0 1 1

0 0 1 1

0

1

00 01 11 10xQ1Q2

0 0 0 0

0 0 1 0

D1n

= Q1n+1 = xn D2

n = Q2n+1 = Q1

n zn = xn. Q1n.Q2

n

Ipotesi: reti minime di tipo SP

D1 Q1 D2 Q2

z

x

ck

Verifica del comportamento:Q1

n+1 = xn

Q2 n+1 = Q1

n = xn-1

z n = (x. Q1. Q2)

n = xn . xn-1. xn-2

Page 22: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Complessità

Complessità di una rete sequenziale sincrona - Se si assumonocome componenti primitivi i gate ed i flip-flop e se si assumecome indice di complessità il n° di componenti, la complessità della realizzazione di un certo comportamento dipende: • dal tipo di grafo con cui lo si è descritto,• dalla codifica adottata per gli stati interni, • dal tipo di flip-flop impiegato sulle retroazioni.

M1 2 D 4 M3 2 D 1

grafo n° flip-flop tipo di flip-flop n° di gate

Page 23: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Esercizio 7.2

Una rete sequenziale sincrona programmabile deve riconoscere, generando un impulso di durata T0 sulla sua uscita z, il verificarsi di un fronte sul suo ingresso x.La rete è dotata di due bit di programmazione p1 e p2. Predisponendo p1=1, p2 =0, la rete deve generare un impulso per ogni fronte di salita di x. Con p1=0, p2 =1, la rete deve generare un impulso per ogni fronte di discesa di x. Con p1=1, p2 =1, l’attivazione temporanea dell’uscita deve verificarsiin corrispondenza sia dei fronti di salita, che di discesa.Progettare la rete ipotizzando che la configurazione p1=0, p2 =0 siavietata.

Page 24: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

II° esempio: il semaforo (1)

t

u(t) = P(t)

colore

Specifiche: rosso = 60 sec. giallo = 20 sec. verde = 60 sec.

Ipotesi:T0 = 20 sec.

T0 T1

20 sec.

T2

20 sec.

T3

20 sec.

T5

20 sec.

T4

20 sec.

T6

20 sec.

20 sec.

Page 25: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

II° esempio: codifica e funzioni

I 7 stati possono essere codificati con i primi 7 numeri binari.

y1 y2 y3

T0 0 0 0 T1 0 0 1 T2 0 1 0 T3 0 1 1 T4 1 0 0 T5 1 0 1 T6 1 1 0

z1 z2 z3

verde 1 0 0 giallo 0 1 0 rosso 0 0 1

Funzionedi uscita

sn un

0 0 0 1 0 00 0 1 1 0 00 1 0 1 0 00 1 1 0 1 01 0 0 0 0 11 0 1 0 0 11 1 0 0 0 1

sn sn+1

0 0 0 0 0 10 0 1 0 1 00 1 0 0 1 10 1 1 1 0 01 0 0 1 0 11 0 1 1 1 01 1 0 0 0 0

Funzionedi stato

Page 26: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

II° esempio: sintesi con ff D e reti minime SP

(y1 y2 y3) n (y1 y2 y3)

n+1 (z1 z2 z3) n

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

0 0 0 1 01 1 1 - 0y1

n+1 = (y1 y2’ + y2 y3) n

00 01 11 10y1 n

y2 ny3

n

0 0 1 0 11 0 1 - 0y2

n+1= (y3 y2’ + y1’ y2 y3’) n

00 01 11 10y1 n

y2 ny3

n

0 1 0 0 11 1 0 - 0y3

n+1= (y2’ y3’ + y1’ y3’) n

00 01 11 10y1 n

y2 ny3

n

0 1 1 0 11 0 0 - 0z1

n = (y1’ y2’ + y1’ y3’) n

00 01 11 10y1 n

y2 ny3

n

0 0 0 1 01 0 0 - 0z2

n = (y2 y3 )n

00 01 11 10y1 n

y2 ny3

n

0 0 0 0 01 1 1 - 1z3

n = (y1) n

00 01 11 10y1 n

y2 ny3

n

Page 27: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Esercizio 7.3

Facendo riferimento al II° esempio di sintesi 1 - progettare i segnali di comando per le lampade di entrambe le direttrici di marcia assumendo di avere a disposizione un DECODER 3:8

Page 28: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

III° esempio: conteggio di eventi

La rete sequenziale sincrona di figura deve contare modulo due gli intervalli di tempo in cui si verifica x = 0. Il risultato del conteggio appare su z e viene aggiornato solo al termine di ogni intervallo in cui non si è contato (x = 1). I valori z = 0 e z = 1 indicano rispettivamente che la rete ha visto un numero “pari” ed un numero “dispari” di intervalli con x = 0.

R.S.Sx zck

x

z

Page 29: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

III° esempio: grafo degli stati

1,1

d

1,0

a

0,0

0,0

b c0,0

1,0

1,0

0,1

0,1

e f

1,1

0,1

1,1

Page 30: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

III° esempio: macchina minima

xstato 0 1 a b,0 a,0 b c,0 d,0 c b,0 a,0 d e,1 d,1 e f,1 a,1 f e,1 d,1

Stati indistinguibili - Sono detti indistinguibili stati a partire dai quali il comportamento della macchina è identico per qualsiasi sequenza di ingresso (esempio: a c, d f).

Sostituendo una “classe” di stati indistinguibili con un unico stato si ottiene una macchina equivalente a quella considerata.

xstato 0 1 a b,0 a,0 b a,0 d,0 d e,1 d,1 e d,1 a,1

a = {a,c}

d = {d,f}

Page 31: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Quarto esempio: contatore BCD con ingresso di enable e autoinizializzazione in max 2 clock

0

0

1

0

1

2

0

1

3

01

4

01

5

01

6

0 17

0

1

8

0

1

9

0

1

15

0

14

01 1

13

0

12

01 1

11

0

10

011

1

Contatore BCDcon ENABLE

e conautoinizializzazione

Page 32: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

tabella delle transizioni X

QD QC QB QA 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0

QDn+1 QC

n+1 QBn+1 QA

n+1

Per X = 1 eS = 0000, 0001, .., 1001si ha:(S)2

n+1 = (S+1)2n mod 10

Per X = 0 si ha(S)2

n+1 = (S)2n

Un ingresso di questo tipo è denominato comando di ENABLE.

Page 33: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Il procedimento di analisi

Il procedimento di analisi di una rete sequenziale sincronaè formato da 4 passi e consente di dedurne il comportamento dallo schema logico:1: analisi dei segnali di eccitazione di ciascun flip-flop,2: deduzione delle variabili di stato futuro,3: individuazione della tabella delle transizioni,4: tracciamento e studio del grafo degli stati.

Page 34: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

espressioni dello stato futuro

Yn+1 = Dn

Tramite l’equazione caratteristica si passa dalle espressioni dellefunzioni di eccitazione a quelle delle variabili di stato futuro.

• Dunque, per ricavare la tabella delle transizioni di una RSS assegnata è sufficiente costruire le mappe associate alle espressioni di Dn

• Dalla tabella delle transizioni si ricava il grafo degli stati

Page 35: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Esempio: registro a scorrimento

D Q Q’

D Q Q’

D Q Q’

Q0

Q1

Q2

x

ck

Q0n+1 = x n

Q1n+1 = Q0

n

Q2n+1 = Q1

n

(Q2 Q1 Q0)n xn = 0 xn = 1

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

(Q2 Q1 Q0)n+1

Page 36: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Grafo degli stati

0

000

1

100 1101

1

111

1

011

0

0010

0

01 101010

110

1

0

0

Ogni stato è codificato dalla configurazione corrispondente agli ultimitre valori dell’ingresso. Ad ogni colpo di clock il bit in ingresso entrain Q0, il bit in Q0 “scorre” o “trasla” su Q1, il bit in Q1 su Q2

Page 37: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

… e comportamento

APPLICAZIONI• linea di ritardo• riconoscitore di sequenze• convertitore serie/parallelo

D Q Q’

D Q Q’

D Q Q’

ck

x n-1x n x n-2 x n-3

Page 38: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Modulosequenziale

Modulosequenziale

ff gate ff gate

gate ff gate

gate ff

Modulosequenziale

Per fare macchine complesse,occorrono componenti complessi! M. de Lapalisse

Modulosequenziale

Modulosequenziale

Modulosequenziale

Progetto logico e famiglie logiche

Page 39: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

7.3Il registro di stato

Page 40: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Il registro per lo stato interno

Retecombinatoria

1x1

xn

y1

yk

z1

zm

Y1

Yk

m

t1

tk

Q D

Q Df = 1/T0

Registro di stato o registro accumulatore - Insieme di flip-flop, azionati dallo stesso clock e singolarmente dotati di un ingresso e di una uscita.

L’applicazione tipica di questo circuito integrato è la realizzazione delle retroazioni di una rete logica sequenziale sincrona.

Page 41: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

I comandi dell’accumulatore

Tre esigenze del registro accumulatore :1- inizializzazione,2- aggiornamento, 3- memorizzazione.

Retecombinat.

Registro

Una soluzione molto comoda: avere nel registro anche unaparte combinatoria in grado di interpretare due comandi.

WE RES esigenza descrizione - 1 1 R 0 1 0 2 R G(R,I) 0 0 3 R R

Page 42: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

I comandi WE e RES (Registro con N ff D)

Per i = 0, 1, .., N-1Qi

n+1 = (RES’.(Ii WE + Qi . WE’))n

N.B. - Per il reset di un registrosi può anche usare il comando

asincrono CL dei suoi flip-flop.

WEn, In

RESn,Qn 00 01 11 10 00 0 0 1 0 01 1 1 1 0 11 0 0 0 0 10 0 0 0 0 Qn+1

Mux0 z1 A

Ii

WE RES’ CK

Di Qi

Page 43: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

ALU e accumulatore

Q0 D0

Q1 D1

Q2 D2

Q3 D3

RES WE

ALU

operando

operando

risultato

operazione iniz./aggiorn./mem.

Page 44: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Esercizio 7.5

Modificare lo schema del contatore BCD al fine di disporre diun comando sincrono di RESET. In caso di contemporaneaattivazione del RESET e del ENABLE, deve prevalere il primo.

Page 45: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

7.4Contatore

Page 46: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Il contatore binario x16

CI 4 Bita0 F. A.a1

a2 s0

a3 s1

b0 s2

b1 s3 b2 COb3

Q3 D3

Q2 D2

Q1 D1

Q0 D0

10000

(S)2n = (Q3 Q2 Q1 Q0)2

n

S+1 mod 16

s n sn+1

0000 00010001 00100010 00110011 01000100 01010101 01100110 01110111 10001000 10011001 10101010 10111011 11001100 11011101 11101110 11111111 0000

Page 47: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Forme d’onda

In un contatore binario, l’uscita Q del flip-flop che memorizzail bit di peso 2i è un’onda quadra con periodo doppio di quella presente sull’uscita Q del flip-flop che memorizza il bit di peso 2i-1 .Il primo flip-flop divide per due la frequenza del clock.

ck

Q0

Q1

Q2

Q3

Page 48: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Una rete più semplice per l’incremento

1

0 Q0

Q0 R

0

CI

ab

S

R

r

ab

S

R

0 Qi

Qi R

0

Page 49: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Periodo del clock e complessità della rete

D0 Q0

D1 Q1

D2 Q2

D3 Q3

1

CO = Q3. Q2. Q1. Q0

J0 Q0

K0

J1 Q1

K0

J2 Q2

K2

J3 Q3

K3

1

CO = Q3. Q2. Q1. Q0

T 0 r + 3.g + su T 0 r + 2.g + su

Page 50: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Esercizio 7.6

Progettare la cella i-esima di un contatore binario dotato di comando “up/down”. Quando U/D’ = 1, il contatore deve incrementare di una unità il numero binario che rappresenta il suo stato; quando il comando vale 0, il numero deve essere decrementato.

contatore COU/D’ binario x16 QA QB QC QD

Page 51: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Aumento della base di conteggio

EN contatore CORES binario x16QA QB QC QD

QD QC QB QA “15”

EN contatore CORES binario x16QA QB QC QD

EN contatore CORES binario x16QA QB QC QD

1

QA QB QC QD QE QF QG QH

contatore binario x256

Page 52: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Diminuzione della base di conteggio

EN contatore CORES binario x16QA QB QC QD

rete che riconoscela presenza del numero X

X-2

clock

stato

RESET

X-1 X 1

La nuova basedi conteggio è X + 1

0

Page 53: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Esempio: sintesi del RESET per ottenere base 11

QBn, QA

n

QDn,QC

n 00 01 11 10 00 01 11 10 RES n

0 0 0 00 0 0 0

0 0 - 1- - - -

QDQC QBQA

mintermine

QD QB

rete minima

QD QB QD QC

autoinizializzazionein un solo clock

Page 54: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

I° esempio di sintesi con contatori

Una rete sequenziale sincrona ha un ingresso X che assume ilvalore 1 molto di rado e comunque sempre per un solo periododi clock. L’uscita Z deve sia ritardare l’impulso di ingresso diquattro unità di tempo, sia raddoppiarne la durata.

ck

X

Z

Page 55: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

I° esempio: grafo degli stati

0,0 1,0 0,0 0,0 0,0 0,1

0,1

Il comportamento è quello di un contatore con base 6 che compieun intero ciclo per ogni evento X = 1

Per realizzarlo si può impiegare un contatore binario x8 dotato dicomandi di ENABLE e di RESET.

Page 56: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

I° esempio: progetto di EN, RES, Z

stato X=0 X=1 Zriposo 000 000 001 0

001 010 --- 0010 011 --- 0011 100 --- 0100 101 --- 1101 000 --- 1110 --- --- -111 --- --- -

stato X=0 X=1000 0,0,0 1,0,0001 1,0,0 -,-,-010 1,0,0 -,-,-011 1,0,0 -,-,-100 1,0,1 -,-,-101 -,1,1 -,-,-110 -,-,- -,-,-111 -,-,- -,-,- EN, RES, Z

EN = X + (QC +QB +QA) = X + (QC’QB’QA’)’RES = QC QA

Z = QC

Page 57: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

I° esempio: schema logico

EN contatoreRES binario x8QA QB QC

X

Z

Page 58: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

II° esempio: orologio digitale

A partire da un oscillatore a 32.768 Hz progettare un orologio digitale in grado di visualizzare ore, minuti e secondi tramite sei display a 7 segmenti

Oscillatore

32.768 Hz

BIN x 32768

Q0……. Q14

(divisore di frequenza)

1 Hz

BCD x 60ENZ

Qi

(secondi)

BCD x 60ENZ

Qi

(minuti)

BCD x 24ENZ

Qi

(ore)

7 7 7

Trascodificada BCD

a 7 segmenti

Trascodificada BCD

a 7 segmenti

Trascodificada BCD

a 7 segmenti

4 4 4

1

7 7 7

Trascodificada BCD

a 7 segmenti

Trascodificada BCD

a 7 segmenti

Trascodificada BCD

a 7 segmenti

4 4 4

Page 59: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

0

EN

II° esempio: il contatore dei minuti/secondi

BCD x 60

EN

Z

Qi

BCDRES

ZQA QB QC QD

(decine)EN

BCDRES

ZQA QB QC QD

(unità)EN

Z

Qi

BCD

RES

ZQA QB QC QD

EN

Z = QD• QA

“59”.EN

Page 60: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

II° esempio: il contatore delle ore

Qi

BCD x 24

EN

Z

Qi

EN

“23”.EN

Z

BCDRES

ZQA QB QC QD

(unità)EN

BCDRES

QA QB QC QD

Z(decine)

EN

Page 61: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Esercizio 7.7

Ampliare il progetto dell’orologio con• il conteggio dei mesi,• il conteggio degli anni.

Come si può predisporre data e ora?

Page 62: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

III° esempio: watch dog

Start

Dato X

ck

Stato 0 X X-1 2 1 0

Fine

X.T0

Page 63: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

III° esempio: schema logico

IA IB IC ID LD contatoreEN binario ZU/D’ x16

QA QB QC QD

“15”.(U/D’) + “0”.(U/D’)’

X

Start

0

Fine

Page 64: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

7.5Registro

a scorrimento

Page 65: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Shift register

Shift register o registro a scorrimento - Rete sequenziale sincronaformata da N flip-flop D disposti in cascata.

N-bit shift registerSI (serial input) (serial output) SOQ0 Q1 …………………………. QN-1

D Q Q’

D Q Q’

D Q Q’

ck

Page 66: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Universal shift register

APPLICAZIONI• linea di ritardo• convertitore S/P e P/S • conteggio• memoria a circolazione• rotazione verso destra/sinistra • moltiplicazione/divisione per 2i

0 MUX123 A0 A1

Qi

Qi-1

Qi+1

Ii

D Q Q’

Qi

A0n A1

n Qin+1

hold 0 0 Qin

right 1 0 Qi-1n

left 0 1 Qi+1n

load 1 1 Iin

Page 67: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Esempio: conteggio

N-bit shift registerSI (serial input) (serial output) SOQ0 Q1 …………………………. QN-1

N-bit shift registerSI (serial input) (serial output) SOQ0 Q1 …………………………. QN-1

Base: NCodice: 1 su N

Inizializzazione!

Base: 2NCodice: JohnsonInizializzazione!

Page 68: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Esempio: conversioni S/P e P/S

N-bit shift register A0 A1 SI (serial input) Q0 Q1 …………………………. QN-1

I0 I1 …………………………. IN-1

N-bit shift registerA0 A1 (serial output) SO

S/H’ 0

1 S’/L

S/P

P/S

Page 69: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

7.6Buffer

Page 70: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Registro buffer

Applicazioni tipiche: • memorizzazione di un dato di ingresso di N bit, • memorizzazione di un dato di uscita di N bit.

Unitàfunzionale

X

Registro buffer (o a latch)- Insieme di N latch CD azionati dallo stesso comando e singolarmente dotati di un ingresso e di una uscita.

Buffer1

Ci: B1 X;

I U

Buffer2

Cu: B2 U;

Y

Page 71: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Il registro buffer wr

Q0

D0

Q1

D1

QN-1

DN-1

C Q

D

C Q

D

C Q

D

.. ed il BUS rd D0 D1 DN-1

Page 72: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.
Page 73: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.
Page 74: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Architettura e Registri buffer

Protocollo perl’uso del BUS

Processore

AR

DR Memoria principale

Cella

Unità di ingressoStato

Dato

Unità di uscitaStato

DatoDirect Memory Access

AR*

DR*

Esempio di accesso diretto:AR* memory address;DR* M(AR*);AR* I/O address;I/O(AR*) DR*;

Page 75: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Random Access Memory

Registro # 0

Registro # 1

Registro # 2n - 2

Registro # 2n - 1

Selet./

Distr.

Dato in• scrittura• lettura

Comando• WR (scrittura)• RD (lettura)

Indirizzo di n bitper scegliere il registro

.

.

.

N.B. Al posto del termine“registro” si usa di normail termine “cella”.

Page 76: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

C Qj

D

Cella di indirizzo “i”

A0 A1 An-1 WR RD D 0 Dj DN-1

DEC

i

La RAM

Page 77: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

I cicli di lettura e di scrittura

• Le celle di una RAM sono registri buffer• I bit di indirizzo, tramite il DEC, scelgono una cella alla volta• I comandi WR, RD stabiliscono se l’accesso è “in lettura” o “in scrittura”.

LETTURA SCRITTURAAddresssignals

RD

WR

Datasignals

tempo di accesso tempo di accesso

Page 78: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Decoder e Matrici di decodifica

C D “decodifica di colonna”

• Proprietà associativa del AND• Minimo (n°gate + n°ingressi)

A

B

“decodifica di riga”

Page 79: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.
Page 80: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.
Page 81: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

Istruzioni a tre indirizzi

Opcode address address address

Indirizzodel

primooperando

Indirizzodel

secondooperando

Indirizzodel

risultato

Page 82: 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer Esercizi e applicazioni di Reti sincrone.

ALU e RAM

ALU

B1

B2

RAM

Opcode address address address

1 2 3 RD WR1 2 3 MUX