aritmetica binaria 8-11-2000. nei sistemi posizionali le cifre variano da 0 a b-1, la somma di due...

30
Aritmetica Binaria 8-11- 2000

Upload: salvatore-gentile

Post on 01-May-2015

220 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

Aritmetica Binaria8-11-2000

Page 2: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2.

Al massimo il risultato e’ costituito da una cifra di ugual peso e da un eventuale riporto di valore 1 sulla cifra di peso immediatamente superiore. La presenza del riporto non altera questa proprietà, portando al massimo la somma a 2B-1. Analoghe considerazioni valgono per la sottrazione.

Somme tra numeri binari

Consideriamo il caso della somma di due bit:

1 1+

1=

----

1 0

0 1+

0=

----

1

0 0+

1=

----

1

0 0+

0=

----

0Somma di due bit (Half Adder):

Sum = A + B

A B C Sum0 0 0 00 1 0 11 1 1 01 0 0 1

Page 3: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

Dalla sintesi della tabella della verità si ricava lo schema logico dell’ Half Adder (HA).

Half Adder (HA)

Sum

CA

B

Half-Adder (HA)

C = A · BSum = A’ · B + A · B’

0 1

0 0 1

1 01

BA

0 1

0 0 0

0 11

B

A B C Sum0 0 0 00 1 0 11 1 1 01 0 0 1

Page 4: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

Cin A B Cout Sum0 0 0 0 00 0 1 0 10 1 1 1 00 1 0 0 11 0 0 0 11 0 1 1 01 1 1 1 11 1 0 1 0

Somma di tre bit (Full Adder):

Sum = A + B + Cin

Full-Adder (FA)

Full Adder (FA)

Sum

Cout

A

B

Cin

Page 5: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

00 01 11 10

0 0 1 0 1

1 0 1 01

CinBA

00 01 11 10

0 0 0 1 0

0 1 1 11

CinBA

Sum = A’·B’·Cin + A·B’·Cin’ + A·B·Cin + A’·B·Cin’

Cout=A·Cin + B·Cin + AB

Generalmente il Full-Adder si realizza utilizzando due Half-Adder ed un OR come mostrato nello schema seguente

Page 6: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

Esempio di somma tra numeri binari:

1 1 1 0 0 0 1

1 0 1 0 0 0 12 +

1 1 1 1 1 0 12 =

------------------------------

1 1 0 0 1 1 1 02

FA

Page 7: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

Differenza due bit:Diff = A - B

A B B Diff0 0 0 00 1 1 11 1 0 01 0 0 1

Sottrazioni tra numeri binari

Bin A B Bout Diff0 0 0 0 00 0 1 1 10 1 1 0 00 1 0 0 11 0 0 1 11 0 1 1 01 1 1 1 11 1 0 0 0

Differenza di tre bit: Diff = A - B - Bin

Page 8: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

1 1 1 1

1 0 0 1 0 1 -

0 1 1 1 1 0 =

--------------------------

0 0 0 1 1 1

Esempio di sottrazione tra numeri binari:

Page 9: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

Un progetto gerarchico e' un progetto suddiviso su più livelli.

Ad ogni livello è associata una descrizione funzionale o una struttura di blocchi interconnessi

I2

I3

I1Z1

Z2 A

Z1Z2

I2

I3

I1

B1 B2

Livello 0

Livello 1

Livello 2

Livello 3

Progetto gerarchico

Page 10: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

Problema: progettare in modo gerarchico una rete che esegua la somma di due numeri codificati con codice binario da 4 bit.

Progetto di un sommatore a 4 Bit

Soluzione:

Il primo passo è quello di descrivere lo schema in termini di segnali di ingresso e uscita (“descrizione ai morsetti”). Tale livello di descrizione corrisponde al livello gerarchico 0 (o ‘entity’).

4 BitFull Adder

Z[0..3]

COUTX[0..3]

Y[0..3]

Level 0 - “Entity”

Page 11: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

1 BITFULLADDER

1 BITFULLADDER

