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 due.

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 due."— 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 due livelli Lezione 3.2 Lo strumento ESPRESSO Docente: prof. William FORNACIARI

2 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari- 2 - Espresso-Exact Algoritmo implementato in Espresso per la minimizzazione esatta I principi su cui si basa sono gli stessi della procedura di Quine-Mc Cluskey algoritmi utilizzati leggermente diversi Efficienza maggiore Metodi esatti: lo strumento ESPRESSO

3 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari- 3 - In Espresso-exact gli implicanti sono partizionati in tre insiemi Essenziali Totalmente ridondanti sono quelli coperti da implicanti essenziali e dal DC-set Parzialmente ridondanti i rimanenti Questo ultimo insieme è l'unico ad essere coinvolto nella fase di copertura Una tabella di copertura ridotta è ottenuta ponendo come indici di riga i soli implicanti parzialmente ridondanti. Gli indici di colonna sono in corrispondenza uno a uno con l'insieme dei mintermini. La tabella è più compatta rispetto a quella ottenuta con Quine-Mc Cluskey e non ha colonne essenziali Espresso-Exact

4 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari- 4 - La minimizzazione esatta ha due problemi L'enorme numero di implicanti primi Può essere dimostrato che il numero degli implicanti primi di una funzione logica di n ingressi può essere maggiore di 3 n /n L'intrattabilità del problema di copertura E’ un problema NP-completo Soluzione Miglioramento iterativo della soluzione. Partendo da una condizione iniziale (specifiche della funzione) la copertura è modificata per cancellazione, aggiunta e modifica di implicanti fino a che non è raggiunta una condizione di minimalità (quando nessuna delle operazioni porta a successivi miglioramenti) Espresso-Exact

5 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari- 5 - I metodi euristici di minimizzazione differiscono per qualità della soluzione Qualità: Differenza in cardinalità tra la copertura minimale (euristica) e quella minima (ottenuta con metodi esatti, quando possibile) Le soluzioni di espresso Espresso coincidono spesso con quelle di Espresso-Exact (ma in tempi più brevi) Procedura di minimizzazione Ingresso –Lista degli implicanti (ON-set) ed il DC-set della funzione Condizione iniziale –La lista degli implicanti rappresenta la copertura iniziale della funzione Sviluppo –La copertura iniziale viene iterativamente manipolata da alcuni operatori Termine –L'operazione si conclude quando nessun operatore migliora la copertura Metodi euristici

6 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari- 6 - Expand espande i cubi rendendoli primi; la copertura risulta prima Reduce riduce i cubi; la copertura risulta non prima ma della stessa cardinalità di quella di partenza Irredundant elimina i cubi ridondanti; modifica la cardinalità della copertura Operatori usati da Espresso

7 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari- 7 - Gli implicanti relativi alla copertura sono rielaborati uno alla volta. Ogni implicante è espanso a primo e tutti gli implicanti da esso coperti sono eliminati. L'operatore Expand rende la copertura prima e minimale. L'espansione di un implicante è realizzata aumentando il sotto cubo ad esso associato in una o più direzioni e verificando se l'espanso è ammissibile Verifica dell'ammissibilità dell'espansione Una espansione è ammissibile se l'implicante ottenuto non interseca l’OFF-set. E' richiesta la conoscenza dell’OFF-set e questo può essere pesante in termini di memoria utilizzata EXPAND

8 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari x x a b c d Implicante da espandere: a c' d' Espansione rispetto a c: a d' espansione ammissibile Espansione rispetto ad a: c' d' espansione non ammissibile Espansione rispetto a d: a c' espansione non ammissibile EXPAND: Esempio OFF-Set : a’c’ + ab’d+a’cd’ Verifica ammissibilità: OFF-Set * (c’d’) = a’c’d’  0 non ammissibile

9 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari- 9 - Copertura iniziale on-set: {ac'd', a'b'cd, bcd, ab'cd'} ; dc-set: {abc'd, abcd'} Copertura iniziale Copertura dopo Expand ordine implicanti da espandere: (1) (2) (3) x x a b c d E' coperto dall'espansione (1) ed è eliminato Copertura finale on-set: {ad', a'cd, bcd } ; dc-set: {abc'd, abcd'} EXPAND: Esempio di espansione

