reti logiche combinatorie -...
Post on 15-Feb-2019
220 Views
Preview:
TRANSCRIPT
Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica
Laboratorio di Microelettronica e Bioingegneria (EOLAB)
Reti Logiche Combinatorie
Modulo 4
A.A. 2013/2014 Elettronica M. Barbaro
Logica combinatoria
Un blocco di logica puramente combinatoria è un blocco
con N variabili di ingresso e M variabili di uscita che
sono funzione (booleana) degli ingressi presenti in un
certo istante.
Ad ogni istante le uscite dipendono solo dagli ingressi in
quell’istante e NON dalla storia passata del circuito
x1
x2
xN
z1 z2
zM
A.A. 2013/2014 Elettronica M. Barbaro
Logica sequenziale
Un blocco di logica sequenziale è un blocco logico le cui uscite dipendono non solo dagli ingressi attuali ma anche da tutta la storia passata degli ingressi (la sequenza di ingressi)
Un modello che descrive il loro comportamento è rappresentato in Figura, dove [zM,…,z0] rappresentano le uscite e [yK,..,y0] le cosiddette variabili di stato (vedremo meglio in seguito parlando di reti logiche sequenziali)
[xN,…,x0] [zM,…,z0]
[yK,…,y0]
A.A. 2013/2014 Elettronica M. Barbaro
Combinatorio e sequenziale
Il migliore esempio per distinguere un
comportamento combinatorio da uno
sequenziale è quello del telecomando:
Quando si preme un tasto corrispondente ad un
canale (1, 2, 3, etc.) il telecomando ha un
comportamento combinatorio, perché sintonizza il
televisore sul canale desiderato, a prescindere da
quello che si sta guardando il quel momento
Quando invece si preme il tasto avanti o indietro si
ha un comportamento sequenziale perché il nuovo
canale sintonizzato dipende da quello che si sta
guardando attualmente (se sto guardando Rai2
vedrò Rai3 e così via)
A.A. 2013/2014 Elettronica M. Barbaro
Reti combinatorie: analisi
La procedura di analisi di una generica rete combinatoria descritta in termini grafici per mezzo di un diagramma è molto semplice Si etichettano tutte le uscite di una porta logica che
sono funzione dei soli ingressi con un nome arbitrario
Si etichettano con un nome arbitrario tutte le uscite di una porta logica che siano funzione degli ingressi e dei segnali etichettati precedentemente
Si ripete il processo fino ad ottenere le uscite finali della rete
Si sostituisce ad ogni variabile la sua espressione logica costruendo così l’espressione logica completa
A.A. 2013/2014 Elettronica M. Barbaro
Analisi: esempio
T2 = ABC
T1 = A+B+C
T3 = T1 F2’
F2=AB+AC+BC
F1 = T2 + T3
A.A. 2013/2014 Elettronica M. Barbaro
Analisi: tabella di verità
La procedura per ricavare la tabella di verità è
altrettanto semplice:
Si determina il numero n di ingressi della rete e si
crea una tabella con 2n righe
Si etichettano le uscite delle singole porte con nomi
arbitrari
Si determina la tabella di verità di quelle porte che
sono funzione dei soli ingressi
Si procede trovando la tabella di verità per quelle
uscite che sono funzione degli ingressi e di segnali
definiti precedentemente
A.A. 2013/2014 Elettronica M. Barbaro
Reti combinatorie : sintesi
La procedura di sintesi fa uso degli strumenti
dell’algebra di Boole
Dalle specifiche del circuito si determina il numero di
ingressi ed uscite
Per ogni uscita si ricavano le tabelle di verità
Si minimizza l’implementazione di ciascuna funzione
(per mezzo di mappe di Karnaugh o metodi più
sofisticati)
Si disegna il diagramma circuitale con le porte
logiche e se ne verifica il funzionamento
A.A. 2013/2014 Elettronica M. Barbaro
Reti combinatorie
Vedremo adesso una panoramica dei principali
blocchi logici combinatori utilizzati come blocchi
base per l’implementazione di sistemi digitali
complessi
Per alcuni di questi circuiti seguiremo tutta la
fase di sintesi, come esempio, altri li
analizzeremo solamente.
A.A. 2013/2014 Elettronica M. Barbaro
Addizionatore
La specifica di un circuito
addizionatore è puramente
discorsiva: si tratta di un
circuito in grado di prendere in
ingresso due numeri binari a N
bit (A e B) e generare in uscita
la somma su N bit (S) ed un bit
di riporto
HA
FA
FA
FA
A0
A1
A2
A3
B0
B1
B2
B3
S0
S1
S2
S3
C3 = S4
C0
C1
C2
+ A[3:0]
B[3:0]
S[4:0]
A.A. 2013/2014 Elettronica M. Barbaro
Addizionatore: sintesi
Gli ingressi sono in totale 2N (N bit di A e N di B)
Le uscite sono N+1 (N bit per la somma S più un bit di
riporto Cout)
Piuttosto che implementare direttamente tutta la rete se
ne può sfruttare la natura gerarchica esplicitata nello
schematico del lucido precedente
Si possono cioè sviluppare due blocchi
HA: Half-adder, somma due bit e genera la somma ed il riporto
FA: Full-adder, somma tre bit e ne genera somma e riporto
L’addizionatore completo è poi ottenuto dall’opportuna
interconnessione di blocchi HA e FA
A.A. 2013/2014 Elettronica M. Barbaro
HA: sintesi
A B S C
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
1
1
A B
1
0
0 1
S=A’B+AB’
1
A B
1
0
0 1
C=AB
Le due mappe
non sono
minimizzabili
ulteriormente
A.A. 2013/2014 Elettronica M. Barbaro
Implementazione
Questa funzione è
l’operatore XOR
A.A. 2013/2014 Elettronica M. Barbaro
FA: sintesi
A B Cin S C
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
C=AB+BCin+ACin
1
1 1 1
AB Cin
1
0
00 01 11 10
S=AB’Cin’+A’BCin’+A’B’Cin+ABCin
1 1
1 1
AB Cin
1
0
00 01 11 10
A.A. 2013/2014 Elettronica M. Barbaro
FA: sintesi
L’espressione di S non è ulteriormente
minimizzabile ma può essere ulteriormente
manipolata:
S = Cin’ (A’B+AB’) + Cin (AB+A’B’)
Per DeMorgan: (A’B+AB’)’ = ((A’B)’ (AB’)’) =
= (A+B’) (A’+B) = AA’+AB+A’B’+B’B =
= AB+A’B’
S = (AB)Cin
(AB) (AB)’
A.A. 2013/2014 Elettronica M. Barbaro
Implementazione (1)
Implementazione diretta con porte AND e OR
A.A. 2013/2014 Elettronica M. Barbaro
Implementazione (2)
Implementazione con due HA ed una porta OR
HA HA
A.A. 2013/2014 Elettronica M. Barbaro
Sommatore / sottrattore
Avendo un sommatore fatto di soli FA si può
implementare facilmente un circuito
sommatore/sottrattore ricordando che per
sottrarre due numeri basta sommare il primo
all’opposto del secondo
In complemento a 2, per generare l’opposto di
un numero basta complementare tutti i bit e
sommare 1
Usando un sommatore fatto di soli full-adder per
sommare 1 basta portare ad 1 il carry in
ingresso del primo FA
A.A. 2013/2014 Elettronica M. Barbaro
Implementazione
M=0, il circuito è un semplice sommatore
M=1, il circuito è un sottrattore (le XOR complementano i bit in ingresso e M entra nel carry)
A.A. 2013/2014 Elettronica M. Barbaro
Moltiplicatore binario
Circuito per la moltiplicazione di due numeri a 2 bit
A.A. 2013/2014 Elettronica M. Barbaro
Decoder
Un decoder è un circuito con N segnali di
ingresso e M segnali di uscita
A seconda della combinazione in ingresso viene
selezionata una delle linee d’uscita (la
combinazione di ingresso viene decodificata)
Il decoder più importante è quello binario che ha
in ingresso N bit ed in uscita 2N segnali
A seconda della combinazione binaria in ingresso
viene selezionata una delle uscite (se in ingresso ho
il codice 0 seleziono l’uscita 0, se ho il codice 1
l’uscita 1 e così via)
A.A. 2013/2014 Elettronica M. Barbaro
Implementazione
Decoder con abilitazione (E). Le mappe non sono evidentemente minimizzabile perché
per ogni codice di ingresso una ed una sola linea d’uscita va alta
A.A. 2013/2014 Elettronica M. Barbaro
Decoder complessi
All’aumentare del numero di ingressi posso realizzare il decoder utilizzando decoder
più piccoli in parallelo
A.A. 2013/2014 Elettronica M. Barbaro
Logica combinatoria con decoder
Un decoder può essere usato per implementare qualsiasi funzione logica. A seconda della combinazione
d’ingresso una sola uscita è alta, si mettono in OR le uscite che corrispondono alle righe per cui la
funzione deve essere 1
A.A. 2013/2014 Elettronica M. Barbaro
Encoder
Un encoder svolge l’operazione inversa, dati N ingressi, genera M uscite per identificare quale degli ingressi era alto tramite un opportuno codice
Come sempre, il codice binario è il più semplice, avrò allora N ingressi e log2N uscite che codificano quale linea d’ingresso è risultata alta
Siccome più ingressi possono essere alti contemporaneamente, si stabilisce un meccanismo di priorità in base al quale se più ingressi sono alti si mette in uscita il codice che corrisponde all’ingresso a massima priorità
A.A. 2013/2014 Elettronica M. Barbaro
Implementazione
A.A. 2013/2014 Elettronica M. Barbaro
Implementazione
A.A. 2013/2014 Elettronica M. Barbaro
Multiplexer
Un multiplexer è un circuito che, in base ad un
codice di ingresso, fa passare in uscita il valore
di uno di N segnali in ingresso
Se N sono gli ingressi, il codice di selezione
deve essere composto da log2N bit
A.A. 2013/2014 Elettronica M. Barbaro
Implementazione
A.A. 2013/2014 Elettronica M. Barbaro
Logica combinatoria con multiplexer
Anche i multiplexer possono essere dei blocchi base per implementare una qualsiasi
funzione logica
top related