Sei sulla pagina 1di 36

I Compendi OpenSource

di Giacomo Marciani

Reti Logiche
Teoria, Formulario e Suggerimenti Pratici

Introduzione al progetto logico

high-voltage level ed low-voltage level 1 . Questo il motivo per cui i computer utilizzano i numeri binari: l'algebra binaria infatti risulta essere la perfetta astrazione dell'elettronica digitale. 2 Una rete logica un circuito elettronico digitale che, dati in input un 3 insieme di segnali digitali (i1 , i2 , i3 , ..., in ), in grado di calcolare in modo
itale opera con due soli livelli di voltaggio:

L'elettronica interna ad un moderno computer digitale. L'elettronica dig-

automatico i segnali digitali di output

(z1 , z2 , z3 , ..., zm )

corrispondenti secondo

le caratteristiche della rete. Vi sono due tipologie di reti logiche:

rete combinatoria : una rete logica senza memoria, in cui l'output

dipende esclusivamente dall'input.


rete sequenziale :

una rete logica con memoria, in cui l'output

dipende dall'input e dallo Una rete logica denita da:

stato di memoria6

della rete.

struttura logica: risponde alla domanda come fatta la rete logica?.

Un circuito logico denisce le caratteristiche della rete, rappresentando le connessioni siche fra i suoi componenti interni.

specifica funzionale: risponde alla domanda come si comporta la rete

logica?.

Una o pi funzioni matematiche deniscono l'output in modo

sintetico-analitico. E' importante notare che una struttura logica denisce una e una sola specica funzionale, mentre una specica funzionale pu essere realizzata attraverso strutture logiche dierenti. Naturalmente noi siamo interessati a realizzare la struttura logica pi semplice : per questo impareremo a semplicare una struttura logica esistente o anche ricavare la pi semplice struttura logica direttamente da una data specica funzionale. Generalmente siamo interessati a condurre su una rete logica:

analisi: dalla struttura logica ricaviamo la specica funzionale. sintesi: dalla specica funzionale ricaviamo la struttura logica .

1 considerando ogni altro valore come transitorio dall'uno all'altro livello. 2 anche detta RL. 3 quindi segnali binari, anche detti segnali booleani. 4 anche detta RC. 5 anche detta RS. 6 anche detto semplicemente stato. 7 vedremo che pi semplice vuol dire composta da un minor numero di componenti.
rete logica pi semplice dunque una rete logica meno costosa.

Una

8 eventualmente,

la pi semplice e meno costosa.

1.1

Algebra Booleana

9 isomorfa ai circuiti digitali, svolgendo dunque un ruolo 10 chiave nel progetto dei circuiti digitali . Essa in grado di rappresentare sia
L'algebra di Boole la struttura logica che la specica funzionale di una rete logica: struttura logica di una rete rappresentata da una per questo facciamo uso di questo sistema matematico per condurre analisi e sintesi. La

espressione booleana: espressione algebrica che denisce le relazioni

che intercorrono tra le

variabili booleane.

e la sua specica funzionale da una

funzione booleana: in matematica, una funzione booleana a

n variabili
(1)

una funzione

f (x1 , ..., xn ) : B n B
di variabili booleane

B = n n variabili esistono 22 funzioni possibili. Poich le variabili possono assumere solo i valori 0 o 1, una funn zione booleana con n variabili di input ha solo 2 combinazioni possibili.
che assumono valori nello spazio booleano

xi

{0, 1}, cos come f

stessa. Con un insieme di

Una funzione booleana pu essere rappresentata da una tavola della


verit

11 , la quale esplicita tabellarmente le corrispondenze fra ognuna


combinazioni delle

delle

variabili booleane e le uscite della funzione

booleana.

Operatori elementari
rete logica

Gli operatori elementari dell'algebra booleana

costituiscono un insieme logico funzionalmente completo, cio sono sucienti a realizzare qualsiasi funzione booleana, e quindi a rappresentare qualsiasi

12 . Gli operatori fondamentali sono:

NOT

F = x13 :

negazione logica o complementazione. Restituisce il valore

inverso a quello in ingresso. Una concatenazione dispari di NOT equivale ad un solo NOT. Una concatenazione pari di NOT equivale a nessun NOT. x 0 1 F 1 0

AND

F = x y 14 :

prodotto logico. Restituisce 1 se tutti gli operandi sono

1; restituisce 0 in tutti gli altri casi. In algebra circuitale equivale ad una

connessione seriale. x 0 = 0 x 1 = x x x = x x x = 0

9 o algebra booleana, o ancora reticolo booleano. 10 trovando anche applicazione nella crittograa e nelle telecomunicazioni. 11 anche detta Truth Table, o TT. 12 non sono per n l'unico insieme di operatori funzionalmente completo, 13 anche espressa come F = x . 14 anche espressa come F = xAN Dy , oppure come F = x y .

n il pi piccolo.

x 0 0 1 1

y 0 1 0 1

F 0 0 0 1 somma logica. Restituisce 1 se almeno un operando

OR

F = x + y 15 :

1; restituisce 0 in tutti gli altri casi. In algebra circuitale equivale ad una

connessione parallela. x + 0 = x x + 1 = 1 x + x = x x + x = x.
x 0 0 1 1 y 0 1 0 1 F 0 1 1 1

Principi fondamentali dell'algebra booleana


dell'algebra booleana sono:

I principi fondamentali

postulati di Huntigton:

chiusura

x, y B (x + y) B x, y B (x y) B

(2) (3)

identit

0 B|x B, x + 0 = x 1 B|x B, x 1 = x

(4) (5)

commutativit

x, y B, (x + y) = (y + x) x, y B, (x y) = (y x)

(6) (7)

distributivit

16
(8)

x, y, z B, x (y + z) = (x y) + (x z) x, y, z B, x + (y z) = (x + y) (x + z)

(9)

inversione

x B, B|(x + x) = x x x B, B|(x x) = 0 x
15 anche espressa come F = xORy , oppure come F = x y . 16 notiamo che la prima una distributivit numerica, mentre
non numerica.

(10) (11)

la seconda una distributivit

principio di dualit: ogni teorema del tipo

A = B,

dove

sono

espressioni booleane denite usando variabili booleane e operatori, vero se e solo se vero il teorema invertendo

A = B con A e B espressioni booleane ottenute

B,

cio rimpiazzandovi gli 1 con gli 0, e il prodotto logico

con la somma logica (e viceversa).

teoremi dell'algebra booleana:

equazioni con costanti

x+1=1 x0=0

(12) (13)

idempotenza

x+x=x xx=x

(14) (15)

associativit

x + y + z = (x + y) + z = x + (y + z) x y z = (x y) z = x (y z)

(16) (17)

 

involuzione

(x) = x x + (x y) = x x (x + y) = x

(18)

assorbimento

(19) (20)

leggi di De Morgan

(x + y) = x y (x y) = x + y

(21) (22)

teorema del consensus

(x y) + ( z) + (y z) = (x y) + ( z) x x

(23)

Forme canoniche

Una funzione booleana pu essere espressa in:

mini 19

forma canonica SoP

17 Somma di Prodotti18 : la somma dei

minterIn

(m0 , ..., m2n 1 ) corrispondenti alle righe della TT in cui la funzione

booleana vale 1. Ogni funzione infatti pu essere descritta da una somma di tanti prodotti logici, quante sono le congurazioni per cui vale 1. ciascun prodotto (mintermine) appaiono tutte le variabili, in forma o vera o complementata a seconda che nella congurazione corrispondente presentino valore 1 o valore 0. Quindi

f (x1 , ..., xn ) =
forma canonica PoS

(mi )

i [0, 2n 1]|fi = 1

(24)

termini 22

20 Prodotti di Somme21 : il prodotto dei

maxIn

(M1 , ..., Mn ) corrispondenti alle righe della TT in cui la funzione booleana vale 0. Ogni funzione infatti pu essere descritta da un prodotto
di tante somme logiche quante sono le congurazioni per cui vale 0. ciascuna somma (maxtermine) appaiono tutte le variabili, in forma o vera o complementata a seconda che nella congurazione corrispondente presentino valore 0 o valore 1. Quindi

f (x1 , ..., xn ) =

(Mi )

i [0, 2n 1]|fi = 0

(25)

Le due forme canoniche sono duali, ovvero:

f (x1 , ..., xn ) =
iI

(mi )
jJ

(Mj )

i, j R = [0, 2n 1]|J = (I)C I+J = R


(26)

forma normale di Shannon

23 :