10 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari La qualità del risultato dipende da due fattori (a) Ordine degli implicanti da espandere (b) Ordine di espansione (direzione) Si usano delle euristiche. La più semplice è la seguente (b) ordine lessico-grafico (a) Gli implicanti che hanno più probabilità di essere espansi sono per analizzati primi Si utilizza la notazione positional-cube per codificare 0,1 e -: –0  10, 1  01, -  11, non ammesso  00 Ad ogni implicante è associato un peso L'implicante con peso minore è quello che ha più probabilità di essere espanso e non coperto da altri EXPAND

11 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari Esempio di ordinamento degli implicanti da espandere Ogni peso è calcolato come Prodotto Interno del vettore conteggio per colonna con il vettore relativo all’implicante, espresso in notazione positional-cube Es: | | * | | T = 11 Implicanti: ac’d’  =11(2) a’b’cd  =10(1) bcd  =12(4) ab’cd’  =11(3) Ordine conteggio per colonna: peso minore = più letterali, meno letterali condivisi  più probabile sia espandibile EXPAND

12 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari Permette di uscire da minimi locali Trasforma la copertura in un'altra non prima della stessa cardinalità. Gli implicanti sono rielaborati uno alla volta; questa operazione può ridurre gli implicanti di dimensione Condizione: Il nuovo insieme di implicanti deve essere una copertura per la funzione La trasformazione di un implicante è attuata riducendo il sottocubo ad esso associato in una o più direzioni. REDUCE

13 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari Una riduzione è ammissibile se l'implicante ridotto forma con i rimanenti una copertura per la funzione La copertura non è prima ma mantiene la stessa cardinalità Sia  un implicante appartenente alla copertura della funzione e. La riduzione massima di  è REDUCE

