Sei sulla pagina 1di 153

Contenuti - Progetto logico di sistemi digitali

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-

Flusso di progettazione dei sistemi digitali


Livelli di astrazione Livello comportamentale Livello registro - unit funzionale Livelli di progetto Specifica di sistema

Cosa significa progetto logico


Progetto logico
determinare un insieme di componenti digitali (famiglie di porte logiche) per realizzare le unit funzionali eventualmente individuate a pi alto livello scegliere tra le diverse tecnologie implementative ottimizzare e trasformare la soluzione identificata per soddisfare i vincoli (sintesi)

descrizione comportamentale + vincoli non funzionali

Progetto architetturale

unit funzionali, registri e interconnessioni (percorsi di dati e segnali di controllo) descrizione RTL (Register Transfer Level)

Livello logico Livello geometrico

Progetto logico Disegno delle maschere Produzione


-3-

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 automatica a livello logico


Conversione da una descrizione HDL ad una net-list ottimizzata ed indirizzata ad una particolare tecnica realizzativa (es: standard_cell, gate array, .....)

sintesi: insieme di tecniche di ottimizzazione (manuale/automatica)


Partitioning Pipelining Scheduling Allocazione delle risorse Ottimizzazione di macchine sequenziali Minimizzazione logica multilivello - 2 livelli Technology mapping Clock buffer-tree design Placement e routing ottimale
-5-

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

Descrizione di alto livello

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-

Spazi di rappresentazione del progetto digitale: astrazioni digitale:

Struttura del corso


I PARTE

(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

Corso di Reti logiche

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

Aritmetica e architetture aritmetiche

II PARTE

Introduzione al flusso di progettazione e al linguaggio VHDL

Sintesi sequenziale

Sintesi e ottimizzazione di macchine sincrone a stati finiti Progetto di contatori sincroni Componenti programmabili: architettura e sintesi

-8-

Materiale didattico

Materiale preparato dai docenti

vedere homepage docenti

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 Booleana: operazioni e sistema algebrico Booleana:


Operazione:

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:

Combinazione di un insieme di elementi e un insieme di operatori e un numero fissato di assiomi.

esempio: ([0,1], *) un sistema algebrico.

-2-

Algebra Booleana: definizione


Algebra Booleana B: un sistema algebrico identificato dalla sestupla (B,+,*,,0,1) dove:

Algebra Booleana a due valori: Algebra di Commutazione valori:

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.

0 lelemento neutro rispetto a + 1 lelemento neutro rispetto a *

[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

Algebra Booleana a due valori: Algebra di Commutazione valori:


Le variabili dellalgebra booleana a due valori possono assumere solo i due valori 0 e 1

Algebra Booleana a due valori: Assiomi


Gli operatori descritti godono delle propriet definite dai seguenti assiomi (postulati di Huntington):

precisamente, se x indica una variabile,


x = 0 se e solo se x 1 x = 1 se e solo se x 0

Algebra Booleana a due valori: ({0,1},+,*,,0,1) dove + e * sono definiti come + 0 1 * 0 1

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-

Algebra di Commutazione: propriet (1)


1: elemento complemento

Algebra di Commutazione: propriet (2)


6: involuzione

a+1=1 a+a=a il complemento di a, a, unico a+(b+c)=(a+b)+c a+(a*b)=a

a*0=0 a*a=a

((a)) =

a (a*b) = a+b

2: idempotenza

7: Leggi di De Morgan

3: unicit elemento inverso:

(a+b) = a*b

8: consenso

4: associativa

a*(b*c)=(a*b)*c a*(a+b)=a

a*b+a*c+b*c = a*b + a*c (a+b)*(a+c)*(b+c)=(a+b)*(a+c) a+ab = a+b a*(a+b) = a*b

5: assorbimento

9: Semplificazione

-7-

-8-

Algebra di Commutazione: propriet (3)


10: principio di dualit

Algebra di Commutazione: propriet (4)


Il modo pi semplice per dimostrare le propriet quello esaustivo (si dimostra per tutti i possibili valori di tutte le variabili). Sono possibili altri tipi di dimostrazione:

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.

Ad esempio, si voglia dimostrare a+ab = a+b


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 -

Algebra di Commutazione: rappresentazione di


una funzione
Una funzione di commutazione a n variabili f: {0,1}n {0,1} pu essere rappresenta in modo comodo utilizzando una tabella della funzione o tabella della verit

Algebra di Commutazione: definizioni (1)


Letterale:

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 -

Algebra di Commutazione: definizioni (2)


Termine prodotto:

Algebra di Commutazione: definizioni (3)


Termine somma (duale):

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

Ad esempio, a+b+c e a+b+c rappresentano due maxtermini della funzione data

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.

Ad esempio, ac rappresenta un implicante della funzione data


- 13 -

Ad esempio, a+c rappresenta un implicato della funzione data


- 14 -

Algebra di Commutazione: funzioni


Una funzione booleana di n variabili pu essere espressa attraverso una espressione booleana di n variabili costituita da letterali, costanti, operatori AND, OR e NOT.

Algebra di commutazione: espressioni e funzioni (1) commutazione:


Il numero di espressioni booleane di n variabili definite su una algebra booleana B infinito.

La relazione tra espressioni booleane e funzioni booleane non 1 a 1.

Esempio di espressione booleana: f(a,b,c)=ab+ac

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

f(a,b,c)= (a*b)*a f(a,b,c)= ... f(a,b,c)= a

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 -

Algebra Booleana: Forme canoniche


Si consideri il seguente esempio:
a 0 0 1 1 b 0 1 0 1 f(a,b) 0 1 0 1

Algebra Booleana: Forme canoniche


Per cui, intuitivamente, si ottiene:
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

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 -

Algebra Booleana: Forme canoniche


Ne consegue:
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

Algebra Booleana: Forme canoniche


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 1 1 1 1 0 0 1

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 -

f(a,b,c)=abc+abc+abc+abc+abc f(a,b,c)=abc+abc+abc+abc+abc Prima Forma Canonica Prima Forma Canonica

- 22 -

Algebra Booleana: Forme canoniche


Si consideri nuovamente lo stesso esempio:
a 0 0 1 1 b 0 1 0 1 f(a,b) 0 1 0 1

Algebra Booleana: Forme canoniche


Per cui, intuitivamente, si ottiene:
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

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 -

Algebra Booleana: Forme canoniche


E quindi

Algebra Booleana: Forme canoniche


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 1 1 1 1 0 0 1

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

f(a,b,c)=(a+b+c)*(a+b+c)*(a+b+c) f(a,b,c)=(a+b+c)*(a+b+c)*(a+b+c) Seconda Forma Canonica Seconda Forma Canonica

- 25 -

- 26 -

Algebra Booleana: Espansione di Shannon


Formalmente, quanto esposto dal punto di vista intuitivo produce le forme canoniche come segue: prima forma canonica:
f = (x1...xn)*f(0,...,0)+(x1...xn)*f(0,...,1)+...+(x1... xn)*f(1,...,1) dove
(x1...xn), (x1...xn), ..., (x1...xn) sono i mintermini della funzione f, f(0,...,0), ...., f (1,...,1) sono i valori che la funzione assume quando la configurazione delle variabili sia, rispettivamente, (0,...,0),...,(1,....,1)

Algebra Booleana: Espansione di Shannon


La descrizione formale introdotta in precedenza deriva direttamente dallapplicazione iterativa del Teorema di espansione di Shannon

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)

seconda forma canonica:


f=((x1+...+xn)+f(1,...,1))*((x1+...+xn)+f(1,..,0))*...*((x1+...+xn)+f(0,...,0)) dove
(x1+...+xn), (x1+...+xn), ..., (x1+...+xn) sono i maxtermini di f.

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 -

Algebra Booleana: Espansione di Shannon e


Forme canoniche Ad esempio:
f(a,b,c)=abc*f(0,0,0)+abc*f(0,0,1)+abc*f(0,1,0) +abc*f(0,1,1)+abc*f(1,0,0)+abc*f(1,0,1)+ +abc*f(1,1,0)+abc*f(1,1,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 Prima Forma Canonica Prima Forma Canonica abc+abc+abc+abc+abc abc+abc+abc+abc+abc

Algebra Booleana: Espansione di Shannon


Osservazione: il teorema di espansione di Shannon pu essere utilizzato anche su espressioni Booleane. Esempio:

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 -

(a+b+c)*(a+b+c)*(a+b+c) (a+b+c)*(a+b+c)*(a+b+c) Seconda forma Canonica Seconda forma Canonica


- 29 -

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:

f(x,y,z) = xyz + xyz + xyz

1.

eventualmente con caratteristiche meglio rispondenti a particolari requisiti.


2.

applicando la propriet distributiva e quella della complementazione:

f(x,y,z)= (x+ x)yz+xyz= 1yz+xyz= yz+xyz. f = y(z+xz) f= y(z+x)= yz+xy

Esempio:

poi, applicando di nuovo la propriet distributiva

sia data la forma canonica

f(x,y,z) = xyz + xyz + xyz

3.

E ricordando che a + ab = a + b, si ottiene infine

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:

f(x,y,z) = xyz + xyz + xyz


f(x,y,z) = xyz + xyz + xyz + xyz f = yz(x+x) + xy (z + z) f = yz1 +xy1 = yz + xy

applicando dapprima la propriet dellidempotenza:

2.

poi applicando la propriet distributiva

Non possibile identificare un algoritmo

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).

Non possibile sapere se lespressione ottenuta quella minima

In pratica, non questa la via che si sceglie!


- 34 -

- 33 -

Sintesi di reti combinatorie a due livelli:


Introduzione (1)
Obiettivo: ridurre la complessit di una (o pi) funzione(i) booleana(e) espressa(e) in forma di Prodotto di Somme o di Somma di Prodotti (SOP). Si considerano le forme canoniche come soluzioni iniziali

Sintesi di Reti Combinatorie


Ottimizzazione di Reti Combinatorie a Due Livelli: Metodo di Karnaugh
Introduzione Metodo di Karnaugh per reti completamente specificate Le condizioni di indifferenza Metodo di Karnaugh per reti non completamente specificate

Ci si riferir alla sola forma Somma di Prodotti o SOP

l'altra ne la duale ed i principi sono gli stessi.

Nella sintesi a due livelli la riduzione di complessit avviene tramite


Riduzione del numero dei termini prodotto Riduzione del numero di letterali Esempio:

f(a,b,c)=abc+abc+abc equivale a f(a,b,c)=ab+ac

-2-

Sintesi di reti combinatorie a due livelli:


Introduzione (2)
Metodologie di sintesi ottima:

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh
Karnaugh

Esatte: Karnaugh e Quine - Mc Cluskey; Euristiche per sintesi a due livelli.

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.

Esempio: abcd + abcd = acd

La riduzione pu essere applicata iterativamente

Esempio: abcd+abcd+abcd+abcd= abc(d+d)+abc(d+d) = abc+abc = ab(c+c) = ab


Nota: si osservi che la applicazione della relazione identificata applicata ad un numero di termini pari a 2n quindi 2, 4, 8, ...

Cardinalit (= ndi termini prodotto) della soluzione Numero di letterali della soluzione

Il metodo di Karnaugh identifica una soluzione ottima minimizzando la cardinalit

Osservazione: la regola identificata mantiene inalterato il numero dei livelli

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-

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh Karnaugh

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh Karnaugh (cont.)

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.

Esempio di replicazione dei termini:


a 0 0 1 1 b 0 1 0 1 f(a,b) 0 1 1 1

SOP: f (a,b)=ab+ab+ab 1 =(a+a)b+ab=b+ab


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-

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh Karnaugh (cont.)

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh Karnaugh (cont.)

Esempio di replicazione dei termini:


a 0 0 1 1 b 0 1 0 1 f(a,b) 0 1 1 1

Il metodo delle mappe di Karnaugh consente di risolvere direttamente i problemi identificati:


sia dovuti alla replicazione dei termini. sia legati alla identificazione dei termini da raggruppare.

SOP: f (a,b)=ab+ab+ab = ab+ab+ab+ab


1 2

Il metodo delle mappe di Karnaugh grafico.


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-

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh Mappe di Karnaugh

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh
noto che una funzione di commutazione a n variabili f: {0,1}n {0,1} pu essere rappresenta in modo comodo utilizzando una tabella della funzione o tabella della verit. In modo assolutamente equivalente una funzione a n variabili pu essere associata ad una rappresentazione cartesiana in uno spazio a n dimensioni. Esempio (spazio 3 dimensionale)
000 0 001 1

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-

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh
Nella rappresentazione cartesiana di una funzione in uno spazio a n dimensioni, collegando i vertici le cui configurazioni sono a distanza di Hamming unitaria si ottiene un n-cubo.

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh

Spazio a 3 dimensioni (3 variabili)

Spazio a 1 dimensione (1 variabile)

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

Spazio a 2 dimensioni (2 variabili):

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 -

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh
Si pu pensare di trasportare una tabella delle verit a n variabili su un n-cubo, marcando opportunamente i nodi associati a 0 e 1.

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh
Di fatto, la rappresentazione in uno spazio a n dimensioni non maneggevole

Gi per sole tre dimensioni non di semplice utilizzo.

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=

000 100 a 010 110 b


- 13 -

001 101

c b 0 1 0
00

insieme degli 1 della funzione

1
01

dove 011 111

1 0

10

11

- 14 -

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh
Una mappa cos realizzata costituisce una mappa di Karnaugh:

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh
Lo sviluppo nel piano di un 3-cubo implica il taglio del cubo Il taglio deve mantenere intatta, concettualmente, la adiacenza fra vertici. Si presti molta attenzione allordinamento delle coordinate

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

a 010 110 b 111 011

dove

1 0

- 16 -

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh Caratteristiche delle mappe: riassunto
Indici di riga e colonna: configurazioni adiacenti
Cambia un solo bit nel passaggio da una configurazione ad unaltra

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh Caratteristiche delle mappe

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

Le colonne e righe identificate da 00 e 10 sono adiacenti

Contenuto della matrice: valori della assunti dalla funzione


Esempio: f(a,b,c,d) per a=0 b=0 c=0 e d=0 assume valore 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 -

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh Metodo:
1. Individuare gli implicanti primi e primi essenziali;

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh
Scopo:

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

implicante primo essenziale

Teorema:

Esiste sicuramente una forma minima costituita da soli implicanti primi

2. Copertura:

sulla mappa di Karnaugh si identificano tutti gli implicanti primi.


Nota: la somma di tutti gli implicanti primi spesso ridondante.

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 -

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh Esempio: alcuni raccoglimenti
00 1 1 0 1 01 11 10 1 0 0 1 1 1 0 1 1 0 0 1

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh Esempio: alcuni raccoglimenti
00 1 1 0 1 01 11 10 1 0 0 1 1 1 0 1 1 0 0 1

a,b c,d 00 01 11 10

raccoglimento Raccoglimento di dimensione massima

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 appartenente ad un solo implicante primo

Raccoglimento di dimensione massima Raccoglimento di dimensione massima essenziale

1 1 0 1

1 1 0 0

0 1 1 0

0 1 1 1

ERRORE: valido raccoglimento solo di 2,4,...


- 21 - 22 -

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh Ad ogni raccoglimento associato un termine prodotto. Il termine prodotto (implicante) ottenuto:

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh
a,b

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

Esempio: identificazione del termine prodotto


00 1 1 0 1 01 11 10 1 0 0 1 1 1 0 1 1 0 0 1 c,d

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 -

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh Copertura

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh
Copertura (cont.)

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:

Scelta degli implicanti per realizzare la copertura:


1. Si scelgono tutti gli implicanti primi essenziali.
Gli implicanti primi essenziali devono essere parte della copertura poich sono essenziali e, quindi, non possibile fare a meno di loro.

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.

3. Si seleziona il numero minore degli implicanti primi che sono rimasti.

Osservazione: la scelta viene fatta seguendo un criterio basato sulla pura osservazione della tabella.
- 26 -

- 25 -

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh Esempio:
f(a, b, c, d) =

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh
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 1 1 1 0 1 1 0 0 0 1 1 1 0 1 0 1

(0,1,2,4,5,9,10,11,13,15)

Implicanti primi essenziali

a,b c,d 00 00 1 01 1 Implicanti primi 11 0 10 1 a'b'd'; b'cd'; ab'c; c'd


a'c'; ad

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

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

a'b'd'; b'cd'; ab'c; c'd


f(a,b,c,d)= a'c'+ad+b'cd Forma minima (unica)
Parzialmente ridondanti
- 28 -

Completamente ridondante
- 27 -

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh Esempio:
f(a, b, c, d) =
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 1 0 1 0 1 1 0 0 0 0 1 1 0 1 0 1

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh Condizioni di Indifferenza (dont care)

(0,2,4,5,10,11,13,15)
a,b c,d 00 00 1 01 0 11 0 10 1

Implicanti primi essenziali

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 -

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh
Le configurazioni di ingresso per le quali il valore delluscita non specificato vengono definite condizioni di indifferenza e costituiscono il DCset della funzione stessa. Sulla tabella delle verit (o in una mappa di Karnaugh) il valore non specificato della funzione si indica il simbolo - (o anche x). Le condizioni di indifferenza sono gradi di libert nel processo di sintesi.

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh
Importante: 1. Gli implicanti primi realizzati solamente mediante condizioni di indifferenza non hanno alcuno scopo (non servono). 2. Un implicante primo non diventa essenziale perch lunico a coprire una data condizione di indifferenza.

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

Implicanti primi essenziali

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

NON Implicanti primi

- 32 -

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh: Esempio 1 Karnaugh:
Esempio 1:

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh: esempio 1 Karnaugh:
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 1 1 1 1 0 0 0 0 1 1 - 34 -

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.

Nota: Codifica BCD

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 -

In questi casi, il valore delluscita non specificato.

- 33 -

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh: esempio 1 Karnaugh: Esempio 1 (cont.)

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh: esempio 1 Karnaugh: Esempio 1 (cont.)

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 -

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh: esempio 2 Karnaugh: Esempio 2:

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh: esempio 2 Karnaugh: Esempio 2 (cont.):

Si voglia sintetizzare la rete RC di figura soggetta ai seguenti vincoli di progetto:


1. 2.

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

Problema: Qual la funzione associata alla rete combinatoria RC (f=g(a,b,c))? C C B A

RC

B A

RC

f(a,b,c)= ab+abc

- 37 -

- 38 -

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh: esempio 2 Karnaugh: Esempio 2 (cont.):

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh: esempio 2 Karnaugh: Esempio 2 (cont.):

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))?

Considerando i vincoli imposti sia sugli ingressi sia sulle uscite :


mai prodotte dallambiente f 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

RC

Considerando il solo vincolo sugli ingressi, espresso da A sempre uguale a B, 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 A 0 0 0 0 1 1 1 1
- 39 -

A A A A

diverso diverso diverso diverso

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

diverso diverso diverso diverso

da da da da

B B B B

Configurazioni mai osservate da Z A B C f 0 0 0 Z indipendente da f 0 0 1 0 1 0 Z indipendente da f 0 1 1 1 0 0 Z indipendente da f 1 0 1 1 1 0 Z indipendente da f 1 1 1

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 -

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh
Metodo (riassunto):
Rispetto al caso senza condizioni di indifferenza si hanno le seguenti variazioni: 1. Individuare gli implicanti primi e primi essenziali considerando le condizioni di indifferenza come se fossero 1;

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Karnaugh Esempio
f (a, b, c, d ) = ON (1,11,12,13,14,15 )DC (3,4,5,9 )
Completamente ridondante

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

Implicanti primi essenziali ab Implicanti primi b'd ; c'd ; bc; ad

2. Coprire solo lONset della funzione con gli implicanti identificati.

Esempio:

AB 00 01 11 10 0 - - - 1 1 - 0 -

f(a,b,c)= a oppure f(a,b,c)= b

a,b c,d 00 00 0 01 1 11 10 0

01 0 0

11 1 1 1 1

10 0 1 0

Trascurato in fase di copertura o non sviluppato in fase di espansione


- 41 -

f(a,b,c,d)= ab+b'd Forma minima (unica)


- 42 -

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

Sintesi di reti combinatorie a due livelli


Obiettivo della sintesi: ottimizzazione della rete combinatoria

Sintesi di Reti Combinatorie


Ottimizzazione di Reti Combinatorie a 2 Livelli: Metodo di Quine-McCluskey Ottimizzazione e cifre di merito Introduzione al Metodo di Quine-McCluskey QuineMetodo di Quine-McCluskey per una funzione completamente specificata QuineMetodo di Quine-McCluskey per una funzione non completamente specificata Quine-

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

Costi: area di silicio

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-

Stima di costi e prestazioni


Lunica valutazione esatta possibile quella di portare la fase di sintesi fino alla realizzazione circuitale: impraticabile perch troppo complessa. Nella ricerca di una soluzione ottima o ottimale necessario poter stimare i costi e le prestazioni:

Area: cifre di merito (1) Area di componenti e di collegamenti


Area porte logiche

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

Area collegamenti (wiring)

il calcolo dei valori stimati deve essere rapido (poco complesso) stimatori a grana grossa suscettibili di raffinamenti

-3-

-4-

Area: cifre di merito (2)


N di letterali presenti nella rappresentazione fattorizzata della funzione

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)

un letterale una somma di forme fattorizzate un prodotto di forme fattorizzate

Cardinalit della soluzione in rappresentazioni della funzione di tipo SoP o PoS

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

le ottimizzazioni delle forme canoniche (SOP e POS) mantengono fattorizzate le espressioni

Sono i due criteri di costo utilizzati nellottimizzazione di reti a 2 livelli

-5-

-6-

Ritardo di propagazione: cifre di merito


