Sei sulla pagina 1di 94

CALCOLATORI

ELETTRONICI

RETI LOGICHE

PROGETTAZIONE DI
CIRCUITI COMBINATORI

Corso di Laurea in
Ingegneria Informatica e
delle Telecomunicazioni

Anno Accademico 2016/17


RETI LOGICHE Progettazione di Circuiti Combinatori 2

Circuiti combinatori
Un circuito combinatorio composto da:
un insieme di m ingressi booleani;
un insieme di n uscite booleane;
n funzioni, che trasformano le 2m possibili
combinazioni degli ingressi in unuscita che
dipende soltanto dai valori correnti degli ingressi.

m ingressi booleani Circuito n uscite booleane


Combinatorio
RETI LOGICHE Progettazione di Circuiti Combinatori 3

Progettazione gerarchica
Si riduce la complessit della progettazione
scomponendo il problema:

Si scompone la funzione in parti chiamate blocchi

Ogni blocco scomposto in blocchi pi piccoli, fino a


raggiungere blocchi di una dimensione tale da permettere una
semplice realizzazione

Ogni blocco non pi scomponibile detto blocco primitivo

Linsieme di tutti i blocchi e la loro organizzazione determina una


gerarchia
RETI LOGICHE Progettazione di Circuiti Combinatori 4

Esempio: funzione dispari a 9 bit


(generazione del bit di parit)
X0
X1
X2
X3
X4
Funzione
dispari a Z O
1 Livello: 9 input, 1 uscita
X5 9 ingressi
X6
X7
X8

(a) Simbolo per il circuito


2 Livello: 4 funzioni per la
per la generazione del bit
di parit a 9 ingressi
parit a 3 bit organizzate in
due livelli

3 Livello: 2 funzioni a 2
bit di OR esclusivo

Blocchi Primitivi: 4 porte


NAND a due ingressi

Totale
4 X 2 X 4 = 32 porte
NAND a 2 ingressi
RETI LOGICHE Progettazione di Circuiti Combinatori 5

Esempio: funzione dispari a 9 bit


(generazione del bit di parit)
X0
X1
X2
X3
X4
Funzione
dispari a Z O
1 Livello: 9 input, 1 uscita
X5 9 ingressi
X6 X0 A 0 Funzione
X7
X8

(a) Simbolo per il circuito


X1
X2
A 1 dispari a B O
A2
3 ingressi 2 Livello: 4 funzioni per la
per la generazione del bit
di parit a 9 ingressi
parit a 3 bit organizzate in
due livelli
X3 A0 A0
Funzione Funzione
X4 A 1 dispari a B O A 1 dispari aB O ZO
3 ingressi 3 ingressi
X5 A2 A2

X6 A 0 Funzione 3 Livello: 2 funzioni a 2


X A dispari a B O
3 ingressi bit di OR esclusivo
(b) Circuito scomposto in quattro blocchi (opportunamente
connessi)

per la generazione del bit di parit (pari) a 3 ingressi


Blocchi Primitivi: 4 porte
NAND a due ingressi

Totale
4 X 2 X 4 = 32 porte
NAND a 2 ingressi
RETI LOGICHE Progettazione di Circuiti Combinatori 6

Esempio: funzione dispari a 9 bit


(generazione del bit di parit)
X0
X1
X2
X3
X4
Funzione
dispari a Z O
1 Livello: 9 input, 1 uscita
X5 9 ingressi
X6 X0 A 0 Funzione
X7
X8

(a) Simbolo per il circuito


X1
X2
A 1 dispari a B O
A2
3 ingressi 2 Livello: 4 funzioni per la
per la generazione del bit
di parit a 9 ingressi
parit a 3 bit organizzate in
due livelli
X3 A0 A0
Funzione Funzione
X4 A 1 dispari a B O A 1 dispari aB O ZO
3 ingressi 3 ingressi
X5 A2 A2

X6 A 0 Funzione 3 Livello: 2 funzioni a 2


X7 A 1 dispari a B O
A2
3 ingressi bit di OR esclusivo
X8

(b) Circuito scomposto in quattro blocchi (opportunamente


connessi)

per la generazione del bit di parit (pari) a 3 ingressi


Blocchi Primitivi: 4 porte
A0
A1 BO NAND a due ingressi
A

Totale
4 X 2 X 4 = 32 porte
NAND a 2 ingressi
RETI LOGICHE Progettazione di Circuiti Combinatori 7

Esempio: funzione dispari a 9 bit


(generazione del bit di parit)
X0
X1
X2
X3
X4
Funzione
dispari a Z O
1 Livello: 9 input, 1 uscita
X5 9 ingressi
X6 X0 A 0 Funzione
X7
X8

(a) Simbolo per il circuito


X1
X2
A 1 dispari a B O
A2
3 ingressi 2 Livello: 4 funzioni per la
per la generazione del bit
di parit a 9 ingressi
parit a 3 bit organizzate in
due livelli
X3 A0 A0
Funzione Funzione
X4 A 1 dispari a B O A 1 dispari aB O ZO
3 ingressi 3 ingressi
X5 A2 A2

X6 A 0 Funzione 3 Livello: 2 funzioni a 2


X7 A 1 dispari a B O
A2
3 ingressi bit di OR esclusivo
X8

(b) Circuito scomposto in quattro blocchi (opportunamente


connessi)

per la generazione del bit di parit (pari) a 3 ingressi


Blocchi Primitivi: 4 porte
A0
A1 BO NAND a due ingressi
A2

(c) Circuito per la generazione del bit di parit


a 3 ingressi visto come interconnessione di
blocchi XOR
Totale
4 X 2 X 4 = 32 porte
(d) Blocchi XOR implementati con porte NAND
NAND a 2 ingressi
RETI LOGICHE Progettazione di Circuiti Combinatori 8

Esempio: funzione dispari a 9 bit


(generazione del bit di parit)
X0
X1
X2
X3
X4
Funzione
dispari a Z O
1 Livello: 9 input, 1 uscita
X5 9 ingressi
X6 X0 A 0 Funzione
X7
X8

(a) Simbolo per il circuito


X1
X2
A 1 dispari a B O
A2
3 ingressi 2 Livello: 4 funzioni per la
per la generazione del bit
di parit a 9 ingressi
parit a 3 bit organizzate in
due livelli
X3 A0 A0
Funzione Funzione
X4 A 1 dispari a B O A 1 dispari aB O ZO
3 ingressi 3 ingressi
X5 A2 A2

