Lezione2: Circuiti Logici - MathUniPDaceccato/Intro_1213/Lezione2_Circuiti... · 36 • Un byte è...

Post on 07-Oct-2020

3 views 0 download

transcript

Lezione2:Lezione2:Circuiti LogiciCircuiti Logici

macchina hardware

macchina software

utente

traduce per noi in linguaggio macchina

Agli albori dell'informatica, l’utente programmava in binario (Ling.Mac.) scrivendo i programmi nella RAM

L’ Hardware di un computerL’ Hardware di un computer

•Hardware = insieme dei circuiti elettronici

Un circuito puo’ essere descritto

– Mostrando i dettagli realizzativi in termini di

circuiti elementari (porte)

– Mediante una tavola di verita che mostra i valori in uscita per tutti i possibili ingressi

• 3 tipi di circuito fondamentali: and, or, not

and, or, notand, or, not

Operazione logica: operazione che agisce sui valori di verita’ vero e falso: dati due valori di verita’ come operandi ritorna un

valore di verita’ come risultato

Porte logichePorte logiche

IDEA: identificare il valore di verità FALSO con 0 IDEA: identificare il valore di verità FALSO con 0 (assenza di tensione)(assenza di tensione)

Identificare il valore di verità VERO con 1 Identificare il valore di verità VERO con 1 (presenza di tensione) (presenza di tensione)

66

• Contempla due costanti 00 e 11 (falsofalso e verovero)• Corrispondono a due stati che si escludono a vicenda• Possono descrivere lo stato di apertura o chiusura di

un generico contatto o di un circuito a più contatti

• Sui valori booleani si definiscono le operazioniANDAND, OROR, NOTNOT

0 1

George Boole (1810-1864) George Boole (1810-1864) L’algebra di Boole L’algebra di Boole −− 1 1

77

L’algebra di BooleL’algebra di Boole

88

• Si definisce l’operazione di somma logicasomma logica (OR):il valore della somma logica è il simbolo 1 se il valore di almeno uno degli operandi è il simbolo 1

0+0 = 00+1 = 11+0 = 11+1 = 1

0

0

0

1

0+0 0+11

1

1

0

1+0 1+1

L’operazione di OR L’operazione di OR

99

• Si definisce l’operazione di prodotto logicoprodotto logico (AND):il valore del prodotto logico è il simbolo 1 se il valore di tutti gli operandi è il simbolo 1

0×0 = 00×1 = 01×0 = 01×1 = 1

11

1×1

01

1×0

10

0×1

00

0×0

L’operazione di ANDL’operazione di AND

1010

• Si definisce l’operatore di negazionenegazione (NOT):l’operatore inverte il valore della costante su cui opera

• Dalla definizione…

La negazione NOT La negazione NOT

0=11=0

0=01=1

⇒ A B A ⇒ Bfalso falso verofalso vero verovero falso falsovero vero vero

A B A ⇒ B0 0 10 1 11 0 01 1 1

R B

A

A ⇒ B equivale a (NOT A) OR B

A B NOT A (NOT A) OR B0 0 1 10 1 1 11 0 0 01 1 0 1

IMPLICAZIONE (se allora)

A è condizione sufficiente per BB è condizione necessaria per A

≡A B A ≡ B0 0 10 1 01 0 01 1 1

B

A

R

A ≡ B equivale a (A ⇒ B) AND (B ⇒ A) A B A ⇒ B B ⇒ A (A ⇒ B)AND(B ⇒ A)0 0 1 1 10 1 1 0 01 0 0 1 01 1 1 1 1

EQUIVALENZA

Tavole di verità e circuitiTavole di verità e circuiti

- Dato un qualsiasi circuito e’ sempre possibiledefinire la tavola di verita’ (in un solo modo)

- Data una tavola di verita’ si possono costruirein generale piu’ circuiti che la realizzano

circuito Tavola di veritàUn solo modo

Tavolà di verità Circuito 1

Circuito nCircuito 2

Dal circuito alla tavola di veritàDal circuito alla tavola di verità

- Modo 1) Si calcola, per ogni possibile configurazione degli ingressi, l’uscita delle porte fino alle uscite del circuito

- Modo 2) Si calcola la formula logica corrispondente al circuito e si calcolano le tabelle di verita’ partendo dalle formule intermedie piu’ semplici fino alla formula data

Dalla tabella di verita’ ad un circuito

Tanti input quante sono le dimensioni della tabella Un solo output Un or la cui uscita e’ l’output Tanti and quanti sono gli 1 della tabella Input degli and: diretto se 1, negato se 0

A B A ≠ B0 0 0

0 1 11 0 11 1 0

B

A

R