Ritardo di propagazione del percorso critico, cio del percorso pi lungo che collega gli ingressi con luscita. ritardo di propagazione attraverso le porte logiche (in generale, nodi del circuito)

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Quine-McCluskey Quine un metodo di minimizzazione tabellare (automatizzato in strumenti CAD)
facile da tradurre in un algoritmo. il numero di variabili trattate teoricamente illimitato.

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.

ritardo di propagazione nei segmenti di interconnessione

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-

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Quine-McCluskey: Prima Fase Quine- McCluskey:
La ricerca degli implicanti primi viene attuata applicando sistematicamente la semplificazione aZ + a'Z = (a+a')Z = Z, con Z termine prodotto Identificazione degli implicanti primi:

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Quine-McCluskey: Prima Fase Quine- McCluskey: 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 1 0 0 1 0 0 1 1 Punto di partenza a 0 0 1 1 b 0 1 1 1 c 0 1 0 1
Nessuna Riduzione: differiscono di 2 letterali Nessuna Riduzione: differiscono di 2 letterali Nessuna Riduzione: differiscono di 3 letterali Nessuna Riduzione: differiscono di 2 letterali Riduzione: - 1 1 (i termini 1 1 1 e 0 1 1 vengono marcati) Riduzione: 1 1 (i termini 1 1 1 e 1 1 0 vengono marcati)

Il punto di partenza linsieme dei mintermini della funzione;

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

Termine implicitamente replicato Termine implicitamente replicato

5. Si crea un nuovo insieme di termini prodotto da confrontare e si ripete il passo 1

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 -

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Quine-McCluskey: Prima Fase Quine- McCluskey: Esempio (cont.)
Punto di partenza a 0 0 1 1 b 0 1 1 1 c 0 1 0 1 Passo 1 a b c - 1 1 1 1 Nessuna Riduzione: i due termini prodotto non sono compatibili poich nel primo manca a mentre nel secondo manca c. Fine del processo

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Quine-McCluskey: Prima Fase Quine- McCluskey:
Il numero dei confronti effettuati pu essere ridotto: non vale la pena di confrontare quei termini che sono sicuramente diversi per pi di un letterale

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

Implicanti primi e primi essenziali


Termini non marcati Termini non marcati

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 -

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Quine-McCluskey: Prima Fase Quine- McCluskey:
S i j:

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Quine-McCluskey: Prima Fase Quine- McCluskey: Algoritmo di Quine - McCluskey (cont.)
(ricorda: i=n di 1, j=iterazione)

Algoritmo di Quine McCluskey

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 -

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Quine-McCluskey: Prima Fase Quine- McCluskey:
f(a, b, c, d) = ON (1, , , , , , ) 9 11 12 13 14 15

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Quine-McCluskey: Prima Fase Quine- McCluskey: Osservazione
1001 1011 1101 9 11 13 15 10-1 1-01 1-11 11-1 9,11 9,13 11,15 13,15 1--1 1--1 9,11,13,15 9,11,13,15

Esempio:
0001 1001 1100 1011 1101 1110 1111 1 9 12 11 13 14 15

-001 10-1 1-01 11011-0 1-11 11-1 111-

1,9 9,11 9,13 12,13 12,14 11,15 13,15 14,15

1--1 11--

9,11,13,15 12,13,14,15

1111

Implicanti Primi e primi essenziali: P0(1,9): b' c' d P1(9,11,13,15): a d P2(12,13,14,15): a b

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 -

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Quine-McCluskey: Prima Fase Quine- McCluskey: Esempio
0001 0011 0101 1001 0111 1011 1101 1111 1 3 5 9 7 11 13 15 -111 1-11 11-1 7,15 11,15 13,15 00-1 0-01 -001 0-11 -011 01-1 -101 10-1 1-01 1,3 1,5 1,9 3,7 3,11 5,7 5,13 9,11 9,13 0--1 -0-1 --01 --11 -1-1 1--1 1,3,5,7 1,3,9,11 1,5,9,13 3,7,11,15 5,7,13,15 9,11,13,15 ---1 1,3,5,7,9,11,13,15

Sintesi di reti combinatorie a due livelli:

Metodi esatti - Quine-McCluskey: Seconda Fase Quine- McCluskey:

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

una matrice binaria dove:


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(1,9): b'c'd P1(9,11,13,15): ad P2(12,13,14,15): ab


- 18 -

P0 P1 P2

Sintesi di reti combinatorie a due livelli:

Metodi esatti - Quine-McCluskey: Seconda Fase Quine- McCluskey:

Sintesi di reti combinatorie a due livelli:


Il problema della copertura intrattabile (NP completo):
Si utilizzano criteri di essenzialit e dominanza per ridurre la complessit del problema (ridurre le dimensioni della tabella). Successivamente si utilizza Branch&Bound

Metodi esatti - Quine-McCluskey: Seconda Fase Quine- McCluskey:

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:

Criterio di Essenzialit (non dipende dalla funzione costo)

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

Una volta applicata lessenzialit potrei fare una ricerca esaustiva


- 20 -

Sintesi di reti combinatorie a due livelli:


Criterio di Essenzialit:
Descrizione:

Metodi esatti - Quine-McCluskey: Seconda Fase Quine- McCluskey:

Sintesi di reti combinatorie a due livelli:


Criterio di dominanza di riga:

Metodi esatti - Quine-McCluskey: Seconda Fase Quine- McCluskey:

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}

Sintesi di reti combinatorie a due livelli:


Criterio di dominanza di riga (cont.):

Metodi esatti - Quine-McCluskey: Seconda Fase Quine- McCluskey:

Sintesi di reti combinatorie a due livelli:


Dominanza tra colonne:

Metodi esatti - Quine-McCluskey: Seconda Fase Quine- McCluskey:

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 -

Insieme di copertura:{P3; P4}


- 24 -

Sintesi di reti combinatorie a due livelli:


Dominanza tra colonne (cont.):

Metodi esatti - Quine-McCluskey: Seconda Fase Quine- McCluskey:

Sintesi di reti combinatorie a due livelli:

Metodi esatti - Quine-McCluskey: Seconda Fase Quine- McCluskey:

Significato:

Coprire il mintermine I induce la copertura anche di B. B x x x E I x x x x x K x E P0 P1 P2 P4 I x x x x x K x

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 -

Sintesi di reti combinatorie a due livelli:

Metodi esatti - Quine-McCluskey: Branch&Bound Quine- McCluskey: Branch&

Sintesi di reti combinatorie a due livelli:


Branch&Bound: ogni scelta (branch) corrisponde ad un ramo dellalbero delle scelte

Metodi esatti - Quine-McCluskey: Branch&Bound Quine- McCluskey: Branch&

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 -

Sintesi di reti combinatorie a due livelli:


Esempio: B&B
A x B x x C x x

Metodi esatti - Quine-McCluskey: Seconda Fase Quine- McCluskey:


D E x x x {P3} x P0 P1 P2 P3 {P1} {P0,P3} {P1,P3} {P1,P3}

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Quine-McCluskey: Sommario Quine- McCluskey: Identificazione degli implicanti primi Soluzione della tabella di copertura
1. Identificazione e scelta degli implicanti primi essenziali primari; 2. Applicazione della dominanza di colonna e di riga; 3. Identificazione e scelta degli implicanti primi essenziali secondari; se ne esistono si ritorna al passo 2, altrimenti vai al passo 4; 4. Applicazione dellalgoritmo di B&B

{P0} {P0,P1} {P0,P2}

{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 -

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Quine-McCluskey QuineEsempio:
0001 0100 0101 0110 1001 1101 1110 1111 1 4 5 6 9 13 14 15
f(a, b, c, d) = ON (1, , , , , , , ) 4 5 6 9 13 14 15

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Quine-McCluskey QuineEssenzialit

Esempio (cont.):
P0 P1 P2 P3 P4 P5 1 x 4 x x 5 x x 6 9 x

Dominanza di riga

0-01 -001 01001-0 -101 -110 1-01 11-1 111-

1,5 1,9 4,5 4,6 5,13 6,14 9,13 13,15 14,15

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 -

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Quine-McCluskey : DC QuineLestensione alle funzioni non completamente specificate richiede laggiunta delle seguenti regole:

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Quine-McCluskey : DC QuineAttenzione!!
Se al termine del procedimento di generazione di implicanti primi, uno dei termini non marcati ha unetichetta costituita da soli DC, il termine generato non un implicante della funzione Si noti che se venisse considerato nella tabella di copertura, la sua inclusione genererebbe una riga vuota

Ricerca degli implicanti primi:

Nel passo relativo alla generazione degli implicanti primi, le condizioni di indifferenza sono trattate come 1.

Ricerca della copertura ottima:

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 -

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Quine-McCluskey: DC Quine- McCluskey:
f(a, b, c, d) = ON (0, , , ) DC(4, ) 2 12 13 5

Sintesi di reti combinatorie a due livelli: Modelli di costo per area


Consideriamo le due differenti cifre di merito per attribuire il costo agli implicanti:

Esempio:
0000 0010 0100 0101 1100 1101 0 2 4 5 12 13

00-0 0-00 010-100

0,2 0,4 4,5 4,12 -104,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).

-101 5,13 110- 12,13


Essenziali

Per funzioni a singola uscita a n variabili


0 x x 2 12 13 x f(a,b,c,d)= abd+bc x
- 35

Implicanti Identificati:

P0: abd P1: acd P2: bc

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 -

Cardinalit: numero ingressi ininfluente


In questo modello, conta solo il numero delle porte AND e OR utilizzate Le porte OR e AND hanno un numero arbitrario di ingressi Poich la sintesi lavora con forme SOP, il numero di porte OR non varia tra le implementazioni, quindi il costo dellimplementazione proporzionale al numero di porte AND utilizzate (dualmente con forme POS proporzionale al numero di porte OR utilizzate) Se attribuiamo costo uguale a tutti gli implicanti, minimizzare la somma degli implicanti utilizzati equivale a minimizzare il numero di porte AND, e quindi il numero complessivo di porte

Cardinalit: valutazione del costo


SOP ottimizzata
f = abc + abc+ cd
a

Implicanti abc abc cd f

costo 1 1 1 3

Numero porte ANDOR = n imp. + 1 Numero porte ANDOR = 3 + 1


- 37 - 38 -

Cardinalit: ulteriore raffinamento della Cardinalit: valutazione del costo


In una forma SOP ottimizzata possono essere presenti implicanti costituiti da un solo letterale Questi implicanti vengono considerati a tutti gli effetti ai fini della cardinalit Nellimplementazione questi implicanti non generano nessuna porta AND ma costituiscono semplicemente degli ingressi alla porta OR La relazione tra cardinalit e numero delle porte diventa

Letterali: valutazione del costo


Tra tutte le possibili dipendenze, consideriamo quella che si crea implementando le porte a pi ingressi con porte a due ingressi In questo caso, ogni implicante a n ingressi aggiunto alla soluzione contribuisce nellimplementazione con:

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

Il costo di un implicante quindi pari al numero dei suoi letterali

- 40 -

Letterali: valutazione del costo


SOP ottimizzata
f = abc + abc+ cd
a

Implicanti abc abc cd f

costo 3 3 2 8

Numero porte ANDOR = Sommatoria letterali - 1 Numero porte ANDOR = 8 - 1


- 41 -

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

Sintesi di Reti Combinatorie


Ottimizzazione di Reti Combinatorie a Due Livelli: Metodo di Quine-McCluskey Quine-

Metodo di Quine-McCluskey per pi funzioni Quine-

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 sub-ottima con condivisione Forma sub-ottima con condivisione


-4-

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):

Giustificazione del risultato


Senza condivisione Con condivisione

Giustificazione del risultato


00 0 1 1 0 01 11 10 1 1 1 0 1 1 1 1 1 0 1 1
Nota: gli implicanti primi Nota: gli implicanti primi di f1*f2 che conviene di f1*f2 che conviene utilizzare sono solo 2. utilizzare sono solo 2. La scelta un problema La scelta un problema legato alla copertura legato alla copertura ottima delle funzioni. ottima delle funzioni.

a,b c,d 00 f1 01 11 10 a,b c,d 00 f2 01 11 10

00 0 1 1 0

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

a,b c,d 00 f1 01 11 10 a,b c,d 00 f2 01 11 10


-5-

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

a,b c,d 00 f1 01 11 10 a,b c,d 00 f2 01 11 10

00 0 1 1 0

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

a,b c,d 00 f1*f2 01 11 10

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.

Quine-McCluskey: Multi-Uscita Implicanti primi


Lapplicazione del metodo a pi funzioni completamente specificate richiede estensioni alla costruzione della tabella degli implicanti ed alla soluzione della tabella di copertura

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

Costruzione della tabella degli implicanti

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).

Il metodo di Quine-McCluskey collassa tutte le informazioni in una unica tabella.


Il numero degli implicanti primi estratti mantiene il problema di copertura della stessa complessit di quello delle due funzioni.
-7-

-8-

Quine-McCluskey: Multi-Uscita Implicanti primi


Nel caso di funzioni non completamente specificate il problema richiede unulteriore trasformazione che riporta al caso multi-uscita completamente specificato:

Quine-McCluskey: Multi-Uscita Implicanti primi


Esempio1:
F = f1 f2 = ON 1 (0, , , )DC1(4, ) ON 2 (1, , )DC 2(11, ) 2 12 13 5 4 13 5
Mappa di Karnaugh di f1

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

a,b c,d 00 01 11 10 a,b c,d 00 01 11 10

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 -

Quine-McCluskey: Multi-Uscita Implicanti primi


Esempio1 (cont.):

Quine-McCluskey: Multi-Uscita Implicanti primi


Esempio1 (cont.):

F = f1 f2 = ON 1 (0, , , )DC1(4, ) ON 2 (1, , )DC 2(11, ) 2 12 13 5 4 13 5

F = f1 f2 = ON 1 (0, , , )DC1(4, ) ON 2 (1, , )DC 2(11, ) 2 12 13 5 4 13 5

Costruzione identificatore senza DCset:


0000 0001 0010 0100 1100 1101 0 1 2 4 10 01 10 01

Aggiunta mintermini del DCset allONset:


0000 0001 0010 0100 0101 1100 1011 1101 0 1 2 4 10 01 10 11

12 10 13 11

5 11 12 10 11 01 13 11

- 11 -

- 12 -

Quine-McCluskey: Multi-Uscita Implicanti primi


Generazione di implicanti primi

Quine-McCluskey: Multi-Uscita Implicanti primi


Quattro casi possibili - esempi:
1. Lidentificatore di appartenenza risultante 000...000

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.

0 1100 AND 1 0011

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

2. Lidentificatore di appartenenza risultante non coincide con nessun identificatore di partenza

La configurazione ottenuta corrisponde ad una espansione valida ma non coinvolge tutte le funzioni ne del primo ne del secondo implicante coinvolto.

1100 1101

e nessun mintermine viene marcato come coperto.

12 1110 AND 13 0111

Passo 1

110

12,13 0110

- 13 -

- 14 -

Quine-McCluskey: Multi-Uscita Implicanti primi


Quattro casi possibili:
3. Lidentificatore di appartenenza risultante coincide con un solo identificatore di partenza

Quine-McCluskey: Multi-Uscita Implicanti primi


Esempio1 (cont.):

F = f1 f2 = ON 1 (0, , , )DC1(4, ) ON 2 (1, , )DC 2(11, ) 2 12 13 5 4 13 5

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.

0000 0001 0010 0100 0101 1100 1011 1101

nessun risultato

00

1100 1101

12 1111 AND 13 0011

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

= 4. Lidentificatore di appartenenza risultante coincide con entrambi gli identificatore di partenza.

La configurazione ottenuta corrisponde ad una espansione valida e coinvolge tutte le funzioni del primo e del secondo implicante coinvolto.

1100 1101

=
- 16 -

- 15 -

12 0111 AND 13 0111

Passo 2 Passo 1 Passo 2

= 11012,13 0111

1100 1101

12 10 AND 13 11

=
Passo 1 Passo 2

110-

12,13 10

Quine-McCluskey: Multi-Uscita Implicanti primi


Esempio1 (cont.):
0000 0001 0010 0100 0101 1100 1011 1101 0 10 1 01 2 10 4 11 5 11 12 10 11 01 13 11 00000-0 0-00 0-01 010-100 -101 1100,1 00 0,2 10 0,4 10 1,5 01 4,5 11 4,12 10 5,13 11 12,13 10 -104,5,12,13 10
F = f1 f2 = ON 1 (0, , , )DC1(4, ) ON 2 (1, , )DC 2(11, ) 2 12 13 5 4 13 5

Quine-McCluskey: Multi-Uscita Implicanti primi


Nel caso di funzioni completamente specificate gli implicanti non marcati sono implicanti primi Nel caso di funzioni non completamente specificate lelenco degli implicanti ottenuti subisce unulteriore trasformazione:

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

Tutti gli implicanti rimasti sono implicanti primi

- 17 -

- 18 -

Quine-McCluskey: Multi-Uscita Tabella di copertura


Tabella di Copertura

Quine-McCluskey: Multi-Uscita Tabella di copertura


Identificazione della copertura ottima: simile al caso di singola uscita con alcune differenze.

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 -

Quine-McCluskey: Multi-Uscita Tabella di copertura - Costo


In questo esempio la soluzione ottenuta per essenzialit e per dominanza di riga ed identica sia minimizzando la cardinalit sia i letterali
f1
a b c

Quine-McCluskey: Multi-Uscita Tabella di copertura - Costo


P0 P1 P2 P3 P4 = = = = = bcd abd a cd ab
d

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 -

Quine-McCluskey: Multi-Uscita Tabella di copertura

Quine-McCluskey: Multi-Uscita Tabella di copertura


Identificazione della copertura ottima: simile al caso di singola uscita con alcune differenze.

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: Multi-Uscita Tabella di copertura


Esempio 1 (cont.):
0 x x f1 2 12 13 x x x x x x x 1 f2 4 13
Nota: Nota: nella scelta di P5 a causa della sua essenzialit nella scelta di P5 a causa della sua essenzialit in f2 per 13, la riga eliminata solo quella in in f2 per 13, la riga eliminata solo quella in corrispondenza di f2 poich P5 non essenziale corrispondenza di f2 poich P5 non essenziale per f1. per f1.

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

Quine-McCluskey: Quine- McCluskey: Multi-Uscita Tabella di copertura Cardinalit Multi(b)


C 1 1 1 1 0 0 1 1 0 0 5 P0 P1 x P3 P4 P5 P6 x P7 P8 P9 P10 f1 7 8 x x x x x x x x x x x x x 9 13 15 x x x x x x x 2 3 f2 f3 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 -

Quine-McCluskey: Quine- McCluskey: Multi-Uscita Tabella di copertura Cardinalit Multi(c)


C 1 1 1 1 0 0 1 1 0 0 5 P0 P1 x P3 P4 P5 P6 x P7 P8 P9 P10 f1 8 13 15 x x x x x x x x x x x x x f2 2 6 f3 13

Quine-McCluskey: Quine- McCluskey: Multi-Uscita Tabella di copertura Cardinalit Multi(d)


C 1 1 1 0 0 01 0 P1 P3 P4 P5 P6 x P7 P10 5 x f1 13 15 x x x x x x x x f2 2 6 x x f3 13

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 -

righe essenziali secondarie e dominanza di riga

Soluzione parziale Soluzione parziale f1: {P5, P9} f1: {P5, P9} f2: {P6} f2: {P6} f3: {P9,P10,P7} f3: {P9,P10,P7}

- 29 -

Quine-McCluskey: Quine- McCluskey: Multi-Uscita Tabella di copertura Cardinalit Multi(e)


C 1 1 0 0 0 0 P1 P3 P5 P6 x P7 P10 5 x f1 13 15 x x f2 2 6 x x x x x x

Quine-McCluskey: Quine- McCluskey: Multi-Uscita Tabella di copertura Cardinalit Multi(f)


C 1 1 0 0 0 0 P1 P3 P5 P6 x P7 P10 5 x f1 13 x 2 x x x x f2 6 x

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

Quine-McCluskey: Quine- McCluskey: Multi-Uscita Tabella di copertura Letterali MultiEsempio cont.


5 P0 P1 x P2 P3 P4 P5 P6 x P7 P8 P9 P10 P11 7 x f1 8 9 13 15 x x x x x x x x x x x x x x x x x x x x x x x 2 3 f2 6 10 11 14 15 f3 13 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 -

Quine-McCluskey: Quine- McCluskey: Multi-Uscita Tabella di copertura Letterali MultiEsempio cont.


5 P0 P1 x P2 P3 P4 P5 P6 x P7 P8 P9 P10 P11 f1 8 13 15 x x x x x x x x x x x x x x x x x 2 f2 6 10 14 f3 13 C 2 2 2 1 2 1 1 3 3 1 1 3

Quine-McCluskey: Quine- McCluskey: Multi-Uscita Tabella di copertura Letterali MultiEsempio cont.


5 x x x x x x f1 8 13 15 x x 2 x f2 6 10 14 x x x f3 13 C 2 1 1 3 1

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 -

Quine-McCluskey: Quine- McCluskey: Multi-Uscita Tabella di copertura Letterali MultiEsempio cont


f1 5 13 15 x x x x x x C 2 1 3 -> 1 P1 P6 P7

Quine-McCluskey: Quine- McCluskey: Multi-Uscita Tabella di copertura Letterali Multif1 5 13 C x x 2 x 1 x 1

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 -

Identificazione delle dominanze di colonna: F1 : 13 domina 15 ;

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 -

Costo in letterali = 18 (cardinalit = 7)

Quine-McCluskey: Multi-Uscita Tabelle Cicliche possibile applicare il B&B con alcuni accorgimenti.

Quine-McCluskey: Multi-Uscita Tabelle Cicliche


Esempio
P0 P1 P2 P3 P4 f1 A B C D x x x x x x x x x x E x x x f2 F G H I L x x x x x x x x x x x

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} {P0f1,P0f2} {P0f1,P1f2}