X6 A 0 Funzione 3 Livello: 2 funzioni a 2


X7 A 1 dispari a B O
A2
3 ingressi bit di OR esclusivo
X8

(b) Circuito scomposto in quattro blocchi (opportunamente


connessi)

per la generazione del bit di parit (pari) a 3 ingressi


Blocchi Primitivi: 4 porte
A0
A1 BO NAND a due ingressi
A2

(c) Circuito per la generazione del bit di parit


a 3 ingressi visto come interconnessione di
blocchi XOR
Totale
4 X 2 X 4 = 32 porte
(d) Blocchi XOR implementati con porte NAND
NAND a 2 ingressi
RETI LOGICHE Progettazione di Circuiti Combinatori 9

Diagramma gerarchico per la funzione


dispari a 9 ingressi
RETI LOGICHE Progettazione di Circuiti Combinatori 10

Riusabilit e CAD
Solitamente, si mira a decomporre una funzione complessa
in blocchi riutilizzabili

Ognuno di questi blocchi :


Testato e ben documentato
Incluso in librerie per un uso futuro

Strumenti Computer-Aided Design:


Creazione del circuito
Simulazione logica
Hardware Description Languages
Verilog and VHDL
Sintesi Logica
Disposizione dei circuiti integrati
RETI LOGICHE Progettazione di Circuiti Combinatori 11

Top-down e Bottom-up
La progettazione top-down procede dalle specifiche di alto
livello, fino ai blocchi elementari, tramite passi di
decomposizione e raffinamento successivo

La progettazione bottom-up procede dai blocchi primitivi,


combinandoli per ottenere funzioni via via pi complesse

La progettazione procede in entrambe le direzioni


Top-down: Cosa vogliamo costruire?
Bottom-up: Come lo vogliamo costruire?

La fase top-down controlla la complessit, mentre quella


bottom-up si occupa dei dettagli
RETI LOGICHE Progettazione di Circuiti Combinatori 12

Il transistor
Interruttore elettronico (Shockley, Brattain, Bardeen, 1947)
Due stati: conduzione, interdizione (acceso, spento)
Altissima densit di integrazione
3-10 M trans/cm2
Altissima velocit (frequenza) di commutazione da uno stato allaltro
500-1300 milioni cicli/secondo (HERTZ)
0.8-2 miliardesimi di secondo
Sostituisce il nucleo magnetico
inizi 70
Base, emettitore, collettore
La base controlla il funzionamento
In presenza di tensione sulla base
la corrente scorre dal collettore
verso lemettitore (conduzione)
In assenza di tensione, non c
passaggio di corrente (interdizione)
RETI LOGICHE Progettazione di Circuiti Combinatori 13

Funzionamento del transistor


Due modi per associare i due valori
binari ai due modi di funzionamento
del transistor

Logica positiva
Associare allo stato di conduzione il
valore binario 1
Associare allo stato di interdizione il
valore binario 0

Logica negativa
Associare allo stato di conduzione il
valore binario 1
Associare allo stato di interdizione il
valore binario 0
RETI LOGICHE Progettazione di Circuiti Combinatori 14

Circuiti integrati
I transistor sono dispositivi di materiale
semiconduttore, silicio o arseniuro di gallio
Transistor e connessioni sono raggruppati
in circuiti integrati (integrated circuit o
chip)
Sono disposti su un wafer di silicio con un
processo litografico
Maschere di integrazione
Densit o scala di integrazione,
numero di transistor per cm2
LSI (low) , MSI (medium), VLSI (very
large), ULSI (ultra large scale
integration)
I chip sono montati tipicamente su
involucri con una doppia fila di pin (dual-
in-line package)
I vari chip sono quindi montati in circuiti
stampati o schede (circuit board)
RETI LOGICHE Progettazione di Circuiti Combinatori 15

Scale di integrazione
Densit o scala di integrazione
numero di transistor per cm2
Oggi: 3-50 M transistor/cm2

Diverse technologie
LSI (low scale integration)
MSI (medium scale integration)
VLSI (very large scale integration)
ULSI (ultra large scale integration)

Un esempio concreto
10 M transistor/cm2 significa disporre
3200x3200 transitor in un quadrato
con 1 cm di lato
I transistor devono distare 0.003 mm
20x pi vicini del pi piccolo
granello di sabbia!
RETI LOGICHE Progettazione di Circuiti Combinatori 16

Parametri implementazione porte logiche


Fan-in numero di ingressi di una porta logica

Fan-out numero di uscite di una porta logica

Livelli logici il valore degli intervalli utilizzati dal segnale per


rappresentare i valori 1 e 0 agli ingressi e alle uscite

Margine di rumore Il massimo livello di rumore tollerato dal circuito

Costo di una porta logica costo associato alla singola porta rispetto al
costo complessivo del circuito

Ritardo di propagazione Il tempo necessario affinch una variazione


sul segnale di ingresso sia propagata sul segnale di uscita

Potenza dissipata la quantit di potenza dissipata da ogni porta logica


RETI LOGICHE Progettazione di Circuiti Combinatori 17

Ritardo di propagazione
INGRESSO

INGRESSO USCITA USCITA

=
Tensione di riferimento: 50% intervallo H-L
tPHL: tempo di propagazione dal livello alto al livello basso (high-to-low
propagation time): tempo tra listante in cui la tensione in ingresso raggiunge
quella di riferimento e listante in cui la tensione di uscita raggiunge la
tensione di riferimento, con OUT che commuta da H a L
tPLH: tempo di propagazione dal livello basso al livello alto (low-to-high
propagation time) : tempo tra listante in cui la tensione in ingresso raggiunge
quella di riferimento e listante in cui la tensione di uscita raggiunge la
tensione di riferimento, con OUT che commuta da L a H
tpd: tempo di propagazione: max(tPHL, tPLH)
RETI LOGICHE Progettazione di Circuiti Combinatori 18

Ritardo di propagazione
Si determinino tPHL, tPLH and tpd
IN (volts)
OUT (volts)

t
1.0 ns per division (ns)
RETI LOGICHE Progettazione di Circuiti Combinatori 19

Modelli di ritardo
Ritardo di trasporto (Transport delay) un
cambiamento nelluscita in risposta ad uno in
ingresso avviene dopo un specifico ritardo di
propagazione