1 BITFULLADDER

1 BITFULLADDER

Z0

Z1

Z2

Z3

X0Y0

X1Y1

X2Y2

X3Y3

0

Cout

Level 1

Lo schema logico di livello 0 può’ essere ulteriormento scomposto in blocchi più semplici, come mostrato nello schema logico seguente, utilizzando 4 Full-Adder a 1 Bit.

Page 12: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

X

y

CIN Z

C

S C

S

1 Bit Half Adder

1 Bit Half Adder

COUT

Ogni Full-Adder ad 1 Bit è descrivibile mediante il seguente schema logico utilizzando degli Half-Adder a 1 Bit.

Level 2

Page 13: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

X

YC

S

Level 3

Infine, gli Half-Adder utilizzati per realizzare i Full-Adder a 1 Bit possono essere descritti mediante il seguente schema logico. Questo è livello di descrizione più basso del nostro progetto.

Per l’inserimento del progetto all’interno del simulatore partiremo da questo livello di descrizione e ripercorreremo la gerarchia fino ad arrivare al livello 0.

Schema logico di un Half-Adder.

Page 14: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

Design Entry

Sintesi

(Compilazione)

Simulazione

NO

SI

Funzionamentoprevisto ?

Trasferimento al Chip(Target FPGA)

Page 15: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

Nella rappresentazione binaria di numeri dotati di segno viene tipicamente usato un bit per discriminare tra valori positivi e valori negativi. Dati n bit per la rappresentazione il bit usato per il segno è quello più significativo (MSB, in posizione n-1).

Aritmetica binaria: i numeri relativi

Rappresentazione Segno-Valore Assoluto (S-VA)

In questo rappresentazione al valore assoluto del numero viene prefisso un bit per indicarne il segno.

Il valore 0 di questo bit codifica il segno più e il valore 1 il segno meno.

Esempio n=8:

+5710 = 001110012 -5710 = 101110012

modulosegno

Page 16: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

La rappresentazione S-VA è vantaggiosa per la sua semplicità ma richiede circuiti complessi per l’esecuzione di somme algebriche.

Prima di eseguire una somma algebrica tra due operandi A e B e’ necessario determinare quale dei due e’ maggiore in valore assoluto.

Se A e’ maggiore di B si esegue la differenza A-B e si assegna al risultato il segno di A.

Se A e’ minore di B si esegue la differenza B-A e si assegna al risultato il segno di B

Osservazioni

Usando n bit (es. 8) per la codifica, il range di valori rappresentabili risulta: [-2n-1-1..+2n-1-1]. Un bit (MSB) è usato per il segno.(Con 8 bit sono rapresentabili valori nell’intervallo [-127 ..+127]).

Vi sono due configurazioni per lo zero (000000002 e 100000002 )

Poichè le operazioni vanno eseguite sulla sola parte di valore assoluto è semplice la determinazione dell’overflow

Page 17: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

Esempio di operazioni algebriche con rappresentazione S-VA

(23+ 16 )10

Stesso segno, si esegue la somma escludendo il bit più significativo. Entrambi gli operandi hanno lo stesso segno ( bit 7 = 0 ), quindi il segno viene mantenuto ( bit 7 = 0 )

1

2310 + 00101112 + 1610 = 00100002 =------ --------------3910 01001112

Risultato : +3910 001001112

( 22 - 17 )10

Il primo operando ha modulo maggiore del secondo ( |22| > |17| ) => si esegue la differenza tra 22 e 17. In questo caso il segno del risultato (5) è positivo e il bit 7 deve essere posto a 0.

1

2210 - 00101102 - 1710 = 00100012 =

------ -------------- 510 00001012

Risultato : +510 000001012

Page 18: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

(8 - 16)10

Il secondo operando ha modulo maggiore ( |16| >|8| ) del primo.Si esegue la differenza tra 16 e 8. Il segno e’ quello dell’operando di valore assoluto maggiore. In questo caso il segno di 16 è negativo e il bit 7 deve essere posto a 1. 11610 00100002 - 810 00010002 =------ -------------- 810 00010002

