Sei sulla pagina 1di 39

Corso di Calcolatori Elettronici I A.A.

2011-2012

Macchine combinatorie
Lezione 10

Universit degli Studi di Napoli Federico II Facolt di Ingegneria

Analisi e Sintesi di un sistema 1/2


Per analisi di un sistema si intende l'individuazione delle relazioni di causa/effetto tra i segnali di ingresso e uscita, attraverso l'esame di una rappresentazione schematica dei suoi componenti elementari e dei collegamenti che li interconnettono, ovvero: data la rappresentazione schematica del sistema, individuarne il comportamento. Per sintesi di un sistema si intende l'individuazione dei componenti e delle interconnessioni necessarie per realizzarlo seguendo la preassegnata specifica funzionale: data la specifica funzionale individuarne la struttura.

Analisi e Sintesi di un sistema 2/2


Analisi
Data la descrizione della STRUTTURA (come fatta)

Sintesi
Data la descrizione del COMPORTAMENTO (cosa deve fare)

Determinarne il COMPORTAMENTO (cosa fa)

Determinarne la STRUTTURA (come fatta)

Tassonomia dei circuiti digitali


I circuiti digitali possono essere classificati in due categorie Circuiti combinatori
Il valore delle uscite ad un determinato istante dipende unicamente dal valore degli ingressi in quello stesso istante.

Circuiti sequenziali
Il valore delle uscite in un determinato istante dipende sia dal valore degli ingressi in quell istante sia dal valore degli ingressi in istanti precedenti Per definire il comportamento di un circuito sequenziale necessario tenere conto della storia passata degli ingressi del circuito

La definizione di circuito sequenziale implica due concetti: Il concetto di tempo Il concetto di stato

Macchine combinatorie
Reti logiche con n ingressi x1, x2, , xn e m uscite y1, y2, , ym che realizzano la corrispondenza: y1 = f1(x1, x2, , xn) ...... ym = fm(x1, x2, , xn) x1 y1

xn

ym

La macchina combinatoria: un esempio


Il campanello
1 ingresso (il pulsante), con due possibili valori (premuto, rilasciato) 1 uscita (la suoneria), con due possibili valori (suono, nessun suono)

x: pulsante y: suoneria
Premuto Rilasciato Suono Nessun suono

y = f(x)

Macchine combinatorie

Una macchina combinatoria una rete logica con n ingressi (x1, x2, , xn) ed m uscite (y1, y2, , ym) ed tale che ad ogni insieme di valori degli ingressi corrisponde un preciso insieme di valori delle uscite Il comportamento di una rete combinatoria nxm pu essere descritto tramite:
una tabella di verit in cui viene specificato il valore dell uscita per ognuna delle possibili combinazioni dei valori degli ingressi m funzioni booleane, una per ogni uscita, ciascuna delle quali esprime il valore della corrispondente variabile di uscita in funzione delle n variabili di ingresso

I limiti delle macchine reali


Tempo di risposta
Una rete ideale reagisce istantaneamente ad ogni sollecitazione in ingresso, ovvero U(t)= (I(t)) In una rete reale la variazione dell uscita a fronte di una variazione degli ingressi avviene con un ritardo (tempo di risposta): U(t+)= (I(t)) U
I
a)
Ritardo puro

b)

Il Tempo di risposta
Il Tempo di risposta di una macchina il ritardo d=tf ti con il quale una variazione sull ingresso seguita da una variazione sull uscita

1 0 1 0

X1 X2 y

Macchine combinatorie
In una macchina combinatoria i valori delle uscite dipendono esclusivamente dai valori degli ingressi macchina combinatoria ideale: tale dipendenza istantanea macchina combinatoria reale: presenza di ritardo tra l istante in cui c una variazione in uno degli ingressi e l istante in cui l effetto di questa variazione si manifesta sulle uscite E importante notare come ciascuna yi pu essere decomposta in funzioni componenti due distinte yi possono contenere una identica funzione componente Ci comporta, ad esempio, una potenziale diminuzione di porte elementari rispetto ad una realizzazione indipendente delle yi

