84
05EKL 05EKL - - Progetto di Circuiti Progetto di Circuiti Digitali Digitali Tutore: Federico Quaglio Tutore: Federico Quaglio [email protected] [email protected] 011 011 - - 564 4004 ( 564 4004 ( 4004 4004 ) )

049KL-Progetto di Circuiti Digitali - Corsi di Laurea a ...corsiadistanza.polito.it/corsi/pdf/05EKDN/intro_reti_logiche.pdf · Introduzione alle Reti Logiche. Sommario

Embed Size (px)

Citation preview

05EKL05EKL--Progetto di Circuiti Progetto di Circuiti DigitaliDigitali

Tutore: Federico QuaglioTutore: Federico [email protected]@polito.it

011011--564 4004 (564 4004 (40044004))

Introduzione alle Reti LogicheIntroduzione alle Reti Logiche

Sommario

• Richiami di algebra booleana• Mappe di Karnaugh• Coperture SP & PS• Alee statiche e loro minimizzazione• Circuiti sequenziali semplici• Ulteriori Circuiti

Algebra Booleana

• Negazione o inversione: NOT • A={0,1} B=NOT(A)= =A’={1,0}• Tabella di Verità: Simbolo:

A BA B0 10 11 01 0

( )

A

Algebra Booleana

• Prodotto logico: AND; • C=A*B=AB• Tavola di verità: Simbolo:

A B U A B U 0 0 00 0 00 1 00 1 01 0 01 0 01 1 11 1 1

•• C = 1 C = 1 A=B=1A=B=1

Algebra Booleana

• Somma logica: OR; • C=A+B• Tavola di Verità: Simbolo:

A B U A B U 0 0 00 0 00 1 10 1 11 0 11 0 11 1 11 1 1

•• C = 0 C = 0 A=B=0A=B=0

Algebra Booleana

• OR Esclusivo: EXOR;•

• Tavola di Verità: Simbolo:A B U A B U 0 0 00 0 00 1 10 1 11 0 11 0 11 1 01 1 0

• Comparatore di DISUGUAGLIANZA

BABABAC ⊕=⋅+⋅=

Algebra Booleana

• NAND (AND Negata):•

• Tavola di verità: Simbolo:A B U A B U 0 0 10 0 10 1 10 1 11 0 11 0 11 1 01 1 0

• C=0 A=B=1

ABC =

Algebra Booleana

• NOR (OR Negata): •

• Tavola di Verità: Simbolo:A B U A B U 0 0 10 0 10 1 00 1 01 0 01 0 01 1 01 1 0

• C = 1 A=B=0

BAC +=

Algebra Booleana

• EXNOR (EXOR Negata);•

• Tavola di Verità: Simbolo:A B U A B U 0 0 10 0 10 1 00 1 01 0 01 0 01 1 11 1 1

• Comparatore di UGUAGLIANZA

BABABAC ⊕=⋅+⋅=

• NAND, NOR SONO GATE UNIVERSALI• Si possono ricavare tutte le altre funzioni

logiche a partire da essi• Es (con NAND):

Algebra Booleana

Algebra Booleana

Proprietà fondamentali:A*0=0; A+1=1; A*A=A; A+A=AA*(NOT(A))=0; A+(NOT(A))=1A+B=B+A; A*B=B*A(A+B)+C=A+(B+C);(A*B)*C=A*(B*C)A+A*B=A; A*(A+B)=A; A+NOT(A)*B=A+B; A*(NOT(A)+B)=A*BNOT(A+B)=NOT(A)*NOT(B)NOT(A*B)=NOT(A)+NOT(B)NOT(NOT(A))=A

Minimizzazione di Funzioni Logiche• Somma di Prodotti (SP)

• f(A,B,C)=(A*B*C)+(A’BC)+ etc…• In tabella di verità identifico i prodotti degli ingressi

che hanno uscita ‘1’ e li sommo• Ingresso a ‘1’ Considerato “dritto”• Ingresso a ‘0’ Considerato “negato”

• Prodotti di Somme (PS)• f(A,B,C)=(A+B+C)(A’+B+C)etc…• In tabella di verità identifico le somme che danno

uscita ‘0’ e le moltiplico• Ingresso a ‘0’ Considerato “dritto”• Ingresso a ‘1’ Considerato “negato”

