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

Slides:



Advertisements
Presentazioni simili
OLIMPIADI DI FISICA a.s. 2008/2009
Advertisements

Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta non guidata di un corpo rettangolare in un serbatoio Velocità e rotazione.
I numeri naturali ….. Definizione e caratteristiche
Cos’è la fattorizzazione
1 MeDeC - Centro Demoscopico Metropolitano Provincia di Bologna - per Valutazione su alcuni servizi erogati nel.
Mat_Insieme Lavoro di Gruppo Prodotti Notevoli
TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
COORDINATE POLARI Sia P ha coordinate cartesiane
Frontespizio Economia Monetaria Anno Accademico
esponente del radicando
2ab2 2b4 4x − 2y a 3b2y3 3b2y3b Definizione e caratteristiche
(se a = 0 l’equazione bx + c = 0 è di primo grado)
Esercitazioni su circuiti combinatori
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Reti Logiche A Lezione n.1.4 Introduzione alle porte logiche
Macchine non completamente specificate
Algoritmo di Ford-Fulkerson
Il comportamento del consumatore
A.S.E.13.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 13 Alcune definizioniAlcune definizioni Algoritmo di sintesi ottima di Quine-McCluskeyAlgoritmo.
8. Reti di Code Nella maggior parte dei processi produttivi risulta troppo restrittivo considerare una sola risorsa. Esempio: linea tandem arrivi 1 v.
Canale A. Prof.Ciapetti AA2003/04
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
SCOMPOSIZIONE DI UN POLINOMIO IN FATTORI
Realizzazione e caratterizzazione di una semplice rete neurale per la separazione di due campioni di eventi Vincenzo Izzo.
Test di ipotesi X variabile casuale con funzione di densità (probabilità) f(x; q) q Q parametro incognito. Test Statistico: regola che sulla base di un.
Seminario su clustering dei dati – Parte II
Reti Combinatorie: sintesi
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
TECNOLOGIE DEI SISTEMI DI CONTROLLO
Algoritmi e Strutture Dati
Cos’è un problema?.
Num / 36 Lezione 9 Numerosità del campione.
Lezione 4 Probabilità.
19 Lezione 21/5/04 Composizione dell'immagine 1 COMPOSIZIONE DELLIMMAGINE.
2 3 4 RISERVATEZZA INTEGRITA DISPONIBILITA 5 6.
Le operazioni con i numeri
LA SCOMPOSIZIONE DI POLINOMI IN FATTORI
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
Somma fra frazioni algebriche
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Scomposizione polinomi
LE SAI LE TABELLINE? Mettiti alla prova!.
LA CIRCONFERENZA.
Esempi risolti mediante immagini (e con excel)
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Classificazione (aka Cluster Analysis)
STATISTICA PER LA RICERCA SPERIMENTALE E TECNOLOGICA
CALCOLO LETTERALE Perché?
Massimo comun divisore
Corso di ELETTROTECNICA
Reti Logiche A Lezione xx.x Dispositivi Programmabili
Teoria dei sistemi Autore: LUCA ORRU'.
FONDAMENTI DI INFORMATICA
CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano introduzione alle architetture superscalari Come.
Sintesi di reti combinatorie a due livelli
I mercati dei beni e i mercati finanziari: il modello IS-LM
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano Reti Logiche A Macchine non completamente specificate.
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a due.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Calcolo letterale.
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Reti Logiche A Lezione.
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a due.
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più.
Reti Logiche A Lezione 2.1 Sintesi di reti combinatorie a due livelli
Lezione n° 8 - Matrice di base. - Soluzioni di base ammissibili. - Relazione tra vertici di un poliedro e soluzioni basiche. - Teorema fondamentale della.
Transcript della presentazione:

Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più livelli Lezione 3.4 Approccio algoritmico: SIS Docente: prof. William FORNACIARI

Sintesi multilivello: SIS© 2001/02 - William Fornaciari- 2 - 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: Approcci alla ottimizzazione multi-livello

Sintesi multilivello: SIS© 2001/02 - William Fornaciari- 3 - 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 -1 simplify -m nocomp eliminate -1 sweep; eliminate 5 simplify -m nocomp resub -a fx resub -a; sweep eliminate -1; sweep full_semplify -m nocomp Sintesi di reti combinatorie a più livelli: Approcci alla ottimizzazione multi-livello

Sintesi multilivello: SIS© 2001/02 - William Fornaciari- 4 - Sweep Elimina, nella rete, tutti i vertici con un solo ingresso e quelli relativi a funzioni costanti. Simplify e Full_simplify Semplificazione due livelli di ogni nodo. -m nocomp: non calcola l'off-set Eliminate Riduce 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 dove l è numero di letterali del nodo eliminato mentre n è il numero di nodi che lo assorbono Riduzione non vincolata tutti i nodi vengono collassati in un solo nodo: rete a due livelli. Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmi

Sintesi multilivello: SIS© 2001/02 - William Fornaciari- 5 - 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: = 11Costo: = 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: Trasformazioni e algoritmi incremento di costo: 2* = 1

Sintesi multilivello: SIS© 2001/02 - William Fornaciari- 6 - 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: Trasformazioni e algoritmi

Sintesi multilivello: SIS© 2001/02 - William Fornaciari- 7 - Trasformazioni che utilizzano la manipolazione algebrica delle espressioni: SUBSTITUTION sostituisce una sotto-espressione di un nodo mediante una variabile (nodo) già presente nella rete. EXTRACTION estrae un cubo (o una espressione multi_cubo) da un gruppo di nodi. DECOMPOSITION decompone un nodo estraendo da quest’ultimo un gruppo di nodi. Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmi

Sintesi multilivello: SIS© 2001/02 - William Fornaciari- 8 - Substitution Sostituzione 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 f i usando f j f i =f divisore f quoziente + f resto f j =f divisore f i =f j f quoziente + f resto f j =f divisore Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmi

Sintesi multilivello: SIS© 2001/02 - William Fornaciari- 9 - Extraction Si 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 condivisibili k: dimensione massima del multi_cubo. Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmi

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Esempio: f i =f divisore f quoziente_i + f resto_i f j =f divisore f quoziente_i + f resto_j f i =f k f quoziente_i + f resto_i f j =f k f quoziente_i + f resto_j f k =f divisore Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmi

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Decomposition Due obiettivi: Ridurre le dimensioni di una espressione a quelle accettabili da un generatore di celle Espressioni 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: Trasformazioni e algoritmi

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Esempio: f i =f d (f dq f qq + f rq ) + (f dr f qr + f rr ) f j =f q f i =f j (f k f qq +f rq ) + f l f qr + f rr f l =f dr f k =f dq Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmi

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Punto fondamentale: Divisione Algebrica Definizione: una funzione f divisore è un divisore algebrico di f dividendo quando f dividendo =f divisore *f quoziente +f resto con f divisore *f quoziente  0 e il supporto di f divisore è disgiunto dal supporto di f quoziente (non condividono le stesse variabili). Supporti disgiunti l'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: Trasformazioni e algoritmi

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Esempio: siano dati un dividendo ed un divisore. f resto = cde+bd+ef f dividendo = ac+ab+cde+bd+ef f divisore =c+b A={ac,ab,cde,bd, ef}B={c,b} divisione per c: A c ={a,de}divisione per b: A b ={a,d} Q= A c  A b ={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: Trasformazioni e algoritmi

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Substitution Data una espressione f i si vuole ridurne le dimensioni usando una variabile j definita dalla equazione j=f j : f i = j f quoziente +f resto 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 f i / f j è vuota se: f j contiene variabili non presenti in f i f j contiene più termini di f i f j contiene almeno un monomio che ha più termini di ogni altro contenuto in f i 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: Trasformazioni e algoritmi

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Extraction Estrazione di una sotto_espressione divisore comune di due o più espressioni. Estrazioni: Di un singolo cubo: monomio Di 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 + bce divisore a: quoziente ce. Da scartare divisore b: quoziente be. Da scartare divisore c: quoziente ae+be. E’ ulteriormente fattorizzabile da e. divisore ce: quoziente a+b. E’ divisore!! Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmi

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Esempio (fattorizzazione monomica) : 1) ae + be + cde2) 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} k=a+b f 1 =ke+cde f 2 =ke+ad+bd+bg k=a+b f 1 =ke+cde f 2 =kd+ae+be+bg banali Divisore Quoziente   Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmi Divisore Quoziente

