logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica)...

39
1 Logica combinatoria Luciano Baresi La logica digitale La macchina è formata da porte logiche Ogni porta riceve in ingresso dei segnali binari (cioè segnali che possono essere 0 o 1) e calcola una semplice funzione (AND, OR, ecc) Alcune porte, collegate opportunamente, possono formare una memoria di un bit (bistabile) Combinando N memorie di un bit si può formare un registro capace di memorizzare un numero binario (non più grande di 2 N -1) Combinando le porte si realizzano i circuiti che formano i calcolatori 2

Upload: others

Post on 04-Nov-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

1

Logica combinatoria

Luciano Baresi

La logica digitale

  La macchina è formata da porte logiche   Ogni porta riceve in ingresso dei segnali binari (cioè segnali che

possono essere 0 o 1) e calcola una semplice funzione (AND, OR, ecc)

  Alcune porte, collegate opportunamente, possono formare una memoria di un bit (bistabile)

  Combinando N memorie di un bit si può formare un registro capace di memorizzare un numero binario (non più grande di 2N-1)

  Combinando le porte si realizzano i circuiti che formano i calcolatori

2

Page 2: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

2

Porte logiche

Luciano Baresi

Segnali e informazioni

  Per elaborare informazioni, occorre rappresentarle (o codificarle)   Per rappresentare (o codificare) le informazioni si usano segnali   I segnali devono essere elaborati, nei modi opportuni, tramite

dispositivi di elaborazione

  Segnale binario   una grandezza che può assumere due valori distinti,

convenzionalmente indicati con 0 e 1   s ∈{0, 1}

  Qualsiasi informazione è rappresentabile (o codificabile) tramite uno o più segnali binari (per esempio i caratteri del codice ASCII)

4

Page 3: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

3

Luciano Baresi

Il segnale binario

  Rappresentazione fisica del segnale binario: si usano svariate grandezze fisiche   tensione elettrica (la più usata!)   corrente elettrica   potenza ottica   altre grandezze fisiche

  Elaborazione del segnale binario: si usano svariate classi di dispositivi di elaborazione   porte logiche   reti combinatorie   reti sequenziali

  Sono tutti circuiti digitali (o numerici)

5

Luciano Baresi

Porte logiche

  I circuiti digitali sono formati da componenti digitali elementari, chiamati porte logiche   Le porte logiche sono i circuiti minimi per l’elaborazione di

segnali binari   L’elemento funzionale fondamentale per la costruzione di porte

logiche è il transistor   Classificazione

  Per modo di funzionamento: porta NOT, porta porta AND, porta OR (sono le porte logiche fondamentali)

  Per numero di ingressi: porte a 1 ingresso, porte a 2 ingressi, porte 3 ingressi, e così via ...

6

Page 4: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

4

Luciano Baresi

La porta NOT (invertitore)

  Se l’ingresso vale 0 Volt, l’uscita vale 5 Volt   Se l’ingresso vale 5 Volt, l’uscita vale 0 Volt

  Se ai valori di tensione 0 e 5 Volt si associano convenzionalmente i valori binari 0 e 1, rispettivamente, si ottiene la cosiddetta “tabella delle verità” della porta logica, che corrisponde alla tabella di commutazione

7

Luciano Baresi 8

Porta NOT (invertitore, negatore)

A X

Simbolo funzionale Tabella delle verità

(a 1 ingresso)

A X

0 1

1 0

A X

simbolo semplificato

L’uscita vale 1 se e solo se l’ingresso vale 0

Page 5: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

5

Luciano Baresi 9

Porta AND

Tabella delle verità

A B X

0 0 0

0 1 0

1 0 0

1 1 1

AX

B

(a 2 ingressi)

Simbolo funzionale

L’uscita vale 1 se e solo se entrambi gli ingressi valgono 1

Luciano Baresi 10

Porta OR

Tabella delle verità

A B X

0 0 0

0 1 1

1 0 1

1 1 1

A X

B

(a 2 ingressi)

Simbolo funzionale

L’uscita vale 1 se e solo se almeno un

ingresso vale 1

Page 6: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

6

Luciano Baresi