14 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari x x a b c d a b c d supercubo(Q') a b c d supercubo(Q) x x a b c d REDUCE: Esempio

15 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari Il risultato della riduzione dipende dall'ordine con il quale gli implicanti sono selezionati La regola euristica di scelta Il primo implicante da ridurre è quello con peso maggiore (peso calcolato come in Expand). Esempio REDUCE Implicanti: ad’  =12(1) bcd  =12(2) a’cd  =13(3) Ordine conteggio per colonna:

16 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari Rende la copertura non ridondante. E' scelto un sottinsieme di implicanti parzialmente ridondanti tale che ogni implicante non è interamente coperto da un altro dello stesso sottinsieme la copertura è divisa in tre insiemi relativamente essenziali parzialmente ridondanti totalmente ridondanti Rispetto al metodo esatto, la copertura è costituita da implicanti non tutti necessariamente primi IRREDUNDANT

17 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari L'uscita di Espresso è Una copertura non ridondante Spesso di cardinalità minima Algoritmo: Procedure Complement: genera il complemento Essentials: estrae gli implicanti essenziali Last_gasp: modifica la copertura usando Expand e Reduce con euristiche diverse. Cost: calcola il costo della copertura Risultati della sintesi

18 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari (1982) ESPRESSO II è basato sulla applicazione di iterate espansioni e riduzioni. I passi seguiti da ESPRESSO II sono: 1. COMPLEMENT : Calcola l'OFF set 2.EXPAND : Espande gli implicanti portandoli a primi e rimuovendo quelli coperti 3.ESSENTIAL PRIMES: Estrae gli implicanti essenziali primi e li unisce al DC set 4.EXPAND : Espande gli implicanti portandoli a primi e rimuovendo quelli coperti 5.IRREDUNDANT COVER : Trova la copertura minimale non ridondante 6.REDUCE : Riduce ogni implicante a un implicante essenziale minimo 7. Si iterano i passi 4,5,6 fino a che non si ottiene un miglioramento 8.LASTGASP : applica per un'ultima volta REDUCE, EXPAND e IRREDUNDANT COVER usando una differente strategia. Se questa operazione ha successo viene continuata l'iterazione (passo 7) 9.MAKESPARSE : Rende la struttura della PLA sparsa; Per ridurre il numero dei transistor modifica il #1 e il #0 senza cambiare la copertura (aumenta la parte di ingresso riducendo quella di uscita di ogni implicante) Espresso II

19 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari Espresso(on_set,dc_set) off_set=Complement(on_set U dc_set) on_set=Expand(on_set, off_set) /*copertura prima ridondante*/ on_set=Irredundant(on_set, dc_set) essential_set=Essentials(on_set, dc_set) on_set=on_set - essential_set /* toglie 1 dall'on_set */ dc_set=dc_set U essential_set /* e li aggiunge al dc_set */ ripeti  2=Cost(on_set) ripeti  1=|on_set| on_set=Reduce(on_set,dc_set) on_set=Expand(on_set, off_set) on_set=Irredundant(on_set,dc_set) fino a che (|on_set|<  1) on_set=Last_gasp(on_set,dc_set,off_set) fino a che (Cost(on_set) <  2) on_set=on_set U essential_set dc_set=dc_set - essential_set on_set=Make_sparse(on_set,dc_set,off_set) Espresso

20 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari Espresso: comandi e parametri Comando espresso [parametri] [file] Funzione minimizzazione di funzioni logiche a due livelli. Parametri -d: debugging -e[opzioni]: seleziona le opzioni di espresso: fast, ness, nirr, nunwrap, onset, pos, strong, eat, eatdots, kiss, random -o[tipo]: seleziona il formato di uscita: f, fd, fr, fdr, pleasure, eqntott, kiss, cons -s: fornisce un breve sommario relativo all’esecuzione; -t: fornisce un ampio sommario relativo all’esecuzione; -x: non visualizza la soluzione;

21 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari Espresso: comandi e parametri Parametri (continua): -v[typo]: messaggi di dettaglio (-v ‘’ per un accurato dettaglio) -D[comando]: esegue il sotto-comando: ESPRESSO, many, exact, qm, single_output, so, so_both, simplify, echo, opo, opoall, pair, pairall, check, stats, verify, PLAverify, equiv, map, mapdc, fsm, contain, d1merge, d1merge_in, disjoint, dsharp, intersect, minterms, primes, separate, sharp, union, xor, essen, expand, gasp, irred, make_sparse, reduce, taut, super_gasp, lexsort, test -Sn: seleziona la strategia per il sotto comando (solo quelli riportati): opo: bit2=esatto, bit1=ripetuto bit0=salta sparse opoall: 0=minimizza, 1=esatto pair: 0=algebrico, 1=strongd, 2=espresso, 3=esatto pairall: 0=minimizza, 1=esatto, 2=opo so_espresso: 0=minimize, 1=exact so_both: 0=minimize, 1=exact

22 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari Espresso: esempio ipeca4>espresso -v '' ex3.pla EXPAND: (covered 0) EXPAND: (covered 1) EXPAND: (covered 0) # IRRED: F=3 E=3 R=0 Rt=0 Rp=0 Rc=0 Final=3 Bound=0 ESSENTIAL: ESSENTIAL: REDUCE: to sec EXPAND: (covered 0) # IRRED: F=1 E=1 R=0 Rt=0 Rp=0 Rc=0 Final=1 Bound=0 REDUCE_GASP: reduced to # IRRED: F=3 E=3 R=0 Rt=0 Rp=0 Rc=0 Final=3 Bound=0.i 4.o 1.p e ipeca4> ipeca4>espresso -v '' ex3.pla EXPAND: (covered 0) EXPAND: (covered 1) EXPAND: (covered 0) # IRRED: F=3 E=3 R=0 Rt=0 Rp=0 Rc=0 Final=3 Bound=0 ESSENTIAL: ESSENTIAL: REDUCE: to sec EXPAND: (covered 0) # IRRED: F=1 E=1 R=0 Rt=0 Rp=0 Rc=0 Final=1 Bound=0 REDUCE_GASP: reduced to # IRRED: F=3 E=3 R=0 Rt=0 Rp=0 Rc=0 Final=3 Bound=0.i 4.o 1.p e ipeca4> x x a b c d.i 4.o 1.type fd i 4.o 1.type fd Cubi Notazione Pesi Ordine positional-cube Cubi Notazione Pesi Ordine positional-cube

23 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari Espresso: esempio.i 4.o 3.type fr EXPAND: (covered 2) EXPAND: (covered 3) EXPAND: (covered 0) EXPAND: (covered 0) EXPAND: (covered 0) # IRRED: F=5 E=5 R=0 Rt=0 Rp=0 Rc=0 Final=5 Bound=0 ESSENTIAL: REDUCE: to sec REDUCE: to sec REDUCE: to sec EXPAND: (covered 0) EXPAND: (covered 0) EXPAND: (covered 0) # IRRED: F=4 E=4 R=0 Rt=0 Rp=0 Rc=0 Final=4 Bound=0 REDUCE_GASP: reduced to REDUCE_GASP: reduced to REDUCE_GASP: reduced to REDUCE_GASP: reduced to EXPAND: (covered 0) # IRRED: F=5 E=2 R=3 Rt=0 Rp=3 Rc=1 Final=3 Bound=0 REDUCE: to sec EXPAND: (covered 0) # IRRED: F=3 E=3 R=0 Rt=0 Rp=0 Rc=0 Final=3 Bound=0 … (continua) EXPAND: (covered 2) EXPAND: (covered 3) EXPAND: (covered 0) EXPAND: (covered 0) EXPAND: (covered 0) # IRRED: F=5 E=5 R=0 Rt=0 Rp=0 Rc=0 Final=5 Bound=0 ESSENTIAL: REDUCE: to sec REDUCE: to sec REDUCE: to sec EXPAND: (covered 0) EXPAND: (covered 0) EXPAND: (covered 0) # IRRED: F=4 E=4 R=0 Rt=0 Rp=0 Rc=0 Final=4 Bound=0 REDUCE_GASP: reduced to REDUCE_GASP: reduced to REDUCE_GASP: reduced to REDUCE_GASP: reduced to EXPAND: (covered 0) # IRRED: F=5 E=2 R=3 Rt=0 Rp=3 Rc=1 Final=3 Bound=0 REDUCE: to sec EXPAND: (covered 0) # IRRED: F=3 E=3 R=0 Rt=0 Rp=0 Rc=0 Final=3 Bound=0 … (continua) # IRRED: F=3 E=3 R=0 Rt=0 Rp=0 Rc=0 Final=3 Bound=0 REDUCE_GASP: reduced to REDUCE_GASP: reduced to REDUCE_GASP: reduced to # IRRED: F=2 E=2 R=0 Rt=0 Rp=0 Rc=0 Final=2 Bound=0 # IRRED: F=3 E=2 R=1 Rt=1 Rp=0 Rc=0 Final=2 Bound=0 # IRRED: F=3 E=3 R=0 Rt=0 Rp=0 Rc=0 Final=3 Bound=0 EXPAND: (covered 0).i 4.o 3.p e … (continua) # IRRED: F=3 E=3 R=0 Rt=0 Rp=0 Rc=0 Final=3 Bound=0 REDUCE_GASP: reduced to REDUCE_GASP: reduced to REDUCE_GASP: reduced to # IRRED: F=2 E=2 R=0 Rt=0 Rp=0 Rc=0 Final=2 Bound=0 # IRRED: F=3 E=2 R=1 Rt=1 Rp=0 Rc=0 Final=2 Bound=0 # IRRED: F=3 E=3 R=0 Rt=0 Rp=0 Rc=0 Final=3 Bound=0 EXPAND: (covered 0).i 4.o 3.p e

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

25 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari Sintesi di reti combinatorie a più livelli: Introduzione Obiettivo (della sintesi combinatoria) Ridurre Area-tempo. Reti combinatorie a due livelli: Area e tempo sono ridotti contemporaneamente. Reti combinatorie a più livelli: Area e tempo non procedono nella stessa direzione area ritardo area ritardo due livellipiù livelli

26 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari Sintesi di reti combinatorie a più livelli: Introduzione Problemi da risolvere nella minimizzazione di reti combinatorie multi-livello: Minimizzazione dell'area (con vincolo sul ritardo) Minimizzazione del ritardo (con vincolo sull'area)

