Reti Combinatorie
e
Macchine Combinatorie
Elementari
Fondamenti del Progetto Logico
Concetti fondamentali:
n
Elementi di Algebra di Boole
n
Porte Logiche (GATES)
n
Reti Logiche Combinatorie
n
Macchine Combinatorie “famose”:
o
Multiplexer e Demultiplexer
o
Coder e decoder
Elementi di Algebra di Boole
o
L’algebra di Boole è un modello matematico adeguato a
rappresentare l’elettronica interna ad un moderno Calcolatore
o
Elettronica DIGITALE
n due soli livelli di segnale
o diverse famiglie logiche, diverse rappresentazioni
Analogica:
i valori assumono Digitale: +5 V –5 T ime +5 V –5 1 0 1 T ime Vero, 1, Asserito Falso, 0, Negato
Vantaggi dei Sistemi Digitali
o
Sistemi Analogici:
n
piccoli errori in input conducono a grandi errori in output
o
I Sistemi Digitali sono più precisi e affidabili
n
facilmente realizzabili come “building blocks”
o
I Computer usano internamente circuiti digitali
o
I dispositivi di Interfaccia (per es, sensori & attuatori)
Il Mondo Reale
I dispositivi elettronici sono continui, non discreti!
E, naturalmente, sono i “building blocks” di tutti i componenti
digitali!
La transizione da 1 a 0 non è istantanea
I valori intermedi sono visibili per un istante
L’Algebra Booleana è adatta a descrivere il
comportamento a regime dei sistemi digitali
Attenzione a ricordarci del comportamento dinamico!
+5
V
0
Logic 1
Tecnologie dei circuiti digitali
Principali TecnologieMOS:
Metal-Oxide-Silicon
Bipolare (BJT):
Transistor-Transistor Logic
Emitter Coupled Logic
o
Integrated circuit technology
n
si usano materiali conduttori, isolanti, e “conduttori
talvolta” ("semiconduttori")
n
il modo in cui la loro interazione consente agli elettroni di
fluire costituisce la base per la realizzazione di “interruttori”
elettrici
MOS Technology
Transistor
Interruttore elettrico elementare
o
Interruttore a 3 terminali: gate,
source, drain
n
se la tensione tra gate e source
supera una data soglia l’interruttore
è “chiuso” (conduce) e gli elettroni
fluiscono tra source e drain
n
se la tensione viene rimossa,
l’interruttore è “aperto” (non
conduce) e la connessione tra
source e drain è interrotta
Esempio: realizziamo la negazione logica
1 come input significa 0 come output 0 come input significa 1 come output
Un comportamento da Inverter in
funzione del voltaggio di input
Se l
’
input sale da 0V a 5V
l
’
output rimane a 5V per un
piccolo intervallo di voltaggi di
input
e poi cambia bruscamente ma non
istantaneamente!
Ricordate la distinzione tra statico e dinamico V Out +5 0 V In +5 Logic 0 Input V oltage Logic 1 Input V oltage
NOT:
Logica Combinatoria
Logica Combinatoria
nessun feedback tra input e output
gli output sono funzione solo degli input
esempio, un addizionatore:
(A, B, Carry In) -> (Sum, Carry Out)
Le Reti Logiche sono
realizzate mediante porte
logiche.
La presenza di feedback
distingue tra reti
sequenziali
e reti combinatorie.
- - - X 1 X 2 X n Switching Network Z 1 Z 2 Z m - - - A B Cin FullLogica Sequenziale
o
inputs e outputs si sovrappongono
o
gli output dipendono dagli input e dalla storia
dell’esecuzione!
o
Le reti tipicamente hanno solo un numero limitato di
configurazioni chiamate stati
n
es., un semaforo cicla all’infinito tra 4 stati
o
Necessità di nuovi componenti :
n
elementi di memoria per ricordare lo stato corrente
o
Gli output e il nuovo stato funzione degli inputs e del vecchio
stato
Le Tabelle di verità
Una Logica Combinatoria può
sempre
essere
descritta mediante una Tabella di Verità
Esempio: full adder
addiziona 2 bit e un riporto (Carry in) per ottenere
un bit Sum e un riporto Carry Out
NOTA: in binario 1 + 1 fa 0 con riporto 1
A B
0
0
1
1
0
1
0
1
Sum Carry
0
1
1
0
0
0
0
1
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C in
0
1
0
1
0
1
0
1
S um
0
1
1
0
1
0
0
1
C out
0
0
0
1
0
1
1
1
Esempio: half adder
addiziona 2 bit
per ottenere Somma e riporto (Carry)
Algebra
Una Struttura Algebrica consiste di:
• un insieme di elementi B
• operazioni binarie {+, •}
• operazioni unarie {'}
tali che sussistano i seguenti assiomi:
1. B contiene almeno 2 elementi, a e b,tali che a diverso da b
2. Chiusura: a,b in B, (i) a + b in B (ii) a • b in B 3. Commutatività: a,b in B, (i) a + b = b + a (ii) a • b = b • a 4. Identità: 0, 1 in B (i) a + 0 = a (ii) a • 1 = a 5. Distributività: (i) a + (b • c) = (a + b) • (a + c) (ii) a • (b + c) = a • b + a • c 6. Complemento: (i) a + a' = 1 (ii) a • a' = 0 _ nota: useremo come equivalenti i simboli ' e _
Algebra Booleana
Quando
B = {0,1},
+ = OR, • = AND, ' = NOT
L’algebra è un’Algebra Booleana
Teorema:
ogni funzione
Booleana che può
essere espressa come
Tabella di Verità può
essere scritta come
espressione
dell’algebra Booleana
usando ', +, •
NOT AND OR Gates X Y Z Y 0 1 0 1 X 0 0 1 1 Z 0 0 0 1 X X 0 1 X 1 0 X X 0 0 1 1 Y 0 1 0 1 Z 0 1 1 1 Tabella di Verità X Y Zdalle Espressioni ai Gates
C’è più di un modo per passare dalle Espressioni ai Gates:
Es., Z = A' • B' • (C + D) = (A' • (B' • (C + D))) T1
T2
Letterali: ogni occorrenza di una variabile o del suo complemento
Es., Z = A B' C + A' B + A' B C' + B' C
Uso di un 3-input gate
3 variabili, 10 letterali A B C D T1 T2 Z A B C D Z
F0 0 0 0 0 F1 0 0 0 1 F2 0 0 1 0 F3 0 0 1 1 F4 0 1 0 0 F5 0 1 0 1 F6 0 1 1 0 F7 0 1 1 1 F8 1 0 0 0 F9 1 0 0 1 F10 1 0 1 0 F1 1 1 0 1 1 F12 1 1 0 0 F13 1 1 0 1 F14 1 1 1 0 F15 1 1 1 1 X 0 0 1 1 Y 0 1 0 1 0 X • Y X Y X + Y 1 Y X
Funzioni di 2 variabili
16 funzioni:
Y XFunzioni
“
famose
”
:
NAND e NOR
NAND NOR X 0 0 1 1 Y 0 1 0 1 Z 1 1 1 0 X Y Z X Y Z X 0 0 1 Y 0 1 0 Z 1 0 0Simbolo Gate Tabella di Verità Nome
Realizzare funzioni logiche con
NAND e NOR
Nelle Reti Logiche reali il numero di NAND e NOR è
largamente superiore a quello di AND e OR
Sono enormemente più semplici da costruire con le attuali
tecnologie elettroniche
Teorema:
Ogni espressione Booleana può essere realizzata con NAND, NOR e NOT e, in verità, il NOT è superfluo:
(NOT = NAND o NOR se gli input sono cortocircuitati assieme)
X 0 1 Y 0 1 X NOR Y 1 0 X 0 1 Y 0 1 X NAND Y 1 0
XOR: X o Y ma non tutti e due (”diseguaglianza")
XNOR: X e Y sono uguali ("eguaglianza")
X ⊕ Y = X Y' + X' Y X ⊕ Y = X Y + X' Y' XOR XNOR X Y Z X 0 0 1 1 Y 0 1 0 1 Z 0 1 1 0 X 0 0 1 Y 0 1 0 Z 1 0 0 X Y Z
Funzioni
“
famose
”
:
XOR e XNOR
Simbolo Gate Tabella di Verità Nome
Anche detto “OR esclusivo”
Esempio: Realizzazioni Alternative
2 Livelli
(gli inverter non contano)
Multi-Livello
Vantaggio: Minore Fan-in
Complex Gate: XOR
Vantaggio: Minimo numero di
Gates A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 Z 0 1 0 1 0 1 1 0 A B C
Un aspetto importante: la MINIMIZZAZIONE
La Minimizzazione: ridurre la complessità dell’implementazione • ridurre il numero di letterali (gate inputs)
• ridurre il numero di gates
• ridurre il numero di livelli di gates
Meno inputs -> porte più veloci in alcune tecnologie
Il fan-in (numero di gate inputs) è limitato in alcune tecnologie Meno livelli di gates -> meno ritardi nella propagazione
Minimo ritardo tipicamente richiede più gates Numero di gates influenza il costo
Metodi Tradizionali:
Leggi dell
’
Algebra Booleana
Per operare sulle espressioni logiche (CIOE’ PER TRASFORMARE o MINIMIZZARE) si usano varie Leggi Algebriche
Un esempio importante: le
Leggi di DeMorgan
(X + Y) = X • Y
(X • Y) = X + Y
NOR è equivalente a AND con gli input negati
NAND è equivalente a OR con gli input negati
X
0
0
1
1
Y
0
1
0
1
X
1
1
0
0
Y
1
0
1
0
X + Y
1
0
0
0
X•Y
1
0
0
0
X
0
0
1
1
Y
0
1
0
1
X
1
1
0
0
Y
1
0
1
0
X + Y
1
1
1
0
X•Y
1
1
1
0
Leggi dell’Algebra Booleana: Applicazione
Esempio:
Z = A' B' C + A' B C + A B' C + A B C'
Z' = (A + B + C') • (A + B' + C') • (A' + B + C') •
(A' + B' + C)
Le leggi di DeMorgan possono essere usate per
convertire
Forme Canoniche a 2-livelli
o
Le Tabelle di Verità sono la
firma
di una funzione
Booleana
o
Ma data una Tabella ci possono essere molte
espressioni (e quindi realizzazioni) corrispondenti
o
Forme Canoniche: una
forma
standard di una
funzione Booleana
Forme Canonica del I tipo
Forma Canonica a Somma di Prodotti
Forma disgiuntiva o espansione dei MINTERMINI
F = A' B C + A B' C' + A B' C + A B C' + A B C 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 F' = A' B' C' + A' B' C + A' B C' F 0 0 0 1 1 1 1 1 F 1 1 1 0 0 0 0 0 C 0 1 0 1 0 1 0 1 B 0 0 1 1 0 0 1 1 A 0 0 0 0 1 1 1 1
Forma Canonica del Primo Tipo: Esempio
Somma di Prodotti MINTERMINE:AND di letterali in cui ciascuna
variabile appare esattamente una volta asserita o negata (non in ambedue i modi!)
F forma canonica: F(A,B,C) = Σm(3,4,5,6,7) = m3 + m4 + m5 + m6 + m7 = A' B C + A B' C' + A B' C + A B C' + A B C A B C = m 1 A B C = m 2 A B C = m 3 A B C = m 4 A B C = m 5 A B C = m 6 A B C = m 7 A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 Mintermini A B C = m 0 F 0 0 0 1 1 1 1 1 F 1 1 1 0 0 0 0 0 C 0 1 0 1 0 1 0 1 B 0 0 1 1 0 0 1 1 A 0 0 0 0 1 1 1 1
Forma Canonica del Primo Tipo: Esempio:
F forma canonica: F(A,B,C) = Σm(3,4,5,6,7) = m3 + m4 + m5 + m6 + m7 = A' B C + A B' C' + A B' C + A B C' + A B C F 0 0 0 1 1 1 1 1 F 1 1 1 0 0 0 0 0 C 0 1 0 1 0 1 0 1 B 0 0 1 1 0 0 1 1 A 0 0 0 0 1 1 1 1Esempio: Forma Minima AND/OR
B C A F F 0 0 0 1 1 1 1 1 F 1 1 1 0 0 0 0 0 C 0 1 0 1 0 1 0 1 B 0 0 1 1 0 0 1 1 A 0 0 0 0 1 1 1 1Facciamo una
MINIMIZZAZIONE
a
‘
uocchio
Esempio: Realizzazioni Alternative
4 Implementazioni Alternative di F:
Somma di Prodotti CANONICA
Somma di Prodotti MINIMA
Prodotto di Somme CANONICA
Prodotto di Somme MINIMA F 1 A B F 2 F 3 F C Ricordiamoci di De Morgan
Funzioni Incompletamente Specificate
o
Funzioni con n input hanno 2
npossibili configurazioni
di input
o
Per una data funzione, non tutte le configurazioni
sono ammesse
Esempio: Binary Coded Decimal Digit (+1)
Il codice BCD codifica le cifre decimali 0 - 9
nei bit patterns 00002 - 10012
Questi input non verranno mai incontrati
Gli output associati sono "Don't Cares"
Off-set di W On-set di W
Don't care (DC) set di W A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 W 0 0 0 0 0 0 0 1 1 0 X X X X X X X 0 0 0 1 1 1 1 0 0 0 X X X X X X Y 0 1 1 0 0 1 1 0 0 0 X X X X X X Z 1 0 1 0 1 0 1 0 1 0 X X X X X X
Macchine Combinatorie “Famose”
o
I Multiplexer
MUX MUX DEMUX A B Sum A0 A1 B0 B1 Sa Sb Ss S0 S1Sorgenti di input multiple
Destinazioni di output multiple Connessioni Multi-point
I
10
0
0
0
1
1
1
1
I
00
0
1
1
0
0
1
1
A
0
1
0
1
0
1
0
1
Z
0
0
1
0
0
1
1
1
A
0
1
Z
I
0I
1Multiplexer
2n input dati, n input di controllo, 1 output
usati per connettere 2n punti con un singolo punto
I segnali di controllo sono un indice binario degli input connessi agli output
Z = A' I + A I 0 1
Forma Funzionale Forma Logica
Multiplexer
Z = A' I0 + A I1 2:1 mux I 0 I 1 A Z Z = A' B' I0 + A' B I1 + A B' I2 + A B I3 I 0 A I 1 I 2 I 3 B Z 4:1 mux Z = A' B' C' I0 + A' B' C I1 + A' B C' I2 + A' B C I3 + A B' C' I4 + A B' C I5 + A B C' I6 + A B C I7 I 0 A I 1 I 2 I 3 B Z 8:1 mux C I 4 I 5 I 6 I 7Multiplexer
Realizzazione Mux 2:1 e 4:1 Z I0 I1 A I 1 I 2 I 3 I 0 A B Z Z = A' B' I0 + A' B I1 + A B' I2 + A B I3 Z = A' I0 + A I1Multiplexer:
Realizzazioni Alternative per un MUX 8:1
I segnali B e C selezionano simultaneamente
uno tra I0-I3 and I4-I7 Il segnale A seleziona quale
Mux 2:1 0 1 S Mux 4:1 0 1 2 3 S1 S0 Mux 4:1 0 1 2 3 S1 S0 Mux 8:1 C B A I0 I1 I2 I3 I4 I5 I6 I7 Z Dunque:
Abbiamo 8 segnali di ingresso da pilotare con 3 segnali di
controllo
Un altro schema possibile
0 1 S 0 1 S 0 1 S 0 1 S 0 1 S1 2 3 S0 C A B I 0 I 1 I 2 I 3 I 4 I 5 I 6 I 7 C C C ZGrandi multiplexers possono essere realizzati componendo i piccoli
Multiplexer
come macchine combinatorie
“
generali
”
Un multiplexer 2n-1:1 può implementare qualsiasi funzione di n variabili
n-1 variabili di controllo; la restante costituisce un opportuno “data input” al Mux
Esempio: F(A,B,C) = P0 + P2 + P6 + P7 = A' B' C' + A' B C' + A B C' + A B C = A' B' (C') + A' B (C') + A B' (0) + A B (1) 8:1 MUX 1 0 1 0 0 0 1 1 0 1 2 3 4 5 6 7 S2 S1 S0 A B C F "Lookup Table" S1 S0 A B 4:1 MUX 0 1 2 3 C C 0 1 F A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F 1 0 1 0 0 0 1 1 C C 0 1
Multiplexer
come macchine combinatorie
“
generali
”
Altro esempio:
F = P0+P7 = A’B’C’+ABC =
A’B’ (C’) + A’B (0)+ AB’ (0) + AB(C)
A Mux 4:1 0 1 2 3 S1 S0 0 C’ C F 0 B A B C F 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 C 0 0 C’
Con un MUX 22:1 posso costruire
Macchine Combinatorie “Famose”
o
I Decoder
O
u
t
0
O
u
t
1
O
u
t
2
O
u
t
3
O
u
t
4
O
u
t
5
O
u
t
6
O
u
t
7
D
e
c
o
d
e
r
3
B 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1 Z1 1 0 0 0 0 0 0 0 Z2 0 1 0 0 0 0 0 0 Z4 0 0 0 1 0 0 0 0 Z5 0 0 0 0 1 0 0 0 Z7 0 0 0 0 0 0 1 0 Z6 0 0 0 0 0 1 0 0 Z3 0 0 1 0 0 0 0 0 Z8 0 0 0 0 0 1 0 0In questo modo possiamo DECODIFICARE un codice
E se aggiungiamo un’abilitazione?
Decoders/Demultiplexers
DEMUX: un singolo input dati , n input di controllo, 2n outputs
Gli input di controllo (select S) sono un indice binario degli output L’input dati è detto “abilitazione” o "enable" (E)
1:2 Decoder: O0 = E • S; O1 = E • S 2:4 Decoder: O0 = E • S0 • S1 O1 = E • S0 • S1 O2 = E • S0 • S1 O3 = E • S0 • S1 3:8 Decoder: O0 = E • S0 • S1 • S2 O1 = E • S0 • S1 • S2 O2 = E • S0 • S1 • S2 O3 = E • S0 • S1 • S2 O4 = E • S0 • S1 • S2 O5 = E • S0 • S1 • S2 O6 = E • S0 • S1 • S2 O = E • S • S • S2
Decoder/Demultiplexer
Un Decoder genera opportuni Mintermini a seconda dei
segnali di controllo
Decoder come Building Block Logico
3:8 dec 0 1 2 3 4 5 6 7 A B C Enb ABC ABC ABC ABC ABC ABC ABC ABC S 2 S 1 S 0
I PLA
Building block pre-fabbricati di molte porte AND/OR (o NOR, NAND) Vengono ”Personalizzati" creando/cancellando le connessioni tra porte
Schema a blocchi in
Forma Somma di Prodotti
Input
Array “denso” di
Porte AND Termini
Prodotto
Output Array “denso” di
F0 = A + B' C'
F1 = A C' + A B
F2 = B' C' + A B
F3 = B' C + A
Esempio:
Perché conviene?
I termini prodotto sono condivisi
Outputs
Inputs
Riuso
A
1
-
1
-
1
B
1
0
-
0
-
C
-
1
0
0
-
F
0
0
0
0
1
1
F
1
1
0
1
0
0
F
2
1
0
0
1
0
F
3
0
1
0
0
1
A B
B C
A C
B C
A
PLA
1 = asserito nel termine 0 = negato nel termine - = non partecipa
1 = termine connesso in output 0 = non connesso in output
Input:
Tutte le connessioni sono disponibili prima della programmazione
PLA
Le connessioni indesiderate sono “cancellate"
Nota:
Ci sono delle tecnologie che creano le connessioni
ABC A B C A B C ABC ABC ABC ABC ABC ABC ABC Funzioni Multiple di A, B, C
PLA:
Esempio di progetto
Osservate la rappresentazione F1 = A B C F2 = A + B + C F3 = A B C F4 = A + B + C F5 = A xor B xor C F6 = A xnor B xnor C
Un esempio di PLA:
il
COMPARATORE
ABCD ABCD ABCD ABCD AC AC BD BD ABD BCD ABC BCD AB CD 00 01 11 10 00 01 11 10 D B C A 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 K-map for EQ AB CD 00 01 11 10 00 01 11 10 D B C A 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 K-map for NE AB CD 00 01 11 10 00 01 11 10 D C A 0 0 0 0 1 0 0 0 1 1 0 1 1 1 0 0 AB CD 00 01 11 10 00 01 11 10 D C A 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 0Read-Only Memories
ROM: Array bidimensionale di 1 e 0 “cablati” in fabbrica
Una riga (Row) viene detta "word"; l’indice viene detto ”indirizzo" L’ampiezza di riga viene detta wordsize
L’indirizzo è l’input, la word selezionata è l’output
Dec 2 -1n 0 +5V +5V +5V +5V Word Line 0011 Word Line 1010 j i Organizzazione Interna
Read-Only Memories
Esempio: Implementazione di Logica Combinatoria
F0 = A' B' C + A B' C' + A B' C F1 = A' B' C + A' B C' + A B C F2 = A' B' C' + A' B' C + A B' C’ F3 = A' B C + A B' C' + A B C' ROM 8 w ords by 4 bits A B C F 0 F 1 F 2 F 3 B 0 0 1 1 0 0 1 1 Indirizzo A 0 0 0 0 1 1 1 1 C 0 1 0 1 0 1 0 1 F 0 0 1 0 0 1 1 0 0 F 1 0 1 1 0 0 0 0 1 F 2 1 1 0 0 1 0 0 0 F 3 0 0 0 1 1 0 1 0
Read-Only Memories
Simili ad un PLA con un array di AND completamente decodificato! ROM vs. PLA:Le ROM sono vantaggiose quando
(1) c’è poco tempo per il progetto (non si deve minimizzare)
(2) si usa la maggior parte delle combinazioni di input (es., code converters) (3) c’è poca condivisione di termini tra le funzioni di output
difetto delle ROM : la dimensione raddoppia per ogni input addizionale I PLA sono vantaggiosi quando
(1) si ha disponibile un tool di progetto automatico (2) ci sono poche combinazioni uniche di mintermini
Memory array 2n words da m bits m linee di output n linee di indirizzo Decoder 2n word
Read-Only Memories
2764 EPROM 8K x 8 16K x 16 Subsystem 2764 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 O0 O1 O2 O3 O4 O5 O6 O7 OE CS PGM VPP A10 A11 A12 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 O0 O1 O2 O3 O4 O5 O6 O7 OE CS PGM VPP A10 A11 A12 + + 2764 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 O0 O1 O2 O3 O4 O5 O6 O7 OE CS PGM VPP A10 A11 A12 2764 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 O0 O1 O2 O3 O4 O5 O6 O7 OE CS PGM VPP A10 A11 A12 2764 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 O0 O1 O2 O3 O4 O5 O6 O7 OE CS PGM VPP A10 A11 A12 2764 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 O0 O1 O2 O3 O4O5 O6 O7 OE CS PGM VPP A10 A11A12 + + A13 /OE A12:A0 D7:D0 D15:D8 U3 U2 U1 U0Controller codice BCD per Display a 7 Segmenti
Il problema:
L’input è un numero a 4 bit bcd (binary coded decimal) L’output sono i segnali di controllo per il display
4 input A, B, C, D 7 output C0 — C6 C 5 C 0 C 6 C 3 C 4 C 1 C 2 C 0 C 1 C 2 C 3 C 4 C 5 C 6 Transcodificatore BCD-a-7-segmenti Display a 7-Segmenti C 0 C 1 C 2 C 3 C 4 C 5 C 6
Controller codice BCD per Display a 7 Segmenti
Formulare il problema in termini di una tabella di verità
Scegliere il tipo di implementazione: se è una ROM, abbiamo finito
data la presenza di molti don't cares una soluzione PLA potrebbe essere interessante
Dopodiché si può procedere:
Minimizzando “a mano” le K-maps oppure
si può usare un tool automatico
0 0 0 0 1 1 1 1 1 1 0
0 0 0 1 0 1 1 0 0 0 0
0 0 1 0 1 1 0 1 1 0 1
0 0 1 1 1 1 1 1 0 0 1
0 1 0 0 0 1 1 0 0 1 1
0 1 0 1 1 0 1 1 0 1 1
0 1 1 0 1 0 1 1 1 1 1
0 1 1 1 1 1 1 0 0 0 0
1 0 0 0 1 1 1 1 1 1 1
1 0 0 1 1 1 1 0 0 1 1
1 0 1 0 - - -
1 0 1 1 - - -
1 1 0 0 - - -
1 1 0 1 - - -
A B C D c0 c1 c2 c3 c4 c5 c6AB CD 00 01 11 10 00 01 11 10 0 1 X 1 0 1 X 1 1 0 X X 1 1 X X K-map for C 6 = A + C D' + B C' + B' C CD'
0 0 0 0 1 1 1 1 1 1 0
0 0 0 1 0 1 1 0 0 0 0
0 0 1 0 1 1 0 1 1 0 1
0 0 1 1 1 1 1 1 0 0 1
0 1 0 0 0 1 1 0 0 1 1
0 1 0 1 1 0 1 1 0 1 1
0 1 1 0 1 0 1 1 1 1 1
0 1 1 1 1 1 1 0 0 0 0
1 0 0 0 1 1 1 1 1 1 1
1 0 0 1 1 1 1 0 0 1 1
1 0 1 0 - - -
1 0 1 1 - - -
1 1 0 0 - - -
1 1 0 1 - - -
A B C D C6“
a mano
”
sulle mappe di Karnaugh: il segnale C6
A BC'
C0 = A + B D + C + B' D' C3 = B' D' + C D' + B C' D + B' C C4 = B' D' + C D 14 Termini Prodotto unici AB CD 00 01 11 10 00 01 11 10 D B C A 1 0 X 1 0 1 X 1 1 1 X X 1 1 X X K-map for C 0 AB CD 00 01 11 10 00 01 11 10 D B C A 1 1 X 1 1 0 X 1 1 1 X X 1 0 X X K-map for C 1 AB CD 00 01 11 10 00 01 11 10 D B C A 1 1 X 1 1 1 X 1 1 1 X X 0 1 X X K-map for C 2 AB CD 00 01 11 10 00 01 11 10 D B C A 1 0 X 1 0 1 X 0 1 0 X X 1 1 X X K-map for C 3 AB CD 00 01 11 10 00 01 11 10 D B C A 1 0 X 1 0 0 X 0 0 0 X X 1 1 X X K-map for C 4 AB CD 00 01 11 10 00 01 11 10 D B C A 1 1 X 1 0 1 X 1 0 0 X X 0 1 X X K-map for C 5 AB CD 00 01 11 10 00 01 11 10 D B C A 0 1 X 1 0 1 X 1 1 0 X X 1 1 X X K-map for C 6
Usando un tool automatico: “
espresso
”
.i 4 .o 7 .ilb a b c d .ob c0 c1 c2 c3 c4 c5 c6 .p 16 0000 1111110 0001 0110000 0010 1101101 0011 1111001 0100 0110011 0101 1011011 0110 1011111 0111 1110000 1000 1111111 1001 1110011 1010 --- 1011 --- 1100 --- 1101 --- 1110 --- 1111 --- .e .i 4 .o 7 .ilb a b c d .ob c0 c1 c2 c3 c4 c5 c6 .p 9 -10- 0000001 -01- 0001001 -0-1 0110000 -101 1011010 --00 0110010 --11 1110000 -0-0 1101100 1--- 1000011 -110 1011111 .e espresso espresso output C0 = B C' D + C D + B' D' + B C D' + A C1 = B' D + C' D' + C D + B' D' C2 = B' D + B C' D + C' D' + C D + B C D' C3 = B C' D + B' D + B' D' + B C D' C4 = B' D' + B C D' C5 = B C' D + C' D' + A + B C D' C6 = B' C + B C' + B C D' + Asolo 9 Termini Prodotto unici!
Implementazione PLA