
































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Una panoramica completa della sintesi dei circuiti combinatori, coprendo argomenti come l'analisi dei circuiti nand e nor, la decomposizione delle funzioni, la sintesi dei circuiti nand e nor, l'implementazione delle funzioni simmetriche e l'utilizzo delle mappe di karnaugh. Esempi pratici e illustrazioni per facilitare la comprensione dei concetti.
Tipologia: Schemi e mappe concettuali
1 / 40
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!

































Capitolo 3
CIRCUITI COMBINATORI
3.1) Introduzione. Si chiamano combinatori quei circuiti il cui funzionamento, per quanto riguarda la relazione ingresso uscita, e' descritto da una funzione logica; quelli cioe' per i quali gli ingressi e le uscite possono assumere solo uno di due valori nettamente distinti ed in cui l'uscita, istante per istante, e' funzione unicamente degli ingressi. Circuitalmente una funzione logica si realizza usando componenti capaci di assumere l'uno o l'altro di due stati diversi. Nei circuiti elettronici questi due stati sono realizzati mediante due livelli caratteristici di tensione, detti livello alto ( h ) e livello basso ( b ). L'effettiva corrispondenza tra h e b e le costanti logiche 0 e 1 e' convenzionale e va precisata di volta in volta. E' detta logica positiva la convenzione secondo la quale il valore 1 viene associato al livello alto h ; logica negativa quello in cui il valore 1 e' associato al livello basso b. Si chiama circuito logico elementare o circuito porta ciascun circuito a n ingressi e un'uscita il cui valore e' 1 in corrispondenza alle configurazioni degli ingressi descritte dalle funzioni logiche OR, AND, NOT, NAND, NOR. Indipendentemente dalla loro realizzazione circuitale e dal tipo di logica, i circuiti porta vengono indicati graficamente con i simboli di fig. 3.1.1.
OR
AND
NOT
NAND
NOR
figura 3.1.
Per i circuiti combinatori, come per ogni altro tipo di circuito, si pongono due problemi opposti: da un lato quello dell'analisi, cioe' quello della descrizione del funzionamento del circuito, una volta che sia nota la sua configurazione; dall'altro quello della sintesi, cioe' del progetto di un circuito che realizzi una certa funzione logica, comunque descritta.
3.2) Itinerari e livelli. Ogni circuito di commutazione e' formato da un certo numero di elementi (NAND, NOR, ecc.) tra loro variamente interconnessi, da un certo numero di ingressi, contraddistinti in fig. 3.2.1 con i simboli Ai , e da un certo numero di uscite, contraddistinte nella medesima figura con i simboli Bk.
Capitolo 3
2 5
B 2
B (^1)
A (^2)
6
1 4 A (^1)
A 3 3 B^3
figura 3.2.
Si dice itinerario tra due elementi X e Y qualsiasi percorso che colleghi X e Y. Si dice invece livello di un elemento X rispetto all'uscita Bj e a un determinato itinerario I il numero di elementi, X compreso, disposti lungo l'itinerario I a partire dall'uscita Bj. Livello di una variabile rispetto all'uscita Bj e all'itinerario I e' il numero di elementi compresi tra il rispettivo ingresso e l'uscita Bj lungo l'itinerario I. In fig. 3.2.2 sono riportati due esempi.
A A A A A A A
B
G
G
G
G
1 2 3 4 5 6 7 1
2
3
4
I livello
II livello
(a)
A A A A
A
A
G
G (^12) G G 3 4
5
6
1
2
3 4 B
II livello I livello
III livello III e IV livello
(b)
figura 3.2.
Si noti che uno stesso elemento puo' avere piu' livelli secondo l’itinerario. Ad esempio in fig. 3.2.2 (b) il gate G 1 e' di III livello secondo l'itinerario G 4 , G 3 , G 1 e di IV livello secondo l'itinerario G 4 , G 3 , G 2 , G 1.
Capitolo 3
3
x x (^) x
1 2 x 4
x
x
5
6 y
figura 3.4.
Applicando ripetutamente il teorema di De Morgan si puo' passare alla forma AND-OR- NOT.
E' possibile pero' ricavare la y, nella forma di somma di prodotti, direttamente dall'esame del circuito, quando si tengano presenti le proprieta' dell'operatore NAND. Si esaminino i seguenti semplici circuiti (figura 3.4.2):
x x
x (^12) y (^) x (^12) y y = x + x
_ _ 1 2 y=x .x 1 2
x x (^) x x x x x
y y
1 (^2 )
1 2 3 y = x. x (^) + x 4 _ 1 2 3 y=x .x + x .x 1 2 3 4
x x y
x x (^12 ) 4 y=(x + x ) .x + x
_ _ _ 1 2 3 4
figura 3.4.
Dall'esame di questi circuiti e della loro funzione di uscita si deduce che in un circuito NAND, comunque complesso, la funzione di uscita, nella forma di somma di prodotti, e' la somma di tutte le variabili che entrano al primo livello, negate, piu' tanti termini quanti sono
Capitolo 3
gli itinerari I 12 verso gli elementi del secondo livello; ogni itinerario I 12 da' origine al prodotto di tutte le variabili che entrano al secondo livello e di tanti fattori quanti sono gli itinerari I 23 verso il terzo livello; ogni itinerario I 23 origina la somma di tutte le variabili che entrano al terzo livello, negate, piu' tanti termini quanti sono gli itinerari verso il quarto livello, e cosi' via. In definitiva:
**1) I livelli dispari originano somme.
A titolo di esempio si analizzi il circuito di fig. 3.4.3 secondo le regole teste' enunciate.
(^52)
X X 1 2 7 4 1 Y
3
X 3
6
figura 3.4.
Poiche' esistono due itinerari I 12 ,I 13 la funzione di uscita sara' la somma di due termini. Di questi il primo, proveniente dal gate 2, sara' il prodotto di y 6 , y 5 e y 4 .Il termine proveniente da y 6 sara' la somma di y 7 e x 2 (in quanto x 2 entra su un livello dispari) e poiche' il gate 7 e' a livello pari esso dara' origine al prodotto delle variabili su esso entranti. Procedendo in modo analogo per tutti gli itinerari si ottiene:
= x 1 .x 2 .x 3 +x 1 .x 2 .x 3 +x 1 .x 3 +x 1 .x 2 +x 1 .x 3 =
=x 1 .x 2 .x 3 +x 1 .x 2 +x 1 .x 3 +x 2 .x 3
Capitolo 3
Con una vera e propria tavola di verita', che e' in definitiva l'effettivo punto di partenza della sintesi e a cui tutti gli altri tipi di assegnazione devono essere ricondotti.
Con un'espressione analitica, che e' il modo piu' conciso, anche se non univoco, di descrivere il funzionamento di un circuito.
Con uno schema logico, procedura generalmente usata quando un determinato circuito logico debba venire riprogettato con componenti diversi. In tal caso, con le regole dell'analisi, si ricava un'espressione analitica della funzione y.
Qualunque sia il metodo di assegnazione la sintesi procede partendo dalla tavola di verita' o da un'espressione analitica e applicando i metodi di semplificazione delle funzioni logiche fino a giungere alla forma piu' conveniente per gli scopi che ci si propone. Si noti che non sempre la forma piu' conveniente corrisponde alla forma minima della funzione. Ad esempio la forma minima algebrica non sempre si puo' realizzare circuitalmente in quanto vi possono essere dei vincoli sul numero massimo di livelli. Infatti quanto esposto precedentemente e cioe' che nei circuiti combinatori l'uscita e', istante per istante, funzione unicamente degli ingressi, non significa che la variazione degli ingressi sia avvertita immediatamente in uscita; sta piuttosto a significare che ogni configurazione di ingresso da' luogo a una determinata uscita e che eventuali transitori di commutazione possono ritardare, ma non modificare quest'uscita. Ora il tempo di commutazione di qualsiasi elemento fisico, per quanto piccolo, non e' mai nullo; il tempo di risposta di un circuito a n livelli al variare della configurazione di ingresso e' n.∆ , avendo indicato con ∆ il tempo di commutazione del singolo componente. In definitiva il ritardo totale tra ingresso e uscita e' proporzionale al numero di livelli e potendo la forma minima di una funzione contenere un numero di livelli molto elevato, la sua diretta realizzazione circuitale potrebbe dar luogo a ritardi intollerabili. La forma in cui si ha il minimo ritardo e' quella a due livelli, che d'altra parte e' quella che si ottiene con i metodi di semplificazione che sono stati esposti al capitolo II. La convenienza di eventuali fattorizzazioni va valutata caso per caso. Si puo' concludere percio' che la sintesi di un circuito combinatorio procede attraverso i seguenti passi, di cui quello (5) non puo' venir condotto secondo un procedimento si- stematico, ma andra' verificato di volta in volta.
**1) Descrizione del funzionamento del circuito.
Capitolo 3
3.7) Sintesi di circuiti AND-OR-NOT. Il procedimento e' banale; consiste nel ricavare, a partire dalla tavola di verita', la forma minima a due livelli; passare poi da questa alla forma minima piu' conveniente, eventualmente con tecniche basate sul concetto di decomponibilita', che saranno illustrate piu' avanti. Infine si disegna il circuito. Si voglia ad esempio realizzare un circuito a tre ingressi, sui quali possa presentarsi un numero binario compreso tra 0 e 5. All'uscita di tale circuito debba essere realizzato il prodotto per 3 del numero di ingresso.
x x x 1 2 3 y 1 y 2 y 3 y 4
figura 3.7.
Poiche' il massimo numero di uscita e' 15, rappresentabile con 4 bit, sara' necessario sintetizzare quattro funzioni logiche. Le relative tavole di verita' sono riportate in fig. 3.7. mentre in fig. 3.7.2 si hanno le corrispondenti mappe di Karnaugh.
x
x x 1
2 3
0 1
00 01 11 10 1 1 1 φφφφ φφφφ y (^1)
x
x x 1
2 3
0 1
00 01 11 10
1 1
1 φφφφ φφφφ y (^2)
x
x x 1
2 3
0 1
00 01 11 10 1 1
1 φφφφ φφφφ y (^3)
x
x x 1
2 3
0 1
00 01 11 10 1 1
1 φφ φφ φφφφ y (^4) figura 3.7.
Utilizzando opportunamente le condizioni non specificate si ottiene:
y 1 =x 1 +x 2 .x 3 y 2 =x 1 +x 2 .x 3 y 3 =x 2 .x 3 +x 2 .x 3 y 4 =x 3
cui corrisponde il circuito di fig. 3.7.3, ottenuto mettendo in comune tra le funzioni y 2 e y 3 il termine (^) x .x 2 3.
Capitolo 3
X X X X 00
01
11
10
00 01 11 10
1
1
1 1
1 1
1
1 2 3 4
figura 3.7.
Per la realizzazione della (3.7.1) sono sufficienti 4 gate, mentre per la (3.7.2) ne sono necessari 6. Il circuito realizzato e' allora quello relativo all'espressione (3.7.1) ed e' riportato in fig. 3.7.
x x x x x x
y
_ _ _
1 3 4 2 3 4
figura 3.7.
Si noti che negli esempi fatti si e' supposto di avere a disposizione all'ingresso del circuito sia le variabili dirette che la loro negazione. Quando questa situazione non si verifica anche il numero di invertitori va minimizzato. Ad esempio la funzione
y =x 1 +x 2 +x 3 +x 4
realizzabile con quattro invertitori e un gate OR, puo' essere realizzata molto piu' conve- nientemente tenendo presente che:
y =x 1 +x 2 +x 3 +x 4 =x 1 .x 2 .x 3 .x 4
richiedendo in tal caso solamente un AND e un NOT.
Capitolo 3
A causa della proprieta' associativa di somma e prodotto, quando qualcuno dei gate cui si perviene nel corso del progetto ha un numero di ingressi eccessivamente elevato, lo si puo' spezzare in due o piu' elementi dello stesso tipo, aumentando pero' il numero di livelli.
3.8) La decomposizione in sconnessione semplice. La semplificazione dei circuiti mediante la fattorizzazione e' una tecnica soddisfacente nella maggior parte dei casi, ma e' un processo di tipo empirico largamente dipendente dall'esperienza e dal colpo d'occhio di chi opera. Sarebbe conveniente avere a disposizione qualche metodo piu' sistematico; cio' si puo' ottenere mediante la decomposizione funzionale. Il metodo di semplificazione in sostanza consiste nello spezzare una singola funzione complessa in un certo numero di funzioni semplici ed e' stato proposto da Ashenhurst e Curtis. Sia x 1 , x 2 ,...., x (^) n un insieme di variabili di commutazione e siano A e B due sottoinsiemi disgiunti di X, tali che:
A (^) ∪ B=X A∩ B=Φ
Sia assegnata una funzione booleana:
f ( x 1 ,x 2 ,....,xn)
Se e' possibile individuare due funzioni F e ϕ, tali che:
f (X ) =F[ϕ ( A),B]
allora si dice che F e ϕ formano una decomposizione in sconnessione semplice della funzione f. L'insieme delle variabili A e' detto insieme delle variabili al contorno , mentre l'insieme B e' quello delle variabili indipendenti. Il significato circuitale della decomposizione in sconnessione semplice e' illustrato in fig. 3.8.1.
F
A
ΒΒ ΒΒ
φφφφ
f figura 3.8.
Capitolo 3
ϕ ( x 1 ,x 4 ). Si supponga che la ϕ( x 1 ,x 4 )sia la α. Allora, affinche' la funzione f sia decompo-
nibile le rimanenti righe devono rappresentare o ϕ o ϕ o la costante logica 1 o la costante
logica 0. In altre parole le righe successive alla prima devono essere o identiche a ϕ o al suo
complemento oppure devono essere riempite totalmente con 1 o 0.
0 1 9 8
2 3 11 10
6 7 15 14
4 5 13 12
00
01
11
10
1 4 2 3 αα αα
ββββ
γγγγ
δδδδ
figura 3.8.
Questa condizione nell'esempio fatto e' rispettata, in quanto:
f ( x 1 ,x 2 ,x 3 ,x 4 ) = x 2 .x 3 .ϕ(x 1 ,x 4 ) +x 2 .x 3 .ϕ(x 1 ,x 4 ) +x 2 .x 3 =
=F( ϕ (x 1 ,x 4 ),x 2 ,x 3 )
con:
ϕ ( x 1 ,x 4 ) =x 1 .x 4
Il criterio descritto permette di discriminare se una funzione e' decomponibile, ma si applica con difficolta' notevolissime in mappe di partizione di dimensioni notevoli. Si definisca allora molteplicita' di colonna il numero di differenti insiemi di 1 e 0 che si possono individuare esaminando le colonne della mappa di partizione. Ad esempio, nella mappa di fig. 3.8.2 si ha una molteplicita' di colonna 2, in quanto si possono individuare unicamente i due insiemi:
Capitolo 3
Il seguente teorema offre allora un semplice metodo per determinare se una mappa di partizione corrisponde ad una decomposizione in sconnessione semplice. TEOREMA: Una mappa di partizione corrisponde ad una decomposizione in sconnessione semplice se e solo se la molteplicita' di colonna e' minore o uguale a 2.
Infatti, come gia' e' stato detto, se una funzione e' decomponibile, i valori funzionali di
ciascuna riga della mappa di partizione devono essere o 0 o 1 o ϕ o ϕ. Le righe che
corrispondono alle costanti 0 e 1 contengono gli stessi valori in ciascuna colonna e quindi non contribuiscono alla molteplicita'. D'altra parte se una colonna ha un 1 in una riga ϕ allora
deve contenere uno 0 nelle righe (^) ϕ e un 1 nelle altre righe (^) ϕ. Sono quindi possibili solo due
distinti tipi di colonna. In modo simile si puo' dedurre che, se si assume una molteplicita' di colonna 2, si e' in presenza di una decomposizione in sconnessione semplice. Comunque sia, il lavoro da eseguire rimane notevole, poiche' e' necessario investigare su tutte le possibili partizioni delle variabili in variabili al contorno e variabili indipendenti. Si ricorre allora all'uso della carta di decomposizione, che altro non e' se non l'insieme delle mappe di Karnaugh su cui sono riportate le posizioni dei termini minimi per ciascuna possibile combinazione di variabili indipendenti e al contorno. In fig. 3.8.3 e' riportata la carta di decomposizione per funzioni di quattro variabili. Per usare la carta si cerchiano i termini minimi delle funzione su tutte le mappe e si individuano quelle in cui la molteplicita' di colonna e' 2 o 1. Si noti che le carte di decomposizione di dimensione 4x4 vanno utilizzate sia direttamente che trasposte. Ad esempio, la prima delle tre
Le carte di dimensione 2x8 vanno invece esaminate solo direttamente poiche' la decomposizione secondo una sola variabile al contorno e' una decomposizione banale. Si esamini ad esempio la funzione:
Dall'esame della carta di decomposizione si ottengono le seguenti possibili partizioni:
2 1 3 4 2 1 3 4 2 1 3 4 x. x,x ,x x. x,x ,x
f x /x ,x ,x x .x .x .x x .x .x .x = ϕ + ϕ
2 3 1 4 2 3 2 3 1 4 2 3 1 4 x .x x .x. x ,x x .x. x ,x
f x ,x /x ,x x .x x .x .x x x .x .x x = + λ + λ
1 2 3 4 1 2 1 2 3 4 1 2 3 4 x .x x .x. x ,x x .x. x ,x
f x ,x /x ,x x.x x .x .x x x .x .x x = + ψ + ψ
Capitolo 3
3.9) Altre decomposizioni disgiuntive. E' evidente che esistono altre forme di decomposizione diverse che non quella in sconnessione semplice. In questo paragrafo verranno prese in esame le decomposizioni che si ottengono con la partizione dell'insieme delle variabili indipendenti in tre o piu' sottoinsiemi disgiunti. Sia X = x 1 , x 2 ,......,x (^) n un insieme di n variabili di commutazione e siano A 1 , A 2 ,....,Am dei sottoinsiemi disgiunti di X, tali che:
A 1 ∪A 2 ∪.....∪Am=X
La decomposizione, ove possibile, in una delle due forme:
f (X ) =F[ψ 1 (A 1 ), ψ 2 (A 2 ),..., ψm(A (^) m)]
oppure
f ( X) =F[ψ 1 ( A 1 ), ψ 2 ( A 2 ),..., ψm− 1 ( Am− 1 ),Am]
prende il nome di decomposizione in sconnessione multipla. La decomposizione nella forma:
f (X ) =F[λ (ψ [A ],B),C]
o, piu' in generale:
f (X ) =F[λ (^) m − 1 (λ (^) m− 2 [.... λ 2 ( λ 1 [A 1 ],A 2 ),....,Am− 2 ],Am− 1 ),Am]
e' conosciuta come decomposizione in sconnessione iterativa. Infine la combinazione di queste due forme, cioe':
f (X ) =F[γ (ψ [A ],B), λ( )C,D]
e' detta decomposizione in sconnessione complessa. In ogni caso la decomposizione sara' non banale se gli insiemi delle variabili al contorno ne conterranno almeno due. Esiste un certo numero di teoremi che mettono in relazione le decomposizioni appena illustrate con quella in sconnessione semplice e permettono di estendere l'uso della carta di decomposizione alla loro determinazione. Di questi teoremi, di dimostrazione spesso lunga e noiosa, ci si limitera' a dare l'enunciato ed un esempio di applicazione.
3.9.1) Decomposizione iterativa. Sia f(X) una funzione per la quale esistano due diverse decomposizioni in sconnessione semplice:
Capitolo 3
f ( X) =F[λ ( A,B),C] =G[ψ (A ),B,C]
Esiste allora la decomposizione in sconnessione iterativa
f (^) ( X) =F[ρ (^) (ψ [A ],B),C]
con:
ρ( ψ [A ],B) =λ(A, B)
Quale esempio di applicazione di questo teorema si consideri la funzione:
f ( x 1 ,x 2 ,x 3 ,x 4 ,x 5 ) = (^) ∑(5,10,11,14 ,17,21,26, 30 )m
In fig. 3.9.1 sono riportate due mappe di decomposizione della funzione; da esse si deduce che esistono le due seguenti decomposizioni in sconnessione semplice:
00 01 11 10 00 01 11 10
0 1
00 01 11 10
x x x
x x
00 01 11 10 00 01 11 10
0 1
00 01 11 10
x x x
x x
0 1 5 4 16 17 21 20 2 3 7 6 18 19 23 22 10 11 15 14 8 9 13 12
26 27 31 30 24 25 29 28
0 1 3 2 4 5 7 6 20 21 23 22 16 17 19 18
8 9 11 10 12 13 15 14 28 29 31 30 24 25 27 26
1 3 5
2 4
2 4 5
1 3
figura 3.9.
f (X ) =F[ψ ( x 1 ,x 3 ,x 5 ),x 2 ,x 4 ]
f (X ) =G[λ ( x 1 ,x 3 ),x 2 ,x 4 ,x 5 ]
Le condizioni enunciate sono soddisfatte ponendo:
A = (x 1 ,x 3 ) B = (x 5 ) C =(x 2 ,x 4 )
Dalla prima mappa di partizione della fig. 3.9.1 si ottiene:
f (X ) =x 2 .x 4 .ψ( x 1 ,x 3 ,x 5 ) +x 2 .x 4 .ψ(x 1 ,x 3 ,x 5 )
con:
Capitolo 3
Dalla carta trasposta si ottiene:
con:
00 01 11 10 00
01
11
10
x x
x 1 x 2
3 4 0
1
3
2
4
5
7
6
12
13
15
14
8
9
11
10
figura 3.9.
Dall'esame della carta diretta si ottiene:
con:
Il teorema enunciato indica l'esistenza di una decomposizione multipla:
1 1 1 1
x x ψψψψ 0 1
00 01 11 10
1 2
λλλλ =0 λλλλ =1 λλλλ =0 λλλλ =
1 1
0 1
0 1111
λλλλ ψψψψ
figura 3.9.
Si ottiene pertanto:
Capitolo 3
dove:
ψ=x 3 ⊕x 4
λ=x^1 ⊕x 2
Anche in questo caso l'esempio e' banale, in quanto lo stesso risultato poteva essere ottenuto per ispezione diretta. Tuttavia esso e' importante in quanto il metodo descritto si estende facilmente a funzioni con qualsiasi numero di variabili. Una decomposizione in sconnessione multipla puo' poi essere individuata anche nel caso seguente. Sia f(X) una funzione per la quale esistano le due seguenti decomposizioni in scon- nessione semplice:
Esiste allora la decomposizione in sconnessione multipla
Quale esempio si consideri la funzione di disparita' di 5 variabili, di cui due mappe di partizione sono riportate in fig. 3.9.5.
00 01 11 10 00 01 11 10
0 1
00 01 11 10
x x x
x x
00 01 11 10 00 01 11 10
0 1
00 01 11 10
x x x
x x
0 1 3 2 8 9 11 10 24 25 27 26 16 17 19 18
4 5 7 6 12 13 15 14 28 29 31 30 20 21 23 22
0 1 9 8 2 3 11 10 6 7 15 14 4 5 13 12
16 17 25 24 18 19 27 26 22 23 31 30 20 21 29 28
3 4 5
1 2
1 2 5
3 4
figura 3.9.
Dall'esame della prima carta trasposta si ottiene la decomposizione:
con: