Sistemi di numerazione Codici Introduzione Max Plus II 8 Novembre 2000 .

Post on 01-May-2015

215 views 0 download

transcript

Sistemi di numerazione

Codici

Introduzione Max Plus II

8 Novembre 2000

http://www.ingce.unibo.it/documents/Didattica/MaterialeDidattico/Current/RL/IndiceMateriale.htm

http://labvisione.deis.unibo.it/~smattoccia/retilogiche.html

Macchine per l’elaborazione dell’informazione

Elaborazionedi

segnalibinarisegnali binari segnali binari

ConvertitoreA/D

segnali analogici

ConvertitoreD/A

segnali analogici

Segnali binari: esempi

contatto:aperto/chiuso

lampadina:accesa/spenta

corrente elettrica:presente/assente

tensione elettrica:High/Low

levetta:alta/bassa

cristallo liquido:trasparente/opaco

Variabili binarie

logica negativa logica positiva

Un bit può rappresentare un segnale binario. Bisogna però decidere quale valore “fisico” è rappresentato dalsimbolo “matematico” 1. Esistono infatti due diverse possibilitàusualmente denominate logica positiva e negativa

Bit (binary digit) - Variabile x tale che:x B0,1

Configurazioni binarie

c

b

a

0

0

0

1 0 0x

ta tb tc

• n bit hanno 2n configurazioni binarie diverse.• Una configurazione di n bit può rappresentare i valori di n segnali binari ad un certo istante.• Una configurazione di n bit può rappresentare i valori di un segnale binario in n istanti.

Es:c b a0 0 01 0 00 1 00 0 11 1 01 0 10 1 11 1 1

Configurazione binaria di n bit - E’ una stringa di n 0 e 1.Con una configurazione di n bit si possono codificare 2n informazioni

Bn-1 B2 b1 b0

n bit

Codice binario

z

51

a

m?

Minformazioni

0 0 0 ……..0

1 0 0 ……..0

0 1 0 ……..0

1 1 0 ……..0

0 0 1 ……..0

0 1 1 ……..1

1 1 1 ……..1

2n config.

0 0 1 ……..1

n.u.

Codice binario - Funzione dall’insieme delle 2n configurazioni di n bit ad un insieme di M informazioni (simboli alfanumerici, colori, eventi, stati interni, ecc.).Condizione necessaria per la codifica: 2n M

Proprietà di un codiceIl codice è una rappresentazione convenzionale dell’informazione.

La scelta di un codice è condivisa da sorgente e destinazioneed ha due gradi di libertà:

• il numero di bit (qualsiasi, a patto che sia 2n M )• l’associazione tra configurazioni e informazioni; a parità di n e di M le associazioni possibili sono

N = 2n! / (2n-M)!

Esempi: Stampanti e Calcolatori, Calcolatori e Calcolatori

Codice standard - Codice fissato da norme internazionali ( de iure )o dal costruttore di una macchina utile per tutti gli altri ( de facto ).• L’uso di codici standard nelle unità di I/O consente di collegare macchine fatte da costruttori diversi

0

1

2

3

4

5

6

7

8

2 22 42 62

M: n° di informazioni

n:

di

bit

nmin = lg2 M

Codici ridondanti e non ridondanti

1684

Codici ridondantin > nmin

non ridondanti Codici

Esempi

Altri29

miliardidi

codicia

4 bit

0000000100100011010001010110011110001001

BCD

1111110011000011011011111001011001110110110011111111000011111111110011

7 segmentiN.B. 1= acceso

1000000000010000000000100000000001000000000010000000000100000000001000000000010000000000100000000001

uno su dieci

01

10

piùmeno

segno

zerounoduetre

quattrocinque

sei setteottonove

Cifre decimali

00 01 11 10

0

1colori

n.u.

Sistemi di numerazione

Posizionaliil valore di un simbolo dipende dalla posizione che esso occupa all’interno della configurazione, seguendo una legge nota. I vari sistemi di numerazione posizionale differiscono per la scelta della base B. La base B indica il numero di simboli usati. (Es: decimale, binario, ottale, esadecimale)

Non posizionaliIl valore di un simbolo non dipende dalla posizione che esso occupa all’interno della configurazione. (es: Numeri Romani)

Sistemi di numerazione

