Reti Logiche Combinatorie Modulo 4 Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Microelettronica e Bioingegneria (EOLAB) 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 z1 z2 xN A.A. 2013/2014 zM 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 F1 = T2 + T3 T1 = A+B+C T3 = T1 F2’ F2=AB+AC+BC 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 B0 A1 B1 A2 B2 A[3:0] + S[4:0] B[3:0] A.A. 2013/2014 A0 Elettronica A3 B3 M. Barbaro HA S0 C0 FA S1 C1 FA S2 C2 FA S3 C3 = S4 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 0 1 0 1 A B S C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 1 1 Le due mappe non sono minimizzabili ulteriormente A B 0 0 1 A.A. 2013/2014 S=A’B+AB’ 1 C=AB 1 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 A.A. 2013/2014 S=AB’Cin’+A’BCin’+A’B’Cin+ABCin AB Cin 00 01 11 10 1 1 0 1 1 1 AB Cin 00 01 11 1 0 1 1 1 Elettronica C=AB+BCin+ACin 10 1 M. Barbaro FA: sintesi L’espressione di S non è ulteriormente minimizzabile ma può essere ulteriormente manipolata: (AB) (AB)’ 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 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) HA HA Implementazione con due HA ed una porta OR 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 A.A. 2013/2014 Elettronica M. Barbaro