...

Logica e circuiti logici

by user

on
Category: Documents
21

views

Report

Comments

Transcript

Logica e circuiti logici
9
Capitolo
71
Logica e circuiti logici
«
71.1
Operatori logici e circuiti elementari
71.2
Circuiti logici complessi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
71.3
71.4
...................................... 9
71.2.1
Scatole nere con un ingresso e una uscita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
71.2.2
Scatole nere con due ingressi e una uscita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Addizionatore
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
71.3.1
Circuito semiaddizionatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
71.3.2
Circuiti equivalenti del semiaddizionatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
71.3.3
Circuito addizionatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
71.3.4
Addizionatori in parallelo
71.3.5
Sottrazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Riferimenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
ad
«a2» 2010.08 anteprima --- Copyright  Daniele Giacomini -- happunti2 ( ) gmail·com i hhttp://informaticalibera.net i Edizione di prova.
71.1 Operatori logici e circuiti elementari
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, aventi uno o più ingressi, ma 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).
«
10
volume V
Programmazione
Logica e circuiti logici
11
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».
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».
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».
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».
Il simbolo elettronico del non-invertitore logico è quello seguente:
Il circuito del non-invertitore logico è equivalente a due invertitori posti in cascata:
Il simbolo elettronico del circuito logico XOR è quello seguente:
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».
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.
Il simbolo elettronico del circuito logico AND è quello seguente:
F
| igura 71.12. Circuito XOR ottenuto dai connettivi logici fondamentali.
volume V
12
Programmazione
F
| igura 71.13. Circuito XOR alternativo.
Logica e circuiti logici
13
71.2.1 Scatole nere con un ingresso e una uscita
«
Una scatola nera con un ingresso e una sola uscita, può essere rappresentata come nello schema
seguente:
F
| igura 71.14. Altro circuito XOR alternativo.
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.
71.2 Circuiti logici complessi
«
Un circuito logico complesso può essere rappresentato da una «scatola nera», nella quale entrano degli ingressi e dalla quale escono delle 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.
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:
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.
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:
volume V
14
Programmazione
Logica e circuiti logici
15
F
| igura 71.24. Scatola nera del semiaddizionatore.
Pertanto, lo schema complessivo potrebbe essere il seguente:
71.2.2 Scatole nere con due ingressi e una uscita
«
Ci sono 16 tipi di scatole nere con due ingressi e una sola uscita. Lo schema seguente riepiloga
i vari casi:
T
| abella 71.25. Somma senza riporto in ingresso.
primo addendo (A)
secondo addendo (B)
risultato (sum)
02
02
12
12
02
12
02
12
02
12
12
02
riporto generato (carry
out)
02
02
02
12
Il circuito del semiaddizionatore si sintetizza utilizzando un circuito XOR per la somma e un
circuito AND per ottenere il riporto.
F
| igura 71.26. Circuito del semiaddizionatore.
71.3 Addizionatore
«
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.
T
| abella 71.23. Addizione binaria.
primo addendo
secondo addendo
02
02
02
02
12
12
12
12
02
02
12
12
02
02
12
12
riporto
preesistente
02
12
02
12
02
12
02
12
risultato
riporto generato
02
12
12
02
12
02
02
12
02
02
02
12
02
12
12
12
71.3.2 Circuiti equivalenti del semiaddizionatore
«
71.3.1 Circuito semiaddizionatore
«
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).
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.
volume V
16
Programmazione
F
| igura 71.27. Circuito del semiaddizionatore, traducendo il circuito XOR nei termini dei
connettivi logici fondamentali.
F
| igura 71.28. Circuito equivalente del semiaddizionatore.
Logica e circuiti logici
17
T
| abella 71.31. Somma con riporto in ingresso.
riporto
stente
in)
02
12
02
12
02
12
02
12
preesi(carry
primo
(A)
02
02
02
02
12
12
12
12
addendo
secondo addendo
(B)
risultato (sum)
riporto generato
(carry out)
02
02
12
12
02
02
12
12
02
12
12
02
12
02
02
12
02
02
02
12
02
12
12
12
Il circuito dell’addizionatore completo, si può ottenere a partire dal semiaddizionatore, come
si vede nella figura successiva.
F
| igura 71.32. Addizionatore completo ottenuto con due semiaddizionatori.
F
| igura 71.29. Circuito equivalente del semiaddizionatore.
F
| igura 71.33. Schema dell’addizionatore completo.
71.3.3 Circuito addizionatore
«
Il circuito addizionatore completo è analogo a quello del semiaddizionatore, con l’aggiunta di
un riporto in ingresso (carry in).
F
| igura 71.30. Scatola nera 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 (A 1 e B 1) richiede solo un semiaddizionatore.
18
volume V
Programmazione
F
| igura 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.
Logica e circuiti logici
19
71.3.4 Addizionatori in parallelo
«
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.
F
| igura 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.
F
| igura 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.
volume V
20
Programmazione
71.3.5 Sottrazione
Logica e circuiti logici
21
F
| igura 71.38. Somma e sottrazione, attraverso il controllo del riporto in ingresso.
«
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.
F
| igura 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.
71.4 Riferimenti
«
• Mario Italiani, Giuseppe Serazzi, Elementi di informatica, ETAS libri, 1973, ISBN
8845303632
• Tony R. Kuphaldt, Lessons In Electric Circuits
hhttp://www.faqs.org/docs/electric/ i
• Building a Digital Computer
hhttp://artematrix.org/Projects/TTL.processor/processor.design.htm i
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.
22
volume V
Programmazione
Fly UP