820 likes | 1.03k Views
Esercizi e applicazioni di Reti sincrone. 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer. istanti di sincronismo e intervalli elementari di funzionamento. t. (n-1)T 0. nT 0. (n+1)T 0. ingresso. i n. stato presente.
E N D
Esercizi e applicazioni di Reti sincrone 1 - Campionamento 2 - Sintesi & Analisi 3 - Accumulatore 4 - Contatore 5 - Registro a scorrimento 6 - Buffer
istanti di sincronismo e intervalli elementari di funzionamento t (n-1)T0 nT0 (n+1)T0 ingresso in stato presente sn sn+1 uscita un=F(i,s)n stato futuro Sn=G(i,s)n Il modello della rete sincrona: comportamento
ingresso i(t) uscita u(t) = F(i(t),s(t)) x1 x2 xn z1 z2 zm stato presente s(t) stato futuro S(t) = G(i(t),s(t)) Ritardo T0 yk y2 y1 Yk Y2 Y1 Ritardo T0 Ritardo T0 s(t+ T0) = S(t) Il modello della rete sincrona: struttura Rete logica combinatoria ideale
7.1 Campionamento
D Q Q’ clock C (n-1) . T0 n . T0 (n+1) .T0 ingresso D D n-1 D n D n+1 uscita Q Q n-1 Q n Q n+1 Il flip-flop D come “ritardo” di durata T0 Q n+1 = D n equazione caratteristica del FF “D” D delay
x1 xn y1 yk Rete combinatoria z1 zm Y1 Yk t1 tm t1 tk Q D f = 1/T0 Q D Rete sequenziale sincrona a flip-flop D z in = F i (x 1,.., x n , y 1 ,.., y k)nper i = 1, .. , m y in+1 = D i n = Y i n = G i (x 1,.., x n , y 1 ,.., y k)nper i = 1, .. , k
RC ff t clock T 0 t R + t RC + t SU t SU: tempo min. di set up dei FF t RC: tempo max. di risposta della rete comb. t R: tempo max. di risposta dei FF Campionamento dei comandi Vincolo per il corretto funzionamento
Addendi in serie Somma in serie t t a b r FA s R r3 a1 b1 r1 s1 r2 a2 s2 r2 b0 a0 0 s0 r1 b2 Q D Addizione in serie Frequenza e fase uguali a quelle dei bit seriali. T 0 t R + t FA + t SU Riporto inizialmente a “zero”
EN A B a0 a3 an-1 a1 a2 b0 b3 bn-1 b1 b2 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. Come occorre impiegarlo per avere una corretta esecuzione della somma e per disporre di un flag di validità dei bit sull’uscita s ?
7.2 Sintesi & Analisi
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.
1 x 0 1 z 0 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 ” N.B. - Reti che classificano stringhe di valori di ingresso consecutivi sono usualmente dette “riconoscitori di sequenze”.
1,1 x, z 0,0 1,1 C B D 1,0 1,0 A 0,0 I° esempio: il grafo degli stati M1 • Si traccia la parte di grafo che riconosce la sequenza assegnata, • specificando su ogni ramo il valore d’uscita (durata T0). • Si completa il grafo, prendendo in considerazione tutte le altre • possibili situazioni e curando di renderlo “strettamente connesso” • (ogni stato deve poter essere raggiunto da ogni altro).
M2 M3 x, z 0,0 1,1 x, z 0,0 1,1 1,0 1,0 b g c a a b d 0,0 1,0 1,0 1,0 0,0 0,0 0,0 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).
x stato 0 1 A A,0 B,0 B A,0 C,0 C A,0 D,1 D A,0 D,1 I° esempio: tabella di flusso di M1 N.B. In una rete sequenziale sincrona ogni stato resta presente per almeno un periodo di clock, ogni cambiamento di ingresso avviene all’inizio di tali intervalli ed ogni transizione si verifica al termine. La stabilità dello stato presente non è una condizione necessaria per la variazione di ingresso. E’ proprio la assenza di questo vincolo che consente di specificare comportamenti di tipo 2 o di tipo 3.
xn y1ny2n 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 y2n+1, zn I° esempio: codifica degli stati Codifica degli stati - In una rete sequenziale sincrona la codifica degli stati è arbitraria (2n M, naturalmente!). Il campionamento a regime dei segnali di stato elimina infatti a priori il problema di errate interpretazioni causate dal loro iniziale disallineamento.
Qn+1 QnJnKn 0 0 0 - 1 1 - 0 1 0 1 - 0 1 - 1 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. Dn = Qn+1 Le funzioni di eccitazione del flip-flop di tipo JK vanno opportunamente dedotte da quella della variabile di stato futuro.
y1y2 y1y2 y1y2 x x x 00 00 00 01 01 01 11 11 11 10 10 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 0 1 1 0 1 1 1 y1n+1 y2n+1 zn D1 = y1n+1 = x.y2’ D2 = y2n+1 = x.y2 + x.y1 z = x.y2 I° esempio: sintesi di M1 con flip-flop D 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 alee statiche e dinamiche.
x, z 0,0 1,1 x stato 0 1 a a,0 b,0 b d,0 g,0 g d,0 g,1 d a,0 b,0 1,0 g a b d 0,0 1,0 1,0 0,0 0,0 Grafo e tabella di flusso di M3
xn Q1nQ2n 0 1 a:00 00,0 10,0 b:10 01,0 11,0 g:11 01,0 11,1 d:01 00,0 10,0 Q1n+1 Q2n+1 , zn Codifica e tabella delle transizioni di M3
Q1Q2 Q1Q2 Q1Q2 x x x 00 00 00 01 01 01 11 11 11 10 10 10 D2 Q2 D1 Q1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 1 1 1 1 0 1 1 1 1 z x ck Sintesi di M3 con flip-flop D Ipotesi: reti minime di tipo SP D1n= Q1n+1 = xn D2n = Q2n+1 = Q1n zn = xn. Q1n.Q2n Verifica del comportamento: Q1 n+1 = xn Q2 n+1 = Q1 n = xn-1 zn = (x. Q1. Q2)n = xn . xn-1. xn-2
grafo n° flip-flop tipo di flip-flop n° di gate M1 2 D 4 M3 2 D 1 Complessità • Complessità di una rete sequenziale sincrona - Se si assumono • come componenti primitivi i gate ed i flip-flop e se si assume • come 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.
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 verificarsi in corrispondenza sia dei fronti di salita, che di discesa. Progettare la rete ipotizzando che la configurazione p1=0, p2 =0 sia vietata.
colore u(t) = P(t) t 20 sec. 20 sec. 20 sec. T1 T2 T3 20 sec. T6 T5 T4 20 sec. 20 sec. 20 sec. II° esempio: il semaforo (1) Specifiche: rosso = 60 sec. giallo = 20 sec. verde = 60 sec. Ipotesi: T0 = 20 sec. T0
sn un 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 sn sn+1 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 0 0 0 Funzione di stato Funzione di uscita II° esempio: codifica e funzioni z1 z2 z3 verde 1 0 0 giallo 0 1 0 rosso 0 0 1 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
(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 y2 ny3 n y2 ny3 n 00 01 11 10 00 01 11 10 y1 n y1 n 0 0 0 0 0 1 1 1 - 1 z3 n = (y1)n 0 0 0 1 0 1 0 0 - 0 z2 n = (y2 y3 )n y2 ny3 n y2 ny3 n 00 01 11 10 y1 n 00 01 11 10 y1 n y2 ny3 n 0 0 1 0 1 1 0 1 - 0 y2 n+1= (y3 y2’+ y1’y2 y3’)n 0 0 0 1 0 1 1 1 - 0 y1 n+1 = (y1 y2’+ y2 y3)n 00 01 11 10 y1 n 0 1 0 0 1 1 1 0 - 0 y3 n+1= (y2’ y3’ +y1’ y3’) n y2 ny3 n 00 01 11 10 y1 n 0 1 1 0 1 1 0 0 - 0 z1 n = (y1’y2’+ y1’y3’)n II° esempio: sintesi con ff D e reti minime SP
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
R.S.S x z ck x z 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.
1,0 0,0 b c e f 1,1 1,0 0,0 a 1,1 0,0 0,1 1,0 0,1 d 0,1 1,1 III° esempio: grafo degli stati
x stato 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 x stato 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} III° esempio: macchina minima 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.
1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 e con autoinizializzazione 1 6 0 4 1 8 7 10 11 12 15 14 13 2 3 5 9 1 1 1 1 1 1 1 1 1 1 1 Quarto esempio: contatore BCD con ingresso di enable e autoinizializzazione in max 2 clock Contatore BCD con ENABLE
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 Per X = 1 e S = 0000, 0001, .., 1001 si ha: (S)2n+1 = (S+1)2n mod 10 Per X = 0 si ha (S)2n+1 = (S)2n Un ingresso di questo tipo è denominato comando di ENABLE. QDn+1 QCn+1 QBn+1 QAn+1 tabella delle transizioni
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.
espressioni dello stato futuro Tramite l’equazione caratteristica si passa dalle espressioni delle funzioni di eccitazione a quelle delle variabili di stato futuro. Yn+1 = Dn • 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
Q0 Q1 Q2 x ck D Q Q’ D Q Q’ D Q Q’ (Q2 Q1 Q0)nxn =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 Esempio: registro a scorrimento Q0n+1 = x n Q1n+1 = Q0n Q2n+1 = Q1n
1 0 1 1 1 0 1 1 1 0 010 0 0 0 1 0 011 101 111 110 100 000 001 0 Grafo degli stati Ogni stato è codificato dalla configurazione corrispondente agli ultimi tre valori dell’ingresso. Ad ogni colpo di clock il bit in ingresso entra in Q0, il bit in Q0 “scorre” o “trasla” su Q1, il bit in Q1 su Q2
D Q Q’ D Q Q’ D Q Q’ ck … e comportamento x n x n-1 x n-2 x n-3 • APPLICAZIONI • linea di ritardo • riconoscitore di sequenze • convertitore serie/parallelo
Per fare macchine complesse, occorrono componenti complessi! M. de Lapalisse gate ff gate ff gate ff gate ff gate Progetto logico e famiglie logiche Modulo sequenziale Modulo sequenziale Modulo sequenziale Modulo sequenziale Modulo sequenziale Modulo sequenziale
7.3 Il registro di stato
x1 xn y1 yk Rete combinatoria z1 zm Y1 Yk t1 tm t1 tk Q D f = 1/T0 Q D Registro di stato o registro accumulatore - Insieme di flip-flop, azionati dallo stesso clock e singolarmente dotati di un ingresso e di una uscita. Il registro per lo stato interno L’applicazione tipica di questo circuito integrato è la realizzazione delle retroazioni di una rete logica sequenziale sincrona.
Rete combinat. Registro WE RES esigenzadescrizione - 1 1 R ¬ 0 1 0 2 R ¬ G(R,I) 0 0 3 R ¬ R I comandi dell’accumulatore Tre esigenze del registro accumulatore : 1- inizializzazione, 2- aggiornamento, 3- memorizzazione. Una soluzione molto comoda: avere nel registro anche una parte combinatoria in grado di interpretare due comandi.
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 Di Qi Mux 0 z 1 A Ii WE RES’ CK I comandi WE e RES (Registro con N ff D) Per i = 0, 1, .., N-1 Qin+1 = (RES’.(Ii WE + Qi . WE’))n N.B. - Per il reset di un registro si può anche usare il comando asincrono CL dei suoi flip-flop.
operazione iniz./aggiorn./mem. operando risultato ALU operando Q0 D0 Q1 D1 Q2 D2 Q3 D3 RES WE ALU e accumulatore
Esercizio 7.5 Modificare lo schema del contatore BCD al fine di disporre di un comando sincrono di RESET. In caso di contemporanea attivazione del RESET e del ENABLE, deve prevalere il primo.
7.4 Contatore
1 0 0 0 0 CI 4 Bit a0 F. A. a1 a2 s0 a3 s1 b0 s2 b1 s3 b2 CO b3 s n sn+1 0000 0001 0001 0010 0010 0011 0011 0100 0100 0101 0101 0110 0110 0111 0111 1000 1000 1001 1001 1010 1010 1011 1011 1100 1100 1101 1101 1110 1110 1111 1111 0000 Q3 D3 Q2 D2 Q1 D1 Q0 D0 Il contatore binario x16 S+1 mod 16 (S)2n = (Q3 Q2 Q1 Q0)2n
ck Q0 Q1 Q2 Q3 Forme d’onda In un contatore binario, l’uscita Q del flip-flop che memorizza il 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.
CI a b r a b S R S R Una rete più semplice per l’incremento 1 0 Q0 Q0 R 0 0 Qi Qi R 0
D0 Q0 D1 Q1 D2 Q2 D3 Q3 1 J0 Q0 K0 1 J1 Q1 K0 J2 Q2 K2 J3 Q3 K3 CO = Q3. Q2. Q1. Q0 CO = Q3. Q2. Q1. Q0 T 0 t r + 3.t g + t su T 0 t r + 2.t g + t su Periodo del clock e complessità della rete
contatore CO U/D’ binario x16 QA QB QC QD 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.