41
© 2001/02 - William Fornaciari © 2001/02 - William Fornaciari Università degli studi di Università degli studi di Parma Parma Dipartimento di Ingegneria Dipartimento di Ingegneria dell’Informazione dell’Informazione Politecnico Politecnico di Milano di Milano Sintesi di reti a più livelli Sintesi di reti a più livelli Lezione 3.4 Lezione 3.4 Approccio algoritmico: SIS Approccio algoritmico: SIS Docente: Docente: prof. William FORNACIARI prof. William FORNACIARI [email protected] [email protected] www.elet.polimi.it/people/fornacia www.elet.polimi.it/people/fornacia

Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Embed Size (px)

Citation preview

Page 1: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

© 2001/02 - William Fornaciari© 2001/02 - William Fornaciari

Università degli studi di Università degli studi di ParmaParmaDipartimento di Ingegneria dell’InformazioneDipartimento di Ingegneria dell’Informazione

PolitecnicoPolitecnicodi Milanodi Milano

Sintesi di reti a più livelliSintesi di reti a più livelli

Lezione 3.4Lezione 3.4

Approccio algoritmico: SISApproccio algoritmico: SIS

Docente:Docente:

prof. William FORNACIARIprof. William FORNACIARI [email protected]@elet.polimi.it

www.elet.polimi.it/people/fornaciawww.elet.polimi.it/people/fornacia

Page 2: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 22 - -

L’approccio tipicamente utilizzato è quello algoritmico (Viene utilizzato in SIS)

Consiste nel definire un algoritmo per ogni tipo di trasformazione.L'algoritmo determina dove può essere applicata la trasformazione, attua la trasformazione stessa e la mantiene se porta benefici e termina quando nessuna trasformazione di quel tipo è ulteriormente applicabile.Il maggior vantaggio dell'approccio algoritmico è che trasformazioni di un dato tipo sono sistematicamente applicate alla rete.Algoritmi legati a differenti trasformazioni sono applicati in sequenza.

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Approcci alla Approcci alla ottimizzazione multi-livelloottimizzazione multi-livello

Page 3: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 33 - -

Problema: differenti sequenze possono portare a differenti soluzioni.Soluzione: si usano regole frutto di sperimentazioni. Esempio: per reti combinatorie è consigliato lo Rugged.script.sweep; eliminate -1simplify -m nocompeliminate -1sweep; eliminate 5simplify -m nocompresub -afxresub -a; sweepeliminate -1; sweepfull_semplify -m nocomp

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Approcci alla Approcci alla ottimizzazione multi-livelloottimizzazione multi-livello

Page 4: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 44 - -

SweepElimina, nella rete, tutti i vertici con un solo ingresso e quelli relativi a funzioni costanti.

Simplify e Full_simplifySemplificazione due livelli di ogni nodo.

-m nocomp: non calcola l'off-set

EliminateRiduce la lunghezza del percorso I/O. La lunghezza è calcolata in numero di nodi attraversati .Riduzione vincolata (opzione Val_Intero) - es. eliminate 5

L'eliminazione di un vertice è accettata se incrementa l'area di una quantità inferiore a Val_Intero dove l’incremento di area è calcolato come n*l -n -l dovel è numero di letterali del nodo eliminato mentre n è il numero di nodi che lo assorbono

Riduzione non vincolatatutti i nodi vengono collassati in un solo nodo: rete a due livelli.

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Page 5: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 55 - -

Esempio di eliminate 2:

Eliminate -1

d=a+b+c

x=de+ef

y=df+de

x=(a+b+c)e+ef

y=(a+b+c)f+de

Costo: 3 + 4 + 4 = 11 Costo: 6 + 6 = 12

Osservano i dati relativi a n*l-n-l al variare di n e l si può constatare che l’effetto di eliminate -1 è quello di eliminare tutti i nodi composti da un solo letterale.

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

incremento di costo: 2*3 -2 -3 = 1

1 2 3 4 5 6 71 -1 -1 -1 -1 -1 -1 -12 -1 0 1 2 3 4 53 -1 1 3 5 7 9 11

l 4 -1 2 5 8 11 14 175 -1 3 7 11 15 19 236 -1 4 9 14 19 24 297 -1 5 11 17 23 29 358 -1 6 13 20 27 34 419 -1 7 15 23 31 39 47

