La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più."— Transcript della presentazione:

1 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 fornacia@elet.polimi.it fornacia@elet.polimi.itwww.elet.polimi.it/people/fornacia

2 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

3 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

4 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

5 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: 3 + 4 + 4 = 11Costo: 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: Trasformazioni e algoritmi incremento di costo: 2*3 -2 -3 = 1

6 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

7 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

8 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

9 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

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

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

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

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

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

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

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

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

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

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

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

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

22 Sintesi multilivello: SIS© 2001/02 - William Fornaciari- 22 - 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.

23 Sintesi multilivello: SIS© 2001/02 - William Fornaciari- 23 - 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.

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

25 Sintesi multilivello: SIS© 2001/02 - William Fornaciari- 25 - 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.

26 Sintesi multilivello: SIS© 2001/02 - William Fornaciari- 26 - 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)

27 Sintesi multilivello: SIS© 2001/02 - William Fornaciari- 27 - 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.

28 Sintesi multilivello: SIS© 2001/02 - William Fornaciari- 28 - 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)

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

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

31 Sintesi multilivello: SIS© 2001/02 - William Fornaciari- 31 - 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’)

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

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

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

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

36 Sintesi multilivello: SIS© 2001/02 - William Fornaciari- 36 - 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. 0000 0010 1110 0000 00 01 11 01 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’ --- 0 001- 111 - - --0 00 01 11 01 cx ab 00011101 y=ax + cx Sintesi di reti combinatorie a più livelli: Valutazione del DC-set locale: CDC

37 Sintesi multilivello: SIS© 2001/02 - William Fornaciari- 37 - 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;

38 Sintesi multilivello: SIS© 2001/02 - William Fornaciari- 38 - 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;

39 Sintesi multilivello: SIS© 2001/02 - William Fornaciari- 39 - 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 01 1 10 1.names o r g 11 1 00 1.names o d e h 01- 1 0-1 1 -11 1.names a b c o 00- 1 0-0 1 -00 1.names d e r 01 1 10 1.names b c s 01 1 10 1.end.model CM82.inputs a b c d e.outputs f g h.names a s f 01 1 10 1.names o r g 11 1 00 1.names o d e h 01- 1 0-1 1 -11 1.names a b c o 00- 1 0-0 1 -00 1.names d e r 01 1 10 1.names b c s 01 1 10 1.end

40 Sintesi multilivello: SIS© 2001/02 - William Fornaciari- 40 - 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.

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


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

Presentazioni simili


Annunci Google