Generalizzazioni

  Alcuni tipi di porte a 2 ingressi si possono generalizzare a 3, 4, ecc ingressi

  Le due porte a più ingressi maggiormente usate sono la porta AND e la porta OR

  Tipicamente si usano AND (o OR) a 2, 4 o 8 ingressi (raramente più di 8)

  L’uscita X della porta AND a 3 ingressi vale 1 se e soltanto se tutti e tre gli ingressi A, B e C valgono 1

  L’uscita X della porta OR a 3 ingressi vale 1 se e soltanto se almeno uno tra gli ingressi A, B e C vale 1

  Si generalizza a più ingressi nel modo ovvio ...

11

Luciano Baresi 12

Porta AND a 3 ingressi

Tabella delle verità

A B C X 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1

A X

C B

Simbolo funzionale

L’uscita vale 1 se e solo se tutti e 3 gli ingressi valgono 1

Page 7: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

7

Luciano Baresi 13

Porta OR a 3 ingressi

A X B

C

Simbolo funzionale Tabella delle verità

A B C X 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1

L’uscita vale 0 se e solo se tutti e 3 gli ingressi valgono 0

Luciano Baresi 14

A

X B

C

A X

C B

Realizzazione ad albero

  La porta AND a 3 ingressi si realizza spesso come albero di porte AND a 2 ingressi (ma non è l’unico modo)

  Nota bene: non tutti i tipi di porte a più di 2 ingressi si possono realizzare come alberi di porte a 2 ingressi (funziona sempre con AND e OR)

Page 8: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

8

Algebra di Boole, funzioni e reti combinatorie

Luciano Baresi

Algebra di Boole

  L’algebra di Boole (dal suo inventore G. Boole) serve a descrivere matematicamente i circuiti digitali (o circuiti logici)

  Componenti dell’algebra di Boole:   Operatori booleani   Regole di trasformazione ed equivalenza tra operatori booleani

16

Page 9: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

9

Luciano Baresi 17

Nome Operazione Porta associata

Inversione X = !A Porta NOT

Somma logica X = A + B Porta OR

Prodotto logico X = A B Porta AND

Operatori booleani

  A, B e X sono variabili booleane   A, B, X ∈ {0, 1}

  Il prodotto ha precedenza sulla somma

Luciano Baresi 18

Operatori booleani

Somma Prodotto Inversione 0 + 0 = 0 0 0 = 0 !0 = 1 0 + 1 = 1 0 1 = 0 !1 = 0 1 + 0 = 1 1 0 = 0 1 + 1 = 1 1 1 = 1

  Sono le tabelle delle verità della porta logica OR, AND e NOT, rispettivamente

Page 10: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

10

Luciano Baresi

Proprietà degli op. booleani

  Alcune proprietà degli operatori booleani somigliano a quelle dell’algebra numerica tradizionale

  Altre sono piuttosto diverse (per esempio la proprietà di assorbimento)!

  Le proprietà degli operatori booleani si possono usare per trasformare espressioni booleane

19

Luciano Baresi 20

Proprietà degli op. booleani

Legge Prodotto logico (AND) Somma logica (OR)

Identità 1 A = A 0 + A = A

Elemento nullo 0 A = 0 1 + A = 1

Idempotenza A A = A A + A = A

Inverso A !A = 0 A + !A = 1

Commutativa A B = B A A + B = B + A

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

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

Assorbimento A (A + B) = A A + A B = A

De Morgan !(A B) = !A + !B !(A + B) = !A !B

Page 11: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

11

Luciano Baresi 21

Esempi

  F = !XYZ + !XY!Z + XZ   F = !XY(Z + !Z) + XZ   F = !XY1 + XZ   F = !XY + XZ

  F = A + !AB + !ABC   F = A + !AB(1+C)   F = A + !AB1   F = A + !AB   F = (A + !A)(A + B)   F = 1(A + B)   F = A + B

Luciano Baresi 22

Tabella delle verità

  La tabella delle verità è un modo per rappresentare il comportamento di una funzione combinatoria

  La tabella delle verità ha due colonne:   colonna degli ingressi, le cui righe contengono tutte le

combinazioni di valori delle variabili della funzione   colonna dell’uscita, che riporta i corrispondenti valori assunti

dalla funzione

Page 12: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

12

Luciano Baresi 23