Risultato -810 100010002

(-112 - 39)10

Entrambi gli operandi di segno negativo => si sommano i valori assoluti.

1 11210 11100002 + 3910 01001112 =------ --------------15110 100101112

Overflow. Sono necessari 8 bit per rappresentare 151 ! Usando la rappresentazione S-VA sono disponibili per il modulo solo 7 bit => (Overflow).

Page 19: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

Rappresentazione in complemento a 2 (2’s C)

Dati n bit per la codifica del modulo e del segno:

la rappresentazione in complemento a 2 (2’s C) di un numero si ottiene sommando (sottraendo nel caso di numeri negativi) a 2n il numero codificato in valore assoluto ed eliminando l’eventuale bit di riporto in posizione n;

- Con tale rappresentazione possono essere codificati i valori compresi nell’intervallo [(2n-1-1), -2n-1].

- I numeri positivi restano inalterati

- I numeri negativi sono calcolabili partendo dal corrispondente valore positivo, invertendo tutti i bit (complemento a 1, 1’s) e sommando 1

Page 20: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

Siano dati 3 bit (n=3) per la rappresentazione di numeri con segno

Bit 0Bit 1Bit 2

n=3

Con tale configurazione di bit potranno essere codificati i numeri da +3 a -4, cioè [22-1,-22]

si somma (o si sottrae) a 23 = 810 = 10002 la rappresentazione in valore assoluto del numero che si vuole rappresentare in 2’s C,

La rappresentazione in complemento a 2 (2’s C) si ottiene come segue:

Es +2: Per i numeri positivi si somma a 10002 il modulo del numero (|210|=0102).

Quindi +210 = 10002+0102 = x0102 in complemento a 2

Es -2: Per i numeri negativi si sottrae da 10002 il modulo del numero |210|=0102.

Quindi -210 = 10002-0102 = x1102 in complemento a 2

Esempio

Page 21: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

Dec S-VA 2's C

O OOO OOO1 OO1 OO12 O1O O1O3 O11 O11

-4 ??? 1OO-3 111 1O1-2 11O 11O-1 1O1 111

Rappresentazione in Segno e Valore Assoluto (S-VA) e Complemento a 2 (2’s C) di numeri con segno utilizzando 3 bit

Page 22: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

Interpretazione di un numero codificato in complemento a 2

La rappresentazione con segno e valore assoluto (S-VA) risulta più intuitiva ma meno potente rispetto alla rappresentazione in complemento a 2 (2’s C).

Come interpretare un numero codificato in complemento a 2 ?

In una configurazione binaria di n bit codificata in complemento a 2, il bit più significativo (MSB in

posizione n-1) assume un peso negativo pari a -2n-1.

2

01

110 22

n

i

iidV n

n d 1,0id

Esempio: n=4

10112 in complemento a 2 equivale a:

10112 = -1·23 + 0·22 + 1·21 +1·20 = -8 + 0 + 2 +1 = -510

Mentre 01112 in complemento a 2 equivale a :

01112 = 0·23 + 1·22 + 1·21 +1·20 = 0 + 4 + 2 +1 = +710

I numeri positivi (dn-1=0) codificati in complemento a 2 rimangono inalterati.

Page 23: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

Nella rappresentazione in complemento a 2 i numeri positivi rimangono inalterati mentre i numeri negativi possono essere ottenuti, dalla rappresentazione in valore assoluto, invertendo tutti i bit (1’s C) e sommando 1. Esempio n = 4

a) Rappresentare +510 in complemento a 2.

Soluzione

+ 510 = 01012 (rimane inalterato)

b) Rappresentare -510 in complemento a 2.

Soluzione

Si esprime il valore assoluto di –5 in binario. Si applica il complemento a 1 e si somma 1 a risultato.

1’s +1510 = 0101 -> 10102 -> 10112 = -5

Metodo opertivo per il calcolo del complemento a 2 di un numero

