Algebra di Boole.

Slides:



Advertisements
Presentazioni simili
LOGICA.
Advertisements

Algebra Booleana Generalità
Algebra di Boole Casazza Andrea 3EA I.I.S. Maserati.
D. Menasce1 Queste trasparenze sono disponibili sul sito web dellautore: (selezionare lopzione COURSES) Queste.
Elaborazione dei segnali mediante circuiti analogici o digitali.
Informatica Generale Marzia Buscemi IMT Lucca
La programmazione in linguaggio Listato
Linguaggi algoritmici
Algebra di Boole..
(sommario delle lezioni in fondo alla pagina)
Cap. II. Funzioni Logiche
Laboratorio ricerca-azione: Metodiche formative per adulti
1 Informatica Presentazione del corso ENIAC Electronical Numerical Integrator and Calculator Il primo calcolatore elettronico, lENIAC Electronical Numerical.
Esercitazioni su circuiti combinatori
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Reti Logiche A Lezione n.1.4 Introduzione alle porte logiche
Analisi e sintesi di circuiti combinatori
1 Sistemi Digitali. 2 Definizione Analog Waveform Time Voltage (V) 0 5 Digital Waveform Time Voltage (V)
Sintesi con circuiti LSI-MSI
Sistemi Digitali.
Algebra di Boole ed elementi di logica
Algebra di Boole ed elementi di logica
IFTS2002 Acq. Dati Remoti: INFORMATICA
Corso Fisica dei Dispositivi Elettronici Leonello Servoli 1 Retta di carico (1) La retta dipende solo da entità esterne al diodo.
Sintesi con circuiti LSI-MSI. Realizzazione di reti combinatorie mediante Multiplexers Un multiplexer (MPX ) é una rete combinatoria con N ingressi, una.
Fondamentidi Programmazione Corso: Fondamenti di Programmazione Classe: PARI-DISPARI Docente: Prof. Luisa Gargano Testo: Aho, Ulman, Foundations of Computer.
Programmazione Corso di laurea in Informatica
L'algebra di Boole e le sue applicazioni
Algebra di George Boole
Algebra di Boole e sue applicazioni
Indice: L’algebra di Boole Applicazione dell’algebra di Boole
Analisi e sintesi di circuiti combinatori. Reti combinatorie.
Algebra di Boole L’algebra di Boole è un formalismo che opera su variabili (dette variabili booleane o variabili logiche o asserzioni) che possono assumere.
Usare rappresentazioni di lunghezza fissa porta ad avere valori non rappresentabili: Overflow indica un errore nella rappresentazione del risultato in.
Prima e Seconda Forma Canonica
Claudia Raibulet Algebra Booleana Claudia Raibulet
Introduzione ~ 1850 Boole - De Morgan – Schroeder ALGEBRA BOOLEANA
4 Tipi di dati & variabili
Algebra di Boole … logica matematica Progetto Eracle 2
Algebra di Boole.
INFORMATICA MATTEO CRISTANI. INDICE CICLO DELLE LEZIONI LEZ. 1 INTRODUZIONE AL CORSO LEZ. 2 I CALCOLATORI ELETTRONICI LEZ. 3 ELEMENTI DI TEORIA DELL INFORMAZIONE.
Algebra di Boole e Circuiti Logici
Programma di Informatica Classi Prime
Linguaggi e Programmazione per l’Informatica Musicale
ELETTRONICA GEORGE BOOLE FUNZIONI LOGICHE Lezione N° 1
Algebra di Boole.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole ed elementi di logica Marco D. Santambrogio – Ver. aggiornata.
Algebra di Boole.
Informatica 3 V anno.
ARCHITETTURA DEI SISTEMI ELETTRONICI
Circuiti logici.
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Reti Logiche A Lezione.
LATCH. Circuiti Sequenziali I circuiti sequenziali sono circuiti in cui lo stato di uscita del sistema dipende non soltanto dallo stato di ingresso presente.
Algebra di Boole.
Circuiti di memorizzazione elementari: i Flip Flop
Fondamenti di Informatica1 Memorizzazione su calcolatore L'unità atomica è il bit (BInary DigiT) L'insieme di 8 bit è detta byte Altre forme di memorizzazione:
Rappresentazione dell'informazione
Algebra di Boole L’algebra di Boole è un formalismo che opera su variabili (dette variabili booleane o variabili logiche o asserzioni) che possono assumere.
Rappresentazione in virgola mobile (floating-point) Permette di rappresentare numeri con ordini di grandezza molto differenti utilizzando per la rappresentazione.
Vincenza Ferrara - Dicembre 2007 Fondamenti di Matematica e Informatica Laboratorio Informatica I anno a.a
Rappresentazione dell'informazione 1 Se ho una rappresentazione in virgola fissa (es. su segno e 8 cifre con 3 cifre alla destra della virgola) rappresento.
Sintesi Reti Combinatorie
Algebra di Boole.
Copyright © Istituto Italiano Edizioni Atlas
Problemi, algoritmi e programmazione
Esercizio n o 3 Si realizzi una calcolatrice a 32 bit con interfaccia “normale” (decimale) con LabView, utilizzando SOLAMENTE: –convertitore decimale (input)
Logica di base e Conversione analogico-digitale Lezione 3 / Prima parte Gaetano Arena e.mail: 1.
Unità di apprendimento 6
Calliope-Louisa Sotiropoulou I NTRODUZIONE ALLA T ECNOLOGIA D ELL ’FPGA F IELD P ROGRAMMABLE G ATE A RRAYS PISA, 02/03/2016 Marie Curie IAPP Fellow - University.
Introduzione a Logisim
Transcript della presentazione:

