Queste trasparenze sono disponibili sul sito web dell’autore: http://sgimida.mi.infn.it/~menasce/home.html (selezionare l’opzione COURSES) D. Menasce 1 Il programma del Corso Seconda Parte 2) Implementazione di un circuito logico booleano D. Menasce 2 Nel 1854 il matematico George Boole pubblicò un lavoro circa un’algebra delle relazioni logiche, nel quale investigava le proprietà di sistemi binari. Una quantità (una variabile) capace di assumere solo due valori (ad esempio 1/0 o on/off) si dice booleana. Boole postulò una tabella di associazione fra variabili logiche, tabella nella quale le quattro possibili coppie di valori sono associate fra loro tramite una condizione logica, ad esempio AND oppure OR. Abbiamo due possibili valori logici (1/0, vero/falso , on/off…) e quindi quattro possibili coppie: Arbitrariamente possiamo decidere che l’operazione logica AND fra queste coppie dia i seguenti risultati: 0 1 0 0 0 1 0 1 La scelta dei possibili valori di accoppiamento che qui abbiamo operato è legata al nostro desiderio di implementare un qualche tipo di meccanismo che sia capace di operare in modo automatico su quantità booleane. Un circuito elettronico capace di operare su valori binari (che fornisce proprio i valori sopra indicati) è il seguente: D. Menasce 3 Un esempio di implementazione di un circuito logico Consideriamo un circuito composto da due interruttori e da una lampadina: Creiamo un circuito collegando interruttori e lampadina ai poli di un generatore: + _ Se gli interruttori, come in questo caso, sono entrambi Off, il circuito non sarà chiuso e la lampadina resterà spenta: e se poniamo un interruttore sulla posizione On? D. Menasce 4 Un esempio di implementazione di un circuito logico + _ Basta che anche uno solo dei due interruttori sia Off, perchè il circuito rimanga interrotto e la lampadina resti spenta D. Menasce 5 Un esempio di implementazione di un circuito logico Se invece mettiamo entrambi gli interruttori sulla posizione On, il circuito verrà chiuso e la lampadina si accenderà!! + _ Basta che anche uno solo dei due interruttori sia Off, perchè il circuito rimanga interrotto e la lampadina resti spenta D. Menasce 6 Un esempio di implementazione di un circuito logico + _ D. Menasce 7 è quindi evidente che possiamo istituire una corrispondenza fra il comportamento di questo circuito e la tabella di verità vista prima ( ) . In realtà abbiamo definito la tabella suddetta proprio perchè risulta semplice una corrispondente implementazione elettronica di quel comportamento logico. Switch 1 Switch 2 Off Off Off 0 0 0 Off On Off 0 1 0 On Off Off 1 0 0 On On 1 1 1 On Lampadina è possibile implementare comportamenti diversi di un circuito logico: vediamo alcuni fra i circuiti che si possono realizzare e quali sono le corrispondenti tabelle booleane: D. Menasce 8 Un logic gate è un dispositivo elettronico che implementa una semplice operazione booleana fra variabili binarie: senza entrare nel dettaglio di come fisicamente si realizzano dispositivi di questo tipo, vediamo un elenco di quelli fondamentali assieme alle corrispondenti tabelle di verità. AND produce 1 in output solo se entrambi gli input sono 1, zero altrimenti. A B Z A B Z 0 0 1 1 0 0 1 1 0 1 0 1 0 0 0 1 A Z=AB B Buffer è un operatore nullo: produce in output lo stesso valore ricevuto in input. è utile come amplificatore, per ripristinare segnali indeboliti ricevuti in ingresso (shaper) NOT è un operatore di inversione, scambia lo zero con 1 e viceversa (l’operazione di complementazione è indicata dal pallino) Z=A+B B OR A Z A Z 0 1 0 1 0 1 Z=A A Buffer D. Menasce 0 1 1 1 A AND OR produce 1 in output se anche uno solo dei valori in input è 1 0 1 0 1 A 1 0 Z=A NOT (Inverter) 9 NAND agisce prima come l’AND e poi ne complementa l’output. NOR agisce prima come l’OR e poi ne complementa l’output. XOR restituisce un 1 se il numero di 1 in ingresso è dispari. XNOR agisce prima come l’XOR e poi ne complementa l’output. A B Z A B Z 0 0 1 1 0 0 1 1 0 1 0 1 1 1 1 0 A Z=AB B Quelli indicati sono solamente i tipi basilari di gate logici, sui quali è poi possibile costruire logiche più complesse: 0 1 0 1 1 0 0 0 A Z=A+B B NAND NOR A B Z A B Z 0 0 1 1 0 0 1 1 A B 0 1 0 1 0 1 1 0 Z=A B Exclusive-OR (XOR) D. Menasce 0 1 0 1 1 0 0 1 A B Z=AB Exclusive-NOR (XNOR) 10 Questo gate di tipo AND con tre ingressi si comporterà in modo analogo a quello con due ingressi: si avrà in output un 1 se e solo se tutti gli ingressi sono posti ad 1. La tabella di verità sarà ovviamente più lunga... A B C Z 0 0 1 1 0 0 1 1 Questo esercizio può essere ampliato a piacere costruendo elementi adatti a risolvere sistemi logici di arbitraria complessità... A B C D. Menasce 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 Z = ABC A B Z =A+ B A B Z =A+ B W=A+B 11