Page 24: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

PropriètàApplicando due volte la regola del complemento a 2 si ottiene il numero originale.

Esempio

n = 4

-510 in complemento a 2 risulta 10112

Applicando nuovamente il complemento a 2 si ottiene il valore assoluto del numero

1’s +1 -5 -> 10112 -> 01002 -> 01012 = + 510

Propriètàil complemento di una somma algebrica è uguale alla somma aritmetica dei complementi

Page 25: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

- Vi è una sola rappresentazione per lo zero (00…000).

- Operativamente non vi e’ differenza nell’eseguire somme o sottrazioni

- Non e’ necessario individuare il maggiore, in valore assoluto, tra i due operandi come nel caso della rappresentazione S-VA.

Vantaggi della rappresentazione in complemento a 2 rispetto alla rapp. somma valore assoluto

Per EsercizioUtilizzando una rappresentazione a 4 bit calcolare 3 +1 = [0100] 3 -1 = [0010]-1 -2 = [1101] 3 -7 = [1100]

Page 26: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

3+3 = 6 (overflow)

0 1 1

0 1 1+

0 1 1 =

------------------

0 1 1 0

Esempi: Con N=3 possono essere rappresentati i numeri tra [+3, -4] in 2’s C

2+1 = 3

0 0 0

0 1 0+

0 0 1 =

------------------

0 0 1 1

-3-3 = -6 (overflow)

1 0 1

1 0 1+

1 0 1 =

------------------

1 0 1 0

-3-1 = -4

1 1 1

1 0 1+

1 1 1 =

------------------

1 1 0 0

-3+2 = -1

0 0 0

1 0 1+

0 1 0 =

------------------

0 1 1 1

Nel caso della rappresentazione con segno e valore assoluto (S-VA) la presenza di eventuali situazioni overflow puo’ essere rilevata analizzando il bit di carry-out relativo al bit più significativo del modulo.

S-VA

Nel caso di somme algebriche con numeri rappresentati in complemento a 2 la rilevazione della condizione di overflow si ottiene controllando se il bit di carry-in e il bit di carry_out relativi al bit più significativo (il bit n-1) della codifica sono diversi. Questa operazione puo’ essere eseguita utilizzando l’operatore logico or-esclusivo.

2’s C

Overflow

Page 27: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

Progetto di un sommatore algebrico a 4 Bit

Problema: progettare in modo gerarchico una rete che esegua la somma algebrica di due numeri di 4 bit codificati con segno e valore assoluto (S-VA).La rete produce un risultato a 4 bit per cui è necessario segnalare eventuali situazioni di overflow.

SommaAlgebrica

Z[0..2]

OverflowX[0..2]

Y[0..2]

S-VAS-VA

Segno Y

Segno X

Segno Z3

3

3

Level 0 - “Entity”

Page 28: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

Level 1

Lo schema logico dell’esercizio puo’ essere ulteriormente scomposto.In rosso sono evidenziati i tipi di rappresentazione utilizzati per l’elaborazione delle informazioni all’interno della rete.

OverflowC2’s

Z[0..2]

X[0..2]

Y[0..2]C2’s

4 BitFull Adder

C2’s

Errore

2’s C 2’s CS-VA S-VA

3

3

4

4 4

2

3

Segno ZSegno y

Segno x

Page 29: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

Level 2

La rete che calcola il complemento a 2 può essere ulteriormente decomposta con due blocchi in cascata che, nel caso di numeri negativi, calcolano il complemento a 1 e sommano 1.

La rete che somma 1 al numero in complemento a 1 puo’ essere ottenuta con un FA a 4 bit nel quale uno degli operandi è 1 se il numero è negativo e 0 se il numero è positivo.

C1’s I[0..2]

3

4

Segno x +1

4

2’s CS-VA

U[0..3]

Page 30: Aritmetica Binaria 8-11-2000. Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato

Level 3

Mentre la rete che calcola il complemento a 1 puo’ essere realizzata con degli operatori di or-esclusivo.