{P0f1,P0f2,P2f1}
- 39 - 40 -

Quine-McCluskey: Multi-Uscita Criteri di costo


Differenti criteri di costo implicano

Sintesi di reti combinatorie a due livelli:


Metodi esatti - Espresso-Exact EspressoEspresso-Exact

Differenti complessit di elaborazione

Usare come costo i letterali comporta una soluzione pi complessa Considerare solo la cardinalit non tiene in conto il costo reale delle porte logiche

Differenti stime del costo del circuito


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 -

Sintesi di reti combinatorie a due livelli:


Metodi euristici La minimizzazione esatta ha due problemi:

L'enorme numero di implicanti primi.

Sintesi di Reti Combinatorie


Ottimizzazione di Reti Combinatorie a Due Livelli: Metodo Euristico Euristico
Introduzione Metodo Euristico per reti a due livelli Approfondimenti

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.

L'intrattabilit del problema di copertura.

Soluzione:

Miglioramento iterativo della 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-

Sintesi di reti combinatorie a due livelli:


Metodi euristici
I metodi euristici di minimizzazione differiscono per qualit della soluzione.

Sintesi di reti combinatorie a due livelli:


Metodi euristici: operatori Gli operatori utilizzati da Espresso sono:

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-

Sintesi di reti combinatorie a due livelli:


Metodi euristici Algoritmo:
Inizio REDUCE EXPAND IRREDUNDANT
si
La soluzione migliorata?

Sintesi di reti combinatorie a due livelli:


Metodi euristici Esempio:
Condizione iniziale: deriva direttamente dalle specifiche del problema Mintermine eliminato poich Mintermine eliminato poich coperto durante lespansione coperto durante lespansione

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-

Sintesi di reti combinatorie a due livelli:


Metodi euristici
Esempio (cont.): la soluzione migliorata, quindi si prosegue

Sintesi di reti combinatorie a due livelli:


Metodi euristici Esempio (cont.): a,b c,d 00 00 0 01 0 11 1 10 0 a,b c,d 00 00 0 01 0 11 1 10 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

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: 8 Nota: copertura prima

Cardinalit: 3 Costo: 9 Nota: copertura non prima

Cardinalit: 3 Costo: 9 Nota: copertura non prima

Cardinalit: 3 Costo: 7 Nota: copertura prima Fine della procedura (lapplicazione di una riduzione porta alla soluzione individuata al passo precedente)
-8-

-7-

Sintesi di reti combinatorie a due livelli:


Metodi euristici Esempio 2: a,b c,d 00 01 00 1 1 Card.: 4 01 1 1 Costo: 8 11 0 0 10 1 1 c,d 00 01 11 Espansione Card.: 4 10
Costo: 8
-9-

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

Sintesi di reti combinatorie a due livelli Metodo Euristico Approfondimento

c,d 00 01 11 Irredundant Card.: 3 10


Costo: 6

10 0 1 1 1

Sintesi di reti combinatorie a due livelli:


Metodi euristici - Expand Expand

Sintesi di reti combinatorie a due livelli:


Esempio:
OFF-Set: ac+abd+ad OFF-Set: ac+abd+ad
Espansione rispetto ad a di acd c'd' Espansione rispetto ad a di acd c'd' espansione non ammissibile espansione non ammissibile

Metodi euristici - Expand: verifica ammissibilit Expand:

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

Implicante da espandere:a c'd' Implicante da espandere:a c'd'

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)

Sintesi di reti combinatorie a due livelli:


Metodi euristici - Expand Esempio: 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
Ordine di Ordine di Espansione Espansione (1) (1) (2) (2) (3) (3) (4) (4)

Sintesi di reti combinatorie a due livelli:


implicanti La qualit del risultato dipende da due fattori:

Metodi euristici - Expand: ordine di espansione degli Expand:

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'}

Copertura finale: on-set: {ad', a'cd, bcd} 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 -

Sintesi di reti combinatorie a due livelli:


Metodi euristici - Expand - Esempio
aa 0 1 1 0 1 1 0 1 2 3 bb 1 1 1 0 0 1 1 0 3 2 cc 1 0 0 1 0 1 0 1 1 3 dd 1 0 0 1 0 1 1 0 2 2 acd abcd bcd abcd
Conteggio per colonna

Sintesi di reti combinatorie a due livelli:


Metodi euristici - Reduce
(2) (1) (4) (3)

Peso 3+3+2+1+2=11 2+3+3+2=10 2+3+2+3+2=12 3+3+3+2=11

Reduce

Trasforma la copertura in un'altra non prima della stessa cardinalit.

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.

Gli implicanti sono manipolati uno alla volta.

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 -

Sintesi di reti combinatorie a due livelli:


Metodi euristici - Reduce Esempio: a,b c,d 00 01 00 0 0 01 0 1 11 1 1 10 0 0 a,b c,d 00 01 00 0 0 01 0 1 11 1 1 10 0 0

Sintesi di reti combinatorie a due livelli:


Metodi euristici - Reduce
Per evitare di applicare la reduce a implicanti che non possono essere ridotti oppure che portano ad una riduzione non ammissibile si applica una euristica. La regola euristica di scelta:

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).

Esempio (vedi Expand):


Implicanti: ad bcd acd
conteggio per colonna:

a 01 11 01

b 11 01 11

c 11 01 01

d 10 01 01

3+2+3+1+3+1=13 (1) 1+3+3+3+2=12 (3) 3+2+3+3+2=13 (2)


Ordine

13 23 13 12
- 18 -

Sintesi di reti combinatorie a due livelli:


Metodi euristici - Irredundant

Sintesi di reti combinatorie a due livelli:


Metodi euristici - Espresso
(1982) ESPRESSO II basato sulla applicazione di iterate espansioni e riduzioni. Il risultato prodotto da ESPRESSO una copertura non ridondante spesso di minima cardinalit. I passi seguiti da ESPRESSO II sono:
1. COMPLEMENT: Calcola l'OFF-set. 2. EXPAND: Espande a primi gli implicanti e rimuove quelli coperti. 3. ESSENTIAL PRIMES: Estrae gli implicanti essenziali primi e li unisce al DC-set. 4. REDUCE: Riduce ogni implicante a un implicante essenziale minimo. 5. EXPAND: Espande a primi gli implicanti e rimuove quelli coperti. 6. IRREDUNDANT COVER: Trova la copertura minimale non ridondante. Se la soluzione migliora vai al passo 4. 7. LASTGASP: applica per un'ultima volta REDUCE, EXPAND e IRREDUNDANT COVER usando una differente strategia. 8. COST: Se questa operazione ha successo vai al passo 4. 9. MAKESPARSE: Adatta la soluzione ad una PLA.

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

la copertura divisa in tre insiemi


relativamente essenziali parzialmente ridondanti totalmente ridondanti

Rispetto al metodo esatto, la copertura costituita da implicanti non tutti necessariamente primi.

- 19 -

- 20 -

Sintesi di reti combinatorie a due livelli:


Metodi euristici - Espresso
Espresso(on_set,dc_set) off_set=Complement(on_set U dc_set) on_set=Expand(on_set, off_set) /*copertura prima ridondante*/ on_set=Irredundant(on_set, dc_set) essential_set=Essentials(on_set, dc_set) on_set=on_set - essential_set /* toglie 1 dall'on_set */ dc_set=dc_set U essential_set /* e li aggiunge al dc_set */

Sintesi di reti combinatorie a due livelli:


Espresso Comando:

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

-o[tipo]: seleziona il formato di uscita:

-s: fornisce un breve sommario relativo allesecuzione; -t: fornisce un ampio sommario relativo allesecuzione; -x: non visualizza la soluzione;
- 22 -

- 21 -

Sintesi di reti combinatorie a due livelli:


Espresso
Parametri (continua):

Sintesi di reti combinatorie a due livelli:


Espresso Esempio:
11 1 x 1 x 0 0 1 0 0 0 1 0

-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

-Sn: seleziona la strategia per il sotto comando (solo quelli riportati):


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

Notazione Notazione positional-cube positional-cube 1 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 1 1 1 1 0 1 0 1 1 1 1 0 1 0 1 1 0 0 1 1 0 0 1 0 0 1 1 0 0 2 3 3 2 1 3 2 2 3 3 2 1 3 2

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 di reti combinatorie a due livelli:


Espresso
Esempio:
.i 4 .o 3 .type fr 00-1 1-1 01-- 001 1000 0-1001 --1 1011 -11100 111 1101 000 1110 -10 1111 01EXPAND: 1100 100 (covered 2) EXPAND: 1100 100 (covered 2) EXPAND: 1011 010 (covered 3) EXPAND: 1011 010 (covered 3) EXPAND: 1111 010 (covered 0) EXPAND: 1111 010 (covered 0) EXPAND: 1100 001 (covered 0) EXPAND: 1100 001 (covered 0) EXPAND: 01-- 001 (covered 0) EXPAND: 01-- 001 (covered 0) # IRRED: F=5 E=5 R=0 Rt=0 Rp=0 Rc=0 Final=5 Bound=0 # IRRED: F=5 E=5 R=0 Rt=0 Rp=0 Rc=0 Final=5 Bound=0 ESSENTIAL: 0--- 001 ESSENTIAL: 0--- 001 REDUCE: -0-1 111 to -0-1 101 0.00 sec REDUCE: -0-1 111 to -0-1 101 0.00 sec REDUCE: 1-1- 010 to 1-11 010 0.00 sec REDUCE: 1-1- 010 to 1-11 010 0.00 sec REDUCE: 1-00 011 to 1100 001 0.00 sec REDUCE: 1-00 011 to 1100 001 0.00 sec EXPAND: 1100 001 (covered 0) EXPAND: 1100 001 (covered 0) EXPAND: 1-11 010 (covered 0) EXPAND: 1-11 010 (covered 0) EXPAND: -0-1 101 (covered 0) EXPAND: -0-1 101 (covered 0) # IRRED: F=4 E=4 R=0 Rt=0 Rp=0 Rc=0 Final=4 Bound=0 # IRRED: F=4 E=4 R=0 Rt=0 Rp=0 Rc=0 Final=4 Bound=0 REDUCE_GASP: 1-00 011 reduced to 1100 001 REDUCE_GASP: 1-00 011 reduced to 1100 001 REDUCE_GASP: 1-1- 010 reduced to 1111 010 REDUCE_GASP: 1-1- 010 reduced to 1111 010 REDUCE_GASP: 11-0 110 reduced to 1100 100 REDUCE_GASP: 11-0 110 reduced to 1100 100 REDUCE_GASP: -0-1 111 reduced to -0-1 101 REDUCE_GASP: -0-1 111 reduced to -0-1 101 EXPAND: 1100 111 (covered 0) EXPAND: 1100 111 (covered 0) # IRRED: F=5 E=2 R=3 Rt=0 Rp=3 Rc=1 Final=3 Bound=0 # IRRED: F=5 E=2 R=3 Rt=0 Rp=3 Rc=1 Final=3 Bound=0 REDUCE: -0-1 111 to -0-1 101 0.01 sec REDUCE: -0-1 111 to -0-1 101 0.01 sec EXPAND: -0-1 101 (covered 0) EXPAND: -0-1 101 (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 (continua) (continua) - 25 (continua) (continua) # 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 REDUCE_GASP: 1-1- 010 reduced to 111- 010 REDUCE_GASP: 1-1- 010 reduced to 111- 010 REDUCE_GASP: 1100 111 reduced to 1100 111 REDUCE_GASP: 1100 111 reduced to 1100 111 REDUCE_GASP: -0-1 111 reduced to -0-1 101 REDUCE_GASP: -0-1 111 reduced to -0-1 101 # IRRED: F=2 E=2 R=0 Rt=0 Rp=0 Rc=0 Final=2 Bound=0 # IRRED: F=2 E=2 R=0 Rt=0 Rp=0 Rc=0 Final=2 Bound=0 # IRRED: F=3 E=2 R=1 Rt=1 Rp=0 Rc=0 Final=2 Bound=0 # IRRED: F=3 E=2 R=1 Rt=1 Rp=0 Rc=0 Final=2 Bound=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 EXPAND: -0-1 101 (covered 0) EXPAND: -0-1 101 (covered 0) .i 4 .i 4 .o 3 .o 3 .p 4 .p 4 1100 111 1100 111 1-1- 010 1-1- 010 -0-1 101 -0-1 101 0--- 001 0--- 001 .e .e

Sintesi di reti combinatorie a pi livelli:


Introduzione
Obiettivo della sintesi logica: ottimizzazione delle cifre di merito area e prestazioni

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-

Sintesi di reti combinatorie a pi livelli:


Introduzione Esempio(Reti combinatorie a due livelli: Area e tempo sono ridotti contemporaneamente)

Sintesi di reti combinatorie a pi livelli:


Introduzione Esempio(Reti combinatorie a pi livelli: trade-off area/prestazioni)

Ipotesi: porte con un massimo di 3 ingressi (ritardo uniforme: )

Ipotesi: porte con un massimo di 3 ingressi (ritardo uniforme: )

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

Ritardo: 5 ; Costo: 22 Ritardo: 6 ; Costo: 19 Ritardo: 6 ; Costo: 18

f(a,b,c,d)= a'c'+ad+b'cd (forma minima 2 livelli)

22

area 20 19 18 4 5 ritardo 6 7

Ritardo: 5 ; Costo in letterali: 40

21

Ritardo: 2 ; Costo in letterali: 7


-3-

-4-

Sintesi di reti combinatorie a pi livelli:


Introduzione
Nella realizzazione di reti combinatorie multi-livello, pi che ricercare un ottimo, si cerca una soluzione ragionevole in termini di area e prestazioni. Sarebbe pi corretto parlare di sintesi invece che di ottimizzazione. La sintesi pu prevedere:

Sintesi di reti combinatorie a pi livelli:


Introduzione Ottimizzazione a pi livelli:

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-

Sintesi di reti combinatorie a pi livelli:


Introduzione
Euristica del problema di ottimizzazione - due passi:
a) Si produce una soluzione ottimale ignorando i vincoli di realizzazione

Sintesi multilivello di reti combinatorie esempio (1)


Data una rete combinatoria con ingressi (a, b, c, d, e, f), uscite (Y1, Y2, Y3) e rappresentata dal seguente modello (rete multilivello)

fan_in, fan_out, elementi di libreria

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

Equazioni dei nodi


V1 V2 Y3 Y2 V3 Y1

V 1 = abd + ef

library mapping (o library binding).

Risultato dell'ottimizzazione di inferiore qualit rispetto ad una ottimizzazione che considera contemporaneamente i punti a) e b) ma risulta computazionalmente pi semplice.

V 2 = aV 1b + aV 1c + V 1cd + V 1bd V 3 = bde + abce + bde + abce + bdef

Y1 = V 3 + a f

In questa sezione si analizza solo il punto relativo allidentificazione della soluzione ottimale (punto a).
-7-

Y2 = V 1ab + abcde + bcde + V 1ab f + abcde


Y3 = ab f + d b f + ae + aV 2 + de + dV 2
-8-

Sintesi multilivello di reti combinatorie esempio (2)


1. E possibile manipolare la rete con una sequenza di trasformazioni in modo da ridurre il costo dellimplementazione? 2. Quale cifra di merito si pu utilizzare per valutare la bont della soluzione? 3. Quali trasformazioni (di che tipo e a che scopo) si possono utilizzare (in modo tale che la sintesi possa essere effettuata in modo automatico)?
a) b) c) d)

Sintesi multilivello di reti combinatorie esempio (3)


Applicare in sequenza alla rete multi livello le trasformazioni sotto indicate COST(): Calcolo del numero di letterali. La funzione COST() calcola il costo in letterali indipendentemente dalla forma (SOP o multi livello) delle espressioni algebriche dei nodi. SIMPLIFY(Y2): Minimizzazione a due livelli di Y2. SIMPLIFY(V3): Minimizzazione a due livelli di V3. ELIMINATE(V3, +3): Eliminazione del nodo V3: la trasformazione viene accettata solo se
lincremento di area, dovuto alleliminazione inferiore o uguale alla soglia data (+3).

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.

COST(): Calcolo del numero di letterali.


- 10 -

Sintesi multilivello di reti combinatorie esempio (4)


Costo dei nodi in letterali

Sintesi multilivello di reti combinatorie esempio (5)


COST( ): 73 SIMPLIFY(Y2): Minimizzazione a due livelli di Y2. Tramite mappe di Karnaugh o manipolazione algebrica
ottima, il risultato della minimizzazione sotto riportato con C_Y2=-7 (C_Y2=14)

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

Y2 = V 1ab + abcde + bcde + V 1ab f + abcde


Y3 = ab f + d b f + ae + aV 2 + de + dV 2

C_V1= 5 C_V2=12 C_V3=18 C_Y1=3 C_Y2=21 C_Y3=14

Y2 = V 1ab + abcd e + bcde + V 1ab f + abcde

Y2 = V 1a(b + b f ) + abcd (e + e) + bcde


Y2 = V 1a(b + f ) + abcd + bcde Y2 = V 1ab + V 1af + abcd + bcde
SIMPLIFY(V3): Minimizzazione a due livelli di V3. Il risultato della minimizzazione sotto riportato con
C_V3=-13 (C_V3=5)

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 -

Sintesi multilivello di reti combinatorie esempio (6)


ELIMINATE(V3, +3): lunico nodo che contiene V3 Y1
COST( ): 46

Sintesi multilivello di reti combinatorie esempio (7)


[V4] = EXTRACT(V2, Y3): Estrazione di un fattore comune a V2 e Y3.

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

FACTOR(V2): Fattorizzazione del nodo V2.

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 -

Sintesi multilivello di reti combinatorie esempio (8)


Lapplicazione di tutte le trasformazioni ha portato alla rete seguente che ha un costo pari a 38 letterali Le equazioni dei nodi sono:
V 1 = abd + ef
V4 V1 V2 Y3 Y2 Y1

Sintesi di reti combinatorie a pi livelli:


Modello della rete (1)
Nella sintesi multilivello, il modello utilizzato per rappresentare un circuito combinatorio un grafo orientato aciclico

DAG - Direct Acyclic Graph

Grafo per reti combinatorie

un grafo orientato G(V,E) aciclico


V 2 = V 4(V 1b + V 1c ) V 4 = (a + d ) Y 1 = a ce + de + a f Y2 = V 1ab + V 1af + abcd + bcde Y3 = V 4(b f + e + V 2)


V: insieme dei nodi E: insieme degli archi

V partizionato negli insiemi:


nodi di ingresso VI (Primary Inputs - PI) nodi di uscita VO (Primary Outputs - PO) nodi interni VG: Sono moduli della rete combinatoria a cui associata una funzione combinatoria scalare (una sola uscita)

- 15 -

- 16 -

Sintesi di reti combinatorie a pi livelli:


Modello della rete (2)
E' un modello comportamentale/strutturale

Sintesi di reti combinatorie a pi livelli:


Trasformazioni per reti logiche (1)
Metodi euristici

Strutturale: connessioni. Comportamentale: ad ogni nodo associata una funzione.

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.

Il modello bipolare e non gerarchico

Rispetto al grafo che rappresenta la rete combinatoria, sono possibili due tipi di trasformazioni:

Bipolare: Ogni arco pu assumere valore 0 o 1.


i1 i2 i3 c= i1+i3

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.

Globali: modificano anche la struttura della rete

a= i1i2 b=ai3+i2 d=bc o1 o2 i2


- 17 -

i1

a= i1i2 b=ai3+i2

i1 i2
- 18 -

b= i1i2i3+i2

Sintesi di reti combinatorie a pi livelli:


Trasformazioni per reti logiche (2)
Le trasformazioni logiche modificano sia l'area sia le prestazioni poich agiscono:

Sintesi di reti combinatorie a pi livelli:


Approcci alla ottimizzazione multi-livello multiLapproccio tipicamente utilizzato quello algoritmico

Sulle funzioni locali;

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)

Ogni trasformazione associata ad un algoritmo L'algoritmo:


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.

Sono usate cifre di merito per valutare le trasformazioni

Trasformazioni non convenienti sono rifiutate.

Le trasformazioni sono applicate in modo iterativo.

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 -

Sintesi di reti combinatorie a pi livelli:


Trasformazioni base
Le trasformazioni base per manipolare le espressioni logiche sono:

Sintesi di reti combinatorie a pi livelli: Trasformazioni e algoritmi: eliminazione


Eliminazione: globale, riduce la lunghezza del percorso I/O

Decomposizione di una espressione

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

Estrazione di una sotto-espressione da pi espressioni

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)

Semplificazione di una espressione e fattorizzazione

L'eliminazione di un vertice accettata se incrementa l'area di una quantit inferiore a Val_Intero.


Ad esempio, lincremento di area pu venire calcolato come n*l-nl, dove l numero di letterali del nodo eliminato mentre n il numero di nodi che lo assorbono

Eliminazione

Riduzione non vincolata

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 -

Sintesi di reti combinatorie a pi livelli:


Trasformazioni e algoritmi: eliminazione Esempio di eliminate 2:
x=de+ef d=a+b+c y=df+e Costo: 3+4+3= 10 y=(a+b+c)f+e Costo: 6+5= 11

Sintesi di reti combinatorie a pi livelli:


Trasformazioni e algoritmi: semplificazione Semplificazione: trasformazione locale

x=(a+b+c)e+ef

Semplificazione a due livelli di ogni nodo (Simplify)


Metodo esatto (Quine-McClusky) o euristico.

Fattorizzazione di un nodo (Factor)


Allinterno di un nodo, raccoglie a fattore comune alcuni termini. Esempio: (ipotesi: porte a 3 ingressi)

incremento di costo: 2*3-2-3 = 1 (accettato)

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

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 -