n

Page 6: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 66 - -

Le altre trasformazioni sono più complesse a causa dei gradi di libertà disponibili nella manipolazione di espressioni Booleane.Per semplificare la ricerca di trasformazioni utili, a prezzo della qualità del risultato, si utilizzano delle trasformazioni algebriche (algebra polinomiale) poiché sono un sottoinsieme delle trasformazioni Booleane.Espressioni algebriche:

Derivano dalle espressioni Booleane considerando i cubi (prodotti di letterali) come monomi.Letterali con diversa polarità sono da considerarsi variabili differenti (ad esempio, a è differente da a’).

Trasformazioni Algebriche:Manipolazione delle espressioni mediante regole dell'algebra polinomiale

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Page 7: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 77 - -

Trasformazioni che utilizzano la manipolazione algebrica delle espressioni:SUBSTITUTION

sostituisce una sotto-espressione di un nodo mediante una variabile (nodo) già presente nella rete.

EXTRACTIONestrae un cubo (o una espressione multi_cubo) da un gruppo di nodi.

DECOMPOSITIONdecompone un nodo estraendo da quest’ultimo un gruppo di nodi.

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Page 8: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 88 - -

SubstitutionSostituzione di una sotto-espressione mediante una variabile (nodo) già presente nella rete. Ogni sostituzione è accettata se produce guadagno nel numero di letterali.

Fa uso della divisione algebrica; si cerca di ridurre fi usando fj

fi=fdivisore fquoziente + fresto

fj=fdivisorefi=fj fquoziente + fresto

fj=fdivisore

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Page 9: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 99 - -

ExtractionSi estrae un cubo (o una espressione multi_cubo) da gruppi di nodi. L'estrazione viene fatta fino a che è possibile.

Identificazione di divisori comuni a 2 o più espressioni. Un divisore può essere estratto e costituisce un nuovo nodo della rete che ha per successori i nodi da cui proviene.

Vincoli:n: ogni n iterazioni vengono ricalcolate tutte le possibili parti condivisibilik: dimensione massima del multi_cubo.

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Page 10: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 1010 - -

Esempio:

fi=fdivisore fquoziente_i + fresto_i

fj=fdivisore fquoziente_i + fresto_j

fi=fk fquoziente_i + fresto_i

fj=fk fquoziente_i + fresto_j

fk=fdivisore

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Page 11: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 1111 - -

DecompositionDue obiettivi:

Ridurre le dimensioni di una espressione a quelle accettabili da un generatore di celleEspressioni più piccole (possono essere più probabilmente divisori e quindi usabili da Substitute)

La decomposizione associa una nuova variabile al divisore e riduce la funzione originale. La decomposizione può essere applicata ricorsivamente al divisore, quoziente e resto.

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Page 12: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 1212 - -

Esempio:

fi=fd (fdq fqq + frq) + (fdr fqr+ frr)

fj=fq

fi=fj (fk fqq+frq) + fl fqr + frrfl=fdr

fk=fdq

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Page 13: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 1313 - -

Punto fondamentale:

Divisione AlgebricaDefinizione:

una funzione fdivisore è un divisore algebrico di fdividendo quando fdividendo=fdivisore*fquoziente+fresto con fdivisore*fquoziente 0 e il supporto di fdivisore è disgiunto dal supporto di fquoziente (non condividono le stesse variabili).

Supporti disgiuntil'espressione ottenuta dal prodotto delle due espressioni a supporto disgiunto è una espressione somma di prodotti booleana non ridondante.

Esempio: (a + b) (a + c) = aa + ac + ba + bc espressione booleana non nella forma minima poiché aa = a. Si noti che {a,b}{a,c} = {a}.

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Page 14: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 1414 - -

Esempio: siano dati un dividendo ed un divisore.

fresto = cde+bd+ef

fdividendo= ac+ab+cde+bd+ef fdivisore=c+b

A={ac,ab,cde,bd, ef} B={c,b}

divisione per c: Ac={a,de} divisione per b: Ab={a,d}

Q= Ac Ab={a} poiché i monomi sono elementi atomici

