Esercitazioni di Reti Logiche Lezione 4

Transcript

Esercitazioni di Reti Logiche Lezione 4
Esercitazioni di Reti Logiche
Lezione 4
Progettazione dei
circuiti logici combinatori
Zeynep KIZILTAN
[email protected]
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.
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
T3
A
B
C
F
T4
T1
T2
G
D
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)
T3
A
B
C
F
T4
T1
T2
G
D
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
T3
A
B
C
F
T4
T1
T2
G
D
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
5. Semplifichiamo le funzioni delle uscite tramite le
mappe di Karnaugh.
F = ABC + BCD + A’D
C
CD
00
01
11
10
00
0
1
1
0
01
0
1
1
0
AB
B
11
0
0
1
1
10
0
0
0
0
A
D
F = ABC + A’D
5. Semplifichiamo le funzioni delle uscite tramite le
mappe di Karnaugh.
G = ABC + BCD’ + A’D’
C
CD
00
01
11
10
00
1
0
0
1
01
1
0
0
1
AB
B
11
0
0
1
1
10
0
0
0
0
A
D
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
1.
2.
3.
4.
Per eseguire la sintesi:
Identificare il numero di ingressi e uscite.
Costruire la tabella di verità, interpretando la
specifica verbale.
Determinare le funzioni booleane semplificate
delle uscite come funzione delle variabili di
ingresso (utilizzando le mappe di Karnaugh).
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:
X1 X2 …. Xn
Y1 Y2 …. Yn
Z1 Z2 …. Zn
• 2 blocchi logici di base permettono la
realizzazione di un sommatore:
– Half adder
– Full adder
}
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
F1(X,Y,Z) = X’ Y’ Z’ + X Z
= ∑ m(0,5,7)
Y
X
F2(X,Y,Z) = X Y’ Z’ + X’Y
= ∑ m(2,3,4)
Y
YZ 00
X
0
01
11
10
1
0
0
0
1
0
1
1
0
YZ 00
X
0
01
11
10
0
0
1
1
1
1
0
0
0
X
Y
Z
Z
Y
X
YZ 00
X
0
01
11
10
0
1
0
0
1
0
0
1
1
Z
F3(X,Y,Z) = X’ Y’ Z + X Y
= ∑ m(1,6,7)
Esercitazione 4
F1 = ∑ m(0,5,7)
F2 = ∑ m(2,3,4)
F3 = ∑ m(1,6,7)
Multiplexer
• 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).
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.
PLA: Array logico programmabile
• 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.
Esercitazione 6
• Implementare con un PLA le funzioni
booleane:
F1(A,B,C)= AB’ + AC + A’BC’
F2(A,B,C)= (AC+BC)’
PLA
F1(A,B,C)= AB’ + AC + A’BC
F2(A,B,C)= (AC+BC)’
termine attivato
somma attivata
Complementazione
PLA
• La mappa può essere specificata in forma di
tabella.