Esempio

# riga A B C A B + /C F

0 0 0 0 0 0 + /0 1

1 0 0 1 0 0 + /1 0

2 0 1 0 0 1 + / 0 1

3 0 1 1 0 1 + /1 0

4 1 0 0 1 0 + /0 1

5 1 0 1 1 0 + /1 0

6 1 1 0 1 1 + /0 1

7 1 1 1 1 1 + /1 1

(per comodità nella colonna centrale è riportato anche il calcolo)

colonna uscita

colonna ingressi

n = 3 ingressi

2n = 23 = 8 righe

Luciano Baresi 24

Rete combinatoria

  A ogni funzione combinatoria, data come espressione booleana, si può sempre associare un unico circuito digitale, formato da porte logiche, che viene chiamato rete combinatoria

  Gli ingressi della rete combinatoria sono le variabili della funzione   L’uscita della rete combinatoria emette il valore assunto dalla

funzione

Page 13: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

13

Luciano Baresi 25

Esempio

A

F

B

C

A B

/ C

F(A, B, C) = A B + !C rete

combinatoria

Luciano Baresi

Rete combinatoria

  Una rete combinatoria è un circuito digitale:   dotato di n ≥ 1 ingressi principali e di un’uscita   formato da porte logiche AND, OR e NOT   e privo di retroazioni

  Eventualmente, una rete combinatoria può anche essere formata da porte logiche di altro tipo

  La tabella delle verità di una rete combinatoria può anche essere ricavata per simulazione del funzionamento circuitale della rete combinatoria stessa

  Per simulare il funzionamento circuitale di una rete combinatoria, si applicano dei valori agli ingressi, e li si propaga lungo la rete fino all’uscita

26

Page 14: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

14

Luciano Baresi 27

Simulazione circuitale

A

F

B

C

(corrisponde alla riga 0 della tabella)

Risultato della simulazione: F(0, 0, 0) = 1

0

0

0

0

1

1

Luciano Baresi 28

(per comodità è riportato anche il

calcolo)

0 0 0 0 !0 0 + !0 + !0 0 1

1 0 0 1 !0 0 + !1 + !0 1 1

2 0 1 0 !0 1 + !0 + !0 0 1

3 0 1 1 !0 1 + !1 + !0 1 1

4 1 0 0 !1 0 + !0 + !1 0 1

5 1 0 1 !1 0 + !1 + !1 1 0

6 1 1 0 !1 1 + !0 + !1 0 1

7 1 1 1 !1 1 + !1 + !1 1 0

# riga A B C !A B + !C + !A C F

Simulazione circuitale

Page 15: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

15

Luciano Baresi

Sintesi di reti combinatorie

  La sintesi di una rete combinatoria espressa come tabella delle verità, consiste nel ricavare lo schema logico (il circuito digitale) che calcola la funzione combinatoria

  In generale, per una data tabella delle verità possono esistere più reti combinatorie (la soluzione al problema di sintesi non è dunque unica)

  Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

29

Luciano Baresi

Sintesi di reti combinatorie

  Esistono svariate procedure di sintesi di reti combinatorie, che differiscono per:   Complessità della procedura di sintesi   Ottimalità della rete combinatoria risultante, per dimensioni e

velocità

  Una tecnica di sintesi semplice e universale, benché non sempre ottimale, è la sintesi in 1a forma canonica, o come somma di prodotti (mintermini)   Si considerano le righe della tabella delle verità il cui valore è 1

  2a forma canonica: la funzione può essere espressa come il prodotto logico dei termini somma (maxtermini)   Si considerano le righe della tabella delle verità il cui valore è 0

30

Page 16: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

16

Luciano Baresi 31

Sintesi in 1a forma canonica (o sintesi come somma di prodotti)

  Scrivere la tabella delle verità, a n ≥ 1 ingressi, della funzione da sintetizzare

  Introdurre n invertitori per generare la negazione di ogni segnale di ingresso principale

  Introdurre una porta AND a n ingressi per ogni 1 presente nella colonna dell’uscita della tabella delle verità

  Collegare gli ingressi delle porte AND così introdotte agli ingressi principali, in forma diretta o negata, in modo appropriato

  Inviare l’uscita di tutte le porte AND a un’unica porta OR, dotata di tanti ingressi quante sono le porte AND così introdotte

  Vale il duale per la seconda forma canonica   Si complementano le variabili il cui valore è 1