Minimizzazione di Funzioni Logiche

• Ottengo rappresentazione in forma canonica

• Minimizzo funzione usando proprietà dell’algebra Booleana• Funzione minima

Minimizzazione di Funzioni Logiche• Esempio (SP):

Tabella di veritàA B C U0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 01 0 1 11 1 0 11 1 1 1

BCAI =1

CBAI =2CABI =3

ABCI =4

ABCCABCBABCA

IIIIU

+++=

=+++= 4321

Minimizzazione di Funzioni Logiche

• Riduzione a espressione minima

( )( ) ( )

( )( ) BCACABABCAB

BABCABCBABCAB

CBAACBCBACACB

CABCBABCCABCBAAABC

ABCCABCBABCAIIIIU

++=++==++=++=

=++=++=

=++=+++=

=+++=+++= 4321

Sommario

• Richiami di algebra booleana• Mappe di Karnaugh• Coperture SP & PS• Alee Statiche e loro minimizzazione• Circuiti sequenziali semplici• Ulteriori circuiti

Mappe di Karnaugh

• Servono a minimizzare espressioni logiche• Copertura a Somma di Prodotti (SP)

f(A,B,C)=(A*B*C)+(A’BC)+ etc…• Copertura a Prodotti di Somme (PS)

f(A,B,C)=(A+B+C)(A’+B+C)etc…

Mappe di Karnaugh

• Metodo grafico molto veloce• Adatto per minimizzazione manuale• Complessità esponenziale con numero di

variabili di ingresso• Al massimo fino a 5-6 ingressi

Mappe di Karnaugh0

0

1

1

XY

XY00 01 11 10

0

1

W

00 01 11 10

00

01

11

10

XYWZ

0 2

1 3

0 2 6 4

1 3 7 5

0

1

3

2

4

5

7

6

12 8

13 9

15 11

14 10

U=…

U=…

U=…

Mappe di Karnaugh

00 01 11 10

00

01

11

10

XYWZ 00 01 11 10

V=0 V=1

0

1

3

2

4

5

7

6

12

13

15

14 10

11

9

8 16

17

19

18

20

21

23

22

28

29

31

30 26

27

25

24

Da tabella di verità a Mappa di Karnaugh

• Tabella di veritàA B C U0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 01 0 1 11 1 0 11 1 1 1

• MappaAB

C 00 01 11 10

0

17 5

4

3

62

1

01

11 1

0 0 0

0

U

Regola per la copertura

• Iniziare a coprire gli ‘1’ (o gli ‘0’) non ancora coperti

• Massimizzare il “CUBO” includendo il maggior numero di ‘1’ (o ‘0’) in celle “Adiacenti”

• Celle sono Adiacenti c’è la variazione di UN SOLO ingresso

Regola per la copertura

• Esempi celle adiacenti:

00 01 11 10

00

01

11

10

XYWZ 00 01 11 10

00

01

11

10

XYWZ

Regola per la copertura

• Esempi celle adiacenti:

00 01 11 10

00

01

11

10

XYWZ 00 01 11 10

00

01

11

10

XYWZ

Regola per la copertura

• Esempi celle adiacenti:

00 01 11 10

00

01

11

10

XYWZ

Regola per la copertura

• Esempi celle adiacenti:

00 01 11 10

00

01

11

10

XYWZ 00 01 11 10

V=0 V=1

Esempio di copertura

AB

C 00 01 11 10

0

17 5

4

3

62

1

01

11 1

0 0 0

0

AB

BC AC

Mappe particolari

111

03

17

015

010

12

06

114

09

113

18

11

05

00

14

012

C,D 00 01 11 10

00

01

11

10

A,B

11

03

00

12

0 1

0

1

A

B

EXOR

05

17

14

11

03

00

12

06

A,B

00 01 11 10

0

1

C

Copertura SP

• Si coprono gli ‘1’• Rimangono solo ingressi che non sono

“variati” dentro uno stesso cubo• Ingresso vale ‘1’ Compare in uscita il

suo valore diretto (A)• Ingresso vale ‘0’ Compare in uscita il

suo valore negato (A’)

Copertura PS

• Si coprono gli ‘0’• Comportamento duale a copertura SP

