Sei sulla pagina 1di 124

Il progetto dei circuiti logici

M. Sonza Reorda
Politecnico di Torino
Dip. di Automatica e Informatica
1

Sommario

Introduzione
Progetto a livello di porte logiche
Progetto a livello registri
Progetto a livello sistema

Introduzione
Un sistema una collezione di oggetti (componenti)
connessi a formare unentit omogenea con una ben
precisa funzionalit.
La funzione svolta dal sistema determinata da:
funzioni svolte dai componenti
modo in cui i componenti sono connessi (topologia).
Un circuito un particolare tipo di sistema.

Sistemi digitali
Verranno presi in considerazione i sistemi per
lelaborazione delle informazioni, che agiscono su
un insieme di dati A e producono un insieme di
dati B.
Si assume che i dati in A e in B siano quantit
discrete (sistema digitale) corrispondenti a valori
rappresentati su bit.

Esempi di sistemi digitali


Circuito digitale "semplice" (centinaia o migliaia di transistor)
- Contatore
- Sommatore
Circuito digitale complesso (milioni di transistor)
- Microprocessore
- Memoria
System on Chip o SoC (miliardi di transistor)
Scheda
- Combinazione di diversi circuiti
Sistema di elaborazione complesso
- PC
- automobile

Centro di elaborazione dati

Diagramma a blocchi
Permette di descrivere in modo semplice la struttura di un
sistema, modellando mediante un grafo:
vertici componenti
archi linee per il trasferimento di dati tra componenti.

x1

AND

Memoria

CPU

NOT

OR

x1 EXOR x2

NOT

Bus

AND

x2

Periferici

Struttura / comportamento
Struttura = Diagrammi a blocchi senza informazioni
funzionali
Comportamento = Funzione di trasformazione dai dati
in ingresso A a quelli in uscita B.

Progetto
Siano dati:
un sistema da realizzare, di cui noto il
comportamento e una serie di altre specifiche
una serie di componenti, di cui noto il
comportamento e una serie di altre caratteristiche.
Lattivit di progetto consiste nell'individuare una
connessione di componenti tale per cui
il comportamento globale sia quello desiderato
le specifiche (tra cui il costo) siano soddisfatte.
8

Specifiche
Possono includere specifici vincoli su parametri
quali
la velocit
il consumo di potenza
laffidabilit
la durata
ecc.

Costo
Il costo che si cerca di minimizzare nel progetto
solitamente una combinazione pesata del costo per
il progetto
la produzione
la manutenzione.

10

Ciclo di vita di un prodotto


Si compone tipicamente di 4 fasi:
Specifica
- Si passa dallidea ad un documento (o altro) che
descrive il comportamento del sistema e i vincoli per il
progetto
Progetto
- Si passa dalle specifiche ad un modello utilizzabile da
chi produce il sistema
Produzione
- Si passa dal modello ad un prodotto
Operativit
11

- Il prodotto operativo.

Ciclo di vita di un prodotto


Si compone tipicamente di 4 fasi:
Specifica
- Si passa dallidea ad un documento (o altro) che
descrive il comportamento del sistema e i vincoli per il
progetto
Progetto

12

- Si passa dalle specifiche ad un modello utilizzabile da


chi produce il sistemaPrima di passare alla fase successiva

fondamentale
verificare
la
Produzione
correttezza di quanto sviluppato fino
a quel
punto.
- Si passa dal modello ad
un prodotto
Pi si va avanti, pi il costo per
Operativit
riparare eventuali errori cresce.
- Il prodotto operativo.

Modello del sistema


Lattivit di progetto strettamente dipendente da
quella di modellamento, attraverso cui ci che si
vuole realizzare viene descritto formalmente
utilizzando un appropriato modello.
Sul modello spesso possibile eseguire una serie di
verifiche (ad esempio tramite simulazione) prima
della realizzazione fisica.

13

Progetto gerarchico
di solito eseguito in maniera top-down. Nella pratica spesso
si combinano tecniche top-down con altre bottom-up.
Linee guida:
i componenti possono corrispondere ad entit fisiche
(circuiti integrati, schede, ecc.) o a moduli predefiniti (ad
esempio appartenenti ad una libreria)
ogni componente deve essere il pi indipendente possibile,
in modo da poter essere sviluppato o modificato in
maniera indipendente
in molti casi il progettista conosce le funzioni e le
caratteristiche di un modulo, senza conoscere i dettagli
sulla sua implementazione (black box).

14

Livello di progetto
definito dal tipo dei componenti utilizzati in ciascuna
fase del progetto.
Un componente ad un certo livello corrisponde ad un
insieme di componenti al livello inferiore.
Il progetto dei sistemi elettronici pu avvenire a diversi
livelli:
elettrico
transistor (o switch)
porte logiche (o gate)
registri
sistema.
15

Livelli sistema, registri


e porte logiche
Sono i livelli ai quali un sistema elettronico viene visto
mano a mano che si procede nel flusso di progetto topdown.
Livello
Sistema

Componenti

Unit di dato

CPU, processori di IO, Blocchi di parole

Unit di tempo
10-3103s

memorie
Register

Registri, reti combinatorie,

Parole

10-910-6s

Bit

10-1010-8s

Reti sequenziali semplici


Porte

16

Porte logiche, flip flop

Flusso di progetto
Il progetto di un sistema avviene normalmente
tramite literazione ai vari livelli delle stesse
operazioni:
definizione delle specifiche (tramite opportuno
formalismo)
sintesi (manuale o automatica)
verifica (attraverso simulazione o altro).

17

Se si segue lapproccio top-down, il risultato del


progetto ad un livello spesso costituisce
direttamente linsieme delle specifiche per il livello
inferiore.

Sistemi combinatori e sequenziali


Un sistema pu essere:
combinatorio, se i valori delle sue uscite
dipendono esclusivamente dai valori applicati
sui suoi ingressi in quellistante.
Esempio: sommatore
sequenziale, se i valori delle uscite dipendono
sia dai valori correnti degli ingressi, sia dai
valori applicati negli istanti precedenti.
Esempio: contatore
18

Sistemi combinatori
Il valore delle uscite ad un certo istante dipende
esclusivamente dal valore degli ingressi in
quellistante.
Il comportamento di un sistema combinatorio pu
essere descritto attraverso
una tavola di verit, che specifica per ogni
combinazione di ingresso la corrispondente
combinazione di uscita, oppure
la funzione booleana implementata dalle uscite.
19

Esempio
Si consideri il sistema che
implementa
un
codificatore
prioritario a 3 bit, in grado di
generare sulluscita x lindice del
bit di ingresso avente valore 1 e
indice massimo:
if(a==1)
x=3;
else if(b==1)
x=2;
else if(c==1)
x=1;
else
x=0;
20

a
b
c

x0
x1

Esempio (II)
Il comportamento del sistema pu essere descritto
come tavola di verit o come funzione booleana:
a
0
0
0
0
1
1
1
21 1

b
0
0
1
1
0
0
1
1

c
0
1
0
1
0
1
0
1

x1
0
0
1
1
1
1
1
1

x0
0
1
0
0
1
1
1
1

Funzione
booleana

x1 = a + b
x 0 = a + bc

Tavola di verit

Sistemi sequenziali
La risposta di un sistema sequenziale in un qualsiasi
istante dipende da
valori X applicati in quellistante agli ingressi del
sistema
storia passata del sistema stesso, che viene di solito
codificata dallo stato Y del sistema.
In genere lo stato del sistema non direttamente
osservabile dallesterno.

22

Formati di descrizione
La descrizione di un sistema sequenziale pu
assumere 3 forme:
tavola degli stati/uscite
diagramma degli stati/uscite
funzione di transizione degli stati e funzione
delle uscite.

23

Esempio
Si consideri un sistema avente un ingresso I e
unuscita O.
Il sistema campiona con una frequenza prefissata
lingresso I.
Luscita O assume il valore 1 se durante i 3 istanti di
campionamento precedenti lingresso I ha assunto i
valori 101, e assume il valore 0 diversamente.

24

Variabile di stato
Poich deve memorizzare quanto necessario
relativamente alla storia passata del sistema, in
prima battuta potrebbe memorizzare i valori
assunti da I negli ultimi 3 istanti di
campionamento
Quindi la variabile di stato pu assumere 8
possibili valori
possibile dimostrare che sono sufficienti 5
valori.
25

Diagramma degli stati/uscite

0
0
A0
0

26

B0
1

C0
1

D1

E0

Diagramma degli stati/uscite


In questo caso luscita
dipende esclusivamente dallo
stato in cui si trova il sistema.
Quindi associata al vertice.

0
0
A0
0

27

B0
1

C0
1

D1

E0

Diagramma degli stati/uscite


Nel caso pi generale le
uscite dipendono dallo stato
in cui si trova il sistema e dal
valore degli ingressi.
Quindi le uscite sono
associate agli archi.

0
0
A0
0

28

B0
1

C0
1

D1

E0

Tavola degli stati/uscite


Stato corrente

29

Ingresso

Stato futuro

Uscita

Funzione di transizione
Siano X, Y e Z tre spazi associati alle variabili di ingresso,
di stato e di uscita, rispettivamente.
La funzione di
trasformazione

transizione

effettua

la

seguente

f: X x Y Y x Z
Per poter esprimere f come funzione booleana
necessario eseguire preventivamente lassociazione tra i
simboli che identificano gli stati e la rispettiva
rappresentazione booleana.
30

Esempio: funzione di transizione


in forma simbolica
f(0,A) A,0
f(1,A) B,0
f(0,B) C,0
f(1,B) B,0
f(0,C) A,0
f(1,C) D,0
f(0,D) E,1
f(1,D) B,1
f(0,E) A,0
31

f(1,E) D,0

Macchina a Stati Finiti


Un sistema sequenziale anche noto come
Macchina a Stati Finiti (Finite State Machine o
FSM)
Le FSM possono essere
- FSM
di
Moore:
luscita
esclusivamente dallo stato

dipende

- FSM di Mealy: luscita dipende dallo stato e


dal valore corrente dellingresso.

32

Livello elettrico
Il sistema viene modellato come interconnessione di
componenti (quali resistori, condensatori, induttori,
etc.) connessi tra loro in serie o parallelo.
Il calcolo dei valori di corrente e tensione nei diversi
punti (a regime o nel transitorio) comporta la
risoluzione di un sistema di equazioni differenziali.
Sul mercato esistono vari pacchetti SW (ad es.
SPICE) in grado di simulare circuiti di dimensioni
comunque ridotte.
33

Sta al progettista trovare un soddisfacente


compromesso tra precisione e tempo di calcolo.

Esempio
possibile modellare il comportamento di un
transistor attraverso opportuni modelli, tra cui il
seguente (noto come modello di Giacoleto):

34

Livello transistor
Il sistema viene visto come uninterconnessione di transistor,
considerati come interruttori pilotati dal segnale di base.
A seconda della tecnologia utilizzata (PMOS o NMOS) il
transistor chiuso/aperto quando il segnala di base ha una
tensione inferiore/maggiore ad una certa soglia.
In ogni caso, la velocit di commutazione di un transistor
dellordine dei nanosecondi.

base

collettore

emettitore

35

Tensioni/valori logici
In un circuito elettronico
comune associare i valori logici
(0/1) alle tensioni (alta/bassa).

Vmax

Tale operazione richiede


fissare

V1,min

di

una soglia per discriminare


le tensioni alte da quelle
basse
una fascia di tensioni
proibita, per evitare gli
effetti del rumore.
36

Valore logico 1

Vsoglia

Valori proibiti

V0,max
Valore logico 0

Inverter NMOS

Vcc

Se Vin<Vsoglia:
Vout

base

Vin

37

collettore

emettitore

Vout=Vcc
Se Vin>Vsoglia:
Vout=Vground

Buffer PMOS

Vcc

Se Vin>Vsoglia:
Vout

base

Vin

38

collettore

emettitore

Vout=Vcc
Se Vin<Vsoglia:
Vout=Vground

Inverter CMOS
Integra la tecnologia NMOS con
quella PMOS.
C sempre un transistor aperto
ed uno chiuso.
In questo modo non c mai un
collegamento tra alimentazione
e massa, e si riduce il consumo.

39

Vcc

Vin

Vout

Porte logiche
Utilizzando i transistor possibile implementare
una qualsiasi porta logica.
quindi possibile costruire una libreria di porte
logiche utilizzabili per il progetto al livello
superiore.

40

Livello porte logiche


A questo livello i componenti sono le porte logiche (gate).
Per questa ragione anche noto come livello logico.
Le porte logiche sono elementi operanti su variabili binarie
che possono assumere i due valori 0 e 1.
Le informazioni trattate a questo livello sono segnali binari;
idealmente, ogni linea del circuito pu cio assumere 2 soli
valori di tensione, corrispondenti ai 2 valori logici 0 e 1.

41

Porte logiche (I)


Compongono i circuiti combinatori.
Linsieme delle porte logiche utilizzate formato dai seguenti
componenti
AND

NAND
x1

x1

z
x2

z = x1x2 = x1 x2
42

x2

z = x1x2 = x1 x2

Porte logiche (II)


NOR

OR
x1

x1
z
x2

z = x1 +x2 = x1 x2

43

z
x2

z = x1 +x2 = x1 x2

Porte logiche (III)


EXOR

EXNOR

x1

x1
z

x2

z = x1 x2

44

z
x2

z = x1 x2

Porte logiche (IV)


NOT
x

z=x

45

Implementazione
delle porte logiche tramite transistor
Vcc
Vcc

Vout

Vout
V1
V1

V2

46

Porta NAND

V2

Porta NOR

Insieme di porte completo


Un insieme di tipi di porte logiche si dice completo se utilizzando i
soli tipi di porte in esso contenuti si pu realizzare qualsivoglia
funzione combinatoria.
Sono insiemi completi:
{NAND}
{NOR}
{AND, NOT}
{OR, NOT}
{AND, OR, NOT}
Nella pratica sono frequenti i circuiti che implementano una
funzione combinatoria utilizzando le sole porte NAND (o NOR).
47

Circuiti combinatori
Implementano funzioni combinatorie.
Una funzione combinatoria una trasformazione
z: Bn B,
dove B={0,1}.
Le funzioni combinatorie non coinvolgono il tempo (a differenza
di quelle sequenziali) e possono essere descritte (se il numero di
variabili piccolo) attraverso tavole di verit.
I circuiti combinatori possono essere implementati attraverso
opportune combinazioni di porte logiche.

48

Circuiti combinatori
ben formati
Si dicono Circuiti Combinatori Ben Formati (ccbf) i circuiti
combinatori che soddisfano le seguenti regole:
una singola linea o una singola porta un ccbf
la giustapposizione di 2 ccbf un ccbf
se C1 e C2 sono due ccbf, il circuito ottenuto connettendo un
insieme di linee di uscita di C1 ad un insieme di linee di
ingresso di C2 un ccbf
se xi ed xj sono due linee di ingresso ad un ccbf, il circuito
ottenuto connettendo insieme xi ed xj un ccbf
non sono presenti cicli.
49

Circuiti combinatori
ben formati
Si dicono Circuiti Combinatori Ben Formati (ccbf) i circuiti
combinatori che soddisfano le seguenti regole:
una singola linea o una singola porta un ccbf
la giustapposizione di 2 ccbf un ccbf
se C1 e C2 sono due ccbf, il circuito ottenuto connettendo un
insieme di linee di uscita di C1 ad un insieme di linee di
ingresso di C2 un ccbf
se xi ed xj sono due linee di ingresso ad un ccbf, il circuito
ottenuto connettendo insieme xi ed xj un ccbf
non sono presenti cicli.
50

Circuiti combinatori
ben formati
Si dicono Circuiti Combinatori Ben Formati (ccbf) i circuiti
combinatori che soddisfano le seguenti regole:
una singola linea o una singola porta un ccbf
la giustapposizione di 2 ccbf un ccbf
se C1 e C2 sono due ccbf, il circuito ottenuto connettendo un
insieme di linee di uscita di C1 ad un insieme di linee di
ingresso di C2 un ccbf
se xi ed xj sono due linee di ingresso ad un ccbf, il circuito
ottenuto connettendo insieme xi ed xj un ccbf
non sono presenti cicli.
51

Circuiti combinatori
ben formati
Si dicono Circuiti Combinatori Ben Formati (ccbf) i circuiti
combinatori che soddisfano le seguenti regole:
una singola linea o una singola porta un ccbf
la giustapposizione di 2 ccbf un ccbf
se C1 e C2 sono due ccbf, il circuito ottenuto connettendo un
insieme di linee di uscita di C1 ad un insieme di linee di
ingresso di C2 un ccbf
se xi ed xj sono due linee di ingresso ad un ccbf, il circuito
ottenuto connettendo insieme xi ed xj un ccbf
non sono presenti cicli.
52

Circuiti combinatori
ben formati
Si dicono Circuiti Combinatori Ben Formati (ccbf) i circuiti
combinatori che soddisfano le seguenti regole:
una singola linea o una singola porta un ccbf
la giustapposizione di 2 ccbf un ccbf
se C1 e C2 sono due ccbf, il circuito ottenuto connettendo un
insieme di linee di uscita di C1 ad un insieme di linee di
ingresso di C2 un ccbf
se xi ed xj sono due linee di ingresso ad un ccbf, il circuito
ottenuto connettendo insieme xi ed xj un ccbf
non sono presenti cicli.
53

