491 likes | 737 Vues
Reti combinatorie (parte seconda). Sintesi minima Sintesi con NAND, NOR, EX-OR. Espressioni minime. x. x. y. y. z. z. Complessità e velocità. Indicatori : N gate = numero di gate, N conn = numero di connessioni N casc = numero di gate disposti in cascata sul più
E N D
Reti combinatorie (parte seconda) Sintesi minima Sintesi con NAND, NOR, EX-OR Reti combinatorie - parte seconda
Espressioni minime Reti combinatorie - parte seconda
x x y y z z Complessità e velocità • Indicatori : Ngate = numero di gate, • Nconn = numero di connessioni • Ncasc = numero di gate disposti in cascata sul più • lungo percorso di elaborazione • Complessità funzione crescente di Ngate , Nconn • Velocità di elaborazione funzione decrescente di Ncasc Esempio: • Le due reti sono equivalenti (T6). • Hanno la stessa velocità di elaborazione. • La rete di sinistra è meno complessa. Reti combinatorie - parte seconda
Schemi logici di “costo minimo” (forme normali) Rete combinatoria di tipo SP e di costo minimo - Schema logico che realizza una funzione connettendo ad un OR di uscita il minimo numero di AND con il minimo numero di ingressi. Rete combinatoria di tipo PS e di costo minimo - Schema logico che realizza una funzione connettendo ad un AND di uscita il minimo numero di OR con il minimo numero di ingressi. N.B. - Lo schema di costo minimo viene ricercato fra quelli aventi la massima velocità di elaborazione (al più 2 gate in cascata). Il numero di gate e/o di connessioni della rete di costo minimo di tipo SP è in generale diverso da quello della rete di costo minimo di tipo PS che realizza la stessa funzione. Reti combinatorie - parte seconda
Espressioni minime Espressione minima (SP/PS) - Descrizione algebrica di una rete di costo minimo: espressione normale (SP/PS) formata dal minimo numero possibile di “termini” (prodotti/somme) aventi ciascuno il minimo numero possibile di “letterali” (variabili in forma vera o complementata). N.B - E’ possibile che più espressioni normali dello stesso tipo siano minime (abbiano cioè eguali valori di Ngate e Nconn). Reti combinatorie - parte seconda
Raggruppamenti rettangolari di uni e condizioni di indifferenza RR ed implicanti -Un RR di ordine p costituito da celle contenenti valore 1, ed eventualmente condizioni di indifferenza, individua un termine prodotto che copre la funzione e si chiamaimplicante della funzione. Nel prodotto compaiono le sole (n-p) variabili che rimangono costanti nel RR, in forma vera se valgono 1, in forma complementata se valgono 0. RR ed implicati -Un RR di ordine p costituito da celle contenenti valore 0, ed eventualmente condizioni di indifferenza, individua un implicato della funzione. Nella somma compaiono le sole (n-p) variabili che rimangono costanti nel RR, in forma vera se valgono 0, in forma complementata se valgono 1. Reti combinatorie - parte seconda
cd bd 01 11 10 00 ab 1 1 X 00 X 1 1 X 01 X 11 X 1 1 X 10 0 1 1 X d Ricerca della I forma normale minimaIndividuazione di termini prodotto minimi (implicanti primi) su una mappa (1 di 2) Un R-R di ordine p formato da celle contenenti i valori “1” o “-” ma non “0”, e non contenuto in nessun altro R-R di ordine maggiore (anch’esso contenente i valori “1” o “-” ma non “0”, si chiama “R-R di uni di ordine massimo” RR di uni di dimensione massima ed implicanti primi - Un RR di uni di ordine massimo individua un termine prodotto con unnumero minimo di letterali che copre la funzione data.Questo termine prodotto si chiama implicante primo Esempio: non è un implicante primo ! è un implicante primo ! Reti combinatorie - parte seconda
Ricerca dell’espressione minima SP (2 di 2) • L’espressione minima SP è una somma di implicanti primi; questi infatti coprono gli uni su R-R di ordine massimo, quindi coprono il massimo numero di uni contemporaneamente e inoltre sono termini prodotto con il minimo numero di operandi • E’ importante trovare il numero minimo di implicanti primi che coprono l’intera funzione. A tal fino conviene partire dagli implicanti primi “essenziali”, cioè da quegli implicanti primi in assenza dei quali la funzione non verrebbe completamente coperta • Lo studente deve acquisire dimestichezza con questo procedimento manuale di ricerca dell’espressione SP minima Reti combinatorie - parte seconda
Ricerca dell’espressione minima PS • L’espressione minima PS è un prodotto di implicati primi; questi infatti coprono gli zeri su R-R di ordine massimo, quindi coprono il massimo numero di zeri contemporaneamente e inoltre sono termini somma con il minimo numero di operandi • E’ importante trovare il numero minimo di implicati primi che coprono l’intera funzione. A tal fino conviene partire dagli implicati primi “essenziali”, cioè da quegli implicanti primi in assenza dei quali gli zeri della funzione non verrebbero tutti coperti • Lo studente deve acquisire dimestichezza con questo procedimento manuale di ricerca dell’espressione PS minima Reti combinatorie - parte seconda
cd 01 11 10 00 ab non è un implicato primo ! c’ + d x x 0 00 0 x x 0 01 0 11 0 x x 0 10 0 x 1 0 c + d non è un implicato primo ! d Esempio di implicati è un implicato primo ! Reti combinatorie - parte seconda
cd ab 00 01 11 10 00 0 1 1 0 0 1 1 0 01 1 1 0 0 11 1 1 0 0 10 Esercizio • Tracciare i RR che individuano tutti gli implicanti primi e gli implicati primi della seguente funzione: e scrivere le corrispondenti espressioni SP e PS. Reti combinatorie - parte seconda
Esempi di ricerca delle espressioni minime con il metodo grafico Reti combinatorie - parte seconda
cd cd ab ab 01 01 11 11 10 10 00 00 c’ c’ + acd’ + ad’ 1 1 0 0 0 0 00 00 1 1 - - 0 0 - - 01 01 1 1 11 11 1 1 1 1 0 0 1 1 10 10 1 1 1 1 0 0 1 1 Coperture ed espressioni (1) Uno dei due RR non è di dimensione massima (acd’ non è un implicante primo): l’espressione non è minima. L’espressione è minima ! Reti combinatorie - parte seconda
cd ab 01 11 10 00 a’cd’ + a’bd + a’bc + bc’d + ac’ 0 0 1 00 0 1 1 1 01 0 11 1 1 0 0 10 1 1 0 0 cd ab 01 11 10 00 a’cd’ + ac’ 0 0 1 00 0 1 1 1 01 0 11 1 1 0 0 10 1 1 0 0 Coperture ed espressioni (2) Somma irridondante di implicanti primi (non possiamo togliere nessun termine prodotto senza lasciare almeno un uno scoperto), ma non espressione minima Espressione minima Reti combinatorie - parte seconda
cd ab 01 11 10 00 . . . 0 (b’+c’+d) (a+c’+d’) (b+c+d’) (a’+c+d) 0 1 00 1 1 0 0 01 1 11 0 1 1 0 10 0 0 1 1 cd ab 01 11 10 00 . . . 0 (a+b’+c’) (a’+b’+d) (a’+b+c) (a+b+d’) 0 1 00 1 1 0 0 01 1 11 0 1 1 0 10 0 0 1 1 Coperture ed espressioni (3) Due espressioni minime di tipo PS Reti combinatorie - parte seconda
cd ab 01 11 10 00 0 0 1 00 0 1 1 - 01 0 11 1 1 0 0 10 1 1 0 0 Individuazione grafica dell’espressione minima (1) A partire dalla mappa che descrive la funzione occorre determinare la copertura minima e da questa la corrispondente espressione minima. Il procedimento è per sua natura non sistematico e presuppone l’abilità di chi lo esegue. È tuttavia possibile delineare una sequenza di passi che consentono di individuare con facilità la copertura minima: 1) Si decide se cercare l’espressione di tipo SP o PS e ci si predispone di conseguenza a coprire gli uni o gli zeri. 1) scegliamo SP Reti combinatorie - parte seconda
cd ab 01 11 10 00 0 0 1 00 0 1) scegliamo SP 1 1 - 01 0 11 1 1 0 0 10 1 1 0 0 Individuazione grafica dell’espressione minima (2) 2) Si cerca di individuare tra le celle da coprire una cella che possa essere racchiusa in un solo RR e lo si traccia di dimensione massima, annotando il termine corrispondente. Se la funzione è incompleta il RR può contenere anche condizioni di indifferenza. a’cd’ 2) Reti combinatorie - parte seconda
1) scegliamo SP cd ab 01 11 10 00 a’cd’ 2) 0 0 1 00 0 1 1 - 01 0 11 1 1 0 0 10 1 1 0 0 Individuazione grafica dell’espressione minima (3) 3) Si ripete fino a quando è possibile il passo 2, tenendo conto della possibilità di coprire anche celle incluse in RR già tracciati. ac’ 3) Reti combinatorie - parte seconda
1) scegliamo SP a’cd’ 2) ac’ 3) cd ab 01 11 10 00 0 0 1 00 0 1 1 - 01 0 11 1 1 0 0 10 1 1 0 0 Individuazione grafica dell’espressione minima (4) 4) Si prendono in considerazione le cella ancora da coprire e se ne sceglie a colpo d’occhio la copertura migliore, tenendo conto come al solito della possibilità di coprire celle già coperte e condizioni di indifferenza. a’bd 4) 5) Si ripete il passo 4 fino a soddisfare la condizione di copertura. Si scrive infine l’espressione minima. 5) a’cd’ + ac’ + a’bd Reti combinatorie - parte seconda
bc a 01 11 10 00 1 0 0 0 0 0 1 0 1 1 cd cd ab ab 01 01 11 11 10 10 00 00 0 1 0 1 0 0 00 00 0 0 1 1 1 1 - 0 01 01 0 1 11 11 - - 1 1 1 - 1 0 10 10 0 1 1 1 1 - 0 0 . . (a+b) (b’+d) (a’+c’) Altri esempi di applicazione del procedimento grafico 1) scegliamo PS a+b 2) b’+d 3) a’+ c’ 4) 5) PS: b + d a’ b’c + ab’c’ + abc SP: b + d L’espressione minima SP è l’espressione canonica Le coperture minime PS ed SP portano alla stessa espressione Reti combinatorie - parte seconda
Somma degli implicanti primi I1 I0 A 00 01 11 10 0 0 1 1 0 0 0 1 1 1 U = A’I0 + AI1 Mappa del mux a due vie e due possibili coperture con implicanti primi di cui una è minima In rosso i RR essenziali, in blu un RR ridondante U U = A’I0 + I1 I0 + AI1 Implicante primo eliminabile Questo lucido dimostra il teorema del consenso!! Reti combinatorie - parte seconda
x1 x2 x2 x1 x0 z1 z0 0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 1 1 1 0 - - 1 0 1 - - 0 1 1 - - 1 1 1 - - x0 00 01 11 10 z1 0 0 1 - 1 0 - - - 1 x1 x2 z0 x0 00 01 11 10 0 0 1 - 0 1 - - - 1 Sintesi minima di un encoder z1 = x1 + x2 z0 = x0 + x2 Reti combinatorie - parte seconda
D C B A a bc d efg 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 a a b f b c Trascodifica da BCD a 7 segmenti d g e e c f g d D C B A “0” “1” “2” “3” “4” “5” “6” “7” “8” “9” Sintesi di un trascodificatore da BCD a 7 segmenti Reti combinatorie - parte seconda
BA BA BA 00 00 00 01 01 01 11 11 11 10 10 10 DC DC DC 00 00 00 0 0 0 1 0 0 0 0 0 0 0 1 01 01 01 0 0 1 0 1 0 0 0 0 0 1 1 11 11 11 - - - - - - - - - - - - 10 10 10 0 0 0 0 0 0 - - - - - - b c a Progetto della rete di costo minimo (1) a = D’C’B’A + CA’ b = CB’A + CBA’ c = C’BA’ Reti combinatorie - parte seconda
BA BA BA BA 00 00 00 00 01 01 01 01 11 11 11 11 10 10 10 10 DC DC DC DC 00 00 00 00 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 01 01 01 01 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 11 11 11 11 - - - - - - - - - - - - - - - - 10 10 10 10 0 0 0 0 0 1 0 1 - - - - - - - - e g d f Progetto della rete di costo minimo (2) d = CB’A’ + C’B’A + CBA e = A + CB’ f = D’C’A + BA + C’B g = D’C’B’ + CBA Reti combinatorie - parte seconda
Risposta della rete di costo minimo a configurazioni non previste dal codice BCD DCBA 1010 1011 1100 1101 1110 1111 a 0 0 1 0 1 0 b 0 0 0 1 1 0 c 1 0 0 0 0 0 d 0 0 1 0 0 1 e 0 1 1 1 0 1 f 1 1 0 0 0 1 g 0 0 0 0 0 1 la rete di costo minimo non consente la rilevazione di alcuna configurazione di ingresso “illecita” Reti combinatorie - parte seconda
Progetto della rete in grado di rilevare le configurazioni di ingresso illecite (1) BA BA BA 00 00 00 01 01 01 11 11 11 10 10 10 DC DC DC 00 00 00 0 0 0 1 0 0 0 0 0 0 1 0 01 01 01 0 1 0 0 0 1 0 0 0 1 0 1 11 11 11 - - - - - - 1 1 1 - - - 10 10 10 0 0 0 0 0 0 - - - - - - c b a a= D’C’B’A + CA’ b = CB’A + CBA’ c= C’BA’ Alle configurazioni illecite devono corrispondere sul display simboli diversi da quelli previsti per le configurazioni lecite; in particolare il display deve essere spento per la configurazione DCBA = 1111. Quest’ultima specifica richiede di ri-sintetizzare solo le funzioni a, b, c. a1 = a + DC a2 = a + DB b1 = b + DC b2 = b + DB c1 = c + DC c2 = c + DB Reti combinatorie - parte seconda
La soluzione integrata (1) Reti combinatorie - parte seconda
La soluzione integrata (2) I gate aggiuntivi previsti nella soluzione integrata servono per conseguire ulteriori funzionalità, derivabili da specifici segnali di ingresso-uscita (tutti attivi a livello logico 0) ed elencate in ordine di priorità decrescente: BI’ (Blanking Input) display spento LT’ (Lamp Test) display acceso RBI’ (Ripple Blanking Input) display spento e attivazione del segnale di uscita RBO’ (Ripple Blanking Output) solo se il dato in ingresso è zero (DCBA = 0000) Reti combinatorie - parte seconda
Sintesi con NAND, NOR, EX-OR Reti combinatorie - parte seconda
Quali altre algebre si possono utilizzareoltre all’algebra di commutazione? • Ora conosciamo l’algebra di commutazione • Esistono altre algebre binarie che utilizzano altri operatori elementari, cioè altre funzioni di due variabili al posto dell’and e dell’or? • Nei prossimi lucidi elenchiamo le funzioni di una e due variabili, quindi citiamo le altre principali algebre sviluppate • Infine vedremo che senza bisogno di approfondire le altre algebre possiamo però trovare facilmente le regole per passare da espressioni dell’algebra di commutazione a espressioni di altre algebre e viceversa. • Così riusciamo a svincolarci dalla necessità di utilizzare nelle realizzazioni circuitali gli operatori dell’algebra di commutazione se questi dovessero non essere convenienti. Nel contempo possiamo continuare a impiegare l’algebra di commutazione, di gran lunga più semplice delle altre nella maggior parte dei problemi di analisi e sintesi Reti combinatorie - parte seconda
Numero di funzioni di n variabli Numero di funzioni - Il numero di distinte funzioni binarie è finito. Le funzioni di n variabili sono: 2n F (n) = 2 4 funzioni di 1 variabile, 16 funzioni di 2 variabili, 256 funzioni di 3 variabili, 65.536 funzioni di 4 variabili, ecc. Reti combinatorie - parte seconda
x 0 1 x0 x1 0 0 0 1 1 0 1 1 f0 0 0 0 0 f15 1 1 1 1 f3 f5 0 0 0 1 1 0 1 1 f12 f10 1 1 1 0 0 1 0 0 f1 0 0 0 1 f14 1 1 1 0 f7 0 1 1 1 f8 1 0 0 0 f9 1 0 0 1 f6 0 1 1 0 Elenco delle funzioni di una e due variabili 4 funzioni di una variabile f0, f3 : costanti 0 e 1 f1: identità o buffer f2: not f0 0 0 f3 1 1 f1 0 1 f2 1 0 f13 f2 f11 f4 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 0 16 funzioni di due variabili f0, f15 : costanti 0 e 1 f3 , f5 : identità o buffer f12 , f10 : not f1 : and f14 : nand f7 : or f8 : nor f9: equivalence f6: ex-or In rosso le funzioni che degli operatori dell’algebra di commutazione Reti combinatorie - parte seconda
Calcolo delle proposizioni vero, falso e, o, non tre operatori G. Boole (1854) Algebra di commutazione 0, 1 +, . , ’ tre operatori C. Shannon (1938) Algebra del nand 0, 1 un operatore Algebra del nor 0, 1 un operatore Algebra lineare 0, 1 , . due operatori Algebre binarie Algebra binaria - Sistema matematico formato da un insieme di operatori definiti assiomaticamente edatti a descrivere con una espressione ogni funzione di variabili binarie Reti combinatorie - parte seconda
. . . F = a b + c’ d + e f’ + g F = ((a b) (c’ d) (e f’) g’)’ . . . Sintesi con NAND La sintesi “a NAND” può essere effettuata trasformando un’espressione normale SP che descrive la funzione assegnata in una nuova espressione contenente esclusivamente operatori “”: definizione dell’operatore F = (a b)’ + (c’ d)’ + (e f’)’ + g T13 (IIa legge di De Morgan) definizione dell’operatore F = (a b) (c’ d) (e f’) g’ Reti combinatorie - parte seconda
Algoritmo per la sintesi a NAND 1) Si parte da un’espressione SP, SPS, SPSP... e si introducono gli operatori “.” e le parentesi non indicati esplicitamente. 2) Si sostituisce il simbolo “” ad ogni simbolo “.” 3) Si sostituisce il simbolo “” ad ogni simbolo “+” e si complementano le variabili e le costanti affiancate a tale simbolo senza l’interposizione di una parentesi. 4) Si disegna lo schema logico corrispondente all’espressione trovata. Se l’espressione di partenza è a più di due livelli si cerca l’eventuale presenza di NAND con ingressi identici e li si sostituisce con uno solo (sfruttando il fan-out >1 del gate corrispondente). N.B. - La trasformazione dell’espressione minima SP individua l’espressione minima a NAND. Reti combinatorie - parte seconda
. . U = ( a (a’ + b’) ) + ( b (a’ + b’) ) passo 1 passi 2 e 3 passo 4 a U b Esempio: sintesi a NAND di un EX-OR U = a b’ + a’b U = a b’ + a’b + a’a + b’b U = a (a’ + b’) + b (a’ + b’) SPS ! U = ( a (a b) ) ( b (a b) ) Reti combinatorie - parte seconda
1 14 14 1 14 1 14 1 13 2 2 13 13 2 13 2 3 3 3 12 3 12 12 12 4 11 4 4 11 11 4 11 5 10 5 10 10 5 10 5 9 6 6 9 6 6 9 9 7 8 7 8 8 8 7 7 I1 A I1 A U SN7408 SN7400 A’ SN7404 U I0 I0 A’ SN7432 Sintesi con componenti SSI di un selettore a due vie U = A’. I0 + A . I1 U = (A’ I0) (A I1) N.B. - La disponibilità di gate diversi da AND, OR, NOT consente spesso di minimizzare il numero di “parti” impiegate. Reti combinatorie - parte seconda
. . . F = (a’ + b’ + c) (d’ + e) f’ g . . . F = (a’ b’ c)’ (d’ e)’ f’ g Sintesi con NOR La sintesi “a NOR” può essere effettuata trasformando un’espressione normale PS che descrive la funzione assegnata in una nuova espressione contenente esclusivamente operatori “”: definizione dell’operatore T13 (Ia legge di De Morgan) F = ((a’ b’ c) + (d’ e) + f + g’)’ definizione dell’operatore F = (a’ b’ c) (d’ e) f g’ Reti combinatorie - parte seconda
Algoritmo per la sintesi a NOR 1) Si parte da un’espressione PS, PSP, PSPS... e si introducono gli operatori “.” e le parentesi non indicati esplicitamente. 2) Si sostituisce il simbolo “” ad ogni simbolo “+” 3) Si sostituisce il simbolo “” ad ogni simbolo “.” e si complementano le variabili e le costanti affiancate a tale simbolo senza l’interposizione di una parentesi. 4) Si disegna lo schema logico corrispondente all’espressione trovata. Se l’espressione di partenza è a più di due livelli si cerca l’eventuale presenza di NOR con ingressi identici e li si sostituisce con uno solo (sfruttando il fan-out >1 del gate corrispondente). N.B. - La trasformazione dell’espressione minima PS individua l’espressione minima a NOR. Reti combinatorie - parte seconda
. U = (a + b’) ( a’ + b) . . . U = (a + b’) (a’ + b) (a’ + a) (b’ + b) . U = (a + a’b’) (b + a’b’) passo 1 . . U = ( a + (a’ b’) ) + ( b + (a’ b’) ) passi 2 e 3 passo 4 a U b Esempio: sintesi a NOR di un “equivalence” PSP ! U = ( a (a b) ) ( b (a b) ) Reti combinatorie - parte seconda
HA FA r a b S R HA Full Adder con AND, OR e EX-OR S = r’. a’. b + r’. a . b’ + r . a’. b’ + r. a . b R = r’. a . b + r . a’. b + r . a . b’ + r . a . b manipolazione algebrica: S = r’. (a’. b + a . b’) + r . (a’. b’ + a . b) S = r’. (a b) + r . (a b)’ S = r (a b) R = (r’ + r) . a . b + r . (a’. b + a . b’) R = a . b + r . (a b) Reti combinatorie - parte seconda
CI 4 Bit a0 Full a1 Adder a2 a3 s0 s1 s2 s3 b0 b1 b2 b3 CO 0 a0 b0 FA s0 r1 r1 a1 b1 FA s1 r2 rn-1 an-1 bn-1 FA sn-1 rn = sn Composizione modulare di addizionatori Reti combinatorie - parte seconda
Esercizi Assumendo tp come ritardo di propagazione di un gate, si determini quale è il ritardo massimo di un 4 bit Full-Adder realizzato connettendo in cascata 4 moduli FA. E’ possibile realizzare a due livelli un addizionatore a 4 bit ? Quali sono i vantaggi e gli svantaggi di questa soluzione rispetto all’addizionatore realizzato connettendo in cascata 4 moduli FA? Reti combinatorie - parte seconda
14 1 1 14 13 2 13 2 3 3 12 12 4 4 11 11 10 5 10 5 9 6 9 6 8 7 7 8 b0 b1 b2 b3 SN7498 SN7498 b4 b5 b6 b7 0/P P/E Parità con EX-OR (1) P = b0 b1 b2 b3.. b7 N.B. L’operazione di somma modulo due è associativa P = ((b0 b1)(b2 b3))((.. b7)) E = P (((b0 b1)(b2 b3))((.. b7))) Reti combinatorie - parte seconda
b0 b1 SN74280 (MSI) b2 b3 b4 b5 b6 b7 P/E 0/P 8 + 8 ’280 ’280 P ’280 ’280 E 0 Trasmettitore Ricevitore Parità con EX-OR (2) Generazione parità e rilevazione errori singoli su dati da due byte: Reti combinatorie - parte seconda
a0 b0 a0 b0 a1 b1 a1 b1 z z an-2 bn-2 an-2 bn-2 an-1 bn-1 an-1 bn-1 Confronto con EX-OR Reti combinatorie - parte seconda
I0 SN74151 I1 I2 I3 Z I4 I5 I6 I7 A B C SN74138 U0 U1 U2 U3 EN U4 U5 U6 A B C U7 ? 1 a0 a1 a2 b0 b1 b2 Esercizio Quale è la funzione svolta dalla rete in figura ? Reti combinatorie - parte seconda