• Se ingresso ‘0’ ingresso preso “dritto”• Se ingresso ‘1’ ingresso è negato

Esempio di rete combinatoriaTabella di verità

# A B C D U

0 0 0 0 0 1 1 0 0 0 1 12 0 0 1 0 03 0 0 1 1 04 0 1 0 0 15 0 1 0 1 16 0 1 1 0 17 0 1 1 1 18 1 0 0 0 09 1 0 0 1 1

10 1 0 1 0 011 1 0 1 1 012 1 1 0 0 013 1 1 0 1 114 1 1 1 0 015 1 1 1 1 1

Mappa di Karnaugh

19

11

15

113

011

03

17

115

010

02

16

014

08

10

14

012

C,D 00 01 11 10

00

01

11

10

A,B

Copertura minima SP

BD

19

11

15

113

011

03

17

115

010

02

16

014

08

10

14

012

A,BC,D 00 01 11 10

00

01

11

10

A,B A’C’

C’D

A’B

DCBDCABAU +++=

Copertura minima SP

Copertura minima SPA,BA,B

A’+D19

11

15

113

011

03

17

115

010

02

16

014

08

10

14

012

C,D 00 01 11 10

00

01

11

10

B+C’

( )( )CBDAU ++=

Copertura minima SP

Esempio

0 0

0 1

0 0

1 0

0 1

0 0

1 0

0 0

00 01 11 10

00

01

11

10

XYWZ

0 0

0 0

0 0

1 0

1 0

1 0

1 0

0 0

00 01 11 10V=0 V=1

Esempio

0 0

0 1

0 0

1 0

0 1

0 0

1 0

0 0

00 01 11 10

11

XYWZ

00

01

10

0 0

0 0

0 0

1 0

1 0

1 0

1 0

0 0

00 01 11V=0 V=1

10

YZVI =1

XYZI =2

WYXVI =3

WYXVXYZYZVU ++=

Sommario

• Richiami di algebra booleana• Mappe di Karnaugh• Coperture SP & PS• Alee Statiche e loro minimizzazione• Circuiti sequenziali semplici• Ulteriori circuiti

Esempio:

• Sia data la tabella di verità:

A B C U0 0 0 00 0 1 00 1 0 10 1 1 01 0 0 01 0 1 11 1 0 11 0 1 1

• Dalla mappa di Karnaugh si ricava

15

17

04

01

03

00

12

16

A,B

00 01 11 10

0

1

CBC’

AC

U=AC+BC’

Rete Combinatoria ottenuta

U

A

B

C

Comportamento ideale: porte logiche con ritardi nulli

C

B

A

C’

AC

BC’

U

Porte con ritardi non nulli

• Supponiamo che le porte abbiano tempi di propagazione diversi.

• Ad esempio:

U

A

B

C

t_AND1 = 2 ns

t_AND2 = 1 ns

Comportamento del circuito

C

B

A

C’

AC

BC’

Ut_AND2

t_AND2

t_AND1

Transizione spuria

Analisi del comportamento

• I diversi tempi di ritardo causano transizioni spurie (“Glitch”)

• Sono dovuti al fatto che nella funzione logica non considero variazioni simultanee di + segnali

• Transizioni spurie causano anche maggiore dissipazione di potenza

• Per minimizzarne l’effetto si inserisce altra logica che mantiene fissi i segnali

• Non ho più funzioni minime

Copertura Hazard-Free

• Inserisco anche i “cubi” che coprano variazioni contemporanee di + segnali

• Esempio

15

17

04

01

03

00

12

16

A,B

00 01 11 10

0

1

CBC’

AC

AB

Cubo Aggiunto

U=AB+AC+BC’

Sommario

• Richiami di algebra booleana• Mappe di Karnaugh• Coperture SP & PS• Alee Statiche e loro minimizzazione• Circuiti sequenziali semplici• Ulteriori circuiti

Concetti preliminari

• Circuiti digitali sono costituiti da una parte di “elaborazione” (Rete combinatori”) ed una parte di controllo e temporizzazione(“Parte sequenziale”)

Concetti Preliminari

• Le uscite dei circuiti sequenziali dipendono: dagli ingressi attuali, ma anche dagli INGRESSI PASSATI