Luciano Baresi 32

Funzione maggioranza

  Si chiede di sintetizzare (in 1a forma canonica) una funzione combinatoria dotata di 3 ingressi A, B e C, e di un’uscita F, funzionante come segue:   Se la maggioranza degli ingressi

vale 0, l’uscita vale 0   Se la maggioranza degli ingressi

vale 1, l’uscita vale 1

  La tabella delle verità della funzione maggioranza è mostrata a lato

  L’uscita vale 1 se e solo se 2 o tutti e 3 gli ingressi valgono 1 (cioè se e solo se il valore 1 è in maggioranza)

# r i g a A B C F 0 0 0 0 0 1 0 0 1 0 2 0 1 0 0 3 0 1 1 1 4 1 0 0 0 5 1 0 1 1 6 1 1 0 1 7 1 1 1 1

Page 17: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

17

Luciano Baresi 33

F

A B C !A !B !C

A

B

C

0 1 1 !A B C

1 0 1 A !B C

1 1 0 A B !C

1 1 1 A B C

Rete combinatoria

schema logico

Luciano Baresi 34

Espressione booleana

  Dallo schema logico della rete combinatoria così sintetizzata, si può ricavare la funzione combinatoria data come espressione booleana

  F(A, B, C) = !A B C + A !B C + A B !C + A B C

  Nota bene: è una somma di prodotti

Page 18: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

18

Luciano Baresi 35

Reti combinatorie equivalenti

  Una funzione combinatoria, data come tabella delle verità, può ammettere più reti combinatorie differenti che la sintetizzano

  Reti combinatorie che realizzano la medesima funzione combinatoria si dicono equivalenti

  Esse hanno tutte la stessa funzione, ma struttura (e costo) differente

Luciano Baresi 36

Due reti equivalenti

F1 = AB + AC F2 = A(B + C) Trasformazione: F1 = AB + AC = = A(B + C) =

= F2 (prop. distributiva)

A

F B

C

A B

A C

A B + A C

A F

B

C B + C

A ( B + C )

Page 19: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

19

Luciano Baresi

Costo e velocità

  Il costo di una rete combinatoria si valuta in vari modi (criteri di costo):   Numero di porte, per tipo di porta e per quantità di ingressi

della porta   Numero di porte universali (NAND o NOR)   e altri ancora ...

  La velocità di una rete combinatoria è misurata dal tempo che una variazione di ingresso impiega per modificare l’uscita della rete (o ritardo di propagazione)

  Per calcolare la velocità di una rete combinatoria, occorre conoscere i ritardi di propagazione delle porte logiche componenti la rete, e poi analizzare i percorsi ingressi-uscita

37

Luciano Baresi 38

Velocità

A

F

B

C

Ritardo totale = 5 ns = 5 10-9 sec

Freq. di commutazione = 1 / 5 ns = 200 MHz

0

0

0

0

1 1

2 ns

1 ns 2 + 3 = 5 ns

2 ns

1 ns 3 ns

Page 20: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

20

Luciano Baresi 39

Operatori funzionalmente completi

  Gli operatori NAND e NOR sono funzionalmente completi   Significa che con soli NAND (NOR) è possibile realizzare qualsiasi funzione

logica   Combinando opportunamente porte NAND è possibile ottenere le funzioni

AND, OR e NOT

A X

B

A X

B

NAND NOR

X Y !(XY)

0 0 1

0 1 1

1 0 1

1 1 0

X Y !(X + Y)

0 0 1

0 1 0

1 0 0

1 1 0

Luciano Baresi 40

X Y (X ⊕ Y)

0 0 0

0 1 1

1 0 1

1 1 0

X Y (X ⊗ Y)

0 0 1

0 1 0

1 0 0

1 1 1

A X

B

A X

B

Altri operatori

  XOR   OR esclusivo   L’uscita vale uno solo quando

uno dei due ingressi vale uno   F = X ⊕ Y = !XY + X!Y

  XNOR   La negazione del precedente   L’uscita vale uno solo quando

gli ingressi hanno il medesimo valore

  F = X ⊗ Y = !X!Y + XY

Page 21: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

21

Luciano Baresi 41

Mappe di Karnaugh

  Due mintermini o maxtermini sono logicamente adiacenti se differiscono per un unico letterale

  Mappe di karnaugh   Per realizzare reti combinatorie su due livelli   Utili per funzioni booleane con non più di 5/6 variabili   Contengono la stessa informazione delle tabelle delle verità

AB CD

00

01

10

11

10 11 01 00

Luciano Baresi 42

Sintesi con mappe di Karnaugh

  N = !A!C + !CD + !B!D + ABD

AB CD

00

01

10

11

10 11 01 00

1

1

1

1 1

1

1

1 1

1

A B C D N

0 0 0 0 1

0 0 0 1 1

0 0 1 0 1

0 0 1 1 0

0 1 0 0 1

0 1 0 1 1

0 1 1 0 0

0 1 1 1 0

1 0 0 0 1

1 0 0 1 1

1 0 1 0 1

1 0 1 1 0

1 1 0 0 0

1 1 0 1 1

1 1 1 0 0

1 1 1 1 1

Page 22: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

22

Rappresentazioni e aritmetica binaria

Luciano Baresi 44

Rappresentazione in modulo e segno

  Dato un numero intero N, codificato su n bit, il bit più significativo rappresenta il segno (0 significa positivo e 1 negativo)   I restanti n-1 bit rappresentano il valore assoluto del numero

  N = 6 3 bit + 1 per il segno 0110   N = -6 1110

  Problemi con le operazioni aritmetiche elementari   Analisi del segno   Confronto dei valori assoluti

Page 23: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

23

Luciano Baresi 45

Somma tra due numeri

segno A = segno B

|A| > |B|

|RIS| = |B| - |A|

segno RIS = segno B segno RIS = segno A

|RIS| = |A| - |B|

SI NO

NO

segno RIS = segno A

|RIS| = |A| + |B|

Luciano Baresi

Rappresentazione in complemento a 1

  Codifica diversa per semplificare l’algoritmo di calcolo   Non si distingue più il segno dal modulo   Dato un numero N, il suo opposto si calcola complementando ad

uno ad uno tutti i bit che compongono il numero   N = 01001 -N = 10110

  Somma e sottrazione richiedono solo sommatori e negatori (per il calcolo dell’opposto)

  Il risultato è corretto a meno di un 1 nel caso in cui si verifichi un riporto nella somma stessa   Quindi si usa sempre una seconda somma per sommare il

riporto generato (fosse zero la somma sarebbe inutile)

46

Page 24: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

24

Luciano Baresi

Esempio

  N = 011001 (+25) e M = 000011 (+3)   N + M = 011001 + 000011 = 011100 (+28)

  K = 111100 (-3)   N + K = 011001 + 111100 =

(1)010101 010101 + 000001 = 010110 (+22)

  I due numeri devono essere rappresentati con lo stesso numero di cifre

  Sempre due somme   Non è la soluzione ottima, ma è la meno costosa

47

Luciano Baresi 48

Rappresentazione in complemento a 2

  Ulteriore miglioramento, ma rappresentazione sempre più complicata

  Somme algebriche con una sola addizione   Notazione non simmetrica (-2n-1 ≤ N ≤ 2n-1 -1)

  Una sola codifica per il numero zero   Numeri positivi stessa codifica   Numeri negativi

  -N è quel numero che sommato a N produce una configurazione di tutti zero e un bit di riporto che si trascura

  Operativamente –  Complemento a 1 e poi si somma uno –  Si scorre il numero da destra a sinistra, lasciando inalterate le cifre

fino al primo uno (compreso) e complementando le altre

Page 25: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

25

Luciano Baresi 49

Esempio

  N = 011001 (+25)   -N = 100110 + 000001 = 100111 oppure   -N = 100111

  “Salvo” solo il primo uno e complemento tutto il resto

  N = 011001 (+25) e M = 000011 (+3)   K = 111101 (-3)   N + K = 011001 + 111101 = (1)010110 = 010110 (+22)

  M – N = 000011 + 100111 = 101010 (-22)   010110 +22

  Attenzione a leggere i numeri negativi