f= l+ c*g*h+ k*(a*b+ g)+ e*(d*(a*b*c+ a*f)+g*i+j); Ritardo: 7 ; Costo: 18

- 24 -

Sintesi di reti combinatorie a pi livelli:


Trasformazioni e algoritmi: fattorizzazione
Fattorizzazione

Sintesi di reti combinatorie a pi livelli:


Fattorizzazione - esempi Esempio:
f= a*c*d+a*b*c+a*b*d+b*c*d f= a*c*d+a*b*c+a*b*d+b*c*d a*c*d a*b*c a*b*d b*c*d b 0 1 1 a 1 0 0 0 1 ab 0 0 1 1 1 1 0 0 2 2 bc 0 1 0 0 0 0 1 1 1 2 cd 0 1 1 0 0 0 0 1 1 2 d 0 0 1 0 1 Ritardo: 3 costo: 12

Lespressione logica fattorizzata pu essere ottenuta utilizzando una euristica.

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.

Blocco della partizione indotta dal fattore comune dc

Blocco residuo della partizione

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

Sintesi di reti combinatorie a pi livelli:


Fattorizzazione - esempi Esempio1:
(forma 2 livelli non ottimizzata)
Ritardo: 4 costo: 12 a !a b !b c !c 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 2 2 1 3 2 2

Sintesi di reti combinatorie a pi livelli:


Fattorizzazione - esempi Esempio2:
Blocco della partizione indotta dal fattore comune !d

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

Blocco della partizione indotta dal fattore comune !c

Blocco della partizione indotta dal fattore comune !b a !a c !c

a*b*c a*!b*!c !a*!b*c !a*!b*!c

+ !a

a !a a 1 0 !a 0 1 1 1

a*!c 1 !a*c 0 !a*!c 0 1

0 1 1 2

0 1 0 1

1 0 1 2

a*b*c

Blocco residuo della partizione

a*b !a*!b !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

Blocco residuo della partizione

+
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

Fattore comune !a*d

!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 -

Sintesi di reti combinatorie a pi livelli:


Trasformazioni e algoritmi: sostituzione
Sostituzione (Substitute): globale, aumenta la lunghezza del percorso I/O
Sostituzione di una sotto-espressione mediante una variabile (nodo) gi presente nella rete. In generale, ogni sostituzione accettata se produce guadagno nel numero di letterali.

Sintesi di reti combinatorie a pi livelli:


Trasformazioni e algoritmi: estrazione
Estrazione (Extract) globale, aumenta la lunghezza del percorso I/O

Estrae una espressione da gruppi di nodi. L'estrazione viene fatta fino a che possibile.

Fa uso della divisione algebrica; si cerca di ridurre fi usando fj

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.

fj=fdivisore j divisore fi=fdivisore fquoziente + fresto i divisore quoziente resto

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

fi=fj fquoziente + fresto i j quoziente resto


- 29 -

fk=fdivisore k divisore

fj=fk*fquoziente_j + fresto_j j k quoziente_j resto_j


- 30 -

Sintesi di reti combinatorie a pi livelli:

Trasformazioni e algoritmi: decomposizione algebrica

Sintesi di reti combinatorie a pi livelli:


Trasformazioni e algoritmi: divisori
Decomposizione algebrica, estrazione e sostituzione: come si trovano i divisori?

Decomposizione algebrica: globale, aumenta la lunghezza del percorso I/O

Riduce le dimensioni di una espressione per:


Rendere pi semplice loperazione di library mapping. Aumentare la probabilit di successo della sostituzione

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 -

La decomposizione pu essere applicata ricorsivamente al divisore, quoziente e resto.

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 -

fi=fj (fk fqq+frq) + fl fqr + frr i j k qq rq l qr rr

Sintesi di reti combinatorie a pi livelli:

Trasformazioni e algoritmi: decomposizione disgiuntiva

Sintesi di reti combinatorie a pi livelli:


Decomposizione disgiuntiva (cont.)

Trasformazioni e algoritmi: decomposizione disgiuntiva

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.

Con n variabili il numero di possibili scomposizioni 2n-2

f1(ak+1,,an)= 1 k+1 n fi=a1a2ak*f1 +a1a2ak*f2 ++a1a2ak*f2kk i 1 2 k 1 1 2 k 2 1 2 k 2 f2kk(ak+1,,an)= 2 k+1 n


- 33 - 34 -

Sintesi di reti combinatorie a pi livelli:


Decomposizione disgiuntiva - esempi Esempio1:

Sintesi di reti combinatorie a pi livelli:


Trasformazioni e algoritmi Esempio1:

Esempio: scomposizione disgiuntiva di f rispetto a b


f = !a*b+ a*!b+ !c*!d+ c*d f = !a*b+ a*!b+ !c*!d+ c*d f = b*fb+!b*f!b fb= f(a,1,c,d)= !a*1+ a*0+ !c*!d+ c*d= !a+!c*!d+ c*d f!b= f(a,0,c,d)= !a*0+ a*!0+ !c*!d+ c*d= a+!c*!d+ c*d Costo: 8

Esempio: scomposizione disgiuntiva di f rispetto ad ab


f = !a*b+ a*!b+ !c*!d+ c*d f = !a*b+ a*!b+ !c*!d+ c*d Costo: 8

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

k=!a+!c*!d+c*d k=!a+!c*!d+c*d j=a+!c*!d+c*d j=a+!c*!d+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

Sintesi di reti combinatorie a pi livelli:


Trasformazioni e algoritmi Esempio2 (xor):

Sintesi di reti combinatorie a pi livelli:


Trasformazioni e algoritmi Esempio3:
f=a*!b*c+!a*!b*d+!a*c*d+!c*!d f=a*!b*c+!a*!b*d+!a*c*d+!c*!d Costo: 11

scomposizione disgiuntiva di f rispetto ad ab


Costo: 32

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

scomposizione disgiuntiva di f rispetto ad ab


fab=1*0*c+0*0*d+0*c*d+!c*!d= !c*!d fa!b= 1*1*c+0*1*d+0*c*d+!c*!d= c+!c*!d c+!d f!ab= 0*0*c+1*0*d+1*c*d+!c*!d= c*d+!c*!d f!a!b= 0*1*c+1*1*d+1*c*d+!c*!d= d+c*d+!c*!d !c+d fab=!c*!d fab=!c*!d 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

fab=f!a!b=!c*!d+c*d fa!b= f!ab=!c*d+c*!d

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

fa!b=c+!d fa!b=c+!d f!ab=c*d+!c*!d f!ab=c*d+!c*!d f!a!b=!c+d f!a!b=!c+d

f=a*b*fab+ a*!b*fa!b+ !a*b*f!ab+ !a*!b*f!a!b f=a*b*fab+ a*!b*fa!b+ !a*b*f!ab+ !a*!b*f!a!b Costo: 22

Trasformazione booleana: fab=!fa!b a,b f=(a*b+!a*!b)*fab+(!a*b+a*!b)*!fab f=(a*b+!a*!b)*fab+(!a*b+a*!b)*!fab


- 37 -

fab=!c*!d+c*d fab=!c*!d+c*d

Costo: 14
- 38 -

Sintesi di reti combinatorie a pi livelli:


Trasformazioni e algoritmi Esempio3 (cont.):
f=a*!b*c+!a*!b*d+!a*c*d+!c*!d f=a*!b*c+!a*!b*d+!a*c*d+!c*!d Costo: 11

Sintesi di reti combinatorie a pi livelli:


Esercizi Esercizi & Soluzioni di fattorizzazione:
f= abcd'+ ab'c'+ a'bc'+ b'cd = c(abd'+ b'd)+ c'(ab'+ a'b) f= abcd'+ ab'c'+ a'bc'+ b'cd = c(abd'+ b'd)+ c'(ab'+ a'b) f= abcd'+ abc'd + ab'c'd'+ a'bc'd'+ a'b'd + a'cd + b'cd = f= abcd'+ abc'd + ab'c'd'+ a'bc'd'+ a'b'd + a'cd + b'cd = d'(abc + c'(ab'+ a'b)) +d(abc'+ c(b'+a')+ a'b') d'(abc + c'(ab'+ a'b)) +d(abc'+ c(b'+a')+ a'b')

scomposizione disgiuntiva di f rispetto ad c


fc= a*!b*1+!a*!b*d+!a*1*d+0*!d = a*!b+!a*!b*d+!a*d a*!b+!a*d f!c= a*!b*0+!a*!b*d+!a*0*d+1*!d = !a*!b*d+!d !a*!b+!d c fc=a*!b+!a*d fc=a*!b+!a*d Costo: 11 a,b,d f=c*fc+ !c*f!c f=c*fc+ !c*f!c f!c=!a*!b+!d f!c=!a*!b+!d

scomposizione disgiuntiva di f rispetto ad a


fa= 1*!b*c+0*!b*d+0*c*d+!c*!d =!b*c+!c*!d f!a= 0*!b*c+1*!b*d+1*c*d+!c*!d = !b*d+c*d+!c*!d

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')

Costo: 15 fb= a*0*c+!a*0*d+!a*c*d+!c*!d =!a*c*d+!c*!d f!b= a*1*c+!a*1*d+!a*c*d+!c*!d = a*c+!a*d+!a*c*d+!c*!d a*c+!a*d+!c*!d

scomposizione disgiuntiva di f rispetto ad b scomposizione disgiuntiva di f rispetto ad d

Costo: 13 fd= a*!b*c+!a*!b*1+!a*c*1+!c*0= a*!b*c+!a*!b+!a*c a*!b+!a*!b+!a*c f!d= a*!b*c+!a*!b*0+!a*c*0+!c*1= a*!b*c+!c a*!b+!c


- 39 -

- 40 -

La rappresentazione dei numeri


Rappresentazione dei numeri: binaria Un numero binario costituito da un vettore di bit

Aritmetica dei calcolatori


Rappresentazione dei numeri naturali e relativi Addizione e sommatori: a propagazione di riporto, veloce, con segno sommatori: Moltiplicazione e moltiplicatori: senza segno, con segno e algoritmo di Booth algoritmo Rappresentazione in virgola mobile e operazioni

B = bn-1b1b0 Il valore di B e dato da:

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-

La rappresentazione dei numeri


Codifiche per numeri relativi

La rappresentazione dei numeri


Modulo e segno:

Modulo e segno Complemento a 1 Complemento a 2


B b 2b 1b 0 000 001 010 011 100 101 110 111 V(B) Com ple m e nto a 1 +0 +1 +2 +3 -3 -2 -1 -0
-3-

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

Com ple m e nto a 2 +0 +1 +2 +3 -4 -3 -2 -1

Complemento a 2

Addizione senza segno


La somma di numeri positivi si esegue sommando coppie di bit parallele, partendo da destra. Si ha riporto, diverso da 0, quando si deve eseguire la somma 1+1 (half hadder). Regole per la somma: Riporto in uscita
0 0 + 0 0 0 0 + 1 1 0 1 + 0 1 1 1 + 1 0

ADDIZIONE e ARCHITETTURE DI SOMMATORI


Addizione e sommatore a propagazione di riporto Addizione e sommatore ad anticipazione di riporto Addizione di pi valori e sommatori Carry Save Addizione/sottrazione con segno

Utilizzando queste regole in modo diretto possibile


Realizzare sommatori modulari Composti da blocchi elementari identici Circuiti aritmetici di questo tipo sono detti bit-slice
-6-

Addizione senza segno a propagazione di riporto


Un sommatore bit-slice ripple carry strutturato in modo che il modulo in posizione i-esima: Riceve in ingresso i bit xi e yi degli operandi Riceve in ingresso il riporto ci del modulo precedente
ci xi yi

Sommatore per il generico stadio: Full Adder


si = xi y ici + xi y ici + xi y ici + xi y ici
xi yi ci Full Adder

si ci+1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1

Produce la somma si = xi'yi'ci + xi'yici' + xiyi'ci' + xiyici

= (xi xor yi)ci + (xi xor yi)ci = xi xor yi xor ci

Produce il riporto ci+1 = xiyi + xici + yici

= xi yi + (xi xor yi)ci

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

Necessario per il calcolo del complemento a 2

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-

Addizione senza segno - Ripple-Carry a n bit RippleStruttura e prestazioni


Il calcolo esatto del ritardo si effettua basandosi sulla seguente architettura Siano Ts e Tr i ritardi per il calcolo della somma e del riporto i-mi rispettivamente
xn-1 yn-1 x1 y1 x0 y0 c0

Ripple Carry: architettura a blocchi


Ripple-Carry Adder cn
x n -1 y n -1 x0 y0

n-bit Ripple Carry Adder

c0

sn-1

s0

Ripple-Carry Block Architecture


FAn-1 cn sn-1 c2 s1 FA1 c1 FA0 xkn-1 ykn-1 knkns0
n-bit Ripple Carry ckn Adder

x2n-1 y2n-1 2n2n-

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

n-bit Ripple Carry c2n Adder

cn

n-bit Ripple Carry Adder

c0

skn-1

s(k-1)n

s2n-1
- 10 -

sn

sn-1

s0

Addizione veloce (ad anticipazione di riporto)


Funzioni di generazione e di propagazione del riporto

Addizione veloce - calcolo dei riporti in parallelo


Lespressione per il riporto ci+1 = Gi + Pici pu essere calcolata in modo iterativo. Sostituendo ci = Gi-1 + Pi-1ci-1 nell'espressione di c i+1 si ha: ci+1 = Gi + Pi(Gi-1+Pi-1ci-1) = Gi + PiGi-1+ PiPi-1ci-1 Continuando con l'espansione fino a c0 si ottiene: ci+1 = Gi + PiGi-1 + PiPi-1Gi-2 + + ... + + PiPi-1...P1G0 + + PiPi-1...P1P0c0 I riporti in uscita di ogni singolo stadio possono essere calcolati tutti in parallelo e con ritardo identico (realizzazione SOP) tramite: le i funzioni di generazione Gi e le i funzioni di propagazione Pi il riporto in ingresso allo stadio 0, c0 I sommatori che sfruttano il meccanismo della generazione dei riporti in anticipo sono detti Carry-Look-Ahead Adders o CLA Adders
- 12 -

Motivazioni: ottenere un sommatore con prestazioni migliori


Si basa sulle seguenti considerazioni Le espressioni di somma e riporto per lo stadio i sono: si = xi'yi'ci + xi'yici' + xiyi'ci' + xiyici ci+1 = xiyi + xici + yici Lespressione del riporto in uscita pu essere riscritta come: ci+1 = Gi + Pici con Gi = xiyi e Pi = xi + yi (o anche Pi = xi yi ) Le funzioni Gi e Pi

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 -

Addizione veloce Struttura e prestazioni di un CLA a 4 bit


1
P3 G3P2 G2P1G1P0G0 P2 G2P1 G1P0G0

Addizione veloce Struttura generale CLA logic


Carry Look-Ahead Logic: Internal architecture xn-1 yn-1 x1 y1

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

c0 x0 y0 c0 2 2 s0 dove Gi=xiyi Pi=xi+yi

Gn-1 Pn-1 Carry Look-Ahead Logic xn-1 yn-1 cn cn-1

G1

P1

G0

P0

Full Adder

5 s3

x0 y0 c0 c1
- 14 -

CLA Logic

c2

c1

Sommatori Carry Look-Ahead


Carry Look-Ahead Logic xn-1 yn-1 x0 y0

Addizione veloce: calcolo delle prestazioni


Il ritardo totale per ottenere tutte le somme ed il riporto pi a sinistra ci+1 dato dalla somma di:

cn xn-1 yn-1 cn-1

Carry Look-Ahead Logic

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:

Il ritardo costante e indipendente dalla lunghezza degli operandi


Full Adder Full Adder Full Adder

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 -

Addizione veloce a blocchi


Il sommatore completo a n bit ottenuto utilizzando un insieme di blocchi costituiti da CLA a m bit e della logica CLA Esempio: blocco costituito da un sommatore CLA a 4 bit (ragionevole) Struttura del blocco di un CLA a 4 bit

Addizione veloce - blocco CLA a 4 bit


1
P3 G3P2 G2P1G1P0G0

1
P2 G2P1 G1P0G0

1
P1 G1 P0 G0

1 P0 G0 c0 x1 y1 2 5 s1 X3-0 c0 x0 y0 2 2 s0 y3-0 c0 S3-0 c0

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

che pu essere riscritta come

cuscita = G + Pc0

con il tempo di ritardo per il calcolo di P e G:


P = attraversamento di 2 porte logiche (1 per calcolare P3, P2, P1 e P0 , 1 per calcolare il prodotto) G = attraversamento di 3 porte logiche (calcolo di Pi e Gi , calcolo dei prodotti, calcolo della somma)

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 -

Esempio - sommatore a 16 bit con CLA a 4 bit


Prestazioni: in questo caso circa n/2 Che cosa succede se devo sommare due numeri da 32 o da 64 bit?

Esempio - sommatore a 8 bit con CLA a 2 bit


Gi+1 Pi+1 Gi Pi x4 y4

G = G i+1+Pi+1Gi P = Pi+1 Pi ci+1 = G+Pci

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

X15-12 y15-12 4-bit CLA 2 P 3 G 7

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= ..

c3= .. CLA logic

c2= G1+P1G0+P1P0c0

c1=G0+P0c0 3 P G 5

c8

c0

- 19 -

- 20 -

Somma di pi valori: sommatori carry save

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

Calcolo della somma di 3 (o pi) valori: W = X + Y + Z


Soluzione 1:

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

Somma di tre addendi con Sommatori Carry Save


Il primo stadio calcola le somme S (parziali e senza propagazione di riporto) e i riporti CS (Carry Save Adder) Il secondo stadio somma (con propagazione di riporto) i valori provenienti dal primo stadio

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 -

Somma di tre addendi - Prestazioni Carry Save


Prestazioni con sommatore ripple-carry per lultimo stadio (in blu il ritardo di ogni segnale) Ritardo R = (n + 1)T con T ritardo di un Full-Adder

Sommatore Carry Save come blocco


Sommatore Carry Save composto da due unit

Blocco Carry Save:


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

Carry Save Logic xn-1 yn-1 zn-1


Carry Save

x0

y0

z0

FA

FA

n-1 n

FA

0 2 csn sn-1 csn-1

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

Esempio sommatore a 6 addendi con blocchi Carry Save da 3 addendi


A B C D E F

T= 0

CS-n bit csn CS S s0 csn

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=1 T=2..(n+1) T=n+1


wn+2

T= 3
RC Adder W[n+1..2]
- 28 -

0 w1

Genera i rimanenti bit del risultato


w0

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

Addizione e sottrazione per valori rappresentati in complemento a 2


Regole per la somma e sottrazione di due numeri in complemento a 2 su n bit

Per calcolare x+y


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

Per calcolare x-y


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

Sommatori Add/Subtract: operazioni in Add/ Subtract: complemento a 2


Add/Subtract Architecture yn-1 xn-1 x1 x0 y1 y0
Add/Sub

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

(segno addendi e segno somma)

sn-1

s1

s0

- 31 -

- 32 -

Moltiplicazione interi senza segno


La moltiplicazione di numeri senza segno si esegue con lo stesso metodo usato per la moltiplicazione decimale Il prodotto di due numeri binari di n e k bit un numero binario di n+k bit Ogni prodotto parziale deve essere esteso a n+k bit tramite 0 Ad esempio:

MOLTIPLICAZIONE e ARCHITETTURE DI MOLTIPLICATORI


Moltiplicazione senza segno e moltiplicatori per righe e diagonali diagonali Moltiplicazione con segno con 2 sottomatrici di prodotti parziali parziali Moltiplicazione con lalgoritmo di Booth Moltiplicazione per colonne e moltiplicatore di Wallace Moltiplicatori sequenziali

1101 1011 = 00001101 0001101 000000 01101 10001111

Moltiplicando M = 13 Moltiplicatore Q = 11 Matrice dei prodotti parziali

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

Matrice di prodotti parziali costituita da n righe

Le architetture risultanti sono caratterizzate comunque da strutture regolari

- 35 -

- 36 -

Moltiplicatori combinatori: somma per righe


Somma per righe
Multiplier Cell
n=1,i-1PPi-n,j+n xj yi
Ogni cella del moltiplicatore calcola il prodotto parziale corrispondente e una somma parziale Il riporto delle somme parziali si propaga lungo la riga Le somme si propagano in verticale Per il calcolo del prodotto parziale, X si propaga in diagonale e Y in verticale

Moltiplicatori combinatori: somma per righe


Moltiplicando

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 -

Moltiplicatori combinatori: somma per diagonali


Somma per diagonali

Moltiplicatori combinatori: somma per diagonali

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 -

Moltiplicazione con segno: sottomatrici


Altro modo di definire il complemento a 2: il valore della cifra associata al bit pi significativo ha segno negativo. +5 = 0 1 0 1 -5 = 1 0 1 1 -5 = -23 + 21 + 20 = -8 + 2 +1 Considerando ad esempio 4 bit, i valori di un moltiplicando M negativo e di un moltiplicatore Q negativo possono essere rappresentati come Moltiplicando M = (-m3)23+m222+m121+m0 3 2 1 - Moltiplicatore Q = (-q3)2 +q22 +q12 +q0
-

Moltiplicazione con segno (cont.)


Costruzione dei prodotti parziali (matrice diagonale)

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

Dove m3,, m0 e q3,, q0 sono i bit del moltiplicando e del moltiplicatore

Nota: questa rappresentazione viene usata, ed corretta, sia per valori positivi che negativi.
- 41 - 42 -

Moltiplicazione con segno (cont.)


Scomposizione della matrice iniziale in due sottomatrici, una con i soli termini negativi, laltra con solo quelli positivi. Il risultato dato dalla differenza dei due risultati parziali 0 q0m2 q0m1 q0m0 0 q1m2 q1m1 q1m0 0 q2m2 q2m1 q2m0 q3m3 0 0 0 Somma parziale termini positivi q0m3 0 0 0 q1m3 0 0 0 q2m3 0 0 0 0 q3m2 q3m1 q3m0 Somma parziale termini negativi

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

Estensione a n+k bit tramite 0

0 1 0 0 0

0 0 0 0 1 1 0 0 1 1

0 0 0 0 0

-208 in 0 0 0 1 0 1 1 0 1 1 complemento a 2 1 1 0 0 1 0 1 1 1 1 1 1 1 1 0 0 0 1 0 1 1 -117


- 44 -

- 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

Moltiplicazione con segno - Algoritmo di Booth


Se il moltiplicatore contiene sequenze di 1, lalgoritmo di Booth pi efficiente del metodo visto in precedenza (cio devono essere generati molti meno prodotti parziali) 1 0 0 1 1 Si consideri ad esempio la moltiplicazione per Q=30: M x 30 = M x (32 - 2) = M x 32 - M x 2 In rappresentazione binaria: M x 0011110 = M x 0100000 - M x 0000010 = M x 0100000 + M(-) x 0000010

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 -

I moltiplicatori cos ottenuti


Sono potenze del due Sono sequenze di bit con un solo uno
- 46 -

Algoritmo di Booth: codifica del moltiplicatore


Lalgoritmo si basa sulla scomposizione appena vista Tale scomposizione rappresentata come una codifica del moltiplicatore basata sulle seguenti regole Si consideri un moltiplicatore Q di lunghezza n

Algoritmo di Booth: esempio di codifica


Ad esempio Q = 30 codificato come QB = 0+1000-10

Q =

0 0 1 1 1 1 0
Aggiunto

Si scorre il moltiplicatore da sinistra verso destra Il moltiplicatore codificato QB si ottiene:


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

Utilizzando tale codifica, i prodotti parziali saranno:


0 M(-) M

con estensione del segno, quando con estensione del segno, quando con estensione del segno, quando
- 48 -

qB,i = 0 qB,i = -1 qB,i = +1

- 47 -

Algoritmo di Booth: codifica del moltiplicatore


Le regole esposte per lalgoritmo di Booth possono essere riassunte nella tabella seguente:
Moltiplicatore qi 0 0 1 1 qi-1 0 1 0 1 Codifica 0 +1 -1 0 PPi 0M = 0 +1M = M -1M = M(-) 0M = 0

Esempio
Moltiplicare 13 x -9, usando lalgoritmo di Booth su 5 bit I valori binari da usare sono:

13 = 01101 -9 = 10111

-13 =10011 -9B = -1+100-1


0 1 -1+1 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 1 0-1 = 1 1 0
Moltiplicando M = 13 Moltiplicatore Q = -9

Il prodotto si esegue quindi nel modo seguente:


Estensione a n+k bit tramite estensione del segno

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 -

Moltiplicatori combinatori: somma per colonne


Il metodo simile a quello utilizzato a mano per effettuare la moltiplicazione
Si utilizza la matrice dei prodotti parziali (matrice di AND) e un insieme di contatori paralleli Il generico contatore parallelo riceve in ingresso una colonna di prodotti parziali (e gli eventuali riporti dagli stadi precedenti) e genera il conteggio degli 1 della colonna Il conteggio generato in ogni stadio produce il bit del prodotto per lo stadio considerato e eventuali riporti per gli stadi successivi Irregolare (contatori diversi) Prestazioni: paragonabili a quelle per somma per righe, infatti si ha propagazione di riporti in tutte le colonne

Moltiplicatori combinatori: somma per colonne combinatori:


Moltiplicando e moltiplicatore da 6 bit In nero la matrice di AND, in rosso i riporti generati dai contatori ogni contatore genera 1 bit del prodotto e riporti per le colonne successive il contatore di colonna 1 genera 1 riporto per colonna 2 il contatore di colonna 2 genera 2 riporti per colonna 3e4 il contatore di colonna 3 genera 2 riporti per colonna 4e5 e cos via..


8 - 52 -


12


10


11

- 51 -

somma per colonne con riduzione della matrice dei termini prodotto

Moltiplicatori combinatori: combinatori:

somma per colonne con matrici successive


M2 M1

Moltiplicatori combinatori: combinatori:

Riduzione successiva della matrice dei prodotti parziali

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

Batteria di contatori Sommatore

La riduzione rapida La struttura irregolare Le prestazioni aumentano


ipotesi: il tempo di un contatore identico a quello di un Full-Adder domina il tempo del sommatore finale
- 53 - 54 -

Moltiplicatori combinatori: moltiplicatore di Wallace combinatori:


E basato sulla riduzione successiva della matrice M0 Prevede lutilizzo di soli contatori a 2 o 3 ingressi, che sono equivalenti rispettivamente ad un Half-Adder e a un Full-Adder Il procedimento di riduzione della matrice a 2 sole righe pi lento rispetto al caso di contatori a ingressi qualsiasi, ma comunque rapido (log 3/2 n passi)

Moltiplicatori combinatori: moltiplicatore di Wallace combinatori:


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

La struttura regolare Le prestazioni sono dominate dal sommatore finale (veloce)

Batteria di contatori

M1

M2

Sommatore


- 56 -

M3

- 55 -

Moltiplicatori sequenziali

[1]

Moltiplicatori sequenziali
Architettura di un moltiplicatore sequenziale

[2]

Moltiplicazione sequenziale tra due numeri di n I passi da eseguire sono:


1. Inizializza a zero un registro accumulatore A 2. Inizializza a zero un bistabile C per il riporto 3. Salva nei registri Q ed M moltiplicatore e moltiplicando 4. Se il bit meno significativo di Q vale 1

n -1

n -1

q0

Shift dx

Somma A ed M Memorizza il risultato in A


+
0 0 n -1

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 -

Numeri in virgola fissa


Fino a questo punto abbiamo assunto che

ARITMETICA in VIRGOLA MOBILE


Confronto con aritmetica in virgola fissa Rappresentazione dei valori Operazioni Struttura di un sommatore/sottrattore sommatore/sottrattore

Un vettore di bit rappresentasse sempre un numero intero Eventualmente con segno

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 -

Numeri in virgola fissa: fattore di scala


Si consideri ad esempio il vettore di k+n bit (k bit per rappresentare la parte intera e n bit per rappresentare la parte frazionaria): B = bk-1 ... b0,b-1 ... B-n Il suo valore dato da V(B) = bk-1x2k-1 + ... + b0x20 + b-1x2-1 + ... + b-nx2-n
parte frazionaria

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 fissa vs. virgola mobile


Intervallo di variazione di un numero binario di 32 bit
Codifica intera 0 |VI(B)| +231 2.15 x 109 Codifica in virgola fissa +4.65 x 10-10 +2-31 |VVF(B)| +1 Codifica in virgola mobile +10-45 |VVM(B)| +10+38

Errore di quantizzazione: virgola fissa vs. virgola mobile quantizzazione:


Virgola fissa (con n bit per la parte frazionaria)
EAss = ValVero - ValRappr = costante
con (-1/2)2-n < EAss < (+1/2)2-n

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

ERel = EAss / ValVero


(e cio ERel ValVero= costante)
tanto pi piccolo il valore vero da rappresentare tanto maggiore lerrore relativo che si commette nel rappresentarlo tanto pi grande il valore vero da rappresentare tanto minore lerrore relativo che si commette nel rappresentarlo

EAss = aumenta allaumentare del valore valore vero da rappresentare

sono pi fitti vicino allo 0 e pi radi per valori assoluti grandi

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 -

Errore di quantizzazione: virgola fissa vs. virgola mobile quantizzazione:


Valore rappresentato

Esempio
Numeri in virgola fissa

Virgola fissa

Valore rappresentato

Virgola mobile

R4

R4

Dato 0.001 ed il suo successivo 0.002


Errore percentuale: (0.002-0.001)/0.001*100 = 100%

Dato 100.001 ed il suo successivo 100.002


Errore percentuale: (100.002-100.001)/100.001*100 = 0.001%

R1
Valore vero

R1
Valore vero

Numeri in virgola mobile

ER= EA/ Vvero

ERVvero = EA = cost

EA= Vvero Vrap

Dato 0.128e-100 ed il suo successivo 0.129e-100


Errore percentuale: ((0.129e-100-0.128e-100)/0.128e-100)*100 = 0.78125 %

EA= cost=VV -Vrap

ER= cost=EA/ Vvero

Dato 0.128e+100 ed il suo successivo 0.129e+100


Errore percentuale: ((0.129e+100-0.128e-+100)/0.128e+100)*100 = 0.78125 %

Valore vero - 65 -

Valore vero - 66 -

Numeri in virgola mobile


Codifica in virgola mobile per i numeri in base 10
Si dice normalizzato un numero in cui 1 M < 10

Numeri in virgola mobile Valori rappresentabili


IEEE standard: Numeri floating-point in singola precisione
S
1 bit
Segno

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)