• Sono cioè circuiti con MEMORIA • Il circuito si trova in uno STATO

PRESENTE• Evolverà in uno STATO FUTURO

Concetti Preliminari

• Un circuito sequenziale generico sarà costituito da (modello di Huffman)

CalcoloUscite e

Stato

R

Ingressi Uscite

Stato

Futuro

Stato

Presente

(interno)

Elemento di ritardo

Concetti preliminari

• Tipi principali di circuiti sequenziali:• Circuiti Asincroni: lo stato può cambiare in

ogni istante (in base a ritardi intrinseci porte)• Circuiti Sincroni: lo stato può cambiare

solo in corrispondenza di un segnale di cadenza

Concetti preliminari

• La maggioranza dei circuiti integrati digitali progettati sono “CIRCUITI SINCRONI”

• Esiste un segnale di cadenza (chiamato spesso “clock”) che “valida” e sincronizza i segnali considerati

• Esempio:

Dato Valido

Concetti preliminari

• I segnali devono mantenersi “stabili” a seguito di un “fronte” del segnale di cadenza

• Si devono inserire dei circuiti logici che memorizzino lo stato dei segnali

Concetti preliminari

• L’elemento di memorizzazione/ritardo si può ricondurre ad un anello di inverter

1

1

0

0

Il dato memorizzato non si può

modificare!!!

Concetti preliminari• Al fine di “inserire” valori dall’esterno le

NOT si possono sostituire con porte che possono “simulare” lo stesso comportamento:• NAND oppure NOR

1

1

0

0

1

1

Latch SR

Latch e flip-flop D

FLIP-FLOP D

• Tabella di verità:

RST CK D Q_n QN_n

0 - - 0 1 1 0 0 1

1 1 1 0

D Q

QNCK

RST

Tempistica del Flip-Flop• Il dato D è “campionato” sul “fronte di salita” del

clock• Se D varia durante tale fronte cosa succede?

CLK

D

Q

Oscillazione dell’uscita di durata non predicibilea priori METASTABILITA’

Tempistica del Flip-Flop• Metastabilità è dovuta alla presenza di un punto quasi-

stabile (“metastabile”) nella transcaratteristica ingresso-uscita dell’anello di inverter

• Se campiono ingresso con valore vicino a quel punto impiego del tempo per “risolvere” metastabilità

• Più campiono vicino a punto metastabile, più lungo sarà il tempo con uscita non definita

Punto Metastabile

Tempi di set-up e hold

• Per evitare metastabilità dato deve essere “stabile” prima e dopo fronte del clock

• Tempo min. per cui dato deve essere stabile prima del clock tempo di set-up (t_su)

• Tempo min. per cui dato deve essere stabile dopo il clock tempo di hold (t_h)

CLK

Dt_su

t_h

Flip-Flop T

• Se ingresso T=‘1’ l’uscita Q varia, alternandolo, il suo valore ad ogni colpo di CLK (“toggle”)

• Si dimezza la frequenza di clock

T Q

QNCK

RST

• Tabella di verità:RST CK T Q_n QN_n

0 - - 0 1 1 0 Q_n-1 QN_n-1

1 1 QN_n-1 Q_n-1

Flip-Flop J-K• Tabella di verità:

RST CK J K Q_n QN_n

0 - - - 0 1 1 0 0 Q_n-1 QN_n-1

1 0 1 0 1

1 1 0 1 0

1 1 1 QN_n-1 Q_n-1

J Q

QN

CK

RST

K

Registri

• Affiancando n flip-flop D si ottiene un registro• Esempio Registro a 4 bit:

D Q

D Q

D Q

D Q

R4 4

Calcolo Frequenza Massima

• Identifico i percosi combinatori che collegano elementi sequenziali (cammini tra FF)

• Sommo i ritardi di propagazione delle porte combinatorie e del FF da cui esce un segnale

• Sommo il tempo di set-up del FF a cui segnale arriva

• Se ho percorsi paralleli che si ricongiungono considero il tempo massimo

Calcolo Frequenza Massima

• Esempio

U

A

B

C

D U

D U

D U

t ck -> U

t ck -> U t P (AND)

t P (AND)

t P (NOT)

t P (OR)t SU