Ritardo Inerziale (Inertial delay) simile al


precedente, tranne che se lingresso cambia in
modo tale da generare un duplice cambiamento
sulluscita in un tempo inferiore al tempo di
rifiuto, il cambiamento non avviene
RETI LOGICHE Progettazione di Circuiti Combinatori 20

Modelli di ritardo
A

B
A B:
Nessun ritardo
a b c d e
Ritardo di Trasporto

Ritardo Inerziale

0 2 4 6 8 10 12 14 16 Tempo (ns)
Ritardo di propagazione= 2.0 ns
Tempo di rifiuto= 1 .0 ns
RETI LOGICHE Progettazione di Circuiti Combinatori 21

Costo
In un circuito integrato:
Il costo di una porta proporzionale allarea del chip
occupata dalla porta stessa

Larea della porta proporzionale al numero e alla


grandezza dei transistor e al numero di connessioni
che li collegano

Trascurando le connessioni, loccupazione della porta


logica proporzionale al numero degli ingressi
RETI LOGICHE Progettazione di Circuiti Combinatori 22

Metodologia di progettazione
1. Definizione delle specifiche

2. Sintesi

3. Ottimizzazione

4. Implementazione

5. Verifica
RETI LOGICHE Progettazione di Circuiti Combinatori 23

Metodologia di progettazione
1. Definizione delle specifiche
Si scrive un documento con le caratteristiche e
funzioni del circuito da realizzare
2. Sintesi
Si ottengono dal passo precedente le tabelle di
verit o le equazioni booleane che definiscono le
relazioni tra ingressi ed uscite del circuito
3. Ottimizzazione
Si applicano le tecniche per lottimizzazione di
circuiti a due livelli o multilivello
Si ottiene lo schema logico (o netlist) per il circuito
ottenuto im termini di porte AND, OR e NOT
RETI LOGICHE Progettazione di Circuiti Combinatori 24

Metodologia di progettazione
4. Implementazione
Si trasforma lo schema logico (o la netlist) in un
nuovo schema che utilizza la tecnologia di
implementazione indicata nelle specifiche
5. Verifica
Si verifica la correttezza funzionale del circuito
finale e della sua aderenza alle specifiche
RETI LOGICHE Progettazione di Circuiti Combinatori 25

Esempio di progettazione
Convertitore da codice BCD a Eccesso-3
1. Definizione delle specifiche
Il circuito deve convertire le rappresentazioni delle cifre decimali
espresse nel codice BCD nelle corrispondenti in codice Eccesso-3
(Il codice Eccesso-3 per una cifra decimale equivalente al valore
binario della cifra aumentata di 3

Parole del codice BCD: stringhe di 4 bit, da 0000 a 1001

Parole del codice Eccesso-3: stringhe di 4 bit che si


ottengono aggiungendo 3 (0011) alla corrispondente
rappresentazione in BCD

Implementazione
Circuito multilivello
Porte NAND
RETI LOGICHE Progettazione di Circuiti Combinatori 26

Esempio di progettazione
Convertitore da codice BCD a Eccesso-3
2. Sintesi
La conversione dei codici a 4-bit pu essere
effettuata con una tabella di verit

Variabili Ingressi: BCD Uscite: Eccesso-3


- BCD: ABCD WXYZ
A,B,C,D 0000 0011
- Eccesso-3 0001 0100
0010 0101
W,X,Y,Z 0011 0110
0100 0111
0101 1000
Non specificazioni 0110 1001
(Dont care) 0111 1010
- BCD: 1000 1011
da 1010 a 1111 1001 1100
RETI LOGICHE Progettazione di Circuiti Combinatori 27

Esempio di progettazione
Convertitore da codice BCD a Eccesso-3
z C y C
3. Ottimizzazione 1
0 1 3
1
2
1
0 1
1
3 2

a. Circuito a 2 livelli 1
4 5 7
1
6
1
4 5
1
7 6

con K-map X X X X B X X X X B
12 13 15 14 12 13 15 14

A 1
8 9
X
11
X
10
A 1
8 9
X
11
X
10

W = A + BC + BD D D
X = BC + BD + B CD
Y = CD + C D x C w C
1 1 1
Z=D 1
0 1 3 2 0

1
1

1
3

1
2

4 5 7 6 4 5 7 6

X X X X B X X X X B
12 13 15 14 12 13 15 14

A 8
1
9
X
11
X
10
A 1
8
1
9
X
11
X
10

D D
RETI LOGICHE Progettazione di Circuiti Combinatori 28

Esempio di progettazione
Convertitore da codice BCD a Eccesso-3

3. Ottimizzazione
b. Rappresentazione multilivello:
W = A + BC + BD
X = BC + B D + BC D
Y = CD + C D
Z= D G = 7 + 10 + 6 + 0 = 23
Estrazione:
T1 = C + D
W = A + BT1
X = BT1 + BC D
Y = CD + C D
Z= D G = 2 + 1 + 4 + 7 + 6 + 0 = 19
RETI LOGICHE Progettazione di Circuiti Combinatori 29

Esempio di progettazione
Convertitore da codice BCD a Eccesso-3

3. Ottimizzazione
b. Circuito multilivello, utilizzando le trasformazioni
T1 = C + D
W = A + BT1
X = BT1 + BC D
Y = CD + C D
Z = D G = 19
Estrazione ( C D= C + D = T1 ):
W = A + BT1
X = B T1 + B T1
Y = CD + T1
Z= D G = 2 +1 + 4 + 6 + 4 + 0 = 16!
RETI LOGICHE Progettazione di Circuiti Combinatori 30

Esempio di progettazione
Convertitore da codice BCD a Eccesso-3
4. Implementazione
Utilizzo di porte NOT, AND a 2 ingressi, OR a 2 ingressi

A
W

B X

C Y
D
Z
RETI LOGICHE Progettazione di Circuiti Combinatori 31

Esempio di libreria di Celle

Typical
Typical Input-to- Basic
Cell Cell Normalized Input Output Function
Name Schematic Area Load Delay Templates

0.04
Inverter 1.00 1.00
1 0.0123 SL

0.05
2NAND 1.25 1.00
1 0.0143 SL

0.06
2NOR 1.25 1.00
1 0.0183 SL
RETI LOGICHE Progettazione di Circuiti Combinatori 32

Implementazione con NAND o NOR


RETI LOGICHE Progettazione di Circuiti Combinatori 33

CHAPTER 2 / COMBINATIONAL LOGICCIRCUITS


Operazioni logiche con porte NAND

NOT X
XX X

X
AND XY ! XY
Y

X
OR X Y! X " Y
Y
RETI LOGICHE Progettazione di Circuiti Combinatori 34
NOT X
XX X
CHAPTER 22 // COMBINATIONAL
CHAPTER COMBINATIONAL LOGICCIRCUITS
LOGICCIRCUITS
Operazioni logiche con porte NOR
X
AND XY ! XY
Y
NOT

XXX LOGICCIRCUITS
XCOMBINATIONAL
NOT2 /X
CHAPTER X X
X

X
X
X
OR
AND
AND X
XY
XYY!
!X
! "Y
XY
XY
NOT X
Y
Y
XX X
Y

X FIGURE2-4
X
AND XY ! XY
OR Y
OR Logical Operations with NAND Gates
XY
X Y!
!X X"
"YY
Y
Y
RETI LOGICHE Progettazione di Circuiti Combinatori 35

Implementazione con NAND (NOR)


Passo 1
Sostituire ogni porta AND o OR con lequivalente circuito costituito da
NAND (NOR)
Passo 2
Eliminare tutte le coppie di NOT (in cascata)
Passo 3
a)Spostare gli invertitori - che si trovano o (i) tra un ingresso al circuito o tra
luscita di una porta NAND (NOR) che pilota il ramo e (ii) un ingresso a una
porta NAND (NOR) pilotata - verso la porta NAND (NOR) pilotata, avendo
cura di eliminare tutte le coppie di invertitori
b)Sostituire un invertitore che pilota n rami in parallelo con n invertitori
ciascuno su ogni ramo
c)Ripetere i due passi precedenti (a-b) fino a quando non si ha, al pi, un
singolo invertitore tra un ingresso al circuito o luscita di una porta NAND
(NOR) che pilota il ramo e la porta NAND (NOR) pilotata
RETI LOGICHE .
Progettazione di Circuiti Combinatori . 36
. .
. .

Implementazione con porte NAND (NOR) .


.
.
.
. .

1. Sostituire AND e OR con porte NAND (NOR)


(a) Mapping e NOT:
to NAND gates

. .
. . . .
N . . .
.
.
.
A N
N O
D
.
.
.
. R .
.
.
.
. . . .

(b) Mapping to NOR gates

2. Ripetere le seguenti azioni fino a quando c al pi


una porta NOT tra: .
.
.
.
.
.

a. lingresso del circuito o luscita di una porta NAND (NOR)


(c) Pushing an inverter through a dot
b. e la porta NAND (NOR) pilotata.
(d) Canceling inverter pairs
. .
. .
. .
FIGURE 3-3
Mapping of AND Gates, OR Gates, and Inverters to
RETI LOGICHE Progettazione di Circuiti Combinatori 37

Implementazione NAND
RETI LOGICHE Progettazione di Circuiti Combinatori 38

Implementazione NOR
A A
B
B
2
X
F 1
C F
C
3
D
D
E
(a) A E
(b)
B

C
F

D
E
(c)
stituting the expression for T in the equations for W, X, and Y, we have
RETI LOGICHE Progettazione di Circuiti Combinatori 39
W " A ! B( C ! D ) " A ! BC ! BD
Esempio di progettazione
B( C ! D ) ! Bda
X " Convertitore (C D) " BCBCD
codice ! BD
a! BC D
Eccesso-3
Implementazione convertitore da codice BCD a Eccesso-3 con
porte NAND
nput Output A Input
W
CD Excess-3 INV
BCD E
NAND2
NAND2
B C D W X Y Z T A B C D W

0 0 0 0 1 1 NAND2 0 0 0 0
0 1 0 1 0 0 B
INV
0 0 0 1
1 0 0 1 0 1 NAND2 X 0 0 1 0
NAND2
1 1 0 1 1 0 0 0 1 1
0 0 0 1 1 1 C
INV
NAND2 0 1 0 0
0 1 1 0 0 0 D 0 1 0 1 1
INV
1 0 1 0 0 1 Y 0 1 1 0 1
NAND2
1 1 1 0 1 0 0 1 1 1 1
NAND2
0 0 1 0 1 1 1 0 0 0 1
Z
0 1 1 1 0 0 1 0 0 1 1
RETI LOGICHE Progettazione di Circuiti Combinatori 40

Verifica
Verifica si dimostra che il circuito implementato
rispetta le specifiche

Le specifiche possono essere:


Tabelle di verit
equazioni booleane
Codice HDL
RETI LOGICHE Progettazione di Circuiti Combinatori 41

Metodi di verifica
Analisi logico-funzionale manuale
Si determinano le equazioni booleane o le tabelle di verit del
circuito finale
Si confrontano con le specifiche e se ne dimostra lequivalenza

Simulazione
Si simula il circuito con lausilio di un calcolatore
Si verifica il comportamento del circuito per tutti i possibili ingressi
Z= D
RETI LOGICHE Progettazione di Circuiti Combinatori 42
Substituting the expression for T in the equations for W, X, and Y, we have

Verifica: Analisi Manuale


W " A ! B( C ! D ) " A ! BC ! BD
X " B( C ! D ) ! B( C D) " BC ! BD ! BC D

Ingressi
Input Uscite
Output A Input
Ingressi Output
Uscite
W
BCD Eccesso-3
Excess-3 INV
BCD
BCD Excess-3
Eccesso-3
NAND2
NAND2
A B C D W X Y Z T A B C D W X Y Z

0 0 0 0 0 0 1 1 NAND2 0 0 0 0 1
0 0 0 1 0 1 0 0 B
INV
0 0 0 1
0 0 1 0 0 1 0 1 NAND2 X 0 0 1 0 1 1
NAND2
0 0 1 1 0 1 1 0 0 0 1 1 1 1
0 1 0 0 0 1 1 1 C
INV
NAND2 0 1 0 0 1
0 1 0 1 1 0 0 0 D 0 1 0 1 1
INV
0 1 1 0 1 0 0 1 Y 0 1 1 0 1 1
NAND2
0 1 1 1 1 0 1 0 0 1 1 1 1 1
NAND2
1 0 0 0 1 0 1 1 1 0 0 0 1 1
Z
1 0 0 1 1 1 0 0 1 0 0 1 1

