successivo precedente inizio fine indice generale indice analitico volume parte TXT HTML PDF pdf P1 P2 P4 aggiornamenti
La logica formale studia le proposizioni dichiarative, dove per proposizione si intende l'insieme di soggetto e verbo. È una proposizione dichiarativa quella proposizione nei confronti della quale è possibile stabilire se è vera o è falsa. Vero o Falso sono gli unici valori che può assumere una proposizione dichiarativa.
La proposizione che non si può suddividere in altre proposizioni, si dice essere elementare.
Il valore di una proposizione dichiarativa (Vero o Falso) può essere espresso in vari modi, a seconda del contesto. Generalmente, si attribuisce alla cifra numerica uno il significato di Vero, mentre a zero si attribuisce il valore Falso.
La variabile che può assumere solo il valore risultante da una proposizione dichiarativa, è una variabile logica.
Un'espressione logica è quella che produce un risultato Vero o Falso. L'espressione logica può essere costituita da proposizioni dichiarative, da valori costanti (espressi secondo la forma prevista per rappresentare Vero o Falso) e da variabili logiche. Per connettere o comunque per intervenire nei valori delle varie componenti dell'espressione, si utilizzano degli operatori.
Si distinguono generalmente gli operatori logici in «unari» e in «connettivi logici», per distinguere se intervengono in un solo valore logico, oppure su due o più valori logici. Gli operatori logici si possono vedere come delle scatoline, che hanno uno o più ingressi, con una sola uscita.
Gli operatori logici unari ottengono in ingresso un solo valore logico; sono disponibili l'invertitore logico (NOT) e il non-invertitore logico.
L'invertitore logico è l'operatore unario che inverte il valore logico ricevuto in ingresso: se in ingresso riceve il valore Vero (1), in uscita genera il valore Falso (0); se in ingresso riceve il valore Falso (0), in uscita genera il valore Vero (1).
A titolo di esempio, se la variabile logica «A» contiene il risultato della proposizione dichiarativa «Antonio mangia», l'espressione logica «NOT A» è equivalente alla proposizione dichiarativa «Antonio non mangia».
.-------.-------. .---.-------. | A | NOT A | | A | NOT A | |-------|-------| |---|-------| | falso | vero | | 0 | 1 | | | | | | | | vero | falso | | 1 | 0 | `-------'-------' `---'-------' |
Il simbolo elettronico dell'invertitore logico è quello seguente:
|
|
Il non-invertitore logico è l'operatore unario che presenta in uscita lo stesso valore ricevuto in ingresso. Il nome che viene dato al questo tipo di operatore indica la presenza di due negazioni consecutive che si eliminano a vicenda. Per esempio, se la variabile logica «A» contiene il risultato della proposizione dichiarativa «Antonio mangia», l'espressione logica «NOT A» è equivalente alla proposizione dichiarativa «Antonio non mangia», ma nello stesso modo, «NOT (NOT A)» è equivalente alla proposizione originale: «Antonio mangia».
.-------.-------------. .---.-------------. | A | NOT (NOT A) | | A | NOT (NOT A) | |-------|-------------| |---|-------------| | falso | falso | | 0 | 0 | | | | | | | | vero | vero | | 1 | 1 | `-------'-------------' `---'-------------' |
Il simbolo elettronico del non-invertitore logico è quello seguente:
|
|
Il circuito del non-invertitore logico è equivalente a due invertitori posti in cascata:
|
|
I connettivi logici sono gli operatori che utilizzano due ingressi. Il connettivo AND restituisce il valore Vero solo se entrambi i valori in ingresso sono pari a Vero. Per esempio, se la variabile logica «A» contiene il risultato della proposizione dichiarativa «Antonio mangia» e la variabile «B» contiene il risultato di «Piero legge», l'espressione «A AND B» equivale alla proposizione «Antonio mangia e Piero legge».
.---.---.---------. | A | B | A AND B | |---|---|---------| | 0 | 0 | 0 | | 0 | 1 | 0 | | 1 | 0 | 0 | | 1 | 1 | 1 | `---'---'---------' |
Il simbolo elettronico del circuito logico AND è quello seguente:
|
|
Il connettivo OR restituisce il valore Vero se almeno uno dei due ingressi dispone di un valore pari a Vero. Per esempio, se la variabile logica «A» contiene il risultato della proposizione dichiarativa «Antonio mangia» e la variabile «B» contiene il risultato di «Piero legge», l'espressione «A OR B» equivale alla proposizione «Antonio mangia e/o Piero legge».
.---.---.--------. | A | B | A OR B | |---|---|--------| | 0 | 0 | 0 | | 0 | 1 | 1 | | 1 | 0 | 1 | | 1 | 1 | 1 | `---'---'--------' |
Il simbolo elettronico del circuito logico OR è quello seguente:
|
|
Il connettivo XOR restituisce il valore Vero se solo uno dei due ingressi dispone di un valore pari a Vero. Per esempio, se la variabile logica «A» contiene il risultato della proposizione dichiarativa «Antonio mangia» e la variabile «B» contiene il risultato di «Piero legge», l'espressione «A XOR B» equivale alla proposizione «Antonio mangia oppure Piero legge».
.---.---.---------. | A | B | A XOR B | |---|---|---------| | 0 | 0 | 0 | | 0 | 1 | 1 | | 1 | 0 | 1 | | 1 | 1 | 0 | `---'---'---------' |
Il simbolo elettronico del circuito logico XOR è quello seguente:
|
|
Il circuito XOR si può anche sintetizzare utilizzando gli altri tipi di connettivi logici, per esempio come negli schemi successivi, dove la negazione logica viene rappresentata in forma sintetica attraverso l'uso di un pallino.
|
Figura 71.12. Circuito XOR ottenuto dai connettivi logici fondamentali. |
|
Figura 71.13. Circuito XOR alternativo. |
|
Figura 71.14. Altro circuito XOR alternativo. |
Un circuito logico complesso può essere rappresentato da una «scatola nera», nella quale entrano una serie di ingressi e dalla quale escono una serie di uscite. La combinazione dei livelli logici in uscita è funzione della combinazione dei livelli logici in ingresso, del tempo e di un fattore casuale che si manifesta tipicamente all'atto dell'alimentazione iniziale del circuito.
|
|
Quello raffigurato sopra è un esempio di scatola nera con cinque ingressi e tre uscite.
|
Si osservi che, salvo indicazione diversa, l'influenza della variabile tempo e della variabile casuale dovuta all'accensione del circuito si considera ininfluente. Si consideri inoltre che, a meno di un'indicazione specifica al riguardo, il tempo di propagazione nei circuiti logici sia pari a zero. |
Una scatola nera con un ingresso e una sola uscita, può essere rappresentata come nello schema seguente:
|
|
Una scatola nera con queste caratteristiche, può essere al massimo di quattro tipi. Lo schema seguente sintetizza i quattro tipi possibili, distinguendo i valori che possono apparire in uscita; in basso, vengono annotati i nomi che si possono attribuire ai quattro tipi di scatola nera.
.-------.----------------------------------.
| input | tipi in base ai valori di uscita |
| | 1 2 3 4 |
|-------|----------------------------------|
| 0 | 0 1 0 1 |
| | |
| 1 | 0 0 1 1 |
`-------'----------------------------------'
| | | |
| | | `--> unary
| | |
| | `--> not inverter
| |
| `--> inverter
|
`--> null
|
Come si vede dalle annotazioni contenute nello schema, la scatola nera di tipo due, coincide con il circuito invertente (ovvero NOT), mentre la scatola nera di tipo tre coincide con il circuito non-invertente.
La scatola nera di tipo quattro può essere ottenuta con il circuito seguente:
|
|
Lo schema può essere rappresentato in maniera semplificata nel modo seguente:
|
|
La scatola nera di tipo uno, può essere sintetizzata usando la scatola nera di tipo quattro e invertendo il livello logico in uscita:
|
|
Pertanto, lo schema complessivo potrebbe essere il seguente:
|
|
Ci sono 16 tipi di scatole nere con due ingressi e una sola uscita. Lo schema seguente riepiloga i vari casi:
.-------.-------------------------------------------------------------------.
| input | tipi in base ai valori di uscita |
| A B | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|-------|-------------------------------------------------------------------|
| 0 0 | 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 |
| | |
| 0 1 | 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 |
| | |
| 1 0 | 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 |
| | |
| 1 1 | 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 |
| | |
`-------'-------------------------------------------------------------------'
N N N N X N A E B A O U
U O O O O A N Q R N
L R T T R N D U I
L D A T
A B L Y
|
L'addizione in binario, eseguita con la stessa procedura consueta per il sistema di numerazione decimale, non genera mai un riporto superiore a uno. Lo si può verificare facilmente attraverso la tabella successiva.
|
Tabella 71.23. Addizione binaria.
|
Il circuito semiaddizionatore (half adder) è una scatola nera con due ingressi costituiti dai valori da addizionare e due uscite: il risultato (sum) e il riporto dell'addizione (carry out).
|
Figura 71.24. Scatola nera del semiaddizionatore. |
|
Tabella 71.25. Somma senza riporto in ingresso.
|
Il circuito del semiaddizionatore si sintetizza utilizzando un circuito XOR per la somma e un circuito AND per ottenere il riporto.
|
Figura 71.26. Circuito del semiaddizionatore. |
Il circuito del semiaddizionatore si sintetizza in modo molto semplice attraverso lo schema già presentato nella sezione precedente; se si sostituisce il circuito XOR con il suo equivalente si ottiene lo schema successivo, ma si possono anche tentare delle semplificazioni o degli adattamenti, come si vede in altre due figure.
|
Figura 71.27. Circuito del semiaddizionatore, traducendo il circuito XOR nei termini dei connettivi logici fondamentali. |
|
Figura 71.28. Circuito equivalente del semiaddizionatore. |
|
Figura 71.29. Circuito equivalente del semiaddizionatore. |
Il circuito addizionatore completo è analogo a quello del semiaddizionatore, con l'aggiunta di un riporto in ingresso (carry in).
|
Figura 71.30. Scatola nera dell'addizionatore completo. |
|
Tabella 71.31. Somma con riporto in ingresso.
|
Il circuito dell'addizionatore completo, si può ottenere a partire dal semiaddizionatore, come si vede nella figura successiva.
|
Figura 71.32. Addizionatore completo ottenuto con due semiaddizionatori. |
|
Figura 71.33. Schema dell'addizionatore completo. |
Per addizionare dei numeri interi con più bit, occorre predisporre un addizionatore parallelo. L'esempio della figura successiva è realizzato per quattro cifre binarie e si può notare che la cifra meno significativa (A1 e B1) richiede solo un semiaddizionatore.
|
Figura 71.34. Addizionatore a quattro cifre binarie. Le scatole nere sintetizzano un semiaddizionatore con due ingressi, un'uscita per il risultato e un'uscita per il riporto. |
Un circuito addizionatore completo deve essere provvisto, sia di un riporto in ingresso (carry in), sia di un riporto in uscita (carry out), in modo da poter essere messo in parallelo, assieme ad altri circuiti del genere.
|
Figura 71.35. Addizionatore a quattro cifre binarie, con riporto, sia in ingresso, sia in uscita. |
Una volta messi assieme tutti gli addizionatori che si vogliono utilizzare, il riporto in uscita serve a determinare se la somma dei due valori interi genera un risultato valido oppure no. In pratica, un riporto in uscita con valore pari a uno (Vero) indica che la somma ha prodotto un errore.
|
Figura 71.36. Due addizionatori a 4 bit, messi in parallelo, per formare un addizionatore complessivo a 8 bit: se alla fine si genera un riporto, la somma ottenuta nei primi 8 bit non è valida. |
Per eseguire la sottrazione, occorre che il sottraendo sia espresso secondo il complemento a due (complemento alla base). Per ottenere il complemento a due, si può partire dal complemento a uno, sommando poi una unità attraverso il riporto in ingresso. Il complemento a uno si ottiene semplicemente invertendo gli ingressi.
|
Figura 71.37. Per sottrarre un valore occorre invertire i valori del sottraendo, attivando il riporto in ingresso. Un risultato corretto della sottrazione deve dare un riporto finale; pertanto, se si inverte il riporto finale, se si ottiene un valore pari a uno (Vero), la sottrazione non è valida, in quanto si sottrae più del valore del minuendo. |
Come si può vedere dalla figura, l'ultimo riporto viene invertito, perché una sottrazione corretta deve generare un riporto pari a uno, mentre un riporto pari a zero indica che la sottrazione non è valida. Pertanto, in questo caso, se il risultato del riporto invertito è pari a uno, si segnala la presenza di un errore nel calcolo.
Per generalizzare il circuito, si possono sostituire le logiche invertenti con dei circuiti XOR, in modo da selezionare l'operazione, addizione o sottrazione, attraverso l'uso del riporto in ingresso.
|
Figura 71.38. Somma e sottrazione, attraverso il controllo del riporto in ingresso. |
Mario Italiani, Giuseppe Serazzi, Elementi di informatica, ETAS libri, 1973, ISBN 8845303632
Tony R. Kuphaldt, Lessons In Electric Circuits
Building a Digital Computer
<http://artematrix.org/Projects/TTL.processor/processor.design.htm>
«a2» 2010.04.08 anteprima --- Copyright © Daniele Giacomini -- <appunti2 (ad) gmail·com> <http://informaticalibera.net> Edizione di prova: si prega di segnalare i difetti.
successivo precedente inizio fine indice generale indice analitico TXT HTML PDF pdf P1 P2 P4 aggiornamenti check HTML check CSS