Decodificatore (decoder) 1 su m
Un decodificatore una macchina che riceve in ingresso una parola codice (C) su n bit e presenta in uscita la sua rappresentazione decodificata (linee U0, UN-1) su m=2n bit
Co Cn-1 Um-1 U0

Decoder 2 su 4
U0 = B . A U 1 = B. A U2 = B . A U3 = B . A A B

Esempio: decoder 2:4


B A U0 U1 U2 U3
1 2 3 4

0 0 1 1

0 1 0 1

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

Decoder 2 su 4
A 0 0 1 1 0 0 1 1 B 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 U0 U1 U2 U3 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 A,B ingressi segnale di abilitazione U0,U3 uscite

A B

DEC 2:4

U0 U1 U2 U3

Composizione modulare di Decoder 4:16


DEC 2:4 U0 DEC U1 2:4 U2 U3 DEC 2:4 DEC 2:4 DEC 2:4 U0 U1 U2 U3 U0 U1 U2 U3 U0 U1 U2 U3 U0 U1 U2 U3 U0 U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11 U12 U13 U14 U15

1 C D

A B

Encoder o codificatore
Un codificatore riceve in ingresso una rappresentazione decodificata (linee x0, xm-1) e fornisce in uscita una rappresentazione con un codice a lunghezza fissa di n bit L uscita la parola codice associata a xi x0 se xi=1 zo ed =1 (abilitazione) Vincolo su ingressi: xi xj = 0 per ij zm-1 xN-1

Codificatore a 4 ingressi

Codificatore 8-4-2-1
z3= x8+x9 z2= x4+x5+ x6+x7 z1= x2+x3+ x6+x7 z0= x1+x3+ x5+x7+x9
cifra X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 0 1 2 3 4 5 6 7 8 9 8-4-2-1 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

Espressioni ottenute considerando opportunamente le configurazioni di ingresso dont care

Arbitro di priorit
q Un codificatore pu essere preceduto da una rete a priorit che, in caso di pi ingressi contemporaneamente alti, filtra quello con priorit assegnata maggiore Rete a priorit n ingressi Xi n uscite corrispondenti Fi, che rappresentano gli ingressi del codificatore fra gli ingressi definita una priorit, ad esempio:
per fissare le idee Xi prioritario su Xj se i < j

F1 = X 1 F2 = X 2 X 1 Fn = X n X n 1 X 1

L'uscita Yi alta se e solo se Xi alto e tutti gli altri ingressi prioritari su Xi sono bassi.

Arbitro di priorit a 4 ingressi

Multiplexer lineare
Un Multiplexer lineare (ML) una macchina con:
n ingressi-dati (A0,,An-1) n segnali binari di selezione (0,, n-1), dei quali al pi uno attivo una uscita-dati B, che assume valore Ai se attivo i neutro se nessuna delle selezioni attiva

A0 An-1

MUXL

utilizzata quando pi linee devono essere convogliate verso un unica linea di uscita (bus)

n-1

Multiplexer lineare - realizzazioni


B = A0 0 + A11 + ... + An-1n-1 , n=4
Realizzazione I
Con porte AND e OR

Realizzazione II
A S 0 0 1 1 Uscita 0 z 1 0 0 z 1 1 Con porte 3-state
S=1, restituisce il valore di A S=0, restituisce un alta impedenza (apre il circuito)

Multiplexer (indirizzabile)
Multiplexer Lineare i cui segnali di abilitazione sono collegati con le uscite di un decodificatore
A0 MUX AN-1 0 N-1 B

Demultiplexer lineare
Un Demultiplexer Lineare una macchina con:
1 ingresso-dati B n segnali binari di selezione (0, , n-1), dei quali al pi uno attivo n uscite-dati (A0,,An-1), B con
Ai=B se attivo i neutro se nessuna delle selezioni attiva

A0

DMUXL A n-1

n-1

Demultiplexer (indirizzabile)
Demultiplexer Lineare i cui segnali di abilitazione sono collegati con le uscite di un decodificatore
A0 B DEMUX AN-1 0 N-1

