RETI COMBINATORIE. Algebra booleana: logica binaria (a due stati) A è una variabile booleana: A= oppure A= Funzioni logiche elementari per l algebra Booleana: AND, OR, NOT
2 Logica positiva: livello di tensione + elevato corrisponde all logico; livello di tensione + basso corrisponde allo logico; Logica negativa: livello di tensione + elevato corrisponde allo logico; livello di tensione + basso corrisponde all logico.
PORTE LOGICHE 3 La porta NOT. In Out Out = NOT In = In In Out
PORTE LOGICHE 4 La porta AND. In In2 Out Out = In AND In2 = In In2 In In2 Out
PORTE LOGICHE 5 La porta OR. In In2 Out Out = In OR In2 = In + In2 In In2 Out
6 PROPRIETA FONDAMENTALI NOT AND OR A + A= A A= A=A A = A =A A A=A A A= A+=A A+= A+A=A A+A=
7 LEGGI DI DE MORGAN A B C = A + B + C + A + B + C + = A B C
PORTE LOGICHE 8 La porta NAND. In In2 Out Out = In NAND In2 = In In2 In In2 Out
PORTE LOGICHE 9 La porta NOR. In In2 Out Out = In NOR In2 = In + In2 In In2 Out
PORTE LOGICHE La porta XOR. In In2 Out Out=In XOR In2=In In2+ In In2=In In2 In In2 Out
PORTE LOGICHE La porta XNOR. In In2 Out Out=In XNOR In2=In In2+ In In2=In In2 In In2 Out
PORTE LOGICHE 2 La porta XNOR. In In2 Out Dimostrare che: In XNOR In2 = NOT (In XOR In2)
3 RETI LOGICHE COMBINATORIE Una porta logica è un circuito usato per realizzare in hardware una funzione logica elementare L insieme di più porte logiche è una rete logica combinatoria e consente di realizzare in hardware una funzione logica complessa
Esempio di rete logica combinatoria 4 A B C Out Out = A B + B C + A C
CIRCUITI COMBINATORI 5 I I I 2n- Un MULTIPLEXER è un circuito logico che consente di selezionare tra 2 n ingressi in base allo stato di n segnali di controllo S S S n-.. 2 n - Out Out = I k se la parola binaria S S S n- rappresenta il numero Decimale k
CIRCUITI COMBINATORI 6 Out Multiplexer 2: I I = S Out I S + I S S I I Out
CIRCUITI COMBINATORI 7 Multiplexer 4: S S S S Out I I I 2 I 3 2 3 Out I I I 2 I 3
8 CIRCUITI COMBINATORI Un DEMULTIPLEXER è un circuito logico che consente di instradare ingresso su una tra 2 n linee di uscita in base allo stato di n segnali di controllo
Proprietà dell algebra di Boole X + X2 = X2 + X Pr. Commutativa (X + X2) + X3 = X + (X2 + X3) Pr. Associativa (X X2) + (X X3) = X (X2 + X3) Pr. Distributiva X X2 + X X2 = X X + X X2 = X Priorità degli operatori: Not, And, Or
Principio di dualità Nota una proprietà dell algebra booleana si può ottenere la sua duale scambiando gli operatori e i simboli nel modo seguente: +
Proprietà dell algebra di Boole X X2 = X2 X Pr. Commutativa (X X2) X3 = X (X2 X3) Pr. Associativa (X+X2) (X+X3) = X + (X2 X3) Non valida in algebra ordinaria ( X+ X2) (X+ X2) = X X (X+X2) = X Dimostrare
Mintermine Un mintermine p i è una funzione che vale in corrispondenza della sola configurazione i dei valori delle variabili di ingresso. Ogni mintermine p i ammette un espressione algebrica consistente nell AND di tutte le variabili, dove ogni variabile compare diretta (cioè non negata) se vale nella configurazione i, compare negata se invece vale. c b a p =
Maxtermine Un maxtermine s i è una funzione che vale in corrispondenza della sola configurazione i dei valori delle variabili di ingresso. Ogni maxtermine s i ammette un espressione algebrica consistente nell OR di tutte le variabili, dove ogni variabile compare diretta (cioè non negata) se vale nella configurazione i, compare negata se invece vale. s = a + b + c
La Prima Forma Canonica (SP) La prima forma canonica di una funzione f è la OR di tutti i mintermini p i, per le configurazioni i per le quali f = f = i p i i tale che f della configurazione di = in corrispondenza ingresso i f f = = p + p2 + p4 3 (,2,4)
La Seconda Forma Canonica (PS) La seconda forma canonica di una funzione f è la AND di tutti i maxtermini s i, per le configurazioni i per le quali f = f = i s i i tale che f della configurazione di = in corrispondenza ingresso i f f = s s2 s4 = 3 (,2,4)
Completezza funzionale Insiemi funzionalmente completi: {AND, OR, NOT} (Le forme canoniche ne sono una prova) {AND, NOT} {OR, NOT}
Completezza funzionale Insiemi funzionalmente completi: {NAND} NOT X = X NAND X {NOR} NOT X = X NOR X
Esercizio Passare dalla prima forma canonica (SP) alla rappresentazione in termini di porte NAND
Enumerazione di funzioni Esistono 2 (2 n ) funzioni distinte di n variabili Es.: Enumerare tutte le funzioni a 2 ingressi
Semplificazione delle forme canoniche z = ab c + abc + ab c + ab c + abc = ac + ab c + ab c + abc = = ac + ab c + ab c + ab c + abc = = ac + ab + ab c + abc = = ac + ab + ac = = c + ab =
MAPPE DI KARNOUGH 2 Ingressi Uscita B A B Out A 3 Tabella di verità Mappa di K. Out = A B Formula logica
3 Ingressi Uscita A B C Out BC A? Regola: Una mappa di K. è costruita assicurando che le sue celle siano ADIACENTI 32
4 Ingressi Uscita 33 CD AB Due celle sono adiacenti se, spostandosi da una all altra cambia uno solo dei bit da cui sono intercettate nella Mappa di K. Sono celle adiacenti NON sono celle adiacenti Sono celle adiacenti NON sono celle adiacenti Sono celle tutte adiacenti tra loro?
Funzione prodotto Una funzione prodotto p di k variabili è rappresentata sulla mappa da un sottocubo di 2 n-k caselle adiacenti contenenti
Implicanti e Implicati Una funzione prodotto p si dice implicante di una funzione f, se f= almeno in tutti i vertici del sottocubo relativo a p (p f). Una funzione può essere espressa come OR dei suoi implicanti f = p + p 2 + + p n
Implicante primo Un implicante p f si dice implicante primo di f, se non esiste alcun altro implicante p di f (p f ) tale che p p (Un implicante primo rappresenta il massimo sottocubo) Una funzione f può essere espressa come somma dei suoi implicanti primi
Implicante primo essenziale Un implicante p f si dice implicante primo essenziale di f, se esiste almeno un vertice del sottocubo relativo a p, che non appartiene al sottocubo di alcun altro implicante primo di f. Un implicante primo è cioè essenziale se è l unico a coprire un dato della f.
Sintesi ottima di reti a due livelli Ogni forma SP minima di una funzione f è una forma SP prima irridondante per f.
Forma SP minima. Determinare tutti gli implicanti primi di f 2. Selezionare un insieme irridondante di implicanti primi la cui somma copra la f, e il cui costo complessivo sia minimo OVVERO 2A) Selezionare dapprima gli implicanti primi essenziali 2B) Selezionare gli implicanti primi non essenziali che ricoprono gli della mappa non ricoperti dagli implicanti primi essenziali
Sintesi di reti combinatorie. Stabilire in quali condizioni l uscita della rete combinatoria deve assumere 2. Costruire la tabella di verità 3. Estrarre una formula logica minimizzata 4 4. Disegnare la rete combinatoria
Minimizzazione 4 Individuare nella mappa i gruppi più grandi possibili di celle adiacenti. CD AB Ogni gruppo contiene 2 k celle La presenza dei gruppi 2 e 4 introduce ridondanza Tutti gli devono essere coperti ; no ridondanze Gruppo Gruppo 2 Gruppo 3 Gruppo 4
Dalla mappa alla formula logica 42 CD AB Gruppo Gruppo 2 Gruppo 3 Gruppo B D Gruppo 2 C D Gruppo 3 B D Out = B D + C D + B D
Esercizio di riepilogo Individuare i mintermini I forma canonica (SP) Rappresentazione a NAND Mappa di K Implicanti Implicanti primi Implicanti primi essenziali Sintesi ottima a 2 livelli
Esercizio di riepilogo Z X X X2 X3 Z X X X2 X3
Esercizio Realizzare un circuito capace di confrontare 2 numeri interi N e N2 senza segno a 2 bit, tale circuito fornisce in uscita il valore se NN2, e altrimenti. Z = se NN2 Z = se N<N2
Funzioni non completamente specificate Una funzione si dice non completamente specificata quando esistono delle condizioni di indifferenza, ovvero delle configurazioni di ingresso per le quali la funzione non è specificata. N.B.: Esistono funzioni non completamente specificate ma non esistono reti non completamente specificate!!!
Funzioni non completamente specificate Se ci sono h condizioni di indifferenza per f vi sono 2 h modi per assegnare o a tali condizioni, esistono quindi 2 h funzioni complete distinte che coincidono con la f ovunque questa è specificata, e altrettante reti per f. Fra tutte le reti si cerca la rete minima (a due livelli) assegnando alle condizioni di indifferenza i valori o più opportuni.
Forma SP minima per funzioni non completamente specificate. Si assegna provvisoriamente il valore a tutte le condizioni di indifferenza ottenendo la funzione f 2. Si determinano gli implicanti primi della funzione f 3. Si scartano gli implicanti primi che coprono solo gli corrispondenti alla condizioni di indifferenza 4. Si procede per la sintesi ottima considerando che solo gli della funzione f devono essere necessariamente coperti
Esempio x 3 x 2 x x x x x x x x
Esercizio
Importanza dei circuiti aritmetici 5 In qualsiasi microprocessore è presente un unità Logica-Aritmetica (ALU) Ingresso Ingresso2 A L U Controllo Uscita Esempio: Ingresso+Ingresso2 Ingresso-Ingresso2 Ingresso Ingresso2 (Ingresso) 2 Ingresso2... La somma binaria è l operazione di base
52 + = Risultato: Out BIN =
Circuiti Sommatori 53 Il modulo di base è il full-adder (FA) Co A B FA S Ci TIPI DI CIRCUITI SOMMATORI Ripple Carry Carry-Select Carry Look-Ahead Sommatori ad albero (Kogge Stone)
Half adder 54 Funzione da realizzare: somma binaria tra 2 bit Costruzione della tabella di verità di una rete logica a due ingressi (A e B) e due uscite (Co e S) A B Co S HALF-ADDER Co B A = A B S = A B Co S
Full-Adder 55 Rete logica con 3 ingressi (A, B, Ci) e due uscite (Co ed S) A B Ci Co S A BCi A BCi Co S
A BCi Mappa per Co A BCi Mappa per S Co = B Ci + A Ci + A B S = A B Ci + A B Ci + A B Ci + A B Ci = A ( B Ci + B Ci) + A ( B Ci + B Ci) = = A ( B Ci) + A ( B Ci) Ponendo Y = B Ci = 56 S = A Y + A Y = A B Ci
Circuito logico di un full-adder Co = B Ci + A Ci + A B S = A Y + A Y = A B Ci A B Ci S Co 57
Circuito alternativo Ci B A Y A Y A S = + = B A Ci A Ci B B A Ci A Ci B B A Ci A Ci B Co = = + + = + + = A B Ci S Co 58
Circuito Alternativo 59 S = A Y + A Y = A B Ci Co = ( A B) Ci A B A B Ci S Co
Circuiti Integrati a Porte Discrete 6 4 3 2 9 8 VCC GND 2 3 4 5 6 7 DM74ALS8
Il Ripple-Carry Adder 6 Esegue l operazione di somma tra due numeri ad n-bit secondo il metodo carta e penna a n- b n- a n-2 b n-2 a b c n Co A B FA S Ci c n- Co A B FA S Ci c n-2 c Co A B FA S Ci c s n- s n-2 s Operandi: A=a n- a n-2 a a e B=b n- b n-2 b b Risultato ad n+ bit: c n s n- s n-2 s s
Il Ripple-Carry Adder 62 E il sommatore più semplice e meno costoso: richiede meno porte logiche di qualsiasi altro tipo di sommatore Sommatore più lento. Problema legato alla propagazione del riporto: l i-esimo FA può generare il risultato corretto solo dopo avere ricevuto in ingresso il riporto generato dal precedente FA
a n- b n- a n-2 b n-2 a b 63 c n Co A B FA S Ci c n- Co A B FA S Ci c n-2 c Co A B FA S Ci c s n- s n-2 s a n- b n- a n-2 b n-2 a b c n c n- c n-2 c c s n- s n-2 s
a n- b n- a n-2 b n-2 a b 64 c n- c n-2 c c s n- s n-2 s Path per s k = XOR+2 k NAND+ XOR Path per c k = XOR+2 k NAND Path critici: per s n- : XOR+2 (n-) NAND+ XOR per c n : XOR+2 n NAND
Il Carry-Select Adder 65 c 8 S[7:4] c 4 cz 8 cu 8 cz 8 cu 8 a[7:4] b[7:4] Ripple-carry a 4-bit RC-Z Sz[7:4] Su[7:4] Ripple-carry a 4-bit RC-U a[7:4] b[7:4] c 4 a[3:] b[3:] Ripple-carry a 4-bit RC S[3:] c I blocchi RC, RC-Z e RC-U lavorano in parallelo
66 Il Carry-Select Adder Nel caso esaminato (operandi a 8-bit) si ha: Path critici: per s 7 : XOR+8 NAND+ MUX per c 8 : XOR+8 NAND+ MUX In un Ripple-Carry a 8-bit si avrebbe: Path critici: per s 7 : XOR+4 NAND+ XOR per c 8 : XOR+6 NAND
Esempio Disegnare un Carry Select Adder a 2 bit che utilizza RCA a 4 bit. Ricavare una formula generale per esprimere i ritardi massimi
Il Carry-Select Adder 68 In un Carry-Select ad n-bit realizzato usando Blocchi Ripple-Carry a 4-bit sono necessari n 4 stadi di multiplexer Path critici: n ( ) 4 per s n- : XOR+8 NAND+ MUX per c n : si individua lo stesso path Il Carry-Select è più veloce, ma più costoso
Il Carry Look-Ahead 69 i i i i c b a S = i i i i i i b a c b a c = + ) ( Applicando le leggi di De Morgan i i i i i i b a c b a c + = + ) ( Si definiscono i segnali di propagate p i e di generate g i i i i b a p = i i i b a g =
S i = p i c i 7 c = p c + i+ i i g i c =g + p c c 2 =g + p c = g + p (g + p c )= g + p g + p p c c 3 =g 2 + p 2 c 2 = g 2 + p 2 (g + p g + p p c )=g 2 +p 2 g +p 2 p g +p 2 p p c.. c k+ =g k + g k- p k + g k-2 p k- +...+ g p p 2... p k + p p... p k c.. c n =g n- +g n-2 p n- +...+p p...p n- c
4-bit Carry Look-Ahead Adder 7 a 3 b 3 a 2 b 2 a b a b c 4 c 3 c 2 c c s 3 s 2 s s
Path critici: 72 per s i : XOR+ AND+ OR + XOR per c i+ : XOR+ AND+ OR Da i dipende il numero di ingressi delle porte AND ed OR incluse nei path critici PROBLEMA Un Carry Look-Ahead ad n-bit richiede porte AND ed OR fino ad n+ ingressi!!
Esercizio Realizzare un modulo aritmetico capace di eseguire la somma e la differenza di due numeri interi in complemento a 2. sel f = A + B quando sel = f = A B quando sel = A B Adder/Subtracter f
Esercizio Bit di parità Per una stringa di n bit, il bit di parità è un bit aggiuntivo che vale se il numero di della stringa è dispari, vale se il numero di della stringa è pari. Realizzare una rete per la generazione del bit di parità per stringhe di cinque bit.
Esercizio Radice quadrata Realizzare una rete combinatoria a cinque ingressi x 4, x 3, x 2, x, x, che esegue la radice quadrata approssimata per difetto del numero binario x 4 x 3 x 2 x x
Tree Adders For high speed adders it is necessary to use tree structures. Parallel prefix-tree algorithms organize carry propagation and generation into recursive trees, in this way it is possible to compute the output carry of an N-bit adder in a logarithmic time. Parallel prefix-tree algorithms compute the addition in three stage: First stage -> computation of carry generate and carry propagate for each bit gi = ai bi pi = ai bi Second stage -> computation of the carries for each bit position by iteratively combining the generate and propagate terms of the first stage c i+ = g i + g i- p i Third stage -> computation of the sum bits si = ai bi ci = pi ci The second stage is the most computational expensive one, in fact it represents the carry propagation chain.
Tree Adders Tree algorithms exploit the properties of dot operator to calculate the carries. Definition: Gi:j = gi + gi- pi + + gj pi pi- pj+ Pi:j = pi pi- pj Gi:i = gi Pi:i = pi c i+ = Gi:
Tree Adders Definition of dot operator : (Gi:j, Pi:j) (Gj-:k, Pj-:k) = (Gi:j + Pi:j Gj-:k, Pi:j Pj-:k) = (Gi:k, Pi:k) Properties: ) Associativity (Gi:j, Pi:j) (Gj-:k, Pj-:k) = (Gi:k, Pi:k) 2) Non-commutativity 3) Idempotency (Gi:j, Pi:j) (Gi:j, Pi:j) = (Gi:j, Pi:j) Proof: A + B A = A A A = A
Tree Adders 6-bit radix-2 Kogge-Stone tree (A, B ) S (A, B ) (A2, B 2 ) (A3, B 3 ) (A4, B 4 ) (A5, B 5 ) (A6, B 6 ) (A7, B 7 ) (A8, B 8 ) (A9, B 9 ) (A, B ) S S2 S3 S4 S5 S6 S7 S8 S9 S (A, B ) S (A2, B 2 ) S2 (A3, B 3 ) S3 (A4, B 4 ) (A5, B 5 ) S4 S5 Calculates p i and g i dot operator sum
Tree Adders (A, B ) (A, B ) (A2, B ) 2 (A3, B ) 3 (A4, B ) 4 S S S2 S3 S4 (A5, B ) 5 (A6, B ) 6 (A7, B ) 7 (A8, B ) 8 (A9, B ) 9 (A, B ) (A, B ) S5 S6 S7 S8 S9 S S (A2, B 2 ) S2 (A3, B 3 ) S3 (A4, B 4 ) S4 (A5, B 5 ) S5 Brent-Kung Tree