reti logiche (1) - home page | dei · 1 1 reti logiche (1) algebra booleana e circuiti combinatori...

24
1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano ALU (Unità Aritmetico Logica) e CPU Elementi di memoria e progetto delle gerarchie di memorie

Upload: dinhthuy

Post on 18-Feb-2019

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

1

1

Reti logiche (1)Algebra booleana e circuiti combinatori

2

Un quadro della situazione

In particolare gli argomenti qui trattati interessanoALU (Unità Aritmetico Logica) e CPUElementi di memoria e progetto delle gerarchie di memorie

Page 2: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

2

3

Piano delle lezioniAlgebra booleana e porte logiche

Postulati e proprietà, operatori, tabelle di verità …Porte, insiemi di operatori funzionalmente completi, …

Logica combinatoria e sequenzialeCircuiti combinatori fondamentali, principi di progettazione,…Temporizzazione, elementi di memoria, register file, RAM, …

Introduzione a gerarchia di memorieCostruzione di una unità aritmetico-logicaLa CPU: Datapath, unità di elaborazione e unità di controllo

Patterson e HennessyAppendice B - Reti logicheCapitolo 7 – Gerarchie di memorieCapitolo 3 – Unità aritmetico-logicaCapitolo 5 – La CPU

4

Organizzazione della lezioneAlgebra di Boole

Tabelle di veritàpostulati ed identità

Logica digitaleOperatori e porte logicheInsiemi di operatori funzionalmente completi

Circuiti combinatoriDecodificatori e MultiplexerForme canoniche: “somma di prodotti”, “prodotto di somme”PLA: Array a Logica ProgrammabileROM: Read Only Memory

Minimizzazione, semplificazione, e condizioni di indifferenzaPatterson e Hennessy, sezioni B.1, B.2, B.3Tanenbaum, complementi

Page 3: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

3

5

Logica digitaleI componenti elettronici nei calcolatori odierni sono digitaliLa logica digitale lavora con due livelli di tensioneTutti gli altri valori di tensione sono temporanei e compaiono solo come transizioni tra due valori principaliDal punto di vista logico si parla di segnali

Veri (TRUE), o affermati, pari a 1Falsi (FALSE), o negati, pari a 0

Il valore 0 è il complemento o l’inverso del valore 1, e viceversa

Tipicamente (logica positiva) un segnale tra 0 e 1 volt rappresenta uno 0 binario e un segnale tra 2 e 5 volt rappresenta un 1 binario

Applicato il valore di inputil valore di output appare dopo il tempo di propagazione

6

Circuiti combinatoriCircuito combinatorio

L’output in ogni istante è funzione solo dell’input, non degli input precedenti o da stato interno (circuito senza memoria)in generale n input e m output

Può essere specificato da:tavola di verità: per ognuno delle 2n possibili combinazioniin input viene specificato il valore degli m outputespressioni booleane: ogni segnale di output viene espressocome una funzione booleana dei suoi segnali di outputsimboli grafici: struttura di interconnessione

Analisi:dato un circuito comprendere le funzioni realizzate

Progettazione:data una funzione sviluppare circuito (minimo?) che la realizza

Page 4: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

4

7

Tabelle di veritàOgni riga della tabella di verità specifica il valore di tutte le uscite in corrispondenza di una combinazione di ingressiCon n ingressi la tabella di verità contiene 2n righe => la dimensione cresce velocemente con il numero di ingressi!

EsempioFunzione logica a 3 ingressi

A, B, C e 3 uscite D, E, FD è vero se almeno uno degli

ingressi è veroE è vero se esattamente due

ingressi sono veriF è vero se tutti e tre gli

ingressi sono veri23=8 righe

8

Algebra di Boole George Boole: matematico inglese (1815-1864)

Algebra di Boole definita da un insieme di:

costanti: TRUE e FALSE (rappresentati da 1 e 0)

variabili (con valore TRUE o FALSE): A, B, C,…

operatori:

AND (simbolo ·), operatore binario

OR (simbolo +), operatore binario

NOT (simbolo ¯), operatore unario

Claude Shannon (1938)

ha dimostrato la utilità della algebra di Boole per progettazione ed

analisi di circuiti logici

Page 5: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

5

9

Postulati ed identità (1)Postulati:

regole di base (non dimostrate)

10

Postulati ed identità (2)Identità:

possono essere derivate dai postulati

Proprietà diassorbimento

Proprietà diidempotenza

Page 6: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

6

11

Legge di De MorganSi può derivare calcolando la tabella di verità per i due membridell’identità

12

EsempioFunzione logica con tre ingressi A, B, C e tre uscite D, E, F