Circuiti combinatori
ben formati
Si dicono Circuiti Combinatori Ben Formati (ccbf) i circuiti
combinatori che soddisfano le seguenti regole:
una singola linea o una singola porta un ccbf
la giustapposizione di 2 ccbf un ccbf
se C1 e C2 sono due ccbf, il circuito ottenuto connettendo un
insieme di linee di uscita di C1 ad un insieme di linee di
ingresso di C2 un ccbf
se xi ed xj sono due linee di ingresso ad un ccbf, il circuito
ottenuto connettendo insieme xi ed xj un ccbf
non sono presenti cicli.
54

Esempio di circuito ben formato

55

Fanin
il numero di segnali in ingresso ad una porta.

Fanout
il numero di altre porte pilotate dalluscita di
una porta.
56

Questa porta ha
fanin= 2
fanout = 1.

Esempio di circuito ben formato

Questa porta ha
fanin= 2
fanout = 2.

Questa porta ha
fanin= 3
fanout = 1.
57

Progetto di circuiti combinatori


Pu essere eseguito partendo dalla tabella di
verit
Per ogni riga corrispondente ad un valore 1 in
uscita si inserisce nel circuito una porta AND
Gli ingressi della porta sono affermati o negati
a seconda del valore nella riga
Le uscite della porta AND alimentano una
porta OR.

58

Esempio


59

Equivalenza di reti logiche


Due circuiti diversi (e due espressioni diverse)
possono corrispondere alla stessa tabella di
verit
In tal caso
- la funzione svolta la stessa
- i due circuiti (e le due funzioni) si dicono
equivalenti.

60

Esempio (II)
La derivazione della seconda forma dalla prima
pu essere ottenuta applicando le regole
dellalgebra booleana.

61

Algebra booleana
definita sui seguenti elementi ed operatori:
elementi: 0, 1
operatori: AND (), OR (+), NOT ( )
assiomi: (Postulati di Huntington)
chiusura:

K={0,1}

a K , b K ab K , a + b K

identit: a+0=a, a 1=a


commutativit: a+b=b+a, a b=b a
distributivit: a(b+c)=a b+a c, a+(b c)=(a+b) (a+c)
inverso:
62

aa = 0, a + a = 1

Leggi dellalgebra booleana


Associativit:
a+(b+c)=(a+b)+c
a(bc)=(ab)c
Idempotenza:
a+a=a
aa=a
De Morgan:

a + b = ab
ab = a + b

Involuzione:

a=a
63

Minimizzazione
Dovendo implementare il circuito combinatorio
corrispondente ad una tavola di verit data,
preferibile identificare quello con costo minimo, ad
esempio in termini di minimo numero di porte.

64

Progetto di circuiti combinatori


minimi
Consiste nellindividuare quel circuito combinatorio che:
realizza le funzioni booleane corrispondenti alla tavola di
verit data
soddisfa determinati vincoli quali:
la profondit del circuito minore di un certo valore
il numero di porte utilizzate minimo
il fanin massimo minore di un certo valore
il fanout massimo minore di un certo valore.

65

Circuiti a 2 livelli
Una soluzione comune al problema del progetto dei circuiti
combinatori rappresentata dai circuiti a 2 livelli.
Il metodo di Quine-McCluskey permette di passare dalla tavola
di verit ad un circuito minimo a 2 livelli.
Esso consiste nel trasformare la tavola di verit in una
espressione booleana di uno dei 2 tipi seguenti:
somma di prodotti

f ( x 1 , x 2 , ..., x n ) =

i1

x i 2 ... x in

prodotto di somme

f ( x 1 , x 2 , ..., x n ) =
66

x
i

i1

+ x i 2 + ... + x in

Circuiti a 2 livelli (II)


Se tutte le variabili di ingresso sono disponibili affermate o
negate, tali espressioni sono direttamente trasformabili in circuiti
a 2 livelli composti esclusivamente da porte AND e OR.
Esempio
La funzione svolta da un sommatore a 2 bit pu essere scritta
come
c0=x0c1+y0c1+x0y0
che si pu trasformare nel circuito seguente:

67

Circuiti a 2 livelli (III)

x0
y0
c1

c0

c0=x0c1+y0c1+x0y0
68

Circuiti a 2 livelli (IV)

x0
y0
c1

Utilizzando la legge di De Morgan:


69

c0

c0 = x0c1 y0c1 x0 y0

Terminologia

letterale

xi

70

x 1 + x 2 + ... + x n

cubo