Luciano Baresi 50

Confronto

Codifica Modulo e segno Complemento a 1 Complemento a 2

0000 +0 +0 +0

0001 +1 +1 +1

0010 +2 +2 +2

0011 +3 +3 +3

0100 +4 +4 +4

0101 +5 +5 +5

0110 +6 +6 +6

0111 +7 +7 +7

1000 -0 -7 -8

1001 -1 -6 -7

1010 -2 -5 -6

1011 -3 -4 -5

1100 -4 -3 -4

1101 -5 -2 -3

1110 -6 -1 -2

1111 -7 -0 -1

Page 26: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

26

Circuiti integrati

Luciano Baresi 52

Circuiti integrati

  Le porte logiche non vengono prodotte isolatamente, ma sono realizzate su circuiti integrati

  Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati transistor e dunque porte logiche, che complessivamente realizzano uno o più circuiti digitali

  La piastrina di silicio di un circuito integrato ha solitamente dimensioni comprese tra:   5 × 5 mm e   1 × 1 cm (di rado superiore)

  La piastrina di silicio integra i transistor, i collegamenti tra i transistor e i collegamenti con i morsetti di ingresso/uscita del chip

Page 27: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

27

Luciano Baresi 53

Famiglie di circuiti integrati

  I circuiti integrati sono classificati in base alle loro dimensioni, cioè al numero di porte logiche contenute:   SSI (Small Scale Integrated): IC a scala di integrazione piccola,

da 1 a 10 porte   MSI (Medium Scale Integrated): IC a scala di integrazione

media, da 10 a 100 porte   LSI (Large Scale Integrated): IC a scala di integrazione grande,

da 100 a 100.000 porte   VLSI (Very Large Scale Integrated): IC a scala di integrazione

molto grande, > 100.000 porte   Ogni famiglia ha degli usi caratteristici nei calcolatori e in

generale nei dispositivi elettronici, che dipendono dalle sue dimensioni, ovvero dalla quantità di porte presenti sul circuito integrato stesso

Luciano Baresi 54

Metodi di progetto logico

  Nessuno progetta un circuito integrato contenente 10 milioni di transistor, equivalenti a circa 2 milioni di porte logiche AND a 2 ingressi, trattandolo come un’unica rete combinatoria (o sequenziale) di dimensioni enormi!

  Per progettare circuiti digitali di tali dimensioni, si usano tecniche modulari, per scomporre il problema

Page 28: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

28

Luciano Baresi 55

Matrici logiche programmabili

  Esistono circuiti integrati programmabili, chiamati PLA (Programmable Logic Array, matrici logiche programmabili), che permettono di realizzare qualsiasi rete combinatoria

  Il solo limite della PLA è dato da:   Il numero di piedini (che è fisso)   Il numero massimo di porte logiche disponibili sulla PLA

  Il produttore produce e commercializza PLA “vergini”: esse non hanno a bordo alcun circuito digitale definito

  Spetta al compratore programmare la PLA “vergine”, installandole a bordo una o più reti combinatorie (o anche sequenziali), secondo le esigenze

  Per programmare la PLA occorre un apposito apparato programmatore

Luciano Baresi 56

Come funziona un PLA

  La PLA “vergine” contiene già un numero fissato di porte logiche AND, OR e NOT (o anche NAND, ecc)

  Nella PLA “vergine” i collegamenti tra queste porte logiche sono però indefiniti

  La PLA “vergine” contiene delle matrici di microinterruttori a transistor: bruciandoli o lasciandoli intatti si realizzano collegamenti tra le porte

  L’apparato programmatore di PLA è in grado di bruciare selettivamente i microinterruttori presenti sulla PLA

  Per farlo, esso applica ad alcuni piedini della PLA (piedini di programmazione), speciali valori di tensione elettrica, che agiscono sui microinterruttori

  L’operazione è del tutto automatica e relativamente veloce, e irreversibile

Page 29: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

29

Luciano Baresi 57

A

B

C

D

M I C R O I N T E R R U T T O R I

M I C R O I N T E R R U T T O R I

A

B

C

F

p o r t a n o n u s a t a

p o r t a n o n u s a t a

D

i n g r e s s o n o n u s a t o