(a)
Specifiche (b) (c)
Circuito
FIGURE 9 risultante
Verification: BCDtoExcess-3 Code Converter
RETI LOGICHE Progettazione di Circuiti Combinatori 43
COMBINATIONAL LOGIC DESIGN

Verifica: Analisi Manuale


the circuit. Points typically selected are those at which a gate output drives two or
more gate inputs. Such points are often referred to as fan-out points. Fan-out points
from a single inverter on an input typically would not be selected. The determina-
tion of logic equations for a circuit is illustrated using the BCDtoexcess-3 code
Convertitore BCD a Eccesso-3
converter circuit designed in previous sections.
Si determina la SOP del circuito finale
EXAMPLE 6 Manual Verification of BCDtoExcess-3 Code Converter
Si Figure
determinano le original
9 shows (a) the tabelle di table
truth verit e si confrontano
specification, (b) the final NAND-
mapped circuit implementation, and (c) an incomplete truth table to be com-
pleted from the implementation and then compared to the original truth table.
The truth table values are to be determined from Boolean equations for W, X, Y,
Equazioni booleane:
and Z derived from the circuit. The point T is selected as an intermediate variable
to simplify the analysis:

T " CD " C !D (Per T si veda la slide precedente)

W " A ( T # B ) " A ! BT
X " ( BT ) ( BC D) " B # T ! BT

Y " CD ! T
Z= D
Substituting the expression for T in the equations for W, X, and Y, we have
W " A ! B( C ! D ) " A ! BC ! BD
RETI LOGICHE Progettazione di Circuiti Combinatori 44

Verifica: analisi manuale

Input BCD Output Eccesso-3


ABCD WXYZ
0000 0011
0001 0100
0010 0101
0011 0110
0100 0111
0101 1000
0110 1001
0111 1010
1000 1011
1001 1100
Le tabelle corrispondono!
RETI LOGICHE Progettazione di Circuiti Combinatori 45
" B( C ! D ) ! B( C D) " BC ! BD ! BC D
Verifica: Simulazione
Output A Input Outp
W
Excess-3 INV
BCD Exce
NAND2
NAND2
D W X Y Z T A B C D W X

0 0 0 1 1 NAND2 0 0 0 0
1 0 1 0 0 B
INV
0 0 0 1
0 0 1 0 1 NAND2 X 0 0 1 0 1
NAND2
1 0 1 1 0 0 0 1 1 1
0 0 1 1 1 C
INV
NAND2 0 1 0 0
1 1 0 0 0 D 0 1 0 1 1
INV
0 1 0 0 1 Y 0 1 1 0 1
NAND2
1 1 0 1 0 0 1 1 1 1
NAND2
0 1 0 1 1 1 0 0 0 1
Z
1 1 1 0 0 1 0 0 1 1

(a) (b) (c)


RETI LOGICHE Progettazione di Circuiti Combinatori 46

Verifica: Simulazione
Forma donda con tutti i possibili ingressi

INPUTS
INGRESSO

A
B
C
D

0 50 ns 100 ns

Sono presenti tutte le combinazioni che vogliamo verificare


(cio da 0000 a 1001)?
RETI LOGICHE Progettazione di Circuiti Combinatori 47

Verifica: Simulazione
Forma donda con tutti i possibili ingressi

INPUTS
INGRESSO

A
B
C
D

0 50 ns 100 ns

A B C D
Segnale L L L L
Valore Logico 0 0 0 0
RETI LOGICHE Progettazione di Circuiti Combinatori 48

Verifica: Simulazione
Forma donda con tutti i possibili ingressi

INPUTS
INGRESSO

A
B
C
D

0 50 ns 100 ns

A B C D
Segnale L L L H
Valore Logico 0 0 0 1
RETI LOGICHE Progettazione di Circuiti Combinatori 49

Verifica: Simulazione
Forma donda con tutti i possibili ingressi

INPUTS
INGRESSO

A
B
C
D

0 50 ns 100 ns

A B C D
Segnale L L H L
Valore Logico 0 0 1 0
RETI LOGICHE Progettazione di Circuiti Combinatori 50

Verifica: Simulazione
Forma donda con tutti i possibili ingressi

INPUTS
INGRESSO

A
B
C
D

0 50 ns 100 ns

A B C D
Segnale L L H L
Valore Logico 0 0 1 1
RETI LOGICHE Progettazione di Circuiti Combinatori 51

Verifica: Simulazione
Forma donda con tutti i possibili ingressi

INPUTS
INGRESSO

A E cos via
B
C
D

0 50 ns 100 ns

A B C D
Segnale L H L L
Valore Logico 0 1 0 0
RETI LOGICHE Progettazione di Circuiti Combinatori 52

Verifica: Simulazione
Fino allultimo
Forma donda con tutti i possibili ingressi ingresso che
ci interessa
verificare
INPUTS
INGRESSO

A
B
C
D

0 50 ns 100 ns

A B C D
Segnale H L L H
Valore Logico 1 0 0 1
RETI LOGICHE Progettazione di Circuiti Combinatori 53

Verifica: Simulazione
Forma donda con tutti i possibili ingressi

Fine
INPUTS
INGRESSO

A
B
C
D

0 50 ns 100 ns
RETI LOGICHE Progettazione di Circuiti Combinatori 54

Verifica: Simulazione
Simuliamo per 120 ns

INPUTS
INGRESSO

A
B
C
D
OUTPUTS
USCITA

W
X
Y
Z

0 50 ns 100 ns

Luscita corrisponde con le tabelle di verit delle specifiche?


RETI LOGICHE Progettazione di Circuiti Combinatori 55

Funzioni e blocchi funzionali


Queste funzioni sono quelle molto utili nel processo
di progettazione

Ad ogni funzione corrisponde limplementazione di un


circuito combinatorio che viene chiamata blocco
funzionale

Nel passato, molti di questi blocchi funzionali erano


implementati come circuiti integrati SSI, MSI e LSI

Oggi, essi sono parte di circuiti integrati VLSI molto


pi complessi
RETI LOGICHE Progettazione di Circuiti Combinatori 56

Funzioni e blocchi funzionali


Funzioni logiche elementari Sintesi di funzioni
booleane:
Usando decodificatori
Abilitatori / Disabilitatori
Usando multiplexer

Decodificatori

Codificatori

Multiplexer

Demultiplexer
RETI LOGICHE Progettazione di Circuiti Combinatori 57

Funzioni logiche elementari