x 1 x 2 ... x n

minterm

maxterm

x i ... x j ... x k

Terminologia
Corrisponde a x o x
i

letterale

xi

71

x 1 + x 2 + ... + x n

cubo

x 1 x 2 ... x n

minterm

maxterm

x i ... x j ... x k

Canonicit
Qualsiasi funzione booleana possiede due possibili forme
canoniche:
come somma di prodotti, ove tutti i prodotti sono cubi
come prodotto di somme.

72

Costruzione circuito minimale


Un circuito combinatorio si dice minimale se vera una delle
seguenti condizioni (tra loro equivalenti):
il circuito composto dal minimo numero possibile di porte
logiche
il circuito implementa una funzione espressa in forma di
somma di prodotti, nella quale
il numero di prodotti minimo
nessun letterale pu esssere cancellato da un prodotto senza
cambiare la funzione.
Valgono analoghe condizioni relative alla forma prodotto di
somme.
73

Costruzione circuito minimale (II)


Il problema della costruzione del circuito combinatorio
minimale a partire dalle specifiche ha complessit NP.
In pratica pu essere risolto con strumenti automatici (ad es.
ESPRESSO), con tempi di calcolo anche significativi.
Per circuiti combinatori di piccole dimensioni (fino a 5 variabili
di ingresso) il metodo delle Mappe di Karnaugh permette di
passare dalla tavola della verit al circuito minimizzato.

74

Mappe di Karnaugh
Una
mappa
di
Karnaugh

una
rappresentazione grafica del comportamento di
un sistema combinatorio
Tale rappresentazione utilizzabile per
funzioni con una sola uscita e un numero di
ingressi fino a 4
Utilizzando le mappe di Karnaugh possibile
identificare la funzione booleana minimale per
il sistema, e di qui realizzare il circuito
minimale corrispondente.
75

Esempio

x3

Tavola di verit
76

x1x2
00 01

11

10

Mappa di Karnaugh

Esempio

x3

Ogni casella a 1
corrisponde a un
minterm

x1x2
00 01

11

10

Caselle a 1 adiacenti
L'ordine delle
corrispondono ad un
non
Mappa dicolonne
Karnaugh
Tavola di verit
cubo
casuale!
77

Esempio


x3

Tavola di verit
78

Ogni casella a 1
corrisponde ad un
minterm

x1x2
00 01

11

10

Mappa di Karnaugh

Ogni coppia di caselle a 1


Esempio
adiacenti corrisponde ad
un cubo

x3

Tavola di verit
79

x1x2
00 01

11

10

Mappa di Karnaugh

Esempio

f1

x3

Tavola di verit
80

x1x2
00 01

11

10

Mappa di Karnaugh

Procedura di sintesi
Una volta costruita la mappa di Karnaugh
corrispondente alla tabella di verit, si deve
- Identificare il minimo insieme di cubi che
coprono tutti gli 1 nella mappa di
Karnaugh, scegliendo quelli di dimensione
massima; i cubi possono eventualmente
sovrapporsi
- Trasformare i cubi nella corrispondente
espressione in forma di somma di prodotti
- Costruire il corrispondente circuito.
81

Esempio

x3

82

x1x2
00 01

11

10

Esempio

x3

83

x1x2
00 01

11

10

Esempio

f1

x3

84

x1x2
00 01

11

10

Mappe di Karnaugh con 4 ingressi


Sono composte da 16 caselle
In esse possono essere individuati cubi da 1, 2,
4, 8 elementi a 1.

85

Esempio
x1x2

x3 x4

86

00 01

11

10

00 0

01 0

11 1

10 0

f1

Esempio

x1x2

x3 x4

87

00 01

11

10

00 0

01 0

11 1

10 0

Esempio 2
x1x2

x3 x4

88

00 01

11

10

00 0

01 1

11 1

10 0

f1

Esempio 2
x1x2

x3 x4

89

00 01

11

10

00 0

01 1

11 1

10 0

Dont care
In alcuni casi le specifiche per un sistema
combinatorio possono non prevedere alcun
valore in uscita in corrispondenza di alcune
combinazioni di ingresso, ad esempio perch
queste non si presentano mai
In tal caso si parla di valori dont care
Il processo di sintesi pu sfruttare questi valori
per minimizzare il circuito.

90

Esempio
Consideriamo
una
funzione che riceve in
ingresso
i
4
bit
corrispondenti ad una
cifra BCD e ritorna il
valore 1 se e solo se tale
cifra corrisponde ad un
multiplo di 3:

91

Esempio
La corrispondente mappa di Karnaugh include
6 caselle con il valore dont care
Esse
possono
essere
considerate
come
se
contenessero il valore 0 o 1, a
seconda di cosa pi
conveniente per la sintesi.

92

Ritardi
Luscita di una porta logica assume il valore corretto solo dopo che
trascorso un certo tempo k dalla stabilizzazione dei segnali di
ingresso.
1
Segnale
di ingresso

1
t

Segnale
di uscita

0
1

93

Ritardo k della
porta

Ritardo associato a un circuito


Dato un circuito combinatorio,
a fronte di un
cambiamento nel valore degli ingressi esso richiede un
certo tempo prima di produrre il valore di uscita
corrispondente
buona norma non applicare un nuovo cambiamento
sino a che la propagazione degli effetti del precedente
non si completamente esaurita
La conoscenza del tempo massimo necessario al circuito
per assumere la nuova configurazione di uscita cruciale
per sapere con quale frequenza massima si possono
applicare i vettori agli ingressi del circuito.
94

Ritardo associato a un circuito


Conoscendo i ritardi associati alle porte logiche
componenti possibile calcolare il tempo massimo di
risposta di un circuito combinatorio
Tale tempo dipende dal numero massimo di porte
appartenenti ad uno stesso cammino dagli ingressi alle
uscite che devono commutare al mutare del vettore di
ingresso
Assumendo che i ritardi delle porte siano uguali, tale
tempo proporzionale alla profondit del circuito, ossia
al massimo numero di porte che si incontrano lungo un
qualsiasi cammino da un ingresso a unuscita.
95

Cammino critico
Il cammino lungo il quale il ritardo con il quale
una variazione in ingresso si propaga sulle uscite
massimo si definisce cammino critico (critical
path).
La lunghezza del cammino critico determina la
massima frequenza con cui si possono applicare i
vettori di ingresso al circuito.
Ridurre la lunghezza del cammino critico permette
quindi di migliorare le prestazioni (in termini di
velocit) dei circuiti.
96

Livelli
Ad ogni porta logica in un circuito pu essere assegnato un livello
nella seguente maniera:
il livello delle porte che hanno come ingressi solo linee di
ingresso 1
il livello delle altre porte pari al livello della porta di ingresso
avente il livello massimo, pi 1.
La profondit di un circuito pari al livello della porta di livello
massimo. Questa alimenter sicuramente una linea di uscita.

97

Livelli: esempio
z0

I
x0
I
y0
c1

II
III
I

98

c0

Calcolo del cammino critico


Se le porte hanno tutte lo stesso ritardo, qualunque
cammino da un ingresso a un'uscita che
comprende la porta con livello massimo un
cammino critico.
Se le porte hanno ritardi diversi il calcolo del
cammino critico pi complesso.

99

Cammino critico
z0

I
x0
I
y0
c1

II
III
I

100

c0

Circuiti sequenziali
Implementano funzioni dipendenti dal tempo
Sono in grado di memorizzare informazioni
Sfruttano i ritardi delle porte:

x1
x2

z(t+)=x1(t)x2(t)
101

Flip-Flop
in grado di mantenere linformazione per un periodo
illimitato di tempo.
Comportamento:
S=R=0: mantiene il
valore su y1

S
y2
R

y1 S=0, R=1: forza uno


0 su y1
S=1, R=0: forza un 1
su y1
S=1, R=1:
configurazione
vietata

102

Transizione S=R=1 S=R=0


S
y2

10

01

2<1

00

y1

01

y1

10

S
y2

10
2>1

103

00
2

10

Flip-Flop SR asincrono
S

00
y

10

Simbolo

Tavola degli stati


S

Schema

104

SR
01

Flip-Flop sincrono

Clock
y
R

105

Flip-Flop SR con Clock,


Preset e Clear asincroni
P
S

Clock
y
R

C
106

Flip-Flop D
D
D

Clock
R

y
0

y
Tavola degli Stati

Ad ogni colpo di clock, il valore di D viene memorizzato.

107

Circuiti sincroni
Il funzionamento di un circuito sequenziale dipende dai valori
relativi dei ritardi delle porte logiche nella rete combinatoria
(corse o race).
Questo pu essere evitato facendo in modo che la
memorizzazione dei valori in ingresso avvenga per tutti i FlipFlop in uno stesso istante, determinato dal valore di un segnale
comune (clock).
Tale segnale ha un andamento ad onda quadra la cui frequenza
dipende dal ritardo massimo attraverso la rete combinatoria.
I circuiti dotati di clock si dicono sincroni.

