Informatica Generale Marzia Buscemi IMT Lucca email: [email protected] Ricevimento: Giovedì ore 16.00-18.00 presso Dipartimento di Informatica, Largo Pontecorvo 3 stanza 306 PS (lab. Global Computing) Tel. 050.2213102 o per posta elettronica Pagina web del corso: http://www.di.unipi.it/~buscemi/IG07.htm 1 Finora abbiamo visto... come si rappresenta l’informazione (numeri, caratteri, immagini fisse, video, suoni) in un calcolatore digitale. 2 ...adesso vediamo Come si elabora l’informazione codificata all’interno del calcolatore. (es. operazioni aritmetiche sui numeri, confronti e modifiche su dati) Il problema della progettazione dei circuiti digitali consiste nel: data in input una sequenza di bit, produrre in output un’opportuna sequenza di bit 3 Algebra di Boole Insieme di regole algebriche della logica binaria che stanno alla base del funzionamento dei calcolatori È costituita da: un insieme di variabili booleane A,B,C,... che possono assumere solo i valori 1 (vero) o 0 (falso). un insieme di funzioni (operazioni) che operano sulle variabili di input e danno delle variabili di output un insieme di leggi (assiomi) che definiscono le proprietà delle funzioni. 4 Algebra di Boole Le tre funzioni principali sono: AND (*): congiunzione logica A*B (AB) è vera se sia A sia B sono vere OR (+): “oppure” A+B è vera se almeno uno tra A e B è vero NOT ( ¯ oppure ¬ ): negazione Ā è vera se A è falsa 5 Tavole di verità Le tavole di verità servono a visualizzare i valori assunti dalle funzioni a partire da tutti i possibili valori delle variabili. A 0 0 1 B 0 1 0 1 1 A*B 0 0 0 1 A 0 0 1 B A+B 0 0 1 1 0 1 1 1 A 0 1 Ā 1 0 1 A partire da AND OR e NOT si possono ottenere tutte le funzioni che si scrivono con le tavole di verità. 6 Esempio: OR esclusivo Scrivere la tavola di verità di: x-OR (OR esclusivo): “A x-OR B” vera se è vera solo una tra A e B. A partire dalla tavola è possibile vedere come si può scrivere x-OR in forma AND-OR: A x-OR B = (A * ¬B) + (B * ¬A) 7 Esercizi Per ciascuna delle seguenti funzioni scrivere tavola e formalizzazione AND-OR. 1. Bit di parità: dati A,B e C, vale 1 se la somma di 1 assunti in input è dispari, vale 0 altrimenti. 2. Contatore: dati A,B e C, calcola la somma binaria degli 1 assunti in input. 3. Sommatore: dati due numeri binari da due cifre ciascuno, ne esegue la somma. 8 Semplificare funzioni booleane La mappa di Karnaugh è una tecnica grafica per rappresentare e ridurre funzioni booleane. Si tratta di una versione bidimensionale delle tavole di verità che permette di ricavare facilmente funzioni ridotte in forma AND-OR. 9 Mappa di Karnaugh AB 00 CD 01 11 10 00 1 0 0 1 01 0 0 1 1 11 1 1 1 1 10 0 0 0 0 1. Raggruppare i più grandi gruppi di 1 adiacenti in numero pari a una potenza di 2. 10 Mappa di Karnaugh AB 00 CD 01 11 10 1 0 0 1 0 0 1 1 1 1 1 1 00 01 11 10 0 0 0 0 ¬B¬C¬D AD CD 2. Ogni gruppo di 1 è rappresentato dall’AND delle variabili i cui valori non cambiano, prese dirette se valgono 1, prese negate altrimenti.11 Mappa di Karnaugh AB 00 CD 01 11 10 1 0 0 1 0 0 1 1 1 1 1 1 00 01 11 10 0 0 0 0 ¬B¬C¬D AD CD La funzione risultante è data dall’OR di tutti i gruppi: 12 ¬B¬C¬D + AD + CD Esercizi Scrivere le mappe di Karnaugh e le (eventuali) funzioni ridotte per: 1. la funzione x-OR 2. la funzione bit di parità 3. la funzione contatore (per il primo bit) 4. la funzione sommatore (per l’ultimo bit) 5. la funzione incremento (dato un numero x a 3 bit dà in output x+1) 13