Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica)...
Transcript of Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica)...
1
Logica combinatoria
Luciano Baresi
La logica digitale
La macchina è formata da porte logiche Ogni porta riceve in ingresso dei segnali binari (cioè segnali che
possono essere 0 o 1) e calcola una semplice funzione (AND, OR, ecc)
Alcune porte, collegate opportunamente, possono formare una memoria di un bit (bistabile)
Combinando N memorie di un bit si può formare un registro capace di memorizzare un numero binario (non più grande di 2N-1)
Combinando le porte si realizzano i circuiti che formano i calcolatori
2
2
Porte logiche
Luciano Baresi
Segnali e informazioni
Per elaborare informazioni, occorre rappresentarle (o codificarle) Per rappresentare (o codificare) le informazioni si usano segnali I segnali devono essere elaborati, nei modi opportuni, tramite
dispositivi di elaborazione
Segnale binario una grandezza che può assumere due valori distinti,
convenzionalmente indicati con 0 e 1 s ∈{0, 1}
Qualsiasi informazione è rappresentabile (o codificabile) tramite uno o più segnali binari (per esempio i caratteri del codice ASCII)
4
3
Luciano Baresi
Il segnale binario
Rappresentazione fisica del segnale binario: si usano svariate grandezze fisiche tensione elettrica (la più usata!) corrente elettrica potenza ottica altre grandezze fisiche
Elaborazione del segnale binario: si usano svariate classi di dispositivi di elaborazione porte logiche reti combinatorie reti sequenziali
Sono tutti circuiti digitali (o numerici)
5
Luciano Baresi
Porte logiche
I circuiti digitali sono formati da componenti digitali elementari, chiamati porte logiche Le porte logiche sono i circuiti minimi per l’elaborazione di
segnali binari L’elemento funzionale fondamentale per la costruzione di porte
logiche è il transistor Classificazione
Per modo di funzionamento: porta NOT, porta porta AND, porta OR (sono le porte logiche fondamentali)
Per numero di ingressi: porte a 1 ingresso, porte a 2 ingressi, porte 3 ingressi, e così via ...
6
4
Luciano Baresi
La porta NOT (invertitore)
Se l’ingresso vale 0 Volt, l’uscita vale 5 Volt Se l’ingresso vale 5 Volt, l’uscita vale 0 Volt
Se ai valori di tensione 0 e 5 Volt si associano convenzionalmente i valori binari 0 e 1, rispettivamente, si ottiene la cosiddetta “tabella delle verità” della porta logica, che corrisponde alla tabella di commutazione
7
Luciano Baresi 8
Porta NOT (invertitore, negatore)
A X
Simbolo funzionale Tabella delle verità
(a 1 ingresso)
A X
0 1
1 0
A X
simbolo semplificato
L’uscita vale 1 se e solo se l’ingresso vale 0
5
Luciano Baresi 9
Porta AND
Tabella delle verità
A B X
0 0 0
0 1 0
1 0 0
1 1 1
AX
B
(a 2 ingressi)
Simbolo funzionale
L’uscita vale 1 se e solo se entrambi gli ingressi valgono 1
Luciano Baresi 10
Porta OR
Tabella delle verità
A B X
0 0 0
0 1 1
1 0 1
1 1 1
A X
B
(a 2 ingressi)
Simbolo funzionale
L’uscita vale 1 se e solo se almeno un
ingresso vale 1
6
Luciano Baresi
Generalizzazioni
Alcuni tipi di porte a 2 ingressi si possono generalizzare a 3, 4, ecc ingressi
Le due porte a più ingressi maggiormente usate sono la porta AND e la porta OR
Tipicamente si usano AND (o OR) a 2, 4 o 8 ingressi (raramente più di 8)
L’uscita X della porta AND a 3 ingressi vale 1 se e soltanto se tutti e tre gli ingressi A, B e C valgono 1
L’uscita X della porta OR a 3 ingressi vale 1 se e soltanto se almeno uno tra gli ingressi A, B e C vale 1
Si generalizza a più ingressi nel modo ovvio ...
11
Luciano Baresi 12
Porta AND a 3 ingressi
Tabella delle verità
A B C X 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1
A X
C B
Simbolo funzionale
L’uscita vale 1 se e solo se tutti e 3 gli ingressi valgono 1
7
Luciano Baresi 13
Porta OR a 3 ingressi
A X B
C
Simbolo funzionale Tabella delle verità
A B C X 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1
L’uscita vale 0 se e solo se tutti e 3 gli ingressi valgono 0
Luciano Baresi 14
A
X B
C
A X
C B
Realizzazione ad albero
La porta AND a 3 ingressi si realizza spesso come albero di porte AND a 2 ingressi (ma non è l’unico modo)
Nota bene: non tutti i tipi di porte a più di 2 ingressi si possono realizzare come alberi di porte a 2 ingressi (funziona sempre con AND e OR)
8
Algebra di Boole, funzioni e reti combinatorie
Luciano Baresi
Algebra di Boole
L’algebra di Boole (dal suo inventore G. Boole) serve a descrivere matematicamente i circuiti digitali (o circuiti logici)
Componenti dell’algebra di Boole: Operatori booleani Regole di trasformazione ed equivalenza tra operatori booleani
16
9
Luciano Baresi 17
Nome Operazione Porta associata
Inversione X = !A Porta NOT
Somma logica X = A + B Porta OR
Prodotto logico X = A B Porta AND
Operatori booleani
A, B e X sono variabili booleane A, B, X ∈ {0, 1}
Il prodotto ha precedenza sulla somma
Luciano Baresi 18
Operatori booleani
Somma Prodotto Inversione 0 + 0 = 0 0 0 = 0 !0 = 1 0 + 1 = 1 0 1 = 0 !1 = 0 1 + 0 = 1 1 0 = 0 1 + 1 = 1 1 1 = 1
Sono le tabelle delle verità della porta logica OR, AND e NOT, rispettivamente
10
Luciano Baresi
Proprietà degli op. booleani
Alcune proprietà degli operatori booleani somigliano a quelle dell’algebra numerica tradizionale
Altre sono piuttosto diverse (per esempio la proprietà di assorbimento)!
Le proprietà degli operatori booleani si possono usare per trasformare espressioni booleane
19
Luciano Baresi 20
Proprietà degli op. booleani
Legge Prodotto logico (AND) Somma logica (OR)
Identità 1 A = A 0 + A = A
Elemento nullo 0 A = 0 1 + A = 1
Idempotenza A A = A A + A = A
Inverso A !A = 0 A + !A = 1
Commutativa A B = B A A + B = B + A
Associativa (A B) C = A (B C) (A + B) + C = A + (B + C)
Distributiva A + B C = (A + B) (A + C) A (B + C) = A B + A C
Assorbimento A (A + B) = A A + A B = A
De Morgan !(A B) = !A + !B !(A + B) = !A !B
11
Luciano Baresi 21
Esempi
F = !XYZ + !XY!Z + XZ F = !XY(Z + !Z) + XZ F = !XY1 + XZ F = !XY + XZ
F = A + !AB + !ABC F = A + !AB(1+C) F = A + !AB1 F = A + !AB F = (A + !A)(A + B) F = 1(A + B) F = A + B
Luciano Baresi 22
Tabella delle verità
La tabella delle verità è un modo per rappresentare il comportamento di una funzione combinatoria
La tabella delle verità ha due colonne: colonna degli ingressi, le cui righe contengono tutte le
combinazioni di valori delle variabili della funzione colonna dell’uscita, che riporta i corrispondenti valori assunti
dalla funzione
12
Luciano Baresi 23
Esempio
# riga A B C A B + /C F
0 0 0 0 0 0 + /0 1
1 0 0 1 0 0 + /1 0
2 0 1 0 0 1 + / 0 1
3 0 1 1 0 1 + /1 0
4 1 0 0 1 0 + /0 1
5 1 0 1 1 0 + /1 0
6 1 1 0 1 1 + /0 1
7 1 1 1 1 1 + /1 1
(per comodità nella colonna centrale è riportato anche il calcolo)
colonna uscita
colonna ingressi
n = 3 ingressi
2n = 23 = 8 righe
Luciano Baresi 24
Rete combinatoria
A ogni funzione combinatoria, data come espressione booleana, si può sempre associare un unico circuito digitale, formato da porte logiche, che viene chiamato rete combinatoria
Gli ingressi della rete combinatoria sono le variabili della funzione L’uscita della rete combinatoria emette il valore assunto dalla
funzione
13
Luciano Baresi 25
Esempio
A
F
B
C
A B
/ C
F(A, B, C) = A B + !C rete
combinatoria
Luciano Baresi
Rete combinatoria
Una rete combinatoria è un circuito digitale: dotato di n ≥ 1 ingressi principali e di un’uscita formato da porte logiche AND, OR e NOT e privo di retroazioni
Eventualmente, una rete combinatoria può anche essere formata da porte logiche di altro tipo
La tabella delle verità di una rete combinatoria può anche essere ricavata per simulazione del funzionamento circuitale della rete combinatoria stessa
Per simulare il funzionamento circuitale di una rete combinatoria, si applicano dei valori agli ingressi, e li si propaga lungo la rete fino all’uscita
26
14
Luciano Baresi 27
Simulazione circuitale
A
F
B
C
(corrisponde alla riga 0 della tabella)
Risultato della simulazione: F(0, 0, 0) = 1
0
0
0
0
1
1
Luciano Baresi 28
(per comodità è riportato anche il
calcolo)
0 0 0 0 !0 0 + !0 + !0 0 1
1 0 0 1 !0 0 + !1 + !0 1 1
2 0 1 0 !0 1 + !0 + !0 0 1
3 0 1 1 !0 1 + !1 + !0 1 1
4 1 0 0 !1 0 + !0 + !1 0 1
5 1 0 1 !1 0 + !1 + !1 1 0
6 1 1 0 !1 1 + !0 + !1 0 1
7 1 1 1 !1 1 + !1 + !1 1 0
# riga A B C !A B + !C + !A C F
Simulazione circuitale
15
Luciano Baresi
Sintesi di reti combinatorie
La sintesi di una rete combinatoria espressa come tabella delle verità, consiste nel ricavare lo schema logico (il circuito digitale) che calcola la funzione combinatoria
In generale, per una data tabella delle verità possono esistere più reti combinatorie (la soluzione al problema di sintesi non è dunque unica)
Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità
29
Luciano Baresi
Sintesi di reti combinatorie
Esistono svariate procedure di sintesi di reti combinatorie, che differiscono per: Complessità della procedura di sintesi Ottimalità della rete combinatoria risultante, per dimensioni e
velocità
Una tecnica di sintesi semplice e universale, benché non sempre ottimale, è la sintesi in 1a forma canonica, o come somma di prodotti (mintermini) Si considerano le righe della tabella delle verità il cui valore è 1
2a forma canonica: la funzione può essere espressa come il prodotto logico dei termini somma (maxtermini) Si considerano le righe della tabella delle verità il cui valore è 0
30
16
Luciano Baresi 31
Sintesi in 1a forma canonica (o sintesi come somma di prodotti)
Scrivere la tabella delle verità, a n ≥ 1 ingressi, della funzione da sintetizzare
Introdurre n invertitori per generare la negazione di ogni segnale di ingresso principale
Introdurre una porta AND a n ingressi per ogni 1 presente nella colonna dell’uscita della tabella delle verità
Collegare gli ingressi delle porte AND così introdotte agli ingressi principali, in forma diretta o negata, in modo appropriato
Inviare l’uscita di tutte le porte AND a un’unica porta OR, dotata di tanti ingressi quante sono le porte AND così introdotte
Vale il duale per la seconda forma canonica Si complementano le variabili il cui valore è 1
Luciano Baresi 32
Funzione maggioranza
Si chiede di sintetizzare (in 1a forma canonica) una funzione combinatoria dotata di 3 ingressi A, B e C, e di un’uscita F, funzionante come segue: Se la maggioranza degli ingressi
vale 0, l’uscita vale 0 Se la maggioranza degli ingressi
vale 1, l’uscita vale 1
La tabella delle verità della funzione maggioranza è mostrata a lato
L’uscita vale 1 se e solo se 2 o tutti e 3 gli ingressi valgono 1 (cioè se e solo se il valore 1 è in maggioranza)
# r i g a A B C F 0 0 0 0 0 1 0 0 1 0 2 0 1 0 0 3 0 1 1 1 4 1 0 0 0 5 1 0 1 1 6 1 1 0 1 7 1 1 1 1
17
Luciano Baresi 33
F
A B C !A !B !C
A
B
C
0 1 1 !A B C
1 0 1 A !B C
1 1 0 A B !C
1 1 1 A B C
Rete combinatoria
schema logico
Luciano Baresi 34
Espressione booleana
Dallo schema logico della rete combinatoria così sintetizzata, si può ricavare la funzione combinatoria data come espressione booleana
F(A, B, C) = !A B C + A !B C + A B !C + A B C
Nota bene: è una somma di prodotti
18
Luciano Baresi 35
Reti combinatorie equivalenti
Una funzione combinatoria, data come tabella delle verità, può ammettere più reti combinatorie differenti che la sintetizzano
Reti combinatorie che realizzano la medesima funzione combinatoria si dicono equivalenti
Esse hanno tutte la stessa funzione, ma struttura (e costo) differente
Luciano Baresi 36
Due reti equivalenti
F1 = AB + AC F2 = A(B + C) Trasformazione: F1 = AB + AC = = A(B + C) =
= F2 (prop. distributiva)
A
F B
C
A B
A C
A B + A C
A F
B
C B + C
A ( B + C )
19
Luciano Baresi
Costo e velocità
Il costo di una rete combinatoria si valuta in vari modi (criteri di costo): Numero di porte, per tipo di porta e per quantità di ingressi
della porta Numero di porte universali (NAND o NOR) e altri ancora ...
La velocità di una rete combinatoria è misurata dal tempo che una variazione di ingresso impiega per modificare l’uscita della rete (o ritardo di propagazione)
Per calcolare la velocità di una rete combinatoria, occorre conoscere i ritardi di propagazione delle porte logiche componenti la rete, e poi analizzare i percorsi ingressi-uscita
37
Luciano Baresi 38
Velocità
A
F
B
C
Ritardo totale = 5 ns = 5 10-9 sec
Freq. di commutazione = 1 / 5 ns = 200 MHz
0
0
0
0
1 1
2 ns
1 ns 2 + 3 = 5 ns
2 ns
1 ns 3 ns
20
Luciano Baresi 39
Operatori funzionalmente completi
Gli operatori NAND e NOR sono funzionalmente completi Significa che con soli NAND (NOR) è possibile realizzare qualsiasi funzione
logica Combinando opportunamente porte NAND è possibile ottenere le funzioni
AND, OR e NOT
A X
B
A X
B
NAND NOR
X Y !(XY)
0 0 1
0 1 1
1 0 1
1 1 0
X Y !(X + Y)
0 0 1
0 1 0
1 0 0
1 1 0
Luciano Baresi 40
X Y (X ⊕ Y)
0 0 0
0 1 1
1 0 1
1 1 0
X Y (X ⊗ Y)
0 0 1
0 1 0
1 0 0
1 1 1
A X
B
A X
B
Altri operatori
XOR OR esclusivo L’uscita vale uno solo quando
uno dei due ingressi vale uno F = X ⊕ Y = !XY + X!Y
XNOR La negazione del precedente L’uscita vale uno solo quando
gli ingressi hanno il medesimo valore
F = X ⊗ Y = !X!Y + XY
21
Luciano Baresi 41
Mappe di Karnaugh
Due mintermini o maxtermini sono logicamente adiacenti se differiscono per un unico letterale
Mappe di karnaugh Per realizzare reti combinatorie su due livelli Utili per funzioni booleane con non più di 5/6 variabili Contengono la stessa informazione delle tabelle delle verità
AB CD
00
01
10
11
10 11 01 00
Luciano Baresi 42
Sintesi con mappe di Karnaugh
N = !A!C + !CD + !B!D + ABD
AB CD
00
01
10
11
10 11 01 00
1
1
1
1 1
1
1
1 1
1
A B C D N
0 0 0 0 1
0 0 0 1 1
0 0 1 0 1
0 0 1 1 0
0 1 0 0 1
0 1 0 1 1
0 1 1 0 0
0 1 1 1 0
1 0 0 0 1
1 0 0 1 1
1 0 1 0 1
1 0 1 1 0
1 1 0 0 0
1 1 0 1 1
1 1 1 0 0
1 1 1 1 1
22
Rappresentazioni e aritmetica binaria
Luciano Baresi 44
Rappresentazione in modulo e segno
Dato un numero intero N, codificato su n bit, il bit più significativo rappresenta il segno (0 significa positivo e 1 negativo) I restanti n-1 bit rappresentano il valore assoluto del numero
N = 6 3 bit + 1 per il segno 0110 N = -6 1110
Problemi con le operazioni aritmetiche elementari Analisi del segno Confronto dei valori assoluti
23
Luciano Baresi 45
Somma tra due numeri
segno A = segno B
|A| > |B|
|RIS| = |B| - |A|
segno RIS = segno B segno RIS = segno A
|RIS| = |A| - |B|
SI NO
NO
segno RIS = segno A
|RIS| = |A| + |B|
Luciano Baresi
Rappresentazione in complemento a 1
Codifica diversa per semplificare l’algoritmo di calcolo Non si distingue più il segno dal modulo Dato un numero N, il suo opposto si calcola complementando ad
uno ad uno tutti i bit che compongono il numero N = 01001 -N = 10110
Somma e sottrazione richiedono solo sommatori e negatori (per il calcolo dell’opposto)
Il risultato è corretto a meno di un 1 nel caso in cui si verifichi un riporto nella somma stessa Quindi si usa sempre una seconda somma per sommare il
riporto generato (fosse zero la somma sarebbe inutile)
46
24
Luciano Baresi
Esempio
N = 011001 (+25) e M = 000011 (+3) N + M = 011001 + 000011 = 011100 (+28)
K = 111100 (-3) N + K = 011001 + 111100 =
(1)010101 010101 + 000001 = 010110 (+22)
I due numeri devono essere rappresentati con lo stesso numero di cifre
Sempre due somme Non è la soluzione ottima, ma è la meno costosa
47
Luciano Baresi 48
Rappresentazione in complemento a 2
Ulteriore miglioramento, ma rappresentazione sempre più complicata
Somme algebriche con una sola addizione Notazione non simmetrica (-2n-1 ≤ N ≤ 2n-1 -1)
Una sola codifica per il numero zero Numeri positivi stessa codifica Numeri negativi
-N è quel numero che sommato a N produce una configurazione di tutti zero e un bit di riporto che si trascura
Operativamente – Complemento a 1 e poi si somma uno – Si scorre il numero da destra a sinistra, lasciando inalterate le cifre
fino al primo uno (compreso) e complementando le altre
25
Luciano Baresi 49
Esempio
N = 011001 (+25) -N = 100110 + 000001 = 100111 oppure -N = 100111
“Salvo” solo il primo uno e complemento tutto il resto
N = 011001 (+25) e M = 000011 (+3) K = 111101 (-3) N + K = 011001 + 111101 = (1)010110 = 010110 (+22)
M – N = 000011 + 100111 = 101010 (-22) 010110 +22
Attenzione a leggere i numeri negativi
Luciano Baresi 50
Confronto
Codifica Modulo e segno Complemento a 1 Complemento a 2
0000 +0 +0 +0
0001 +1 +1 +1
0010 +2 +2 +2
0011 +3 +3 +3
0100 +4 +4 +4
0101 +5 +5 +5
0110 +6 +6 +6
0111 +7 +7 +7
1000 -0 -7 -8
1001 -1 -6 -7
1010 -2 -5 -6
1011 -3 -4 -5
1100 -4 -3 -4
1101 -5 -2 -3
1110 -6 -1 -2
1111 -7 -0 -1
26
Circuiti integrati
Luciano Baresi 52
Circuiti integrati
Le porte logiche non vengono prodotte isolatamente, ma sono realizzate su circuiti integrati
Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati transistor e dunque porte logiche, che complessivamente realizzano uno o più circuiti digitali
La piastrina di silicio di un circuito integrato ha solitamente dimensioni comprese tra: 5 × 5 mm e 1 × 1 cm (di rado superiore)
La piastrina di silicio integra i transistor, i collegamenti tra i transistor e i collegamenti con i morsetti di ingresso/uscita del chip
27
Luciano Baresi 53
Famiglie di circuiti integrati
I circuiti integrati sono classificati in base alle loro dimensioni, cioè al numero di porte logiche contenute: SSI (Small Scale Integrated): IC a scala di integrazione piccola,
da 1 a 10 porte MSI (Medium Scale Integrated): IC a scala di integrazione
media, da 10 a 100 porte LSI (Large Scale Integrated): IC a scala di integrazione grande,
da 100 a 100.000 porte VLSI (Very Large Scale Integrated): IC a scala di integrazione
molto grande, > 100.000 porte Ogni famiglia ha degli usi caratteristici nei calcolatori e in
generale nei dispositivi elettronici, che dipendono dalle sue dimensioni, ovvero dalla quantità di porte presenti sul circuito integrato stesso
Luciano Baresi 54
Metodi di progetto logico
Nessuno progetta un circuito integrato contenente 10 milioni di transistor, equivalenti a circa 2 milioni di porte logiche AND a 2 ingressi, trattandolo come un’unica rete combinatoria (o sequenziale) di dimensioni enormi!
Per progettare circuiti digitali di tali dimensioni, si usano tecniche modulari, per scomporre il problema
28
Luciano Baresi 55
Matrici logiche programmabili
Esistono circuiti integrati programmabili, chiamati PLA (Programmable Logic Array, matrici logiche programmabili), che permettono di realizzare qualsiasi rete combinatoria
Il solo limite della PLA è dato da: Il numero di piedini (che è fisso) Il numero massimo di porte logiche disponibili sulla PLA
Il produttore produce e commercializza PLA “vergini”: esse non hanno a bordo alcun circuito digitale definito
Spetta al compratore programmare la PLA “vergine”, installandole a bordo una o più reti combinatorie (o anche sequenziali), secondo le esigenze
Per programmare la PLA occorre un apposito apparato programmatore
Luciano Baresi 56
Come funziona un PLA
La PLA “vergine” contiene già un numero fissato di porte logiche AND, OR e NOT (o anche NAND, ecc)
Nella PLA “vergine” i collegamenti tra queste porte logiche sono però indefiniti
La PLA “vergine” contiene delle matrici di microinterruttori a transistor: bruciandoli o lasciandoli intatti si realizzano collegamenti tra le porte
L’apparato programmatore di PLA è in grado di bruciare selettivamente i microinterruttori presenti sulla PLA
Per farlo, esso applica ad alcuni piedini della PLA (piedini di programmazione), speciali valori di tensione elettrica, che agiscono sui microinterruttori
L’operazione è del tutto automatica e relativamente veloce, e irreversibile
29
Luciano Baresi 57
A
B
C
D
M I C R O I N T E R R U T T O R I
M I C R O I N T E R R U T T O R I
A
B
C
F
p o r t a n o n u s a t a
p o r t a n o n u s a t a
D
i n g r e s s o n o n u s a t o
Funzione maggioranza a tre ingressi
Circuiti combinatori elementari
30
Luciano Baresi
Circuiti combinatori elementari
Esiste una ben nota e ormai stabilizzata libreria di blocchi funzionali predefiniti di tipo combinatorio
Essa contiene blocchi funzionali per tutte le funzioni combinatorie di base
Questi blocchi appartengono alle famiglie MSI e (alcuni di essi) LSI La libreria contiene anche blocchi funzionali di tipo sequenziale
59
Luciano Baresi 60
Multiplexer
Il blocco funzionale multiplexer ha: n ≥ 1 ingressi di selezione 2n ≥ 2 ingressi dati un’uscita
Gli ingressi dati sono numerati a partire da 0: k = 0, 1, 2, …, 2n-1 Se sugli ingressi di selezione è presente il numero binario k, il
kesimo ingresso dati viene inviato in uscita
31
Luciano Baresi 61
Un solo ingresso di controllo
A B Ctrl OUT
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
OUT = !AB!Ctrl + A!BCtrl +AB!Ctrl + ABCtrl
00 01 11 10
0 0 1 1 0
1 0 0 1 1
OUT = ACtrl + B!Ctrl
Ctrl
OUT
A
B
Possibilità di ingressi di più bit
Luciano Baresi 62
Tabella delle verità
# riga S1 S0 I1 I2 I3 I4 U
0 0 0 0 X X X 0
1 0 0 1 X X X 1
2 0 1 X 0 X X 0
3 0 1 X 1 X X 1
4 1 0 X X 0 X 0
5 1 0 X X 1 X 1
6 1 1 X X X 0 0
7 1 1 X X X 1 1
S0
U
S1
MUX
I1
I2
I3
I4
Multiplexer a 2 ingressi di controllo
32
Luciano Baresi 63
Selezione Uscite
I S1 S2 O1 O2 O3 O4
D 0 0 D 0 0 0
D 1 0 0 D 0 0
D 0 1 0 0 D 0
D 1 1 0 0 0 D
O1 = !S1!S2I O2 = S1!S2I O3 = !S1S2I O4 = S1S2I
Demultiplexer
Circuito logico che effettua l’operazione inversa rispetto al MUX (multiplexer)
Il blocco funzionale demultiplexer (DEMUX) ha: n ≥ 1 ingressi di selezione un ingresso dati 2n ≥ 2 uscite
Luciano Baresi 64
Demultiplexer
S1
O1
I O2
O3
O4
S2 S1
O1 (00)
I O2 (10)
O3 (01)
O4 (11)
S2
DMUX
O1 = !S1!S2I O2 = S1!S2I O3 = !S1S2I O4 = S1S2I
33
Luciano Baresi 65
Decoder
Il blocco funzionale decoder ha: n ≥ 1 ingressi 2n ≥ 2 uscite
Le uscite sono numerate a partire da 0: k = 0, 1, 2, …, 2n - 1 Se sugli ingressi è presente il numero binario k, la kesima uscita
assume il valore 1 e le restanti uscite assumono il valore 0
Luciano Baresi 66
Decoder
A B F1 F2 F3 F4
0 0 1 0 0 0
0 1 0 1 0 0
1 0 0 0 1 0
1 1 0 0 0 1
F1 = !A!B F2 = !AB F3 = A!B F4 = AB
F1 A
F2
F3
F4 DECODER
B
F1
F2
F3
F4
A
B
34
Luciano Baresi 67
Shifter
Effettua lo scorrimento verso sinistra o destra del valore presente agli ingressi
Esempio: 010010011 Sinistra: 100100110 Destra: 001001001
sinistra destra
S/D 1 0
OUTn INn-1 Nuovo bit
OUTi INi-1 INi+1
OUT0 Nuovo bit IN1
Luciano Baresi 68
Shifter
MUX 0 1
MUX 0 1
MUX 0 1
MUX 0 1
MUX 0 1
O4 O3 O2 O1 O0
S/D nuovo bit
I4 I3 I2 I1 nuovo
bit I0
35
Luciano Baresi 69
Sommatore
È la generalizzazione del sommatore completo: addizione di numeri interi binari naturali (positivi) a n bit
Ha in ingresso due numeri interi binari naturali A e B da n ≥ 1 bit ciascuno
In uscita presenta la somma a n bit dei due numeri interi A e B Può avere un riporto in ingresso e un riporto in uscita, non sempre
usati
Luciano Baresi 70
Half-adder
A ! B! Somma! Carry!
0! 0! 0! 0!
0! 1! 1! 0!
1! 0! 1! 0!
1! 1! 0! 1!
Somma = !AB + A!B = A ± B!Carry = AB!
A ! B!
Carry!
Somma!
HALF-ADDER !
36
Luciano Baresi 71
Full-hadder
A B Carry in Somma Carry out
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
Somma = A ± B ± CarryIn CarryOut = AB + ACarryIn + BCarryIn AB + CarryIn(A + B)
FULL-ADDER
Carry out
A B
Somma
Carry in
Luciano Baresi 72
Sommatore per dati a 3 bit
A2
R2
A1
R1
A0
R0
FA HA FA
R2 R1 R0
FA FA FA 0
B2 B1 B0
A2 A1 A0 B2 B1 B0
37
Luciano Baresi 73
Esempio di progetto in stile funzionale
Si chiede di progettare un circuito digitale combinatorio, che abbia: in ingresso due numeri interi binari naturali (positivi) A e B da n ≥ 1 bit ciascuno
in ingresso un segnale di comando C in uscita un numero intero binario naturale Z da n ≥ 1 bit
Su Z deve uscire la somma A + B se C = 0, la differenza A - B se C = 1
Luciano Baresi 74
X
Y S
n
n n
X + Y
X
Y D
n
n
n X - Y
A
B
C
n Z U I 0
I 1 M U X
S
-
+
(si usa un multiplatore a 2 gruppi di ingressi dati; ciascun gruppo è da n bit)
Schema logico della soluzione
38
Luciano Baresi 75
A
B
U
C
E
c o m a n d i
e s i t i
o p e r a n d i r i s u l t a t o
A L U n
n
n
A < B A = B A > B R u s c P u s c
A d d S u b ノ
ノ ノ
A L U
R i n , P i n
A = 0
Unità Aritmetico-Logica
Luciano Baresi 76
# riga Comando Operazione R Esito
0 Add somma A e B A + B + Rin riporto in uscita Rusc
1 Sub sottrae B da A A − B − Pin prestito in uscita Pusc
2 Pass A A passain uscita
A -
3 Pass B B passain uscita
B -
4 Zero annulla uscita 0 -
5 Shift Left A A scorre a SX 2A bit più significativo di A
6 Shift Right A A scorre a DX A / 2 bit meno significativo di A
7 Null ConfrontaA con 0
- A = 0
8 Compare ConfrontaA con B
- A < B, A = B, A > B
9 Multiply prodotto di A e B A × B riporto in uscita
10 Divide divisione A / B A / B divisione per 0 ?
… … … … …
Unità Aritmetico-Logica
39
Luciano Baresi 77
Schema logico di una ALU da 1 bit
Luciano Baresi 78
Esercizio
ALU che effettua AND, OR, NOT e somma algebrica
F0 F1 Operazione
0 0 A and B
0 1 A or B
1 0 !B
1 1 A + B
A B F0 F1 Output CarryOut
0 0 0 0 0 0
0 0 0 1 0 0
0 0 1 0 1 0
0 0 1 1 0 0
0 1 0 0 0 0
0 1 0 1 1 0
0 1 1 0 0 0
0 1 1 1 1 0
1 0 0 0 0 0
1 0 0 1 1 0
1 0 1 0 1 0
1 0 1 1 1 0
1 1 0 0 1 0
1 1 0 1 1 0
1 1 1 0 0 0
1 1 1 1 0 1