108

Modello di Huffman
x1
x2

z1
z2
Rete
combinatoria

y1
y2

109

FF

Y1
Y2

y3

Y3

y4

Y4
Clock

Tabella degli stati


Un circuito sequenziale sincrono evolve attraverso stati,
determinati dai valori presenti nei Flip-Flop.
Il suo comportamento pu quindi essere descritto attraverso una
tabella degli stati, che descrive le transizioni tra stati in funzione
del valore sugli ingressi.

110

Progetto di circuiti sequenziali


sincroni
Costruzione della tavola degli stati
Minimizzazione (eliminazione degli stati equivalenti)
Assegnazione degli stati
Costruzione della tavola della verit della rete
combinatoria
Sintesi della rete combinatoria.

111

Esempio
Consideriamo il riconoscitore della sequenza 1-0-1.
Il diagramma degli stati

0
0
A0
0
112

B0
1

C0
1

D1

E0

Esempio (II)
Lo stato E equivalente allo stato C; il diagramma
pu quindi essere cos semplificato:

0
A0
0

113

B0
1

C0
1

D1

Esempio (II)
Lo stato E equivalente allo stato C; il diagramma
pu quindi essere cos semplificato:

0
A0
0

114

B0
1

1
C
D1
0
Due
diagrammi
degli stati sono
equivalenti se data una qualsiasi
sequenza
di ingresso, il loro
1
comportamento in termini di valori
prodotti sulle uscite identico.

Esempio (III)
Una possibile codifica degli
stati :

115

00

01

10

11

Esempio (IV)
La
funzione
di
transizione degli stati :
f(0,00) 00
f(1,00) 01
f(0,01) 10
f(1,01) 01
f(0,10) 00
f(1,10) 11
f(0,11) 10
116f(1,11) 01

Il valore delluscita pu essere


facilmente generato tenendo
conto che esso 1 solo quando
il circuito nello stato 11:
h(-,00) 0
h(-,01) 0
h(-,10) 0
h(-,11) 1

Esempio (V)
Si possono ora sintetizzare le 3 funzioni f1, f2 e h,
ottenendo:

+
f2=i
h=y1y2

117

i +

Esempio (VI)
Il circuito che implementa il riconoscitore di
sequenza :

CLK

FF1

i
FF2

118

Frequenza di lavoro
La frequenza del clock f deve essere
determinata in modo che il tempo T = 1 / f tra
due fronti di clock successivi rispetti la seguente
disuguaglianza
T>+
dove
il massimo
combinatoria

ritardo

il ritardo dei flip flop.


119

della

logica

Frequenza di lavoro
T0: un nuovo insieme di valori applicato agli
ingressi della parte combinatoria

T0
120

Frequenza di lavoro
T0: un nuovo insieme di valori applicato agli
ingressi della parte combinatoria
T1 = T0 + : le uscite della parte combinatoria
assumono un valore stabile

T0

T1

121

Frequenza di lavoro
T0: un nuovo insieme di valori applicato agli
ingressi della parte combinatoria
T1 = T0 + : le uscite della parte combinatoria
assumono un valore stabile
T2: si applica un nuovo fronte al segnale di
clock il valore sulle uscite della parte
combinatoria memorizzato nei flip flop

T0

122

T1 T2

Frequenza di lavoro
T0: un nuovo insieme di valori applicato agli
ingressi della parte combinatoria
T1 = T0 + : le uscite della parte combinatoria
assumono un valore stabile
T2: si applica un nuovo fronte al segnale di
clock il valore sulle uscite della parte
combinatoria memorizzato nei flip flop
T3 = T2 + : il nuovo valore disponibile sulle
uscite dei flip flop
T0

123

T1 T2 T3

Frequenza di lavoro
T0: un nuovo insieme di valori applicato agli
ingressi della parte combinatoria
T1 = T0 + : le uscite della parte combinatoria
I tempi un
tra valore
T1 e T2
e tra T3 e T0 possono
assumono
stabile
essere minimizzati a piacere dallutente.
T2: si applica un nuovo fronte al segnale di
ogni caso
deveuscite
essere della parte
clock ilInvalore
sulle
combinatoria memorizzato
T > + nei flip flop
T3 = T2 + : il nuovo valore disponibile sulle
uscite dei flip flop
T0

124

T1 T2 T3 T0

T1 T2 T3