E=0 E = 255 E = 255 0<E<255 E=0

eM=0 eM=0 e M !=0

Rappresenta lo zero (pos/neg) Rappresenta infinito (pos/neg) NotANumber (-1)s x 2(E-127) x (1,M) (127E254 esp.positivi, 126E1esp.negativi)

Codifica in virgola mobile per i numeri in base 2


In un numero binario in virgola mobile e normalizzato La prima cifra della mantissa sempre 1 (1 M < 2)

e M !=0

(-1)s x 2-126 x (0,M) non normalizzati

Tale cifra non viene rappresentata esplicitamente


- 67 -

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 -

Numeri in virgola mobile Valori rappresentabili


Motivazione della rappresentazione non normalizzata

Operazioni in virgola mobile


Le operazioni che si possono compiere su numeri in virgola mobile sono:

E=0

e M !=0

(-1)s x 2-126 x (0,M) non normalizzati

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

Somma Sottrazione Moltiplicazione Divisione Elevamento a potenza Estrazione di radice

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 -

Inoltre sono definite le operazioni di:


Normalizzazione Troncamento

- 70 -

Operazioni in virgola mobile


Lesecuzione di una operazione in virgola mobile pu provocare una eccezione Una eccezione il risultato di una operazione anomala, quale, ad esempio:

Operazioni in virgola mobile: normalizzazione


Tutte le operazioni descritte nel seguito operano su numeri normalizzati (1 implicito prima della virgola) Se l1 implicito manca, la normalizzazione di un numero con mantissa M ed esponente n, si esegue come segue:

Divisione per zero Estrazione della radice quadrata di un numero negativo

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

Scorrimento a sx equivale a moltiplicazione Scorrimento a dx equivale a divisione

Operazione non valida Divisione per zero Overflow Underflow

00101100...
Scorrimento di 3 posizioni

0 10000101
- 71 -

01100...
- 72 -

Operazioni in virgola mobile:


somma e sottrazione
La somma o sottrazione tra numeri in virgola mobile viene eseguita secondo i seguenti passi:

Operazioni in virgola mobile :


moltiplicazione
La moltiplicazione tra numeri in virgola mobile viene eseguita secondo i seguenti passi:

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

Non sempre questultima operazione necessaria

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 -

Operazioni in virgola mobile :


divisione
La divisione tra numeri in virgola mobile viene eseguita secondo i seguenti passi:

Operazioni in virgola mobile: troncamento


Spesso accade di rappresentare i risultati intermedi di una operazione con una precisione maggiore di quella degli operandi e del risultato Al termine delloperazione necessario effettuare una operazione di troncamento Il troncamento serve a rimuovere un certo numero di bit per ottenere una rappresentazione approssimata del risultato Si consideri il valore numerico rappresentato dal vettore: B = 0.b-1 ... b-(k-1)b-kb-(k+1) ... b-n Si voglia effettuare troncamento al bit k-esimo

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

Non sempre questultima operazione necessaria

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 -

Operazioni in virgola mobile: troncamento


Chopping

Architetture per aritmetica in virgola mobile: sommatore


I circuiti per la realizzazione delle operazioni in virgola mobile sono molto complessi Si consideri lalgoritmo per la somma secondo lo standard IEEE Single Precision:

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

Non sempre questultima operazione necessaria

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 -

inutile fare la somma

Sommatore in virgola mobile

[1]
Passo 1

Sommatore in virgola mobile

[2]

Nel seguito viene sviluppato un sommatore floating point I numeri A e B sono rappresentati

Su 32 bit Secondo lo standard IEEE Single Precision

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

Gli operandi A e B sono composti come segue: A = { S A, E A , M A } B = { SB, EB, MB } In cui:


Richiede le seguenti operazioni:


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)

SA, SB EA, EB MA, MB

Segno,1 bit Esponente in eccesso 127, 8 bit Mantissa,23 bit

Il calcolo della differenza tra gli esponenti consente allo stesso tempo (analizzandone il segno SE) di individuare lesponente minore

- 79 -

- 80 -

Sommatore in virgola mobile


Questa prima sezione del sommatore calcola:

[3]
Passo 2

Sommatore in virgola mobile

[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

Richiede le seguenti operazioni:


Passo 1

EA

EB

MA

MB

SE
_

Passo 2
SWAP

EA

EB

MEmin
0 1

Shifter dx

MUX

SE

M1
- 81 -

M2

Emax
- 82 -

Sommatore in virgola mobile


Passo 3

[5]

Sommatore in virgola mobile


Se Cout = 0 e M12 normalizzata E = Emax Passo 4

[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

Richiede le seguenti operazioni:

Si normalizza il risultato cos ottenuto

Richiede le seguenti operazioni

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

Altrimenti (Cout = 0 e M12 non normalizzata) M1 M2


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 -

Sommatore in virgola mobile


Passo 4 M12

[7]

Sommatore in virgola mobile


EA EB SA SB MA MB
SWAP

[8]
Add/Sub

d
Leading 0's Shifter sx
0 MUX 1

SE

MEmin
Shifter dx

Emax

M1
Sign

M2

Emax

Cout S12 M12


Shifter sx

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.

Gli elementi di memoria: i bistabili I registri

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-

Circuiti sequenziali e bistabili


Gli elementi in grado di conservare informazioni sono detti bistabili.

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

La differenza principale tra i vari tipi di elementi di memoria costituita da:


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)

Bistabile asincrono SR Analisi di funzionamento (1)


Analisi di funzionamento:

Viene utilizzato come blocco base per realizzare bistabili pi complessi.


T1 1 T3 T2

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=t1: evento S=1

Tempo t=t2

Q
R

Tempo t= t3

S R

SR Asincrono

Q Q

Tempo t= t4: evento S=0


Q
t0
-5-

T1T2T3 t1 t2 t3 t4

t5 t6 t7 t8
-6-

Bistabile asincrono SR Analisi di funzionamento (2)


Analisi di funzionamento (cont.):

Bistabili asincroni: SR
I segnali S e R prendono il nome di Set e Reset:

Tempo t= t5: Evento R=1

Un 1 su Set porta Q ad 1 mentre un 1 su Reset porta Q a 0.

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

Tempo t= t8 : evento R=0

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.

Osservazione: nelle configurazioni valide le uscite Q e Q sono complementari per costruzione.


-8-

-7-

Bistabili asincroni SR: ingressi non ammissibili


Applicando contemporaneamente su S e R un valore 1 il circuito si porta in uno stato instabile con Q=0, Q=0; tale configurazione non ammissibile. Infatti

Descrizione del comportamento dei bistabili


Tabella delle transizioni (o mappa di Karnaugh):
Per i bistabili sincroni spesso vengono riportate le sole configurazioni del clock attivo

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

Tabella delle eccitazioni


Per i bistabili sincroni spesso vengono riportate le sole configurazioni del clock attivo

ingressi: stato presente Qt, stato prossimo Qt+1 uscita: configurazione degli ingressi primari che realizza la transizione

Equazione di funzionamento (espressione logica)

ricavata dalla tabella delle transizioni

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-

Bistabili asincroni SR: descrizioni del comportamento


Rappresentazioni del comportamento di un bistabile SR Tabella delle transizioni
SR Q 00 01 11 10 0 0 0 - 1 1 1 0 - 1 S 0 0 1 1 R 0 1 0 1 Q* Q 0 1 -

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

Tabella delle eccitazioni


Q 0 0 1 1 Q* 0 1 0 1 S 0 1 0 R 0 1 0

Ad esempio, solamente in istanti di tempo ben precisi cosicch eventi transitori non costituiscano eventi significativi

Diagramma Temporale Espressione logica


Q* = S + RQ Con vincolo S=R1
S R Q Qt 0
- 11 -

Questa esigenza impone laggiunta di un ingresso di controllo al bistabile Il segnale applicato allingresso di controllo pu essere:

Q*: stato prossimo Q : stato presente

Aperiodico Periodico (denominato Clock)

nella maggior parte dei casi

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.

Tempi di Hold e Set-Up


Per essere riconosciuto correttamente, un ingresso primario di un bistabile deve rimanere stabile allinterno di una finestra di tempo nellintorno di un fronte del clock Tempo di Set-Up (Tsu) Intervallo minimo che precede levento di clock durante il quale lingresso deve essere mantenuto stabile; Tempo di Hold (TH) Intervallo minimo che segue levento di clock durante il quale lingresso deve essere mantenuto stabile Ad esempio
C
TL

Frequenza del clock: fCK= 1/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 rapporto TH / TCK detto duty-cycle

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 : tempo di Hold Tsu : tempo di Set-Up Tpro : tempo di propagazione

TSU D (ingresso) Q (stato)

TH

Periodo TCK
- 13 - 14 -

Tpro

Bistabili sincroni: Relazione ingresso-stato


I fattori che differenziano i bistabili sincroni riguardano due aspetti:

Bistabili sincroni: Relazione stato-uscita


La relazione stato-uscita definisce quando lo stato aggiorna le uscite

La relazione ingresso-stato (quando gli ingressi sono efficaci) La relazione stato-uscita (quando vengono modificate le uscite)

basato sul livello del segnale di controllo

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.

basato sul livello del segnale di controllo

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 -

basato sul fronte del segnale di controllo

basato sul fronte del segnale di controllo

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

Tabella delle transizioni Flip-Flop Master-Slave


C 0 1 1 1 1 S 0 0 1 1 R 0 1 0 1 Q* Q Q 0 1 -

Tabella delle eccitazioni


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

Espressione logica
Q*=CQ+C(S+RQ)

Livello

Latch con Enable

hold reset set not allowed

- 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

C=1 modalit trasparente;


Q segue lingresso.

D C

Per J=K=1 si ottiene Q*=Q J C K


S

C=0 modalit opaca;


Q mantiene lultimo ingresso letto.

Latch SR
R

Q Q

Latch SR
R

Tabella delle transizioni


C 0 1 1 D 0 1 Q* Q 0 1

Tabella delle eccitazioni


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

Espressione logica
Q*=CQ+CD

Tabella delle transizioni


C 0 1 1 1 1 J 0 0 1 1 K 0 1 0 1 Q* Q Q 0 1 Q

Tabella delle eccitazioni


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

Espressione logica
Q*=CQ+C(KQ+JQ)

hold reset set toggle

- 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

> : 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

Il percorso di propagazione ingresso uscita non continuo

Relazione stato-uscita (aggiornamento della uscita):

sul fronte

Flip-flop master-slave SR (fronte di discesa)


S

Relazione ingresso-stato (aggiornamento dello stato):


a livello (Flip-Flop master-slave) a fronte (Flip-Flop edge-triggered)

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

Tabella delle transizioni


D 0 1 Q* 0 1

Tabella delle eccitazioni


Q 0 0 1 1 Q* 0 1 0 1 D 0 1 0 1

Espressione logica
Q*= D

Tabella delle transizioni


J 0 0 1 1 K 0 1 0 1 Q* Q 0 1 Q hold reset C=1 set toggle

Tabella delle eccitazioni


Q 0 0 1 1 Q* 0 1 0 1 J 0 1 K 1 0

Espressione logica
Q*=JQ+KQ

C=1

- 25 -

- 26 -

Flip-Flop: T(oggle) Master-Slave


Flip-flop master-slave T (fronte di discesa)
T C J
Q S Latch SR Master Q R
S

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.

Segnale di sincronismo passa al livello basso (fronte di discesa)

Tabella delle transizioni


T 0 1 Q* Q Q

Tabella delle eccitazioni


Q 0 0 1 1 Q* 0 1 0 1 T 0 1 1 0

Espressione logica
Q*=TQ+TQ

Il comportamento complessivo vede dunque due fasi:

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

Genera un impulso (fisico o funzionale) in corrispondenza di un fronte


aggiorna stato aggiorna uscite Comportamento funzionalmente equivalente

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:

Latch & Flip-Flop: Pre-set e Clear


Spesso, nei Flip Flop e nei Latch sono presenti degli ingressi diretti che sono utilizzati per scavalcare gli ingressi dati

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

Gli ingressi diretti sono asincroni Sono utili per:


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.

Pre-Set Attivi Bassi Attivi Bassi D

FF D

Simbolo standard Q (fronte di discesa)

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 -

Latch e flip flop


Tabella riassuntiva conclusiva:

Tabelle delle Transizioni e delle Eccitazioni


Tabelle delle Transizioni:
S 0 0 1 1 R 0 1 0 1 Q* Q 0 1 J 0 0 1 1 K 0 1 0 1 Q* Q 0 1 Q D Q* 0 0 1 1 T 0 1 Q* Q Q

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

latch senza clock

Latch sensibile a livello Flip-Flop master/slave

Tabelle delle Eccitazioni:


Q 0 0 1 1 Q* 0 1 0 1 S 0 1 0 R 0 1 0 Q 0 0 1 1 Q* 0 1 0 1 J 0 1 K 1 0 Q 0 0 1 1 Q* 0 1 0 1 D 0 1 0 1 Q 0 0 1 1 Q* 0 1 0 1 T 0 1 1 0

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

Esempio di registro a 4 bit.


D3 D2 D1 D0

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

I registri si distinguono sulla base dei seguenti aspetti:

Q Q

Q Q

Q Q

Q Q

Parallelo Seriale
Clock

Modalit di lettura dati


Parallelo Seriale a destra e/o a sinistra (aritmetico o non aritmetico) e circolare.

Operazioni di scorrimento sui dati:

Q3

Q2

Q1

Q0

- 37 -

- 38 -

Registri
Registro serie-serie (Shift Register Registro a Scorrimento)

Registri
Registro serie-parallelo

Esempio di registro a 4 bit

Esempio di registro a 4 bit

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

Esempio a 4 bit con shift-aritmetico (Shift Destro)

Esempio a 4 bit con rotazione a destra

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:

Sintesi Sequenziale Sincrona


Sintesi Comportamentale di reti Sequenziali Sincrone di Macchine Senza Processo di Ottimizzate a Livello Comportamentale
Sintesi comportamentale e architettura generale Diagramma degli stati Tabella degli stati Tabella delle Transizioni: Codifica dello Stato Tabella delle Eccitazioni: Scelta degli elementi di memoria Esempi Appendice: Trasformazioni tra bistabili versione 18/05/04

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

Modello del circuito sequenziale


Il modello di un circuito sincrono pu essere
Comportamentale (descrive levoluzione degli stati e delle uscite del dispositivo)

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

Progetto di reti sequenziali

Strutturale

L'ottimizzazione di circuiti sequenziali in costante evoluzione

Esistono dei buoni metodi ma non di uso generale

Lo sviluppo di software efficienti necessita di ulteriori sforzi

-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)