D è vero se almeno uno degli ingressi è vero

F è vero se tutti e tre gli ingressi sono veri

E è vero se esattamente due ingressi sono veri

CBAD ++=

CBAF ⋅⋅=

)CBA(C))(BC)(AB)((AE ⋅⋅⋅⋅+⋅+⋅=)AC(B)BC(A)CB(AE ⋅⋅+⋅⋅+⋅⋅=

Esercizio (B.7): dimostrare l’equivalenza

Page 7: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

7

13

Un insieme di operatori è funzionalmente completose realizza tutte le funzioni realizzabili con AND, OR, NOT

Determinare un insieme funzionalmente completo più piccolopermette un processo produttivo più semplice

Un operatore si dice universaleSe da solo rappresenta un insieme completo di operatori

AND e NOT sono insieme di operatori funzionalmente completoDalla legge di De Morgan: Complementiamo ambo i membri:Vale l’identità:

Allora:

Insiemi di operatorifunzionalmente completi

BABA ⋅=+BABA ⋅=+

AA =

BABA ⋅=+

14

NOTNotazione:Tabella di verità:

Porta logica:

Porte logicheAND

Notazione: C=A·BTabella di verità:

Porta logica:

ORNotazione: C=A+BTabella di verità:

Porta logica:

AB =

Page 8: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

8

15

NOT: rappresentazioni alternativeSi possono disegnare esplicitamente gli invertitori

Più spesso si aggiunge un pallino in corrispondenza di un

ingresso o di una uscita

Esempio: la funzione BAC +=

16

XORNotazione:Tabella di verità:

Porta logica:

Altre porte logicheNAND

Notazione:Tabella di verità:

Porta logica:

NORNotazione:Tabella di verità:

Porta logica:

BAC ⋅= BAC += BAC ⊕=

Page 9: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

9

17

Implementazione di XOR

Due porte AND e una porta OR

Tre porte NAND

Esercizio: dimostrare l’equivalenzaricavando le tabelle di verità dei due circuiti

18

Livello fisico: InvertitoreIl transistor bipolare

Si chiude (resistenza infinita)

quando l’input Vin è sotto un

valore critico

Si apre (filo) quando Vin è

sopra il valore critico

Page 10: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

10

19

Livello fisico: NOR e NANDNOR: due transistor in parallelo

NAND: due transistor in serie

20

Progettazione di circuitiOgni funzione booleana può essere realizzata da unarete di porte logiche (con diverse alternative)Passi da seguire:

Scrivere la tavola di verità della funzione da realizzareDalla tavola di verità arrivare alla espressione booleanaDall’espressione booleana progettare la rete

Espressioni booleane utilizzate:La forma come “somma di prodotti”La forma come “prodotti di somme”

Obiettivi della progettazioneEconomicità: realizzare circuiti che calcolino la stessa funzione con meno porte logiche (minimizzazione di circuiti)Semplicità costruttiva : utilizzare il minor numero di porte diverse nel circuito (standardizzazione del processo produttivo)

Page 11: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

11

21

Evoluzione della produzione (1)In passato, su ogni circuito integrato andavano poche porte

Chip SSI (Small Scale Integrated)Tipicamente contenenti da 2 a 6 porte indipendentiIn più alimentazione Vcc e messa a terra GNDLa realizzazione di circuiti utilizzava questi circuiti “base”

22

Evoluzione della produzione (2)Adesso il processo di produzione permette la realizzazione di moltissime porte su un singolo circuito

Chip VLSI (Very Large Scale Integrated): più di 100.000 porteAnche 107 transistor su un singolo chipCi starebbero 5•106 porte NANDCi vorrebbero 1.5•107 + 2 piediniSarebbe un chip lungo alcuni chilometri

Ci vogliono chip general-purpose con elevato rapporto porte/piedini

Page 12: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

12

23

DecodificatoreCircuito combinatorio con n input e 2n output:

una sola delle linee di output viene messa a TRUEin dipendenza dal valore binario presente in inputLa linea messa a TRUE corrisponde al valore binario associato al vettore degli ingressi

24

Tabella di verità di un decodificatore

Allora:Eccetera

CBAD0 ⋅⋅= CBAD1 ⋅⋅=

Page 13: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

13

25

Implementazione di un decodificatore

26

MultiplexerCircuito combinatorio con n input di dato, 1 output e log2n input di controllo:

Permette di selezionare (tramite linee di controllo) quale delle linee di input deve andare in output

Esempio: un multiplexer a 2 vieA seconda dei valori della linea di controllo (S) una delle linee dati (A,B) viene data in output su CÈ necessario un codice di selezione della linea dati (tipicamente il valore binario dell’indice della linea dati)

Page 14: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

14

27

Implementazione di un multiplexer a 2 vie

S)(B)S(AC ⋅+⋅=

Scriviamo le tre rappresentazioni (tabella di verità, espressione booleana, porte logiche)

28

Multiplexer a n viePer selezionare n segnali in ingresso sono necessari log2 nsegnali di controllo Si

Analogamente al Mux 2 vie (implementazione a due livelli): Primo livello di porte AND tra gli ingressi e i controlliSecondo livello con una porta OR a n vie che combina le uscite da tutti gli AND.

Per ogni possibile combinazione degli Si solo un AND riceverà 1in inputil valore in uscita dell’AND sarà quello della linea dati corrispondente, tutti gli altri AND ricevono almeno uno 0L’OR finale avrà il valore della unica porta AND con 1in input

Applicazione: convertitore parallelo/serialeGli 8 bit vanno su 8 ingressi, controlli ciclati tra 000 e 111

Page 15: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

15

29

Implementazione di un multiplexer a n viePer n=8 segnali in ingresso sono necessari log2 8 = 3segnali di controllo Si

Dato il valore binario dell’indice della linea dati, il decodificatore produce 1 sul corrispondente AND, tutti gli altri AND ricevono 0Il valore in uscita dell’AND sarà quello della linea dati corrispondenteL’OR finale avrà il valore della unica porta AND “aperta”

30

Matrici di elementi logiciMolte operazioni combinatorie realizzate su dati devono elaborare parole (32 bit).Si costruisce una matrice di elementi logici: una data operazione è applicata ad un intero insieme di ingressi (bus)Esempio: un multiplexer a 2 vie e ampiezza 32 bit è in realtà una matrice di 32 multiplexer a 2 vie e ampiezza 1 bit

Page 16: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

16

31

Forma canonica “Somma di prodotti” (SDP)Sia data la tabella di verità.Si può ricavare una espressione booleana elencando le combinazioni dei valori di A,Be C per cui il valore di F è 1Forma “somma di prodotti”

Si elencano (in AND) le occorrenze delle variabili in input che danno F=1Questi vengono talvolta detti minterm o minterminiSi uniscono i minterm in un OR

Risultato:

CABBCACBAF ++=

32

Esempio

E è vero se esattamente due

ingressi sono veri

)CBA(C))(BC)(AB)((AE ⋅⋅⋅⋅+⋅+⋅=)AC(B)BC(A)CB(AE ⋅⋅+⋅⋅+⋅⋅=

La seconda espressione è una somma di prodotti

Page 17: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

17

33

Forma canonica “Prodotto di somme” (PDS)Si può ricavare una espressione booleana elencando le combinazioni dei valori diA,B, e C per cui il valore di F è 0Forma “prodotto di somme”

L’idea: basta la occorrenza di uno diquesti input per rendere F=0si elencano (in OR) le occorrenze delle variabili in input che danno F=0Le variabili vanno complementatele si unisce in un AND

Risultato:

)CBA()CBA(C)BA(

)CB(AC)B(AF

++⋅++⋅++

⋅++⋅++=

34

Alcuni commentiIn generale la forma SDP è più usata della forma PDSIl multiplexer di prima è stato rappresentato in forma SDPUn criterio per scegliere se rappresentare una tabella di veritàfunzione) come somma di prodotti oppure come prodotto di somme dipende dal numero di zeri ed uni della funzione

Se ci sono meno uni: somma di prodottiSe ci sono meno zeri: prodotto di somme

E’ possibile avere forme più compatte delle forme SDP o PDSMinimizzazione: implementazione di una funzione logica usando un numero più piccolo di porte

Ci sono anche altri criteri da tenere presenteSemplificazione: implementazione di una funzione logica usando una sola porta (NAND o NOR)

Page 18: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

18

35

Programmable Logic Array (PLA)Approccio generale all’implementazione di funzioni logiche sfruttando la rappresentazione a due livelli SDP

Ogni input del chip disponibile in forma vera e complementataPrimo livello

Ogni input può essere collegato a qualsiasi porta ANDSecondo livello

L’output di qualsiasi porta AND è collegabile a qualsiasi porta OR

Realizzazione di un circuito ad hocdurante la fabbricazione del chipfusibili (che possono essere bruciati) su “intersezioni” di linea

36

PLA: rappresentazione e implementazione

PLA con 12 input, 50 prodotti, 6 somme

Page 19: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

19

37

Esempio (il solito)Funzione logica con tre ingressi A, B, C e tre uscite D, E, FD è vero se almeno uno degli ingressi è veroF è vero se tutti e tre gli ingressi sono veriE è vero se esattamente due ingressi sono veri

38

Read Only Memory (ROM)Altro approccio generale all’implementazione di funzioni logicheI circuiti combinatori sono “senza memoria”

l’output dipende esclusivamente dagli input applicatiUna Memoria a sola lettura (Read Only Memory)

memoria immagazzinata permanentementedato un input (indirizzo della ROM) l’output è sempre lo stesso (dato corrispondente all’indirizzo)

Per progettare una ROM serve tavola di verità che, per ogni indirizzo (input) definisce valore di output (parola memorizzata nella ROM)Altezza: numero di elementi indirizzabili

Con n ingressi l’altezza è 2n

Ampiezza: numero di bit di ogni elemento indirizzabileCon m uscite l’ampiezza è m

Queste due dimensioni definiscono la forma di una ROM

Page 20: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

20

39

Progettazione di una ROM

40

Commenti su PLA e ROMNella sintesi con ROM sono fisicamente rappresentati tutti i 2n

termini prodotto che si possono costruire con n variabili di ingressoNella sintesi con PLA intervengono solo i termini prodotto che che sono effettivamente presenti nella espressione della funzione darealizzareIn altre parole

I dispositivi ROM sono completamente decodificatiI dispositivi PLA sono parzialmente decodificati

I dispositivi PLA sono più efficientiI dispositivi ROM sono meno efficienti (la dimensione cresce esponenzialmente con il numero di ingressi), ma di contenuto piùfacilmente modificabile

Page 21: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

21

41

Minimizzazione algebricaEspressione in forma SDP che abbiamo trovato per l’esempio:

Dalle proprietà dell’algebra di Boole segue

Dalla proprietà distributiva (e commutativa):

Allora

CABBCACBAF ++=

)A(ACB)C(CBAF +⋅++⋅=

CABBCACBACBAF +++=

)CAB(CBBAF +=+=

42

Semplificazione (NAND) algebricaData la espressione:

vogliamo trovare una espressione equivalente composta solo da operatori NANDApplichiamo due volte la complementazione:

Applichiamo la legge di De Morgan:

CBBA)CAB(F +=+=

CBBAF +=

CBBAF ⋅=

Page 22: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

22

43

Condizioni di indifferenza (don’t care)In fase di implementazione nascono spesso situazioni in cui è indifferente il valore di qualche uscita

qualche altra uscita ha assunto un valore particolareviene usato un sottoinsieme delle combinazioni di ingresso

Indifferenza in uscita (output don’t care)Uscita indifferente per un dato ingressoSi indica con una X nella casella corrispondenteIl progettista può scegliere il valore

Indifferenza in ingresso (input don’t care)L’uscita dipende solo da alcuni ingressiSi indica con una X nella casella corrispondente

Importanti applicazioni in tecniche di minimizzazione di circuitiKarnaugh …QuineMacCluskey …

44

EsempioFunzione logica con tre ingressi A,B,C, e tre uscite D,E,F, così definita:Se A o C sono veri allora D è vero, indipendentemente da BSe A o B sono veri allora E è vero, indipendentemente da CF è vero se esattamente un ingresso è vero, ma non interessa il valore di F se sia D che E sono veri

Indifferenza in uscita

Page 23: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

23

45

Esempio (continua)

Indifferenza in ingresso

46

Parole chiaveAlgebra booleana Circuiti combinatoriTabelle di veritàLeggi di De MorganOperatori e porte logiche: AND, OR, NOT, NAND, NOR, XORInsiemi di operatori funzionalmente completi e Porte universaliDecodificatore e MultiplexerLogica a due livelli: Somma di prodotti e prodotto di sommePLA – Programmable Logic ArrayROM – Read only memoryMinimizzazione e semplificazioneCondizioni di indifferenza (in ingresso e uscita)

Page 24: Reti logiche (1) - home page | DEI · 1 1 Reti logiche (1) Algebra booleana e circuiti combinatori 2 Un quadro della situazione In particolare gli argomenti qui trattati interessano

24

47

Esercizi(Esercizio B.3) Dimostrare che NAND (da solo!) è un insieme di operatori funzionalmente completo (altrimenti detto operatoreuniversale)

(Esercizio B.4) Dimostrare che NOR (da solo!) è un operatore universaleDimostrare la proprietà associativa per AND e OR

(Esercizio B.8) Dimostrare che le espressioni per la funzione E in forma "somma di prodotti" e "prodotto di somme“ sono equivalenti (sul libro paragrafo B.3 a pag. 750)

(Esercizio B.13) Calcolare la tabella di verità di un multiplexer a due vie (ingressi A,B,S, uscita C) usando le condizioni di indifferenza per semplificare la tabella