f (x0 , ..., xn1 ) = xn1 f (x0 , ..., xn2 , 0)+xn f (x0 , ..., xn2 , 1)+...+x0 f (0, x1 , ..., xn1 )+x0 f (1, x1 , ..., xn
(27)

Don't care

Esistono funzioni booleane non completamente definite,

cio quelle funzioni booleane che presentano valori dont'care

24 . Riconoscere

17 ovvero Sum of Products. 18 o forma normale disgiuntiva, o ancora espansione in mintermini. 19 un mintermine di ordine i m = n (x ) il prodotto di tutte i i=1 i
che compaiono nella

le

xi

variabili booleane

i-esima

riga della TT. Se

xi = 1

il mintermine conterr il valore

xi ,

se

xi = 0

20 ovvero Product of Sum. 21 o forma normale congiuntiva, o ancora espansione in maxtermini. n 22 un maxtermine di ordine i M = i i=1 (xi ) la somma di tutte le xi

il mintermine conterr il valore

xi .

variabili booleane

che compaiono nella

i-esima

riga della TT. Se

xi = 1

il maxtermine conterr il valore

xi ,

se

xi = 0

23 anche detta espansione di Shannon. 24 anche detti valori di indierenza. In corrispondenza di un valore di indierenza la funzione

il mintermine conterr il valore

xi .

booleana pu assumere indierentemente il valore 0 o il valore 1.

valori don't care importante, in quanto rende pi semplice la minimizzazione della funzione booleana. In questi casi conviene attribuirvi il valore che pi si adatta alla minimizzazione delle funzione

25 .

Minimizzazione di una funzione booleana: algoritmo di Karnaugh


Minimizzare una funzione booleana vuol dire ottimizzare l'implementazione
della rete logica. Con questo processo intendiamo minimizzare il costo della

rete logica misurato in termini di :

Size: numero totale di gate. Depth: lunghezza del cammino ingresso-uscita pi lungo. Gate Inputs: numero totale di ingressi ai gate.

Sebbene infatti l'avvento dei

circuiti integrati MSI, LSI e VLSI 26 abbia ridotto il

numero di porte logiche necessarie per realizzare una rete logica, l'ottimizzazione dell'implementazione ha comunque rilevanza in termini di speciche economicotemporali: il tempo di risposta di una rete combinatoria, quindi le sue prestazioni, dipendono infatti dal numero di porte logiche attraversate. Per minimizzare una funzione booleana possiamo fare uso di tecniche algoritmiche, come l'Algoritmo di Quine-McCluskey, o di tecniche grache 27 , come l'Algoritmo di Karnaugh.
L'Algoritmo di Karnaugh: permette di semplicare una forma SOP in

una forma SP basandosi sulle mappe di Karnaugh evidenzia infatti i una funzione

mintermini adiacenti 29 di una espressione in forma SOP di booleana. Raggruppamenti di mintermini adiacenti evidenziano
si assume l'output della funzione uguale a 1, in quanto, come vedremo, ci

28 . Una mappa di Karnaugh

25 Generalmente 26 si

permetter di ampliare i raggruppamenti di mintermini nelle mappe di Karnaugh. tratta di scale di integrazione dei circuiti integrati: Middle Scale Integration, Large Scale Integration e Very Large Scale Integration.

27 pertanto non algoritmiche. 28 una mappa di Karnaugh

una rappresentazione esatta di sintesi di reti combinatorie a dimensionale, per un totale di

uno o pi livelli, e si costruisce a partire da una tavola della verit. Consiste in una rappresentazione tabellare

n 2

n 2

2n

caselle, di una funzione

booleana. Ogni casella della mappa corrisponde ad un valore della funzione rappresentato nella tabella di verit, mentre i valori delle variabili sono riportati sul bordo della tabella come gli indici di riga e colonna di una matrice in corrispondenza del rispettivi letterali. Una mappa di Karnaugh in grado di mettere in evidenza le coppie di mintermini (o di maxtermini)secondo il codice Gray, ovvero a distanza di Hamming unitaria (ovvero di termini che dieriscono per una sola variabile binaria). booleane in spazi Siccome derivano da una meno intuitiva visione delle funzioni

{0, 1}n

, le mappe di Karnaugh risultano applicabili ecacemente solo a Due o pi

funzioni con al pi 5 - 6 variabili.

29 l'adiacenza

dei mintermini garantita dall'ordinamento Hamming unitario.

mintermini si dicono adiacenti se hanno un lato in comune, o se sono poste all'estremit di una stessa riga o colonna, o ancora se occupano la stessa posizione in sotto-mappe adiacenti in mappe di Karnaugh di RLC a pi livelli.

gli

implicanti 30 della funzione booleana. Scegliendo tra gli implicanti primi 31 gli implicanti primi essenziali, eliminando gli implicanti primi assolutamente eliminabili, e minimizzando l'insieme degli implicanti primi eliminabili, possi32 come polinomio minimo 33 . L'algoritmo amo determinare la forma minima SP
graco di Karnaugh consiste nei seguenti passi: 1. determinare la mappa di Kanraugh per la funzione booleana. 2. trovare gracamente gli implicanti primi formando i raggruppamenti massimi di caselle contenenti 1 contigui (di 8,4,2 elementi); 3. individuare tra gli implicanti primi gli implicanti primi essenziali; 4. eliminare gli implicanti primi assolutamente eliminabili; 5. scegliere gli implicanti primi eliminabili che minimizzano l'insieme degli implicanti primi eliminabili: ovvero scegliere tra gli implicanti primi eliminabili il minimo numero di implicanti primi per coprire i rimanenti 1 della funzione. 6. determinare l'espressione minima SP come polinomio minimo, i cui monomi siano gli implicanti primi scelti (implicanti primi essenziali+implicanti primi eliminabili scelti).

30 un

monomio

m,

cio un prodotto di variabili booleane aermate e/o negate, si dice im-

plicante della funzione booleana f copre m) se e solo se