Sintesi comportamentale di FSM (1)


Una macchina sequenziale definita dalla quintupla (I,U,S,, )

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

Macchine a stati finiti deterministiche

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

S - Insieme degli Stati

Insieme finito e non vuoto degli stati.


Spesso viene definito anche uno stato iniziale o stato di reset,in cui la macchina deve portarsi allaccensione o allapplicazione del segnale di reset

Si considera la sintesi di FSM sincrone

- Funzione stato prossimo - Funzione duscita


-6-

-5-

Sintesi comportamentale di FSM (2)


Funzione stato prossimo

Macchine di Mealy e Macchine di Moore


Macchine di Mealy

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

Architettura generale: macchina di Mealy


Struttura generale di una macchina di Mealy:
x1 x2 xn

Ingressi

RETE COMBINATORIA ;

zn

RETE COMBINATORIA RETE COMBINATORIA


y1 Y1

z1 z2 zn

Uscite

Ingressi

Uscite

Stato Presente St
y1, y2yk: variabili stato presente

y1

FF1

Y1

Stato Prossimo St+1


Y1, Y2Yk: variabili stato prossimo

Stato Presente St

FF1

Stato Prossimo St+1

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

FFk Memoria di stato


-9-

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

FFk Memoria di stato


- 10 -

Yk

Clock

Architettura generale: macchina di Moore


Struttura generale di una macchina di Moore:
x1 x2 xn

Architettura generale
La sintesi comportamentale di una rete sequenziale consiste nella:

Ingressi

RETE COMBINATORIA

Identificazione delle le funzioni e Sintesi della rete combinatoria che le realizza

y1

RETE COMBINATORIA

FF1

Y1

Stato Prossimo St+1

Gli elementi di memoria sono costituiti da Flip-Flop

Stato Presente St

z1 z2 zn

I flip-flop di tipo D sono quelli usati pi comunemente

y2

FF2

Y2

Uscite

yk

FFk Memoria di stato


- 11 -

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

Tabella degli stati


Il comportamento di una FSM pu essere descritto mediante la Tabella degli stati
z1 z2 zn

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 PROSSIMO/ INGRESSI FLIP-FLOP

Stato Presente St

y1

FF1

Y1

Macchine di Mealy la coppia {u ,sj }

y2

FF2

Y2

Stato Prossimo St+1

u = (i, sj ) il simbolo di uscita sj = (i, sj ) il simbolo stato prossimo

S2t Smt+1/um Slt+1/ul . . . . . . . . i1 . . . i2 Skt+1 Slt+1 . . . . . . . . . . . . . . u1 u2 . .

yk

FFk

Yk

Macchine di Moore Il simbolo stato prossimo sj

S1t Sjt+1 S2t Smt+1

Clock

sj = (i, sj ) il simbolo stato prossimo i simboli d'uscita sono associati allo stato presente .
- 14 -

. . . . . .

Registri di stato
- 13 -

Diagramma degli stati


Spesso, la stesura della Tabella degli stati stati preceduta da una rappresentazione grafica ad essa equivalente, denominata Diagramma degli stati Il diagramma degli stati un grafo orientato G(V,E,L)

Macchina di Mealy: Esempio


Equivalenza delle due rappresentazioni nel caso di una macchina di Mealy
Diagramma degli stati
0/1 s0 1/1 1/1 0/1 1/0 s2 1/0 s3 0/0 s1 0/0

Tabella degli stati

V - Insieme dei nodi


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 -

0 S0 S1 S2 S3 S1/1 S3/0 S1/1 S3/0

1 S2/1 S2/1 S3/0 S0/0

E - Insieme degli archi


L - Insieme degli:

- 16 -

Macchina di Moore: Esempio


Equivalenza delle due rappresentazioni nel caso di una macchina di Moore
Diagramma degli stati
S0/00 1 1 0 1 S2/10 1 S3/11 0

Passi della Sintesi di una FSM (i)


1. Realizzazione del diagramma degli stati a partire dalle specifiche funzionali (informali) del comportamento del sistema

Tabella degli stati

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 -

Passi della Sintesi di una FSM (i): Esempio


Controllore di parit (dispari) Una macchina sequenziale sincrona ha un ingresso x e unuscita z. Luscita z assume il valore 1 se e solo se sullingresso si sono presentati un numero dispari di 1. In ogni altro caso z uguale a 0. Allaccensione la macchina riconosce parit dispari non verificata. Considerazioni:

Passi della Sintesi di una FSM (ii)


2. Costruzione della tabella degli stati a partire da diagramma degli stati

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

3. Riduzione del numero degli stati: ottimizzazione


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 -

Passi della Sintesi di una FSM (iii)


4. Costruzione della tabella delle transizioni della FSM

Passi della Sintesi di una FSM (iii) : Esempio (iii)


Costruzione della tabella delle transizioni della FSM
Tabella degli stati
0 S1 S3 S1 S3 1 S2 S2 S3 S0 U 00 01 10 11

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

Tabella delle transizioni


y0y1I 00 01 11 10 01 10 01 10 Y0Y1 = stato prossimo 0 1 11 11 10 00 U 00 01 10 11

Definisce lassegnamento degli stati e cio

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)

I criteri di assegnamento verranno affrontati in seguito


- 21 - 22 -

Passi della Sintesi di una FSM (iv)


5. Costruzione della tabella delle eccitazioni della FSM

Passi della Sintesi di una FSM (iv)


Struttura generale
Rete combinatoria per realizzare derivata dalla tabella delle transizioni Uscite

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

Rete combinatoria derivata dalla tabella delle eccitazioni

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

Stato Prossimo St+1

eccitazioni

Rete combinatoria per realizzare per la trasformazione stato-eccitazione

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 -

Stato Presente St Registri di stato

Memoria di stato
- 24 -

Passi della Sintesi di una FSM (iv)


La tabella delle transizioni descrive la relazione tra i bit di stato presente e quelli di stato futuro.

Passi della Sintesi di una FSM (iv)


Si scelgono i bistabili SR
Tabella delle transizioni y0y1I 00 01 11 10 01 10 01 10 Y0Y1 = stato prossimo 0 1 11 11 10 00 U 00 01 10 11
Tabella delle eccitazioni del FF SR

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

I segnali di ingresso di un bistabile prendono il nome di eccitazioni

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 -

Diagramma degli stati - Esempio 1: specifiche


Specifiche
Una macchina sequenziale sincrona ha un ingresso x e unuscita z. Luscita z assume il valore 1 se e solo se sullingresso si sono presentati almeno due 0 seguiti esattamente da due 1 (z va a 1 in corrispondenza del secondo 1 su x). In ogni altro caso z uguale a 0. Considerazioni:

Diagramma degli stati - Esempio 1: stato iniziale - caso (a)


(a) Scelta dello stato iniziale per la stesura del diagramma degli stati

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)

stato iniziale = stato derivante da tre 1 su x, indipendentemente dai valori precedenti


- 28 -

Diagramma degli stati - Esempio 1 - caso (a)


D: primo 1 dopo almeno due 0 1/1 E: secondo 1 sequenza riconosciuta

Tabella degli stati - Esempio 1 - caso (a)

B: primo 0 1 1 1/0 A 1/0 A: attesa sequenza da riconoscere

C: secondo 0

Tabella degli stati


0 A B,0 C,0 C,0 B,0 B,0 1 A,0 A,0 D,0 E,1 A,0

Riduzione della tabella degli stati


(banale!!) 0 A B C D A = E B,0 C,0 C,0 B,0 B,0 1 A,0 A,0 D,0 E,1 A,0 A B C D 0 B,0 C,0 C,0 B,0 1 A,0 A,0 D,0 A,1

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 -

Diagramma degli stati - Esempio 1: stato iniziale - caso (b)


(b) Scelta dello stato iniziale per la stesura del diagramma degli stati

Diagramma degli stati - Esempio 1 - caso (b)


B: primo 1 dopo almeno due 0 0 0/0 1/0 A 0/0 0/0 A: riconosciuti almeno due 0 B 0/0 1/0 C E E: sequenza non utile 1/1 D 1/0 D: secondo 1 sequenza riconosciuta 0/0 C

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

stato iniziale = stato derivante da due 0 su x, indipendentemente dai valori precedenti

1/0

C: primo 0
- 31 -

0/0
- 32 -

Diagramma degli stati - Esempio 2: specifiche (i)


Specifiche
Si vuole realizzare un controllore di semaforo allincrocio tra via Mazzini e via Garibaldi tramite una macchina sequenziale sincrona. La macchina riceve un segnale di sincronismo con periodo di un minuto. Esiste un pulsante P per attraversamento pedonale. Normalmente il semaforo alterna un minuto VERDE su via Mazzini e ROSSO su via Garibaldi, poi un minuto VERDE su via Garibaldi e ROSSO su via Mazzini, e cos via Se si preme il pulsante P, alla scadenza del minuto si porta il ROSSO su entrambe le strade e lo si mantiene per due minuti indipendentemente da P al termine dei due minuti riparte il funzionamento normale con la configurazione VERDE-ROSSO per la via in cui precedentemente ai due minuti era ROSSO e successivamente, dopo una nuova alternanza, si prende in considerazione P
- 33

Diagramma degli stati - Esempio 2: specifiche (ii) (ii)


Considerazioni:
le specifiche funzionali non sono adatte allo scopo: utile un ulteriore raffinamento dalle specifiche, la macchina da sintetizzare una macchina di Moore: infatti le uscite devono mantenere il loro valore stabile nellintervallo tra due impulsi di sincronismo

Riscrittura delle specifiche


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 -

Diagramma degli stati - Esempio 2: stato iniziale


Scelta dello stato iniziale per la stesura del diagramma degli stati stato in cui non richiesto attraversamento pedonale: ad esempio, stato con uscite 01 e ingresso 0
1 b/10 d/00 0 0 c/00 1 0; 1 f/00 0; 1 h/01 0; 1 b/10

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

Tabella delle transizioni


00 00 01 11 10 01 00 01 10 10 11 11 00 00 11 10 01 01 11 10 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

Tabella delle transizioni


00 00 01 11 10 01 00 01 10 10 11 11 00 00 11 10 01 01 11 10
Q1 Q0

Tabella delle eccitazioni (con SR)


I1 I0

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

Sintesi del bistabile JK tramite altri bistabili


Specifica: realizzare una FSM sincrona con due ingressi ed una uscita che abbia il seguente comportamento ( il bistabile JK):

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

Diagramma degli stati


11;10 00;01 S0/0 11;01
- 40 -

Tabella degli stati

S1/1

00;10

S0 S1

00 S0 S1

01 S0 S0

11 S1 S0

10 S1 S1

U 0 1

Codifica degli stati


00 S0 S0 S1 S1 01 S0 S0 11 10 S1 S1 S0 S1 U 0 1

Tabelle delle transizioni e eccitazioni dei bistabili Tabelle delle Transizioni:


C 0 1 1 1 1 S 0 0 1 1 R 0 1 0 1 Q* Q Q 0 1 C 0 1 1 1 1 J 0 0 1 1 K 0 1 0 1 Q* Q Q 0 1 Q C 0 1 1 D 0 1 Q* Q 0 1 C 0 1 1 T 0 1 Q* Q Q Q

Tabella degli stati

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

Tabelle delle Eccitazioni:


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 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
- 42 -

Tabella delle transizioni

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 -

Scelta del Bistabile - FF SR


Codifica Naturale (S0=0; S1=1)
Tabella delle transizioni della FSM
Q iHiL Q

Realizzazione delle reti combinatorie (FF SR) SR) Codifica Naturale (S0=0; S1=1) cont.
00 0 01 -0
iHiL

Tabella delle eccitazioni della FSM (con FF SR)

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

Tabella delle eccitazioni della FSM (con FF SR)

iHiL Q

Tabella delle eccitazioni FF SR

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 -

Scelta del Bistabile FF JK Codifica Naturale (S0=0; S1=1)


Tabella delle transizioni della FSM
Q iHiL

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

Tabella delle eccitazioni della FSM (con FF JK)

01 0-1

11 1-1

10 1-0

U 0 1
Q iHiL

Mappa di Karnaugh J

Tabella delle eccitazioni della FSM (con FF JK)

iHiL Q

Tabella delle eccitazioni FF JK

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 -

Scelta del Bistabile FF D Codifica Naturale (S0=0; S1=1)


Tabella delle transizioni della FSM
Q iHiL

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

Tabella delle eccitazioni della FSM


(con FF D) Mappa di Karnaugh di D iHiL

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 tra bistabili


Lesempio svolto relativo alla trasformazione di un elemento di memoria in un altro.

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

Ottenere un JK utilizzando SR, JK, D e 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:

Sintesi Sequenziale Sincrona


Sintesi comportamentale di reti sequenziali sincrone

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

Riduzione del numero degli stati per Macchine Completamente Specificate


Indistinguibilit & Equivalenza Irragiungibilit versione del 12/12/2004

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-

Riduzione del numero degli stati


Il numero minimo di elementi di memoria (flip-flop) necessari a memorizzare tutti gli stati dellinsieme S : NFF,min = log2 |S| Nel modello di una macchina a stati possono esistere stati ridondanti Lidentificazione ed eliminazione di tali stati comporta:

Riduzione del numero degli stati


Esempio
Macchina con 8 stati, 1 ingresso ed 1 uscita Macchina con 3 stati, 1 ingresso ed 1 uscita
Funzione 1, 1 Funzione ,

Numero minore di elementi di memoria Reti combinatorie meno costose

per aumento dei gradi di libert nella sintesi combinatoria


condizioni di indifferenza dovute allutilizzo parziale delle configurazioni che possono codificare lo stato Minore numero di ingressi e di uscite alle reti combinatorie che realizzano la funzione stato futuro e la funzione duscita.
Elementi di memoria

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-

Riduzione del numero degli stati


Lo scopo della riduzione del numero degli stati consiste nellindividuare la macchina minima equivalente a quella data La macchina minima equivalente quella macchina:

Riduzione del numero degli stati:


macchine equivalenti Date due macchine completamente specificate M1 e M2 queste si dicono equivalenti se e solo se:

Funzionalmente equivalente alla macchina data Avente il minimo numero di stati

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

Il problema della riduzione del numero di stati distinto per macchine

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-

Riduzione del numero degli stati:

stati indistinguibili di una stessa macchina


Riduzione del numero degli stati:

stati equivalenti di una stessa macchina


si~si si~sj sj~si si~sj sj~sk si~sk

Data una macchina completamente specificata, siano:


La relazione di indistinguibilit gode di tre propriet:


Riflessiva: Simmetrica: Transitiva:

I - una generica sequenza di ingresso ij, ..., ik U - la sequenza d'uscita ad essa associata ottenuta attraverso . si, sj - due generici stati

I due stati si e sj appartenenti ad S sono indistinguibili se:


U,i = (si, I) = (sj, I) = U,j

Quindi, la relazione di indistinguibilit una relazione d'equivalenza

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-

Lindistinguibilit tra si e sj si indica con: si ~ sj

-7-

Riduzione del numero degli stati:


partizione di equivalenza
Formalmente, una relazione di equivalenza induce sull'insieme degli stati una partizione e di equivalenza tale che

Riduzione del numero degli stati:


macchina minima
Una macchina M minima se non esiste nel suo insieme degli stati nessuna coppia di stati equivalenti Il problema della riduzione degli stati pu quindi essere ricondotto a quello della costruzione di una macchina equivalente minima a quella data. Identificazione della macchina equivalente minima:

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 -

Riduzione del numero degli stati:


identificazione degli stati equivalenti La definizione di indistinguibilit tra stati di difficile applicabilit poich richiederebbe di considerare tutte le sequenze di ingresso (a priori infinite) Si ricorre ad una regola introdotta da Paull Unger

Riduzione del numero degli stati:

identificazione degli stati equivalenti (i)

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)

La regola di Paull Unger iterativa

Se i simboli di uscita sono uguali e Se gli stati prossimi non sono ancora stati verificati come indistinguibili

- 11 -

- 12 -

Riduzione del numero degli stati:

identificazione degli stati equivalenti (ii) (ii)

Riduzione del numero degli stati:


tabella delle implicazioni (i) Le relazioni di indistinguibilit o equivalenze possono essere identificate attraverso l'uso della Tabella delle Implicazioni La tabella ha le seguenti caratteristiche:

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

Riduzione del numero degli stati:


tabella delle implicazioni (ii) (ii) Ogni elemento della tabella contiene:

Riduzione del numero degli stati:


tabella delle implicazioni (iii) (iii) Analisi delle coppie di stati

Il simbolo di non equivalenza; Il simbolo di equivalenza

Per ogni coppia di stati:

gli stati corrispondenti sono equivalenti

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 -

Riduzione del numero degli stati: Esempio

Riduzione del numero degli stati: Esempio


Coppia d;f

d;f c;h

Tabella degli stati


a b c d e f g h 0 h/0 c/0 b/0 e/1 h/0 e/1 a/1 d/0 1 g/1 e/0 a/0 c/0 d/1 h/0 c/0 f/1

b c d e f g h

x x x dg x x dh fg a ae

Tabella delle implicazioni

b c d

x x x dg ae

ma c;h distinguibile: risultato d;f distinguibile (X)

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

a;e d;g ma d;g a;e. d;g a;e. b;c 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:

Riduzione del numero degli stati: Esempio 1

Vertice: rappresenta uno stato Lato: due vertici sono uniti da un lato se e solo se sono equivalenti

Diagramma degli stati


1/01 a 0/10 c 0/10 1/11 0/00 0/00 1/11 f 1/01 0/10 e d

Tabella degli stati

Le classi di equivalenza sono i sottografi completi del grafo (o clique):


1/11 0/00
1/01

a h

e = { {a, e}, {b, c}, {d, g}, h, f } = = { , , , h, f }

a b c d e f g h

0 h/0 c/0 b/0 e/1 h/0 e/1 a/1 d/0

1 g/1 e/0 a/0 c/0 d/1 h/0 c/0 f/1

0/01

1/01 b

f h

1 0 h,0 ,1 ,0 ,0 ,1 ,0 ,1 h,0 ,0 f,1

g 1/11

a b c d e f g

0 g/00 g/00 d/10 c/10 g/00 f/10 a/01

1 c/01 d/01 a/11 b/11 f/01 e/11 f/11

- 19 -

- 20 -

Riduzione del numero degli stati: Esempio 1


Tabella degli stati
b
0 g/00 g/00 d/10 c/10 g/00 f/10 a/01 1 c/01 d/01 a/11 b/11 f/01 e/11 f/11

Riduzione del numero degli stati: Esempio 1


Analisi della tabella delle implicazioni
b cd x x cf x x a x x fd x x b ab x ae df x c x be cf x d x x e x f
- 22 -

Tabella delle implicazioni


cd x x cf x x a
- 21 -

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

a~e, c~f, d~f e b~e


A questo punto, lanalisi delle altre coppie gi risolta

Riduzione del numero degli stati: Esempio 1


Grafo di equivalenza
a b g

Sintesi: Esempio 2
Sintetizzare una macchina di Moore secondo le specifiche:

Tabella delle implicazioni


b c d e f g cd

Tabella ridotta degli stati


c

x x cf x x a

x x fd x x b ab x ae df x c

~
x x x e x f

0 g/00 /10 /01

1 /01 /11 /11

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

Tabella degli stati Tabella degli stati Tabella delle implicazioni

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

x S0,S3 S1,S2 x S0 x S2,S0 S1 x S2

A=1;B=0 A=0;B=1 A=0;B=0

- 25 -

- 26 -

Riduzione del numero degli stati: Esempio 3

Riduzione del numero degli stati: Esempio 3


Grafo di equivalenza

Tabella degli stati


S2 x S2,S4 S6,S7 S3,S5 x S6,S7 S3,S1 x x x S1
- 27 -

Tabella delle implicazioni


S2 x S6,S7 S5,S1 S3,S1 x x x x S2 S3

Tabella delle implicazioni


x S2,S4 S6,S7 S3,S5 7 x S6,S7 S5,S1 S3,S1 x 6 x S4,S2 S5,S1 x x

1 2

S1 S2 S3 S4 S5 S6 S7 S8

00 S2/0 S7/0 S4/0 S6/0 S2/0 S1/1 S3/1 S1/1