Nei sistemi posizionali, i simboli di una configurazione possono essere interpretati come i coefficienti del seguente polinomio [1]

1n

mi

ii BdV

B = base di = i-esima cifra [0..B-1]n = numero di cifre parte intera m = numero di cifre parte frazionaria

La virgola e’ posta tra le cifre di posizione 0 e –1.

Come interpretare i simboli in un sistema posizionale ?

Esempio: sistema decimale

Il numero 135.2 decimale può essere rappresentato come segue:

B = 10 base n=3 numero cifre parte interam=1 numero cifre parte frazionaria

cifra 1 3 5 2

posizione 2 1 0 -1

peso 10 2 10 1 10 0 10 -1

1•10 2 + 3•101 +5•100 + 2•10-1 = 135.2

Il sistema di numerazione binario

Il sistema di numerazione binario (sistema di numerazione in base 2) si compone di due simboli di {0,1} e (quindi) di una base B di dimensione 2.

Ogni simbolo, denominato bit (binary digit ), può assumere due valori rappresentati dai simboli logici 0 e 1.

Quando una variabile assume più di due possibili valori si ricorre ad una configurazione formata da più cifre binarie (configurazione binaria)

Essendo un sistema di numerazione posizionale, data una cifra binaria e’ possibile determinarne il valore (ad esempio) decimale interpretando i simboli che la compongono come i coefficienti del polinomio [1].

Esempio: Quale è il valore decimale corrispondente al numero binario 11012 ?

cifra2 1 1 0 1

peso 23 22 21 20

valore 1•8 1•4 0•2 1•1

11012 = 1• 23 + 1• 22 + 0• 21 + 1• 20 = 1310

Come derivare il codice Binario da quello Decimale: numeri interi

26 2

130

2

61

2

30

2

11

Cifra a destra(meno significativa)

Cifra a sinistra(più significativa)

26)10= 11010)

2

2610

Per ottenere il valore binario, di un numero intero codificato nel sistema decimale si procede utilizzando un metodo iterativo di successive divisioni per 2.

Come derivare il codice Binario da quello Decimale: numeri frazionari

Si separa la parte intera da quella frazionaria, La parte intera si calcola come nel caso precedente La parte frazionaria si ottiene come segue:

1. Si moltiplica la parte frazionaria per 2

2. Se il numero ottenuto è maggiore di 1, si sottrae 1 e si considera come prima cifra dopo la virgola un ‘1’.

3. Se invece il numero è nella forma 0,….. => la cifra da inserire è uno ‘0’.

4. Si ripete dal passo 1 fino a che il numero di partenza non è zero.

0.625 * 2 = 1.25 - 1 = 0.25 * 2 = 0.5 - 0 = 0.5 * 2 = 1 - 1 = 0

0, 1 0 1

Esempio: 0.625 10 =0.101 2

Sistemi di numerazione Ottale ed Esadecimale

Quando per la rappresentazione di un numero si utilizzano molte cifre binarie può convenire usare altri sistemi di numerazione.

I sistemi ottale ed esadecimale sono utilizzati principalmente per rappresentare in modo più compatto i numeri binari.

I simboli del sistema Ottale sono 8: { 0, 1, 2, 3, 4, 5, 6, 7}

I simboli del sistema Esadecimale sono 16: { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F }

Binario -> Ottale

Per passare dalla codifica Binaria a quella Ottale, si raggruppano le cifre binarie a gruppi di 3 (a partire da destra) e le si sostituiscono con una cifra del sistema ottale.

Esempio : 1110010102 = 7128

Ottale -> Binario

Per passare dalla codifica Ottale a quella Binaria, si sostituisce ad ogni cifra ottale la corrispondente codifica binaria (composta da 3 cifre).

Esempio : 3028 = 0110000102

Cambiamenti di base

Binario -> Esadecimale

Per passare dal codice Binario a quello Esadecimale, si raggruppano le cifre a gruppi di 4 (a partire da destra) e le si sostituiscono con una cifra del sistema esadecimale.

Esempio : 1001000111112 = 91F16

Esadecimale -> Binario

Per passare dal codice Esadecimale a quello Binario, si sostituisce ad ogni cifra esadecimale la corrispondente configurazione binaria (composta da 4 cifre).

Esempio : A7F16 =1010011111112

Esempio 1

