Post on 12-Sep-2018
Esercitazioni di Reti Logiche
Lezione 4
Progettazione dei
circuiti logici combinatori
Zeynep KIZILTAN
zkiziltan@deis.unibo.it
Argomenti
• Procedura di analisi dei circuiti combinatori.
• Procedura di sintesi dei circuiti combinatori.
• Alcuni blocchi logici di base & loro uso nei circuiti:
– Sommatore (Adder)
– Decodificatore (Decoder)
– Multiplexer
– PLA (Array logica programmabile)
Procedura di analisi
• L’obiettivo dell’analisi è determinare la funzione che un circuito implementa.
• A partire dallo schema circuitale, il processo di analisi individua:
– le funzioni booleane;
– opp. una tabella di verità direttamente dal circuito;
– eventualmente una descrizione del funzionamento
del circuito.
Procedura di analisi
Per eseguire l’analisi:
1. Accertarsi che il circuito è combinatorio:
– ovv, senza percorsi di retroazione o elementi di memoria.
2. Determinare le funzioni booleane:
1. dividere il circuito in piccoli blocchi con una sola uscita.
2. etichettare tutte le uscite.
3. individuare le corrispondenti funzioni booleane.
! una funzione può dipendere da un’altra.
4. ottenere un’espressione delle uscite del circuito solo in
termini di variabili di ingresso.
Procedura di analisi
! Se il circuito è progettato gerarchicamente, occorre
cominciare dal livello più basso, proseguire nell’ordine
a quello successivo.
3. Semplificare le funzione delle uscite mediante manipolazioni algebriche o tramite le mappe di Karnaugh.
A
B
C
D
F
G
Esercitazione 1
• Analizzare il circuito seguente. Determinare le espressioni booleane per le uscite F e G in funzione dei quattro ingressi A, B, C, e D.
A
B
C
D
F
G
T1
T2
T3
T4
1. Il circuito è combinatorio:• non ci sono percorsi di retroazione/elementi di memoria
2. Etichettiamo le uscite.
3. Determiniamo le corrispondenti funzioni:– T1 = BC
– T2 = (A’D)’
– T3 = (A’T2)’
– T4 = (A’+T1)
A
B
C
D
F
G
T1
T2
T3
T4
4. Determiniamo le funzioni delle uscite in forma di somma di prodotti, sostituendo le funzioni intermedie con le loro espressioni:
F = T3T4
= (A’T2)’ (A’+T1)
= [A’ (A’D)’]’(A’+BC)
= [A+(A’D)] (A’+BC)
= (A+D)(A’+BC)
= ABC + BCD + A’D
A
B
C
D
F
G
T1
T2
T3
T4
4. Determiniamo le funzioni delle uscite in forma di somma di prodotti, sostituendo le funzione intermedie con le loro espressioni:
G = T4T2
= (A’+T1)[(A’D)’]
= (A’+BC)[(A’D)’]
= (A’+BC)(A+D’)
= A’D’ + BCD’ + ABC
D
C
AB
CD1100 01 10
00
01
11
10
B
A
5. Semplifichiamo le funzioni delle uscite tramite le mappe di Karnaugh.
F = ABC + BCD + A’D
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
F = ABC + A’D
D
C
AB
CD1100 01 10
00
01
11
10
B
A
5. Semplifichiamo le funzioni delle uscite tramite le mappe di Karnaugh.
G = ABC + BCD’ + A’D’
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
G = ABC + A’D’
Procedura di analisi
• Per determinare la tabella di verità direttamente:
1. costruire la tabella, elencando tutte le combinazioni dei valori delle n variabili di ingresso (2n righe).
2. eseguire i primi 3 passaggi della procedura per determinare le funzioni booleane.
3. indicare nella tabella i valori di tutte le funzioni intermedie.
4. indicare nella tabella i valori di tutte le uscite del
circuito.
Procedura di sintesi
• L’obiettivo della sintesi è determinare il circuito che implementa un funzionamento.
• A partire dalla descrizione verbale, il processo di sintesi individua:
– un diagramma logico;
– opp. un insieme di equazioni booleane dalle quali
il diagramma può essere ricavato.
Procedura di sintesi
Per eseguire la sintesi:
1. Identificare il numero di ingressi e uscite.
2. Costruire la tabella di verità, interpretando la specifica verbale.
3. Determinare le funzioni booleane semplificate delle uscite come funzione delle variabili di ingresso (utilizzando le mappe di Karnaugh).
4. Disegnare il diagramma logico.
Esercitazione 2
• Progettare un circuito combinatorio per convertire un codice BCD in un codice excess-3.
Codice BCD
• I calcolatori hanno bisogno di memorizzare un numero decimale per convertirlo nel sistema binario.
• Poiché i calcolatori possono gestire soltanto 0 e
1, bisogna codificare le cifre decimali soltanto con i simboli 0 e 1.
• Il codice binario decimale (BCD) è un sistema per codificare i numeri decimali:
– associa ogni cifra decimale 0,1,2,..9 a un numero binario di 4 bit.
• Un numero con n cifre decimali codificato in BCD richiede 4n bit:
– ciascun gruppo di quattro bit rappresenta una cifra decimale.
• (185)10 = (0001 1000 0101) BCD ≠ (10111001)2
1 8 5
Codice excess-3
• Cambiando il numero binario di 4 bit associato a ciascun decimale, altri sistemi di codificazione possono essere ottenuti.
• Excess-3 è un sistema per codificare i numeri decimali:– associa ogni cifra decimale al numero binario di BCD
aumentato di 3 unità.
• (185)10 = (0001 1000 0101) BCD = (0100 1011 1000) E-3
0100 = 0001 + 0011
1011 = 1000 + 0011
1000 = 0101 + 0011
Convertitore di codice
1. Il numero di ingressi e uscite
– tutti e due i codici utilizzano 4 bit.
→ ci sono 4 variabili A,B,C,D di ingresso e 4 variabili
W,X,Y,Z di uscita.
Convertitore di codice
2. La tabella di verità
– Il codice E-3 è ottenuto aggiungendo (0011)2 = 310 al codice BCD.
– solo 10 righe:
• le altri 6 combinazioni dei valori non sono usate.
→ esse possono essere trattate come condizioni di non-specificazione nelle
mappe.
3. Funzioni booleane
– ciascuna mappa rappresenta una delle 4 uscite.
4. Il diagramma logico
• Nella implementazione, le espressioni possono essere manipolate algebricamente per condividere le porte.
= A + B(C+D)
= B’(C+D)+BC’D’
= CD+C’D’
= D’
Sommatore (Adder)
• Un sommatore binario è un circuito combinatorio che dà in uscita la somma aritmetica di 2 numeri di n bit:
• 2 blocchi logici di base permettono la realizzazione di un sommatore:
– Half adder
– Full adder
X1 X2 …. Xn
Y1 Y2 …. Yn
Z1 Z2 …. Zn
} Riguardano la somma in una colonna
Half adder
• Un circuito aritmetico che somma due numeri binari a 1 bit:
– X+Y
– S: il bit di somma
– C: il bit di riporto
Half adder
• Le funzioni booleane:
– S = X Y
– C = XY
→il circuito può essere implementato utilizzando
una porta XOR e una porta AND.
⊕
Full adder
• Un circuito aritmetico che somma 3 numeri binari a 1 bit:
– X+Y+Z
– Z: il riporto che viene dalla
colonna precedente
– S: il bit di somma
– C: il bit di riporto
Full adder
⊕
• Le funzioni booleane:
– S = X Y Z
– C = XY+Z(X Y)
→il circuito può essere implementato utilizzando
2 half-adder e una porta OR.
⊕⊕
⊕ ⊕
Sommatore binario parallelo• Un circuito che utilizza n full adder in parallelo.
• I full adder sono connessi in cascata:
– l’uscita riporto dell’uno è connessa all’ingresso riporto del successivo.
• Ogni full adder ha come ingressi Ai e Bi (le variabili della colonna i-esima della somma).
• Il riporto in ingresso al primo adder è fissato a 0.
• La somma è ottenuta dalla sequenza CnS(n-1)…S0.
Esercitazione 3
• Realizzare un circuito per la sottrazione tra 2 numeri binari di 4 bit (senza segno) utilizzando un sommatore binario parallelo a 4 bit.
Sottrattore
• Lezione 1: – La sottrazione A-B dei 2 numeri binari (senza segno) può
essere eseguita con il sommare il complemento a 2 del
sottraendo B al minuendo A.
– Il complemento a 2 può essere ottenuto sommando 1 al
complemento a 1 del numero considerato.
→ A-B = A + (il complemento a 1 di B) + 1
! Il complemento a 1 di un numero può essere calcolato
complementando, uno a uno, i bit del numero.
Sommatore/Sottrattore• B 1 = B’ B 0 = B
• S=0 → A+B
• S=1 → A + (il complemento a 1 di B) + 1
⊕
⊕ ⊕
Decodificatore (Decoder)
• Un circuito combinatorio che genera 2n
mintermini di n variabili.
Decodificatore
• Un decoder può utilizzare un ingresso di abilitazione (enable).
Decodificatore
• I decodificatori sono molto utili nella progettazione dei circuiti:
– qualunque funzione booleana è esprimibile
come somma di mintermini (Lezione 2).
Esercitazione 4
• Un circuito combinatorio è definito dalle tre funzioni booleane seguenti:
F1(X,Y,Z) = X’ Y’ Z’ + X Z
F2(X,Y,Z) = X Y’ Z’ + X’Y
F3(X,Y,Z) = X’ Y’ Z + X Y
Progettare il circuito utilizzando un decodificatore e porte esterne.
Esercitazione 4
D0 = X’ Y’ Z’
D1 = X’ Y’ Z
D2 = X’ Y Z’
D3 = X’ Y Z
D4 = X Y’ Z’
D5 = X Y’ Z
D6 = X Y Z’
D7 = X Y Z
1
XYZ
0
1
1100 01 10
0 0 0
0 1 1 0X
Z
Y
0
XYZ
0
1
1100 01 10
0 1 1
1 0 0 0X
Z
Y
Y
F1(X,Y,Z) = X’ Y’ Z’ + X Z
= ∑ m(0,5,7)F2(X,Y,Z) = X Y’ Z’ + X’Y
= ∑ m(2,3,4)
F3(X,Y,Z) = X’ Y’ Z + X Y
= ∑ m(1,6,7)
0
XYZ
0
1
1100 01 10
1 0 0
0 0 1 1X
Z
Y
Esercitazione 4
F1 = ∑ m(0,5,7)
F2 = ∑ m(2,3,4)
F3 = ∑ m(1,6,7)
• Un circuito combinatorio che seleziona segnali binari e li dirige a una singola linea di uscita.
• La selezione è controllata da un insieme di altre variabili di ingresso
(variabili di selezione).
Multiplexer
4 x 1 MUX
Multiplexer
• La funzionalità di selezione di un multiplexer èmolto utile nella progettazione dei circuiti combinatori.
Esercitazione 5
• Implementare la funzione booleana seguente con un multiplexer 8-1 e un singolo invertitore:
F(A,B,C,D)= ∑ m(1,3,4,11,12,13,14,15)
Esercitazione 5
! Un 8x1 MUX ha 3 variabili di selezione.
! Abbiamo 4 variabili di ingresso.
Esercitazione 5• Applicando le prime 3 variabili alle linee di selezione S2, S1, e S0, la
funzione può essere definita in termini dell’ultima variabile.
• Un circuito costituto da:
– un array (matrice) di porte AND che può
essere programmato per generare alcuni
termini di prodotto delle variabili di ingresso.
– e un array di porte OR che può essere
programmato per sommare selettivamente i
termini.
• L’obiettivo è progettare, in forma di somma di mintermini, qualunque funzione.
PLA: Array logico programmabile
Esercitazione 6
• Implementare con un PLA le funzioni booleane:
F1(A,B,C)= AB’ + AC + A’BC’
F2(A,B,C)= (AC+BC)’
PLA
termine attivato
somma attivata
Complementazione
F1(A,B,C)= AB’ + AC + A’BC
F2(A,B,C)= (AC+BC)’
PLA
• La mappa può essere specificata in forma di tabella.