01 S8/1 S1/1 S8/1 S3/1 S8/1 S6/0 S6/0 S2/1

11 S6/0 S5/1 S7/0 S1/1 S7/0 S3/1 S5/1 S8/1

10 S3/0 S8/1 S5/0 S8/1 S1/0 S7/1 S7/1 S7/1

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

e= { {S1, S3, S5}, {S2, S4}, {S6, S7}, S8 } =


={ a, b, c, S8 }

- 28 -

Riduzione del numero degli stati: Esempio 3

Riduzione del numero degli stati:


eliminazione degli stati irraggiungibili Eliminazione degli stati irraggiungibili

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

Tabella ridotta degli stati


Transizioni di RESET
d Reset 0/01 g 1/11 0/00 1/11 e 1/11 0/10 0/10 f 1/11 e -/00 Reset 1/11 c 0/10 1/11 0/00 0/00 1/11 f

a b c S8

00 b/0 c/0 a/1 a/1

01 S8/1 a/1 c/0 b/1

11 c/0 a/1 a/1 S8/1

10 a/0 S8/1 c/1 c/1

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 -

Riduzione del numero degli stati:


eliminazione degli stati irraggiungibili
Eliminazione degli stati irraggiungibili

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

1:{Reset{g,g}}={Reset{g}} 2:{Reset{g{Reset,f}}}={Reset{g{f}}} 3:{Reset{g{f{f,e}}}}={Reset{g{f{e}}}} 4:{Reset{g{f{e{g,f}}}}}={Reset{g{f{e}}}}

0 Reset g/00 b g/00 c -/-d c/10 e g/00 f f/10 g Reset/01

Da cui si ricavano i soli stati raggiungibili: Reset, g, f, e. Gli altri possono essere eliminati dalla tabella
- 31 -

Sintesi: Assegnamento degli stati


La riduzione del numero degli stati minimizza il numero di elementi di memoria e quindi di variabili di stato che descrivono la macchina da sintetizzare

Sintesi Sequenziale Sincrona


Sintesi Comportamentale di reti Sequenziali Sincrone

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)

Il problema dellassegnamento degli stati

versione del 15/12/04

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-

Sintesi: Scelta del codice


Il processo di codifica degli stati ha lobiettivo di identificare per ogni rappresentazione simbolica dello stato una corrispondente rappresentazione binaria. Due problemi paralleli:

Sintesi: Codifica degli stati


Scelto il codice, la codifica degli stati influisce sia sullarea sia sulle prestazioni del dispositivo. Il problema della identificazione della codifica ottima un problema NP-completo Impone luso di euristiche per prevedere linfluenza sul processo di ottimizzazione dellinterazione tra il tipo di elemento di memoria utilizzato e la codifica scelta.

Scelta del codice.

A minimo numero di bit


ndi elementi di memoria= log2 |S| (codifica densa) ndi elementi di memoria= |S| (codifica sparsa) Gli stati che sono in corrispondenza delle transizioni pi frequenti sono poste a distanza Hamming pi piccola possibile ponendo il vincolo del minor numero possibile di bit.

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 !

Ad esempio, con |S| = 8 si hanno 840 possibili codifiche

Spesso, scelto il codice, si preferisce non ricorrere ad alcuna specifica strategia di codifica.

Identificazione della codifica di ogni stato.


-3-

Il costo della strategia di codifica rispetto alla affidabilit del risultato ottenuto ritenuto eccessivo.
-4-

Sintesi: Scelta del codice


Semplici codifiche: binario naturale e one-hot con codifica random

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:

One-Hot 001 010 100

-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:

Codifica degli stati: Esempio 1


Stati aventi lo stesso stato prossimo a,b condividono c a,d condividono c c,e condividono e a b c d e 0 c c e b e 1 c a d c b a,c e,d b,c e,b Cardinalit dei vincoli Adiacenze Cardinalit a,b a,c a,d a,e b,c Stati prossimi con ingressi adiacenti stato stato stato stato presente presente presente presente b c d e b,d b,e c,d c,e d,e 1 1 1 0 1 0 1 0 1 1

cardinalit del vincolo derivante dellesame della tabella degli stati, dopo aver applicato le regole esposte

Noi consideriamo i vincoli di alta e media priorit e utilizziamo il peso

5 stati: 3 variabili di stato


-9-

- 10 -

Codifica degli stati: Esempio 1


Cardinalit dei vincoli Adiacenze a,b a,c a,d a,e b,c b,d b,e c,d c,e d,e Cardinalit 1 1 1 0 1 0 1 0 1 1
- 11 -

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 -

Codifica degli stati: Esempio 1


a d
Grafo iniziale: non ununione di sotto-cubi Mappa per la codifica (variabili di stato) 00 a d 01 c e 11 10 b

Codifica degli stati: Esempio 2


Stati aventi lo stesso stato prossimo s0,s1 s0,s3 s2,s3 s1,s2 condividono condividono condividono condividono s1 s2 s3 s0

0 1

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

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

4 stati: 2 variabili di stato

e c
- 13 -

Codifica degli stati: Esempio 2


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

Codifica degli stati: Esempio 2


Grafo iniziale: non ununione di sotto-cubi Mappa per la codifica (variabili di stato) 0 0 1 s0 s3 1 s1 s2

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

Grafo ridotto tagliando il numero minore di archi

2 s2 4 s3

- 15 -

- 16 -

Altri criteri di assegnamento


Esistono metodi che hanno lo scopo di individuare per la funzione una dipendenza ridotta dalle variabili di stato Il metodo assegna, se possibile, gli stati in modo da identificare dei moduli che dipendono da un numero di variabili di stato inferiore a quello totale della FSM Il metodo partiziona le variabili di stato (i bistabili) e quindi individua dei moduli costituiti da

Strumenti di sintesi automatica


Esistono strumenti specifici di sintesi automatica in grado di adottare diverse strategie per definire la codifica degli stati In generale utilizzano le regole esposte per identificare i vincoli di adiacenza tra stati. Il criterio di soddisfacimento dei vincoli dipende dalla strategia adottata che, spesso, pu essere definita al momento dellattivazione dello strumento Gli strumenti sono in grado di gestire un numero sufficientemente elevato di variabili nelle tabelle delle verit ottenute dallassegnamento Presuppongono di lavorare con Flip-Flop D e il risultato dellassegnamento e della relativa ottimizzazione della rete combinatoria dipende anche dalla tecnologia implementativa prevista (es. PLA)

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 -

Macchine non completamente specificate


Sono macchine in cui per alcune configurazioni degli ingressi e dello stato presente non sono specificati gli stati prossimi e/o le configurazioni d'uscita. Ad esempio

Sintesi Sequenziale Sincrona


Sintesi Comportamentale di Reti Sequenziali Sincrone

a b c d e

0 e/0 d/0 e/a/1 a/-

1 a/0 b/0 -/a/1 b/-

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-

Macchine non completamente specificate:


Data una macchina non completamente specificata:

sequenza di ingresso applicabile e stati compatibili

Macchine non completamente specificate:


compatibilit
La compatibilit una relazione meno forte di quella di indistinguibilit. Valgono le propriet riflessiva e simmetrica ma Non vale la propriet transitiva cio se si sj e sj sk pu non essere si sk. Quindi la compatibilit non una relazione di equivalenza Ad esempio, si sj e sj sk ma si sk. :

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

Due stati si e sj di una macchina M si dicono compatibili se


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

si - sequenza di uscita: sj - sequenza di uscita: sk - sequenza di uscita:

0 0 0

0 0 0

1 -

1 0

1 1

1 1 1

. . . . . . . . .

La compatibilit tra si e sj si indica con: si sj


-3-

valori d'uscita diversi


-4-

Riduzione del numero degli stati:


stati compatibili
La regola di Paull - Unger stata estesa per trattare il caso delle macchine non completamente specificate Due stati sono compatibili se e solo se, per ogni simbolo di ingresso i valgono entrambe le seguenti relazioni:
1. ( si, i ) = (sj, i )

Riduzione del numero degli stati:


compatibilit e regola di Paull-Unger PaullPoich gli insiemi S e I hanno cardinalit finita, lanalisi di tutte le coppie di stati pu portare ad una delle tre condizioni
1. si sj: stati non compatibili

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-

Riduzione del numero degli stati:


tabella delle implicazioni
Le relazioni di compatibilit si identificano con la Tabella delle Implicazioni che viene costruita come nel caso della indistinguibilit Lanalisi della tabella consente di propagare le incompatibilit, ma non di risolvere i vincoli di compatibilit condizionata. Quindi al termine dellanalisi, ogni elemento contiene:

Riduzione del numero degli stati: Esempio

Tabella degli stati

Tabella delle implicazioni

Grafo delle compatibilit

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

a,b a,e b,c a,e a,c

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-

Riduzione del numero degli stati:


classi di compatibilit
Classe di compatibilit:

Riduzione del numero degli stati:


classi di compatibilit - esempio
a a,b e a,b d a,e a,c c a,e b,c d,e b d,e

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

Classe di compatibilit prima:

Classe di massima compatibilit:


Classi di compatibilit:
a, b, c, d, e, ab, ac, ae, bc, ce, cd, de, abc, aec, dec abc, aec, dec

Classi di massima compatibilit:

- 10 -

Riduzione del numero degli stati:


{a,b,c} : {(d,e)} {a,c,e} : {(a,b);(b,c)} {c,d,e} : {(a,b);(a,e);(a,c);(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} : ab, bc, a e c non sono classi di compatibilit prime

classi di compatibilit prime - esempio

Riduzione del numero degli stati:


Insieme chiuso di classi di compatibilit:

Insieme chiuso di classi di compatibilit

Per ogni classe dellinsieme deve valere la seguente relazione:

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 -

Insieme (abc), (ed): chiuso


da (abc) con 0 vado in (ed), con 1 in (abc): OK da (ed) con 0 vado in (a), con 1 in (ab): OK a a,b e a,b d a,e a,c c a,e b,c d,e

d,e b a,e b,c a,e a,c d,e c

d,e

- 11 -

Riduzione del numero degli stati:


copertura della macchina
Data una macchina M e il suo insieme di classi di compatibilit, la macchina M il cui insieme degli stati costituito da un insieme chiuso delle classi di compatibilit di M, che include tutti gli stati di M, copre M Per costruzione, il comportamento di M compatibile con quello di M e cio,

della tabella degli stati della macchina ridotta

Riduzione del numero degli stati: costruzione

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 -

Tabella degli stati della macchina ridotta


Sulla base di:

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

Si determina la nuova tabella degli stati corrispondente alla macchina ridotta


Tabella degli stati
0 e/0 d/0 e/a/1 a/1 a/0 b/0 c/a/1 b/-

Tabella degli stati ridotta

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:

Riduzione del numero degli stati:

ricerca delle classi di massima compatibilit

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

Possibilmente minore di quello della macchina di partenza Non necessariamente minimo

Classi di massima compatibilit:


{a,b,c} : {(d,e)} {a,c,e} : {(a,b);(b,c)} {c,d,e} : {(a,b);(a,e);(a,c);(b,c)}

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 -

Riduzione del numero degli stati:

ricerca delle classi di massima compatibilit

Ricerca delle classi di massima compatibilit


Albero dei compatibili massimi per colonne
Premesse: La radice dellalbero costituita da tutti gli stati della macchina (elencati secondo lordine presente nella tabella delle implicazioni) Ogni nodo costituito da un elenco di stati possibilmente compatibili Ogni stato della macchina genera un livello nellalbero I nodi di un certo livello sono costituiti da un elenco di stati per i quali la compatibilit gi stata verificata per tutti gli stati in elenco corrispondenti ai livelli dellalbero al momento costruito Se un nodo costituito da stati tutti gi analizzati, tranne al pi lultimo, allora lanalisi relativa a quel nodo terminata e il nodo una foglia dellalbero Se un nodo costituito da un insieme di stati gi compresi in un altro nodo dello stesso livello o di un nodo foglia, il nodo pu essere eliminato
- 20 -

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

Costruzione, per colonne (o per righe), dellalbero dei compatibili massimi

- 19 -

Ricerca delle classi di massima compatibilit


Albero dei compatibili massimi per colonne
La costruzione dellalbero avviene secondo queste linee guida Dalla radice vengono costruiti 2 nuovi nodi, derivanti dallesame del primo stato a sinistra dellelenco che costituisce la radice stessa

derivazione dallalbero
b c d e de x ab a de x ad b ae ac ae bc c

Classi di compatibilit massima Esempio di


abcde a bcde b ab d de ce cde cde d cde bc c ae ace ace abc abce

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 -

Classi di massima compatibilit: {a,b,c}, {a,c,e}, {c,d,e}


- 22 -

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

Euristica con classi di massima compatibilit


1. 2.

Inizializzare una lista L1 vuota Finch il grafo non vuoto:


a. b.

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 -

Algoritmo di ricerca - Esempio


Passo 1 a) Grafo di partenza Passo 1 b c a c,d f a,b e c,d c,d a,b d b) c) d) cde, bfe, ab, ad cde L1= ab, cd L1= ab a c,d b f a,b e c,d c,d b c a,b d f a

Algoritmo di ricerca Esempio (cont.)


Grafo di partenza Passo 2 b Passo 2 a) b) c) d) bf, ab bf L1= ab L1= ab a b

f b

e)

e) a f

- 25 -

- 26 -

Algoritmo di ricerca Esempio (cont.)


Grafo di partenza Passo 3 b Passo 3 a) b) c) a d) ab ab L1= ab L1= vuota b

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 -

Euristica con classi di compatibilit prime


Funzione di costo (= beneficio nella scelta di una classe):
Benefici: Numero di stati coperti dalla classe di compatibilit (+) Numero di vincoli risolti dalla scelta della classe in altre classi gi scelte(+) Costi: Numero di vincoli introdotti dalla scelta della classe di compatibilit (-)

Euristica con classi di compatibilit prime


passo preliminare: trasformazione vincoli

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 -

Vincoli: Tramite la tabella degli stati, le coppie di vincoli vengono trasformate in


raggruppamenti di stati compatibili, per garantire la chiusura della copertura

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 -

Euristica con classi di compatibilit prime


passo 1: calcolo costi e scelta classe
+3+0-1 +3+0-1 +3+0-2 +2+0-0 +2+0-1 +2+0-2 +2+0-2 +2+0-1 +1+0-0 +1+0-0 +1+0-0 = = = = = = = = = = = +2 +2 +1 +2 +1 0 0 +1 +1 +1 +1 {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} :

Euristica con classi di compatibilit prime


passo 1: eliminazione vincoli e classi
Si eliminano i vincoli risolti dalla classe scelta e quelli risolti dai vincoli della classe scelta Si eliminano le classi ricomprese nella classe scelta e nei suoi vincoli
{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} : scelta al +3+0-1 +3+0-2 +2+0-0 +2+0-1 +2+0-2 +2+0-2 +2+0-1 +1+0-0 +1+0-0 +1+0-0 passo 1 = +2 = +1 = +2 = +1 = 0 = 0 = +1 = +1 = +1 = +1

Copertura al passo 1: C = {(a,b,c)}

- 31 -

- 32 -

Euristica con classi di compatibilit prime


passo 2: calcolo costi e scelta classe

Euristica con classi di compatibilit prime


passo 2: eliminazione vincoli e classi

{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} :

scelta al passo 1 +1+0-0 = +1 +2+0-1 = +1 +1+0-0 +1+0-1 +1+0-1 +2+1-0 = +1 = 0 = 0 = +3

{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} :

scelta al passo 1 +1+0-0 = +1 +2+0-1 = +1 +1+0-0 +1+0-1 +1+0-1 scelta al = +1 = 0 = 0 passo 2

Copertura al passo 2: C = {(a,b,c); (d,e)}


- 33 -

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 ridotta


Sulla base di:

Tabella degli stati della macchina iniziale Insieme chiuso delle classi di compatibilit

Si determina la nuova tabella degli stati corrispondente alla macchina ridotta


Tabella degli stati
0 e/0 d/0 e/a/1 a/1 a/0 b/0 c/a/1 b/-

Tabella degli stati ridotta

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 -

Macchine non completamente specificate


Sono macchine in cui per alcune configurazioni degli ingressi e dello stato presente non sono specificati gli stati prossimi e/o le configurazioni d'uscita

Sintesi Sequenziale Sincrona


Sintesi Comportamentale di Reti Sequenziali Sincrone

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-

Macchine non completamente specificate:


Data una macchina non completamente specificata:

sequenza di ingresso applicabile e stati compatibili

Macchine non completamente specificate:


compatibilit
La compatibilit una relazione meno forte di quella di indistinguibilit Non vale la propriet transitiva cio se si sj e sj sk pu non essere si sk. Quindi la compatibilit non una relazione di equivalenza Ad esempio, si sj e sj sk ma si sk. :

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

Due stati si e sj di una macchina M si dicono compatibili se


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

si - sequenza di uscita: sj - sequenza di uscita: sk - sequenza di uscita:

0 0 0

0 0 0

1 -

1 0

1 1

1 1 1

. . . . . . . . .

La compatibilit tra si e sj si indica con: si sj


-3-

valori d'uscita diversi


-4-

Riduzione del numero degli stati:


stati compatibili
La regola di Paull - Unger stata estesa per trattare il caso delle macchine non completamente specificate Due stati sono compatibili se e solo se, per ogni simbolo di ingresso i valgono le seguenti relazioni:
1. ( si, i ) = (sj, i ) e

Riduzione del numero degli stati:


compatibilit e regola di Paull-Unger PaullPoich gli insiemi S e I hanno cardinalit finita, lanalisi di tutte le coppie di stati pu portare ad una delle tre condizioni
1. si sj

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-

Riduzione del numero degli stati:


tabella delle implicazioni
Le relazioni di compatibilit si identificano con la Tabella delle Implicazioni che viene costruita come nel caso della indistinguibilit Lanalisi della tabella consente di propagare le incompatibilit, ma non di risolvere i vincoli di compatibilit condizionata. Quindi al termine dellanalisi, ogni elemento contiene:

Riduzione del numero degli stati: Esempio

Tabella degli stati

Tabella delle implicazioni

Grafo delle compatibilit

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

a,b a,e b,c a,e a,c

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-

Riduzione del numero degli stati:


classi di compatibilit Classe di compatibilit:

Riduzione del numero degli stati:


classi di compatibilit - esempio
a a,b e a,b d a,e a,c c a,e b,c d,e b d,e

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-

Classe di compatibilit prima:

Classi di compatibilit:

a, b, c, d, e, ab, ac, ae, bc, ce, cd, de, abc, aec, dec abc, aec, dec

Classe di massima compatibilit:


Classi di massima compatibilit:

- 10 -

Riduzione del numero degli stati:


classi di compatibilit prime - esempio
{a,b,c} : {(d,e)} {a,c,e} : {(a,b);(b,c)} {c,d,e} : {(a,b);(a,e);(a,c);(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} :

Riduzione del numero degli stati:


Insieme chiuso di classi di compatibilit:

Insieme chiuso di classi di compatibilit

Per ogni classe dellinsieme deve valere la seguente relazione:

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 -

Insieme (abc), (ed): chiuso


da (abc) con 0 vado in (ed), con 1 in (abc): OK da (ed) con 0 vado in (a), con 1 in (ab): OK a a,b e a,b d a,e a,c c a,e b,c d,e

d,e b a,e b,c a,e a,c d,e c

d,e

- 11 -

Riduzione del numero degli stati:


copertura della macchina
Data una macchina M e il suo insieme di classi di compatibilit, la macchina M il cui insieme degli stati costituito da un insieme chiuso delle classi di compatibilit di M (che include tutti gli stati di M) copre M Per costruzione, il comportamento di M compatibile con quello di M e cio,

Riduzione del numero degli stati:


copertura e minimizzazione
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:

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

Possibilmente minore di quello della macchina di partenza Non necessariamente minimo

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 -

Riduzione del numero degli stati:

ricerca delle classi di massima compatibilit

Ricerca delle classi di massima compatibilit


Albero dei compatibili massimi per colonne
Premesse: La radice dellalbero costituita da tutti gli stati della macchina (elencati secondo lordine presente nella tabella delle implicazioni) Ogni nodo costituito da un elenco di stati possibilmente compatibili Ogni stato della macchina genera un livello nellalbero I nodi di un certo livello sono costituiti da un elenco di stati per i quali la compatibilit gi stata verificata per tutti gli stati in elenco corrispondenti ai livelli dellalbero al momento costruito Se un nodo costituito da stati tutti gi analizzati, tranne al pi lultimo, allora lanalisi relativa a quel nodo terminata e il nodo una foglia dellalbero Se un nodo costituito da un insieme di stati gi compresi in un altro nodo dello stesso livello o di un nodo foglia, il nodo pu essere eliminato
- 16 -

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

Costruzione, per colonne o per righe, dellalbero dei compatibili massimi

- 15 -

Ricerca delle classi di massima compatibilit


Albero dei compatibili massimi per colonne
La costruzione dellalbero avviene secondo queste linee guida Dalla radice vengono costruiti 2 nuovi nodi, derivanti dallesame del primo stato a sinistra dellelenco che costituisce la radice stessa

derivazione dal grafo

Classi di compatibilit massima Esempio di

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 -

Classi di massima compatibilit:


{a,b,c} : {(d,e)} {a,c,e} : {(a,b);(b,c)} {c,d,e} : {(a,b);(a,e);(a,c);(b,c)}

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

Classi di compatibilit massima Esempio di


abcde a bcde b ab d de ce cde cde d cde bc c ae ace ace abc abce

una copertura minimale

Riduzione del numero degli stati: ricerca di

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

Classi di massima compatibilit: {a,b,c}, {a,c,e}, {c,d,e}


- 19 - 20 -

Ricerca copertura chiusa


Funzione di costo: Benefici: Numero di stati coperti dalla classe di compatibilit (+) Numero di vincoli risolti dalla scelta della classe di compatibilit (+) Costi: Numero di nuovi vincoli introdotti dalla scelta della classe di compatibilit (-) Vincoli: Le coppie di vincoli vengono trasformate in raggruppamenti di stati compatibili, per garantire la chiusura della copertura 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 (non con tutti i contributi nulli) 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 Si eliminano le classi completamente coperte dai vincoli della classe scelta perch non interessanti per successive scelte Il processo termina quando tutti gli stati sono stati coperti e tutti i vincoli sono stati rispettati
- 21 -

Ricerca copertura minima

passo preliminare: trasformazione vincoli


+3+0-1 +3+0-1 +3+0-2 +2+0-0 +2+0-1 +2+0-2 +2+0-2 +2+0-1 +1+0-0 +1+0-0 +1+0-0 = = = = = = = = = = = +2 +2 +1 +2 +1 0 0 +1 +1 +1 +1

{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 -

Ricerca copertura minima


passo 1
{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} : +3+0-1 +3+0-1 +3+0-2 +2+0-0 +2+0-1 +2+0-2 +2+0-2 +2+0-1 +1+0-0 +1+0-0 +1+0-0 = = = = = = = = = = = +2 +2 +1 +2 +1 0 0 +1 +1 +1 +1

Ricerca copertura minima


effetti del passo 1 e passo 2
{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} : scelta al passo 1 +1+0-0 +2+0-1 +1+0-0 +1+0-1 +1+0-1 +2+1-0 = +1 = +1 +1 0 0 +3 +1 +1

C = {{a,b,c}}

= = = = +1+0-0 = +1+0-0 =

- 23 -

- 24 -

Ricerca copertura minima


effetti del passo 2 -- fine
{a,b,c} : {(d,e)} {a,c,e} : {(a,b,c)} {c,d,e} : {(a,e);{a,b,c}} {a,e} : {(a,b)} {c,d} : {(a,c);(a,e)} {c,e} : {(a,e);(b,c)} {d,e} : {(a,b)} {d} : {e} : scelta al passo 1

Tabella degli stati della macchina ridotta


Esempio Sulla base di:

Tabella degli stati della macchina iniziale Insieme chiuso delle classi di compatibilit

scelta al passo 2

Si determina la nuova tabella degli stati corrispondente alla macchina ridotta


Tabella degli stati
0 e/0 d/0 e/a/1 a/1 a/0 b/0 c/a/1 b/-

Tabella degli stati ridotta

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

Progetto di Contatori sincroni

Esiste una classe di circuiti sequenziali la cui progettazione potrebbe seguire il processo classico di sintesi ma che pi conveniente analizzare in altro modo.

La regolarit della struttura facilit la progettazione.

A questa classe appartengono:

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

Registri (gi visti)


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 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.

Contatori definizioni caratteristiche


Un contatore caratterizzato da:
Il modulo M

Il valore raggiunto associato allo stato presente

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

Il contatore appartiene ad una famiglia di reti sequenziali omogenee caratterizzate da:


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-

Contatori sincroni e asincroni


Oltre che per modulo, codice e codifica, i contatori si distinguono in sincroni e asincroni:

Contatori sincroni: Contatore Binario Naturale


Contatore binario (modulo 2n)

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

Tutti i bistabili ricevono simultaneamente in ingresso levento di conteggio;


Clock oppure Gated Clock (clock attraversa una rete combinatoria).

Le eventuali commutazioni sono tutte simultanee (sincrone), a parte modeste variazioni dovute alla propagazione attraverso le reti di eccitazione dei bistabili

Tabella delle transizioni e delle eccitazioni per M= 21

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

Nel seguito si tratter in dettaglio il progetto dei contatori sincroni.

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-

Contatori sincroni: Contatore Binario Naturale


Lanalisi delle tabelle delle eccitazioni evidenzia la seguente regolarit (M=24):
Q3Q2Q1Q0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 T3T2T1T0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 1 Q3Q2Q1Q0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 T3T2T1T0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 1 Q3Q2Q1Q0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 T3T2T1T0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 1 Q3Q2Q1Q0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 T3T2T1T0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 1

Contatori sincroni: Contatore Binario Naturale


Sono possibili due implementazioni per le funzioni di eccitazione:
Contatore serie: T0=1; T1=Q0; Tn=Qn-1*Tn-1

Contatore parallelo: T0=1; T1=Q0; Tn=Qn-1*Qn-2*Qn-3...*Q0


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-

Contatori sincroni: Contatore Binario Naturale


Contatore binario (modulo 2n) serie:
1
FF_T0 FF_T1 FF_T2 FF_Tn-1

Contatori sincroni: Contatore Binario Naturale


Contatore binario (modulo 2n)

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

Tabella delle eccitazioni per M= 21

Contatore binario (modulo


1
FF_T0

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 -

Contatori sincroni: Contatore Binario Naturale


Lanalisi delle tabelle delle eccitazioni evidenzia la seguente regolarit (M=24):
Q3Q2Q1Q0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 D3D2D1D0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 Q3Q2Q1Q0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 D3D2D1D0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 Q3Q2Q1Q0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 D3D2D1D0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 Q3Q2Q1Q0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 D3D2D1D0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0

Contatori sincroni: codici e moduli liberi


Due casi diversi:

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

A struttura non regolare.


Si applica una metodologia di progetto semplificata rispetto a quella generale per le reti sequenziali

Progetto di contatori con modulo diverso da 2n, codice a numero minimo bit e codifica binaria naturale

A struttura non regolare.


Si applica una metodologia di progetto semplificata rispetto a quella generale per le reti sequenziali;

Parallelo D0=Q01=Q0 D0=Q01=Q0 Serie

D1=Q1Q0 D1=Q1Q0

D3=Q3(Q2*Q1*Q0) D2= Q2(Q1*Q0) D2= Q2(Q1*Q0)= Q2(Q1*K0) D3=Q3(Q2*K1)


- 11 -

- 12 -

Contatori sincroni: codici e moduli liberi


Contatore ad anello

Contatori sincroni: codici e moduli liberi


Contatore ad anello (ring counter) modulo n:

Modulo: n; Codice: One hot; Codifica: 2k Bistabile utilizzato: D Codice one-hot:

un registro a scorrimento con riporto tra stadio iniziale e finale

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

Esempio: i numeri da 0 a 3 sono codificati come:


0 = 0001 (20) 1 = 0010 (21) 2 = 0100 (22) 3 = 1000 (23) esiste una corrispondenza 1-a-1 fra lentit codificata e la posizione dellunico 1 nella codifica.
- 13 -

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

Contatori sincroni: codici e moduli liberi


Il contatore ad anello ha una struttura ad alto costo ma molto semplice, compatta e veloce

Contatori sincroni: codici e moduli liberi


Contatore ad anello incrociato
Modulo: 2*n (nota: sempre pari); Codice e Codifica (esempio): Q2Q1Q0 Q2*Q1*Q0* Q1Q0 Q1*Q0* 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 1 0 1 1 2 1 1 1 0 2 0 1 1 1 1 1 3 1 0 0 0 3 1 1 1 1 1 0 4 1 1 0 1 0 0 5 1 0 0 0 0 0 Q3Q2Q1Q0 Q3*Q2*Q1*Q0* 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 bit

il numero di bistabili molto pi elevato del minimo e cresce linearmente.

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 -

0 1 2 3 4 5 6 Bistabile utilizzato: D 7 Per codificare 2*n informazioni diverse occorrono n

Il codice non a numero minimo di bit.

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 -

Contatori sincroni: codici e moduli liberi


Contatore ad anello incrociato modulo 2*n:
Pre-set
FF_D0

Contatori sincroni: codici e moduli liberi


Contatore modulo diverso da 2n: Esempio1.

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

Tabella delle transizioni e delle eccitazioni per M= 6

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 -

Contatori sincroni: codici e moduli liberi


Contatore modulo diverso da 2n: Esempio2.

Contatori sincroni: Composizione di contatori


possibile realizzare contatori per moduli elevati partendo da contatori pi semplici

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]));

Tabella delle transizioni e delle eccitazioni per M= 10

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

T3=Q3*Q0+Q2*Q1*Q0 T2=Q1*Q0 T1=Q3*Q0 T0=1


Nota: In modo analogo si potrebbe Nota: In modo analogo si potrebbe ottenere la realizzazione mediante ottenere la realizzazione mediante FFD. FFD. D0=Q0 D0=Q0 D1=Q3*Q1*Q0+Q3*Q1*Q0 D1=Q3*Q1*Q0+Q3*Q1*Q0 D2=Q3*Q2*Q1*Q0+Q2*Q0+Q2*Q1 D2=Q3*Q2*Q1*Q0+Q2*Q0+Q2*Q1 D3=Q3*Q1+Q2*Q1*Q0 D3=Q3*Q1+Q2*Q1*Q0

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 -

Il modulo del contatore complesso il prodotto dei moduli.

Contatori sincroni: Composizione di contatori


Esempio: contatore BCD a 3 Cifre (Mod-1000)

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:

Dispositivi Logici Programmabili


Dispositivi Programmabili a due livelli
Introduzione ROM (Read Only Memory) (Read Memory) PLA (Programmable Logic Array) (Programmable Array) PAL (Programmable Array Logic) (Programmable Logic) PLA e PAL avanzate 15/01/05

Componenti logici (Porte logiche, Flip-flop, Buffer) Linee di connessione

Tipologie di dispositivi programmabili

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-

Logiche programmabili - Modalit di programmazione


Programmabili una sola volta (One-Time Programmable - OTP) - durante la fase non attiva del dispositivo

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)

Riprogrammabili (Reprogrammable) - durante la fase non attiva del dispositivo


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)

Connessioni locali e distribuite

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)

Riconfigurabili (Reconfigurable) - durante la fase attiva del dispositivo

sono caratteristiche dei Field Programmable Gate Array (FPGA).

SRAM: oltre ad una elevata velocit di programmazione, richiesta anche la possibilit di intervenire separatamente su parti del dispositivo.
-3-4-

Logiche programmabili a 2 livelli


Nello schema base realizzano funzioni a 2 livelli del tipo SOP a n ingressi e m uscite
fi = fi(x1, x2, ..., xn) con i={1, 2, ..., m}

Piano AND Piano OR: Esempio

Prima forma canonica della funzione a pi uscite:


f1 f2 f3 f4 f5 = = = = = abc+abc+abc+abc+abc+abc abc+abc+abc abc+abc+abc+abc+abc+abc abc+abc+abc+abc+abc+abc+abc abc+abc+abc+abc+abc
abc f1 f2 f3 f4 f5

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).

Tabella della verit della funzione a pi uscite:


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

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

Il piano AND realizza tutti i mintermini

Il piano OR realizza le singole funzioni di uscita

Uscita

-6-

Piano AND Piano OR: Esempio


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

2
Il piano OR realizza le singole funzioni di uscita

Logiche programmabili a 2 livelli


Read-Only Memory (ROM)

Piano AND fissato.

Implementa tutti i possibili mintermini (decoder).

Piano di OR adattabile. Piano AND programmabile.

Funzione a pi uscite ottimizzata f1 = a+bc+bc f2 = ac f3 = ab+ac+ac+bc f4 = a+b+bc f5 = a+bc

Il piano AND realizza questi termini prodotto

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

abc 1--11 -00 1-1 100-1 1-0 -10 1--0-11 1--10

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

Programmable Logic Array (PLA)

dato il numero di termini prodotto generabili, si programmano solo i mintermini/implicanti necessari.

Piano OR programmabile. Piano AND programmabile.

Programmable Array Logic (PAL)

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-

Logiche programmabili a 2 livelli: campi di applicazione

Read-Only Memory (ROM)


Un Memoria a Sola Lettura (ROM) implementa la prima forma canonica di m funzioni di uscita a n ingressi

Reti combinatorie a due livelli non ottimizzate:

Read-Only Memory (ROM)


Anche PLA e PAL

Somma di Prodotti (SOP)

Reti combinatorie a due livelli ottimizzate:

Programmable Logic Array (PLA), Programmable Array Logic (PAL)

Reti combinatorie multi livello costituite da reti a due livelli ottimizzate:

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

PLA e PAL con retroazione

Macchine Sequenziali Sincrone con reti combinatorie multi livello costituite da reti a due livelli ottimizzate:
PLA e PAL con retroazione e registri

Parola (contenuto f1 della) f2 = valore delle funzioni fm in corrispondenza del mintermine

Parola selezionata = mintermine


- 10 -

-9-

ROM: decodificatore degli indirizzi


Decodificatore degli indirizzi (Address decoder)

ROM: piano AND e decodificatore degli indirizzi


Schema logico del piano di AND che implementa lAddress Decoder

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

Per semplicit si utilizza la rappresentazione che si riferisce al decoder.


Significato: ogni croce indica quali variabili sono coinvolte, il tipo di porta indica Significato: ogni croce indica quali variabili sono coinvolte, il tipo di porta indica schematicamente come tali variabili collegate tra loro. schematicamente come tali variabili collegate tra loro.

Infatti

Ia Ia Ib Ib Ic Ic

Esempio di decodificatore a 3 ingressi:


0 1

000 001 010

0 0

Esempio: x1x2x3 = 111

x1 x2 x3
2n-1

a b c
111 000 m0 001 m1 111 m7

Address Decoder

- 11 -

- 12 -

ROM: schema logico


Schema logico di una ROM:

ROM: Esempio
Esempio:

Esempio di una ROM a 3 ingressi e 4 uscite (non programmata). ROM


000 001 010

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.):

Programmable Logic Array (PLA)


Un Array Logico Programmabile (Programmable Logic Array - PLA) consente di implementare una somma di prodotti espressa in forma minima a due livelli (somma di implicanti)

Realizzazione della funzione a pi uscite (aspetto logico):


000 001 010 011 100 101 110 111

Nota: lestensione a forme non minime naturale.

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

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


- 15 -

f1

f2

f3

f4

f5

ingressi

Xn

Piano AND programmabile


termini prodotto

Piano OR programmabile

uscite

- 16 -

Programmable Logic Array (PLA): schema logico


Schema logico di una PLA

PLA: Esempio 1
Esempio 1:

Esempio di PLA a 3 ingressi, 2 uscite, 4 termini prodotto (non programmata):


a Ia Ia b Ib Ib c Ic Ic Piano AND Connessioni Programmabili

Realizzazione delle funzioni:

PLA

f1 = ab +ac+abc f2 = ab +ac +abc

Prodotti:
P1 P2 P3 P4 = = = = ab ac ac abc

Formato PLA: 11- 10 1-0 10 001 10 11- 01 1-1 01 001 01

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: 11- 10 1-0 10 001 10 11- 01 1-1 01 001 01

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

Programmable Array Logic (PAL)


Un Array Programmabile Logico (PAL) consente di implementare una somma di prodotti espressa in forma minima a due livelli (somma di implicanti)

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

b c Piano AND f1 Piano OR f2 f3 f4 f5

PLA e PAL coprono lo stesso spazio dapplicazione.

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)

Il piano OR fissato nasce da un trade-off tra il n di ingressi per OR e il n di OR X1 X2 Xn f1 f2 fm

ingressi

Piano AND programmabile


termini prodotto

Piano OR fissato

uscite

13 termini prodotto di cui 9 diversi


- 21 -

- 22 -

PAL: schema logico


Schema logico di una PAL

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

Esempio di PAL a 3 ingressi, 4 termini prodotto, 2 uscite (non programmata):


a

Ia I!a Ib I!b Ic I!c

PAL

Il piano OR fissato pu implicare comunque una realizzazione multilivello

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 di PLA realizzato con PAL


Realizzazione tramite una PAL (a 3 ingressi, 6 termini prodotto, OR a 3 ingressi e 2 uscite) delle funzioni:

PAL: Esempio 1
Esempio 1 (cont.): (PAL programmata per le funzioni f1 ed f2)
a Ia Ia Ib Ib c Ic Ic Piano AND

f1 = ab +ac+abc f2 = ab +ac +abc

PAL

Prodotti:
P1 P2 P3 P4 P5 P6 = = = = = = ab ac abc ab ac abc

Somme:
f1 = P1 + P2 + P3 f2 = P4 + P5 + P6

Formato PAL: 11- 10 1-0 10 001 10 11- 01 1-1 01 001 01

Formato PAL: 11- 10 1-0 10 001 10 11- 01 1-1 01 001 01

P1

P2

P3

P4

P5

P6 f2

Piano

E se fossero disponibili solo OR a 2 ingressi, e 4 uscite? Realizzazione multi livello


- 25 -

f1
- 26 -

OR

PLA e PAL Avanzate


Lo schema base mostrato consente di realizzare solo reti combinatorie a due livelli Questo limite superato:
Introducendo delle linee di retroazione

PLA avanzate: rete multi livello - esempio


Esempio di implementazione tramite PLA di una rete combinatoria multi livello a pi uscite.
A A B B C C D D E E A A B B C C D D E E v3 = !D + !C; v3 = !D + !C; v1 = !v3 + !B; v1 = !v3 + !B; v4 = !E + !v3; v4 = !E + !v3; v2 = !C + !A; v2 = !C + !A; Y = !v1 + !v2; Y = !v1 + !v2; Z = !v4 + !v1; Z = !v4 + !v1; Y Y Z Z v3 = !D + !C; v3 = !D + !C; v2 = !C + !A; v2 = !C + !A; V1 = !v3 + !B; V1 = !v3 + !B; v4 = !E + !v3; v4 = !E + !v3; Y = !v1 + !v2; Y = !v1 + !v2; Z = !v4 + !v1; Z = !v4 + !v1; Y Y Z Z

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

Introducendo elementi di memoria (bistabili)

- 27 -

- 28 -

PLA: rete multi livello - esempio


Esempio di implementazione di una rete combinatoria multi livello a pi uscite.
A A B B C C D D E E v3 = !D + !C; v3 = !D + !C; v2 = !C + !A; v2 = !C + !A; v1 = !v3 + !B; v1 = !v3 + !B; v4 = !E + !v3; v4 = !E + !v3; Y = !v1 + !v2; Y = !v1 + !v2; Z = !v4 + !v1; Z = !v4 + !v1; Y Y Z Z A A B B C C

PLA: rete multi livello - esempio


Esempio (cont):
A B C v3 = !D + !C; v3 = !D + !C; D V1 = !v3 + !B; V1 = !v3 + !B; E v4 = !E + !v3; v4 = !E + !v3; v2 = !C + !A; v2 = !C + !A; Y = !v1 + !v2; Y = !v1 + !v2; Z = !v4 + !v1; Z = !v4 + !v1; Y Y Z Z
p1 p2 p3 p4 p5 p9 p6 p8 p7
V2 V3 V1 V4

Piano AND Diretto e con Retroazione

PLA

Funzioni da realizzare (piano OR)


v1 = !v3 + !B v2 = !C + !A v3 = !D + !C v4 = !E + !v3 Y = !v1 + !v2 Z = !v4 + !v1

Termini prodotto da realizzare (piano AND)


p1 p2 p3 p4 p5 = = = = = !A !B !C !D !E p6 p7 p8 p9 = = = = !v1 !v2 !v3 !v4

D D E E

uscita uscita

Y Z Piano OR

- 29 -

- 30 -

PLA e PAL Avanzate: struttura generale


Struttura logica dei dispositivi avanzati basati su PLA a PAL con retroazione e bistabili (per FSM)
Piano AND Diretto e con Retroazione Piano OR Cella di uscita

PLA: Esempio FSM con rete multi livello


Realizzazione multi livello delle macchina a stati identificata dalle espressioni logiche sotto riportate (a, b ingressi primari, Y uscita della FSM, S1, S2 bit di stato):
Y = s1 !ab + s2b + !s2 (uscita ) (funzione di transizione 1) s1* = s1!a + s2 + s1b s2* = s1!a!b + s2 !b + !s1 (funzione di transizione 2) fi

Primary Inputs

fi

Si raccoglie il fattore

g = s1!a + s2

ottenendo

D Q Q Output select Feed-back

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: Esempio FSM con rete multi livello


Le funzioni da realizzare, di transizione e duscita, sono:
g = s1!a + s2 Y = bg+!s2 s1* = g+s1b s2* = !bg+!s1

PLA: Esempio FSM con rete multi livello


Lo schema logico :
Sezione AND Sezione AND
p1 p1 P2 P2 p3 p3 p4 p4 p5 p5 p6 p6 p7 p7 p8 p8 = = = = = = = = = = = = = = = = Q1!a Q1!a Q2 Q2 bg bg !Q2 !Q2 g g Q 1b Q 1b !bg !bg !Q1 !Q1
a b Piano AND Diretto e con Retroazione

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

Le funzioni da realizzare, di eccitazione e duscita, sono: g = Q1 !a + Q2 Y = bg + !Q2 D1 = g + Q1b D2 = !bg + !Q1


- 33 -

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

PLA: Esempio FSM con rete multi livello


Dove le celle di uscita sono configurate nel modo seguente
g

Complex Programmable Logic Devices


I Dispositivi Logici Programmabili Complessi (Complex Programmable Logic Devices - CPLD ) sono una evoluzione delle PLA e PAL Sono caratterizzati da:

fi
D Q Q
Clock Output select Output enable

Q1

Connessioni globali Logica concentrata

fi
D Q Q
Clock Output select Output enable

Rispetto a PAL e PLA:


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 -

Complex Programmable Logic Devices


Larchitettura generale la seguente
CPLD Ingressi Interconnessioni Cella Logica
D Q Q D Q Q Ingresso (36)

Complex Programmable Logic Devices


Esempio: Cella logica della Xilinx XC9500

Uscite

Set/Reset Globale

Clock Globale

Set Uscita Allocatore dei termini prodotto Clock Reset

FF

D Q Q
- 37 - 38 -

Potrebbero piacerti anche