27 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari Sintesi di reti combinatorie a più livelli: Introduzione Ottimizzazione a più livelli: Vantaggi: Più efficiente in termini di area e prestazioni. Permette di utilizzare elementi di libreria. Svantaggi: Maggiore complessità della ottimizzazione. Metodi di ottimizzazione: Esatti Complessità computazionale estremamente elevata. Euristici

28 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari Euristica del problema di ottimizzazione: Due passi: a) Si ignorano i vincoli di realizzazione (quali fan_in, fan_out, elementi di libreria...) b) Si raffina il risultato considerando i vincoli strutturali (library mapping). Risultato dell'ottimizzazione è di inferiore qualità rispetto ad una ottimizzazione che considera contemporaneamente i punti a) e b) ma risulta computazionalmente più semplice. Si analizzerà il solo punto a). Sintesi di reti combinatorie a più livelli: Introduzione

29 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari Un circuito combinatorio è rappresentato mediante un grafo orientato aciclico (DAG - Direct Acyclic Graph). Grafo per reti combinatorie È un grafo orientato G(V,E) aciclico V: insieme dei nodi E: insieme degli archi V è partizionato negli insiemi: nodi di ingresso V I (Primary Inputs - PI) nodi di uscita V O (Primary Outputs - PO) nodi interni V G : Sono moduli della rete combinatoria a cui è associata una funzione combinatoria scalare (una uscita) Sintesi di reti combinatorie a più livelli: Modello