f (m f , diciamo che m implica f o, alternativamente, che m = 1 f = 1, ma non viceversa. Un mintermine un monomio di dimensione massima. In generale possiamo dire che i mintermini di una funzione booleana f sono tutti implicanti per f .
31 un
implicante primo un implicante non contenuto in alcun altro implicante, ovvero un

monomio che non contiene alcun altro monomio. Ne consegue che tale implicante l'implicante col numero minore possibile di letterali. Gli implicanti primi possono essere suddivisi in tre categorie a seconda della possibilit di comparire o meno nella espressione minima della funzione Gli implicanti primi si dividono quindi in:

implicanti primi essenziali: hanno almeno un mintermine non coperto da altri im-

plicanti primi. Devono necessariamente comparire nel polinomio minimo.


implicanti primi eliminabili: non tutti devono comparire nel polinomio minimo. implicanti primi assolutamente eliminabili: hanno tutti i mintermini coperti da

implicanti primi essenziali. Non devono comparire nel polinomio minimo.

32 forma

canonica SP con il minor numero di mintermini, ovvero somma di implicanti primi di soli implicanti primi.

essenziali ed eliminabili scelti.

33 polinomio

1.2

Reti Combinatorie

Una rete combinatoria una rete logica in cui l'output dipende dall'input secondo le caratteristiche della rete. Ogni rete combinatoria ha una struttura
logica che ne realizza la specifica funzionale.

analisi di una rete combinatoria

34 : dalla struttura logica, ne deni-

amo la specica funzionale. Dato un circuito logico, deniamo quindi la funzione booleana che lo rappresenta, e da questa ricaviamo la
tavola della verit

35 .

sintesi di una rete combinatoria

36 : dalla specica funzionale, ne


Data una tavola della verit,

deniamo una possibile struttura logica. deniamo la funzione booleana il circuito logico. Le funzioni logiche elementari sono:

37 che la rappresenta, e da questa deniamo

assegnazione di costante a 0 assegnazione di costante a 1 trasferimento negazione

1.2.1

Gate

38 un dispositivo elettronico in grado di realizzare una specica fun39 un gate che da solo40 pu implementare zione binaria. Un gate universale
Un gate qualunque funzione booleana. Una gate fondamentale un gate che realizza un operatore elementare dell'algebra booleana. I gate di maggiore rilevanza sono:

inverter

41

F = x:

negazione logica o complementazione. Restituisce il

valore inverso a quello in ingresso. Una concatenazione dispari di Inverter equivale ad un solo Inverter. Una concatenazione pari di Inverter equivale a un Buer.

x 0 1

F 1 0

34 anche detta analisi RC. 35 anche detta Truth Table, o TT. 36 anche detta sintesi RC. 37 eventualmente minimizzata. 38 anche detto porta logica. 39 anche detta porta funzionalmente 40 cio con gate del suo stesso tipo. 41 anche detta porta logica NOT.

completa.

gate AND

F = x y:

prodotto logico. Restituisce 1 se gli operandi sono

entrambi 1; restituisce 0 in tutti gli altri casi. In algebra circuitale equivale ad una

connessione parallela. x 0 = 0 x 1 = x x x = x x x = 0
F 0 0 0 1

x 0 0 1 1

y 0 1 0 1

gate OR

F = x y:

somma logica.

Restituisce 1 se almeno uno dei

due operandi 1; restituisce 0 in tutti gli altri casi. In algebra circuitale equivale ad una

connessione seriale. x + 0 = x x + 1 = 1 x + x = x

x + x = x.
x 0 0 1 1 y 0 1 0 1 F 0 1 1 1

BUFFER

F = x:

identit logica; dal punto di vista elettronico serve ad

amplicare il segnale digitale. x 0 1 F 0 1

gate NAND

F = (x y):

complemento del prodotto logico. Restituisce

0 quando i due operandi sono 1; restituisce 1 in tutti gli altri casi. E' una porta universale. Infatti sia le porte logiche fondamentali possono essere implementate tramite porte logiche NAND secondo le seguenti relazioni:

x = (x x) N OT (x) = (N AN D(x, x) (x y) = (x y) AN D(x, y) = N OT (N AN D(x, y)) (x + y) = (x + y) = (x + y) OR(x, y) = N AN D(x, y) = N AN D(N AN D(x, x), N AN D(x, x))

x 0 0 1 1

y 0 1 0 1

F 1 1 1 0

10

gate NOR

F = (x + y):

complemento della somma logica. Restituisce 1

quando i due operandi sono 0; restituisce 0 in tutti gli altri casi. E' una porta universale. Infatti sia le porte logiche fondamentali possono essere implementate tramite porte logiche NAND secondo le seguenti relazioni:

x = (x + x) N OT (x) = N OR(x, x) (xy) = (x y) = (x + y) AN D(x, y) = N OR(x, y) = N OR(N OR(x, x), N OR(x, x)) (x + y) = (x + y) OR(x, y) = N OT (N OR(x, y))

x 0 0 1 1

y 0 1 0 1

F 1 0 0 0

gate XOR

F = x y = x y + x y:

somma logica esclusiva. Restituisce

1 quando uno dei due operandi 1; restituisce 0 in tutti gli altri casi.

x 0 0 1 1

y 0 1 0 1

F 0 1 1 0

gate XNOR

F = x y = x y + x y = x y + x y:

x 0 0 1 1

y 0 1 0 1

F 1 0 0 1

3-state Buffer

F = x if f EN = 1:

permette di abilitare o disabilitare

il buering dell'ingresso. In caso di abilitazione (EN porta logica posto ad

aperto, quindi impossibilitato a pilotare altre porte connesse in cascata. Una connessione parallela di due 3-state Buer pu causare rottura della
42 anche
indicata come Z, o z.

Buer ; in caso di disabilitazione (EN = 0) l'output viene alta impedenza Hi-Z 42 , uno stato che equivale ad un circuito

= 1),

equivale alla

11

porta laddove entrambi siano abilitati e i dati in ingresso dieriscano Una

connessione parallela di due 3-state Buer con segnali di ingresso complementari implementa un Multiplexer 2-1.
E 0 0 1 1 x 0 1 0 1 F Hi-Z Hi-Z 0 1

43 .

gate AO (AND-OR)

F = [(w x) + (y z)]:

w 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

x 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

y 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

z 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

F 0 0 0 1 0 0 0 1 0 0 0 1 1 1 1 1

gate AOI (AND-OR-Inverter)

F = [(w x) + (y z)]:

43 risolviamo

il problema facendo pilotare le abilitazioni in modo tale che non siano mai

abilitate simultaneamente. Una abilitazione sar pilotata da un Inverter, l'altra da un Buer. Cos avremo sempre che

EN0 = x

EN1 = x.

Descriviamo questa composizione come una

connessione parallela di due 3-state Buer con segnali di ingresso complementari. Un circuito logico cos implementato realizza un Multiplexer 2-1.

12

w 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

x 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

y 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

z 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

F 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0

gate OA (OR-AND)

F = [(w + x) (y + z)]:

w 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

x 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

y 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

z 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

F 0 0 0 0 0 1 1 1 0 1 1 1 0 1 1 1

gate OAI (OR-AND-Inverter)

F = [(w + x) (y + z)]:

13

w 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

x 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

y 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

z 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

F 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0

14

1.2.2 Analisi
verit

Analisi e sintesi di reti combinatorie


L'analisi di una rete combinatoria

44 consiste nel denire la

specica funzionale della rete, a partire dalla sua struttura logica. Dato un circuito logico, deniamo quindi il suo

45 . I passi dell'analisi RC sono i seguenti:

comportamento tramite la tabella della

1. deniamo la funzione booleana, a partire dalla struttura logica. 2. costruiamo la TT, a partire dalla funzione booleana. 3. costruiamo la mappa di Karnaugh, a partire dalla TT. 4. minimizziamo la funzione booleana, applicando l'algoritmo di Karnaugh. 5. ricaviamo la funzione booleana minimizzata. 6. costruiamo la nuova TT, a partire dalla funzione booleana minimizzata

46 consiste nel determinare 47 la struttura logica della rete, a partire dalla sua specica funzionale . I passi

Sintesi

La sintesi di una rete combinatoria

della sintesi RS sono i seguenti: 1. costruiamo la mappa di Karnaugh, a partire dalla TT. 2. minimizziamo la funzione booleana, applicando l'algoritmo di Karnaugh. 3. ricaviamo la funzione booleana minimizzata. 4. costruiamo la struttura logica, a partire dalla funzone booleana minimizzata.

Sintesi tramite multiplexing


qualunque funzione booleana a iamo un MUX

Un Multiplexer

2n -148 pu sintetizzare una

n variabili.

Una volta minimizzata la TT, costru-

2n -1 2n

con le seguenti caratteristiche: ingressi, tanti quanti sono i valori che pu assumere la

costruiamo funzione. forziamo i

2n

ingressi del MUX ai valori della funzione indicati, ordinata-

mente, dalla TT. indichiamo gli dalla TT.

segnali di selezione del MUX con le

variabili indicate

44 anche detta analisi RC. 45 anche detta Truth Table, o anche 46 anche detta sintesi RC. 47 eventualmente in forma verbale. 48 anche detto MUX 2n -1.

TT.

15

Sintesi tramite ROM


zare

Una ROM

49 con

ingressi ed

uscite pu sintetiz-

qualunque funzioni booleane a

variabili.

Una volta minimizzata la

TT, costruiamo una ROM con le seguenti caratteristiche:

costruiamo costruiamo

n m

ingressi. uscite.

per ogni linea verticale, scriviamo i valori della corrispondente funzione.

 

parallelamente scorriamo dall'alto verso il basso la colonna corrispondente alla funzione nella TT, e la linea verticale dell'uscita corrispondente alla funzione nella ROM. ad ogni 1 nella TT corrisponder un

pallino 50

nella ROM.

Sintesi tramite PLA


zato per sintetizzare

n ingressi ed m uscite pu essere utilizm funzioni booleane a n variabili in forma SoP52 . Una volta
Un PLA

51 con

minimizzata la TT, ricaviamo la funzione booleana corrispondente, e costruiamo una PLA con le seguenti caratteristiche:

costruiamo costruiamo costruiamo costruiamo booleana.

n m m k

ingressi. uscite. porte OR. porte AND, tante quanti sono i prodotti della funzione

inseriamo opportunatemte i

pallini

nella matrice si sinistra.

ogni riga della matrice di sinistra rappresenta un prodotto della funzione booleana. Quindi inseriamo un pallino sulla riga, per ogni variabile asserita o negata del prodotto.

inseriamo opportunamente i

pallini

nella matrice di destra.

ogni colonna della matrice di destra rappresenta una funzione booleana. Quindi inseriamo un pallino sulla colonna, per ogni prodotto presente nella funzione booleana.

49 ovvero Read-Only Memory. 50 il pallino viene usato come


ROM a diodi.

simbolo graco per indicare la distruzione dei fusibili nelle anche detto matrice logica programmabile.

51 ovvero Programmable Logic Array, 52 vedi sintesi RC tramite PLA.

16

1.2.3

Blocchi funzionali combinatori

Un'opportuna composizione di gate in una rete combinatoria adibita ad una specica funzione, costituisce un blocco combinatorio funzionale. I blocchi combinatori funzionali di maggior rilevanza sono:

blocchi aritmetico-logici

 

addizionatori ALU

blocchi di codifica

decoder

blocchi di selezione

 

multiplexer demultiplexer

PLA

Addizionatori

1-bit AND/OR ALU: pu eseguire l'AND e l'OR di due sequenze a 1 bit.

Riceve in ingresso due sequenze a 1 bit cita la sequenza a 1 bit compito del

uscita, attraverso il proprio

Multiplexor 2-1 selezionare quale delle due sar restituita in segnale di selezione Operation a 1 bit. Quando
viene restituito in uscita l'AND. Quando

A = a0 e B = b0 , restituendo in usS = s0 = a0 AN Db0 oppure S = s0 = a0 ORb0 . E'

Operation = 0

Operation = 1

viene restituito in uscita l'OR. Operation 0 0 0 0 1 1 1 1

a0
0 0 1 1 0 0 1 1

b0
0 1 0 1 0 1 0 1

s0
0 0 0 1 0 1 1 1

1-bit Half-Adder

53 : somma due sequenze a 1 bit

restituendo in uscita la sequenza somma a 1 bit

CarryOutHA = c1 ,
53 anche

ovvero il riporto generato

A = a0 e B = b0 , S = s0 e il CarryOut dalla somma s0 = a0 + b0 .

detto HA, o (2,2)-Adder per i 2 ingressi e le 2 uscite.

17

a0
0 0 1 1

b0
0 1 0 1

s0
0 1 1 0

c1
0 0 0 1

1-bit Full-Adder

il CarryIn

A = a0 B = b e CarryInF A = c0 , restituendo la sequenza somma S a 1 bit S0 = a0 + b0 + c0 , e il CarryOut CarryOutF A = c1 , ovvero il riporto generato dalla somma s0 = a0 + b0 + c0 . E' un blocco funzionale costituito
da una connessione seriale di 2

54 : somma tre sequenze a 1 bit

HA.

a0
0 0 0 0 1 1 1 1

b0
0 0 1 1 0 0 1 1

c0
0 1 0 1 0 1 0 1

s0
0 1 1 0 1 0 0 1

c1
0 0 0 1 0 1 1 1

1-bit AND/OR/NOR/SUM/SUB ALU: pu eseguire l'AND, l'OR, il

NOR, la somma e la sottrazione di due sequenze a 1 bit. Riceve in ingresso

A = a0 , B = b0 , CarryIn = c0 i segnali di controllo BInvert e il segnale di controllo a 2 bit Operation, restituendo in uscita le sequenze a 1 bit CarryOut = c1 e una tra S = s0 = a0 AN Db0 oppure S = s0 = a0 ORb0 oppure S = s0 = a0 N ORb0 = (a0 + b0 ) = a0 b0 oppure S = s0 = a0 + b0 oppure S = s0 = a0 b0 = a0 + (b0 ) = a0 + (b0 + 1)55 . E' compito del Multiplexor 2-1 controllato da AInvert, del Multiplexor 2-1 controllato da BInvert e dal Multiplexor 3-1 controllato da Operation selezionare quale delle 4 sar restituita in uscita.. Quando AInvert = 0, BInvert = 0 e Operation = 00 viene restituito in uscita l'AND. Quando AInvert = 0, BInvert = 0 e Operation = 01 viene restituito in uscita l'OR. Quando AInvert = 1, BInvert = 1 e Operation = 00 viene restituito in uscita il NOR. Quando AInvert = 0, BInvert = 0 e Operation = 10 viene restituito in uscita la somma. Quando AInvert = 0, BInvert = 1 CarryIn = c0 = 1 e Operation = 10
tre sequenze a 1 bit a 1 bit

AInvert

viene restituita in uscita la sottrazione.

54 anche detto FA, o (3,2)-Adder per i 3 ingressi 55 b viene espresso in complemento a due.
0

e le 2 uscite.

18

Controllo Operazione ALU AInvert 0 0 0 0 1 BInvert 0 0 0 1 1 CarryIn x x x 1 x Operation 00 01 10 10 00

Operazione eseguita AND OR somma sottrazione NOR

= ak1 , ..., a0 B = bk1 , ..., b0 , restituendo la sequenza somma a k bit S = sk1 , ..., s0 e il CarryOut CarryOutRCA,k = ck . E' un blocco funzionale costituito da una connesione seriale di k F A connessi in cascata, cio con l'uscita CarryOutF Ai dell'uno connessa con l'ingresso CarryInF Ai+1 del successivo. Ogni modulo F Ai si occupa di sommare l'i-esimo bit di A con l'i-esimo bit di B restituendo l'i-esimo bit di S si = ai + bi + ci i = 0, ..., k1, e il carry ci+1 destinato al modulo F Ai+1 i = 0, ..., k2, il quale lo dovr considerare nella somma parziale si+1 = ai+1 + bi+1 + ci+1 . Questo procedimento si reitera no all'ultimo modulo F Ak1 , il quale si occupa della somma parziale sk1 = ak1 + bk1 + ck1 , restituendo il valore dell'ultimo bit sk1 della sequenza somma S , e il carry ck , ovvero il carry in uscita dal modulo RCA CarryOutRCA,k . Notiamo che il CarryInRCA,k enrante nel primo modulo F A0 come CarryInF A0 c0 = 057 .
k-bit Ripple-Carry Adder 4-bit Carry-Lookahead Adder

56 : somma due sequenze a k bit A

58 : somma due sequenze a 4 bit


somma a 4 bit

FA, ciascuno con connessione 59 parallela al modulo 4-bit Carry-Lookahead Unit . Il modulo 4-bit Carry
costituito da una connesione seriale di 4 Lookahead Unit si occupa di propagare il carry in uscita dal modulo 4bit Carry-Lookahead Adder. Notiamo infatti che nel

a3 , a2 a1 a0 B = b3 , b2 b1 b0 , restituendo la sequenza s3 , s2 s1 s0 e il CarryOut CarryOutCLA,4 = c4 . E'

A= S =

un blocco funzionale

Ripple-Carry Adder

ci+1 = (ai ci ) + (bi ci ) + (ai bi ).


destra la funzione

Ci aumenta il costo hardware, Ci dovuto

in quanto scorrendo il modulo 4-bit Ripple-Carry Adder da sinistra verso

meccanismo di propagazione del carry lungo i moduli Full-Adder in un 4-bit Ripple-Carry Adder. Questa implementazione 4evidentemente al bit Carry-Lookahead Adder intende dunque:

ci+1 = (ai , bi , ci ) cresce esponenzialmente.

attutire la dipendenza diretta del funzionamento di ogni modulo

F Ai 1.

k = 1, ..., k1 dal suo predecessore F Ai1

i = 1, ..., k

56 anche detto k-RCA. 57 cos come nella somma 58 anche 59 anche


detto CLA. detto 4-bit-CLU.

manuale, non vi alcun riporto da considerare sul primo incolon-

namento corrispondente alla prima cifra.

19

 

ovviare alla lentezza nella propagazione del

CarryOutLSB 60 al CarryInM SB 61 .

facendo passare la propagazione del Carry per un numero minore di gate.

In un modulo 4-bit-CLA, ogni modulo

F Ai
e il

restituisce l'i-esimo bit

si =

ai + bi

i = 0, ..., 3

modulo CLU il come segue:

bit di propagazione pi

della sequenza somma

bit di generazione gi ,

e mette in ingresso al calcolati

gi = ai bi pi = ai + bi
Il segnale modulo

(28) (29)

gi asserito indica la generazione del carry in corrispondenza del F Ai . Il segnale pi asserito indica la possibilit del modulo F Ai di pi gi
e

propagare il proprio eventuale carry in ingresso. Il modulo CLU, che ha in ingresso ingresso nel modulo

c0 , interagisce con i moduli F Ai F Ai+1 come segue: ci+1 = gi + pi ci

calcolando il carry in

(30)

Ci vuol dire che in carry in ingresso al modulo modulo , il

F Ai+1

asserito se il

F Ai

ha generato un riporto o se ha propagato il proprio riporto in e il

ingresso. Il modulo CLU restituisce in uscita il CarryOut

bit di propagazione complessiva pCLA,4 lessiva gCLA,4 , calcolati come segue:

bit di generazione comp-

CarryOutCLA,4

CarryOutCLA = c4 = g3 +(g2 p3 )+(g1 p2 p3 )+(g0 p1 p2 p3 )+(c0 p0 p1 p2 p3 )


(31)

pCLA,4 = p3 p2 p1 p0 gCLA,4 = g3 + (g2 p3 ) + (g1 p2 p3 ) + (g0 p1 p2 p3 )


16-bit Ripple-Carry-Lookahead Adder

(32) (33)

62 : somma due sequenze a

16 bit bit

A = a15 , ..., a0 B = b15 , ..., b0 , restituendo la sequenza somma a 16 S = s15 , ..., s0 e il CarryOut CarryOutRCLA,16 = c16 . E' un blocco

funzionale costituito da 4

4-bit-CLA connessi in cascata, cio con l'uscita


CarryIn(CLA,4)i+1

CarryOut(CLA,4)i

successivo, e ogni modulo la la

4-bit-CLA con connessione parallela al modulo 16-bit-Carry-Lookahead Unit63 . Ogni modulo (4 bit CLA)i restituisce
i-esima
sottosequenza somma a 4 bit

dell'uno connessa con l'ingresso

del

Si = (ai+3 + bi+3 ), ..., (ai +

60 cio il carry generato dalla somma dei due bit meno sinicativi, anche detti Less Signicant
Bit (o LSB).

61 cio

il carry destinato alla somma dei due bit pi sinicativi, anche detti Most Signicant

Bit (o MSB).

62 anche detto RCLA. 63 o 16-bit-CLU.

20

bi )

i = 0, .., 3

della sequenza somma

gresso al modulo 16-bit-CLU il

erazione g(CLA,4)i , restituiti in uscita dalla 4-bit-CLU dell'i-esimo modulo (4 bit CLA)i . Il modulo 16-bit-CLU, che ha in ingresso p(CLA,4)i
g(CLA,4)i
e in ingresso

bit di propagazione p(CLA,4)i e il bit di gen-

S = S3 , S2 , S1 , S0

e mette in in-

c0 , interagisce con i moduli (4 bit CLA) calcolando il carry CarryIn(CLA,4) di ogni modulo 4-bit-CLA come segue:
(34)

CarryIn(CLA,4)i+1 = p(CLA,4)i + (g(CLA,4)i CarryOut(CLA,4)i )


Il modulo CLU restituisce in uscita il CarryOut

di propagazione complessiva pRCLA,16


gRCLA,16
, calcolati come segue:

e il

CarryOutRCLA,16 , il bit bit di generazione complessiva


(35) (36) (37)

CarryOutRCLA,16 = CarryOut(CLA,4)3 pRCLA,16 = gRCLA,16 =

ALU

La maggior parte istruzioni previste dall'ISA

64 dei processori possono

essere eseguite da una ALU che implementi le operazioni di somma, sottrazione, AND, OR e NOR. Nel corso dei nostri studi avremo a che fare con il processore MIPS-32. Le nozioni appena acquisite ci serviranno dunque ad implementare la ALU di questo processore. La ALU MIPS-32 una 32-bit ALU ottenuta dalla connessione seriale di 32 moduli 1-bit AND/OR/NOR/SUM/SUB ALU opportunamente modicati per implementare le istruzioni:

AND OR NOR somma sottrazione slt

65 66

salto condizionato beq

La ALU MIPS-32 riceve in ingresso due sequenze a 32 bit

b31 , ..., b0

e il segnale di controllo a 4 bit

la sequenza a 32 bit

Result

e le

A = a31 , ..., a0 B = ALU Operation, restituendo in uscita sequenze a 1 bit Zero, Overf low e CarryOut. ALU Operation.

Naturalmente il valore di queste uscite dipender dalla specica operazione eseguita, alla cui selezione adibito il segnale di controllo

e B a 32 bit in ingresso, la ALU restituisce in A < B , uguale a 0 in tutti gli altri casi. 66 branch-equals. Date due sequenze A e B a 32 bit in ingresso, la ALU restituisce in uscita una sequenza a 1 bit detta Zero uguale a 1 se A = B , uguale a 0 in tutti gli altri casi. uscita una sequenza a 32 bit uguale a 1 se

64 Instruction Set Architecture. 65 set-on-less-than. Date due sequenze A

21

ALU Operation AInvert 0 0 0 0 0 1 BNegate 0 0 0 1 1 1 Operation 00 01 10 10 11 00

Operazione Eseguita AND OR somma sottrazione

67

set-on-less-than NOR

Entrando nel dettaglio della ALU vediamo uno schema circuitale in cui gi possiamo apprezzare le modiche apportate alle ALU viste in precedenza. Le principali modiche riguardano:

BNegate: racchiude in un unico segnale a 1 bit quelle che erano le fun-

zioni di BInvert e di CarryIn. non viene complementata e

Quando BN egate = 0 la sequenza B CarryInALU0 = 0: ci mette la ALU nelle Quando viene complementata e

condizioni di svolgere qualsiasi operazione logica o di somma.

BN egate = 1

la sequenza

CarryInALU0 = 1:

ci mette la ALU nelle condizioni di svolgere l'operazione di sottrazione.


Set: uscita presente solo nel modulo

LessALU0 69 .

i MSB

68 .

ALU31 , il quale si occupa di elaborare

Set = SM SB ,

e si di occupa di trasferire il proprio segnale a Se il

Quando alla ALU richiesto di eseguire l'operazione slt,

viene eseguita l'operazione di sottrazione. restituire in uscita la sequenza a 32 bit

SM SB = 1
Se il

questo vuol

dire che la sottrazione darebbe risultato negativo, quindi la ALU dovr

S = 031 ...10 .

SM SB = 0

questo vuol dire che la sottrazione darebbe risultato positivo, quindi la ALU dovr restituire in uscita la sequenza a 32 bit

S = 031 ...00 .

Less: ingresso presente in ogni modulo 1-bit ALU e utilizzato nel caso

venga richiesto alla ALU di eseguire l'operazione slt. In ogni modulo 1-bit ALU il Multiplexor 4-1 pu selezionare in uscita e che per rispettare la richiesta di un'operazione slt

si = LessALUi . Notiamo LessALU0 = SetALU31

LessALUi = 0

i = 1, ..., 31. S = 031 ...00 ,


uguale a 0 altrimenti.

Zero: uscita uguale a 1 se

Overflow: uscita uguale a 1 se si presenta Overow, uguale a 0 altri-

menti. modulo

E' un'uscita del modulo

Overf lowDetection,

presente solo nel

ALU31 .

Entrando ancor pi nel dettaglio vediamo lo schema circuitale dei singoli moduli a 1-bit ALU, potendo cos comprendere come siano state eettivamente implementate le modiche apportate. Notiamo la sostanziale dierenza tra il modulo

ALU31

e i moduli

ALUi

i = 0, ..., 30.

68 Most 69 Less

Signicant Bit.

ALUi

=0

i = 1, ..., 31.

22

m uscite. Restituisce in uscita tutti gli m = 2n mintermini Dj j = 0, ..., 2n 1 degli n ingressi xi i = 0, ..., n 1. Per ogni combinazione degli n ingressi tutte le uscite Dj sono nulle tranne quella il cui pedice
con

Codica
n

Il Decoder n-m un blocco funzionale combinatorio di codica

ingressi ed

signed.

corrisponde all'equivalente decimale della combinazione in Un decoder n-m supporta l' il decoder disabilitato e le uscite sono tutte nulle. Per ingresso di abilitazione la seguente:

ingresso di abilitazione

codica binaria un(EN). Per

EN = 0

EN = 1

il decoder

abilitato e si comporta come descritto sopra. Per la TT di un decoder 3-8 con

EN
0 1 1 1 1 1 1 1 1

x0
x 0 0 0 0 1 1 1 1

x1
x 0 0 1 1 0 0 1 1

x2
x 0 1 0 1 0 1 0 1

D0
0 1 0 0 0 0 0 0 0

D1
0 0 1 0 0 0 0 0 0

D2
0 0 0 1 0 0 0 0 0

D3
0 0 0 0 1 0 0 0 0 con

D4
0 0 0 0 0 1 0 0 0

D5
0 0 0 0 0 0 1 0 0 decoder

D6
0 0 0 0 0 0 0 1 0

D7
0 0 0 0 0 0 0 0 1

Possiamo costruire un decoder

2n-2

2n

2 +1

n-2

Selezione

2n -170 : un blocco funzionale combinatorio di se71 s . Propaga lezione con 2 ingressi xi , 1 uscita z , e con n segnali di selezione i n in uscita il segnale di uno dei 2 ingressi, selezionando, attraverso i segnale
Il Multiplexer

di selezione generati da un lezione sono dunque i

decoder, l'ingresso da propagare. I segnali mintermini dei 2n ingressi, generati dal decoder.

di seIntu-

itivamente, restituisce in uscita il segnale dell'ingresso il cui pedice corrisponde all'equivalente decimale della combinazione dei segnali di selezione in

binaria unsigned.
s0
... ...

codica

Un Multiplexer n-1 pu essere utilizzato per sintetizzare

un'unica e qualunque funzione booleana di

log2 n variabili72 .

La TT e la formula

costitutiva di un multiplexer n-1 sono le seguenti:

sn1
...

z xs0 ,...,sn1
...

...

xs0 ,...,sn1
2n 1

z=
k=0
Il demultiplexer 1-2 con

mk xk

(38)

n 73

un blocco funzionale combinatorio di selezione e con

ingresso

x, 2

uscite

zi ,

n segnali di selezione si .

Propaga il seg-

70 anche detto MUX 2n -1. 71 anche detti segnali di indirizzo. 72 vedi sintesi RC tramite Multiplexing. 73 anche detto DEMUX 1-2n .

23

nale in ingresso, in una delle come

2n

uscite, selezionando, attraverso i segnali di

selezione, l'uscita in cui propagare. Un Demultiplexer 1-2

decoder.
... ...

pu essere utilizzato

La TT e la formula costitutiva di un Demultiplexer 1-2

sono le

seguenti:

s0
...

sn1
...

z0 x
0 0

... 0...0 0...1...0 0...0

z2n 1
0 0

... ...

x i = 0, ..., 2n 1 j = i
(39)

zi = x mi zj = 0

PLA
uscite

Un PLA

74 un blocco funzionale combinatorio con

zi .

E' composto da

n Inverter, k

AND e

n ingressi xi ed m m OR. In un PLA possiamo dis-

tinguere una matrice AND e una matrice OR. La programmazione consiste nel costruire su ogni riga della matrice and un implicante della funzione e nel combinare poi tali implicanti nella matrice OR. Un PLA pu essere utilizzato per sintetizzare

funzioni booleane a

variabili in forma SoP

75 .

ROM
con

Una ROM ingressi

xi

ed

76 un blocco funzionale combinatorio di memoria statica m uscite z . E' una memoria di sola lettura77 . Possiamo
i

immaginare una ROM come una matrice Gli ingressi selezionano, tramite un pu essere utilizzata per sintetizzare SoP

decoder,

2n m, detta appunto matrice ROM.

una fra le righe della matrice,

leggendo cos in uscita il valore memorizzato su ciascuna colonna. Una ROM

78 .

funzioni booleane a

variabili in forma

74 ovvero Programmable Logic Array, anche detto matrice logica programmabile. 75 vedi sintesi RC tramite PLA. 76 ovvero Read-Only Memory. 77 ma ne sono state implementate delle varianti come le EPROM, le quali permettono
riscrivere la matrice.

di

78 vedi

sintesi RC tramite ROM.

24

1.3

Reti Sequenziali

Una rete sequenziale una rete logica in cui l'output dipende dall'input e dallo stato di memoria, secondo le caratteristiche della rete. E' dunque una rete logica costituita da

rete combinatoria elementi di memoria: circuiti in grado di immagazzinare informazioni

binarie, che deniscono istante per istante lo stato di memoria del circuito sequenziale. Gli ingressi
futuro

xi ,

insieme con lo stato presente

yi

immagazzinato negli el-

ementi di memoria, determinano il valore delle uscite

zi

nonch dello stato

Yi ,

ovvero lo stato di memoria nel quale la rete sequenziale si trover a

transizione avvenuta. Quindi una rete sequenziale caratterizzata dal fatto che le uscite non dipendono solo dall'ingresso all'istante

t,

ma anche dalla sequenza

degli ingressi applicati a partire dalla condizione iniziale. Il numero di stati ria: cos

79 in

cui pu trovarsi una rete sequenziale dipende dal numero di elementi di memo-

elementi di memoria possono rappresentare

2m

stati

80 . Una rete

sequenziale con

elementi di memoria ed

uscite algebricamente denita

dal sistema di equazioni di ingresso: cio un sistema con


transizione di stato

funzioni di

Y = (x, y)

che deniscono lo stat futuro in funzione

degli ingressi e dello stato presente, ed presente.

funzioni di uscita

z = (x, y)

che

deniscono l'uscita dalla rete sequenziale in funzione degli ingressi e dello stato

1.3.1

Automa a Stati Finiti


81 un modello astratto che fa parte della classe

L'automa a stati finiti

82 degli automi , ed adatto a rappresentare reti sequenziali: dunque un utile


strumento formale per condurre analisi e sintesi di reti sequenziali. Dal punto

di vista puramente matematico un modello astratto che denisce un sistema con input ed output discreti, che pu trovarsi fra

stati distinti.

Quindi un

automa a stati niti analiticamente descritto dalla seguente quintupla

ASF =< I, O, Q, , > I: O:


79 lo
insieme discreto di input. insieme discreto di output.

(40)

stato rappresenta una condizione in cui il sistema si trova tenendo conto degli input

ricevuti in precedenza, e da esso dipende il comportamento del sistema a fronte di input successivi.

80 questo

perch un elemento di memoria pu immagazzinare solo 1 bit di informazione, che

pu essere 0 o 1.

81 anche detto ASF. 82 con il termine automa

indichiamo un qualunque dispositivo che esegue in modo autonomo

un compito specico in funzione degli ordini ricevuti.

25

Q:

insieme discreto di stati, con

q0 Q stato iniziale.
e come codominio l'insieme

: I Q Q:

funzione di transizione di stato, la quale ha come dominio

l'insieme di tutte le coppie

(xi , qi ),

Q.

: I Q O: funzione di uscita, la quale ha come dominio tutte le coppie (xi , qi ), e come codominio l'insieme Q.
Distinguiamo due tipologie di automi in base alla loro

l'insieme di

funzione di uscita:
= (xt , qt ), zt = (qt ),

automa di Mealey

83 : l'uscita z al tempo t denita come z t

cio l'uscita dipende dagli ingressi e dallo stato presente.


automa di Moore

84 : l'uscita

al tempo

denita come

cio l'uscita dipende esclusivamente dallo stato presente. Notiamo dunque che le reti sequenziali sono automi di Mealey. E' sempre possibile trasformare ogni automa di Mealy nel corrispondente automa di Moore, e viceversa. La descrizione di un automa un procedimento di astrazione atto a denire la specica funzionale dell'automa, non preoccupandosi della sua struttura logica. Questa descrizione fa uso delle seguenti rappresentazioni:

diagramma degli stati: una rappresentazione a

digrafo,

i cui nodi

rappresentano gli stati, e i cui archi rappresentano le transizioni in funzione dell'input nodo marcato dall'etichetta la transizione di stato e dall'etichetta

85 . Nel diagramma di stato del generico ASF di Mealey, ogni

qi ,

dove

arco invece marcato dall'etichetta

xi l'ingresso che induce zi = (xi , qi ) l'uscita che deriva dalla transizione.


dove

qi xi /zi ,

indica lo specico stato; ogni

Nel diagramma di stato del generico ASF di Moore, ogni nodo marcato

qi /zi ,

dove

qi

indica lo specico stato e

ad esso associata; ogni arco invece marcato dall'etichetta l'ingresso che induce la transizione di stato.

zi = (qi ) l'uscita xi , dove xi

tabella di flusso: una rappresentazione a

matrice Q I , le cui celle


(righe) ed ingresso

qij

specicano lo stato futuro e l'uscita, prodotti dall'automa in corrispon-

denza di un determinato stato presente contiene l'etichetta

qi Q

xj I

(colonne). Nella tabella di usso del generico ASF di Mealey, ogni cella denza dello stato presente

qij /zij , dove qij indica lo stato futuro in corrisponqi e dell'ingresso xj , e zij rappresenta l'uscita
Nella tabella di usso del generico ASF di

che deriva dalla transizione.

Moore, ogni cella contiene l'etichetta

stato futuro in corrispondenza dello stato presente

qij = (qi , xj ) indica lo qi e dell'ingresso xj ; si aggiunge un ultima colonna, le cui celle contengono l'etichetta zi , dove zi = (qi ) indica l'uscita in corrispondenza dello sato presente qi .
dove

qij ,

83 anche detto automa improrio. 84 anche detto automa prorio. 85 trattandosi di archi orientati, il
sia dall'input che dallo stato.

loro orientamento esprime la dipendenza della transizione

26

Due stati

q1 q2

si dicono stati equivalenti

86

q1 q2

se, in corrispondenza

di uno stesso ingresso ingressi.

x I,

si comportano allo stesso modo, cio eettuano

le stesse transizioni di stato e producono le stesse uscite a fronte degli stessi Due o pi stati equivalenti fra loro formano una classe di equivalenza. Ci si verica se sono soddisfatte le seguenti

(x, q1 ) = (x, q2 ) (q1 ) = (q2 ) (x, q1 ) (x, q2 )


87

x I

(41)

Due automi dello stesso tipo se per ogni stato viceversa.

ASF1 ASF2

si dicono automi equivalenti

di

ASF1

esiste uno stato

s'

di

ASF2

equivalente ad

s,

La minimizzazione di un automa a stati finiti stati equivalenti dell'automa. detto automa a stati finiti minimo

88 mira ad eliminare gli

L'automa risultante dalla minimizzazione viene

sono le classi di equivalenza

89 : esso

unico

e avr

tanti stati quante

ricavate dall'ASF di partenza. Il metodo delle

partizioni una tecnica di minimizzazione ASF, e prevede i seguenti passi:

1. ricavare la tabella di usso dell'ASF. 2. individuare una partizione di cardinalit minima di stati, suddivisi in

di equivalenza.
formula

classi

(a) individuiamo classi di equivalenza, i cui stati soddisno anzitutto la

(x, q1 ) = (x, q2 ) (q1 ) = (q2 )

x I .

del generico ASF di Mealey, scriviamo per ogni stato la

uscita,

sequenza in

Nel caso

e mettiamo nella stessa classe di equivalenza quegli stati che Nel caso del generico ASF di

hanno la stessa sequenza di uscita.

Moore, consultiamo l'ultima colonna e mettiamo nella stessa classe di equivalenza quegli stati che hanno la stessa uscita. (b) all'interno di ogni classe di equivalenza individuata, verichiamo, di due stati in due stati, la formula

(x, q1 ) (x, q2 )

x I .

Pren-

diamo due stati della stessa classe di equivalenza e verichiamo che, in corrispondenza di ogni ingresso, i due stati presentino stati futuri appartenenti ad una stessa classe di equivalenza. Se cos non fosse, creiamo un'altra classe di equivalenza contenente lo stato che non soddisfa la condizione. 3. scegliere un solo stato, detto stato rappresentante, per ciascuna classe di equivalenza.

86 anche detti stati ridondanti. 87 o entrambi automi di Mealey, o entrambi 88 anche detta minimizzazione ASF. 89 anche detto ASF minimo.

automi di Moore.

27

4. creare una nuova tabella di usso ASF con gli stessi ingressi di quella di partenza, ma tante righe quante sono le classi di equivalenza. Popoliamo la tabella di usso con i dati relativi agli stati rappresentanti.

1.3.2

Analisi e sintesi di reti sequenziali


90 , ci concen-

Poich la maggior parte delle reti sequenziali fa uso di Flip-Flop

treremo molto, in fase di analisi e sintesi, su questa tipologia di rete.

Analisi

L'analisi di una rete sequenziale

91 : consiste nel denire la speci-

ca funzionale della rete, a partire dalla sua struttura logica. Ricaviamo cio una descrizione dell'evoluzione temporale degli ingressi, delle uscite e dello stato di memoria. Dato un circuito logico, deniamo quindi il suo

tramite ASF. I passi dell'analisi RS sono i seguenti:

assegnamo i nomi alle variabili di ingresso

comportamento

xi , di uscita zi , di stato presente

yi

e di stato futuro

Yi .

Nella struttura logica, lo stato presente individu-

ato dalle uscite degli FF; mentre lo stato futuro individuato dagli ingressi agli FF.

 

denire il sistema di equazioni di ingresso. deniamo tipologia di RS e sue caratteristiche. Una RS con funzioni di uscita e funzioni di uscita

zi = w(xi , qi ) una RS di Mealey ; mentre una RS con zi = w (qi ) una RS di Moore. Una RS con m FF n uscite denisce un ASF a 2m stati e n uscite.
costruiamo la tabella di stato, a partire dal sistema di equazioni di ingresso. costruiamo la tabella di usso, a partire dalla tabella di stato. ricaviamo la tabella di usso dell'ASF minimo, applicando il processo di minimizzazione alla tabella di usso.

costruiamo la tabella di usso.

costruiamo il diagramma degli stati, a partire dalla tabella di usso dell'ASF minimo.

Sintesi La sintesi di una rete sequenziale92 consiste nel determinare 93 l'ASF che ne descriva il funzionamento, a partire dalla sua specica funzionale .
Dall'ASF ricaviamo poi la struttura logica della rete. I passi della sintesi RS sono i seguenti:

costruiamo il diagramma degli stati dell'ASF, a partire dalla specica funzionale.

90 anche detti FF. 91 anche detta analisi RS. 92 anche detta sintesi RS. 93 eventualmente in forma

verbale.

28

deniamo tipologia ASF. ASF di Mealey e ASF di Moore hanno infatti etichette dierenti sui nodi ed archi del diagramma degli stati.

costruiamo il diagramma degli stati, in base alla tipologia ASF.

costruiamo la tabella di usso dell'ASF, a partire dal diagramma degli stati. Dal numero di stati possiamo dedurre il numero di variabili di stato

yi

necessarie. Infatti

abili di stato. Se inutilizzate con

valori don't care 94 .

m<2

m stati sono codicati da log2 m varilog2 m , riempiamo le caselle delle codiche

ricaviamo di usso.

m+n mappe di Karnaugh, a partire dalla tabella di usso.

Ogni mappa di Karnaugh indicizzata in modo identico alla tabella

avremo futuro del

m mappe di Karnaugh relative alla variabili di stato Yi . Questo vuol dire che rappresentano il funzionamento
La prima mappa di Karnaugh conterr nelle sue celle i

F Fi .

valori della variabile

Y0 ,

la seconda quelli di

Y1 ,

e cos via...

avremo

mappe di Karnaugh relative alle variabili di uscita

zi .

La prima mappa di Karnaugh conterr nelle sue celle i valori della variabile

z0 ,

la seconda quelli di

z1 ,

e cos via...

 

ricaviamo la forma minima del sistema di equazioni di ingresso, applicando l'algoritmo di Karnaugh ad ognuna delle Karnaugh. costruiamo la struttura logica, a partire dal sistema di equazioni di ingresso.

m+n

mappe di

rete combinatoria: utilizziamo un elementi di memoria:

PLA95 . 96 utilizziamo dei Flip-Flop D .

Analisi e sintesi con Flip-Flop: Tavola caratteristica, Tavola di pilotaggio ed Equazione caratteristica L'analisi e la sintesi di reti sequenziali con FF fanno uso di strumenti che descrivono il particolare tipo di FF utilizzato:

tavola caratteristica: rappresentazione tabellare delle propriet logiche

del funzionamento del FF al trascorrere del tempo. In pratica partendo dagli ingressi al tempo

ricaviamo lo stato di memoria

al tempo

t + 1.

E' particolarmente utile in fase di analisi.

tavola di pilotaggio: rappresentazione tabellare che denisce la com-

t per indurre una specica tranQ al tempo t + 1. In pratica partendo dallo stato di memoria Q al tempo t+1 ricaviamo gli ingressi necessari al tempo t. E' particolarmente utile in fase di sintesi.
binazione di ingressi necessaria al tempo sizione di stato di memoria

94 questo 95 se non 96 se non

ci sar utile per la minimizzazione tramite le mappe di Karnaugh. diversamente specicato. diversamente specicato.

29

equazione caratteristica

mente lo stato di memoria dello stato di memoria al

Q(t + 1): funzione che descrive t + 1, in funzione degli tempo t. Q


al tempo

analiticaingressi e

1.3.3

Classicazioni di reti sequenziali

Distinguiamo due tipologie di rete sequenziale in base alla

di memoria:

relazione ingressi/uscite/stato

rete sequenziale di Mealy: le uscite dipendono sia dagli ingressi che

dallo stato di memoria.


rete sequenziale di Moore: le uscite dipendono esclusivamente dallo

stato di memoria.

Una rete sequenziale di Moore pu essere sempre ri-

condotta all'equivalente rete sequenziale di Mealy, nel quale le uscite della rete sono direttamente conness alle uscite dei Flip-Flop.

degli ingressi :

Distinguiamo due tipologie di rete sequenziale in base al

criterio di osservazione

rete sequenziale sincrona

97 : il comportamento della rete denito


Utilizza

conoscendo lo stato degli ingressi in istanti discreti di tempo.

dunque segnali che hanno eetto sugli elementi di memoria soltanto in istanti discreti di tempo. Questo si ottiene per mezzo di un clock signal

98 , generato da un apposito circuito.

Sono le reti sequenziali pi

utilizzate.

Diciamo che un elemento di memoria

trasparente

quando

l'opportuno clock signal permette di copiare in uscita gli ingressi. Un elemento di memoria sincrono pu essere caratterizzato da diverse tipologie di trasparenza:

trasparenza level triggered: l'elemento di memoria traspar-

ente per tutto il periodo in cui il clock signal si mantiene costante. Distinguiamo dunque:

trasparenza negative-edge triggered: l'elemento di memo-

ria trasparente per tutto il tempo in cui il clock signal vale 0.


trasparenza positive-edge triggered: l'elemento di memo-

ria trasparente per tutto il tempo in cui il clock signal vale 1.

trasparenza edge triggered: l'elemento di memoria traspar-

ente nell'istante in cui il clock signal cambia valore.

In questi casi

il segnale di ingresso deve essere reso stabile prima del clock edge di trasparenza, e continuare ad essere stabile per un determinato tempo dopo questo clock edge. Il setup time indica il minimo tempo necessario in cui il segnale di ingresso deve essere valido prima del clock edge; l'hold time indica invece il minimo tempo necessario in cui il segnale di ingresso deve continuare ad essere valido dopo il clock edge. Distinguiamo:

97 anche 98 anche

detta rete sequenziale con ingresso di clock. detto segnale di sincronizzazione.

30

trasparenza negative-edge triggered

ria trasparente in corrispondenza del

signal, ovvero quando passa da 1 a 0.

fronte di discesa del clock fronte di salita del clock

99 : l'elemento di memo-

trasparenza positive-edge triggered

100 : l'elemento di memo-

signal, ovvero quando passa da 0 a 1.




ria trasparente in corrispondenza del

trasparenza Master-Slave: una trasparenza ibrida. L'elemento

di memoria acquisisce l'informazione in ingresso con trasparenza leveltriggered, ma la propaga in uscita in corrispondenza di un fronte del clock signal.

trasparenza Master-Slave positive-level triggered :

l'elemento di memoria acquisisce l'informazione in ingresso con

trasparenza positive-level triggered, e la propaga in uscita in corrispondenza del fronte di discesa del clock signal.

trasparenza Master-Slave negative-level triggered:

l'elemento di memoria acquisisce l'informazione in ingresso con

trasparenza negative-level triggered, e la propaga corrispondenza del fronte di salita del clock signal.

continuamente osservati e dalla loro evoluzione.

in uscita in

rete sequenziale asincrona: il comportamento dipende dagli ingressi

1.3.4

Elementi di memoria

L'elemento di memoria pi utilizzato il

Flip-Flop D,

in quanto il suo stato

futuro, come evidenziato dalla sua equazione caratteristica principali elementi di memoria sono:

102 un blocco funzionale. I l'ingresso. Un elemento di memoria intuitivamente

101 , coincide con

Latch

SR103 :

da due ingressi S e R, i quali controllano lo porte NOR con mentata Lo

stato di set/reset/hold, due collegamenti incrociati, da un'uscita Q e dalla sua complememorizza nel latch

elemento di memoria asincrono. E' un circuito costituito

Q.

I collegamenti incrociati rigenerano l'informazione binaria in

funzione degli ingressi, e le uscite la rendono sempre disponibile all'esterno.

stato di set

memorizza il bit 0; lo

stato di hold

SR

il bit 1; mentre lo

stato di reset
SR

mantiene invariato lo stato del Latch

SR.
in

Gli ingressi permettono dunque di modicare o meno l'informazione

binaria immagazzinata. All'atto dell'accensione lo stato del Latch

stato indenito. SR = 10 imposta lo stato di set; SR = 01 imposta lo

99 anche detta trasparenza falling-edge triggered. 100 anche detta trasparenza rising-edge triggered. 101 Q(t + 1) = D(t). 102 teoricamente errato riferirsi agli elementi di
solitamente i Register e i Counter.

memoria di una rete sequenziale con il

termine blocco funzionale. Infatti, con il termine blocco funzionale sequenziale indichiamo

103 anche

detto Latch Set-Reset.

31

stato di reset;

SR = 00 imposta lo stato di hold. Q


0 0 1 1 0 stato di set stato di reset stato indenito

Occorre evitare

SR = 11

in quanto comporta uno stato indenito del Latch S 1 0 0 0 1 R 0 0 1 0 1

SR.

Q
1 1 0 0 0

Latch

SR:

elemento di memoria asincrono. E' un Latch

SR costituito da

porte NAND, piuttosto che da porte NOR, i cui ingressi S e R sono complementati per soddisfare l'equivalenza NOR/NAND. Funziona esattamente come un Latch corre evitare

SR. Lo stato di hold viene per indotto da SR = 00. OcSR = 11 in quanto comporta uno stato indenito del latch Q
0 0 1 1 1 stato di set stato di reset stato indenito

SR. S R
1 0 0 0 1 0 0 1 0 1

Q
1 1 0 0 1

Latch

con

trasparenza positive-level triggered. E' un Latch SR i cui ingressi S e R vengono abilitati da un clock signal C . L'informazione immagazzinata
solo quando il clock signal asserito. Ci vuol

SR

con ingresso di controllo: elemento di memoria sincrono

sempre disponibile tramite le uscite, ma gli ingressi possono pilotare lo

stato di set/reset/hold
nch dagli ingressi.

dire che le uscite seguono puntualmente i cambiamenti nei dati di ingresso

C = 1; mentre per C = 0 viene indotto lo stato di hold a prescindere R


x 0 1 0 1

C
0 1 1 1 1

S
x 0 0 1 1

Q
stato di hold stato di hold stato di reset stato di set

Q=0 Q=1

stato indenito

Latch D

104 con controllo attivo alto: elemento di memoria sin-

crono con

trasparenza positive-level-triggered.

E' un Latch

SR

con in-

gresso di controllo, avente un unico ingresso D che si sdoppia in un ingresso asserito e in uno complementato. Funziona esattamente come un Latch

SR
104 anche

con ingresso di controllo, ma

elimina la possibilit di stato indenito.

Lo sdoppiamento di D infatti fa si che i vecchi ingressi S e R del Latch


detto Delay Latch.

32

SR C
0 1 1

con ingresso di controllo non assumano mai lo stesso valore, evitando

cos gli stati indeniti.

D
x 0 1

Q
stato di hold stato di reset stato di set

Q=0 Q=1
E' un Latch D con controllo

Latch D con controllo attivo basso: elemento di memoria sincrono

con

trasparenza negative-level-triggered.
D
x 0 1

attivo alto, in cui per il clock signal viene complementato in ingresso.

C
1 0 0

Q
stato di hold stato di reset stato di set

Q=0 Q=1

Flip-Flop Master-Slave

di memoria sincrono con trollo, e da un inverter.

trasparenza Master-Slave positive-level triggered.


SR
con ingresso di conFunziona esattamente come un Latch

SR con controllo attivo alto:

elemento

E' un blocco funzionale costituito da due Latch ingresso di controllo, ma

evita di propagare in uscita le transizioni multiple durante la trasparenza105 . Il Latch di sinistra detto Master Latch e
memorizza gli ingressi con trasparenza level-triggered; quello di destra detto in corrispondenza del fronte di discesa del clock signal. Quando

SR

con

Slave Latch e propaga in uscita lo stato di memoria del Master Latch


C=1
il

Master Latch viene pilotato dagli ingressi e pu subire transizioni multiple, ma le sue uscite non potranno pilotare lo Slave Latch, quindi le uscite del Flip-Flop Master-Slave Quando

SR

manterranno invariato il proprio stato.

C =0

l'ultimo stato assunto dal Master Latch potr pilotare lo Notiamo che quando

Slave Latch, il quale propagher il proprio stato alle uscite del Flip-Flop Master-Slave

SR.

SR

mantiene lo

stato di hold.

C =1

il Flip-Flop Master-Slave

Flip-Flop Master-Slave

SR

triggered.

mento di memoria sincrono con

trasparenza Master-Slave negative-level

con controllo attivo basso:

ele-

E' un Flip-Flop Master-Slave SR con controllo attivo alto, in

cui per il clock signal viene complementato in ingresso.


Flip-Flop Master-Slave JK con controllo attivo alto:

mento di memoria sincrono con

triggered.
SR ma

trasparenza Master-Slave positive-level


sostituendovi lo

ele-

E' un Flip-Flop Master-Slave SR con due porte AND aggiun-

tive agli ingressi. Funziona esattamente come un Flip-Flop Master-Slave

elimina la possibilit di stato indenito

stato di

105 le

transizioni multiple durante la trasparenza del Latch si propagano nella rete sequenziale

causando le cosiddette delle corse critiche.

33

complementazione 106 .
complementato.

Quando

C = 1

JK = 11

lo stato viene infatti

C
0 1 1 1 1

J
x 0 1 0 1

K
x 0 0 1 1

Q
stato di hold stato di hold stato di set stato di reset stato di complementazione ele-

Flip-Flop Master-Slave JK con controllo attivo basso:

triggered.

mento di memoria sincrono con

trasparenza Master-Slave negative-level


107 : elemento di memoria sinE' un Flip-Flop Master-

E' un Flip-Flop Master-Slave JK con controllo attivo alto, in

cui per il clock signal viene complementato in ingresso.


Flip-Flop D negative-edge triggered

crono con

trasparenza negative-edge triggered.

Slave SR con controllo attivo alto in cui il Master Latch un Latch D.

Flip-Flop D positive-edge triggered

crono con

trasparenza positive-edge triggered.

108 : elemento di memoria sinE' un Flip-Flop D negative-

edge triggered, in cui per il clock signal viene complementato in ingresso.

Flip-Flop JK negative-edge triggered

sincrono con Slave un

trasparenza negative-edge triggered.

109 : elemento di memoria


E' un Flip-Flop Master-

dal Master Latch sul fronte di discesa del clock signal, trasparenza positive-edge triggered.

SR in cui il Master Latch un Latch D. Funziona esattamente come Flip-Flop Master-Slave SR, in cui per lo Slave Latch viene pilotato
ovvero quando il

clock signal passa da 1 a 0.

Flip-Flop JK positive-edge triggered

110 : elemento di memoria sinE' un Flip-Flop JK negative-

crono con

edge triggered, in cui per il clock signal viene complementato in ingresso. I Flip-Flop sono spesso corredati di ingressi speciali, detti ingressi diretti, per il

set/reset asincroni. L'ingresso diretto per il set asincrono denominato direct set111 . L'ingresso diretto per il reset asincrono denominato direct reset112 . I segnali in questi ingressi causano la transizione nello stato di memoria
corrispondente, indipendentemente dalla presenza o meno del clock signal. Lo scopo degli ingressi diretti di togliere lo stato indenito in cui si trovano i Flip-Flop di un sistema digitale nel momento in cui inizia l'alimentazione del circuito.

106 anche 107 anche 108 anche 109 anche 110 anche 111 anche 112 anche

detto toggle state. detto Flip-Flop D falling-edge triggered. detto Flip-Flop D rising-edge triggered. detto Flip-Flop JK falling-edge triggered. detto Flip-Flop JK rising-edge triggered. detto preset. detto clear.

34

Tipicamente, in un circuito si utilizza il Flip-Flop che corrisponde allo stesso tipo di transizione del clock signal, per esempio scegliendo solo Flip-Flop positiveedge triggered. Tuttavia nei casi in cui si utilizzino Flip-Flop aventi modi di attivazione diversi, si tende a far commutare le uscite dei diversi Flip-Flop nello stesso tempo, utilizzando opportune complementazioni del clock signal in ingresso ai diversi Flip-Flop. Dato che l'aggiunta di circuiti logici sul circuito di distribuzione del clock signal tende a introdurre slittamenti di fase indesiderati,

generatori di clock che forniscano sia il clock signal diretto sia quello negato, in modo che i due segnali mantengano un accurato sincronismo.
si preferisce usare Nel seguito comunque assumeremo, a meno di indicazione contraria, che tutti i Flip-Flop siano del tipo simbolismo unico e diagrammi temporali confrontabili.

positive-edge triggered, in modo da utilizzare un


I blocchi funzionali sequenziali pos-

Blocchi funzionali sequenziali

sono essere costruiti a partire dagli elementi di memoria appena visti. I blocchi funzionali sequenziali pi importanti sono:

n-bit

memorizzazione di una sequenza a n bit durante l'elaborazione dei dati.


un unico clock signal

Register: blocco funzionale sequenziale sincrono utilizzato per la

E' I e e

un blocco funzionale costituito da

n Flip-Flop sincronizzati tra loro tramite

in AND con il

segnale di controllo RegWrite.


C=0
o quando

dati in uscita sono sempre disponibili. Quando

RegW rite = 0, il RegW rite = 1 gli

Register nello stato di hold; mentre quando

C=1 C =1

ingressi determinano lo stato di set/reset dei corrispon-

denti elementi di memoria, i quali immagazzinano l'informazione propagandola in uscita secondo le modalit previste dagli elementi di memoria di cui si compone il Register. amento di stato. L'informazione immagazzinata sempre disponibile tramite le uscite e resta invariata no ad un eventuale cambi-

m n-bit
zato per la

Register File: blocco funzionale sequenziale sincrono utiliz-

dei dati.
  

memorizzazione di una sequenza a n bit durante l'elaborazione


m n-bit
Register sincroniz-

E' un blocco funzionale costituito da

zati tra loro tramite un unico clock signal. Generalmente dispone di: due porte di selezione in ingresso ReadRegister dei registri da leggere. una porta di selezione in ingresso WriteRegister del registro su cui scrivere. due porte di ReadData in uscita: ognuno degli

m n-bit

Register

propaga in uscita la propria informazione. Abbiamo dunque bisogno di 2 MUX m-1 per selezionare le due informazioni da propagare in uscita dal

m n-bit

Register File tramite le porte ReadData.

 

una porta di WriteData in ingresso. un segnale di controllo RegWrite in AND con il clock signal.

35

n-bit

sequenzializzazione dei processi. E' un n-bit Register secondo una sequenza predeterminata di stati, grazie

Counter: blocco funzionale sequenziale sincrono utilizzato nella

il cui stato evolve all'applicazione di

clock signal.

36

Potrebbero piacerti anche