R= A - Q x B = A - {a} x {c,b} = {ac,ab,cde,bd,ef} - {ac, ab}= {cde,bd,ef}

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Page 15: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 1515 - -

SubstitutionData una espressione fi si vuole ridurne le dimensioni usando una variabile j definita dalla equazione j=fj: fi= j fquoziente+fresto

La ricerca dei sostitutori algebrici è fatta considerando tutte le coppie di espressioni presenti nella rete.La ricerca è ridotta considerando:

Filtri (condizioni di ammissibilità della divisione algebrica). La divisione algebrica fi/ fj è vuota se:

fj contiene variabili non presenti in fi

fj contiene più termini di fi

fj contiene almeno un monomio che ha più termini di ogni altro contenuto in fi

Teorema: Il quoziente di una divisione algebrica tra due espressioni è vuoto se esiste un percorso che le collega.

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Page 16: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 1616 - -

ExtractionEstrazione di una sotto_espressione divisore comune di due o più espressioni.Estrazioni:

Di un singolo cubo: monomioDi una espressione multi_cubo: polinomio

Importante: se il risultato della divisione per un monomio è ancora un monomio, il raccoglimento è banale (da scartare).

Esempio: espressione: ace + bcedivisore a: quoziente ce. Da scartare divisore b: quoziente be. Da scartaredivisore c: quoziente ae+be. E’ ulteriormente fattorizzabile da e. divisore ce: quoziente a+b. E’ divisore!!

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Page 17: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 1717 - -

Esempio (fattorizzazione monomica):

1) ae + be + cde 2) ad + ae + bd + be + bg

a: {d, e}b: {d, e, g}c: Ød: {a, b}e: {a ,b}1: {ad, ae, bd, be, bg}

a: {e}b: {e}c: {de}e: {a, b, cd}1: fattorizzabile per e

{a, b} {a, b}

k=a+bf1=ke+cdef2=ke+ad+bd+bg

k=a+bf1=ke+cdef2=kd+ae+be+bg

banali

Divisore Quoziente

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Divisore Quoziente

Page 18: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 1818 - -

Estrazione di un cubo.Il metodo precedentemente sviluppato porta ad ottenere un sotto insieme delle soluzioni ammissibili (che può essere anche vuoto).

Esempio:

Poiché le funzioni da cui estrarre il cubo sono analizzate separatamente, non vengono considerate soluzioni che rappresentano dei raccoglimenti banali.Alcune delle soluzioni ammissibili possono essere escluse.

f=a’b+bc+abc’ ; g=ab’+a’bc+bcd

b: {a’, c, ac’} b: {a’c, cd} ; bc: {a’, d}

NON c’è soluzione comune (non banale - es.: a’)

bc potrebbe essere estratto da f e da g. . . . .

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Page 19: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 1919 - -

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Estrazione di un cubo.Ogni coppia di funzioni fi e fk è raggruppata sotto una unica funzione ausiliaria fi+fk di cui si calcolano i divisori.Il cubo che può essere estratto è il divisore di dimensione massima che ha intersezione non nulla con le due funzioni di partenza.

Esempio:Divisori:{b, ce}

faux= ace + bce + bg + cde + h

b : appartiene solo a f1. E' da scartarece: compare sia in f1 che in f2. Va bene!

f1=k(a+b) + bg

f2=kd + hK=ce

f1= ace + bce + bg

f2=cde + h

Page 20: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 2020 - -

Esempio:

f=a’b+bc+abc’ ; g=ab’+a’bc+bcd

faux=a’b+bc+abc’+ab’+a’bc+bcd

a: {bc’, b’}b: {a’, c, ac’, cd}c: {b, a’b, bd} cb: {1, a’, d}a’: {b, bc’} a’b: {1,c}

q=cbf=a’b+q+abc’g=ab’+q(a’+d)

a, b, cb, a’b sono divisoricomuni alle due funzioni.

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Page 21: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 2121 - -

Estrazione di un multi_cubo.Si cerca l'intersezione tra due elementi dell'insieme dei quozienti delle funzioni.

Esempio:

f1=ace + bce + de + g ; Quozienti(f1)={(ace+bce+de+g), (ac+bc+d), (a+b)}f2=ad + ae + bd + be + bg ; Quozienti(f2)={(ad+ae+bd+be+bg), (d+e), (d+e+g), (a+b)}

