Logica binaria e algebra di Boole.


Numerazione binaria.

Numerazione basata su due simboli (0,1). Come per la numerazione decimale:
-le due cifre avranno significato differente in base alla posizione;
-la cifra meno significativa si trova a destra;
-ogni cifra in posizione i moltiplica 2^i. (in base dieci le unità moltiplicano 10^0, le decine 10^1...);

Sia bi il valore del bit in posizione i, considerando la prima posizione come la posizione 0 avremo che il numero convertito in decimale è uguale alla sommatoria di bi*2^i per i che va da 0 a n-1 (n=numero di bit).

Per convertire da decimale a binario si usa il metodo delle divisioni successive, valido in generale per passare da una base all'altra.

Sia N il numero

Si divide N per la nuova base p; sia Q il quoziente ed R il resto.
Si converte R nella corrispondente cifra della nuova base p.
Si aggiunge la cifra cosi' ottenuta a sinistra delle cifre ottenute in precedenza.
Se Q=0, fine; Altrimenti poni N = Q e torna al passo 1

Se si passa in base 2 la divisione avrà sempre resto 0 o 1. Considerando il primo resto ottenuto come la cifra meno significativa e l'ultimo come la cifra più significativa, mettendo in fila i resti ottenuti abbiamo convertito il numero in numerazione binaria

Somma

Tabelle di verità somma
Tabelle di verità somma

Per effettuare la somma basta applicare queste due tabelle di verità all'algoritmo che già conoscete per la somma di numeri in colonna.

Sottrazione
La sottrazione non è altro che la somma con un numero negativo ovvero espresso in complemento a 2.
Il complemento a 2 viene espresso negando tutti i bit e sommando 1 alla stringa negata.
In A-B una volta fatto il complemento a 2 di B, chiamiamo C il complemento a 2 di B, basta effettuare la somma A+C per ottenere il risultato di A-B. Esempio:
A=0000, B=0010,  C=1101+1=1110,  A-B=A+C=1110

L'algebra di Boole.

L'algebra di Boole è una struttura algebrica (A,\/,/\) dove A è un insieme contente almeno due elementi e \/,/\ sono due operazioni binarie interne su A (\/,/\ | AxA-->A)  dette rispettivamente disgiunzione e congiunzione (OR e AND):
-\/,/\ sono commuttative
-l'elemento neutro per \/ è lo 0 e per /\ è 1
-\/,/\ sono distributive l'una rispetto all'altra
-Per ogni a appartenente ad A esiste a' appartenente ad A | a\/a'=1 e a/\a'=0, a' viene detto complementare di a.

Proprietà per ogni a,b appartenente ad A
-a\/a=a a/\a=a
-a\/1=1 a/\0=0
-a\/(a/\b)=a

Dualità

Se in un affermazione si negano tutti i valori e si scambiano tutte le operazioni l'affermazione resta vera. Tale proprietà è nota come principio di dualità. Possiamo applicare il principio di dualità alle tre proprietà precedenti per ottenere le duali. 

Espressioni booleane
Si dice funzione booleana ogni espressione ottenuta tramite una qualunque combinazione di elementi di A tramite le due operazioni. Ogni funzione booleana può essere portata in forma canonica congiuntiva o disgiuntiva. Se facciamo corrispondere lo 0 al falso e l'1 al vero parliamo di logica proposizionale. In questo caso il complemento di una proposizione corrisponde alla sua negazione, la congiunzione vale 1 ogni volta che una delle due variabili vale 1, l'intersezione vale 1 solo se entrambe le variabili valgono 1. L'algebra booleana viene detta anche algebra della commutazione. Per rappresentare tutte le funzioni booleane sono sufficienti gli operatori AND OR e NOT.

Disgiunzione esclusiva
La disgiunzione esclusiva XOR restituisce 1 quando i bit in ingresso sono diversi e 0 altrimenti.

Circuiti logici
Nei circuiti logici viene implementato fisicamente il funzionamento degli operatori logici mediante le porte logiche realizzate attraverso dispositivi elettronici chiamati transistor realizzabili in scala veramente ridotta (persino in un micron quadro). Questi dispositivi opportunamente alimentati, sono in grado di fornire segnali interpretabili come bit. In pratica mediante le porte logiche si può lavorare su due soli livelli di tensione ottenendo dei circuiti digitali. Basti assumere che la presenza di una tensione in uscita alla porta logica rappresenti il valore logico 1, e l'assenza di tensione rappresenti il valore logico 0, chiaramente questo va bene in teoria ma per rendere il sistema più forte rispetto ai disturbi si utilizzano degli intervalli di bassa tensione  0(per esempio tra 0 e 1.5 volt) e alta tensione 1(per esempio tra 4 e 5 Volt). Per approfondire clicca qui.

Reti combinatorie
Insieme di porte logiche che realizzano una determinata funzione booleana con uscita dipendente esclusivamente dai valori degli ingressi in quel preciso istante.
E' caratterizzata da n variabili in ingresso e m variabili in uscita.
E' possibile fissare valori diversi delle uscite fino a 2^n uscite, in quanto saranno le possibili combinazioni in ingresso. LE reti combinatorie sono caratterizzate dai livelli di porte logiche che sono costituiti dalle porte i cui ingressi ricevono i segnali contemporaneamente. Il numero di livelli caratterizzerà il tempo di elaborazione della rete o ritardo introdotto dalla rete.  Potremo descrivere le nostre reti combinatorie tramite tabelle di verità e mappe di Karnaugh.
Le mappe di Karnaugh risulteranno particolarmente utili per portare in forma minima le espressioni logiche e tramite le espressioni in forma minima (prodotto di somme o somme di prodotti) otterremo il circuito logico.

Sintesi di una rete combinatoria.
Talvolta vi capiterà di utilizzare moduli che danno informazioni digitali in ingresso ad Arduino (per esempio un sensore di prossimità) e di voler pilotare le uscite in base alle combinazioni degli ingressi, ovviamente non ci sarà bisogno di implementare una rete combinatoria fisicamente ma potreste usare queste tecniche per ricavare l'espressione booleana che vi permetterà di pilotare le uscite in base agli ingressi con una sola riga di codice dopo ogni acquisizione dell'ingresso.
Innanzitutto è necessario scrivere la mappa di verità, ovvero una tabella con n+m caselle, dove n e m sono rispettivamente gli ingressi e le uscite, e 2^n righe che rappresentano ognuna una combinazione degli n ingressi.
Per prima cosa scriveremo le 2^n combinazioni di ingressi sulle prime n colonne per poi compilare le m colonne rappresentanti le uscite con il valore desiderato. 
A questo punto si passa alla mappa di Karnaugh che ci permetterà di minimizzare l'espressione logica.
Per approfondire cliccare qui.











 2018 SolinasMakerShow
Creato con Webnode
Crea il tuo sito web gratis! Questo sito è stato creato con Webnode. Crea il tuo sito gratuito oggi stesso! Inizia