TA B L E 4-1
Funzioni di una sola F unctions of O ne Variable
variabile X
X F=0 F=XF= X F=1
1. Assegnazione (a,b)
2. Trasferimento (c) 0 0 0 1 1
3. Negazione (d) 1 0 1 0 1
Possono essere utilizzate
per variare luscita di
blocchi funzionali V CC or V DD

1 F 5 1 F 5 1 X F 5 X
(c)

0 F 5 0 F 5 0
X F 5 X

(a) (b) (d)


RETI LOGICHE Progettazione di Circuiti Combinatori 58

Funzioni multibit
Multi-bit Examples:
A F3 A
3 2
1 F2 1 2 4 4 2:1 F(2:1)
F F
0 F1 0 1
0 (c)
A F0 A
(a) (b) 3
4 3,1:0 F(3), F(1:0)
Si utilizza una linea spessa per indicare
F
un bus, ovvero un vettore di segnali (d)
(b) F = (F3, F2, F1, F0) un bus.
Il bus pu essere diviso nei suoi singoli bit, come mostrato in (b).
Sottoinsiemi di bit possono essere separati dal bus, come mostato
in (c) per i bit 2 e 1 di F.
I bit che costituiscono linsieme scelto possono anche non essere
contigui, come mostrato in (d) per i bit 3, 1, e 0 di F.
RETI LOGICHE Progettazione di Circuiti Combinatori 59

Abilitazione (enabling)
Labilitazione permette la propagazione di un segnale di
ingresso in uscita

La disabilitazione blocca un segnale di ingresso,


rimpiazzandolo con un valore prefissato

Il valore delluscita quando il circuito disabilitato pu


essere 0 o 1
X
F
EN
Quando disabilitato, uscita 0 (a)
Quando disabilitato, uscita 1
X
F
EN

(b)
RETI LOGICHE Progettazione di Circuiti Combinatori 60

Decodifica
Decodifica la conversione di un codice di ingresso ad n
bit ad un codice di uscita a m bit, con
n m 2n tale che ogni parola del codice valida produce
un codice univoco di uscita.

I circuiti che eseguono la decodifica sono chiamati


decodificatori (decoder)

I blocchi funzionali per la decodifica:


sono chiamati decodificatori n-m, con m 2n, e
generano 2n (al pi) mintermini per le n variabili di
ingresso
RETI LOGICHE Progettazione di Circuiti Combinatori 61

Esempi decodificatori
Decodificatore 1-2 A D0 D1
D 0 5 A
0 1 0
1 0 1 A D 1 5 A

(a) (b)
Decodificatore 2-4
A0
A1 A0 D0 D1 D2 D3
A1
0 0 1 0 0 0 D 0 5 A 1 A 0
0 1 0 1 0 0
1 0 0 0 1 0
1 1 0 0 0 1 D 1 5 A 1 A 0

(a)
D 2 5 A 1 A 0
Si noti che il decodificatore 2-4
composto da due decodificatori
D 3 5 A 1 A 0
1-2 e 4 porte AND.
RETI LOGICHE Progettazione di Circuiti Combinatori 62

Espansione in serie di Decoder


possibile costruire un decodificatore con un numero qualsiasi
di ingressi n e 2n uscite

La costruzione parte dalle uscite e procede allindietro

Le porte AND di uscita sono pilotate da due decodificatori che


differiscono al massimo di uno nel numero degli ingressi

Questi decodificatori sono progettati utilizzando la stessa


procedura, fino a che non si arriva a decodificatori 2-1

Questa procedura si pu facilmente adattare anche ai casi


incui il numero di uscite non pari a 2n
RETI LOGICHE Progettazione di Circuiti Combinatori 63

Espansione in serie di Decoder- Esempio 1


Decodificatore 3-8
Numero di uscite (AND) = 8
Numero di ingressi per i decoder che pilotano le
porte AND = 3
Divisione pi possibile equa
Decodificatore 2-4
Decodificatore 1-2

Decodificatore 1-2
Numero di uscite (AND) = 4
Numero di ingressi per i decoder che pilotano le porte AND =
2
Divisione pi possibile equa
Due decodificatori 1-2
RETI LOGICHE Progettazione di Circuiti Combinatori 64

Espansione in serie di Decoder- Esempio 1


4 porte AND 8 porte AND
a 2 ingressi a 2 ingressi

Decodificatore
2-4

Decodificatori 1-2

Decodificatore 3-8
RETI LOGICHE Progettazione di Circuiti Combinatori 65

Espansione in serie di decoder- Esempio 2


Decodificatore 6-64
Numero di uscite (AND) = 64
Numero di ingressi per i decoder che pilotano le
porte AND = 6
Divisione pi possibile equa
Decodificatore 3-8
Decodificatore 3-8

Si completa con i gi visti decodificatori 3-8


RETI LOGICHE Progettazione di Circuiti Combinatori 66

Espansione in serie di decoder- Esempio 2


3-5 / Decoding 131

4 porte AND a 2 ingressi 64


4 2-input ANDs 88
porte AND aANDs
2-input 2 ingressi 64porte AND aANDs
2-input 2 ingressi

A0 D0

2-to-4-Line decoder
Decodificatore 2-4

A1

3-to-8-Line decoder
Decodificatore 3-8
A2 .
.
44
porte AND aANDs
2-input 2 ingressi 88
porte AND aANDs
2-input 2 ingressi .

A3
2-to-4-Line decoder
Decodificatore
Decodificatore 2-4
2-4

A4

3-to-8-Line decoder
Decodificatore
Decodificatore 3-8
3-8 D63
A5
6-to-64-Line decoder
Decodificatore 6-64

FIGURE 3-15
RETI LOGICHE Progettazione di Circuiti Combinatori 67

Espansione in serie di decoder- Esempio 3


Decodificatore 7-128
Numero di uscite (AND) = 128
Numero di ingressi per i decoder che pilotano le porte
AND = 7
Divisione pi possibile equa
Decodificatore 4-16
Decodificatore 3-8

Decodificatore 4-16
Numero di uscite (AND) = 16
Numero di ingressi per i decoder che pilotano le porte AND = 2
Divisione pi possibile equa
Due decodificatori 2-4

Si completa con i gi visti decodificatori 3-8 e 2-4


RETI LOGICHE Progettazione di Circuiti Combinatori 68

Decodificatori con abilitazione


