Sei sulla pagina 1di 302

1

‘ w»
.
"' 7- w-vu

wwmtg
fi
"
m

l‘

13 mm WWW
‘SJWÈM ‘dal

CENTRALE
ILIOTECA

wEGNERIA
l-l
U
m
m

(I)
»-1
w
c:
E
E
a
Hm 105mm

ÙHISÌIHNH HHLEHINI, Enmn HHHNUHLESE

ÎHBIUSHLIEE, HHNHÌEHHSEIUÌH

Gfifiîìîw’;

APCGEO
Indice

Prefazione xi

Capitolo 1
Introduzione

Capitolo 2
Algebra di Booie e di commutazione 7
2.1 Algebra diBoo1e . . . . . . . . . . . . . . . . . . . . . . . . .. 7
2.1.1 Proprietà dell'algebra . . . . . . . . . . . . . . . . . . . . 9
2.2 Algebra di commutazione . . . . . . . . . . . . . . . . . . . . . . 11

2.3 Funzioni ed espressioni . . . . . . . . . . . . . . . . . . . . . . . 13


2.3.1 Espressioni booleane . . . . . . . . . . . . . . . . . . . . i4
2.3.2 Funzioni booleane . . . . . . . . . . . . . . . . . . . . . 15
2.3.3 Tabella deîla verità . . . . . . . . . . . . . . . . . . . . . 16
2.3.4 Funzioni non completamente specificate . . . . . . . . . . 17
2.4 Forme canoniche . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.1 Teorema di espansione . . . . . . . . . . . . . . . . . . . 19
2.4.2 Prima forma canonica . . . . . . . . . . . . . . . . . . . 20
2.4.3 Seconda forma canonica . . . . . . . . . . . . . . . . . . 22
2.5 Espressionieproprietà deITaIgebra . . . . . . . . . . . . . . . .

2.6 Porte logiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24


2.6.1 Operatori funzionalmente completi: NANDeNOR. . . . 27
2.6.2 Altre porte logiche . . . . . . . . . . . . . . . . . . . . . 28
2.7 Circuiti logici . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Capitolo 3
La codifica del] Tnfonnazione 39
3.1 Codici e codifiche . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2 Codici numerici . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3 Rappresentazione dei numeri naturali . . . . . . . . . . . . . . .

3.3.1 Codifica naturale . . . . . . . . . . . . . . . . . . . . . . 44


vi Indice

3.4 Rappresentazione dei numeri relativi . . . . . . . . . . . . . . . . 49


3.4.1 Codifica in modulo e segno . . . . . . . . . . . . . . . . 49
3.4.2 Codifica in complemento alla base . . . . . . . . . . . . . 50
3.4.3 Codifica in complemento alla base diminuita . . . . . . . 52
3.5 Rappresentazione dei numeri razionali . . . . . . . . . . . . . . . 54
3.5.1 Codifica in virgola fissa . . . . . . . . . . . . . . . . . . 54
3.5.2 Codifica in Virgola mobile . . . . . . . . . . . . . . . . . 53
3.5.3 Standard IEEE 754 . . . . . . . . . . . . . . . . . . . . . 59
3.6 Altri codici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.6.1 Binary-coded decima] (BCD) . . . . . . . . . . . . . . . 61
3.6.2 Gray . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.6.3 One-hot . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.7 Aritmetica binaria . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.7.1 Somma e sottrazione in codifica binaria naturale . . . . . 64
3.7.2 Somma algebrica in codifica modulo e segno . . . . . . . 66
3.7.3 Somma algebrica in complemento a 1 . . . . . . . . . . . 67
3.7.4 Somma algebrica in complemento a 2 . . . . . . . . . . . 70
3.7.5 Moltiplicazione in codifica binaria naturale . . . . . . . . 71
3.7.6 Moltìplicazione in codifica modulo e segno . . . . . . . . 73
3.7.7 Moltiplicazione in complemento a 2 . . . . . . . . . . . . 73
Esercizi . . . . . . . . . . . . . . . . . . . . ._ . . . . . . . . . . 78

Capitolo 4
r Reti combinatori}; _ 83
4.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.2 Formalizzazione della specifica . . . . . . . . . . . . . . . . . . . 85
4.3 Sintesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.3.1 Prima forma canonica . . . . . . . . . . . . . . . . . . . 87
4.3.2 Seconda forma canonica . . . . . . . . . . . . . . . . . . 88
4.3.3 Funzioni non completamente specificate . . . . . . . . . . 89
4.4 Minimizzazione esatta . . . . . . . . . . . . . . . . . . . . . . . 91
4.4.1 Metodo delle mappe di Kamaugh . . . . . . . . . . . . . 92
4.4.2 Metodo di Quine-McCluskey . . . . . . . . . . . . . . . 104
4.4.3 Metodi di supporto alla copertura . . . . . . . . . . . . . 124
4.5 Minimjzzazione euristica di reti a due livelli . . . . . . . . . . . . 130
4.5.1 Approccio iterativo . . . . . . . . . . . . . . . . . . . . . 130
4.5.2 Descrizione del problema e soluzione iniziale . . . . . . . 132
4.5.3 Trasformazioni . . . . . . . . . . . . . . . . . . . . . . . 133
4.6 Minimizzazione euristica di reti su più livelli . . . . . . . . . . . 138
4.6.1 Modello di riferimento . . . . . . . . . . . . . . . . . . . 138
Indice vii

4.6.2 Trasformazioni . . . . . . . . . . . . . . . . . . . . . . . 140


4.6.3 Applicazione delle trasformazioni . . . . . . . . . . . . . 145
Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

Capitolo 5
Circuiti combinatori Speciali 167
5.1 Reti combinatorie di base . . . . . . . . . . . . . . . . . . . . . . 167
5.1.1 Multìplexer . . . . . . . . . . . . . . . . . . . . . . . . . 167
5.1.2 Demultiplexer . . . . . . . . . . . . . . . . . . . . . . . 169
5.1.3 Decoder . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
5.1.4 Priority encoder . . . . . . . . . . . . . . . . . . . . . . 172
5.2 Sommatoriesottrattori . . . . . . . . . . . . . . . . . . . . . . . 173
5.2.1 Sommatori ripple-carry . . . . . . . . . . . . . . . . . . . 173
5.2.2 Sommatori carry look-ahead . . . . . . . . . . . . . . . . 174
5.2.3 Sommatori carry-save . . . . . . . . . . . . . . . . . . . 176
5.2.4 Sommatorì misti . . . . . . . . . . . . . . . . . . . . . . 179
5.2.5 Sommatorì/sottrattori . . . . . . . . . . . . . . . . . . . 180
5.3 Complementatori . . . . . . . . . . . . . . . . . . . . . . . . . . 182
5.3.1 Complementoauno . . . . . . . . . . . . . . . . . . . . 182
5.3.2 Complemento adue . . . . . . . . . . . . . . . . . . . . 183
5.4 Comparatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
5.4.1 Comparatori diuguaglianza . . . . . . . . . . . . . . . . 185
5.4.2 Comparatori generici . . . . . . . . . . . . . . . . . . . . 185
5.5 Moltiplicatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
5.6 Unità aritmetico logiche . . . . . . . . . . . . . . . . . . . . . . 191
5.6.1 Multiplexed ALU . . . . . . . . . . . . . . . . . . . . . . 191
5.6.2 Bit—s1icedALU . . . . . . . . . . . . . . . . . . . . . . . 193

Capitolo 6
Macchine a statifiniri 195
6.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
6.2 Macchina di Mooreemacchina di Mealy . . . . . . . . . . . . . 198
6.3 Modelli per le macchine a stati finiti . . . . . . . . . . . . . . . . 201
6.3.1 Grafo di transizione dello stato . . . . . . . . . . . . . . . 202
6.3.2 Tabella di transizione dello stato o tabella degli stati . 203
6.3.3 Modellodi Huffman . . . . . . . . . . . . . . . . . . . . 204
6.3.4 Rete logica sincrona . . . . . . . . . . . . . . . . . . . . 205
6.3.5 Differenze tra modelli comportamentali e modelli
comportamentali/strutturali . . . . . . . . . . . . . . . . . 206
6.4 Procedura di trasformazione dei modelli . . . . . . . . . . . . . . 207
viii Indice

6.4.1 Procedura per il passaggio da una macchina di Moore a


una cliMealy . . . . . . . . . . . . . . . . . . . . . . . . 207
6.4.2 Procedura per il passaggio da una macchina di Mealy a
una di Moore . . . . . . . . . . . . . . . . . . . . . . . . 207
Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

Capitolo 7
Bisrabilz’ 217
7.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
7.2 Classificazione basata sulla modalitàdisincronizzazione . . . . . 218
7.2.1 Latch SR asincrono . . . . . . . . . . . . . . . . . . . . . 218
7.2.2 Latch SR sincrono . . . . . . . . . . . . . . . . . . . . . 222
7.2.3 Flip-fiop master-slave . . . . . . . . . . . . . . . . . . . 224
7.2.4 Flip-flop data look-out . . . . . . . . . . . . . . . . . . . 226
7.2.5 Flip-fiop edge-triggered . . . . . . . . . . . . . . . . . . 227
7.3 Classificazione basata sul tipo . . . . . . . . . . . . . . . . . . . 230
7.3.1 Tipo SR . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
7.3.2 TipoD . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
7.3.3 Tipo 1K . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
7.3.4 TipoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
7.4 Temporizzazionee metastabilità . . . . . . . . . . . . . . . . . . 233
7.5 Ingressi asincroni di preset e clear . . . . . . . . . . . . . . . . . 234
7.6 Analisi difunzionamento temporale . . . . . . . . . . . . . . . . 234
Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

Capitolo 8
S intesi delle macchine a sratifinizi 243
8.1 l passi della fase di progetto . . . . . . . . . . . . . . . . . . . . 243
8.2 Dalla specifica al diagramma dello stato . . . . . . . . . . . . . . 245
8.2.1 Stato di panenza . . . . . . . . . . . . . . . . . . . . . . 245
8.3 Modelii di Mealy e di Moore . . . . . . . . . . . . . . . . . . . . 247
8.4 Sequenza di interesseecompletamento delle transizioni . . . . . 248
8.5 Dal diagramma di stato alla tabella degli stati . . . . . . . . . . . 255
8.6 Codifica dello stato . . . . . . . . . . . . . . . . . . . . . . . . . 255
8.6.1 Codifica adistanza minima . . . . . . . . . . . . . . . . . 258
8.6.2 Codificaapriorità . . . . . . . . . . . . . . . . . . . . . 260
8.6.3 Codifica basata sulPuscita . . . . . . . . . . . . . . . . . 264
8.7 Dalla tabella delle transizioni di stato codificato alla tabella delle
eccitazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
8.8 Riepilogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Indice ix

Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268

Capitolo 9
Ottimizzazione delle macchine a stari finiti 281'
9.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
9.2 Macchine completamente specificate . . . . . . . . . . . . . . . . 283
9.3 Macchine non completamente specificate . . . . . . . . . . . . . 292
Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308

Capitolo 10
Ottimizzazione Strutturale 3J 9
10.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
10.2 Retirning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
10.2.1 Modello per il retiming . . . . . . . . . . . . . . . . . . . 323
10.2.2 Aspetti generaîi . . . . . . . . . . . . . . . . . . . . . . . 324
10.2.3 Minimizzazione del periodo di clock . . . . . . . . . . . 326
10.2.4 Minimizzazìone cleEFarea . . . . . . . . . . . . . . . . . 333
10.2.5 Pipeîining ottimo . . . . . . . . . . . . . . . . . . . . . . 335
10.3 Peripheral retimìng . . . . . . . . . . . . . . . . . . . . . . . . . 338
Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340

Capitolo 11
Circuiti sequenziaii speciali 349
11.1 Registri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
11.1.1 Registro parallelo/parallelo . . . . . . . . . . . . . . . . . 350
11.1.2 Registro serie/parallelo . . . . . . . . . . . . . . . . . . . 351
11.1.3 Registro serie/serie . . . . . . . . . . . . . . . . . . . . . 352
11.1.4 Registro serie/serie circolare . . . . . . . . . . . . . . . . 352
11.1.5 Registro parallelo/serie . . . . . . . . . . . . . . . . . . . 353
11.2 Contatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
11.2.1 Progettazione comportamentale dei contatori . . . . . . . 356
11.2.2 Progettazione strutturale dei contatori . . . . . . . . . . . 359
11.2.3 Contatoli veloci . . . . . . . . . . . . . . . . . . . . . . . 361

Bibliografia 365
Algebra di Boole
e di commutazione

Contenuto
2.] Algebra di B00le
2.2 Algebra di commutazione
2.3 Funzioni ea‘ espressioni
2.4 Forme canoniche
2.5 Espressioni e proprietà del! îizlgebra
2.6 Porte logiche
2. 7 Circuiti logici
Esercizi

Ualgebra di Boole [Boole 1839] prende il nome dal matematico inglese John
Boole che a metà del diciannovesimo secolo forrnalizzò un sistema algebrico per
trattare in modo sistematico la logica. Più precisamente, Talgebra di Boole si pro-
poneva di risolvere il calcolo proposizionale mediante tecniche algebriche. Oggi
quesfialgebra ha numerose applicazioni nelle scienze fisiche, in particolare nel
campo dei calcolatori e dell’elettronica in quanto consente di definire un model-
lo adeguato di una realtà fisica fornendo anche gli strumenti per Fanalisi e la
risoluzione dei problemi in tali ambiti.
ln questo capitolo si introduce Palgebra di Boole descrivendone le caratteristi-
che e proprietà. A causa delfinteresse per i sistemi a due Valori, nel seguito si
focalizza Fattenzione sulPalgebi-a di commutazione, introdotta da Claude Shan-
non [Shannon, 1938] a metà del ventesimo secolo, presentando gli operatori ele-
mentari nella forma valida in questo contesto, il concetto di funzione e quello di
espressione; in relazione a quesfiultimo argomento, si trattano poi le forme ca-
noniche come rappresentazione standard di una funzione. Infine, dopo aver trat-
tato le porte logiche, si descrive la rappresentazione cìrcuitale come formalismo
alternativo alle espressioni algebriche.

2.1 Algebra di Boole


Lîcxlgebra di B00le, come ogni sistema matematico deduttivo, può essere definita
mediante un insieme di elementi, un insieme di operatori e un numero fissato di
8 Algebra di Boole e di commutazione

assiomi. Si dice algebra di Boole una struttura algebrica definita dalla sestuplal:

A : (A:+a ‘5/307

in cui A è il sicpporto delFalgebra, cioè 1’insieme degli elementi su cui essa opera,
+ e sono gli operatori binari: di disginnzìone (OR) e di congiunzione (AND);
-

infine, il simbolo ’ indica Yoperatore unario3 di compiemetazione o negazione


(NOT) e O e 1 sono due elementi speciali, meglio definiti nel seguito. Uaigebra
A è detta chiusa rispetto agli operatori +, e ’ se valgono le condizioni:
-

a+b€A, a-ÒEA, (KGA VaJJEA


Gli operatori appena descritti godono di aicune proprietà definite dai se-
guenti assiomi, che costituiscono un adattamento dei postulati di Huntington
[Huntingtom 1904]:

(i) ie operazioni di disgiunzione (+) e congiunzione (-) sono commutatore, cioè


per ogni elemento a, b E A risulta:

a+b=b+a
a - b = b - a,

(ii) esistono in A un elemento neutro (o identità) rispetto a + (indicato con O) e


un elemento neutro rispetto a (indicato con I), cioè:
-

a +0 = a

a v 1 = a

(iii) ciascuna delle due operazioni e distributiva rispetto al1’a1tra, cioè per ogni
ci, b, c E A, risulta:

aHb-c) (a+b)-(a+c)
=

a-(b+c)= (a«b)+(a-c)
(iv) per ogni a E A esiste ed è unico Felemento a’ E A, detto complemento di
a, tale che:

a+a’=1
a-a’=(]

‘In alcuni testi si definisce Palgebra di Boolc mediante la quintupla A : (A, ‘T, -. 0, 1), omettendo
Poperazionc di complcmentazione.
ZSi dice binario un operatore che richiede due operandi.
3Si dice unario un operatore che richiede un operando.
2. I Aigebra di Boole 9

È importante notare che l’assioma (iv) impone una restrizione sulla struttura del
supporto di urfalgebra di Booîe, e in particolare richiede che esso sia formato da
coppie di elementi complementari, cioè:

A:{a,a":b,bi,...}
In questo tesîo si fa riferimento esclusivamente ad algebra booleane finite, ossia
taii per cui il supporto A è un insieme finito. Nel prosieguo del capitolo, per
semplicità, si parlerà di “algebra booleana” sottintendendo la dizione più corretta
“algebra booleana finita”.
Dalla proprietà commutativa delle operazioni di disgiunzione e congiunzione
e daìPesistenza dei rispettivi elementi neutri, si può dimostrare il principio di
dirama, qui di seguito riportato.

Definizione 2.1 Il principio di dualità garantisce che ogni proposizione deriva-


ta dagli assiomi ( i )—( iv) di anhlgebra di Boole rimane valido scambiando
ovunque tra di loro le operazioni e e gii elementi neutri I e 0.
—|— - D

2.1.1 Proprietà delPalgebra


Partendo dalle definizioni assiomatiche degli operatori è possibile derivare alcune
proprietà delFalgebra booleana. In primo luogo e necessario introdurre il concetto
di variabile booleana, secondo la seguente definizione:

Definizione 2.2 Una variabile booleana è un simbolo che indica un qaaisiasi


elemento dei supporto A. Il valore di una variabile è un elemento di A. E
Le variabili sono normalmente rappresentate mediante ie ultime lettere deil’alfa—
beto a7, 1 , . . ., mentre gli elementi del supporto sono indicati dalle prime lettere
clelfaîfabeto a, b, e dai simboli D e 1.
. . .

Siano ora zr, y, z E A tre variabili booleane. Si dimostra che vaìgono le proprietà
elencate nei seguito.

l. Associoriviîa

aT+(y+z):(x+y)+z (2.1)
z-(y-zflzfic-ylz (2.2)

2. Idemporenza

se + a: = a: (2.3)
a: = a‘. (2.4)
I0 Algebra di Boole e di Commutazione

3. Elemento nullo

5C + 1 = 1 (2.5)
il! - Ù = U (2.6)

4. Unicità del! Halemenro inverso

i1 complemento di 2:, 1:’, è unico (2.7)

5. Assorbimento

:::+(..'c-y)=x (2.8)
.1: - (a? + y) = 1: (2.9)

6. Semplificazione

m+r"-y=x+y (2.10)
a:—(a:’+y):a:-y (2.11)

7. Involuzione .

(x')' = a: (2.12)

8. Legge di De Morgan

(o: + y)’ 2 1:’ - y’ (2.13)


(55 ' 3J), = 33’ + 3/’ (2-14)

9. Consenso

m-y+m’-z+y-z=w-y+:I:’-z (2.15)
(w+y)-(fc’+z)-(y+z)=(w+y)-(x"+z) (2-16)

10. Impiicazione

x S I +y (2.17)
x - y S a: (2.18)

Gli assiomi alla base della definizione di uxfalgebra uniti alìe proprietà elencate
costituiscono degli ottimi esempi del principio di dualità, per cui sarebbe stato
2.2 Algebra di commutazione II

sufficiente enunciate per ciascuna delle proprietà la formulazione reiativa a una


sola delle operazioni.
Tutte queste proprietà sono in realtà dei teoremi, dimostrabili a partire dai quat-
tro assiomi alla base della definizione di un’algebra. Si consideri, come primo
esempio, la dimostrazione della proprietà di idempotenza.

o: + sc = (21: —1— m) - 1 elemento neutro (ii)


= (z + x) (a: + 3:’) - complemento (iv)
= z + (cc z’) - distributiva (iii)
= s: + 0 complemento (iv)
= a": elemento neutro (ii)

In modo analogo e possibile dimostrare la proprietà .1: + 2:’ -y = 1? + y, utilizzando


i quattro assiomi e la proprietà di idempotenza appena dimostrata.

a: + 3:’ y
. = (a: - 1) + x’ y - elemento neutro (ii)
= (a: + y’ + m’ y
- - complemento (iv)
= (z y) + (a: y’) + (:z’ y)
- - - ' distributiva (iii)
= (se y) + (s: y) + (m y’) + (z’ y)
- - — - idempotenza
= (a: y) + (a: y’) + (a: y) + (33'
» - - commutativa (i)
z :z: (y + y’) + (a: + cc’) y
- - distributiva (iii)
= z 1 + 1 y
- - complemento (iv)
: zr + y elemento neutro (ii)

Lo stesso approccio può essere utilizzato per dimostrare le altre proprietà, in


entrambe le formulazioni. Alcune dimostrazioni sono proposte come esercizi.

2.2 Algebra di commutazione


Sono molte le algebre che rientrano nella definizione di algebra booleana, tra cui
Palgebra delle dosso‘, Falgebro delle funzioni proposizionali, Folgebro booleana
air-fonetica e Falgebra booleana a 2 valori o algebra di commutazione. Quest'ul-
tima è di particoìare interesse nell’ ambito della progettazione delle reti logiche e
costituisce Fargomento principale del presente capitolo.
Uafgebra di commutazione è caratterizzata da un supporto costituito da soio due
valori: 0 e 1. La sestupla che definisce quesfalgebra è la seguente:

5 = ({0,1},+,-,2o,1)
I2 Algebra di Boole e di commutazione

in cui Finsieme {t}, 1} è il supporto ed è comunemente indicato con B. Le varia-


bili dell’algebra di commutazione possono quindi assumere solo due valori: O o 1 .

Le operazioni +, e ’ introdotte per una generica algebra booleana sono definite,


-

per Falgebra di commutazione, dalle tabelle in Figura 2.1

+ O 1 O 1 ’

0 O 1 0 0 0 0 I
1 1 1 l 0 1 1 0

Figura 2.1 Definizione degli operatori delralgebra di commutazione

Come per Palgebra tradizionale, è possibile omettere il simbolo nella scrittura


dei prodotti ed in modo analogo si possono omettere anche le parentesi nelle
espressioni Booleane, ricordando che tale operazione ha una priorità superiore
rispetto all’operazione +. Per esempio, la formula (a: y) + z può essere più -

semplicemente scritta come my + z. Si ricorda inoltre che Foperatore negazione


ha la precedenza rispetto agli altri operatori.
Accanto agli operatori fondamentali di congiunzione e di disgiunzione è utile
introdurre un ulteriore operatore, chiamato disgìunzione esclusiva o OR esclusivo
(XOR) ed indicato col simbolo 6B, definito dalla tabella di Figura 2.2.

€9 O 1

0 0 I
l 1 O

Figura 2.2 Definizione delfoperatore OR esclusivo

Dal punto di vista algebrico l’OR esclusivo è definito come:

aeb=a%+aU 04%
Sulla base di questa definizione e applicando le proprietà deIPaIgebra si dimostra
che valgono le seguenti identità:

xéììlzm’, x€aO=ac (2.20)


aréeasz0, m®z'=l (2.21)
fey=xey ami
2.3 Funzioni ed espressioni I3

A titolo di esempio si consideri la seguente dimostrazione della proprietà


simmetrica espressa dalla relazione (2.22):

x’ e y : (x’y’) + (23' )’ y definizione (2.19)


z 14g’ + rcy unicità elemento inverso
= zrfy’ + z(y’)’ unicità elemento inverso
s: y’ definizione (2.19)

La proprietà (2.20) evidenzia come Foperatore XOR possa essere utilizzato per
complementare o meno il valore di una variabile a: mediante una seconda varia-
bile. Inoltre Foperatore XOR consente di verificare se due (o più variabili) hanno
ugual valore. Infatti:

m@y=1 <=> xyéy


z®y=O <:> 93:3;

Altre proprietà utili delroperatore XOR sono discusse nei capitoli successivi.

2.3 Funzioni ed espressioni


Questa sezione introduce formalmente i concetti di funzione booleana e di espres-
sione booleana e ne discute le caratteristiche e le differenze fondamentali. In mo-
do intuitivo si può affermare che una espressione è una combinazione di simboli
(variabili e costanti) e di operatori booleani. Il termine “simbolo” è tuttavia poco
preciso: per questa ragione è necessario introdurre il concetto di letterale secondo
la seguente definizione.

Definizione 2.3 Sia s: una variabile booleana: si definisce letterale la coppia


(‘va-r-labile, tvalore). Per urfalgebra di commutazione in cui il valore di a:
può essere solamente O 0 1 si hanno due letterati associati alla variabile s: e
precisamente la coppia (33, 1), indicata con x ( variabile in forma naturale), e
la coppia (a3, D), indicata con so’, (variabile informa negata 0 complementare: ).
Per esempio, Fespressione 333,-‘ + xyfiz’ consta di cinque letterali:
preso due m,
volte, y, y’ e z. Si noti che, come indicato nella definizione, un letterale è una
coppia (vaiiabileyalore) e pertanto y ed y’ sono due letterali distinti. È bene
sottolineare che quanto esposto nel seguito ha validità generale e pertanto, a patto
di restringere il supporto deIFalgebra in esame all’insieme B z {O, 1}, è valido
nello specifico per 1’a1 gebra di commutazione.
I4 Algebra di Boole e di commutazione

2.3.1 Espressioni booleano


Una espressione booleana è una combinazione di simboli, siano essi costanti ap—
partenenti al supporto o variabili, uniti medianti gli operatori di complemento (’),
disgiunzione (+) e congiunzione (-). Per esempio, a: y z + y’ z’ 10+ x311: è una
- v - -

espressione booleana, mentre x +0 non lo è. Più formalmente, in un’algebra boo-


-

leana Finsieme delle espressioni o far-mule booleane sulle variabili r1, 2:2, , 23,1, . . .

è definito delle seguenti regole:

(i) gli elementi del supporto sono espressioni booleane;

(ii) le variabili 1:1, x2, . . . N15,, sono espressioni booleane;

(iii) se g e h. sono espressioni booleane, 1o sono anche g + h, g s h, e g’

(iv) non esistono altre espressioni booleane oltre a quelle che possono essere
ottenute dalfapplicazione iterativa delle precedenti tre regole.

Le proprietà deIFaIgebra consentono di manipolare urfespressione e ottenere, in


un numero finito di passi, un’altra espressione equivalente alla prima.
Come conclusione e opportuno introdurre formalmente alcune definizioni relative
alle espressioni booleane. Tali concetti sono tuttavia già stati utilizzati tacitamente
in tutta la trattazione fino ad ora svolta.

Definizione 2.4 Un termine prodotto è una formula in una delle seguenti forme:
i) il valore J, ii) un letterale, 0 iii) il prodotto logico o congiunzione di più
letterali tutti distinti. D
Termini prodotto sono, per esempio, xcy’, fyfizw e 1. Si noti che dalla con-
giunzione di più termini prodotto si ottiene, dopo Feventuale applicazione delle
proprietà di idempotenza e clelFelen-iento inverso, ancora un termine prodotto. La
disgiunzione di termini prodotto, invece, permette di costruire un’espressione più
articolata detta somma di prodotti e definita formalmente nel modo seguente.

Definizione 2.5 S i definisce somma di prodotti o forma SOP (Sum Of Products)


una formula in una delle seguenti forme: i) il valore J, ii) un temine prodotto,
0 iii) la somma logica o disgiunzlone di più termini prodotto. D
Per esempio xy’ + afz forma SOP, così come lo sono, benché degeneri, le
è una
espressioni crfiyz e 1. In modo analogo si introducono i concetti duali, secondo le
seguenti definizioni:

Definizione 2.6 Un termine somma è una formula in una delle seguenti fanne: i)
il valore O, i1’) un letterale, 0 iii) la somma logica 0 disgùtnzione di più lerrerali
tutti distinti. D
2.3 Funzioni ed espressioni 15

Le espressioni y + z’, u! e O sono esempi di termini somma. Tali tennini possono


essere combinati, in modo duale a quanto visto per i termini prodotto, a formare
ufiespressioue più articolata detta prodoiîo di somme e definita come segue.

Definizione 2.7 Si definisce prodotto di sonnne o forma POS {Product Of S ums)


unaformuia in una deiie seguenti fanne: i ) ii valore O, ii) un Iennine somma,
o iii) ii prodoiio logico 0 congiunzione di più termini somma. 53

Per esempio ìe espressioni (r: + y’) (s: + z’ + w), 3:’ + w, z(x’ + w’) e O sono tutte
forme POS.

2.3.2 Funzioni booleane


Una funzione booleana e una relazione tra gli elementi dei dominio di uifalgebra
e gli elementi del suo codominio, cioè:

Definizione 2.8 Una funzione booìeana a cri variabili è fa relazione f Il“ : —> A
che mette in corrispondenza gli elementi dei dominio A” con gii elementi del
eodominio A. El

Per definire una funzione booleana dal punto di vista operativo sì ricorre alle
quattro regole seguenti:

(i) per ogni elemento a E A, la finzione costante:

flzl, . . 01x71’) : a (2.23)

è una funzione booleana a n variabili;

(ii) per ogni variabile se?- E {IL . . - ,3:n},1afunzione proiezione:

fflîq, . . . , In) : 3:1- (2.24)

è una funzione booleana a n variabili;

(iii) se ge h. sonofunzioni booleane a n. variabili, alìora anche 9 -1- h. ,


9 - h e
(51') sono funzioni booleane, infatti:

(g-I- h)[x1,....xn,) = g(x1. . . . 513,1) —}— hfiîfîl. . . . ,22”)


(9-h)(x1...-,x.n) =9(.=:1.....xn.) hÙÎ-‘lw-w-Îîn) - (2-25)
(QÙÙFI: 237i)
- - (gtîîl!
- zîiîli);
: - - -

(iv) non esistono altre funzioni booleana oltre a quelle che possono essere
ottenute dell’ applicazione iteratìva dei le precedenti tre regole.
I6 Algebra di Boole e di commutazione

Nel casospecifico deIFaIgebIa di commutazione, una fitnzione di commutazione


a n, variabili è una relazione sulla base B definita come:

f: {l}, l}" —> {(3,1}

Si deduce che il dominio di f ha 2“


elementi e il codominio 2 elementi. È op-
portuno sottolineare che una funzione booìeana può essere descritta mediante una
espressione booleana e che esistono infinite espressioni diverse che esprimono la
stessa funzione. Per esempio, la funzione f (a) = a può essere espressa come:

ava, (il-a, (a.’)', a-l, 02+0

e da tutte le infinite combinazioni di queste mediante somma e prodotto. Non


esiste quindi una relazione univoca tra un’espressione booleana e una funzione
booleana. Si può inoltre affermare che due espressioni booleane sono equivalenti
(E) se e solo se sono riconducibili alla stessa funzione booleana.

2.3.3 Tabella della Verità


È possibile rappresentare una funzione in forma tabellare, utilizzando una tabella
della verità o tabella della fi/IÌIZÎOHE, che specifica la relazione che esiste tra ogni
elemento del dominio di f e la corrispondente immagine (ossia l’elemento del
codominio). Tale tabella è costituita da 2" righe, ad ognuna delle quali è associato
il valore 0 oppure 1. Si consideri, per esempio, la funzione seguenìe:
Laflnzione a 3 variabili ffic, y, z) assume iralore I se e solo se due delle
tre variabili hanno tralore 1.

Per ogni possibile combinazione delle variabili m, y e z, si specifica il valore della


funzione desiderata, ottenendo così la tabella della verità di Figura 2.3.

‘y
a? z fbsryaz)
000 0
0010
010 0
0111
100 0
1011
1101
i110

Figura 2.3 Tabella della verità


2.3 Funzioni ed espressioni i’ 7

2.3.4 Funzioni non completamente specificate


Ci sono occasioni in cui una funzione f è specificata in modo parziale e in tal caso
prende il nome di “funzione non completamente specificata” in contrasto a quelle
finora viste, che sono dette “completamente specificate”. Due sono i motivi per
cui tale situazione può verificarsi:

(i) la natura del problema garantisce che una data combinazione delle variabiii
di ingresso non possa mai presentarsi;

(ii) non ha importanza quale valore assuma la funzione per una data combina-
zione delle variabiîi di ingresso.

Ne] primo caso si dice che 1a funzione non è controllabile in corrispondenza di


una data combinazione di ingressi mentre nel secondo caso si dice che la funzione
non è osservabile. Si consideri a titolo d’esernpio la funzione definita come segue:

Sia f una fitnzione di due variabili 3:1 e n22. Laflmzione assume Malore
i se entrambe le variabili valgono O, assume valore 0 se le variabili sono
diverse.
In termini più formali, ia specifica indica che:

ÎCIÌLIQ) I l <=> (E1 Z32 = Ù

f(ir1-.-’Iî2) =Ù <=> 331% 332

mentre nulla viene detto relativamente al caso in cui 3:1 : 1:2 : l. La tabella
della verità della funzione f e pertanto ia seguente (Figura 2.4).

131 332 fiîi: 132)


O 0 l
0 l 0
l 0 0
l 1 —

Figura 2.4 Esempio di funzione non completamente specificata

Il valore indicato con i} simbolo “—” utilizzato in corrispondenza dei caso 2:1 =

x2 = 1, indica appunto che la funzione può assumere indifferentemente valore 0


oppure 1 e prende il nome di condizione di indifferenza o don ‘r care, in questo
caso dovuta ad una limitazione sulla controllabilità. Le condizioni di indifferenza
dovute alla osservabilità sono conseguenti al fatto che la funzione e inserita in un
contesto più ampio che “filtra” i} valore delle sue uscite. Per esempio si consideri
la nuova specifica seguente.
18 Algebra di Baole e di t-ommatazione

Sia f una funzione di due variabili x1 x2. La fiznzione assume valore


e
J se entrambe le variabili valgono 0, assume valore 0 se le variabili sono
diverse. Inoltre f
viene utilizzata esclusivamente come ingresso di una
nuovafiznzione così definita: g(f, 31,1172) = + mg)f.
In questo caso, alia condizione di indifferenza già considerata se ne aggiunge
un’altra dovuta al fatto che quando r1 î e x2 = O il valore assunto da g è
=

indipendente da f (g = f(1’ + D) = D), cioè f non è osservabile. Per questa


ragione quando x1 = 1 e x2 O, f può assumere un valore qualsivoglia, come
=

riassunto nella tabella della verità di Figura 2.5.

I1 T2 ffiîiiyîa)
Ù 0 1

Ù 1

1 Ù —

1 l —

Figura 2.5 Esempio di funzione non completamente specificata

2.4 Forme canoniche


Come detto una funzione booleana può essere rappresentata da un numero infinito
di espressioni booleane. Nei contesti in cui si utilizza un’algebra booleana, un
obiettivo di primaria importanza è la rappresentazione della funzione booleana
mediante una buona espressione. Il grado di bontà di una espressione booleana è
definito rispetto a un criterio quantitativo, detto cifra di merito.
Nelfambito delfalgebra di commutazione, utilizzata per la rappresentazione dei
circuiti logici, un possibile criterio consiste nei minimizzare il numero di lette-
rali presenti nelfespressione. Si tratta dunque di identificare una prima espres-
sione booleana che rappresenti la funzione di commutazione, quindi di cercare
un’espressione equivalente migliore, mediante le proprietà delfalgebra, al fine di
trovare Fespressione booleana con il numero minimo di letterali possibile.
I} punto di partenza è dunque una espressione booleana che rappresenti la fun-
zione in esame. La scelta di questa espressione cade sulla forma canonica, una
formula standard, univocamente determinata a partire daîla funzione che si vuol
rappresentare. Di fatto le forme canoniche di base sono due, una espressa co-
me somrna di termini prodotto (SOP) e una come prodotto di termini somma
(PDS). Tali forme sono una conseguenza diretta delfapplicazione del teorema di
espansione di Boole.
2.4 Forme canoniche 19

2.4.1 Teorema di espansione


Uno dei teoremi fondamentali delfalgebra booleana e il teorema di espansione
introdotto da Boole in [Boole, 1847], ma più comunemente noto come teorema
di espansione di Sharmon.
Teorema 2.1 Sia f : B" —> B unafimzione booleana di n variabili. Allora per
tutti gli (231. i132, . . . , 2:71) in B” si ha:

f(:r1,x2,...,zn) = e»; - f(o,zg,...,xn) +14 -f(1,xg,...,mfl) (27,26)

edualmente:
f(r1,x2,...,wn) = (Iî-i-f(1,x2,...,mn))-(m1+f(O,:r2,...,xn)) (2.27)

[termini f (D, x2, . . . 4:71) e f (1, 2:2, . . . , m7,) sono spesso indicati rispettivamente
con le scritture fx; e fa.

Approfondimento: Dimostrazione del teorema di espansione


La dimostrazione del teorema di espansione si sviluppa dimostrando che ìa rela-
zione vaJe per ogni funzione booleana a n variabili considerando ì diversi casi della
definizione operativa di funzione booleana visti in precedenza.

(i) Sia f una funzione costante, definita come f(;z:1, I2, ,22“) b per tutti i . . . =

(31,33, m”) 6 B”, dove b è un elemento costante di B. Si ha dunque:


. . .

f(.’IÌ1,I2,...,..’L‘n) = i)

= (I,1+371)'b
= xi -b+:1:1»b
= 2:3-f(O,sc2,.--:mn)+w1-f(1,m2,—u,xn)
(ii) Sia f una funzione proiezione, definita come f{.'171,.4°32,...,€E-n) = m; per
tuttii (I1’x2:n0-,zfl) E B", dovevi E (1,2,...,n). Sei 1, siha: =

f(x1sx2:---13En) = x1
Z I1
= a:'1-0+:z:1-1
= zà -f(O,x3,...,:r:n)+:J:1—f(1,x2,.,.,xn)
mentre seiyél, si ha:
f(x1,zg,...,:rn) = mi
= l-xi
= (:1î’1+I1)'xg
= xfl-xg+x1-xi
x’1-f(0,zg,...,xn)+x1-f(1,a:g,...,zn)
20 Algebra di Boole e di commutazione

(iii) Si ipotizzi infine che la relazione sia valida per le funzioni booleane g e h,
ossia che per tutti i (331932, i zen) e B” valgano, usando la notazione
. . .

Compatta, le seguenti reìazioni:

9031: 5732s x511):


- 9x14’ 331
- - ' ' 99:1

h(x1,:r2, uaxfl) = mi hx; +24


- - 4191

Ne consegue che la reìazione è valida anche per le funzioni booleane g + h,


g h, e g’, ossia per una generica funzione booìeana. Si procede quindi alla

verifica per i tre casi:


(a) caso g + h,

(g+iz.)(;c1,...,xn) gtzl-n-exn)+h(5171:---:7311)
z Ii'9:c’1+31‘9:c1 +ì17i'(Ì‘-x;+I1 ‘hm
I‘; (951 + hxî) + 171 (551 + (1,11)
[l

- '

I’; [(9+ hìzg]


- +121 - [(9 + ma]
(b) casog h -

(g-h)(s:1,...,zz:n) = g(:n1,...,:cn)-h(m1,....xn)
= ' 9x14’ Il ' 95:1) ‘ + I1 hflri)
'

= mi ‘ (gli ' + x1 ' (911 ‘


Ii - [(9 hìrg] + x1 - - [(9 Mm] -

(c) caso g’

(9f)(331a---s-7În) : (giî-Ùìevvqîlînn’
= (I’1'ga:’1+x1'91:1)’
= (se; + (915?) (mi + (g-Ti ì’) -

= (mi + (9393) (Ii + (51%)) '

= l'3 [(9393] +131 [(9’):r1i + ((939; -(9’)x1]


' '

= 1-"1-[(9’)z;]+mi [W911 -

s.

I1terzo passaggio e i} risuitato deifapplicazione della legge di De


Morgan, mentre Pultimo richiede Fapplicazione dei consenso.
Anche nel caso generico la relazione è soddisfatta. E]

2.4.2 Prima forma canonica


Una generica funzione a n vaxìabili f(a;1, , zen) può essere espansa, median- . . .

te Papplicazione iterativa del teorema di espansione di Shannon, nella forma


2.4 Forme canoniche 21

espressa dalPequazione (2.26), rispetto a tutte le variabiii, ottenendo:

.f(x11x3="' 1'371) 2 ' "ria-lxiz


+f(0, ...._0,1)J:'1--—:r:;l_1:cfl,
+f(U,...,1.__Ù)x’l - - -arn._1:1:’;l (2.28)

‘ ' ' 7 111x31 ' ' "Tal-libri


Questa espansione prende il nome di prima forma canonica e i valori:
f(0,...,0,0)= f(1,...,0,u), f(1:"'?17l)
prendono il nome di discriminanti della funzione f. Dopo avere visto la struttura
della prima forma canonica è possibile introdurre la seguente definizione.
Definizione 2.9 Siano (31,33, ,15) E B" n, variabili booieane. Un minier-
. . .

mine di 2:1, x2, , In, è unprodotto ylyg


. . . y”, in cui y; 2 a3,- oppure yi = . . .

per ogni ai = 1, 2,. ,71. In altre parole, un nzintermine è un temine prodonîo


. .

in cui compaiono i letterali corrispondenti a tutte le variabili della funzione


e raie per cui la fimzione booleana assume valore i in corrispondenza alla
configurazione delle variabili definita dai letteralì. D
Dal momento che i termini prodotto associati a discriminanti nulli possono essere
semplificati, si può introdurre la seguente definizione di prima forma canonica.
Definizione 2.10 Si definisce prima forma canonica la disgiunzione di tutti i
mintermini di unafiznzione. D
Si voglia, per esempio, ricavare Pespressione in prima forma canonica della fun-
zione di tre variabili f (m, y, z) a: + y’:
Applicando iterativamente il teorema
=

di espansione di Shannon si ottiene:

f(:r= y: 2) = w’f(0: ya z) + 331'042)


= I'[y'f(Ù, 0, z) + yflfi. 1- 2)] + I[y’f(1=0= z) + yf(1.1—z)]
z 3:’*y’z’f({}, O, U) + x’y"z‘f(0,0, 1) + ;L"'-_yz'f(0,1,O) +
+.:r’yzf(0, l, 1) + my'z'f(1,0, O) + my’zf(1,0, 1) +
+Iyz'f(1,1,[)) + myzj'(1.1, 1).
Caicolando i valori dei discriminanti si ottiene:

f(1,0. 0) = 1 f(1,0,1) = 1 f(1. i, o) = 1 f(1,1, 1) = 1

e infine, sostituendo questi valori nelPespressione espansa, si ha:

y, z) : ry"z' + xyz’ + zcyfiz + zzryz + ;L"y'z


22 Algebra di Boole e di commutazione

2.4.3 Seconda forma canonica


In modo duale rispetto alla prima fonna canonica, è possibile applicare il teorema
di espansione, neila formulazione espressa dalfequazione (2.27), ottenendo:

.]c(1'1:172:---:37nv) : (f(oa"'aovo)+5E1+"'+xn—1+3371.)
"(faìw-‘:O:1)+xl"'+xn—1+141.)
-(f(0,-..,1,0)+x1+---+:c;,_1+:r:n) (2.29)

-(f(1,.--.1,1}+r’1Jrmirîìz-H-Iîs)
Questa espansione prende il
di seconda forma canonica e, come si nota,
nome
coinvolge aneorai discriminanti della funzione. Anaìogamente a quanto già fatto
per la prima forma canonica, è utile introdurre una nuova definizione.

Definizione 2.11 Siano (x1, 2:2, , 23,.) e B” variabili booleana.


. . . Un maxter-
IIIiDCdÌI1,CCQ,...,iUn è unasomma y; +y2+. +31”, incuiyz- : mi oppure . .

y1- = se; per ogni i 1, 2,


= ,n. In altre parole, un maxtennine è un termine
. . .

somma in cui compaiono i letterali corrispondenti a tutte le variabili della fun-


zione e tale per cui la fimzione booleana assume valore 0 in corrispondenza
alla configurazione delle variabili definita dai letrerali, III

Sulla base di questa definizione e notando che i termini somma associati a discri-
minanti con valore 1 possono essere senipìificati, si può irltrodurre 1a definizione
‘ di seconda forma canonica.

Definizione 2.12 Si definisce seconda forma canonica lo congiunzione di tutti i


maxrennini di una funzione. E!

Considerando ancora, a titolo di esempio, la funzione di tre variabili f (m, y, 2:) =


.1: + y’: se ne determini Pespressione in seconda forma canonica. Applicando

iterativamente il teorema di espansione di Shannon nella forma POS, si ottiene:

ffimhz) = (:v’+f(1ay=z))-(:B+f(Ù=y,z))
(25% Ky’ + f(1,1,z)) (‘y + f(1,Ù:z))D-

(a: + Ky’ + f(0=1,z))(y + f(0,0= 2m)


= (e + y’ + z’ + f(1,1,1))(;z:’+ y’ + z + f(1,1,0))
-(a:’+y+z’+f(1,0,1))(;z’+y+z+ f(1,0, 0))
-(:n+y'+z'+f(0,1,1))(ac+y'+z+ f(0,1,0))
-(x+y+z’+f(0,0,1))(:c+y+z+f(o,0,0))
2.5 Espressioni e proprietà dei‘! ‘algebra 23

I valori dei dìscrinunanti sono quelli determinati in precedenza e quindi,


sostituendolì nell’espressione appena ricavata, si ottiene:

f-(xîyfz)î(x-î-y-i-z)'(r+yl+z)'(x+yf+zl)
La dimostrazione che questa espressione è equivalente a quella in prima forma
canonica e che entrambe sono equivalenti alfespressione iniziale f (2,31, 2:) =
a? + gfz è iasciata al lettore.

2.5 Espressioni e proprietà delPalgebra


Un obiettivo importante per numerose applicazioni il cui modello si basa sull’al-
gebra booleana è, data una funzione booleana, identificare una buona espressione
per rappresentarla, tra le tante equivalenti. Questo presuppone una qualche de-
finizione di “buona” che consenta di confrontare due espressioni equivalenti e
selezioname una. In prima istanza si può considerare come indice di bontà il
numero di letterali presenti nelfespressione (Paragrafo 2.4). In seguito saranno
introdotte ulteriori cifre di merito e parametri per la valutazione della bontà di
una espressione. In questo contesto, quindi, ci si pone Fobiettivo di trovare un’e—

spressione, in forma somma di prodotti o prodotto di somme, equivalente a quella


di partenza e avente il minor numero possibile di letterali. A tale scopo si ricorre
alla applicazione degli assiomi e delle proprietà delfalgebra di Boole.
Per esempio, si semplifichi la funzione f (m, y, z) = 21/2 + asyz + azyz’ + Iylz’ +
zc’yz, espressa in prima forma canonica Per ottenere la soluzione e necessario
combinare gli elementi per poter applicare la proprietà distributiva.

zy’: + xyz + Iyz’ + xy"z" + 33'313 =

=(Ii/Z + 93312) + (Ital? + 1'995’) + (Il/Z + 51/2)


H09 + y’) + wzîy + y’) + yzlr + I’)
3:2+ 3:2’ + yz
H

m(z + z’) +yz


:z:+yz.
Da una prima anaìisi si può vedere come il risultato del primo passo non sia mi-
gliore (sempre riferendoci al numero di letterali presenti nell’espressione) dell’e-
spressione originale. In molti casi, tuttavia, un temporaneo aumento del numero
dei letterali apre la strada a successive semplificazioni. Si può quindi conclu-
dere che non è possibile valutare la bontà delrapplicazione di un assioma o di
una proprietà immediatamente ma è necessario attendere ulteriori sviluppi nella
24 Algebra di Boole e di" commutazione

manipolazione delfespressione. Naturalmente può anche capitare di applicare as-


siomi o proprietà che portano a un peggioramento complessivo dellespressione,
dovendo poi ritornare al punto di partenza. Urfaltra importante considerazione
è legata alla difficoltà di decidere quando interrompere il procedimento in quan-
to non esiste altra espressione equivalente migliore. Nell’esempio, Pespressione
a: + yz è stata identificata come il risultato finale. Non sempre è così facile capire

che Pespressione ottenuta è già caratterizzata dal numero minimo di letterali.


Queste difficoltà portano a utilizzare approcci diversi, oggetto del Capitolo 4,
per trovare la soluzione al problema. Prima però dì procedere è interessante
analizzare il legame tra algebra di commutazione e porte e reti logiche.

2.6 Porte logiche


Le porte logiche sono i componenti elettronici di base che operano su uno o più
segnali d’ ingresso e generano un solo segnale d’uscita. Queste entità fondamen-
tali sono la realizzazione fisica delle funzioni logiche elementari introdotte dal-
Falgebra (AND, OR, NOT). Sebbene la natura fisica (elettronica) del componente
richieda di operare su grandezze di tensione e corrente, nella progettazione digi-
tale si utilizza un semplice modello che opera sui valori logici 0 ed 1 e 1a cui
rappresentazione grafica è trattata nel prosieguo.

Approfondimento: Tecnologie di realizzazione delle porte logiche


Pur esulando dagli obiettivi del testo, è significativo osservare che il modello adot-
tato consente di astrarre dalla modalità di realizzazione delle porte logiche. Questa
coinvolge non solo la relazione tra i valori logici e le grandezze fisiche ma anche gli
aspetti tecnologici. In particolare, esistono alcune famiglie di porte logiche ognuna
delle quali ha vantaggi e svantaggi, capacità e limiti. Qui di seguito sono descritte
le principali famiglie logiche e le loro caratteristiche.
Diode Logic (DL). Queste porte logiche utilizzano diodi‘. Le porte logiche di que-
sta famiglia sono molto semplici e poco costose ma non possono essere combinate
le une alle altre indefinitamente; inoltre, questa famiglia non consente di realizza-
re la funzione NOT limitandone fortemente le possibilità di impiego. Utilizzando
una tensione di alimentazione di +5 V, si ha un 1 logico quando i valori di tensione
sono superiori a +35 V mentre i valori di tensione sotto +l.5 V sono interpretati
come 0. La fascia intermedia è una zona d ‘inceneua allînterno della quale non si
può interpretare il segnale fisico né come 0 né come 1.

‘il diodi sono componenti che hanno la proprietà di far fluire la corrente in una sola direzione consentendo,
così, di realizzare degli interruttori
2.6 Porte logiche 25

Resisrar-Transistor logia {RTL}. Le porte logiche di questa famiglia utilizzano dei


transistor-i per combinare più segnali di ingresso. Inoltre, i transitor amplificano e
invenono il risultato della combinazione dei segnali di ingresso. Questa famiglia di
porte logiche è semplice e poco costosa e consente di reaîizzare sia funzioni AND
e OR sia la funzione NUI‘. Gli svantaggi principali sono legati alfelevato consumo
di corrente e alla lentezza: queste caratteristiche ne limitano fortemente il campo
(Tapplicazione. Gli intervalli di tensione sono pari a quelli della famiglia DL.
Diode-Transistor Logic (DTL). In questa famiglia, i diodi realizzano le funzioni di
AND o di OR mentre i transistor amplificano il risultato rìgenerando il segnale di
ingresso: in questo modo, si riducono le limitazioni delle tecnologie DL e RTL.
Transistor-Transistor Logic (TTL). Questa famiglia e Fevoluzione della preceden-
te in cui tutti i diodi sono sostituiti da transistor multi-emettitore. Questa famiglia
divenne il riferimento standard per molti anni. Considerando una tensione di ali-
mentazione di +5 V, il valore i logico è associato a tensioni superiori a +2,5V
mentre lo 0 logico corrisponde a tensioni inferiori a +0,4V6.
Emitîer-Cottplea‘ Login (ECL). Questa famiglia di porte logiche è stata progetta-
ta per operare a velocità elevate con lo svantaggio, però, di elevati consumi di
corrente. Considerando una tensione di alimentazione di —5,6 V, il valore 1 logi-
co corrisponde a tensioni nell’intervallo da —0,95 V a —0,7 V mentre lo O logico
corrisponde a tensioni tra —l,9 V e -1.6 V.
Complemenrary MOS Login {CMOS}. In questa famiglia, le funzioni logi-
che sono ottenute combinando dei dispositivi denominati MOS (Metal-Oxìde-
Semiconductor) che hanno la caratteristica di ridurre drasticamente la potenza uti-
lizzata rispetto alle precedenti famiglie. Considerando una tensione di alimenta-
zione di +5 V, il valore 1 logico corrisponde a tensioni nelfintervallo da +3,7 V a
+5 V mentre lo 0 logico corrisponde a tensioni tra 0 V e +l,3 V.
Un’analisi comparativa dei livelli di tensione e dei valori logici che caratterizzano
le varie famiglie è presentata in Figura 2.6.

DL RTI. DTL TTL ECL CMOS


+5 V .

—2v—

Figura 2.6 Livelli di tensione e valori logici delle diverse famiglie

51 transistor sono componenti elettronici a tre morsetti (denominati base, emettitore e collettore) nei quali,
quando opportunamente alimentati attraverso resistenze, una piccola variazione di tensione tra base ed emettitore
produce una variazione di tensione più ampia tra emettitore e collettore.
éQuesti intervalli rappresentano le condizioni più restrittive. Considerazioni più di dettaglio dovrebbero trattare
diversamente Fingresso dall'uscita.
26 Algebra di Baole e dì commutazione

Porta NOT
La porta logica NOT, anche detta negatore, invertitore o inverter è Punica porta
che riceve un solo segnale in ingresso. Essa realizza Foperatore logico NOT,
producendo come segnale d’uscita y la negazione del segnale d’ingress0 m. La
funzione del negatore è descritta dalla tabella della verità di Figura 2.7(a) ed il
simbolo comunemente adottato è mostrato in Figura 2.7(b).
Alwlal
wo——zv—az

a:——>>—y
‘c’
D?

(b)

Figura 2.7 Porta NOT: tabella della verità e simbolo

Despressione logica che descrive la funzione è 1a seguente:

y = rr

Porta AND
La porta logica AND realizza Poperatore prodotto logico, mettendo sulfilscita
y il prodotto logico del valore dei segnali in ingresso 51:5. La funzione di questa
porta logica a due ingressi è descritta dalla tabella della verità di Figura 2.8(a) e
il simbolo comunemente adottato è mostrato in Figura 2.8(b).

Io
0
w:
0
E
0 Il
0 l 0 y
1 0 37°

1 1 l.
(a) (b)

Figura 2.8 Porta AND a due ingressi: tabella della verità e simbolo

L’ espressione logica derivante dalla tabella della Verità è la seguente:

E} = 301131

È possibile estendere il caso ad una porta a più ingressi: il segnale d’uscita y e il


prodotto logico degli n segnali dfingresso, 3:0, 11:1, ,x.n_1. . . .
2.6 Porte logiche 27

Porta OR

La porta logica OR realizza Poperatore somma logica, mettendo sull’uscita y la


somma logica del valore dei segnali in ingresso mi. La funzione di questa porta
logica a due ingressi è descritta dalla tabella della verità di Figura 2.9(a) ed il
simbolo comunemente adottato è mostrato in Figura 2.9(b).

i
D
IO I1
0 0 0 x1
0 1 1 y
1 0 1 ‘"0
1 1 1

(a) (b)
Figura 2.9 Porta OR a due ingressi: tabella della verità e simbolo

L'espressione logica derivante dalla tabella della verità è la seguente:

l y = In + I1

Il passaggio al caso di una porta a più ingressi è immediato: il segnale d’uscita y


è la somma logica degli n segnali (Fingresso, 113,551: ,In_..1. . . .

2.6.1 Operatori funzionalmente completi: NAND e NOR


Gli operatori NAND e NOR hanno la proprietà di essere funzionalmente com-
pleti, ossia e possibile realizzare una qualsiasi funzione logica utilizzando
esclusivamente porte NAN D o NOR, invece di dover utilizzare AN D, OR e NOT.

Porta NAND

La porta logica NAND mette sul segnale d’uscita il complemento del prodotto
logico dei segnali di ingresso, ossia effettua la negazione dell’uscita di una porta
AND. La tabella della verità che definisce la funzione della porta e il suo simbolo
sono mostrati rispettivamente in Figura 2. lO(a) e Figura 2.1003).
w—e—s1

l‘ 1'
i—n|—a®®o
»—-c:>»—o,_.

371
‘y
370

(a) (b)
Figura 2.10 Porta NAND a due ingressi: tabeila della verità e simbolo
28 Algebra di Baule e di commutazione

Porta NOR

In modo duale, la porta logica NOR mette sul segnale d’uscita il complemento
della somma logica dei segnali di ingresso, effettuando la negazione dellîiscita di
una porta OR. La tabella deìla verità che definisce la funzione della porta e il suo
simbolo per il caso a due ingressi sono mostrati rispettivamente in Figura 2.1 1(a)
e Figura 2.1 l(b). Ii simbolo esplicita la funzionalità della porta, “fondendo” la
porta OR ed il successivo NOT.

In 5171 i
0 0 1 m
0 1 o
1 0 0 I”
1 1 i
(al (b)

Figura 2.11 Porta NOR a due ingressi: tabella della verità e simbolo

Come detto, ognuna di queste due porte è in grado da sola di realizzare qualsiasi
funzionalità elementare equivalente alle porte N 0T, AND e OR. Sì consideri per
esempio la porta NOT e la porta NAND: si desidera realizzare la funzionalità dei
negatore utilizzando escìusivarnente porte NAND per ottenere y = 3:’. Per fare
ciò è sufficiente prendere una porta NANI) a due ingressi e utilizzare il segnale a:
per entrambi gli ingressi, come mostrato in Figura 2.12.

Figura 2.12 Porta NOT realizzata mediante una porta NAND

Questa soluzione e deducibile dalla proprietà delfidernpotenza, infatti:

(I I)’
- = (IY = H?’

2.6.2 Altre porte logiche


Le ultime due porte logiche elementari prese in considerazione sono la porta XOR
e la porta XNOR, corrispondenti agli operatori booleani XOR (OR esclusivo) e
XNOR (NOR esclusivo) e che realizzano rispettivamente le funzioni logiche di
disuguaglianza ed uguaglianza tra due valori.
2. 7 Circuiti logici 29

Porta XOR
La porta logica XOR (o OR eseiusivo) realizza 1a funzionalità logica di disugua-
glianza dei segnali di ingresso; Fuscita assume valore l se uno solo degli ingressi
(nel caso più semplice di una porta a due ingressi) ha valore l. Tabeìla della veriîà
e simbolo sono riportati rispettivamente in Figura 2.l3(a) e Figura 2.l3(b).

ma Il Z7.
0 0 o x1
0 1 1 y
1 0 1 m0

1 1 i
(8) (b)

Figura 2.13 Porta XOR a due ingressi: tabeila della verità e simbolo

Si noti che nel caso di una porta a più ingressi, la disuguaglianza dei segnali di
ingresso si trasforma in “dispariîàfi ossia, l’uscita deila porta XOR assume valore
1 se e solo se il numero di segnaii dîngnesso a valore 1 è dispari.

Porta XNOR
La porta logica XNOR (o NOR esclusivo) realizza una funzionalità negata rispet-
to a quella della porta XOR, mettendo in uscita l quando i segnali sugli ingressi
sono uguali (nel caso di una porta a due ingressi) oppure quando il numero di i e
pan’. (nei caso di una porta a più ingressi). La tabella della verità perla porta a due
ingnessi e il relativo siinboìo sono rnostnati in Figura 2.l4(a) e Figura 2.l4(b).

a:
0
Il
0
Z
1 mm
0 1 0 y
1 0 0 m“
1 1 L
(H) (b)

Figura 2.14 Porta XNOR a due ingressi: tabeìla della veiità e simbolo

2.7 Circuiti logici


È possibiie combinare un numero qualsivoglia di porte îogiche elementari, col-
legando ingressi e uscite, per realizzare funzioni più complesse rispetto a quelle
elementari realizzate dal singolo componente. In particoìare, a partire cla una
30 Algebra di Boole e di commutazione

espressione logica ricavata per esempio da una tabella della verità è possibile co—
struire il circuito logico che realizza tale funzione. Poiché le funzioni booleane
sono espresse in termini degli operatori logici di prodotto, somma e complemen-
to è immediato realizzare una funzione mediante una rete di porte logiche AND,
OR e NOT. Le prossime sezioni illustrano come sia possibile ricavare la rete 1o-
gica a partire da un’espressìor1e booieana, così come il procedimento inverso. Si
consideri a titolo d’ esempio la funzione booleana:

f=w+y’z
Le variabili della funzione, 3:, y e z sono gli ingressi della rete logica, la funzione
f è Puscita; i segnali dîngresso vengono “combinati” mediante le opportune
porte logiche per generare il segnale d’uscita. Nelfesempio il segnale a: viene
combinato mediante Foperatore somma logica (la cui funzionalità è realizzata
dalla porta logica OR) al risultato della combinazione del segnale y’ e z mediante
Poperatore di prodotto logico (porta logica AN D). Ii segnale y’ è il complemento
del segnale y, fiinzionalità realizzata dalla porta logica N OT. Se si procede dunque
dall’uscita verso gli ingressi, si avrà quindi una porta logica OR che prende in
ingresso il segnale a: e Puscita di una porta logica AND i cui ingressi sono i
segnali y’ e z. Il segnaîe y’ è Puscita di una porta logica NOT al cui ingresso c’è
ii segnale y. Il risultato è mostrato in Figura 2. I5.

x+y’z

Figura 2.15 Rete logica corrispondente alla funzione f = a: + 3/2

Procedendo secondo questo schema è possibile disegnate la rete logica corrispon-


dente a una espressione algebrica di complessità arbitraria. È di fondamentale
importanza osservare che mentre è naturale che una variabile sia distribuita in
ingresso a più operatori differenti (per esempio nelfespressione (a + b) (a + c’)
la variabile a e ingresso di due porte OR) non è possibile far “convogliare” due
o più variabili in unico punto senza Pintervento di un operatore logico. Questa
situazione è esemplificata dal circuito di Figura 2.16.
Il processo inverso rispetto a quanto appena visto consiste nel derivare 1’espres—
sione logica corrispondente a una data rete logica. In questo caso è necessario as-
sociare alle porte logiche i corrispondenti operatori logici, indicando come questi
combinano i segnali (le variabili) per ottenere la funzione dfixscita. Si consideri,
per esempio, la rete logica di Figura 2.17.
2. 7 Circuiti logici 31

I Z

\ 11011 BIDIDÒSSO

3J

Figura 2.16 Rete logica non ammissibiie

(ari-y) +10":

Figura 2.17 Rete logica e realtiva funzione algebrica

A partire dagli ingressi è possibile costruire Pespressione logica sostituendo a


ogni porta OR Poperatore di somma logica + (come per 1a porta in alto), a ogni
porta AND Poperatore logico e a ogni NOI‘ Poperazione di negazione ". Si
-

noti come, nel caso in esame, sia necessario introdurre le parentesi per indicare 1a
presenza di due porte OR distinte: una prima porta combina i segnali a: e y, quindi
il segnale risultante viene combinato mediante un’altra porta OR con Fuscita della
porta AND. La funzione risultante è quindi:

f = (a: + y) + tifz (2.30)

Omettendo le parentesi si ottiene la funzione:

f=x+y+t1fz (2.31)

equivaiente alla precedente, ma corrispondente a una rete logica differente, ripor-


tata in Figura 2.18. Per quanto siano tutte reti e funzioni equivalenti, infatti a
parità del valore dei segnali (Pingresso sia le reti di Figura 2.17 e Figura 2.18 sia
le funzioni (2.30) e (2.31) hanno 1o stesso comportamento, 1a rete di Figura 2.17
corrisponde solo alla funzione (2.30).

Ritardi
Caratteristica cornune a ogni porta logica è il ritardo tra Pistante in cui si appìi-
cano i segnali in ingresso e Pistante in cui il segnale di uscita si stabilizza a un
32 Algebra di Booie e di commutazione

Figura 2.18 Rete logica derivata dalla funzione logica f = 2: +y -|— w’z

valore costante. Questo ritardo è legato alla realtà fisica dei componenti che c0sti—
miscono le porte logiche (transistor). Per quanto concerne il modello solitamente
adottato, questo ritardo è ritenuto trascurabile e quindi, in prima approssimazione,
ogni variazione sui segnali d’ ingresso ha immediatamente effetto sull’uscita della
porta logica. Adottando una visione più accurata, sebbene ancora approssimati-
va, è possibile valutare il ritardo di una rete logica contando il numero di porte
logiche che sono presenti tra i segnali dîngresso e quello d’uscita. Più precisa-
mente, è necessario considerare il percorso più lungo tra ingressi e uscite, ovvero
il percorso che attraversa il maggior numero di porte logiche, trascurando i nega-
tori poiché possono essere accorpati alla porta precedente o successiva. Questo
percorso prende il nome di critica! path. Si consideri, per esempio, la rete logica
di Figura 2.19 in cui i percorsi più lunghi partono da 5c, y, w e z e portano a f.

litteilo l livello 2 livello 3

Figura 2.19 Identificazione dei livelli di una rete logica

Sì osservi che le funzioni espresse nelle forme canoniche corrispondono sempre


a reti logiche livelli e utilizzano porte logiche a n ingressi. In prima forma
a due
canonica, per esempio, il primo livello comprende le porte AND per il calcolo
degli implicanti e il secondo livello urfunica porta OR per la loro somma.
2. 7 Esercizi 33

Esercizi risolti
Esercizio 2.1 Sì dimostri la proprietà deìfelemento nullo (a + 1 r. l).
Soluzione.

a + 1 = (a + 1)1 eIe-me-nto ‘REÌLÉTO

= (a + l}(a + a’) wmptemerato


= a + a’ dist-r-ibutéwxa, elemento neutro, intemperanze:
= 1 co-mpîenzento

Esercizio 2.2 Sì dimostri la proprietà delPassorbimento (a + ab = a).


Soîuzione.
a + (ab) = a1 + (ab) dementi) neutro
= a.(1 + b) d-istr-ibutéva
= a1 elemenzto nullo
: a eIe-merato ne-utro

Esercizio 2.3 Si dimostri Tunicità delFelemento inverso (dato a, a’ è unico).


Soluzione. Si ipotìzzi, per assurdo, che ci siano due inversì (al e a2) di a. Ossia:

a+a1 = l. rI-a-1 = D. a+a2 = l_. flag = U

Ne consegue:

a2 = a; 1 elemcnaîo TLETL-TÎTO
a; (a. + al)
agu + agal dist-rib-utma
{La2 + alag comz-m-utatipa.
= O + Q1052 elevîraeuratoérrurjuflso
= (181 + (1162
= a1(a + a2) COTTI-‘Tnîiiîaîiîlri, distribuîit-‘a
= {L1 1

a1 elerîrlento ÉRÌJETSO

Ovvero: a1 = a2.
Esercizio 2.4 Sì dimostri 1a proprietà associativa.
Soiuzioire. Per prima cosa si dimostra che ((0. + b) + da = a:

((3 + b) + (2):; = a(a + b) + art COTFLTTàUÉGÎTÉDG, distribìrtiîtra


{m ab + ac
—|— distributiva.
a. + ab + a-c idempote-nza
H

a —|— or: asso-rbimenro


= a asso-rb-ime-nto
34 Algebra di Boole e di commutazione

0rasìdimostrache(a+b)+c=e+ (b+c):’
((a+b)+c)(a+(b+c)) =

= ((a+b)+c}o+((o+b)+c)(b+c) distributive}
= a+(((a-+5)+C)b+ ((a+bl+c)c) associativa, distributiva
=a+(b+((a+b)+c)c) dîm. precedente
=a+(b+c) commutattoa, assorbimento

Esercizio 2.5 Si dimostri i] seguente lemma: se ab 2 (J ea + b 1 allora b’ a.


= =

Soluzione. H primo passo consiste ne} dimostrare b’ = a+b’, avvalendosi della prima
ipotesi del lemma.

b’ = 0+1)’ elemento neutro


ab-l- b’ ipotesi i)
||

= a-‘rb’ consenso

Si procede in modo duale, utilizzando la seconda ipotesi e quanto appena dimostrato:

b!
1b’ elemento neutro
(a + b)b’ ipotesi
ab’ + bb’ distributiva
ab’ + 0 elemento mlllo
ab’ elemento neutro
a(a + b’) dimostrazione precedente
cm + ab’ distributivo
a. + ab’ idempotenza
= a 60718871530

Esercizio 2.6 Sì dimostri il teorema di De Morgan: (ab)’ = a’ + b’.


Soluzione. Si dimostrano dapprima le equivalenze ab+ (a’ +17’ ) = 1 e ob(a’+b’) = O.

ab+ (a’ + b’) ((05+ b’) + aJ((a-’ + b’) + b) commutatioo, distributiva.


(a + (a-’ + b’))((a’ + b’) + b) eommutatloa
((a + a’) + b')(u' + (b + b?) associativa, commutati-va
(1 + b’)(a’ + 1) elerraento inverso
11 elemento -nullo
Il

ab(a’ + b’) cubo.’ + abb’ distributivo


Il

boa’ + abb’ commutativo


Il

b(aa’) + a(bb’) associativa


ll

bU + a0 elemento l-TLTJBTSO
+U eleme-nto nul lo
Il

O
2.7 Esercizi 35

A questo punto possibile dimostrare il teorema dì De Morgan, utilizzando prima


è
il îemma delPEsercìzio 2.5 e poi Punicità delTelemento inverso. Infatti, se ab(a’ +
b’) = Ù e ab (a’ + b’)
—i— 1 allora ab = (a’ + b’)’ e, negando entrambi i membri
=

delfuguaglìanza si ottiene (ab)’ ((a’ + b’)’) a’ + b’


= =

Esercizio 2.7 Si dimostri 1a proprietà del consenso ab + a’e + be = ab + a’e.


Soluzione.

ab + a’c + bc : abl + a’e1 + lbe else-mento neutro


ab(e e’) + a’e(b + b’) + (a + a.’)be sisma-ato nullo
Il

—i—

abe + abc’ + a’be —'r a’b’e + abe + a’be distributiva


abc + abr: + abe’ + a’ be + a’ be + a’ b’ e eommatat-aÎ-va
r abc + abe’ + oîbe + a’b’c identpotenza
= ab(c + e’) a’e(b + b’)
—i— distributiva
= ab + a’e

Esercizio 2.8 Si sempìifichi Fespressìone ab + (ab)’ed’ con le proprietà delFaìgebra.


Soluzione.

ab + (ab)’cd’ abl + (ab)’0d’


ab(ed’ + (ed’)’) + (ab)’ed’
abca’ —|— ab(ed’)’ + (ab)’ed’
abed’ + abed’ + ab(ed’)’ + {ab)’cd’
abed’ + ab(r:d’)’ + abed’ + [ab)’ed’
= + (e(ì’)’) + (ab + (ab)’)cd’
abfieoî’
= ab[1) + (1)ed’
= ab + ed’

Alia stessa soluzione si può pervenire Iinominando se = ab e y = ed’. In tal caso


Tespressione di partenza è 13-5-23’ y. Perla proprietà delFassorbimento x-i-fy = a: +3)‘.
Sostituendo a: e y sì ottiene ab + ed’.
Esercizio 2.9 Si ricavi 1a prima forma canonica della funzione f(:1:, y, z) 2 art-y + y’z.
Soluzione. La funzione booieana è espressa nella forma somma di prodotti ed è co-
stituita da due impìieanti. Per ottenere 1a prima forma canonica e necessario “far
comparire” i letterali mancanti in ogni impiicante:

r?) + tfz 390%“+ z’) + 352i»? + m’)


m zyz + zyz’ + 32,32 + z’y’z
Esercizio 2.10 Si detenninì la prima fonna canonica della funzione:
ffa, y, z, w) z xyzw + ary’: + zytt: + yzar.
Soluzione.
aîyzu‘ + 333;’: + xyu: + yzw
= myzu} + xy’z('u: +
+ îlîyîiì(z + z’) + yztufir + 3:’)
113’)

r: îcyztt! + mgfzw + my’ zuv’ Iyzu: + xgjzfit.‘ + aîgjzîe + I’yz-U:


-E—

= aîyzu: + Iy’ZîI} + zyznr’ + aryzfii.‘ + mÎuzîtn


36 Algebra di Boole e di commutazione

Esercizio 2.11 Si semplifichi Fespressione (;r(y + z) + z’ y)’.


Soluzione.

(Ily + 2) + 53;)’ = (m? + yDTzr-‘yì’


(f + (y + z)’)(:c + y’)
(17' + y’z’)(r +31’)
xxx + xry/ + my/z: + yry/z/

I1
mlyl +yrg:

= MI’ + 3’)
Esercizio 2.12 Si riduca Fespressione (z; + y) (myY utilizzando le proprietà delFalgebra.
Soluzione.
(R? + 90h39)’ = (I + 9X3’ + i1’)
m’ + I-y’ + rfi/ + yy’
wy’ + afly

Esercizio 2.13 Si ricavi 1a seconda forma canonica equivalente all’espressione a- + Ho.


Soluzione.

a+b'c = (a.+b")(a+c)
= (a+b’ +cc’)(a+c+bb’}
= (a+b'+c)[a.+b'+c"}(r1-+C+b)(a+c+b')
= (a+b’+c)(a+b'+c’)(a+b+c)
Esercizio 2.14 Si realizzi la funzionalità di una porta logica NOT mediante porte NOR.
Soluzione. Dalla proprietà di idempotenza si ha se’ = (x + x)’ e quindi la rete:

m:
Esercizio 2.15 Sì realizzi 1a funzionalità di una porta logica OR mediante porte NAND.
Soluzione. All’espressi0ne a: + y si si applica dapprima la legge di involuzione otte-
nendo x —: y = ((3? + yY)’, quindi, applicando il teorema di De Morgan alla somma,
si ricava 2? + y = (z’y')'. Ricordando che x’ : (ma-Y si ottiene ((1:;r)’(yy)’}’, ovvero
una espressione costiiuita da sole porte NAND. La rete corrispondente è la seguente.

x+y

in“
2. 7 Esercizi 37

Esercizio 2.16 Si realizzi la funzionaiità di una porta iogica AN D mediante porte NOR.
Soluzione. in modo de] tutto analogo a quanto visto nelfesercizio precedente si ap-
plicano Tìnvoluzione, i1 teorema di De Morgan e Fidempotenza ottenedo: gay =

((zy)’)’ (a? + y’)


= ((13 + se)’ + (y + y)’). Quesîultîma espressione contiene
=

soiarnente operatori NOR e corrisponde alla rete seguente.

mi;

Esercizi proposti
Esercizio 2.1 Si dimostri che (z’y’c+wflzzbc-îrzfizbci-ifiabc) = ((:n+y) (wz-v+ (a..b)’ ))' c.
Esercizio 2.2 Si sempiifichi Pespressione cb’ + ccfib + cabd + end’.
Esercizio 2.3 Si semplifichi Fespressione (si: + y) ix’ + z).
Esercizio 2.4 Che clifierenza c’è tra una variabile, un letterale ed un tennjne‘?
Esercizio 2.5 Quante variabili, Ietterali e termini vi sono neiPespi-essione sifc + ciba‘?
Esercizio 2.6 Si riscrive ciascuna delle seguenti funzioni come somma di minterrninj:

(a) fir. y. E) = I's + ‘w + 2x

(b) Îiiîsyez) = Ùîiyiz +3)


Esercizio 2.7 Si riscriva ciascuna delle seguenti funzioni come prodotto di inaxtermìni:

(a) fflsyfl} = zryz+wy+w


(b) flflî. y. z) = (f + zltî; + Z301‘ + y + z’)
Esercizio 2.8 Si derivi la funzione booleana corrispondente alla rete logica seguente.

.DL
43%}
Esercizio 2.9 Si ricavi ia rete logica relativa alla funzione f (a), y, z) = (eùsi-y)’ + zfir)’ .

Esercizio 2.10 Si ricavi 1a rete logica della funzione ffx, y, tu) = ((xy)u-" —l- wy’)'.
33 Algebra di Boole e di commutazione

Esercizio 2.11 Si ricavi 1a rete logica della funzione f(2;, y, z) 2 z(x se y)’(93 + y’z).
Esercizio 2.12 Si ricavi una forma logica su due livelli e la relativa rete logica della
funzione dell’ Esercizio 2. 10.
Esercizio 2.13 Sì ricavi una forma logica su due livelli e la relativa rete logica della
funzione delFEsercizio 2.11.
Esercizio 2.14 Si costmisca una rete logica in grado di realizzare la funzione KNOR
utilizzando unicamente porte NAND.
Le soluzioni degli esercizi proposti sono disponibili nel booksite:
httpzifwwwepogeonìinecomllibri!88-503-2229-1lscheda.
62 La codfiìca del! ’inf0nnazi0ne

valore numerico 471g è rappresentato mediante il concatenamento delle codifiche


binarie delle cifre 410 = 01002 e 71g = 01112 cioè 01000111309.

3.6.2 Gray
I1 codice di Gray è costruito in modo tale parole adiacenti abbiano codifiche che
differiscono tra di loro per un unica cifra. Per esempio, su due bit le parole di
codice sono, nellbrdine, 00, 01, 11, 10. La costruzione delle parole del codice
di Gray segue un procedimento pratico che permette di generare le parole di un
codice a n, + 1 bit a partire da un codice a n bit: si scrivono le 2" parole del codice
a n. allineate verticalmente e le si ricopia in modo speculare al di sotto deifultima
parola, quindi si aggiunge uno 0 davanti alle prime 2” parole e un l davanti alle
restanti 2". La Figura 3.12 mostra il procedimento per n = 1 e n 2. =

n = 1 n = 2 n = 2 n = 3
0 00 00 000
1 01 01 001
l 11 11 011
0 10 10 O10
10 110
11 111
O1 101
00 100

Figura 3.12 Costruzione iterativa delle parole del codice di Gray

Mediante questo metodo è possibile costruire tutte le parole di un codice di lun-


ghezza arbitraria. È possibile determinare la codifica di Gray a partire da una
codifica binaria naturale nel seguente modo: sia X = [ma zn_1 2:0] una pa-
rola di codice binario naturale, la corrispondente codifica G [gn g“; go] = - - -

secondo il codice di Gray si ottiene dalie seguenti equazioni:

9n=In 9i=xi+1€917é Vi€1”‘1;Ù]


Per esempio, per X = [1 0 0 1] si ha:

g3=x3=1 g2=fl33@fi3g=1EBÙ=1
g1=IQÉBZ1=ÙQO=Ù QQZJIQQIQZOGÈIZI
da cui si ricava quindi G = [1 1 0 1]. Si noti che per la proprietà delFopcratore
XOR per cui (a. 6B b) 69 a (a E3 a) {B b = 0 6B b = b, lo stesso procedimento
=

permette di passare dalla parola del codice di Gray alla codifica binaria naturale,
questa volta combinando mediante XOR i bit della parola del codice di Gray.
3. 7 Aritmetica binaria 63

3.6.3 One-hot
Il codice one-hot prevede che ogni parola contenga uno e un solo bit con valore
i. È quindi chiaro che un codice su n. bit può rappresentare al più n informazioni
differenti. Non esiste una codifica standard, sebbene sia molto frequente l’uso di
associare valori progressivi alle parole di codice ordinate in base alla posizione
clell‘uno. Secondo questo schema, il valore numerico associato a una parola che
presenta un 1 in posizione i-esima contata a partire da 0 e dalla posizione più a de-
stra è appunto i. Per esempio, considerando un codice su 5 bit, alla parola 00001
(l’i e in posizione 0) corrisponde il valore numerico 0, alla parola 00010 il valore
1, aila parola 00100 il valore 2 e così via. Questo tipo di codice, benché richieda
molti più bit rispetto ai codici finora introdotti, ha una interessante proprietà che
dipende dal fatto che solo n delle 2"‘ possibili combinazioni di n. bit sono parole
di codice valide. Questa circostanza lo rende utile per la rilevazione di even-
tuali guasti o errori di trasmissione di informazione. Ogni volta, infatti, che un
risultato o una parola ricevuta attraverso un mezzo di trasmissione non presenta
esattamente un 1, si può affermare con certezza che si e verificato un errore. Un
codice di questo tipo rientra nelPampia classe dei codici a rilevamento di errore.
Per ulteriori approfondimenti si veda [Costello, 1983] e [McWilliams, 1977).

3.7 Aritmetica binaria


Ai fini di quanto segue è importante ricordare che tutti i codici presi in considera-
zione sono a lunghezza fissa e, ove non indicato esplicitamente, si sottintende che
le parole di codice hanno lunghezza n e pertanto tutte le operazioni aritmetiche
avvengono in modulo 2“.

Approfondimento: Operatore modulo

Un vaiore m modulo p è il resto della divisione intera -m/p e cioè m [moti p) =

m — p Lm/pj. Alternativamente, si dice che m [mori p) = q se esiste un valore


-

k E Z tale che m. k p + q e che 0 E q < p. Per esempio, si voglia calcolare 11


= -

(mod 4). Secondo la prima definizione si ha:

11 (mod-î) = 11—4- Lll/àlj =.l1—4- L2,75j =l1—4-2=3

La stessa operazione, svolta secondo la seconda definizione, fornisce la: = 2 e


q -—* 3 infatti risulta:
k—p+q=2—4+3=1l
e q soddisfa la disuguaglianza 0 S 3 < 4. La seconda definizione risulta parti-
coìarmente utile quando è necessario calcolare il modulo di valori negativi. Come
ulteriore esempio si consideri il calcolo di -11 (mod 4). In questo caso si ottiene
La codifica dellînfornwzione

k = —3e q 1 poichè —3-4+ 1


= —11 e q soddisfala condizione 0 5 1 < 4. Si
:

noti, inoltre, che [—11/4j = -3 e non -2 come si potrebbe erroneamente pensa-


re. Il valore -2 non è consistente infatti con 1a seconda definizione poichè darebbe
come risultato dei modulo q = —11 4 (-2) —l1 + 8 = —3, risultato che
— - =

viola la condizione per cui deve essere 0 S q < 4.

3.7.1 Somma e sottrazione in codifica binaria naturale


Doperazione di addizione tra numeri rappresentati in base 2 segue le regole di
base riassunte in Figura 3.13. Come si nota, la somma 1 + 1 produce un riporto
o, in inglese, carry.

0+
r—-©|—n

o—-»—-
0:
Il

0 1

Figura 3.13 Regole di addizone in base N

Si consideri ora 1a somma di due valori in codifica binara naturale su n bit X :

[x34 . .. i131 I0] e Y =[yn_1.. yl yg]. .

Cg C7 C5 C5 C4 C3 C2 C1 O

37 T6 I5 I4 433 «T2 131 I0 +


1/7 246 345 Z14 Z13 D2 yi '90 =

37 S6 85 34 S3 32 51 50

Figura 3.14 Schema di somma di numeri binari

Come si nota dalla Figura 3.14, per rappresentare correttamente il risultato sono
necessari n. + 1 bit. In generale si preferisce lavorare con parole tutte della stessa
lunghezza, si vuoìe cioè che iI risultato di una somma tra operandi a n bit sia
rappresentata su n bit e non su n + 1. Questa scelta tuttavia implica che non
tutte le operazioni producono un risultato corretto su n bit. Per verificare tale
condizione è necessario analizzare il bit di riporto più a sinistra (c3): se vale 0
allora ii risultato su n bit è corretto, mentre se vale 1 il risultato non è corretto e
si dice che si è verificata una condizione di traboccamento o oveifiow.
3. 7 Afimefica binaria 65

Per chiarire questo concetto si consideri il seguente esempio. Si voglia calcolare


la somma 8 —|— 11 lavorando con parole di 4 bit. L’ operazione di somma”:
1000
1000+
1011:
0011
produce iI risultato 00112 : 31g su 4 bit che è corretto se e solo se considerato in
modulo 24 z 16 infatti 8 + 11 (mori 16) z 19 (rnod 16) = 3. 1n questo caso
infatti i1 bit di riporto più a sinistra e 1, indicando un errore di overflow.
Si consideri ora Foperazione di sottrazione binaria. Le regole di base sono
riassunte in Figura 3.15.
C)

I-—-
i
C)

1-4-4

(D

1 =
||

il
D

t-—-t

1-4

1 O

Figura 3.15 Regole di sottrazione in base 2

Anche in questo caso Poperazione tra parole di n. bit segue lo schema di


Figura 3.14. Si consideri, per esempio, Poperazione 101g 3m ovvero: —
ÈF-JL-u

ÉEH

|-4|r-*|-'

0
E} _

1 î

0111
I1 risultato 01113 corretto su 4 bit poiché il bit di prestito più a sinistra e uno 0,
e
e infatti 01112 71g. Come ulteriore esempio si voglia calcolare 31g
= 510 cioè —

00112 — 01012; Foperazione svolta secondo le regoie viste è 1a seguente:

1100
0011—
01.01:
1110
Questo risultato è scorretto se interpretato su 4 bit (11102 14) poiché i1 prestito =

più a sinistra vale 1. In questo caso il problema sta nel fatto che la codifica
naturale non può rappresentare valori negativi. Si noti, per inciso, che lavorando
in modulo 16 i1 risultato 14 e corretto 3 5 (mod 16) : ——2 (mod 16) —14. =

Si osservi che quando i1 minuendo è maggiore del sottraendo non si verifica mai
il traboccarnento.

I‘ I valori riportati sulla prima riga indicano i riporti.


66 La Codifica cieli’. fiinfonnazione

3.7.2 Somma algebrica in codifica modulo e segno

La codifica in modulo e segno permette di rappresentare valori relativi e pertanto


è sufficiente analizzare Poperazione di somma poiché una sottrazione X Y —

può sempre essere interpretata come somma algebrica di X e —Y. La codifica in


modulo e segno distingue in modo netto la porzione di parola dedicata al segno da
quella dedicata al modulo, per questo motivo e necessario calcolare separatamente
il segno e il modulo del risultato. Ne risultano quattro possibili casi:

a X >0, Y>0.Inta1caso:

X2443 + KZEMS = lXl i“ IYÌ = ‘FUXÌ + lYUzMs


cioè il risultato ottenuto è corretto semplicemente sommando i moduli se-
condo lo schema visto perla rappresentazione binaria naturale e imponendo
al risultato il segno positivo.

o X> O, Y < D. In taì caso la somma algebrica può essere scritta come:

Xzsvrs + YzMS = X — IYI

Se risulta X 2 [Y| allora X |Y] 2 D, il segno del risultato è positivo


e Poperazione di sottrazione in codifica binaria naturale produce sempre


il risultato corretto (non si verifica mai overfiow). In caso contrario X —

r|Y| < U quindi si calcola |Y] X, che risulta necessariamente positivo, e


si impone al risultato il segno negativo.

o X < U, Y> U. Riconducibile al caso precedente scambiando X con Y.

o X < 0, Y< D. lntalcaso:

Xmrs + YZJLÌS = —[X| — IYI = —(|X| + |Y|)2,_u"vÎS

cioè il risultato ottenuto e corretto semplicemente sommando i valori as-


solari secondo lo schema visto per la rappresentazione binaria naturale e
imponendo al risultato il segno negativo.

Si noti che trattandosi di operazioni tra valori in codifica naturale è necessario


tenere in considerazione il problema delroverfiow. In particolare l'operazione
di sottrazione (richiesta quando i segni degli operandi sono discorcli) non produce
mai overfiow poiché si sottrae sempre dal valore maggiore quello minore. Quando
i segni sono concordi è possibile avere traboccamento.
Si considerino ora alcuni esempi. Si calcoli dapprima la somma 313 + 410 operan-
do in modulo e segno su parole di 4 bit. Entrambi gli operandi sono positivi e le
3.7 Aritmetica binaria 67

loro codifiche sono 31g = 00112__Mg e 410 = 01002’ 11,13. Si procede quindi ad una
somma in rappresentazione binaria naturale sui soli tre bit del valore assoluto:

wDb-‘o
0 0

O 1 +
1 0 =

1 1

Il modulo del risultato su tre bit 1112 710 è corretto poiché non si è verificato
=

un errore di overflow. imponendo il segno positivo si ottiene 1a codifica completa,


CÌOÈ 011127313 = +710.

Si consideri ora la somma algebrica 3m 410. La codifica degli operandi porta


alle due parole 313 00112,15 e —4m


= 11001515. Dato che 3 <
= 4] e | —

che gli operandi hanno segno discorcle, il segno del risultato sarà negativo e per il
modulo è necessario calcolare la differenza 4] 3 in codifica turale, cioè:
| — —

0 1 1

1 0 0 ——

0 1 1 =

0 0 1

Anche in questo caso risultato 001g è corretto. Per completare la codifica è ne-
cessario imporre il segno negativo al risultato, aggiungendo un I in posizione più
significativa, cioè 100129145 = —110. La verifica degli altri casi è lasciata al let-
tore. Questa analisi ha messo in luce due importanti circostanze: in primo luogo
è necessario svolgere due tipi differenti di operazioni in codifica binaria naturale
(somma e sottrazione) e, in secondo luogo, e necessario confrontare i valori asso-
Iuti degli operandi per poter determinare il segno del risultato. Per queste ragioni
la codifica in modulo e segno è utilizzata solo raramente per i numeri relativi.

3.7.3 Somma algebrica in complemento a1

Come nel caso precedente è sufficiente analizzare Poperazione di somma e, in


particolare, i quattro casi seguenti.

o X >0, Y>Ù.IntalcaSo:

X201 + 33,01 = X +Y = (X + Yìzci


cioè il risultato ottenuto è corretto.
68 La codifica delFinfonnazione

o X> Ù, Y< O. in tal caso è necessario esprimere Y secondo la definizione


di complemento a 1 e quindi eseguire la somma:

X2’C1+E,Cl == X+2n—1—]Y]=
= Qn-l-(IYL-X)
A questo punto se (|Yi X) 2 O cioè se |Y| 2 X i! risultato ottenuto è

la rappresentazione corretta della quantità positiva (|Y| X) ovvero della —

quantità negativa (X lYl). Se, d’altr0 canto, risulta (lYl X) < 0 cioè
— —

JYI < X allora (X jYj) 2 l] epertanto:


2"—1—(]Y{—X)=2”—1+(X—1Y|)
operando su "n, bit (cioè in modulo 2'”) Fultima espressione diviene:

(X - IYI) - 1

ed essendo per ipotesi Y < 0 si ha (X |Y[) 1 : X +Y 1, cioè il risul-


— — —

tato cercato a meno di una unità. In questo caso è necessario aggiungere I


al risultato ottenuto dali’ operazione di somma per avere il risultato corretto.
Si noti che se (X |Y\) 2 0 allora il termine 2” in 2"’ —1—(|Y]— X)

indica la presenza di un riporto in posizione più significativa.

X< D, Y > U. Riconducibile al caso precedente scambiando X con Y.

X< O, Y< 0. In questo caso sia X sia Y devono essere espressi secondo
la definizione di complemento a l. La somma risulta pertanto:

X2m+Yàci 2“‘—1—[X|+2"—1—[Y]=
= 2”+[2”—1—(]X]+]Y[]—1
Tenendo presente che le operazioni avvengono in modulo 2” si ottiene:

2"‘+[2”—1—(lX|+lYI]—1 = i2"‘—1—(IXl+lYl)l—1=
PUXÌ + lYDlaci - 1

Essendo necessariamente IX + [Y] 2


Fespressione ottenuta rappresenta
I O,

la codifica in complemento a 1 del valore [X] + |Y| 1 cioè il risultato —

atteso a meno di una unità: per ottenere il risultato corretto e necessario


aggiungere quindi 1.
3. 7 Aritmetica binaria 69

Riassumendo quanto emerso dalPanalisi appena svolta si può concludere che la


somma in complemento a 1 su n. bit si svolge secondo la seguente regola: si
calcola il risultato della somma su n bit e a questo si somma il riporto in posizione
più significativa. In complemento a 1 si può verificare traboccamento solo quando
gli operandi hanno lo stesso segno. In tal caso se il segno del risultato è discorde
rispetto a quello degli operandi si ha overflow.
Alcuni esempi chiariscono la teoria appena descritta. Per prima cosa si consideri
la sonnna 31g + 21g su 4 bit. Si ha 31g = 00112,31 e 21g = 00102,01 e quindi
Yoperazione di somma e la seguente:
h-‘CDCJH
o 0 o

0 1 1 +
0 1 [1 =

O 0 1

Dato che il riporto finale è 0, il risultato è 01012,31 + 00002,31 = 10012131 =


5 ed è corretto (primo caso). Corne secondo esempio si consideri Foperazione
61g — 31g cioè 61g + (—31g). Codificando gli operandi si ottiene 61g 01102131 =

e —31g = 11002,31. Con queste codifiche si procede alla somma:


tDh-JQH

1—*Zl—-4D

1 o
C333

1 +
Dm 1

In questo caso il riporto finale


è 1 quindi il risultato è 00102,31 + 00012131 =
00112131 : conferma il secondo caso.
3. Questo
Si consideri infine l'operazione —51g 41g. Codificando gli operandi si ottiene

—51g = 10102131 e —41g z 10112,31 e si procede quindi alla somma:


Gldln-lo

l-‘DDH

{Dl-‘l-‘D

0 +
1 2

In questo caso il riporto finale


quindi il risultato è 01012,31 + 00012,31
è 1 =

01102731 = 6. Come si nota, il risultato e scorretto infatti il segno degli operandi


è concorde e negativo mentre i1 segno del risultato e positivo. La verifica degli
altri casi e lasciata al lettore.
70 La codijìca dellînfonnazione

3.7.4 Somma algebrica in complemento a 2

Anche per il complemento a 2 si parla di somma algebrica e pertanto richiede


l’analisi dei quattro casi seguenti.

o X > 0, Y> 0. In questo caso 1a somma assume la forma:

X232 + 16,02 = X+Y = (X + Y)2,c2


cioè il risultato ottenuto è corretto.

o X > O: Y < In questo caso è necessario esprimere Y secondo la


O.

definizione di complemento a 2, cioè:

Xacz + 5.02 = X + 2” ’ ÌYÌ =

= X m
_ :

= (X ‘ iyihcz
in cui il secondo passaggio deriva dal fatto che si opera in modulo 2'”. Se
risulta X 2 |Y| allora X [Y] 2 O e la rappresentazione ottenuta è corretta.

In caso contrario X |Y| < O ma, dato che le operazioni sono svolte in

modulo 2", risulta X iYl = 2"


— (fYl X) con (|Y| X) 2 0 e
— — —

pertanto anche in questo caso il risultato è corretto. Si noti che, come per il
complemento a 1, anche in questo caso non può mai verificarsi un errore di
overflow.

o X< D, Y> O. Riconducibile al caso precedente scambiando X con Y.


o X < 0, Y < In questo caso è necessario esprimere X ed Y secondo la
U.

definizione di complemento a 2, cioè:

X2,C2+Y2,C2 "—" Én-IXH-Zn-IYI =

: 2"+ [2"— (|X|+ m) =

= i-(ÌXÌ + iYUÌ2,C2
in cui Pultimo passaggio deriva dallbperare in modulo 2" e dal fatto che
1251+ 1Y| 2 0.

Analizzando le operazioni svolte nei quattro casi, si può concludere che in com-
plemento a 2 può verificarsi un errore di traboccamento solo quando gli operandi
hanno lo stesso segno. In tal caso se il segno del risultato è discorde rispetto a
quello degli operandi si ha overflow.
3. 7 Aritmetica binaria 71

Si considerino i seguenti esempi. Si voglia dapprima calcolare la somma 31o +


410 utilizzando una rappresentazione in complemento a 2 su 4 bit. Le codifiche
corrispondenti agli operandi sono 31o = 0011232 e 41g : 0100252, per cui
Foperazione di somma risulta:

00

CQGO
0

011+
100:
111

che fornisce come risultato 0111232 cioè ìa codifica corretta in complemento a


2 del valore decimale 7. Si noti che essendo il segno del risultato concorde con
quello degli operandi non si è verificato overfiow.
Come secondo esempio si consideri la somma algebrica —31g 41g. Essendo en- —

trambi gli operandi negativi si ricorre ai metodi descritti per la codifica, ottenendo
—310 = 11012232 e 41g = 11002,02 e quindi Poperazione di somma è:

1 1 0 0

1 1 0 1 +
1 1 0 0 =

1 0 0 1

Il risultatoè 1001202 = —7, cioè il valore corretto atteso. Infine si voglia


calcolare la somma algebrica —31o 610. Le codifiche degli operandi sono

—310 1101232 e 610 = 10102,02 e quindi Foperazione di somma è:


=
l-‘l-‘ÎC
CJl-ll-‘O

]_ 0 n

1 1 +
0 o =

1 1

Il risultato è 01112,02 = Questo valore non è corretto poiché gli operandi


‘T.

sono concordi ma il risultato ha segno differente ad indicare che si è verificato un


errore di overflow. La verifica dei restanti casi è lasciata al lettore.

3.7.5 Moltiplicazione in codifica binaria naturale


La moltiplicazione di valori positivi in codifica binaria naturale segue le regole
note per la moltiplicazione decimale “in colonna” secondo cui si calcolano i pro-
dotti parziali tra le cifre del moltiplicando e quelle del moltiplicatore, si allineano
opportunamente tali prodotti parziali e infine si procede alla loro somma secondo
72 La codifica del! ‘informazione

0>< 0>< 1x lx
0- 1= O: 1:
0 0 0 1

Figura 3.16 Regole di moltiplicazione in base 2

la procedura vista. Le regole di base per 1a moltiplicazione di due bit sono molto
semplici e sono riassunte in Figura 3. l 6.
Si noti, per inciso, che i1 prodotto aritmetico coincide con il prodotto logico:
questa proprietà rende possibile realizzare il prodotto aritmetica mediante una
sola porta AND. La Figura 3.17 mostra 10 schema di moltiplicazione per le parole
di 4 bit X = [x3 3:2 x1 ma] ed Y [y3 y; yl yg].=

3:3 l'2 l‘ 1 2:3 ><

'93 D2 yi 1,10 =

L33310 E290 flîiyo 1303/0 (P0)


13391 323/1 E1291 217091 (P1)
1332/2 zr2y2 3313/2 130312 (P2)
«T3313 122113 Z193 130393 (P3)
a7 qs qs Q4 <13 qz q: qo (Q)

Figura 3.17 Schema di moltiplicazione binaria naturale

Si nota che i] risultato del prodotto di due parole di 4 bit richiede 8 bit. In generale
infatti, il valore massimo rappresentabile su n bit è 2'” 1 e risulta: —

(21: _ 1X21: _ l) : 229': _ 27: _2n+1> Zîn-l

cioè un valore rappresentabile appunto su 2m bit.


Si consideri come primo esempio il prodotto 1110 >< 51g. Gli operandi sono X :
111g = 10112 e Y 610 = 01102 ed il processo di moltiplicazione è il seguente:
=

1 0 1 1 x

U 1 1 =

U U U U (P0)
1 U 1 1 (P1)
1 0 1 1 (P2)
U U U U (P3)
U 1 U U U U 1 U
3. 7 Aritmetica binaria 73

II risultato, rappresentato su 8 bit, è 010000102 661g. Analizzando i prodot-


:

ti parziali P,- si nota che sono 0 identicamente nulli oppure coincidono con il
moltiplicando X. Più precisamente, P, X quando y,-
= 1 e P,- 0 altri-= =

menti. Questa semplice proprietà permette di realizzare architetture di calcolo


particolarmente efficienti e regolari (Paragrafo 5.5).

3.7.6 Moltiplicazione in codifica modulo e segno


Il calcolo del prodotto in modulo e segno può essere svolto moltiplicando i valori
assoluti e quindi calcolando il segno del risultato. Quando gli operandi sono
rappresentati su n. bit, i valori assoluti richiedono n 1 bit e il loro prodotto è

quindi esprimibile su 2(n. 1); aggiungendo il bit di segno al risultato si ottiene


una rappresentazione su 272 1 bit. —

Per il calcolo del valore assoluto del prodotto si ricorre allo schema di
moltiplicazione binaria naturale mentre per il segno valgono le seguenti regole:

Segno di X t Segno di Y I,,_1 y,,_1 Segno di Q qg,,_2


+ + 0 O + 0
+ —- O
1 _

l
— + l 0 _

l
l l -l- 0

L’ analisi della tabella mostra che qg.,,_g m,,_1 e y,,_1. Combinando il modulo
=

e il segno del prodotto così calcolati si ottiene la codifica corretta del rìsuitato.

3.7.7 Moltiplicazione in complemento a 2


Analizzando lo schema di moltiplicazione di Figura 3.17 si nota che dal, punto di
vista formale, i prodotti parziali sono tutti rappresentati su 271, 1 bit. Questo im-

plica Faggiunta di 0 impliciti alla destra e alla sinistra della parola esplicitamente
rappresentata. Lavorando in complemento a 2, Faggiunta degli 0 di riempimento
alla destra del prodotto parziale non pone alcun problema, mentre gli 0 aggiun-
ti alla sinistra introducono un cambiamento di segno ogniqualvolta il prodotto
parziale è negativo. Un valore negativo infatti presenta un 1 nella posizione più
significativa e pertanto i bit di riempimento alla sinistra devono essere posti a
1. Questo procedimento, noto come estensione del segno, impone come regola
generale che i bit aggiunti a sinistra debbano essere uguali al bit più significati-
vo. Rivedendo lo schema di moitiplicazione con queste variazioni si ottiene la
rappresentazione di Figura 3.18
Si noti che questo procedimento è corretto solo ed esclusivamente quando il mol-
tiplicatore Y è positivo. In caso contrario, infatti il prodotto parziale di X per ii
74 la codifica dell ’inf0rmazz'0ne

x3 x2 271 x0 X

113 '92 711 3/0 =

33390 353340 33340 56390 x290 53190 5130740 (P0)


x301 x301 xsyi 272241 5212/1 scoyi 0 (P1)
33112 33392 502312 31:92 30312 Ù Ù (P2)
2332/3 x293 x103 maya 0 U 0 (P3)
<17 qs <15 <14 qs qz Q1 qo (Q)

Figura 3.18 Schema di moltiplicazione binaria in complemento a 2

bit i-esimo di Y corrisponde, dal punto di Vista algebrico ad una moltiplicazione


per wl e a uno scorrimento di i posizioni a sinistra. Ne consegue che il prodotto
parziale Pi (-1) 2‘- -X ha il segno opposto al segno di X e pertanto il risultato
= -

della semplice moltiplicazione binaria namrale risulta scorretto. Riassumendo, si


possono presentare i seguenti casi:

o X > 0, Y > 0. Il risultato del prodotto è corretto.

o X< 0, Y> 0. Il risultato del prodotto è corretto.


o X > 0, Y < 0. Ènecessario scambiare Fordine degli operandi, calcolando
quindi Y X X. Il risultato così ottenuto è corretto.

u X < 0, Y < 0 È necessario calcolare il prodotto ]Y| x [X per ottenere il


|

Iisultato corretto.

Per esempio si consideri il prodotto —310 x 210 ovvero, delle parole di codice
—31[} = 11012,02 e —21g = 11102,02. La moltiplicazione svolta secondo lo
schema presentato è la seguente:

1 1 0 1 x
1 1 1 Ù =

0 0 U U 0 O O (P0)
1 1 1 1 Ù 1 (P1)
1 1 1 0 1 (P2)
1 1 Ù 1

0 1 0 1 0 1 1 O

Il risultato su 8 biî
01010110252 è 8610 ed è errato. Essendo infatti entram-
=

bi gli operandi negativi è necessario cambiame il segno prima di procedere alla


3. 7 Aritmetica binaria 75

moltiplicazione. Ciò dipende dal fatto che il moltiplicatore, essendo negativo, do-
vrebbe essere esteso su 2m bit, in modo da produrre 22a, prodotti parziali. Questa
soluzione, tuttavia è raramente utilizzata in quanto raddoppia il numero dei pro-
dotti parziali necessari e quindi complica le operazioni di somma richieste per il
calcolo del risultato finale.
Per ridurre il numero dei prodotti parziali in operazioni di moltiplicazione che
hanno operandi che appartengono ai numeri relativi, sono state proposte molte
strutture di calcolo che, oltre a ridurre il costo, organizzano la di somma dei pro-
dotti parziali in modo da aumentare le prestazioni [Wa1lace, 1964] [Dadda, 1965}.
Tra i vari approcci, uno degno di nota è la moltiplicazione mediante la codifica
di Booth [Booth, 1951}. Poiché la dimostrazione che riguarda il processo di co-
difica è poco immediato, si preferisce giustificare il risultato operando su di un
caso specifico. Si supponga di considerare un moltiplicatore su 5 bit espresso in
complemento a 2 e di aggiungere un bit a 0 in posizione —1, cioè a destra del
bit meno significativo. A partire dal bit in posizione —1, si costruiscano dei rag-
gruppamenti di 3 bit in modo che siano sovrapposti per un termine e completando
Fultimo gruppo estendendo il segno (Figura 3.19).

i114 94 3/3 342 1/1 9o Ùl


l u | l 1 |

[#4 3/4 3/3] [Z13 1/2 yil [ai yo 0]


Figura 3.19 Esempio di raggruppamento per la codifica Booth-Z

Se ad ogni singolo raggruppamento si associa un coefficiente calcolato come:

fcyn-lrlsyn: yTl-l) : —2 ' yn-l-l ‘l’ Z/n + yn-l


e si pesa tale coefficiente con 2'” si ottiene una paroìa di codice per Y nel codice
di Booth-Z”:
Yio = f(î94, Z14, 313)?‘ + N313: 312; yl)22 + f(y1,yo,0)2°
(3.22)
Y2,Booth2 = [N3143 901,93) 1711373121311) f(y17y010)i
Per dimostrare Tequivalenza tra la parola di codice di partenza (in comple-
mento a 2) e quella che appartiene al codice di Booth—2 riportata dalla espres-
sione (322), è necessario in primo luogo evidenziare che la parola di codi-
ce 3.6‘C2=[yn_l yn_2 yl yohcg può essere convertita in base 10 utiliz-

“Questo codice, nel quale simboli possono assumere valore sia positivo sia negativo, è parte della più ampia
famiglia dei codici signed-digit. [12 significa codifica di due bit per il fatto che di ogni tripletta i bit codificati
sono i due più significativi.
76 La codifica del! ’inf0nnazi0ne

zando anche la relazione Y1g=—yn_12““1 + 971-2?” + - - - + y121 + 3/02“ e,


successivamente, sviluppare tutti i prodotti e seplificare:

Yàsootha = 11194, 3/4, 93) f(y3=y2,y1) “y15901011


Yro = (-2314 + 744 + 93124 "1" P2143 + 112 + 111122

4-0-2311 + yo + O)20

— —y425 + y424 + 9324 - 11323 + 31222 + 3'122 r 11120 + 11020

= 314%?!’ + 24) + 3/394 - 23) + 211222 + 9192 — 2°) + 31020


= "e424 + 2/323 + 9222 + 9121 + 9'020

33,02 = [€14 3/3 D2 91 Ho]

Da queste espressioni si evince un significativo effetto del codice di Booth-Z:


nel caso in esame 1a moltiplicazione richiede di calcolare solo 3 prodotti parziali
contro i 5 richiesti dalla moltiplicazione in complemento a 2 e binaria naturale,
in generale i] numero dei prodotti parziali è dimezzato. Un’altra osservazione di
rilevo è che i1 coefficiente di equazione (3.21) può avere solo valori pari a O, i] e
i2 (Tabella 3.6) permettendo così la realizzazione dei prodotti parziali in modo
estremamente semplice”.

1411+} yn 3111-4 —2 ' ÎÌn-î-l + yn ‘1’ yne-l


0 O 0 Ù

O O 1 +l
0 1 0 +1
0 1 l +2
I O O -2
1 0 1 -l
1 1 O -1
l 1 1 0

Tabella 3.6 Coefficienti per la codifica Booîh-Z

Si consideri, per esempio, la moltiplicazione X >< Y dove X ha valore —41g =


11002,02 e Y valore —510 = 10112,02. Sulla base delle indicazioni fornite in
precedenza, il moltiplicatore è associato ai raggruppamenti [1 0 l] e [1 1 0]
che generano la parola di codice 16, Boom; = [——1 1]. Il prodotto X x Y, —

“La moltiplicazione per 2" in base 2 è pari ad uno spostamento verso sinistra; per esempio O01 12 moltiplicato
per 2 è 01 102
3.7 Aritmetica binaria 77

di conseguenza, è pari alla somma dei due prodotti parziali —410 X —1 - 22 +


—410 x -1 - 2D che, in base 2, equivale a scrivere:

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

I1 risultato è +2010 ed è quello atteso. Sempre per esempio, si consideri 1a molti-


plicazione X >< Y con X pari a 1810 = 010010232 e Y —1710 101111252. 11=

moltiplicatore generai raggruppamenti [1 0 1], [1 1 1] e [1 1 0] che producono


la parola di codice 1613001112 [—1 0
= 1]. Quindi, il prodotto X x Y è la

somma dei tre prodotti parziali 1810 >< -—1 24 + 1810 >< O 22 + 1810 x —1 2° o
- - -

Pequivalente rappresentazione in base 2:

11111101110
00000000
1101110
11011001110

Anche in questo caso il risultato è quello atteso cioè —30610.


Al metodo di codifica presentato se ne possono aggiungere altri che codifica-
no gruppi di bit di dimensione k; tra questi il più semplice è il Boothl (o
semplicemente Booth) che raggruppa 2 bit e ammette i coefficientì 0 e :1:1:

119111 Uri-l) : 3:11; '1' 971-1 (3-23)

Si consideri, per esempio, 1a moltiplicazione X x Y dove X ha valore 4110 =


1100232 e Y valore —510 = 1011102. In questo caso, il moltiplicatore è asso-
ciato ai raggruppamenti [1 0], [0 1], [1 1] e [1 0] che generano 1a parola di codice
17205190101= [—1 + 1 0 1] ed il prodotto X X Y è pari alla somma dei due

prodotti parziali —-41g X -1 23 + —410


- X 4-1-2? + —410 X 11-21 + W410 X —1 -20
che, in base 2, equivale a scrivere:

0000100
000000
11100
0100
0010100

Anche per quesfiuìtimo esempio, i1 risultato è quello atteso (+2010).


78 La codifica del! ‘informazione

Esercizi risolti
Esercizio 3.1 Dato N = 0110012223 rappresentato in base 2 notazione modulo e segno,
Io si codifichi in complemento a 1 sul numero minimo di bit.
Soluzione. 11 bit di segno di N e 0, quindi si tratta di un numero positivo, e la sua
codifica in complemento a I è pertanto identica.
Esercizio 3.2 Dato N = 1110012245 rappresentato in base 2 notazione modulo e segno,
lo si codifichi in complemento a 1 sul numero minimo di bit.
Soluzione. Il bit di segno di N e 1, quindi si tratta di un numero negativo. Si pren-
de pertanto il modulo 0110012 su 6 bit e se ne calcola il complemento a 1, cioè
1001102591. Questa è la codifica cercata.
Esercizio 3.3 Dato N = 100100122115 rappresentato in base 2 notazione modulo e
segno, 1o si codifichì in complemento a 2 sul numero minimo di bit.
Soluzione. 11 bit di segno di N è 1, quindi si tratta di un numero negativo. 11 suo
valore assoluto su 7 bit è 00010012 e il complemento a 2 risulta 11101112302. Volendo
ricorrere al numero Ininjmo di bit si ottiene 101112202 poiché i primi due bit a 1 sono
ridondanti.
Esercizio 3.4 Data la codifica binaria N = 1101011 se ne calcoii i1 valore in base i0,
ipotizzando che la codifica di partenza sia relativa a: (i) un numero in modulo e segno,
(ii) un numero in complemento a 1 e (iii) un numero in complemento a 2.
Soluzione. (i) Modulo e segno. Il primo bit è il bit di segno ed è pari a 1, quin-
di si tratta di un numero negativo. I1 modulo è 1010112 = 43m e pertanto risulta
1101011251115 ‘4313.
=

(ii) Complemento a 1. Il bit più significativo è l, caratteristico dei numeri negati"


vi. Si calcola quindi il complemento ottenendo, 00101002 = 20m e pertanto risulta

11010112352 = —2Ù10
(iii) Complemento a 2. Il bit più significativo è 1, caratteristico dei numeri negativi. Si
calcola quindi i1 complemento e si somma 1 ottenendo, 00101012 = 21m e pertanto
risulta 11010112732 = —21m
Esercizio 3.5 SÌ rappresentino A = +2710 e B = +3910 in complemento a 2 sul numero
minimo di bit necessari per entrambi. Effettuare quindi le operazioni A + B e A B, —

commentando il risultato.
Soluzione. Essendo A > 0 e B > 0 si procede direttamente con i1 metodo delle
divisioni ripetute, ottenendo A = 011011232 e B = 01001112292. I1 numero minimo
di bit necessario per rappresentare entrambi gli operandi è 7, quindi A deve essere
esteso in segno, ottenendo A = 00110112192. A questo punto si procede con le
operazioni aritmetiche.
Operazione A + B:

0 0 1 1 o 1 1 + A
10101010111191: B
1 0 0 0 0 1 0 A+B
3.7 Esercizi 79

ll risultato è A+ B 1000010202 indica un numero negativo ed è pertanto scorretto.


=

La ragione _è che il risultato della somma 27+ 39 66 è rappresentabile correttamente


=

su 8 bit ma non su 7.
Operazione A B: in questo caso si effettua Poperazione A + (—B), calcolando dap-

prima —B. Utilizzando uno dei procedimenti illustrati si ottiene —B = 1011001202


e quindi si procede con Poperazione.

o 0 1 1 0 1 1 + A
"1 1o 11 91 10 10 01 = —B
1 1 1 0 1 0 0 A+(——B)

I1 risultato è A + (—B) 1110100202. Si noti che essendo ì due operandi discordi


=

non si verificano errori e il risultato è pertanto corretto, infatti 11101 002132 = —121g.
Esercizio 3.6 Si rappresentino A 10011102245 e B
= —41 m in complemento a 2 sul =

numero minimo di bit necessari per entrambi. Effettuare quindi le operazioni A + B


e A B, commentando il risultato.

Soluzione. l] bit di segno di A è 1 quindi si tratta di un valore negativo, il cui mo-


dulo è 11102 rappresentato sul numero minimo di bit. Il passaggio alla notazione in
complemento a 2 si effettua aggiungendo uno 0 in posizione più significativa (01110),
cornplementando ogni bit (10001) e aggiungendo 1, ottenendo infine 100102532. Il
secondo operando è anch’esso negativo, per cui si calcola prima la codifica del suo
vaiore assoluto 1B E1010012, quindi si procede come appena visto per A ottenendo
=

1010111292. Il numero minimo di bit per rappresentare entrambi gli operandi è 7,


quindi è necessario effettuare l'estensione in segno di A, ottenendo così 1110010292.
A questo punto è possibile effettuare le operazioni aritmetiche.
OperazioneA+ B:

1 1 1 O 0 1 0 + A
11100110119101: B
1 0 0 1 0 0 1 A+B
Il risultato è A + B = 100 100121512. Si noti che poiché gli operandi sono concordi e
il risultato è con essi concorde, il risultato è corretto.
Operazione A B: in questo caso si effetua Foperazione A + ( —B); il vaiore —B si

ottine calcolando il complemento a 2 di B. cioè 0101001202. A questo punto si può


procedere alla somma.

1 1 1 o 0 1 0 + A
10 01 90 91 00 90 91 = —B
o 0 1 1 0 1 1 A+(—B)
I1 risultato è A B— = 00110112132 ed inoltre, essendo i due operandi discordi non si
può veirficare alcun errore.

Esercizio 3.7 Si esegua la moltiplicazione tra 10100001222 (—95m) e 01011110222


(9413) utilizzando la codifica Booth-Z e Booth-1.
80 La codifica del! ’inf0r7nazione

Soluzione. Si inizi considerando la codifica Booth-Z. Dopo aver aggiunto uno 0 alla
destra del bit meno significativo, si realizzino i raggruppamenti necessari alla codifica
a partire dal bit più a destra e condividendo un bit; in particolare, si ha [O 1 0] [(1 1 11
[1 1 1] [1 0 0] che, ricordando che Finterpretazione è —2 -y.n+1 + y”, + 3171-1, generano
1a parola di codice y21300312 = [+1 + 2 0 2]. Ricordando che ogni termine della

codifica è associato al peso 22"‘, che il prodotto è su 15 bit e che è necessario estendere
il segno dei prodotti parziale, si ottiene:
C

CC

C CC

CHC
—*C C

c:>>—-o C:

C C CCC

OCCCH

CC C

CC?‘
C
C

I
C
n-l

v-'

.—n
r-n

n-t

C)
i-

1-‘
011110
--
r-o

C)

n-n

C
r—-

I—‘

11 risultato è quello atteso (—89301g) ed è corretto: Pindicatore del segno è 1.


Nella codifica di B0oth—1, si procede nello stesso modo costruendo dei raggruppamen-
ti a 2 bit al posto di quelli a 3 (Finterpretazione è —y.n +y,,_1). In particoiare si hanno
i gruppi [O 1] [1 0] [0 1] [1 1] [1 1] [1 l] [1 0] [0 D] che producono la parola di codice
y23001552 = [+1 1 + 1 0 D 0
— 1 0] che, a sua volta, orgina la seguente matrice:

0 0 0 O 0 0 O 0 0 0 O 0 0 O O

0 0 0 0 0 0 0 1 0 1 1 I 1 1 —

0 0 0 0 O 0 0 0 0 O 0 0 0 — —

0 0 0 0 0 0 0 0 0 O 0 0 - — -

0 0 0 0 0 0 0 0 0 0 O — - — -

1 1 1 0 1 O 0 0 0 l - — - — -

O 0 1 0 1 1 1 I 1 - - — - — —

1 O 1 O O O 0 1 — - — - — — —

1 0 1 1 1 O i 0 0 0 l 1 l 1 0

Esercizio 3.8 Si esegua la moltiplicazione tra 0010101232 (2113) e 1110110102 (— 101g)


utilizzando 1a codifica Booth-Z e Booth-l.
Soluzione. Si inizi considerando la codifica Booth-Z. Dopo aver aggiunto uno 0 alla
destra del bit meno significativo, si hanno i raggruppamenti [1 1 1] [1 1 0] [0 1 l]
[1 0 0] (si osservi Paggiunta di un .1 in posizione più significativa per completate il
raggruppamento più a destra) che generano la parola di codice 13390552 = [O 1 + ——

2 2]. La matrice dei prodotti parziali è:


1 1 i 1 1 i 1 O 1 0 l 1 0
0 0 O 0 0 1 0 1 0 1 0 - —

l 1 1 1 0 1 0 l 1 — — - —

0 O 0 O 0 0 0 - - — — - —

1 1 I 1 1 0 0 1 0 i 1 l 0
3. 7 Esercizi 87

Il risultato è quello
atteso 921019} ed è corretto: 1’ indicatore del segno e 1.
Neîla codifica di Booth-l, si procede nello stesso modo costruendo dei raggruppa-
menti a 2 bit al posto di queìli a 3 (Fìnterpreîazione è —yn + 3151-1). In particolare si
hanno i gruppi [1 1] [1 1] [1 0] [0 1] [1 1] [1 0] [0 D] che producono la paroladi codice
13v Boothg = [0 0 1 + 1 0 1 0] che, a sua voîta, realizza la seguente manica:
— —
'-‘CDCD'-'CD|—*C>

I-dGOh-‘CCDI-‘CJ

h-QQW-‘CÉWC

I-‘CDCDI-‘CDI-‘Q

HDCJGCDCDI-‘Q

ÙGQW-"H-‘(DWG

OCDCDCDCJCDI-‘C

Cfibì-‘OOD

h-SGH-‘G

|'—‘3®®

D-‘O
0 0
1

Esercizio 3.9 Si converta il numero frazionario 1 1100,0112 in base 10.


Sclzqìone. Con riferimento alla relazione 3.7 ii valore espresso in base 10 è:

e01’): 1-24+1—23+1-22+1-2‘2+1-2-3 = 16+8+4+-+-


1

4
1

8
—-—
% : 28, 375

Esercizio 3.10 Sì converta il numero frazionarìo 143537419 in base 2 con la notazione


virgola fissa, utiìizzando 7 bit per 1a parte frazìonaria.
Soluzione. Si converte in primo luogo la parte intera, 143m in base 2, utilizzando il
metodo delle divisioni ripetute, come di seguito illustrato. I1 risultato a cui si perviene
è 143m = 100011112. Sì procede quindi con la conversione della parte frazionaria,
mediante rnoltipìicazioni ripetute.
a—1—1—*CI—IDC>-P

_2_ +- base <— base


Q”) —-> W 1 rr 13o
XED) _, 0,374 <— fio
Q“) —» 71 1 *— 131
Xtl) _, 0,748 ‘— .‘3—1

c212? —> 35 1 ‘- 132


Xi?) _, 1,496 *— 164
c213) ——> 17 1 ‘<- 133
X13} _, 0,992 (— I6_3
Qbl) ._, g 0 +- '34 X01) _, I ,9 84 {— 13_41

Q5) _, 4 0 +- 165 X(5) _, 1,9 68


Qfiî) ..., 2 0 -1— '85 Xm) —> i 336
Q1?) _. 1
1 1—- '67
Q8) _, 0

[1 valore che si ottiene e quindi 100D111L1110100g.


82 La codifica dellìnfomzazione

Esercizi proposti
Esercizio 3.1 Dato la i1 valore assoluto 165 10 si rappresenti in base 10, ipotizzando che
sia un numero rappresentato in (i) base 16, (ii) base 8 e (iii) base 2.
Esercizio 3.2 Dato la il valore assoluto 101001 10 si rappresenti in base 10, ipotizzando
che sia un numero rappresentato in (i) base 16, (ii) base 8 e (iii) base 2.
Esercizio 3.3 Si esegua la moltiplicazione tra 10101102562 e 10000002162 utilizzando la
codifica Booth-Z.
Esercizio 3.4 Si esegua la moltiplicazione tra 11100011222 e 10011101262 utilizzando
la codifica Booth-Z.
Esercizio 3.5 Dato il valore assoluto 1.4215 1o si rappresenti in base 8 e in base 2, senza
convertirlo in base 10.
Esercizio 3.6 Dato il valore assoluto 73703 lo si rappresenti in base 2, senza convertirlo
in base 10.
Esercizio 3.7 Si converta il numero frazionario 10101511012 in base 10.
Esercizio 3.8 Si eonverta il numero frazionario 745,166“; in base 2 con notazione virgola
fissa, utilizzando 9 bit per 1a parte intera e 7 per 1a parte frazionaria,
Esercizio 3.9 Si effettui 1a somma tra i due valori 1011011 e 01001100, utilizzando per
1

il risultato 8 bit, considerando gli operandi codificati: (i) in binario naturale, (ii) in
binario notazione modulo e segno, (iii) in binario notazione complemento a 1, e (iv)
in binario notazione complemento a 2. Si indichi quando si verifica overfiow.
Esercizio 3.10 Si effettui 1a somma tra i due vaiori 11011111 e 10101111, utilizzando
per il risultato 8 bit, considerando gli operandi codificati: (i) in binario naturale, (ii) in
binario notazione modulo e segno, (iii) in binario notazione complemento a 1, e (iv)
in binario notazione complemento a 2. Si indichi quando si verifica overflow.
Esercizio 3.11 Si esegua la moltiplicazione tra i due valori naturali 10100000 e
10100111.
Esercizio 3.12 Si esegua la moltiplicazione tra 1011252 e 1001232 utilizzando prima la
codifica Booth-î poi la codifica Booth- l.
Esercizio 3.13 Si esegua la moltiplicazione tra 101 101012192 e 11100010292 utilizzan-
do prirna 1a codifica Booth-Z poi la codifica Booth-l.
Le soluzioni degli esercizi proposti sono disponibili nel booksite:
httpd/www.apogeonline.com/Iibri/88-503-2229-1lscheda.
Reti combinatorie
Contenuto

4.1 Introduzione
4.2 Fomzalizzaziane della specifica
4.3 Sintesi
4.4 Minimizzazione esatta
4.5 Minimizzazione eurìsrica di reti a due livelli
4.6 Minimizzazione euristica di reti su più livelli
Esercizi

I1 Capitolo 2 ha illustrato il ruolo delfalgebra di commutazione nella realizzazio-


ne di reti logiche a partire dalla specifica di una determinata funzionalità. L’ope—
razione è sufficientemente immediata quando si tratta di trovare una funzione (tra
le infinite) che implementi il comportamento desiderato; il compito si fa più arduo
se ci si pone l'obiettivo non solo di realizzare le funzioni desiderate, ma anche di
farlo in modo efficiente —— in particolare minimizzando i costi della rete logica
risultante. Questo capitolo presenta due metodi per realizzare reti logiche effi-
cienti su due livelli, utilizzando sia un approccio esatto, sia un approccio euristico
adatto alla progettazione mediante opportuni strumenti software. Per completare
il discorso della sintesi di reti logiche combinatorie viene inoltre presentato un
metodo euristico per la realizzazione di reti su più livelli, il cui obiettivo è ridurre
ulteriormente il costo complessivo del circuito.

4.1 Introduzione
Progettare una rete combinatoria comporta una sequenza di passi successivi: ge-
neralmente si parte da una descrizione del problema fornita in linguaggio naturale
quale Pitaliano o 1’ inglese e si vuole arrivare a un circuito composto dagli elemen-
ti digitali di base, ovvero le porte logiche. Si è visto che esiste una corrispondenza
diretta tra la rappresentazione circuitale e la rappresentazione mediante una o più
espressioni booleane. Per questo si può quindi affermare che Fobiettivo della
84 Reti combinarorie

progettazione e quello di elaborare una specifica semi formale come quella in lin-
guaggio naturale fino a trasformarla in una descrizione formale costituita da una
o più espressioni booleano. Questo processo si articola in alcuni passi:

Comprensione ed analisi deiia specifica semiformale. Spesso la descrizione ini—


ziale di un problema non e completa ma richiede una parziale riscrittura
mirata ad eliminare ogni ambiguità. Casi tipici riguardano la scelta di una
particolare codifica per le informazioni che la rete deve elaborare, la deci-
sione di come gestire condizioni ìimjte o di errore, Fanalisi delfambiente
inlcni ìa rete è destinata ad operare, ecc. Tennìnata questa fase, si ottiene
ancora una specifica semi-formale ma, a questo punto, completa.

Formalizzazione della specifica. È un passaggio essenziale ed ha lo scopo di tra—


durre la specifica in un linguaggio più adatto alla successiva manipolazio-
ne. La fitnzionalità deìîa rete e già univocamente definita, quindi si tratta
semplicemente di cambiare formalismo. Nel caso delle reti combinatorie
si utilizzano le tabelle della verità: esse esprimono la reìazione che esi-
ste tra gli ingressi e le uscite deìla rete in esame. Dal punto di vista a1-
gebrico, una tabella della verità definisce completamente una funzione di
commutazione.

Sintesi". Consiste nel passare dalle tabelìe della verità ad una espressione algebri-
ca per la funzione che esse rappresentano. Come già detto, una funzione
può essere descritta da un numero infinito di espressioni, tutte equivaienti.
Tali espressioni, tuttavia, possono differire rispetto a uri dato criterio di va-
lutazione, quale, per esempio, il numero di letterali. La sintesi ha quindi il
solo scopo di arrivare ad una formulazione algebrica del problema iniziale,
trascurando qualsiasi considerazione reiativa alla qualità.

Ottimizzazione. Fissato un criterio di qualità, le tecniche di ottimizzazione hanno


Io scopo di manipolare Pespressione di partenza risultante dalla sintesi in
modo da ottenerne una che sia funzionalmente equivalente ma con caratte-
ristiche migliori. Alcuni metodi presentati in questo capitolo uniscono la
fase di sintesi e quella di ottimizzazione.

ll primo dei passi appena descritti è quello che richiede una maggiore attenzio-
ne e che permette al progettista di sfruttare appieno la propria esperienza al fi-
ne di produrre una buona specifica semi-formale. Il passaggio da taie specifica
ad un insieme di tabelle della verità è una operazione sempiice ma difficilmen-
te automatizzabiìe mediante strumenti software in quanto richiede la capacità di
comprendere ii linguaggio naturale. Le fasi di sintesi e di ottimizzazione, invece,
4.2 Fonnalizzazione della specifica 85

possono essere descritte completamente in forma algoritmica e pertanto possono


essere svolte grazie ad opportuni software.

4.2 Formalizzazione della specifica


Poiché si tratta di una attività prettamente umana, il processo di formalizzazione
di una specifica non è riconducibile ad un insieme 0 ad una sequenza di regole e
di elaborazioni univoca e ben determinata. E utile considerare un primo esempio:

Si realizzi una rete combinatoria in grado di discriminare inumeri pari dai


numeri dispari.

Una prima considerazione riguarda il termine numeri: dalia specifica si deduce


che la rete in questione tratta soltanto numeri interi, informazione presente nella
specifica in forma implicita e che deve pertanto essere esplicitata. Continuando
Fanalisi, emerge che nulla si può dire a proposito delfintervallo di variazione dei
numeri che la rete deve essere in grado di trattare: questo aspetto comporta una
scelta da parte del progettista. Spesso scelte di questo tipo sono guidate da con-
siderazioni relative alfarnbito applicativo o alla natura dellînformazione stessa.
Se i numeri in questione indicano Fanno di una data un intervallo ragionevole
potrebbe essere {l}; 210D] mentre se indicano i giorni della settimana Fintervallo
dovrebbe essere ]O; 6]. Per fissare le idee e per semplicità, si consideri il secondo
caso. Rimane a questo punto da decidere quale tipo di rappresentazione adottare
per i numeri. In questo tipo di scelta il progettista ha generalmente un maggiore
margine di libertà. Si supponga, a titolo di esempio, di adottare la codifica binaria
naturale. Dato che Fintervallo scelto copre 7 valori, sono necessari [logg 7] = 3
bit. A questo punto la specifica non presenta più alcuna indeterminazione per
quanto concerne gli ingressi. Una prima riformulazione è quindi la seguente:

Si realizzi una rete combinaroria. dorata di un ingresso a tre bit X =

{m0, 3:1, 2:2} che rappresenta un numero intero nell intervallo [Dg 6] in codi-
fica binaria naturale. La rete deve essere in grado di discriminare i numeri
pari dai numeri dispari.
In modo analogo si procede alla fonnalizzazione della parte di specifica che ri-
guarda le uscite. l] risultato che la rete deve produrre è binario (pari o dispari)
ed un bit è quindi sufficiente. Fissando arbitrariamente una codifica, per esem-
pio O=pari e l=dispari, si definisce completamente Fuscita. Rimangono a questo
punto da analizzare gli eventuali casi limite o le potenziali condizioni di errore.
Nella specifica in esame, considerando che gli ingressi rappresentano i giorni del-
la settimana, e fissando arbitrariamente che Fintervallo di variazione è [O; 6], gli
86 Reti combinatori}:

ingressi possono essere rappresentati su 3 bit: il valore 7, benché corretto secondo


la codifica scelta, non è valido. Per trattare questo caso particolare il progettista
può seguire diverse strade. Una possibilità è quella di introdurre una nuova usci-
ta destinata a segnalare una condizione di errore e scegliere una codifica anche
per questo nuovo segnale, per esempio 0=co1retto lzeirore. La nuova specifica
completa è quindi la seguente:

Realizzare una rete combinatoria dotata di un ingresso a tre bit X =

{xm 21:1, x2} che rappresenta un numero intero nel! ‘intervallo [Dg 6] in c0-
difica binaria naturale. La rete è dorata di due uscite 2: ed e di 1m bit.
Euscita z indica se il valore in ingresso è pari ( z O) 0 dispari (z
= 1), =

mentre lîtscira e indica un errore (e =1) oppure iifiznzionamento corretto


(e = O).

I1 passo successivo consiste nella definizione della specifica formale mediante


tabelle della verità. La specifica indica che z = l quando X vale 000, 010, 100
oppure 110, mentre z = O negli altri casi e che e = 1 quando X = 111 mentre
e = 0 in tutti gli altri casi. Si possono dunque scrivere le tabelle della verità:

I0 i171 I2 i 11:0 I] 932 i


0 0 0 l 0 U 0 O
O 0 1 0 0 0 1 0
0 l D 1 0 l 0 0
O I 1 0 O l 1 0
1 O 0 l l O O O
1 O 1 0 1 0 1 0
1 1 O 1 1 1 O D
1 1 1 i 1 1 1 1

Questo conclude il processo di formalizzazione della specifica. Le tabella della


verità infatti definiscono in modo univoco le due funzioni z = zfico, m1, 9:2) ed
e = €(I0, 331, E2).
Si noti, come considerazione conclusiva, che il valore della funzione z in corri-
spondenza dell’ingress0 lll è in realtà una condizione di indifferenza in quanto
non corrisponde ad ingressi validi.

4.3 Sintesi
Il processo di sintesi,come accennato in precedenza, è il passaggio da una de-
scrizione di una funzione ad una sua rappresentazione in forma algebrica. Come
noto, una stessa funzione è descritta da un numero infinito di espressioni equi-
4.3 Sintesi 87

valenti ma potenzialmente differenti rispetto ad una data metrica. Nel seguito si


discuterà di come ottenere Fespressìone di una funzione in una delle due forme
standard note iispettivamente come prima e seconda forma canonica.

4.3.1 Prima forma canonica


Si consideri una semplice funzione descritta dalla seguente tabella della verità:

22: y _f_
O O 1

0 1 O
l O 1

1 1 _9_

Il procedimento per arrivare alfespressione di una funzione in prima forma cano-


nica (Paragrafo 2.4.2) passa attraverso il teorema di Shannon (Paragrafo 2.4.1).
Per la funzione di due variabili f (x, y), Pespansione assume la forma:
flag) = f(0...0) -x’y’ + f(D:1)—x’y+ f(1=U) ma’ + f(1,1) '561; (4-1)

Dalla tabella della verità si deducono le seguenti u guaglianze:

che costituiscono i discriminanti di f (x, Sostituendo tali valori nelfespressio-


ne (4.1), si ottiene:

fùrsy)=1-I'y’+0-I'y+1-:cy’+0-xy (4-3)

e cioè, semplificando:
f(9:= y) = sdy’ + ary’. (4.4)
Un approccio differente consiste nel vedere la tabella della veiità in esame come
somma logica di due funzioni fittizie fa ed f; cioè:

scafo myfa sryf


001 000 001
010+010:010
100 101 101
110 110 iii
Da questa visione si deduce che flz, y) = fg(x, y) —l- f1(:e:, y). A questo punto fa
e f; sono funzioni semplici (presentano un solo 1) ed è pertanto possibile ricavare
la loro espressione algebrica in modo diretto, senza ricorrere esplicitamente al
88 Reni combinatorie

teorema di espansione. Per esempio, considerando la funzione fa (m, y), si nota


che essa vale 1 solo quando a? = 0 ed y = O ovvero quando x’ = 1 e y’ = 1 cioè
quando n'y’ = 1. Dato che zJy’ vale 0 in tutti gli altri casi, si può scrivere:

b@4Ù=x@’
Procedendo in modo analogo per f1(x,y) si ottiene:

.fi(x,y)==xy’
e conseguentemente:

naw=amm+nmw=ar+a*
Dal punto di vista operativo, quindi, si può esprimere una funzione come somma
dei mintennìni per cui essa assume valore l.

4.3.2 Seconda forma canonica


ll metodo appena descritto per la sintesi delle funzioni in prima forma canonica
ammette, corne ogni enunciato delfalgebra di commutazione, uno schema duale.
Per descrivere il nuovo procedimento si consideri la funzione seguente:

xy f
00"Î
01 0
101
11J_
Si nota che la ffis‘, assume valore zero solo quando a; : O e y = 1 ovvero
quando z : O e y’ : Ù cioè quando a: + y’ : Ù. Dato che z + y’ vale l in tutti gli
altri casi, si conclude che:

f=fl&w=x+J
La funzione è quindi espressa come somma di tutte le variabili di ingresso cor-
rispondenti alle combinazioni per cui la funzione vale 0: si tratta perciò di un
maxterrnine. In particolare, il rnaxterrnine è composto dalle variabili che assumo-
no valore 0 prese in forma naturale e da quelie che assumono valore 1 prese in
forma complernentata. '

Anche Secondo questo approccio è possibile vedere una funzione generica come
combinazione di funzioni più semplici. Si consideri ancora 1a funzione f(:z, y) :
33g] + xy’ e si scornponga la corrispondente tabella della verità come segue:
4.3 Sintesi 89

zvyfo zvyfi xyi


001 001 001
010 011=010
101 101 101
111 110 110

La funzione f (xc, y) è espressa, in questo caso, come prodotto delle due funzioni
fatta y) = I + y’ e f1(x.y) = f’ + y’ Cioèr
f(:r. y) = fofir, y) mm. y)- = (xv + y')(m' + y’)

Ii risuitato ottenuto è una espressione in seconda forma canonica {Paragrafo 2.4.3)


cui si può pervenire, anche in questo caso, ricorrendo a1 teorema di Shannon.

4.3.3 Funzioni non completamente specificate


Come già anticipato nel Paragrafo 2.3.4, in molte situazioni reali accade che
una funzione logica f(:1:0, ,:cn_1) non sia definita per tutte le 2” possibili
. . .

configurazioni degli ingressi. Ciò può dipendere da due differenti ragioni:

o Non tutte le 2'" configurazioni di ingresso sono ammesse. Nella codifica


BCD (Paragrafo 3.6.1), per esempio, si utilizzano 4 bit per rappresentare
le cifre da 0 (0000) a 9 (1001). Le combinazioni di ingresso 1010, 1011,
1100, 1101, 1110 e 1111 non sono pertanto ammesse.

o Il valore della funzione può ignorato in quanto non porta alcuna


essere
informazione oppure non influenza il comportamento delle reti a valle.

Quando il valore deìla funzione non è specificato si dice che la funzione presenta
una condizione di indifierenza o don ’t care e si indica con il simbolo x o —. È im-
portante notare che tali simboli non sono nuovi elementi della base B dell’algebra
di commutazione. Si consideri a tale proposito la funzione non completamente
specificata descritta dalla seguente tabella della verità:

xyT
00T
010
10-
11_0_
Il simboio di indifferenza —indica che quando a: 2 1 e y = {J la funzione f
è libera di assumere un valore qualsiasi. Di fatto, quindi, la tabella della verità
90 Reti conzbinetorie

appena vista corrisponde a non una ma due funzioni: una in cui f(1, 0) = O ed
una in cui f (1, D) = 1 ovvero alle due tabelle:

ryn yyf_1
001 O01
010 O10
100 101
11_0__ îìl
Procedendo alla sintesi in prima forma canonica si ottengono le due funzioni:

fotti‘: y) = fy’ (4.5)


fl (m: y) = aîy’ + yy’ (4-6)

Si pone ora ii problema di come rappresentare algebricamente le condizioni di in-


differenza e in particolare come descrivere le funzioni non completamente speci-
ficate in prima o in seconda forma canonica. Per fissare le idee, si faccia dapprima
riferimento alla prima forma canonica. Una condizione di indifferenza, proprio
in quanto può assumere un valore qualsiasi, può essere vista come un parametro
della funzione. Indicando con p tale parametro si ha:

si può esprimere 1a funzione in esame sostituendo il valore dei discriminanti


f(1,1) = 0, f([),1) = Ù, f(0,0) = 1 e f(1,Ù) z p, ottenendo:

f(y;y)=1-ar’y'+p-yy’= i520’ +yyy’


Si verifica facilmente che questa espressione è equivalente alle due funzioni (4.5)
e (4.6) che infatti possono essere ottenute sostituendo a p i valori 1 e 0:

y = 0 —> f(y,y) = I'y’ foùny)


=

y = 1 -> f(x.y) = I’y’ +=ry’ f1(x,y)


=

Per completezza è bene riportare anche il procedimento per la sintesi in secon-


da forma canonica. Dal teorema di Shannon in seconda forma canonica e dai
discriminanti f(0,[}) : 1, f(D, 1) = D, f(1,0) = p e f(1, l) z O si ottiene:

ffirgy) = (I +y')(y+y’ + y)(y’ + y’)


In generale una funzione non completamente specificata può presentare k 2 1
condizioni di indifferenza: in questo caso i metodi visti continuano a valere ma
e necessario introdurre un numero k di parametri p0, , pk_1. Ad ogni condi» . . .

zione di indifferenza corrisponde dunque un parametro aggiuntivo. Il numero di


4.4 Minimizzazione esatta 9]

funzioni descritte da una specifica contenente k condizioni di indifferenza è 2"


poichè tanti sono i possibili assegnamenti di «[0, l} a k paramani. Si noti che co-
me caso particoiare una funzione priva di condizioni di indifferenza non richiede
parameni quindi k = O e 2*‘ l: questo significa appunto chela funzione è unica
=

o conzpleramente specificata.

4.4 Minimizzazione esatta


I metodi di sintesi appena presentati permettono di ottenere in maniera sistematica
espressioni strutturate secondo due forme ben precise, risolvendo così il proble-
ma del passaggio dalla specifica di una funzione ad una sua espressione. Que-
sta sezione affronta il problema della ottimizzazione delle funzioni, ovvero della
loro trasformazione, attraverso passi successivi, con lo scopo di ottenere nuove
espressioni equivalenti ma migliori rispetto ad un dato criterio di valutazione.
Questo aspetto può essere precisato ulteriormente e formalizzato mediante il con-
cetto di metrica. Una metrica è una grandezza che esprime in modo indiretto una
caratteristica di un dato sistema. Nel caso in esame, il sistema è una rete com-
binatoria digitaie costruita utilizzando pochi elementi di base: le porre logiche
(Paragrafo 2.6). Le caratteristiche che si desidera valutare per stabilire la qualità
di una tale rete sono generalmente l’area della realizzazione fisica della rete, il
tempo necessario a produrre un dato risultato, la potenza o Fenergia assorbita,
ecc. Si parla pertanto di metriche dîrzrea, metriche di tempo e così via.
Questa sezione presenta le tecniche di ottimizzazione dell’area di una rete e si
farà pertanto riferimento ad alcune metriche d'area per valutare la qualità delle
diverse soluzioni. Alcune metriche d’area comunemente utilizzate sono:

o numero di porte logiche generiche;

o numero di porte logiche a due ingressi;

o numero di implicanti o di implicati;

o numero di letterali.

I paragrafi seguenti presentano alcuni metodi, esatti ed euristici per la minimiz-


zazione dellc funzioni combinatorie. I metodi esatti considerati sono quello delle
mappe di Karnaugh e quello di Quine-MCCÎLISÌCE)’, mentre tra i vari metodi euristi-
ci esistenti si farà riferimento alle a uno strumento automatico di minimizzazione
molto conosciuto: MIS/SIS [MIS, 1987] [SIS, 1992].
92 Reti combinatorie

4.4.1 Metodo delle mappe di Karnaugh


Il metodo delle mappe di Karnaugh permette di trasformare il problema della
minimizzazione di una espressione dal piano algebrico al piano geometrico e to-
pologico, Questa sezione introduce i concetti che stanno alla base di tale metodo
e descrive operativamente la procedura da adottare per la soluzione di probiemi di
minimizzazione. Il metodo delle mappe consiste di due fasi ben distinte, indicate
generalmente come espansione e copertura.

Espansione

La fase di espansione ha lo scopo di trasformare una espressione algebrica in mo-


do da costruire termini prodotto costituiti dal minor numero possibile di letterali.
Ciò può essere fatto mediante diverse leggi dell’ algebra, applicate secondo oppor-
tune sequenze, sfortunatamente dipendenti dalla forma delfespressione stessa.
Non potendo ricorrere a regole fisse per 1’uso ottimale delle regole deIPalgebra,
si limita Pattenzione alla seguente proprietà:

xP+.1-:’P=(:r+z’)P=1-P=P
in cui P indica un termine prodotto, costituito da k letterali- È semplice constata-
re che Pespressione iniziale è costituita da 2G: + 1) letterali mentre Pespressione
finale solo da k letterali. Si nota inoltre che tale legge è applicabile ogni qual
volta si hanno due termini prodotto costituiti dalle stesse variabili e tali per cui
una ed una soia variabile appare in un prodotto in forma naturale e nelfaìtro in
forma negata (I, nell’esempio). Questa regola può chiaramente essere applicata
ripetutamente. Si consideri un primo esempio:

flx, y, z, : azyzîi?” + Iylzuî’ —}— zgftzn: + zyzîn

= IzwTy + s’) + ìîzwfiu + y’)


, (4.7)
= xzw + xzw

: mafie! + z ssz

Si dice che dapprima si è effettuata una espansione rispetto alia variabile y e


poi una espansione rispetto alla variabile z e si può esprimere Pentità della sem-
plificazione dicendo che sì è passati da I6 letterali nelfespressione iniziale a 2
letterali in quella finale. Dai punto di vista formale, il risultato di questo tipo di
semplificazione prende il nome di impiicante.
Definizione 4.1 Sia f(a:n_1, In_2, ,39) anafunziarie di n variabili booleana
. . .

Un implicante per f è uri temine prodotta yk_1yk_2 mp0, in cui yî I5;


- :

oppure -y,- = m}, e per cui risulta f(y;,._1---yg) -—- 1. Quando k n raie =

prodotto coinvolge tutte le variabili ea‘ è pertanto anche un minrermiae. I3


4.4 Minimizzflzione esatta 93

Un implicante di una funzione è quindi un termine prodotto che coinvolge solo


alcune variabili di f e taie per cui la funzione vaie 1. In modo duale si introduce
la definizione di implicato.

Definizione 4.2 Sia f(a:,,_1,:1:,,_2, , 1:0) una funzione di n variabili booleana.


. . .

Un irnpîicato per f è un tennine Somma yk_1 + gin; +- ‘+310, in cui ‘y, - = 1173.-

oppure y; I ai}, eper cui risulta f(yk_1 + + ya) = O. Quando k: = n tale


- - -

prodotto coinvolge rune ie variabili ed è pertanto anche un maxtennine. E]

NelFesempio di espansione deIPequazione (45?) non vi sono stati problemi e in


particolare la scelta defl’ ordine delle variabili rispetto cui espandere non avrebbe
comportato alcuna differenza. Ma non e sempre così. Per chiarire questo aspetto,
si consideri un nuovo esempio, descritto dalFespressione seguente:

ffir, y, z) = zyz + 11,33;: —|— 333,52 (4.8)

Applicando la proprietà in esame ai primi due termini si ottiene:

ÎÎλ 3;‘: Z) = (37 "F îliîl-î’ + 33753 = 312' "F 31953

mentre appiicandola al primo e al terzo si otterrebbe:

fba z) = wîtxz + (y + yÙrz = xîyz + raz

Per prima cosa si nota che le espressioni, ovviamente equivalenti, sono diverse
nella forma; in secondo luogo si può constatare che a nessuna delle due espres-
sioni ottenute e possibiie applicare ulteriormente la stessa proprietà. ln entrambi i
casi si è passati da 9 a 5 letterali. Per migliorare ulteriormente la semplificazione
si può fare ricorso ad una proprietà aggiuntiva: Fidempotenza (Paragrafo 2.1.1),
utilizzata nella forma seguente:

P=P+P
in cui, ancora, P indica un generico termine prodotto. Si consideri nuovamente
Fespressione (4.8) e si duplichi il primo termine per la proprietà d’ idempotenza:

f(a‘, y, z) = xyz + azryz + myrz + aryz

Procedendo ora alfespansione secondo Io schema già visto si ottiene:

f(a:, y, z) = scyz + sz-“yz + wy’z + zyz


= (x +a:')yz + (y! + y)zz : yz-l- zrz

La nuova espressione ha solo 4 letterali, rispetto ai S delle due espressioni ottenute


senza Papplicazione delfidempotenza.
94 Reti combinaioirie

Dagli esempi riportati emerge implicitamente che Pespansione deve essere ripe-
tuta fino a che è possibile. In termini più precisi e formali si dice che lo scopo
deìfespansione è quello di individuare tutti e soîi gli implicanti primi, cioè gli
impiicanti con il numero di letterali minore possibile.

Definizione 4.3 Si dice prima un implicante 0 un implicato quando non è più


suscettibile di espansione. C!

Distanza di Hamming

Le considerazioni di carattere algebrico svolte fino a questo punto sono il fonda-


mento teorico del metodo delle mappe di Kamaugh. Dal punto di vista operativo,
tuttavia, rimangono due problemi:

o quali coppie di termini scegliere per Fespansione;

o quali termini scegliere per la duplicazione.

Per quanto concerne il primo problema, si è visto che due termini prodotto sono
semplificabili quando sono costituiti dalle stesse variabili e quando una soia di
esse appare in un prodotto naturale e nell’altro negata. Queste condizioni possono
essere espresse molto semplicemente grazie al concetto di distanza di Hamming.
Siano PD e P1 due termini prodotto costituiti dalle k variabili 23g, . ,.:i:k_1, scrit-
. .

te secondo questo ordine. Si scrivano ora i prodotti sottintenderido le variabili


(i loro nomi) e riportando ordinatamente un l quando una variabile appare in
forma naturale e uno G quando appare in forma negata. Secondo questo sche-
ma i prodotti Pg = zyfiw e P1 = zyiw’ sono esprirrxibili come Pg = 1101
e P1 1100, avendo fissato e sottinteso Fordine delle variabili {a y, z,
= È
semplice osservare che due tennini prodotto così espressi sono semplificabìli se e
solo se differiscono in una ed una sola cifra binaria. Si nota inoltre che la variabile
corrispondente alla cifra che differisce è quella eliminata nella semplificazione.
Questo schema è riassunto in Figura 4.1.

xyziw 1101
myfiw’ 1100
zyz’ 11D-

Figura 4.1 Schema di semplificazione dei termini prodotto

Il concetto di distanza di Hamming si applica appunto a coppie di sequenze di


cifre binarie di uguale Eunghezza e indica il numero di cifre diverse tra le due
sequenze. Più in generale vale la seguente definizione.
4.4 Minimizzazione esatta 95

Definizione 4.4 Siano A = {G0, .3ak_1} e B . . {ba ,b;c_1} due sequen-


= . ..

ze di k cifre binarie ciascuna; si dice distanza di Hamming tra A e B la


grandezza indicata con dg (A, B ) e definita dalla Seguente relazione.‘
k
dH(Aa-B) = Zag‘ G9 bi
É=Ù

in cui ii risultato delibperazione di XOR è da intendersi come valore


numerico e non logico. El

Per esempio, le due su-inghe A = 0010110 e B = 0110100 hanno distanza di


Hamrning dg (A, B) = 2, infatti:

ai 0010110
bi 0110100
ai Q9 bi —> Z220 a; 8 b; = 2

È facile verificare alcune semplici proprietà delîa distanza di Hamming:

cirflA, A) = O

OÎHLZL, B) = OÎHLBHÀ)

651101524’): k (k = ÌAD

Grazie al concetto di distanza di Harnming ed alla rappresentazione dei prodotti


mediante stdnghe binarie si può infine riassumere la regola perla semplificazione
dicendo che due termini prodotto sono semplificabili se e solo se la loro distanza
di Harnming è uguale ad uno.

Costruzione delle mappe

Le mappe di Karnaugh, come descritto ne] seguito, sono una rappresentazione di


una funzione booleana studiata per mettere in evidenza Ie coppie di mintermini
0 di impiicanti a distanza di Harmning unitaria. Tale rappresentazione ha come
fondamento un’a1tra, meno intuitiva, rappresentazione di una funzione di commu-
tazione: quella cartesiana in uno spazio con un opportuno numero di dimensioni.
Si consideri dapprima la funzione f (m) = a: di una sola variabile. Ricorrendo alla
rappresentazione cartesiana tradizionale, tale funzione può essere descritta in uno
spazio bidimensionale, come mostra la Figura 4.2(a). Dato che le variabili del-
Palgebra di commutazione possono assumere solo i valori 0 ed 1, si può adottare
per la stessa funzione una rappresentazione semplificata su una sola dimensione
in cui il valore deìla funzione è indicato da un punto pieno se uguale ad I e da un
punto vuoto se uguale a 0. Tale rappresentazione è mostrata in Figura 4. 20:1).
96 Reti combinarofie

0 sì» ftr)
0 1 s: 0 i
(a) (b)

Figura 4.2 Rappresentazioni di flm): (a) tradizionale, (b) semplificata

Grazie a questo accorgimento quindi, una funzione di una soia variabile può es-
sere rappresentata in uno spazio rnonodimensionale. È inoltre possibile genera-
lizzare questo tipo di rappresentazione per funzioni di n, variabili semplicemente
ricorrendo ad uno spazio ari-dimensionale. Inoltre, dato che sugli assi gli uni-
ci valori di possibili sono 0 ed 1, si usa ricorrere ad una rappresentazione ancora
leggermente diversa, basata sui cosiddetti Tl-Cllbi, ovvero ipercubi n-dimensionaìi
in cui ogni vertice è annotato con le sue coordinate, come mostrato in Figura 4-3.
110 111

i0 ll 010
011

100 101

0 1 00 01 000 001

Figura 4.3 Rappresentazione di un 1—cubo, un 2—cubo e un B-cubo

Si consideri ora la funzione in prima forma canonica flm, y, z) = zcyz + afyz +


xyz’ + m’yz’, corrispondente ai rnintermini con valore 111, 011, 110 e 010. Essa
può essere rappresentata su un 3—cubo come mostra la Figura 4.4.

110‘ 111

010
011

100 101

000 001

Figura 4.4 Rappresentazione di fiat, y, z) = xyz —l— 41'312 + ayz’ + sfiyz’


4.4 Minimizzazione esatta 97

Osservando tale figura si nota che i mintermini che possono essere sempiificati
mediante espansione, ovvero i rnintermini a distanza di Hamming unitaria, sono
rappresentati sul Px-cubo da punti pieni che risultano essere adiacenti, ossia con-
nessi da un lato. Per esempio i mintermini a-“yz” (O10) e sfiyz (011) giacciono
in alto sulla faccia anteriore del 3-cubo e sono connessi da un iato. Uespansione
porta a} nuovo implicante n'y che corrisponde ad un lato del 3-cubo. Tale lato
può anche essere pensato come un sottocubo di dimensione I. Allo stesso modo
si possono semplificare i due mintermini aîyz’ (llÙ) e zyz (111) dando origine
alfimplicante ary, ovvero ad un aitro lato del 3-cubo. Infine, i due irnplicanti n'y
e zy possono ancora essere semplificati dando origine al nuovo implicante y. Sul
3-cubo tale impiicante corrisponde alla faccia superiore, ovvero ad un sottocubo
di dimensione 2.
La rappresentazione delle funzioni mediante ‘TL-Cllbl ha quindi l" interessante pro-
prietà di evidenziare per costruzione i rnintermini di una data funzione che
risultano essere adiacenti. In particolare, taìe rappresentazione non si limita
ad evidenziare le coppie di mintenrrini adiacenti bensì, più in generale, tutti i
raggruppamenti di niintennini semplificabili mediante espansioni successive.
Si consideri ora il caso generale di una funzione f (x0, ,z,,_1) di n varia-
. . .

bili: essa può essere rappresentata su un fl-CubO. Un insieme di mintertnini


{F0, . ,P,g_1} di tale funzione risulta sempiificabile mediante espansioni suc-
. .

cessive se t è una potenza di 2, cioè se t 2!‘, e se i t minterrnini formano un


=

sottocubo di dimensione k. In tal caso si otterrà un irnplicante di n, k letterali.


Da quanto discusso fino a questo punto risulta chiaro che la rappresentazione


proposta risolve il problema deila identificazione delle coppie candidate all’e-
spansione. Rimane ora il problema della identificazione dei rnintermini, o più in
generale degli implicanti, da duplicare per poter iterare il processo di espansione.
Per chiarire questo punto si consideri ancora un esempio, cioè la funzione:

f(z, y, z) = zyz + xyz’ + n'y?’

in cui si richiede ia duplicazione del mintermine xyz’ in modo da poter effettuare


Pespansionc con il primo e con il terzo rninterrnine. Come mostra la Figura 4.5,
il vertice 110, cui corrisponde appunto il minterrnine aîyz’, è condiviso dai due
l-cubi A e B. Questa circostanza indica che, a patto di accettare che un vertice
di un ari-cubo possa prendere parte a più raccoglimenti, ia rappresentazione scelta
risolve anche il probiema delîa duplicazione.
Questo tipo di rappresentazione e tutti i concetti espressi in questo paragrafo stan-
no alla base del metodo delìe mappe di Karnaugh- Una mappa di Karnaugh, infat-
ti, aitro non è che una trasposizione di un cri-cubo su due dimensioni, in modo da
essere più facilmente maneggiabile. È importante notare che tale trasposizione,
98 . Reti combinatorie

1i0 B 111

010
011

100 101

O00 001

Figura 4.5 Rappresentazione di f (x, y, z) == myz + scyz’ + x’y(’ z)

0 proiezione, deve mantenere le proprietà di adiacenza che caratterizzano i verti-


ci degli n-cubi. Ciò è semplice per un l—cubo e per un 2—cubo, come mostra la
Figura 4.6. Il 3—cubo, invece è leggermente più complesso in quanto deve essere
“srotolato” per poter essere portato su due dimensioni. Si no1:ì inoltre che la ca—
sella in alto a sinistra (000) e la casella in alto a destra (010) corrispondono a due
vertici originariamente adiacenti sul 3-cubo e devono pertanto essere considerate
adiacenti anche sulia mappa. L0 stesso vale perle caselle in basso a destra ed in
basso a sinistra.

1 1 1011

Figura 4.6 Costruzione delle mappe di Karnaugh

La costruzione appena presentata è estendibile con alcuni accorgimenti al caso


di un 4—cubo. In questo caso le caselle giacenti su tutti i bordi della mappa sono
adiacenti alle caselle corrispondenti, in orizzontale o in verticale, sul lato opposto.
4.4 Minimizzazione esalîa 99

Avendo rispettato le relazioni di adiacenza proprie degli wcubi, le mappe di Kar-


naugh evidenziano i mìntennini semplifìcabili come celle adiacenti. Per esempio,
la funzione f(x,y, z) = zyz + 333,12’ + x’yz’ già considerata e mostrata su un
3-cubo in Figura 4.5, è rappresentata su una mappa di Kamaugh in Figura 4.7(a).

yz yz
I 00 01 11 10 I 00 01 11 10

0 0 0 o 1 0 o 0 0 T)
1 0 0 1 1 1 0 0

(a) (b)

Figura 4.7 Mappa di Kamaugh della funzione f(a3, y, z) = xcyz + myz’ + 21:’ yz’

Le relazioni di adiacenza tra i mintennini si traducono sulla mappa in relazioni


di adiacenza tra celle e sono rappresentati dai raggruppamenti mostrati in Figu-
ra 4.7(b). Si consideri ora il raggruppamento verticale, costituito dai mintermjni
193,12’ (010) e zyz’ (110). L’espressione delPimplicante corrispondente si può

ricavare per ispezione della mappa, senza cioè ricorrere alle espressioni algebri-
che dei rnìnterrnini coinvolti. Infatti, la mappa mostra che le celle coinvolte nel
raggruppamento sono contraddistinte da un valore costante delle variabili y e z
mentre il valore della variabile a: cambia. Si può indicare questo fatto scrivendo
che a:= —, y = 1 e z = O ovvero che 1’implicante corrisponde alla stringa di bit

—l0 ovvero al termine prodotto yz’. In modo analogo, il raccoglimento orizzon-


tale corrisponde alla stringa 11— (la variabile z cambia valore) ovvero al termine
prodotto az-y. Considerando entrambi i raccoglimenti si giunge quindi alla forma
minima cercata della funzione.
Si consideri ora 1a funzione descritta dalla tabella deila verità in Figura 4.8(a). La
sua rappresentazione su una mappa di Kamaugh è mostrata in Figura 4.8(b).
l due raggruppamenti mostrati suìla mappa corrispondono alle stringhe O—— e
—11 ovvero agli implicantì m’ e 1 z rispettivamente. Uespressione minima per la
funzione data è pertanto f(;1:,y._ 2) = 112' + yz.
Come già visto, il valore di una funzione in corrispondenza di alcuni ingressi può
non essere specificato: ciò fornisce un grado di libertà aggiuntivo nella fase di
sintesi in quanto la condizione di indifferenza può essere considerata uno O o un
1 a seconda di cosa risulta più conveniente. Per capire come trattare le condizioni

di indifferenza con il metodo delle mappe, si consideri Fesempio di Figura 4.9.


ignorando la condizione di indifferenza (ovvero considerandola come uno 0) si
otterrebbe la soluzione mostrata in Figura 4.10(a) cui corrisponde Fespressione
100 Reti combinatori}:

z y z L
0 0 0 1

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

0 1 1 1 [1 1 1]
1 0 0 0
0 l 0 0 1 0
1 N-LJ
1 1 O O
1 1 1 i
(a) (b)

Figura 4.8 Tabella della Verità e mappa di Karnaugh

yz
x 00 01 I1 10

O 0 1 0

l 0 0 1 0

Figura 4.9 Mappa di Karnaugh con condizioni di indifferenza

yz y:
m 00 01 11 10 I O0 01 11 10

0 0 @_ 0 0 OFÙO
100 0 1 0 030
(a) (b)

Figura 4.10 Espasione con condizioni di indifferenza

f (m, y, m)= 3:’y’z + xyz avente costo pari a 6 letterali. Considerando invece
1a condizione di indifferenza come un 1 si possono espandere i minterrnini come
mostrato in Figura 4.10(b). A questa scelta corrisponde 1a funzione f(:1:, y, m) =

r’y’ + yz con un costo di soli 4 Ìetterali.


In generale una 0 più condizioni di indifferenza sono da considerarsi delle utili
risorse che, introducendo alcuni gradi di libertà nella funzione, permettono poten-
zialmente di pervenire a incubi di dimensioni maggiori ovvero a termini prodotto
con un numero minore di letterali.
4.4 Minimizzazione esatta 101

Copertura
Negli esempi mostrati fino a questo punto tutti gli implicanti primi individuati
mediante espansione sono stati utilizzati nella costruzione de1l’espressione finale
della funzione cercata. Questa circostanza non ha validità generale ed apre un
nuovo problema: la ricerca di un copertura minimo.

Definizione 4.5 Data unaflnzione f (x9, , zfl_1) e l însieme di tutti i suoi im-
. . .

plicati primi l’ : {Poi , P51}, si dice che C(f) = {P65}, P64,


. . . , Pcm} . . .

è una L'apertura di f se C Q '13 e Se:

f(xlla"'ixn—l) = Per) +Pc_.1'l'---+Pc,m


In altri tennini una Copertura è un sottoinsieme di tutti gli implicano primi in
grado di coprire, appunto, tutti gli uno della fiznzione (mintermini). El

In generale, fissata una funzione, e di conseguenza Finsierne di tutti i suoi impli-


canti primi, il problema della copertura non ammette una soluzione unica: esi-
stono cioè diverse possibili scelte degli implicantì che soddisfano la definizione
appena data. Di particolare interesse, tra tutte le coperture possibili, è la copertura
minima, cioè la copertura formata dal numero minore possibile di irnplicanti.

Definizione 4.6 Uno copertura C0") z {P64}, P”, . . . ,Pc,m} èminima se Vj E


[Dg l flinsieme di implicanri C’(f) C {PCJ} = — non è una copertura valida.
Si consideri come esempio la mappa mostrata in Figura 4.11 su cui sono sta-
ti evidenziati tre raggruppamenti corrispondenti agli implicanti 291;’ y’ z e x2. ,

Considerando tutti gli implicano individuati si ottiene Fespressione:

f (x, y? Z) = Iîu’ + y’z + I2 (4.9)

che, tuttavia, non risulta minima in quanto Yapplicazione del teorema del
consenso permette una ulteriore semplificazione che porta alla nuova espressione:

f(xî-ylz) :x!yr+xz
non ulteriormente semplificabile.
Ritornando ad esaminare la mappa si nota che i due implicano 21:’ y’ e zz sono
sufficìenti a coprire tutti gli uni della funzione e che pertanto Pimpìicante yfiz può
essere trascurato. Il problema della ricerca della copertura minima consiste quindi
neIPindividuare il minor numero possibile di irnplicanti sufficienti a coprire tutti
gli uno di una data funzione. A questo scopo è possibile procedere in maniera
intuitiva, come fatto per l'esempio di Figura 4.11, ma Fintroduzione di alcuni
concetti può essere d’ aiuto in casi più complessi.
I O2 Reti combìnatorie

55300011110
ofÎTo 0

1°:‘_;ΰ
Figura 4.11 Copertura delle mappe

In particolare, si definisce essenziale un implicante che risulta essere 1’ unico a co-


prire un dato mintermine (un uno sulla mappa) mentre si definisce completamente
ridondante un implicante che copre mintermini già coperti da altri implicanti es-
senziali. Un irnplicante che risultasse ridondante in seguito ad una scelta arbitraria
della copertura prende il nome di parzialmente rid0ndanre1.
Secondo queste definizioni gli implicano afy’ e 1:2 sono essenziali per 1a funzione
delfesempio di Figura 4. l 1, mentre Firnplicante y’ z è completamente ridondante.
È quindi chiaro chela copertura di una funzione sarà senzîaltro costituita da rum’
gli implicanti essenziali e da nessuno degli implicanti completamente ridondanti.
Esistono situazioni in cui i due criteri di essenzialità e di ridondanza non sono di
alcun aiuto nella scelta degli implicanti. La Figura 4.12 mostra uno di tali casi:
nessuno degli impljcanti è essenziale in quanto ogni mintermine è coperto da due
implicano e pertanto non si hanno neppure implicanti completamente ridondanti.
Questa condizione è nota con il nome di mappa ciclica e richiede criteri e metodi
differenti per la scelta di una copertura (Paragrafo 4.4.3).

317°’ yz 313
I 00011110 x 00011110 a: 00011110
0 1 ooaìm oomîj
iiìomwîìmvi
Figura 4.12 Mappa ciclica e sue possibili coperture

Per problemi semplici come quello mostrato le scelte possono essere effettuate in
modo arbitrario portando, per esempio, alle due soluzioni mostrate in Figura 4. l 2
e corrispondenti alle espressioni:

f (ai, y, z) = 53'»? + city’ + yz’


fila y: Z) : miy + '172’ + yfiz

‘Questi concetti sono definiti in maniera formale nel Paragrafo 4.5.3.


4.4 Minimìzzazione esatta i O3

Ottimizzazione delle forme prodotto di somme

In modo duale a quanto appena descritto, è possibile utilizzare le mappe di Kar-


naugh per la sintesi di funzioni sotto forma di prodotto di somme. Dal punto di
vista algebrico questo significa basare il procedimento di espansione sulle regole:

(I+S)—(I'+S)=:I:-:C'+S=Ù+S=S
S=S«S
al fine di ottenere implicati costituiti dal minor numero di letterali possibile. Dal
punto di vista operativo, d’altro canto, individuare gli implicati sulie mappe con-
siste nel trovare sottocubi di dimensione massima costituiti unicamente da 0 ed
eventualmente condizioni di indifferenza per le funzioni non completamente spe-
cificate. Si noti che, come visto per la sintesi in seconda forma canonica, la
costruzione del tennine somma avviene prendendo le variabili il cui valore è co-
stante in tutto il sottocubo in forma naturale se se il loro valore è 0 ed in forma
complementata se il loro valore è 1. Si consideri il seguente esempio:

Sia X z [x3 2172 m1 ma] una parola di codice BCD. Si sinretizzi infamia
SOP lafisnzione flmg, I2, 551,130} che assume tialore I quando X 2 6.

Dalla specifica si deduce che la funzione vale 1 per i valori 6, 7, 8 e 9 cui corri-
spondono le codifiche 0110, Ol l l, 1000 e 1001. Si noti inoltre che la funzione
non è specificata per X > 9.

1,0
a, 00 01 11 10

00 o O o 0 S0=î73+I2 s1=îîî3+x1
01 522.7354471 53=xg+mg
11
S4=xg+xi S5=x2+xfi
10‘

Figura 4.13 implicati primi di una funzione in forma di prodotto di somme

Riportando tali valori su una mappa di Karnaugh a 4 variabili si ottiene la rap-


presentazione di Figura 4.13,, in cui sono anche evidenziati ed elencati tutti gli
implicati primi. Da questo esempio si nota come il procedimento di espansione
sulla mappa sia identico a quanto già visto per la sintesi in forma di somme di pro-
dotti, a patto di raggruppare gli O della funzione al posto degli 1. Si pone a questo
punto il problema della copertura. Una attenta analisi del problema mostra che
anche il procedimento per la copertura è lo stesso già visto. In particolare si inizia
104 Reti Combinatofie

31.0 11,0
Z3’, 00 01 ll l0 x31‘ 00 01 Il 10

ODÎÎLOÌÉ 00[00
01p__0J11 01FÌ11
1i———— 11bj
lfillrîl 101 1

Figura 4.14 Copertine minime della funzione di Figura 4.13

dagli implicati primi essenziali e si procede sfruttando, ove possibile, la relazione


di ridondanza completa. Nelfesempio in esame non vi sono implicati essenziali e
tutti gli implicati hanno io stesso costo pari a 2 letterali: la scelta iniziale e pertan-
to arbitraria. Si noti inoltre che alcuni degli implicanti evidenziati dal processo di
espansione raccolgono esclusivamente condizioni di indifferenza e che pertanto
non sono necessari alla copertura in quanto, mediante un opportuno assegnamen-
to del loro valore, è sempre possibile escluderle dall’insieme dei mintermini o dei
maxtennini (in base alla forma scelta: somma di prodotti o prodotto di somme)
che devono essere coperti. La Figura 4.14 mostra le due coperture minime della
funzione, corrispondenti alle espressioni:

f(933=11'32,3C1,-’130) = (I3 + 931)(:I32 + l'1)


N173: 9-32: i171;- 930) = (I3 + fiîalfîé + 11)

4.4.2 Metodo di Quine-McCluskey


Il metodo delle mappe di Kamaugh, come già sottolineato, non si presta alla sinte-
si di funzioni complesse, benché sia di facile applicazione per funzioni semplici.
Si è anche Visto che tale metodo si basa in gran parte sull’intuito necessario ad
individuare i raggruppamenti di dimensione massima (corrispondenti agli impli-
canti primi) e a selezionare un sottoinsieme di tali raggruppamenti per coprire in
modo efficiente la funzione data. Queste circostanze limitano fortemente il cam-
po applicativo del metodo e, in particolare, rendono difficìle e sconveniente la sua
realizzazione algoritmica.
li metodo di Quine—McC1uskey supera queste limitazioni e fornisce una soluzio-
ne generaìe ed efficiente al problema della sintesi di funzioni su due livelìi. In
particolare il metodo permette di (i) sintetizzare funzioni di un numero qualsiasi
4.4 Minimizzazione esatta l'05

di variabili; (ii) sintetizzare contemporaneamente più funzioni; e (iii) ottimizzare


le funzioni sia rispetto al numero di implicanti sia rispetto al numero di letzerali.
II metodo si compone di due fasi ben distinte: espansione e copertura. Durante
la fase di espansione si procede alia individuazione di tutti‘ gli implicanti primi
della funzione a partire dalFelenco dei suoi mintermini. La fase di copertura si
occupa di individuare un sottoinsieme degli irnplicanti trovati sufficiente a coprire
tutti gli uni della funzione. Si consideri dapprima il problema delia sintesi e
ottimizzazione di funzioni ad una sola uscita.

Funzioni ad una sola uscita: espansione


La fase di espansione si basa, come già visto anche per le mappe di Karnaugh,
surapplicazione iterativa delle due regole delfalgebra:

LIÌP-i-IIPZP
PzP-î-P
Il punto di partenza è 1a lista dei mintennini, espressi mediante il vaiore dei
corrispondenti letterali. Si consideri per esempio la funzione seguente:
liaîîîn-nr-dl-nu-nk-fl
n-ni-Ir-nw-«(DCGÈH

Ì-‘Ì-‘ÈÎ'—"—‘ÈÌ“Q

r-"Gì-‘C-‘CDI-‘CDN

Essa è costituita dai rninterniini D00, O01, 010, 0] il}. Una forma alternati- 1 e
va per rappresentare le funzioni booleane prevede di eiencare tutti i rnintermini,
espressi come il valore decimale secondo la codifica binaria naturale, cioè:

f(a:,y,z) = EH], 1,13, T}

in cui il simbolo E sta ad indicare che i valori della lista corrispondono appunto
ai inintermini. Tale insieme e anche indicato con il norne di ori-sei‘. Nel Caso di
funzioni non completamente specificate è necessario indicare anche il don ‘r care-
Set o dose: ovvero l’insien1e delle condizioni di indifferenza della funzione. Tale
insieme è generalmente indicato con la lettera greca A. Itifine, si usa indicare con
il norne di ofi-aret e con il simbolo ti) l’ insieme delle combinazioni di ingressi cui
corrispondono gli zeri della funzione.
I 06 Reti combinazione

Definizione 4.7 Sia f.(:t:0,:n1, ,:cn_1) = f (X ) una generica funzione di


. . . n
variabili. Si definiscono on-set, dou’t care-set ed off-set i seguenti insiemi.-

E = {XiUTXzJ = 1} A = {XilflXzò = -} î’ = {Xilf(Xi) = 0}


Si dimostra che valgono ie seguenti relazioni.‘
EUAUQ>=BE 2nA=QL 2mI>=tL An<I>=0
Da queste relazioni si deduce che due dei tre insiemi sono sufiîcienti a definire
in modo completo ed univoco una generica funzione. El

Ai fini della fase di espansione, come già visto per le mappe di Kamaugh, le
condizioni di indifferenza sono considerate ai pari degli uno deila funzione.
Il metodo di Quine-McCluskey consiste nel confrontare ogni Inintennine della
lista con ogni altro, valutare la distanza di Hanuning e, se risulta uguale ad l,
procedere alla espansione ottenendo un nuovo implicante. La variabile eliminata
mediante espansione viene indicata nella stringa mediante il simbolo di don’t
care. I confronti da effettuare nellesempio in esame sono i seguenti:

(Li dH(DOD,U{}l)=1 —» 00" 1,3 d;;(ÙÙÌ,Ù11)=1 —» 0—1


0,2 dH(O00,010)=1 —> 0-0 1,7 dH(001,111)=2
0,3 dH(0OO,D1l)-—=2 2,3 dH(010,011)=1 —> 01-
0,7 d,,(000,111)=3 2,7 dH(01O,l11)=2
1,2 dH(001,0l0)=2 3,7 dH(Ol1,ll1)=1 —» —11

È utile notare che due stringhe di bit possono avere distanza di Hammìng pari ad
uno solo se il numero di uni presente nelle due stringhe differisce di uno. Grazie
a questo accorgimento è possibile ridurre il numero dei confronti: e sufficiente
infatti organizzare la lista iniziale dei mintennini in gruppi contenenti lo stesso
numero di uni ed ordinare i gruppi per numero crescente di uni. Procedendo
in questo modo è necessario effettuate confronti solamente tra ogni elemento di
un dato gruppo e tutti quelli del gruppo seguente. Secondo questo metodo, il
passaggio di espansione appena visto, è solitamente rappresentato come segue:

xyz xyz
0 000 0,1 00-
1 001 0,2 0-0
2 010 1,3 0-1
3 011 2,3 Ol-
7 111 3,7 —li

La mappa di Kamaugh mostrata in Figura 4.1 5(a) indica la situazione iniziale in


cui la funzione è descritta solo mediante mintermini, mentre 1a Figura 4.1503)
mostra i raggruppamenti formati mediante il metodo appena descritto.
4.4 Minimizzazione esatta 107

yz
x 00 01 11 i0

D
10 00

(a) (b)

Figura 4.15 MÎIIÎBITUÌÌIÌ ed implicantì

Come si nota, i minternijni non sono più da considerarsi anche irnplicanti primi
in quanto sono tutti coinvolti nei raccoglimento di implicanti di dimensione mag-
giore. Per tenere traccia di questo fatto, ogni volta che due minterniini (o, più
in generale, due elementi di una lista) partecipano ad un raccoglimento devono
essere nrarcati, come mostra 1o schema seguente:

zyz Iyz
00-
‘n-llaîvbàt-‘Q

OOOÒÒ

000 0,1
001 0,2 0——0

n 1,3 0—1
011 2,3 01—
L 3,7 —11

A questo punto si procede ad analizzare gli elementi (implicanti) della nuova lista
per verificare se sono possibili uiteriori raccoglirnenti. Si tenga presente che due
implicantì possono essere semplificati solo se coinvoìgono esattamente le stesse
variabili, ovvero solo se il simbolo di don’: care si trova nella stessa posizione.
Applicando questo criterio si ottiene una nuova lista:

aîyz myz zryz


0 000 <> 0,1 00- <> 0,l,2,3 0————

l 001 <> 0,2 0-0 <> 0,2,1,3 0———

2 010 <> 1,3 0—1 <>

3 011 o 2,3 0l— o


7 111 <> 3,7 —ll

Analizzando le varie liste ottenute, si possono fare due considerazioni:

o gli irnplicantì che non sono stati marcati durante il procedimento di espan-
sione sono rum’ gìi ìrnpìicanti primi della funzione. Ciò è vero per costru-
zione in quanto un dato nijnterrnine o irnplicante viene marcato ogni voìta
che partecipa ad un raccoglimento e pertanto non può essere primo.
i‘ 08 Reti combinatori};

o è possibile che il procedimento porti ad avere lo stesso implicante che


appare più volte. In tal caso deve essere considerato una volta sola.

Nelfesernpio Pimplicante 0-——, cioè se’, risulta duplicato in quanto può essere
ottenuto sia a partire da afy e afiy’ sia da 3:’ z e afz’. Questa situazione è mostrata
chiaramente dalle mappe di Karnaugh in Figura 4.16.

I?” 00 01 11 10 m” 00 01 11 10

0[1_1II1_1_] OEIHI 11111


10 010 10 010

(a) (b)

Figura 4.16 Diversi raccoglimenti per uno stesso implicante primo

Una volta eliminati gli eventuali implicanti che appaiono più di una volta si ottiene
la lista degli implicanti primi della funzione, che, per Pesempio in esame è:

P3 = yz (-11) 3, 7
P] = 1L‘, (Ù——) Ù,1,2,3

Da una semplice analisi della funzione risulta chiaro che P9 è essenziale poiché è
Punico a coprire i1 inintennine 111 e P1 è altrettanto essenziale per i minterrnini
000, 001 e O10. L’ espressione che ne risulta è pertanto:

fissi/w?) =m’+yz
In questo caso i1 problema della scelta degli irnplicanti da utilizzare per 1a coper-
tura non ha presentato alcun problema, ma, in casi più complessi è indispensabile
una rnetodoiogìa ben definita.

Funzioni ad una sola uscita: copertura


Il problema della copertura consiste nellîndividuare un sottoinsieme degli impli-
canti primi di una funzione sufficiente a coprire tutti gli uni della funzione stessa
e avente costo minimo. I criteri comunemente utilizzati per valutare il costo di
una copertura sono il numero di implicanfi e il numero di ierrerali.
Si consideri ad esempio la funzione seguente:

fÙB, y, z, w) = Z{O,1,6,7,8,11,13} + A{4,5,9,10,15}


4.4 Minimizzazione esatta 109

Mintenninidif
tua:
O 1 6 7 8 1113

ltnpljcanti
primi di f

Figura 4.17 Struttura della tabella di copertura

Despansione produce ì seguenti 7 implicanti:

Pg = y’z" (——Ù0—) U, l, 8, 9 P4 = afy (01——) 4, 5, 6, T


P1 = 142’ (ٗٗ) U11, 4, 5 P5 = y-w (—1—l) 5, 7,13,15
P2 = z’w (——0l) 1, 5, 9,13 P5 = arw (1————1) 9, 11,1315
P3 = (l0——) 8, 9, 10, ll

La copertura della funzione, in questo caso, non è affatto immediata. Si procede


pertanto alla costruzione di una rappresentazione di supporto alla soluzione del
problema: la tabella di copertura. Tale tabella (Figura 4.17) ha tante righe quanti
sono gli irnplicanti R: e tante colonne quanti sono i mintermini mj. In questa
fase si considera solamente Fon-set in quanto le condizioni di indifferenza non
vincolano in alcun modo la copertura. Una casella in posizione (i, j) contiene
il simbolo x se Fimplicante P; copre il mintermine mj, altrimenti è vuota. Per
l’esempio in esame la tabella è riportata in Figura 4.] 8.

0 l 6781113
P9 X x ><

P1 >< ><

P2 x

P3
P4
P5
P6

Figura 4.18 Tabella di copertura iniziale

Analizzando la tabella si nota che il mintermjne 6 è coperto solamente dalfimpli-


cante P4: tale implicante è pertanto essenziale. In generale, quindi, gli irnplicanti
II0 Reti combinatori}?

essenziali possono essere riconosciuti in quanto 1a tabella di copertura presenta


una 0 più colonne contenenti una sola x.
Il processo di copertura inizia da un insieme di copertura vuoto C ( f ) i5, quindi, =

una Volta individuato un implicante essenziale Pi si procede come segue:

o si aggiunge Pimplicante R alla copertura, cioè C (f) = f


C( ) U {Pi};
si eliminano dalla tabella tutte le colonne coperte da Pi;

si elimina la riga corrispondente all’implicante Pi;

o si iiesamina la nuova tabella ridotta.

Nel caso in esame si ha quindi C( f ) {P4} e la tabella, dopo Feliminazione di


=

righe e colonne, diviene quella mostrata in Figura 4.1 9(a).

0 l 8 ll i3
P0 x >< x

P1 0 l 8 11 13

P2 P3 X i

P3 P2 X

P5
P6

(a) (b)

Figura 4.19 Semplificazione della tabella di copertura

A questo punto nessuno degli implicanti risulta essere essenziale. Per poter pro-
cedere si applicano due criteri: la dominanza di riga e la dominanza di colonna.
Tali criteri non modificano Finsieme di copertura ma semplificano la tabella.

Definizione 4.8 La riga domina la riga j se lflîmplicanre Pi copre tutti i


e‘.

minrermini che copre l ’z'mplicante Pj più almeno una.


In tal caso la iiga dominata Pj può essere rimossa dalla tabella in quanto la even—
tuale scelta, in un momento successivo, della riga dominante P1- coprirebbe tutti i
mintermini coperti da 133-.
Nelresempio in esame si nota che Po donnina P1 e che sia P2 sia P5 dominano
P5: le due righe corrispondenti agli implicanti dominati P1 e P5 possono essere
pertanto eliminate. Ne risulta la nuova tabella mostrata in Figura 4.1903).
Ueliininazione delle righe dominate ha messo in luce il fatto che Fimplicante
P0 è ora essenziale. Dato che la tabella in esame non è quella originale ma è
4.4 Minimizzazione esatta III

stata ottenuta mediante semplificazione, si usa dire che P0 è un irnpiicante es-


senziale secondario. Per procedere nella descrizione dei criteri di dominanza, si
trascuri momentaneamente il fatto chela tabella presenta un implicante essenzia-
le che potrebbe essere scelto per la copertura. La seconda relazione di dominanza
coinvolge le colonne, cioè i rninterrnini.

Definizione 4.9 La colonna i domina La colonna j se ii mintermine m3- è coperto


dagli stessi impiicanri da cui è coperto m; più almeno una.
In tal caso, la colonna dominata m3,- può essere eliminata dalla tabella. Infan
ti la scelta di un implicante che copre il rnintermine dominante 1m comporta
necessariamente anche la copertura degli eventuali rnintennini dominati.
Continuando con Fesernpio, si nota che il mintermine U domina sia il mintennine
l sia il mintennine 8, che possono pertanto essere eliminati dalla tabella. Si
ottiene quindi una nuova tabella ridotta, mostrata in Figura 4.20(a). A questo
punto, si può scegliere Fimplicante essenziale secondario P0 ottenendo la nuova
copertura C(f) = {P41PO} ed eliminando la riga e le colonne coinvolte. La
tabella che ne risulta è mostrata in Figura 4.2003).

Ù H13
P0 il 13

P2 P2
P3 P3 i113
P5 PEXX P6
o) io
Figura 4.20 Semplificazione della tabella di copertura (continua)

Si nota ora che Firnplicante P5 domina sia P3 sia P2 che possono pertanto essere
eliminati, ottenendo la tabella mostrata in Figura 4.20(c). A questo punto P5 è
essenziale secondario e pertanto deve essere scelto per la copertura che diviene
infine C (f)= {P4, P9, P5}. Questa scelta conclude il procedimento di copertura.
Ricordando le espressioni degli implicanti, la funzione risulta:

f(x,y,z.w) =y’z’ +:c’y+xw (4.11)

Il Costo in termini di ìrnplicanti è = in tennini di letterali Kf) = 6.


3 ed
Si noti che nel procedimento di copertura il costo in termini di letterali non è mai
stato considerato. Quanto visto fino a questo punto, infatti, produce la copertura
ottima rispetto al solo numero di impiicanti.
Unfiiltizna considerazione riguarda la scelta effettuata nel passaggio dalla tabella
di copertura della Figura 4.l9(b) a quella di Figura 4.l9(a). Cornc specificato
I 12 Reti combinato rie

in precedenza, si è scelto di ignorare Fessenzialità secondaria delPimplicante P0


e di procedere invece allo studio delle dominanze di colonna. Una tale scelta e
sempre possibile in quanto si può dimostrare che non influisce sulla qualità della
copertura in tennini di numero di implicanti. Se, inoltre, la copertura minima
è unica, il metodo garantisce che tale copertura sarà individuata a prescindere
dalFordine di applicazione dei criteri presentati.

Approfondimento: Copertura e modelli di costo


Considerando gli esempi visti fino a questo punto si potrebbe concludere che se
una dam copertura minimizza il numero di irnplicanti allora minimizza anche il
numero di letterali e vice versa. Questa affermazione non è sempre vera e ciò può
essere dimostrato nel modo seguente.

Siano C1(f) e C2(f) due coperture di f(x0,...,;z:.,,_1) aventi un sottoinsieme


comune di implicanti C e definite come segue:

C1(f)= CU {P}
C20’) CU iQmQi}
=

lC[ + 1 per C1 e [C[ +2 per C2. Si vuole dimostrare


Il costo in termini di implicanti è
che esiste almeno un caso in cui il numero di letterali di C2 è minore del numero di
letteraîi di C1. A tale scopo è sufficiente concentrare Fattenzione sugli implicanti
P, Q1 e Q2 e dimostrare che:

M21) +I(Q2) < MP) (4.12)

Sì tenga presente che Q1 e Q2 devono rendere P completamente ridondante, cioè


devono coprire tutti i mintermini che copre P, e devono essere primi, altrimenti
esisterebbe un implicante Q z Q1 U Q2 che renderebbe non primo anche P e che
produrrebbe pertanto coperture con ugual costo in termini di letterali.
Siano m1 ed m2 i due minternzini di f definiti come:
m1 = 330371 ' ' ' îîn-aîn-i
mz = 93o931“'it?n—2ît7;_1

Sia inoltre:
P = 3305171‘ - ‘In-z

È chiaro che P copre m; ed mg ed ha un costo di n — 1 letterali. Siano ora Q1 e


Q2 due altri implicanti definiti come:

Q1 = IiIn-i
Q2 Z xixiz-i
4.4 Minimizzazione esaira i 13

in cui i7E j e i, j 9E n. 1. Tali irnplicanîi soddisfano tutte le condizioni espresse


più sopra: Q1 copre m1 infarti Qlml m1, Q3 copre mg infatti Qgfilg


= mg ed =

infine Q1 e Q2 sono disgiunti poiché non possono essere raccolti in quanto i # j.


Questo prova che {P} e {QhQg} sono due coperture valide per i mintermini
{m1 m2}. Notando che HP)
r n 1 e I(Q1) = E0223)— 2, la (4.12) diviene:
= =

4<n—1

ovvero n > 5. Questo significa che può accadere che la minimizzazione del nume-
ro di implicanti non garantisca anche la minimizzazione del numero dei letterali e
vice versa. Per n > 5 esistono pertanto soluzioni per cui:

|C1| < ]C1] A M61) > l(Cg)

È facile dimostrare che per n == 5 si possono avere copertine con cardinalità diver-
se e numero di letterali uguale, e che per n 5 4 minimizzare la cardinalità della
copertura implica la minimizzazione del numero di letterali e vice versa. D

Funzioni a più uscite: espansione


I problemi di sintesi e ottimizzazione che si incontrano nella pratica della proget-
tazione digitale coinvolgono molto spesso funzioni a più ascite ovvero funzioni
in cui Puscita è costituita da più bit. Si può vedere una tale funzione come un
vettore di funzioni ad una sola uscita, ovvero:

Fùîoa - - -xrL—1) = lfofios - - uîîîn-i) ' ' ' fk—1(Î5O: - - -3?n—1)l

Questa espressione rappresenta una funzione a i9 uscite di n, variabili. Un possi-


bile modo di procedere alla ottimizzazione di F consiste nel considerare indipen-
dentemente le k funzioni fa, fk_1 e utilizzare uno dei metodi visti fino a que-
. . .

sto punto. Questa scelta tutîavia non permette di evidenziare eventuali porzioni
comuni ad alcune delle funzioni, ìirnitando perciò un possibile riuso di irnpiicanti.
Il metodo di Quine—McCIuskey può essere esteso per affrontare ìa sintesi simulta-
nea di più funzioni. Questo comporta alcune modifiche sia alla fase di espansione,
sia a quella di copertura. In primo ìuogo si costruisce ìa lista dei rninterrnini di
rune ìe funzioni e si procede alla codifica binaria come già visto. Per tenere con-
to della appartenenza di un dato minterrnine ad una o più funzioni, si aggiunge
ad ogni rnintermine una maschera di appartenenza costituita da tanti bit quante
sono le funzioni. Se un mintermine appartiene ad fi, allora il bit i-esimo vale i
1 14 Reti combinatori}?

altrimenti vale 0. Si consideri per esempio la seguente funzione a tre uscite:

F137: yu Z71”) Z U007: y: Z: w): fîtbeya Z11”): f2(331 y: 2311-01


— Ég{0,2,4,5,6,7},
Elfi), 4, 5, 7, 10,11, 14,15},
É2{2,6,103 11, 14,15},

Dinsieme di tutti i mjntennini è:

E : E0 U E1 U22 = {0,2,4,5,6,7,10,11,14,15}

Da questo insieme si procede alla codifica e alla costruzione delle maschere. Tali
maschere saranno formate da tre bit in cui il più significativo corrisponde ad fa
ed il meno significativo a fg. Il Inintermjne 0, per esempio, è codificato su 4 bit
come 0000 e, dato che appartiene sia a fa sia a fl, ha associata la maschera 110.
La Figura 4.21 riporta la tabella (su due colonne solo per comodità) di tutte le
codifiche e le corrispondenti maschere.

ma’ Iii/Z” fofifz mi 3331210 fofifz


0 0000 110' 7 0111 110
2 0010 101 10 1010 0 l 1

4 0100 Ì 10 11 1011 011


5 0101 110 14 1110 011
6 0'110 101 15 1111 0' 11

Figura 4.21 Codifica e maschere dei mintermini di F

A questo punto si può procedere alla costruzione della lista iniziale per Pespan-
sione. Anche in questo caso i mintermini devono essere ordinati e "raggruppati
in base al numero di uni che essi contengono. Durante Pespansìone è necessario
tenere conto che i minterrnini appartengono a più funzioni e che di conseguenza
alcuni raccoglimenti potrebbero non essere validi. I

Si consideri per esempio la coppia di minterrnini 0110 (6) e 0111 (7): Pespansio-
ne porta al nuovo implicante 011-. Si nota, tuttavia, che tale implicante è valido
solo per la funzione fa poiché solo questa contiene entrambi ì mintermini. Questa
considerazione può essere ricavata in modo semplice e meccanico dalle maschere
associate ai due mintermini, ovvero 101 per il 6 e 110 per il 7. Il prodotto logico
bit a bit di tali maschere risulta infatti 100 che indica appunto che il nuovo impli-
cante appartiene solamente alla funzione fa. Può accadere che il prodotto bit a bit
di due maschere produca tutti zeri: in tal caso Fimplicante ottenuto non è valido
per alcuna delle funzioni e non deve pertanto essere riportato nella nuova lista.
4.4 Minimizzaziane esatta J I5

È necessario prestare attenzione ad urfaltra importante differenza col metodo usa-


to per una sola funzione. Si è visto in precedenza che quando due mintennini (o,
più in generale, due implicanti) prendono parte ad un raccoglimento, essi devono
essere eliminati dalla lista di partenza in quanto non sono primi: il nuovo im-
plicante generato, infatti, lì copre entrambi. Questa proprietà non è sempre Vera
per problemi che coinvolgono più funzioni. Infatti i minterniini (o gli implican-
ti) coinvolti in un raccoglimento perdono la loro primalità se e solo se il nuovo
implicante appartiene alle stesse funzioni cui appartengono i mintermini (o gli
ìmplicanti) di partenza. Tutto ciò è ben visibile analizzando le maschere di ap-
partenenza relative agli implicanti coinvolti. Siano pa e p1, due ìmplicanti con
maschere ta e r5, par, Fìmpiicante ottenuto dal raccoglimento e sia Éag, ta ti, la = -

sua maschera. Si possono presentare i quattro casi seguenti:

Maschera Raccoglimento Marcatura


tab = 0 . . . 0 non valido nessuna
tal, = fa Valido solo pa
tab = 15;, valido solo p5
tu}, = ta = ti, valido pa e p5

Seguendo le regole per il raccoglimento, per il calcolo delle maschere e per la


marcatura è ora possibile procedere con Pesempio.

392%‘ fufifz 3.74232‘ f0f1f2 Iyzw fofifz


0 0000 1 10 0 0,2 00-0 100 O 0,2,4,6 0--0 1 00
2 0010 i 01 ° 0,4 0-00 110 2,6,l0,14 --10 001
4 0100 110 <> 2,6 0-10 101 4,5,6,7 0l-- 100
5 0101 l 10 <> 2,10 -010 001 Q 10,11,14,15 l—l- 011
6 0110 101 0 4,5 010- 10
1

10 1010 01 1 <> 4,6 01-0 100 O


7 0111 110 o 5,7 01-1 110
11 1011 011 O 6,7 011- 100 O
14 1110 0l 1 O 6,14 -l10 001 O

15 1111 011 O 10,11 101- 011 o


10,14 1-10 O11 Ò

7,15 —1ll 010


11,15 1-11 011 <>

14,15 111- Ull <>

Per meglio capire quanto illustrato, si considerino gli implicanti O e 2 con ma-
schera rispettivamente 110 e 101: quando si crea il raccoglimento D, 2 essi non
vengono marcati in quanto la maschera risultante lOÙ è diversa dalle due masche-
re di partenza. Quando si crea invece il raccoglimento O, 4 la maschera risultante
I I6 Reti combinatori}:

e 110 uguale aile maschere degli implicanti 0 e 4, che quindi vengono marca-
ti entrambi. Terminata la fase di espansione si ottiene la lista degli irnplicanti,
opportunamente marcati ad indicarne Pappartenenza alle varie funzioni:

P0 = z’z"‘u:’ (0-00) 0,4 110 —> fa, f1


P1 = 13'210’ (0-10) 2,6 101 —> fu, fg
P2 = z’yz’ (010—) 41, 5 110 —> fl
fo:
R; =z’yw (01-1) 5,7 110 —> fmfl
P4 = yzw (—111) 7,15 010 ——-+ f1
P5 = 3911i’ (0——0) 0, 2,4, 6 10o —> 1'};

P5 = zia’ (——10) 0.4 O01 —> fg


P7 = 11713} (Ù1——) 4: 5, 6, 7 ÌÙO —> fa
P8 = x2 (1—1—) i0,11,14,15 011 —> fhfg

Funzioni a più uscite: copertura


Una voita individuati gli implicanti primi delle singole funzioni e gli eventuali
irnplicanti primi condivisi si procede alla soluzione del problema della copertura.
La tabella di copertura per problemi a più uscite si ottiene semplicemente acco-
stando le varie tabelle di copertina delle singoie funzioni e riportando il simbolo
di copertura (X) secondo quanto specificato dalle maschere di appartenenza.
I principi su cui si basa ia copertura sono quelli già visti: essenzialità, domi-
nanza di riga e dominanza di colonna. Tali concetti, tuttavia, richiedono alcune
variazioni per tenere conto delia natura differente del problema.
Una prima variazione sta nella conseguenza che la scelta di un irnplicante essen-
ziale ha sulla tabella. Un dato implicante, infatti, può essere essenziale solo per
alcune delle funzioni: in questo caso la riga corrispondente non deve essere eli-
minata e devono essere eliminate solo le coionne corrispondenti alle funzioni per
cui Firnplicante in questione è essenziale.
A causa di questo modo di procedere, alcuni irnplicanti ancora presenti nella ta-
bella sono già stati scelti per alcune delle funzioni. Se questi irnplicanti venissero
quindi scelti nuovamente per la copertura di altre funzioni, non avrebbero alcun
impatto sul costo complessivo della copertura (solamente se il costo che si utilizza
è quello relativo al numero di implicanti).
Per tenere conto di questo fatto si associa un costo ad ogni implicante e lo si
riporta a margine della tabelia di copertura. AlPinizÌo il costo è pari ad l per tutti
gli irnplicanti. Ogni volta che un irnpljcante è scelto ma rimane nella tabella, ii
suo costo passa a 0. La Figura 4.22 mostra la tabella di copertura iniziale.
4.4 Minimizzazione esatta Z I7

fa f} f2
O2 45 6 7 O4 5 7101114152 610111415

n——»—Au-u...a>—n>—->—I—|r—4
X

Figura 4.22 Copertura di più funzioni: nainimizzazione degli implicanti

Si noti che Po è essenziale per f1 e che P3 è essenziale sia per f1 sia per fg. La
copertura iniziale Iisulta pertanto:

Clfo) = V3 C(f1) = {PruPs} C(f2) = {P8}


I mintennini O e 4 devono essere eliminati dalla tabelia perla sola funzione f1 ed
irninterminì 10, 11, 14 e 15 devono essere eliminati sia per fl sia per fg. L’im-
plicante P3 non deve essere rimosso dalla tabella in quanto copre altri mintermini
oltre a quelli di f} ma, essendo stato scelto, il suo costo passa a 0. Dimplicante
P8, d’altro canto, non copre altri implicantì oltre a quelli di f; e fg e può pertanto
essere rimosso. Ne risulta la nuova tabeiìa di Figura 4.23.

fu f1f2
0245675726
PQX X 0
P: 1

P2 1

P3 1

P4 1

P5 1

P5 * 1

Figura 4.23 Copertura di più funzioni (continua)

La nuovatabella non presenta essenzialità: si procede quindi a verificare Pesi-


stenza di relazioni di dominanza. Si nota che P3 domina P4 e che P1 domina
1 I8 Reti combinararie

P6, quindi le righe corrispondenti a P4 e P5 possono essere eliminate. Stando


alla definizione di dominanza fino ad ora utilizzata si ha anche dominanza di P5
su Po. Per le funzioni a più uscite, tuttavia, è necessario tenere conto del costo
degli implicanti. Nel caso in esame Po ha un costo pari a 0 in quanto è già stato
scelto e quindi eliminarlo per dominanza potrebbe impedire di sfruttarne il riuso
in un’ altra funzione. In questo caso, quindi, P5 non domina P0.
Da questa considerazione emerge una nuova definizione per il principio di
dominanza, di fatto si tratta di una estensione della definizione già data.

Definizione 4.10 Per una funzione a più uscite, la riga i domina la riga j se
l Uîmplicante H copre tutti i mintennini che copre l Himplìcanre Pj più almeno
una ed il costo di P; è minore 0 uguale al costo di Pj.

Anche il principio di dominanza di colonna deve essere ridefinito precisando che


è applicabile solo tra colonne (cioè mintermini) della stessa funzione.
Applicando le definizioni così estese, si ottiene la tabella di Figura 4.24(a) in cui
emergono due relazioni di essenzialità secondaria: P1 è essenziale per f; e P3 è
essenziale per fl. La nuova copertura che si ottiene è pertanto:

C(f0)=@ C(f1l= {PUaPSJDB} C(f2)={P8aP1l‘


Le righe corrispondenti a P1 e P3 non sono eliminate dalla tabella ma il loro
costo passa a 0. Dopo l’ eliminazione delle colonne coperte, la situazione è quella
mostrata in Figura 4.24(b).

fo f1 fz fo
O 2 4 5 6 7 5 7 2 6 0 2 4 5 6 7
PD x x 0 P0 >< D

P1 1 P1 0
P2 l P2 l
P3 1 P3 0
P5 l P5 l
P? X l P7 l

(a) (b)

Figura 4.24 Copertura di più funzioni (continua)

La nuova tabella non evidenzia alcun implicante essenziale, tuttavia è soggetta a


semplificazione grazie alla dominanza di riga di P7 su P2 ed alla dominanza di
c0l0nnadi0su4,di2su6edi7su5.
Il risultato è mostrato in Figura 4.25 (a) in cui non si ha Fessenzialità ma emerge
la dominanza di P3 su P7. Dopo Peliminazione di P7, come mostrato in Figura
4.4 Minimizzazione esatta i’ I9

4.25(b), P3 diviene essenziale secondario e va ad aggiungersi alla copertura. Si


noti che la scelta di P3 non aumenta il costo complessivo della copertura:

C(f0) = {P3} C(f1)={P0,Ps.P3} C(f2) = {Ps,P1}


Dopo Peliminazione di P3 e della colonna coperta si ottiene la tabella di Figura
4.25(c) in cui non si riscontrano né dominanze né essenzialità. Si noti che P5 non
domina P3 e P1 in quanto il suo costo e maggiore.

fi
O 2 7

fi
0 0 2
0 P0 X O

0 P1 X O

l P5 X X l

(b) (C)

Figura 4.25 Copertura di più funzioni (continua)

Rimangono ancora da coprire i due mintermini 0 e 2. Sì hanno due possibili


scelte: {P5} oppure {F9, P1}. La prima, apparentemente più vantaggiosa è di
fatto da scartare in quanto ha costo 1, mentre la seconda ha costo 0 poiché i due
implicanti P9 e P1 fanno già parte delfinsierne di copertura. Si ottiene quindi:

CUo) ={PU«P1-.P3} C(f1) = {PÙ1P35P8} CUÈ) = {P11 P8}

L’ insieme di copertura complessivo è:

CD?) = CUO) U CUCI) U C03) = {PÙa P1; P3. P8}

ed ha cardinalità [C (Fjf z 4. La soluzione trovata ha quindi la forma:

fa = x’ 2'111’ + a/zw’ + zfiyw


f; z fin!’ + xfiyîn + xz
fg = 13'221." + x2

È bene riscrivere questa soluzione evidenziando gli impìicanti condivisi, cioè:

h=%+m+@ %=ffiN @=fW


f1=Q0+q2+Q3 <11=-’Iî'Zw' 93:31?
h=m+%
120 Reti combinatori}?

È bene notare che il criterio di costo utilizzato, cioè quello mirato alla riduzione
del numero globale di implicanti necessari per la copertura, garantisce che la so-
luzione individuata è minima, indipendentemente dall’ordine in cui le proprietà
di essenzialità e di dominanza sono applicate. Sono tuttavia molti i casi in cui ìa
copertura minima non è unica: in tal caso il metodo visto garantisce ancora Findi-
viduazione di una soìuzione minima ma la soluzione specifica trovata dipende dal
procedimento seguito. Un semplice esempio chiarisce questo punto. Si consideri
la tabella di copertura di Figura 4.26(a).

P 0 Iyz P O

Q 1 myz P>< ><0 Q 1

R 1 P>< x0 Q x1 R 1

S 1 R><>< 1 R><>< 1 S 1

(a) (b) (C) (d)

Figura 4.26 Dipendenza della copertura dal procedimento adottato

La tabella non presenta essezialità ma solamente dominanze. I procedimenti de-


scritti nel seguito mostrano come l’ordine di applicazione dei diversi criteri porta
a soluzioni differenti ma equivalenti.

(i) Si applica la dominanza di riga di P su S e di R su Q, eliminando le righe


S e Q (Figura 4.26(b)). A questo punto sia P sia R divengono essenziali
secondari e la copertura risulta {R R} con costo 1.

(ii) Si applica la dominanza di riga di P su S, eliminando la sola riga S {Figu-


ra 4.26(c)). Solo P diviene essenziale secondario e la tabella che ne deriva
è ciclica con Q ed R equivalenti dal punto di vista del costo. Si ottengono
due coperture equivalenti {R Q} e {P, R}, entrambe a costo l.
(iii) Si applica la dominanza di colonna di z su elimina il mintennine
2c e si
a: (Figura 4.26(d)). Non essendovi alcun implicante essenziale si procede

notando che P domina S e che, dopo Feliminazione di S P diviene essen- ,

ziale secondario e la tabelia risultante è ciclica, con Q ed R equivalenti. Si


ritrovano quindi ìe due coperture {P, Q} e {P, R} a costo 1.

Questo esempio mostra che solo procedendo come descritto nei casi (ii) e (iii) si
ottengono entrambe le soluzioni possibili, mentre seguendo il procedimento del
caso (i) una delle due soluzioni va perduta.
Quanto esposto fino a questo punto si basa sull’uso della cardinalità dell’insie-
me di copertura come criterio di costo. È tuttavia possibile considerare anche
4.4 Minimizzazione esatta 121

il costo in termini di numero di letterali della soluzione complessiva. In questo


caso il costo iniziale di un implieante è pari al numero di letterali che lo compon-
gono. Quando Fimplicante è selezionato per essenzialità primaria o secondaria
per una data funzione e rimane nella tabella di copertura, il suo costo passa a 1.
Questa scelta è determinata dal seguente ragionamento. Sia f, una funzione par-
zialmente coperta da un insieme C,- = {Qm , Qk} di implicanti e sia P
. . . C,- QÉ

un implicante già scelto per la copertura di urfaltra funzione. Risulta quindi:

fé:Q0+---+Qk
con costo l(C,-) =MQg) + + MQk). Scegliere P anche per la copertura di
. . . f,»

significa riscrivere questa funzione come:

fr=Q0+m+Q1s+q Q=P
in cui si è evidenziata la condivisione di P introducendo 1a funzione ausiliaria
q. Il costo della nuova copertura di f; è pertanto MQ) + 1. La scelta di P ha
quindi aumentato di uno il costo della copertura. Adottando questo tipo di scelta
per Faggiornamento del costo degli irnplicanti, si può ripetere il procedimento
di copertura per Pesernpio già considerato. La tabella iniziale riportata in Figura
4.22 diviene, con i nuovi costi, quella di Figura 4.27.

fa fi fa
024567045 71OHi4152 6l01lÌl4l5 IQIQINÌINÌUJDJLDUIUJ
PD X x

P1 è >< ><

P2 i

P3
P4
P5
P6
P?
P3

Figura 4.27 Copertura di più funzioni: minimizzazione dei letterali

Si nota, come nel caso precedente, che Po è essenziale per fl e che Pg è essenziale
sia per f1 sia per fg. La copertura iniziale risulta pertanto:

C(f0) = 9 C(f1)={P0,Ps} C(f2) = {P8}


Dopo questa scelta P8 può essere eliminato dalla tabella, mentre P0 rimane pre-
sente ma il suo costo passa ad 1. Inoltre si eliminano tutte le colonne di fl ed f;
coperte dai due implìcanti. Si ottiene così la tabella di Figura 4.28.
i’ 22 Reti combinatori}?

fa f: f:
0245675726

È\JÌNJI\JLIJUJUJUJI—
P5 x

P1
P2
P3
P4
P5
P5
P?

Figura 4.28 Copertura di più funzioni (continua)

Non essendovi essenzialità secondaria si procede alîanalisi delle dominanze. Si


nota che P3 domina P4, a differenza del caso precedente, P1, che pur copre più
rninterrnini di P5, non domina quest’ ultimo in quanto i} costo di P5 è minore del
costo di P1. Soîtanto P4 può "quindi essere eliminato dalla tabella. Si notano
inoltre alcune dominanze di colonna: in fa 0 domina 4, 2 domina 6 e 7 domina 5
ed in fg i due mintennini 2 e 6 si dominano reciprocamente e pertanto uno dei due
può essere eliminato, per esempio il 6. Si ottiene così la nuova tabella riportata in
Figura 4.2901), che evidenzia due nuovi essenziali secondari: P3 per fl e P5 per
fg. Le nuove coperture sono quindi:

CUÎJÌZÙ C(Î1)={PO=P8=P3} Clfz): iPapPti}

Lîimplicante P5 può essere eliminato poiché non copre altri mintennini, mentre
P3 rimane presente ma il suo costo passa a 1. Eliniinando anche le colonne co-
perte in fl ed fg si ottiene la tabella mostrata in Figura 4.2903). Si tenga presente
che anche P2 e stato implicitamente eliminato poiché dominato da un irnplicante
essenziale (P3). A questo punto P5 domina P1 e P3 domina P7, quesfultimo
solamente per ragioni legate ai costo. Si noti che non si può affermare che P3
domina anche P5 poiché quesfultimo ha costo inferiore.
L’ eliminazione di P; e P7 produce la nuova tabella riportata in Figura 4.29(c), in
cui emerge l’ essenzialità secondaria di P3 e P5. La scelta di questi due irnplicanti
conclude il processo di copertura e conduce alla soluzione:

CUÎJ) E {Rîa-PS}
C(f1)={P0,PsaP3}
Clfz) {P8406}
=
4.4 Minimizzazione esatta 123

fa f1f2
027572

IOhJbJLuUJb-Jfl

lxJtxìh-UJÌ-fl
(b)

Figura 4.29 Copertura di più funzioni (continua)

Per calcolare ii costo in letterali di questa soluzione è necessario evidenziare i due


implicanti condivisi P3 e P8 mediante due funzioni aggiuntive go e qi. cioè:

fa = Q0 + 58"10’ €10 = 15'919

fi = x’z"u-" + a0 + a1 qi = x2

f2 Z '21 + 2-10’

Grazie a questa nuova scrittura, il costo è calcolabile come il numero totale di


letterali che compaiono a destra del segno di uguale nelle varie espressioni e ri-
sulta quindi 16. E utile confrontare le soluzioni ottenute utilizzando i due criteri
di costo degli implicanti e dei letterali. La Tabella 4.1 riassume tali soluzioni e ne
mostra i costi, confermando che i metodi Visti minjmizzano il costo scelto come
criterio di valutazione della qualità della soluzione.

Minimizzazione implicanti Minimizzazione letterali


fa =q0+f11+412 f0=q0+î3"fl"
Funzioni f; = qo + qg + 93 fi = m’z"w’ + qo + qi
Î2=QI+Q3 f2=Q1+ZîIV
Q9 = affina’ qg = fyw
Implicanti Q1 = sflzw’ q] = zrrz

condivisi q; = cfiyu:
{I3 Z ÎZ

Copertura C : {Pg,P1,Pg,,Pg} C = {F0, P3,P5,P5_._ P5}

{C (F )| 4 implicanti 5 ìmplicanti
l (C ( 17)) 19 letterali i6 letterali

Tabella 4.1 Confronto tra minimizzazione di letterali e implicantì


l‘ 24 Reti COÌÎIÒÙTGÎOTÌE

4.4.3 Metodi di supporto alla copertura


Nella soluzione dei problemi di copertura i criteri di essenzialità e di dominan-
za permettono di semplificare la tabella iniziale e parallelamente procedere alla
costruzione degli insiemi di copertura. È possibile che ad un certo punto del pro-
cesso di copertura la tabella non presenti né essenzialità né dominanze di riga o di
colonna: una tale tabella e definita ciclica. Come esempio si consideri la tabella
di Figura 4.30, in cui i costi sono espressi come numero di îetterali.

a? y z w

P >< >< l

Q x 3
R >< 3

S X >< 2

Figura 4.30 Tabella di copertura ciclica

Per risolvere un tale problema e necessario ricorrere a metodi diversi da quelli


esaminati fino a questo punto. Due di questi sono descritti di seguito.

Metodo di Petrick

ll metodo di Petrìck trasforma il problema della copertura in problema un


algebrico. La tabella ciclica di Figura 4.30 rappresenta le seguenti affermazioni:

o si devono coprire tutti i mintermini;

o ogni mintennine può essere coperto da più implicanti.

La prima affermazione corrisponde ad un insieme di condizioni in AND logico,


mentre la seconda corrisponde ad più insiemi di condizioni in OR logico. L’ al ge-
bra booleana consente quindi di tradurre il problema in una forma analitica. Siano
urna, irnl, nrk i mintennini da coprire e siano S0, S1, S“ un insieme di variabili
. . .

booleane tali che Sj : 1 se Timplicante Ij appartiene all’insieme di copertura


della funzione, indicato con C(f Sia inoltre c(m) una funzione booleana che
vale l se ii mintennine m risulta coperto. La condizione di copertura delfinbera
funzione può essere espressa come:

dmg) cfiml)
- - . . . - cfingg) = 1 (4.13)

Un generico mintermine mi può essere coperto da più di un implicante. Tale


condizione è esprimibile in forma algebrica come:

(Km-i) = 31,0 + 152,1 -|— . . - + San;


4.4 Minfmizzazfone esatta 125

Combinando la condizione di copertura delìa tabella con le singoie condizioni di


copertura dei minterînini si ottiene:

(SQ,Q+—--+S0:nfl)'(S1,D+---+S1:n!)'...'[S}g,(}+---+Sk!nk) =1
Questa espressione è un prodotto di somme ed esprime 1’ insieme delle condizioni
di copertura. Si sviluppino ora i prodotti e si riscriva Pespressione come somma
di prodotti. ll risultato ha la forma:

50.050,; ' ' ' 50,50 + 51,0S1,1“'5‘1,:g + - - - + SrnSni "-511, =1


Questa nuova espressione esprime ancora le condizioni di copertura ed ha una
forma facilmente interpretabile. Infatti, essendo una somma di prodotti, vale 1 se
aimeno uno dei termini vale 1 ed ogni termine vale 1 se tutti i fattori valgono 1.
Dato che i fattori dei prodotti indicano Pappartenenza di un dato implicante alla
copertura, allora ogni prodotto indica una possibile copertura della funzione. Se
ne deduce inoltre che i1 numero di letterali in tali prodotti è i1 numero di implicanti
necessari alla copertura. Pertanto la copertura ottima è quella rappresentata dal
termine con il minor numero di Ietteraii.
A titolo di esempio, si faccia riferimento alla tabella ciclica di figura 4.30. Sia
p = 1 se P E CU’), q 1 se Q E C(f) e così via. Le condizioni di copertura dei
=

singoli mintermini sono le seguenti:

C03) =p+q; da) "la-H"; CM =T+8; 60-“) =S+P


pertanto la condizione (4.13) di copertura della funzione risulta:

Lv + q)(q +700" + 3X5 +1?) = 1

Trasformata tale espressione in forma di somma di prodotti si ottiene:

(p + albi + Ho" + SMS + p) = (p? + 9X19?" + S) =

-—- pr+prs+pqr+qs=
z pr-f-gnszl
Dalle proprietà delPalgebra booleana si ha:

pr+gs=1 => pr=1oppureqs=1


Le due condizioni corrispondono a due possibili coperture, in questo caso
equivalenti in quanto composte dallo stesso numero di implicanti:

C10") = {Ps3}
52D") = {C225}
126 Reti combinato rie

Si tenga presente che le due soluzioni trovate sono equivalenti se e solo se il cri-
terio di costo utilizzato è quello del numero di implicanti. Il metodo di Petrick,
tuttavia, permette anche di affrontare il problema della copertura di tabeìle cicli-
che quando il criterio di costo è quello del numero di letterali. In particolare, ii
metodo rimane invariato fino al punto in cui si ottiene una espressione sotto for-
ma di somma di prodotti. Quello che cambia è il criterio di scelta tra le soluzioni
possibili. Indicando infatti con {(13) il numero di letterali dellîmplicante 1-, il
costo di una copertura Ù(f) Ho, I1,
= ,It} risulta:
. . .

non) = Ì tua
j=0
Ancora con riferimento alFesempio precedente, in cui i costi sono:

5(P)=1; MQ) = 3; EU?) = 3; 305') = 2;


si ha:

Z(C1(f)) = l(P) +Z(R) = 1 +3 = 4

l(C2(f)) = l(Q) +16) 3 + 2 = = 5


pertanto la copertura C2 (f) = {C}, S} risulta ottima.

Branch 8: bound
Il metodo noto con il nome di branch 8c bound fornisce un approccio generale
a una moltitudine di problemi di ottimizzazione combinatorìa e può essere usato
anche per la soluzione di tabelle cicliche, in particolare quando tali tabelle hanno
dimensioni notevoli.
Un problema di ottimizzazione combinatoria consiste nellîdentificare la combi-
nazione ottima di un numero finito di variabili discrete, secondo un prefissato
criterio di valutazione. Nel caso specifico della copertura di tabelle cicliche, le
variabili sono gli implicanti e il criterio di costo è la cardinalità o il numero di let-
terali della soluzione individuata, nel rispetto del vincolo che impone la copertura
di tutti i mintennini.
Il problema principale in questo tipo di ottimizzazioni è che non esiste alcun
modo per determinare se una data soluzione è ottima o meno. In generale, per
determinare se una data soluzione risponde ai requisiti di ottimalità, è necessa-
rio un confronto con tutte le altre soluzioni possibili. Una tale necessità rende
rapidamente intrattabìli problemi di dimensione crescentez e richiede pertanto
Findividuazione di strategie alternative.

lflottimizzazione combinatorìa appartiene alla classe dei problemi NP-completi [HareL 1987].
4.4 Mfnimizzazione esatta 127

L’ idea di base del branch 8L bound e la seguente. L’ enumerazione di tutte le pos-


sibili soluzioni ad un dato problema può essere effettuata facendo riferimento ad
una struttura ad albero in cui ogni nodo interno rappresenta una soluzione (par-
ziale o completa) del probìema. La costruzione delle nuove soluzioni avviene
effettuando tutte le possibili scelte a partire da una data soluzione parziale: que—
sta faseuè detta branching. Procedendo in questo modo senza alcun criterio si
otterrebbe una enumerazione esaustiva di tutte le soluzioni che, come accennato,
è spesso troppo onerosa. Ai fine di semplificare Fanalisi, si ricorre alla definizio-
ne di un limite di costo, o bound, che permette di evitare la costruzione esplicita
di interi sottoalberi ogniqualvolta una soluzione parziale ha un costo maggiore o
uguale al limite che è stato fissato. Il limite non è un valore costante, bensì coin-
cide con il costo minimo fra quelli di tutte le soluzioni già individuate. In questo
modo, se una soluzione parziale ha costo maggiore di quello di una soluzione
completa già trovata, è possibile non indagare ulteriormente quel sottoalbero in
quanto porterà certamente a soluzioni non ottime.
Si consideri, come esempio, la tabella ciclica di Figura 4.31, in cui sono anche
riportati i costi dei vari implicanti.

P61?"
XXCfl
ÎÎJQÙUÌL

www-

Figura 4.31 Tabella di copertura ciclica

L’analisi esaustiva di tutte le possibili soluzioni parte dallînsieme vuoto e, ad


ogni passo, aggiunge ogni possibile implicante alfinsierne di copertura, fino a
quando la condizione di copertura non risulta soddisfatta. Partendo da]l’insie-
me vuoto, la sceita può ricadere su uno qualsiasi dei quattro implicanti: questa
soluzione può essere rappresentata dall’albero parziale di Figura 4.32.

EI

{Ali {BP {C13 {D13

Figura 4.32 Costruzione dell’albero iniziale

Dal momento che nessuna delle coperture è completa è necessario procedere alla
costruzione di nuove soluzioni. La scelta del nodo da cui partire è arbitraria e, per
esempio, potrebbe essere semplicemente basata sulfordinarnento lessicografico
128 Reti combinarorie

degli implicanti. Si seleziona quindi la copertura parziale {A} e si procedere


costruendo le tre nuove possibili soluzioni parziali, mostrate in Figura 4.33.
La soluzione {A,D} è una soluzione completa poichè soddisfa i vincoli di
copertura e pertanto il suo costo, pari a 4 letterali, diviene il bound iniziale.

{il

{Ail {se {OP {m3

e»??? Mar
Figura 4.33 Individuazione di un bound

Continuando la costruzione dell’albero, si noîa che il costo della soluzione parzia-


le { A, B} è minore del bound e quindi si procede alla generazione delle nuove so-
luzioni ottenendo {XL B, C} e {A} B, D}, entrambe a costo maggiore del bound
e quindi da scartare. L’ altro ramo ancora da espandere e quello corrispondente al-
la copertura parziale {A, C }: dato che il suo costo non e inferiore al bonnd, ogni
soluzione completa avrà costo maggiore e sarà quindi scartata. La Figura 4.34
mostra la nuova soluzione. In questo caso si nota che Peffetto del bound è appun-
to quello di evitare la costruzione esplicita di un sottoalbero in cui le soluzioni
saranno sicuramente peggiori di quella già trovata.

il

{Al-l {Blg {C33 {Dls

{AHÈP

rA;-B;6‘}-“ @7379?“

Figura 4.34 Branching limitato dal vincolo imposto dal bound

A questo punto tutto il sottoalbero dipendente dalla scelta iniziale di A è stato


esaminato e la ricerca continua a partire dalla nuova scelta iniziale dell’irnpli—
cante B. Procedendo in modo analogo si ottiene Falbero di Figura 4.35 che non
porta ad alcuna soluzione e si arresta alle soluzioni parziali «[8, C}5 e {Bg D}?
La copertura {B, A}, essendo già stata considerata, non viene ripetuta. poiché
superano il bound. Infine rimane la scelta iniziale di C‘ che porta alla copertura
parziale «[0, D}, anche questa scartata poiché maggiore del bound.
4.4 Minfmizzazione esatta r‘ 29

i6?" ‘P5P

6
Figura 4.35 Albero finale

In conclusione la soluzione ottima risulta «[14, D} con costo 4. Si noti che con que-
sto metodo di ricerca vincolata si sono analizzate complessivamente 11 soluzioni
(parziali e complete) contro le 14 necessarie per una ricerca esaustiva. Poiché
in diversi punti Pevoluzione del metodo dipende da scelte arbitrarie, è intuitivo
che si può pervenire a alberi strutturati in maniera differente. Ciononostante si
dimostra che le soluzioni individuate non dipendono da tali scelte.
Una vasta sperimentazione deIFaIgorÌtmo di branch 8L bound a molte classi di
problemi di ottimizzazione combinatoria, tra cui quello della copertura ottima di
tabelle cicliche, ha mostrato che Pindividuazione della soluzione ottima richiede,
in media, Panaîisi del 15-20% delle soluzioni rispetto a un approccio esaustivo.
In altre parole, questa tecnica semplifica il problema di un fattore pari a circa 5
volte. Si noti, tuttavia, che Pefficienza di questa tecnica dipende fortemente dal-
Pordine con cui vengono effettuate le scelte di volta in volta durante il branching.
Il caso pessimo e quelîo in cui le soluzioni vengono costruite e analizzate secondo
un ordine di costo decrescente: in questo caso a ogni nuova soluzione corrispon-
de un costo inferiore al bound per cui nessun sottoalbero può essere scartato e la
soluzione ottima è Pultima a essere analizzata.
Dato il largo uso di questo algoritmo in numerosi ambiti applicativi, è utile darne
una formalizzazione mediante lo pseudo-codice di Figura 4'.36.
Nel caso della ricerca di una soluzione al problema della copertura, Finsieme ini-
ziale 80 contiene la copertura vuota {il}. La funzione Selenio seleziona in modo
casuale una soluzione dallînsieme S e la funzione brancho genera le nuove co-
perture k1, k2,. . , km a partire dalla copertura selezionata k. Infine la funzione
.

c0st() valuta il costo della copertura 19,; secondo un criterio prefissato ma arbi-
trario {numero di letterali, numero di implicano, ...). Al termine deIFaÌgoritmo
sol-ittico. è la soluzione ottima con un costo pari a incanti.
130 Reti combinarorie

S = «S0
soiution = 9
bound = oc
while S 75 do (El

k = seiecflS)
S S
= —

{k1,kg, . , km}
. branchUc)
. =

for i: 1 to m do
b; = costfih)
if b,- < bound then
if k2- è una soluzione completa
then
soiutiÎon = ki
boun-d = bi
eîse
5 = 5 u {si}
end if
end if
end for
end whiie
Figura 4.36 Algoritmo Branch & Bound

4.5 Minimizzazione euristica di reti a due livelli


Il metodo delle mappe di Karnaugh, come già evidenziato, è molto utile ed imme-
diato per la soluzione di problemi semplici quali la sintesi di funzioni a quattro 0
al più cinque variabili. Per problemi a più variabili ed eventualmente a più uscite
il metodo di QuineMcCluskey offre un approccio alquanto generale, estendibile
e automatizzabile. Grazie a questo metodo è quindi sempre possibile pervenire al-
la soluzione ottima su due livelli. Quando la dimensione del problema (numero di
variabili e numero di funzioni) cresce, la complessità computazionale delfalgo-
ritmo basato sul metodo di Quine-McCluskey diviene presto eccessiva, rendendo
questo approccio impraticabile.
Si tenga inoltre presente che in molti casi, specialmente per problemi di grandi
dimensioni, non è sempre strettamente indispensabile trovare la soluzione ottima
ma spesso una soluzione sub-ottima è accettabile. Per individuare tale soluzione
si segue un procedimento, ancora algoritmico, ma iterativo.

4.5.1 Approccio iterativo


L’ idea che sta alla base del procedimento di ottimizzazione euristico per le reti
su due livelli è quella del miglioramento iterativo della soluzione, a partire da
4.5 Minimizzazione euristico di reti a due livelli 131

una data soluzione iniziale. Ogni iterazione ha io scopo di costruire una nuova
copertura della funzione data mediante le seguenti operazioni:

(i). Riduzione. Alcuni impiicanti primi appartenenti alla copertura sono spez-
zati in implicanti non più primi in modo che la nuova copertura sia valida e
abbia cardinalità uguale alla copertura di partenza.

(ii) Espansione. Alcuni implicanti non primi appartenenti alla copertura sono
espansi fino a diventare primi. Eoperazione di espansione deve garanti-
reche i nuovi implicanti siano validi, ovvero non coprano alcun elemento
deIPoff-set della funzione. La cardinalità della copertura rimane invariata.

(iii) Copertura non ridondante. La copertura ottenuta al passo precedente è pri-


ma per costruzione, cioè costituita solo da iniplicanti primi. Questa trasfon
rnazione ha lo scopo di eliminare gli impiicanti completamente ridondanti,
potenzialmente riducendo la cardinalità della copertura.

Questo procedimento di trasformazione viene ripetuto fino a che si ha un miglio-


ramento del costo della rete. Su questa idea di base sono stati sviluppati, a partire
dagli anni "l'0, diversi algoritmi di cui il più noto è Espresso [Espresso 1984]. Nel
seguito si farà riferimento ad una versione leggennente semplificata di questo al-
goritmo, alle trasformazioni che realizza e alle eniistiche su cui si basa. La Figu-
ra 437 mostra la parte centrale deil’ algoritmo di Espresso. In questa figura i sim-
boli F, D e R indicano rispettivamente Fon-set, il don’t care-set e Foff-set della
funzione f. Il punto di partenza è una copertura valida della funzione in termini
di on-set e don’t care-set. A partire da questi insiemi, la funzione complemenfl)
calcola Foff-set poiché, come sarà chiarito più avanti, questo è necessario ad al-
cune delle trasformazioni. Ijaìgoritmo si compone di due cicli nidificati basati

sulla valutazione della qualità della copertura ottenuta. Dalgoiitmo impiega due

R = coînplemcntfi? U D)
repeat
c’); = cosflF)
repeat
€51 = IFI
F = reducefii‘, D)
F = expand{F, R)
F r: irrcdu-ndanflfi D)
until [F| Z dal
F‘ iu.st_gosp(F. D. R)
=

until cosflF) 2 o;
Figura 4.37 Algoritmo Espresso semplificato
132 Reti COÌTIÎJÎÌIUÎOTÎE

differenti criteri di costo: la cardinaîità della copertura, indicata con |F ed un ,

costo cost(F) calcolato come combinazione della cardinalità della copertura e


del numero di letterali. Le tre funzioni cxpando, reduceo e irrednsndanìfl)
reaiizzano le trasformazioni descritte, mentre la funzione ia.st_gasp() adotta una
differente euristica per produrre una nuova soluzione.

4.5.2 Descrizione del problema e soluzione iniziale


La natura delle specifiche di circuiti combinatori di grandi dimensioni rende spes-
so scomodo Fuso delle tabelle della verità, che, esplicitando i valori delle funzioni
per tutte le combinazioni degli ingressi, risultano di dimensioni notevoli, se non
addjiittura intrattabili. Un modo più comodo e compatto di descrivere una o più
funzioni combinatorie si basa sulle tabelle delle implicazioni, ovvero su tabelle in
cui alcune combinazioni degli ingressi sono espresse in forma compatta mediante
Fuso del simbolo di don’t care. Si tenga inoltre presente che tali gruppi sono già
evidenti nella specifica stessa e pertanto non richiedono alcuna elaborazione per
essere individuati. Sì consideri, per esempio, la seguente specifica:

Realizzare una rete combinatoria dotata di tre ingressi x, y e z e di 1m ’u-


scita f aire assume valore 1 quando a: Vaie 0, 0 quando tutti gli ingressi
valgono 1, mentre non è specificata negli altri casi.

La tabella della verità che descrive questa funzione è riportata in Figura 4.38(a)
e, come di consueto, elenca esplicitamente tutte le combinazioni degli ingressi.
La stessa specifica può essere espressa in forma compatta mediante la tabella
di implicazione di Figura 4.38(b) in cui la prima riga corrisponde alla parte di
specifica che indica che f aszviime valore l quando x vale 0 indipendentemente

dal Valore assunto da y e z.

ami/EL 11/27
0001 0———'î—
0011 100-
0101 101-
0111 110—
100» 1110
101- ’

110—
111i
(a) (b)

Figura 4.38 Tabella della verità e tabella delle implicazioni


4.5 Minimizzazione euristico di reti a due livelli 133

Come già visto in precedenza una funzione e spesso descritta tramite on-set e
don’t care-set, espressi come elenco delle combinazioni di ingresso cui corrispon-
dono. gli uno e i don’t care della funzione. Grazie ai raggruppamenti già evidenti
nella tabella deile implicazioni e possibile generalizzare la forma deìla specifi-
ca di on—set e don’t care-set ricorrendo ad una rappresentazione algebrica delle
combinazioni delle variabili di ingresso. Per la funzione in esame la specifica è:

fica y, z) = Elfi + Aixrfizî x952, Iyz’?


oppure, con riferimento alla notazione utilizzata per l'algoritmo Espresso:

f F
: = {mi}, D = {zy’2’,zy"z,zyz'}

Si noti che Yinsierne F costituisce non solo una parte della specifica della
funzione f, rna anche una sua copertura valida.

4.5.3 ‘Trasformazioni
Le tre trasformazioni che costituiscono il corpo del ciclo dell’aìgoritrno presenta-
to al paragrafo precedente operano su una copertura e producono come risultato
una nuova copertura.

Espansione

Lo scopo di questa trasformazione, indicata nelfaigoritmo con il nome expo-arido


e quello di produrre una copertura prima, cioè costituita da soli implicanti primi,
a partire da una copertura valida ma non prima.
Dal punto di vista algebrico Fespansione di un irnpîicante corrisponde alla eli-
minazione di un letterale dallîmplicante di partenza. Sia P9 = zgz1 .--Irkn.n.ì
l’ irnplicante iniziale: Fespansione rispetto aìla variabile x0 produce il nuovo irn-
plicante P1 = x1 -.:1:;,_1, non necessariamente valido perla funzione in esame.
- -

Si tratta quindi di determinare se il nuovo implìcante P1 copre o meno degli zeri


della funzione, ovvero se Fintersezione tra Yinsierne dei minterrnini coperti da
P1 e Foff-set della funzione è vuoto oppure no. A tal fine e sufficiente calcolare
il prodotto P1 f’: se vale ìdenticarnente zero, allora Fimplicante P1 è valido, al-
trimenti non lo è. Questo procedimento è giustificato dal fatto che Yoff-set R di
f = F U D coincide con Fon-set di f’ Per chiarire questo procedimento è utile
.

riferirsi ad un esempio. Si consideri la funzione f (z, -y, z) definita come:

f F
r = {:B’yz,yz'}= D = {aîeîz}
134 Reti combinatori?

è
E}

6a

Z3

E)
B

“Q3

ii)
LHJ
(a) (b

Figura 4.39 Espansione di un implicante

e mostrata in Figura 4.39(a) e si voglia procedere all’espansione dellfimplican-


te P0 = afyz. Per prima cosa è necessario determinare Foff-set R, ovvero la
funzione f ' Procedendo in modo algebrico si ha:
.

f! (I»"yz)’(y2')'(a3’y’z)’
= (93 + y’ + z’)(y" + 2X3 + y + z’)

= arz+xy’ +y’z'
Espandendo rispetto a m si ottiene il nuovo implicante P1 z yz che, come mostra
la Figura 4.39(b), non è valido. Calcoìando il prodotto P1 si ha infatti: f’
Plf’ : yzfizzz + aîy’ + yfiz’) : asyz % 0

Un’altra possibile espansione di P0 è quella rispetto alla variabile y. In questo


caso si ottiene P2 : se’ z, ovvero Pimplicante mostrato in Figura 4.39(c). Questo
nuovo implicante è valido infatti risulta:

Pgf’ = m'z(mz + aîy’ + yfiz’) = 0

Il procedimento di espansione di ogni implicante procede fino a quando Fimpli-


cante risulta primo, ovvero fino a quando ogni ulteriore espansione genera un
implicante non valido. Una volta terminata la fase di espansione vera e propria, la
trasformazione prevede Feliminazione degli implicanti non primi completamente
coperti. NeIFesempio considerato Fimplicante afiyz è coperto dal nuovo impli-
cante m’ z e quindi può essere rimosso. Si noti, per contro, che Pimplicante 219g’ z
non appartiene alla copertura bensì ai don’t care set e pertanto non può essere
eliminato. La nuova copertura risulta quindi F = {a:’z, yz’
Il procedimento descritto fino a questo punto non specifica due aspetti importan-
ti e che influiscono notevolmente sulla qualità della soluzione ottenuta: Pordine
con cui scegliere i letterali rispetto cui effettuare Fespansìone e Fordine con cui
scegliere gli implicanti da espandere. La soluzione adottata per la scelta dei lette-
rali è spesso semplicemente quella di seguire un ordine prefissato, eseguire tutte
4.5 Minimizzazione euristico di reti a due livelli 135

le espansioni possibili e selezionare a posteriori la soluzione più soddisfacente. Il


secondo problema è invece molto più critico e richiede Fuso di alcune euristiche
di scelta che tendano ad individuare quegli implicanti che più probabilmente po-
tranno essere espansi senza essere coperti da altri impìicanti. Una di tali euristiche
si basa sulla codifica nota come positional-cube e mostrata in Tabella 4.2.

Codifica Significato
01 1

10 0
l1 —

Tabella 4.2 Codifica posiîional-cube

Per esempio, considerando una funzione di quattro variabili mg, 41:3, Firnpli- . . .

cante mgxfèxg è codificato come D1 11 10 10. Utilizzando questa codifica si co-


struisce una tabella in cui sono riportati tutti gli impiicanti e si sommano algebri-
camente i bit dei simboli codificati, colonna per coìonna. Si consideri per esempio
1a copertura mostrata in Figura 4.40(a) e la corrispondente tabella di codifica.

M300
170T
01 11 10
Implicante ma x1 50g
cena

21:3
0000 0
5033535 O 1 1 1 1 U 1 0
010 0 O xfizflxgzg 10 10 0 l 01

llmo 33113233

xgxàzgzg
1 1

O 1
O 1

1 O
O

0
1

1
O 1

10
amo Totali: 23 32 13 22

(a) (b)

Figura 4.40 Euristica di selezione degli irnplicanti per l'espansione

il peso degli implicanti è calcolato come prodotto scalare tra la matrice delle
codifiche ed il vettore dei pesi totali delle colonne. Per l'esempio in esame si ha:

01111010 11
10100101 T 10
11010101 23321324-12
01100110 11

Una volta determinati tutti i pesi degli ìmplicanti si scelgono per primi quelli con
peso minore e, in caso di uguai peso, quelli con un numero maggiore di letterali.
I pesi e Fordine di scelta (rank) sono indicati in Figura 4.41.
I 36 Reti combinarorie

Implicante x0 cc; l'2 x3 Peso Rank

N-hh-UJ
2303:5255‘; O 1 l 1 1 O 1 0 11
zfixîxgmg 1 0 1 0 0 I 0 l 10
171132273 1 1 0 1 0 1 0 1 12
2931x233 O I i 0 O 1 l 0 11

Totali: 2 3 3 2 I 3 2 2

Figura 4.41 Pesi e ordine di scelta per la selezione degli implicanti per Pespansione

Nel caso delresempio Pordine di scelta è quindi zzz-gmjargatg, argxizgxg, xoxgxg


ed infine 21:12:213. Di questi, solamente i primi due potranno poi essere espan-
si, producendo come risultato una copertura prima. Questo esempio mostra che
Peuristica adottata porta alla selezione di buoni candidati all’espansione, come si
può verificare analizzando la mappa di Karnaugh di Figura 4.40(a).

Riduzione
La riduzione, indicata nelPaigoritmo Espresso dalla funzione reduceO, opera
nella direzione opposta delfespansione trasformando una copertura prima in una
nuova copertura non prima con uguale cardinalità.
La riduzione di un implicante comporta Paggiunta di un nuovo letterale in for—
ma naturale oppure in forma complementare. Detto infatti Pg = mg Imk’ la - -

riduzione rispetto alla variabile 03,, con n > k produce due nuovi ìmplicantì
P1 : 55g - 33m,” e P2
- - 3:3 42:19:12; La condizione essenziale affinché una
= - -

riduzione sia valida e che non modifichi la cardinalità delia copertura. Perché
questo possa avvenire, Fimpiìcante selezionato perla riduzione deve essere par-
zialmente sovrapposto ad un altro implicante della copertura. Questa condizio-
ne tuttavia è necessaria ma non sufficiente. A titolo di esempio si consideri la
funzione f mostrata in Figura 4.42(a) e descritta dalla copertura:

f : F ={rrg:cî,;r"1z2,mgx1}

La riduzione dellîmplicante 506m‘; rispetto ad 21:2 produce i due nuovi implicanti


x312; 3:2 e m; e ia nuova copertura, mostrata in Figura 4.42(b), diviene:

f : F ={:c6;t:'1a:g,:z:"1;r2,xga:1}

Si noti che Fimplicante argzfilxg non appare nella copertura in quanto è stato eli-
minato per assorbimento daJFimpIìCante 5:33:52. In conclusione questa riduzione
risulta valida poiché 1a copertura è preservata e la sua cardinalità e rimasta in-
variata. Una scelta diversa potrebbe essere quella di ridurre Fimplicante rom;
4.5 Minìmfzzazìone eurisrica di reti a due livelli 137

551'200 01 11 10 3531300 01 11 10 ajîlgon 01 11 10

0 0 0 om 0 0 0m o 0

‘OLJEÉ ‘OMEÈ 10MB


(a) (b) (C)

Figura 4.42 Riduzione

rispetto ad 2:2, ottenendo la copertura:

f î F Z iînîîi:liîîméîîuîiîîmro-Ti-TÉ}
mostrata in Figura 4.42(c). Questa nuova copertura ha cardinalìtà maggiore di
quelia iniziale e pertanto la riduzione non e accettabile. Come per Fespansione,
anche in questo caso si pone il problema della scelta degli implicanti da ridurre e
dei letteraii rispetto cui ridurre. È importante notare inoltre che mentre Fordine
di espansione influisce sulFefficenza computazionale delfalgoritmo ma non sulla
copertura prima prodotta, Pordine di riduzione influisce sulla copertura non prima
prodotta e, come conseguenza, sufla qualità della soluzione finale.
Esistono diverse euristiche per 1a scelta dell’ ordine di riduzione, tra cui una basata
ancora sulla codifica positional-cube. Il procedimento per la costruzione dei pesi
dei vari implicanti è lo stesso visto per Fespansione ma in questo caso sono gli
implicanti con peso maggiore ad essere i migliori candidati.
Riferendosi ancora all’esempio di Figura 4.42(a), si ottiene la tabella mostrata in
Figura 4.43 da cui emerge che Fordine di espansione è 1:63} 291.732 e x012].

Implìcante r0 501 x2 Peso


10 10 11 9
aîimg 11 i0 01 9
x011 01 01 11 8
Totali: 22 21 23

Figura 4.43 Euristica di seîezione degli implicanti per la riduzione

Copertura non ridondante


L’ultima operazione svoita alfinterno di ogni ciclo consiste nel determinare una
copertura non ridondante a partire dall'insieme degli implicanti primi. La defini-
zione di copertura non ridondante si basa su tre insiemi disgiunti costituiti dagli
implicanti primi della funzione:
l'38 Reti combinatorie

o E’ : Insieme degli implicanti essenziali. Formalmente un implicante P,- è

definito essenziale se F {Pi} non è una copertura della funzione f.


o R‘ : Insieme degli implicanti completamente ridondanti. Formalmente un


implicante P; è definito completamente ridondante se è coperto dagli im-
plicanti essenziali e dai don’t care, cioè dalPinsieme E” U D ovvero se
E’ U D Z H.
o E’ : Insieme degli implicanti rimanenti. Avendo definito E’ e Rt si deduce
che R3’ F
= — U Rt}.

Individuare una copertura minima non ridondante significa quindi determinare il


più piccolo sottoinsieme É” Q R?’ tale che É” U E’ copra la funzione f, cioè tale
che R” U E’ 2 F.
I metodi per la ricerca di tale sottoinsieme richiedono nozioni di algebra non
trattate in questo testo e pertanto si rimanda il lettore che volesse approfondire
questo argomento a trattazioni più avanzate [DeMicheli, 1994].

4.6 Minimìzzazione euristica di reti su più livelli


La sintesi e ottimizzazione di reti combinatorie mediante i metodi esatti studiati
in questo capitolo soffre, come già accennato, di alcuni problemi legati princi-
palmente alla complessità computazionale richiesta da un lato, e dall’altro alla
dimensione delle reti ottenute come risultato. Il primo di questi due problemi è
stato risolto, o comunque sensibilmente ridotto, grazie al ricorso a tecniche euri-
stiche. Queste, tuttavia, pur rendendo trattabili problemi di enorme complessità,
producono ancora reti di dimensioni a volte inaccettabili.
Come in molti altri campi delfingegneria, una soluzione semplice ed efficiente al
problema della ottimizzazione delle risorse, consiste nel riuso di parti più o meno
complesse del sistema. Le tecniche per la sintesi di funzioni a più uscite costi-
tuiscono un buon esempio di questa strategia benchè si limitino alla condivisione
unicamente di termini prodotto. ijestensione del concetto di riuso a sottoreti di
dimensioni maggiori costituisce Fargomento di questa sezione.

4.6.1 Modello di riferimento


Per la sintesi e Pottimizzazione delle reti su due livelli si è scelto di utilizzare
alcuni modelli di riferimento quali le forme canoniche e le forme somma di pro-
dotti e prodotto di somme. Tali forme standard definiscono esattamente quale
deve essere la struttura algebrica della rete.
148 Reti combinatorie

Esercizi risolti
Esercizio 4.1 Si descriva mediate tabella della verità una funzione combinatoria di tre
variabili che assume vaiore i se almeno due variabiii valgono 1.
Soluzione. 11 problema è ben definito. Siano a, b e c le tre variabili dîngresso e sia
z Fusciza. Le combinazioni dfingresso che presentano almeno due 1 sono 01 l, 103,
110 e 111. La tabella della verità è a questo punto di facile stesura.

lc,._e—oeolsl
I—->—-OO——->—-OOCJ"

———Cv-'O-*D‘-‘O0
I-'>——"—OC>C9CI

Esercizio 4.2 Si descriva mediante tabella della verità una funzione di 3 variabili che
fornisce in uscita il numero di 1 presenti nella parola dîngresso.
Soluzione. Si indichino con x2, x1 e 110 le tre variabili (fingresso. In una parola di
tre bit possono esservi al più 3 uno, quindi Fuscita deve poter rappresentare i valori O,
1, 2 e 3. Scegliendo la codifica naturale, sono necessari 2 bit. Siano ,21 e zg le uscite.

{-3
H

N
r-‘v-‘v-r-‘OOOCD N

HOHO——C——O o

>4

O
|-'

HM-Òv-OOC)

woowo-r-o
-I-DOr——->—-OCJ

Esercizio 4.3 Si descriva mediante una tabella della verità una rete combinatoria per la
transcodifica di un codice binario naturale su 2 bit in codice one-hot.
Soluzione. In questo caso la specifica non contiene alcuna ambiguità, infatti sia le
configurazioni di ingresso (le parole di codice binario naturale) sia le parole di uscita
(codice one-hot) sono ben definite. Gli ingressi sono due (X [m1 x01), e ìe uscite =

SOHO 4 = [Z3 Z2 Z1

l'1 x0 Z3 Z2 Z1 Z0
0 0 0 O 0 1

O 1 0 0 l U

1 {J 0 l 0 0
l l l {J 0 O
4.6 Esercizi 149

Esercizio 4.4 Si descriva una rete combinatoria dotata di due bit dfingresso che rappre-
sentano un valore numerico in codifica binaria naturale e che fornisce in uscita, sempre
su due bit, il valore dîngzresso incrementato di uno ed un segnale di errore che Segala
una eventuale condizione di overflow.

Soluzione. Siano 9:1 e 2:9 le variabili di ingresso, 21 e Z0 le variabili di uscita ed e il


segnale di errore. Quando Fingresso codifica i valori 0, l e 2 Puscita assume i valori
1, 2 e 3 rispettivamente e pertanto il segnale di errore vale O. Quando Fingresso vale 3,
non è possibile rappresentare l’ uscita (4) su due bit, pertanto il segnale di errore vale
1 mentre lîtscita non è specificata. La tabella della verità che ne deriva è la seguente.

S61 20 z} Z0 (i

l) O O l 0
0 i l 0 O

1 0 1 1 0
1 l — — 1

Esercizio 4.5 Si ricavi la tabella della verità di una funzione per la gestione di un display
a sette segmenti di una cifra decimale rappresentata in codifica binaria naturale. Un
display a sette segmenti è costituito da 7 segmenti luminosi che possono essere accesi
0 spenti a formare il simbolo corrispondente ad una cifra. Per controllarlo sono neces-
sari ‘l’ segnali binari. La figura seguente mostra un tale display, i nomi dei segnali di
controllo ed alcuni esempi di cifre.

s1 s3 s1 s3 i s3

s5; 55 f se

sa s4 s4

s5 p.35, '

Soluzione. La specifica del problema necessita di alcuni raffinamenti. In primo luogo


è necessario notare che dovendo rappresentare le 10 cifre da O a 9 sono necessari 4 bit.
Con 4 bit, tuttavia, si possono rappresentare 16 valori ed e quindi necessario stabilire
come comportarsi quando in ingresso si presenta uno delle 6 configurazioni non arn-
messe. Arbitrariamente si stabilisce che in tal caso il display mostra iI simbolo ‘E’,
ad indicare un errore. Infine si stabilisce che un segnale di controllo pari ad l indica
che il segmento è acceso. La specifica è ora completa. Siano X = [r3 552 121 zag] gli
ingressi ed S = [s0 . se] le uscite. Le tabelle della verità sono riportate a pagina 150
. .

in alto.
150 Reti combinatorfe

I3 C52 «"51 13o 3o 31 82 53 54 55 56 r3 x2 501 ma su s; s2 s3 s4 s5 s5


D 0 0 D 1 1 1 1 1 1 0 1 0 D 0 1 1 I 1 1 1 1

D 0 D 1 D D D 1 1 D D 1 D D 1 D l l 1 1 l i
D D 1 D 1 D 1 1 D 1 1 1 D 1 D 1 1 I D D 1 1

D D 1 1 D D I 1 I 1 1 1 0 1 1 1 1 1 D D 1 l
D 1 D D D 1 D 1 1 D 1 l l D D 1 1 1 D D 1 1

0 1 D 1 D 1 1 D I 1 1 1 1 D 1 1 1 1 0 0 1 i
0 l 1 D 1 1 1 D 1 1 l ì l l D I 1 1 D D I l
D 1 1 1 D D 1 1 1 D D 1 1 l 1 1 1 l D D 1 1

Esercizio 4.6 Si sintetizzi in prima forma canonica una funzione f di tre variabili che
indica 1a patita della parola «fingresso. La parità vale D se il numero di uno della
parola è pari e vale 1 altrimenti.
Soluzione. Il problema non presenta alcuna ambiguità, pertanto, indicando con 3:2,
x1 e x3 le variabili di ingresso si può zicavare immediatamente la tabella della ve-
rità. Nella stessa tabella sono anche riportate le forme algebriche dei mintermini
corrispondenti ai discriminanti della funzione.

I2 I1 x0 f
D D D D

D D 1 1 1:53‘; ma
D i D I mamma
D 1 l D

1 o a I xgxjxg
l D 1 D

i l D D

1 1 1 1 922x130

La prima forma canonica è data dalla disgiunzione dei mìntermini, pertanto si ottiene:
I r r
f(:cg,z1,xg)— _

952.31.39
, , l‘
+ 37231213, l‘
-l- 33293130
1
+ 2321131173

Esercizio 4.7 sintetizzare in seconda forma canonica la funzione delfesercizìo 4.6.


Soluzione. La tabella deìla verità non cambia. In questo caso si riporta accanto agli
D della funzione Fespressione algebrica dei maxtemiini corrispondenti.
——CJc:._c;.—-—-CJ'-+,
5'}

Α?

ÈÈ
I»?

r-l
u-Ib-‘QCF-r-‘QÒ

'-'G—G'-'D—Q

I2 +11 +30

azg-l-zi-l-zg

332-1431 +xg
xg+zi+zg
4. 6 Esercizi l 15]

La seconda forma canonica è data dalla congiunzione dei maxtermìni, cioè:

f(932«371a330)=(362 + 171 + 10X12 + 513i + 36X13 + I1 + 336x955 + 51+ 170)

Esercizio 4.8 sintetizzare, neìla forma canonica più conveniente in termini di letterali,
una funzione che restituisce l quando il valore della parola in ingresso, in codice
BCD, è maggiore di 6.
Soluzione. Siano x3, .,30 gli ingressi. Dato che il codice BCD rappresenta le cifre
. .

da 0 a 9, la specifica indica che la funzione f vale 1 quando Tingresso vale 7, 8 0 9.


Per i valori tra 0 e 6 1a funzione vale 0, mentre perle codifiche non ammesse (da 1010
a 11 l 1) la funzione non è specificata. La tabella della verità, suddivisa su due colonne
per comodità di rappresentazione, è la seguente.

233 x2 x1 x0 T I3 2:2 x1 x0 Z
0 0 0 o T 1 0 0 0 1

0 0 0 1 0 1 0 u 1 1

0 o 1 0 0 1 0 1 0 —

0 o 1 1 0 1 0 1 1 —

0 1 o 0 0 1 1 0 o —

0 1 o 1 o 1 1 0 1 w

0 1 1 0 o 1 1 1 0 —

0 l l l “L. l l l l ;

Dovendo procedere alla sintesi in forma canonica, 1a scelta più conveniente consi-
ste nelrassegnare il valore 0 alle condizioni di indifferenza e quindi sintetizzare la
funzione in prima forma canonica, cioè come somma di soli tre mintermini. Si ottiene:
l‘
f(:.:3, 51:2, 3:1, 2:9) = 33232315130 + mgxgxîxfi + Igmgxixg
Esercizio 4.9 sintetizzare in prima forma canonica la funzione f (x0, 1114232, x3) che as-
sume valore 0 quando la parola di ingresso presenta almeno 2 zen" adiacenti oppure
almeno 3 uni, questi ultimi non necessariamente adiacenti.
Soluzione. Una volta costruite le 16 possibili parole di ingresso si assegna valore 0 o
1alla funzione in base alle regole espresse dalla specifica. La tabella della verità che
ne risulta ‘e la seguente (spezzata in due solo per comodità di rappresentazione).

ma x1 2:2 x3 L î-‘o I1 x2 r3 L
0 0 0 0 0 1 0 0 o 1

0 Cl Lì l O 1 0 0 I 1

0 (J 1 0 O 1 0 l 0 —

D 0 1 l 0 1 D 1 1 —

Ù 1 0 0 O l 1 0 0 —

0 1 0 1 0 I 1 o 1 —

0 i l 0 O l 1 1 0 —

o I 1 1 L 1 1 1 1 —

Sommando i mintermini evidenziati dalla tabella della verità si ottiene:

f = 156111513 + anamlmgzg + 1803211121121’;


152 Reti combinarorie

Esercizio 4.10 Scrivere due diverse espressioni per la funzione:

m y z f (a: s» z)
0 0 0 0
0 0 1 1

0 1 CI 0
0 1 l 0
1 0 0 1

1 0 1 0
1 1 D 0
l 1 1 1

Soluzione. In forma SOP Pespressione è f = afy’ z + xgflz’ + myz, mentre in forma


POS si ha Pespressionc equivalente f = (r1:y’)(y + z’)(:1: + z')[m’ + y + z’)—l—

Esercizio 4.11 Valutare il costo dell’espressione 119g’ + myz in termini di ìetterali, di


implicanti e di porte ìogiche a due ingressi.
Soluzione. Il numero di ìetterali è 5 (2 per il primo termine prodotto e 3 per ii secon-
do) ed il numero di implicanti e 2. Per determinare il numero di porte a due ingressi è
comodo iiscrìvere l’espressione come (afizfl) + (mg); Si nota che sono necessarie 3
porte AND per i prodotti (:r'y’), (dry) e ed 1 porta OR per 1a somma.
Esercizio 4.12 sintetizzare in forma SOP mediante le mappe di Kamaugh 1a funzione:

_f(®°0,I1,I2-,L33) = Zì{3,5,7,8,10,12,1314,15}.
Si elenchino esplicitamente tutti gli implicanti primi e si indichi quali sono essenziali
Soluzione. La mappa di Karnaugh corrispondente alla specifica data è mostrata di
seguito. Su questa si procede alia costruzione degli n-cubi di dimensione massima
che raccolgono gli 1 deîla funzione, cioè gii impiicanti primi.

x23
In: 00 01 11 10
r1 ,
00 0 0 1 0 Pîzmoxgxg
01 0 '21 1
\-._._..J
0 P2=I1I3
11 [31 1 1 41] 4133:3031
10
m}
1 0 0 1

P4zxomi‘

Dei quattro implicantì individuati, sono essenziali P; (per Pingresso 0011), P2 (per
Fingresso 0101) e P4 (per gli ingressi 1000 e 1010). La copertura contiene sicura-
mente tuttì gli implicanti essenziali, cioè {P1,Pg_. P4} e dato che quesîi iinpîicanti
coprono tutti i mintemiini non è necessario utilizzare P3. La funzione risulta pertanto:

f z P1 + P2 + P4 = 3351:2273 + 1:12:33 + 1891125

Esercizio 4.13 Sintetizzare la funzione delfEsercizio 4.12 in fonna prodotto di somme


mediante il metodo delle Mappe di Karnaugh.
4.6 Esercizi ' l’ 53

Soluzione. La mappa di Kamaugh e quella deIPEsercizio 4.12. Su questa xicercano


gli n-cubi che raccolgono gli 0 della funzione, cioè gli implicati primi.

932,3
x0: 00 01 11 10

oofoioj1fi Plîzo-i-xg
01_0J1 1m P2=r0+r1+x2
J‘

11 p3=ml+îfi2+ws
E
1 1 1 1

lo 1 1 P4=ilîg+îl+ilîé

Dei 4 implicati individuati, sono essenziali P1 (per gli ingressi 0010, 0100 e 01 10) e P4
(per Pingresso 101 l). La copertura contiene sicuramente questi implicati che tuttavia
non sono sufficienti a coprire tutti gìi 0: rimane infatti scoperto lo zero corrispondente
allîngresso 0001. Questo può essere coperto sia da P2 sia da P3. Si hanno pertanto le
due soluzioni equivalenti:

f = P1P4P2 = (l'0 "i" 13X36 ‘i’ 4171 + TÉÌÙJU + 151 + i172)


f = 131134133 = (580 ‘Fîaliîiy + 931 + îcéiiîl + I2 + 933)

Esercizio 4.14 sintetizzare in forma di somma di prodotti mediante il metodo delle


mappe di Kamaugh la funzione seguente, indicando tutti gli implicanti primi.

f(a:9,a:1,:r2,m3) = <I>{3,11,12,14,15}

Soluzione. La specifica indica l’off—set della funzione, cioè le combinazioni degli


ingressi in corrispondenza dei quaìi la funzione vale 0. La mappa di Kamaugh e gli
implicanti prinn" sono riportati di seguito.

32,3
In‘ O0 01 11 10

00 i1 1‘ 0 1 P1=m6x5
Pg=m3xg
i;
""

01 1J 1 1 ,
P3=I23î3
11 0 1 0 0 P4=x6xl
10 l; 0 1 R5=ggxg

Gli implicanti essenziali P3, P4 e P5 realizzano una copertura completa. La funzione


cercata ha quindi la forma:

filo: 371: 121933) = P3 + P4 + P5 = 52933 "l" 1176131 + 3711i;

Si noti che P1 e P2 sono completamente ridondanti.


154 Reti" combîn ato rie

Esercizio 4.15 Si consideri la funzione f{a, b, c) = E{1, 2, 3, 5, 6} e si determinino tutti


gli implicanti primi, indicando quali sono essenziali, quali completamente ridondanti
e quali parzialmente ridondanti.

Soluzione. Per ricavare gli implicanti primi si ricorre ad una mappa di Karnaugh.

Q5500 011110

0 ofilijî
1 01140 4J

Gli implicanti individuati de, P;


sono P1 di), P3 = b’c e P4
= = be’. Di questi =

i mintermini 101 e I0. L’ insieme degli implicanti essen-


P3 e P4 sono essenziali per 1

ziali non copre completamente nessuno degli altri due, perciò non vi sono impiicanti
completamente ridondanti e quindi P1 e P2 sono parzialmente ridondanti.
Esercizio 4.16 Con riferimento alFEsercizio 4.15, si dimostri per via algebrica che P; e
P2 non sono completamente ridondanti.
Soluzione. La relazione di copertura corrisponde alfimplicazione algebrica, quindi si
tratta di dimostrare che {F3, P4} non implica né P1 né P2. Si ricorda che X implica
Y si scrive X 2 Y ed equivale a verificare se X’Y = 0. Nel caso in esame si
tratta quindi di dimostrare che P3 + P4 2 P1 e P3 + P4 Z P2 sono false, cioè che
(P3 + P4)’P1 7E 0 e che (P3 P4)'Pg % O. Si consideri dapprima P1. Sviluppando
—1—

Fespressione si ottiene:

(P3 + P4)’P1 = (Ha + lic’)o'c = (b + c’)(b" + c)o’c = (bo + b’c')o.’c = albo

Essendo rr"bc % D, si conferma Fìpotesi. Per P2 si procede allo stesso modo.


Esercizio 4.17 Si riportino su una mappa di Kamaugh a 3 variabili (a, be c) gli implicanti
d'la, c e ab’c'.
Soluzione. Ricorrendo alla notazione compatta per la rappresentazione degli impli—
canti si ricavano le seguenti relazioni che legano ogni implicante ai mintermini che lo
costituiscono. A questo punto il passaggio alla mappa è sempîice.

u?” 00 01 11 10

dl) = D1— = {O1D,O1l} 0 g 1 11 ì


{001,011,101,111}
il
('
. ——1 =

ch'a’ = 100 ={100} 1 1 0

Esercizio 4.18 Si sintetizzì in forma SOP mediante il metodo delle mappe di Karnaugh
la funzione seguente. Discutere inoltre Pessenzilità degli implicanîi.

f(a,b_._c) = E{1,7}, A{Ù,3,5}

Soluzione. La funzione non è completamente specificata. La mappa di Kamaugh è:


4.6 Esercizi 155

f’ 00 01 11 10

0 [— r) — 0

1 0 — I 0

Gîi implicano individuati sono P1 di)’ e P2


= = c. Si nota che P2 è essenziale poiché
è Fonico a coprire il mintermine 111, mentre P1 è completamente ridondante poiché
coperto da P2 e dal dorft care set.
Esercizio 4.19 Sì ricavino tutti gli irnplicanti primi della funzione seguente mediante i1
metodo di Quine-McCluskey, quindi procedere alla ricerca delìa copertura.

f(r,z,ur) = E{1,3,8,9,11,_14}, A{0,6, 10}

Soluzione. Per prima cosa si ricava la codifica binaria naturale dei termini deIPon-set
e del don’t care set. Trattandosi di una funzione di quattro variabili, tale codifica è su
4 bit. Si ordinano quindi le codifiche ottenute in base a1 numero di uno presenti e si
costruisce così 1a seguente 1ista iniziale.
xyzw
0 0000
1 0001
8 1000
3 0011
6 0110
9 1001
10 1010
11 1011
14 1110

Si procede quindi a11’ana]isi dei possibiii raccoglimenti tra termini a distanza di Ham-
mjng unitaria, ricordando di marcare un termine quanti partecipa a un raccoglimento.
Questo procedimento porta ad una nuova lista e aIFaggiOrnameBto della 1ista inìziaie.

xyzn: scyzw
0 0000 0 0,1 000-
1 0001 0 0,8 -000
8 1000 <> 1,3 00*]
3 0011 0 1.9 ‘001
6 0110 O 8,9 100-
9 1001 <> 8,10 10—0
10 1010 ° 3.11 ‘011
lI 1011 <> 9,11 10-1
14 1110 O 6,14 110
10,11 101-
10,14 l-10
156 Reti combinatori e

Procedendo in modo anaìogo sulla seconda lista e ricordando che e possibile rac-
cogliere unicanienie configurazioni che presentano condizioni di indifferenza nelle
stesse posizioni si ottiene la îista seguente e si modifica quella appena ottenuta.

myzul zyzw xyzw


0 0000 <> 0,1 000- ° 0,1,8,9 -00-
1 0001 <> 0,8 -000 <> l,3,9,1l -0-l
8 1000 O 1,3 00-1 0 3.9,10,1l 10--
3 00|? <> 1,9 "001 O
6 0110 <> 8,9 100- <>

9 1001 <> 8,10 10-0 <>

10 1010 0 3,11 -011 0


11 1011 <> 9,11 10-1 O

14 1110 C‘ 6,14 -110


10.1] 101- <>

10,14 1-10

A questo punto non è più possibile procedere a ulteriori raccoglimenti. Gli eìementi
delle liste che sono rimasti non marcati sono gìi implicanti primi della funzione, cioè:

P0 = yziu’ (-110) 5, 14 133 = yfiu (-0-1) 1, 3, 9, 11


P1 = xzw’ (1-10) 10, 14 P4 = my’ (10--) 8, 9,10, 11
P2 = jifz’ (-00-) 0, 1, 8, 9

Si procede ora alla copertura, con Fausilio della seguente tabella, sulla quale è indicato
Fonico irnplicante essenziaie ed i mintermìnì da esso coperti.

13891114
Po >< 3

P1 ' _ X 3
P; 2
P5 2
P4 ' >< 2

La copertura è a questo punto {Erg }. eliminando 1a riga e ìe colonne marcate si ottiene


una nuova tabella che evidenzia 2 dominanze di riga (P1 su P9 o viceversa e P4 su P2
o viceversa). 1m questo caso i costi delle righe dominate e dominanti sono uguali per
cui la scelta è arbitraria. Si eliminino, per esempio, gli iniplicanti P0 e P2.

8 14
P9 3

P1 3
P3 2
P4 >< 2
4. 6 Esercizi I 57

La tabella che ne risulta, mostrata di seguito, evidenzia due impljcanti essenziali


secondari: P1 e P4.

P1 3

Aggiungendo tali ìmplicanti alla copertura si ottiene {F3, P1, P4} e i1 problema è
risolto. La funzione f ha quindi la fonna:

f(x, y, z, w) = yfiu + sczw’ + 33g’

Esercizio 4.20 Utilizzando il metodo di Quine-Mcfluskey si realizzi 1a sintesi minima


della funzione seguente, ìndicandone il costo in termini di letterali, implicanti e porte
logiche a due ingressi.

f(a, b, c, d) = E{0,5,6,9,10,13,15}, A{2,4,8,11}


Soluzione. Si procede per prima cosa alla codifica dei termini delPon-set e del don“:
care-set e a1l’espansione mediate il metodo delle liste.

abcd abeti.’ abcd


0 0000 <> 0,2 00-0 <> 0--0
0,2,4,6
2 0010 0 0,4 0-00 <> -0-0
0238.10
4 0100 ° 0,8 -000 <> 8.910,11 10--
8 1000 9 2,6 0-10 ° 9,1l,13,15 1--l
5 0101 0 2,10 -0l0 9

6 0110 <> 4,5 010-


9 1001 ° 4,6 01-0 °
10 1010 0 8.9 100- 0
11 1011 <> 8,10 10-0 0
I3 1101 <> 5,13 -101
15 1111 <> 9,11 I0-1 O
9,13 1-01 0
10,11 101- <>

13,15 11-1 0
11,15 l-ll °

Dalle liste emergono i seguenti implicano:

P0 = aÎbc’ (010 4,5 P3 = Ud’ (-0-0) 0, 2, 8, 10


P1 = bdd (-101) 5, 13 P4 = ab’ (10--) 8,9,10, 11
P2 = a’d’ (0--0) 0, 2, 4, 6 P5 = ad (l-—1) 9, 11,13, 15

La tabella di copertura iniziale, riportata alla pagina seguente, evidenzia Fessenzilaità


di P2 per il mintermine 6 e di P5 per il Inintermìne 15. Eliminando le righe che corri-
spondono a P2 e P5 e le colonne dei Inintennixii da essi coperti si ottiene una nuova ta-
bella, anch’essa riportata di seguito, e la copertura iniziale {F2, P5}. La nuova tabella
158 Reti combinatorie

evidenzia due essenzialità secondarie, precisamente P1 per il mintermìne 13 e P4 per


il Inintermine 9. Aggiungendo tali implicanti 3.11a copertura si ottiene {F2, P5, P1 , P4}
e il probiema è risolto in quanto non restano aîtri mintermnii da coprire.

0 5 6 9101315

NÌINJNÌQUJU}
P0 X
P1 . X 5 91013

txàb-ÌUJLAJ
P2
P3
P4
P5
J

Si ottiene infine 1a funzione f:


f(a, b, c, d) = cfid’ + ad + bcid + ab’

Il costo di tale soìuzione è di 9 letterali, 3 implicanti e 8 porte logiche a due ingressi,


precisamente 5 porte AND e 3 porte OR.
Esercizio 4.21 Utilizzando il metodo di Quine-McCluskey si realizzi la sintesi minima
della funzione seguente, indicandone i1 costo in termini di letteralj.

f(a,b,c,d,e)== z{7,8,12,13,15,1s,19,22,31},zs{14,23,27}
Soluzione. La funzione è di cinque variabili per cui si procede alla codifica dei
termini delfon-set e del d0n’t care-set utilizzando paroîe di 5 bit.

abcde abcde abcde


8 01000 O 8,12 01-00 12,l3,14,15 011--
12 01100 O 12,13 0110- <> 18,19,22,23 10-1-
18 10010 O 12,14 011-0 0 7,15,23,3l --111
7 00111 0 18,19 1001- 0 19232731 1- -11
13 01101 o 18,22 10-10 0

14 01110 <> 7,15 0-111 °


19 10011 O 7,23 -0111 0
22 10110 ° 13,15 011-1 <>

15 01111 ° 14,15 0111‘ 0


23 10111 <> 19.23 10-11 <>

27 11011 <> 19,27 1-011 <>

31 11111 <> 22,23 1011- 0


15,31 -1l11 °
23,31 1-111 <>

27,31 11-11 <>

Si ottengono i cinque implicanti seguenti:

Pg = afbdfe (01-00) 8, 12 P3 = cde (——111) 7,15,23.31


P1 = aÌbc (011——) 12,13,14,15 P4 = ade (1——11) 19,23,27,31
P2 =-' (lbid (10 1-} 18,19,22,23
4.6 Esercizi 159

La tabella di copertura evidenzia, già al primo passo ben 4 implicanti essenziali: PD,
P1, P2 e P3. Tali implicanti coprono completamente Fon-set e quindi la copertura
{H}. P1, P2, P3} è completa.

7 812131518192231

P1 3

P3 3

P4 3

La funzione f è la seguente ed ha un costo pari a 13 letterali.


f(a_._ ò, c, d, e) = a.'bd'e + (l'60 + ch'al -l- cde

Esercizio 4.22 Si sintetizzi mediante il metodo di Quìne—McCluskey la funzione


seguente, utilizzando il numero di irnplicanti complessivi come criterio di costo.

f((I,b,C, = lf1 vfgi = E1{Ù,8, A1{1,3,


É2{0, 3,4,7,14, 15}, Ag{1, 6, 13}

Soluzione. Il primo passo consiste nel calcolare l’unione degli on—set e dei don’t care-
fun-
set, quindi si procede alla codifica e alla costruzione dei tag di appartenenza alle
zioni. Per esempio, per Fingresso 0 si ottiene la codifica 0000 e il tag 11 in quanto il
mintermine 0 appartiene sia fl, sia a fg. Per il mintermine 8 (1000), invece, il tag è
i0 in quanto appartiene solo a fl. Si ricorda che nelPelaborazione delle liste, il pro-
cedimento di espansione è identico a quello visto per le funzioni ad una sola uscita,
mentre la marcatura degli implicanti segue le regole specifiche per le funzioni a puù
uscite. Le liste risultanti sono riportate a pagina seguente in alto. Ne risultano i 12
ìmplicanti seguenti, in cui Fappanenenza alle funzioni fl e fg è indicata tra parentesi
quadre:

[10] P = b’c’d' (-000) 0,8 [10] P3 = b’cd (-011) 3,11


[11] P1 = afac‘ (000-) 0,1 [01] P7 = a’cd (0-11) 3, 7
[01] P2 = a.’c’d’ (owoo) 0, 4 [11] P3 = abc (111—) 14.15
[10] P3 = alici’ (10-0) s, 10 [01] P9 = c100! (11-1) 13,15
[11] P4 = a’b’d (00-1) 1,3 [10] P10 = (ZC (1—1—) 10,11,14,15
[01] P5 = cfibd’ (010) 4,6 [01] P11 = be (-11—) 6,7,14,15
A questo punto si costruisce la tabella di copertura, avendo cura di riportare le
indicazioni di copertura dei vari implicanti in base al tag di appartenenza.
Si ottiene come punto di partenza la tabella iniziale mostrata sopra. Si noti inoltre che
il costo di tutti gli irnplicanti è pan" ad 1.
La tabella non evidenzia alcuna essenzialità, tuttavia si notano alcune dominanze di
riga: P9 su P3, P7 su P4, P2 su P5 e P3 su P9 e su P10. Ne risulta la tabella sem-
plificata reîativa al primo passo. A questo punto si nota che P0 e P3 sono essenziali
160 Reti combinatori}:

056d fifa 056d f1f2 050d f1f2


0 0000 11 O 0.1 000' 11 6,7,14,15 "11’ 01
1 0001 11 0 0,4 0"00 01 10.11,14,15 1-1‘ 10
4 0100 01 <> 0,3 ‘000 10
8 1000 10 O 1,3 00-1 11

3 0011 11 ° 4,6 01-0 01


6 0110 01 <> 8,10 10'0 10
10 1010 10 <> 3,7 0'11 01
7 0111 01 o 3,11 -011 10

11 1011 10 <> 6,7 011‘ 01 °


13 1101 01 <> 6.14 ‘110 01 <>

14 1110 ll O 10,11 101' 10 9


15 1111 11 o 10,14 1*10 10 <>

7,15 "111 01 <>

11,15 1-11 10 <7‘

13,15 1I‘1 01
14,15 111‘ 11

tabella itiiziaie primo passo


f1 f1 fa
08141503471415 08141503471415
PQXX 1

P1 x 1

P2 1

P3 1

P4 1

P5 1

P6 1

P7 1 secondo passo
P8 1
f2
P9 1 14 15
P1 1 P3 X ><

P1 1 P11

per f] e P2 e P7 sono essenziali per fg. Il costo di tali implicanti va a 0 e, siccome


coprono mintermìni in una sola funzione Po, P2 e P7 sono eìimìnati completamente.
Si ricordo che devono anche essere eliminate le colonne coperte, cioè tutte quelie di
f1 e le colonne 3, 4 e 7 in fg. Le coperture a questo punto sono {F0, P3} per fl e
{F2, P7} per fa. La nuova tabella (secondo passo) evidenzia una sola dominanza di
riga di P3 su P11. Si noti che le due fighe sono identiche ma i1 minor costo di P3
rende questo implicante dominante. Eliminando P11, P3 diviene essenziale per fg e
4.6 Esercizi 161

completa la copertura. Le funzioni risultano quindi:

fl = P0 + P3 = bfCldf ‘i’ (1.06

fl = P; + P7 + P3 = 12'605’ + a’cd+abc

La copertura complessiva delle due funzione richiede 4 implieanti.


Esercizio 4.23 Si sìntetizzì mediante il metodo di Quine-McCluskey la funzione
seguente, utilizzando il numero di letterali complessivi come criterio di costo.

f(a,b,c,d)=]f1f2| = 21025,10},11111341114}
= E2{1,4,5,6,8,10}, A2{0,13,14}

Soluzione. Si inizia con la ricerca degli implìcanti primi mediante le liste seguenti.

050d fifa 11504 flfz 056d ÎIÎÎZ


0 0000 01 0 0.1 000- 01 0 0,1,4,5 0—0— 01

1 0001 11 <> 0,4 0-00 01 <> 1135.7 0-1 10


2 0010 10 <> 0.3 4100 01 2,4,10,14 -10 10
4 0100 01 <> 1,3 00-1 10 <> 13,67 (H- 10
8 1000 01 0 1,5 0-01 11

3 0011 10 o 2,3 001- 10 0


5 0101 11 <> 2,6 (H0 10 0
6 0110 I1 <> 2,10 -010 10 <>

10 1010 11 0 4,5 010- 01 °


7 0111 10 <> 4.6 01-0 01
13 1101 O1 0 8,10 10-0 01
14 1110 11 <> 3,7 0-11 10
5.7 01-1 10 0
5.13 -101 01
6,7 011- 10 <>

6.14 —110 11
10,14 1-10 11

Ne risultano gli implicanti seguenti:

[01] P0 = 12'601’ (-000) 0,8 [11] P5 = bcd’ (—110) 6,14


]P1 = GIC/d (0-01) 1,5 [01] P7 = n'a’ (0-0—) 01,15
[01] P; = ciba" 101-0) 4,6 [10] P8 (fa! = (0-—1) 1,3, 5, 7
[ 1] P3 = 0.1201’ (100) 8,10 [10] P9 ed’ = (--- 10) 24.110,14
[01] P4 = bdd (—101) 5.13 [10] P10 = d'a (0--1—) ‘2,3,6.7
[11] P5 = m1’ (1-10) 10.14

La tabella iniziale non presenta essenzialità ma può essere fidotta per dominanza di
figa. In particolare ie donfinanze sono P2 su P5, P3 su P9, P7 su P4 e P9 su P10.
Eliminando queste righe si ottiene la tabella semplificata (primo passo).
Sulla nuova tabella si nota che P9 è essenziale per fl e che P2, P3 e P7 sono es-
senziali per fg. Il costo degli implicanti essenziali passa a l, si eliminano le righe
162 Reti combinatorie

tabella iniziale primo passo


f: fa
125101456810

INJINJIQBJU-ÌUJUJÈAJUJQJÌJJ
f; fa
125101456810

MIN-Ìb-ÌUJMJUJUJ
P1 >< ><

P2
P3
P5
P?
P8
P9

corrispondenti e le colonne coperte. Le coperture a questo punto sono {P9} per fl e


{F2, P3, P7} per fg (copertura completa) e 1a tabella diviene la seguente:
1 5
P1 3
P3 X X 2

La riga Pg domina la riga P; poiché ha costo Hiinore; questo rende essenziale P8 per f;
e pertantola copertura di fl diviene {F9, Pg }, completando la soluzione del problema.
Le funzioni (12 letterali}, che non presentano implicano condivisi, risultano:

f; zPg-l-Pg a'd+cd' =

f; P2 + P3 + P7 cfibd’ -l- abid’ + aio"


= =

Esercizio 4.24 Si iisolva con il metodo di Petrick la copertura della tabella seguente.

ma m1 ‘m2 m3
Ax xx
Bxxx 3

C‘ xx

Soluzione. Si nota, in primo luogo, che la colonna m3 domina la colonna mg che


può pertanto essere eliminata, riducendo di conseguenza la complessità algebrica del
metodo di Petrick. I vincoli di copertura sono espressi dalla relazione:

(A+B)(B+C)(A+O) = 1
4.6 Esercizi J 63

sviluppando ii prodotti fino ad ottenere una somma di prodotti si ottiene:

(AC+B)(A+C’) =AC+AB+BC= 1

che evidenzia le tre coperture {A0}, {A, B} e {B,C} con costi pari a 3, 4 e 5
rispettivamente. Si sceglie quindi 1a copertura {A, C} poiché ha costo minimo.
Esercizio 4.25 Si risolva la seguente tabella di copertura mediante branch & bound.

‘In-g m1 T712 m3 ‘F714


Axx x4
Bxxxx 1

C x ><><2
D xxxz

Soluzione. Si sceglie (arbitrariamente) di procedere in ordine lessicografico, quin-


di la prima scelta ricade su A. La notazione {A}[4) indica una copertura costituita
dalfimplicante A con costo 4. Le soluzioni complete sono indicate in grassetto e le
soluzioni che fissano il valore del bound sono racchiuse in un rettangolo. Da {AM4}
si procede e si individua la copertura {A, B}(5) che è completa e impone bound 5. :

Le soluzioni seguenti «[14, OP“) e {A, DM“) sono scartate poiché superano il bound.

{Aro mero
{flTB-yfi)

{} tswì<
{B__ pus)

{ore

Il ramo che inizia da A è concluso e quindi si passa alla nuova copertura iniziale
{B}(1). Essendo incompleta si procede con la copertura {B, C}(3) che è completa e
ha un costo inferiore al bound corrente. Questo comporta Faggiornamento del bound
a bound z 3. La soluzione precedente {A
Bfiî’) inoltre è scartata. Si continua con
Fanalisi delìe coperture ottenute da {B}(1) ottenendo {B, D}(3), cioè un’altra solu-
zione completa e accettabile che, tuttavia, non modifica il bound. Questo conclude
Fanalisi del ramo che inizia con {B}(1). Si passa infine al ramo originato dalla co-
pertura iniziale {C19} che origina la sola copertura {C. D}(4J che, benché completa
è scartata poiché supera il bound. Con questo Fanalisi delle coperture si conclude,
producendo come risultato le coperture {B, C} e {B D} entrambe con costo pari a
_.

3. La figura seguente mostra Falbero delle scelte.


164 Reti cortibinatorie

Esercizio 4.26 Data 1a rete multiliveilo descritta dalle equazioni:

p=ab
II=P+G
f=a'b’c+b’d+bd'+p
g:q+d’+ab
h=a'bc+bd
Si identifichino gli ingressi primari deila rete, quindi si applichino le trasfonnazio-
ni seguenti: 1) eliminatflp), 2) simplifyfij), 3) swecpo, 4) simplifypty), 5)
decomposeù‘, b), 6) eartracflh), 7) substitutefifbj e 8) su:eep(). Si indichi inoltre
ii costo iniziale e finale della rete in termini di numero di letterali.
Soluzione. Gli ingressi primari sono a, b, c e d in quanto non compaiono mai a sini—
stra di un assegnarnento, cioè, sul modello basato sul grafo, non hanno archi entranti.
Il costo iniziale della rete è pari a 21 letterati. l passi di trasformazione sono i seguenti:

1. eiiminatefp) q = ab + a f = offfc —l— Ho.’ + 5d’ + ab


2- SÉWPHÎQÙJÌ 9’ = G-

3. sweepo g + d’ + ab
= a
4. szîmplify(g) g n. + d’
=

5. decownposepf. b) fa = d’ + ab fb: = aÎc + a f = b n, + ma,


6. extrauflh) r = c'e + d h = b-r
i. substituteifhw) fa» = r

8. 81086170 f = bfi, + b’r

La rete finale è quindi descritta dalle equazioni seguenti:

-r=a"cr+d fb=d’+ab f=bf5+b'r g=a.+d' hzbr

con un costo complessivo di i5 letterali.

Esercizi proposti
Esercizio 4.1 Si ricavi una specifica formale di una funzione di 5 variabili che restituisce
il valore 1 se gii ingressi sono una paroìa vaiida del codice one-hot.
Esercizio 4.2 Si iicavi la tabella della verità di una funzione che confronta due valo-
ri numerici nelFintervallo [(12,3] e restituisce 1 se il primo è maggiore o uguale al
secondo.
Esercizio 4.3 Si sintetizzi in seconda forma canonica la funzione delfesercizio 4.2.
Esercizio 4.4 Si esprima in prima forma canonica (parametrica) la famiglia di funzioni
di due variabili y) = É{l}, AÙJ,
4.6 Esercizi 165

Esercizio 4.5 Si sintetizzi la funzione f E{1, 6,8, 9, 10, 13}, A{5, 7, 14} sia in forma
=

di somma di prodotti sia di prodotto di somme. Riportare tutte le soluzioni minime.


Esercizio 4.6 Sì calcoli i] costo in termini di porte logiche a due ingressi delle funzioni
ottenute neIFEsercizio 4.5.
Esercizio 4.7 Si sintetizzì in forma di prodotto di somme la funzione seguente:

f(a,b,c, d) = E{6,8,12,14},A{O,7,13,15}

Esercizio 4.8 Si sintetizzi in entrambe le forme la funzione:

f(a, b, c, d) = E{3,7,12,14},A{4,11,13,15}

Esercizio 4.9 Si sintetizzi mediante il metodo delle mappe di Kamaugh la funzione


seguente, senza considerare la condivisione di implicano.

f z Ifl fîi i E1{2)5s6s E2{1:2:376}:

Esercizio 4.10 Si sintetizzi mediante il metodo di Quine-McCluskey la funzione:

f(a, b, c, d, e) = ma, 10, 14, 22, 26, 30}, A{4, 5, 7, 27}

Le soluzioni degli esercizi proposti sono disponibili nei booksite:


httpz/fwww.apogeon|ìne.corrt/|ibrif88-503-2229-1lscheda.
Circuiti combinatori
speciali

Contenuto

5. i Reti combinatori? di base


5.2 Sommarori e sortrairori
5.3 Complemenraror-i
5.4 Campararori
5.5 Molriplicarori
5.6 Unità aritmetica logiche

Nella realizzazione di sistemi digitali complessi si ricorre spesso a1l’uso di un


numero limitato di elementi di base con funzionalità ben note. Una attenta de-
composizione funzionale del probiema, infatti, dovrebbe proprio evidenziare tali
elementi e quindi distinguere le porzioni per così dire originali del sistema da
quelle già note e ampiamente studiate. Questo capitolo raccoglie le descrizioni,
opportunamente commentate, di aîcuni di tali componenti combinatori di uso co-
mune, ponendo particolare enfasi sulla loro struttura modulare. La prima parte
introduce i componenti di base mentre 1a seconda parte presenta più nel dettaglio
le strutture destinate alla eìaborazione aritmetica.

5.1 Reti combinatorie di base


5.1.1 Multiplexer
Un niuitiplexer è una rete combinatoria in cui un segnale di selezione s permette
di portare sulPuscita y uno dei segnali d’ingresso mg. Nel caso più semplice i
segnali di ingresso sono due, ma e x1, ed il segnale di selezione s è un singolo bit.
La funzione di taie multiplexer a due ingressi è descritta dalla tabella della verità
di Figura 5.1(a) ed i1 simbolo comunemente adottato è mostrato in Figura 5.183).
La sintesi della funzione descritta dalla tabella della verità porta alfespressione:

y = 3'930 + 3x1
168 Circuiti combinatori speciali

s x0 2:1 Z
0 U 0 (J

Ù Ù l Ù 1g
Ù i Ù l y
0 l. l l
1 o o 0 m‘
l Ù l l
l l O 0 5
1 1 1 L
(a) (b)

Figura 5.1 Multiplexer a due ingressi: tabella della verità e simbolo

Si può facilmente generalizzare una tale struttura ad un numero maggiore di in-


gressi: utilizzando infatti n segnali di selezione so, ,s.,.,.,_1 si è possibile sele- . . .

zionare uno degli ingressi 3:0, , 327.4. Per n : 2 si ottiene un multipiexer a


. . .

quattro ingressi come quello mosîrato in Figura 5.2(b). La sua tabella della verità,
scritta in forma compatta, è riportata in Figura 5.2(a).

—— 1170 D0
50 31 y
0 0 x0 Il 01 y
o i 501 I2 10

l l x3

51
3o

(a) (b)

Figura 5.2 Multiplexer a quattro ingressi: tabella della verità e simbolo

La sintesi della tabella della verità porta all’espressione:

I
y = 503'130 + r’
30.91:13 + mgxfimg + xgxlmg
Una interessante applicazione dei multiplexer è legata alla sintesi di funzioni
di molte variabili mediante la loro scomposizione secondo il teorema di Shari-
non. Si consideri infatti una funzione di n variabili fficg, 9:1, ,mn_1) e la sua . . .

espansione rispetto a due Variabili 112g ed m1. lfespressione che si ottiene è:

f(mo,x1,...,mn-n = xamafomx...)+max1f(0,1,...)
+ momflfflflh...)+x0x1f(1,1,...)
5.1 Reti combinatofie di base 169

Si nota che la forma di questa scomposizione ricalca quella ottenuta per il mul-
tiplexer: le variabili 5120 ed 1:1 agiscono infatti come ingressi di selezione e le
funzioni f(U,O, .), f([},1,...), f(1,[], .) e f{1,1,...) sono gli ingressi dati.
. . . .

Questo tipo di realizzazione e mostrata in Figura 5.3(a).

no? 0, . . .) 00 f(0,0)
f(o,1, ...) 01 f(0,1)
10 ffiîìgfiìîh...) ffllîlyîlîj)
f(l,l,...) 11 f(l,1)
S1 S1
So 5o

(a) (b)

Figura 5.3 Sintesi mediante multìplexer

Nel caso f dipenda da due sole variabiii, Pespansione mostrata


in cui la funzione
è completa ed evidenzia pertanto i discriminanti, come mostra la Figura 5.3(b).
Per una funzione generica di n, variabili, Yespansione completa produce 2"‘ di-
scriminanti ed e pertanto sintetizzabile mediante un rnultipìexer a 2"" ingressi dati
(tutti costanti) e con n segnali di selezione.

5.1.2 Demuitiplexer
Un demultìplexer è un elemento che svolge la funzione duale del multiplexer.
Nella sua versione più semplice, tale componente ha un ingresso dati 1‘, un in-
gresso di selezione s e due uscite yg ed yl. Il demuitiplexer assegna valore a:
ad una delle due uscite y; a seconda del valore del segnale di selezione mentre
Faltra uscita assume valore O. La tabella della verità per yo ed yl e il simbolo
comunemente utilizzato sono mostrati in Figura 5.4.

310
5 1' UD 91
0 0 0 0 1‘
0 l 1 0 yl
i 0 0 0
l l [J l
3

(a) (b)

Figura 5.4 Demultiplexer a due uscite: tabella della verità e simbolo


170 Circuiti combinatori speciali

Dalla tabella della verità si ottiene immediatamente go 2 551: ed y1 = 3m. Anche


questo tipo di elemento può essere generalizzato ad un numero maggiore di uscite,
in particolare con n, ingressi di selezione si ha un demultìplexer con 2” uscite. Le
Figure 5.5(a) e 5.5(b) mostrano rispettivamente la tabella della verità in forma
compatta ed il simbolo di un demultiplexer a 4 uscite.

0G 320
50 S1 yo 91 312 243

0 0 .7: 0 0 0 I U1 3/1
0 1 0 se o 0 10 312

l U 0 U a: Ù 11 ys
l l 0 0 G r

31
S0

(a) (b)

Figura 5.5 Demultiplexer a quattro uscite: tabella della verità e simbolo

5.1.3 Decoder
Un decoder è un elemento combinatorio dotato n ingressi x0, ,37”; e di 2”“ . . .

uscite yg, . ,ygn_1. Tali uscite sono tutte uguali a zero ad eccezione di quella
. .

avente come indice il valore decimale corrispondente al vettore di bit in ingresso.


In tennini algebrici si ha yk = 1 quando:
n—l
Z

È = 21.31'

i=0

Il più semplice decoder è dotato di un ingresso a: e due uscite yg ed yl. La tabeila


della verità ed il simbolo sono riportati rispettivamente in Figura 5 .6(a) e 5 .6(b).

Z SJU y: y”
O 1 (J T

_L 0 l U1

(a) (b)

Figura 5.6 Decoder a un ingresso: tabella delia verità e simbolo

È immediato verificare che le equazioni relative alle uscite sono yg 2 su’ e yl z m.


Un decoder a due ingressi 11:0 ed 3:1 è dotato, secondo quanto detto più sopra, di
5.1 Reti combinarorie di base l'71

quattro uscite yg, , y3 ed è descritto dalla tabella della verità di Figura 5.7(a).
. . .

La sintesi di tale tabella conduce alle funzioni:

13o = 5981i 91 = 335331 v2 = 303i ya = E0331

Si nota immediatamente che le quattro funzioni trovate altro non sono che tue
ti i possibili mjntermini di una funzione di due variabili fficthxl). Questa
circostanza è evidenziata dalla rappresentazione riportata in Figura 5.7(b).

0D = x’ ai’
x0 I1 yo y: s2 ys g" É 1

0 o 1 0 0 0 “i” U1 91 = 3031
0 1 0 1 0 o 931 10 yg = rossi
1 0 0 Ù 1 E] 11 y3 : 180ml
1 1 0 0 0 1

(3) (b)

Figura 5.7 Decoder a due ingressi: tabella della verità e simbolo

La proprietà di generazione dei nuntermiiai di una funzione mostrata dal decoder


rende questo elemento particolarmente adatto alla sintesi di funzioni in prima
forma canonica. Per esempio si considerino le due seguenti funzioni:

fggflmmifil) = + 1150931 (5.1)


fflxa, Il) = E631 + 51301131

Ognuna di esse è in prima forma canonica e pertanto è una somma di mintenninl


e può essere ottenuta combinando mediante porte OR le uscite opportune di un
decoder a due ingressi. Una tale realizzazione e mostrata in Figura 5.8.

0 563ml
3o O1 11261171

31 1 stanti
11 30331

fa fl
Figura 5.8 Sintesi mediante decoder di funzioni in prima forma canonica
I 72 Circuiti combinatori speciali

È intuitivo che questo metodo di sintesi può essere esteso ad un numero arbitrario
di funzioni di un numero arbitrario di variabili. Si noti infine che, disponendo
di tutti i mintermini, non ha alcun senso procedere alla minimizzazione delle
funzioni che si desidera realizzare.

5.1.4 Priority encoder


Un priority encoder è un elemento combinatorio dotato di 2" ingressi
x2n_1,...,3:0 e di 71+ 1 uscite go, ,yn_1 e z. L’uscita z assume valore 1
. . .

se e solo se tutti gli ingressi valgono 0. In tal caso, inoltre, le uscite y; non sono
specificate. Quando almeno uno degli ingressi ha valore 1, allora le uscite y1- sono
la codifica binaria della posizione delPuno più significativo nel vettore di ingresso
X = {mp4, . 41:0} e z ha valore O. La Figura 5.9 mostra la tabella della verità
. .

di un priority encoder a 4 bit.

I3 I2 31 mo Lia v1 z

0 0 O 0 — — 1

0 0 0 1 0 0 0
O 0 l — 0 1 0
Lì I — — 1 0 0
I — — -« l 1 0

Figura 5.9 Priority encoder a 4 ingressi e 3 uscite: tabella della verità

Da questa tabella della veiità si ricava z = zrgxîccgxg. Inoltre, grazie alle mappe
di Karnaugh di Figura 5.10, si ricavano le espressioni delle altre uscite yg =
x2+xaey1 =rciarà+xs

351300 01 11 10 x:_”*°00 01 11 10

00 — 0 0 0 00 — 0 Q 1

01"1 1 1 17 01 0 0 0 0

11 1 1 1 1“ 11[1 1 1 1‘
1011 1 1 1J 10 [1 1 [Î-Ì
Figura 5.10 Sintesi del prioxity encoder a 4 ingressi
5.2 Sammarori e sotrrartori 173

5.2 Sommatori e sottrattori


Una applicazione molto frequente delle reti combinatorie consiste nella realiz-
zazione di circuiti aritmetici. Nella maggior parte delle applicazioni la codifica
utilizzata è quella in complemento a due, e per questo motivo nel seguito si farà
riferimento unicamente a questa.

5.2.1 Sommatorî ripple-carry


Ijoperazione di somma binaria, come visto nel Paragrafo 3.7, segue le stesse
regole della somma in base 10, ovvero si esegue a partire dalle cifre meno signi-
ficative e, procedendo verso sinistra, si propaga Feventuale riporto. La Figura
5.11 riprende, per comodità, lo schema già studiato per la somma di due valori
X = [x114 . x1 1:9] e Y
. . [y.n_1 =yl yg] in complemento a due su n bit
. . . .

c3 c7 c5 c5 c4 c3 c2 c1 Ù

037 l'6 235 I4 113 {Z72 5131 1110 +


347 96 ys 3/4 93 312 3/1 90 =

5g S7 55 S5 S4 S3 S2 81 S0

Figura 5.11 Schema di somma con propagazione del riporto

La somma inizia dalla posizione O. Si calcola x0 + yo: il risultato è il bit di


somma s0 ed il riporto c1 da utilizzare per la colonna successiva. Per la cifra
meno significativa non si ha riporto e quindi la somma è tra due sole cifre binarie.
Nella generica posizione ‘i si calcola x1- + y; + c,- ottenendo come risultatoil bit
di somma s,; ed il bit di riporto 01+1. Questo procedimento è illustrato in Figura
5.11 per parole di 8 bit. Una attenta analisi dello schema di somma mostra che
Pelemento di base necessario per la costruzione di un generico sommatore a n
bit deve poter sommare tre bit 33g, y; e c; e produrre come risultato la somma 3.;
ed il riporto per la propagazione 01+1. Un tale elemento prende il nome di full
adder (FA) ed è descritto dalla tabella della verità di Figura 5.l2(a). Il simbolo
comunemente utilizzato è mostrato in Figura 5.12(b).
Dalla tabella della verità si ricavano le espressioni su due livelli per s1- e (H1:

&=%®%@%
05+1 = 519i + 513162‘ + 242C;

Seguendo lo schema di calcolo di Figura 5.11 ed utilizzando n full adder connessi


in cascata, ovvero in modo che il riporto di uscita di uno sia connesso al riporto
in ingresso del successivo, si ottiene un sommatore a T1 bit noto come sommatore
1 74 Circuiti combinatori speciali

I: yz‘ Ci 5:1 03+1


0 o 0 0 0 xi ‘yi
o o 1 1 0 1 1
o 1 0 1 o
o 1 1 0 1 €’»1+1—«— FA «-—Ca
o 0 0
T
1 1

1 0 1 0 1

1 l 0 0 1 8-;
1 1 1 1 1

Figura 5.12 Full adder: tabella della verità e simbolo

a propagazione di riporto o ripple-carry adder. La Figura 5.13 mostra un tale


circuito per n = 4.

4g
x3 1/3 332 U2 171 D1 I0 110

1 1 1 1 1 1
C4 C3 C2 C1 C0
——— FA FA FA FA 4;

1
S3 52
1 1
81
Î
S0

Figura 5.13 _S0mmat0re rippie-carry a 4 bit

Questa architettura è semplice e compatta ma non particolarmente veloce in quan-


to il ritardo compìessìvo dipende dal numero dì stadi e quindi dal numero di bit
delle parole di ingresso. Questo perché per poter effettuare la somma dei bit in
posizione i—esìma è necessario che i1 riporto in ingresso sia noto. Dal momento
che ogni full adder è realizzato mediante una rete su due livelli, il riporto, indi-
cando con T ii ritardo introdotto da una generica porta logica, è pronto dopo un
tempo pari a 2T. La somma si conclude c011 il calcolo di c4, pertanto il ritardo
complessivo è pari a 4 2T = 8T e, in generale, per un sommatore a n bit risulta
-

211T. Per contro, Farea è molto contenuta infatti ogni full adder è costituito da
i porta XOR a tre ingressi per il bit di somma e da 3 porte AND ed una porta
OR per il bit di riporto, per un totale di 5 porte. Un sommatore a n bit richiede
pertanto 571, porte logiche.

5.2.2 Sommatori carry look-ahead


Le prestazioni dei sommatori ripple-carry non sempre sono SLIÎfiCÌGIIÈÌ per ri-
spettare i vincoli di progetto. Nasce quindi la necessità di sviluppare nuove
architetture che presentino tempi di propagazione inferiori.
5.2 Sommatori e sorti-attori I 75

I1 punto critico dei somrnatori ripple-carry consiste proprio nella propagazione del
riporto: potendo disporre in anticipo di tutti i riporti la somma sui vari potrebbe
essere calcolata in parallelo, cioè contemporaneamente. A tale scopo si intro-
ducono due funzioni ausiliarie P; e G5, dette di propagazione e di generazione
rispettivamente, e definite come:

H=îlîi+yi Gi=Iiye
La particolarità di queste funzioni è che non dipendono dai riporti e possono
essere calcolate tutte in parallelo. Inoltre, i1 riporto in uscita dallo stadio i-esirno
assume la forma:

Ct+t = 35312‘ + (mi + 34'061‘ ”—” G1‘ + P562 (5-3)

In questa espressione la dipendenza dai riporto dello stadio


è ancora presente
precedente ci. Tuttavia, esprimendo c; mediante le funzioni di propagazione e
genarazione si ottiene:

C; = «ÎÎi-lyi-l +(1Bi—i + yi—l)ci = Gai + H-icz-i


e sostituendo questa espressione nella (5.3) si mette in luce una differente
dipendenza nella catena dei riporti:

02+2‘ = G2‘ + RC2‘ = G2: + PKGi-i + Pi-lci-l)


= G4 + PéGé-l + RiPi-lci-l

Come si nota, il riporto q+1 ora dipende esplicitamente soio da c1-_1 e non più
da 0;: Fuso delle funzioni di generazione e propagazione ha permesso di spostare
la dipendenza dal riporto indietro di uno stadio. Ripetendo 1o stesso procedi-
mento sulla nuova espressione è possibile riportare alfindietro la dipendenza a
01gg, 05-3, . fino a co. In particolare, facendo riferimento ad un sommatore a 4
. .

bit si ottengono le seguenti espressioni:

C1 = G0 + P060
C2 Z G1+ P1620 ‘i’ PIPÙCD
C3 = G2 + P2G1 + P2P1G0 + pgPlPofg
C4 = G3 + P3G2 + P3P2G1 + pgPgPlGo + P3P2P1Poc0

A questo punto tutti i riporti sono noti ed è possibile procedere alla somma me-
diante 4 fuil adder in parallelo. Ne consegue Parchitettura di Figura 5.14, nota
con il nome di sommatore ad anticipo di riporto.
I 76 Circuiti combinatori speciali

T; 3T 3312 3T T T 1T Liv

generazione r’ propagazione

P3 G3 P2 G2 P1 G1 Po G1

carry look-ahead <— Co

333 U3 C3 372 312 C2 €81 yi C1 l'0 ‘yo Co

l i i i i i i i l
FA FA FA <-I FA

i i i l
C4 83 S2 31 5o

Figura 5.14 Sommatore carry look-ahead a 4 bit

Per quanto riguarda le prestazioni, Farchitettura ad anticipo di riporto è più ef-


ficiente di quella a propagazione di riporto infatti lo stadio per il calcolo delle
funzioni P,- e G, è un costituito da un solo livello di logica e sia lo stadio di
calcolo dei riporti, sia i fui] adder sono su due livelli: ne risulta una rete che corn-
piessivamente è su 5 livelli e pertanto ha un ritardo pari a 5T. Si noti inoltre che
tale ritardo è, in teoria, indipendente dalia dimensione delle parole in ingresso.
Nella pratica tuttavia si presenta un problema: al crescere della dimensione degli
operandi cresce anche la complessità delle funzioni di generazione e di propa-
gazione rendendo necessarie porte ad un numero di ingressi molto elevato che
potrebbero essere di difficile realizzazione. Questo pone un limite al numero di
riporti che possono essere effettivamente generati in anticipo.
Per quanto concerne Farea, il calcolo e più complesso. La rete per la Costruzione
delle funzioni P, e G; richiede 2 porte per ogni coppia di bit degli operandi,
ovvero, in generale, 2-10, porte. I full adder richiedono solo la rete per il calcolo
della somma e cioè 1 porta XOR ciascuno, cioè n, porte in totale. Infine la rete
per il caîcolo dei riporti richiede (712 + 371) /2 porte (la dimostrazione è lasciata al
lettore). L’ area totale risulta pertanto 22a + ‘n, + (712 + 31o) /2 = (H2 + 9:0.) /2.

5.2.3 Sommatori carry-save


I sornmatori carry-save sono architetture particolarmente adatte per la somma di
di più operandi. Il principio di funzionamento è descritto di seguito. Si consideri
5.2 Sommarori e sotrratîari 177

la somma S = X +Y+Z. Utilizzando due sommatori in cascata si può realizzare


tale operazione come S = (X + Y) + Z = T + Z in cui T = X + Y. La Figura
5.15(a) mostra la sezione reiativa al bit i-esimo di una architettura composta da
due sommatori ripple-carry.

Ci-l-LO-fl"
i172‘

i
FA
1h‘

i
+- "i-Ù J Li 93x‘

i
CS
y: Z2‘

ti‘ “i 61+1, tir Î cm


fîi+1.1-«— FA q» 01,1 Ci+1.14— FA «- Cm

5,;
l l
b,

(a) (b)

Figura 5.15 Sezioni di somma ripple-cany e carry-save

Secondo questo schema si ricava che t; = mi + y; + (3,0 e si = ti + zî: + cm da


cui, sostituendo, si ottiene Fespressione:

52' = (mi + yt + cm) + Z2‘ + c131 (5-4)

in cui le parentesi sono state esplicitamente inserite per evidenziare i due stadi del-
la somma. La (5.4) evidenzia il fatto che la somma s; dipende dalla propagazione
di due riporti: c130 e 05:1. Riserivendo la (5.4) come:

S2‘ = (mi + 3h + 2t) ‘l’ 01,0 + Ci,1 (5-5)

si nota che la somma 22:1- + y1- +


dipende più dalla propagazione di alcun
25 non

riporto. Quest'ultima espressione corrisponde alla architettura mostrata in Figura


5.15(b). Convenzionalmente si indica il riporto 05,9 con il nome di curry-stive e
con il simbolo ce; ed il full adder. Il full adder in alto realizza la logica per il
salvataggio del riporto ed è comunemente indicato con il simbolo CS.
Utilizzando il modulo di base mostrato in Figura 5.1503) si possono costrui-
re sommatori carry-save con operandi di dimensione arbitraria. La Figura 5.16
mostra, a titolo di esempio un sommatore carry-save a 4 bit.
Questa architettura evidenzia il fatto che i blocchi CS possono operare in parallelo
in quanto non sono soggetti alla propagazione del riporto mentre i blocchi FA
sono connessi a formare un comune sommatore Iipple-carry. Per quanto riguarda
il ritardo si può procedere al calcolo come segue. I riporti salvati esi e le somme
temporanee ti sono stabili dopo un tempo pan" 2T, essendo generati da reti su
178 Circuiti combinatori speciali

373

1
y3

CS
li Z3 l'2 yg

CS
1J
Z2 i171

ì
yl

CS
1J
Z1 x9

1
‘yg

CS
lJ
25g

{Ì lì] É3 r2 e51 t] C30 t.)

Î FÎ ‘ FÎL FÎ w FÎt *—0

S5 84 53 S2 S1 Se

Figura 5.16 Sornrnatore carry-save a 4 bit

due livelli; il sommatore Iipple-carry, per operandi di n. bit, si è già visto avere un
ritardo pari a 211T, pertanto il ritardo complessivo è pari a 2m + 1)T. Si noti, a
titolo di confronto, che anche il ritardo di un sommatore a tre operandi costituito
da blocchi corne quello di Figura 5.l5(a) avrebbe un ritardo pari a 20a, + ljT.
Ijarea, d’altro canto, è pari a 271 volte quelìa di un full adder (5 porte), ovvero
lÙn porte-
La struttura di un sommatore carry-save è comunemente schematizzata come
mostrato in Figura 5.17 in cui il blocco in alto è detto CSL o carry-save logie.

Figura 5.17 Schema a blocchi di un‘ sommatore carry-save a tre operandi

Questa rappresentazione permette di mettere in luce la proprietà per cui i som-


rnatori carry-save risultano di interesse, cioè la somma di un numero elevato di
operandi. Generalizzando la struttura della cella di Figura 5. l5(a) si possono co-
stmire soinmatori a k operandi, ciascuno di n, bit, utilizzando 571G: l) porte —

logiche e con un ritardo pari a 2(n + k 2)T. Mediante sornrnatori carry-save,


a parità di area, il ritardo può essere ridotto in modo da crescere non linearmen-
te con il numero di operandi ma secondo un andamento approssimativamente
logaritmica
5.2 Sommatori e somatici?" l’ 79

Figura 5.18 Sommatore carry-save a 9 operandi

La Figura 5.18 mostra, a titolo di esempio un sommatore carry-save a 9 operandi


il cui ritardo e pari a 8 + 211T, rispetto al ritardo 14 + 211,1” di un sommatore
puramente rippìe-carry. Utilizzando un sommatore carry look-ahead al posto del
ripple-carry finale si può ulteriormente ridurre il ritardo.

5.2.4 Sommatori misti


Per ovviare alla rapida crescita della dimensione dei sommatori cany look-ahead
ed al contempo per mantenere limitato il ritardo spesso si ricorre ad architetture
miste che sfruttano sommatori calry look-ahead per blocchi 4 o 8 bit connessi
in cascata a fonnare catene di riporto. Questa tecnica è particolarmente utile per
sommatori in cui gli operandi hanno grandi dimensioni, tipicamente 32 o più bit.
Si consideri, a titolo di esempio, come blocco di base un sommatore carry-look
ahead a 4 bit, indicato in Figura 5. l 9 dal simbolo CLA4. Connettendo in cascata 4
di tali elementi si ottiene un sommatore a 16 bit in cui la propagazione del riporto
avviene solamente in quattro punti, precisamente per c4, c8, e12 ed infine e15.
Questa struttura è un buon compromesso tra velocità ed area. I1 ritardo risulta
infatti pari a 4 volte quello di un sommatore carry look—ahead a 4 bit, ovvero
4 5T
— = ZOT. Analogamente l’area e pari a 4 [(42 —l- 9 43/2] = 104 porte.
- -

È utile, a questo punto un confronto tra le varie architetture sia in termini di


ritardo, sia di area per diverse dimensioni degli operandi. La Tabella 5.1 riassume
i risultati ottenuti. In tabella Farea è espressa in numero di porte logiche generiche
ed il ritardo in unità di tempo T pari al ritardo di attraversamento di una porta
logica. Le sigle CLA4 RC e CLA8 RC indicano architetture miste ripple-
— —

carry costituite da blocchi carry look-aliead rispettivamente a 4 ed a 8 bit.


180 Circuiti combinatori speciali

53115,12] 3111.1511 37[7..4] L71310]

9115.12] 1 17111.3‘; 11171,41 343.01

C16 €12 C8 C4 C11

<—— CLA4 CLA4 CLA4 r CLA4 <——

53115112] 3111.3] 5{7..31 513.0]

Figura 5.19 Sommatore misto ripple-carry e carry look-ahead

12o CLA CLA4-RC CLAS-RC


n A T A T A T A T”
4 20 s 26 5 26 5 — —'
s 40 16 68 5 52 10 68 5
12 60 24 126 5 78 15 — —

16 s0 32 200 5 104 20 136 10


20 100 40 290 5 130 25 — —

24 12o 48 '396 5 156 30 204 15


28 140 56 51s 5 182 35 — —

32 160 64 656 5 20s 40 272 20

Tabella 5.1 Confronto tra architetture di sommatori: area (A) e ritardo (T)

5.2.5 Sommatori 1’ sottrattori


Le architetture presentate nei paragrafi precedenti sono in grado di eseguire som-
me di operandi binari corrispondenti a valori sia positivi sia negativi, codificati
in complemento a due. Tali elementi tuttavia non sono in grado di calcolare in
modo esplicito la differenza di due operandi. Prima di descrivere le architetture
di sommafsottrazione è utile ricordare alcune proprietà delle notazioni in comple-
mento a uno e in complemento a due. Indicando, al solito, con Y = [yfl_1 .yg] . .

la codifica di un operando, il suo complemento a uno si ottiene prendendo il com-


plemento di ogni bit yi, cioè Ycl [yjhl La stessa operazione può essere
= . . .

espressa in una forma diversa notando che:

[y;2_1---116] = [Hm-ì] — [v6-1 mimi


Inoltre, il vettore [11 l], essendo composto da
. . . n uno, corrisponde al valore
decimale 2" 1, pertanto si può concludere:

Yc1=2n—1—Y
5.2 Sommarori e sottrarrori 181

Il complemento a due è per definizione il complemento a uno più uno, cioè:

YC2:Y(;1+1=2"L—l—Y-l-l=2n—Y
Si consideri ora nuovamente il problema della sottrazione. Lavorando con valori
rappresentati su n bit, tutte le operazioni sono svolte in un campo con modulo 2“.
Questo significa che Poperazione di somma e una congruenza modulo 2”, cioè
Z X + Y (rnod 2”). Analogamente, per la differenza si ha:
=

Z=X—Y (modîn)

Lavorando in modulo 2", Faggiunta di un multiplo intero del modulo non


modifica la congruenza, quindi:

Z:X——Y (rnod 2")=X+2"—Y {mod 2")

Ricordando la (5.25) si può infine scrivere:

Z z X —— Y (morì 2'“) : X + Ycg (mod 2'”)

La differenza X Y può quindi essere calcolata mediante un sornmatore cui si


forniscano in ingresso il minuendo ed il complemento a due del sottraendo.


La realizzazione di un sonimatorelsotîrattore prende le mosse da questa consta-
tazione. Per calcolare il complemento a due di un vettore di bit e necessario
invertire ogni bit del vettore (mediante porte NOT), cioè calcolare il complernem
to a uno, e sommare il valore numerico l, codificato come G U1 su n, bit, tanti
. . .

quanti sono i bit degli operandi. Per taie somma, invece di utilizzare un som-
matore aggiuntivo, si può sfruttare il segnale di riporto in ingresso c9 di cui ogni
sonnnatore dispone. Secondo questo approccio si ottiene Parchitettura mostrata
in Figura 5.20 in cui il blocco indicato dal simbolo + rappresenta un generico
sornmatore.
A partire da questa strutturaè possibile realizzare un sommatorelsottrattore n0-
tando che per eseguire la somma non si devono invertire gli ingressi y; e cg deve
essere posto a zero, mentre per la sottrazione gli yî: devono essere coniplementati
e c0 deve valere 1. Ricordando la funzione svolta dalroperatore XOR, si nota che
s vale 1.5 se s = U e y; se s
yg: E?) l. Grazie a questa proprietà si possono sostitui-
=

rele porte NOT del’ architettura già vista con porte XOR che fungono da inverter
“programmabili” mediante il segnale s. Si nota inoltre che il riporto in ingres-
so Co coincide con il valore di s. Queste considerazioni portano all’architettura
mostrata in Figura 5.21.
182 Circuiti combinatori speciali

——
——
în-l 331 170

<——-—
__

«e
.._
V’
C71 + 1

3m. — l Z1 Z0

Figura 5.20 Sottrattore

i'm — 1 56 1

è è

Cn

Figura 5.21 Sommatorelsottrattore

5.3 Complementatori
In alcuni circuiti aritmetici che svolgono operazioni articolate può essere neces-
sario calcolare il complemento a uno e/o il complemento a due di un vettore di
bit. Questo paragrafo presenta alcune architetture utilizzabili a tale scopo.

5.3.1 Complemento a uno


Un circuito per i] calcolo del complemento a uno, come già visto discutendo della
struttura di un sommatore/sottrattore, consiste semplicemente di una porta XOR
che funziona da inverter controllato da un segnale di selezione s. La sua struttura
ed il simbolo di una cella per il calcolo de] complemento a uno di un singolo bit
sono riportati in Figura 5.22(a) e 5.22(b) rispettivamente. La tabella di Figura
5.22(c) riassume la funzione svolta dalla cella mostrata.
5.3 Complenzenmtarì 183

x,- 3.‘,-

Lrs l F‘ %m_îì.
C] _1_ = 332101

l
ya‘ Le

(H) (b) (C)

Figura 5.22 Cella per il calcolo del complemento a uno

Nel calcolo del complemento a uno è possibile operare sui singoli bit di un vettore
in modo indipendente, ovvero senza la propagazione di alcun segnale. Per questo
motivo un circuito per il calcolo del complemento a uno di un generico vettore di
n bit è composto semplicemente da n celle connesse in parallelo agli ingressi m;
ed alle uscite y.- e ad un unico segnale di selezione s condiviso. Un circuito per il
calcolo del complemento a uno di un vettore di 4 bit è mostrato in Figura 5.23.

I3 1?‘) 171 123g

l: w "l .l 5

CI C1 C1 C1

"l l l l
Z13 y‘: y1 11o

Figura 5.23 Circuito per il calcolo del complemento a uno di un vettore di 4 bit

5.3.2 Complemento a due


Per il calcolo del complemento a due, come già visto, si procede al calcolo del
complemento a uno quindi si somma il valore decimale l. A tale scopo è quindi
necessario realizzare un sommatore. Tuttavia la somma con la costante Ù ,01, . .

espressa su n bit permette di effettuare alcune semplificazioni ai circuiti per la


somma. La Figura 5.24(a) mostra lo schema di somma generale per vettori di
4 bit. Notando che il riporto in ingresso può essere fissato ad uno, ii secondo
operando diviene la costante U D, come mostra 1a Figura 5 .24(b), e può pertanto
. . .

essere omesso.
ll vantaggio di questo fatto che ogni colonna della somma
nuovo schema sta nel
conta ora solamente due operandi. La cella per il calcolo della somma di due
I 84 C ircuiri combinatori speciali

c3 c2 c1 O c3 c2 cl 1

'333 352 «'171 53o + I3 562 551 In +


D 0 D 1 = D D D D :

113 U2 yi yo 3/3 3:2 Z01 Z10

Figura 5.24 Semplificazione del circuito di somma

soli operandi prende il nome di hay’ adder. Tabella della verità, schema logico e
simbolo sono mostrati in Figura 5.25.

I»; ari

I: Ca‘ yi Ci+1 C” i
0 0 D D ci
o 1 1 o CH-IH- HA *— Ce

I D 1 0 4

1 l 0 1 yî

y:-

Figura 5.25 Half adder

Connettendo opportunamente celle per il calcolo del complemento a uno e half


adder è possibile strutturare un Circuito per il calcolo del complemento a due. In
particolare, gli ingressi act- degli half aride: saranno le uscite della cella C 1, ovvero
' i valori naturali o complementati degli ingressi primari, controllati dal valore del
segnale di selezione s. Lo stesso segnale è anche, come già visto, il riporto in
ingresso co, cioè nella posizione più a destra. La Figura 5.26 mostra una rete per
il calcolo del complemento a due per vettori di 4 ‘oit.

I3 i172 I1 56o

i l u l u i u i 5

Cl C1 C1 C1

l
ì i l
HAFHAFHAHHA
l l i i
31:5 '92 '91 9o

Figura 5.26 _ Circuito per il calcolo del complemento a due di un vettore di 4 bit
5.4 Comparatori i 85

Si noti, infine, che il calcolo del complemento a due richiede la propagazione dei
riporti e pertanto il tempo necessario a completare Poperazione dipende dalla di-
mensione degli operandi. Come peri sommatori, anche per questo tipo di circuiti
è possibile progettare architetture più efficienti.

5.4 Comparatori
Un comparatore è un elemento circuitale destinato a valutare disuguaglianze tra
valori numerici rappresentati in notazione binaria, generalmente in complemento
a due. Nel seguito sono presentate alcune comuni architetture.

5.4.1 Comparatori di uguaglianza


Un comparatore di uguaglianza verifica se due operandi, entrambi di n, bit, sono
uguali o meno. Perché due vettori di bit siano uguali è necessario e sufficiente
che lo siano i singoli bit con lo stesso indice, cioè:

X:Y 4::- 3:;=y.gViE[Ù;n—l]


in cui X = [xn_1 . x1 x0] e Y = [yn_1
.. yl yg]. In modo arbitrario si stabi-
. ..

lisce per Fuscita 2 la seguente convenzione: z = 1 se X z Y e z U se X 74 Y. =

Dalla (5 .4.1) si ricava la tabella della verità perla cella di base di un comparato-
re di uguaglianza, riportata in Figura 5.27. Si nota dalla tabella della verità che
r3-: età-y; + Igyi ovvero 2,: = (335 8 yg)’. La cella base e quindi una porta XNOR.
HOHOÉÎ

31'
b-Ih-IQG

|.——oo.—

Figura 5.27 Cella a un bit per un comparatore di uguaglianza

Affinchè due vettori siano uguali la condizione 3::- yl Vi diviene 2,; 1 Vi. In = =

termini booleani risulta quindi z = ah] Z129. Un comparatore di uguaglianza


- - -

è quindi costituito da n. porte XNOR in parallelo le cui uscite vanno in ingresso


ad una porta AND ad n ingressi, come mostrato in Figura 5.28.

5.4.2 Comparatori generici


Un comparatore generico è un circuito dotato di due ingressi X ed Y di n. e di tre
uscite gt, li ed eq che indicano rispettivamente se X > Y, X < Y o X = Y.
186 Circuiti combinatori speciali

56714 «"31 93o

Figura 5.28 Comparatore di uguaglianza

Questo tipo di comparatore e realizzato mediante un sottrattore in quanto:

X>Y e X—Y>0

ed il confronto con 0 di un valore in complemento a due è semplice. Indicando


infatti con Z [zn_1
= rlzg] i] risultato deììa differenza X Y valgono le

seguenti relazioni:

Z>O <=> zn_1=O/\3jE[D;n—2]|zj=1


Z<Ù C} Zn_1:1
Z20 <2)- zgzDV-iélOgri-l}
Queste relazioni algebriche possono essere trasformate in relazioni booleano no-
tando che Elj E [0; n —2] |zj : 1 risulta soddisfatta se almeno uno dei bit da O a
n—-2 èuguale ad 1, cioè se zg+z1+. ..+Z.n_g = 1 eche z,- 0 ‘V1i E [Uz-n-l] è
=

soddisfatta se tutti i bit zi valgono 0, cioè se il loro prodotto logico vale U, ovvero
se (zgzl - 271-1)’ = 1. Le relazioni precedenti possono essere quindi riscritte
- -

come segue:

Queste ultime equazioni portano direttamente alla struttura circuitale del


comparatore mostrata in Figura 5.29.
5.5 Molriplicatori 187

In-I T1 170 îUn-I 1/1 2/0

371-1 Z1 30

Figura 5.29 Comparatore generico

5.5 Moltiplìcatori
l circuiti per la moltiplicazionesono elementi complessi sia dal punto di vista del-
la progettazione, sia dal punto di vista delle reti combinatorie che li realizzano.
Molte sono le architetture che sono state studiate e realizzate, a partire dalle più
semplici strutture a somme ripetute ed a matrice, fino ad architetture comples-
se come i moltiplicatori Wallace [Wa1Iaee, 1964], Booth [Booth, 1951] e Dadda
[Dadda, i965]. Nel seguito si considerano unicamente la strutture a somme ri-
petute e a matrice. Il punto di partenza. come già fatto per i sommatori, e la
struttura algebrica della moltiplicazione di numeri binari. La Figura 5.30 mostra
il procedimento per la moltiplicazione di due Vettori di 4 bit.

{E3 53g i131 1170 X

31:3 1112 1/1 110 =

3733/0 33290 131310 370310

21331,11 E2150 331191 930141

xsyz 25292 171312 E0292

T3313 172'313 331213 T0313

P? P0 105 P4 P3 P2 P1 130

Figura 5.30 Schema di moltiplicazione binaria

Una prima importante constatazione è che il prodotto algebrico di due bit sci e y3-
coincide con il prodotto logico dei due bit. Questo permette di calcolare i prodotti
parziali p“ : gel-y]- mediante porte AND. Si indichino ora con i vettori dei
188 Circuiti combinatori speciali

prodotti parziali X x yj, opportunamente allineati, ovvero:

[ U Ù O maya 1123/0 37190 33090 l


Ti = l Ù Ù 33111 213291 îîiyi 33091 Ù l

l Ù 35392 1721/2 E1192 330342 Ù Ù l


l 2332,43 2323/3 zviys xuys 0 0 0 l

Dallo schema di moltiplicazione si deduce che:

P: [p7 plpg] =T0+T1+T2+T5


ovvero che il prodotto può essere calcolato mediante tre sommatori in cascata.
Tale architettura può essere realizzata mediante sommatori ripple-carry o carry
looloahead in cascata, come mostrato in Figura 5.3l(a), oppure mediante una
struttura carry-save, come mostrato in Figura 5.3 l(b). Si noti, come già discusso,
che Fuso di sommatori carry-saive diviene progressivamente più vantaggioso al
cresceredel numero di operandi, ovvero, nel caso di prodotti parziali, al crescere
del numero di bit degli operandi.

Figura 5.31 Moltiplicatore con sornmatori generici e con sommatori carry-save

La struttura con sommatori in cascata ha un ritardo minimo (utilizzando somma-


tori carry look-ahead a blocchi di 4 bit) pari a 3 102"‘ 301" mentre la strut-
- =

tura carry-save con un sommatore carry look-ahead finale ha un ritardo pari a


2-2T+ 10T= 141T.
Un modo alternativo di pensare la struttura del moltiplicatore consiste nel “distri-
buire” Poperazione di somma dei singoli bit dei prodotti parziali. Si consideri, per
esempio, il prodotto parziale 31-312 (Figura 5.30). lîoperazione di somma locale
che coinvolge questo termine dovrà operare sui seguenti elementi:
5. 5 Moltipficarofi 189

(i) il prodotto parziale stesso x1 yg;

(ii) il risultato della somma parziale degli elementi che si trovano sulla stessa
colonna, cioè ,92‘; = xgyo + Igy};

(iii) il riporto c1’; proveniente dalla analoga somma immediatamente a destra,


cioè dal prodotto parziale 33g yg.

producendo come risultati:

(i) la nuova somma parziale 33,3 = ilîjgyo + 232m + mp2;

(ii) il riporto c212 da propagare alla analoga somma immediatamente a sinistra,


cioè al prodotto parziale zgyg.

Questo insieme di dati in ingresso e dati in uscita è riassunto dallo schema di


Figura 5.32{a). Notando che il prodotto parziale è calcolato mediante una porta
AND, che tutte le celle sulla stessa riga utilizzano per il prodotto lo stesso bit
delroperarido Y e che tutte le celie suila stessa diagonale utilizzano lo stesso bit
delfoperaiido X e generalizzando lo schema di somma per una generica cella
zig; si ottiene la cella di moltiplicazione e somma mostrata in Figura 5.32(b).
Tale cella e spesso indicata con la si gla MAC, cioè Multiply-and-Accurnulate.

I I
I
32.1 Iiyi ;

i yî .

I
4 31€

i I
I I
I I

e13 ..— 12A .._ c1‘; l‘ I

I :
I 1p I

E I E

Ssp
' C2414" :

.
FA h-fir-Ci-f .

/
J

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ . . -_}

1 i

(H) (b)

Figura 5.32 Schema di moltiplicazione distribuita e cella di base

Coimettendo le celle MAC in modo da ricalcare lo schema di moltiplicazione


mostrato in Figura 5.30 si ottiene Parchitettura a matrice riportata in Figura 5.33.
Benché la cella di base, come proposta in Figura 5.32(b)._ sia una rete su tre livelli
(la porta AND più il fuli adder), essa può essere ottimizzata e portaia su due livelli.
l’ 90 Circuiti combinatori speciali

i173 i172 E1 330

0 0 0
l i l l
4- MAC : MAC : MAC : : MAC in

i i l
h MAC : MAC : MAC : MAC : il
, l l l
‘F’ MAC ‘HM MAC 4— MAC 4- MAC 4— Z2

Î i 1 i
-1— 4— 4—-— 4—-—- 4— Q3
MAC MAC MAC MAC
-— 4- -— 4- O

l l L 1 l ,

‘P7 P5 105 P4 10s 102 P1 Po

Figura 5.33 Moltiplicatore a matrice per operandi a 4 bit

In questo caso il suo ritardo è pari a 2T ed il ritardo complessivo del moltiplicatore


a matrice è pan’ a 181". Da una analisi della souttura di un moltiplicatore a matrice
con operandi di n bit si deduce che il ritardo è in generaie pari a 6{rt. 1)T. Barca —

di un taìe moltiplicatore e invece uguaie akn? in cui k è la dimensione della cella


MAC (k T se su tre livelli, k
= 10 se su due livelli}.
=

L’ architettura a matrice, ricalcando pedissequamente io schema aritmetico di mol-


tiplicazione, è particolarmente adatta ad essere estesa e generalizzata ad operandi
di dimensione variabile. Tuttavia sono diversi gli svantaggi di una tale soluzione
ed in particolare 1a bassa velocità causata dalle catene di propagazione dei riporti
nelle somme parziali e, soprattutto, Pimpossibilità di trattare operandi negati-
vi. Questa circostanza dipende fondamentalmente da una operazione nota come
estensione dei segno. Nella costruzione dei vettori dei prodotti temporanei T,-
nella (5.5) per garantire Pallineamento, le posizioni alla sinistra del bit più signi-
ficativo sono state riempite con degli zeri. Tuttavia, se X < G allora m3 1 e, per =

ogni y, = 1, si ottiene xgy, = 1, cioè il bit più significativo del prodotto parziale
T; è un l, in accordo con il fatto che se X < Ù allora anche Xyg < D. Aggiungere
uno o più zeri nelle posizioni più significative di un numero negativo, quindi, in-
troduce un errore: per mantenere invariato il valore è necessario, in questo caso,
5.6 Unità aritmetica logiche 191

aggiungere degli 1. L’ estensione avviene pertanto secondo il seguente schema:

—* In_1=Ù —-> Xe33e3o=[Ù...Da’î3.n_1In_2...Ig]


X<O —> x,,_1=1 —> Xesteso:[1...1;z:n_1xn_2n.270]
che può essere riassunto dicendo che Festensione del segno consiste nel replicare
un numero opportuno di volte il bit più significativo del vettore in questione, cioè:

Xesteso z i 3311-1 - - - 51711-1 311-1 5311-2 - - - 330]

Sulla base di queste considerazioni, iisulta chiaro che la struttura del moltipli-
catore a matrice deve essere modificata per poter supportare operandi di segno
qualsiasi. Inoltre, è opportuno notare che il meccanismo deifestensione del se-
gno risolve il problema solo se il moltiplicando X e negativo ma non se e il
moltiplicatore Y ad essere negativo. Per risolvere il problema del segno in modo
generale sono state sviluppate diverse architetture di cui la più conosciuta e nota
come moltiplicatore di Booth [Booth, 1951].

5.6 Unità aritmetico logiche


Una unità aritmetico logica (ALU) è un circuito combinatorio in grado di svolgere
più operazioni su due operandi sulla base di un segnale di selezione. Si possono
distinguere due tipologie principali di ALU: mulriplexed e bit-siiced. Le prime
sono composte da operatori azitmetici e logici completi e permettono la selezione
delfoperazione mediante alcuni multiplexer; le seconde, invece, sono moduli per
il calcolo di diverse operazioni sui singoli bit degli operandi e devono pertanto
essere opportunamente connesse per formare operatori completi.

5.6.1 Multiplexed ALU


Come suggerisce il nome utilizzato per riferirsi a questo tipo di architetture, le
multiplexed ALU si basano sull’uso di multiplexer che hanno lo scopo di inca-
nalare in modo flessibile i dati verso un insieme di operatori di base. I segnali
di selezione dei diversi multiplexer permettono di definire il percorso dei dati e
quindi Foperazione complessivamente svolta dalla ALU. La Figura 5.34 mostra
una tipica struttura di una ALU basata su multiplexer e dotata degli operatori di
somma, moltiplicazione e divisione. Si noti che nella figura non è specificata la
dimensione degli operandi X ed Y e del risultato Z. La struttura presentata for-
nisce come uscite anche i bit cm; per la valutazione delfeventuaîe overfiow della
sommafsottrazione e i tre bit gt, eq e ili che indicano se il risultato è positivo, nullo
o negativo rispettivamente.
Ì 92 C ircttiri combinatori Speciali

Comi yi. eq H’

Figura 5.34 Multiplexed ALU

Come anticipato, mediante i segnali di selezione so, 51, ., 5g è possibile impo-


. .

stare i multìplexer (s2 controila 1a porta XOR per la sottrazione e s3 il riporto in


ingresso ai SOTIIIHHÎOIS) in modo da ottenere Poperazìone voluta. Si voglia, per
esempio, realizzare Foperazione Z z X Y: a tale scopo si pone 5g = O per

portare Poperando X su un ingresso del sommatore, 51 = 0 per selezionare l’o-


perando Y per Feltro ingresso del sommatore, 52 = 1 e s3 1 per calcolare il
=

complemento a due di Y ed infine 5557.93 O00 per selezionare Pingresso 0 del


=

multiplexer di uscita. Si noti che la selezione delFingresso 0 del multiplexer di


uscita permette di ignorare il valore dei segnali di selezione s4 ed
In modo analogo per eseguire Poperazione Z = X AND Y è sufficiente sele-
zionare Pingresso 3 del tnuitiplexer di uscita mediante i segnaiì .555753 = D11,
ignorando tutti gii altri.
La Tabella 5.2 riassume le operazioni che possono essere svolte daîla ALU pre-
sentata in base ai Valori di selezione. Come si può notare, non tutte le configura-
zioni di ingresso sono presenti: qualunque assegnarnento dei valori 0 e 1 ai don't
care produeeinfatti lo stesso risultato, inoltre alcune delle combinazioni possi-
biìi dei bit di selezione s;
non sono presenti poiché producono uscite di minore
interesse. Ciononostante, tali combinazioni sono valide e possono essere usate-
5.6 Unità afinnerico logiche 193

S0515233 s4 s5 35.37.93 Z Z
503132 s3:s4‘s5s5.s7.s3
0000-4300 25+1’ ————0—001 X?
0001——000 X+Y+1 ————1—OO1X><Y
0011——000 X-Y —————0010 x7?’
0100——000 X+1 —————1010 1/3.’
U111——DDOX—1 — ——O11XANDY
— — —

1000——0UUY — ——1UOXORY
— — —

1D01——0DOY+1 — ——101XXORY
— — —

1011——0O0—Y ' — — — — ——1100


1111——000—1 — — — — ——1111

Tabella 5.2 Operazioni della ALU presentata in Figura 5.34

5.6.2 Bit-sliced ALU


Una ALU bit-sliced e una rete combinatoria dotata di ingressi (m, y, (tifi) ed uscite
(z, co“) dati della dimensione di un bit e di un insieme di segnali di selezione
per la scelta delfoperazione da svolgere. Gli ingressi di selezione possono essere
suddivisi in due classi: selezione degli ingressi (anse, inox, enb) e selezione delle
uscite (so, s1, s2, 53). La Figura 5.35 mostra un esempio di una ALU bit-slìeed.

1' î

cm
enr Î

mm: jf/
eny îJ x è
Cout FA — r}
5D
5I
S‘)

‘î S3
l!

Figura 5.35 Bit-slìced ALU

Le funzioni svolte da una tale cella possono essere espresse sotto fonna di espres-
sioni booleane. Indicando con 225m ed yl-m; le due linee che distribuiscono interna-
194 Circuiti combinatori speciali

mente i segnali s: ed y agli operandi si può dedurre dallo schema logico riportato
nella Figura 5.35 che:

113m; = (x - engc) 6B inno:


34km: = 3} ' 3713;‘

Questi segnali sono utilizzati dal full adder e dalle porte logiche per produrre
le uscite. Per esempio, per realizzare una cella di somma si pone enm = 1 ed
eny = 1 per abilitare gli ingressi, non si complementa Pingresso n: ponendo
inox D ed infine si seleziona Ia sola uscita corrispondente al full adder ponendo
=

39.31.9233= 1DDD. La Tabella 5.3 riporta alcune delle configurazioni possibili dei
segnali di selezione della ALU e le corrispondenti funzioni.

iena: eny inox s9 s1 s; s3 uscite significative


1 U U U U 1 D z=zc

1 U 1 U U 1 U 2:33"
U 1 U U U 1 O 2:3;
U 1 U U U U 1 22g’
1 1 0 0 0 1 0 z=I+y
1 1 1 U U 1 D 2239+?)
1 1 D D 1 D D zzaîy
1 1 1 D 1 D D z=x’y
1 1 U l D U U z=z6y€acm
con: : 55g ‘i’ Ifîm + Îicrîn
Tabella 5.3 Operazioni della ALU presentata in Figura 5.35
u.» "'

Macchine a stati finiti


Contenuto

6. I Introduzione
6.2 Macchina di Morire e macchina di Mealy
6.3 Modelli per le macchine a stati finiti
6.4 Procedura di trasformazione dei modelli
Esercizi

Questo capitolo illustra il formalismo con il quale si descrivono sistemi la cui


risposta, ad una medesima sollecitazione, dipende anche dal tempo. Il formali-
smo è quello relativo alle macchine a stati. Tra tutti i possibili sistemi a cui è
possibile riferirsi, l'ambito in cui ci si colloca restringe il campo alle macchine
fisicamente realizzabili che evolvono suila base di un evento esterno (segnale di
sincronismo). Oltre ad illustrare le caratteristiche formali della macchina utiliz-
zata, questo capitolo descrive le procedure di passaggio tra i due tipi macchine
possibili (MealyfMoore e viceversa) e presenta alcune indicazioni sulle relazioni
tra i modelli e gli ambiti appìicativi.

6.1 Introduzione
Una macchina a stati (detta anche automa a stati) è un modello matematico uti-
lizzato come approssimazione di fenomeni fisici o astratti. Sebbene non sia parte
degli obiettivi di questo testo mostrare la generaiità e la potenza de] modello, è
rilevante sottolineare che la sua significatività non è confinata in una specifica
area scientifica ma trova applicazione diretta in ambiti che spaziano dalla psico-
logia alla gestione finanziaria, dalla comunicazione alla linguistica, dall’attività
neuronale al funzionamento di un sistema digitale e in molti altri ancora.
Come è noto, un generico sistema è caratterizzato da un insieme di variabili che
può essere suddiviso in variabili di ingresso, variabili di uscita e variabili di stato.
Mentre quelle di ingresso e di uscita sono entità che possono essere osservate e
misurate, quelle di stato rappresentano una condizione del sistema che permette
di conoscere Pevoluzione delbuscita a partire da una sequenza di ingresso nota:
196 Macchine a srarìfiniri

lo stato rappresenta, cioè, 1a memoria storica del sistema. Si osservi che, contra-
riamente a quanto avviene per le reti combinatorie (in cui Fuscita dipende solo
dalfingresso), Fuscita di una macchina a stati dipende sia dallîngresso che dallo
stato; ne consegue che è possibile osservare valori d’uscita differenti applicando
10 stesso ingresso in istanti di tempo diversi.
Sebbene sia possibile. da un punto di vista teorico, considerare un modello nel
quale gli insiemi delle configurazioni di ingresso e di uscita e Pinsieme degli
stati possono avere cardinalità infinita, il contesto in cui ci si pone presuppone di
considerare la realizzabilità come caratteristica essenziaie; per questa ragione, le
macchine a stati che vengono prese in esame sono caratterizzate da un insieme
finito di simboli di ingresso X, da un insieme finito di simboli di uscita Z e da
un insieme finito di stati S. Quesfultimo aspetto riduce il campo di studio alle
macchine a stati finiti o FSM (Finite State Machine).
Uifulteriore restrizione al modello generale è dettata da un’ipotesi relativa al
“modello del tempo” che verrà adottato. In una generica macchina a stati fini-
ti, Fevoluzione dello stato è dettata da un evento; se quesfultimo è prodotto da
una sorgente indipendente di sincronizzazione la macchina è denominata sincrona
mentre, nel caso in cui non lo sia, la macchina è definita asincrona- Nel contesto
in cui ci si pone, gli automi considerati sono di tipo sincrono. In questi sistemi, il
modello di tempo adottato è quello del tempo discreto secondo cui si assume che:

(i) un modello a stati finiti è controllato da una sorgente indipendente di sincro-


nizzazione che scandisce i momenti (eventi di sincronizzazione) nei quali le
variabili di sistema sono valutate. Questi istanti di tempo sono noti co-
me istanti di campionamento; Pistante di campionamento k-esimo avviene
all’istante ti. con k 2 1. 2, .;
. .

(ii) il comportamento del sistema in un qualunque istante di campionamento ti.


è indipendente dalfintervallo tra tk e t,z.._1; ne consegue che l’ unico aspetto
di rilievo è Fordine con il quale si considerano le variabili del sistema.

Si osservi che le due ipotesi impongono che la macchina evolixa da una condizio-
ne di equilibrio alla successiva in tempi idealmente nulli e che la nuova condizio-
ne di equilibrio, quella nellîntervallo [in 11+1), sia dettata solamente dal valore
assunto dalle variabili al tempo tk.
Una ulteriore restrizione da considerare è quella dettata dal determinismo. Una
macchina sequenziale è deremzinisrica se e solo se lo stato del sistema in cui
evolve (stato nell’istante 15k”) dipende univocamente dallo stato e dalla confi-
gurazione di ingresso allîstante di campionamento tk; modelli che considera-
no possibili più stati evolutivi per unîmica coppia stato-ingresso non verranno
trattati (modelli non detenninistici).
6. l Introduzione l 97

Nel seguito, per ragioni di sinteticità, ci si atterra al modello di riferimento uti-


lizzato con il solo termine di macchina a stati finiti, macchina sequenziale, au-
toma, ecc., sempre sottintendendo il modello delimitato dalle restrizioni appena
descritte: macchine a stati finiti, sincrone e determini stiche.
Per una generica macchina a stati finiti il concetto di stato può essere accura-
tamente definito solo attraverso i1 ruolo che tale concetto gioca nel postulare il
modello di automa. Oltre ai fatto che 10 stato rappresenta 1a condizione in cui il
sistema si trova in un dato istante, il ruolo dello stato può essere descritto dalle
due seguenti affermazioni:

(i) il simbolo d’uscita all'istante tk è univocamente determinato dal simbolo


d’ingresso e dallo stato all’istante di campionamento tk;

(_ii) io stato in cuisistema si stabilizzerà dopo Fistante di campionamento ti.


i1
è univocamente determinato dal simbolo d’ ingresso e dallo stato allfistante
di campionamento tic.

Poiché Fosservazione sul sistema viene attuata solo negli istanti di campiona-
mento, ne consegue che Fistante attuale (o presenre) è h, mentre il tempo tk+1
rappresenta Pistante futuro (inteso come successivo o prossimo). Facendo uso
di questi due nuovi termini, le affermazioni precedenti assumono la forma più
comune nella quale si sottintende il concetto di tempo discreto:

(i) il simbolo d’uscita presente è univocamente determinato dal simbolo


dîngresso presente e dallo stato presente;

(ii) lo stato futuro è univocamente determinato dal simbolo dîngresso presente


e dallo stato presente.

Quanto affermato finora è riassunto dalle seguenti definizioni:

Definizione 6.1 Una macchina a stati finiti sincrona M (SFSM Synchmnous -

Fininte S tare Macchine) è un sistema sincrono con un alfabeto di ingresso finito


2L’ : {gl,gg,...,gp}, un alfabeto di usclrafinlto Z {CLQZHWCQ}, un =

alfabeto di stato finito S = {G0, 02, ,cr,.} e dalla coppia di funzioni À e 6,


. . .

dette rispettivamente di uscita e di stato prossimo, tali che:

2;, = Atei, 3,1,) sk+1 = 6km“ 53,) macchina di À-iealy


2;, : Msk) 3;,“ = (X315, sk) macchina di Ivîoore

dove 21,, r], e sk sono le variabili di uscita, di ingresso e di stato ali ’isîante
presente e possono assumere valore, rispettivamente, in Z, A.’ e S. El
193 Macchine a statifiniîi

Definizione 6.2 Una nzacchina a stati finiti sincrona 11/! deterministica (DSFSM
Derenninistic SFSM) è definita dalla sestupla:
-

M’ =< S,X,Z,,\,6,a0 >

dove S rappresenta I0 spazio finito di stato, 2t’ rappresenta Z0 spazio finito


d ’ingress0 e Z [o spazio finito d ’uscita. La jiznzione À è denominata funzione
dîtscira; quando À : S —> Z la macchina è nora con il temine di macchina di
Moore, quando À : S >< 25 —> Z la macchina è nota con il termine di macchina
di Mealy. La funzione 6 è denominata fitnzione di stato prossimo ed è definita
come A S x A.’ : S. Infine, ag e S è I0 stato di partenza ed è unico.
——> E:

Si osservi che da queste definizioni segue una affermazione che riguarda il corn—
portamento del modello e il concetto di stato che sono stati espressi in precedenza.
In qualunque istante ti, la sequenza di uscita della macchina per ogni t 2 ti è nota
se e solo se sono note:

(i) 1a sequenza di ingresso applicata per t 2 ti;


(ii) le funzioni À e 6;

(iii) 1o stato della macchina al tempo ti.

Ne consegue, in particolare, che Fevoìuzione deìla macchina a partire dalristante


iniziale tu è nota se e solo se sono note 1a sequenza di ingresso applicata per
t 2 tg, le funzioni À e 6 e che 10 stato di partenza a0.

6.2 Macchina di Moore e macchina di Mealy


Le macchine di Moore e di Mealy differiscono per il modo con cui Fuscita è
definita: nella macchina di Moore 1a funzione d’uscita dipende solo dalìo stato
corrente mentre nella macchina di Mealy Fuscita dipende sia dallo stato corrente
che dallfingresso attuale. Anche se le direttive della specifica indicano, spesso in
modo indiretto, quale delle due macchine conviene utilizzare, i due modelli sono
funzionalmente equivalenti ed e possibile passare da uno alPaltro.
Prima di descrivere la procedura che permette i1 passaggio da una macchina a]-
Yaltra, è necessario definire il concetto di equivalenza tra macchina di Moore e
quella di Mealy. In primo luogo, due macchine sono equivalenti quando, a parità
di sequenza di ingresso e di stato di partenza ore E S, le due sequenze di uscita so-
no identiche. Per la definizione, nella macchina di Moore Fuscita è associata allo
stato e, conseguentemente, la prima uscita è indipendente dalPingresso mentre le
6.2 Macchina di Moore e macchina di Mealy 199

uscite successive dipendono (attraverso lo stato) anche dalla sequenza di simbo-


li di ingresso applicata. Riferendosia una generica successione di ingresso di j
simboli risulta che, per la macchina di Moore, si genererà una sequenza di j + 1
simboli di uscita. Per quanto riguarda la macchina di Mealy, invece, ogni simbolo
d’uscita è funzione della coppia <simbolo di ingresso, sroro>; ne consegue che la
stessa successione di j simboli di ingresso genera una sequenza di j simboli di
uscita: uno in meno rispetto a quella generata dalla macchina di Moore. Poiché
j non è definito a priori, l'unico modo per confrontare le sequenza d’uscita, e
quindi la corrispondenza tra modelli, è quello di ignorare Fuscita corrispondente
allo stato di partenza nella sequenza generata dalla macchina di Moore.

Definizione 6.3 Una macchina di Moore:

flîmoore :< Smoorea X: Z 7 Àmoore: ‘Sînoorew (70 >

e una macchina di Mealy:

Ìiîmeazy =< ‘Smealy: X: 3.- Àmealya (îmeaiya U0 >

sono equivalenti, dal punto di vista dei comportamento ingresso-uscita, se e


solo se, ignorando i ‘uscita Z0 Amwemg) di il/fmgme, ogni possibile sequen-
=

za di sinzboli di ingresso genero una coppia di sequenze di simboli dflzisicita,


una per Almoore e una per llfmeazy, coincidenti. D
Infine, si osservi che due macchine (Mealy e Moore) equivalenti dal punto di vista
funzionale presentano un disallineamento temporale delle uscite; in particolare,
Feliminazione dell'uscita corrispondente allo stato iniziale fa sì chela macchina
di Moore sia in ritardo di un evento. Il passaggio da un modelio all’altro avviene
nel modo seguente:

Trasformazione Moore/Mealy. La trasformazione di una macchina di Moore in


una macchina di Mealy è particolarmente semplice poiché richiede solo di
associare Fuscita appartenente a uno stato a tutte le transizioni che da esso
hanno origine. Ne consegue che della sestupla relativa alle due macchine il
solo termine da modificare è la funzione d’uscita.

Trasformazione Mealyfltloore. La trasfonnazione di una macchina di Meaiy a


una di Moore e meno immediata a causa del fatto che le transizioni che
raggiungono uno stato possono essere associate a differenti valori dell’u-
scita. Poiché nella macchina di Moore ogni singolo stato è associato a
una configurazione dfiiscita, il passaggio dsl modello di Mealy a quello di
Moore impone di replicare ogni singolo stato della macchina di partenza
si E Smeagy tante volte quante sono le transizioni con uscite differenti che
200 Macchine a srarifiniri

portano a si: e di associare a questi nuovi stati tali uscite. Nel caso di stati
transienti, cioè stati privi di transizioni che li raggiungono, Puscita è uno
qualunque dei simboli di ingresso cioè, non è specificata (in questo caso il
simbolo utiîìzzato è, generalmente, ‘—’).

Approfondimento: Trasformazioni Mealy/‘Moore e Moore/Mealy


Data una macchina di Moore:

Aljmoorc =< Smoo-re: X, 2’, Àmom-e, tîmam, U0 >


la corrispondente macchina di Mealy

Mmeazy =< Smeazy, X, Z, Àmealyw amealgj: U0 >


ha le seguenti caratteristiche:

Smealy E Smoore
dmealg; E amoorc

Àrraealytrkisk) : 75k = Àmoorcflsk)

In modo analogo, data la macchina di Mealy lîxiyneagy, la corrispondente macchina


di Moore fvfnflmr, ha le seguenti caratteristiche:

Smoore Z {< 57m 510-1 >3 53: e ‘Smealya zk—1 E Z U


6mo0re(I-k'= < 51.:: Zk-l >) E< émealg/(xkw 3h): Àmciuytîk- 3.1:) >
Àm0ore(< sia‘: zie-l >) x Àmeaiy [Ik-l Sk-l)
:

A titolo di esempio,e utilizzando come modo di rappresentare una funzione il


conispondente grafo‘ (se, f(;e)) con x e S x X e f(:c) E 8, si consideri una
macchina di Melay costituita dalla seguente sestupla:
Smgaly = {A,B.C} X = {C.1} Z = {O1} m; = A
fîmeazy = i((3ka3k)=5k=+1l} ={ (ULALCl. HLALBL (file-Elmi),
HLBLBL ((Ù-.CLC')« HLCLB) l
Àîîlfilfly : ‘Htykns-È‘): 316)} :{ ((1=‘4)10)?
((1=B)=1)e ((Ù=C)=ÙJ:((1=CJ=1) i
da cui si ottiene il nuovo insieme degli stati:
‘sfavore : {(3ku zie-l): 51v E Srrxealys Zk-l E ZU :

= {< Sgfkphzk >1 Sk+1 E Smcagy, Zk_1 E ZU =

={< 0,1 >, < B.O>, <A,0>, <B,1>, <C,0>}=


= {C1,BO,AG,B1,CO}

III grafo di una funzione è la collezione di iutti punti (m. f(:c))‘v':.-: E X. Per esempio. il grafo di una funzione
discreta {(1, a), (2, d}, (3, 0)} indica che al punto 1 del dominio corrisponde il punto a de] codominìo.
6.3 Modelli per le macchine a stari finiti 201

e la funzione di stato prossimo:

‘smuore : {(5179- < sk- Zia-l >).- < 6TH€Qly(IlC5 31:): Àntcclayfierlkesk) >i :

z {fl-Îk-i-ls < Sk-i-Iizlc >)-. < ‘îmealycî-‘k-î-lrsk-l-l):Àzriealy(îrk+l:sk+l) >)}


che, per ogni ma; E X, produce Pinsieme:
5mm,” = { ((0, C1), < C.0 >), ((1,C1).< B.1>), ((0. B0).< A,0 >),
((1,B0),< B,1 >), ((0, A0), < C.1 >), ((1.A0),< 13,0 >),
>), ((1,31), < B, 1 >), ((0,00). < 0.0 >),
((0, B1), < 21,0
((1.00), < 3,1 >) }
= {((0,c1),c0), ((1.C1),B1), ((U,B0),A0), ((1,B0),B1),
((0. ,40),C1), ((1,A0),B0), ((0,B1),A0), ((1,B1),B1),
((0.C0),C0), ((1,C0),B1) }
inoltre, per la funzione di uscita si ha:

Àmoore z skJrlizk >- Àînealycxkvskn} Z sk+lazk >2


da cui si ricava, infine:

Anumr, n: {(< C.1 >.1), (_< 3,020). (<A.0>,0),


(< 3,1 >,1), (< (7,0 >,0)}
= { ((71.1), (30,0), (40,0), (31,1), (G0, 0) }

6.3 Modelli per le macchine a stati finiti


Descrivere la funzionalità di una macchina a stati significa esprimere in modo
formale gli aspetti che la caratterizzano. Nel corso degli anni, le diverse esigen-
ze sia di descrizione dei fenomeni sia di realizzazione e analisi hanno spinto la
comunità scientifica e industriale a presentare dei fonnalismi di descrizione che
si adattassero al meglio alle specifiche esigenze. Tra i differenti formalismi di
descrizione ve ne sono alcuni che, per la loro semplicità e ragionevole generalità,
sono comunemente considerati dei buoni modelli di iiferimento. In particola-
re, questi sono: il grafo di transizione della stato, che prende anche il nome di
grafo degli stati, la tabella di transizione della stato, denominata anche tabella
degli stati, il modello di Huflinan e la rete logica sincrona. Mentre il primo e
il secondo formalismo di descrizione sono di tipo comportamentale poiché sono
Fespressione del solo comportamento e non portano alcuna informazione sulla
struttura della macchina, il terzo e il quarto sono formalismi che rappresentano
anche il funzionamento della macchina miscelando aspetti comportamentali con
caratteristiche sflutturali.
202 Macchine a stati finiti

6.3.1 Grafo di transizione dello stato


Un grafo di transizione dello stato è un grafo diretto etichettato G =< V, 8 > co-
stituito da V z {or}, v1, , in} vertici (Pinsieme V coincide con Tinsieme degli
. . .

stati S) e daé‘ = {q}, s1, , eu} archi dove ogni arco e;


. . . (vîgvk): 124,43, E V
=

è: orientato; in particolare, Parco e, (pi, ok) esce dal nodo o,- ed entra nel nodo
=

"ok. Gli archi e i vertici sono, rispettivamente, la rappresentazione grafica delle


transizioni e degli stati. Ad ogni transizione è associata una coppia di etichette:
una che appartiene all'insieme dei simboli di ingresso X, e che individua la con-
dizione di transizione da uno stato al successivo, Faina che appartiene all’insìeme
dei simboli d’uscita Z. Per quanto definito in precedenza, risulta naturale ossee
vare la relazione tra il modello e questa rappresentazione formale del modello
stesso; si può notare altresì che il vertice di partenza della transizione rappresenta
lo stato presente, il vertice d’ arrivo lo stato prossimo mentre le etichette sull’arco
indicano Fingresso e l'uscita alfistante presente (Figura 6. i ).

6 l” 0
Figura 6.1 Grafo di transizione dello stato

Sebbene la rappresentazione di Figura 6.1 sia assolutamente generale, quest'ulti-


ma è una eccellente raffigurazione delle sole macchine di Mealy. La ragione di ciò
risiede nel fatto che per le macchine di Moore l’uscita è funzione solamente dallo
stato e, di conseguenza, tutti gli archi uscenti riportano 10 stesso simbolo d’uscita.
Per evitare questa ridondanza e rendere ia descrizione più compatta e leggibile,
le macchine di Moore vengono rappresentate associando i simboli d’uscita allo
stato invece che alle transizioni (Figura 6.2).

@
Figura 6.2 Grafo di transizione dello stato per le macchine di Moore

Infine, si osservi che ii formalismo utilizzato consente di descrivere sia macchine


completamente specificate che macchine non completamente specificate? Per
esempio, poiché da ogni nodo devono uscire tanti archi quanti sono i simbo-

ZCome per le reti combinatorie, si tratta di situazioni in cui parte della specifica non è completamente definita
poiché non si presenta una determinata situazione oppure non è osservabile il comportamento,
6.3 Modelli per le macchine a srarifinitì 203

li di ingresso, Fassenza di un arco implica una condizione di indifferenza (per


quelPingresso non è noto né 10 stato futuro né, di conseguenza, Puscita).

6.3.2 Tabella di transizione dello stato 0 tabella degli stati


Una tabella di transizione dello stato è costituita da una coppia di tabelle giustap-
poste ognuna delle quali ha come indice di riga uno stato appartenente a S e come
indice di colonna un simbolo di ingresso appartenente a X (Figura 6.3).

înlfil lfq folfll lîq


00
a1 Elementi sk+1 E S secondo Elementi zk 6 Z secondo
la relazione indotta da 6 la relazione indotta da A
Up

Figura 6.3 Tabella di transizione degli stati

Ogni elemento della prima tabella corrisponde allo stato futuro indotto dalla cop-
pia (indice di rigajndice di colonna) secondo la funzione stato prossimo carat-
teristica della macchina rappresentata; la prima tabella, di conseguenza, è una
rappresentazione grafica della funzione di stato prossimo 5. Analogamente, ogni
elemento della seconda tabella è in relazione a un simbolo d’uscita indotto dalla
coppia (indice di riga; indice di colonna) secondo la funzione cl’uscita della mac-
china in esame; la seconda tabella, quindi, è una rappresentazione grafica deîla
funzione À; il modello risultante è mostrato in Figura 6.4.

fa l €1 l - - - l {q
U0
01 Elementi 5;,“ E 5 secondo Elementi zk e Z secondo
d ia relazione indotta da 6 la relazione indotta da A
“p
Figura 6.4 Tabella di transizione degli stati per una macchina di Moore

Come per il caso precedente, questioni di sintesi e chiarezza della rappresen-


tazione impongono una rivisitazione della rappresentazione stessa separando la
descrizione per il modello di Moore da quella relativa alle macchine di Mealy.
Nella macchine di Moore, Pindipendenza del simbolo di uscita dal simbolo di
ingresso consente di ridurre la seconda tabella a una sola colonna; per il modello
di Mealy, le due tabelle possono essere sovrapposte riportando, per ogni coppia
204 Macchine a stati finiti

(stato presente; ingresso presente), la coppia (stato futuro; uscita presente), come
mostra la Figura 6.5.

Éolfil ifq
0o
01 Elementi sk“ E S c Z}, e Z secondo
le relazioni indotte da 6 e da À
‘70

Figura 6.5 Tabella di transizione degli stati per una macchina di Mealy

6.3.3 Modello di Huffman


La definizione data di macchina a stati finiti sincrona deterministica pennette di
effettuare una interessante osservazione. Come già descritto in precedenza, nota
una coppia (stato; ingresso) allîstante 15k sono noti Puscita nello stesso istante e
lo stato futuro. Ricordando anche che lo stato è una condizione interna al sistema,
l’unico modo per poterne disporre all’istante tk è quello di ipotizzare la presenza
di una memoria (memoria di stato) che, tra un istante di campionamento e Paltro,
conserva il valore assunto dallo stato. Sulla base di questa osservazione nasce
il modello di Huffman nel quale viene evidenziato il ruolo svolto dalla memoria
di stato separandolo da quelio delle funzioni stato prossimo e uscita. 11 modello,
di conseguenza, è ibrido poiché unisce aspetti comportamentali (funzioni di stato
prossimo e dfiiscita) e aspetti strutturali (memoria), come mostra la Figura 6.6.

EX——* . . ——*z€Z
I funziomcîeÀ

s: E 8 memoria 5t—j1 E 5
di stato

Figura 6.6 Modello di Huffman

Anche in questo caso, le esigenze di semplicità e chiarezza impongo di diffe-


renziare i modelli sottolineando come, nelle macchine di Moore Fuscita dipenda
solo dallo stato (Figura 6.7(b)) mentre, nelle macchine di Mealy, Fuscita dipende
sia dallo stato che dallfingresso (Figura 6.7(a)). Infine, si osservi che il modello
è in grado di rappresentare il sistema a differenti livelli di astrazione. Infatti, a
patto di essere sufficientemente coerenti, le funzioni e 1a memoria possono essere
sia entità descritte a un alto livello di astrazione (funzioni booleane, tabelle della
6.3 Modelli per le macchine a srarifinìri 205

funzione À —---+ z E Z funzione À —-*— z E Z

2V e A?
I e funzione 6 I funzione 5

s: E 5 memoria 3t+l G 5 S; E 5 memoria 5:44 E 5


di stato di stato

(a) (b)

Figura 6.7 Modello di Huffman per macchine di Mealy t’ a) e di Moore (b)

verità, ..-) sia elementi descritti con un elevato iivello di dettaglio (porte logiche
derivate da una libreria tecnologica, elementi di memoria, .). . .

6.3.4 Rete logica sincrona


La rete logica sincrona è costituita da un grafo diretto G =< l}, E > con archi
pesati. ìîinsieme dei vertici V è partizionato in tre sottoinsiemi: i nodi di ingres-
so VI, i nodi di uscita V0 e i nodi interni VH. I nodi di ingresso e uscita sono
gli unici che, rispettivamente, possono essere controllabili e osservabili. Ogni
nodo interno, invece, corrisponde a una singola funzione combinatoria a una so-
la uscita. Ogni vertice collega un nodo al successivo secondo una reiazione di
dipendenza funzionaie: un nodo ‘vi è ingresso di un altro nodo "Dg; se e solo se
quest’ ultimo rappresenta una funzione combinatoria che contempla, tra le varia-
bili da cui dipende, la funzione realizzata da vi. Gli archi sono etichettati con un
valore numerico intero positivo rr E [Dg 0o) che indica la quantità di elementi di
memoria di tipo D che sono interposti tra i due nodi connessi dalfarco in esame
(n, o peso dell'arco, vale 0 per tratti di collegamento diretto). Si osservi che due
nodi possono essere collegati da più archi, eventualmente con pesi differenti. La
Figura 6.8 riporta un esempio di rete logica sincrona.
Il modello è soggetto ad alcune lixrtitazioni che ne riducono il campo di appli-
cazione. In particolare, ia rete iogica sincrona è utilizzabile solo quando sono
note le funzionifespressionì booleano, gli elementi di memoria (necessariamente
di tipo D) e le relazioni strutturali tra gli elementi di memoria stessi e le espres-
sioni in gioco. Esso può rappresentare solo sistemi dotati di un unico segnale di
sincronismo e in cui tutti gli elementi di memoria lavorano sullo stesso fronte.
La rete in esame è Festensione del modello per le reti combinatorie multilivello a
cui si sono aggiunti i pesi sugli archi e ia possibiiità di avere cicli e auto-anelli.
206 Macchine a stati finiti

‘mi: T 77- r r I

1111p _:\l0 "U 11


a I 770 mi!

vraiieî:j" fg - m 1102i,
e Ì;
è { m 7

Tra
I «a
__...._

i

. l 7710 i g‘
l

"O

i
-' . _ ‘ 1 ‘i

xx
'

m r7

Figura 6.8 Rete logica sincrona

6.3.5 Differenze tra modelli comportamentali e modelli


comportamentali/strutturali
I modelli presentati sono tra loro equivalenti ma presentano caratteristiche che li
rendono particolarmente utili in specifici campi applicativi.
Il diagramma degli stati è di facile lettura e realizzazione poiché consente di fo-
calizzare Fattenzione su ogni relazione tra ogni coppia di stati. Questa visione
locale è particolarmente utile nel difficile passaggio dalla formalizzazione di una
specifica da un linguaggio informale o semi-formale?
La tabella degli stati è una diretta discendente del diagramma degli stati ma si
differenzia da quesfiultirno per la sua capacità di riassumere in modo sistematico
le caratteristiche della macchina; questa sua proprietà la rende particolarmente
adatta per tutte le operazioni di manipolazione a livello comportamentale (sia
manuale sia automatica) delle informazioni che essa contiene.
Il diagramma degli stati e la tabella degli stati danno informazioni esplicite solo
sullo stato e il comportamento lasciando trasparire solo alcune indicazioni sul co-
sto della realizzazione‘. Ne consegue, che per applicare metodi di ottimizzazione
delle prestazioni o criteri per la riduzione dell’energia sia necessario utilizzare
modelli nei quali siano più espliciti gli aspetti strutturali come, per esempio, il
modello del grafo semi-strutturale; quesfultimo, opportunamente arricchito in
base alle necessità, fornisce informazioni esplicite sulla struttura e sullo stato.

31 linguaggi informali sono i linguaggi di LLso utilizzati molto frequen-


corrente (italiano. inglese, __)
_ e sono
temente ìn virtù della loro immediatezza e facilità di comprensione. I linguaggi semi-formali
sono linguaggi
facili da comprendere ma sono caratterizzati sia da una semantica ridotta sia dal fatto che contengono possibili
fonti di ambiguità. I linguaggi formali sono privi di ambiguità (sintassi e semantica rigorose) e consentono la
verifica, anche automatica, di specifiche proprietà: le FSM appartengono alla classe dei linguaggi formali.
4Pcr esempio, più stati ci sono più sarà costosa la realizzazione, più e alto il grado di non-specificazione meno
sarà il costo della realizzazione a parità di stati, ecc.
6.4 Procedura di trasformazione dei modelli 207

Il modello di Huffman, infine, è un ottimo riferimento per gli aspetti sia strutturali
che comportamentali e la sua potenzialità espressiva dipende dal livello a cui ci si
pone: informazioni comportamentali lo rendono un modello astratto {simile aila
tabella degli stati), informazioni strutturali lo rendono adatto alfapplicazione di
trasformazioni per Fottìmìzzazione (area, prestazioni, energia, ccc.).

6.4 Procedura di trasformazione dei modelli


In questa sezione si riportano i passi che devono essere compiuti per trasformare
un modello di una macchina di Mealy in un corrispondente modello di Moore e
viceversa. Le trasformazioni che riguardano il passaggio da un tipo di modello
a un altro verranno trattate nella sezione che riguarda la sintesi delle macchine a

stati finiti sincrone.

6.4.1 Procedura per il passaggio da una macchina di Moore


a una di Mealy

Dato il modello di una macchina di Moore, il passaggio a un equivalente model-


lo di Mealy è effettuato associando le uscite indicate nello stato alle transizioni
che da quelìo stato hanno origine. Per esempio, considerando la macchina di
Moore, descritta in termini di diagramma degli stati, riportata in Figura 6.9(a) e
focalizzando Pattenzione solo sullo stato A e sulle transizioni che partono da A
(Figura 6.9(b)), lo stato della macchina di Mealy a esso corrispondente è unico
e le transizioni che da esso hanno origine ereditario l’uscita indicata in A. Ap-
plicando questo procedimento a tutti gli stati presenti nella macchina di Moore si
ottiene la corrispondente macchina di Mealy, come mostrato in Figura 6.9(c).
Considerando modelli differenti il passaggio da una macchina di Moore a una
di Mealy risulta sostanzialmente inalterato e di facile applicazione; gli esempi
seguenti rendono conto di questa affermazione (Figura 6.10).
Quando si ricorre al modello di Huffman è necessario calcolare le nuove fun-
zioni À e 6 secondo le definizioni date nelFApprofondimento “Trafionnazioni
Mealyflfioore e Moore/fiderei)” a pagina 200, e illustrato in Figura 6.1 1

6.4.2 Procedura per il passaggio da una macchina di Mealy


a una di Moore

Dato un modello relativo a una specifica macchina di Moore, il passaggio a un


equivalente modello di Meaiy viene realizzato associando le uscite presenti sulle
transizioni agli stati su cui queste transizioni terminano. A causa della ambiguità
che può generarsi per il fatto che configurazioni d’uscita diverse terminano sullo
Macchine a srarifiniri

(a) (b) (c)

Figura 6.9 Trasformazione MoorefMealy sul grafo di transizione

0 l ' z Ù 1

A B A O A B/U A/U
B D C O B D/0 C/Ù
C D .4 1 C D/ 1 A/ 1
D A A l D AH) A/ D

Figura 6.10 Trasformazione Moorcfb/Ieaîy sulla tabella degli stati

ÀTROO TE -—-I-::EZ Àmenly —-zEZ

z: E A.’ ò. .1: E X
Emeaiy

s; E S memoria 13+1 E 8 s; E S memoria ÌSg+1E S


di stato di stato

Figura 6.11 Trasfonnazione MoorefMealy sul modello di Huffrnan

stesso stato,quesfultirno Viene replicato per un numero di volte pari al numero di


configurazioni di uscita differenti. Gli stati che non sono raggiunti da alcun arco
hanno simbolo d’uscìta una condizione di indifferenza.
Si consideri Fesernpio riportato in Figura 6.12(a). Nel grafo cli transizione dello
stato cli Mealy, lo stato B non ha alcun predecessore (stato Lransiente) e non ha
alcun auto-anello; ne consegue che lo stato a esso corrispondente nella macchina
di Moore equivalente non deve essere replicato (non ci sono conflitti sulle confi-
6.4 Procedura di trasformazione dei modelli 209

1
1/0
1X0

1/1 0/a
e
l

° 1
0/0

1 (Il/U

(a) (b) (C)

Figura 6.12 Trasformazione MealylMoore sul grafo di transizione

gurazioni di uscita nel modelìo di Moore) e nessuna configurazione d’uscita può


essere riportata sullo stato a esso corrispondente nella macchina di Moore (allo
stato è associata la configurazione di indifferenza). Sullo stato C, invece, inci-
dono più archi (derivanti da A, B e C) che hanno, però, etichette dîiscita tutte
uguali (la configurazione d'uscita e uno D); di conseguenza, ii nuovo stato neìla
macchina di Moore avrà uscita O e non dovrà essere replicato. Sullo stato A, infi-
ne, convergono transizioni con simboli tfuscita differenti (1 da B, O da A e C); 1o
stato A, quindi, viene dupîicato generando gli stati, nella macchina di Moore, A1
e A0 mostrati in Figura 6.1203). Su A1 incidono solo gli archi che hanno simbolo
d’uscita l mentre su AD incidono i rimanenti. Gli archi che partono da Al e da
AD sono quelli che avevano origine da A; questi ultimi mantengono tutti la stessa
direzione a esclusione degli auto-anelli che sono invece connessi al nodo avente
per simbolo (Fuscita quello che era riportato originariamente suila transizione.
Quindi, su A0 incide un auto-anello mentre da Al parte un arco che raggiunge
A0. I} risultato della trasformazione è quello riportato in Figura 6.12(c)
La trasformazione di una tabella degli stati avviene in modo pressoché identico
sebbene le infomiazionì debbano essere raccoîte in altro modo. Per esempio,
si consideri il caso riportato in Figura 6.l3(a) (che corrisponde al diagramma di
Figura 6.12). È possibile che lo stato B non è raggiungibile da alcuno stato poiché
non esiste alcun elemento nella tabella che contenga B; quindi, Tuscita per B e
— e nessun elemento deìla tabella deve essere modificato (si rammenti che gli
elementi della tabeìla corrispondono agli archi del grafo).
210 Macchine a srarifiniti

0 1 0 1 z 0 1

A A/O 0/0 (A) (A/o) C A0 A0 C


B C/o A/l B C {A/l) — A1 AB C
C A/D 0x0 C (A/o) C o B C A1
C A0 C
(a) (b) (C)

Figura 6.13 Trasformazione MealyfMoore sulla tabeìla degli stati

Osservando nuovamente la tabella e focalizzando Pattenzione suIìo stato C‘, si


/
notano le sole transizioni C O che provengono da B e da C. Poiché il simbolo
d’uscita è il medesimo, il nuovo stato delìa equivaiente macchina di Moore sarà
posto in corrispondenza con il simbolo di uscita 0 e gli eiemenîi della tabella C 0 /
vengono convertiti in C. Si focalizzi ora l’attenzione sullo stato A con partico-
lare riferimento alle sole transizioni che portano in A. Come si può osservare,
sono presenti i due simboli dîiscita (0 e 1); ne consegue che lo stato A deve es-
sere duplicato (Figura 6.l3(b)) introducendo una nuova riga (il duplicato di A}
neìla tabella di Moore. Quindi, si etichettano i nuovi stati con un simbolo otte-
nuto dal concatenamento del simbolo di stato con il simbolo di uscita: AB e Al.
Successivamente si inseriscono i simboli d’uscita, 0 per A0 e i per Al, e, infi-
ne, si sostituiscono alle configurazioni statofuscita le etichette stato-uscita {cioè
si eliminano il simboli T), ottenendo la tabella mostrata in Figura 6.l3(c).
È significativo osservare che la definizione di trasformazione fa riferimento a sim-
boîi (di ingresso, di uscita e di stato) che possono essere anche costituiti da per
concatenazione di eîementi appartenenti a un generico alfabeto. Nei casi esami-
nati, i simboli di ingresso e uscita sono realizzati considerato Talfabeto «[0, 1,—};
il simbolo che rappresenta una condizione di indifferenza deve essere considerato
come eiemento a se stante cosicché, per esempio, una configurazione dîisciîa Ù-
deve essere considerata diversa da 01 e O0. '

Per quanto riguarda il modello di Huffman, la trasformazione MealyfMoore è


realizzabile in due modi diversi: applicando ìe regole di trasformazione viste in
precedenza (identificazione di Smoom, 67300.”? e Àmoore a partire da Smeagg , (Smeagy
e Àmeagy) oppure inserendo una memoria d’uscita (Figura 6.14). Quesfiultima
ha il duplice compito di rendere Fuscita indipendente dalFingresso presente e
di rendere osservabile Fnscita prodotta al tempo 15k nellîstante tkal. L‘ aggiunta
della memoria dfiiscita corrisponde aîlo spostare l’uscìta associata alia transizione
nello stato verso cui la transizione stessa e diretta.
6.4 Esercizi 21 1

Àîneaiy —" E —" z E Z


u
Àmctaiy m" Z E Z E

.7: E Et’ ò.
a; eX a a! mealy
TÎLÉC y

s; E 8 memoria 3t+1 E 5 5t É S _ mgîmflîìa 3i+1 E S


di stato di stato

(a) (b)

Figura 6.14 Trasfonnazione MealyfMoore sul modello di Hufiìnan

Esercizi risolti
Esercizio 6.1 Si ricavi il grafo di transizione dello stato della macchina di Moore
equivalente al seguente grafo di transizione dello stato di una macchina di Mealy.

1x0

Soluzione. Il problema si risolve analizzando uno stato alla voìta; lo stato iniziale e
scelto arbitrariamente. Si consideri io stato A. Poiché le transizioni che terminano
su A hanno solo il simbolo di uscita 0, tale stato non viene replicato e a esso viene
associata Fnscìta Ù; inoltre, tutte le transizioni analizzate vengono etichettate con il
solo simbolo di ingresso (si elimina il simbolo d'uscita). Si consideri lo stato B.
Poiché B è uno stato su cui non incide alcuna transizione, Pusciîa a esso associata
è —. La figura a pagina 212 rappresenta i primi due passi (passo l e passo 2) della
trasformazione.
Una anaiisi delle transizioni che incidono su C evidenzia che sono presenti due sini-
boli d’uscita. Ne consegne che io stato C deve essere replicato ottenendo i due nuovi
stati CD e C1: il primo associato aJFuscita 0 e il secondo a l. Le transizioni verso
C’ vengono differenziate in transizioni con uscita 0 e transizioni con uscita 1; le pri-
me incidono su CO mentre îe seconde incidono su C1. Le transizioni che partono
da C vengono, invece replicate. Si osservi l'effetto che viene indotto da questa pro-
cedura sulPanto-anello: poiché Fuscita suila transizione è 0, Parco tennina solo su
212 Macchine a srarifinifi

l ,50

C0 ma, siccome è auto-anello di C, parte sia da C0 (nuovo autoanello) che da C1,


come mostra la figura seguente (passo 3). Infine, si analizzi D. Poiché su D incido-
no transizioni con simboli dîzscita differenti, D deve essere duplicato (D0 e D1); le
transizioni che incidono su D con uscita O terminano su DO mentre quelle che hanno
uscita 1 terminano su D1. Le transizioni che partono da D vengono duplicate. Infi-
ne, a DO è associato il simbolo d’uscita 0 e a D1 il simbolo d’uscita 1. Il risuìtato è
indicato neîla figura seguente (passo 4).

Esercizio 6.2 Data 1a seguente tabella degli stati relativa a una macchina di Mealy, si
identifichi la tabella degli stati della macchina di Moore corrispondente.

0 1

A A/O B/l
B 0x0 A/O
C Bjl A/l
D 0/1 0/—

Soluzione. Rivolgendo l'attenzione su di uno stato alla volta (la cui scelta è arbitraria)
si procede nel modo seguente: i) si identificano tutte le transizioni che coinvolgono
tale stato e si individuano le configurazioni d’uscita differenti; ii) si replica la riga
corrispondente allo stato in esame tante volte quante sono le configurazioni differenti;
6.4 Esercizi 213

iii) ai nuovi e al vecchio stato siassegna un nome costituito da “nome precedente" e


“simbolo di uscita”; iv) si associa a ogni stato la Conispondente uscita, e infine, v) si
eliminano i “l” dalle transizioni individuate al punto i). Le figure seguenti indicano i
Vari passaggi.

0 1
0 1

A0 A/o 3/1
A A/n 3/1
Ai A/n 3/1
B 0/0 A/o
B 0/0 A/O
C 3/1 A/i
C 3/1 A/1
D 0/1 C/—
D 0/1 0/-
Identificazione delle transizioni Repliea della riga, generazione
per lo stato A dei simboli di stato e associazio-
ne de] simboio d’uscita

0 1 0 l
A0 A0 5/1 A0 A0 B/1
A1 A0 3/1 A1 A0 B/ 1
B 0/0 A0 B 0/0 A0
C 3/1 A1 0 B /1 A1
D 0/1 0/- D 0/1 0/-
Eliminazione del simbolo “l” Identificazione delìe transizioni
perle transizioni verso A per 1o stato B

0 I
0 1 AD AD B
A0 A0 B A1 AD B
A1 A0 B B CD AI]
B 0/0 A0 C0 B Al
C B A1 C1 B Al
D 0/1 0/- C — B A1
D Cl C'-
Replica della riga, generazione Trasformazione degli stati C e D
dei simboli di stato, associazio-
ne del simbolo d’uscita e eiimi-
nazione del simbolo “I” per le
transizioni verso B
214 Macchine a stati finiti

Esercizio 6.3 Data la seguente tabella degli stati relativa a una macchina di Mealy, si
identifichi la tabella degli stati della macchina di Moore corrispondente.

0 1

A D/DD D/ll
B D110 D/01
c D/1—— D/-1
D Df-D D/0—

Soluzione. Gli stati A, B e C sono tutti stati transienti privi di auto-anelli (non esi-
stono transizioni nella tabella che portino verso uno di questi stati); ne consegue che
non devono essere replicati e che Puscita che a essi corrisponde è “—”. Si ottiene:

0 1

A D/00 D/11
B D/10 D/(Jl
C Df] _ D/—1
D Df-O D/U-

Osservando le transizioni verso D si identificano 8 differenti configurazioni d’usci—


La, quindi D deve essere replicato 8 volte. Una volta eiinìinati i simboli “f” dalle
transizioni che coinvolgono D 1a trasformazione è conclusa. Ne risulta la macchina:

0 1

A D00 D11
B D10 D01
C‘ Dl- D-l
D00 D-O D0—
D11 D-O D0—
D10 D—D D0—-
D01 D—0 D0—-
D1— D—0 D0—
D—1 D-O D0—
D—0 D-Ù D0—
D0—- D-O D0—

Esercizio 6.4 Data la seguente tabella degli stati relativa a una macchina di Mealy, si
identifichi la tabella degli stati della macchina di Moore corrispondente.

0 r

A —/_ 3/1
B 0/1 —/—
c: —,I— Djo
D Afo —/—
6.4 Esercizi 215

Soluzione. In questa tabella compiono delle transizioni che sono costituite da una
condizione di indifferenza sia sullo stato futuro sia sulla uscita. Trattando il simbolo
“—” come un nuovo stato si deve inserire una nuova riga che, poiché questo nuovo
stato è privo di archi uscenti, ha come stati futuri una condizione di indifferenza in
quanto gli stati a cui rintanda non sono specificati. Applicando il procedimento utiliz-
zato fino a 0m si ottiene la tabella degli stati di Moore mostrata di seguito (passo 1).
Si osservi che “———” è un simbolo di stato mentre “—” è la condizione di indifferenza.
Come si può osservare, la nuova figa inserita indica che quando il nuovo stato viene
raggiunto sia lo stato prossimo a cui rimanda che l’uscita a esso corrispondente non
sono specificati. Questo comportamento è ottenibile direttamente inserendo al posto
dello stato “— —” la condizione di indifferenza e eliminando la riga “——” (passo 2).

passo i passo 2

0 l
A .4 — B
B B C —

C C — D
D D A —

Esercizio 6.5 Data ia seguente tabella degli stati relativa a una macchina di Meaiy, si
identifichi la tabella degli stati della macchina di Moore corrispondente.

0 1

.4 —/1 13/1
B 0/1 —/1
c —/0 0/0
o A10 —/0

Soluzione. La tabella presenta condizioni di indifferenza sulle transizioni: questo im-


pone di inserire i due stati ausiliari (perché due sono i simboli di uscita identificabili)
—0 e —l, associati rispettivamente elle uscite 0 e 1. Poiché questi nuovi stati sono
introdotti in modo fittizio per rispettare la specifica iniziale, gli stati a cui rimandano
sono caratterizzati da una condizione di indifferenza, come mostra la tabella seguente.

U l
A —1 B
B C’ --1
C —O D
D A —0
_g __ _

_1 _ ._
216 Macchine a sîarîfinfri

Esercizi proposti
Esercizio 6.1 Data la seguente tabella degli stati relativa a una macchina di Mealy, si
identifichi la tabella degli stati corrispondente alla macchina di Moore equivalente.

0 1

A Bf-O BKOO

B 0,101 0x00
0 0/00 0/10
E 0/00 E;’—{J

Esercizio 6.2 Data îa seguente tabella degli stati relativa a una macchina di Mealy, si
identifichi la tabella degli stati corrispondente alla macchina di Moore equivalente.

0 1

R B/l 0/0
B 0,10 011
0 B/O F/l
F 0/0 171
G B/l Bye

Esercizio 6.3 Data la seguente tabella degli stati relativa a una macchina di Mealy, si
identifichi la tabella degli stati della macchina di Moore corrispondente.

00 01 11 10

A/D B/l 0/0 0x0


E0533:

A/o 0,10 011 0/0


A/D B10 0x0 0x1
A/l 0,11 0/0 0x0

Esercizio 6.4 Si ricavi il grafo di transizione dello stato della macchina di Moore
equivalente al seguente grafo di transizione dello stato di una macchina di Mealy.

Le soluzioni degli esercizi proposti sono disponibili nel booksite:


httpîfwwwzapogeon!inecomllibria’88-503-2229-îfscheda.
Bistabili
Contenuto

7. 1 Introduzione
7.2 Classificazione basata sulla modalità di sincronizzazione
7.3 Classificazione basata sul tipo
7.4 Temporizzazione e nzerastnbiiirà
7.5 Ingressi asincroni di prese: e olear-
7.6 Analisi difitnzionamenîo temporale
Esercizi

In questo capitolo si illustra il funzionamento e il tipo degli elementi che consen-


tono di memorizzare un bit di informazione. Tali dispositivi, denominati bisrabili,
si analizza la realizzazione di base e si mostrano le differenti strutture indicando-
ne sia i limiti sia i benefici. In seguito si presentano i tipi disponibili (SR, D, J K
e T) descrivendone la relazione che, da un punto di vista funzionale, lega gli in-
gressi allo stato. Sono anche brevemente descritte altre peculiarità degli elementi
di memoria a completamento delfargomento trattato.

7.1 Introduzione
In molti sistemi digitali un aspetto di rilievo e costituito dalla necessita di memo-
rizzare un valore, per esempio lo stato, per un tempo indefinito. Sebbene esistano
vari modi per realizzare tale funzionalità ne esiste uno, concettualmente interes-
sante per i1 contesto in cui ci si pone, che utilizza le funzionalità combinatorie
di base per ottenere questo risultato. Questi elementi, che prendono il nome di
elementi di memoria, appartengono alla classe dei bistabili in quanto sono carat-
terizzati da due stati stabili (valore logico O e stato 1). Il passaggio da uno stato
a1l’altro dipende da un evento esterno, in assenza del quale il valore memorizzato
viene preservato senza variazioni fintanto che il bistabile è alimentato.
Gli elementi di memoria possono essere classificati in vario modo in base alfa-
spetto su cui si focalizza Fattenzione: analizzando la questione dal punto di vista
della modalità di sincronizzazione, una possibile classificazione li distingue in
21 8' Bisrabili

asincroni e sincroni in relazione al fatto che la variazione di stato possa essere


ricondotta o meno a un segnale di sincronismo. AlFinterno di questa seconda
classe, si può fare un’ulteriore differenziazione in sincroni a livelio (o latch) e
sincroni sul fronte (oflip-jiop) in relazione a come viene percepito il legame tra il
cambiamento di stato e i} segnale di sincronismo. Una differente ciassificazione
si basa sul tipo, ossia sul significato degii ingressi (uno o due escludendo sempre
l’eventuale segnale di sincronizzazione) e del loro ruolo nel cambiamento di sta—
to: in particolare, gli elementi di memoria si classificano in SR, D, JK e T. Le due
classificazioni non sono ortogonali, cioè non tutti i tipi possono essere parte di
ogni classe funzionale; in particolare, il tipo SR può essere sia sincrono {sia latch
che fiip-flop) che asincrono, il tipo D può essere solo sincrono ma sia latch che
flìp-flop, mentre i tipi J K e T possono essere solo flip-fiop.

7.2 Classificazione basata sulla modalità


di sincronizzazione
La prima analisi proposta è quella relativa a} modo in cui gli elementi di memoria
modificano i! proprio stato in relazione ai cambiamenti dei segnali in ingresso,
con particolare attenzione aìfeventuale segnale di controllo.

7.2.1 Latch SR asincrono


Per realizzare un bistabiìe è necessario costruire unarchitettura che tenda a man-
tenere io stato di equilibrio nel quale si trova e dal quaìe è possibile uscire per
passare nell’altro agendo opportunamente su alcuni segnali di ingresso.
Per quanto riguarda il primo aspetto, si consideri la struttura di Figura 7.1 nella
quale il primo NOT riceve in ingresso un valore che alimenta il secondo che, a
sua volta, alimenta il primo.

Q, Ha o

Figura 7.1 Elemento di memoria a due NOT

Sebbene sarebbe necessario specificare alcuni aspetti tecnologici per comprende


re la regione della bistabilità, ci si può accontentare del fatto che il negatore (ed
in generale una porta logica) elabora dei valori di tensione compresi tra un massi—
mo ed un minimo e si comporta da elemento in grado di rigenerare il segnale; in
particolare, se per esempio il segnale di ingresso non è perfettamente il massimo
7.2 Classificazione basata sulla modalità di sincronizzazione 219

possibile, il negatore lo rigenera producendo in uscita un valore che si avvicina


di più al minimo. Ne consegue che, ritornando alla Figura 7.1, se il valore del
segnaìe su di una linea non è inizialmente pari a un valore estremo, massimo o
minimo, il sistema 10 rigenera. In questo modo, la retroazione positiva creata con-
sente due soli stati di equilibrio stabili: quello di valore massimo, 0 l, e quello
di valore minimo, o 0. Osservando ancora la figura, si osserva che le linee Q e
Q’ hanno valore contrapposto e che possono assumere indifferentemente 1 0 0 in
base a come e stato inizializzato il sistema. Si noti, inoltre, che per costruzione si
ha sempre sia una uscita di stato, Q, sia quella complementata, Q’.
Per quanto riguarda la possibilità di agire sullo stato cambiandolo a piacimento,
è necessario poter interrompere a comando Fanello per forzare un nuovo valore e
successivamente ripristinarlo. A questo proposito si consideri la Figura 7.2(a) (o
Peqnivalente più nota configurazione di Figura 7.2(b)).

__\_\_
a

la‘
>caw
ÎÎ>>°rÎlì“> 09+2 l

Q’ R. R
T.“
f :

Q’

(a) (b)
Figura 7.2 Elemento di memoria SR

In questa nuova struttura sono state inserite due porte OR prima di ogni negatore.
Ricordando le proprietà delFoperatore OR, cioè che a + O a e o + 1 = 1, si
=

evince che un valore l) su entrambi gli ingressi S e R rende la struttura funzio-


nalmente equivalente a quella di Figura '11; tale configurazione degli ingressi è
quella di riposo cioè quella che mantiene il valore di stato memorizzato. Si ponga
ora Pingresso del primo OR a l e quello del secondo a 0 (S = l, R = 0). Poiché il
valore dell’uscita da questa porta logica è l indipendentemente dall’ altro ingresso
Fuscita del primo negatore è forzata a 0 mentre l’uscita del secondo assume valo-
re l indipendentemente da quanto memorizzato in precedenza. Se a questo punto
il valore di S’ viene riportato a 0 il valore dello stato che è imposto viene man-
tenuto indefinitamente. Si ponga ora Pingresso del secondo OR a 1 e Fingresso
del primo a 0 (S = 0, R. =1). In questa situazione il valore in uscita al secondo
negatore (la linea Q) viene forzata a 0 indipendentemente da quanto memorizzato
in precedenza. Riportando R nuovamente a O e mantenendo S a 0, il valore dello
stato memorizzato viene mantenuto fino al successivo cambiamento.
Il bistabile descritto, il cui simbolo è rappresentato in Figura 7.3, ammette un
cambiamento di stato sulla base dei soli segnali di ingresso e non è vincolato a
220 Bìstabfli

—:R l
Q-
l

—iLS Q’ %

Figura 7.3 Simbolo per il bistabile asincrono SR

alcun segnale ausiliario di controllo e, proprio per questa ragione, è denominato


[atch SR asincrono. Per il fatto che Q viene portato a 1 quando il segnale S in
ingresso al primo OR vale 1 mentre R à O, S’ è denominato SET. Dualmente, dato
che Q assume valore O quando il segnale R. di ingresso al secondo OR è l mentre
S vaie 0, Fingresso R viene denominato RESE T. Riassumendo, il comportamento
di un latch SR asincrono è il seguente:
o con S‘ = 1, R : l} il bistabile si porta nello stato di rea‘: Q = 1,Q' = D;

o con S : O, R = 1 il bistabile si porta nello stato di reset: Q = D, Q’ : 1;

I con S = 0,1? z O 10 stato del bistabile resta invariato.

Si osservi che la configurazione di ingresso R = 1 e S = 1 forza Q e Q’ ad assume-


re lo stesso valore (O). Questa configurazione di ingresso non è ammessa nel caso
di normale utilizzo del bistabile SRI poiché 10 stato è unico e, per costruzione,
Q è il complemento di Q’. Per memorizzare 10 stato è necessario che sia S sia R
vengano portati a 0 contemporaneamente.
Se questo potesse avvenire (la contemporaneità è solo ideale‘) Felernento si porte-
rebbe nell’unico stato di equilibrio instabileî che si trova a metà tra il massimo e
il minimo; da questa condizione, che un sistema non ideale non può mantenere se
non per qualche istante, si evolve verso uno qualunque dei due stati stabili senza
poter né prevedere né avere alcun controllo sul risultato e questo, ovviamente,
non è accettabile.
Poiché il bistabile è una semplice macchina a stati finiti, la più semplice, il suo
comportamento può essere descritto mediante uno qualunque dei modelli adatti
a questo scopo; in particolare, un modello particolarmente indicato, per ragioni
di chiarezza, è la tabella delle transizioni della stato nella quale i simboli di in-
gresso sono S e R, i simboli di stato sono 0 e 1 mentre le uscite coincidono con
lo stato (Figura 7.4). Tale tabella viene anche rappresentata in forma compatta
(Figura 7.5), detta anche tabella caratteristica, nella quale sono più evidenti gli
effetti delle configurazioni di ingresso sullo stato. '

‘Si veda, nel seguito, come questa configurazione anomala consenta di realizzare dei fiip-fiop cdge-tfiggered.
îQuesto stato è detto merasrabile ed è fonte di problemi anche in allri casi.
7.2 Classificazione basata sulla modalità di Sincronizzazione 22}

SR
(200100111
ÎÎMÌÎ
i110-
Figura 7.4 Tabella delle transizioni dello stato per il bistabìle asincrono SR

3 B’- Q Q’
ÎQÌQ’
0 l 0 l stato di reset
1 0 l 0 stato di set
1 l 0 0 non utile

Figura 7.5 Tabella delle transizioni dello stato in forma compatta SR

Un modo differente per rappresentare il comportamento del bistabile consiste nel-


Findicare quaìe azione deve essere applicata agli ingressi per produrre una defi-
nita transizione dello stato (Figura "I.6). Questo modello, che prende il nome di
tabella delle eccitazioni del bistabile, risulterà particolarmente utile nella fase di
sintesi (Capitolo 8). Per descriverne il contenuto, si consideri, a titolo di esem-
pio, la prima voce della tabella di Figura 7.6: se alfistante t (indicato da Qt) il
bistabile si trova nello stato di reser, affinché vi rimanga è necessario o mantenere
inalterato lo stato (S = 0 e R = D) oppure forzarlo affinché assuma valore U (S =
O e R = 1); poiché queste due azioni sui segnali di ingresso sono contemporanea-

mente valide ne risulta che per mantenere lo stato di reset basta che S‘ sia 0. In
modo analogo si legge il resto della tabella delle eccitazioni di Figura 7.6.

Q: Qt-H 5 R
0 U Ù —

Ù ì l Ù

l 0 Ù 1

1 É -— Ù

Figura 7.6 Tabella delle eccitazioni per il bistabile SR

Un ultimo modo per rappresentare il funzionamento caratteristico di un elemento


di memoria è attraverso la sua equazione difimzionamenro o equazione caratteri-
stica che definisce in modo algebrico la relazione che intercorre tra lo stato futuro
QÉH e lo stato presente Qt e gli ingressi del bistabìle (S e R):

Qt-l-l = 3 + RIQ: (7-1)


222 Bfsrabiii

Si noti che questa equazione non tiene conto del fatto che esiste una configura-
zione di ingresso non applicabile (R = l, S‘ : 1) e, di conseguenza, ha significato
solo a condizione che R e S’ non siano contemporaneamente 1.
Infine si osservi che è possibile interrompere la catena di retroazione utilizzando
delle porte AND al posto delle porte OR. In questo caso il vaîore associato al-
Fazione cambia da l a 0; in altre parole, la situazione di immutabilità è ottenuta
per R = 1 e S = 1, il passaggio alìo stato di rese: avviene per R = D e S = 1, la
transizione allo stato di set avviene per R = 1 e S = O mentre la configurazione di
ingresso non accettabile e R = 0 e S’ = O. Per distinguere queste due condizioni di
funzionamento complementari si indica, in generale, quella dove i segnali sono
attivi a l come fimzionamenro in logica positiva mentre quella che utiiizza lo 0
come Vaìore attivo come fitnzionamento in logica negativa Sebbene entrambe le
.

modalità di funzionamento siano valide e generalmente utilizzate a seconda del


contesto, nel seguito, per semplicità di trattazione, si considererà solo il caso del
funzionamento in logica positiva (bistabile con porte NOR).

7.2.2 Latch SR sincrono


Uno dei problemi legati alla asiucronicità è causato dal perfetto controllo che è
necessario avere sul valore che gli ingressi assumono nel tempo. In particolare,
se gli ingressi del bistabile fossero generati da una rete combinatoria, situazio-
ne generaìmente vera, e importante che non si presentino situazioni transitorie
nocive per il funzionamento. Per esempio, potrebbe accadere che le uscite delle
reti combinatorie che generano i segnali di S e R siano entrambe a O a regime
mentre assumano, durante il transitorio, il valore S = 0 e R = 1 per un istante di
durata sufficiente a far modificare lo stato delFeIemento di memoria. Ipotizzan-
do che il valore di Q fosse inizialmente 1 ne consegue che il risultato che ci si
attende (Q = l) differisce da quello che si .presenta realmente (Q = 0). Quindi,
per poter reaiizzare una specifica funzionalità è spesso indispensabile consentire
Faggiornamento dello stato solo in momenti ben definiti; questi nitirni sono legati
a un segnale, detto di sincronismo, che, nella maggior parte delle applicazioni, è
periodico e denominato dock (Figura 7.7‘).

lìvelìo alto Livello basso


l
_

fronte di salita fronte di discesa

Figura 7.7 Segnale di controllo


7.2 Classificazione basata sulla modalità di SÙNÙTOHÎZZGZÌORE 223

Un modo molto semplice per ottenere questo effetto è quello di interpol-re tra
i segnali di ingresso del latch SR asincrono e i segnali di ingresso del nuovo
bistabile che si vuole realizzare una coppia di porte AND controllate dal segnale
di sincronismo (si ricordi dalle proprietà delFalgebra che a -O = O e a 1 o). La — =

struttura ottenuta, riportata in Figura 7.8(a), realizza il latch SR sincrono, o gared


latch, il cui simbolo è rappresentato in Figura 7.8(b) .

s a Î" Q i le — W

.S Q v—

Latch S R E.
E ÀSÈTLCTOTM)
4B
_ 2 ' i i

segnale da ; i _‘ Q1
controllo L. l" \ E r‘ î

R ——-i 2
ÉR
. _
Q -—

(a) (b)

Figura 7.8 Latch SR sincrono: struttura (a) e simbolo (b)

Il latch SR sincrono ammette un cambiamento di stato solo quando il segnale di


controllo, agendo sulfingresso E, abilita i segnali di ingresso; in particolare:

o con E = l, S = l, R = 0 il bistabile si porta nello stato di set;


o con E = 1, S = O, R = l il bistabile si porta nello stato di reset;

o con E = 1, 5‘ = O, R = O10 stato del bistabile resta invariato;

o con E = O lo stato dei bistabile resta invariato indipendentemente dal


valore assunto dai segnali R e S.

Il modo di funzionamento è riportato sinteticamente in Figura 7.9.

S R E Q Q’ Qt 62m S R E
— — 0 Q Q’ 0 0 0 — —

O O 1 Q Q’ 0 1 l O l
0 1 1 0 l stato di reset l 0 O 1 1

1 O 1 l 0 stato di set l 1 — 0 ——

l 1 1 0 0 indefinito

(a) (b)

Figura 7.9 Tabelle delle transizioni dì stato e delle eccitazioni per il latch SR sincrono

È abbastanza naturale osservare che il valore dello stato che viene preservato
durante tutto i1 periodo di tempo nel quale E = 0 è pari all'ultimo stato indotto
224 Bistabili

dagli ingressi S e R quando E = 1 e, che durante tutto il periodo di attività del


segnale di sincronizzazione il latch è sensibile a ogni variazione degii ingressi
R e S; questa è la ragione per cui Fingresso controllato dal segnale di controllo
prende il nome di abilitazione (o enable) e che il latch si dice trasparente durante
tutto il periodo in cui E 1 (livello alto in Figura 7.7). Durante il periodo in
=

cui E :O il latch viene indicato come opaco. Si noti, per completezza, che e

suffieiente negare il segnale di abilitazione per avere trasparenza quando E = (J.


Infine, Pequazione caratteristica per il latch SR sincrono è la seguente:

Qn+1 = E/Qt ‘l’ Eig + RIQt) (7-2)

Anche in questo caso si noti che Fequazione ha significato solo a condizione che
R e S non siano contemporaneamente pari a 1.

7.2.3 Flip-flop masteraslave


Il latch sincrono è trasparente durante tutto Pintervallo di tempo in cui il segnale
di abilitazione è attivo: quando quesfiultirno è periodico e si desidera un corn—
portamento generale scandito da tale segnale, si vorrebbe ridurre la trasparenza
del latch a un solo istante, cosicché non si possano verificare più cambiamenti di
stato invece di uno solo, dovuti a oscillazioni dei segnali di ingresso. In sostanza,
il problema rilevato in precedenza a riguardo dei transitori non è completamente
risolto poiché richiederebbe che la durata dei periodo di abilitazione sia sufficien—
temente Iunga per consentire al bistabile di commutare e, nello stesso momento,
sia sufficientemente corta da impedire più di una commutazione.
Un modo per risolvere il problema consiste nel pensare all’elemento di memoria
come a un oggetto strutturato in modo che possa svolgere due attività dìsgiunte
e controllabili indipendentemente: la prima che campiona lo stato a regime ed è
inattiva durante il transitorio (attività primaria o master) e la seconda che rende
visibile lo stato ed è inattiva durante il campionamento (attività secondaria slave).
Se si considerano due latch SR sincroni, si unisce opportunamente Fuscita del
primo allîngresso dei secondo e li si abilita in contrapposizione di fase (Figu-
ra 7.10) si ottiene un elemento di memoria, denominato flip-jîop master-slave o
pulse-triggered), che raggiunge 1o scopo. Il funzionamento è il seguente:

o quando C = l il master è abilitato a cambiare stato mentre il latch siave è

disabilitato e mantiene le sue uscite stabili;

o quando C‘ =[l lo slave rileva le variazioni di stato del master e ie propaga


mentre il master è non attivo ed è insensibile alle variazioni sugli ingressi.
7.2 Classificazione basata sulla modalità di sincronizzazione 225

master
>‘* 7C’ _.glqne
j

s —#s Y Ès Q Q
C zE lE
a—la l” ———a Q‘i—o'

Figura 7.10 Flip-flop master-slave SR

Si osservi che il comportamento del sistema è “assimilabile” a quello di un ele-


mento di memoria che commuta sul fronte del segnale di controllo (nel caso in
esame quello di discesa) sebbene, ed è importante precisarlo, il flipdîop in esame
non sia un elemento di memoria che commuta sul fronte ma abbia solo un com-
portamento che, visto ai soli morsetti di ingresso e uscita, sembra tale. Questo
aspetto è evidenziato dal simbolo che lo rappresenta (in Figura 7.1 1( a) Pelemento
ehe eornmuta sul fronte di discesa in Figura 7.l1(b) quello sul fronte di salita).

: Î l’

—Is o":— ——ls o_-—


mOC —Q&C

—'R Q’"=— — a o*u;—

(a) (b)
Figura 7.11 Simboli per fiip-flop master-slave SR

Questo elemento di memoria risolve molti dei problemi legati alla trasparenza dei
latch sebbene esista ancora una questione che rende questa architettura non com-
pletamente esente dagli annosi problemi relativi alla propagazione indesiderata
dei segnali. In particolare, il disaccoppìamento tra Fattività di memorizzazione
e quella di presentazione dello stato è disatteso e, per un breve istante di tempo,
il flip-fiop master-slave è trasparente; infatti, il negatore che inverte la fase del
segnale di controllo introduce un ritardo di propagazione che disaîlinea la for-
ma d’onda del segnale di controllo del master da quella dello slave producendo
un’inevitabile sovrapposizione dello stato di trasparenza dei due latch. Quindi,
quando il segnale di controllo passa da O a l il latch master è immediatamente
attivo mentre il latch slave resta attivo ancora per un breve periodo (Figura 7.12).

C,
_- ,75

Figura 7.12 Periodo di trasparenza in un fiip-fiop master-slave


226 Bisrabif i

Sebbene sia molto improbabile, questo fenomeno di trasparenza può produrre


un comportamento del sistema non previsto e non desiderato. Dal punto di vi-
sta del comportamento, il flìp-fiop master-slave mostra un cambiamento di stato
solo quando il segnale ausiliario di sincronismo passa da un livello all’altro; in
particolare:

o quando C passa da (fronte di discesa


1 a O o 1 —> 0), S = 1,R = 0 il
bistabile si porta nello stato di set;

o quando C : 1 ——> D, S : U, R : l il bistabile si porta nello stato di reser;

o quando C = 1 —> D, S‘ = D, R = {J lo stato del bistabile resta invariato;

o quando C = (l, C = 1 o C : 0 —> 1 lo stato del bistabile resta invariato

indipendentemente dal valore assunto dai segnali R e .5‘.

Le modalità di funzionamento sono riportate sinteticamente in Figura 7.13 dove,


per praticità, non viene indicato il segnale di sincronismo intendendone implicita
Fesistenza; in genere, inoìtre, si specifica soîo se ha un comportamento assimila-
bile a una commutazione sul fronte di salita o di discesa (ii funzionamento non
cambia, cambia solo il momento nel quale si campiona Pingresso). Per questa
ragione sia le tabelle che Fequazione caratteristica assumono la stessa forma di
quella del Iatch asincrono.

5 R Q Q’ Q: Q 2+1 5 R
fifi 0 o o —

0 l 0 l stato di reset 0 1 1 O

l f} 1 O stato di set l O O l
1 l 0 0 indefinito 1 1 0

{a} (b)

Figura 7.13 Tabella delle transizioni di stato e delle eccitazioni per un flip-fiop SR

Come per tutti i casi precedenti, anche in questo caso l’ equazione:

Qc+1 = S ‘l’ RIQ: (7-3)

ha significato quando sia R. che S non sono contemporaneamente 1.

7 .2.4 Flip-fiop data look-out


Il problema della trasparenza di un flip-flop master-slave può essere risolto abili-
tando sia il master che lo slave per una frazione del periodo di tempo indicato dal
7.2 Classificazione basata sulla modalità di sincronizzazione 227

segnale di controllo affinché gli intervalli di trasparenza dei latch siano effettiva-
mente disgiunti. In particolare, e riferendosi per fini puramente esemplificativi
al flip-flop master-slave di Figura 7.10, il master e lo slave sono trasparenti per
un breve istante, rispettivamente, in corrispondenza del fronte di salita di C ed
in corrispondenza del fronte di salita di C”. Quello che si ottiene è un flipflop
data look-out costituito da un flip-flop master-slave nel quale sono stati inseriti
due ntonostabili3 sul segnale di controllo il cui scopo è quello di generare degli
impulsi della durata necessaria. Una possibile realizzazione di un monostabile
è quella di Figura 7.14. La porta NOT ha il compito di ritardare il segnale di
ingresso e detenninare la durata dell’impulso (A) 4.

x -1 ‘m.

dr>w .
r} xr, y +e ‘FAM- MH

1.1i

Figura 7.14 Monostabile 0 rilevatore di fronte di salita

Il flip-flop data look-out, il cui simbolo


riportato in Figura 7.15, ha lo stesso
e
comportamento ai morsetti del flip-fiop master-slave e, quindi, valgono gli stessi
modelli di descrizione.

Figura 7.15 Simbolo del fiip-fiop data lock—out SR attivo sul fronte di discesa

7.2.5 Flip-flop edge-triggered


Un flip-flop di tipo edge-triggered è tale poiché cambia stato su uno dei fronti del
segnale di controllo. Sebbene la letteratura riporti, in molte occasioni, che per

3Un mouostabile è un circuito che ha due stati di equilibrio di cui uno stabile e uno instabile. ll cixtuito,
opportunamente stimolato, passa dallo stato stabile a quello instabile per ritornare spontaneamente nello stato
stabile dopo un predefinito ititervailo di tempo. Un monostabile è anche denominato derirtttore o rilevatore di
fronte.
‘La durata dell'impulso può essere aumentata a piacimento inserendo coppie di porte NOT.
228 Bisrabili

ottenere questo elemento di memoria è sufficiente aggiungere a un latch SR sin-


crono un rilevatore di fronte sulla linea del segnale di controllo, questa modalità
di implementazione, che coriisponde alla metà di un data lock-out, ne realizza
solo un comportamento equiparabile ai morsetti, come quello identificato per i
fiip-fiop sia master-slave sia data lock—0ut. L’ architettura che realizza un fiip-fiop
edge-triggered SR è quella riportata in Figura 7.16.

— 4 ;

R "R Q i5 QÎ l ÌR
‘-- Iaichîpg
_R QPÎ _.

Figura 7.16 Flìp-fiop edge-triggered SR

Si analizziil funzionamento considerando innanzitutto che il latch I si comporta


come un normale latch e che il suo stato cambia con gli ingressi in modo asincro-
no, presentando sull’ingresso S del latch 2 il risultato delFeffetto delle variazioni
registrate sugli ingressi primaii5.
o Quando C = I e D = O il Iatch 2 ha una configurazione di ingresso S2 = 0,
R2 = 1 che forza lo stato Q2 = O, Q5 = 1; di conseguenza, il latch 3 si trova
nella configurazione S3 = 1, R3 = 1 che impone Q3 = D, Q5 = 0. Poiché
S4 : Q2 = O e R4 = Q5 = O il latch 4 non modifica il suo stato.
o Quando C = l e D = 1 il latch 2 ha una configurazione di ingresso S2 = I,
R2 = l e impone la configurazione Q2 : Q5 = O; di conseguenza, il latch
3 si trova nella configurazione S3 = 1, R3 = 0 che forza lo stato a Q3 = 1,
g = O. Poiché S4 = Q2 = 0 e R4 = Q3 = O il latch 4 non cambia stato.

Da questa prima analisi risulta che, quando C = l lo stato del fiip-fiop edge-
triggered non cambia poiché, qualunque sia il valore di D, Q2=O e 05:0.
o Quando C‘ passa da 1 a 0 (fronte di discesa o 1 0) e D = 0 il latch 2 ha ——>

una configurazione di ingresso (S2 = 0, R2 = O poiché Q3 = O e C = 0) che


lascia inalterato 1o stato del latch 2 (Q2 = O, Q5 = 1). A causa del passaggio

iCrli ingressi del ìatch i sono stati indicati con S,- e H1. il segnale che controlla S2 è stato denominato D.
7.2 Classificazione basata sulla modalità di sincronizzazione 229

a O di C il latch 3 si trova nella configurazione S3 = 0, R3 = 1 che impone


Q3 = O, Qg = l. Poiché S4 = Q2 = l il latch 4 modifica
0 e R4 = Qg =

il suo stato portandosi nella condizione di reset che coincide con lo stato
del latch 1. Contemporaneamente, Qf = R2 = l rende insensibile il latch
2 ai cambiamenti su D. Infatti, se D = 0 si ha S2 = O, R2 = 1 con Q2 = D,
mentre quando D = 1 si ha S2 = 1, R2 = 1 che lascia nuovamente Q2 = O.

o Quando C = l —> 0 e D = 1 il latch 2 ha una configurazione di ingresso (S2


= 1, R2 = 0 poiché Q’ = 0 e C = O) che modifica lo stato del latch 2 portando

Q2 = 1 mentre Q5 resta a O. Ne consegue che il iatch 3, con in ingresso S3


= C = D, R3 = Q’2=O, non modifica il suo stato Q3=l, QQFO. Poiché Q2 =

1 e Qg=0 il latch 4 modifica il suo stato portandosi nella condizione di set

che coincide con lo stato del latch 1. Inoìtre, in queste condizioni il sistema
è insensibile alle variazioni su D; infatti, sia con D = 1 che con D = O i
latch 2 e 3 non cambiano stato lasciando S4 z Q2 = 1 e R4 : Q3 = 0.

Da questa seconda analisi risulta che sul fronte di discesa di C lo stato del flip-
fiop cambia assumendo il valore di D presente in quel momento. Inoltre, fino al
successivo fronte di discesa di C‘ il sistema è insensibile alle variazioni di D.
Come per i fiip-fiop mastenslave e data locleout, nel rappresentare il modo di fun-
zionamento non Viene più indicato il segnale di controllo, intendendone implicita
Fesistenza, ma si specifica solamente se la commutazione avviene sul fronte di
salita o di discesa (come per i casi precedenti, il funzionamento è inalterato ma
cambia solo il momento nel quale si campiona l'ingresso). Per questa ragione
sia le tabelle sia Pequazione caratteristica assumono la stessa forma di quella del
latch asincrono; per quesfiultima, in particolare, Funica differenza è concettuale
e consiste nel fatto che i tempi di cambiaiuento dello stato sono dettati dal sia
segnale di controllo sia dagli ingressi e non solo da questi ultimi.
I simboli dei flip-flop edge-triggered che commutano sul fronte di salita e sul
fronte di discesa sono riportati in Figura 7.17.

4> c
a‘ 4); Îi
c i’
T35‘ Q’? "v S ’

(a) (b)

Figura 7.17 Simbolo per il flip—flop edge-ttiggered SR


230 Bisrabili

7.3 Classificazione basata sul tipo


Attraverso bistabili di tipo SR è possibile realizzare una qualunque funzionalità
che richieda di memorizzare temporaneamente dei valori di stato. Tuttavia, per
ragioni sia tecnologiche (facilità di implementazione, minor costo, .) che d’u- . .

so sono stati introdotti altri tipi di elementi di memoria che, almeno dal punto
di vista concettuale, utilizzano il bistabile SR come elemento di base. In questa
sezione verranno esaminati tutti i tipi di elementi di memoria descrivendone sia
la funzionalità che il modo con il quale sono ottenuti a partire dalFelemento base,
il bistabile SR. Per semplicità, ma senza ledere la generalità, ci si riferirà all’ar—
chitettura del bistabile SR basata su porte NOR (iogica positiva) in cui il segnale
di sincronizzazione, ove necessario, non è riportato esplicitamente.

7.3.1 Tipo SR
Il tipo SR o Set-Rese: ha due ingressi ed è caratterizzato nel modo seguente:

n per S‘ = LR = E}, Q assume valore 1 indipendentemente dal valore


precedente dello stato;

o per S = [LR = 1, Q assume valore O indipendentemente dal valore


precedente dello stato;

o per S = 0, R 2 O, Q manterrà il valore dello stato;

o la configurazione S = 1, R = 1 non è ammessa.

Il tipo SR può essere sia asincrono sia sincrono. La Figura 7.18 mostra la tabella
delle transizioni di stato e la tabella delle eccitazioni del bistabile. Dequazione
caratteristica:
Qm = S + RC2: (7.4)
ha significato quando R ed S non sono entrambi l.

5 R Q Q’ Q: Q:+1 S R
O 0 Q Q’ 0 0 O X
0 I O 1 stato di reset 0 l l 0
1 0 1 0 stato di set 1 O 0 1

1 l O O indefinito l l X O

(a) (b)

Figura 7.18 Descrizione funzionale di un fiip-flop SR


7.3 Classificazione bastata sul tipo 231

7.3.2 Tipo D
Il tipo D o Delay o Data ha un unico ingresso ed è caratterizzato dal punto di vista
funzionale nel modo seguente:

o per D = 1, Q assume valore 1 indipendentemente dal valore precedente


dello stato;

o per D : O, Q assume valore 0 indipendentemente dal valore precedente


dello stato.

Il tipo D può esseresolo sincrono (latch, master-slave, data look-out o


edge-triggered) ed è ottenuto da un bi stabile di tipo SR ponendo:

S=D RzD’
In questo modo quando D = 1 il bìstabile utilizzato si porterà nello stato di set
mentre quando D = 0 si porterà nello stato di reset. La Figura 7.19 riporta la
tabella delle transizioni di stato in forma compatta e 1a tabella delle eccitazioni
dei bìstabile sono le seguenti.

D Q Q’ Q: Qt+1 D
O O 1 G 0 0
1 1 O Ù 1 l
— 1 0 0
l Ì l

(a) (b)

Figura 7.19 Descrizione funzonaìe di un bìstabile di tipo D

Uequazione caratteristica assume la semplice fonna:

Qt+l = D (7-5)

7.3.3 Tipo JK
Il tipo JK ha due ingressi ed e caratterizzato funzionalmente nel modo seguente:

o per J = 1, K =O, Q assume valore 1 indipendentemente dal valore


precedente dello stato;

o per J : Ù,K = 1, Q assume valore 0 indipendentemente dal valore


precedente dello stato;
232 Bistabili

o per J : D, K = 0, Q mantiene il valore dello stato;


o per J = l, K = l, Q assume il valore di Q’.
Il tipo J K può essere solo sincrono e flip-flop (master-slave, data lock-out o edge-
triggered) ed estende la funzionalità del tipo SR eliminando la configurazione non
ammessa. Un elemento J K è ottenuto da un SR ponendo:

S=JQ' R=KQ
È facile verificare che per tutte le configurazioni diverse da J = K = 1 il com-
portamento è quello di un SR. Quando J = l e K = 1, invece, il fiip-fiop SR è
controllato da S = Q’ e R = Q; ne consegue che se lo stato conservato è O un S‘
= l impone il cambiamento a Q=1 mentre se lo stato attuale è l il valore R = 1

impone che il bistabile si porti nello stato di reset. Da quesfultima analisi risulta
che il bistabile SR da utilizzare per realizzare un J K non deve mai ammettere una
condizione di trasparenza prolungata (per esempio, come in un latch), cioè una
situazione nella quale una variazione clellîngresso è immediatamente osservabi-
le sull’uscita. Se questo accadesse si avrebbe una oscillazione indesiderata delle
uscite per J = K = 1 (lo stato continua a commutare con una frequenza che dipen-
de dai ritardi intrinseci del bistabile). Per questa ragione un bistabile 1K non può
essere né asincrono né latch. La Figura 7.20 riporta la tabella delle transizioni di
stato in forma compatta e 1a tabella delle eccitazioni del bistabile.

J K Q Q’ Qt Qt+1 J K
O O Q Q’ {J O 0 —

0 l 0 l Ù l l —

l O l Ù l 0 — l
l l Q’ Q l l — 0

(a) (b)

Figura 7.20 Descrizione funzionale del fiip-flop J K

L’ equazione caratteristica è:

Qt+1 = JQÉ + KfQt (7-5)

7.3.4 Tipo T
Il tipo T o Toggle o Trigger (il nome deriva dal fatto che ogni qualvolta il segnale
di ingresso è attivo il flip-fiop si porta nello stato opposto a quello in cui si trovava)
ha un ingresso ed è caratterizzato funzionalmente nel modo seguente:
7.4 Temporizzazione e metasrabilirà 233

o per T = l, Q assumerà il valore di Q’;


o per T = 0, Q manterrà il valore dello stato.

Il tipo T può essere solo flìp-fiop (master-slave, data look-out 0 edgetriggered) ed


è ottenuto da un tipo JK ponendo:

J = T K : T

e, di conseguenza, facendo riferimento a un bistabile SR:

8 = T Q’ R = TQ

La Figura 7.21 riporta la tabella delle transizioni di stato in forma compatta e la


tabella delle eccitazioni del bistabile T.

T Q Q’ Q: 62m T
_ 0 Q Q’ 0 0 o
1 Q’ Q 0 1 1

1 1 0 1

1 1 0

(a) (b)

figura 7.21 Descrizione funzionale del fiip—fiop T

L’ equazione caratteristica è:

QH-l = TQ: + TQQ (7-7)

7.4 Temporizzazione e metastabilità


Uno dei problemi a cui è soggetto un bistabile sincrono è quello della merasrabi-
fità che consiste nel portare, per errore, Peiemento di memoria nel suo unico stato
di equilibrio instabile che, da un punto di vista puramente concettuale, si trova a
metà tra lo 0 e I’ 1. Poiché il bistabile non può persistere in questa condizione, se
non da un punto di vista puramente teorico, lo stato decade quasi istantaneamente
in uno 0 o in un l. Ne risulta che lo stato può assumere un valore differente da
quello atteso e il comportamento dei sistema non è più predìcibile.
Questo effetto indesiderato, che generalmente ha una bassa probabilità di poter
accadere, è causato da un cambiamento dei segnali in ingresso al bistabile durante
Fistante di campionamento {fronte del segnale di sincronismo). In molti casi, la
metastabilità può essere evitata assicurando che i segnali di ingresso siano tenuti
234 Bisîabili

costanti per un periodo di tempo che precede, tempo di setup ts, e segue, tempo
di hold tH, il fronte del segnale di sincronismo; questi due tempi sono specifici
per una data tecnologia e dispositivo e sono dell’ordine del nanosecondo.
Sfortunatamente non è sempre possibile rispettare questi aspetti temporali, so-
prattutto nel caso di segnali asìncroni prodotti daIFambiente. In questi frangenti
si possono adottare alcune strategie per abbassare di molto la probabilità che si
presenti metastabilità ma non è possibile eliminarla.
Infine, un’altra caratteristica temporale significativa degli elementi di memoria è
il ritardo di propagazione (o tempo di propagazione) che viene definito come l’in—
tervallo di tempo tra il 50% del fronte attivo del segnale (per esempio, il segnale
di sincronismo nei fiip-fiop oppure un segnale di dato nei latch asincroni) e il 50%
del fronte dello stato. Questa caratteristica è indicata con tp.

7.5 Ingressi asincroni di preset e clear


Tutti gii elementi di memoria devono essere inizializzati per garantire che il punto
di partenza da cui evolve il sistema sia noto. Per svolgere questa attività tutti
gli elementi di memoria sono provvisti di due ingressi asincroni (hanno effetto
immediato e indipendente daìYeventuale segnale di sincronismo) che forzano lo
stato a uno specifico valore; in particolare, il segnale di prese! porta Q a l mentre
quello di r:lear ha l'effetto opposto.

7.6 Analisi di funzionamento temporale


Benché questa analisi possa essere svolta anche per altri tipi di bistabili, in questa
sezione si concentra Pattenzione sul confronto tra latch D e fiip-fiop D edge-
triggered. Un latch mantiene uno stato fino a quando non viene attivato mediante
un segnale di controllo; durante questa fase il bistabile è trasparente a ogni va-
riazione presente sul suo ingresso. Quando il segnale di sincronismo diviene
inattivo, il latch conserva Fultimo valore di stato registrato. Un flip-fiop edge-
triggered, invece, cambia stato solo in corrispondenza del fronte sul quale è attivo
ignorando qualunque variazione si sia presentata sul suo ingresso tra due fronti.
Il diagramma temporale di Figura 7.22 esemplifica questo comportamento consi-
derando un latch attivo sul livello alto e un flip-fiop edge-triggered che commuta
sul fronte di salita.
7.6 Esercizi 235

Segîicile di
controllo n

Sega-noie di i

ingresso}? e’ — _ e

Q fard: ' rfl- I I

L; IJ

Qflipflvp . '

Figura 7.22 Diagramma temporale

Esercizi risolti
Esercizio 7.1 Si effettui una simulazione logica manuale per un flip-flop masîer-slave
J K della durata di quattro cicli di clock, mostrando il segnale di controllo (C) e i se-
gnali J, K, Q e Q’. Si ipotìzzi che io stato iniziale sia pari a 1, e che in corrispondenza
al primo impulso sia J z O e K z 1. Nei cicli successivi J 1, seguito da K
= = O

e infine ancora J 0. Si ipotizzi inoltre che il cambiamento dei valori dei segnali di
=

ingresso si verifichi dopo il fronte di discesa del segnale di controllo.


Soluzione. Il risultato della simulazione è il seguente:

Cmmmms

ò 10111130

Esercizio 7.2 Si simuli il comportamento di una coppia di latch D sincroni collegati in


cascata di cui il primo attivo alto e il secondo attivo basso. Il segnale di controllo
C e Fingîesso D hanno Fandamento temporale mostrato nella figura seguente. Si
costruisca i} diagramma temporale sia di Q1 sia di Q2.

C’
236 Bistabili

x
Soluzione. La simulazione e quella riportata nella figura seguente in cui, per
comodità, sono stati trascurati i tempi di ritardo introdotti dai latch.

ll primo dei due latch è attivo sul livello aìto del segnale di controllo; ne consegue che
quando il segnale di controllo è alto il latch è trasparente e Tingresso è direttamente
osservabile su Q1 mentre quando il livello è basso 10 stato del bistabile è mantenuto
permanentemente ed è quello presente su D in corrispondenza del fronte di discesa di
C’. Il secondo latch, invece, è attivo sul livello basso del segnale di controllo e, quindi,
è insensibile alle variazioni di Q1. Quando il segnale di controllo passa dal livello alto
a quello basso, il valore presente su Q1 (che risulta stabile per mtto il livello basso
di C) attraversa il secondo latch che lo presenta in uscita e lo mantiene per tutto il
periodo nel quale il segnale di controllo è a liveîlo alto. Il risultato complessivo è
quello di aver memorizzato il valore in ingresso corrispondente al fronte di discesa di
C. La coppia di bistabilj realizza un flip-fiop D master-slave che commuta sul fronte
dì discesa di C.
Esercizio 7.3 Si simuli il comportamento di un latch SR sincrono attivo alto controllato
da segnali che hanno Pandamcnto temporale della seguente figura e si generi quello
sia di Q che di Q’. Si ipotizzi che lo stato iniziale sia Q = 0.

; : 2

Soluzione. Durante ogni periodo di tempo nel quale il segnale di controllo è 0, il


latch non è più sensibile alle variazioni dei segnali S e R e mantiene lo stato che
viene imposto dalla configurazione di ingresso rilevata sul fronte di discesa di C. In
generale, ii valore dello stato in quellîstante è noto; l'unica eccezione è quella relativa
al secondo fronte di discesa. In quelFoccasione sia S che R sono attivi e portano il
latch nella configurazione, non vaîida dal punto di vista logico ma possibile dal punto
di vista fisico, Q = Q’ = l; sul fiorite di discesa di C la catena di retroazione si chiude e
il latch si porta nello stato rnetastabile da cui esce quasi istantaneamente convergendo
verso uno di quelli stabili. Poiché lo stato terminale non è predicibile, il suo valore
non è conosciuto e rimane tale fino a quando non viene forzato uno stato noto. Si
osservi che questa situazione si presenta solo se gli ingressi passano da S = R‘ = a S 1

= R = 0 oppure S = R = 1 e il latch viene disattivato; in tutti gli altri casi, come quello

che si presenta nel primo periodo di attività, il valore di Q e Q’ sono noti.


7.6 Esercizi 237

Il risultato della simulazione è riportato nella figura seguente in cui sono stati trascurati
i tempi di propagazione propri del latch sincrono.

Esercizio 7.4 Si sirnuli il comportamento di un flip-fiop IK edge-triggered che commuta


sul fronte di salita controllato da segnali che hanno Fandamento temporale mostrato
di seguito e si generi quelîo di Q. Si ìpotizzi che lo stato iniziale sia Q = 0.

Soluzione. I1 fljp-flop J K commuta sul fronte di salita e, al primo di questi, cambia di


stato (Q = 0 in Q = 1) poiché in queîlîstante i segnali di eccitazione sono J = 1 e K =
1. Durante tutto il periodo di tempo che separa il primo fronte dal secondo il fiip-fiop
è insensibile a ogni variazione sugli ingressi e, di conseguenza, mantiene Io stato. In
corrispondenza del secondo fronte di salita i segnali di eccitazione hanno valore J = 1
e K = 0 per cui lo stato non cambia. Tale valore permane fino al terzo fronte di salita
dove i valori J = 0 e K = 1 impongono un cambiamento di Q portandolo da 1 a 0.

Q___,__,—.

Esercizio 7.5 Si sìmulj il comportamento di una serie di tre latch D sincronì tutti attivi
sul livello alto ipotizzando che i tre elementi di memoria abbiano in ritardo di 6 unità e
che il segnale di sincronismo abbia un periodo di 30 (15 alto e I5 basso). L’ andamento
del segnale di sincronismo e quello del segnale di ingresso sono riportati nella figura
seguente. Si generi Fandamento nel tempo di Q1, Q2 e Q3 ipotizzando che lo stato
iniziale sia a 0 per tutti e tre.
238 Bistabili

IN '20 ' 40' 55:’ isso

Soluzione. Il risultato della simulazione è riportato nella figura seguente.

Q3 81

51 63 87
Sul primo dei tre livelli alti del segnale di sincronismo tutti i latch sincroni sono attivi
(modalità trasparente) e trasferiscono in uscita, con ritardo di propagazione 6, il valo-
re presente sul loro ingresso. Ne consegue che il primo trasferisce l‘ì sullîngresso al
tempo 20 in uscita (tempo 26), il secondo propaga l’1 di Q1 al tempo 26 su Q2 mentre
il terzo porta l'ultimo valore valido rilevato in concomitanza dei cambiamento di li-
vello (uno 0 su Q2); quindi, a causa del ritardo di propagazione il valore sullîngresso
non viene prepagato fino all'uscita dellîlltimo bistabile.
Sul secondo livello attivo il primo dei latch rileva, sul segnale di ingresso, un livello {J
dal tempo 45 al tempo 55 e un livello 1 dal tempo 55 in poi. Questi due valori vengono
propagati su Q1 con ritardo 6 producendo su livello 0 di ampiezza 10 nell'intervallo
da 51 (45+6) a 61 65+6). Il secondo latch, invece, ha in ingresso, nel periodo di
attività, un l fino al tempo 51 e uno {l fino dal tempo 51 al tempo 6D; quindi, Q2 avrà
valore 1 fino al tempo 57 (5111-6} e valore 0 dal tempo S? fino allînizio del successivo
periodo di attività. Il terzo e ultimo latch, infine, è sensibile a un 1 dal tempo 45 fino
al tempo 57 e a uno 0 dal tempo S7 fino al tempo 60; quindi, Q2 passerà da O a 1 al
tempo 51 (45+6) per poi tornare a O a1 tempo 63 (5Îr’+6).
Sul terzo livello attivo il primo dei lateh ha in ingresso un livello 1 fino al tempo 80
e un livello 0 da 80 in poi. Questi due valori vengono propagati su Q1 con ritardo 6
(un livello 1 che termina al tempo 86 (73+6) e un livello 0 parte da 86). Il secondo
latch, che ha in ingresso Q1, presenterà su Q2 un valore 0 fino al tempo 81 (75+6)
e dal tempo 92 in poi, mentre avrà un valore l ne1l’intervallo da 81 a 92. Il terzo
e ultimo latch, infine, è sensibile a un l dal tempo 81; quindi, Q2 passerà da O a l
a} tempo 87 (81+6). Si osservi che la funzionalità del sistema dipende dal ritardo
di propagazione dei latch. Il risultato di una simulazione prodotta considerando un
ritardo di propagazione pari a 3 e riportato alla pagina seguente.
7. 6 Esercizi 239

Esercizio 7.6 Si consideri un circuito sequenziale costituito da due fiip-fiop D chiamati


A e B con due ingressi X e Y e una uscita Z, e specificato dalle seguenti equazioni:
,

DA:XIY+XQA DB:X’QB+XQA Z=QB


Se ne disegniii Circuito corrispondente.
Soluzione. Il segnale D A e11 segnale in ingresso ai flip-flop D A, il segnale Q4 che
ne rappresenta 1o stato corrisponde alla sua uscita Q; in modo analogo si individuano
i segnaîi del secondo bistabììe B. A questo punto il circuito viene realizzato costruen-
do la rete logica mediante 1a “traduzione” delle equazioni logiche dei segnali (come
illustrato nel Paragrafo 2.7), e aggiungendo anche gli elementi di memoria. Il circuito
risultante è mostrato nella figura seguente.

D
“<><

GEL:
240 Bisrabifì

Esercizi proposti
Esercizio 7.1 Si simuli il comportamento del sistema riportato di seguito.

IN; 101 Q1

c J Q3

K
lNz D2 C224

Si ipotizzi che il ritardo di propagazione sia 6 unità e che i1 segnale di sincronismo


abbia un periodo di 30 (15 alto e 15 basso). L’ andamento del segnaîe di sincronismo
e quello dei segnali di ingresso sono riportati nella figura seguente.

1371
Ézo Éso voisoasì
m4
15 2025 65? 8::

Si generi Fandamento nei tempo di Q1, Q2 e Q3 ipotizzando che lo stato iniziale sia
a 0 per tutti e tre.

Esercizio 7.2 Si simuli i1 comportamento del sistema descritto ncîia figura seguente.

T
|—'
Il
fi

IN —D Q1 T Q2—

C’ —C >C

Si ipotìzzi che i1 ritardo di propagazione sia 6 unità c che i1 segnale di sincronismo


abbia un periodo di 30 (15 aîto e 15 basso). L’ andamento del segnaîe di sincronismo
e queìlo del segnale di ingresso sono riportati nel diagramma seguente.

Si generi Fandarnento nel tempo di Q1 e Q2 ipotizzando che lo stato iniziale sia a 0


per tutti gli elementi di memoria.
7. 6 Esercizi ' 241

Esercizio 7.3 Si sirnuli il comportamento del sistema iiportato di seguito.

Sì ipotizzi che il ritardo di propagazione sia nullo. L’ andamento dei segnaîi di ingresso
e riportato nella figura seguente. Si generi Fandamento ne] tempo di Q1, Q3, Q2 e Q5
ipotizzando che lo stato iniziale sia a 0 per tutti gli elementi di memoria.

m1 20 25 35 4o s0 90

‘tu’ 15 30 45 s0 75 90

Esercizio 7.4 Sì simulj il comportamento di una serie di tre flip-fiop D che commutano
sul fronte di salita ipotizzando che i tre elementi di memoria abbiano in ritardo di
6 unità e che il segnale di sincronismo abbia un periodo di 30 (15 alto e 15 basso).
L’ andamento del segnale di sincronismo e quello del segnale di ingresso sono riportati
nella figura seguente. Si generi Fandamento nel tempo di Q1, Q2 e Q3 ipotizzando
che 1o stato iniziale sia a 0 per tutti e tre.

In?
10 2D

Le soluzioni degli esercizi proposti sono disponibili nel booksite:


httpzflwrww.apogeonlinecomllibri!B8-503—2229—1fscheda.
p
r
Sintesi delle macchine
a stati finiti
Contenuto

8.1 I passi deiiafase di progetto


8.2 Dalia specifica ai diagramma dello stato
8.3 Modelli di Meaiy e di Moore
8.4 Sequenza di interesse e completamenzo delle transizioni
8.5 Dal diagramma di stato alia tabella degli stari
8.6 Codifica della stato
8.7 Dalla rabeiia deiie transizioni di stato codificato aiia tabella
delle eccirazioni
8.8 Riepilogo
Esercizi

Neila famiglia dei sistemi digitali esiste un sottoinsieme di funzionalità che ri-
chiede di essere modellato mediante una macchina a stati finiti deterministica. In
questo contesto, il progettista deve affrontare questioni che partono dalla forma-
lizzazione dei requisiti, normalmente descritti in linguaggio informale, per arri-
vare alla traduzione del modello in una forma che consenta di riutilizzare metodi
e procedure di sintesi note- Obiettivo di questo capitolo e queilo di mostrate
le tecniche e le politiche che consentono di trasformare una specifica informale
nella descrizione delle reti combinatorie associate alle funzioni stato prossimo e
uscita tipiche di una macchina a stati finiti deterministica sincrona. Di seguito
si afironterà solo il problema della trasformazione demandando Pottìmizzazione
degli stati ad un capitolo specifico.

8.1 I passi della fase di progetto


ll primo passo della procedura di progetto consiste nel tradurre la descrizione ìn—
formale del problema, solitamente fornita in linguaggio naturale, in un modello
formale che, nei contesto trattato, è un grafo di transizione dello stato (di Mealy
o di Moore in relazione al problema o alle esigenze del progettista). La trasfor-
mazione è caratterizzata da una attività intellettuale che richiede accuratezza ed
244 Sintesi deHe macchine a santi finiti

esperienza nel trattare il problema e deve produrre una nuova descrizione perfet-
tamente aderente alle richieste espresse dalla specifica. Si osservi che, a causa
della difficoltà intrinseca di questo passaggio, il risultato prodotto non è sempre
ottimale rispetto al numero degli stati.
Il passo successivo consiste nel tradurre il grafo nella tabella degli stati; questa
operazione non aggiunge informazioni ma serve solo per riproporle in modo dif-
ferente. Di conseguenza, anche la nuova descrizione ottenuta può contenere degli
stati ridondanti e non essenziali ai fini della soluzione del problema. Tali stati
vengono eliminati nel terz.o passo della fase di progetto che si pone Fobiettivo,
nel rispetto della funzionalità che la macchina dovrà sviluppare, di produrre una
nuova tabella delle transizioni dello stato nella quale sono presenti esclusivamente
gli stati utili. Il modello ottimizzato, al cui ottenimento è dedicato un intero capi-
tolo, è ancora caratterizzato dal fatto che lo stato è in forma simbolica e, quindi,
inadatto per le ultime fasi della sintesi.
Il passo successivo, denominato “codifica dello stato”, si propone di realizzare
una corrispondenza biunivoca tra Pinsieme dei simboli di stato e Finsieme delle
codifiche relative al codice selezionato (binario one-hot, ...). Tale associazione
,

può essere priva di obiettivi oppure si può adottare una cifra di merito e identifi-
care una codifica delìo stato che la minimizzi (nel caso esaminato, che produca
una implementazione poco costosa). Il risultato della fase di codifica è una nuova
tabella denominata tabella delle transizioni dello stato codificata o, più sempli-
cemente, tabella delle transizioni. Il suo contenuto descrive, ancora una volta, le
funzioni stato prossimo ed uscita.
È interessante osservare, rimarcando i concetti relativi alie macchine a stati finiti
detenninistiche, che le informazioni contenute nelle tabelle trattate fino ad ora so-
no sia riguardanti Pistante Corrente (uscite) che attinenti all’ istante futuro (stato).
Per questa ragione, a questo punto della procedura di progetto, il problema della
sintesi della funzione dfiiscita si riduce a quello di rete combinatoria. La funzione
stato prossimo, invece, richiede una ulteriore rielaborazione per riportare al tem-
po corrente tutte le informazioni relative all’istante futuro. Tale trasformazione
viene svolta considerando il comportamento degli elementi di memoria (SR, D,
. ); in particolare, noto il valore di un bit di stato sia allîstante corrente che in
. .

quello futuro e scelti gii elementi di memoria è definita la configurazione che de-
ve essere fornita agli ingressi degli elementi di memoria stessi all’istante attuale.
Sostituendo quest’ ultima configurazione nella tabella delle transizioni dello stato
codificato si ottiene la tabella delle eccitazioni degli elementi di memoria; si sot-
tolinea ancora una volta che la tabelia ottenuta contiene tutte informazioni che si
riferiscono all’istante corrente per cui il problema si trasforma in una questione
di sintesi puramente combinatoria.
8.2 Dalla specifica al diagramma della stato 245

8.2 Dalla specifica al diagramma dello stato


Data una specifica espressa in un linguaggio informale o semi-formale, ii primo
passo della sua traduzione in una reaiizzazione consiste nelPelirnjnare tutte le
possibili ambiguità e ridondanze e completare la specifica stessa ove necessario.
Concluso questo passo si procede forrnalizzando la descrizione ottenuta; questa
seconda fase ha Fobiettivo di produrre una specifica non ambigua da utilizzare
come punto di partenza per i successivi passi di sintesi. Il processo di forma-
lizzazione è una operazione complessa che si basa su di un insieme di attività
fondate sulresperienza, sulla capacità di astrazione, sulFintuito e su quanfaltro
sia caratteristico di una attività umana. Sebbene risulti disattesa ogni aspettativa
che riguardi la presenza di un processo di trasformazione di tipo algoritmico, è
possibile presentare alcune indicazioni di massima che supportano tale fase.

8.2.1 Stato di partenza


Lo stato di partenza, o di reset, è il punto da cui la macchina sequenziale sincrona
inizia ad evolvere. Didentificazione dello stato di partenza, detto anche stato
di rese! richiede di riconoscere, tra 1c condizioni di funzionamento dei sistema,
lo stato deìla macchina che permette di considerare tutto ciò che è accaduto in
precedenza come privo di significato, quindi come se la macchina non avesse
storia. Quindi, al solo scopo di esemplificare, si ha che lo stato di partenza:

o in un automa riconoscitore di una sequenza predefinita di bit è quello da


cui parte Fattività di identificazione; questo e lo stato nel quale la memoria
di ciò che e accaduto nel passato non ha alcun rilievo rispetto a quello
che ci si propone di fare (per esempio, il riconoscimento di una sequenza
caratterizzata da un numero pari di O consecutivi produce Fannullamento
delia storia del sistema nel momento in cui si riceve un 1);

o in un distributore automatico di bevande è il punto nel quale si rimane in


attesa che si inserisca la prima moneta;

o in un contatore è quello da cui inizia la sequenza di conteggio.

Un modo per identificare uno stato di reset (nel caso in cui non sia specificato) è
quello di determinare (almeno) una sequenza di ingresso che non sia significativa
ai fini della funzionalità (sequenza di non interesse); in generale questa conduce
a uno stato di partenza. Si consideri, per esempio, ia seguente specifica:

Una macchina porta l ìzsciîa a I se r‘! numero di I ferri sul! ‘unico ingresso
è pari e superiore a due, dopo di che si riporta i‘ ìrscita a 0 e ricomincia.
r1:
246 _ Sintesi delle macchine a srarifiniti

Tale macchina ha uno stato di reset che viene raggiunto se si presenta la configu-
razione di ingresso 0 poiché quesfultimo annullerebbe tutta la storia del sistema.
Sebbene non ci siano indicazioni diverse da quelle riportate, è utile approfondire
alcuni aspetti della specifica e trarre da questi alcune considerazioni.
Una prima considerazione riguarda la presenza o meno di una fase transitoria
(per ragioni che possono riguardare Fassenza di informazioni pregresse, la si-
curezza, la verifica, la taratura, la configurabilità, Passestamento dei parametri
operativi, ...) cioé di quell’insieme di passi che porta il sistema dalFaccensione
alla condizione di regime; se questo insieme esiste, allora è conveniente separar-
lo concettualmente dalla situazione operativa vera e propria e ricercare in esso il
punto di inizio della procedura di attivazione. Si osservi che la fase di regime,
solitamente, viene raccordate con la fase transitoria in modo spontaneo attraverso
il completamento del modello (come descritto in seguito); ne consegue che le due
fasi possono essere scomposte e analizzate in modo indipendente. Questa e una
pratica suggerita per problemi non particolarmente semplici.
Si consideri, a titolo di esempio, il problema deila gestione di 2 coppie di semafori
a un incrocio. In questo contesto potrebbe essere ragionevole far precedere la fase
operativa, in cui si alternano ordinatamente rosso, verde e giallo, da una fase nella
quale il sistema si pone_in una condizione sicura. Durante questa fase transitoria
si potrebbe attivare il giallo lampeggiante per un dato periodo di tempo, quindi
attivare il rosso su tutte le direzioni e, infine, portare una coppia di semafori a
Verde (inizio dello stato operativo). Con questa procedura, il sistema allerta gli
, utenti, stabilizza il traffico imponendo a tutti di fermarsi e infine attiva il sistema
nei modo noto. Si osservi che le caratteristiche che possono condizionare la rea-
lizzazione della fase transitoria sono variegate: per esempio, verificare il corretto
funzionamento delle lampade (verifica), rilevare la presenza di foschia o nebbia e
agire di conseguenza sui semaforo per aumentame la ìuminosità (configurabilità),
ecc. Si osservi, inoltre, che la fase di transitorio si raccorda in modo naturale con
il funzionamento a regime. Una seconda importante considerazione riguarda la
molteplicità degli stati di partenza. In alcune occasioni e per cause differenti lo
stato di partenza deve essere scelto, in modo arbitrario (a meno di specifiche di-
rettìve), tra un insieme di possibilità. Le ragioni principali che possono causare la
presenza di una potenziale molteplicità degli stati di reset sono legate o a direttive
imprecise nella specifica oppure alla presenza di più condizioni che annullano la
storia del sistema. Per quanto riguarda i problemi di incompletezza nella speci-
fica si consideri, per esempio, che se nella specifica del problema dì gestione dei
semafori a un incrocio non si dichiara esplicitamente:

Il semaforo parte con i! msso per la direttrice nord-stari e con il verde per
la direttrice est-ovest.
813 Modelli di Mealy e di Moore 247

allora non esiste alcuna ragione per la quale non si possa selezionare come stato
di partenza quello in cui si parte da giallo per la direttrice nord-sud e da rosso
per la direttrice est-ovest. Quindi, un qualunque stato potrebbe essere considerato
stato di partenza. Un altro esempio della stessa famiglia è quello che si riferisce
alla modellazione di una macchina così definita:
Lîiscita cambia valore solo se il segnale di ingresso a: mantiene valore l
per due istanti consecutivi.
Anche in questo caso, Passenza della specifica del valore iniziale (0 0 1) rende
lo stato nel quale l'uscita e l equivalente, dal punto di vista della inizializzazione
della macchina, allo stato che prevede uscita ‘O. Per quanto riguarda, invece, la
possibilità di avere più condizioni per Fannullamento della storia del sistema, si
consideri 1a seguente specifica:

La macchina riceve in ingresso sequenze di bit e porta l'uscita ad l’ non


appena riconosce le sequenze “[00” o “O10”.

In questo caso si nota che, per la prima sequenza tre 0 consecutivi annullano
qualunque informazione utile presente nel passato e Pidentificazione ricomincia
quando si presenta il primo l, mentre per la seconda sequenza tre l consecutivi
riportano 1a macchina a dover considerare uno 0 come il primo bit utile. Ne
consegue che esistono due stati che possono essere considerati di partenza.

8.3 Modelli di Mealy e di Moore


In generale, la scelta di modellare la specifica informale mediante una macchina
di Mealy o di Moore è del tutto arbitraria; questo è anche supportato dal fatto
che i due modelli sono equivalenti ed è possibile passare da uno all’a11Io. Nella
sostanza, tuttavia, i due modelli regolano comportamenti differenti e può accadere
che un tipo sia più adatto del1’altro a specifiche classi di problemi.
Una macchina di Mealy si adatta in modo naturaîe a tutti quei problemi in cui e
richiesto che il simbolo di uscita sia direttamente legato ad un simbolo di ingresso.
Si consideri per esempio la seguente specifica:

Dopo aver identificato un numero pari di l cortsecutivi e superiori a due si


generi, prima di fiponarsi’ nella stato di reset, il simbolo di uscita “O1 se ”

si legge una 0 oppure “J 0” se si legge un I.

In questo caso è più semplice pensare a una macchina di Mealy che a una di Moo-
re; infatti, è abbastanza naturale immaginare che, dallo stato nel quale si è giunti
per aver identificato la sequenza partano due archi etichettati 0/10 e U01. È scon-
248 Sintesi delle macchine a stati finiti

tato che se nella specifica si richieda di rispondere immediatamente agli stimoli


esterni (“. e mostrare immediatamente sull ‘uscita l efietto prodotto dal! ’irzgres—
. .

so... ”) la macchina di riferimento è necessariamente quella di Mealy poiché


nella macchina di Moore Fefietto dellîngresso si osserva un periodo dopo.
Una macchina di Moore, invece, è particolarmente indicata per tutti i problemi
che richiedono stabilità del simbolo d’uscita per Fintero periodo. Una macchina
di Moore è quindi da preferirei quando Fuscita deve essere insensibile ai transitori
(dovuti sia a variazioni sugli ingressi sia a transitori dei segnali interni), oppure
quando il simbolo d’uscìta dipende solo dallo stato del sistema. Per esempio, per
la specifica parziale:

...il saper-antenna del livello di soglia attiva l ’allanne, blocca l ’r'ngresso e


apre la valvola a‘ Ztrscita.

è istintivo immaginare lo stato come unico elemento a cui sono associati i segnali
di controllo che costituiscono le uscite del sistema.

8.4 Sequenza di interesse e completamento


delle transizioni
Indicando con sequenza di interesse una sequenza di ingressi definita nella spe-
cifica che conduce in una situazione di rilievo, una direttiva di progetto è quella
che suggerisce di analizzare Peffetto delle sequenze degli ingressi delineate nella
‘ specifica separandole da quelle che non sono indicate ma necessarie al completa-
mento della macchina (completamento delle transizioni). In primo luogo risulta
quindi opportuno focalizzare Tattenzione sulle sequenze degli ingressi che rap-
presentano il compito principale della macchina e, successivamente, compietare
il modello del problema specificando, stato dopo stato, cosa fare per tutte le tran-
sizioni rimaste inespresse e associate alle configurazioni dei simboli di ingresso
non ancora utilizzate. Sì osservi che se per un dato stato Feffetto di uno o più
simboli di ingresso non è noto, la macchina risultante sarà non completamente
specificata (lo stato futuro non è noto). Si consideri, per esempio, la specifica:

Una macchina a stati finiti riceve sull Stenico ingresso a: un sequenza di bit e
complemento il valore dell nascita ogni qualvolta, in due istanti consecutivi,
il livello dellîngresso è 1. Inizialmente l ’uscita 2: vale I. Inoltre, l nascita
deve essere stabile tra due fronti del clock consecutivi.

lu questo esempio, la sequenza di interesse è unica e prevede che, per due l


consecutivi su m, ci si porti nello stato in cui Puscita è complementata rispetto
al valore di inizio sequenza. Poiché l’uscita z è stabile tra due fronti consecutivi
8.4 Sequenza di interesse e completamento delle transizioni 249

del segnale di sincronismo, il modello da adottare (il più adatto al problema) è


quello di Moore. Il fatto che “Inizialmente lascito z vale l’ ” determina
Passociazione tra stato iniziale e uscita; si noti che in assenza di tale specifica lo
stato iniziale avrebbe avuto due possibili associazioni e che la scelta sarebbe stata
arbitraria. A partire dallo stato iniziale 50/1 la sequenza di interesse è “1 l”: si,
attraversa lo stato 51/1 per terminare su 52/0, come mostra la Figura 8.1.

Figura 8.1 Riconoscitore della prima sequenza di interesse “ì 1“

La specifica, inoltre, evidenzia una “simmetria” di comportamento che rileva una


seconda sequenza identica alla precedente; la seconda sequenza di interesse è
“l 1” e porta da 52/0 in So / 1 attraversando lo stato 53/0. Aggiungendo il nuovo
stato S3 /D e le transizioni si ottiene la macchina mostrata in Figura 8.2.

Figura 8.2 Riconoscitore delle due sequenza di interesse “11"

La macchina descritta non è completa poiché mancano tutte le transizioni per il


simbolo di ingresso 0. Il comportamento è ben specificato poiché ogniqualvolta
la sequenza di 1 è interrotta si ricomincia dalfinizio; questo significa che per ogni
0 la transizione riporta nel punto di partenza della sequenza di interesse (S0 nel
primo caso ed S2 nel secondo). Poiché non ci sono altre transizioni ammissibili,
il passaggio al modello formale è completato (Figura 8.3).

Figura 8.3 Diagramma dello stato completo

A volte la macchina deve attraversare un transitorio prima di poter essere opera-


tiva. Se 1a sequenza transitoria non è prevista in modo esplicito dalla specifica,
250 Sintesi delle macchine a srarifiniii

come nelPesempio appena proposto, identificare il modello formale può essere


problematico. Un esempio è quello che si riferisce alfidentificazìone di due o
più sequenze di bit. In questo caso il problema può essere affrontato utilizzando
la “forza bruta” oppure applicando un processo intellettuale che ha Io scopo di
ridurre la complessità del problema.
Nel primo caso, si ipotizza che lo stato attuale sia ignoto e si procede espandendo
Falbero di tutte le alternative. Come esempio, si consideri il seguente problema:

Realizzare una macchina a stari finiti dorata di un unico ingresso a; che


riceve una sequenza di bit. Lîuscira z della macchina assume valore I non
appena si presentano ie due sequenze “O10” o “E00”. Si tenga presente
che sono ammesse anche sequenze parzialmente sovrapposte. Per esempio,
ricevendo la sequenza “e001 O] O01 1 i ’usci1‘a z assume valore i tre volte,
.. “

due relative alla sequenza “O10” ed una relativa alla sequenza “100”.

Si potrebbe partire da uno stato S9 che corrisponde a un sistema privo di sto-


ria (———) e che per gli ingressi O e 1 conduce, rispettivamente, agli stati S1 e
S2. Questi ultimi sono rappresentativi della storia (——Ù) e (————1). Si procede
in questo modo fino al completamento (15 stati) della fase di mìzìalizzazione,
ottenendo il grafo parziale di Figura 8.4.

Figura 8.4 Grafo parziale del riconoscitore di sequenze O10 e 101


8.4 Sequenza di interesse e completamento delle transizioni 251

Una volta creato il grafo parziale che identifica tutti gli stati che si attraversano è
necessario completarlo introducendo le transizioni uscenti dagli stati da S7 a S14.
Poiché la sequenza di interesse è di 3 passi, sarebbe poco sensato continuare 1’e-
spansione del grafo introducendo nuovi stati mentre è preferibile riusare gli stati
già presenti interpretando la condizione che essi rappresentano. Per esempio, lo
stato S7 rappresenta la condizione in cui si è ricevuta la sequenza 000; quando si
riceve un nuovo 0 in ingresso, si rimane in tale stato (gli ultimi tre ingressi sono
000); se, invece, si riceve un 1, la sequenza degli ultimi tre ingressi è 001, che
corrisponde allo stato S8. Tale stato rappresenta la la condizione cui si giunge
partendo da S9 e ricevendo la sequenza 001. Procedendo in questo modo si com-
pleta il diagramma, introducendo per gli stati da S7 a S14 le transizioni mancanti:
il risultato è mostrato in Figura 8.5. Si osservi che il modello adottato può essere
sia di Moore quanto di Meaìy.

Figura 8.5 Riconoscitore delle sequenze 010 e 101


252 Sintesi delle macchine a stari finiti

Utilizzando un approccio diverso si affronta il problema partendo nuovamente


dallo stato S9, focaiizzando però Partenzione inizialmente solo sulle sequenze di
interesse, 010 e 100, ottenendo ii diagramma di transizione parziale di Figura 8.6.

Figura 8.6 Grato parziale dei Iiconoscitore di sequenze di interesse 0î0 e 101

Una Volta individuate tale sequenze e gli stati necessari, si analizzano gìi stati per
individuare le configurazioni che è possibile associare loro: per esempio, 1o stato
S1 indica la situazione in cui è arrivato uno 0, senza tenere traccia dei primi due
ingressi. Le configurazioni ad esso associabiìi sono dunque ——0, ovvero 000,
010, 100 e 110. Analogamente, io stato S2 indica la situazioni in cui e arrivato
uno O, seguito da un 1, nulla si sa di quanto sia accaduto prima; ne consegue che
le configurazioni associabili sono quelle corrispondenti a —U1, ossia 001 e 101.
Successivamente si riducono questi gruppi di configurazioni, eliminando quelle
che già sono associate biunivocainente a uno stato (per esempio la configurazione
010 di S1 e eliminata perché associata biunivocamente a S3), e queìle che non
possono rispettare i vincoîi di adiacenza tra stati (per esempio dalla configura-
zione 101 di 3g non si arriva con una sola transizione alla configurazione 010 di
S3). La Figura 8.7(a) mostra tutte le configurazioni associabili agli stati secondo
le sequenze di interesse, mentre la Figura S.7(b} mostra la loro semplificazione.
000 000
010 010
100 001 199 001
110 101 010 11G +01 010

(a) (b)
Figura 8.7 Grafo di transizione dello stato per Ìe sole sequenza di interesse
8.4 Sequenza di interesse e completamento delle transizioni 253

Ancora, la configurazione associata eliminata dai gruppi legati


a S3 deve essere
a S5 e S1 e, successivamente, l’unica configurazione (100) di S5 deve essere
tolta dal gruppo di S1. Successivamente, 1a configurazione (110) associata a S5
può derivare solamente da (-11) che impone, di eliminare da S3 sia (001) (già
tolta in precedenza) che (101). A questo punto, il grafo di transizione dello stato
deve essere completato riportando le transizioni mancanti; in questa fase possono
presentarsi tre situazioni:

o la configurazione è nota e univocamente associata a uno stato: la


transizione è obbligata e si rivolge verso lo stato univocamente identificato;

o 1a configurazione è inclusa in uno 0 più gruppi: si risolve Pambiguìtà se-


lezionando, arbitrariamente, lo stato su cui terminare la transizione e si
propagano i vincoli che questa scelta impone (eliminazione di questa con-
figurazione da alni gruppi ed eliminazione di configurazioni non valide tra
stati adiacenti);

o la configurazione non è associata ad alcuno stato: si crea un nuovo stato.

Facendo riferimento alresempio sviluppato finora, da S1 si torna in S1 con in-


gresso 0 (primo caso) e con uscita 0, da S5 Pingresso 1 può portare in S3 con
uscita 0, obbligando la scelta della configurazione (101), oppure in un nuovo
stato, associato necessariamente alla configurazione (101). In quesfesempio, la
scelta tra le ultime due opzioni è arbitraria; una indicazione di massima è quella
di riutilizzare uno stato già presente per facilitare la convergenza del processo di
formalizzazione. Si osservi, infine, che lo stato 5g è lo stato di reset (Figura 8.8).

Figura 8.8 Grafo di transizione dello stato completo

Un’alternativa a quesfiultimo metodo consiste nelrindividuare una configurazio-


ne iniziale che annulli la memoria del sistema (particolarmente adatto per i ricono-
254 Sintesi delle macchine a srarifiniti

scitori). Nello specifico, e utile riferirsi al primo bit della “sequenza di interesse”:
nel caso sia 0 (l) un numero sufficiente di l (0) annulla la memoria del sistema.
Se la sequenza di interesse è unica, questo approccio è particolarmente snello e,
quindi, e quello suggerito; nel caso di più “sequenze di interesse” il problema può
complicarsi nella fase di raccordo tra le macchine poiché queste ultime possono
risultare disgiunte per costruzione. Facendo riferimento all’esempio precedente,
sono sufficienti tre 0 per perdere memoria di un qualunque tentato riconoscimen-
to della sequenza “100” e di tre 1 per la sequenza “O10”. Quindi, per la prima
si parte da S1 (configurazione (000)) specificando subito la presenza di un auto-
anello etichettato “1/0” mentre per la seconda si può partire da S2 (configurazione
(111)) con un auto-anello “0f0”. Successivamente si sviluppano le sequenze di
interesse nello stesso modo Visto in precedenza. Poiché lo stato di partenza diffe-
risce in base ai riconoscimento da effettuare, si pone il problema del raccordo tra
le due. A questo scopo, si considerano contemporaneamente le macchine e nel
completare le transizioni si cerca, in primo luogo, di identificare la presenza di
uno stato utile che sia già presente e nel caso non esista lo si aggiunge. I_l risultato
è il grafo mostrato in Figura 8.9.

Figura 8.9 Grafo di transizione dello stato completo

In questo caso, lo stato di reset deve essere scelto tra S1, S4 e S3: in questi stati il
valore aggiunto è costituito da quello che avverrà e non da quello che è accaduto.
È rilevante sottolineare che le configurazioni indicate per ogni stato, in tutti gli
esempi, hanno significato solo a regime e sono utili per la sola fase di costruzione
del modello; quindi, non esiste alcuna relazione, se non voluta, tra queste ultime
e la realizzazione fisica ad essa corrispondente (in altre parole, tutti i successivi
passi di sintesi non sono influenzati dalle configurazioni indicate).
Si noti, infine, che Fobiettivo della fase di progetto in esame è produrre una spe-
cifica formale perfettamente aderente alla sua corrispondente specifica informale;
8.5 Dal diagramma di stato alla tabella degli stari 255

per questa ragione, lo scopo del progettista è quello di realizzare una macchina
che rispetti le aspettative e non quello di produrre un modello ottimizzato nel nu-
mero di stati. La ragione di questa ultima considerazione è che Fottimizzazìone
(Capitolo 9) è un processo algoritmico mentre la formalizzazione è un processo
intellettuale complesso su cui è necessario rivolgere ogni sforzo.

8.5 Dal diagramma di stato alla tabella degli stati


La costruzione della tabella delle transizioni dello stato in forma simbolica a par-
tire dal grafo delle transizioni dello stato è un passo della fase di progetto privo di
difficoltà concettuali poiché trasforma una rappresentazione in urfaltra del tutto
equivalente. In particolare, le transizioni e le uscite si trasformano negli eiernenti
della tabella delle transizioni dello stato. La Figura 8.10 mostra un esempio.

S1 51/0 52/0
S2 53/0 33/1
33 55/1 57/0
S4 55/0 54/0
S5 55/1 57/0
S5 51/0 52/0
5'? 53/1 55/0
Se 55/0 54/0

Figura 8.10 Trasformazione di un diagramma di stato in una tabella degli stati

8.6 Codifica dello stato


La tabella delle transizioni degli stati simbolica, ottenuta al passo precedente, non
è la descrizione più adatta se ci si pone Fobiettivo di identificare una descrizio-
ne strutturaie cioè Finsieme delle porte logiche e degli elementi di memoria che
realizzano la funzionalità desiderata. Il problema principale risiede nel fatto che
una forma simbolica ottenuta senza l’utìlizzo dei simboli 0 ed 1 non è adatta alla
sintesi. Si osservi che, sebbene non sia stato contemplato, il problema è del tutto
generale e pon-ebbe porsi anche per i simboli di ingresso e di uscita; infatti, in
molti casi la specifica del problema si riferisce a questi ultimi in modo astratto
(ad esempio, . la pressione del tasto di controllo apre la valvola solo dopo la
.

chiusura dello scarico. .”) cosicché risulta necessario, a un certo punto, tradurre
.
256 Sintesi delle maccrhine a stari finiti

le indicazioni in sequenze di bit. Poiché si intuisce che daìla codifica dipende


la struttura della rete, sarebbe opportuno considerare tutti gli aspetti contempora—
neamente e identificare la miglior codifica dei simboli di ingresso, d’uscita e di
stato; sfortunatamente, il problema è intrattabile poiché bisognerebbe identificare
la soluzione e valutarne il costo un numero di volte improponibile.

Approfondimento: Caîcoîo del numero delle possibili codifiche

Infatti, si supponga di avere m informazioni da associare ad n. codifiche con n 2


m; poiché la prima informazione può essere associata ad una qualunque delle n
codifiche disponibili, la seconda a una delle n- 1 residue, la terza ad una delle n- 2
rimanenti e così via, risulta che il numero di possibili codifiche è di nl/ (n m) !. —

Indicando con p, q ed r‘ rispettivamente la cardinaljtà delTalfabeto di ingresso, di


uscita e di stato, e con np, nq e nr il numero di possibili codifiche disponibili per i
tre aìfabeti, le possibili associazioni sono:

nplnq ln,.l
(up — slitta — qflln?‘ — r)!

Per esempio, considerando una macchina con 2 simboli di ingresso, 3 di uscita e 4


di stato ed ipotizzando l’uso di un codice a numero minimo di bit si ha:

n, = zlhgz El = 2 n, = 2”°'—='23l = 4 n, = 2l1°324l = 4

da cui si ricava che il numero di possibili associazioni, e quindi di valutazioni di


costo, è (Qlcllelîj/{Ulllfiì} = 1152.

Di conseguenza, in genere si preferisce identificare una ragionevole codifica del-


le informazioni di ingresso ed uscita (ad esempio, ..la pressione del tasto di
controllo apre la valvola soio dopo la chiusura dello scarico. può essere inter- . . ”

preîato come . quando ÉQSÉCLCOÌÌ-ÉTOÌÌO : 1, vaivolajjn = 1 solo dopo che


.

UG-llUOll(1_0îLÌ = 0 .”) e focalizzare l'attenzione solo sullo stato e sul problema


. .

della sua codifica. È interessante notare che, sebbene il problema sia più semplice
non lo e la sua cornpìessità; infatti, già per pochi stati l’analisi esaustiva risulta
improponibile (ad esempio, per 5 simboli di stato e 8 codifiche ci sono 6720 pos-
sibilità). lnoltre, il codice ‘e un ulteriore grado di libertà (i più comuni e utilizzati
sono il codice a numero minimo di bit e il codice one-hot). Queste osservazioni
mettono in luce tre esigenze:

(i) delineare delle linee guida per la scelta del codice;

(ii) individuare una cifra di merito che valuti l’ impatto di una scelta di codifica
sulla implementazione senza dover fare alcun passo di progetto;
8.6 Codifica della stato 25 7

(iii) identificare delle euristiche che consentano un’analisi parziale dello spazio
delle soluzioni alla ricerca della codifica più promettente secondo ìa cifra di
merito adottata.

La scelta del codice può essere guidata dalle seguenti considerazioni sperimentali:

o un codice a numero minimo di bit produce codifiche brevi che riduco-


no Yimpatto degli elementi di memoria sul costo delFimplementazione a
discapito deila complessità delle funzioni combinatorie per le funzioni di
uscita e stato prossimo. Quindi, per un numero di stati dell’ordine di qual-
che decina è una scelta quasi obbligata poiché il codice one-hot impone dei
costi eccessivi (il numero degli elementi di memoria aumenta linearmente
contro un aumento logaritrnico del codice in esame);

o un codice one-hot produce codifiche lunghe che richiedono un numero ele-


varo di elementi di memoria a vantaggio di una ridotta complessità delle
funzioni combinatorie che caratterizzano la macchina. Inoltre, la distanza
di Hamming tra le codifiche è sempre due e, sebbene non sia Pottirno, punta
alla riduzione delFenergia dissipata in modo semplice {cambiano solo due
bit a ogni transizione di stato). Infine, prove sperimentaii indicano che si
ottengono soluzioni con prestazioni migliori rispetto a quelle ottenute con il
codice a minimo numero di bit per un numero di stati maggiore di 15-20. Si
osservi che per tecnologie nelle quali i1 numero di eîementi di memoria di-
sponibili e predefinito (come, per esempio, nelle logiche programmabili) ed
esiste una relazione tra parti di logica combinatoria ed elementi di memoria
(come in un blocco logico) è conveniente puntare sull’uso di tutte le risorse
scegliendo una codifica come quella in esame per un numero di stati mino-
re di qualche decina. Utilizzando questa tecnologia, può essere importante
considerare anche il numero degii ingressi e delle uscite; in particolare, una
regola empirica stabilisce che alraumentare del numero di ingressi e uscite
aumenti il peso della parte combinatoria rendendo disponibili più eiementi
di memoria. Quindi, reti con pochi ingressi e poche uscite rendono poco
interessante Fuso del codice one-hot per le logiche programmabili solo in
presenza di pochi stati.

Per quanto riguarda il secondo e terzo punto, un approccio utilizzato consiste nel
non applicare alcuna specifica strategia di codifica e lasciare al progettista il com-
pito di scegliere il codice. Tra le politiche di scelta si trovano quella sequenziale
(in base all’ordine di apparizione degli stati) e quella casuale. Benché le solu-
zioni finali, a volte, siano ben lontane dalfottimo, la fase di codifica è snelia e le
258 Sintesi delle macchine a stati finiti

soluzioni ottenute sono soddisfacenti se si considera che molta attenzione è posta


sulla sintesi cornbinatoria che segue.
Un approccio differente è quello che stima l’effetto della codifica sulla sintesi
delie funzioni di stato prossimo e di uscita; in particolare, si può ipotizzare che sia
vantaggioso avere il più alto numero possibile di 1 adiacenti in modo da facilitare
Pespansione e, come conseguenza, ridurre il costo della implementazione. Si
osservi che ogni procedimento basato su questo principio perde di significato nel
caso di codifica one-hot poiché la distanza tra ogni codifica è costante e pari a 2.

8.6.1 Codifica a distanza nfinîma


Un primo criterio di valutazione della soluzione, denominato “minima distanza
deîle transizioni”, è quello che utilizza il calcolo della distanza di Hannning tra
ogni coppia (stato presente; stato futuro) come cifra di merito da minimizzare (la
soluzione di costo minore è queila più promettente). Per Pidentificazione della
soluzione è possibile adottare una qualunque delle tecniche euristiche note. Un
modo sempiice per risolvere il problema consiste nel generare un insieme casuale
di N codifiche e di scegliere la migliore. La Figura 8.11 riporta un esempio in cui
sono mostrate ìe coppie di stati, le molteplicità} M e due possibili codifiche.

ila’ Coppia Stato codifical codifica2


(2) S2 —> S4 s1 00o 101
(2) S3 —> S4 S2 010 lll
(2) S5 —> S1 S3 110 ÌÙO
(l) S1 —> S2 S4 ÌOÎ 011
(l) S1 —> S3 S5 lll llO
(l) S4 —> S:

0x0
Figura 8.11 Esempio di codifica casuale

La Figura 8.12 riporta il calcolo della distanza di Hamming tra le varie coppie e la
distanza totale, tenendo conto anche deîla moìteplìcità. Eassegnamento a costo
16 è ritenuto migliore (sulla base de} criterio di merito scelto).
Un altro criterio è quello greedy secondo il quaîe si associa a uno stato la codi-
fica più promettente ignorando Fimpatto che quesfuìtima può avere suile scelte
successive. Per migliorare Feffeîto delfeuristica, le coppie (stato presente; stato
futuro) vengono ordinate secondo la loro moltepiicita e si procede dalla coppia

1La molteplicità di una coppia t‘: data dal numero di archi (transizioni) che collegano i due stati della coppia.
8.6 Codifica della stato 259

codifica 1 codifica 2

O
1M coppie 11a’ coppie C’
(2) 000—»101 2-3 (2) 111—>011 2-1
(2) 110—»101 2-2 (2) 100—>011 2-3
(2) 111—>000 2-3 (2) 110—>101 2-2
(1) 0004010 1-1 (1) 101—=111 1-1
(1) 000—»110 1-2 (1) 101-400 1-1
(1) 1014111 1-1 (1) 011-010 1-2
411x071": 30 dHÎOT: 20

Figura 8.12 Calcolo della distanza di Hamming totale per le due codifiche casuali

più frequente all’ultima della lista. La politica di identificazione della codifica


dello stato è 1a seguente:

o si assegna al primo stato un valore arbitrario e si detennina la codifica dello


stato futuro corrispondente che minimizza la distanza di Hamming;

o si propagano le codifiche identificate su tutte le coppie e si spostano verso


Falto le coppie che hanno almeno uno stato non simbolico;

o si analizza il successivo stato simbolico della lista e gli si assegna una codi-
fica, tra quelle residue, che minimizza la distanza di Harmning. Si procede
riapplicando il passo procedente.

Come esempio, si consideri nuovamente la macchina di Figura 8.1 1 con la relativa


tabella delle coppie già ordinata e si ipotizzi di applicare una codifica a numero
minimo di bit (in questo caso 3 bit). Dopo aver imposto a S2 il valore 000, si
ricava la codifica di S4 scegliendola arbitrariamente nelfinsieme {001, 010, 100}
che contiene le sole codifiche che sono a minima distanza di Hamming da 000.
Successivamente alla propagazione di S2 : O00 e S4 = 001 nella lista delle
coppie ed al riordino della lista (la coppia S1 —> 000), viene scelta la codifica
per 5'3 nellînsieme {011, 101}; la selezione, che è nuovamente arbitraria e senza
alcuna politica di previsione, ricade su S3 01 1 I1 successivo stato da codificare
= .

è S1 che richiede di scegliere tra 010 e 100. Sì osservi che a causa de1l’a1tra
coppia che coinvolge S1, cioè S1 011, la scelta migliore è S; = 01D poiché è
——>

quella che rende le due distanze di I-Iamrning minime (la scelta 100 avrebbe avuto
distanza 3 da 01 l). Infine, Fanalisi per S5 porta a concludere che non esistono
configurazioni a distanza di Hamming l che possono soddisfare le due esigenze
001 —> S5 e S5 010; la scelta è, quindi, arbitraria tra le configurazioni a
——>

distanza di Hamming 2 come, per esempio, lll. Si noti che si sarebbe potuto
260 Sintesi delle macchine a stati finiti

scegliere la configurazione S5 = 101 che soddisfa la prima esigenza ma porta


la seconda direttiva ad avere distanza 3 peggiorando il costo globale se si tiene
conto della molteplicità. La Figura 8. l 3 mostra i diversi passi di questo esempio.

1V passo 1 passo 2 passo 3 passo 4 passo 5 C’


(2) s1 —.» S1 000 —» 001 000 —» 001 000 —> 001 000 —» 001 2 .1
(2) S3 —> S4 S3 ——> 001 Oll —> 001 011 —+ 001 Ùll —> O01 2-1
(2) S5 —> S1 S1 ——> 000 S1 —> O00 010 -+ 000 010 —> O00 2 - 2
(1) S1 —> s1 001 —» S5 001 a. S5 001 .1 S5 001 —> 101 1-1
(l) S1 -—> S3 S5 ——+ S1 S1 ——> 011 010 —> 011 010 —» 011 1-1
(l) S4 —> S5 S1 —> S3 S5 ——> S1 S5 —+ 010 101 —> D10 1-2
daror = 12

Figura 8.13 Passi della codifica a distanza minima secondo un algoritmo greedy

8.6.2 Codifica a priorità


Sebbene il criterio della minima distanza delle transizioni
sia molto semplice i
risultati che fornisce sono poco affidabili per quanto riguarda la bontà della so-
lozione ottenuta poiché non considera la relazione tra i simboli di ingresso e di
uscita e le transizioni di stato. Un secondo criterio di assegnamento e quello che
utilizza tali elementi per valutare la cifra di merito; in particolare, le priorità di
assegnamento sono ciassificate nel seguente modo:

Alta priorità viene data agli stati che hanno lo stesso stato futuro a parità di in-
gresso cioè, gli stati presenti che, per un dato valore di ingresso, portano
nello stesso stato futuro e dovrebbero quindi avere una codifica a distan-
za di Hamming i (Figura 8.14). Questa è una direttiva di codifica forte
che agisce sulla funzione combinatoria associata alla funzione 6 e che for-
za i due stati presenti in oggetto ad avere codifiche adiacenti in modo da
facilitare Fespansione.

Figura 8.14 Direttiva di alta priorità


8.6 Codifica della stato 261

Media priorità viene assegnata agli stati che derivano da uno stesso stato futuro
cioè, gli stati futuri derivati da uno stesso stato presente devono avere codi-
fica adiacente (Figura 8.15). Questa è una direttiva debole. Questa direttiva
si rafforza se i simboli di ingresso sono adiacenti; in questo caso la diret-
tiva diviene media. Il significato delFindicazione riportata è che proporre
per i due stati in esame una codifica adiacente massimizza il numero delle
espansioni ammissibili (per chiarezza, si osservi che se le codifiche fosse-
ro una il complemento ad uno delfaltra non ci sarebbe alcuna possibilità
di espansione"); anche questa direttiva agisce sulla funzione combinatoria
associata alla funzione 6.

Figura 8.15 Direttiva di media priorità

Bassa priorità viene assegnata agli stati che, a parità di ingresso, generano la
stessa uscita. In altre parole, gli stati che hanno la stessa uscita per uno
stesso ingresso devono avere codifiche contigue (Figura 8.16). Questa è
una direttiva molto debole il cui significato è di spingere i simboli di uscì-
ta uguali nella funzione combinatoria associata alla funzione A a essere
adiacenti per massimizzare la possibilità di espansione.

fik/Cxc fa lCk

Figura 8.16 Direttiva di bassa priorità

Pesate le coppie di stato secondo le indicazioni riportate è necessario adottare


una euristica che codifichi lo stato massimizzando le direttive che, nel caso ge»
nerale, non potranno essere tutte rispettate. Anche in questo caso, gli algoritmi
utilizzati appartengono all'ambito delle tecniche che producono soluzioni “abba-
stanza buone, abbastanza Velocemente” (“good enough, fast enough”): algoritmi
che niassimizzano un obiettivo locale (greedy) con qualche euristica aggiuntiva
262 Sintesi delle macchine a stari finiti

che riduce tale effetto, algoritmi che modificano ripetutamente una condizione
iniziale accettando anche soluzioni improbabili (algoritmi genetici, sirnulated an-
nealing, .) e altri ancora. Per ognuno di questi, Felemento di rilievo è la cifra di
. .

merito proposta poiché rappresenta il modo per valutare la bontà di una soluzione.
In questo contesto, si propone Futilizzo di una tecnica greedy per la sua facili-
tà d’us0. A questo scopo risultano utili due elementi: una mappa di Karnaugh
(ipotizzando un numero massimo di I6 simboli di stato) come strumento perin-
dividuare le adiacenze e un “grafo delle adiacenze” che riassume le caratteristiche
della macchina in esame. Quesfultimo è costituito da nodi che rappresentano gli
stati, da archi non diretti che rappresentano le direttive di adiacenza e da pesi che
indicano Fimportanza dell’adiacenza stessa. l pesi sono generati in base alle prio-
rità indicando con 6 quella alta con 4 quella media rafforzata, con 3 quella media
e con 1 quella bassa. L’obiettivo è quello di posizionare il grafo sulla mappa ri-
spettando il maggior numero possibile di direttive (in generale, si vuole adagiare
il grafo su un n-cubo tagliando il minor numero possibile di archi). La strategia
che si propone di seguire (una tra le possibili) è la seguente:

o posizionamento sulla tabella (oppure sulrn-cubo) della coppia di stati che


è legata dall’arco di peso maggiore; a parità di peso la scelta è arbitraria;

o collocazione nella tabella di uno stato alla volta nel seguente modo: si sce-
glie come riferimento uno stato tra quelli già posizionati e, successivamen-
te, si sceglie 1o stato tra quelli ancora da allocare che ha Parco di peso
maggiore. Lo stato di riferimento è quello che, tra gli stati già posiziona-
ti, ha ia somma dei pesi degli archi che vanno verso gli stati non ancora
allocati, di valore massimo; sul grafo delle adiacenze vengono eliminati,
di volta in volta, tutti gli archi che rappresentano le direttive di adiacenza
che non possono più essere rispettate. Se ci sono più possibilità, si cerca di
posizionare il nuovo stato cosicché sia adiacente sia allo di riferimento sia
ad uno stato che massimizza la cifra di merito;

o individuazione delle codifiche che sono quelle che, posti tutti i nodi nella
tabella, derivano dagli indici di riga e colonna.

Si consideri nuovamente Fesempio di Figura 8.11 di cui sono riportati in Figu-


ra S. 17 la tabella di transizione dello stato e le coppie con le varie priorità e mol-
teplicità e in Figura 8.18 il grafo delle adiacenze pesato. Si consideri una codifica
a numero minimo di bit (3 bit). La prima coppia di stati inserita nella mappa è
S2; S3 poiché caratterizzata dall’arco di peso 18. Successivamente, si posiziona
S4 in adiacenza con S2 e si elimina dal grafo la relazione S3; S4 che non può più
essere rispettata (Figura 8. i9).
8.6 Codifica della stato 263

priorità
alta. media bassa
0 1 stati M stati M stati M
51 53/0 32/0 (32993) 2 (53352) 1 (31952) 2
S2 84/0 (52254) 1 (S4ÈS5) 1 (51:53) 2
S3 34/0 54/0 (51:54) 1

S4 54/0 85/1 (51535) 2


s5 51/0 51/0 (32:33) 2
(52:54) 1

(S555) 2
(53:84) 1

(S555) 2
(S455) 1

Figura 8.17 Calcolo delle direttive di priorità

Figura 8.19 Posizionamento degli stati sulîa mappa di Karnaugh (passo l)


264 Sintesi delle macchine a stari‘ finiti

A1 passo successivo si inserisce nella mappa lo stato S5in adiacenza con S4: lo
si posiziona mantenendo anche Fadiacenza con S3 al fine di aumentare la cifra di
merito di 2 punti. Infine, si inserisce S1: esso ha adiacenza con peso 2 con i tre
stati S2, S3 e S5, e in qualsiasi posizione lo si inserisca si ottiene una sola adia-
cenza: la scelta è quindi del tutto arbitraria. La soluzione, il cui costo calcolato
con la nuova cifra di merito è di 36, è quella riporta in Figura 8.20. Per confron-
to con quanto proposto in precedenza, si noti che la cifra di merito relativa alla
“minima distanza” è, in questo caso, 14.

S1
Q2
q“, o 1

55 s2 00 S2 S3 51 z l”
01 S4 S5 S2 =q000
, s = 001
4” m” 11 51 S: _ 010
8+1 2 10 S_ : OH
S4 S3

Figura 8.20 Posizionamento degli stati sulla mappa di Kamaugh e codifica

8.6.3 Codifica basata sulPuscita


Un ultimo criterio è quello che utilizza le uscite come base per la generazione del-
le codifiche di stato. Il piincipio su cui si basa è quello di puntare sulla riduzione
della rete per la generazione della uscita accorpandola alla rete che genera lo stato
futuro. Se Fuscita associata allo stato presente è univoca questo approccio con-
sente di non avere bit dedicati alla identificazione dello stato; in caso contrario, la
necessaria diversificazione richiede qualche bit ausiliario. L’ approccio, in genere,
non è a numero minimo di bit e si adatta abbastanza bene a modelli di Mealy.
Si consideri, a scopo esemplificativo, la macchina di Figura 8.21. Poiché ie con-
figurazioni d’uscita sono su 2 bit e gli stati sono 5 è necessario un bit ausiliario.
Ne consegue che lo stato S1 potrebbe essere codificato con x01 oppure x10, S2
con 22:00 o 3:11, S3 con x00 o 3:10, S4 con x10 o 3:11 e S5 con 2:00, avendo cura di
assegnare ad a: un valore che rende univoca la codifica dello stato. Per esempio,
una codifica ammissibile e:

S1 = 010, S2 = 011, S3 =110, S4 = 111, S5 = U00

con la quale si produce direttamente Puscita quando Fingresso vale 1.


8. 7 Dalla tabella delle transizioni di stato codificato alla tabella delle eccirttzioni 265

0 l
S1 S3 /01 s2 /10
S‘) 54/00 54/11
s3 34/00 /
S4 10
s4 s4 /10 s, /11
s5 31/00 s1 /00

Figura 8.21 Esempio per la codifica dello stato in base all’uscita

È interessante osservare che la codifica dello stato potrebbe essere ottenuta anche
per concatenamento delle uscite; questa politica di codifica, applicabile quando
le uscite non sono eccessivamente numerose, permette di ricavare direttamente
Fuscita dallo stato oltre a essere semplice e, in molti casi, priva di bit aggiuntivi
per garantire Funicità. Nell’esempio di Figura 8.21 la codifica dello stato ottenuta
attraverso questa politica di codifica è

S1 = U110, S2 '= U011, S3 = U010, S4 = 1'311, S5 = ÙUÙÙ.

In ultimo, alcune osservazioni conclusive. In primo luogo, tutte le considerazio-


ni fatte sono valide solo se Padiacenza non viene modificata; questo e possibile
solo facendo uso di elementi di tipo D (in tutti gli altri casi Peffetto della trasfor-
mazione può stravolgere completamente Padiacenza). Sebbene possa sembrare
limitarne, di fatto non lo è se si considera che tali elementi di memoria sono
quelli generalmente utilizzati.
Infine, è stato detto in precedenza che i criteri di assegnamento dello stato propo-
sti sono validi solo per codifiche a numero minimo di bit e che, in genere, Fuso
del Codice one—h0t produce reti combinatorie particolarmente semplici a discapito
delfarea dedicata agli elementi di memoria. Quello che rimane apparentemente
strano è come sia possibile che un codice che non massimizzi Padiacenza del nu-
mero di l sia così efficiente dal punto di vista del costo. La ragione è da ricercarsi
anche ne] fatto che un codice one-hot su n. bit utilizza n. configurazioni sulle 2”‘
possibili. Ne consegue che esistono molti gradi di libertà distribuiti in modo

abbastanza uniforme che la procedura di sintesi può utilizzare per minimizzare


il costo della implementazione.

8.7 Dalla tabella delle transizioni di stato codificato


alla tabella delle eccitazioni
La tabella delle transizioni dello stato codificato (nel seguito indicata con tabella
delle transizioni) descrive le funzioni che riguardano sia lo stato futuro che I’u—
266 Sintesi delle nzacchine a sratifinitr’

scita. Per quanto riguarda quesfultima, l’associazione tra la coppia (stato attuale;
ingresso) e Fuscita ‘e indipendente dal tempo e si riferisce a informazioni relative
allo stesso istante temporale; per queste due ragioni 1a tabella delle transizioni,
in riferimento all’uscita, è la rappresentazione di una funzione combinatoria. Se
si considera, invece, Fassociazione tra stato corrente e ingresso con lo stato futu-
ro risulta evidente che tale relazione e indipendente dal tempo ma non riguarda
elementi che appartengono allo stesso istante temporale; quindi, la componente
della tabella delle transizioni relativa allo stato non è una funzione combinato-
‘ ria. Pertanto, il problema della sintesi delia funzione stato prossimo si riduce a
riportare alristante corrente le informazioni relative alfistante futuro.
La traslazione temporale è effettuata utilizzando le tabelle di eccitazione degli
elementi di memoria. Ricordando che queste ultime precisano quale configu-
razione di ingresso debba essere applicata alfelemento di memoria all'istante t
per ottenere un dato passaggio di stato, la trasformazione avviene sostituendo a
ogni bit dello stato futuro le configurazioni di ingresso che devono essere applica-
te all’elernento di memoria (allîstante corrente) per ottenere quel cambiamento.
Il risultato è una nuova tabella, detta tabella delle eccitazioni degli elementi di
memoria (in breve, tabella delle eccitazioni), che mette in relazione informazio-
ni relative al medesimo istante di tempo e che descrive un problema puramente
combinatorio al quale sono applicabili le procedure di sintesi note.
La trasformazione richiede di scegliere quali elementi di memoria utilizzare,
tenendo presente che non è necessario che siano tutti dello stesso tipo.
Per mostrare come la trasformazione descritta venga applicata si consideri l’e-
sempio di Figura 8.22 nel quale è riportata la tabella delle transizioni (a) e le due
tabelle che da quesîìultima possono essere scorporate: 1a tabella che si riferisce
all’uscita (b) e quella relativa allo stato futuro (c).

Tabella completa Tabella delfuscita Tabella dello stato


O 1 0 l 0 1

000 010/01 001/10 000 01 10 000 010 001


001 011/00 011/11 001 00 11 001 O11 01]
010 011/00 011/10 010 00 10 010 011 011
011 011/10 110/11 011 10 11 011 011 110
100 /
000 00 /
000 00 100 00 00 100 000 000

(a) (b) (c)

Figura 8.22 Decomposizione della tabella delle transizioni di stato

Considerando solo la tabella relativa allo stato futuro e scegliendo un fiip-fiop di


tipo SR, la trasformazione avviene sostituendo ogni bit dello stato futuro con le
8.8 Riepilogo 267

Tabella dello stato Eccitazìoni SR Tabella delle eccitazioni


0 1 0 1

000 010 001 Q: Qt+ 5 R 000 0- 10 0- 0- 0- 10


001 011 011 g ‘I’ ‘l’ E 001 0- 10 «0 0- 10 -0
010 011 U11 1 e o I 010 Ù- -0 10 0- -0 10
O11 011 110 1 1 _ o O11 0- -O -O 10 -0 01
100 000 000 100 01 0- 0* 0- 0- 0-

Figura 8.23 Costruzione della tabella delle eccitazioni

configurazioni che S‘ e R devono assumere per produrre la transizione desidera-


ta (Figura 8.23). Ad esempio, lo stato presente O00 deve divenire 010 quando
Pingresso è 1. Analizzando ogni singolo bit si nota che:

o il bit più significativo dello stato presente (O) deve rimanere immutato (0);
questo implica che S [} e R =—. Questi due valori sostituiscono il bit 0
=

dello stato futuro;

o il bit centrale dello stato presente (0) deve cambiare in l; ciò implica che
5' = l e R 0. Questi due valori sostituiscono il bit l dello stato futuro;
=

o il bit significativo dello stato presente (0) deve rimanere immutato


meno
(D); questo implica che .5‘ = D e R ————. Questi due valori sostituiscono il
bit meno significativo 0 dello stato futuro.

Procedendo in questo modo si ottiene la descrizione della rete combinatoria che


ha per ingressi lo stato presente e l'ingresso primario e produce in uscita le
configurazioni da applicare ai bistabili per produrre le transizioni desiderate.
Si osservi, infine, che nella tabella delle eccitazioni del fiip-fiop D il valore as-
sunto dallîngresso D è uguale a quello di QÉH; per questa ragione tabella delle
transizioni coincide esattamente con la tabella dello stato codificata.

8.8 Riepilogo
A partire dalla specifica informale del sistema che si desidera realizzare i passi
che è necessario effettuare sono i seguenti:

o identificazione di uno stato di partenza;

o definizione del diagramma dello stato della macchina sequenziale sincrona


secondo il modello di Mealy o di Moore;
268 Sintesi delle ntacchine a stati finiti

estrazione della tabella degii stati a partire dal diagramma dello stato;

codifica dello stato in base ad una delle politiche discusse;

selezione del tipo di bistabile;

o Costruzione della tabella delle eccitazioni a partire dalla tabella delle


transizioni di stato codificato.

Quesfultirna tabella costituisce il punto di partenza per effettuare la sintesi delle


reti cornbinatorie che realizzano la funzione stato prossimo e funzione d’uscita,
applicando le tecniche viste nel Capitolo 4. Inoltre, poiché spesso se il proble-
ma è complesso il diagramma di transizione dello stato a cui si perviene include
degli stati ridondanti o equivalenti, prima di procedere alla codifica dello stato e
alle successive fasi si effettua unhttimizzazione degli stati, al fine di ridurre la
macchina sequenziale sincrona: di questo si occupa il capitolo seguente.

Esercizi risolti
Esercizio 8.1 Data la seguente specifica informale: “Si realizzi un sistema, costituito da
due ingressi (A e B) e una uscita Z, che segnala quando il numero degli I contati è
complessivamente è 5 o 6: riconosciuta questa condizione si ricominci il conteggio.”
Si identifichino il grafo delle transizioni dello stato, la tabella delle transizioni dello
stato simbolico, si codifichi lo stato utilizzando il criterio basato sulle priorità (minima
distanza delle transizioni pesato) e si realizzi la tabella delle eccitazioni scegliendo,
come elementi di memoria, dei fiip-flop T.
Soluzione. Lo stato iniziale è quello da cui inizia il conteggio. A partire da que-
sfiultirno, si analizzano, in primo luogo, le sequenze di interesse. Queste ultime sono
indicate nel modo seguente: la presenza di uno o due l incrementa il conteggio fino
a raggiungere gli stati che sono rappresentativi della storia “tre l” (S3) e “quattro 1”
(S4). Da questi ultimi si torna poi alforigine (S0), ponendo Puscita ad 1, nei seguenti
casi: se ci si trova in S3 e la configurazione di ingesst) e 11, oppure è stato raggiunto
S4 è Fingresso ‘e 1 1 o 10 oppure Ol. Il grafo delle transizioni dello stato, completato
dagli auto-anelli dovuto alfingresso O0, è riportato nella figura a pagina seguente.
Dal grafo di transizione dello stato si ricava la tabella delle transizioni dello stato sim-
bolico riportata di seguito. Dalla analisi di quesfiultjma tabella si ricavano le direttive
di codifica dello stato. Ad esempio, Funica direttiva ad alta priorità è quella della
coppia (S3; S4) poiché è Funica ad avere gli stessi stati futuri per uno stesso ingresso
(1 l). Sempre come esempio, analizzando lo stato corrente So si ottengono le direttive
a media priorità (So: S1) ed (S1; S2) di media forza e (52:61)) di forza debole; ciò
è dovuto al fatto che gli ingressi che portano nei due stati futuri sono a distanza di
l-Iarnming pari a due ( l 1 e O0). Si osservi che per ricavare le direttive di media priorità
si devono analizzare le coppie di stati per tutte le possibili configurazioni di ingresso
(per ogni stato corrente sono 3! z 3 2 - =6).
8.8 Esercizi 269

G030

OD 01 1D il
5g 50/0 51/0 51/0 52/0
S1 51/0 52/0 52/0 53/0
S2 ‘rg/Ù 83/0 53/0
53 53/0 5.1/0 54/0 50/1
S4 34/0 50/1 50/1 50/1

alta (6) media. (4) media (3) bassa (1)


stati 1h’ stati 1h’ stati 31:1’ stati M
(S584) 1 (51351) 2 (30992) 1 (50:51) 4
(SmSg) 3 (50253) 1 (Sugsg) 4
(51:52) 3 (50254) 1 (50353) 3
(52ì53) 3 (51ì53) 1 (50:54) 1

(5354) 3 (52.354) 1 (51252) 4


(51393) 3
(51:54) 1
(52:53) 3
(52:54) 1

(53:53) 1

A partire dal grafo deìle adiacenze pesata (pagina seguente, in alto) si codifica lo stato
usando Peuristica greedy proposta. L’ algoritmo posiziona, su una mappa di Kamaugh
a 3 variabili, per prima la coppia legata dalFareo di peso maggiore, cioè (S4, S3) con
peso 19 (passo 1).
270 Sintesi delle macchine a stazifinìti

40,1

O0 S4 S3

O1

11

lO

Passo 1

Al passo successivo (passo 2), considerando i pesi complessivi degli stati S3 e S4 ri-
spetto agli stati non ancora posizionati, si sceglie S3 che risulta essere lo stato che
impone maggiori vincoli (peso 27 rispetto a 21 di S4): tra gli stati non ancora posi-
zionati e connessi a S3 quelio con arco di peso maggiore è S; e, dunque, si procede a1
suo posizionamento sulla mappa mettendolo adiacente a S3 e eliminando Parco (S2;
S4) che non può essere più rispettato.

€10,32 o i
00 54 S3

01 S2

il
10

Passo 2

Di seguito si piazza S0 (passo 3) poiché è legato contemporaneamente a S4 e S2 con


un peso totale di 23 contro un peso di 17 di S1 con adiacenza a S2 e S4. Si osservi
che S0 potrebbe essere anche adiacente a S3 ma il peso è solo di 6 poiché le due
8.8 Esercizi 271

direttive (S9; S2)e (Sa; S 4) non possono essere rispettate. Infine (passo 4) si colloca
S1 adiacente a S2 (peso maggiore). Come evidente dalla mappa finale, tutte le altre
direttive non possono essere rispettate.

Q2
G04 0 I
00 S4 S3

O1 S0 S2

11

10

‘la? 0 1

54 S1 O0 S4 S3

01 So S;

11

I0
S3 S2

Passo 4

Attraverso la codifica ottenuta — con un costo di 71 su un di massimo di 100 si


——

trasforma la tabella delle transizioni dello stato simbolico nella tabella delle transizioni
dello stato codificato. Uultima trasformazione è quella che traduce la tabella ottenuta
nella corrispondente tabella delle eccitazioni. H fiip-flop da utilizzare è di tipo T.
Il passaggio avviene convertendo le transizioni di stato nei segnali che devono essere
forniti ai fiip-flop per ottenere il cambiamento desiderato. Per esempio, il passaggio da
O10 a 1 l l (per Fìngresso 01) avviene ponendo T2 = 1, T] = U e T3 = l, considerando
T3 associato al bit meno significativo dello stato.

00 01 10 ll OD 01 10 11
U10 010/0 111/0 111/0 011/0 010 000/0 101/D 001/0
101x0
111 111/0 011/0 011/0 001/0 111 000/0 100/0 100x0 110/0
U11 011/0 001/0 001/0 000/0 O11 000/0 010/0 010/0 011/0
001 001/0 000/0 000/0 010/1 O01 000/0 001/0 001/0 011/1
000 000/0 010/1 010/1 010/1 O00 000/0 010/1 010/1 010/1
Tabella dello stato codificato Tabella delle eeeitazionì
272 Sintesi dette macchine a stari/inizi

Esercizio 8.2 Sia data la seguente specifica informale: “Si realizzi‘ un sistema, costituito
da un ingresso A e una ziscita Z, che segnala se si è presentata una sequenza Costituita
da un numero pari di 0 (almeno 2) e renninata da un 1 ”. Si identifichino il grafo delle
îransizionì dello stato e la tabella delle transizioni dello stato simbolico, si codifichi 1o
stato utilizzando il criterio basato sulle priorità e si realizzi la tabella delle eccitazioni
scegliendo, come elementi di memoria, dei flip-fiop JK.
Soluzione. L0 stato iniziale è quello nel quale si attende un primo O e nel quale si
permane se continuano ad ami/rare 1. A partire dallo stato di partenza il grafo delle
transizioni evolve, seguendo le sequenze utili, per due 0 consecutivi ed un l ; quando
quesfuitimo è identificato Fuscita va ad l e si torna nello stato iniziale.

0/0 0/0

‘@1939 1/1

Il grafo tracciatodeve esser completato tracciando un arco da S1 per Pingresso 1


e un arcoda S2 per Fingresso 0. Barco da S1 termina in So con uscita 0 poiché
l'1 interrompe la sequenza ed è necessario ricorninciaie. L’arco da S2, invece, deve
tenninare su S1 con uscita 0; infatti, uno 0 da S2 rende dispari i] numero di O rilevati
rendendo necessario uno 0 aggiuntivo. Il grafo delle transizioni di stato completo è:

Dal grafo di transizione si ricava la tabella delle transizioni dello stato simbolico:

o l
S11 51/0 311/0
s1 511/0 51/0
s1 51/0 311/1

DalFanalisi di quesfultima tabella si ricavano le direttive, riportate alla pagina se-


guente, che suggeriscono la codifica degli stati S11 = 00, S1 10 e S2 x D1. Attra-
=

verso quesfultima mappa di codifica si ricava 1a tabella della transizione dello stato
codificato e la successiva tabella delle eccitazioni.
8.8 Esercizi 273

alta (6) bassa (l) 31

stati I»! stati 1M q 91 o 1


0
(50:52) 2 (50151) 2 _/ \ S, S,
(so: S?) 1 1/8452 4+l\_\ 0 O 2

medîafil) (31:32) 1 1 S1
stati i'm’ b“ S?

(30551) 2
(51552) 1

g 0 l O l
00 10/0 00/0 00 1» 0—/0 0- 0—/0
10 01/0 10/0 10 —11—/0 -0 0-/0
01 10/0 00/1 01 1- -1/0 0— —1/1

Tabella dello stato codificato Tabella delle eccitazioni

Per semplicità, si applichi il criterio di minimizzazione per singole funzioni basato


sulle mappe di Karnaugh. La tabella delie eccitazioni incorpora 5 funzioni scalari che
dipendono sia dai bit di stato presente ql e go che dalFingTesso x; a partire dal valore
più a sinistra, queste si riferiscono agli ingressi ,11 e K1 del flip-fiop che memorizza il
bit più significativo dello stato (FP1), agli ingressi Jg e K}; del flip-fiop che memorizza
il bit meno significativo dello stato (FPO) e, infine, alFuscita z.

cc

Q1, 1} 1 (11.1 o 1 €11. o 1 (il. 0 1 G1, U 1


{"5 fîfl Î

0G l 0 00 — —- O0 O 0 O0 — — 00 0 O

01 1 0 01 — — 01 — — 01 1 1 01 0 m
11 — — 11 — — 11 H — 11 — — 11 — 1;}
10 Q — 10 L) 0 i0 m 0 1D L; 1D O Ù

«I1 K1 Jn Kg Z

Ne risultano le seguenti funzioni:

J} = CC’ K’; = I’ Ju = qyî?! K3 = l. Z = qgii.‘

Esercizio 8.3 Sì consideri la seguente specifica informale: “Si realizzi 1m mrrosisrema


di controllo per i! cambio sequenziale delle marce, residente nei ‘L-‘Oianîe, che ha ii
Compito di trasmettere ad 1m altro sottosistema, adiacente ai motore e che si acca-
pa dei cambio di rapporto automatico, la marcia che il pilota desidera inserire. Il
274 Sintesi delle ntacchine a stati finiti

sistema riceve il comando dal pilota di aumentare o ridurre il rapporto e restituisce


tale valore al sottosistema di cambio automatico. Considerando che ogni passaggio
di nmrcia modifica il numero di giri di 1000 unità, il sistema deve impedire che que-
sfultimo superi 6000 e scenda sono i000 per evitare sia un pericoloso fiior-i gin’ che
un danno da numem di giri insufirciente {come lo spegnimento non voluto o contrac-
colpi sul sistema meccanico)" Si ìdentifichino il grafo delle transizioni dello stato e
la tabella delle transizioni dello stato simbolico e si codifichi lo stato in tutti i modi
noti. Successivamente si utilizzi la codifica guidata dalle uscite e si realizzi la tabella
delle eccitazioni per fiip-flop di tipo D.
Soluzione. Innanzitutto la specifica deve essere rivista per eliminare le informazio-
ni ridondanti e rendere evidenti quelle implicite; se la specifica risulta incompleta, la
definizione dei dettagli mancanti deve essere fatta in accordo con il committente. Ad
esempio, quante marce ha il veicolo? Supponiamo che la risposta sia 4 (5 compresa
la posizione di riposo). Innanzi tutto, chiarito lo scopo del sottosistema da realizzare
(questo soddisfa la curiosità del progettista ed aiuta la comprensione del progetto),
tutti i dettagli che riguardano questo aspetto possono essere eliminati. Successiva-
mente, la specifica viene raffinata aggiungendo le informazioni esplicite di rilevo per
il progetto come la sequenzialità (non si può saltare da un valore ad uno che non gli
è adiacente) e Pingresso ausiliario per controllo della accettabilità del comando. In
particolare se il numero di giri previsto supera la soglia superiore si deve impedire che
la marcia diminuisca mentre si deve rendere impossibile Faumento nel caso contrario.
Il risultato è la seguente nuova specifica:
“Il sottosistema ha due ingressi X = [I1 33g] f due bit) e y ( un bit) ed una uscita
Z = [32 2:1 20] (3 bit). Lîtscita Z può assumere un valore in [000g 100] dove 000
indica Passenza di marcia; Z cambia solo se: aumento di marcia per y =1 e
X = [1 D] (fino a 100) oppure diminuzione di rapporto (fino a O00) per y = 0
e X = [D l} mentre X = [0 0] indica l ìzssenza di azione. y = 1 se il valore
corrente del numero di giri è maggiore di 2000 e y = 0 Se è minore di 5000.”

La nuova descrizione del problema evidenzia tre aspetti. In primo luogo che deve
essere prevista una rete combinatorìa che efifettua il confronto tra i valori di soglia
(opportunamente codificati) ed il valore del numero di giri corrente. Questa parte del
sottosistema è trattata separatamente e restituisce 0 se il valore è superiore a 2000 (si
può scalare) e 1 se il numero di giri rilevato è inferiore a 5000 (si può accelerare). In
secondo luogo. si osserva che il modello ragionevolmente più adatto è quello di Moore
poiché è naturale associare allo stato la condizione in cui si trova il sistema motore.
Infine, ogni cambiamento deve prevedere che si passi dalla configurazione X = [U U];
quesfiultimo ‘e un aspetto implicito della specifica e significa che la pressione del tasto
di cambio marcia consente un solo cambiamento (e non più consecutivi e non predici-
bili per il pilota). Quindi, alla luce di questi due nuovi aspetti, la specifica può essere
riscritta nel modo seguente:
8.8 Esercizi 275

“Il sottosistema, il cui modello è di Muore, ha due ingressi X = [x1 330] e y ed


una uscita Z = [zg 2:1 2g] {3 bit}. L'uscita Z può assumere un valore in [Ùfifig 100]
dove 000 lfldiflfl l îaursenza di marcia; Z cambia solo tre X = [0 l] o X : [1 D}. In
particolare aumenta (fino a l 00) quando Y = l e X passa da [U D] a [l DI mentre
diminuisce [fino a 000) quando Y = O e X passa da OD a O1; in tutti gli altri casi
Z non crambia.”
Benché ci siano altri problemi ancora da risolvere (come, ad esempio, cosa accade
quando la macchina si ferma, l'effetto di una frenata o cosa avviene alla partenza e
quant’ altro sia legato alla velocità), supponiamo che il problema sia sufficientemen-
te completo (altri aspetti lo cornplicherebbero eccessivamente) e che sia focalizzato
sulla condizione di regime. Si osservi che se quesfultirna considerazione risultasse
inaccettabile sarebbe quantomeno necessario risistemare le specifiche per trattate gli
effetti transitori. La prima considerazione riguarda lo stato di reset che, naturalmente,
è quello in cui nessuna marcia e stata inserita (So con uscita 000). A partire dallo stato
iniziale si struttura il modello percorrendo le sequenze di interesse analizzando, prima
il problema delFaurrlento di marcia e poi quello del decremento. Il risultato è riportato
nella figura seguente in cui gli ingressi sugli archi sono rdinati come 271 , 2:9 e y.

Successivamente. si completa macchina specificando le transizioni per gli ingressi che


non appartengono alle sequenze di interesse. Ad esempio, dallo stato So e prevista la
transizione di interesse per 1a sola configurazione 101. Ne consegue che per ogni in-
gresso che inizia con l} non si prevede alcun cambiamento di stato ({)——) così come
non sono previsti cambiamenti di marcia per gli ingressi che iniziano con 11 (l1—)
poiché non generati dalPambìente {sono configurazioni non controllanti); inoltre, poi-
ché Funico ingresso valido è 101, le configurazioni da aggiungere alPauto-anello so-
no 100 e 101, cioè 10-. Applicando questa procedura per tutti gli stati si ottiene il
risultato seguente.

A partire dal grafo delle transizioni di stato si ricava la tabeìla delle transizioni di stato
codificato, riportata a pagina seguente in alto. I simboli di in gnesso sono dati dai bit
[Il 117g y] presi in quesfiotdine. La codifica dello stato può seguire uno qualunque dei
criteri visti.
276 Sintesi delle macchine a stari finiti

U00 U0] OlÙ Ùll 100 101 H0 lll Z

So 5o 5o 3o 5o 3o 5.1 - — ÙÙÙ

S1 S2 52 So S1 S1 S1 — — 001
S2 S1 31 S2 S2 S2 S3 »— — 001
53 34 3-1 52 53 S3 53 — -- 019
S4 S3 S3 S4 S4 S4 S5 - — 010
S5 5.3 Se S4 S5 S5 S5 - — 011
Se S5 S5 S3 Se S5 S7 — — 011
S7 S7 S7 S5 S7 S7 S7 - — 100

Tabella delle transizioni di stato codificato

Mìmima distanza delle transizioni. Poiché gli stati sono adiacenti a coppie la codifica
suggerita per minimizzare la cifra di merito è quella di Gray.

Ehi passo 1 passo 2 C


(2) So H S1 ÙÙU <—* 001 2 — l
(2) S1 +—' S2 OÙI 4-? 01]. 2 v l
(2) s2 H s3 011 «—» 010 2 - 1

(2) S3 <—> S4 01D +——> 110 2 — 1

(2) S4 H S5 110 H. 111 2 - 1

(2) 5 +4 S5 11]. ‘—ì 1D]. 2 - 1

(2) Se *—'r S7 101 4—> O00 2 - l


6111,70? = 14

Mimina distanza delle transizioni pesata. Ad alta priorità (peso 6) sono le coppie
seguenti, tutte con molteplicità pari a due: (30,51), (SggSg), (54:55), (fiiagSy).
Il peso di ogni direttiva è 2 6 12. Le coppie: (SmSI). (85:87) han-
- =

no molteplìcìtà 2 per la direttiva di forza media (peso 4) e molteplicità 1 per la


direttiva di forza debole (peso 3). Complessivamente tali direttive hanno peso
2 4 + 1 3
- - = 11. Le coppie con fama media (peso 4) e molteplicità 2 sono:
(32,53), (S585) e danno un peso totale pari a 2cd0t4 = 8, mentfe le coppie:
(SmSl). (51:53), (52:34), (33,85), (54:35), (515597) hanno priorità media
e forza debole (peso 3) con molteplicità 1, con peso totale 3 "l 3. Infine, a - =

bassa priorità (peso l) si hanno le coppie con molteplicità 1 e peso 1 1 z "l: —

(S1; S2), (S3; S4), (S5: ,95). Il grafo delle adiacenze è il seguente:
So
12 ll
+///*\“1=,H
,

S1 S7
9C v
8.8 Esercizi 277

Sì applichi l’ algoritmo euristico greedy. La prima coppia posizionata sulla mappa di


Karnaugh a tre variabiìi è la coppia (Sa; S1) (scelta arbitraxia tra (50; S1) e (S5; 57))
a cui segue lo stato S2 e Teliminazione delfarco (S1; S2) che non potrà mai essere
rispettato. In seguito, si posiziona lo stato S3 poiché localmente massimizza il peso
delle direttive soddisfatte (20 da S2 e 3 da S1) ottenendo:

1'200 01 il IO
9o

0 50 S2

1 S1 S3

A questo punto si posiziona sulla mappa o S4 adiacente a S2 oppure S5 vicino a S3;


infatti, per entrambi il peso e 3 ed e i1 massimo che è possibile fare allo stato attuale.
Si osservi che qualunque sia la scelta, lo stato da posizionare successivamente è S5 o
S41 dato che questi soddisfano al meglio il criterio indicato.

Q1200 01 11 10

Infine, si posiziona 1a coppia (S5; S7) partendo indifferentemente dal primo o dal
secondo ottenendo la soluzione finale riportata nella figura seguente.

Q
9o
“a0 01 n 10

Codifica guidata daHe uscire. Aggiungendo un bit alle configurazioni di uscita con
il fine di
rendere univoca la codifica si può ottenere il risultato mostrato nella figu-
ra seguente. Si osservi che Puscita non richiede di essere sintetizzata ed e estratta
direttamente dallo stato.
278 Sintesi delle macchine a stari finiti

stato bit aggiuntivo uscita codifica


S0 0 000 Sa = 0000
S1 0 001 S1 = 0001
S2 1 001 S2 = 1001
S3 0 010 S3 = 0010
S4 1 010 S4 = 1010
S5 0 011 S5 = 0011
s6 1 011 se = 1011
S7 0 100 S7 = 0100

Sulla base di quesfuîtima codifica dello stato si ottiene la seguente tabella delle
transizioni. Dovendo scegliere dei fiip-flop D, quesfiultima è anche la tabella deile
eccitazioni. Come nella tabella dello stato simbolico, gli ingressi sono {x1 22g 3;].

000 001 010 011 100 101 ll0 lll z

0000 0000 0000 0000 0000 0000 0001 — — 000


0001 1001 1001 0000 0001 0001 0001 —- - 001
1001 0001 0001 1001 1001 1001 0010 - - 001
0010 1010 1010 1001 0010 0010 0010 —— — 010
1010 0010 0010 1010 1010 1010 0011 — — 010
0011 1011 1011 1010 0011 0011 0011 — — 011
1011 0011 0011 1011 1011 1011 0100 — — 011
0100 0100 0100 1011 0100 0100 0100 -— — 100

Esercizi proposti
Esercizio 8.1 Si realizzi il diagramma degli stati della macchina che realizza la seguente
specifica: La macchina ha due ingressi (€81,32) e una uscita z che inizialmente ha
valore 0. Ogniqualvolta si presenta la condizione x1 1:3 =0 Fuscita commuta,
=

mentre viene messa a 0 quando 9:1 x2 = 1 indipendentemente dal valore assunto


=

alfistante precedente. In tutti gli altri casi il valore delPuscita non cambia.
Esercizio 8.2 Si realizzi il diagramma degli stati della macchina che realizza la seguente
specifica: La macchina ha un ingresso a: e una uscita z, inizialmente a valore 0. Ogni-
qualvolta si presenta la configurazione dîngresso n: 0 e seguita da a: = 1 Fuscita
=

commuta e mantiene tale valore per due cicli di clock per poi tomate al valore cha
aveva, indipendentemente dal Valore assunto dalfingresso. Quando invece la configu-
razione dîngresso a: = 1 è seguita da x = 1 Fuscita commuta. In tutti gli altii casi il
valore delfuscita non cambia.
Esercizio 8.3 Si realizzi il diagramma degli stati della macchina che realizza la seguente
specifica: La macchina ha un ingresso z e una uscita z e riconosce le sequenze 0101 e
0110. Ad ogni riconoscimento Puscita che normalmente vale 0, assume valore 1. Le
sequenze non devono essere sovrapposte.
8.8 Esercizi 279

Esercizio 8.4 Si realizzi il diagramma degli stati della macchina che realizza la seguente
specifica: La macchina ha un ingresso cc e una uscita z e riconosce una sequenza
costituita da almeno un 1 seguito da un numero pari di 0 (almeno 2) e da esattamente
un 1. Ad ogni riconoscimento Fuscita che normalmente vale O, assume valore 1. Le
sequenze possono essere sovrapposte.

Le soluzioni degii esercizi proposti sono disponibili nel booksite:


httpzl/wwwapogeonIinecozn/iibrì/88-503-2229-1ischeda.
Ottimizzazione delle
i macchine a stati finiti
Contenuto

9.1 Introduzione
9.2 Macchine completamente specificate
9.3 Macchine non completamente specificate
Esercizi

Il passo di trasformazione di una descrizione in un equivalente diagramma degli


stati è una attività intellettuale che richiede esperienza sensibilità nei confronti
del problema e accuratezza. Sebbene questi ultimi aspetti siano di particolare ri-
lievo per produrre una descrizione comportamentale aderente alte specifiche, può
accadere che la complessità del problema impedisca di produrre una descrizio-
ne priva di ridondanze. Per sollevare ii progettista dalfincarico di identificare
direttamente una soluzione ottimizzata, si ricorre a tecniche automatiche di eli-
minazione delle possibili ridondanze. Obiettivo di questo capitolo è, appunto,
quello di presentare le tecniche di ottimizzazione utilizzate in questo ambito.

9.1 Introduzione
l passi della sintesi di una macchina sequenziale sincrona sono scanditi dalla ge-
nerazione di 3 successive rappresentazioni, come mostrato nei Capitolo 8: la ta-
bella degli stati, la tabella delle transizioni e, infine, la tabella delle eccitazìoni.
Prima però di procedere con la fase di codifica dello stato è opportuno introdurre
una fase di ottimizzazione il cui scopo è eliminare qualsiasi stato ridondante in-
trodotto nella fase di prima stesura del diagramma di stato. Tale ottimizzazione
introduce un’ulteriore rappresentazione: la tabella degli stati ridotta, che diventa
il punto di partenza per la fase di codifica dello stato. Il passaggio da una rappre-
sentazione alla successiva consiste nelfoperare ogni volta una specifica fase di
sintesi o ottimizzazione ovvero: l'ottimizzazione del numero degli stati nel pas-
saggio dalla tabella degli stati a quella ridotta, la codifica dello stato nel passag-
gio dalla tabella degli stati ridotta alla tabella delle transizioni e l'identificazione
dei segnali da applicare ai bistabili nel passaggio dalia tabella delle transizioni a
quella delle eccitazioni.
282 Ottimizzazione deile macchine a sîaîifiitiîi

Una rappresentazione in termini di diagramma degli stati (o di tabella degli stati)


non ottimizzata può presentare uno 0 più stati che non sono necessari per descri-
vere il comportamento desiderato. Per meglio comprendere questa affermazione
si osservi che il punto di osservabilità di una macchina sequenziale sincrona è
dato dalle uscite. Focalizzando Fattenzione su questo aspetto, e non su stati e
transizioni che la compongono, si intuisce come sia plausibile avere due macchi-
ne equivalenti dal punto di vista del comportamento se, le due macchine, a partire
da un identico stato di partenza, presentano una identica sequenza di uscita per
ogni qualsiasi sequenza di ingresso. Quanto affermato è chiarito dalresempio
riportato in Figura 9.1. i

U0

Figura 9.1 Descrizione, in termini di diagramma degli stati, di un FF di tipo T

I1 comportamento descritto è quello di una macchina sequenziale che inverte il


valore delPuscìta ad ogni colpo di clock quando Fingresso è i (il comportamen-
to è quello di un bistabiîe di tipo T). Una descrizione equivaiente è riportata in
Figura 9.2 dove è possibile aggiungere un qualsivogìia numero di coppie di stati
senza violare le specifiche.

Figura 9.2 Macchina che ha il medesimo comportamento di quella di Figura 9.1


9.2 Macchine completamente specificate 283

In generale, ed in particolare per quanto riguarda Fesempio proposto, esistono


infinite macchine che si comportano nello stesso modo.
Sebbene in alcuni casi sia possibile identificare la ridondanza‘ e porvi rimedio
senza ricorrere ad alcun metodo rigoroso, è impensabile applicare la pura in-
tuizione e capacità di osservazione a tutto il sistema se si tiene in conto che la
cardinalità delfinsierne degli stati può assumere un valore anche molto elevato.
Il costo superfluo reiativo a ciascuno stato ridondante è imputabile a due fattori:
(i) il numero degli elementi di memoria dipende dal numero degli stati;

(ii) Pinsieme dei gradi di libertà (don’t care set, o insieme delie condizioni di
indifferenza) disponibile nella sintesi delle reti combinatorie associate alla
macchina sequenziale da sintetizzare dipende dal numero degli stati.
La prima causa è evidente poiché, tranne che per alcune applicazioni particolari
(per esempio, la tolleranza al guasto o la rilevazione concorrente dell’errore),
il numero degli elementi di memoria e compreso tra logg |S| e |Sf in base alla
codifica adottata dove [S è la cardinalità dellînsierne degli stati.
Il secondo motivo, invece, è meno immediato ma può essere giustificato intuiti-
vamente. Le funzioni stato prossimo e uscita dipendono dallo stato e sono ricon-
ducibili a reti combinatorie che, tra gli ingressi, hanno i bit di stato. Ne consegue
che riducendo |S] si può ridurre il numero di bit necessario per rappresentare lo
stato e/o lasciare inutilizzato un numero maggiore di codifiche; questo secondo
effetto aumenta il numero di condizioni di indifferenza producendo una rete di
costo inferiore rispetto a queila che si otterebbe partendo da una descrizione non
priva di ridondanze.

9.2 Macchine completamente specificate


Una macchina sequenziaie di dice completamente specificata se a partire da un
qualunque stato e in corrispondenza di un qualunque simbolo di ingresso è sem-
pre definito lo stato successivo e il simbolo di uscita. Questo consiste nell’avere
grafi dello stato nei quali sono presenti tutte le transizioni e le uscite sono tute
specificate, tabelle delle transizioni degli stati in forma simbolica che non presen-
tano alcuna condizione di indifferenza e, infine, il dominio della funzione À che
coincide con S >< 2t’ e il dominio della la funzione 6 che coincide con S >< 2t,’ nel
modelio di Mealy (con S nel modello di Moore).
Il processo di identificazione della indistinguibilità di due stati consiste nel verifi-
care se per ogni possibile sequenza di ingresso, le sequenze di uscita prodotte so-

lUno stato è ridondante se eliminando il comportamento della macchina, visto dalle uscite, non ne risente.
284 Onimizzazione delle mucchîrte a sratifiniîi

no identiche. Se questo avviene i due stati sono indistinguibili (o equivalenti) poi-


ché, analizzando l'andamento dalFunico punto di osservabilità della macchina,
non esiste alcun modo per rilevare il fatto che sono differenti.
In modo più formale, il concetto di indistinguibilita (0 equivalenza) si può
esprimere nel modo seguente.

Definizione 9.1 Sia X = {fh 5g, . . . jp} un alfabeto di ingressofiniro, si indica


con R” FÎÎÎSÎEÎÎÎÉ di tutte le sequenze gel/terribili con i s'imb0!i di A? compresa
la sequenza nulla e e con y E 96”’ una generica sequenza di ingresso. F3

Definizione 9.2 Si definisce 6* (y, ai) fa sequenza delle uscire ottenute applican-
do la sequenza d ‘ingresso y E 95* a partire dalla siate ai. ÌÎÌ

Definizione 9.3 Due stari or; e 03,- sono indìstinguibìli Se e solo se 6*(y, ai) =
(Îfiy, 03-) V y E Xl‘. lfiindfsfinguibilità gode delle proprietà sia riflessiva (c7,-
è indisringuibile da se stesso) tria simmetrica (se 0',‘ è indistinguibiîe da c73-
allora cri è indistinguibile da cri) U
Si osservi che due stati indistinguibìli sono riconducibili ad un solo stato. Ne
consegue che per determinare una macchina priva di stati ridondanti si potrebbe
utilizzare iterativamente il processo di identificazione della indistìnguihilità: si
identifica una coppia di stati indistinguibili, la si sostituisce con un unico stato
ad essa equivalente e si procede nuovamente aîla analisi della indistinguibilità.
Quindi, il processo di riduzione del numero degli stati potrebbe essere eseguito
applicando alla lettera il concetto di indistinguibilità esposto in precedenza. in
particolare, per scoprire se una coppia di stati può essere sostituita da un unico
stato, basterebbe generare i due alberi (che hanno come radici i due stati in esa-
me) delle sequenze d’uscita prodotte da tutte le possibili sequenze di ingresso
e compararli. Se i due alberi sono sovrapponibili, e solo in questo caso, alîora
i due stati in esame sono indistinguibilì. Sebbene questo procedimento sia in-
tuitivamente semplice, la dimensione (infinita) degli alberi prodotti lo rendono
inapplicabile in pratica.
l] problema può essere risolto in un modo semplice ed elegante se si prende arto
del fatto che non e assolutamente necessario generare gli alberi e confrontarli (e
questo per ogni coppia di stati) poiché questo procedimento fornisce più infor-
mazioni di quante rie servano. In particolare, e possibile analizzare direttamente
Peffetto prodotto da ogni configurazione {Fingresso a partire da ogni coppia di
stati (si noti che non sono sequenze) e, successivamente, determinare come i n'-
sultati individuati localmente interagiscano tra loro. Si analizzi, come esempio
che non lede affatto la generalità, la parte della tabella degli stati riportata di Fi-
gura 9.3. Da quesfiultima si osserva che per la configurazione dîngresso Dl le
9.2 Macchine completamente specificare 285

00 Dl ll

s, 53/000
s5 53/001

Figura 9.3 Coppia di stati non rìducibili

uscite sono distinguibili; di conseguenza anche gli stati presenti (S4 e S5) non
possono essere riuniti per generare un unico stato.
Da questa prima analisi si evince ia seguente condizione operativa: una coppia di
stati e distinguibile quando si rileva una differenza suile uscite per una qualunque
delle possibili configurazioni di ingresso (si osservi nuovamente che non sono
sequenze). Quando, invece, le uscite non presentano alcuna differenza non è
possibile, attualmente, trarre alcuna conclusione.
Il problema che si presenta quando non ci sono differenze sulle uscite si risolve
nel modo seguente: la coppia di stati è distinguibile quando almeno una delle
coppie di stati a cui si rimanda lo è a sua volta.
In sostanza, la soluzione del problema è demandata ad un approfondimento suc-
cessivo che ha l'obiettivo di correlare i risuìtati estratti dalPanalisi fatta conside-
rando tutte le possibili configurazioni di ingresso. In particolare, la di stinguibilità
di una coppia di stati viene prepagata allîndietro cosicché, se una coppia di stati
rimanda ad una coppia di stati distinguibile, anch’essa risulterà tale. Applicando
il processo iterativarnente si giunge alla soluzione.
Si consideri, per esempio, la tabella degli stati di Figura 9.4 corrispondente ad
una macchina sequenziale completamente specificata?

Ù l
50 11/0 52/1
S1 53/0 12;}.
S; 51/0 59/1
S3 53/0 50/E}

Figura 9.4 Esempio di tabella degli stati

Le coppie di stati analizzate e Fìnterazione tra esse è riportata in fFgura ref-


fig:seq:opt:ts2proc dove ogni nodo del grafo contiene la coppia di stati a cui ci
si riferisce mentre ogni arco specifica da quale coppia di stati dipende Findistin-
guìbilità. Come si può osservare dalla tabella degli stati e dal grafo che evidenzia

211 procedimento è indipendente dal fatto che le nlacchinc siano o meno completamente specificate. Quanto
riportato, quindi, ha validità generale.
286 Ottimizzazione delle rrzacchine a Stati finiti

le interazioni tra coppie di stati (Figura 9.5), denominato grafo delle implicazio-
ni, le coppie distinguibili dopo Fanalisi locale sono (So; S3), (S1; S3) e (S2; S3)
poiché, per la configurazione {Fingresso l, le uscite sono differenti; per tutte le
altre coppie non si hanno informazioni dirette se non, rimarcando il concetto, che
la distinguibilità dipende da aìtre coppie di stati. Queste ultime sono indicate con
il tennìne di “vincoli di indistinguibilità”. Per esempio, la coppia (S11; S1) è for-
mata da stati localmente indistinguibili (per ingresso 0 le uscite sono entrambe a
O mentre per ingresso 1 uscite sono entrambe ad l) ma la cui indistinguibilità di-

pende anche dalla coppia (S1; S3); si osservi che Faltra coppia, quella identificata
per il simbolo di ingresso 1, si riduce ad un unico stato (S2) e, per questa ragione,
non è un vincolo di indistinguibilità poiché S2 è sicuramente indistinguibile da se
stesso.

(50:52) \

i) L)
Figura 9.5 Grafo dellînterazione tra ogni coppia di stati (grafo delle implicazioni)
estratto dalla tabella degli stati d’ esempio

Facendo riferimento alla Figura 9.5 si può osservare che la distinguibilità del-
la coppia (S1; S3) si propaga anche su (S1; S2) che, di conseguenza, diviene
una coppia di stati distinguibili. Applicando iterativamente la retro-propagazione
delle distinguibilità si giunge al risultato di Figura 9.6.

Figura 9.6 Retro-propagazione delle distinguibilità sul grafo delle implicazioni

Si osservi che quanto ottenuto, passo dopo passo, equivale ad aver implicitamen-
te identificato una qualunque sequenza di ingresso che consente di distinguere
9.2 Macchine completamente specificare 287

uno stato da un altro (ad esempio, S1 da S2). Il concetto appena espresso è di


rilievo se si paragona questo metodo con la generazione e comparazione degli
alberi delle sequenze d’uscita; in particolare, la semplicità della procedura de-
scritta sembra stupefacente. Il motivo di tale differenza di complessità è dovuto
alle informazioni che i due metodi restituiscono. Uapplicazione della definizio-
ne di distinguibilità rileva, infatti, oltre alla condizione in cui si trova una coppia
di stati, anche Finsieme di tutte le sequenze degli ingressi che evidenza questa
situazione. A meno che non sia di interesse saperlo, questa informazione è as-
solutamente irrilevante rispetto al problema in esame; in pratica, non è di alcun
vantaggio sapere “quando" (quale sequenza) ma solo “se”. ln conclusione, le
considerazioni sviluppate portano al seguente teorema:

Teorema 9.1 Due stari a; e 0J- sono indistinguibili se e solo se (K547i) è


indisringuibife da 5%, ai) e ME, 01;) = M5, 05,-); V E E X.
Questo teorema permette di sviluppare il seguente un metodo iterativo su
due passi, denominato metodo di Paull-Unger per le macchine completamente
specificate, che consente di individuare le coppie di stati equivalenti:

Passo i. Due stati sono distinguibili quando per una qualunque configurazione
dfingresso le uscite sono diverse; nel caso le uscite siano uguali a parità
di simbolo di ingresso, si esaminamo le coppie di stati futuri con le
seguenti eccezioni: le coppie di stati futuri che conicidono con gli stati
presenti e le coppie di stati futuri che si riferiscono ad un unico stato.

Presso 2. Due stati sono distinguibili quando una qualunque delle coppie di stati
di stati futuri da esaminare (vincoli di indistinguibilità) è distinguibile.

Si osservi che questo procedimento iterativo elimina tutte le coppie di stati distin-
guibili: ne consegue che le coppie residue saranno necessariamente indistingui-
bili. Con riferimento al grafo delle implicazioni, come quello riportato in Figu-
ra 9.5 e in Figura 9.6, si evince che può essere tradotto in una semplice matrice
triangolare (in virtù della proprietà simmetrica) priva della diagonale principale
(a causa della proprietà riflessiva) in cui gli indici di riga e di colonna sono gli
stati stessi. La relazione tra grafo e matrice (evidenziata dalle frecce tratteggiate
in Figura 9.7) è la seguente:

o un nodo del grafo è identificato da una cella della matrice;

o un arco del grafo è trasposto nel contenuto della cella evitando di indicare
gli auto-anelli (non portano informazione), riportando il simbolo >< nel caso
di distinguibilità e il simbolo m nel caso di indistinguìbilità priva di vincoli.
288 Ottimizzazione delle macchine a stari finiti

.5»; >< i >< i x

ÎÈÎ Î
Figura 9.7 Diagramma delfinterazione tra ogni coppia di stati estratto dalla tabella
degli stati d’esempio e corrispondente tabella delle implicazioni

Su questa matrice, denominata tabella delle implicazioni, è poi possibile appìica-


re la retro-propagazione analogamente a quanto fatto sul grafo, riportando nelle
celle una >< ogni qualvolta si accerti una disîinguibilità (un esempio è riportato in
Figura 9.8).

si
|

O l 52 Sis-Èsgîîî;
Se 54/0 53/0
S1 55/0 So/Ù s3 figfigsasgfigg‘:
s2 54/0 s1 /0 -

S3 82/0 S4 X X X X
34 55/1 50/0 '

55 54/1 So/Ù S5 x >< >< >< N

5g S1 S2 S3 S4

Figura 9.8 Esempio di tabella degli stati con relativa tabella delle implicazioni

Giunti al tennine della fase di identificazione delle coppie di stati distinguibili, si


pone il problema di come comporle per produrre un nuovo insieme di stati: quello
della macchina minima. Procedendo per induzione, si supponga che la macchina
minima abbia lo stato a : {S05 S2} realizzato attraverso i due stati S0 e S2 della
macchina di partenza. Secondo quanto riportato fino ad ora, o: prende il posto
di S0 e S2; in altre parole, a è indistinguibìle da tutti e due gli stati che lo com-
pongono. In altre parole, uno stato della macchina minima deve essere costituito
da stati della macchina di partenza per i quali è verificata la proprietà transitiva
9.2 Macchine completamente specificate 289

rispetto alla indistinguibilità. Per quesfultima ragione risulta che, costruendo un


grafo in cui i nodi sono gli stati di panenza e gli archi sono le relazioni di indi-
stinguibilità (denominato grafo delle equivalenza per ie macchine completamente
specificate), uno stato della nuova macchina coincide con un clique, o sottogru-
fa completo, cioè un sottografo in cui ogni nodo e collegato ad ogni altro‘) di
massima dimensione; il grafo, quindi, è un ottimo strumento per interpretare le
informazioni estratte dall’analisi della indistinguibilità.
Per esempio, nel grafo di Figura 9.9 riferito ad una macchina completamente
specificata, sono evidenti due clique di massima dimensione ognuno dei quali
rappresenta lo stato di una nuova macchina: {Sai S1, S2, S3} e {S4, S5}.

S3 S4
‘A

32%;. ; ìSs
‘, “a.
S1 3g

Figura 9.9 Esempio di grafo delle equivalenze e clique di massima dimensione

Per quanto specificato fino ad ora e indubbio che Findistiuguibilità gode delle
proprietà riflessiva (S; è indistinguibile da se stesso) e simmetrica (se S; è indi-
stinguibile da Sj anche Sj è indistinguibile da Si) indipendentemente dalle ca-
ratteristiche della macchina. Le due proprietà citate, comunque, non giustificano
completamente Finsieme delle caratteristiche topologiche del grafo indotto dalle
relazioni di equivalenza (grafo deile equivalenza). e in particolare, che i clique
individuati sono completamente disgiunti. La ragione di questa caratteristica è
dovuta al fatto che Findistinguibilità nelle macchine completamente specifica-
te gode della proprietà transitiva cioè che se S,- è indistinguibile da Sj e Sj è
ìndistinguibile da Si. allora anche S.- è indistìnguibile da Sk. La validità della
proprietà transitiva deriva dal fatto che nelle macchine completamente specifica-
te non ci sono gradi di libertà per cui o tutte le sequenze d'uscita sono sempre
perfettamente coincidenti (indistinguibili) oppure esiste una evidente difierenza
(distinguibili). Ne consegue che se tutte le sequenze d’uscita prodotte a partire da
S; coincidono con tutte quelle di S3- (sulia base della definizione data in preceden-
za sulla indistinguìbilità) e tutte le sequenze generate a partire da SJ coincidono
con quelle di Si. allora, inevitabilmente, partendo da S,- o Si, si otterranno le stesse

‘Per definizione un clique di ordine p (indicato con Kp) è un sottografo di p vertici. privo di autoanclli, con
n(n —« 1 L12 archi. Ogni vertice del sortografo, quindi. c‘: collegato ad ogni altro vertice mediante un arco.
290 Ottimizzazione delle macchine a sfaiîifinfri

sequenze d'uscita. La presenza delle tre proprietà di cui gode Pindistinguibilità


nelle macchine completamente specificate consente di inteipretarla come una re-
lazione di equivalenza in senso algebrico tra stati che, a sua volta, induce una
partizione sulfinsierne degli stati. Si ricorda che la partizione di un insieme è co-
stituita da blocchi che non condividono alcun elemento e la cui unione coincide
con Finsieme di partenza. In altre parole, indicando con S’ Pinsieme di paztenza
e con Bi. uno degli n blocchi della partizione, si ha:

31015326 vaglia;
B1UB2U"*UB,1:S
Tale partizione è unica ed è quella realizzata dal minor numero possibile di bloc-
chi; infatti, due elementi equivalenti devono necessariamente appartenere ad uni»
co blocco deila partizione e non è possibile riunire una coppia blocchi generan-
done un’altia contenente solo elementi equivalenti. Poiché ogni blocco della par-
tizione identifica uno stato della nuova macchina, il risultato è necessariamen-
te il minimo (non esiste una e l’unico (non esiste un’al-
macchina più piccola)
tra macchina costituita dallo stesso numero di statii). Si osservi che il grafo
delle equivalenza è costituito interamente da clique privi di intersezione e che,
conseguentemente, ogni clique identifica un blocco della partizione.
La tabella degli stati della macchina ridotta e ottenuta mettendo in relazione gli
stati della macchina di paxtenza con quelli identificati in fase di minimizzazione.
Si noti, infine, che in una macchina completamente specificata la corrispondenza
tra stato originario e stato della macchina minima è univoca a causa del fatto
che ogni stato della macchina di partenza è contenuto in un solo blocco della
partizione indotta sull’insieme degli stati dalla indistinguibilità.
Riassumendo, il processo di minimizzazione di una macchina completamente
specificata ha inizio dalla costruzione della tabella delle implicazioni (un esempio
è riportato in Figura 9.10).

b N .

U 1 î..___
a. c/O a/Ù c m

b c/O b/Ù
ca/{Ja/U dÈXÉ><'><'
a c/Ù a/l

Figura 9.10 Esempio di passaggio dalla tabella degli stati alla tabella delle implicazioni

4La cifra di merito considerata è il numero degli stati.


9.2 Macchine completamente specificare 291

‘b w

u..,_ b i”
i

l abl %———
C i N aîcl c m. m

, îr uv>%
d x >< ì x1 . ì l

s i o t * ci q X i X ><;
a b r‘ ‘Èi i

Figura 9.11 Esempio di passaggio dalla tabella delle implicazioni a quella delle
implicazioni ottenuta dopo la retro-propagazione

Successivamente si identificano tutte le coppie di stati non equivalenti attraver-


so la retro-propagazione delle distinguibilità (Figura 9.11}. Un modo sempli-
ce di operare sulla tabella delle implicazioni e che evita di seguire il complesso
intreccio delle transizioni è il seguente:

(i) la tabella delle implicazioni viene scorsa per colonne a partire dalla prima
cella. Una cella viene marcata con una x (la coppia è distinguibile) se alme-
no uno dei vincoli si riferisce ad una coppia distinguibile; in caso contrario
si passa oltre;

(ii) al termine della scansione, se è stata eliminata almeno una coppia si ripe-
te Fanalisi. In caso contrario, Poperazione di analisi è conclusa e tutte le
coppie residue sono indistinguibili. In quesfiultimo caso si sostituiscono i
vincoîi con un simbolo di equivalenza (m).

A partire dalla tabella delle implicazioni si ricava il grafo delle equivalenze sul
quale si identificano i blocchi della partizione; questi ultimi corrispondono ai
sottografi completamente connessi denominati cliqne (Figura 9J 2).

b l c
i . x?
c: w ; "v _

a‘ x >< >< j
mq\ i

Ì
Îlaebfll
a. b c \\"fl

Figura 9.12 Esempio di passaggio dalla tabella delle implicazioni al grafo di


equivalenza e identificazione degli stati della macchina minima
292 Ottimizzazione delle macchine a stati finiti

A causa della proprietà transitive di cui gode Fequivalenza, ogni clique identifica
un blocco della partizione che, a sua volta, rappresenta uno stato della macchina

minima. Infine, si ricava la tabella degli stati della macchina minima sostituendo
agli stati che appartengono ad un blocco della partizione un unico e nuovo stato
il cui identificatore è scelto in modo arbitrario (Figura 9.13).

O 1

a. c/Ù a/O 0 1 l

b c/O b/O o oz/O 0/0


c a/O o/O d i a/U d/l
a.‘ c/O aif/l

Figura 9.13 Esempio di identificazione della tabella degli stati della macchina minima

9.3 Macchine non completamente specificate


Una macchina sequenziale si dice non completamente specificata se esiste almeno
uno stato ed un simbolo dîngresso tale per cui non è definito lo stato successivo
efo ii simbolo di uscita. Questo consiste nell’avere grafi dello stato nei quali non
tutte le transizioni sono presenti e/o non tutte le uscite sono specificate, tabelle
delle transizioni degli stati in forma simbolica che presentano delie condizione di
indifferenza e, infine, il donunio della funzione A che non coincide con S >< il.’
e/o il dominio della funzione 6 che non coincide con S x 2t’ nei modello di Mealy
(con S nel modello di Moore).
Come per il caso delle macchine completamente specificate, ii processo di identi-
ficazione della indistinguibiiità di due stati consiste nel verificare se, osservando
la sola uscita, si vedono delle differenze. Poiché è possibile che il simbolo d’u-
scita non sia specificato elo lo stato futuro non sia definito, i concetti di sequenza
di ingresso, sequenza di uscita e di conzparazione tra le sequenze di ziscita cam-
biano. In particolare si ha che ie sequenze di ingresso devono essere applicabili,
cioè devono consentire il passaggio da uno stato al successivo escludendo al più
Pultirno simbolo deila sequenza, e il confronto è fatto sulle sequenze d’uscita ot-
tenute ma solo in corrispondenza dei simboli specificati, cioè quando almeno uno
dei due simboli d’uscita non è specificato si ritiene valida l'uguaglianza. Quindi,
i due stati sono indistinguibili ovunque specificati (e si dicono compatibili) se,
analizzando Fandarnento daiPunico punto di ossenrabilità della macchina lungo
una sequenza di uscita generata da una sequenza di ingresso applicabile, non esi-
ste alcun modo per rilevare il fatto che sono differenti. In modo più formale, il
concetto di indistinguibiiità si può esprimere nel modo seguente.
9.3 Macchine non completamente specificate 293

Definizione 9.4 Sia A.’ = {fhfz . . . , {p}


alfabeto di ingresso finito, si dice
un
che la sequenza ya E 215* è applicabile, dove X* è l ‘insieme di tutte le se-
quenza generabili con t‘ simboli di à.’ compresa la sequenza nulla e, se e solo
se (X547) è calcolabile V E E ya. Si indica con Il‘; Q 26* Pinsieme delle
sequenze applicabili. El

Questa definizione impone che la sequenza di ingresso permetta di conoscere 10


stato futuro per ogni simbolo di ingresso ad esclusione del1’ultimo.

Definizione 9.5 Si indica 5* (ym ai) la sequenza delle uscite ottenute applicando
la sequenza dîngresnso applicabile ya e 212'“ a partire dalla stato ai. El

Definizione 9.6 Due stati ai e or]- sono compatibili se e solo se le sequenze a‘ ’usci—
ra sono indistinguibil i in corrispondenza dei simboli che sono completamente
specificati e cioè c5*(y, ai) = 6*(y, aj) ovunque specificate V ya E il’; La
compatibilità gode delle pmpieta riflessiva (o; è compatibile con se stesso) e
simmetrica (se ai è compatibile da 0']- allora 0‘)- è compatibile con ai). D
Si osservi che due stati compatibili sono riconducibili ad un solo stato. Come per
le macchine completamante specificate, Tapplìcazìone alla lettera del concetto
di compatibilità esposto in precedenza è inapplicabile a causa della cardìnalità
dellînsieme delle sequenze applicabili. La questione è risolta considerando le
implicazioni del seguente teorema.

Teorema 9.2 Due stati oz- e aj sono compatibili se e solo se V E E X, 6K, ai) è
compatibile con (K541i) e Mg, ai) : M5, 03) ovunque specificate. D
Il teorema permette di sviluppare il seguente un metodo iterativo su due pas—

si, denominato metodo di Paull-Unger perle macchine non completamente spe-


cificate, che consente di individuare le coppie di stati compatibili attraverso
Fidentificazione delle coppie di stati distinguibili:

Passo 1. Due stati sono distinguibili quando per una qualunque configurazione
dîngresso le uscite sono diverse purché specificate; nel caso le uscite
siano uguali a parità di simbolo di ingresso, si esaminano le coppie di
stati futuri con le_ seguenti eccezioni: le coppie di stati futuri che coin-
cidono con gli stati presenti, le coppie di stati futuri che si riferiscono
ad un unico stato e le coppie di stati futuri nelle quali almeno uno stato
non è specificato.

Passo 2. Due stati sono distinguibili quando una qualunque delle coppie di sta—

ti di stati futuri (completamente specificata) da esaminare (vincoli di


compatibilità) è a sua volta distinguibile;
294 Ottimizzazione delle macchine a stati finiti

Come per il caso delle macchine completamente specificate, il risultato della ana-
lisi viene rappresentato mediante una matrice triangolare (in virtù della proprietà
simmetrica) priva della diagonale principale (a causa della proprietà riflessiva) in
cui gli indici di riga e di colonna sono gli stati stessi; questa struttura è denomi-
nata tabella delle implicazioni. Su questa matrice si procede nella analisi delle
distinguibilità controllando, cella dopo cella, se i vincoli di compatibilità riportati
non conducano a coppie di stati distinguibili. Quando questo avviene, la coppia
che si riferisce a quel vincolo diventa a sua volta distinguibile e si riporta nella
cella una ><. Quando il processo di retro-propagazione delle distinguibilità ha
termine, le coppie rimaste sono di coppie stati compatibili che, successivamen-
te, devono essere opportunamente raggruppate per produrre un nuovo insieme di
stati cioè quello della macchina minima. Procedendo per induzione, si suppon-
ga che la macchina minima abbia lo stato a : {S0, S1, S2} realizzato attraverso
i tre stati S0, S1 e S2 della macchina di partenza. Secondo quanto riportato fi-
no ad ora, a prende il posto di S0, S1 e S2; in altre parole, a è indistinguibile
da tutti e tre gli stati che lo compongono e, necessariamente, anche S0, S1 e S2
dovranno esserlo tra loro. In altre parole, uno stato della macchina minima deve
essere costituito da stati della macchina di partenza per i quali è verificata la pro-
prietà transitiva rispetto alla compatibilità. Per quesfiultima ragione risulta che,
costruendo un grafo in cui i nodi sono gli stati di partenza e gli archi sono le
relazioni di compatibilità, denominato grafo delle compatibilità, uno stato della
nuova macchina coincide con un sottografo in cui ogni nodo è collegato ad ogni
altro, denominato clique o sottografo completo oppure sottografo completamente
connesso di massima dimensione; ne consegne che il grafo è un ottimo strumento
per interpretare le informazioni estratte dall’ analisi della compatibilità. Per esem-
pio, con riferimento alla macchina non completamente specificata di Figura 9.14,
nel grafo di Figura 9.15 sono evidenti tre clique di massima dimensione ognuno
dei quali rappresenta lo stato di una nuova macchina: So, S1, S2, S3}, «{S51, S3}
e L93, S4}.
Quanto descritto fino a ora rende ragionevolmente evidente che la compatibilità
gode delle proprietà riflessiva (S,- è indistinguibiie da se stesso) e simmetrica (se
S,- e indistìnguibilc da Sj anche Sj e indistinguibile da Si) indipendentemente
dalle caratteristiche della macchina.
Le due proprietà citate, comunque, non consentono di interpretare in modo com-
pleto Yinsieme delle caratteristiche topologiche del grafo indotto dalle relazioni
di compatibilità. In particolare, solamente le macchine non completamente speci-
ficate potrebbero avere dei clique sovrapposti, come, per esempio, in Figura 9.15
(si ricorda che nelle macchine completamente specificate, i poligoni completi non
hanno elementi in comune).
9.3 Macchine non completamente specificate 295

s1 23:2:

O 1 52 5'1=535ou5'1
so 34/0 53/0
s‘, 55/0 50/0 s3 smsggshsg
S2 "/0 s1/— i .

S3 55/0 S2/— S4 X , X iswsfisghsg:


54 5Î5/— 50/3 ' . '

34 34/1 50/0 S5 É x >< i x x V

5o 51 52 33 54

Figura 9.14 Esempio di tabeìia degii stati con relativa tabella delie implicazioni

Figura 9.15 Esempio grafo delle compatibilità e clique di massima dimensione

Questa differenza è dovuta ai fatto che le macchine non completamente specifi-


catela non godono della proprietà transitive (se S; è indistinguibiîe da S3; e S}- è
indistinguibile da 3;, anche S, è indistinguibìle da Sk). La causa di questa diverw
sita e dovuta aìle condizioni di indifferenza sulle uscite; infatti, mentre nelle Inac-
chine Completamente specificate non ci sono gradi di libertà per cui i valori delle
uscite o sono sempre perfettamente coincidenti [indistinguibiin oppure esiste una
evidente differenza (distinguibili), nelle macchine non completamente specifica-
te, invece, ie condizioni di indifferenza consentono di accettare una uguaglianza
a priori con un valore noto che, inevitabilmente, dipende daìla coppia di stati in
esame; quello che può accadere, quindi, e che siano verificate le relazioni di in-
dìstinguibilità per le coppie (Si; 85,-) e (Sj; 8,1,) ma non Findistinguibfiìtà per la
coppia (S5; Sk).
296 ' Ottimizzazione delle macchine a stati finiti

Un esempio è riportato in Figura 9.16 dove, rispetto alla sequenza in esame, S0 è


indistinguibile da S1 e S1 è indistinguibile da S2 mentre S0 è distinguibile da S2
a causa della differenza tra i simboli d’ uscita in posizione 3.

S02 O — O -- 0
S12 O 1 — — ‘Ù

S22 O -— Ì — Ù

Figura 9.16 Sequenze d’uscita prodotte a partire da S0, S1 e S2

Dassenza della proprietà transitiva impedisce, in generale, di indurre sull’insie-


me degli stati una partizione; ne consegue che le classi di massima compatibilità
individuate, che corrispondono a tutti i clique di dimensione massima5 del grafo
delle compatibilità, potranno condividere degli elementi (ad esempio, come nel
grafo in Figura 9.15). La soluzione trovata può non essere minima pur essendo
corretta cioè, compatibile con la macchina di partenza. Inoltre, poiché i poligoni
completi possono essere numericamente maggiori del numero dei nodi, può ac-
cadere che la macchina estratta sia più grande della macchina di partenza e, di
conseguenza, peggiore. Per esempio, la macchina di Figura 9.17 ha 6 nodi e soli
clique di ordine 3 (Figura 9.18) per cui il numero massimo di classi di massima
compatibilitàfi è pari a 8 [Fishen 1992], e sono riporate in Figura 9.19.
g-î —v

si
Îoislls S
00 01 11 52 53153 53,3:
se 31/0 s3/— sg- "'
52.5 5,5.
3.3i 52,5:
.
S1 So/— 52/0 S4/— 5a ><

s2 s0/— 34- 30/0 — E ,

r3 34/1 S3/_ 34/_ 81_g1«g5 x 361121524725


S4 S5/_ S5[_ 3a ì Il: 5 3'.- 5 ;

S5 So/— —/— 83/1 . 5,3 5,3 5,35


55 53.52 53"54 X sìsî 53.55;

S0 S1 S; S3 S4

Figura 9.17 Tabella degli stati e tabella delle implicazioni

cliquc di dimensione massima è un clìque che non è contenuto interamente in nessun altro.
5 U11

611 di clique in un grafo di n nodi è uno dei problemi di Ramsey. Per questa classe di problemi si
numero
conoscono solo formulazioni generali che ne identificano alcuni csnemi superiori.
9.3 Macchine non completamente specificate 297

sa 139€: se

S0. S5 >*’/ \\ 52: 53


S3 S5,’
- _/’ , x54 , 55

//./"
..-//S1: s5
S3, S5
s3, sî-«n
î\xi

f" "/ 50-. S1 XV- \


s4 s3, si S]
s ’ So , S5 ,_/’
\‘\.\‘ Se; €5 52- 53 /_/’/ ‘i

5'4- 55\'\_\ i Sii-vi)”. ' S4


53- s5 r i so, S4
i.‘ //’ \\\\
S3 S: S3

Figura 9.18 Grafo delle compatibilità

{Souqicsz} {(52,53}?(3=1=5'5)î(52:54):(5t1=54);
5 {-91,52} î {LSmS-i): (Smsexli
(S3, S4): (Se, 55)} {S17 33} H50, S4); (52: 53)}
=

{S().S1,55}1{(S2, S3); (S3. S4); (S3, S5): (S4, 55)} {SL S5]- : 54)}
{3n=52-54} î {(—»"'0:SI)?(S().S5)3 (51:55) (54-34): {52..S3}={(S0,S1);(S3-S4)}
(Ssassli (54=5s)} {32154} î{(50«-95J?(5—1-35)}
{So-flussi} i {(50.591}: (S1!S5);('5Y3TS5)} {S334} {(53-55}? (Sévssli
3

{S} S2. S3} : {(52). S4):


. (S; S4): (S3. 334)} {Sy S5} {(51), 534);2 54)}
{Sh S3, ‘H30, S4): {'82, S3):
Z 34)} {tg4, i {(80 S5):
{S253134} i {(SD‘S4)T. (30:55)? (53.5%): (54.»5'5)} {S0} î 9
{53-5-1-35} {(50-54}: (So-‘Ssìl’
= {S1} I9
{So-Si} i {(52:53)î(54-55)} {S2} 9 =

{Smfig} {(Su.5'1):_ qS0._S'5)',(S3,S4)}


: : É)

{So-Si}I{(SiiSs):(S3ÎS5J} {54}:@
{Sci-Sa} : {(SD\ 51): (S3, 55)} : 0

Figura 9.19 Classi di compatibilità prime. Le prime 8 classi di compatibilità prime


sono le classi di massima compatibilità

In questo capitolo non si intende mostrare la soluzione del problema della identi-
ficazione della macchina minima ottima a causa della sua complessità, tuttavia, si
ritiene utile, attraverso un esempio, illustrare i meccanismi per Fidentificazione
di una soluzione. Individuare una soluzione minima consiste nellîdentificare una
copertura del grafo delle compatibilità che rispetti i Vincoli e che sia costituita
dal numero minimo di classi di compatibilità non necessariamente massime. Per
298 Ottimizzazione delle macchine a srarifiniri

definizione, una copertura del grafo che rispetti i vincoli e detta copertura chiu-
sa. In particolare, una copertura chiusa e costituita da un insieme di classi di
compatibilità che coprono tutti gli stati senza che sia vioìato alcun vincolo.

Definizione 9.7 Una copertura C = {G1,G2, . . . . Gk} in cui Gk C S si dice


chiusa se e solo se risulta ME, Gj) Q G; E C Vgj.
Ad esempio, (Figure 9.17—9.i9) due possibili coperture chiuse sono:

C0 = {So 2 9,31 zfisg : (3,33 : 9,34 : (9,35 :

C1 {ismsiass}î{(52!53l={=5'335.4):(33:55)e(-5Î1;5s)}t
{Sos 54:55} î {(50351} (S13 5.5i (Ssèsfll:
i33«54=55} î {(590391 (50554)?
i192. S31 51} î {(30% 54) (302 Se) (S3; S5): (34: Sali}

La copertura C0 corrisponde alla macchina di partenza, mentre C 1 corrisponde alla


macchina ridotta. In quesfultirna soluzione, i vincoli sono tutti rispettati e tutti
gli stati sono coperti; in particolare ogni stato è presente in almeno una classe e,
osservando la tabella degli stati iniziali, ogni nuovo stato rimanda ad almeno uno
stato della copertura. La presenza di sovrapposizioni tra gli insiemi è dovuta alla
necessità di rispettare i vincoli stessi. Un esempio di copertura non chiusa è:

C2 = {{SUeSl-SÈ} 3 iisuìfiii=iîîrn5sia (32:53) (32134) (53154) (54_.Ss)ia


{Sis- 54-55} iisoîss):
3 (Smsflii

poiché i vincoli non sono rispettati; in particolare, sono violati i vincoli (S0; S4),
(So; S5), (S2: S3) e (S2; S4) poiché tali coppie non appaitengono ad alcuna classe
di compatibilità inclusa nella copertura stessa.
Si sottolinea che Pappartenenza di un vincolo (55,53) a un insieme degli stati di
una classe di compatibilità rappresenta solo una condizione necessaria ma non
sufficiente per il iispetto dei vincoli. Per esempio, si consideri la copertura:

C3 = H30. 51.55,} : {(S'g;S-3),(S3;S.1),(S3:S5),(S4:S5)}.


{Sr}. S2. L94} : {(51}; 5'1),( 10; S5), (S1: S5). S4). (S32 S5) (S4: 55)}.
{53:54=55} I {(50:55) 60254)}:
{S125253} 3 {(30434) (52:54), (53;54)}}

Tutte le coppie di vincolo sono incluse in almeno uno stato ma la copertura non
è chiusa. Infatti, a partire dal nuovo stato {S-g. S4, S5} con ingresso 00 io stato
futuro è {Si}, S4, S5}, che però non appartiene alla copertura.
9.3 Macchine non completamente specificare 299

La soluzione più semplice al problema della identificazione di una copertura chiu-


sa consiste nellmtilizzare tutte le classi di massima compatibilità. Il risultato pro-
dotto garantisce la chiusura della copertura dal momento che nessun vincolo è
violato (chiusura), poiché tutte le relazioni di compatibilità sono necessariamente
rispettate (che, sul grafo, corrisponde a non escludere nessun arco), e tutti gli stati
sono coperti per costruzione (la copertura, sul grafo, corrisponde a non escludere
alcun nodo). Sebbene questo risultato spesso non rappresenti una soluzione al
problema della minimizzazione (in alcuni casi, come analizzato in precedenza,
può generare una soluzione che è peggiore rispetto alla macchina di partenza) la
semplicità con cui la si può produrre porta a considerare la procedura come didat-
ticamente eccellente. La soluzione identificata è scartata nel caso in cui il numero
di stati della nuova macchina superi quello della macchina di partenza.
Per indìvidume una copertura chiusa minima (ottima o sub-ottima) si può ricorre-
re a metodi esatti o a criteri euristici che utilizzano, come base, Pìnsieme di tutte
le classi di compatibilità prime. Una classe di compatibilità è prima se non esiste
un’altra classe di compatibilità che la ricopra e che abbia un insieme di vincoli in
essa incluso, o al limite coincidente, con il suo. Si osservi che una classe di mas-
sima compatibilità è un caso particolare di classe di compatibilità prima poiché
non esiste alcuna altra classe di compatibilità che la può includere. In modo più
formale si ha quanto segue.

Definizione 9.8 Indicando con I‘ l'insieme di tutte le possibili classi di compa-


tibilità e con G’, l ‘insieme degli stati in una classe di compatibilità i-esima
soggetta all ‘insieme dei vincoli V}, la classe di compatibilità G3,- : E F
non è prima se esiste urfaltra classe di compatibilità Gk : Vk 6 1" tale che
GkDGJ-eÌ/kQÎ/Eperkgéj.
Per esempio, in Figura 9. l 5 tra le classi di compatibilità che possono essere estrat-
te da quella di massima compatibilità {So, S1, S2, S3} : {(5,5 55)}, la classe di
compatibilità {Smshsg} : {(Sg; S3), (SuSg), (84353)) non è prima poiché
‘[50, 51,52, 53} 3 {80131732} e {(5455)} C ‘H50; 53), (51; 53). (S4: 55)}-
La classe di compatibilità {S1,S2,S3} : {(Sg; S1), (50:52)); invece, è prima
poiché {So, S1, S2, S3} D {S1,Sg, S3} ma l’insicme dei vincoli {(S4; 85)} non
include {(Sg_; S1), (So; 82)}. Si noti, infine, che una classe di massima compa-
tibilità composta da n stati può generare 2” — l sottoclassi e che, inoltre, una
qualunque sottoclasse di compatibilità derivata da una classe priva vincoli non è
prima poiché la condizione (D Q è sempre verificata.
H metodo esatto analizza tutte le possibili soluzioni utilizzando un algoritmo di
branch & bound: la strategia adottata consiste nel partire dallînsieme delle classi
che coprono un dato stato e di procedere aggiungendo le altre classi cercando di
soddisfare sia la copertura sia il rispetto dei vincoli. Una volta identificata una
300 Ottimizzazione delle macchine a stati finiti

copertura chiusa, la cardinalità dellînsieme delle classi che costituiscono la solu-


zione viene utilizzata come soglia (bound) che ha lo scopo di ridurre lo spazio di
ricerca. Questo metodo identifica la soluzione ottima sebbene sia molto oneroso
dal punto di vista computazionale. Per questa ragione si preferisce ricorrere ai
metodi euristici soprattutto quando la cardinalità del problema è molto elevata ed
è impensabile utilizzare un metodo esatto.
11 più semplice metodo euristico consiste nelrapplicare una euristica greedy che

persegue Fobiettivo facendo, di voita in volta, la scelta più conveniente senza


tornare sui propri passi né adottare strategie di previsione. Si osservi che per
identificare la “scelta più conveniente” è indispensabile adottare un modello di
costo; tale modello influenza sia la complessità algoritmica sia il risultato.
Un semplice modello di costo è quello che associa il massimo beneficio alla classe
di compatibilità prima che:

(i) copre il massimo numero di stati tra quelli che restato da coprire;

(ii) soddisfa il massimo numero di vincoli introdotti dalle classi di compatibilità


scelte in precedenza;

(iii) introduce i1 minimo numero di nuovi vincoìi.

L’ algoritmo di copertura è il seguente. Il punto di partenza costituito da tutte


le classi di compatibilità prime. Ad ogni classe si associa un costo secondo le
regole indicate in precedenza (Numero di stati coperti + Numero di vincoli risolti
— Numero di vincoli introdotti) e si sceglie la classe dal costo maggiore (a parità
di costo si sceglie la classe che copre il più alto numero di stati da coprire) che
non abbia tutti i contributi a zero (aumenta la cardinalità della copertura senza
alcun beneficio). Si calcola nuovamente il costo per ogni classe e si opera una
nuova sceita. Lîaîgoritrno ha termine quando tutti gii stati sono coperti e tutti i
vincoli sono rispettati. Per semplicità le coppie di vincoli delle classi prime sono
tradotte in raggruppamenti di stati; in altre parole si traducono i vincoli negli stati
futuri a cui ogni sottoinsieme degli stati rimanda e si applica in questo modo la
definizione (9.7) nella ricerca della copertura. Si consideri Fesempio riportato
in Figura 9.17 le cui classi di compatibilità prime modificate sono mostrate in
Figura 9.20.
La classe di compatibilità prima selezionata al primo passo è {S319435} :
{(51), S4. 85)} poiché è quella che con costo maggiore, +3 + 0 2 = +1, ossia

3 stati coperti, nessun vincolo soddisfatto e un vincolo introdotto.


Successivamente si aggiorna Pinsieme di classi di compatibilità per tenere con-
to delFeffetto della selezione fatta, eliminando dai vincoli sia quelli che non
9.3 Macchine non completamente specificare ' 301

{S15 S1, S2} H32, S3, S4); (.5'0,S4,S5)}


: +3 + U 2 +1
— =

{S0,S1.i5'5} {(SQ,S3);(S3,S'4,S5)}
: +3+Ù—-2=+1
{SQ,S;_>,.S'4} : {(SQ,S1,S5); (S3,S4,S'5)} +3 + Ù 2 +1
— =

{SD7S4,.95}I{(SQ,S]_,S5J;{S3,SS)} +3+Ù—2= +1
{S1,S2,S3}I{(SQ,S4);(SQ,S3,S4)} +3+Ù—2=+1
i {(31% 34); (Sai S3); (53: 34)}
‘[31. S3, 55} ""3 + 9 3
— = +0
{S253254} {(50,S4,-5'5); {S354139}
= +3+Ù —2 = +1
{S3,S4,i5'5} : {(So,S.-1,S5)} +3+Ù— l=+2
{SÙ‘\S1}:{(S21S3);(S4}S5)} +2+U—2=+U
i303 52} 3 H30, S1): (S0: 55); (33, 34)} +2 + o 3 —1
— =

{Suuîg}:{[S1,S5);(.S'3,S5)} +2+Ù——2=+Ù
{-50,35}:{(SÙ,S;);(S3,S5)} +2+0—2=+G
{SL S2} : {(S4),S4); (S2,S4)} +2 + Ù 2 +0
— =

{S133}:{(Su,S4);(b'g,S3)} +2+Ù—2= +3
{S1,S5}:{(S3,S4)} +2+Ù—1=+1
{€2,83} : {(S0,S4); (.5'3,S4)} +2 + Ù 2 +0
— =

{S275443{(S0s55)î(5-1:55)} +2+Ù‘2:—7Ù
{E3334}:{(S;-;,S5);(5'4,S5)} +2+Ù—2= +0
{S335}:{(SQ,S4);(S3,S4)} +2+Ù—É=+O
{S4,.5‘5}:{(SQ,S5);(S3.S5)} +2+Ù——2=+O
{S5}:® +1+0—o=+1
{sono +1+0—o—_-+1
{S2}:(À +1+Ù-Ù=+I
{r93}:9 +1+Ù—-O=+1
{S4}:@ +1+0—0=+1
{s5}:0 +1+0—0=+1

Figura 9.20 Cîassi di compatibilità prime e relativi costi al passo l

sono più tali perché soddisfatti dalla classe scelta ({S3,S4,S5}), sia quel-
li coperti dai vincoli presenti nella cìasse scelta (U30, S4,S5)}). Si osservi
che alcune delle classi possono essere eliminate poiché coprono solo gli sta-
ti che risultano già coperti dalla classe scelta come, ad esempio, {S554} :
{(S3, S5); (S4, 35)}. I] risultato è riportato in Figuxa 9.21. Si noti che Funìca
classe di copertina che risolve un vincolo (secondo contributo del costo pari a 1)
è «[80, S4, S5} : {(51), 81,55); (S3, 85)} in quanto la sua scelta risolverebbe il
vincolo {Sm S21, S5} della classe prima seîezionata al passo 1.
Analizzando i costi associati ad ogni nuovo elemento dellînsieme, la scelta ricade
sull’elemento {Si}, S1, S2} : {(S2, S3, S4); (S0, S4, 55)} caratterizzato dal costo
maggiore, che aggiunge alla copertura gli stati S5, S1 e 8g senza soddisfare alcun
vincolo. Dopo il passo 2 non restano altri stati da coprire, ma devono essere
ancora soddisfatti i vincoli (S2, S3, S4) e (So, S4} S5). Applicando alle classi di
302 Ottimizzazione delle macchine a srazifiniri

{Sin-Sansa} I {(—5'2.5Î3,54)1i’3OT—‘34T55'Ì} +3+0— 1=+2


{50,S1,55}={(32,53);{’33T5Î1T5‘5Ù} +2+0—1=+1
{S015354} ={(30,51,55);f5'î3T-5Î1ì'5:»‘}} +2+0—1=+1
{SmS-uss} I {(50-.51,55);f5375‘5'}} +1 + 1 — 1 = +0
{S1,S2,S3}:{{TÎ7ÌK);(SQ,S3,S4)} +2+Ù—1=+1
{.5'1,S3,S5}: {{‘.SQ,—SIÌ:(SQ,S3);{‘S3TSIÌ} +1 +0 1 = +0

{S2,S3,S4}î{ : } +1+Ù—Ù=+1
{S3.S4,S'5} : {(.S’G,S4,S5}} Scelta alpassol
{s0,s1};{(s2.s3);t&;,—s5j} +2+0—1=+1
{50382} 3{(5'0,51);{‘5!JT5È;É53T5‘4’Ì} +2+Ù—1=+1
{SQ,S4}:{(S1,S5);TÎ'QT'S5‘Ì} +l+D—1=+Ù
{S0,S5} : {(SQ,S1);(‘SÎ7,TÉJ"5‘Ì} +1+ 0 — 1 = +0
{S1,S2}={Α5DT5Ù;(52=54)} +2+Ù—1=+1
{S1.-.53}={(‘3DT51‘}:(52.53)} +1+Ù"1 =+Ù
{S1,5'5}:{(15'3,—S2f)} +1+0—0=+1
{x5'2s-‘33}={(‘3uî51î:f5sr:9zî} +l+Ù-Ù*+1
{S21 54} {ÎSOT-Îaî: 645315}
= +1 ‘l’ Ù 0X +1
" =

{sapa +1+o—0=+1
{S1}:El +1+G——U=+1
{S2}:Ù +1+0—0=+1

Figura 9.21 Classi di compatìbiìiîà prime e relativi costi al passo 2

{50u9u52} {(5'2=5'3s54}3{’-5'IF5ZT5€Ì}
1 5551333135503
{SU:S1TS5}Ì{Î92T5TÌ3ÎSE'JSZTSS‘Ì} +Ù+Ù—Ù=+Ù
{S0.5'2;S4} I {(S:),S1,35l:(‘5?3151:‘55‘Ì} +9+Ù 1 ‘1 — =

{S0_.S4,.5'5} : {(SQ,S1,S5);ÉÉY':3TS5‘Ì} +Ù+l—1=-l-Ù


{S1yS2-S3}:{ 3 } ‘l'O+Ù—Ù=+Ù
{S175355} {f5îJT5Iì;f52T53‘};f5I:&‘}}
= +0 +Ù- U = +9
{S2,S3,S4} : i J } +0+1— 0 = +1
{S3, 84,55} : {(So, S4, 55)} Scelta al passo 1

{30=S4}={(51s5s);f51=rn5‘à} +0+0—1=——1
{S0,S5} {(S0,S1);{‘5'î'5T55‘Ì}
2 +Ù+O—1=—l
{S1,53}î{(‘50’?51‘};{î"?'2,—5":{ì} +O+0—0=+0
{S1,S5}:{{‘È3TSIÌ} +Ù+U—0=+O

Figura 9.22 Classi di compatibilità prime e relativi costi al passo 3

compatibilità le semplificazioni derivanti dalla nuova scelta si ottiene il risultato


di Figura 9.22.
La scelta della classe di compatibilità piima {S2,S3,S4} : {(SQ,S4,S5);
(S3,5'4,.5'5)}, che risolve il vincolo (Sg,S3,S4) lasciando ancora vioiato il
vincolo (S0,S4,S5). A1 passo successivo si sceglie la classe {SO,S4,S5} :
H80, S1, S5); (S3,S5)} che pur avendo costo complessivo zero, non ha tutti
9.3 Macchine non completamente specificare 303

«[50, S11 S2} : Scelta al passo 2


{Sm 51,85} : {(52763}: +0 + G = +0—

{So,-5'2,S4}!{ : } +0+0—0=+D
{Stafiîifis}îilsopîtfiskfiîîîl} +944 —1=+Ù
{51=52a53}={{‘-9DT5HÌ;{’5"2T%T&Ù} +Ù+Ù—Ù=+Ù
{31:5'3,55} = {lfinîgîîflîxfiî-‘Îîìîîfifilîl +Ù+Ù — 9 = +9
{Sa S3, S4} : f*S3-;S4‘,-S5')} Scelta al passo 3
{S3,S4,s5} : {(sg,s4,S5)} Sceltaalpasso 1

{L90354} 3 {{5'1,5'5Ì?ÎS3"€’5‘5'Ì} +0+0 1 —-1 —— =

{3o=55}î{(3n,5'1)ì{‘53T5-'5‘)} +0+o—1= -1
{Sossîrvîtfioîfizîrfiffafiai} +0+0-0=+0
{S1_.S5}Z{{GÉÉ1TST}} +0+o—0=+0

Figura 9.23 Classi di compatibilità prime e relativi costi al passo 4

{Si}, S1, S2} : {ìgcîfizîfisì} Scelta al passi) 2


{Sub51,85} : +3 + 1 — Ù i +1
{Sansa 54} î {ÎSDZ7ÎÎ1TÒÉÌQÎSÉT5Z1TS5Î} +0 ‘i’ Ù — Ù = +0
{gong-auge}î{(5'o,5'1,55)îÎ"5‘3T5:5Îl