Funzione maggioranza a tre ingressi

Circuiti combinatori elementari

Page 30: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

30

Luciano Baresi

Circuiti combinatori elementari

  Esiste una ben nota e ormai stabilizzata libreria di blocchi funzionali predefiniti di tipo combinatorio

  Essa contiene blocchi funzionali per tutte le funzioni combinatorie di base

  Questi blocchi appartengono alle famiglie MSI e (alcuni di essi) LSI   La libreria contiene anche blocchi funzionali di tipo sequenziale

59

Luciano Baresi 60

Multiplexer

  Il blocco funzionale multiplexer ha:   n ≥ 1 ingressi di selezione   2n ≥ 2 ingressi dati   un’uscita

  Gli ingressi dati sono numerati a partire da 0: k = 0, 1, 2, …, 2n-1   Se sugli ingressi di selezione è presente il numero binario k, il

kesimo ingresso dati viene inviato in uscita

Page 31: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

31

Luciano Baresi 61

Un solo ingresso di controllo

A B Ctrl OUT

0 0 0 0

0 0 1 0

0 1 0 1

0 1 1 0

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 1

OUT = !AB!Ctrl + A!BCtrl +AB!Ctrl + ABCtrl

00 01 11 10

0 0 1 1 0

1 0 0 1 1

OUT = ACtrl + B!Ctrl

Ctrl

OUT

A

B

Possibilità di ingressi di più bit

Luciano Baresi 62

Tabella delle verità

# riga S1 S0 I1 I2 I3 I4 U

0 0 0 0 X X X 0

1 0 0 1 X X X 1

2 0 1 X 0 X X 0

3 0 1 X 1 X X 1

4 1 0 X X 0 X 0

5 1 0 X X 1 X 1

6 1 1 X X X 0 0

7 1 1 X X X 1 1

S0

U

S1

MUX

I1

I2

I3

I4

Multiplexer a 2 ingressi di controllo

Page 32: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

32

Luciano Baresi 63

  Selezione Uscite

I S1 S2 O1 O2 O3 O4

D 0 0 D 0 0 0

D 1 0 0 D 0 0

D 0 1 0 0 D 0

D 1 1 0 0 0 D

O1 = !S1!S2I O2 = S1!S2I O3 = !S1S2I O4 = S1S2I

Demultiplexer

  Circuito logico che effettua l’operazione inversa rispetto al MUX (multiplexer)

  Il blocco funzionale demultiplexer (DEMUX) ha:   n ≥ 1 ingressi di selezione   un ingresso dati   2n ≥ 2 uscite

Luciano Baresi 64

Demultiplexer

S1

O1

I O2

O3

O4

S2 S1

O1 (00)

I O2 (10)

O3 (01)

O4 (11)

S2

DMUX

O1 = !S1!S2I O2 = S1!S2I O3 = !S1S2I O4 = S1S2I

Page 33: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

33

Luciano Baresi 65

Decoder

  Il blocco funzionale decoder ha:   n ≥ 1 ingressi   2n ≥ 2 uscite

  Le uscite sono numerate a partire da 0: k = 0, 1, 2, …, 2n - 1   Se sugli ingressi è presente il numero binario k, la kesima uscita

assume il valore 1 e le restanti uscite assumono il valore 0

Luciano Baresi 66

Decoder

A B F1 F2 F3 F4

0 0 1 0 0 0

0 1 0 1 0 0

1 0 0 0 1 0

1 1 0 0 0 1

F1 = !A!B F2 = !AB F3 = A!B F4 = AB

F1 A

F2

F3

F4 DECODER

B

F1

F2

F3

F4

A

B

Page 34: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

34

Luciano Baresi 67

Shifter

  Effettua lo scorrimento verso sinistra o destra del valore presente agli ingressi

  Esempio: 010010011   Sinistra: 100100110   Destra: 001001001

sinistra destra

S/D 1 0

OUTn INn-1 Nuovo bit

OUTi INi-1 INi+1

OUT0 Nuovo bit IN1

Luciano Baresi 68

Shifter

MUX 0 1

MUX 0 1

MUX 0 1

MUX 0 1

MUX 0 1

O4 O3 O2 O1 O0

S/D nuovo bit

I4 I3 I2 I1 nuovo