Codifi ca del numero 12510 = 11111012

I n codice Ottale:

1 111 101

175

I n codice Esadecimale:

111 1101

7 D

Esempio 2

Decimale Binario Ottale Esadecimale5 101 5 512 1100 14 C78 1001110 116 4E

149 10010101 225 95

Decimale Binario Ottale Esadecimale

dcba0 0000 00 01 0001 01 12 0010 02 23 0011 03 34 0100 04 45 0101 05 56 0110 06 67 0111 07 78 1000 10 89 1001 11 910 1010 12 A11 1011 13 B12 1100 14 C13 1101 15 D14 1110 16 E15 1111 17 F

Codifica dei primi 16 numeri nei quattro sistemi di numerazione

Relazione tra diversi i codici della tabella precedente utilizzando le mappe di Karnaugh

Binario <- > Decimale

dc\ ba 00 01 11 1000 0 1 3 201 4 5 7 611 12 13 15 1410 8 9 11 10

Binario <- > Ottale

dc\ ba 00 01 11 1000 0 1 3 201 4 5 7 611 14 15 17 1610 10 11 13 12

Binario <- > Esadecimale

dc\ ba 00 01 11 1000 0 1 3 201 4 5 7 611 C D F E10 8 9 B A

Codici

Reti di trascodifica

La codifica binaria è efficiente per svolgere operazioni aritmetiche.

Spesso però accade che all’interno di una macchina digitale vengano usati diversi tipi di codifica per codificare le stesse informazioni. Ad esempio per:

Facilitare l’interazione (visualizzazione di informazioni, inserimento di dati, etc)

Efficienza (compressione di informazioni, velocità di elaborazione, etc)

Le trasformazioni di codice sono affidati a reti denominate TRASCODIFICATORI.

Codice A Codice B

Trascodificatore

N1 N2

La trascodifica sul percorso dei dati

Il codice interno è di norma non ridondante per minimizzare il n° di bit da elaborare e da memorizzare.Il codice esterno è di norma ridondante, per semplificare la generazionee la interpretazione delle informazioni, e standard, per rendere possibilela connessione di macchine (o unità di I/O) fatte da Costruttori diversi.

Unità dielaborazione

edi memoria

Trascodifica

Trascodifica

Codiciesterni

Codiceinterno

Il Codice BCD (Binary Coded Decimal)

Ad ogni cifra decimale sono associati 4 bit, secondo la tabella seguente:

Cifra Decimale Cifra BCD0 00001 00012 00103 00114 01005 01016 01107 01118 10009 1001

Dalla tabella è possibile osservare che esistono delle configurazioni non usate dal codice BCD ([1010..1111]).

Utilizzando il codice BCD si ha una corrispondenza biunivoca fra il numero di cifre decimali e binarie.

Questo codice consente di avere dei circuiti di visualizzazione dei numeri decimali piu’ semplici.

Esempio : La codifica del numero decimale 27 con il codice BCD è la seguente.

2 7

0010 0111

Codice 1 su N

E’ un codice che associa ad ognuna delle n possibili configurazioni una stringa di n bit avente un solo bit a 1.

Esempi: Calcolatori tascabili: utilizzato per immettere dati attraverso la tastiera numerica.

Negli ascensori: è utilizzato per visualizzare la posizione dei piani raggiunti e per selezionare il piano da raggiungere (vedi figura).

3 2 1 T

1000

0100

0010

0001

Pusanti ascensore Codifica 1 su N

Codice a sette segmenti

Codice utilizzato nei display per consentire la rappresentazone grafica di cifre decimali (esteso anche per la rappresentazione degli ulteriori 6 simboli del codice esadecimale). Impiega 7 bit (a,b,c,d,e,f,g ) per codificare i 10 simboli decimali

a

b

c

d

e

f g

a

b

c

d

e

f gabcdefg1111011

9

a

b

c

d

e

f gabcdefg0110000

1

Codice a matrice di punti

Impiega MxN bit per consentire la rappresentazione di simboli grafici su una matrice di punti di M righe e N colonne.

Utilizzato per la visualizzazione dei caratteri nei monitors, nei display dei telefonini, nei display delle calcolatrici,...

0000000

0000000

0011000

0100100

0100100

0111100

………..

0000000

N

M

Codice Gray