!!! Chiaramente il circuito cosi’ costruito non necessariamente e’ il piu’ semplice (ovvero con il minor numero possibile di porte logiche utilizzate)

Nand e norNand e nor

NonNon servono servono tretre operazioni ( operazioni (and, or, notand, or, not))

Basta Basta unauna tra : tra :

nand nand (not and) (not and) e e nornor (not or)(not or)

NAND NOR

A B A NAND Bfalso falso verofalso vero verovero falso verovero vero falso

A B A NOR Bfalso falso verofalso vero falsovero falso falsovero vero falso

10 1

01 111 0

10 0RA B

00 1

01 101 0

10 0RA B

A

B R

R A

B

NAND e NOR

Una CPU si puo` realizzare stampando su siliciouna griglia di milioni di porte logiche tutte uguali:NAND o NOR.

AND

OR

A R

NOT

A R

B

R

B

A

A nand A (A nand B) nand (A nand B)

(B nand B) nand (A nand A)

Esercizio 1 (formule)

Quale e’ la tavola di verita’ della formula (not(A) B) OR NOT(A) ?

A B Not(A) R

0

0

1

1

0

1

0

1

1

1

0

0

1

1

1

1

Not(A)B

0

1

1

1

Esercizio 1 (formule)

Quale e’ la tavola di verita’ della formula (not(A) B) OR NOT(A) ?

A B Not(A) R

0

0

1

1

0

1

0

1

1

1

0

0

1

1

1

1

Not(A)B

0

1

1

1

Esercizio 2 (formule)

Quale e’ la tavola di verita’ della formula A or (A and not(B)) ?

A B A and not(B)Not(B) R

0

0

1

1

0

1

0

1

1

0

1

0

0

0

1

0

0

0

1

1

Esercizio 3 (circuiti)

Si disegni un circuito logico che realizza la seguente tavola di verita’:

24

A B R0 0 00 1 11 0 11 1 0

B

A

R

Dare la tavola di verita’ della formula(NOT(A) NOT(B)) OR (NOT(A) AND B)NOT(A) NOT(B) = NOT(NOT(A)) or NOT(B)==A or NOT(B)(A or NOT(B)) or (NOT(A) and B)

A B A or not(B)Not(A) R

0

0

1

1

0

1

0

1

1

1

0

0

1

0

1

1

1

1

1

1

Not(B) Not(A) and B

1

0

1

0

0

1

0

0

Esercizio 4

Circuito (NOT(A) NOT(B)) OR (NOT(A) AND B)

Esercizio 4

or

R

AB

and

and

and

or

orand

...due aspetti......due aspetti...

Le formule logiche si possono utilizzare per formalizzare asserzioni anche molto complesse

Si possono comporre circuiti semplici per ottenenere circuiti che realizzano nuove operazioni piu`complesse

Esempio Siccome un rettangolo è un quadrato se ha altezza

uguale alla base allora un rettangolo che non è un quadrato non ha altezza uguale alla base

Formalizzazione:A=”è un quadrato”B=”ha altezza uguale alla base”

(B==>A) ==> (NOT A ==> NOT B)

Tabella di verità

A B B==> A NOT A ==> NOT B

F

0 0 1 1 11 0 1 1 10 1 0 0 11 1 1 1 1

Alcune definizioni...Alcune definizioni...

Formula SODDISFACIBILE (almeno un 1 in tabella)

Formula INSODDISFACIBILE (tutti 0 in tabella)

Formula VALIDA (tutti 1 in tabella) (TAUTOLOGIA)

F VALIDA <==> not F INSODDISFACIBILE

Esempio di utilizzo di circuiti: Esempio di utilizzo di circuiti: Somma tra binariSomma tra binari

3232

• Sistemi di numerazione posizionaliposizionali:La basebase del sistema di numerazioneLe cifrecifre del sistema di numerazione

Il numero è scritto specificando le cifre in ordine ed il suo valore dipende dalla posizione relativa posizione relativa delle cifre

Esempio:Esempio: Il sistema decimale (Base 10)

Cifre : 0 1 2 3 4 5 6 7 8 9Cifre : 0 1 2 3 4 5 6 7 8 9

5641 = 5·103 + 6·102 + 4·101 + 1·100

Posizione: 3 2 1 0

Sistemi di numerazione posizionaliSistemi di numerazione posizionali

3333

• La base definisce il numero di cifre diverse nel sistema di numerazione

• La cifra di minor valore è sempre lo 0; le altre sono, nell’ordine, 1,2,…,B−1; se B>10 occorre introdurre B−10 simboli in aggiunta alle cifre decimali

N = cN = cnnBBnn+c+cnn−−11BBnn−−11+...+c+...+c22BB22+c+c11BB11+c+c00BB00