Sintesi multilivello: SIS© 2001/02 - William Fornaciari 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: Trasformazioni e algoritmi

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmi Estrazione di un cubo. Ogni coppia di funzioni f i e f k è raggruppata sotto una unica funzione ausiliaria f i +f k 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 f 1. E' da scartare ce: compare sia in f 1 che in f 2. Va bene! f 1 =k(a+b) + bg f 2 =kd + h K=ce f 1 = ace + bce + bg f 2 =cde + h

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Esempio: f=a’b+bc+abc’ ; g=ab’+a’bc+bcd f aux =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=cb f=a’b+q+abc’ g=ab’+q(a’+d) a, b, cb, a’b sono divisori comuni alle due funzioni. Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmi

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Estrazione di un multi_cubo. Si cerca l'intersezione tra due elementi dell'insieme dei quozienti delle funzioni. Esempio: f 1 =ace + bce + de + g ; Quozienti(f 1 )={(ace+bce+de+g), (ac+bc+d), (a+b)} f 2 =ad + ae + bd + be + bg ; Quozienti(f 2 )={(ad+ae+bd+be+bg), (d+e), (d+e+g), (a+b)} Quozienti(f 1 )={{x ace,x bce,x de,x g }, {x ac,x bc,x d }, {x a,x b }} Quozienti(f 2 )={{x ad,x ae,x bd,x be,x bg }, {x d,x e }, {x d,x e,x g }, {x a,x b }} Trasformazione in nuove variabili f aux =x ace x bce x de x g +x ac x bc x d +x a x b +x ad x ae x bd x be x bg +x d x e +x d x e x g Divisori:{x d,x e,x a x b,x d x e } si sceglie a+b poiché d+e non è in f 1 Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmi

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Sintesi di reti combinatorie a più livelli: Trasformazioni 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.

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Sintesi di reti combinatorie a più livelli: Trasformazioni 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.

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Sintesi di reti combinatorie a più livelli: Trasformazioni 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 -d Cube_extract: cube literal matrix is 35 by 17 col 7 by 2value=5literals 85 4 by 3value=5literals 80 4 by 2value=2literals 78 3 by 3value=3literals 75 3 by 2value=1literals 74 4 by 2value=2literals 72 2 by 2value=1literals 71 2 by 3value=1literals 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

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Sintesi di reti combinatorie a più livelli: Trasformazioni 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.

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmi Esempio di applicazione di gkx (X2.eqn) (costo finale: lit(sop)=67 lits(fac)=64)

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Sintesi di reti combinatorie a più livelli: Trasformazioni 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.

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmi Esempio di applicazione di fx (X2.eqn) (costo finale: lit(sop)=55 lits(fac)=54)

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmi Esempio di applicazione di fx -z (X2.eqn)

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Decompose Obiettivi: 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: Trasformazioni e algoritmi

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Sintesi di reti combinatorie a più livelli: Trasformazioni 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’)

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmi Esempio di applicazione di decomp (X2.eqn)

Sintesi multilivello: SIS© 2001/02 - William Fornaciari 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: Valutazione del DC-set locale

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Condizioni di Indifferenza Esterne: sono relative all’interazione della funzione booleana con l’ambiente. Due aspetti: Controllabilità Condizioni di indifferenza di ingresso (CDC in ) –Insieme di configurazioni di ingresso mai fornite alla rete Osservabilità Condizioni di indifferenza di uscita (ODC out ) –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 (n out ) Sintesi di reti combinatorie a più livelli: Valutazione del DC-set locale

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Condizioni di indifferenza esterne DC ext = CDC in  ODC out CDC in e’ un vettore di n out componenti pari a CDC in Esempio: x1 x2 a b c y1 y2 rete combinatoria o1 o2 DC ext =CDC in +ODC out = CDC in : x1 x2 non assume mai la configurazione 01  CDC in = x1’x2 ODC out : per x1=0, y1 non è osservabile  ODC out = per x2=0, y2 non è osservabile Sintesi di reti combinatorie a più livelli: Valutazione del DC-set locale

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Esempio: calcolo del CDC di un nodo xy a b c x=a’+b ;y=abx + a’cx le variabili di supporto di y sono a, b, c, x cxab 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’ cx ab y=ax + cx Sintesi di reti combinatorie a più livelli: Valutazione del DC-set locale: CDC

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Sintesi di reti combinatorie a più livelli: Trasformazioni 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;

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmi per la semplificazione Esempio: INORDER = a b c; OUTORDER = y; x=!a+b; y=a*b*x + !a*c*x;

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Sintesi di reti combinatorie a più livelli: Trasformazioni e algoritmi per la semplificazione Esempio:.model CM82.inputs a b c d e.outputs f g h.names a s f names o r g names o d e h names a b c o names d e r names b c s end.model CM82.inputs a b c d e.outputs f g h.names a s f names o r g names o d e h names a b c o names d e r names b c s end

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Sintesi di reti combinatorie a più livelli: Trasformazioni 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.

Sintesi multilivello: SIS© 2001/02 - William Fornaciari Sintesi di reti combinatorie a più livelli: script Script.algebraic sweep eliminate 5 simplify -m nocomp -d resub -a gkx -abt 30 resub -a;sweep gcx -bt 30 resub -a; sweep gkx -abt 10 resub -a;sweep gcx -bt 10 resub -a;sweep gkx -ab resub -a; sweep gcx -b resub -a; sweep eliminate 0 decomp -g * Script.boolean sweep; eliminate -1 simplify eliminate -1 sweep; eliminate 5 simplify resub -a gkx -abt 30 resub -a; sweep gcx -bt 30 resub -a; sweep gkx -abt 10 resub -a; sweep gcx -bt 10 resub -a; sweep gkx -ab resub -a; sweep gcx -b resub -a; sweep eliminate 0 decomp -g * eliminate -1; sweep Script.rugged sweep; eliminate -1 simplify -m nocomp eliminate -1 sweep; eliminate 5 simplify -m nocomp resub -a fx resub -a; sweep eliminate -1; sweep full_simplify -m nocomp