In generale, si aggiungono abilitatori alle uscite
Si osservi la tabella di verit:
Si noti luso delle X per denotare sia 0 che 1
Le combinazioni che contengono due X rappresentano 4
combinazioni binarie
In alternativa, si pu considerare come la distribuzione del
segnale di abilitazione (EN) alle uscite del codificatore
EN
In questo caso, questo circuito A 1

chiamato demultiplexer A 0
D0

EN A1 A0 D0 D1 D2 D3 D1

0 X X 0 0 0 0
1 0 0 1 0 0 0 D2
1 0 1 0 1 0 0
1 1 0 0 0 1 0
D3
1 1 1 0 0 0 1
RETI LOGICHE Progettazione di Circuiti Combinatori 69

Espansione in serie di Decoder- Esempio 1


Decodificatore 3-8

Ingressi Uscite

A0 A1 A2 D0 D1 D2 D3 D4 D5 D6 D7

DEC-1 DEC-0
RETI LOGICHE Progettazione di Circuiti Combinatori 70

Espansione in serie di Decoder- Esempio 1

Decodificatore 2-4

DEC-0
Decodificatore
Decodificatore 2-4 2-4

DEC-1
RETI LOGICHE Progettazione di Circuiti Combinatori 71

Codifica
La codifica lopposto della decodifica - converte
un codice a m bit in un codice a n bit, con n m
2n, tale che ogni codice valido in ingresso produce
un codice di uscita
I circuiti che compiono la codifica sono i codificatori
(encoder)
Un codificatore ha 2n (al pi) ingressi e n uscite
che corrispondono al codice binario degli ingressi
Di solito, un codificatore converte un codice in cui
ogni parola contiene esattamente un solo bit a 1
nella rappresentazione binaria della posizione in
cui l1 appare
RETI LOGICHE Progettazione di Circuiti Combinatori 72

Esempio di codificatore
Codificatore da decimale a BCD
Ingressi: 10 bits, uno per ogni cifra decimale da 0 a 9, (D0, ,
D 9)
Uscite: 4 bit che rappresentano un codice BCD
Funzione: Se lingresso Di 1, allora luscita (A3, A2, A1, A0) il
codice BCD di i

Si pu ottenere la tabella di verit del codificatore, o


direttamente le equazioni booleane che ne
rappresentano le uscite
RETI LOGICHE Progettazione di Circuiti Combinatori 73

Esempio di codificatore
Lingresso Di sar presente nellequazione che rappresenta
Aj se luscita Aj 1 nel codice BCD i.

Equazioni booleane delle uscite:


A3 = D8 + D9
A2 = D4 + D5 + D6 + D7
A1 = D2 + D3 + D6 + D7
A0 = D1 + D3 + D5 + D7 + D9

F1 = D6 + D7 pu essere estratto da A2 e A1? Produce una


diminuzione del costo del circuito?
RETI LOGICHE Progettazione di Circuiti Combinatori 74

Codificatori con priorit


Se pi di un ingresso pari a 1, allora il codificatore
non avr il comportamento voluto

Un codificatore che pu accettare tutte le possibili


combinazioni ai suoi ingressi e produrre risultati validi
chiamato codificatore con priorit.

Si definisce una priorit tra gli ingressi e il


codificatore selezioner soltanto lingresso con
priorit pi elevata con valore pari a 1, producendo il
corrispondente codice per quella posizione
RETI LOGICHE Progettazione di Circuiti Combinatori 75

Codificatori con priorit: esempio


Codificatore con priorit a 5 ingressi (D4, D3, D2, D1, D0) priorit pi elevata
per lingresso corrispondente al bit pi significativo pari a 1 Uscita: A2, A1,
A0 e V, con V che indica se almeno un ingresso pari a 1

No. di Min- Ingressi Uscite


termini/ D4 D3 D2 D1 D0 A2 A1 A0 V
Righe
1 0 0 0 0 0 X X X 0
1 0 0 0 0 1 0 0 0 1
2 0 0 0 1 X 0 0 1 1
4 0 0 1 X X 0 1 0 1
8 0 1 X X X 0 1 1 1
16 1 X X X X 1 0 0 1

Le X rappresentano 0 o 1; quindi, le righe delle tabella corrispndono a


prodotti di temini, piuttosto che di mintermini. La colonna a sinistra mostra
che tutti i 32 mintemini sono presenti nei termini prodotto indicati in tabella
RETI LOGICHE Progettazione di Circuiti Combinatori 76

Codificatori con priorit: esempio


Si potrebbe utilizzare una K-map per ottimizzare, ma
anche possibile leggere direttamente le equazioni dalla
tabella precedente e ottimizzarle manualmente

A2 = D4
A1 = D4D3 + D4D3 D2 = D4 F1, F1 = (D3 + D2)
A0 = D4D3 + D4 D3D2 D1 = D4 (D3 +D2 D1)
V = D4 + F1 + D1 + D0
RETI LOGICHE Progettazione di Circuiti Combinatori 77

Selezione
La selezione di dati unoperazione critica nei
sistemi digitali
I circuiti che effettuano la selezione devono
avere:
Un insieme A di informazioni in ingresso da cui
selezionare quella di interesse
Una singola uscita
Un insieme di linee di controllo per effettuare la
selezione
Questi circuiti sono chiamati multiplexers
RETI LOGICHE Progettazione di Circuiti Combinatori 78

Multiplexer
Un multiplexer seleziona delle informazioni da una
linea di ingresso e le ridirige ad una linea di uscita

Un tipico multiplexer ha:


n ingressi di controllo (Sn - 1, S0) chiamati ingressi di
selezione
2n ingressi (I2n - 1, I0)
una uscita Y

Un multiplexer pu essere progettato per avere m


ingressi con m < 2n e n ingressi di selezione
RETI LOGICHE Progettazione di Circuiti Combinatori 79

Multiplexer 2-1
Poich 2 = 21, n = 1
La variabile di selezione S pu assumere due
valori:
S = 0 seleziona lingresso I0
S = 1 seleziona lingresso I1
Equazione:
Y = S I0 + SI1 Decoder
Enabling
Circuits

I0
Y
S
I1
RETI LOGICHE = SI0 + diSICircuiti
YProgettazione 1 Combinatori 80

Multiplexer
TABLE 3-7 2-1
Truth Table for 2to1-Line Multiplexer
S I0 I1 Y

