Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
1-
CAPITOLO I
1.1 - INTRODUZIONE
In molti casi, si ha a che fare con una informazione che ha oggettivamente un numero discreto, e
finito, di valori significativi. Ci limiteremo a considerare il caso di due soli valori (informazione bina-
ria), perch la tecnologia digitale sviluppata essenzialmente per questo caso.
produce un segnale (elettrico) Eo legato ad una propriet della particella ionizzante (per es. lenergia
persa dalla particella nellattraversare lapparato). Supponiamo di essere interessati ai segnali Eo
generati dalle particelle, provenienti da T, che attraversano la regione del rivelatore delimitata dal
tratteggio. Per selezionare queste particelle, si possono usare due sensori (che sono in realt
anchessi rivelatori di particelle) A e B posti lungo la traiettoria di interesse e utilizzare i segnali da
essi prodotti, SA e SB, per selezionare le particelle di nostro interesse secondo una logica di funzio-
namento che possiamo cos formulare:
Nella formulazione precedente possiamo distinguere la funzione logica che la macchina deve im-
plementare:
accettazione dellevento Eo
(1.1) Y = f(A,B,C,...)
anche necessario fissare dei simboli per distinguere i due valori che Y, A, B, possono assumere.
A tale scopo, conveniamo di indicare con Y, A, B, e con Y , A , B i due stati vero e falso,
rispettivamente. comunque arbitrario associare per es. il simbolo A al valore vero e A al valore
falso, o viceversa.
una funzione logica Y = f(A,B) ha valore vero se almeno una (cio una o pi) delle variabili
ha valore vero.
Si dice che la relazione funzionale realizzata dalloperatore OR, e
lespressione esplicita di Y pu essere scritta
Y = A OR B
Lazione delloperatore OR descritta dalla tavola della verit, Fig. 1.1.
Y = A AND B
Le tavole della verit sono in Fig. 1.3, per la logica negativa, e in Fig. 1.4 per la logica positiva.
Una generica funzione logica avr quindi una espressione esplicita in cui compaiono tre soli operatori
matematici.
La scrittura della espressione algebrica della funzione risulta pi snella se i tre ope-
ratori matematici vengono rappresentati con simboli algebrici. Tali simboli sono i
seguenti:
NOT = _ (sovrasegnatura)
Questi simboli hanno suggerito lovvia nomenclatura di somma logica, prodotto logico,
complementazione, rispettivamente, per le tre operazioni. opportuno sottolineare che questi
simboli vanno qui intesi in senso logico, non aritmetico.
Vediamo ora come il modello matematico pu essere tradotto in una rete. Per questo, ad ogni
operatore occorrer associare un elemento di circuito che meccanizza la tavola della verit
delloperatore stesso. Questi elementi di circuito, che vengono comunemente chiamati porte logiche,
possono essere costruiti con tecnologie elettroniche oppure elettromeccaniche, oppure ancora
ottiche, ecc. Noi ci interesseremo del primo caso, poich le tecnologie elettroniche sono a
tuttoggi quelle massimamente sviluppate, e le porte saranno reti elettriche, oggi disponibili sotto
forma di circuito integrato. In questo caso, i due stati logici sono due diversi livelli di tensione,
variabili a seconda della tecnologia costruttiva usata, per cui usuale parlare genericamente di livello
alto, H, e di livello basso, L, anzich di vero e falso, rispettivamente. In una tecnologia di uso molto
comune, nota come TTL, i valori nominali delle due tensioni sono L = 0V, H = 5V.
Dallesame delle tavole della verit di Fig. 1.1-1.4 appare che
un AND per logica positiva anche un OR per logica negativa,
e che
un OR per logica positiva anche un AND per logica negativa.
Ne segue che gli elementi di circuito sufficienti sono tre. Si far vedere pi avanti che non tutti sono
necessari.
Nella formulazione di un problema logico
comodo potersi svincolare dal tipo di
logica (positiva o negativa), e ci viene
realizzato se si conviene che
in logica positiva lo stato vero (o
il livello H) di una variabile rap-
presentato col simbolo 1, e lo stato
falso (o il livello L) col simbolo 0.
Il significato aritmetico attribuito ad una stringa di simboli decimali espresso dalla ben nota relazione
illustrata nellesempio che segue (lindice la base di numerazione)
Questa relazione mette in evidenza come il sistema di numerazione decimale sia di tipo posizionale,
cio il peso attribuito ad un simbolo dipende dalla sua posizione nella stringa: tale peso una potenza
della base di numerazione, essendo lesponente eguale, in valore assoluto, al numero dordine del
posto occupato dal simbolo, contando a partire dalla virgola. Il sistema di numerazione romano un
esempio di codice numerico non posizionale.
Lesempio precedente si presta ad una immediata generalizzazione, considerando una stringa nume-
rica in un sistema di numerazione, posizionale, in base b10. Se
N(b) = anan-1...a1a0,a-1a-2...a-k
N(b) = anbn+an-1bn-1+...+a1b1+a0b0+a-1b-1+...+a-kb-k
essendo: b la base di numerazione e ai un simbolo del sistema di numerazione, che un intero com-
preso fra 0 e b-1. La potenza bj il peso attribuito al simbolo aj.
Cos, nel sistema di numerazione binario b=2 ed ogni simbolo nella stringa pu assumere i valori 0
e 1.
Ci sono altri due sistemi di numerazione che conviene considerare, data limportanza che hanno nei
sistemi di calcolo: il sistema di numerazione in base 8 (octal), che fa uso degli 8 valori numerici
0,1,...7, ed il sistema di numerazione in base 16 (esadecimale) che fa uso dei 16 valori numerici
0,1,..9,10,..15 i quali, per ovvi motivi, sono scritti pi comodamente 0,1,..9,A,B...F.
Esempi:
La conversione della parte decimale nella nuova base di numerazione b avviene moltiplicandola per
b, annotando separatamente la parte intera e la parte frazionaria del risultato; la parte frazionaria
viene ancora moltiplicata per b, annotando la nuova parte intera e la nuova parte frazionaria; e cos
via. Il processo si arresta spontaneamente se la parte frazionaria diventa 0; altrimenti, il processo
viene arrestato quando si ottenuto il numero desiderato di cifre. chiaro che in questo secondo
caso la conversione approssimata.
Nellesempio che segue, si converte in octal il numero decimale 0.624:
0.624 0.992 0.936 0.448 0.904 ....
4 7 7 3 ....
Per convertire un numero da una base b10 ad una base b10, conviene generalmente fare una
conversione intermedia in decimale. Tuttavia, il codice octal e quello esadecimale permettono una
conversione immediata in codice binario, e viceversa. Infatti, si pu facilmente verificare che per
tradurre un numero octal (esadecimale) in binario basta tradurre singolarmente ciascuna cifra in un
numero binario a 3 bit (4 bit), conservando leventuale virgola; ci mostrato negli esempi che
seguono:
315(8) F1B(16)
1 1 0 1 1, 0 0 1 0 1
___| |_____| |_____| |____
octal 3 3 , 1 2
___||_______||________||___
esadec. 1 B , 2 8
Quanto ora detto fa comprendere che il sistema octal e quello esadecimale sono utili per rappresen-
tare in maniera pi compatta un numero binario.
Per introdurla in modo generale, consideriamo un insieme di elementi I=(i1,i2,i3,...) e indichiamo con
A,B,C,... delle variabili definite su I; associamo ad I una struttura algebrica definendo le due opera-
zioni di somma (+) e prodotto (. ), per le quali si postulano le seguenti propriet:
(1.5b) A. A = 0
Si assunto implicitamente luso delle parentesi e la propriet riflessiva, simmetrica e transitiva
delluguaglianza. Si conviene inoltre che loperazione di prodotto ha precedenza su quella di somma
e che si iniziano le operazioni dal livello di parentesi pi interno.
Una funzione booleana una espressione che combina mediante le operazioni di somma e prodotto
un numero finito di variabili, ciascuna delle quali pu assumere come valore uno degli elementi
dellinsieme I.
Un teorema dellalgebra booleana una asserzione che pu essere dimostrata con luso degli assio-
mi.
Si noti che gli assiomi sono presentati a coppie, in modo tale che in ciascuna coppia un assioma pu
essere derivato dallaltro scambiando loperazione di somma con quella di prodotto. Vale in generale
un principio di dualit: da un teorema gi dimostrato si pu ottenere un nuovo teorema scambian-
do + con e ogni variabile col suo complemento. In effetti le variabili qui restano inalterate poich in
un teorema le variabili hanno significato generico (tra laltro, possono rappresentare anche intere
espressioni). I teoremi principali dellalgebra booleana sono riportati in un successivo paragrafo.
Il principio di dualit pu essere applicato anche ad una funzione booleana, ottenendo una nuova
espressione (detta duale) della stessa funzione. Va sottolineato che in una funzione le variabili hanno
significato specifico (rappresentano cio segnali fisici), quindi sia la funzione che le variabili vanno
esplicitamente sostituite col proprio complemento.
Lalgebra booleana ha trovato applicazione per lo studio formale di varie scienze, per esempio la
logica proposizionale, che studia le regole del ragionamento sulla base della verit o falsit di
asserzioni non equivoche. In questo caso, l'insieme I contiene due soli elementi, vero e falso. In
questo ambito si pu far rientrare lo studio dei circuiti a commutazione, nei quali cio gli stati di
entrata e di uscita possono assumere due soli valori, rappresentati simbolicamente con 1 e 0.
(1.14) A =A
Dimostriamo che A + B = A B .
Basta far vedere che A+B e A B sono uno il complemento dellaltro, cio (assioma 1.5)
(A+B) A B = 0
(A+B) + A B = 1
Infatti
(A+B). A B = A A B + B A B = 0 + 0 = 0
La dimostrazione avviene col metodo dellinduzione finita: cio, il teorema (gi dimostrato per il
caso di due variabili) viene assunto vero per il caso di k (>2) variabili e si dimostra quindi che esso
anche vero per k+1 variabili; data larbitrariet di k, segue che il teorema vero per ogni n. Allora:
A1 + A 2 = A 1 A 2 gi dimostrato
Si ha:
= ( A 1 A 2. A k) A k+1 assunto
AB C D
Analogamente, si definisce un termine somma:
A+B+ C
Poich le uniche operazioni logiche su variabili, disponibili sia in forma vera che negata, sono somma
e prodotto, una funzione booleana pu sempre essere scritta sotto forma di somma di termini pro-
dotto (S.d.P.), oppure, dualmente, sotto forma di prodotto di termini somma (P.d.S.). Per esem-
pio, la funzione
Y = A(B+C)+D
con la propriet distributiva (1.3a) diventa:
Y = AB + AC + D
che in forma S.d.P.
Con la propriet distributiva (1.3b) la stessa Y diventa
Y = (A+D)(B+C+D)
che in forma P.d.S.
Y = (A+D)(A+D+C)(A+B+D)(B+C+D)
che ancora in forma P.d.S.
Lesempio qui riportato fa vedere come la stessa funzione Y pu assumere molte espressioni diver-
se, manipolando lespressione algebrica con teoremi ed assiomi. Tuttavia, nella manipolazione delle
funzioni logiche conviene spesso riferirsi ad una espressione standard, chiamata canonica.
Un termine (somma o prodotto) canonico quando in esso appaiono esplicitamente tutte le variabili,
o in forma vera o in forma negata.
Una funzione in forma canonica quando tutti i suoi termini sono canonici.
Y(A,B,C) = A BC + B C + A C
Y = A A BC + A A BC + A B C + A B C + AA C + A A C
= A BC + A B C + A B C + A C
Come si vede, i termini che gi includevano la variabile A non vengono modificati, e per loro la
moltiplicazione risulta superflua. Tenendo presente questa osservazione, il procedimento si snellisce
molto.
Y = A BC + A B C + A B C + AB C + A B C
inutile procedere alla terza moltiplicazione, poich la funzione ormai canonica.
Una funzione in forma P.d.S. diventa canonica sommando ad essa i termini
A A , B B , C C ,...
Questi termini valgono 0, per la (1.5b) e, per la (1.4a) la funzione non cambia. Esempio:
Y = (A+B)(A+ C )
= (B B +A+B)(B B +A+ C )
= (A+B)(A+B+ C )(A+ B + C )
Dai due procedimenti illustrati si deduce una osservazione conclusiva che suggerisce un metodo
rapido per la canonizzazione: se un termine (somma o prodotto) gi contiene la variabile rispetto alla
quale si sta canonizzando, esso resta inalterato; in caso contrario, da tale termine ne vengono gene-
rati due, uno contenente la variabile in forma vera, laltro in forma negata.
La tavola della verit costruita elencando tutti gli stati logici distinti che le variabili possono assume-
re (stati di entrata della rete), e indicando, a fianco di ciascuno stato di entrata, lo stato logico assun-
to dalluscita.
Se il numero di variabili n, il numero di stati distinti di entrata (e quindi di righe della tavola) 2n: si
tratta infatti delle disposizioni con ripetizione di due oggetti (0 e 1) su n posti. facile convincersi
che tali disposizioni si ottengono scrivendo in codice binario a n bit i numeri interi da 0 a 2n-1. In fig.
1.8 mostrata la tavola per funzioni di tre variabili.
Y = A+B C
Per il teorema (1.7a), Y vale 1 se
oppure se
B C vale 1 (sottinteso: indipendentemente dal valore logico assunto da A): per il teorema 1.4b,
questo accade quando B vale 1 e C vale 0. Di conseguenza, Y assume valore 1 nelle righe 3 e 7
della tavola.
Si potrebbero anche cercare le righe in cui la funzione assume valore 0, utilizzando il teorema1.4a:
ma occorrerebbe trovare le righi in cui tutti i termini della somma assumono valore 0, il che chiara-
mente molto meno agevole della procedura precedente.
Se la funzione scritta in forma P.d.S., conviene limitarsi a cercare i casi in cui la funzione assume
valore 0, applicando il teorema 1.7b allintera funzione e 1.4a ai singoli termini somma: basta quindi
limitarsi a cercare le righe in cui i singoli termini somma valgono 0.
I procedimenti di sintesi sono due, uno duale dellaltro, e danno la funzione in forma canonica come
S.d.P. o P.d.S., rispettivamente.
Col primo procedimento, ogni riga della tavola della verit in cui Y vale 1 genera un termine
prodotto canonico, nel quale le variabili appaiono in forma vera se nella riga valgono 1, in forma
negata se valgono 0. La funzione cercata la somma dei termini prodotto cos ottenuti.
Col secondo procedimento, ogni riga della tavola della verit in cui Y vale 0
genera un termine somma canonico, nel quale le variabili appaiono in forma
vera se nella riga valgono 0, in forma negata se nella riga valgono 1. La
funzione cercata il prodotto dei termini somma cos ottenuti.
Cos, per esempio, dalla tavola della verit di Fig. 1.9, col primo procedimen-
to si ha:
Y = A B + AB
Col secondo procedimento si ha:
Y = (A + B)( A + B )
C da chiedersi, ora, quanti elementi di circuito siano necessari e sufficienti per realizzare una
qualunque rete logica. Si gi detto che sufficiente disporre di tre tipi di porte logiche, quanti sono
gli operatori logici. In realt, con il teorema di De Morgan facile vedere che le tre operazioni
logiche possono essere implementate con due sole porte logiche. Consideriamo, infatti la porta AND
a due entrate, la cui funzione
Y = AB
Con il teorema 1.14 e con quello di
De Morgan, la stessa Y pu essere
scritta
Y = AB = A + B
La rete relativa a tale espressione
in Fig. 1.10. Si conclude che la
porta AND a due (o, in generale, a n) entrate pu essere realizzata mediante una porta OR a due (n)
entrate e tre (n+1) inverter. [Questa stessa conclusione pu essere raggiunta ricordando che un
AND per logica positiva anche un OR per logica negativa].
Analogamente, possibile vedere che la porta OR a n entrate realizzabile mediante la porta AND
a n entrate e n+1 inverter, Fig. 1.11.
Pertanto, per realizzare i tre operatori logici (e quindi, per costruire qualunque rete logica)
necessario e sufficiente disporre di due soli tipi di porte logiche: la porta OR e la porta NOT,
oppure la porta AND e la porta NOT.
Si pu allora pensare di inglobare
le due porte in una unica rete in
modo da usare un solo elemento di
circuito. Le soluzioni oggi adottate
sono due (una duale dell'altra). La
prima lAND seguito da inverter,
cui si d il nome di NAND; la
seconda lOR seguito da inverter,
cui si d il nome di NOR.
Y = AB = A + B
Tavola della verit del NAND e simboli circuitali corrispondenti alle due espressioni algebriche sono
in Fig. 1.12.
Y = A+B = A B
Tavola della verit del NOR e simboli circuitali sono in
Fig. 1.13.
Y = AB + CD
= AB + CD = AB CD
AB + CD = A+ B + C + D = A+ B + C+ D
Si noti il gran numero di inverter necessari nella versione a NOR. In generale, se lespressione di Y
in forma S.d.P., la soluzione a NAND pi conveniente di quella a NOR. Viceversa, se la Y in
forma P.d.S.
Occorre, anzitutto, definire i livelli logici. A tale scopo, possiamo anticipare che la struttura circuitale
di una porta quella di un amplificatore
ad alto guadagno. Se si misura la sua
caratteristica ingresso-uscita si ha, per un
inverter, la curva di Fig. 1.15 (il
guadagno Vout/Vin stato per
semplicit supposto infinito e la
transizione stata tracciata verticale). In
questa figura, si indicato con H e L la
tensione pi alta e quella pi bassa,
rispettivamente, misurata in uscita. Si poi indicato con Vs la tensione di entrata a cui avviene la
commutazione. Ripetendo la misura su altri esemplari di inverter, si trova che sia Vs, sia le tensioni di
livello alto, H, che di livello basso, L, di uscita cambiano. Ci dovuto alle tolleranze di costruzione.
Se si fa la misura su un gran numero di inverter TTL, si ottiene la famiglia di caratteristiche di
trasferimento. In Fig. 1.16, le curve marcate sono le caratteristiche estreme della famiglia. Queste
curve mostrano che i livelli logici di uscita da una porta TTL possono variare (a vuoto)
nellintervallo 0.1-0.4 volt per il livello basso, e 2.4-4.5 volt per il livello alto. In altri termini,
scegliendo a caso una porta TTL, i livelli logici L e H che si misureranno alla sua uscita cadranno
nei suddetti intervalli, rispettivamente (non accadr mai di misurare una tensione compresa fra 0.4 e
2.4 volt).
Analogamente, dal lato entrata, i due livelli logici
non sono discriminati da una tensione Vs ben
definita per qualunque porta: le curve di Fig.
1.16 evidenziano che se scegliamo a caso una
porta TTL, possiamo affermare in anticipo che
essa riconoscer sicuramente come livello basso
le tensioni di entrata comprese nellintervallo 0 -
0.8 volt, e riconoscer sicuramente come livello
alto le tensioni comprese nellintervallo 2 - 5
volt. Le tensioni intermedie, cio fra 0.8 e 2 volt,
non sono utilizzabili, nel senso che non garantito che una porta TTL scelta a caso riconosca in
modo non equivoco una tensione in tale intervallo: per esempio, un livello di 1.5 volt allingresso
potr essere riconosciuto come livello basso da alcuni esemplari e come livello alto da altri.
La Fig. 1.17 riassume quanto ora detto. Sulla stessa figura sono indicati alcuni simboli caratteristici,
di cui bene conoscere il significato.
VIL: massima tensione riconosciuta in entrata come livello basso
VIH: minima tensione riconosciuta in entrata come livello alto
VOL: massima tensione misurata in uscita nello stato basso
VOH: minima tensione misurata in uscita nello stato alto
Un primo parametro caratterizzante per una famiglia logica
limmunit al rumore, cio la capacit della porta di
sopportare un disturbo sovrapposto al livello logico di
entrata senza che questultimo venga interpretato in modo
errato. Limmunit al rumore viene espressa dal costruttore
mediante i margini di rumore, cos definiti:
VNH = VOH - VIH
livello sicuramente riconoscibile come nuovo stato. In generale, il ritardo di propagazione diverso a
seconda del tipo di transizione (H->L, oppure L->H).
Il terzo parametro caratteristico il fan-out, che pu essere definito come segue. Consideriamo una
porta P di una famiglia e colleghiamo alla sua uscita, Y, n ingressi di porte appartenenti alla stessa
famiglia, Fig. 1.19. Come si vedr nel Capitolo IV, per mantenere lingresso di una porta nello
stato alto necessario fornire corrente a tale ingresso; il valore massimo di tale corrente indicato
con IIH, e nella famiglia TTL di 40 A. Per mantenere un ingresso nello stato basso, invece
necessario assorbire corrente da esso; il massimo valore di tale corrente, IIL, di 1.6 mA nella
famiglia TTL. I valori IIH e IIL sono quelli che assicurano che i livelli logici saranno riconosciuti in
modo corretto da una porta scelta a caso.
Ovviamente, luscita Y della porta P pu assorbire o erogare una corrente finita, i cui valori minimi
sono IOL e IOH (rispettivamente 16 mA (per il livello L) e 0.4 mA (per il livello H) nella famiglia
TTL). chiaro che, volendo mantenere i livelli logici corretti, n non pu essere arbitrariamente
grande. Il suo massimo valore sar n=IOH/IIH per il livello alto, e n=IOL/IIL per il livello basso. Tale
massimo valore si chiama fan-out: nella famiglia TTL, esso 10 per entrambi i livelli.
Un altro elemento di paragone fra le varie famiglie pu essere la tensione di alimentazione richiesta.
Alcune famiglie (per esempio, la TTL) richiedono una tensione fissa con stretta tol- leranza (+5
volt, +-5%). La famiglia ECL richiede sia una tensione positiva che una negativa (oppure solo
negativa), il che pu risultare piuttosto scomodo. Altre famiglie accettano senza problemi
alimentazioni variabili in un ampio intervallo (per esempio le porte CMOS accettano tensioni
comprese tra 2 e 15 volt).
Per quel che riguarda, infine, la potenza dissipata per gate, staticamente essa strettamente legata
alla tecnologia costruttiva della famiglia, come si vedr, e pu variare in condizioni statiche da meno
di 1 microwatt per gate, come nella famiglia CMOS, a decine di milliwatt per gate in altre famiglie.
Per ora, possiamo sottolineare che alla potenza dissipata legato il ritardo di propagazione. Infatti,
le capacit distribuite nel circuito sono abbastanza definite; se si riduce la corrente, per ridurre la
dissipazione, occorre pi tempo per caricare le capacit fino alla soglia di commutazione V (V =
Q/C = It/C), e quindi aumenta il ritardo di propagazione. Talvolta, viene considerato come fattore
di merito il prodotto fra la potenza dissipata dalla porta e il suo ritardo di propagazione: tale
prodotto ha le dimensioni di un lavoro, e si misura in picoJoule (pJ).
La tavola di Fig. 1.20 riassume alcune caratteristiche per le pi diffuse famiglie logiche.
Fig. 1.20
ragionevole attendersi che la rete logica da realizzare soddisfi le tre condizioni seguenti:
abbia il minimo costo possibile: cio la rete deve richiedere il minimo numero di circuiti integrati
(costo dei componenti) ed il minimo numero di collegamenti (costo di realizzazione).
Abbia la massima velocit operativa: questo equivale a chiedere che sia minimo lintervallo di
tempo fra listante t0 in cui una variabile di entrata cambia stato logico e listante t1 in cui luscita
cambia, di conseguenza, stato. Poich ogni porta logica caratterizzata da un ritardo di propaga-
zione, questo equivale a chiedere che i segnali attraversino il minor numero possibile di porte logi-
che per arrivare alluscita della rete.
Funzioni in modo affidabile: cio lo stato delluscita in corrispondenza di un assegnato stato delle
entrate deve essere in ogni istante corretto, cio quello previsto dalla tavola della verit.
Purtroppo, queste tre condizioni sono quasi sempre tra loro incompatibili, nel senso che
lottimizzazione di una delle tre condizioni spesso contrasta con quella delle altre due: per esempio,
la versione di minimo costo di una rete non sempre coincide con quella che ha la massima velocit
operativa, n detto che funzioni in maniera affidabile.
Nei paragrafi seguenti illustreremo i metodi per realizzare separatamente le tre esigenze, evidenziando
le incompatibilit fra le medesime.
Data una equazione algebrica in forma qualunque, si pu verificare che P uguale al numero di
termini prodotto o somma contenenti pi di una lettera, pi uno; E uguale al numero di termini
prodotto o somma contenenti pi di una lettera, pi il numero di lettere che compaiono
nellequazione.
La ricerca della espressione minima deve ovviamente avvenire con operazioni lecite, quindi mediante
luso di teoremi o assiomi dellalgebra booleana. In effetti, il teorema che appare adatto allo scopo
(1.12) che permette di ridurre sia P che E: due termini (prodotto o somma) differenti per una variabi-
le vengono sostituiti con uno solo, costituito dalla parte invariante dei due termini stessi.
Due metodi basati sulla applicazione sistematica di questo teorema, che permettono di giungere
rapidamente alla soluzione, verranno illustrati nei paragrafi seguenti. La soluzione viene fornita come
S.d.P. o come P.d.S. e si vedr fra poco che essa anche la versione pi veloce della rete. Tuttavia,
pu accadere che, ricorrendo ad altri teoremi, si possa ridurre ulteriormente il prodotto PE: questo
in ogni caso va a scapito della velocit della rete.
Va precisato che i metodi di minimizzazione hanno una giustificazione logica, cio si fondano sui
teoremi dellalgebra booleana; pertanto non possono tener conto delle particolarit costruttive delle
porte logiche. Per esempio, nel paragrafo 1.15 si fa vedere come possibile talvolta implementare
una funzione con risparmio di porte, sfruttando la propriet di alcune di esse di avere le uscite
direttamente collegabili insieme (logica cablata).
Inoltre, opportuno sottolineare che, poich le porte sono disponibili non come singolo elemento,
ma a gruppi di due, tre, quattro, in un unico contenitore, la minimizzazione del prodotto PE per
una rete realizzata in logica sparsa (cio connettendo insieme circuiti integrati distinti) ha significato
quando quest'ultima vista come facente parte di una rete di pi ampie dimensioni, nella quale,
quindi, ragionevole supporre che gli integrati saranno utilizzati pressoch al 100%. Per reti di
piccole dimensioni, espressioni della stessa funzione con prodotti PE diversi possono richiedere lo
stesso numero di integrati.
Con lo sviluppo della tecnologia di integrazione su larga scala (realizzazione di reti logiche complesse
su singolo circuito integrato) il costo del prodotto finale non pu pi essere valutato semplicemente in
termini di prodotto PE: infatti il costo dipende essenzialmente dall'area di silicio occupata.
Naturalmente, anche in questo caso la minimizzazione ha grande interesse, perch permette di
realizzare reti pi complesse sulla stessa superficie di silicio.
Prima di passare ad illustrare i metodi di minimizzazione, conviene anticipare come essi funzionano.
Essi applicano il teorema (1.12) a tutte le possibili coppie di termini (non si pu sapere a priori quale
coppia dar la soluzione pi conveniente) il massimo numero di volte possibile. I termini ottenuti alla
fine di questa operazione (quando il teorema non pi applicabile) costituiscono il set irriducibile
di implicanti primi. Da questo set va successivamente estratto il sub-set che costituisce la soluzione
cercata (espressione minimale della funzione). In generale, ci saranno pi soluzioni possibili (cio pi
sub-set), e la scelta finale va fatta sulla base di altri criteri, per es. la minimizzazione degli inverter.
In seguito considereremo esempi particolarmente semplici; ma possono verificarsi casi in cui la
ricerca della soluzione minimale non banale. Per una trattazione pi completa, si veda [1].
Ad ogni coppia trovata si applica il teorema (1.12), compilando cos una seconda tavola con i
termini semplificati.
Lo stesso procedimento viene applicato alla seconda tavola, compilandone una terza. Si procede
cos fino a quando il teorema (1.12) non pi applicabile.
Un termine al quale il teorema non pi applicabile un implicante primo.
Lillustrazione del metodo risulter pi chiara procedendo con un esempio.
Consideriamo la funzione
Y= A B C D + A B C D + A B C D + A BCD + AB C D + A B C D + AB C D +
AB C D + ABC D + ABCD
La prima tavola in Fig. 1.21a. Il termine (1) pu essere accoppiato con (8), generando il termine
ABC; con (9), generando il termine ABD; con (10), generando il termine BCD: tutti trascritti nella
seconda tavola. Il termine (2) pu essere accoppiato con (3), con (6) e con (7); ecc.
Nella seconda tavola si procede nello stesso modo, come illustrato nella figura.
Il set irriducibile degli implicanti primi, ora ottenuto, probabilmente ridondante, se si ricorda che
stato ricavato facendo tutti i confronti possibili.
Occorre ora identificare la (o le) somma minimale, che costituita dagli implicanti primi
necessari e sufficienti a coprire' la funzione (con ci si intende dire che, partendo da tali
rovescio) ai termini canonici (5) e (10). Lo stesso dicasi per B D (solo da esso si pu risalire a (3)
e a (4)). Entrambi, per, non sono sufficienti a coprire la funzione (mancano i termini (7) e (8)): per
ottenere la somma minimale necessario aggiungere ad essi o l'implicante primo AB, ottenendo la
soluzione
Y = AB + BD + B D
Y = A D + BD + B D
Entrambe le soluzioni in questo caso hanno lo stesso costo e richiedono lo stesso numero di inverter;
ma naturalmente questo non accade sempre. Per una discussione del caso pi generale in cui non ci
siano implicanti primi necessari, si veda [1].
1 2 3 4 5 6 7 8 9 10
AB X X X X
BD X X* X X*
BD X X* X* X
AD X X X X
Fig. 1.21d
della verit della funzione Y che si vuole minimizzare, e pu essere considerata un altro modo di
scrivere la tavola della verit stessa.
Ogni casella viene associata ad una riga della tavola della verit in modo tale che due caselle
adiacenti (cio aventi un lato in comune)
corrispondano a righe della tavola che
differiscono per il valore di una sola varia-
bile. Lassociazione inoltre tale che le
due caselle alle estremit della stessa riga o
della stessa colonna risultino adiacenti
(cio, come se la mappa fosse chiusa a
cilindro sia in orizzontale che in verticale).
La soluzione per funzioni di due, tre,
quattro variabili in Fig. 1.22. I valori
delle variabili nella tavola della verit sono
opportunamente riportati come indici di
riga e di colonna della mappa cosicch,
scelta una casella, le sue coordinate individuano la riga della tavola della verit cui essa associata.
Nella casella andr trascritto lo stato corrispondente delluscita Y.
La Fig. 1.23 riporta tavola della verit e mappa di Karnaugh per la funzione di 4 variabili gi
considerata per illustrare il metodo di Quine. Consideriamo
funzioni sintetizzate come S.d.P.; conveniente in questo caso
riportare nella mappa solo gli 1.
Per come strutturata la mappa, segue che se si considerano due
caselle adiacenti contenenti un 1, esse corrispondono a due
termini prodotto canonici differenti per una variabile, ai quali
quindi pu essere applicato il teorema (1.12). La mappa di K. ha
quindi il pregio di mettere visualmente in evidenza le coppie a cui
applicabile il teorema. Ma non basta.
Ricordiamo che lapplicazione del teorema (1.12) ad una coppia di termini canonici, ciascuno di n
variabili (prima tabella di Quine), produce un termine di n-1 variabili (seconda tabella di Quine). Pu
accadere che lapplicazione del teorema a due coppie di termini canonici, ciascuno di n variabili,
produca due termini di n-1 variabili ai quali
sia ancora applicabile il teorema,
producendo infine un unico termine di n-2
variabili (terza tabella di Quine). Un esempio
in Fig. 1.23a.
tali che applicando successivamente il teorema (1.12) si giunge ad un implicante primo, di n-k
variabili, allora le caselle corrispondenti nella mappa sono disposte in modo tale che ciascuna
adiacente ad altre k.
A differenza del metodo di Quine, la mappa di K. permette di individuare questi gruppi
immediatamente, rendendo molto celere la minimizzazione.
Alcuni esempi di raggruppamenti validi sono in Fig. 1.24.
Da un gruppo si ottiene un implicante primo quando il gruppo distinto (un gruppo di 2k caselle si
dice distinto quando non interamente contenuto in un gruppo di 2k+1 caselle), cio ha la massima
dimensione possibile (infatti, per quanto sopra detto, questo significa che il teorema sar applicato
il massimo numero di volte ai termini del gruppo).
Le Fig. 1.25b,c mostrano le due soluzioni per la funzione dellesempio, ovviamente eguali a quelle
gi ottenute con Quine.
Luscita della rete in corrispondenza di uno stato N.I. pertanto arbitrario, e pu essere opportuna-
mente scelto come 1 o come 0 cos da ottenere una soluzione di minor costo. Nella mappa di K. la
scelta migliore appare in genere immediata, dopo un rapido esame della mappa stessa. Nel caso del
metodo di Quine, invece, occorre minimizzare la funzione sia assegnando valore 1 allo stato N.I. che
assegnando 0. Solo confrontando i risultati a posteriori si pu dire quale scelta pi conveniente.
Esempi verranno visti nel seguito.
Se si desidera la soluzione minimale sintetizzata come P.d.S., si usa il procedimento duale cio si
considerano gli 0 della mappa. Il procedimento identico.
Le funzioni scritte sotto forma P.d.S. o S.d.P. danno luogo a reti a due livelli: questo anche il nume-
ro minimo di livelli per una funzione logica
non banale.
Y = AC + A C + BC
La rete corrispondente in Fig. 1.27a.
Con la propriet associativa si ha
Y = (A + B)C + A C
la cui rete, a tre livelli, in Fig. 1.27b. Se
si considera il costo delle due soluzioni,
nel primo caso si ha PE = 36, nel secondo caso PE = 32.
Una rete presenta alea statica quando luscita, pur dovendo restare nello stesso stato logico in
seguito al cambiamento di una variabile di entrata, transita per breve tempo nellaltro stato.
Una rete presenta alea dinamica quando luscita, pur dovendo cambiare stato in seguito al
cambiamento di una variabile di entrata, rimbalza una o pi volte tra i due stati prima di fermarsi
definitivamente nello stato corretto.
Il fenomeno illustrato in Fig. 1.28:
come si osserva, in entrambi i casi
la rete assume, sia pure
temporaneamente, un valore
logico errato.
Cominciamo a considerare lalea
statica.
bile di entrata provochi alea statica che tale cambiamento influenzi la stessa uscita attraverso due
percorsi diversi differenti per una inversione.
Y = AB + B C
mentre in Fig. 1.30 disegnato il diagramma
temporale relativo alla transizione 1->0 di B
(mentre A=C=1), tenendo conto del ritardo di
propagazione attraverso le porte, assumendolo
eguale a t per
ciascuna porta (per
semplicit di
disegno, si considera 0 il ritardo dellOR). Come si pu osservare, a
causa della presenza dellinverter le due entrate allOR non cambiano
stato contemporaneamente, e questo fa s che luscita, che dovrebbe
restare a 1 anche dopo la transizione di B, assuma transitoriamente il
valore 0, errato. Si pu anche verificare che la transizione 0-1 di B non d
problemi.
La condizione su esposta non tuttavia sufficiente, come si pu facilmente comprendere: infatti il
ritardo di propagazione non costante per tutte le porte, anche nellambito della stessa famiglia
logica (a causa delle tolleranze di costruzione), ed fortemente variabile da famiglia a famiglia. Per-
tanto, pu accadere che la distribuzione dei ritardi lungo i due percorsi sia, casualmente, tale da
neutralizzare lalea.
La possibilit che si instauri unalea statica nella rete in esame prevedibile gi osservando
lespressione algebrica della funzione: questa richiede che Y resti nello stato 1 quando, per effetto
del cambiamento di stato di B, entrambi i termini prodotto devono cambiare valore logico. A causa
della inevitabile presenza di un inverter, presumibile che il cambiamento non avvenga
contemporaneamente.
La possibilit che si presenti alea statica si traduce nella seguente topologia della mappa di
Karnaugh della funzione, Fig. 1.31: il cambiamento di stato di B che genera lalea statica
corrisponde ad un salto fra due caselle adiacenti, appartenenti a due raggruppamenti diversi.
facile convincersi che non possono esserci alee per transizioni allinterno dello stesso
raggruppamento: queste transizioni, infatti, non comportano alcun cambiamento di valore logico del
termine generato da quel raggruppamento.
Ci si pu anche convincere, osservando l'esempio precedente, che una rete sintetizzata come somma
di prodotti non pu presentare alea se luscita 0 e, dopo il cambiamento di una variabile di entrata
(diciamo B) essa deve restare nello stato 0: questo perch ogni termine prodotto che contiene B non
pu essere eguale a 0 a causa di B, ma deve necessariamente includere qualche altra variabile (in
forma vera o in forma complementata) che 0: poich per ipotesi solo B cambia stato, luscita
resta a 0.
Naturalmente, pu esserci alea anche se la funzione viene sintetizzata come prodotto di somme: in
questo caso, si potr avere alea statica se la funzione deve restare a 0 quando, per il cambiamento
di stato di una variabile, i due termini somma devono cambiare stato contemporaneamente. La
mappa di Karnaugh pu ancora essere usata per evidenziare lalea.
Lalea statica pu essere eliminata aggiungendo alla funzione un termine che, senza alterare la tavola
della verit, costringa la rete a restare nello stato corretto quando la variabile incriminata cambia
stato. Nellesempio considerato, tale termine AC: nella mappa di Karnaugh esso serve a
congiungere i due raggruppamenti iniziali, facendo ora s che la transizione di B avvenga nellambito
di uno stesso raggruppamento, appositamente creato. possibile dimostrare che se lalea viene
eliminata considerando la forma S.d.P. della funzione, anche la forma P.d.S. della stessa funzione
non presenta alea.
, comunque, evidente che leliminazione dellalea statica comporta lintroduzione di un termine
ridondante, cio ha come contropartita la rinuncia alla forma minima della funzione.
Consideriamo ora lalea dinamica.
Condizione necessaria affinch il cambiamento di stato di una variabile di entrata provochi alea
dinamica che tale cambiamento influenzi la stessa uscita attraverso almeno tre percorsi diversi,
differenti per una inversione.
Questa situazione si pu presentare, tipicamente, quando nella espressione algebrica della funzione
compaiono termini raccolti a fattore comune, come accade quando si vuole diminuire il costo di una
rete applicando la propriet associativa.
Si consideri (come esempio costruito appositamente) la rete di Fig. 1.32, relativa alla funzione
Y = BC + AB (AB + C )
La variabile B soddisfa la
condizione necessaria per il
verificarsi dellalea dinamica. In
Fig. 1.33 considerata la
transizione 1->0 di B, mentre
A=C=1, nellipotesi che tutte
le porte abbiano lo stesso
ritardo (si considera 0 il ritardo
dellOR di uscita).
Naturalmente, anche per lalea
dinamica non possibile dare
condizioni sufficienti per il suo
verificarsi: i ritardi reali delle porte usate possono essere tali da neutralizzarla.
Leliminazione dellalea dinamica avviene modificando lespressione algebrica, rifattorizzandola o,
meglio, eliminando la fattorizzazione (con conseguente aumento del costo).
Conviene infine osservare che il problema dellalea nelle reti combinatorie pu essere irrilevante in
alcune applicazioni, data la transitoriet del fenomeno: il caso, per esempio, se luscita della rete
utilizzata per pilotare un display a LED. Se invece la stessa rete dovesse pilotare un contatore di
impulsi, lalea darebbe luogo a un conteggio errato: in questo caso imperativo eliminarla.
Y = Y1. Y2..
Infatti, se luscita della porta Yi nello stato basso (che lo 0 in logica positiva, interruttore chiuso),
il terminale di uscita comune Y cortocircuitato a massa. Pertanto, basta che una delle uscite Yi sia
nello stato basso perch il terminale comune Y sia nello stato basso: e questa proprio la funzione
AND per logica positiva (o, se si preferisce,
la funzione OR per logica negativa). Pertan-
to, viene realizzata la funzione logica AND
senza materialmente usare una porta, ma con
un cablaggio. Si parla di AND cablato
(wired-AND), oppure di OR cablato
(wired-OR).
La logica cablata normalmente usata nella architettura dei calcolatori, perch permette alle varie
periferiche di comunicare fra loro e con lunit centrale trasmettendo o ricevendo dati su un unico
insieme di linee (bus), con risparmio di hardware.
le porte in wired-or siano abilitate a trasmettere una alla volta sul bus
ci sia un 'arbitro' che gestisca il controllo del sistema, decidendo di volta in volta quale porta
abilitare alla trasmissione
il valore logico dell'uscita comune Y sia considerato valido solo in sincronismo con il segnale di
abilitazione.
YT = AjXj
Lunit Uj pu ricevere informazione da una delle altre n-1 unit, in accordo con la funzione
= A1 X 1 A2 X 2 .....An X n X j
Se si utilizzano NAND con uscita open-collector per realizzare i prodotti Aj X j , lo schema di co-
municazione per il bit pu allora essere modificato come in Fig. 1.38: la porta OR di Fig. 1.37
stata sostituita da un filo di collegamento (per semplicit, non mostrata la resistenza di pullup).
La Fig. 1.39 mostra un esempio per tre unit. L'unit A pu trasmettere un bit sulla linea di bus
mostrata, quando il 'bus arbitrator' abilita la
porta A1 ad accedere al bus fornendo il
segnale XA -> H, e ponendo nel contempo
XB e XC -> L: in coincidenza con l'abilita-
zione di A a trasmettere, le unit B e C sono
abilitate a ricevere il bit, qualora siano inte-
ressate. Le porte A1, B1, C1 devono essere
del tipo open-collector.
Si noti la semplicit dellhardware di interfaccia ingresso-uscita, che tra laltro non dipende dal nume-
ro delle unit che accedono al bus, data lassenza dellOR, e pu quindi essere standardizzato.
Il problema stato risolto con lintroduzione delle porte a tre stati logici, o 'tri-state'. Queste porte
hanno, oltre agli usuali terminali di entrata e di uscita, un terminale di controllo che agisce come
segue. Supponendo, per es., che il controllo tri-state sia attivo alto, quando esso L la porta esegue
la propria funzione logica in accordo con la tavola della verit, e lo stato di uscita realizzato secon-
do lo schema degli switches illustrato in Fig. 1.34. Quando invece il controllo tri-state H, luscita
della porta va nel 'terzo stato logico', corrispondente in fig. 1.34 a entrambi gli switches aperti: il
terminale di uscita della porta ora flottante ed il terzo stato logico viene perci chiamato stato alta
impedenza (Z).
Il collegamento wired-OR di porte tri-state avviene senza necessit di resistenza di pull-up, e funzio-
na come segue. Le porte collegate siano tutte inizialmente nello stato Z; quando il controllo tri-state
abilita una (e una sola) delle porte, allora se luscita di tale porta per es. L, anche luscita comune
Y viene forzata nello stato L, la capacit del nodo si scarica rapidamente e non c nessun problema
di cortocircuito dellalimentazione. Se invece luscita della
porta va H, anche Y andr H; la capacit viene altrettanto
rapidamente caricata, a differenza delle porte open-
collector.
La coppia di porte di accesso ad una linea di bus mostrata in Fig. 1.40 disponibile su singolo
integrato (bus transceiver, per es. 75160).
BIBLIOGRAFIA
[1] Edwards, The principles of switching circuits. MIT Press, 1973
[2] I. Mendolia, U. Torelli, Elettronica digitale e dispositivi logici. Hoepli
[3] E. McCluskey, Logic design principles. Prentice-Hall
[4] H. Taub, D. Shilling, Digital integrated electronics. McGraw-Hill