Multiplexer binario
Se i dati Ai e B sono vettori di bit, che viaggiano su un bus si parla genericamente di multiplexer o demultiplexer Se i dati Ai e B sono singoli bit si parla di multiplexer o demultiplexer binario
A0 An-1 0 n-1 MUXL B

A0 An-1

MUXL

n1

Muxl/Dmuxl: un esempio
Supponiamo di avere un centralino telefonico in cui n utenti sorgente vogliono parlare con m utenti destinazione vincolo: l utente di destinazione abilitato deve sentire solo l utente sorgente abilitato A0 A1 B0 B1

An-1

MUXL

DMUXL

Bm-1

0 1 0.. 0

0 0 0..0 1

Linee di sel. Linee di sel. utente sorgente utente destinaz.

L utente A1 abilitato a parlare con l utente Bm-1

Half Adder

Full Adder (1/2)

r S

r R

Full Adder (2/2)


R = XYr + X Y r + XY r + XYr = XY + Yr + Xr

Full Adder con 2 Half Adder

Addizionatore binario
E possibile isolare il fattore (a b) Rielaborando le precedenti espressioni quindi possibile ottenere le seguenti espressioni per l addizionatore completo:
S = ( a b) r = H r R = ab + r (a b) = G + rH

Addizionatore binario
Pertanto, un addizionatore completo pu essere ottenuto a partire da due semiaddizionatori:
S = ( a b) r = H r R = a b + r ( a b) = G + r H
a b G=ab HA H=ab Hr r HA S = H r R= G + Hr

Addizionatore binario: riporto


Le diverse componenti dell espressione di R assumono un significato particolare:
G = ab riporto generato : indica la creazione di un riporto all interno dell addizionatore binario P = H = ab riporto propagato : indica se, in presenza di un riporto in ingresso, lo stesso verr propagato in uscita Il riporto in uscita pu quindi essere espresso come R=G+Pr

Addizionatore binario
Per il semiaddizionatore valgono le eguaglianze
H = a b = d (a, b) = ab + ab
G = a b

Similmente per l addizionatore completo valgono le eguaglianze


S = a b r = d (a, b, r ) = abr + abr + abr + abr R = abr + abr + ab r + abr = ab + br + ar = ab + r (a + b)

Addizionatori binari
non-riporto

ni = ri
Ki = ai bi

Indica assenza di riporto in ingresso

Riporto killed Indica che, indipendentemente dalla presenza di un riporto entrante, il riporto in uscita sar comunque zero Propagazione del non-riporto Indica assenza di riporto in uscita

Ni = Ki + Pi ni

Addizionatori seriali
Usa un unico addizionatore operante sulla singola cifra Opera in momenti successivi su cifre diverse degli addendi Richiede un blocco con memoria E lento rispetto ad addizionatori che lavorano in parallelo sulle diverse cifre degli addendi
X r
i i

Add

mod

- b

S
i

Addizionatore binario parallelo


Opera sulle cifre degli addendi in parallelo anche se il riporto deve propagarsi attraverso l intera struttura Richiede un numero maggiore di risorse rispetto all addizionatore seriale
X Y n-1 n-1 R r2 X
1

n-1

r1

R 0 =c

Add

Add

Add

mod - b

mod - b

mod - b
R

C= R

n-1

S n-1

n-2

S1

S0

Addizionatore parallelo: tempo di risposta


Gli addizionatori ottenuti collegando in cascata n addizionatori di cifra sono anche chiamati addizionatori a propagazione del riporto (carry-ripple o carry-propagate) = tempo di risposta di uno stadio Allo stadio i, il riporto uscente o generato o ucciso o propagato Tempo di ritardo complessivo: Limite inferiore (in tutti gli stadi il riporto generato o ucciso) Tempo di ritardo complessivo: Limite superiore n (un riporto entrante nel primo stadio che propagato in tutti gli stadi) Tempo di ritardo complessivo = k (k n), dove k la pi lunga catena di condizioni di propagazione.

Porte di parola
Porte con abilitazione: B=A = AND A Parola: Vettore di bit V = {vo, v1, , vn} Porta di parola con abiitazione: V = { vo,, vn} Porta generica di parola: A AND B = = {a0 AND b0,, an AND bn}