0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0 3-7 / Selecting 141
1 0 1 1
1 1 0 0
1
Decoder 1 Enabling 1 1 I
Circuits 0 0
Y
I0
Y I1 1

I1
S
RETI LOGICHE Progettazione di Circuiti Combinatori 81

Multiplexer 2-1
Si notino le parti del multiplexer mostrato:
Decodificatore 1-2
2 circuiti di abilitazione
1 porta OR a 2 ingressi

Per espandere i multiplexer, si combinano circuiti di


abilitazione e porte OR in un circuito 2 x 2 AND-OR:
Decodificatore 1-2
Matrice AND-OR 2 x 2

In generale, per un multiplexer 2n-1:


Decodificatore n-2n
Matrice AND-OR 2n x 2
RETI LOGICHE Progettazione di Circuiti Combinatori 82

Esempio: Multiplexer 4-1


Decodificatore 2-22
Matrice AND-OR 22 x 2

Decoder
S1

4 3 2 AND-OR
S0
Decoder
S1

S0
I0

I1
Y

I2

I3
RETI LOGICHE Progettazione di Circuiti Combinatori 83

Espansione di Multiplexer
Seleziona vettori di bit piuttosto che bit
Utilizza istanze multiple di 2n x 2 AND-OR in
parallelo

Esempio:
Multiplexer
quadruplo 4-1
RETI LOGICHE Progettazione di Circuiti Combinatori 84

Demultiplexer
E un circuito digitale che esegue Demultiplexer 1-4
loperazione inversa a quella
del Multiplexer. S1 S0 D0 D1 D2 D3
0 0 IE0 0 0 0
Un demultiplexer riceve
0 1 0 IE0 0 0
linformazione da 1 singola linea 1 0 0 0 IE0 0
(I0) di ingresso e la trasmette a 1 1 0 0 0 I0
E
una delle 2n possibili linee di I0
uscita, con n il numero delle linee
di selezione (S0 - Sn-1).

La selezione dello specifico


output controllata da una
combinazione delle n linee di
selezione.
RETI LOGICHE Progettazione di Circuiti Combinatori 85

Demultiplexer
E un circuito digitale che esegue Demultiplexer 1-4
loperazione inversa a quella
del Multiplexer. S1 S0 D0 D1 D2 D3
0 0 IE0 0 0 0
Un demultiplexer riceve ATTENZIONE!
0 1 0 IE0 0 0
linformazione da 1 singola linea 1 0 0 0 IE0 0
Un(I )demultiplexer
0 di ingresso e 1-2
n identico ad un decodificatore
la trasmette a 1 1 0 n-2
0 n con
0 I0
E
abilitazione,
una delle 2inn cui labilitazione
possibili linee dicorrisponde alla linea dati (I0) del
I0
demultiplexer
uscita, con n eil numero
gli n ingressi
delle del decodificatore con le n linee di
linee
controllo (Sn-1, (S
di selezione ,0 -SS0)n-1
del). multiplexer.

La selezione dello specifico


output controllata da una
combinazione delle n linee di
selezione.
RETI LOGICHE Progettazione di Circuiti Combinatori 86

Sintesi con decoder


Un decoder con n ingressi di selezione produce i 2n
mintermini relativi a tale insieme di variabili

Una funzione booleana di n variabili espressa in forma


SOP pu immediatamente essere implementata con un
decoder n - 2n e una porta OR esterna ai cui ingressi si
connettono le uscite del decoder corrispondenti ai
mintermini della funzione
RETI LOGICHE Progettazione di Circuiti Combinatori 87

Esempio
Circuito sommatore a 3 bit S(X,Y,Z)=m(1,2,4,7)
C(X,Y,Z)=m(3,5,6,7)
Tabella di verit
Implementazione usando un
Decodificatore 3-8 e due porte OR esterne
Ingressi Uscite

Decodificatore
3-8
RETI LOGICHE Progettazione di Circuiti Combinatori 88

Esempio
Circuito sommatore a 3 bit S(X,Y,Z)=m(1,2,4,7) = m1 + m2 + m4 + m7
C(X,Y,Z)=m(3,5,6,7)
Tabella di verit
Implementazione usando un
Decodificatore 3-8 e due porte OR esterne
Ingressi Uscite

Decodificatore
3-8

Si collegano le uscite corrispondenti ai


mintermini della funzione con la porta OR
che la realizza
RETI LOGICHE Progettazione di Circuiti Combinatori 89

Sintesi con multiplexer


La sintesi di reti combinatorie usando decoder richiede
luso di porte OR (o NAND) esterne

Un MUX include tali porte e quindi consente una


implementazione pi compatta

Un MUX n-1 consente di implementare una funzione


booleana di n variabili, usando le n-1 variabili pi
significative come ingressi di selezione e la rimanente
variabile meno significativa come ingresso dati
Progettazione di Circuiti Combinatori 90 - RETI LOGICHE

Esempio 1
F(X,Y,Z)=m(1,2,6,7)

I0

I1

I2

I3
Progettazione di Circuiti Combinatori 91 - RETI LOGICHE

Esempio 1
F(X,Y,Z)=m(1,2,6,7)

I0

I1

I2

Si divide la funzione F in parti composte da 2 I3


righe.
Progettazione di Circuiti Combinatori 92 - RETI LOGICHE

Esempio 1
F(X,Y,Z)=m(1,2,6,7)

I0

I1

I2

Si divide la funzione F in parti composte da 2 I3


righe. Per ogni blocco, il valore della funzione
potr essere pari a quello dellultima variabile
(Z), oppure al suo negato (Z), oppure a 1 o a 0
Progettazione di Circuiti Combinatori 93 - RETI LOGICHE

Esempio 1 Le prime variabili (X,Y), verranno utilizzate


come selettori del multiplexer, mentre le linee
dati dello stesso saranno opportunamente
collegate poste a 0 o 1 o collegate alla
F(X,Y,Z)=m(1,2,6,7) variabile Z in forma diretta o negata

00=0, seleziona la
prima (I0) linea dati

01=1, seleziona la
seconda (I1) linea
dati
10=2, seleziona la I0
terza (I2) linea dati

I1
11=3, seleziona la
quarta (I3) linea
dati I2

I3
Si noti lordine!
Progettazione di Circuiti Combinatori 94 - RETI LOGICHE

Esempio 2
F(A,B,C,D)=m(1,3,4,11,12,13,14,15)

Potrebbero piacerti anche