Quozienti(f1)={{xace,xbce,xde,xg}, {xac,xbc,xd}, {xa,xb}}Quozienti(f2)={{xad,xae,xbd,xbe,xbg}, {xd,xe}, {xd,xe,xg}, {xa,xb}}

Trasformazione in nuove variabili

faux=xace xbce xde xg+xac xbc xd+xa xb+xad xae xbd xbe xbg+xd xe+xd xe xg

Divisori:{xd,xe,xa xb,xd xe} si sceglie a+b poiché d+e non è in f1

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Page 22: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 2222 - -

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Comando:print_kernel [-as] node-list

Funzione:Stampa i divisori ed i rispettivi quozienti di tutti i nodi specificati nella node-list.

Parametri:-a: (default) stampa tutti i divisori ed i rispettivi quozienti.-s: stampa solamente i sotto-quozienti.

Page 23: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 2323 - -

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Comando:gcx [-bcdf] [-t threshold]

Funzione:Estrae da una rete i cubi comuni e ri-descrive la rete stessa in termini di questi cubi puntando alla riduzione del costo.

Parametri:-b: estrae, ad ogni passo, il miglior cubo che può essere estratto-c: estrae il cubo o il suo complemento durante la fase di estrazione.-f: il numero dei letterali è valutato sulle forme fattorizzate invece che sulla somma-di-prodotti.-t: i cubi utilizzati per la ristrutturazione della rete sono quelli con costo superiore alla soglia. -d: opzione di debbuging.

Page 24: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 2424 - -

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Esempio di applicazione di gcx (X2.eqn) (costo finale: lit(sop)=70 lits(fac)=69)

INORDER = a b c d e f g h i j;OUTORDER = k l m n o p q;k = j + !i + !h;l = !j*!m + !h*!m + i;m = !h*!i*!j;n = y + m + j + h + c;o = i*j + !h + !g;p = c*o*!y*z + f*j*!z + d*!e*!k + !i*!j + !g;q = h*o*!p*!y + d*!k*!p + p*!z + !l + !g;y = b + a;z = !i + h;lits(SOP)=90 lits(FAC)=75

sis> gcx -dCube_extract: cube literal matrix is 35 by 17 col7 by 2 value=5 literals 854 by 3 value=5 literals 804 by 2 value=2 literals 783 by 3 value=3 literals 753 by 2 value=1 literals 744 by 2 value=2 literals 722 by 2 value=1 literals 712 by 3 value=1 literals 70

INORDER = a b c d e f g h i j;OUTORDER = k l m n o p q;k = !i*!j + f1 + e1 + d1 + b1;l = g1 + f1 + d1 + b1;m = c1;n = g1 + e1 + d1 + c1 + b1 + c + b + a;o = f1 + d1 + c1 + b1 + !g;p = h*b1*i1 + !h*!i*i1 + d*!e*g1 + !i*!j + h1 + !g;q = !a*!b*!c*h*j + d*e*i*g1 + h1 + e1 + c1 + !g;b1 = i*j;c1 = !h*!i*!j;d1 = !h*j;e1 = h*!i*j;f1 = !h*i;g1 = h*!j;h1 = f*!h*b1;i1 = !a*!b*c;lits(SOP)=70 lits(FAC)=69

Page 25: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 2525 - -

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Comando:gkx [-1abcdfo] [-t threshold]

Funzione:Estrae da una rete i multi_cubo divisori comuni e ri-descrive la rete stessa in termini di questi cubi puntando alla riduzione del costo.

Parametri:-a: genera tutti i divisori per tutte le funzioni presenti nella rete. Per default, utilizza solamente i divisori di livello 0. -b: seleziona, ad ogni passo dell’algoritmo, il miglior divisore multi_cubo. -c: prova ad utilizzare sia il nuovo fattore che il suo complemento.-d: opzione di debugging.-f: il numero dei letterali è valutato sulle forme fattorizzate.-o: consente la sovrapposizione di fattori.-t: i divisori sono estratti solo se il loro valore supera la soglia. Per default la soglia è 0 cosicché tutti i possibili multi_cubo sono estratti dalla rete.-1: l’algoritmo attraversa la rete una sola volta. Per default l’estrazione dei quozienti è iterata fino a che ci sono divisori il cui valore supera la soglia.