Algebra di Boole

Algebra di Boole I fondamenti dell’algebra Booleana sono stati delineati dal matematico inglese George Boole in un lavoro pubblicato nel 1847 riguardante l’analisi della logica e in particolare l’algebra della logica. Questa algebra include una serie di operazioni che si effettuano su delle variabili logiche, dette appunto variabili Booleane: quantità che permettono di codificare le informazioni su due soli livelli. Nell'algebra di Boole essendo, a differenza di quella tradizionale, un'algebra binaria, le variabili possono assumere soltanto due stati: 0 / 1; v/f ( vero, falso); l/h (low, high); t/f (true, false); on/off; (acceso/spento) La definizione di ciascuna operazione booleana si può dare sotto forma di tabellina (la tabella di verità) Realizzazione di Reti logiche: circuiti che realizzano una funzione logica

Operazioni logiche/booleane : perché sono importanti Sono facili da realizzare utilizzando circuiti elementari È possibile dimostrare che tutte le funzioni hardware interessanti (circuiti elettronici, microprocessori, ecc.) possono essere calcolate utilizzando una opportuna combinazione delle funzioni logiche Esistono procedimenti automatici per realizzare le funzioni disponibili nell’hardware Possiamo scrivere programmi che dialogano direttamente con l’hardware e manipolare sequenze binarie direttamente Identità con l’algebra usuale Tutte e sole le operazioni definite da Boole sono applicabili alla schematizzazione dei circuiti di commutazione elettronici

Boole postulo’ una tabella di associazione fra variabili logiche con quattro possibili coppie di valori sono associate fra loro tramite una condizione logica, ad esempio AND oppure OR. Viene definita una operazione logica AND fra queste coppie dia i seguenti risultati: 1 1 1 Abbiamo due possibili valori logici (1/0, vero/falso , on/off…) e quindi quattro possibili coppie: La scelta dei possibili valori di accoppiamento che qui abbiamo operato e’ legata al nostro desiderio di implementare un qualche tipo di meccanismo o dispositivo che sia capace di operare in modo automatico su quantita’booleane. Esempio: un circuito elettronico capace di operare su valori binari (che fornisce proprio i valori sopra indicati) e’ il seguente:

_ + Off 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: + _ Off Se gli interruttori, come in questo caso, sono entrambi Off, il circuito non sara’ chiuso e la lampadina restera’ spenta:

_ + On Off Un esempio di implementazione di un circuito logico Basta che anche uno solo dei due interruttori sia Off, perche’ il circuito rimanga interrotto e la lampadina resti spenta

Basta che anche uno solo dei due interruttori sia Off, perche’ il circuito rimanga interrotto e la lampadina resti spenta + Off On _

Se invece mettiamo entrambi gli interruttori sulla posizione On, il circuito verra’ chiuso e la lampadina si accendera’!! + On On _