E’ usato per la codifica della posizione angolare di alberi rotanti. E' un codice a distanza 1.

Angolo ABC0-45 000

45-90 00190-135 011

135-180 010180-225 110225-270 111270-315 101315-360 100

Codice ASCII

000 001 010 011 100 101 110 1110000 NUL DLE 0 @ P ° p0001 SOH DC1 ! 1 A Q a q0010 STX DC2 “ 2 B R b r0011 ETX DC3 # 3 C S c s0100 EOT DC4 $ 4 D T d t0101 ENQ NAK % 5 E U e u0110 ACK SYN & 6 F V f v0111 BEL ETB ‘ 7 G W g w1000 BS CAN ( 8 H X h x1001 HT EM ) 9 I Y i y1010 LF SUB * : J Z j z1011 VT ESC + ; K [ k {1100 FF FS , < L \ l |1101 CR GS - = M ] m }1110 SO RS . > N ^ n ~1111 SI US / ? O _ o DEL

Il codice ASCII è non ridondante, perchè i simboli che vengono codificati sono in numero pari alle configurazioni ottenibili con 7 cifre binarie.

Ampiamente utilizzato in computer, stampanti,…

Numero Tastiera Codice A Codice B Codice CCifra Digitata Codice 1 su 10 Codice BCD Codice 7 segm.

t0 t1 t2 ……. t9 X3 X2 X1 X0 A b c d e f g0 1000000000 0000 11111101 0100000000 0001 01100002 0010000000 0010 11011013 0001000000 0011 11110014 0000100000 0100 01100115 0000010000 0101 10110116 0000001000 0110 10111117 0000000100 0111 11100008 0000000010 1000 11111119 0000000001 1001 1111011

Esempio: Sequenza di codici impiegati in una calcolatrice tascabile

Elaborazione e trascodificanell’orologio digitale

0000

1

0001

2

0010 ….

9

1001

0

0000

tempo1 s

1 Hz

Oscillatore

Trascodificada BCD

a 7 segmenti

Rete logicasequenzialecon 10 staticodificatiin BCD

Situazioni di errore nei sistemi digitali

A B10011 => 10111

Malfunzionamento di uno dei blocchi

Rumore sulle linee di trasmissione

Quale è la probabilità che si verifichi un errore ?Detta p la probabilità che un singolo bit venga accidentalmente alterato, si può calcolare la probabilità che in un blocco di n bit vi siano contemporaneamente e errori:

enee pp

e

n

1P

0

0,2

0,4

0,6

0,8

1

0 1 2 3 4

n=8, p=0,05n=16, p=0,05n=32, p=0,05

Principio di base per la rilevazione e la correzione degli errori

Il codice alla sorgente deve contenere configurazioni non utilizzate, disposte in modo che un errore agente su di una configurazione valida la trasformi in una non utilizzata, e quindi sia riconoscibile in ricezione. E’ necessaria la ridondanza, ma non è sufficiente.

Distanza di due configurazioni binarie il numero di bit per cui le due configurazioni differiscono.

Distanza minima di un codice:la minima distanza tra due qualunque delle configurazioni del codice.

Esempi di codifica di un set di due informazioni:

onoff

01

onoff

0001

onoff

0011

codiceirridondante

cod. ridondante macon distanza min. 1

cod. ridondante con distanza min. 2

0 1

10 11

0100

10 11

0100

Codice a rilevazione di errore (singolo) basato sul bit di parità.

Data una sequenza di n bit, si definisce bit di parità quel bit che aggiunto alla sequenza rende pari il numero di 1.

Il bit di parità puo’ essere calcolato sfruttando le proprietà della somma modulo 2 (OR-Esclusivo- ).

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

A B

P

Errore ?

Un codice consente la rilevazione al più di R errori se la sua distanza minima è R+1;

Un codice consente la correzione al più di C errori se la sua distanza è minima 2C+1;

Codici a rilevazione e correzione d’errore:Teoremi di Hamming

Esempio d’utilizzo della distanza: codice a correzione d’errore:

Codice ridondante con distanza minima 3:

ON 000

OFF 111

000

100

011

110 111

010

001

101

Altera Max Plus IIAmbiente software (CAD) per la progettazione e la simulazione di circuiti logici.

Consente di gestire la complessità attraverso l'approccio gerarchico.