Calcolo Frequenza Massima

• Percorso 1:

U

A

B

C

D U

D U

D U

t ck -> U

t ck -> U t P (AND)

t P (AND)

t P (NOT)

t P (OR)t SU

( ) ( ) SUORPANDPUck ttttT +++= → 1

ns ns ns ns ns 1342251 =+++=T

Calcolo Frequenza Massima• Percorso 2:

U

A

B

C

D U

D U

D U

t ck -> U

t ck -> U t P (AND)

t P (AND)

t P (NOT)

t P (OR)t SU

( ) ( ) SUORPANDPUck ttttT +++= → 2

ns ns ns ns ns 1342252 =+++=T

Calcolo Frequenza Massima

• Percorso 3:

U

A

B

C

D U

D U

D U

t ck -> U

t ck -> U t P (AND)

t P (AND)

t P (NOT)

t P (OR)t SU

( ) ( ) ( ) SUORPANDPNOTPUck tttttT ++++= → 3

ns ns ns ns ns ns 5.134225.053 =++++=T

Calcolo Frequenza Massima

• Percorso 4:

U

A

B

C

D U

D U

D U

t ck -> U

t ck -> U t P (AND)

t P (AND)

t P (NOT)

t P (OR)t SU

( ) ( ) SUORPANDPUck ttttT +++= → 4

ns ns ns ns ns 5.1342254 =+++=T

Calcolo Frequenza Massima• Periodo Minimo di clock richiesto:

U

A

B

C

D U

D U

D U

t ck -> U

t ck -> U t P (AND)

t P (AND)

t P (NOT)

t P (OR)t SU

( ) ns 5.13,,,max 34321min === TTTTTT

MHz 07,741

minmax ==

Tf

Sommario

• Richiami di algebra booleana• Mappe di Karnaugh• Coperture SP & PS• Alee Statiche e loro minimizzazione• Circuiti sequenziali semplici• Ulteriori circuiti

Multiplexer

• Seleziona tra n ingressi• Necessita di log2(n) segnali di selezione• Esempio MUX a 2 ingressi:

MUX

A

B

SEL

U

Multiplexer

• Funzione logica

SELBSELAU ⋅+⋅=

Multiplexer

• Con i MUX e porte NOT si possono realizzare qualsiasi funzione logica

• Es:

( )

BABAABAAA

ABAAU

+==+=+=

=⋅+⋅=

Driver Tri-State

• Si utilizzano per pilotare bus biderezionali

• Presentano un ingresso di abilitazione “enable” (EN)

• Se è attivo uscita corrisonde ad ingressi

• Se è disattivato uscita è in Alta Impedenza (HiZ)

• Tabella di verità

EN A OUT

0 0 00 1 11 - HiZ

A OUT

EN

Shift Register

• Serie di flip-flop D in cui l’uscita di 1 corrisponde all’ingresso del successivo

• Esempio Shith Register a 4 bit

D Q D Q D Q D QDin

CLK

Sincronizzatore

• Metastabilità non si può eliminare completamente, ma si può cercare di ridurre

• Tale problema è molto più evidente per gli ingressi provenienti dall’esterno che variano + lentamente

CLK

D

Sincronizzatore

• Si possono far passare gli ingressi in una catena di flip-flop

• Si riduce notevolmente la probabilità di entrare in metastabilità

Contatore

• “Conta” un numero 2 di colpi di clock (n è il numero di flip-flop utilizzati)

• Esempio Contatore UP modulo 8 (3 flip-flop)

n

CLK

D Q D Q D Q

Logica di conteggio

OUT

Esempio progetto logica di conteggio

• Analizziamo andamento delle uscite:

000 001 010 011 …

• L’ultimo bit varia ad ogni colpo di clock• Comportamento tipo flip-flop T (“toggle”)• Lo realizziamo:

T

QN

Q‘1’

Esempio:

• Usiamo flip-flop T:

• Uscita Q varia quando ingresso è ‘1’• Da tabella di verità T1=Q0 • Da tabella di verità: T2=Q0*Q1• Fine conteggio (TC): TC=Q0*Q1*Q2

TQN

Q1

Esempio:

Q

QN

T ‘1’Q

QN

TQ

QN

T

TC U2 U1 U0