1 Off Off Off Off On Off On Off Off On On On Possiamo istituire una corrispondenza fra il comportamento di questo circuito e la tabella di verita’ vista prima. Switch 1 Switch 2 Lampadina 1 Off Off Off Off On Off On Off Off On On On

A B Z 0 0 0 0 1 0 1 0 0 1 1 1 A B Z=AB AND A B Z 0 0 0 0 1 1 1 0 1 1 1 1 A B Z=A+B OR Operatori Logici o porte logiche Circuiti logici ( logic gate) per costruire reti logiche AND produce 1 in output solo se entrambi gli input sono 1, zero altrimenti. OR produce 1 in output se anche uno solo dei valori in input e’ 1 A Z 0 1 1 0 A Z=A NOT (Inverter) NOT e’ un operatore di inversione, scambia lo zero con 1 e viceversa

NAND agisce prima come l’AND e poi ne complementa l’output. A B Z 0 0 1 0 1 1 1 0 1 1 1 0 A B Z=AB NAND A B Z 0 0 1 0 1 0 1 0 0 1 1 0 A B Z=A+B NOR NOR agisce prima come l’OR e poi ne complementa l’output. XOR restituisce un 1 se il numero di 1 in ingresso e’ dispari. XNOR agisce prima come l’XOR e poi ne inverte l’output. A B Z 0 0 0 0 1 1 1 0 1 1 1 0 A B Z=A  B Exclusive-OR (XOR) A B Z 0 0 1 0 1 0 1 0 0 1 1 1 A B Z=AB Exclusive-NOR (XNOR) Quelli indicati sono solamente i tipi basilari di gate logici, sui quali e’ poi possibile costruire logiche piu’ complesse:

Questo gate di tipo AND con tre ingressi si comportera’ in modo analogo a quello con due ingressi: si avra’ in output un 1 se e solo se tutti gli ingressi sono posti ad 1. La tabella di verita’ sara’ composta da otto combinazioni dei tre ingressi A,B,C A B C Z = ABC A B C Z 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 Questo esercizio puo’ essere ampliato a piacere costruendo elementi adatti a risolvere sistemi logici di arbitraria complessita’...

OR AND NOT

Proprieta’

Proprieta’

Regole di De Morgan

Funzioni Logiche Data una espressione booleana si può trovare la tabella della verità che la rappresenta. Per determinare il valore dell’espressione si può determinare il valore delle sotto espressioni che compongono l’espressione iniziale: Esempio: F= ( A AND ( NOT B )) OR C prima NOT B, poi A AND (NOT B) ed infine tutta l’espressione (A AND (NOT B)) OR C:

U= (X OR (NOT Y)) AND ((NOT X ) OR Z) OR (Y AND Z) Esempio Esempio x y z x +y x + z (x + y )(x + z ) yz u 1

Reti Logiche e porte logiche nell’elettronica digitale Le reti logiche sono strettamente legate all’algebra di boole, sono reti composte da tre tipi di elementi (AND, OR e NOT) collegati tra loro detti porte logiche. Ogni porta logica ha degli ingressi booleani (sulla sinistra) ed una uscita booleana (sulla destra) gli elementi hanno una rappresentazione grafica che è la seguente:

Le porte logiche possono essere combinate fra loro, si può quindi codificare in linguaggio binario qualsiasi diagramma di flusso (flow chart) e convertirlo poi in circuito logico. Per esempio, la frase: "se è bel tempo ed è caldo esco; tuttavia, se ho un impegno esco in ogni caso" richiede una porta AND ed una porta OR unite tra loro come in figura.

La combinazione di più porte logiche, permette di ottenere risultati più articolati. Per esempio, nella figura sotto è mostrata una porta NOR, costituita dalla combinazione di due porte AND, due porte NOT ed una porta OR. Questa porta permette di selezionare un valore positivo (1) se e solo se uno dei due dati in ingresso è positivo (a differenza della porta OR che fornisce un valore unitario anche se entrambi i dati in ingresso sono positivi). Si possono così costruire circuiti in grado di effettuare operazioni matematiche e se combiniamo tra loro più porte logiche si possono ottenere rapidamente, e senza confusione, decisioni immediate per problemi anche complessi.