Page 26: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 2626 - -

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Esempio di applicazione di gkx (X2.eqn) (costo finale: lit(sop)=67 lits(fac)=64)

Page 27: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 2727 - -

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Comando:fx [-o] [-b limit] [-z]

Funzione:Dopo avere trovato tutti i miglior divisori di ogni nodo composti da un cubo (monimiali) e da un un doppio cubo (binomiali), associa un costo ad ogni nodo ed estrae, iterativamente, il nodo con la miglior funzione di costo. (algoritmo tipo Greedy)

Parametri:-o: divisori binomiali di solo livello 0.-b: limite superiore di divisori generati (default: 50000).-z: utilizza anche i divisori di peso zero; sono estratti tutti i divisori che non danno una perdita di costo nella decomposizione della rete. La decomposizione potrebbe essere migliore ma richiede un ampio sforzo computazionale.

Page 28: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 2828 - -

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Esempio di applicazione di fx (X2.eqn) (costo finale: lit(sop)=55 lits(fac)=54)

Page 29: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 2929 - -

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Esempio di applicazione di fx -z (X2.eqn)

Page 30: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 3030 - -

DecomposeObiettivi:

1) Ridurre le dimensioni delle espressioni a quelle accettabili da un generatore di celle

2) Espressioni più piccole sono probabilmente dei divisori ed utilizzabili da Substitute.

k=a'+b t=kc+d q=te+g

q=a'ce+bce+de+g

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Page 31: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 3131 - -

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Comando:decomp [-gqd] [node-list]

Funzione:Decompone tutti i nodi della lista; se la lista non è specificata tutti i nodi della rete saranno decomposti. decomp fattorizza i nodi e introduce nella rete i divisori come nuovi nodi.

Parametri:-g: estrae in successione i divisori migliori (good).-q: decomposizione rapida (quick); estrae di un divisore arbitrario.-d: decomposizione disgiunta; i divisori estratti non condividono variabili.

Algoritmo: partiziona i cubi in insiemi che hanno variabili di supporto non condivise, crea un nodo per ogni partizione ed un nodo che è l’OR di queste partizioni (es: k=h’j+i’+hj’ k=[1]+[2]; [1]=h’j+hj’; [2]=i’)

Page 32: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 3232 - -

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmiTrasformazioni e algoritmi

Esempio di applicazione di decomp (X2.eqn)

Page 33: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 3333 - -

Modello:Rete logica costituita da vertici a cui è associata una funzione booleana locale ed un DC-set locale

Problema:

Valutazione del DC-set

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Valutazione Valutazione deldelDC-set localeDC-set locale

Page 34: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 3434 - -

Condizioni di Indifferenza Esterne: sono relative all’interazione della funzione booleana con l’ambiente.Due aspetti:

ControllabilitàCondizioni di indifferenza di ingresso (CDCin)

– Insieme di configurazioni di ingresso mai fornite alla rete

OsservabilitàCondizioni di indifferenza di uscita (ODCout)

– Insieme delle configurazioni di configurazioni di ingresso che produco uscite non osservabili dall’ambiente.

– E’ un vettore che ha tante componenti quante sono le uscite primarie (nout)

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Valutazione Valutazione deldelDC-set localeDC-set locale

Page 35: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 3535 - -

Condizioni di indifferenza esterne

DCext= CDCin ODCout

CDCin e’ un vettore di nout componenti pari a CDCin

Esempio:

x1

x2

ab

c

y1

y2

retecombinatoria

o1

o2

DCext=CDCin+ODCout=

CDCin: x1 x2 non assume mai la configurazione 01 CDCin= x1’x2

ODCout: per x1=0, y1 non è osservabile ODCout= per x2=0, y2 non è osservabile

x

x

1

2

'

'

x x x

x x x

1 2 1

1 2 2

' '

' '

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Valutazione Valutazione deldelDC-set localeDC-set locale

Page 36: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 3636 - -

Esempio: calcolo del CDC di un nodo

x y

a

bc

x=a’+b ; y=abx + a’cx le variabili di supporto di ysono a, b, c, x.

0 0 0 00 0 1 01 1 1 00 0 0 0

