Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Metodologie e tecniche di progetto (di base) per la realizzazione dei dispositivi di elaborazione digitale
Reti logiche A
All. Informatici
Sintesi e ottimizzazione dei circuiti combinatori Il concetto di stato nei sistemi digitali Sintesi dei circuiti sequenziali sincroni Componenti programmabili Introduzione alle metodologie di progetto automatico (VHDL e ambiente)
-2-
Progetto architetturale
unit funzionali, registri e interconnessioni (percorsi di dati e segnali di controllo) descrizione RTL (Register Transfer Level)
Progetto HW
data la specifica del problema, identificare un metodologia di soluzione scegliendo in modo appropriato le unit funzionali necessarie per soddisfare vincoli di progetto quali area di silicio, costi, tempi, consumo di potenza..
-4-
Sintesi
Ad ogni passaggio da un livello di astrazione pi elevato ad uno inferiore corrisponde una fase di sintesi
Sintesi Comportamentale:
Traduzione da HDL a net-list da net-list a net-list ottimale da net-list ottimale a net-list ottimale di blocchi
Traduzione
Schematico
Ottimizzazione
Schematico
Sintesi Logica:
Sintesi Fisica:
Gestisce vincoli di progetto (area, ritardi, potenza, testabilit, limitazioni di fan-in e fan-out) Produce ottimizzazioni area-tempo di alta qualit, comparabili con quelle manuali Adattabile ad ampie categorie di librerie e tecnologie
-6-
(Interpretazione digitale dei segnali analogici) Dispositivi fisici (transistors) Switch Tabelle della verit Algebra Booleana Porte logiche Macchine a stati finiti Forme donda Linguaggi di descrizione dello hardware Descrizioni Register-transfer Specifiche astratte concorrenti
-7-
Sintesi combinatoria
Introduzione alla minimizzazione: espressioni e mappe di Karnaugh Minimizzazione esatta: Quine-McCluskey a singola uscita e a pi uscite Introduzione alla sintesi euristica a 2 livelli e multilivello
II PARTE
Sintesi sequenziale
Sintesi e ottimizzazione di macchine sincrone a stati finiti Progetto di contatori sincroni Componenti programmabili: architettura e sintesi
-8-
Materiale didattico
Testi consigliati
F.Fummi, M.G.Sami, C.Silvano Progettazione digitale - McGraw Hill - Capp. 2.9-2.11, 3, 4.1-4.4, 5, 6.1-6.5, 9, A2 R.Katz Contemporary Logic Design - The Benjamin/Cummings Publishing Company, 1994 - Capp. 1-10 C.Bolchini, C.Brandolese, F.Salice, D.Sciuto Reti logiche Apogeo
-9-
Algebra di Boole
Cenni allAlgebra di Boole
Introduzione Rappresentazione di una funzione combinatoria Propriet dellalgebra di commutazione Forme canoniche Teorema di espansione di Shannon
una operazione sull'insieme S={s1,s2,...} una funzione che da SxS (S cartesiano S) porta in S. Quindi, ad ogni coppia ordinata appartenente ad SxS corrisponde un elemento di S, cio : SxS S. Alcune considerazioni:
Loperazione * (di moltiplicazione) sullintervallo [0,1] consente di ottenere un valore incluso in [0,1] a partire da elementi inclusi in [0,1] La sottrazione sullinsieme dei naturali non una operazione.
Es: 5-10 non appartiene ai naturali.
Sistema Algebrico:
-2-
B l'insieme su cui vengono definite le operazioni (supporto) +,*, sono le operazioni binarie OR e AND e loperazione unaria NOT 0,1 sono elementi speciali di B.
Tra tutte le algebre booleane, l'algebra booleana a due valori........ la pi utile. Essa la base matematica della analisi e progetto di circuiti di commutazione che realizzano i sistemi digitali.
[Lee, S.C., Digital Circuit And Logic Design. Englewood Cliffs, NJ: Prentice-Hall, 1976]
Assiomi Algebra delle classi, lalgebra delle funzioni proposizionali, lalgebra booleana aritmetica e lalgebra a due valori.
-3-4-
Esempio:
Vale per la somma rispetto al prodotto come per il prodotto rispetto alla somma non esiste precedenza fra le due operazioni, occorre sempre immaginare le parentesi sottintese intorno a ogni applicazione di unoperazione.1
x = 0 se e solo se x 1 x = 1 se e solo se x 0
Le operazioni di disgiunzione (+) e congiunzione () sono commutative, cio per ogni elemento a,b B a+b = b+a ab = ba Esiste un elemento neutro (o identit) rispetto a + (indicato con 0) e un elemento neutro rispetto a (indicato con 1), cio: a+0=a a1=a Le due operazioni sono distributive rispetto allaltra, cio per ogni a,b,c B, risulta: a+(bc)=(a+b)(a+c) a(b+c)=(ab)+(ac) Per ogni a B esiste lelemento a B, detto negazione logica o complemento di a, tale che: a+a=1 aa=0
-6-
0 0 1 1 1 1
0 0 0 1 0 1
Mentre loperazione a un solo elemento (unary operation) detta complementazione o negazione (NOT) definita come
0 1 1 0
Nota: il simbolo associato al NOT spesso indicato come (esempio x), !(esempio !x) o sopra segnando la variabile.
-5-
a*0=0 a*a=a
((a)) =
a (a*b) = a+b
2: idempotenza
7: Leggi di De Morgan
(a+b) = a*b
8: consenso
4: associativa
a*(b*c)=(a*b)*c a*(a+b)=a
5: assorbimento
9: Semplificazione
-7-
-8-
Ogni identit deducibile dai postulati dellalgebra di Boole trasformata in unaltra identit se:
1. Ogni operazione + viene sostituita da una operazione * e vice versa. 2. Ogni elemento identit 0 viene sostituito da un elemento identit 1 e vice versa.
Esempio: (assorbimento)
Si sostituisce a con a*1 Dalla propriet della negazione (b+b=1) applicata da destra verso sinistra si sostituisce a1 + ab con a(b+b)+ab Applicando la propriet distributiva si ottiene ab+ab+ab Applicando la propriet di idempotenza da destra verso sinistra al termine ab si ottiene ab + ab + ab + ab Applicando la propriet distributiva da destra verso sinistra si ottiene a(b+b) + b(a + a) Applicando la propriet dellinverso si ha infine a*1 + b*1= a + b
a+(a*b)=a a*(a+b)=a
-9-
- 10 -
Una tabella della verit specifica la relazione che esiste tra ogni elemento del dominio di f ({0,1}n) e la corrispondente immagine (elemento del codominio) a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f(a,b,c) 0 1 0 1 1 1 0 1
- 11 -
un letterale una coppia (Variabile,Valore) (x,1) indicato come x (variabile in forma naturale); (x,0)rappresenta la variabile x in forma negata (complementata) ed indicato come x (oppure !x). In modo equivalente, dato a {0,1} un letterale espresso come xa dove, per a=1 xa =x e per a=0 xa =x'.
Esempio:
Ad esempio, il letterale z vale 1 ogni qual volta che la variabile z vale 1, mentre il letterale z vale 1 ogni volta che la variabile z vale 0.
- 12 -
Un termine prodotto il prodotto logico o congiunzione (AND) di pi letterali. Un termine prodotto in cui compaiono letterali corrispondenti a tutte le variabili della funzione e tale per cui la configurazione di valori delle variabili definite dai letterali genera un valore 1 della funzione stessa nella tabella delle verit, costituisce un mintermine della funzione (spesso si sottintende il segno *)
Un termine somma la somma logica o disgiunzione (OR) di pi letterali. Un termine somma in cui compaiono letterali corrispondenti a tutte le variabili della funzione e tale per cui la configurazione di valori delle variabili definite dai letterali genera un valore 0 della funzione stessa nella tabella delle verit, costituisce un maxtermine della funzione
Ad esempio, abc e abc rappresentano due mintermini della funzione di cui si prima data la tabella delle verit
Un termine prodotto in cui compaiono solo alcuni dei letterali e che corrisponda a un insieme di 1 della funzione denominato implicante.
Un termine somma in cui compaiono solo alcuni dei letterali e che corrisponda a un insieme di 0 della funzione denominato implicato.
Le propriet dellalgebra di commutazione possono essere utilizzate per manipolare una espressione booleana ed ottenerne una equivalente.
Due espressioni booleane sono equivalenti se e solo se sono riconducibili alla stessa funzione booleana. Esempio: f(a,b,c)= (a*b)*a = (a+b)*a = a
Esempio:
a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f(a,b,c) 0 0 0 0 1 1 1 1
De Morgan De Morgan
- 15 -
Assorbimento Assorbimento
- 16 -
Algebra di commutazione: espressioni e funzioni (2) commutazione: Data una funzione booleana ad esempio, mediante la tabella delle verit - il problema identificare almeno una espressione booleana ad essa corrispondente
Algebra di commutazione: espressioni e funzioni (3) commutazione: Data una funzione booleana, la soluzione iniziale al problema di determinare una sua espressione consiste nel ricorso alle forme canoniche. Le forme canoniche sono, rispettivamente, la forma somma di prodotti (SoP) e quella prodotto di somme (PoS). Data una funzione boolena esistono una ed una sola forma canonica SoP ed una e una sola forma PoS che la rappresentano.
In molte applicazioni dell'algebra booleana uno scopo fondamentale determinare una buona rappresentazione della funzione booleana, avendo preventivamente definito il concetto di buono ed un modo per valutarlo : obiettivo e cifra di merito
Ad esempio: lobiettivo minimizzare il costo del circuito corrispondente a unespressione, la cifra di merito usata il numero di letterali presenti nellespressione.
Solitamente la buona rappresentazione algebrica viene ricavata manipolando una soluzione iniziale.
- 17 -
- 18 -
a 0 0 1 1
b 0 1 0 1
f1(a,b) 0 1 0 0
a 0 0 1 1
b 0 1 0 1
f2(a,b) 0 0 0 1
intuitivo osservare che la funzione possa essere ottenuta dal OR delle seguenti funzioni:
a 0 0 1 1 b 0 1 0 1 f(a,b) 0 1 0 1 a 0 0 1 1 b 0 1 0 1 f1(a,b) 0 1 0 0 a 0 0 1 1 b 0 1 0 1 f2(a,b) 0 0 0 1
f1(a,b)=ab
f2(a,b)=ab
Poich, ad esempio, quando a=0 e b=1 il prodotto ab assume valore 1 mentre vale 0 in tutti gli altri casi.
- 19 -
- 20 -
f(a,b)
ab
ab
Mettendo in OR i mintermini della funzione si ottiene lespressione booleana della funzione stessa espressa come somma di prodotti. Questa espressione booleana denominata prima forma canonica.
Si ricorda che nel mintermine una variabile compare nella forma naturale x se nella corrispondente configurazione di ingresso ha valore 1, nella forma complementata x se ha valore 0
- 21 -
- 22 -
a 0 0 1 1
b 0 1 0 1
f1(a,b) 0 1 1 1
a 0 0 1 1
b 0 1 0 1
f2(a,b) 1 1 0 1
intuitivo osservare che la funzione possa essere ottenuta dallAND delle seguenti funzioni:
a 0 0 1 1 b 0 1 0 1 f(a,b) 0 1 0 1 a 0 0 1 1 b 0 1 0 1 f1(a,b) 0 1 1 1 a 0 0 1 1 b 0 1 0 1 f2(a,b) 1 1 0 1
f1(a,b)= a+b
f2(a,b)= a+b
- 23 -
- 24 -
f(a,b) =
(a+b)* (a+b)
Mettendo in AND i maxtermini della funzione si ottiene lespressione booleana della funzione stessa espressa come prodotto di somme. Questa espressione booleana denominata seconda forma canonica.
Si ricorda che nel maxtermine una variabile compare nella forma naturale x se nella corrispondente configurazione di ingresso ha valore 0, nella forma complementata x se ha valore 1
- 25 -
- 26 -
se f: Bn B una funzione booleana si ha f(x1,x2,...,xn)= x1*fx1'+ x1*fx1 per ogni (x1,x2,...,xn) in Bn.
Ad esempio, f(a,b,c)=a*f(0,b,c)+a*f(1,b,c)
Nota: f(0,0,...,0), f(0,0,...,1) . . . f(1,1,...,1) sono noti con il nome di discriminante della funzione f e il loro valore appartiene a B La rete combinatoria che realizza una forma canonica si dice rete a due livelli
- 27 -
Dualmente, se f: Bn B una funzione booleana si ha f(x1,x2,...,xn)= (x1+fx1)*(x1+fx1) per ogni (x1,x2,...,xn) in Bn.
Ad esempio, f(a,b,c)=(a+f(1,b,c))*(a+f(0,b,c))
- 28 -
Espandendo rispetto ad a lespressione booleana f(a,b,c)=ab+b+abc, si ha la forma equivalente f(a,b,c)=a*(b+bc)+ a*(b+b)=ab+abc+ab + ab = ab+abc+a Espandendo rispetto ad a b e c la espressione booleana f(a,b,c)=ab+b+abc, si ha la forma equivalente f(a,b,c)=a*(b+bc)+ a*(b+b) =a*(b*(1)+b*(c))+ a*(b*(1)+b*(1)) =a*(b*(c+c)+b*(c))+a*(b(c+c)+b*(c+c)) =abc+abc+abc+abc+abc+abc+abc
la prima forma canonica della funzione associata alla espressione booleana di partenza.
- 30 -
Algebra Booleana: Manipolazione delle espressioni (1) Booleana: Data unespressione di una funzione booleana, le propriet dellalgebra di commutazione permettono di manipolarla in modo da ottenere unespressione equivalente, ma di forma diversa
Algebra Booleana: Manipolazione delle espressioni (2) Booleana: Una prima manipolazione mediante le regole dellalgebra d:
1.
Esempio:
3.
e sia data la funzione di costo costituita dal numero di letterali presenti che in questo caso vale 9. Obiettivo: ridurre il costo.
- 31 -
- 32 -
Algebra Booleana: Manipolazione delle espressioni (3) Booleana: Allo stesso risultato si sarebbe giunti anche:
1.
Algebra Booleana: Manipolazione delle espressioni (5) Booleana: Si osservi che lapplicazione delle trasformazioni algebriche non permette di identificare una procedura sistematica Come conseguenza:
2.
3.
Da cui infine
non possono essere realizzati strumenti CAD che consentano di produrre una soluzione ottima a due livelli utilizzando le propriet dellalgebra Limmediatezza della bont del risultato dipende molto dalla scelta delle propriet da applicare e dallordine in cui sono applicate.
Si osservi che, rispetto alla forma canonica di partenza, lespressione logica ottenuta di costo inferiore (4 letterali).
- 33 -
Riduzione del numero dei termini prodotto Riduzione del numero di letterali Esempio:
-2-
Sintesi ottima: dipende dalla cifra di merito che si vuole ottimizzare la cifra di merito generalmente adottata per la riduzione di complessit di una rete combinatoria a 2 livelli il costo (dellimplementazione . ) della rete esistono diversi criteri di costo
Si propone di identificare forme minime a due livelli applicando la regola di riduzione a Z + a' Z = (a+a') Z = Z con Z termine prodotto di n-1 variabili.
Cardinalit (= ndi termini prodotto) della soluzione Numero di letterali della soluzione
In caso di soluzione ottima non unica, quindi a pari cardinalit, pu essere possibile scegliere la soluzione con il minor numero di letterali
-3-
Cio, somme di prodotti rimangono tali. Al pi, tali espressioni possono banalizzarsi in semplici prodotti o costanti.
-4-
La formula di riduzione potrebbe essere facilmente applicata direttamente alle espressioni Booleane. Il problema per consiste nellidentificare:
1. sia tutti i termini su cui applicare la riduzione;
Non sempre immediato identificare tutti termini su cui applicare la regola di riduzione identificata.
2. sia i tutti termini che partecipano a pi riduzioni contemporaneamente e replicarli (vedi esempio).
Nota: si ricordi che, per le propriet dellalgebra di Boole, la relazione x+x=x pu essere applicata anche come x=x+x.
=ab+a(b+b)=ab+a
Nessuna delle due espressioni ulteriormente riducibile evidente, comunque, che la soluzione minima sia a+b
-6-
-5-
sia dovuti alla replicazione dei termini. sia legati alla identificazione dei termini da raggruppare.
La sua applicazione semplice per un numero di variabili fino a 4. Risulta complesso per un numero di variabili da 5 a 6. praticamente inattuabile per un numero di variabili superiori a 6.
= (a+a)b+a(b+b)= a+b
-7-8-
Una mappa di Karnaugh uno schema deducibile dalla rappresentazione geometrica delle configurazioni binarie. Definizione utili:
Distanza di Hamming: numero di bit che cambia nel passare da una configurazione binaria ad unaltra
Esempio: la distanza di Hamming tra le configurazioni 01001 e 10101 3 poich cambiano 3 bit.
Lapplicazione della regola di riduzione consiste nellidentificare le configurazioni binarie associate ai termini prodotto che sono a distanza di Hamming unitaria.
Esempio: i termini prodotto abcd e abcd corrispondono a 1110 e 1010 e sono a distanza di Hamming pari ad 1.
a 0 0 0 0 1 1 1 1
b 0 0 1 1 0 0 1 1
c 0 1 0 1 0 1 0 1
f(a,b,c) 0 1 0 1 1 1 0 1
- 10 -
c
100 1 101 1
010 0
011 1
a
110 0 111 1
b
-9-
una linea, e l1-cubo un segmento: i due vertici sono associati alle configurazioni 0 e 1 0 1
Il 3-cubo un solido, che si ottiene dal 2-cubo per proiezione, premettendo 0 alle configurazioni dei vertici originali, 1 a quelle dei vertici proiettati
000 100 101 001
il piano, il 2-cubo un quadrato che si ottiene dall1-cubo per proiezione. Si premette 0 alle configurazioni dei vertici originali, 1 a quelle dei vertici proiettati 00 01 110
010 111
011
10
- 11 -
11
- 12 -
Si sottolinea nuovamente che due configurazioni sono a distanza unitaria (adiacenti) se e solo se i vertici associati sono collegati da un lato.
Quindi, si passa allo sviluppo nel piano dei cubi. Al cubo sviluppato nel piano, che ha 2n vertici, si sovrappone una griglia (mappa) con 2n caselle organizzate secondo righe e colonne
Esempio: f(a,b,c)=ONset(1,3,4,5,6)
Esempio: per il 2-cubo si ha una mappa di 4 caselle su due righe e due colonne, e ad ogni colonna si associa una delle variabili come coordinata
a
ONset=
001 101
c b 0 1 0
00
1
01
1 0
10
11
- 14 -
Le configurazioni assunte dalla variabili di ingresso danno origine gli indici di riga e colonna della mappa. In ogni casella si trascrive il valore assunto dalla funzione quando la configurazione delle variabili corrisponde a quella delle coordinate che contrassegnano le caselle. In una mappa di Karnaugh, due caselle che condividono un lato di un ncubo corrispondono a due configurazioni di variabili adiacenti (distanza di Hamming pari ad 1).
100
ordinamento delle coordinate mantiene le distanze di Hamming e non coincide con la numerazione consecutiva
000 101
001
a,b c 0 1 00 01 11 10 0 0 1 1 1 1 0 1
Esempio: f(a,b)=ONset(1,2)
a 0 b 0 0 1 1
- 15 -
1 1 0
dove
1 0
- 16 -
Si ricorda che: un implicante un termine prodotto in cui compaiono solo alcuni dei letterali.
raggruppamento 1
a,b c,d 00 01 11 10
F(a,b,c,d)=abcd+abcd+abcd+abcd+ abcd+abcd
00 1 1 0 1
01 11 10 1 0 0 1 1 1 0 1 1 0 0 1
raggruppamento2 Implicante 2
F(a,b,c,d)=abd+acd+...
Implicante 1
a,b c,d 00 01 11 10
raggruppamento 1
00 1 0 0 1
01 11 10 1 0 0 0 0 1 0 0 1 0 0 1
- 18 -
raggruppamento 2
- 17 -
Implicante primo
Termine prodotto associato ad un raggruppamento di dimensione massima. Implicante primo che copre uno o pi 1 non coperti da nessun altro implicante primo.
identificare una forma SoP che includa il numero minimo di implicanti e a parit di numero di prodotti gli implicanti col minimo numero di letterali (definita come forma minima) garantendo la copertura di tutti gli 1 della funzione
Teorema:
2. Copertura:
Scelta del minor numero di implicanti primi e primi essenziali (minimizzazione della cardinalit della soluzione) implicanti primi implicanti primi essenziali
- 19 -
Implicanti primi essenziali devono essere inclusi nella forma minima. Una forma minima costituita da soli implicanti primi essenziali unica
Condizione sufficiente.
implicanti
- 20 -
a,b c,d 00 01 11 10
1 1 0 1
1 1 0 0
0 1 1 0
0 1 1 1
a,b c,d 00 01 11 10
1 1 0 1
1 1 0 0
0 1 1 0
0 1 1 1
identificando le variabili che non cambiano mai di valore e riportando ogni variabile in modo naturale (esempio: a) se il valore che essa assume 1 o in modo complementato (esempio: a) se il valore da essa assunto 0
a,b c,d 00 01 11 10
Osservazione:
un numero di 1 raccolti pari a 2n produce un implicante di N-n letterali dove N il numero delle variabili della funzione.
Esempio: per una funzione di quattro variabili es. f(a,b,c,d) - un implicante che raccoglie quattro 1 associato ad un termine prodotto di 2 variabili (es. ad)
00 01 11 10 00 1 1 0 0 b cambia valore 01 1 1 1 1 d cambia valore 11 0 0 1 1 10 1 0 0 1 b e d cambiano valore: non compaiono nel termine prodotto.
a e c compaiono come 0 quindi a e c . Il termine prodotto ac.
- 24 -
- 23 -
Copertura: sotto insieme degli implicanti identificati tale per cui nessun 1 della funzione rimane scoperto. Poich ogni implicante scelto aumenta il costo della realizzazione della funzione, il numero di implicanti da scegliere deve essere il minore possibile. Lobiettivo la riduzione del costo; questo si traduce nella identificazione della copertura di minima cardinalit:
2. Si eliminano tutti gli implicanti primi che sono coperti da quelli essenziali (eliminazione implicanti completamente ridondanti)
gli implicanti eliminati, detti completamente ridondanti, coprono degli 1 che sono gi ricoperti da quelli essenziali e, quindi, non servono ed aumentano il costo. gli implicanti residui sono detti parzialmente ridondanti.
sotto insieme degli implicanti primi e primi ed essenziali identificati che realizza una copertura della funzione che di cardinalit minima.
Osservazione: la scelta viene fatta seguendo un criterio basato sulla pura osservazione della tabella.
- 26 -
- 25 -
(0,1,2,4,5,9,10,11,13,15)
01 1 1 0 0
11 0 1 1 0
10 0 1 1 1
a 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
b 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
Esempio (cont.):
Tabella ottenuta dopo la selezione Tabella ottenuta dopo la selezione degli implicanti primi essenziali degli implicanti primi essenziali
a'c';
ad
a,b c,d 00 01 11 10 00 0 0 01 11 0 0 10 1 0 0 1
Implicanti primi
1 da coprire 1 da coprire
Completamente ridondante
- 27 -
(0,2,4,5,10,11,13,15)
a,b c,d 00 00 1 01 0 11 0 10 1
La specifica di un progetto (la descrizione di quello che si vuole progettare) contiene, spesso, delle condizioni di indifferenza sulluscita (denominate anche don't care o DC). le condizioni di indifferenza corrispondono a configurazioni di ingresso per le quali il valore delluscita non noto e non neppure di interesse sapere quanto pu valere. Questo accade quando:
Nessuno
Implicanti primi a'c'd'; bcd; acd; bcd; abd; abc; abd; abc
01 1 1 0 0
11 0 1 1 0
10 0 0 1 1
Le configurazioni di ingresso non si presentano mai; Le configurazioni di ingresso impediscono alluscita della rete - in fase di progetto - di essere osservata.
e/o
f(a,b,c,d)= a'c'd'+ bcd+ acd+ bcd f(a,b,c,d)= abd+ abc+ abd+ abc Due forme minime
- 29 -
- 30 -
In fase di sintesi, ai valori non specificati si pu assegnare indifferentemente il valore 0 oppure 1 a seconda di quanto conviene per minimizzare la funzione. Una condizione di indifferenza non deve necessariamente essere coperta da un implicante (forma SoP), ma pu esserlo se questo conviene cio se consente: 1. o di ridurre il numero degli implicanti; 2. o di ridurre il numero dei letterali degli implicanti esistenti.
- 31 -
a,b c,d 00 00 01 ac 11 0 10 0
a,b c,d 00 01 11 10 00 1 0 1 01 0 0 11 0 1 0 10 0 1 1
01 0 0
11 0 0 1 0
10 0 0 1 1
Implicanti primi
- 32 -
Si voglia sintetizzare una funzione con quattro ingressi A,B,C,D e unuscita f. Gli ingressi rappresentano cifre decimali codificate in codice BCD; luscita deve valere 1 se e solo se la cifra in ingresso minore o uguale a 3 oppure maggiore o uguale a 8.
Esempio 1 (cont.)
Dalla specifica risulta che, delle 16 possibili configurazioni degli ingressi solo 10 potranno effettivamente presentarsi.
A B C D
RC
In corrispondenza delle configurazioni di valori impossibili, non interessa il valore che la funzione pu assumere
c,d a,b 00 00 1 01 0 11 10 1
01 1 0 1
11 1 0 -
10 1 0 -
- 33 -
Ignorando la presenza dei gradi di libert introdotti dalle condizioni di indifferenza, lutilizzo dei soli 1 porterebbe a identificare due implicanti essenziali.
Servendosi delle condizioni di indifferenza si migliora il risultato riducendo il costo della realizzazione.
assegnando valore 1 in corrispondenza di 1010 e 1011 e valore 0 in corrispondenza delle altre configurazioni.
c,d a,b 00 00 1 01 0 11 10 1
01 1 0 1
11 1 0 -
10 1 0 -
f(a,b,c,d)= ab+ cb
c,d a,b 00 00 1 01 0 11 10 1
01 1 0 1
11 1 0 -
10 1 0 -
f(a,b,c,d)= b
- 35 -
- 36 -
il valore assunto da A sempre uguale a quello di B. Quando A=0;B=0 e quando A=1;B=1;C=0 il valore di f 1 mentre, in tutti gli altri casi, f vale 0.
si consideri il seguente esempio dove il valore di A sempre uguale al valore di B mentre C pu assumere qualunque valore. Quando A=B=0 e quando A=B=1 e C=0 il valore di f 1 mentre, in tutti gli altri casi, f vale 0. Qual la funzione associata alla rete combinatoria RC (f=g(a,b,c))?
Se non facessimo alcuna considerazione n sul fatto che A deve essere uguale a B n sul contesto in cui inserito il circuito si avrebbe:
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 f 1 1 0 0 0 0 1 0 AB 00 01 11 10 0 1 0 1 0 1 1 0 0 0
RC
B A
RC
f(a,b,c)= ab+abc
- 37 -
- 38 -
C B A
si consideri il seguente esempio dove il valore di A sempre uguale al valore di B mentre C pu assumere qualunque valore. Quando A=B=0 e quando A=B=1 e C=0 il valore di f 1 mentre, in tutti gli altri casi, f vale 0. Qual la funzione associata alla rete combinatoria RC (f=g(a,b,c))?
RC
A A A A
da da da da
B B B B
B 0 0 1 1 0 0 1 1
C 0 1 0 1 0 1 0 1
f 1 1 1 0
AB 00 01 11 10 0 1 - 1 1 1 - 0 -
Configurazioni A B C 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
A A A A
da da da da
B B B B
f(a,b,c)= a+c
oppure
f(a,b,c)= b+c
Il simbolo indica che il valore assunto dalla uscita non ha alcuna importanza poich: a) La configurazione degli ingressi ad esso relativa non viene mai generata b) Luscita corrispondente alla configurazione degli ingressi non viene mai osservata
- 40 -
Nota: Si ricordi che gli implicanti primi realizzati solamente mediante condizioni di indifferenza non hanno alcun valore. Infatti, i soli termini significativi sono gli 1 della funzione. Questi termini sono gli unici elementi di rilievo (vincoli).
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 f 1 0
Esempio:
AB 00 01 11 10 0 - - - 1 1 - 0 -
a,b c,d 00 00 0 01 1 11 10 0
01 0 0
11 1 1 1 1
10 0 1 0
a 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
b 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
c 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
d 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
f 0 1 0 0 0 0 0 1 1 1 1 1
Minimizzazione dei costi Massimizzazione delle prestazioni dipende dalla libreria di componenti utilizzata nella realizzazione e dalla tecnologia implementativa dei componenti (library binding o mapping tecnologico)
standard cell semi-custom (gate array: matrice di porte logiche per le quali possibile fissare la struttura di interconnessione in fase di progettazione) componenti programmabili (CPLD, FPGA) con funzionalit ridefinibile anche in funzionamento
Prestazioni:
ritardo di propagazione (o latenza): tempo intercorso tra la presentazione degli ingressi e la generazione di un valore valido in uscita throughput: tempo necessario tra la presentazione di un set di ingressi e il set successivo (uguale o inferiore alla latenza)
-2-
al pi alto livello possibile di astrazione per decidere se proseguire o interrompere la ricerca dellottimalit tramite cifre di merito che rappresentino stime indipendenti dalla tecnologia implementativa con un basso costo di stima:
ad ogni porta possibile associare un costo (funzione della tecnologia e del n di ingressi per porta), se nota la libreria non definibile se non a implementazione effettuata. In generale, viene considerata proporzionale a quella delle porte
il calcolo dei valori stimati deve essere rapido (poco complesso) stimatori a grana grossa suscettibili di raffinamenti
-3-
-4-
Rappresentazione fattorizzata
La rappresentazione fattorizzata di una funzione logica pu essere costituita da:
una delle cifre di merito adottate comunemente per la stima dellarea ed indipendente dalla libreria tecnologica
motivazione: lampiezza di una cella che contiene un gate virtuale proporzionale agli strati di silicio che, a loro volta, sono proporzionali al n di letterali (n di ingressi al gate)
Misura la complessit della soluzione e d indicazione del n di porte logiche necessarie Il n di porte logiche una stima dellarea indipendente dalla tecnologia
cio: da una qualsiasi espressione algebrica con parentesi, con lunico vincolo che loperazione di complementazione sia applicata solo a singole variabili
-5-
-6-
la valutazione esatta possibile ed funzione del fanout della porta che noto se nota la libreria di componenti valutabile solo a implementazione effettuata: trascurato
il problema dalla identificazione sia degli implicanti primi sia della copertura ottima della funzione di complessit esponenziale. Questo rende praticamente impossibile identificare una soluzione ottima per un numero di variabili che supera lordine della decina.
facile da estendere al caso di funzioni a pi di una uscita. consente di utilizzare diverse funzioni di costo purch additive 1) Ricerca e identificazione di tutti gli implicanti primi (o espansione) 2) Ricerca e identificazione della copertura ottima.
Due fasi:
ritardo di propagazione = x N di porte che costituiscono il percorso critico, con numero di ingressi per porta costante e = ritardo di propagazione in una porta AND o OR con quegli ingressi
la cifra di merito adottata comunemente per la stima del ritardo di propagazione ed indipendente dalla libreria tecnologica ricavabile direttamente dallespressione logica
-7-
Ottima perch minimizza i costi della rete da implementare. Lindividuazione della copertura ottima dipende dalla cifra di merito utilizzata per stimare i costi Per semplicit si fa riferimento alla sola forma Somma di Prodotti (SOP). Il procedimento mostrato in questa sezione facilmente estendibile alla forma prodotti di somme (POS).
-8-
1. Si confrontano esaustivamente tutti i termini prodotto ricavati al passo precedente; 2. Si semplificano tutte quelle coppie che hanno una parte comune ed una sola variabile differente; 3. Da ogni semplificazione si costruisce un termine prodotto, con meno letterali, che verr utilizzato al passo successivo 4. I termini prodotto semplificati vengono marcati;
La marcatura rende evidente che i mintermini/implicanti non sono primi poich hanno partecipato alla realizzazione di un implicante con meno letterali
Il processo ha termine quando non sono pi possibili delle riduzioni. I termini prodotto non marcati sono implicanti primi.
-9-
Nota: Il confronto esaustivo risolve ii problemi sia dovuti alla replicazione Nota: Il confronto esaustivo risolve problemi sia dovuti alla replicazione dei termini sia legati alla identificazione dei termini da raggruppare. dei termini sia legati alla identificazione dei termini da raggruppare.
- 10 -
Si costruiscono dei gruppi costituiti dallo stesso numero di 1 Si confrontano tra loro solo le configurazioni che appartengono a gruppi che differiscono per un solo 1
0 0 0; - 1 1; 1 1 a'bc; bc; ab
0 2 3 4
a 0 0 0 1 1
b 0 1 1 1 1
c 0 1 1 0 1
d 0 0 1 1 1
Questo non garantisce che tutti i confronti siano utili; esclude solo i confronti sicuramente improduttivi Esempio:
Il gruppo 0 ed il gruppo 2 non vengono confrontati Il gruppo 2 ed il gruppo 3 vengono confrontati (solo un confronto produttivo) Il gruppo 3 ed il gruppo 4 vengono confrontati (tutti i confronti sono produttivi)
- 12 -
- 11 -
Definizione di insieme
insieme dei termini prodotto, all'iterazione j, con un numero di 1 pari ad i. Ad ogni termine prodotto associata una etichetta che identifica l'insieme dei mintermini che esso copre. L'etichetta di un nuovo termine prodotto ottenuta per concatenamento delle etichette dei termini da cui proviene
Letichetta facilita la costruzione della tabella di copertura (seconda fase)
Definizione di etichetta:
J=0; tutti i mintermini appartenenti allON-set vengono etichettati e posti nei loro rispettivi Si0; Ripeti Per tutti i k che vanno da min(i) fino a (max(i) - 1)
confronta ogni configurazione in SkJ con ogni altra in Sk+1J . Le configurazioni semplificate vengono marcate ed il risultato della semplificazione viene etichettato e posto in SkJ+1.
J=J+1;
Fino a che non sono pi possibili delle riduzioni Tutte le configurazioni non marcate sono implicanti primi o primi essenziali
- 13 -
- 14 -
Esempio:
0001 1001 1100 1011 1101 1110 1111 1 9 12 11 13 14 15
1--1 11--
9,11,13,15 12,13,14,15
1111
0 0 0 0
0 0 0 0
0 1 13 1 15 0
0 19 111 0
0 0 0 0
0 0 0 0
0 1 13 1 15 0
0 19 111 0
0 0 0 0
0 0 0 0
0 1 13 1 15 0
0 19 111 0
Il confronto esaustivo identifica tutti ii possibili raggruppamenti. Nei passi Il confronto esaustivo identifica tutti possibili raggruppamenti. Nei passi intermedi il numero dei termini pu aumentare considerevolmente per poi ridursi intermedi il numero dei termini pu aumentare considerevolmente per poi ridursi nei passi conclusivi nei passi conclusivi
- 16 -
- 15 -
Identificare un sotto insieme degli implicanti ottenuti dalla prima fase tale per cui nessun 1 della funzione rimanga scoperto Si fa uso della tabella degli implicanti o tabella di copertura.
0 11 13 0 0 11 13 0
0 15 17 0 0 15 17 0
0 1 13 1 15 0 0 1 13 1 15 0
0 19 111 0 0 19 111 0
Gli indici di riga sono gli implicanti primi identificati Gli indici di colonna sono i mintermini appartenenti allON-set della funzione. Gli elementi ai,j della matrice sono pari a x (o 1) quando l'implicante i_esimo copre il mintermine j_esimo; altrimenti nulla (o 0) 1 x 9 11 12 13 14 15 x x x x x x x x x
0 11 13 0
0 15 17 0
- 17 -
0 1 13 1 15 0
0 19 111 0
P0 P1 P2
Ricerca della copertura ottima: si deve introdurre la funzione costo Il costo si introduce aggiungendo di fianco alla colonna degli implicanti il loro costo espresso tramite una delle cifre di merito relative allarea In generale, nella colonna costo, viene riportato il n di letterali di ogni implicante Nel metodo a singola uscita, se lindicazione di costo viene omessa si intende che gli implicanti hanno tutti lo stesso costo e quindi si procede solo minimizzando la cardinalit della copertura
- 19 -
Le relazioni tra gli implicanti identificati e i mintermini da coprire che permettono la semplificazione della tabella di copertura sono:
un criterio di scelta (inserisce elementi nellinsieme di copertura) e, di conseguenza, di semplificazione poich identifica ed estrae degli implicanti primi essenziali; un criterio di sola semplificazione poich riduce la dimensione dalla tabella di copertura eliminando righe (implicanti) o colonne (mintermini) senza operare alcuna scelta
Dominanza di riga (dipende dalla funzione costo) Dominanza di colonna (non dipende dalla funzione costo)
Criterio di Dominanza
Se una colonna contiene una sola x (colonna singolare), la riga che gli corrisponde relativa ad un implicante primo essenziale (riga essenziale) La riga essenziale e le colonne da essa coperte vengono eliminate dalla tabella. Allinsieme di copertura viene aggiunto limplicante identificato A x B x x C x x x x x x x x x x D E F G x x x H I x x x x x x J K x B x x x E I x x x x x K x
Descrizione:
Semplificazione:
Un implicante Pi domina un implicante Pj quando Pi copre almeno tutti i mintermini coperti da Pj. Pj eliminato dalla tabella (eliminazione della riga) se e solo se il suo costo maggiore o uguale a quello di Pi. P0 P1 P2 P4 B x x x E I x x x x x K x B x x E x x I K x x
Semplificazione:
P0 P1 P2 P3 P4
x x
P0 P1 P2 P4
P0 P2 P4
Insieme di copertura:
- 21 -
Insieme di copertura:{P3}
Insieme di copertura:{P3}
- 22 -
Insieme di copertura:{P3}
Estrazioni Indotte:
Descrizione:
L'eliminazione di una riga pu generare dei nuovi implicanti essenziali; Poich questi ultimi divengono essenziali a causa di eliminazioni di riga, le righe ad essi associate vengono chiamate righe essenziali secondarie (implicanti primi secondari).
Un mintermine mi domina un mintermine mj se mj coperto dagli stessi implicanti di mi pi almeno 1 mj generato da tutti gli implicanti di mi e da qualcuno in pi. Per semplificare le scelte nella tabella, mantengo solo mi che genera minori scelte, ma che assicura la copertura anche di mj.
P0 P1 P2 P4
B x x x
I x
K x x
x x
P0 P2 P4
B x x
E x x
K x x
P0 P2
K x x
Semplificazione:
Essenziale secondario
mj eliminato dalla tabella. La semplificazione eseguita porta ad una copertura di costo non maggiore di quello che si otterrebbe mantenendo entrambi i mintermini, qualunque sia il costo associato ai termini prodotto stessi.
Insieme di copertura:{P3}
Insieme di copertura:{P3}
- 23 -
Significato:
P0 P1 P2 P4
Quando tutte le righe essenziali e le colonne e righe dominate sono rimosse, la tabella ottenuta, si definisce ciclica (non riducibile): tabella ciclica degli implicanti primi. Se la tabella vuota, stato determinato linsieme di copertura. La scelta degli implicanti, in una tabella non riducibile, richiede lapplicazione di algoritmi specifici di ricerca della copertura come ad esempio:
Insieme di copertura:{P3}
Insieme di copertura:{P3}
se B non viene semplificato le possibili coperture dei mintermini B e I sono {P0, P1} oppure {P0, P4} oppure {P1} oppure {P4} se B viene semplificato le possibili coperture del mintermine I (che induce anche la copertura di B) sono {P1} oppure {P4} - 25 -
Branch and Bound (B&B) : metodo (generale) di ottimizzazione combinatoria, che consente di identificare la combinazione ottima di un numero finito di variabili discrete, secondo un prefissato criterio di valutazione Nel caso di copertura di tabelle cicliche di implicanti, gli implicanti costituiscono le variabili e il criterio di valutazione il costo (cardinalit o letterali) da minimizzare, con il vincolo della copertura
- 26 -
Il metodo genera molte possibili soluzioni attraverso un processo di ricerca che pu crescere esponenzialmente con le dimensioni della funzione. Data una soluzione, ottenuta ad un certo passo della ricerca, non possibile dire se questa ottima senza prima aver esaminato tutte le possibili alternative. Per ridurre la complessit della ricerca (numero di alternative esaminate) il metodo di B&B lavora appoggiandosi ad un albero delle scelte (branch), che genera, ad ogni scelta, una copertura parziale o finale con un costo associato una volta individuata una soluzione finale, il suo costo viene considerato il bound da non superare nelle esplorazioni successive la ricerca prosegue su tutte le scelte rimanenti. Quando viene individuata una soluzione parziale o finale con costo associato maggiore o uguale al bound, la ricerca lungo quel ramo dellalbero termina quando viene individuata una soluzione finale con costo inferiore alla precedente, questo diventa il nuovo bound. La soluzione precedente viene scartata e la ricerca prosegue fino al termine dellesame di tutte le alternative possibili
- 27 -
Si sceglie un implicante primo Pi come appartenente alla soluzione e si elimina la riga corrispondente e le colonne coperte da Pi dalla tabella di copertura. La tabella ridotta viene esaminata per altre possibili semplificazioni (righe essenziali o relazioni di dominanza) che possono portare direttamente ad una soluzione finale Si di costo Ci. Se la tabella ottenuta dalle semplificazioni, non riducibile si sceglie un secondo implicante Pj tra quelli rimasti (considerando quindi come possibile copertura parziale la coppia Pi Pj) iterando il procedimento di semplificazione e cos fino a coprire la funzione a costo Ci. Una volta individuata una soluzione si risale nellalbero, per esaminare le scelte rimaste. Si mantiene sempre la soluzione a costo minore (bound) e si confronta il costo ottenuto con il costo minore, quando lo si supera quella soluzione viene abbandonata.
- 28 -
{P2}
{P0,P1,P2}
Bound
Dalla scelta di P0, si procede scegliendo P1 e quindi P2, identificando la soluzione {P0,P1,P2}. Il ramo {P0,P1,P3} non viene esaminato perch porterebbe ad un soluzione dello stesso costo di quella individuata. Si risale fino a P0 per esaminare le soluzioni derivate dalla scelta {P0,P2}, e cos via. Individuata la soluzione {P1,P3}, questa costituisce il nuovo bound e, nellesempio, il procedimento di ricerca termina perch tutte le altre soluzioni sono di costo non inferiore a 2 implicanti.
- 29 - 30 -
Esempio (cont.):
P0 P1 P2 P3 P4 P5 1 x 4 x x 5 x x 6 9 x
Dominanza di riga
13 14 15 x
--01
1,5,9,13
x x x
x x x x
P1 P2 P3 P4 P5
4 x x
6 14 15 x x
x x x x
Implicanti Identificati:
Insieme di copertura:{P0}
Essenzialit secondaria
Insieme di copertura:{P0}
P0(1,5,9,13): cd P1(4,5): abc P2(4,6): abd P3(6,14): bcd P4(13,15): abd P5(14,15): abc
- 31 -
P2 P3 P5
4 x
6 14 15 x x x x x
f(a,b,c,d)= cd+abc+abc
Insieme di copertura:{P0,P2,P5}
- 32 -
Nel passo relativo alla generazione degli implicanti primi, le condizioni di indifferenza sono trattate come 1.
Nella tabella di copertura compaiono, come indici di colonna, solo i mintermini appartenenti allON-set.
LON-set rappresenta linsieme dei termini che vincola la funzionalit da realizzare. Il DC-set linsieme dei termini che rappresenta i gradi di libert per realizzare la funzionalit stessa: non obbligatorio sceglierli, pu essere conveniente
- 33 -
- 34 -
Esempio:
0000 0010 0100 0101 1100 1101 0 2 4 5 12 13
Cardinalit: il costo di ciascuna porta (AND e OR) considerato indipendente dal numero degli ingressi (minimizzazione della cardinalit). Letterali: il costo di una porta dipende anche dal numero degli ingressi (minimizzazione del n di letterali della copertura).
Implicanti Identificati:
P0 P1 P2
Minimizzazione cardinalit minimizzazione letterali Solo per n <= 4 Per n=5 a pari numero di letterali posso avere diversa cardinalit Per n>5 posso avere cardinalit inferiore e numero di letterali superiore
x
- 36 -
costo 1 1 1 3
Numero porte ANDOR = n impl. n impl. con un solo letterale + 1 Numero porte ANDOR = 4 - 1 + 1 = 4
- 39 -
d f1
n-1 porte AND a 2 ingressi per realizzare il prodotto 1 ingresso alla porta OR
abc
a b c
- 40 -
costo 3 3 2 8
Quine-McCluskey: Multi-Uscita
Nel caso di funzioni a pi uscite una prima soluzione consiste nel minimizzare le funzioni singolarmente. Il risultato ottenuto potrebbe risultare non ottimale se si considera che le funzioni potrebbero condividere degli implicanti riducendo il costo. Gli implicanti che possono essere condivisi non sono necessariamente primi per le funzioni prese singolarmente
Se prese singolarmente, le forme ottenute per le funzioni possono non essere minime
Gli implicanti che possono essere condivisi sono implicanti primi ma di pi funzioni. Come si ottengono gli implicanti primi di pi funzioni?
-2-
Quine-McCluskey: Multi-Uscita
Esempio (cifra di merito=cardinalit):
In queste condizioni, il In queste condizioni, il massimo che posso pensare massimo che posso pensare di fare applicare la di fare applicare la seguente condivisione: seguente condivisione: bcd di f1 e bcd di f2. bcd di f1 e bcd di f2.
f1
Quine-McCluskey: Multi-Uscita
Esempio (cifra di merito=cardinalit):
a b c d
Ottimizzazione indipendente Ottimizzazione indipendente delle due funzioni: delle due funzioni: cardinalit copertura=7 cardinalit copertura=7
f1
f1
?
f2
f1
f1=bcd+bd+a+cd
f2
f2
f2
f2=bcd+ab+ad
Nota: il vincolo dei due livelli deve permanere Nota: il vincolo dei due livelli deve permanere
Forma sub-ottima con condivisione: Forma sub-ottima con condivisione: cardinalit copertura=6 cardinalit copertura=6
-3-
Forma ottima con condivisione: Forma ottima con condivisione: cardinalit copertura =5 cardinalit copertura =5
Quine-McCluskey: Multi-Uscita
Esempio (cont.) (cifra di merito=cardinalit):
Quine-McCluskey: Multi-Uscita
Esempio (cont.) (cifra di merito=cardinalit):
00 0 1 1 0
01 11 10 1 1 1 0 1 1 1 1 1 0 1 1
00 0 1 1 0
01 11 10 1 1 1 0 1 1 1 1 1 0 1 1
00 0 1 1 0
01 11 10 1 1 0 1 0 0 1 0 0 1 0 0
00 0 1 1 0
01 11 10 1 1 0 1 0 0 1 0 0 1 0 0
Nota: Nota: Gli Gli implicanti implicanti condivisi non condivisi non sono tutti sono tutti primi per f1 e primi per f1 e f2 prese f2 prese singolarmente singolarmente
00 0 1 1 0
01 11 10 1 1 0 1 0 0 1 0 0 1 0 0
00 0 1 1 0
01 11 10 1 1 0 0 0 0 1 0 0 0 0 0
-6-
Non viene utilizzato nella Non viene utilizzato nella soluzione ottima perch i soluzione ottima perch i suoi 1 risultano gi suoi 1 risultano gi coperti (con cardinalit coperti (con cardinalit inferiore a quella generata inferiore a quella generata dal suo utilizzo) dal suo utilizzo)
Quine-McCluskey: Multi-Uscita
In generale, oltre agli implicanti primi delle singole funzioni necessario considerare anche tutti gli implicanti ottenuti combinando in tutti i modi possibile le funzioni da minimizzare.
Il numero delle combinazioni possibili con N funzioni 2N-1. Ad esempio, con tre funzioni le combinazioni possibili sono: f1, f2, f3, f1*f2, f1*f3, f2*f3, f1*f2*f3
Si osservi che il metodo analizzato potrebbe essere applicato anche alle mappe di Karnaugh. Comunque, tale metodo limitato sia dal numero delle variabili sia dalla quantit di tabelle da realizzare
Ad esempio, 10 funzioni implicherebbero la realizzazione di 1023 tabelle.
si procede come per il caso scalare con la differenza che si associa ad ogni mintermine un ulteriore identificatore (maschera di appartenenza) costituito da tanti bit quante sono le funzioni considerate lidentificatore consente di individuare a quale funzione/i appartiene il mintermine. Quindi, un bit dellidentificatore assume valore 1 se e solo se la funzione che ad esso corrisponde contiene nell ONset tale mintermine; 0 in caso contrario (mintermine dell OFFset).
-8-
I mintermini della funzione contenuti nel DCset sono aggiunti all ONset
Le condizioni di indifferenza aumentano i gradi di libert nella generazione degli implicanti primi
00 1 0 0 1
01 11 10 - 1 0 - 1 0 0 0 0 0 0 0
Mappa di Karnaugh di f2
00 0 1 0 0
01 11 10 1 0 0 - 1 0 0 0 0 0 0
-9-
- 10 -
12 10 13 11
5 11 12 10 11 01 13 11
- 11 -
- 12 -
La generazione dellimplicante segue le stesse modalit viste per il caso scalare. Lidentificatore delle funzioni di ogni nuovo implicante viene ottenuto come AND bit a bit dei due indicatori.
La configurazione ottenuta non corrisponde a nessuna espansione valida poich non appartiene a nessuna delle funzioni.
0000 0001
Nota: se lindicatore ottenuto 00..0 il nuovo implicante non una espansione valida (cio non appartiene a nessuna funzione) e non viene riportato.
Passo 1
nessun risultato
0000
Viene marcata, ossia coperta da un implicante di livello superiore, quella configurazione il cui indicatore uguale al risultato dellAND eseguito (limplicante di livello superiore copre quello di livello inferiore per le stesse funzioni).
Ad esempio, se consideriamo i due mintermini 011 3 101 e 001 1 011 si ottiene limplicante 0-1 1,3 001
La configurazione ottenuta corrisponde ad una espansione valida ma non coinvolge tutte le funzioni ne del primo ne del secondo implicante coinvolto.
1100 1101
Passo 1
110
12,13 0110
- 13 -
- 14 -
alcune espansioni:
0000 0 10 0001 1 01 2 10 4 11 5 11 12 10 11 01 13 11 0 10 AND 1 01 4 11 AND 5 11
Passo 1
La configurazione ottenuta corrisponde ad una espansione valida che coinvolge tutte le funzioni di un solo implicante coinvolto.
nessun risultato
00
1100 1101
Passo 1 Passo 2
110-
12,13 0011
0100 0101
Passo 2 Passo 1
= 010= 4,5 11
Nota: Nota: implicante di implicante di pi funzioni pi funzioni
La configurazione ottenuta corrisponde ad una espansione valida e coinvolge tutte le funzioni del primo e del secondo implicante coinvolto.
1100 1101
=
- 16 -
- 15 -
= 11012,13 0111
1100 1101
12 10 AND 13 11
=
Passo 1 Passo 2
110-
12,13 10
Tutti gli implicanti che coprono solo mintermini del DCset non sono implicanti primi e vanno rimossi dallinsieme degli implicati non marcati
Es 1 (cont.)
Limplicante 1011 che copre solo il mintermine 11 della funzione f2 non implicante primo perch copre solo mintermini del DCset di f2
- 17 -
- 18 -
la tabella di copertura ottenuta includendo gli implicanti primi e la giustapposizione dei mintermini del ONset di tutte le funzioni.
F = f1 f2 = ON 1 (0, , , )DC1(4, ) ON 2 (1, , )DC 2(11, ) 2 12 13 5 4 13 5
Costi
Esempio1 (Cont.): P1: P2: P3: P4: P5: 00-0 0-00 0-01 010-101 10 10 01 11 11 0,2 0,4 1,5 4,5 5,13
P6: -10-
10 4,5,12,13
P1 P2 P6 P3 P4 P5
- 19 -
0 x x
f1 2 12 13 x x x
f2 4 13
necessario inserire la colonna costo anche se questo viene considerato identico per ogni implicante (cifra di merito=cardinalit) quando un termine prodotto viene scelto per la prima volta e inserito nella copertura di una o pi funzioni, il suo costo viene modificato
x x x x
portato a 0 nel caso in cui la cifra di merito sia la cardinalit degli implicanti portato a +1 nel caso in cui la cifra di merito sia il numero dei letterali
La modifica del costo serve a tener conto delle possibili condivisioni degli implicanti
- 20 -
Cardinalit = 5 Numero porte ANDOR = n tot. impl. nimpl. con un solo letterale + n uscite Numero porte ANDOR = 5 1 + 2 = 6 Mettere 0 il costo quando un implicante viene preso significa considerare che il costo sia indipendente dal numero degli ingressi delle porte
Identificazione della copertura ottima: simile al caso di singola uscita con alcune differenze.
d f2
2 3 1
f1
f1=bcd+abd+a+cd f2=bcd+abd+ab
f2 1 2
Espressioni che descrivono la soluzione f1=P0+P1+P2+P3 = P0+P1+a+cd f2=P0+P1+P4= P0+P1+ab P0= bcd Implicanti condivisi P1= abd
Numero totale letterali della soluzione = 15 Numero totale porte ANDOR(2in) = Letterali soluzione - n implicanti condivisi n uscite Numero totale porte ANDOR(2in) = 15 - 2 - 2 = 11 Mettere +1 il costo quando un implicante viene preso significa tener conto della condivisione
- 21 -
- 22 -
Essenzialit:
Dominanza di riga
se limplicante in oggetto essenziale per tutte le funzioni coinvolte la riga viene eliminata (scelta dellimplicante) cos come tutte le colonne coperte se limplicante in oggetto non essenziale per tutte le funzioni coinvolte (una o pi funzioni hanno tale limplicante non essenziale), la riga viene mantenuta e viene scelto tale implicante per le funzioni per cui essenziale; in queste ultime vengono eliminate le colonne coperte viene aggiornato il costo dellimplicante
- 23
Si guarda lintera riga. Come per il caso di funzioni ad una sola uscita.
Dominanza di colonna
La dominanza di colonna ha validit solo allinterno di una funzione. Una colonna della funzione fi non pu coprire ne essere coperta da una colonna presente nella funzione fk.
- 24 -
Quine-McCluskey: Quine- McCluskey: Multi-Uscita Tabella di copertura Cardinalit MultiEsempio di copertura completo con cifra di merito=cardinalit:
2 P0 P1 P2 P3 P4 P5 x P6 P7 P8 P9 P10 P11 3 5 x f1 7 8 x x x x x x x x x x x x x x x x x x x x x x x x x x x 9 10 11 13 15 x x x x x x x x x x x x x 2 3 5 f2 6 7 10 11 14 15 6 7 f3 8 9 13 14 15
P1 P2 P6 P0 P3 P4 P5
x x x x
x x x
x x
x x x
x x
x x x
Le espressioni Booleane sono f1=P1+P6 f2=P3+P4+P5 Si osservi che non ci sono termini comuni.
- 25 -
x x
Identificazione ed estrazione degli essenziali f1: {P5} f2: {P6} f3: {P9;P10}
- 26 -
Quine-McCluskey: Quine- McCluskey: Multi-Uscita Tabella di copertura Cardinalit MultiEsempio di copertura completo con costo identico per tutti gli implicanti (a) f1 f2 f3
C 1 1 1 1 1 0 0 1 1 0 0 1 5 P0 P1 x P2 P3 P4 P5 P6 x P7 P8 P9 P10 P11 7 x x x x x x x x x x x x x x x x x 8 9 13 15 x x x x x x x x 2 3 6 10 11 14 15 13
x x x
x x
x x x
x x
x x x
x x
x x x
x x
dominanza di riga
Soluzione parziale Soluzione parziale f1: {P5} f1: {P5} f2: {P6} f2: {P6} f3: {P9;P10} f3: {P9;P10}
dominanza di colonna
Soluzione parziale Soluzione parziale f1: {P5} f1: {P5} f2: {P6} f2: {P6} f3: {P9;P10} f3: {P9;P10}
- 27 -
- 28 -
Righe essenziali secondarie e dominanza di riga Soluzione parziale Soluzione parziale f1: {P5, P9} f1: {P5, P9} f2: {P6} f2: {P6} f3: {P9;P10} f3: {P9;P10}
- 30 -
Soluzione parziale Soluzione parziale f1: {P5, P9} f1: {P5, P9} f2: {P6} f2: {P6} f3: {P9,P10,P7} f3: {P9,P10,P7}
- 29 -
Tabella ciclica
scelta dei rimanenti implicanti per completare la copertura f1: per coprire 5 e 13 posso scegliere P1 (costo 1) oppure P6 e P7 (costo 0). Si sceglie P6 e P7 f2: per coprire 2 e 6 posso scegliere P3 (costo 1) oppure P5 e P10 (costo 0). Si sceglie P5 e P10
dominanza di colonna
Soluzione parziale Soluzione parziale f1: {P5, P9} f1: {P5, P9} f2: {P6} f2: {P6} f3: {P9,P10,P7} f3: {P9,P10,P7}
Espressioni Booleane che descrivono la soluzione f1=P5+P9+P6+P7 f2=P6+P5+P10 f3=P9+P10+P7 P5= . P9= .. Implicanti P6= .. condivisi P7= P10=
- 32 -
Soluzione finale Soluzione finale f1: {P5, P9, P6, P7} f1: {P5, P9, P6, P7} f2: {P6, P5, P10} f2: {P6, P5, P10} f3: {P9,P10,P7} f3: {P9,P10,P7} Cardinalit della copertura = 5 Cardinalit della copertura = 5 (Letterali della soluzione = 24) (Letterali della soluzione = 24)
- 31 -
Quine-McCluskey: Quine- McCluskey: Multi-Uscita Tabella di copertura Letterali MultiEsempio di copertura completo con cifra di merito= Letterali:
2 P0 P1 P2 P3 P4 P5 x P6 P7 P8 P9 P10 P11 3 5 x f1 7 8 x x x x x x x x x x x x x x x x x x x x x x x x x x x 9 10 11 13 15 x x x x x x x x x x x x x 2 3 5 f2 6 7 10 11 14 15 6 7 f3 8 9 13 14 15 C 2 2 2 1 2 2 3 3 3 3 2 3
x x x x
x x x
x x
x x x
x x
x x
x x x
x x
x x x
x x
-> 1 -> 1
x x x
x x
-> 1 -> 1
Identificazione ed estrazione degli essenziali f1: {P5} f2: {P6} f3: {P9;P10}
- 33 -
Identificazione delle dominanze di colonna: F1 : 7 domina 5 ; 9 domina 8 ; F2 : 3 domina 2 ; 11 domina 10 ; 14 domina 15;
- 34 -
P1 P3 P6 P7 P9
Identificazione delle dominanze di riga: P1 domina P0 ; P9 domina P2 ; P7 domina P8 ; P3 domina P5 ; P3 domina P10; P1 domina P4 ; P1 domina P11;
- 35 -
Identificazione e scelta delle essenzialit: f1: {P5, P9} f2: {P6, P3} f3: {P9, P10, P7}
- 36 -
Le due soluzioni possibili per il completamento della copertura di f1 sono lutilizzo di P1 oppure lutilizzo di P6 e P7. Calcoliamo il costo delle due soluzioni per scegliere lottimo.
P1 P6 P7
Soluzione 1
f1=P5+P9+P1 f2=P6+P3 f3=P9+P10+P7 Implicanti condivisi P9= ..
Soluzione 2
f1=P5+P9+P6+P7 f2=P6+P3 f3=P9+P10+P7 Implicanti condivisi P9= .. P6= .. P7= .. Costo in letterali = 20 (cardinalit = 6)
- 38 -
P1 P6 P7
f1 5 13 C x x 2 x 1 x 1
Non sono pi applicabili le riduzioni per essenzialit e per dominanza. Va risolta la tabella ciclica ad esempio con un B&B
- 37 -
Quine-McCluskey: Multi-Uscita Tabelle Cicliche possibile applicare il B&B con alcuni accorgimenti.
Un implicante pu essere usato per coprire mintermini di funzioni differenti. Laumento della complessit notevole a causa dellaumento dei gradi di libert
lo stesso implicante pu comparire pi volte nellalbero di copertura di B&B.
{P0f1,P0f2,P2f1}
- 39 - 40 -
Usare come costo i letterali comporta una soluzione pi complessa Considerare solo la cardinalit non tiene in conto il costo reale delle porte logiche
Algoritmo implementato in Espresso per la minimizzazione esatta. I principi su cui si basa sono gli stessi della procedura di QuineMcCluskey (algoritmi utilizzati sono un po diversi). In Espresso-exact gli implicanti sono partizionati in tre insiemi:
Aumentare la complessit algoritmica per una stima migliore potrebbe essere assolutamente inutile se si considera che il collegamento alla libreria tecnologica (library binding) cambia la struttura del circuito e, come conseguenza, il costo della realizzazione.
Essenziali. Totalmente ridondanti: sono quelli coperti da implicanti essenziali e dal DCset. Parzialmente ridondanti: i rimanenti. Questo ultimo insieme l'unico ad essere coinvolto nella fase di copertura.
In media, due soluzioni che differiscono nel costo stimato del 10%-20% sono da considerarsi equivalenti.
Una tabella di copertura ridotta ottenuta ponendo come indici di riga i soli implicanti parzialmente ridondanti. Gli indici di colonna sono in corrispondenza uno a uno con l'insieme dei mintermini. La tabella pi compatta rispetto a quella ottenuta con QuineMcCluskey e non ha colonne essenziali.
- 42 -
- 41 -
Pu essere dimostrato che il numero degli implicanti primi di una funzione logica di n ingressi pu essere maggiore di 3n/n. E un problema NP-completo.
Soluzione:
Partendo da una condizione iniziale (specifiche della funzione) la copertura modificata per cancellazione, aggiunta e modifica di implicanti fino a che non raggiunta una condizione di minimalit (quando nessuna delle operazioni porta a successivi miglioramenti).
-2-
Qualit: Differenza in cardinalit tra la copertura minimale (euristica) e quella minima (ottenuta con metodi esatti).
Reduce
Le soluzioni prodotte da Espresso (standard per minimizzazione logica a 2 livelli) coincidono spesso con quelle di Espresso-Exact, ma in tempi pi brevi.
riduce i cubi di una copertura (prima) per consentire di uscire da minimi locali in cui si giunti dopo lespansione la copertura ottenuta dopo una riduzione non pi costituita da soli implicanti primi ma deve essere della stessa cardinalit di quella di partenza.
Non aumentato il numero degli implicanti
Procedura di minimizzazione:
Expand
Ingresso: Lista dei mintermini/implicanti (ON-set) ed il DC-set della funzione. Condizione iniziale: La lista degli implicanti rappresenta la copertura iniziale della funzione. Sviluppo: La copertura iniziale viene iterativamente manipolata da alcuni operatori. Termine: L'operazione si conclude quando nessun operatore migliora la copertura.
espande i cubi rendendoli primi eliminando eventuali cubi coperti. la copertura ottenuta risulta costituita da soli implicanti primi (copertura prima) elimina i cubi ridondanti modifica la cardinalit della copertura riducendola.
-4-
Irredundant
-3-
no
a,b c,d 00 00 0 01 0 11 1 10 0
01 0 0 1 0
11 1 1 -
10 1 0 0 1
Espansione
a,b c,d 00 00 0 01 0 11 1 10 0
01 0 0 1 0
11 1 1 -
10 1 0 0 1
Cardinalit: 4 Costo in letterali: 14 Nota: copertura non prima. Loperazione di riduzione non ha alcun effetto poich si modificherebbe la cardinalit (non ci sono cubi sovrapposti)
-6-
Cardinalit: 3 Costo in letterali: 8 Nota: copertura prima. Loperazione irredundant non ha alcun effetto poich non esistono implicanti ridondanti
Fine
-5-
a,b c,d 00 00 0 01 0 11 1 10 0
01 0 0 1 0
11 1 1 -
10 1 0 0 1
Riduzione
a,b c,d 00 00 0 01 0 11 1 10 0
01 0 0 1 0
11 1 1 -
10 1 0 0 1
01 0 0 1 0
11 1 1 -
10 1 0 0 1
Espansione
01 0 0 1 0
11 1 1 -
10 1 0 0 1
Cardinalit: 3 Costo: 7 Nota: copertura prima Fine della procedura (lapplicazione di una riduzione porta alla soluzione individuata al passo precedente)
-8-
-7-
11 0 1 1 1 00 1 1 0 1
10 0 1 1 1 01 1 1 0 1 11 0 1 1 1
c,d 00 01 11 Riduzione 10 10 0 1 1 1
00 1 1 0 1
01 1 1 0 1 00 1 1 0 1
11 0 1 1 1 01 1 1 0 1
10 0 1 1 1 11 0 1 1 1
Sintesi Combinatoria
Card.: 4 Costo: 10
10 0 1 1 1
Gli implicanti relativi alla copertura sono rielaborati uno alla volta. Ogni implicante espanso a primo e tutti gli implicanti da esso coperti sono eliminati. L'operatore Expand rende la copertura prima e minimale. L'espansione di un implicante realizzata aumentando il sotto cubo ad esso associato in una o pi direzioni e verificando se l'espanso ammissibile Verifica dell'ammissibilit dell'espansione:
Verifica ammissibilit: OFF-Set*(cd)= acd 0 non ammissibile poich lintersezione con lOFF-set non nullo
Una espansione ammissibile se l'implicante ottenuto non interseca lOFF-set. (E' richiesta la conoscenza dellOFF-set e questo pu essere pesante in termini di memoria utilizzata.) non intersezione: il prodotto logico tra limplicante ottenuto e ogni mintermine corrispondente allOFF-set 0
- 11 -
a,b c,d 00 00 0 01 0 11 1 10 0
01 0 0 1 0
11 1 1 -
10 1 0 0 1
Espansione rispetto a d di acd ac' Espansione rispetto a d di acd ac' espansione non ammissibile (intersezione = abcd) espansione non ammissibile (intersezione = abcd)
- 12 -
Espansione rispetto a c di acd ad' Espansione rispetto a c di acd ad' espansione ammissibile (intersezione = 0) espansione ammissibile (intersezione = 0)
a,b c,d 00 00 0 01 0 11 1 10 0
01 0 0 1 0
11 1 1 -
10 1 0 0 1
1. Ordine di espansione del singolo implicante (direzione): si espande in tutte le direzioni possibili seguendo un ordine predeterminato (es. lessico-grafico) e si accetta la soluzione migliore. 2. Ordine degli implicanti da espandere: si utilizza una euristica che consente di ridurre la probabilit di effettuare delle espansioni inutili
Copertura iniziale: on-set: {ac'd', a'b'cd, bcd, ab'cd'} dc-set: {abc'd, abcd'}
Gli implicanti sono ordinati in base alla probabilit sia di essere espansi sia di non essere coperti da altri implicanti; Ad ogni implicante associato un peso che misura la sua propensione alla espansione e alla non-copertura da parte di altri implicanti. L'implicante con peso minore quello che ha pi probabilit di essere espanso e non coperto da altri. Per il calcolo del peso si utilizza, per i letterali, il codice positional-cube notation: 0 (variabile in forma negata) codificato con 10 1 (variabile in forma naturale) codificato con 01 - (variabile non presente) codificato con 11 00 non una codifica ammissibile
- 14 -
- 13 -
Reduce
Ordine
Osservazione: questa trasformazione consente di uscire da minimi locali questa operazione pu ridurre gli implicanti di dimensione. La trasformazione di un implicante attuata riducendo il sottocubo ad esso associato in una o pi direzioni.
Ogni peso calcolato come prodotto interno del vettore conteggio per colonna con il vettore relativo allimplicante, espresso in notazione positional-cube. Es: |01 11 10 10| * |23 32 13 22|T = 11
peso minore espansione pi probabile peso minore espansione pi probabile pi letterali (un cubo piccolo ha pi probabilit di essere espanso poich richiede pi letterali (un cubo piccolo ha pi probabilit di essere espanso poich richiede pochi 1 e - adiacenti) pochi 1 e - adiacenti)
- 15 -
o o
Una riduzione ammissibile se e solo se l'implicante ridotto forma con i rimanenti una copertura per la funzione senza modificarne la cardinalit.
- 16 -
11 0 1 1 0 11 0 1 1 0
10 0 0 0 0 10 0 0 0 0
a,b c,d 00 00 0 01 0 11 1 Riduzione ammissibile 10 0 a,b c,d 00 00 0 01 0 Riduzione non ammissibile 11 1 La cardinalit passa da 2 a 3 10 0
- 17 -
01 0 1 1 0 01 0 1 1 0
11 0 1 1 0 11 0 1 1 0
10 0 0 0 0 10 0 0 0 0
Il primo implicante da ridurre quello con peso maggiore (peso calcolato come in Expand).
a 01 11 01
b 11 01 11
c 11 01 01
d 10 01 01
13 23 13 12
- 18 -
Irredundant
Rende la copertura non ridondante. Viene scelto un sottoinsieme di implicanti parzialmente ridondanti tale per cui ogni implicante non interamente coperto da un altro dello stesso sottoinsieme
Rispetto al metodo esatto, la copertura costituita da implicanti non tutti necessariamente primi.
- 19 -
- 20 -
espresso [parametri] [file] minimizzazione di funzioni logiche a due livelli. -d: debugging -e[opzioni]: seleziona le opzioni di espresso:
Funzione:
ripeti
2=Cost(on_set) 1=|on_set| on_set=Reduce(on_set,dc_set) on_set=Expand(on_set, off_set) on_set=Irredundant(on_set,dc_set) fino a che (|on_set|< 1) on_set=Last_gasp(on_set,dc_set,off_set) fino a che (Cost(on_set) < 2) on_set=on_set U essential_set dc_set=dc_set - essential_set on_set=Make_sparse(on_set,dc_set,off_set)
Parametri:
ripeti
fast, ness, nirr, nunwrap, onset, pos, strong, eat, eatdots, kiss, random f, fd, fr, fdr, pleasure, eqntott, kiss, cons
-s: fornisce un breve sommario relativo allesecuzione; -t: fornisce un ampio sommario relativo allesecuzione; -x: non visualizza la soluzione;
- 22 -
- 21 -
-v[tipo]: messaggi di dettaglio (-v per un accurato dettaglio) -D[comando]: esegue il sotto-comando:
a b -111 c d 00 01 00 01
0011
1-00
10 1 0 0 1
ESPRESSO, many, exact, qm, single_output, so, so_both, simplify, echo, opo, opoall, pair, pairall, check, stats, verify, PLAverify, equiv, map, mapdc, fsm, contain, d1merge, d1merge_in, disjoint, dsharp, intersect, minterms, primes, separate, sharp, union, xor, essen, expand, gasp, irred, make_sparse, reduce, taut, super_gasp, lexsort, test opo: bit2=esatto, bit1=ripetuto bit0=salta sparse opoall: 0=minimizza, 1=esatto pair: 0=algebrico, 1=strongd, 2=espresso, 3=esatto pairall: 0=minimizza, 1=esatto, 2=opo so_espresso: 0=minimize, 1=exact so_both: 0=minimize, 1=exact
11
1010
10
Cubi Cubi 1-00 1-00 0011 0011 -111 -111 1010 1010
.i 4 .i 4 .o 1 .o 1 .type fd .type fd 1-00 1 1-00 1 0011 1 0011 1 -111 1 -111 1 1010 1 1010 1 1101 1101 1110 1110 Pesi Ordine Pesi Ordine
1 1 0 0 0 0 1 1 2 2
11 11 10 10 12 12 11 11
2 2 1 1 4 4 3 3
ipeca4>espresso -v '' ex3.pla ipeca4>espresso -v '' ex3.pla EXPAND: 0011 1 (covered 0) EXPAND: 0011 1 (covered 0) EXPAND: 1-00 1 (covered 1) EXPAND: 1-00 1 (covered 1) EXPAND: -111 1 (covered 0) EXPAND: -111 1 (covered 0) # IRRED: F=3 E=3 R=0 Rt=0 Rp=0 Rc=0 Final=3 Bound=0 # IRRED: F=3 E=3 R=0 Rt=0 Rp=0 Rc=0 Final=3 Bound=0 ESSENTIAL: 0-11 1 ESSENTIAL: 0-11 1 ESSENTIAL: 1--0 1 ESSENTIAL: 1--0 1 REDUCE: -111 1 to 1111 1 0.00 sec REDUCE: -111 1 to 1111 1 0.00 sec EXPAND: 1111 1 (covered 0) EXPAND: 1111 1 (covered 0) # IRRED: F=1 E=1 R=0 Rt=0 Rp=0 Rc=0 Final=1 Bound=0 # IRRED: F=1 E=1 R=0 Rt=0 Rp=0 Rc=0 Final=1 Bound=0 REDUCE_GASP: 11-- 1 reduced to 1111 1 REDUCE_GASP: 11-- 1 reduced to 1111 1 # IRRED: F=3 E=3 R=0 Rt=0 Rp=0 Rc=0 Final=3 Bound=0 # IRRED: F=3 E=3 R=0 Rt=0 Rp=0 Rc=0 Final=3 Bound=0 .i 4 .i 4 .o 1 .o 1 .p 3 .p 3 11-- 1 11-- 1 0-11 1 0-11 1 1--0 1 1--0 1 .e .e ipeca4> ipeca4>
- 24 -
- 23 -
Sintesi Combinatoria
Sintesi di reti combinatorie a pi livelli: Introduzione
Motivazioni e Introduzione Modello per reti combinatorie a pi livelli Trasformazioni e Algoritmi
Reti combinatorie a due livelli: area e ritardo sono ridotti contemporaneamente. Reti combinatorie a pi livelli: area e ritardo non procedono nella stessa direzione
Le reti a pi livelli portano in generale a soluzioni pi efficienti in termini di area/prestazioni e consentono un utilizzo migliore delle librerie
area due livelli due livelli area pi livelli pi livelli
ritardo
ritardo
-2-
f(a,b,c,d)= abcd+abcd+abcd+abcd+abcd+abcd+ abcd+abcd+abcd+abcd f= l+ c*g*h+ a*b*k+ g*k+ a*b*c*d*e+ a*d*e*f+e*g*i+e*j; Ritardo: 4 ; Costo: 23 f= l+ c*g*h+ k(a*b+ g)+ a*b*c*d*e+ a*d*e*f+e*g*i+e*j; f= l+ c*g*h+ k(a*b+ g)+ e*(a*b*c*d+ a*d*f+g*i+j);
f= l+ c*g*h+ k*(a*b+ g)+ e*(d*(a*b*c+ a*f)+g*i+j);
23
22
area 20 19 18 4 5 ritardo 6 7
21
-4-
Vantaggi:
Pi efficiente in termini di area e prestazioni. Permette di utilizzare elementi di libreria. Maggiore complessit della ottimizzazione.
Svantaggi:
Minimizzazione dell'area (con vincolo sul ritardo) Minimizzazione del ritardo (con vincolo sull'area)
Metodi di ottimizzazione:
Esatti
Le operazioni e trasformazioni definite per la sintesi multi-livello hanno come scopo base quello di manipolare lespressione logica della rete combinatoria in modo da individuare ed estrarre sottoespressioni logiche comuni nellespressione di partenza
Complessit computazionale estremamente elevata: inaccettabili. Definizione di euristica: procedimento non rigoroso (approssimativo, intuitivo) che permette di conseguire un risultato la cui qualit paragonabile a quella ottenuta con metodi rigorosi
-6-
Euristici
questo consente, in generale, di avere realizzazioni pi efficienti (con riuso) in termini di porte utilizzate, rispetto allottimizzazione a due livelli, con tempi di propagazione peggiori
-5-
La soluzione ottenuta tramite sequenze di trasformazioni applicate in modo iterativo. Le trasformazioni sono basate anche sulle propriet algebriche delle espressioni Booleane. La rete definita ottima rispetto ad un insieme di trasformazioni, quando una nuova lapplicazione di queste non pu pi migliorare la funzione di costo. b) Si raffina il risultato considerando i vincoli strutturali
V 1 = abd + ef
Risultato dell'ottimizzazione di inferiore qualit rispetto ad una ottimizzazione che considera contemporaneamente i punti a) e b) ma risulta computazionalmente pi semplice.
Y1 = V 3 + a f
In questa sezione si analizza solo il punto relativo allidentificazione della soluzione ottimale (punto a).
-7-
1. SI 2. Letterali 3. Manipolazione algebrica delle espressioni dei nodi con lo scopo di ridurre la complessit dei nodi, il costo della rete e individuare sottoespressioni comuni a pi nodi
-9-
e) f) g) h)
FACTOR(V2): Fattorizzazione del nodo V2. COST(): Calcolo del numero di letterali. [V4] = EXTRACT(V2, Y3): Estrazione di un fattore comune a V2 e Y3. Il nodo V4 derivato
dallestrazione pu essere un nuovo nodo o un nodo gi presente nella rete.
V 1 = abd + ef
V 2 = aV 1b + aV 1c + V 1cd + V 1bd
V 3 = bde + abce + bde + abce + bdef
Y1 = V 3 + a f
V 3 = bde + abce + bde + abce + bdef V 3 = bde + ace(b + b) + bde + bdef V 3 = bde(1 + f ) + ace + bde V 3 = de(b + b) + ace V 3 = de + ace
- 11 -
- 12 -
Y1 = V 3 + a f
Leliminazione di V3 porta ad un incremento di area pari a 1, quindi la trasformazione viene accettata, V3 eliminato (quindi C_V3=0) e Y1 diventa come sotto (con C_Y1=7)
V 2 = (a + d )(V 1b + V 1c ) Y3 = ab f + d b f + ae + aV 2 + de + dV 2
Y3 = b f (a + d ) + e(a + d ) + V 2(a + d ) Y3 = (a + d )(b f + e + V 2)
E quindi
Y 1 = a ce + de + a f
Costo dei nodi in letterali dopo le trasformazioni effettuate C_V1= 5 C_V2= 6 C_V3= 0 C_Y1=7 C_Y2=14 C_Y3=14
V 2 = aV 1b + aV 1c + V 1cd + V 1bd
Il risultato sotto riportato con C_V2=-6 (C_V2=6)
V 4 = (a + d ) V 2 = V 4(V 1b + V 1c ) Y3 = V 4(b f + e + V 2)
V 2 = ( a + d )(V 1b + V 1c)
- 13 -
- 14 -
- 15 -
- 16 -
Realizzano un miglioramento iterativo della rete logica mediante trasformazioni logiche che conservano il comportamento di I/O del grafo
Nel modello considerato, ogni funzione a due livelli con una sola uscita.
Rispetto al grafo che rappresenta la rete combinatoria, sono possibili due tipi di trasformazioni:
Locali: modificano localmente (la funzione di) un nodo non toccando la struttura della rete.
Esempio: la fattorizzazione di un nodo Esempio: leliminazione di un nodo nella rete sostituendo la sua espressione logica in tutti i nodi che la utilizzano.
i1
a= i1i2 b=ai3+i2
i1 i2
- 18 -
b= i1i2i3+i2
sul numero dei letterali (area); variazione del n di nodi (area) e del n nodi del cammino critico (prestazioni: n nodi attraversati, usato come stima per il ritardo di propagazione)
Sulle connessioni
determina dove pu essere applicata la trasformazione; applica la trasformazione (e la mantiene se porta benefici); termina quando nessuna trasformazione di quel tipo ulteriormente applicabile.
La rete considerata ottimale quando, rispetto ad un insieme di operatori, nessuno di questi la migliora.
- 19 -
Il maggior vantaggio dell'approccio algoritmico che trasformazioni di un dato tipo sono sistematicamente applicate alla rete. Algoritmi legati a differenti trasformazioni sono applicati in sequenza. Sfortunatamente differenti sequenze possono portare a soluzioni diverse. Soluzione: uso di sequenze derivate da sperimentazioni.
- 20 -
aumenta la probabilit di poter sostituire i termini ottenuti con sotto-espressioni gi esistenti (globale, aumenta il percorso di I/O) vedi sopra
La lunghezza calcolata in numero di nodi attraversati. Eliminazione nella rete di tutti i vertici con un solo ingresso e di quelli relativi a funzioni costanti (Sweep) Riduzione vincolata (Eliminate opzione Val_Intero) ad es. eliminate 5
Sostituzione
sostituisce una sotto-espressione in un nodo (diminuisce il n di letterali nel nodo di partenza) (globale, aumenta il percorso di I/O) diminuisce il n di letterali in una espressione (locale)
Eliminazione
inversa della sostituzione, aumenta le prestazioni temporali (globale, diminuisce il percorso di I/O)
- 21 -
tutti i nodi vengono ridotti ad un solo nodo; si ottiene una rete a due livelli.
- 22 -
x=(a+b+c)e+ef
Allinterno di un nodo, raccoglie a fattore comune alcuni termini. Esempio: (ipotesi: porte a 3 ingressi)
eliminate -1
1 2 3 l 4 5 6 7 8 9 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 2 -1 0 1 2 3 4 5 6 7 3 -1 1 3 5 7 9 11 13 15 n 4 -1 2 5 8 11 14 17 20 23 5 -1 3 7 11 15 19 23 27 31 6 -1 4 9 14 19 24 29 34 39 7 -1 5 11 17 23 29 35 41 47
Osservano i dati riportati in tabella, relativi al calcolo di n*ln-l al variare di n e l, si pu constatare che leffetto di eliminate -1 (con l=1) quello di eliminare tutti i nodi composti da un solo letterale.
- 23 -
- 24 -
Politica della euristica: si pesano i letterali dellespressione di partenza con ordinamento lessico-grafico a parit di peso
Elemento pi a destra per primo
Linsieme dei termini prodotto viene ricorsivamente partizionato (blocco della partizione e blocco residuo) utilizzando come termine di riferimento il letterale che compare con pi frequenza.
a b
a 1 0 1
ab 0 0 0 0 0 0
a*b*c a*b*d
Ottimizzazione: tutti i letterali che hanno la stessa cardinalit della partizione vengono raccolti contemporaneamente
a 0 0 0
ab 1 1 1 1 2 2 c 0 0 1 d
bc 0 0 0 0 0 0 cd 1 0 0 0 0 0 c
cd 1 0 0 0 1 0 d 0 1 1
d 0 1 1
Fattore comune ab
Ad ogni passo della ricorsione le partizioni sono in OR fra loro mentre i termini a fattor comune sono in AND.
- 25 -
c d f= d*c*(a+b)+a*b*(c+d) f= d*c*(a+b)+a*b*(c+d)
- 26 -
Ritardo: 3 costo: 8
f= a*b*!d+ !a*b*d+ !a*!b*!d+ !a*c*d+ !b*c*!d f= a*b*!d+ !a*b*d+ !a*!b*!d+ !a*c*d+ !b*c*!d !a*b*d !a*c*d a*b*!d !a*!b*!d !b*c*!d a !a b !b c !c d !d 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 3 2 2 2 0 2 3
Ritardo: 3 costo: 15
f = a*b*c*d+ a*!b*!c*d+ !a*!b*c*d+ !a*!b*!c*d f = a*b*c*d+ a*!b*!c*d+ !a*!b*c*d+ !a*!b*!c*d a*b*c*d a*!b*!c*d !a*!b*c*d !a*!b*!c*d a !a b !b c !c d !d 1 0 1 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 0 1 1 0 2 2 1 3 2 2 4 0
Fattore comune d
+ !a
a !a a 1 0 !a 0 1 1 1
0 1 1 2
0 1 0 1
1 0 1 2
a*b*c
a !a b !b c !c 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 1 1 1 2 1 0
Blocco della partizione indotta dal fattore comune !b
+
a*b Ritardo: 5 costo: 10
!a*b*d !a*c*d
a !a b !b c !c d !d 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 2 1 0 1 0 2 0 b !b c !c b 1 0 0 0 c 0 0 1 0 1 0 1 0
!a*c
Ritardo: 5 costo: 10
f = d*(a*b*c+!b*(!a*c+!c*(a+!a))) f = d*(a*b*c+!b*(!a*c+!c*(a+!a)))
- 27 -
a !a c !c !a 0 1 0 0 c 0 0 1 0 0 1 1 0
+
!a+c
b+c
f= !d*(a*b+!b*(!a+c))+!a*d*(b+c) f= !d*(a*b+!b*(!a+c))+!a*d*(b+c)
- 28 -
Estrae una espressione da gruppi di nodi. L'estrazione viene fatta fino a che possibile.
Identificazione un divisore comune a due o pi espressioni. Il divisore costituisce un nuovo nodo della rete ed ha per successori i nodi da cui stato estratto.
fi=fdivisore*fquoziente_i + fresto_i i divisore quoziente_i resto_i fj=fdivisore*fquoziente_j + fresto_j j divisore quoziente_j resto_j fi=fk*fquoziente_i + fresto_i i k quoziente_i resto_i
fj=fdivisore j divisore
fk=fdivisore k divisore
Modello algebrico: le espressioni Booleane vengono viste come espressioni algebriche, cio come polinomi di primo grado, nelle variabili naturali e complementate, con coefficienti unitari Lavorando con il modello algebrico valgono le propriet algebriche mentre quelle dellalgebra booleana non sono valide E definita la divisione algebrica: fdivisore un divisore algebrico di fdividendo se fdividendo = fdivisore fquoziente + fresto e fquoziente fdivisore 0 e il supporto di fdivisore e di fquoziente disgiunto Esistono algoritmi diversi per calcolare i divisori di una espressione algebrica
- 32 -
fi=fd (fdq fqq + frq) + (fdr fqr+ frr) i d dq qq rq dr qr rr fk=fdq k dq fl=fdr l dr fj=fd j d
- 31 -
Decomposizione disgiuntiva semplice (Decompose) globale, aumenta la lunghezza del percorso I/O
Riduce le dimensioni di una espressione (v. decomposizione algebrica) La decomposizione disgiuntiva semplice pu essere applicata ricorsivamente. fi(a1,a2,,an)= i 1 2 n
Deriva dalla applicazione del teorema di espansione di Shannon: f(a1,a2,..an)=a1*fa1 +a1*fa1 Il risultato, in termini di costo, dipende fortemente dalla decomposizione che viene effettuata sulle variabili di supporto della funzione.
f = a*(b*fab+!b*fa!b)+!a*(b*f!ab+!b*f!a!b)=a*b*fab+a*!b*fa!b+!a*b*f!ab+a*!b*f!a!b fab= f(1,1,c,d)= !1*1+ 1*!1+ !c*!d+ c*d= !c*!d+ c*d fa!b= f(1,0,c,d)= !1*0+ 1*!0+ !c*!d+ c*d= 1 f!ab= f(0,1,c,d)= !0*1+ 0*!1+ !c*!d+ c*d= 1 f!a!b= f(0,0,c,d)= !0*0+ 0*!0+ !c*!d+ c*d= !c*!d+ c*d c,d a,b k=!c*!d+c*d k=!c*!d+c*d a,b k 00 Semplificazione a due livelli 01 sul nodo f 11 f=k+!a*b+a*!b Costo: 9 f=k+!a*b+a*!b 10
- 36 -
a,c,d
f=b*k+!b*j f=b*k+!b*j
Costo: 14
f=a*b*k+!a*!b*k+!a*b+a*!b f=a*b*k+!a*!b*k+!a*b+a*!b
b
- 35 -
c,d a,b
k=!c*!d+c*d k=!c*!d+c*d
0 0 1 0 1
1 1 1 1 1
f = !a*!b*!c*!d+!a*!b*c*d+!a*b*!c*d+!a*b*c*!d+a*b*!c*!d+a*b*c*d+a*!b*!c*d+a*!b*c*!d f = !a*!b*!c*!d+!a*!b*c*d+!a*b*!c*d+!a*b*c*!d+a*b*!c*!d+a*b*c*d+a*!b*!c*d+a*!b*c*!d
fab=!c*!d+c*d fa!b= !c*d+*c*!d f!ab= !c*d+c*!d f!a!b=!c*!d+c*d c,d fab=!c*!d+c*d fab=!c*!d+c*d fa!b=!c*d+c*!d fa!b=!c*d+c*!d a,b c,d a,b
f=(a*b+!a*!b)*fab+(!a*b+a*!b)*fa!b f=(a*b+!a*!b)*fab+(!a*b+a*!b)*fa!b
Costo: 18
fab=!c*!d+c*d fab=!c*!d+c*d
Costo: 14
- 38 -
Costo: 14
f= ac'd+ a'bcd + a'c'd'+ b'c'd= a'bcd + c'(d(b'+a)+a'd') f= ac'd+ a'bcd + a'c'd'+ b'c'd= a'bcd + c'(d(b'+a)+a'd') f= abc'+ abd'+ ab'cd+ ac'd'+ a'bcd+ bc'd'= f= abc'+ abd'+ ab'cd+ ac'd'+ a'bcd+ bc'd'= a(b'cd+ c'd')+ b(a'cd+ d'(c'+a) +a c') a(b'cd+ c'd')+ b(a'cd+ d'(c'+a) +a c') f= ab'cd+ a'bcd+ a'b'c'+ a'b'd'+ b'c'd'= f= ab'cd+ a'bcd+ a'b'c'+ a'b'd'+ b'c'd'= a'bcd+ b'(acd+ d'(c'+ a')+ a'c') a'bcd+ b'(acd+ d'(c'+ a')+ a'c')
- 40 -
bi = {0, 1}
V(B) = bn-12n-1 + + b121 + b020 Un vettore di n bit consente di rappresentare i numeri naturali nellintervallo da 0 a 2n-1. Per rappresentare i numeri positivi e negativi si usano diverse codifiche
-2-
rappresentazione con n bit: il bit di segno 1 per i numeri negativi e 0 per i positivi campo rappresentabile -2 n-1-1 N +2 n-1 -1 (due rappresentazioni per lo 0) molto simile alla rappresentazione dei numeri decimali rappresentazione con n bit: i numeri negativi sono ottenuti invertendo bit a bit il corrispondente numero positivo campo rappresentabile -2 n-1-1 N +2 n-1 -1 (due rappresentazioni per lo 0) semplice rappresentazione con n bit: i numeri negativi sono ottenuti invertendo bit a bit il numero positivo corrispondente, quindi sommando il valore 1 campo rappresentabile -2 n-1 N +2 n-1 -1 (una rappresentazioni per lo 0) consente di realizzare circuiti di addizione e sottrazione pi semplici quella utilizzata nei dispositivi digitali per rappresentare numeri relativi
-4-
Complemento a 1
Modulo e se gno +0 +1 +2 +3 -0 -1 -2 -3
Complemento a 2
Realizzare sommatori modulari Composti da blocchi elementari identici Circuiti aritmetici di questo tipo sono detti bit-slice
-6-
si ci+1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1
Il modulo in posizione 0 ha il bit di riporto c0=0 Il riporto c0 pu essere sfruttato per sommare il valore 1
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
si
xi
yi
ci +1 = xi y i + xi ci + y i ci
xi yi ci
ci+1
Full Adder
ci
si ci+1
La somma di numero ad n bit richiede un tempo pari ad n volte circa quello richiesto da un modulo di somma
-7-
-8-
c0
sn-1
s0
xn yn
x n -1 y n -1
x0 y0
Prestazioni: il ritardo totale per ottenere tutti i bit della somma dato dallespressione: Ttot = (n-1)Tr + Ts Il percorso critico quindi quello del riporto
-9-
c(k-1)n
cn
c0
skn-1
s(k-1)n
s2n-1
- 10 -
sn
sn-1
s0
Sono dette funzioni di generazione e propagazione Gi: se xi=yi=1, allora il riporto in uscita deve essere generato Pi: se xi o yi=1 e ci =1, allora il riporto in ingresso deve essere propagato in uscita Possono essere calcolate in parallelo, per tutti gli stadi, rispetto alle rispettive somme.
- 11 -
P1 G1 P0 G0
1 P0 G0
CLA logic
2 3 c4 c0 x3 y3 2 3 c4 c1=G0+P0c0 c2= G1+P1G0+P1P0c0 c3= G2+P2G1+P2P1G0+P2P1P0c0 c4 = G3 + P3G2 + P3P2G1 + P3P2P1G0 + P3P2P1P0c0
- 13 -
x0 y0
c0
2 3 c3
c0 x2 y2 2 5 s2
2 3 c2
c0 x1 y1 2 5 s1
2 3 c1
G1
P1
G0
P0
Full Adder
5 s3
x0 y0 c0 c1
- 14 -
CLA Logic
c2
c1
c0 c1 x0 y 0
Un ritardo di porta per il calcolo delle funzioni di generazione e di propagazione (Gi = xiyi e Pi = xi + yi) Due ritardi di porta logica per calcolare il riporto i-esimo (SOP) Due ritardi di porta logica per calcolare la somma i-esima (SOP) 5 ritardi di porta logica
x1 y1
Totale:
Problema:
sn-1
s1
s0
La realizzazione circuitale dei moduli che calcolano i riporti per operandi lunghi (ad esempio 32 bit) fa uso di porte con un fan-in molto elevato: non praticabile!! Soluzione: addizionatore veloce a blocchi
- 15 -
- 16 -
1
P2 G2P1 G1P0G0
1
P1 G1 P0 G0
2 3 c4
c0 x3 y3 2 5 s3
2 3 c3
c0 x2 y2 2 5 s2
2 3 c2
2 3 c1
Il riporto finale di questo sommatore ha la seguente espressione: c4 = G3 + P3G2 + P3P2G1 + P3P2P1G0 + P3P2P1P0 c0
cuscita = G + Pc0
1
P3 P2P1 P0
P3 P2P1 G3 G2G1 G0
1 2 P 3
2 G
- 18 -
4-bit CLA 2 P 3 5 G
- 17 -
ci+1
ci
ci+1
FA
Gi Pi Si
ci
Le prestazioni di un CLA adder a n bit costituito da blocchi da m bit sono espresse come logm n, a meno del fattore costante dato dal ritardo di un CLA a m bit.
X11-8 c12 S15-12 2 P y11-8 c8 S11-8 2 P X7-4 y7-4 c4 S7-4 2 P X3-0 y3-0 c0 0 S3-0
G7 P7
x7
y7
x6 y6
x5
y5
x4 y4
x3
y3
x2 y2
x1 y1
x0 y0
FA
S7
c7
FA
G6 P6 S6
c6
FA
G5 P5 S5
c5
FA
G4 P4 S4
c4
FA
G3 P3 S3
c3
c3
FA
G2 P2 S2
c2
FA
G1 P1 S1
c1
c1
FA
G0 P0 S0
c0
4-bit CLA 3 G 7
4-bit CLA 3 G 6
4-bit CLA 3 G 5
c6
c4
c2
c0
5 c16 5
indice 3 indice 2
5
indice 1
4
indice 0
c4
c4
c0
c4= ..
c2= G1+P1G0+P1P0c0
c1=G0+P0c0 3 P G 5
c8
c0
- 19 -
- 20 -
Somma di tre addendi - architettura con sommatori ripple-carry rippleSoluzione con sommatori ripple-carry W = (X + Y) + Z = T + Z xn-1 yn-1 x1 y1 x0 y0
Calcolare una somma intermedia: T=X+Y E quindi calcolare il risultato finale: W = T + Z Le somme possono essere realizzate mediante Due sommatori ripple-carry (o due sommatori carry look-ahead) connessi in cascata
Ricorda: la somma di N addendi da n bit richiede n+log2N bit per il risultato
cn 0 zn-1
FA
c2 tn-1 z1
FA
c1 t1 z0
FA
0 t0
Soluzione 2:
Modifica dellalgoritmo di somma e uso di sommatori carry save per migliorare le prestazioni
- 21 -
cn wn+1
FA
cn wn
FA
c2
FA
c1
FA
wn-1
w1
w0
- 22 -
Somma di tre addendi - Prestazioni con sommatori ripple-carry ripplePrestazioni con sommatori ripple-carry (in blu il ritardo di ogni segnale) Ritardo R = (n + 2)T con T ritardo di un Full-Adder Somma di N addendi da n bit: N-1 stadi di somma, risultato su n+log2N bit, ritardo = (n+log2N) T
0 n
FA
0 n-1 n 2
0
FA
0 1
0
FA
0 0
xn-1 yn-1
zn-1
x1
y1 z1
x0
y0
z0
FA
FA
FA
2 0 n 3
FA
1 0 2
FA
csn 0
sn-1
csn-1
cs2
s1
cs1
s0
0
FA
0 n+1 n+2
FA
n+2
n+1
cn wn+1
FA
cn-1 wn
FA
c1
FA
0 w0
wn-1
- 24 -
w1
- 23 -
Produce i due vettori S e CS Ritardo: RCS = 1 Produce il risultato finale Ritardo: RRC = n + 1
Sommatore Ripple-Carry:
FA
FA
FA
1 0 n
1 1
x0
y0
z0
FA
FA
n-1 n
FA
Carry Save
n+1
n+1
s1 cs1 s0
- 26 -
csn
S CS
s0
- 25 -
Sommatore Carry Save come blocco Istanti di generazione dei bit di uscita
X Y Z T=0
T= 0
CS-n bit CS 0 S s0
T= 1
Carry Save
CS-n bit
Genera il bit 0
s0
csn
CS
s0
T=1
csn
CS
T= 2
Genera il bit 1
RC Adder
0
0 csn
CS-n bit CS S s0
w0 W[n..1] wn+1
- 27 -
T= 3
RC Adder W[n+1..2]
- 28 -
0 w1
T= 3 + n
Esempio sommatore a 9 addendi con blocchi Carry Save da 3 addendi Vantaggi pi evidenti al crescere del numero degli operandi
T=0
Carry Save Carry Save Carry Save
T=1
Carry Save Carry Save
Fornire in ingresso ad un sommatore binario naturale le codifiche binarie Ignorare il bit di riporto in uscita Il risultato in complemento a due Ricavare la rappresentazione dellopposto di y (complemento a due) Sommare i valori cos ottenuti come nella regola precedente Il risultato in complemento a due
T=2
Carry Save
T=3
Carry Save
T=4
RC Adder
T=4+n
- 29 -
I risultati sono corretti se e solo se, disponendo di un sommatore binario senza segno ad n bit, il risultato sta nellintervallo: -2n-1 x y 2n-1-1 In caso contrario si verifica overflow (o underflow) aritmetico
- 30 -
Addizione e sottrazione per valori rappresentati in complemento a 2 Condizioni di overflow e di underflow per somme e sottrazioni in complemento a 2 su n bit
A+B
A >0 >0 <0 <0 B >0 <0 >0 <0 1 Segno somma 0 Ov/Un Si-Ov no no Si-Un
A-B=A+(-B)
A >0 >0 <0 <0 B >0 <0 >0 <0 -B = BCPL2 <0 >0 <0 >0 0 1 Segno somma Ov/Un no Si-Ov Si-Un no
cn
Underflow Overflow
n-bit Adder
c0
overflow per somma underflow per somma overflow per sottrazione underflow per sottrazione
= = = =
0 1 0 1
0 1 1 0
1 0 1 0
sn-1
s1
s0
- 31 -
- 32 -
Prodotto P = 143
- 34 -
Moltiplicatori combinatori
Prodotto di due numeri positivi di 3 bit (n bit - 2n bit prodotto)
Moltiplicazione bit a bit
x2 y2 y0x2 y1x2 y2x2 y2x1 y1x1 y2x0 PP02 PP12 PP22 p5 p4 PP21 p3 PP11 PP20 p2 p1 p0 PP01 PP10 PP00 x1 y1 y0x1 y1x0 x0 y0 y0x0
Architetture di moltiplicatori
Le architetture sono definite a seconda del meccanismo di somma e propagazione dei riporti delle righe della matrice di prodotti parziali Somma per righe: i riporti si propagano per righe Somma per diagonali: i riporti si propagano per diagonali Somma per colonne: i riporti si propagano per colonne
- 35 -
- 36 -
x2 0 PP0 0
x1 0
x0
y0 0
Moltiplicatore
yi
PP1 0
y1
cj
Full Adder
cj-1
Sono necessari n sommatori a n bit (con eventuale calcolo del prodotto parziale). Il primo non genera riporti La struttura regolare Prestazioni: dipendono dai sommatori, con sommatori non veloci ordine di 2n
- 37 -
PP2 0 p5 p4 p3 p2 p1 p0
Prodotto
y2
xj
n=0,i-1PPi-n,j+n
- 38 -
Ogni cella del moltiplicatore (tranne quelle dellultima riga) calcola il prodotto parziale corrispondente e una somma parziale Il riporto delle somme parziali si propaga lungo le diagonali Le somme si propagano in verticale Per il calcolo del prodotto parziale, X si propaga in diagonale e Y in verticale Sono necessari n sommatori a n bit (di cui il primo non genera riporti) La struttura regolare Prestazioni: dipendono dai sommatori, con sommatori non veloci ordine di 2n
- 39 -
- 40 -
Cambia per tener conto del segno dei due fattori (caso M e Q negativi)
-q0m3 q0m2 q0m1 q0m0 -q1m3 q1m2 q1m1 q1m0 -q2m3 q2m2 q2m1 q2m0 +q3m3 -q3m2 -q3m1 -q3m0
Nota: questa rappresentazione viene usata, ed corretta, sia per valori positivi che negativi.
- 41 - 42 -
Esempio 1
Si calcoli il prodotto 13 x -9
0 -1 0 0 1 0 1 1 0 0 0 0 0-1-1 0-1 1 0 1 1 0 0 1 1 1 0 1 0 1 13 1 1 = -9 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0 1 0 1 0 1 0 1 1 91 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208
0 1 0 0 0
0 0 0 0 1 1 0 0 1 1
0 0 0 0 0
- 43 -
Esempio 2
Si calcoli il prodotto -13 x -9
-1 -1 -1 -1 0 -1 0 0 0 0 0 0 1 0 0-1-1 0 0 0 0 1 0 0 1 0 1 1 1 1 -13 1 1 = -9 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 1 1 0 0 1 0 1 277 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160
0 0 0 0 0
1 0 0 0 0 0 0 0 1 0
0 1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 1 0 1 117
- 45 -
Sono potenze del due Sono sequenze di bit con un solo uno
- 46 -
Q =
0 0 1 1 1 1 0
Aggiunto
QB =
0+1 0 0 0-1 0
Scrivendo il simbolo +1 quando si passa da 0 ad 1 Scrivendo il simbolo -1 quando si passa da 1 a 0 Scrivendo il simbolo 0 quando due bit successivi sono uguali Se Q termina con 0 aggiungo 0 a QB altrimenti aggiungo -1
0 M(-) M
con estensione del segno, quando con estensione del segno, quando con estensione del segno, quando
- 48 -
- 47 -
Esempio
Moltiplicare 13 x -9, usando lalgoritmo di Booth su 5 bit I valori binari da usare sono:
13 = 01101 -9 = 10111
M(-) 0 0 M M(-)
E inoltre, se:
q0 = 0, la codifica del bit aggiunto 0 e quindi il prodotto parziale 0 q0 = 1, la codifica del bit aggiunto -1 e quindi il prodotto parziale M(-)
- 49 -
1 0 0 0 1 1
1 0 0 0 1 1
1 0 0 0 0 1
1 0 0 1 0 0
0 1 1
Prodotto P = -117
- 50 -
8 - 52 -
12
10
11
- 51 -
somma per colonne con riduzione della matrice dei termini prodotto
La matrice dei prodotti parziali M0 viene ridotta, in termini di righe, tramite contatori paralleli per colonna che non propagano i riporti, ma li usano (insieme ai bit di somma) per costruire la matrice ridotta Il risultato generato dai contatori crea una matrice successiva M1, costituita da un numero inferiore di righe. In questo modo non c propagazione dei riporti allinterno della stessa matrice Il procedimento viene iterato fino a quando non si ottiene una matrice di sole due righe Le due righe costituiscono lingresso ad un sommatore
Batteria di contatori
M0
ipotesi: il tempo di un contatore identico a quello di un Full-Adder domina il tempo del sommatore finale
- 53 - 54 -
Batteria di contatori
M0
M0 di n righe M1 di (2/3)n righe M2 di (2/3)2n righe .. Mh di (2/3)hn righe: se il n di righe uguale a 2 la riduzione termina
Batteria di contatori
Batteria di contatori
M1
M2
Sommatore
- 56 -
M3
- 55 -
Moltiplicatori sequenziali
[1]
Moltiplicatori sequenziali
Architettura di un moltiplicatore sequenziale
[2]
n -1
n -1
q0
Shift dx
FSM
5. Shift a destra del registro [C; A; Q] di una posizione 6. Ripeti dal punto 4 per n volte 7. Preleva il risultato della moltiplicazione dai registro [A; Q]
MUX
1 0
- 57 -
- 58 -
Tutte le considerazioni fatte fino ad ora e tutti i metodi esposti continuano a valere se si attribuisce ai vettori di bit il significato di numeri in virgola fissa Un sistema di numerazione in virgola fissa quello in cui:
La posizione della virgola decimale implicita La posizione della virgola decimale uguale in tutti i numeri
La posizione della virgola equivale alla interpretazione del valore intero moltiplicato per un fattore di scala
- 60 -
Esempio
Si consideri il vettore binario: B = 010.10110 Il suo valore in virgola fissa : VVF(B) = 21 + 2-1 + 2-3 + 2-4 = 2 + 1/2 + 1/8 + 1/16 = 43/16 = 2.6875 Il fattore di scala da utilizzare per la conversione : S5 = 2-5 = 1/32 = 0.03125 Il valore di B, considerandolo intero : VI(B) = 26 + 24 + 22 + 21 = 64 + 16 + 4 + 2 = 86 Da cui, moltiplicando per il fattore di scala, si ha: VVF(B) = VI(B) x S5 = 86 x 0.03125 = 2.6875
- 62 -
Il fattore di scala che consente di passare dalla rappresentazione intera a quella a virgola fissa pari a Sn = 2-n =1/ 2n 2-n Detti VI il valore intero e VVF il valore in virgola fissa di B: VVF(B) = VI(B) x Sn = VI(B) x
- 61 -
Virgola mobile
ERel = costante (= 2-#bit della M)
A pari numero di bit disponibili con la rappresentazione intera o in virgola fissa, i valori rappresentati sono distribuiti uniformemente nel campo di rappresentabilit con la rappresentazione in virgola mobile, i valori rappresentati sono distribuiti non uniformemente nel campo di rappresentabilit
Nella rappresentazione in virgola mobile (floating point) la posizione della virgola mobile ed indicata dal valore di un fattore moltiplicativo ( Mantissa x BaseEsponente)
- 63 -
- 64 -
Esempio
Numeri in virgola fissa
Virgola fissa
Valore rappresentato
Virgola mobile
R4
R4
R1
Valore vero
R1
Valore vero
ERVvero = EA = cost
Valore vero - 65 -
Valore vero - 66 -
E
8 bit
Esponente
M
23 bit Mantissa
+ 3 .1764 10 17
Segno Mantissa Esponente
Lesponente utilizza la codifica in eccesso 127, e cio il valore effettivo dellesponente pari a (E-127)
Rappresenta lo zero (pos/neg) Rappresenta infinito (pos/neg) NotANumber (-1)s x 2(E-127) x (1,M) (127E254 esp.positivi, 126E1esp.negativi)
e M !=0
Standard IEEE 32 bit: intervallo rappresentato -1.M x 10-38 x +1.M x 1038 La precisione consentita di circa 7 cifre decimali
- 68 -
E=0
e M !=0
Il valore pi piccolo rappresentabile normalizzato 2 1-127 x 1,0000 = 2 126 che espresso in virgola mobile da E=1 e M = 0 -2
126
0 ?
+2
126
rappresentazione non normalizzata E=0 e M != 0 Interpretata nel modo seguente: Valore numerico = 2 126 x 0, Il pi piccolo valore rappresentabile 2 126 x 0,0001 = 2 126 x 2 23 = 2 149
- 69 -
Normalizzazione Troncamento
- 70 -
Si fa scorrere verso sinistra la mantissa M fino al primo uno, compreso; sia k il numero di posizioni di tale scorrimento Ricorda: Si sottrae k allesponente n
Le eccezioni che vengono generate dalle unit aritmetiche in virgola mobile sono:
Ad esempio:
0 10001000
9127 - 3 = 6127
00101100...
Scorrimento di 3 posizioni
0 10000101
- 71 -
01100...
- 72 -
Si sceglie il numero con esponente minore Si fa scorrere la sua mantissa a destra un numero di bit pari alla differenza dei due esponenti Si assegna allesponente del risultato il maggiore tra gli esponenti degli operandi Si esegue loperazione di somma (algebrica) tra le mantisse per determinare il valore ed il segno del risultato Si normalizza il risultato cos ottenuto
Si sommano gli esponenti e si sottrae 127 Si calcola il risultato della moltiplicazione delle mantisse Si determina il segno del risultato Si normalizza il risultato cos ottenuto
La sottrazione di 127 dalla somma degli esponenti necessaria in quanto sono rappresentati in eccesso 127 Ea,127 = Ea + 127 Eb,127 = Eb + 127 Eaxb,127 = Eaxb + 127 = (Ea + 127) + (Eb + 127) - 127
Non sempre questultima operazione necessaria Attenzione!!! Il riporto si pu propagare anche dopo la posizione della virgola
- 73 -
- 74 -
Si sottraggono gli esponenti e si somma 127 Si calcola il risultato della divisione delle mantisse Si determina il segno del risultato Si normalizza il risultato cos ottenuto
La somma di 127 alla differenza degli esponenti necessaria in quanto sono rappresentati in eccesso 127 Ea,127 = Ea + 127 Eb,127 = Eb + 127 Ea/b,127 = Ea/b + 127 = (Ea + 127) - (Eb + 127) + 127
- 75 -
- 76 -
Consiste nellignorare i bit dal k-esimo alln-esimo Questo metodo polarizzato o biased Lerrore sempre positivo e varia nellintervallo: 0 < < +(2-k+1 - 2-n)
Rounding
Se il bit k-esimo vale 0, lasciare invariato il bit in posizione (k-1) e ignorare i bit dal k-esimo alln-esimo Se il bit k-esimo vale 1, sommare 1 in posizione (k-1) e ignorare i bit dal k-esimo alln-esimo Questo metodo simmetrico o unbiased Lerrore centrato sullo zero e vale: -(2-k+1 - 2-n) < < +(2-k+1 - 2-n)
- 77 -
Si sceglie il numero con esponente minore e si fa scorrere la sua mantissa a destra un numero di bit pari alla differenza dei due esponenti Si assegna allesponente del risultato il maggiore tra gli esponenti degli operandi Si esegue loperazione di somma tra le mantisse per determinare il valore ed il segno del risultato Si normalizza il risultato cosi ottenuto
Nota:
se A o B = se A o B = 0 se la differenza tra gli esponenti maggiore o uguale al numero di bit a disposizione per le mantisse
- 78 -
[1]
Passo 1
[2]
Nel seguito viene sviluppato un sommatore floating point I numeri A e B sono rappresentati
Si sceglie il numero con esponente minore e si fa scorrere la sua mantissa a destra un numero di bit pari alla differenza dei due esponenti
Individuazione dellesponente minore Emin Calcolo della differenza tra gli esponenti d = EA- EB Selezione della mantissa delloperando con esponente MEmin Scorrimento della mantissa MEmin di d posizioni a dx (tenendo conto dell1 implicito)
Il calcolo della differenza tra gli esponenti consente allo stesso tempo (analizzandone il segno SE) di individuare lesponente minore
- 79 -
- 80 -
[3]
Passo 2
[4]
M1 M2
La mantissa del numero con esponente minore, opportunamente shiftata La mantissa del numero con esponente maggiore
Si assegna allesponente del risultato il maggiore tra gli esponenti degli operandi Selezione dellesponente minore Emax in base a SE. Si riutilizza il segno SE della differenza tra gli esponenti
Passo 1
EA
EB
MA
MB
SE
_
Passo 2
SWAP
EA
EB
MEmin
0 1
Shifter dx
MUX
SE
M1
- 81 -
M2
Emax
- 82 -
[5]
[6]
Si esegue loperazione di somma tra le mantisse per determinare il valore ed il segno del risultato Calcolo della somma algebrica M12 delle mantisse M1 ed M2 ottenute al primo passo, e relativo segno Si utilizza un sommatore/sottrattore su 24 bit con riporto
Se Cout = 1, Shdx M12 e E = Emax + 1, eventuale troncamento Individuazione del numero z degli zeri nei bit pi significativi della mantissa M12 Shift sx della mantissa M12 Calcolo del nuovo esponente E = Emax - z A tale scopo sono necessari:
Passo 3 SA SB SE Cout
Sign
S12 M12
- 83 -
Add/Sub
Un circuito per il calcolo dei leading zeroes Un sottrattore su 8 bit Uno shifter per lallineamento della mantissa
- 84 -
[7]
[8]
Add/Sub
d
Leading 0's Shifter sx
0 MUX 1
SE
MEmin
Shifter dx
Emax
M1
Sign
M2
Emax
M S
- 85 -
E
- 86 -
Leading 0's
Circuiti sequenziali
Nei circuiti sequenziali il valore delle uscite in un determinato istante dipende sia dal valore degli ingressi in quello stesso istante sia dal tempo.
Una stessa configurazione di ingresso applicata in due istanti di tempo successivi pu produrre due valori duscita differenti.
Bistabili Asincroni Bistabili Sincroni: Latch e Flip-Flop FlipRegistri versione del 18/11/03
Un circuito sequenziale ha memoria degli eventi passati e, quindi, richiede degli elementi in grado di conservare informazioni.
In un generico istante t linformazione relativa al contenuto di questa memoria rappresentata nel concetto di stato.
-2-
Bistabili: classificazione
Classificazione dei bistabili:
Asincroni
Il termine bistabile deriva dal fatto che tale elemento stabile in due stati (0 e 1) e che le transizioni di stato sono forzate da un segnale di ingresso.
Sono privi di un segnale di sincronizzazione e modificano il loro stato rispondendo direttamente ad eventi sui segnali di ingresso.
Nota: i bistabili sono caratterizzati dalla volatilit cio rispettano quanto indicato solo se alimentati.
Sincroni
sono sensibili ad un segnale di controllo (spesso il clock) e la transizione da uno stato allaltro avviene solo in corrispondenza di un impulso del segnale di controllo. Ulteriore classificazione dei bistabili sincroni:
bistabili sincroni controllati (gated latch); flip-flop. flip-flop master-slave (a livello o pulse-triggered) flip-flop edge-triggered (a fronte)
-4-
Numero di ingressi dellelemento di memoria. Modo in cui gli ingressi ne determinano lo stato.
-3-
Bistabili asincroni: SR
Il bistabile asincrono pi semplice il bistabile SR (Set-Reset)
Tempo t= t0=0
Condizione iniziale: S=0, R=0 e Q=0, Q=1 La porta 1 ha in ingresso 1,0 e in uscita, al tempo t2, Q=0 La porta 2 ha in ingresso 0,0 e in uscita, al tempo t3, Q=1 La porta 1 ha in ingresso 1,1 e mantiene luscita a Q=0 mentre la porta 2 ha in ingresso 0,0 e mantiene luscita a Q=1 La porta 1 ha in ingresso 0,1 e quindi mantiene luscita Q=0 mentre la porta 2 ha in ingresso 0,0 e quindi mantiene luscita a Q=1. Il circuito stabile nello stato Q=1, Q=0
Q
S
Tempo t=t2
Q
R
Tempo t= t3
S R
SR Asincrono
Q Q
Q
t0
-5-
T1T2T3 t1 t2 t3 t4
t5 t6 t7 t8
-6-
Bistabili asincroni: SR
I segnali S e R prendono il nome di Set e Reset:
La porta 2 ha in ingresso 1,0 e in uscita, al tempo t6, Q=0. La porta 1 ha in ingresso 0,0 e in uscita, al tempo t7, Q=1. La porta 2 ha in ingresso 1,1 e mantiene luscita a Q=0 mentre la porta 1 ha in ingresso 0,0 e quindi mantiene luscita a Q=1.
Tempo t=t6
Riassumendo:
Tempo t=t7
La porta 2 ha in ingresso 0,1 e quindi mantiene luscita a Q=0 e la porta 1 ha in ingresso 0,0 e quindi mantiene luscita a Q=1 Il circuito stabile nello stato Q=0, Q=1
Un valore 1 sullingresso S quando R ha valore 0 porta le uscite allo stato stabile Q=1, Q=0; riportando a 0 lingresso S lo stato delle uscite non cambia; Un valore 1 sullingresso R con S a valore 0 porta le uscite allo stato stabile Q=0, Q=1; riportando a 0 lingresso R lo stato delle uscite non cambia. Un valore 0 sugli ingressi S e R non modifica lo stato; La configurazione S=1 e R=1 una configurazione non ammissibile.
-7-
ingressi: ingressi primari it, stato presente Qt uscita: stato prossimo Qt+1
nel passaggio degli ingressi da 11 a 00, non possibile identificare chi tra S o R cambia per primo; il bistabile asincrono ritorna quindi in modo imprevedibile allo stato Q=0 e Q=1 oppure allo stato Q=1 e Q=0 Questa condizione chiamata corsa critica (race condition) o transizione non-deterministica
ingressi: stato presente Qt, stato prossimo Qt+1 uscita: configurazione degli ingressi primari che realizza la transizione
se sono presenti anche le configurazioni per clock non attivo, in generale viene sintetizzata in modo separato per clock attivo e clock non attivo
- 10 -
-9-
Sincronismo
Un bistabile asincrono modifica il proprio stato solo in relazione ad eventi sugli ingressi Il progetto di circuiti digitali pu richiedere che la modifica dello stato avvenga in modo controllato
Ad esempio, solamente in istanti di tempo ben precisi cosicch eventi transitori non costituiscano eventi significativi
Questa esigenza impone laggiunta di un ingresso di controllo al bistabile Il segnale applicato allingresso di controllo pu essere:
t1 t2 t3 t4
t5 t6 t7 t8
- 12 -
Segnale di clock
Il clock un segnale indipendente caratterizzato da un periodo di clock (o ciclo di clock) TCK.
Nel periodo TCK il segnale assume il valore logico 1 per un tempo TH e il valore logico 0 per un tempo TL
Il passaggio dal valore 0 al valore 1 detto fronte di salita Il passaggio dal valore 1 al valore 0 detto fronte di discesa
Fronte di discesa 1
0 Fronte di salita
TH
TH
Periodo TCK
- 13 - 14 -
Tpro
La relazione ingresso-stato (quando gli ingressi sono efficaci) La relazione stato-uscita (quando vengono modificate le uscite)
La relazione ingresso-stato (tipo di temporizzazione) definisce quando gli ingressi modificano lo stato (interno) del bistabile
Durante tutto lintervallo di tempo in cui il segnale di controllo attivo un cambiamento dei segnali di ingresso modifica oltre allo stato interno anche le uscite. Bistabili con questa relazione stato-uscita sono denominati LATCH
Il segnale di controllo solitamente chiamato enable.
Durante tutto lintervallo di tempo in cui il segnale di controllo attivo, qualsiasi variazione sui segnali di ingresso influenza il valore dello stato interno del bistabile.
bistabili con commutazione a livello.
Le uscite cambiano quando cambiano gli ingressi Le uscite vengono aggiornate su di un fronte del segnale di sincronismo. Bistabili con questa relazione stato-uscita sono denominati FLIPFLOP Le uscite cambiano in corrispondenza di un evento del clock
- 16 -
Il valore dello stato interno del bistabile viene aggiornato solamente in corrispondenza di un fronte del segnale di controllo.
bistabili con commutazione sul fronte (di salita oppure di discesa).
- 15 -
Bistabili sincroni
Tabella riassuntiva
Relazione Stato-Uscita Livello Relazione Ingresso-Stato Fronte Fronte Flip-Flop edge-triggered
Latch: SR
Il latch SR ottenuto aggiungendo al bistabile asincrono SR un circuito di controllo.
Sul livello alto di C una variazione sugli ingressi modifica lo stato interno e lo stato interno modifica le uscite Q e Q. S S C=1 modalit trasparente; Q SR C=0 modalit opaca; C Asincrono R Q R
Espressione logica
Q*=CQ+C(S+RQ)
Livello
- 17 -
- 18 -
Latch: D
Il latch D ottenuto a partire da un latch SR imponendo che S=R
Latch: JK
Il latch JK simile ad un SR, ma con la configurazione J=K=1 (con C=1) il valore dello stato viene invertito
Q
D: Delay o Data
D C
Latch SR
R
Q Q
Latch SR
R
Espressione logica
Q*=CQ+CD
Espressione logica
Q*=CQ+C(KQ+JQ)
- 19 -
- 20 -
Flip-Flop
I latch, spesso, non consentono di garantire un comportamento affidabile nella realizzazione di una data funzionalit. Esempio 1: analisi del comportamento del latch JK
C J K Q Q ? ?
Flip-Flop
Esempio 2: shift-register
Dato Q D Latch D1 Q Q D Latch D2 Q Q D Latch D3 Q Q D Latch D4 Q
C C Dato Q1 Q2 Q3 Q4 C Dato Q1 Q2 Q3 Q4
Per J=K=1 il bistabile ha un comportamento instabile Le uscite Q e Qhanno un comportamento oscillatorio ed il valore risultante quando J, K o C cambiano non noto a priori (corsa critica) Per un funzionamento corretto con gli ingressi J=K=1: Un solo cambiamento di stato per ciclo di clock per evitare leffetto di propagazione indesiderato tra uscite ed ingresso.
- 21 -
: Ritardo di propagazione
Due problemi:
Non produce una singola traslazione di un bit (non rispetta le specifiche) Il risultato dipende:
sia dal ritardo di propagazione dei latch; sia dalla durata del valore alto su C.
- 22 -
Flip-Flop
Per evitare leffetto di propagazione indesiderata, i bistabili sincroni vengono modificati in modo che lo stato possa modificare le uscite solo in corrispondenza di un evento (fronte) del segnale di controllo
Flip-Flop: SR Master-Slave
I flip-flop master-slave vengono realizzati utilizzando due latch in cascata che hanno il segnale di sincronismo in contrapposizione di fase
Flip-Flop:
Il primo latch sincrono chiamato latch principale (master). Il secondo latch sincrono chiamato latch ausiliario (slave). I due latch lavorano in contrapposizione di fase
sul fronte
C
R
Latch SR Q R Master
R Q
Latch SR R Slave
R
C FF SR Q
R Simbolo standard
- 23 -
- 24 -
Flip-Flop: D Master-Slave
Flip-flop master-slave D (fronte di discesa)
D C
Q S Latch SR Master Q R
S
Flip-Flop: JK Master-Slave
Flip-flop master-slave JK (fronte di discesa)
Q Q J C K
Q S Latch SR Master Q R
S
Latch SR Slave
R
Latch SR Slave
R
Q Q
Espressione logica
Q*= D
Espressione logica
Q*=JQ+KQ
C=1
- 25 -
- 26 -
Flip-Flop: Master-Slave
Funzionamento:
Segnale di sincronismo sul livello alto.
Latch SR Slave
R
Il latch master trasparente e modifica il valore dello stato interno al FlipFlop in relazione ai valori assunti dai segnali di ingresso. Il latch slave opaco e non consente che le uscite vengano modificate. Il latch master passa da trasparente a opaco mantenendo stabile il valore dello stato interno. Il latch slave passa da opaco a trasparente e lo stato interno aggiorna le uscite.
Espressione logica
Q*=TQ+TQ
Durante il livello attivo alto del segnale di sincronizzazione il valore degli ingressi (ad esempio, S e R) determinano il valore dello stato interno del latch master. Sul fronte di discesa del segnale di clock viene aggiornato il valore delle uscite del bistabile che rimane fisso fino al successivo fronte di discesa.
- 27 -
- 28 -
Flip-Flop: Edge-Triggered
I flip-flop Edge-Triggered vengono realizzati producendo, o fisicamente o funzionalmente, la derivata del segnale di clock
Flip-Flop: Edge-Triggered
Flip-Flop D Edge-Triggered costituito da 3 latch con comportamento globale equivalente a quello prima visto
Flip-Flop D Edge-Triggered
C C Controllo B ritardo C B Controllo
- 29 -
Flip-Flop D Edge-Triggered
Comportamento funzionalmente equivalente
D D
Q Latch SR 3 Q R
S
Q S Latch SR 1 Q R Q S Latch SR 2 Q R
D
Q S Latch SR 3 Q R
Q S Latch SR 3 Q R
C
- 30 -
Flip-Flop: Edge-Triggered
Funzionamento:
Per C=1 gli ingressi di Latch SR 3 sono S=0 e R=0 Durante C=1 0, il valore su D attiva il latch SR 1 e, successivamente, il latch SR 2 viene attivato.
Se D=1, il segnale Q del latch SR 1 viene portato a 1; se D=0 il segnale Q del latch SR 1 resta a 0
Nota:
per C=1 il Latch SR 1 pu trovarsi nella conzione instabile 11 (a cui consegue Q=Q=0); tale situazione viene risolta nel passaggio di C da 1 a 0 producendo uno stato stabile e deterministico che dipende solo dal valore assunto da D durante la transizione. I tempi di Hold e Set-Up devono essere rispettati.
D
Stabilire lo stato iniziale del Flip-Flop o del Latch; Mantenere il Flip-Flop o il Latch in uno stato particolare indipendentemente dai dati presenti ai terminali di ingresso.
FF D
C
Clear
FF D
Q
- 32 -
Esempio di simbolo standard con ingressi diretti di Pre-Set e Clear. (FF D su fronte di discesa)
- 31 -
Nota: i bistabili Latch e M/S considerati sono attivi a livello alto. Analoghe considerazioni possono essere effettuale per elementi attivi a livello basso.
Tipo Ingressi stabili Sempre Clock alto (TSU e TH prima del fronte di discesa) Clock alto (TSU e TH prima del fronte di discesa) Transizione 0 1 del Clock (TSU e TH attorno al fronte di salita) Transizione 1 0 del Clock (TSU e TH attorno al fronte di discesa)
- 33 -
Quando le uscite sono valide Ritardo di propagazione dal cambiamento degli ingressi Ritardo di propagazione dal cambiamento degli ingressi Ritardo di propagazione dal fronte di discesa del clock Ritardo di propagazione dal fronte di salita del clock Ritardo di propagazione dal fronte di discesa del clock
Flip-Flop attivo sul fronte di salita Flip-Flop attivo sul fronte di discesa
- 34 -
Introduzione
Circuiti sequenziali speciali
Registri
Esiste una classe di circuiti sequenziali la cui progettazione potrebbe seguire il processo classico di sintesi ma che pi conveniente analizzare in altro modo. A questa classe appartengono:
Registri
Memorizzano una definita quantit di informazione Possono operare sul contenuto una o pi semplici trasformazioni. Shift destro/sinistro Caricamento parallelo/seriale
Contatori
Attraversano ripetutamente un numero definito di stati Contatori sincoroni Contatori asincorni
- 36 -
Registri
Un registro un elemento di memoria in grado di conservare un insieme di bit, denominato parola, su cui pu eventualmente operare una o pi semplici trasformazioni.
Registri
Registro parallelo-parallelo
Bench si possa utilizzare un qualunque tipo di bistabile, per realizzare i registri si preferisce utilizzare FF D (master-slave o edge-triggered). Modalit di caricamento dati
Q Q
Q Q
Q Q
Q Q
Parallelo Seriale
Clock
Q3
Q2
Q1
Q0
- 37 -
- 38 -
Registri
Registro serie-serie (Shift Register Registro a Scorrimento)
Registri
Registro serie-parallelo
Q Q
Q Q
Q Q
Q Q
Q Q
Q Q
Q Q
Q Q
Clock
Clock
Q3
Q2
Q1
Q0
- 39 -
- 40 -
Registri
Registro parallelo-serie
Registri
Registro circolare a 4 bit
In fase di traslazione, ricopia il bit pi significativo nella posizione pi significativa (estensione del segno)
D3 D2 D1 D0
In fase di traslazione, trasferisce il bit meno significativo al posto di quello pi significativo, spostando i rimanenti di una posizione a destra.
D3 D2 D1 D0
Load/Shift D Q Q Clock D Q Q D Q Q D Q Q Q
Load/Rotate D Q Q Clock D Q Q D Q Q D Q Q Q
- 41 -
- 42 -
Introduzione
Le uscite di un circuito sequenziale in un dato istante di tempo dipendono:
Dallo condizione iniziale del circuito; Dalla sequenza di ingressi, applicata in un arco temporale finito, fino allistante considerato
Questo aspetto implica che il dispositivo ha memoria degli eventi passati In un generico istante t linformazione relativa al contenuto di questa memoria rappresentata nel concetto di stato
Nota: le reti combinatorie possono essere considerate un caso particolare di sistema sequenziale dove lo stato unico
-2-
Progetto e strumenti
Progetto di reti combinatorie
I metodi sono noti e ben assestati Si ricercano nuove soluzioni che aumentino lefficienza:
Computazionale degli strumenti automatici Nelluso delle risorse (es. BDD) Metodologica (es. Signature Cube - 92)
La transizione degli stati descritta in termini di tabelle o diagrammi Le informazioni sugli stati sono esplicite Le informazioni sull'area e sui ritardi sono implicite Il modello del circuito una netlist ovvero un insieme di componenti, registri e logica combinatoria, collegati tra loro Le informazioni sugli stati sono implicite Le informazioni sull'area e ritardi sono esplicite
Strutturale
-3-
-4-
Modello comportamentale
Il modello generale delle macchine sequenziali a cui si fa riferimento quello delle Macchine a Stati Finiti Deterministiche (Finite State Machine - FSM)
I - Alfabeto di Ingresso
con questo modello le macchine sequenziali vengono descritte tramite la teoria degli automi su questo modello si basano la metodologia e le tecniche di sintesi esposte
E' costituito dall'insieme finito dei simboli di ingresso Con n linee di ingresso si hanno 2n simboli
U - Alfabeto d'Uscita
E' costituito dall'insieme finito dei simboli d'uscita Con m linee d'uscita si hanno 2m simboli
fisica realizzabilit: il numero di stati finito e il comportamento della macchina in un istante t non dipende da eventi futuri dato uno stato ed una configurazione di ingresso il nuovo stato identificato univocamente
-5-
Ad ogni stato presente e per ogni simbolo di ingresso la funzione associa uno stato prossimo: :SI S Ad ogni coppia {stato, simbolo di ingresso} associato, se specificato, uno ed uno solo stato prossimo. Definisce levoluzione della macchina nel tempo, in risposta agli eventi in ingresso
la funzione di uscita costituisce la risposta della macchina quando, trovandosi in un certo stato presente, riceve un simbolo di ingresso nelle macchine di Mealy, luscita va letta mentre la macchina subisce una transizione di stato
Macchine di Moore
Funzione d'uscita
Genera il simbolo d'uscita Macchine di Mealy: luscita dipende sia dallo stato presente sia dallingresso: :S I U Macchine di Moore: luscita dipende solamente dallo stato presente: :SU
-7-
la funzione di uscita costituisce la risposta della macchina associata allo stato in cui si trova nelle macchine di Moore, luscita viene letta mentre la macchina si trova in un determinato stato
E possibile trasformare una macchina di Mealy in una macchina equivalente di Moore, e viceversa
-8-
Architettura generale
Struttura generale di una macchina sequenziale (Huffman):
x1 x2 xn z1 z2
Ingressi
RETE COMBINATORIA ;
zn
z1 z2 zn
Uscite
Ingressi
Uscite
Stato Presente St
y1, y2yk: variabili stato presente
y1
FF1
Y1
Stato Presente St
FF1
y2
FF2
Y2
y2
FF2
Y2
Nota: la Memoria di stato Nota: la Memoria di stato coincide con ii Registri di coincide con Registri di stato solo nel caso di stato solo nel caso di bistabili di tipo D bistabili di tipo D
yk
Yk
Clock
Nota: la Memoria di stato Nota: la Memoria di stato coincide con ii Registri di coincide con Registri di stato solo nel caso di stato solo nel caso di bistabili di tipo D bistabili di tipo D
yk
Yk
Clock
Architettura generale
La sintesi comportamentale di una rete sequenziale consiste nella:
Ingressi
RETE COMBINATORIA
y1
RETE COMBINATORIA
FF1
Y1
Stato Presente St
z1 z2 zn
y2
FF2
Y2
Uscite
yk
Yk
Clock
Nota: la Memoria di stato Nota: la Memoria di stato coincide con ii Registri di coincide con Registri di stato solo nel caso di stato solo nel caso di bistabili di tipo D bistabili di tipo D
La funzione di stato prossimo dipende dal tipo di bistabili utilizzati. La funzione di uscita non dipende dal tipo di bistabili utilizzati.
- 12 -
Architettura generale
La funzione dipende dai bistabili utilizzati:
x1 x2 xn
FUNZIONI ; Uscite
Gli indici di colonna sono i simboli di ingresso i I Gli indici di riga sono i simboli di stato sj S che indicano lo stato presente Gli elementi della tabella sono:
Ingressi
i1 S1 Sj
t t+1/u j
i2 Sk
t+1/u k
. . . . .
Stato Presente St
y1
FF1
Y1
y2
FF2
Y2
yk
FFk
Yk
Clock
sj = (i, sj ) il simbolo stato prossimo i simboli d'uscita sono associati allo stato presente .
- 14 -
. . . . . .
Registri di stato
- 13 -
Ogni nodo rappresenta uno stato Ad ogni nodo associato un simbolo d'uscita (macchine di Moore) Ogni arco rappresenta le transizioni di stato Ad ogni arco associato un simbolo di uscita (macchina di Mealy) Ingressi e Uscite (macchina di Mealy) Ingressi (macchina di Moore)
- 15 -
L - Insieme degli:
- 16 -
e il passo che richiede maggior intuito, anche se pi semplice rispetto al costruire direttamente la tabella degli stati
0
S1/01 0
1 S2 S2 S3 S0
U 00 01 10 11
una volta identificato lo stato iniziale, si applicano a tale stato tutte le possibili configurazioni di ingresso
S0 S1 S2 S3
S1 S3 S1 S3
stato iniziale: identificazione univoca e non ambigua di uno stato da cui iniziare la stesura del diagramma degli stati
stato di reset: se questo definito esplicitamente nella specifica funzionale
ogni configurazione di ingresso pu portare a uno stato gi esistente oppure a un nuovo stato che viene aggiunto al diagramma per ogni nuovo stato introdotto, si applicano tutte le sequenze di ingresso . Il procedimento termina quando non vengono pi introdotti nuovi stati
- 18 -
- 17 -
non introduce alcuna informazione aggiuntiva. Definisce la cardinalit iniziale degli stati e le funzioni e in forma astratta
S0 S1 S2 S3 0 S1 S3 S1 S3 1 S2 S2 S3 S0 U 00 01 10 11
specifiche funzionali analitiche: non necessario ulteriore raffinamento dalle specifiche, c uno stato di RESET esplicito e la macchina da sintetizzare una macchina di Moore 1
Disp /1
Reset 0
Pari /0
0 P
0
1 D P 0 1
P D
Identificazione di una macchina equivalente (oppure di una macchina compatibile) minima a quella rappresentata dalla tabella degli stati I criteri di riduzione del numero degli stati per equivalenza e compatibilit verranno affrontati in seguito
- 20 -
1
- 19 -
In modo informale, si pu dire che questo passo traduce la tabella degli stati in una tabella rappresentata tramite funzioni di commutazione. Nota: ad una tabella degli stati corrispondono pi tabelle delle transizioni
Assegnamento degli stati 2 variabili di stato y0y1 (quindi 2 bistabili) Assegnamento banale
il numero di variabili di stato necessarie (yi: stato presente e Yi: stato prossimo) a rappresentare la cardinalit degli stati
In questo modo viene determinato il numero di flip-flop necessari a relizzare la macchina
S0 S1 S2 S3
S0 = 00 S1 = 01 S2 = 11 S3 = 10
assegna una codifica (configurazione tra quelle disponibili nel codice) ad ogni stato.
La scelta della codifica influenza in modo significativo la realizzazione e complessit circuitale della funzione stato prossimo (anche in funzione dei bistabili utilizzati)
Scelta degli elementi di memoria. Una volta scelti gli elementi di memoria, la tabella delle eccitazioni della macchina ottenuta dalla tabella delle transizioni della macchina e da quella delle eccitazioni del bistabile scelto
Ingressi
Al termine di questo passo, per ogni bistabile (e cio per ogni variabile di stato) si hanno le funzioni di commutazione relative ai suoi ingressi che consentono le transizione stato presente - stato prossimo
eccitazioni
Nota bene: se il bistabile scelto il FF D, allora la tabella delle eccitazioni della macchina coincide con la sua tabella delle transizioni
6. Sintesi ottimizzata sia della rete combinatoria che realizza la funzione stato prossimo sia della rete combinatoria che realizza la funzione d'uscita
- 23 -
Memoria di stato
- 24 -
La configurazione binaria dello stato presente corrisponde alluscita dei bistabili relativi La configurazione binaria dello stato prossimo precisa quello che si desidera ottenere
Tabella delle eccitazioni con FF SR y0y1 I 00 01 11 10 0 0-,10 10,01 01,-0 -0,01 10,10 10,-0 -0,01 01,0U 00 01 10 11
A seconda del tipo di bistabile scelto, variano i segnali che devono essere generati per realizzare la transizione stato presente stato prossimo desiderata
Q 0 1 0 0 1 1
Q* 0 1 0 1 0 1
C 0 0 1 1 1 1
S 0 1 0 -
R 0 1 0
S0R0 S1R1
La tabella delle eccitazioni di un bistabile rappresenta il mezzo di collegamento tra la tabella delle transizioni e la tabella delle eccitazioni di una specifica macchina a stati.
- 25 -
Dalla tabella delle eccitazioni posso sintetizzare le reti combinatorie (mappe di Karnaugh) che realizzano S0R0 S1R1 in funzione di y0,y1 e I
- 26 -
dalle specifiche: .. z assume il valore 1 se e solo se sullingresso si sono presentati almeno due 0 seguiti esattamente da due 1.. una sequenza di tre o pi 1 su x, indipendentemente dalla successione di valori di x ricevuti precedentemente, porta la macchina in uno stato in cui si aspetta una sequenza da riconoscere. Inoltre, sicuramente al terzo 1 luscita vale 0. Chiamiamo questa sequenza di tre o pi 1 non utile a fini del riconoscimento la sequenza di esattamente tre 1 su x la minima sequenza non utile
specifiche funzionali analitiche: non necessario ulteriore raffinamento delle specifiche dalle specifiche, la macchina da sintetizzare una macchina di Mealy la macchina un riconoscitore di sequenze nella forma
x = ..0011.. z = ..00010..
- 27 -
Nota: una sequenza di soli due 1 non sarebbe univoca per luscita, in quanto in corrispondenza del secondo 1 luscita potrebbe valere 1 (sequenza precedente riconosciuta) oppure 0 (sequenza precedente non riconosciuta)
C: secondo 0
0/0 B
0/0 C 0/0
1/0 D 0/0 B B
E 0/0 1/0 A
B C D E
1/0
- 29 -
- 30 -
dalle specifiche: .. z assume il valore 1 se e solo se sullingresso si sono presentati almeno due 0 seguiti esattamente da due 1.. una sequenza di due o pi 0 su x, indipendentemente dalla successione di valori di x ricevuti precedentemente, porta la macchina in uno stato in cui si presentata la parte iniziale, indispensabile, della sequenza da riconoscere. Inoltre, sicuramente luscita vale 0. Chiamiamo questa sequenza di due o pi 0 utile a fini del riconoscimento la sequenza di esattamente due 0 su x la minima sequenza utile
1/0
C: primo 0
- 31 -
0/0
- 32 -
due uscite G e M, luscita vale 0 se semaforo rosso, 1 se semaforo verde ingresso primario: P, 1 se premuto, 0 altrimenti
Una macchina sequenziale sincrona ha un ingresso P e due uscite G e M. Se P=0, le due uscite si alternano a 1 ad ogni impulso di sincronismo. Se P=1, le due uscite vanno a 0 per due impulsi di sincronismo. Successivamente, ritornano ad alternarsi con un 1 su quella che precedentemente era 0. Solo dopo una nuova alternanza, P viene preso in considerazione
- 34 -
Sintesi: Esempio 3
Si sintetizzi la funzione di stato prossimo della seguente FSM nellipotesi di utilizzare bistabili di tipo SR
Tabella degli stati
S0 S1 S2 S3 00 S0 S1 S2 S3 01 S0 S1 S3 S3 11 S2 S0 S0 S2 10 S1 S1 S2 S3 Z 1 0 1 0
a/01 0
e/00 0; 1 0; 1
g/10 0; 1
a/01
Codifica
S0 S1 S2 S3 00 01 11 10
- 36 -
00 01 11 10
- 35 -
Sintesi: Esempio 3
Tabella delle eccitazioni di un bistabile di tipo SR
Q 0 0 1 1 Q 0 1 0 1 SR 010 01 -0
Sintesi: Esempio 3
Le quattro mappe di Karnaugh che si ottengono sono quindi:
I1 I0 Q1 Q0 00 01 11 10 I1 I0 Q1 Q0 00 01 11 10
00 01 11 10
0 0
0 0 0
1 0 0 1
1 0
00 01 11 10
0 0 -
1 1 -
0 1 0
0 0 0 -
Set0= Q1Q0I1+I1I0Q0=Q1Q0I1+Set1
I1 I0 Q1 Q0
Res0=Q0I0
I1 I0 Q1 Q0 00 01 11 10
00 01 11 10
00 01 11 10
- 37 -
00 0- 00- -0 -0 -0 -0 0-
01 0- 00- -1 -0 01 -0 0-
11 10 10 0- 001 01 -0 10
10 0- 10 0- -0 -0 -0 -0 0-
00 01 11 10
00 0 0 -
01 0 0 -
11 1 0 0 -
10 0 0 -
00 01 11 10
0 0
0 0
0 1 0
0 0
Set1= I1I0Q0
- 38 -
Res1=I1I0Q0 = I1Res0
Appendice
Trasformazioni tra bistabili
Configurazione di ingressi 00: luscita non cambia valore Configurazione di ingressi 01: luscita assume valore 0 Configurazione di ingressi 10: luscita assume valore 1 Configurazione di ingressi 11: luscita cambia valore dopo ogni fronte di salita del clock
S1/1
00;10
S0 S1
00 S0 S1
01 S0 S0
11 S1 S0
10 S1 S1
U 0 1
Codifica Naturale
S0=0; S1=1
Q iHiL
oppure
10 1 1 U 0 1
Q iHiL
S0=1; S1=0
1 0 00 1 0 01 1 1 11 0 1 10 0 0 U 0 1
0 1
00 0 1
01 0 0
11 1 0
Q 0 1 0 0 1 1
Q* 0 1 0 1 0 1
C 0 0 1 1 1 1
D 0 1 0 1
Q 0 1 0 0 1 1
Q* 0 1 0 1 0 1
C 0 0 1 1 1 1
T 0 1 1 0
- 41 -
Realizzazione delle reti combinatorie (FF SR) SR) Codifica Naturale (S0=0; S1=1) cont.
00 0 01 -0
iHiL
0 1
00 0 1
01 0 0
11 1 0
10 1 1
U 0 1
01 001
11 10 01
10 10 -0
U 0 1
Q
Mappa di Karnaugh S
iHiL Q
Q 0 1 0 0 1 1
Q* 0 1 0 1 0 1
C 0 0 1 1 1 1
S 0 1 0 -
R 0 1 0
00 0 01 -0
iHiL
01 001
11 10 01
10 10 -0
U 0 1
Q
0 1
00 0 -
01 0 0
11 1 0
10 1 -
S= !Q * iH
iH (J) C
Q FF SR
Nota: Luscita corrisponde al Nota: Luscita corrisponde al bit di stato. La funzione bit di stato. La funzione duscita U=Q. duscita U=Q.
Mappa di Karnaugh R
iHiL
iL (K)
0 1
00 0
01 1
11 0 1
10 0 0
R= Q * iL
- 43 -
- 44 -
Realizzazione delle reti combinatorie (FF JK) JK) Codifica Naturale (S0=0; S1=1) cont.
Q
0 1
00 0 1
01 0 0
11 1 0
10 1 1
U 0 1
00 0 01 -0
iHiL
01 0-1
11 1-1
10 1-0
U 0 1
Q iHiL
Mappa di Karnaugh J
iHiL Q
Q 0 1 0 0 1 1
Q* 0 1 0 1 0 1
C 0 0 1 1 1 1
J 0 1 -
K 1 0
00 0 01 -0
01 0-1
11 1-1
10 1-0
U 0 1
Q
0 1
00 0 -
01 0 -
11 1 -
10 1 -
J= iH
iH (J) C
Q FF JK
Nota: Luscita corrisponde al Nota: Luscita corrisponde al bit di stato. La funzione bit di stato. La funzione duscita U=Q. duscita U=Q.
Mappa di Karnaugh K
iHiL
iL (K)
0 1
00 0
01 1
11 1
10 0
K= iL
- 45 -
- 46 -
Realizzazione delle reti combinatorie (FF D) Codifica Naturale (S0=0; S1=1) cont.
Tabella delle eccitazioni della FSM
(con FF D) Q iHiL
0 1
00 0 1
01 0 0
11 1 0
10 1 1
U 0 1
Tabella delle eccitazioni FF D
0 1
00 0 1
01 0 0
11 1 0
10 1 1
U 0 1
Q 0 1 0 0 1 1
Q* 0 1 0 1 0 1
C 0 0 1 1 1 1
D 0 1 0 1
- 47 -
Nota: Nel caso si faccia uso di Nota: Nel caso si faccia uso di FF D, la tabella delle eccitazioni FF D, la tabella delle eccitazioni coincide esattamente con la coincide esattamente con la tabella delle transizioni. tabella delle transizioni. Questo aspetto rende pi semplice Questo aspetto rende pi semplice prevedere laffetto della codifica prevedere laffetto della codifica sulla realizzazione e ben si presta sulla realizzazione e ben si presta per lapplicazione di euristiche. per lapplicazione di euristiche.
0 1
00 0 1
01 0 0
11 1 0
10 1 1
U 0 1
iH (J) iL (K) C
Q FF D Q
D= !Q * iH + Q * !iL
- 48 -
Trasformazioni
T utilizzando un SR
Flip Flop SR Q*=CQ+C(S+RQ) Flip Flop T Q*=CQ+C(TQ+TQ) Q=0: S+R0=T1+T0 S=T
Le trasformazioni tra bistabili sono molto utili quando richiesto uno specifico elemento di memoria ma non disponibile Un modo differente per raggiungere lo stesso obiettivo quello di utilizzare le equazioni caratteristiche
Flip Flop SR Q*=CQ+C(S+RQ) Flip Flop JK Q*=CQ+C(JQ+KQ) Flip Flop D Q*=CQ+CD Flip Flop T Q*=CQ+C(TQ+TQ)
Q=1: S+R1=T0+T1 S+R=T SR=T Quindi quando T=1 deve essere S=0 e R=1 mentre quando T=0 deve essere S=1; R=0 oppure S=0; R=1 ma non S=1; R=0 S=TQ+TQ R=TQ
SR utilizzando un T
Flip Flop T Q*=CQ+C(TQ+TQ) Flip Flop SR Q*=CQ+C(S+RQ) Q=0: T1+T0=S+R0 Q=1: T0+T1=S+R1 T=S T=S+R T=SR
T=SQ+(SR)Q
- 49 - 50 -
Sintesi
La sintesi si svolge nei seguenti passi:
1. Realizzazione del diagramma degli stati a partire dalle specifiche informali del problema 2. Costruzione della tabella degli stati 3. Riduzione del numero degli stati: ottimizzazione 4. Costruzione della tabella delle transizioni
Assegnamento degli stati: Codice & codifica Scelta degli elementi di memoria
5. Costruzione della tabella delle eccitazioni 6. Sintesi sia della rete combinatoria che realizza la funzione stato prossimo sia della rete combinatoria che realizza la funzione d'uscita
-2-
Eliminando 5 stati
per riduzione del numero di bit necessari per codificare gli stati
3 stati implicano luso di 3 codifiche tra le 4 possibili. 0 1 a b/0 c/1 b a/0 c/0 c b/0 a/0 - -/- -/-
-3-
-4-
per ogni stato si di M1, esiste uno stato sj di M2 tale che ponendo la macchina M1 in si e la macchina M2 in sj e applicando alle due macchine una qualunque sequenza di ingresso I le due sequenze di uscita sono identiche. E viceversa per M2 rispetto ad M1
completamente specificate: identificazione di stati indistinguibili o equivalenti non completamente specificate: identificazione di stati compatibili
macchina non completamente specificata: se in corrispondenza di qualche coppia {stato presente, configurazione di ingresso} o il simbolo di uscita, o lo stato prossimo o entrambi non sono specificati
Inoltre, deve essere prevista leliminazione degli stati non raggiungibili dallo stato di reset, se questo specificato
-5-
Nota: nella definizione di equivalenza sono considerate solo le relazioni ingresso-uscita quindi le due macchine possono avere un insieme di stati diverso e in particolare di diversa cardinalit
-6-
I - una generica sequenza di ingresso ij, ..., ik U - la sequenza d'uscita ad essa associata ottenuta attraverso . si, sj - due generici stati
ponendo la macchina in si oppure in sj e applicando una qualsiasi sequenza di ingresso, le uscite sono identiche.
Due stati indistinguibili sono equivalenti e possono essere sostituiti con un solo stato.
In generale, un gruppo di stati tra loro equivalenti pu essere raggruppato in unica classe di equivalenza Linsieme delle classi di equivalenza determina linsieme degli stati della macchina minima equivalente
-8-
-7-
due stati appartengono alla stessa classe se e solo se sono equivalenti due stati appartengono a classi diverse se e solo se non sono equivalenti linsieme S si dice partizionato nelle m classi C1, ..., Cm se: C1 C2 ... Cm = S Ci Cj = i, j : i j
Il nuovo insieme degli stati formato dalle classi della partizione Esempio:
a b d c b d
-9-
a c
data una macchina M e la sua partizione di equivalenza indotta dallindistinguibilit tra stati la macchina M il cui insieme degli stati costituito dai blocchi della partizione di equivalenza la macchina minima equivalente a quella data ed unica
equivalente per costruzione minima per costruzione unica per le caratteristiche di equivalenza
- 10 -
Applicando la regola di Paull Unger agli stati di una macchina, si possono ottenere tre casi
1. si ~ sj
Se i simboli d'uscita sono diversi e/o Se gli stati prossimi sono gi stati verificati come distinguibili
Due stati si e sj appartenenti ad S sono indistinguibili se e solo se per ogni simbolo di ingresso ia : (si,ia )=(sj,ia) (Le uscite sono uguali per ogni simbolo di ingresso) (si,ia)~(sj,ia) (Gli stati prossimi sono indistinguibili)
2. si ~ sj
Se i simboli di uscita sono uguali e Se gli stati prossimi sono gi stati verificati come indistinguibili
3. si ~ sj se sk ~ sh (vincolo)
Se i simboli di uscita sono uguali e Se gli stati prossimi non sono ancora stati verificati come indistinguibili
- 11 -
- 12 -
Poich gli insiemi S ed I hanno cardinalit finita, dopo un certo numero di passi i vincoli vengono risolti e ci si trover in una delle due condizioni:
1. si ~ sj 2. si ~ sj
Lanalisi del caso 3. pu portare a costruire dei vincoli nei quali presente circolarit del vincolo: lindistinguibilit di una coppia di stati vincolata dallindistinguibilit della stessa coppia di stati
- 13 -
Mette in relazione ogni coppia di stati E' triangolare (propriet simmetrica) e priva della diagonale principale (propriet riflessiva)
S1 S2 S3 S0 S1
- 14 -
Esempio
S2
Le coppie di stati a cui si rimanda la verifica, se non possibile pronunciarsi sulla equivalenza degli stati corrispondenti
Una coppia marcata come equivalente non richiede alcuna ulteriore verifica Se si trova un rimando ad unaltra coppia:
1. Se questi stati sono equivalenti anche gli stati della coppia in esame sono equivalenti 2. Se questi non sono equivalenti anche gli stati della coppia in esame non sono equivalenti Se gli stati della coppia cui si rimanda dipendono da una ulteriore coppia di stati si ripete il procedimento in modo iterativo fino a quando ci si riconduce ad uno dei due casi precedenti (ricordarsi la circolarit del vincolo)
Sulla tabella cos ottenuta si procede ad una analisi di tutte le coppie di stati. Esempio: S1 x
S2 S3 x S1,S2 S0
~
x S1
- 15 -
x S2
L'algoritmo termina quando non sono pi possibili eliminazioni Le coppie rimaste sono equivalenti
- 16 -
d;f c;h
b c d e f g h
x x x dg x x dh fg a ae
b c d
x x x dg ae
Coppia f;g
f;g a;e e f;g c;h. a;h d;h e a;h f;g. e;h d;h e e;h d;f.
c;h distinguibile: risultato f;g distinguibile (X) d;h distinguibile: risultato a;h distinguibile (X) d;h distinguibile: Risultato e;h distinguibile (X)
x x x x x b
x x x x x c x ch ae x d x x dh df e ae ch x f x g
- 18 -
Coppia a;h
x x x x x b
x e x x x x c x f ch ae x d x x dh df e ae ch x f x a g g h x dh fg
Coppia e;h
Coppia a;e
Quindi a;e d;g a;e: risultato a~e e d~g indistinguibile d~g (passo 1) poich a~e (passo 1) anche b~c;
Coppia d;g
Coppia b;c
- 17 -
Riduzione del numero degli stati: costruzione della partizione di equivalenza e della macchina minima
Le relazioni d'equivalenza sono rappresentabili su un grafo di equivalenza:
Vertice: rappresenta uno stato Lato: due vertici sono uniti da un lato se e solo se sono equivalenti
a h
a b c d e f g h
0/01
1/01 b
f h
g 1/11
a b c d e f g
- 19 -
- 20 -
Coppia a;b a;b c;d ma c;d a;b quindi a;b c;d a;b: risultato a~b e c~d Coppia a;e a;e c;f ma c;f a;e e c;f d;f quindi a;e c;f d;f ma d;f b;e e d;f c;f quindi a;e c;f d;f b;e ma b;e d;f quindi a;e c;f d;f b;e quindi
c d e f g
x x fd x x b ab x ae df x c x be cf x d x x e x f
c d e f g
a b c d e f g
Sintesi: Esempio 2
Sintetizzare una macchina di Moore secondo le specifiche:
x x cf x x a
x x fd x x b ab x ae df x c
~
x x x e x f
La FSM ha due ingressi A e B La FSM ha una uscita Z, che assume valore iniziale 1 Quando A=1, luscita assume il valore di B e tale specifica permane fino a quando si presenta la condizione A = B = Z = 1 Al presentarsi della condizione, il ruolo assunto da A e B viene scambiato
~ ~
~ be ~ cf
x d
Partizione
e = { {a, b, e}, {c, d, f}, g } = { , , g }
- 23 -
Il primo passo consiste nel disegnare il diagramma delle transizioni e nel costruire la corrispondente tabella degli stati
- 24 -
Sintesi: Esempio 2
A=0;B=1 A=0;B=0 A=1;B=1 A=1;B=0 A=0;B=1 A=0;B=0
Sintesi: Esempio 2
S0/1
A controlla
A=1;B=0 A=1 B=1 A=1 B=1 A=1;B=1
S1/0
A controlla
S0 S1 S2 S3
S3/0
B controlla
00 S0 S1 S2 S3
01 S0 S1 S3 S3
11 S2 S0 S0 S2
10 S1 S1 S2 S3
Z 1 0 1 0
S2/1
B controlla
A=0;B=1 A=1;B=0 A=0;B=0
S0 S1 S2 S3
00 S0 S1 S2 S3
01 S0 S1 S3 S3
11 S2 S0 S0 S2
10 S1 S1 S2 S3
Z 1 0 1 0
S1 S2 S3
- 25 -
- 26 -
1 2
S1 S2 S3 S4 S5 S6 S7 S8
S3
~
x
S4 S5 S6 S7 S8
x S4,S2 S5,S1 x x x S3 x x x x S4 x x x S5
S4 S5 S6 S7 x S7 S8
~
x x
S3,S1 S3,S5 x S6
S6,S7 S3,S1 x x
x x x x S4 x x x S5
x S1
x S2
x S3
S3,S1 S3,S5 x S6
Partizione
x S7
- 28 -
Grafo di equivalenza
8 1 2
Uno stato non raggiungibile se non esiste alcuna sequenza di transizioni di stato che porti dallo stato RESET in tale stato.
0/10
a b c S8
0/01 g
-/00
1/01 b
1/11
Partizione
e= { {S1, S3, S5}, {S2, S4}, {S6, S7}, S8 } =
={ a, b, c, S8 }
- 29 -
- 30 -
Un modo differente per ottenere lo stesso risultato, ma che utilizza la tabella degli stati, il seguente:
A partire dallo stato di reset si indicano gli stati a cui rimanda. Iterativamente, si svolge la stessa operazione per tutti gli stati successivi non indicando quelli che sono gi presenti. Quando non pi possibile identificare nuovi stati, il risultato linsieme degli stati raggiungibili.
Esempio:
1 g/00 d/01 Reset/11 d/11 f/11 e/10 f/11
Da cui si ricavano i soli stati raggiungibili: Reset, g, f, e. Gli altri possono essere eliminati dalla tabella
- 31 -
A pari numero di stati la complessit della rete combinatoria che sintetizza la funzione dipende dal particolare assegnamento scelto per gli stati Lassegnamento degli stati trasforma la tabella degli stati in tabella delle transizioni La tabella delle transizioni rappresenta in forma iniziale (manca la scelta del bistabile) linsieme delle tabelle delle eccitazioni della macchina (mappe di Karnaugh soggette ad effettiva sintesi)
Le adiacenze di 1 (o 0) nelle mappe di Karnaugh consentono di ottenere reti combinatorie pi o meno complesse, a pari metodo di ottimizzazione
-2-
One-Hot
Ad esempio, il numero possibili codifiche per il codice a minimo numero di bit : log S 2 2 1 !
Distanza Minima
(2
log 2
S ! log 2 S !
Spesso, scelto il codice, si preferisce non ricorrere ad alcuna specifica strategia di codifica.
Il costo della strategia di codifica rispetto alla affidabilit del risultato ottenuto ritenuto eccessivo.
-4-
Codifica degli stati: codifica a numero minimo di bit e flip-flop D flipConsideriamo il caso di codifica a numero minimo di bit e utilizzo di flip flop D E possibile utilizzare metodi euristici per determinare codifiche che possano produrre macchine con reti combinatorie semplificate da una buona scelta dellassociazione codifica-stato Nel caso di bistabili D possibile identificare dei criteri di scelta semplici, poich la tabella delle transizioni della macchina coincide con la tabella delle eccitazioni I criteri di scelta si basano sul principio di generare il pi possibile 1 (o 0) adiacenti nella tabella delle transizioni (eccitazioni)
Binario Naturale:
Il numero di bit quello minimo al primo stato corrisponde la configurazione di bit associata a 0, al secondo stato corrisponde la configurazione di bit associata ad 1... Lordinamento degli stati quello determinato in fase di realizzazione della tabella degli stati. Il numero di bit per la codifica dello stato pari al numero degli stati In ogni codifica, un solo bit assume valore 1. Tutti i bit rimanenti assumono valore 0
Si osservi che le codifiche degli stati sono tutte a distanza di hamming 2 Binario naturale S0 S1 S2 00 01 10
-5-
One-Hot:
Esempio:
-6-
Codifica degli stati: codifica a numero minimo di bit e flip-flop D flipUno dei metodi utilizzabili manualmente, su macchine con un numero di stati ridotto, si basa sulle seguenti considerazioni che generano vincoli di codifica, con diversa priorit A. ALTA PRIORIT: Se due stati si e sj hanno, per la stessa configurazione di ingresso, lo stesso stato futuro opportuno che si e sj abbiano codifiche adiacenti, in modo da avere coppie di 1 o di 0 adiacenti sulle colonne Esempio alta priorit. Tabella delle transizioni Tabella degli stati Codifica 00 01 11 10 Z 00 01 11 10 Z
S0 S1 S2 S3 S0 S1 S2 S3 S0 S1 S3 S3 S2 S0 S0 S2 S1 S1 S2 S3 1 0 1 0 S0 S1 S2 S3 00 01 11 10
-7-
Codifica degli stati: codifica a numero minimo di bit e flip-flop D (cont.) flipcont.)
B. MEDIA PRIORIT: Se due stati si e sj sono stati prossimi dello stesso stato e corrispondono a ingressi adiacenti, opportuno che abbiano codifiche adiacenti, in modo da avere coppie di 1 o di 0 adiacenti sulle righe C. BASSA PRIORIT: Nel caso di macchina di Mealy possibile esprimere un criterio anche relativo alluscita (se si e sj hanno uscite identiche, per qualche ingresso, opportuno che i due stati abbiano codifiche adiacenti) Esempio media priorit. Tabella delle transizioni Tabella degli stati 00 01 11 10 Z Codifica 00 01 11 10 Z
S0 S1 S2 S3 S0 S1 S2 S3 S0 S1 S3 S3 S2 S0 S0 S2 S1 S1 S2 S3 1 0 1 0 S0 S1 S2 S3
-8-
00 01 11 10
00 01 11 10
00 01 10 10
11 00 00 11
01 01 11 10
1 0 1 0
00 01 11 10
00 01 11 10
00 01 11 10
00 01 10 10
11 00 00 11
01 01 11 10
1 0 1 0
Codifica degli stati: codifica a numero minimo di bit e flip-flop D (cont.) flipcont.)
I vincoli imposti dai tre criteri di adiacenza possono generare conflitti e comunque pu risultare impossibile soddisfarli A questi vincoli pu essere associato anche un peso relativo:
cardinalit del vincolo derivante dellesame della tabella degli stati, dopo aver applicato le regole esposte
- 10 -
Scelta dellassegnamento
Il grafo dei vincoli, il linea di principio, rappresenta linsieme dei sotto-cubi di adiacenza che devono essere riportati nella mappa di codifica. Ci possibile solo se il grafo ottenuto costituito da soli n-cubi o da unioni di sottocubi
Dalla tabella dei vincoli, si costruisce il grafo, i cui archi hanno un peso pari alla cardinalit dei vincoli. Il peso viene usato se non possibile soddisfare tutti i vincoli Grafo dei vincoli con archi pesati
a d b
e c
Se il grafo non costituito da soli n-cubi o da unioni di n-cubi, necessario tagliare alcuni archi La scelta viene fatta eliminando il minimo numero di archi possibile e utilizzando il peso come criterio secondario
- 12 -
0 1
Cardinalit dei vincoli Adiacenze s0,s1 s1,s2 s0,s2 s2,s3 s0,s3 Cardinalit 4 2 2 4 2
Stati prossimi con ingressi adiacenti s0,s2 stato presente s0 s1,s2 stato presente s0 s0,s1 stato presente s0 s0,s1 stato presente s1 s0,s1 stato presente s1 s2,s3 stato presente s2 s0,s3 stato presente s2 s0,s2 stato presente s2 s2,s3 stato presente s3 s2,s3 stato presente s3
- 14 -
e c a d b
Grafo ridotto tagliando il numero minore di archi Codifica a 000 b 100 c 010 d 001 e 011
e c
- 13 -
Cardinalit dei vincoli Adiacenze s0,s1 s1,s2 s0,s2 s2,s3 s3,s0 Cardinalit 4 2 2 4 2
s0 2
4 2 2
s1
s0 2 s3
4 2 4 4 4 2
s1 2 s2
s0 2
4 2 2
s2 s1 4
s3 s0 2 s1
Codifica s0 00 s1 01 s2 11 s3 10
s2 4
s3
2 s2 4 s3
- 15 -
- 16 -
un sottoinsieme di bistabili e una rete combinatoria che realizza solo per quel sottoinsieme di variabili di stato le reti combinatorie risultanti sono in generale localmente meno complesse perch dipendono, oltre che dagli ingressi, da un numero ridotto di variabili di stato
- 17 -
- 18 -
a b c d e
Riduzione del numero degli stati per Macchine Non Completamente Specificate
Compatibilit Versione del 13/01/05 (Ferrandi Antola) (Ferrandi Antola)
La riduzione del numero degli stati in macchine non completamente specificata ricondotta alla individuazione di una macchina minima che copre (compatibile con) quella data Il metodo di riduzione simile a quello per macchine completamente specificate ma si basa sulla propriet di compatibilit tra stati, invece che su quella di indistinguibilit.
-2-
una sequenza di ingresso si dice applicabile a partire da uno stato si se: la funzione stato prossimo specificata per ogni simbolo d'ingresso
della sequenza, tranne al pi l'ultimo
partendo da si e da sj usando ogni possibile sequenza di ingresso applicabile I si ottengono le stesse sequenze d'uscita ovunque queste siano specificate
0 0 0
0 0 0
1 -
1 0
1 1
1 1 1
. . . . . . . . .
Se i simboli d'uscita sono diversi e/o Se gli stati prossimi sono gi stati verificati come non compatibili
I valori di uscita sono identici se ambedue specificati se uno o entrambi non sono specificati l'uguaglianza si ritiene soddisfatta gli stati prossimi sono compatibili se ambedue specificati se uno o entrambi non sono specificati la compatibilit si ritiene soddisfatta
-5-
2. si sj : stati compatibili
2. ( si, i ) ( sj, i )
Se i simboli d'uscita sono uguali e Se gli stati prossimi sono gi stati verificati come compatibili
3. compatibilit condizionata: insieme di coppie di stati che devono essere compatibili affinch la coppia in oggetto sia compatibile
-6-
Il simbolo di non compatibilit, se gli stati corrispondenti non sono compatibili Il simbolo di compatibilit, se gli stati corrispondenti sono compatibili Le coppie di stati che devono essere compatibili affinch la coppia in oggetto sia compatibile (vincoli)
b
a b c d e 0 e/0 d/0 e/a/1 a/1 a/0 b/0 c/a/1 b/-
de
a
c d e
x ab a
de x ad b ae ac ae bc c
e a,b
d,e b d,e c
Poich la relazione di compatibilit non transitiva, non si pu concludere che tutte le compatibilit sono soddisfatte. I vincoli vanno mantenuti per la costruzione delle classi di compatibilit Le classi di compatibilit si costruiscono esaminando il grafo delle compatibilit, che riporta le compatibilit condizionate e quelle incondizionate
-7-
ab d
-8-
Insieme di stati compatibili fra di loro a coppie Sul grafo di compatibilit una classe di compatibilit rappresentata da un sottografo completo Classe di compatibilit per la quale non esiste alcuna altra classe di compatibilit che la ricopre e che abbia un insieme di vincoli in essa incluso, o al limite coincidente Classe di compatibilit non contenuta in alcuna altra classe Una classe di massima compatibilit individuata sul grafo da un sottografo completo non contenuto in nessun altro sottografo Le classi di massima compatibilit non generano una partizione tra gli stati (non sono disgiunte): uno stato pu appartenere a pi di una classe Le classi di massima compatibilit sono ovviamente classi di compatibilit prime
-9
Classi di compatibilit:
a, b, c, d, e, ab, ac, ae, bc, ce, cd, de, abc, aec, dec abc, aec, dec
- 10 -
per ogni simbolo di ingresso, data una classe dellinsieme, e un simbolo di ingresso, linsieme degli stati futuri relativi contenuto in una stessa classe (almeno) dellinsieme (cio tutti i vincoli sono rispettati) Insieme (ab), (ced): NON chiuso
da (ab) con 0 vado in (ed), con 1 in (ab): OK da (ced) con 0 vado in (e) e (a): KO, con 1 in (c) e (ab): KO a a,b b e a,b d
- 12 -
d,e
- 11 -
Una volta identificata la copertura tramite le classi di compatibilit, la costruzione della tabella degli stati della macchina ridotta avviene nel modo seguente Gli stati della macchina ridotta sono le classi di compatibilit individuate Per ogni classe di compatibilit:
Partendo da un qualsiasi stato di M, ne esiste uno in M tale che Per ogni sequenza di ingresso applicabile a entrambi, le sequenze di uscita sono identiche ogni volta che luscita di M specificata
se, per almeno uno degli stati della classe, lo stato prossimo specificato, allora la classe di compatibilit che lo contiene sar lo stato prossimo della macchina ridotta
Poich linsieme delle classi che costituiscono la copertura pu essere non disgiunto, uno stato della macchina originaria pu essere presente in pi classi di copertura. Nella costruzione della tabella degli stati della macchina ridotta arbitrario scegliere la classe cui appartiene
Il problema della minimizzazione del numero di stati di una macchina non completamente specificata equivale quindi a:
Trovare il pi piccolo insieme chiuso di classi di compatibilit che coprono tutti gli stati della macchina
se, per almeno uno degli stati originari che costituiscono lo stato prossimo della macchina ridotta, luscita specificata, allora questa uscita sar luscita associata allo stato prossimo nella macchina ridotta in ogni altro caso si mantengono le condizioni non specificate
- 14 -
- 13 -
Riduzione del numero degli stati: individuazione di un insieme chiuso di classi di compatibilit
A causa della mancanza di disgiunzione tra le classi di massima compatibilit, per trovare la macchina compatibile minima (che pu anche essere non unica) necessario ricorrere ad algoritmi di copertura esaustivi Si considerano nel seguito tre tecniche, non esaustive, che consentono di identificare un insieme, possibilmente ridotto, e chiuso di classi che copre la macchina data 1. Uso diretto delle classi di massima compatibilit 2. Euristica con classi di massima compatibilit (che pu generare soluzioni non ammissibili) 3. Euristica con classi di compatibilit prime
- 16 -
Tabella degli stati della macchina iniziale Insieme chiuso delle classi di compatibilit
a b c d e
s0 = {a,b,c} s1 = {d,e}
s0 s1
0 s1/0 s0/1
1 s0/0 s0/1
- 15 -
Riduzione del numero degli stati: 1) uso diretto delle classi di massima compatibilit
L'insieme di tutte le classi di massima compatibilit chiuso e copre linsieme S degli stati Associando un nuovo stato ad una classe di massima compatibilit si ottiene una nuova macchina con un numero di stati:
La definizione delle classi di massima compatibilit pu avvenire individuando direttamente sul grafo tutti i pi grandi sottografi completi
a,b a a,b e a,b d a,e a,c c a,e b,c d,e b d,e e a,e; b,c a,b d a,e; b,c a,e;a,c c c c d,e e a a d,e b
Il numero di classi di massima compatibilit il limite superiore al numero degli stati ridotto
- 17 -
Una copertura ammissibile data dallinsieme delle classi di massima compatibilit: tale copertura non necessariamente minima
- 18 -
Esistono diversi algoritmi specifici per lindividuazione di tutte le classi di massima compatibilit che utilizzano la tabella delle implicazioni considerando tutte e sole le incompatibilit.
- 19 -
derivazione dallalbero
b c d e de x ab a de x ad b ae ac ae bc c
Il nodo a sinistra costituito da tutti gli stati della radice tranne lo stato corrente (allinizio il primo stato dellelenco) Il nodo a destra contiene lo stato in esame, cio il primo (quelli precedenti, se esistono) e tutti i successivi ad esso compatibili (derivati dalla colonna corrispondente allo stato in esame, nella tabella delle implicazioni che riporta le sole incompatibilit)
Terminata la generazione dei nodi di un livello, si passa ad esaminare lo stato successivo dellelenco costruendo quindi un nuovo livello dellalbero Ad ogni livello aggiunto nellalbero si esamina uno stato e si costruiscono due sotto-alberi per ogni nodo gi presente, sempre secondo le modalit sinistra-destra Il procedimento termina, quando si sono esaminati tutti gli stati, tranne lultimo dellelenco di partenza Le foglie dellalbero rappresentano i compatibili massimi
- 21 -
Riduzione del numero degli stati: 2) euristica con classi di massima compatibilit
Euristica con classi di massima compatibilit
Ricerca di un insieme chiuso di classi di compatibilit che coprono la macchina a stati non completamente specificata
Lalgoritmo greedy proposto semplice e lavora sul grafo di compatibilit Parte considerando tutte le classi di massima compatibilit e consente di trovare una copertura della macchina a stati tramite un insieme di classi di compatibilit (non necessariamente tutte massime) di cardinalit non superiore al numero di classi di massima compatibilit La chiusura degli insiemi individuati per la copertura garantita solo se i vincoli di compatibilit iniziali soddisfano una opportuna espressione logica Lavorando senza la verifica dellespressione iniziale (versione mostrata), lalgoritmo pu individuare soluzioni non ammissibili perch non chiuse
- 23 -
c. d. e.
Individuare e ordinare le classi di massima compatibilit presenti sul grafo per dimensione Individuare la classe di compatibilit massima di dimensione massima presente sul grafo Inserire nella lista L1 tutti i vincoli presenti nella classe di compatibilit considerata Eliminare dalla lista L1 e dal grafo i vincoli soddisfatti dalla classe considerata Eliminare dal grafo tutti i nodi (ed i relativi archi) appartenenti alla classe di compatibilit considerata che non appartengono a nessun vincolo presente nella lista L1 e/o nel grafo
3. 4.
Le classi cos individuate formano un insieme di classi di compatibilit chiuso? Se s, stata individuata una soluzione ammissibile. Se no, il procedimento viene ripetuto operando una diversa scelta (iniziale)
- 24 -
f b
e)
e) a f
- 25 -
- 26 -
Riduzione del numero degli stati: 3) euristica con classi di compatibilit prime
Euristica con classi di compatibilit prime
Ricerca di un insieme chiuso di classi di compatibilit che coprono la macchina a stati non completamente specificata
e)
a grafo vuoto
Copertura individuata
cde, bf, ab
E chiusa? Si! Ed costituita da un insieme di cardinalit inferiore rispetto a quello costituito da tutte le classi di massima compatibilit
- 27 -
Lalgoritmo greedy proposto usa una funzione costo per guidare nella scelta e lavora considerando tutte le classi di compatibilit prime Consente di trovare una copertura della macchina a stati tramite un insieme chiuso di classi di compatibilit prime di cardinalit non superiore al numero di classi di massima compatibilit Per garantire la chiusura degli insiemi individuati per la copertura, lalgoritmo prevede un passo preliminare per la trasformazione dei vincoli di compatibilit definiti dalla tabella della implicazioni
- 28 -
Classi : Vincoli
{a,b,c} : {(d,e)} {a,c,e} : {(a,b);(b,c)} >> {(a,b,c)} {c,d,e} : {(a,b);(a,e);(a,c);(b,c)}>>{(a,e);(a,b,c)} {a,c} : {a,e} : {(a,b)} {c,d} : {(a,c);(a,e)} {c,e} : {(a,e);(b,c)} {d,e} : {(a,b)} {b} : 0 1 {d} : a e/0 a/0 {e} : b d/0 b/0 c e/- c/d a/1 a/1 e a/- b/- 30 -
Algoritmo: Partendo dalla lista delle classi di compatibilit prime, si itera il seguente processo: Si calcola il valore della funzione di costo per ogni classe di copertura Si sceglie una tra le classi a valore maggiore Si eliminano i vincoli risolti dipendenti dalla scelta fatta, eliminando sia quelli che non sono pi tali perch coperti dalla classe scelta, sia quelli coperti dai vincoli della classe scelta Il processo termina quando tutti gli stati sono stati coperti e tutti i vincoli delle classi scelte sono soddisfatti
- 29 -
- 31 -
- 32 -
{a,b,c} : {(d,e)} {a,c,e} : {(a,b,c)} {c,d,e} : {(a,e);{a,b,c}} {a,c} : {a,e} : {(a,b)} {c,d} : {(a,c);(a,e)} {c,e} : {(a,e);(b,c)} {d,e} : {(a,b)} {b} : {d} : {e} :
{a,b,c} : {(d,e)} {a,c,e} : {(a,b,c)} {c,d,e} : {(a,e);{a,b,c}} {a,c} : {a,e} : {(a,b)} {c,d} : {(a,c);(a,e)} {c,e} : {(a,e);(b,c)} {d,e} : {(a,b)} {b} : {d} : {e} :
Sono stati coperti tutti gli stati e soddisfatti tutti i vincoli delle classi scelte. La copertura finale : C = {(a,b,c); (d,e)}
- 34 -
Tabella degli stati della macchina iniziale Insieme chiuso delle classi di compatibilit
a b c d e
s0 = {a,b,c} s1 = {d,e}
s0 s1
0 s1/0 s0/1
1 s0/0 s0/1
- 35 -
La riduzione del numero degli stati in macchine non completamente specificata ricondotta alla individuazione di una macchina minima che copre (compatibile con) quella data Il metodo di riduzione simile a quello per macchine completamente specificate ma si basa sulla propriet di compatibilit tra stati, invece che su quella di indistinguibilit.
Riduzione del numero degli stati per Macchine Non Completamente Specificate
Compatibilit Versione del 15/01/05
-2-
una sequenza di ingresso si dice applicabile a partire da uno stato si se: la funzione stato prossimo specificata per ogni simbolo d'ingresso
della sequenza, tranne al pi l'ultimo
partendo da si e da sj usando ogni possibile sequenza di ingresso applicabile I si ottengono le stesse sequenze d'uscita ovunque queste siano specificate
0 0 0
0 0 0
1 -
1 0
1 1
1 1 1
. . . . . . . . .
Se i simboli d'uscita sono diversi e/o Se gli stati prossimi sono gi stati verificati come non compatibili
I valori di uscita sono identici se ambedue specificati se uno o entrambi non sono specificati l'uguaglianza si ritiene soddisfatta
2. si sj
2. ( si, i ) ( sj, i ) gli stati prossimi sono compatibili se ambedue specificati se uno o entrambi non sono specificati la compatibilit si ritiene soddisfatta
-5-
Se i simboli d'uscita sono uguali e Se gli stati prossimi sono gi stati verificati come compatibili
3. Insieme di coppie di stati che devono essere compatibili affinch la coppia in oggetto sia compatibile (compatibilit condizionate)
-6-
Il simbolo di non compatibilit, se gli stati corrispondenti non sono compatibili Il simbolo di compatibilit, se gli stati corrispondenti sono compatibili Le coppie di stati che devono essere compatibili affinch la coppia in oggetto sia compatibile (vincoli)
b
a b c d e 0 e/0 d/0 e/a/1 a/1 a/0 b/0 c/a/1 b/-
de
a
c d e
x ab a
de x ad b ae ac ae bc c
e a,b
d,e b d,e c
Poich la relazione di compatibilit non transitiva, non si pu concludere che tutte le compatibilit sono soddisfatte. I vincoli vanno mantenuti per la costruzione delle classi di compatibilit Le classi di compatibilit si costruiscono esaminando il grafo delle compatibilit, che riporta le compatibilit condizionate e quelle incondizionate
-7-
ab d
-8-
Insieme di stati compatibili fra di loro a coppie Sul grafo di compatibilit una classe di compatibilit rappresentata da un sottografo completo le classi di compatibilit non generano una partizione tra gli stati (non sono disgiunte): uno stato pu appartenere a pi di una classe Classe di compatibilit per la quale non esiste alcuna altra classe di compatibilit che la ricopre e che abbia un insieme di vincoli in essa incluso, o al limite coincidente Classe di compatibilit non contenuta in alcuna altra classe Una classe di massima compatibilit individuata sul grafo da un sottografo completo non contenuto in nessun altro sottografo
-9-
Classi di compatibilit:
a, b, c, d, e, ab, ac, ae, bc, ce, cd, de, abc, aec, dec abc, aec, dec
- 10 -
per ogni simbolo di ingresso, data una classe dellinsieme, e un simbolo di ingresso, linsieme degli stati futuri relativi contenuto in una stessa classe (almeno) dellinsieme (cio tutti i vincoli sono rispettati) Insieme (ab), (ced): NON chiuso
da (ab) con 0 vado in (ed), con 1 in (ab): OK da (ced) con 0 vado in (e) e (a): KO, con 1 in (c) e (ab): KO a a,b b e a,b d
- 12 -
d,e
- 11 -
Partendo da un qualsiasi stato di M, ne esiste uno in M tale che Per ogni sequenza di ingresso applicabile a entrambi, le sequenze di uscita sono identiche ogni volta che luscita di M specificata
Il numero di classi di massima compatibilit il limite superiore al numero degli stati ridotto In genere, la macchina minima non unica. Gli algoritmi esaustivi per identificare la macchina minima partono tutti dallinsieme delle classi di compatibilit massime
Il problema della minimizzazione del numero di stati di una macchina non completamente specificata equivale quindi a:
Trovare il pi piccolo insieme chiuso di classi di compatibilit che coprono tutti gli stati della macchina
- 13 -
- 14 -
La definizione delle classi di massima compatibilit pu avvenire individuando direttamente sul grafo tutti i pi grandi sottografi completi Esistono diversi algoritmi specifici per lindividuazione di tutte le classi di massima compatibilit che utilizzano la tabella delle implicazioni considerando tutte e sole le incompatibilit. Costruzione della funzione per il test di compatibilit
- 15 -
a a a a,b a,b e a,b d a,e a,c c a,e b,c d,e b e d,e a,b d e a,e; b,c a,e; b,c a,e;a,c c c c d,e d,e b
Il nodo a sinistra costituito da tutti gli stati della radice tranne lo stato corrente (allinizio il primo stato dellelenco) Il nodo a destra contiene lo stato in esame, cio il primo (quelli precedenti, se esistono) e tutti i successivi ad esso compatibili (derivati dalla colonna corrispondente allo stato in esame, nella tabella delle implicazioni che riporta le sole incompatibilit)
Terminata la generazione dei nodi di un livello, si passa ad esaminare lo stato successivo dellelenco costruendo quindi un nuovo livello dellalbero Ad ogni livello aggiunto nellalbero si esamina uno stato e si costruiscono due sotto-alberi per ogni nodo gi presente, sempre secondo le modalit sinistra-destra Il procedimento termina, quando si sono esaminati tutti gli stati, tranne lultimo dellelenco di partenza Le foglie dellalbero rappresentano i compatibili massimi
- 17 -
Una copertura ammissibile data dallinsieme delle classi di massima compatibilit: tale copertura non necessariamente minima
- 18 -
derivazione dallalbero
b c d e de x ab a de x ad b ae ac ae bc c
La mancanza di disgiunzione tra le classi di massima compatibilit non consente di definire metodi esatti per la minimizzazione. Si utilizza uneuristica. Ricerca di un insieme chiuso di classi di compatibilit che coprono la macchina a stati non completamente specificata
Lalgoritmo greedy proposto consente di trovare una copertura della macchina a stati tramite un insieme chiuso di classi di compatibilit di cardinalit non superiore al numero di classi di massima compatibilit
{a,b,c} : {(d,e)} {a,c,e} : {(a,b);(b,c)} >> {(a,b,c)} {c,d,e} : {(a,b);(a,e);(a,c);(b,c)}>>{(a,e);(a,b,c)} {a,c} : {a,e} : {(a,b)} {c,d} : {(a,c);(a,e)} {c,e} : {(a,e);(b,c)} {d,e} : {(a,b)} {b} : {d} : {e} : 0 1 a b c d e e/0 d/0 e/a/1 a/a/0 b/0 c/a/1 b/-
- 22 -
C = {{a,b,c}}
= = = = +1+0-0 = +1+0-0 =
- 23 -
- 24 -
Tabella degli stati della macchina iniziale Insieme chiuso delle classi di compatibilit
scelta al passo 2
C = {{a,b,c};{d,e}}
a b c d e
s0 = {a,b,c} s1 = {d,e}
s0 s1
0 s1/0 s0/1
1 s0/0 s0/1
- 25 -
- 26 -
Introduzione
Circuiti sequenziali speciali
Esiste una classe di circuiti sequenziali la cui progettazione potrebbe seguire il processo classico di sintesi ma che pi conveniente analizzare in altro modo.
Definizioni caratteristiche Contatori Binari Naturali Contatori a codice e modulo liberi ad anello e ad anello incrociato incrociato Contatori modulo diverso da 2n 12/12/03
Contatori
Attraversano ripetutamente un numero definito di stati Contatori sincroni Contatori asincroni (non trattati nel corso)
-2-
Contatori
Un contatore una rete sequenziale che, solitamente, riceve in ingresso solamente un evento di conteggio che sposta la posizione corrente in avanti - upwards (o indietro - downwards) di una unit.
M individua il numero di simboli in uscita prodotti dal contatore, e di conseguenza il periodo del conteggio; E linsieme dei valori delle uscite utilizzati per rappresentare il valore del conteggio.
A numero minimo di bit: Il numero di tali bistabili log2 M. (es: Gray, Binario Naturale) Altri codici: se il codice su k bit, converr usare k bistabili anche se k> log2 M, per evitare di inserire una rete di transcodifica fra i bistabili e luscita del contatore. (es: 1hot, parit)
Possono esistere altri ingressi di controllo per la realizzazione di contatori bidirezionali; il metodo di progetto cambia di poco
Il codice
Specifiche di funzionamento analoghe per lintera famiglia; In molti casi, ripetitivit e localit della struttura. Possibilit di descrizione della specifica semplificata rispetto alla generica tabella degli stati Esistenza di tecniche di implementazione semplificate rispetto a quelle per le generiche reti sequenziali
La codifica
Definisce la successione degli M valori associati allo stato attraverso cui il contatore evolve.
Nota: la codifica dello stato definita a priori Es: M=4 - codice Gray(codice a numero minimo di bit) - codifica: S0=00 S1=01 S2=11 S3=10 Es: M=4 - codice Parit Pari (codice a numero non minimo di bit): codifica: S0=000 S1=011 S2=101 S3=110
-3-
-4-
Contatore sincrono:
Modulo: 2n; Codice: A numero minimo bit; Codifica: Binaria Naturale Bistabile utilizzato: T
Tabella delle transizioni e delle eccitazioni per M= 22 Tabella delle transizioni e delle eccitazioni per M= 23
Le eventuali commutazioni sono tutte simultanee (sincrone), a parte modeste variazioni dovute alla propagazione attraverso le reti di eccitazione dei bistabili
Contatore asincrono:
Almeno un bistabile non riceve in ingresso il segnale di conteggio La sua eventuale commutazione comandata da quella degli altri bistabili e avverr con un ritardo dovuto alla propagazione attraverso tali bistabili (oltre che alle reti combinatorie eventualmente presenti)
Q0 0 1
Q0* 1 0
Q0 0 1
T0 1 1
Q1Q0 0 0 0 1 1 0 1 1
Q1*Q0* 0 1 1 0 1 1 0 0
Q1Q0 0 0 0 1 1 0 1 1
T1T0 0 1 1 1 0 1 1 1
Q2Q1Q0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
Q2*Q1*Q0* 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 0
Q2Q1Q0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
T2T1T0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 1
-5-
-6-
Tutti gli stadi, ad esclusione dei primi due, risultano perfettamente identici. La regolarit della struttura pagata con un maggior ritardo di propagazione (limita la frequenza di funzionamento). Nota: la frequenza di funzionamento si riduce linearmente con la dimensione del contatore poich Ti diventa stabile solo dopo che lo diventato Ti-1. Schema molto semplice e regolare. Minor ritardo di propagazione rispetto al caso precedente (frequenza di funzionamento maggiore rispetto al caso precedente). Nota: la frequenza di funzionamento si riduce allaumentare delle dimensioni del contatore a causa dellaumento del numero degli ingressi alle porte AND.
T0 1
T1 = Q0
-7-
T2=Q1*Q0=Q1*T1
T3=Q2*Q1*Q0=Q2*T2
In generale, la regolarit deriva dal ciclo di conteggio: cambiando tipo di bistabile (es: FFD) le funzioni di eccitazione cambiano, ma la regolarit resta.
-8-
Modulo: 2n; Codice: A numero minimo bit; Codifica: Binaria Naturale Bistabile utilizzato: D
Tabella delle eccitazioni per M= 22 Tabella delle eccitazioni per M= 23
T0
Q0
T1
Q1
T2
Q2
Tn-1
Qn-1
Ck
Q0 Q1 Q2
2 n)
parallelo:
Q0 0 1
D0 1 0
Q1Q0 0 0 0 1 1 0 1 1
D1D0 0 1 1 0 1 1 0 0
FF_T1
FF_T2
FF_Tn-1
T0
Q0
T1
Q1
T2
Q2
Tn-1
Qn-1
Ck
Q0 Q1
-9-
Q2Q1Q0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
D2D1D0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 0
Q2
- 10 -
Progetto di contatori con modulo libero (2n o diverso da 2n), codice a numero non minimo bit e codifica non binaria naturale
Struttura regolare.
Contatori ad anello (codice one-hot) Contatore ad anello incrociato
Progetto di contatori con modulo diverso da 2n, codice a numero minimo bit e codifica binaria naturale
D1=Q1Q0 D1=Q1Q0
- 12 -
Pre-Set
FF_D0 FF_D1 FF_D2 FF_Dn-1
In ogni codifica valida uno e un solo bit assume valore 1, tutti gli altri valgono 0; Per codificare n informazioni diverse occorrono n bit
il codice non a numero minimo di bit.
D0
Q0
D1
Q1
D2
Q2
Dn-1
Qn-1
Ck
Q0
Q1
Q2
Qn-1
Il valore del FFD0 viene posto a 1 prima dellinizio del conteggio; i rimanenti FFD vengono posti a 0.
Ck Pre-set Q0 Q1 Q2 t0 t1 t2 - 14 ...tn-1 tn
Viene utilizzato, ad esempio, in applicazioni nelle quali si deve abilitare uno e un solo sottosistema; il contatore svolge il ruolo di unit di controllo.
Lo stato di ogni bistabile del contatore costituisce immediatamente il segnale di controllo e non occorre alcuna rete di transcodifica. Se gli stati del contatore sono n, le linee di segnale che si inviano ai sottosistemi controllati sono ancora n.
Nota: luso di un contatore con un codice a numero minimo bit es., binario naturale richiederebbe una rete di transcodifica che per ogni stato del contatore generasse un valore attivo su una sola delle n linee di segnale in uscita (rete combinatoria con k = log n ingressi e n uscite); la rete di transcodifica, al crescere di n, avrebbe costi crescenti e introdurrebbe crescenti ritardi di propagazione
- 15 -
Svantaggi principali: modulo sempre pari, codice e codifica senza particolare campo di applicabilit Vantaggio principale: distanza di Hamming unitaria, prestazioni elevate, meno elementi di memoria rispetto al contatore ad anello
- 16 -
Q0 D1
FF_D1
FF_D2
FF_Dn-1
D0
Q1
D2
Q2
Dn-1
Qn-1
Modulo: 6; Codice: A numero minimo bit; Codifica: Binaria Naturale Bistabile utilizzato: T
Ck
Il valore del FFD0 viene inizializzato a 1 (quindi Q0 vale 0) prima dellinizio del conteggio; i rimanenti FFD vengono posti a 0.
Ck Q0 Q1 Q2 Qn-1 t0 t1 - 17 t2 ...t(2*n)-1
Q0
Q1
Q2
Qn-1
Q2Q1Q0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1
Q2*Q1*Q0* 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 0 0
Q2Q1Q0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1
T2T1T0 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 1
T2=Q1*Q0 + Q2*Q0 T1=Q2*Q0 T0=1 Nota: le equazioni derivano dalla sintesi delle tre funzioni combinatorie T0, T1 e T2
t(2*n) - 18 -
Modulo: 10; Codice: A numero minimo bit; Codifica: Binaria Naturale (Contatore BCD o Decadico) Bistabile utilizzato: T Q3Q2Q1Q0 T3T2T1T0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 1 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1
- 19 -
Esempio: realizzare un contatore a k cifre decimali utilizzando K blocchi del contatore decadico (Mod-10 ([0..9]));
Q3Q2Q1Q0 Q3*Q2*Q1*Q0* 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0
Ogni sotto-contatore genera un segnale di overflow (carry) che, quando raggiunge valore 1, consente al clock di attivare il sottocontatore collegato ad esso in cascata. La condizione di overflow quella indicata dalla ultima configurazione di stato presente prodotta dal contatore a valle.
Esempio: nel contatore BCD, la condizione di traboccamento 1001 che corrisponde a f(Q3,Q2,Q1,Q0)=Q3*Q2*Q1*Q0 Esempio: Due contatori Mod-2 e Mod-5 possono produrre un contatore decadico.
- 20 -
Contatore BCD
Contatore BCD
Contatore BCD
Ck
Esempio: contatore Mod-12 mediante composizione di un contatore Mod-2 e un contatore Mod-6 (la versione a destra pi costosa e lenta).
Contatore Mod-2 Contatore Mod-6 Contatore Mod-6 Contatore Mod-2
Q3Q2Q1Q0
Q3Q2Q1Q0
Q3Q2Q1Q0
Ck
Ck
Q0
Q2Q1Q0
Q2Q1Q0
Q0
- 21 -
Logiche programmabili
Sono dispositivi hardware che mettono a disposizione componenti logici pi o meno complessi che possono essere connessi tra loro (programmazione delle connessioni) a seconda delle esigenze di progetto Dispongono di:
ROM (Read-Only Memory ), PLA (Programmable Logic Array), PAL (Programmable Array Logic): dispositivi logici programmabili a 2 livelli
il termine 2 livelli indica che il dispositivo base costituito da 1 sezione AND e da 1 sezione OR disgiunte
CPLD FPGA
-2-
Connessioni
Connessioni globali
Fuse: le connessioni tra le linee sono inizialmente tutte attive. La fase di programmazione disattiva permanentemente le connessioni non utili. Antifuse: Le connessioni tra le linee sono inizialmente tutte non attive. La fase di programmazione attiva permanentemente le connessioni utili
linea che attraversa buona parte del dispositivo e che condivisa da molti elementi logici (elevati ritardi, pu essere usata come uscita di un solo elemento logico limitandone la flessibilit)
sono caratteristiche dei dispositivi logici programmabili a 2 livelli (ROM, PLA, PAL) e dei Complex Programmable Logic Devices (CPLD).
E2PROM: Le connessioni tra le linee, inizialmente tutte non attive, possono essere attivate e disattivate elettricamente (deposito di carica per conduzione) SRAM: La connessione tra le linee, inizialmente tutte non attive, viene realizzata memorizzando nella cella di RAM statica il valore 0 o 1 (maggiore velocit di programmazione rispetto alla tecnologia E2PROM)
Linea che attraversa una parte ridotta del dispositivo e che condivisa da pochi elementi logici (ritardi contenuti, coesistenza di differenti linee di lunghezza differente, quindi elevata flessibilit)
SRAM: oltre ad una elevata velocit di programmazione, richiesta anche la possibilit di intervenire separatamente su parti del dispositivo.
-3-4-
Dispongono di:
Un numero di ingressi fissato; Un numero di uscite fissato; Un piano AND, per la costruzione dei mintermini o degli implicanti; Un piano OR, per la somma dei mintermini o degli implicanti; Buffer di ingresso e di uscita (per ragioni elettriche e funzionali).
In seguito, negli schemi logici, i buffer non saranno riportati per comodit sebbene siano sempre presenti X1 X2 Xn
-5-
Ingresso
Input Buffers
Piano AND
Piano OR
Output Buffers
f1 f2 fm
Uscita
-6-
2
Il piano OR realizza le singole funzioni di uscita
P1=a P2=bc P3=bc P4=ac P5=ab P6=ac P7=ac P8=bc P1=P9=a P10=b P2=P11=bc P1=P12=a P8=P13=bc
f1 f2 f3 f4 f5 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1
dato il numero di termini prodotto generabili, si programmano solo i mintermini/implicanti necessari. Ogni funzione (OR) pu essere costruita solo con un certo sottoinsieme (cablato) di termini prodotto.
-8-
Piano di OR fissato.
-7-
In una ROM, una configurazione di ingresso, denominata indirizzo, associata una configurazione di uscita, denominata parola
Indirizzo = configurazione delle variabili di ingresso X1 X2 Xn
Decodificatore degli Indirizzi - Piano AND Fissato Piano OR programmabile
Macchine Sequenziali Sincrone con reti combinatorie multi livello costituite da reti a due livelli ottimizzate:
PLA e PAL con retroazione e registri
-9-
Il decodificatore degli indirizzi nelle memorie ROM realizza tutti i 2n mintermini, dove n sono le variabili di ingresso xi Gli ingressi sono le variabili xi Una ed una sola uscita attiva alla volta; le uscite del decoder sono tutti i mintermini costruiti a partire dalle variabili di ingresso
Infatti
Ia Ia Ib Ib Ic Ic
0 0
x1 x2 x3
2n-1
a b c
111 000 m0 001 m1 111 m7
Address Decoder
- 11 -
- 12 -
ROM: Esempio
Esempio:
x1 x2 x3
111
Piano OR
Prima forma canonica della funzione a pi uscite: f1 = abc+abc+abc+abc+abc+abc f2 = abc+abc+abc f3 = abc+abc+abc+abc+abc+abc f4 = abc+abc+abc+abc+abc+abc+abc f5 = abc+abc+abc+abc+abc Tabella della verit della funzione a pi uscite:
abc f1 f2 f3 f4 f5 000 001 010 011 100 101 110 111 0 1 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 1 1
Address Decoder f1
mintermini
- 13 -
Connessioni Programmabili
f2
f3
f4
- 14 -
ROM: Esempio
Esempio (cont.):
a
b c
Piano OR
In generale una PLA definita da: numero di ingressi (n variabili delle funzioni), numero dei termini prodotto generabili, numero di uscite (n di funzioni realizzabili)
X1 X2 f1 f2 fm
f1
f2
f3
f4
f5
ingressi
Xn
Piano OR programmabile
uscite
- 16 -
PLA: Esempio 1
Esempio 1:
PLA
Prodotti:
P1 P2 P3 P4 = = = = ab ac ac abc
P1 Piano OR
P2
P3
P4 f1 f2
Somme:
f1 = P1 + P3 + P4 f2 = P1 + P2 + P4
- 17 -
- 18 -
PLA: Esempio 1
Esempio 1 (cont.): (PLA programmata per le funzioni f1 ed f2)
a Ia Ia Ib Ib c Ic Ic Piano AND
PLA: Esempio 2
Prima forma canonica della funzione a pi uscite: f1 = abc+abc+abc+abc+abc+abc f2 = abc+abc+abc f3 = abc+abc+abc+abc+abc+abc f4 = abc+abc+abc+abc+abc+abc+abc f5 = abc+abc+abc+abc+abc Funzione a pi uscite ottimizzata (espressioni logiche): f1 = a+bc+bc f2 = ac f3 = ab+ac+ac+bc f4 = a+b+bc f5 = a+bc
- 20 -
Esempio 2:
PLA
Formato PLA:
1--11 -00 1-1 100-1 1-0 -10 1--0-11 1--10 10000 10000 10000 01000 00100 00100 00100 00100 00010 00010 00010 00001 00001
P1
P2
P3
P4 f1
Piano OR
- 19 -
f2
PLA: Esempio 2
Esempio (cont.):
a
PLA
Formato PLA:
1--11 -00 1-1 100-1 1-0 -10 1--0-11 1--10 10000 10000 10000 01000 00100 00100 00100 00100 00010 00010 00010 00001 00001
In generale una PAL definita da: numero di ingressi (n variabili delle funzioni), numero dei termini prodotto generabili, numero di uscite (n di funzioni realizzabili)
ingressi
Piano OR fissato
uscite
- 22 -
PLA e PAL
Nelle PLA, le uscite possono condividere termini prodotto Nelle PAL, le uscite non possono condividere termini prodotto e inoltre il numero di ingressi alle porte OR fissato
PAL
Piano AND
Connessioni Programmabili
P1 Piano OR
P2
P3
P4
Connessioni Fisse f1 f2
A pari funzionalit da implementare, in caso di possibilit di condivisione di termini prodotto, la sezione AND di una PAL deve essere pi grande (termini prodotto replicati) di quella di una PLA Le PLA sono pi lente delle PAL a causa della programmabilit della sezione OR: le connessioni fuse-based, o comunque programmate, presentano una resistenza maggiore rispetto a quelle cablate
- 24 -
- 23 -
PAL: Esempio 1
Esempio 1 (cont.): (PAL programmata per le funzioni f1 ed f2)
a Ia Ia Ib Ib c Ic Ic Piano AND
PAL
Prodotti:
P1 P2 P3 P4 P5 P6 = = = = = = ab ac abc ab ac abc
Somme:
f1 = P1 + P2 + P3 f2 = P4 + P5 + P6
P1
P2
P3
P4
P5
P6 f2
Piano
f1
- 26 -
OR
Permette di implementare reti combinatorie multi livello a pi uscite Permette di implementare macchine sequenziali sincrone in cui la parte combinatoria costituita da una rete multi livello a pi uscite
- 27 -
- 28 -
PLA
D D E E
uscita uscita
Y Z Piano OR
- 29 -
- 30 -
Primary Inputs
fi
Si raccoglie il fattore
g = s1!a + s2
ottenendo
Output enable
Y = s1!ab + s2b + !s2 = b(s1!a + s2) + !s2 = bg + !s2 s1* = s1!a + s2 + s1b = (s1!a + s2) + s1b = g + s1b s2* = s1!a!b + s2!b + !s1 = !b(s1!a + s2) + !s1 = !bg + !s1
Feed-back Input
Clock
Tale forma pu essere realizzata grazie alla retroazione disponibile e agli elementi di memoria presenti.
- 32 -
- 31 -
PLA
Q2 Q1
La prima funzione utilizzata in retroazione per realizzare le rimanenti La rete a pi livelli ed utilizza elementi di memoria FFD.
Luso di FFD rende le funzioni di transizione uguali alle funzioni di eccitazione. Stato presente: Q1 = s1; Q2 = s2 Stato futuro: D1 = s1*; D2 = s2*;
p1 p2 p3 p4 p5 p6 p7 p8
g D1
FF1
Sezione OR Sezione OR
g = Q1!a + Q2 g = Q1!a + Q2 Y = bg + !Q2 Y = bg + !Q2 D1 = g + Q1b D1 = g + Q1b D2 = !bg + !Q1 D2 = !bg + !Q1
- 34 -
D2
FF2
Piano OR
fi
D Q Q
Clock Output select Output enable
Q1
fi
D Q Q
Clock Output select Output enable
Feed-back
Y
D Q Q
Clock Output select Output enable
Hanno dimensioni molto maggiori. Sono costituite da celle pi complesse. Consentono di ottenere prestazioni pi elevate. Hanno una struttura pi regolare e facilmente programmabile.
- 35 -
- 36 -
Uscite
Set/Reset Globale
Clock Globale
FF
D Q Q
- 37 - 38 -