Circuiti Elettronici Digitali I circuiti elettronici digitali sono costituiti da transistor. Un transistor permette di far passare o non far passare elettroni. Il passaggio di elettroni è un segnale elettronico binario (1 se passano elettroni, 0 se non passano). La caratteristica che distingue gli interruttori elettronici dai più comuni interruttori elettrici è che essi sono comandati da un segnale elettronico binario e non dall'intervento umano. Questo significa che è possibile usare il segnale elettronico di un transistor per comandare un altro transistor e così ottenere un nuovo segnale elettronico che, a sua volta, può comandare un altro transistor e così via. L'insieme di questi interruttori elettronici che si comandano a vicenda viene detto circuito elettronico. Vi sono infinite possibilità di costruzione di circuiti elettronici, ma essenzialmente sono tutte riconducibili agli elementi fondamentali qui esaminati.

Reti Logiche Le reti logiche elaborano informazione rappresentata da segnali digitali. Sono gli elementi architettonici dei calcolatori. L’algebra di Boole costituisce il mezzo matematico fondamentale per descrivere il funzionamento di queste reti, che nella maggior parte dei casi elaborano segnali binari.

F = ( NOT (X AND Y) ) AND ( (NOT X) OR Y ) Reti Logiche Un uscita di un elemento può essere collegata ad un ingresso di un altro elemento per realizzare una rete logica. Una rete logica ha un insieme di segnali booleani di ingresso e un insieme di segnali booleani di uscita vediamo un esempio: Questa rete ha due ingressi X e Y ed una uscita F, a questa rete può essere associata una espressione booleana che determina il valore di F in funzione di X e Y, in questo caso si ha: F = ( NOT (X AND Y) ) AND ( (NOT X) OR Y ) I calcolatori elettronici sono realizzati utilizzando milioni di componenti elementari AND/OR/NOT.

Funzioni logiche: realizzazione con porte NAND, NOR Le porte NAND, NOR sono molto piu’ numerose delle AND, OR nei progetti normali in quanto sono piu’ facili da costruire usando dei transistor Qualsiasi espressione logica puo’ essere realizzata con porte NAND, NOR, NOT In realta’, NOT e’ inutile (NOT = NAND o NOR con gli ingressi collegati insieme) X 1 Y 1 X NOR Y 1 X 1 Y 1 X NAND Y 1

Logica multi-livello: conversione tra forme Reti NAND-NAND e NOR-NOR Leggi di DeMorgan: (A + B)' = A' • B'; (A • B)' = A' + B' Scritte diversamente: A + B = (A' • B')'; (A • B) = (A' + B')' In altre parole: OR e’ come NAND con ingressi complementati AND e’ come NOR con ingressi complementati NAND e’ come OR con ingressi complementati NOR e’ come AND con ingressi complementati Equivalenza OR/NAND A 1 A 1 B 1 B 1 A + B 1 A • B 1 A + B 1 A • B 1 A º A OR OR B B A º A Nand Nand B B

Logica multi-livello: conversione tra forme Equivalenza AND/NOR A 1 A 1 B 1 B 1 A • B 1 A + B 1 A • B 1 A + B 1 A º A AND AND B B A º A NOR NOR B B Si possono convertire reti con AND ed OR in reti con NAND e NOR, introducendo le inversioni opportune (“bolle”) Per mantenere i livelli logici, ogni inversione deve avere un’inversione corrispondente

Logica multi-livello: conversione tra forme Esempio: trasformare rete AND/OR in rete NAND/NAND (A) (B) AND OR AND NAND NAND (C) (D) NAND NAND NAND NAND

Reti combinatorie e reti sequenziali reti combinatorie: i segnali di uscita dipendono unicamente dai segnali di ingresso applicati alla rete all’istante considerato. reti sequenziali: i segnali di uscita dipendono dai segnali di ingresso applicati alla rete nel tempo, fino all’istante considerato.

Reti combinatorie una rete combinatoria realizza una funzione booleana con n ingressi ed m uscite Assegnando le variabili binarie x1x2….xm ai segnali di ingresso e le variabili z1z2….zm ai segnali di uscita, il comportamento della rete si specifica tramite una tabella del tutto analoga a quella che si impiega per assegnare le funzioni booleane Ciascuna variabile di uscita è quindi esprimibile in forma algebrica, come espressione booleana delle variabili di ingresso. ogni espressione booleana la si può rappresentare usando solo and, or e not

Fine