00011101

cx ab

y può essere ulteriormente semplificata osservando che:

non è possibile che x a’+b (x non è una variabile indipendente)

quindi CDC= x(a’+b) = x’a’ + x’b + xab’- - - 00 0 1 -1 1 1-

-- - 0

00011101

cxab

00 01 11 01

y=ax + cx

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Valutazione Valutazione deldelDC-set locale: CDCDC-set locale: CDC

Page 37: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 3737 - -

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmi per la semplificazioneTrasformazioni e algoritmi per la semplificazione

Comando:simplify [-d] [-m method] [-f filter] [node-list]

Funzione:semplifica ogni nodo della rete utilizzando il metodo specificato e generando l’opportuno DC-set. Il nodo è sostituito con la nuova funzione se quest’ultima ha meno letterali (nella forma fattorizzata)

Parametri:-m method: specifica il metodo da utilizzare nella minimizzazione

snocomp (default): non calcola l’OFF-set completo;nocomp: utilizza ESPRESSO; non calcola l’OFF-set completo;dcsimp: minimizzatore tautology-based;dctype: specifica come il DC-set è generato;

-d: il DC-set non è utilizzato;-f filter: specifica come il DC-set è filtrato

exact: filtro esatto;disjsup: usa il filtro basato sui supporti disgiunti;

Page 38: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 3838 - -

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmi per la semplificazioneTrasformazioni e algoritmi per la semplificazione

Esempio:INORDER = a b c;OUTORDER = y;x=!a+b;y=a*b*x + !a*c*x;

Page 39: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 3939 - -

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmi per la semplificazioneTrasformazioni e algoritmi per la semplificazione

Esempio:

.model CM82

.inputs a b c d e

.outputs f g h

.names a s f01 110 1.names o r g11 100 1.names o d e h01- 10-1 1-11 1.names a b c o00- 10-0 1-00 1.names d e r01 110 1.names b c s01 110 1.end

.model CM82

.inputs a b c d e

.outputs f g h

.names a s f01 110 1.names o r g11 100 1.names o d e h01- 10-1 1-11 1.names a b c o00- 10-0 1-00 1.names d e r01 110 1.names b c s01 110 1.end

Page 40: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 4040 - -

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmi per la semplificazioneTrasformazioni e algoritmi per la semplificazione

Comando:full_simplify [-d] [-o ordering] [-m method] [-l] [-v verbose ]

Funzione:semplifica ogni nodo della rete utilizzando i DC locali.

Parametri:-m method: specifica il metodo da utilizzare nella minimizzazione

snocomp (default): non calcola l’OFF-set completo;nocomp: utilizza ESPRESSO; non calcola l’OFF-set completo;dcsimp: minimizzatore tautology-based;

-d: l’ODC-set non è calcolato;-o ordering: ordinamento dei nodi della rete

0 (default): i nodi sono ordinati in base alla profondità;1: utilizza il livello del nodo;

-v: informazioni per il debugging.

Page 41: Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più

Sintesi multilivello: SISSintesi multilivello: SIS © 2001/02 - William Fornaciari© 2001/02 - William Fornaciari- - 4141 - -

Sintesi di reti combinatorie a più livelli: Sintesi di reti combinatorie a più livelli: scriptscript

Script.algebraicsweepeliminate 5simplify -m nocomp -dresub -a

gkx -abt 30resub -a;sweepgcx -bt 30resub -a; sweep

gkx -abt 10resub -a;sweepgcx -bt 10resub -a;sweep

gkx -abresub -a; sweepgcx -bresub -a; sweep

eliminate 0decomp -g *

Script.boolean sweep; eliminate -1simplifyeliminate -1sweep; eliminate 5simplifyresub -agkx -abt 30resub -a; sweepgcx -bt 30resub -a; sweepgkx -abt 10resub -a; sweepgcx -bt 10resub -a; sweepgkx -abresub -a; sweepgcx -bresub -a; sweepeliminate 0decomp -g *eliminate -1; sweep

Script.rugged sweep; eliminate -1simplify -m nocompeliminate -1

sweep; eliminate 5simplify -m nocompresub -a

fxresub -a; sweep

eliminate -1; sweepfull_simplify -m nocomp