Un numero frazionariofrazionario N’ si rappresenta come (0,c1c2…cn)B

Un numero interointero N si rappresenta con la scrittura (cncn−1…c2c1c0)B

N’ = cN’ = c11BB−−11+c+c22BB−−22+...+c+...+cnnBB−−nn

ccnn è la cifra più significativacifra più significativa, cc00 la meno significativameno significativa

Sistemi in base BSistemi in base B

3434

• Con n cifre in base B si rappresentano tutti i numeri interi positivi da 0 a Bn−1 (Bn numeri distinti)

Esempio:Esempio: base 10

2 cifre: da 0 a 102−1 = 99

000102….9899

Esempio:Esempio: base 2

2 cifre: da 0 a 22−1 = 3

00011011

102 = 100 valori

22 = 4 valori

Numeri interi senza segnoNumeri interi senza segno

3535

• La base 2 è la più piccola per un sistema di numerazioneLa base 2 è la più piccola per un sistema di numerazione

Cifre: 0 1 Cifre: 0 1 −− bitbit (binary digit) (binary digit)

Esempi:Esempi:

(101101)2 = 1×25 + 0×24 + 1×23 + 1×22 + 0×21 + 1×20 = 32 + 0 + 8 + 4 + 0 + 1 = (45)10

(0,0101)2 = 0⋅2−1 + 1⋅2−2 + 0⋅2−3 + 1⋅2−4 = 0 + 0,25 + 0 + 0,0625 = (0,3125)10

(11,101)2 = 1⋅21 + 1⋅20 + 1⋅2−1 + 0⋅2−2 + 1⋅2−3 = 2 + 1 + 0,5 + 0 + 0,125 = (3,625)10

FormaFormapolinomiapolinomia

Il sistema binario (BIl sistema binario (B==2)2)

3636

• Un bytebyte è un insieme di 8 bit (un numero binario ad 8 cifre)

• Con un byte si rappresentano i numeri interi fra 0 e 28−1 = 255

• È l’elemento base con cui si rappresentano i dati nei calcolatori• Si utilizzano sempre dimensioni multiple (di potenze del 2) del

byte: 2 byte (16 bit), 4 byte (32 bit), 8 byte (64 bit)…

b7b6b5b4b3b2b1b0

00000000000000010000001000000011…………….1111111011111111

28 = 256 valori distinti

Dal bit al byteDal bit al byte

Somma binariaSomma binaria

Riporto: 1 1 1 1 0 0

0111002 + 1001112 = ----------- 10000112

Colonna per colonna, da destra a sinistra Riporto se la somma su una colonna supera la base

Tre cifre binarie (prima riga, seconda riga, riporto), somma =1 se una o tre sono 1, riporto = 1 se almeno due sono 1

10000110 riporti 1010011 + 1100011 = ---------- 10110110

Iniziamo con un Iniziamo con un circuitocircuito che faccia che faccia la la somma su una colonnasomma su una colonna

Abbiamo tre cifre binarie X, Y, R in input mentre in output vogliamo ottenere la somma S ed il riporto R'

Tabella di verità X Y R S R' 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1

Supponiamo di avere i circuiti che calcolano somma e riporto

SOMMA

XYR

S

RIPORTO

XYR

R'

Possiamo allora combinare i circuiti SOMMA e RIPORTO per ottenere il seguente circuito

1-ADD

SOMMAXYR

S

RIPORTOR'

1-ADD

Il circuito RIPORTO puo` essere realizzato nel seguente modo

X

Y

R

R'

RIPORTO

Basta infatti verificare la corrispondente tabella di verita’

(Il nuovo riporto è q se almeno due di esse sono 1, 0 altrimenti)

R

Y

R

X

CIRCUITO SOMMA(la somma di tre cifre è 1 se o tutte e tre sono 1 oppure una sola vale 1)

A questo punto componendo K circuiti 1-ADD e` possibile realizzare un circuito K-ADD che somma due numeri binari di K cifre.

Vediamo l'esempio della somma di due numeri binari di 4 cifre.

Y3 Y2 Y1 Y0 X3 X2 X1 X0

1-add 1-add 1-add 1-add0 riporto iniziale

riporto finale inutile

risultato

Somma di numeri di 4 bit

S0S1S2S3

0R0R1R2R3

0 1 1 0 0 1 1 1

1-add 1-add 1-add 1-add

1 1 0 1

00110

Esempio

0111 + 0110 = ------ 1101

AttenzioneAttenzioneSi e` trascurato il problema del cosiddetto overflow, cioe’ il risultato e’ troppo grande per essere contenuto nei bit disponibili.

Per esempio:

0111 + 1110 = ------ 10101