30 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari E' un modello comportamentale/strutturale Strutturale: connessioni. Comportamentale: ad ogni nodo è associata una funzione. Nel modello considerato, ogni funzione è a due livelli. Il modello è bipolare e non gerarchico Bipolare: Ogni arco può assumere valore 0 o 1. i1i1 i2i2 i3i3 a= i 1 i 2 c= i 1 + i 3 b= a i 3 + i 2 o2o2 d= b c o1o1 Sintesi di reti combinatorie a più livelli: Modello

31 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari Sintesi di reti combinatorie a più livelli: Trasformazioni per reti logiche Metodi euristici Realizzano un miglioramento iterativo della rete logica mediante trasformazioni logiche che conservano il comportamento di I/O. Due tipi di trasformazioni: Locali Modificano localmente la funzione non toccando la struttura della rete. Globali Modificano anche la struttura della rete (es. la cancellazione di un nodo)

32 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari Le trasformazioni logiche modificano sia l'area che le prestazioni Poiché modificano: numero dei letterali, le funzioni locali, le connessioni. Sono usate cifre di merito per valutare le trasformazioni Trasformazioni non convenienti sono rifiutate. Le trasformazioni sono applicate in modo iterativo. La rete è considerata ottimale rispetto ad un insieme di operatori quando nessuno di questi la migliora. Sintesi di reti combinatorie a più livelli: Trasformazioni per reti logiche

33 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari 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

34 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari 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

35 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari 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

36 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari 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

37 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari 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

38 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari 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

39 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari 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

40 Sintesi di reti a 2 livelli: ESPRESSO© 2001/02 - William Fornaciari 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

41 Sintesi di reti a 2 livelli: ESPRESSO© 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

42 Sintesi di reti a 2 livelli: ESPRESSO© 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

43 Sintesi di reti a 2 livelli: ESPRESSO© 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

44 Sintesi di reti a 2 livelli: ESPRESSO© 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

45 Sintesi di reti a 2 livelli: ESPRESSO© 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

46 Sintesi di reti a 2 livelli: ESPRESSO© 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

47 Sintesi di reti a 2 livelli: ESPRESSO© 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

48 Sintesi di reti a 2 livelli: ESPRESSO© 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

49 Sintesi di reti a 2 livelli: ESPRESSO© 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

50 Sintesi di reti a 2 livelli: ESPRESSO© 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

51 Sintesi di reti a 2 livelli: ESPRESSO© 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

52 Sintesi di reti a 2 livelli: ESPRESSO© 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

53 Sintesi di reti a 2 livelli: ESPRESSO© 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.

54 Sintesi di reti a 2 livelli: ESPRESSO© 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.

55 Sintesi di reti a 2 livelli: ESPRESSO© 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

56 Sintesi di reti a 2 livelli: ESPRESSO© 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.

57 Sintesi di reti a 2 livelli: ESPRESSO© 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)

58 Sintesi di reti a 2 livelli: ESPRESSO© 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.

59 Sintesi di reti a 2 livelli: ESPRESSO© 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)

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

61 Sintesi di reti a 2 livelli: ESPRESSO© 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

62 Sintesi di reti a 2 livelli: ESPRESSO© 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’)

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

64 Sintesi di reti a 2 livelli: ESPRESSO© 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

65 Sintesi di reti a 2 livelli: ESPRESSO© 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

66 Sintesi di reti a 2 livelli: ESPRESSO© 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

67 Sintesi di reti a 2 livelli: ESPRESSO© 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

68 Sintesi di reti a 2 livelli: ESPRESSO© 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;

69 Sintesi di reti a 2 livelli: ESPRESSO© 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;

70 Sintesi di reti a 2 livelli: ESPRESSO© 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

71 Sintesi di reti a 2 livelli: ESPRESSO© 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.

72 Sintesi di reti a 2 livelli: ESPRESSO© 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


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

Presentazioni simili


Annunci Google