La metodologia di progetto si basa sulla suddivisione del problema affrontato in più livelli di blocchi interconnessi via via più semplici.

La progettazione assistita dal calcolatore è più rapida e affidabile della progettazione verificata direttamente sulla realizzazione hardware.

L'ambiente di lavoro Max + Plus II consente di trasferire il progetto su circuiti integrati programmabili detti Field Programmable Gate Array (FPGA).

DescrizioneTestuale(VHDL)

Schema logico

Strutturale“Structural”(Blocchi interconnessi)

Comportamentale“Behavioural”

Design Entry

Sintesi

(Compilazione)

Simulazione

NO

SI

Funzionamentoprevisto ?

Trasferimento al Chip(Target FPGA)

Progetto gerarchico

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

B11 B2

Livello 0

Livello 1

Livello 2

Livello 3

Struttura & Comportamentodi una rete logica combinatoria

sintesi

analisi

0 0 0 ……..01 0 0 ……..00 1 0 ……..01 1 0 ……..00 0 1 ……..0

0 1 1 ……..11 1 1 ……..1

0 oppure 10 oppure 10 oppure 10 oppure 10 oppure 1

0 oppure 10 oppure 1

x1x2x3 … xn z = F(x1,.., xn)

Tabella della verità

x1

x2

x3

xn

z

Gk

G3G2

G1

Rete logica combinatoria

?

Za

B

A

AND A B Za0 0 00 1 01 0 01 1 1

Za = A·B

Zo

B

A

ORA B Zo0 0 00 1 11 0 11 1 1

Zo = A + B

A Zn

NOTA Zn0 11 0

Zn = A

Mediante il principio di decomposizione è possibile scomporre la rete di partenza in reti sempre più semplici fino ad arrivare ad una descrizione basata esclusivamente sugli operatori logici fondamentali (AND, OR, NOT).

Verifica della Proprietà Associativa mediante simulazione

Ipotesi semplificativa:

Il comportamento degli operatori dell’algebra di commutazione coincide con quello dei circuiti logici reali nell’ipotesi di considerare il ritardo di propagazione degli operatori logici nullo.

Proprietà Associativa (I):

A+B+C = (A + B) + C

La verifica della Proprietà Associativa può essere ottenuta verificando con il simulatore che le risposte delle due reti a tutte le possibili configurazioni di ingresso siano uguali.

Proprietà Associativa (I):

A+B+C = (A + B) + C

Il risultato della simulazione è il seguente:

Per verificare che le uscite dei due circuiti sono effettivamente uguali si può sfruttare l’operatore OR-esclusivo (XOR).

Z= A B

A B Z

0 0 00 1 11 0 11 1 0

L’uscita dell’operatore XOR è ‘1’ se i due ingressi sono diversi. Quindi può essere utilizzato per evidenziare le differenze tra i due segnali Z0 e Z1 come nello schema logico seguente.

L’uscita DIFF varrà ‘1’ se e solo se Z0 e Z1 sono diversi.

Nel caso esaminato l’uscita DIFF varrà ‘1’ se e solo se Z0 e Z1 sono diversi.

Come risulta dalla simulazione: DIFF rimane sempre a 0 con qualsiasi sequenza di simboli di ingresso. E’ importante osservare che la verifica di un teorema con il simulatore è valida se e solo si simula il comportamento della rete con tutte le possibili sequenze di ingresso ammesse.

Si osservi inoltre che la proprietà associativa non vale con tutti gli operatori logici. Ad esempio non vale per gli operatori logici NAND e NOR.

Verifica del Teorema di De Morgan mediante simulazione

Anche la verifica del Teorema di De Morgn può essere ottenuta verificando che le risposte delle due reti a tutte le possibili configurazioni di ingresso sono uguali.

A B = A + B

Teorema di De Morgan (I):

Risultato della simulazione:

Anche in questo caso per verificare che le uscite dei due circuiti sono effettivamente identiche si utilizza l’operatore logico OR-esclusivo (XOR).

In questo schema l’uscita DIFF vale ‘1’ se e solo se Z0 e Z1 sono diversi.

Come risulta dalle forme d’onda le due reti producono la stessa uscita con le stesse sequenze di ingresso.

Per esercizio: utilizzando il simulatore dimostrare la seconda forma del teorema di De Morgan.