bit I0

Page 35: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

35

Luciano Baresi 69

Sommatore

  È la generalizzazione del sommatore completo: addizione di numeri interi binari naturali (positivi) a n bit

  Ha in ingresso due numeri interi binari naturali A e B da n ≥ 1 bit ciascuno

  In uscita presenta la somma a n bit dei due numeri interi A e B   Può avere un riporto in ingresso e un riporto in uscita, non sempre

usati

Luciano Baresi 70

Half-adder

A ! B! Somma! Carry!

0! 0! 0! 0!

0! 1! 1! 0!

1! 0! 1! 0!

1! 1! 0! 1!

Somma = !AB + A!B = A ± B!Carry = AB!

A ! B!

Carry!

Somma!

HALF-ADDER !

Page 36: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

36

Luciano Baresi 71

Full-hadder

A B Carry in Somma Carry out

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

Somma = A ± B ± CarryIn CarryOut = AB + ACarryIn + BCarryIn AB + CarryIn(A + B)

FULL-ADDER

Carry out

A B

Somma

Carry in

Luciano Baresi 72

Sommatore per dati a 3 bit

A2

R2

A1

R1

A0

R0

FA HA FA

R2 R1 R0

FA FA FA 0

B2 B1 B0

A2 A1 A0 B2 B1 B0

Page 37: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

37

Luciano Baresi 73

Esempio di progetto in stile funzionale

  Si chiede di progettare un circuito digitale combinatorio, che abbia:   in ingresso due numeri interi binari naturali (positivi) A e B da n ≥ 1 bit ciascuno

  in ingresso un segnale di comando C   in uscita un numero intero binario naturale Z da n ≥ 1 bit

  Su Z deve uscire la somma A + B se C = 0, la differenza A - B se C = 1

Luciano Baresi 74

X

Y S

n

n n

X + Y

X

Y D

n

n

n X - Y

A

B

C

n Z U I 0

I 1 M U X

S

-

+

(si usa un multiplatore a 2 gruppi di ingressi dati; ciascun gruppo è da n bit)

Schema logico della soluzione

Page 38: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

38

Luciano Baresi 75

A

B

U

C

E

c o m a n d i

e s i t i

o p e r a n d i r i s u l t a t o

A L U n

n

n

A < B A = B A > B R u s c P u s c

A d d S u b ノ

ノ ノ

A L U

R i n , P i n

A = 0

Unità Aritmetico-Logica

Luciano Baresi 76

# riga Comando Operazione R Esito

0 Add somma A e B A + B + Rin riporto in uscita Rusc

1 Sub sottrae B da A A − B − Pin prestito in uscita Pusc

2 Pass A A passain uscita

A -

3 Pass B B passain uscita

B -

4 Zero annulla uscita 0 -

5 Shift Left A A scorre a SX 2A bit più significativo di A

6 Shift Right A A scorre a DX A / 2 bit meno significativo di A

7 Null ConfrontaA con 0

- A = 0

8 Compare ConfrontaA con B

- A < B, A = B, A > B

9 Multiply prodotto di A e B A × B riporto in uscita

10 Divide divisione A / B A / B divisione per 0 ?

… … … … …

Unità Aritmetico-Logica

Page 39: Logica combinatoria · reti combinatorie (la soluzione al problema di sintesi non è dunque unica) Due funzioni diverse sono le stesse se e solo se hanno la stessa tabella delle verità

39

Luciano Baresi 77

Schema logico di una ALU da 1 bit

Luciano Baresi 78

Esercizio

  ALU che effettua AND, OR, NOT e somma algebrica

F0 F1 Operazione

0 0 A and B

0 1 A or B

1 0 !B

1 1 A + B

A B F0 F1 Output CarryOut

0 0 0 0 0 0

0 0 0 1 0 0

0 0 1 0 1 0

0 0 1 1 0 0

0 1 0 0 0 0

0 1 0 1 1 0

0 1 1 0 0 0

0 1 1 1 1 0

1 0 0 0 0 0

1 0 0 1 1 0

1 0 1 0 1 0

1 0 1 1 1 0

1 1 0 0 1 0

1 1 0 1 1 0

1 1 1 0 0 0

1 1 1 1 0 1