Sommario. Strumento CAD per la sintesi ottima di reti a 2 livelli. Motivazioni. PLA (Programmable Logic Array)



Documenti analoghi
PLA (Programmable Logic Array)

Sintesi di reti combinatorie. Sommario. Motivazioni. Sommario. Funzioni Espressioni. M. Favalli

Operatori logici e porte logiche

Sintesi di reti logiche multilivello. Sommario. Motivazioni. Sommario. M. Favalli

Sintesi Combinatoria Uso di componenti diversi dagli operatori elementari. Mariagiovanna Sami Corso di reti Logiche 8 Anno

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

Cap. 3 Reti combinatorie: analisi e sintesi operatori logici e porte logiche

Algoritmi e strutture dati. Codici di Huffman

MAPPE DI KARNAUGH e sintesi ottima

Dimensione di uno Spazio vettoriale

4 3 4 = 4 x x x 10 0 aaa

Interesse, sconto, ratei e risconti

(anno accademico )

Comparatori. Comparatori di uguaglianza

I.I.S. Primo Levi Badia Polesine A.S

Le equazioni. Diapositive riassemblate e rielaborate da prof. Antonio Manca da materiali offerti dalla rete.

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007

Interesse, sconto, ratei e risconti

Reti Logiche. Le reti logiche sono gli elementi architettonici di base dei calcolatori, e di tutti gli apparati per elaborazioni digitali.

Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE

Funzioni in C. Violetta Lonati

Lezione 8. La macchina universale

Intelligenza Artificiale

La distribuzione Normale. La distribuzione Normale

Lezione 10: Il problema del consumatore: Preferenze e scelta ottimale

Algebra di Boole. Le operazioni base sono AND ( ), OR ( + ), NOT ( )

Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing

Utilizzo I mintermini si usano quando si considererà la funzione di uscita Q come Somma di Prodotti (S. P.) ossia OR di AND.

ESEMPIO 1: eseguire il complemento a 10 di 765

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

Convertitori numerici in Excel

x u v(p(x, fx) q(u, v)), e poi

Appunti sulla Macchina di Turing. Macchina di Turing

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

Memorie ROM (Read Only Memory)

Dispense di Informatica per l ITG Valadier

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

I sistemi di numerazione

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

Scelta intertemporale: Consumo vs. risparmio

LE FUNZIONI A DUE VARIABILI

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

MAPPE DI KARNAUGH. Nei capitoli precedenti si è visto che è possibile associare un circuito elettronico o elettrico ad una funzione logica.

L algebra di Boole. Cenni Corso di Reti Logiche B. Mariagiovanna Sami

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo

I PROBLEMI ALGEBRICI

Statistica. Lezione 6

Codifica binaria dei numeri relativi

Ottimizzazione Multi Obiettivo

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Fondamenti di calcolo booleano

Rappresentazione delle informazioni

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

ALGEBRA DELLE PROPOSIZIONI

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)

Esempi di algoritmi. Lezione III

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

Matematica in laboratorio

Reti sequenziali sincrone

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1

SISTEMI DI NUMERAZIONE E CODICI

Gestione Risorse Umane Web

Calcolatori: Algebra Booleana e Reti Logiche

Alla scoperta della nuova interfaccia di Office 2010

Minimizzazione di Reti Logiche Combinatorie Multi-livello

Algebra booleana. Si dice enunciato una proposizione che può essere soltanto vera o falsa.

Algebra Booleana ed Espressioni Booleane

RISOLUTORE AUTOMATICO PER SUDOKU

Algebra di Boole e reti logiche. Giovedì 8 ottobre 2015

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE

EXCEL FUNZIONI PRINCIPALI

Nell esempio verrà mostrato come creare un semplice documento in Excel per calcolare in modo automatico la rata di un mutuo a tasso fisso conoscendo

Luigi Piroddi

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

1. PRIME PROPRIETÀ 2

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

Si sa che la via più breve tra due punti è la linea retta. Ma vi siete mai chiesti, Qual è la via più breve tra tre punti? o tra quattro punti?

Funzioni. Funzioni /2

Gestione delle Presenze WorkFlow Manuale Operativo

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI

Guida Compilazione Piani di Studio on-line

Algebra di Boole ed Elementi di Logica

II.f. Altre attività sull euro

OSSERVAZIONI TEORICHE Lezione n. 4

Parte II Indice. Operazioni aritmetiche tra valori rappresentati in binario puro. Rappresentazione di numeri con segno

Strumenti e metodi per la redazione della carta del pericolo da fenomeni torrentizi

Programma Gestione Presenze Manuale autorizzatore. Versione /08/2010. Area Sistemi Informatici - Università di Pisa

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

Algoritmo proposto. Maria Silvia Pini, Francesca Rossi, K. Brent Venable. Dipartimento di Matematica Pura e Applicata Università di Padova

Introduzione alla programmazione in C

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 11

Guida Software GestioneSpiaggia.it

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software

Laboratorio di Algoritmi e Strutture Dati

Le Mappe di Karnaugh.

Esempi ed esercizi Aritmetica degli elaboratori e algebra di commutazione

Capitolo Quarto...2 Le direttive di assemblaggio di ASM Premessa Program Location Counter e direttiva ORG

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

Introduzione al MATLAB c Parte 2

Transcript:

Sommario Strumento CAD per la sintesi ottima di reti a 2 livelli Approfondimento del corso di reti logiche M. Favalli Engineering Department in Ferrara M. Favalli (ENDIF) ESPRESSO Reti logiche / 39 Motivazioni M. Favalli (ENDIF) ESPRESSO Reti logiche 2 / 39 PLA (Programmable Logic Array) I metodi grafici (Karnaugh) hanno esclusivamente una valenza come strumento di ragionamento Il metodo di Quine-McCluskey puó essere esteso a reti a piú uscite, ma ha delle pesanti limitazioni computazionali nel caso di funzioni di grandi dimensioni Il largo utilizzo di PLA ( 8) ha richiesto lo sviluppo di diversi strumenti CAD per la sintesi ottima di reti a due livelli Fra questi il piú noto é ESPRESSO, lo utilizzeremo per introdurre l utilizzo di strumenti CAD e perché le sue procedure servono anche nell ambito della sintesi multilivello Rete logica programmabile a due livelli Mette a disposizione un piano AND con la possibilitá di programmare un numero limitato di implicanti e un piano OR con la possibilitá di connetterli ai termini somma in uscita La programmazione puó avvenire sia mediante fusibili p mediante la deposizione di un interconnessione M. Favalli (ENDIF) ESPRESSO Reti logiche 3 / 39 M. Favalli (ENDIF) ESPRESSO Reti logiche 4 / 39

Esempio di PLA Espresso a b c d f=abd +abc+d g=abc+cd P P P 2 P 3 f g É stato sviluppato a Berkeley e ha rappresentato un significativo miglioramento nelle prestazioni degli strumenti di sintesi allora utilizzati Riceve in ingresso un file di testo con una rete a due livelli descritta nel formato standard di Berkeley e produce in uscita la rete ottimizzata Consente di scegliere fra l utilizzo di un algoritmo esatto e un euristico che nel caso di PLA molto grandi é computazionalmente piú efficiente M. Favalli (ENDIF) ESPRESSO Reti logiche 5 / 39 Formato di ingresso M. Favalli (ENDIF) ESPRESSO Reti logiche 6 / 39 Descrizione della PLA - I Si tratta di un file di testo.i [d] numero di variabili di ingresso.o [d] numero di funzioni di uscita.ilb [s] [s2]... [sn] lista dei nomi delle variabili di ingresso.ob [s] [s2]... [sn] lista dei nomi delle funzioni di uscita.p [d] numero di termini prodotto.e fine della descrizione Esistono ulteriori opzioni che sono consultabili sul manuale Il punto di partenza é una funzione da ottimizzare con n ingressi ed m uscite: f : {, } n {,, } m Come si vede la funzione puó anche essere non completamente specificata per la presenza di don t care Le funzioni vengono descritte mediante termini prodotto (e quindi anche mintermini) rappresentati come cubi Il formato di ESPRESSO tenta di usare una matrice compatta di caratteri (con una riga per ogni termine prodotto) per rappresentare tale funzione Il significato di tali caratteri dipende dal tipo di descrizione della funzione specificato da.type M. Favalli (ENDIF) ESPRESSO Reti logiche 7 / 39 M. Favalli (ENDIF) ESPRESSO Reti logiche 8 / 39

Descrizione della PLA II Descrizione della PLA - III Nota Ciascun elemento f i di f puó essere descritto in vari modi che utilizzano: f i ON 2 f i OFF 3 f i DC (ON-set) dove la funzione vale ; (OFF-set) dove la funzione vale ; (DC-set) dove la funzione ha un valore indifferente; Si ricorda che devono valere: f i ON + f i OFF + f i DC = () f i ON f i OFF = f i ON f i DC = (2) La funzione f i ON é una funzione da {, }n a {, } che vale dove f i vale, f i OFF vale dove f i = e f i DC = dove f i = dando solo fon i (ON-set) ovvero quei mintermini dove le funzioni valgono (.type f): foff i = f ON i e f i DC = 2 dando fon i (ON-set) e f DC i (DC-set) ovvero quei mintermini dove le funzioni valgono e quelli dove le funzioni hanno un valore indifferente (): foff i = (f ON i + f DC i ) 3 dando fon i (ON-set) e f OFF i (OFF-set) ovvero quei mintermini dove le funzioni valgono e (.type fr). In questo caso il DC-set viene calcolato come: fdc i = (f ON i + f OFF i ) 4 dando fon i (ON-set), f DC i (DC-set) e f OFF i (OFF-set) ovvero quei mintermini dove le funzioni valgono, - e (r) ESPRESSO non verifica in modo chiaro se le relazioni f i ON + f i OFF + f i DC = e fon i f OFF i = f ON i f DC i = sono verificate M. Favalli (ENDIF) ESPRESSO Reti logiche 9 / 39 Matrice di caratteri (piano AND) M. Favalli (ENDIF) ESPRESSO Reti logiche / 39 Piano OR - I La matrice ha una riga per ogni cubo e ciascuna riga é divisa in due stringhe (separate da uno spazio): la prima contiene la descrizione del cubo, la seconda le informazioni su come tale cubo é usato nelle funzioni di uscita La matrice é divisa in due parti che in analogia al layout elettrico della PLA vengono definite AND plane e OR plane Il cubo viene descritto in maniera simile a quanto visto nell algoritmo di Quine-McCluskey: si ha una stringa (corrispondenti per posizione alle variabili definite in.ilb) che valgono se la variabile compare nel termine prodotto con un letterale in forma vera, se compare in forma negata, e - se non compare ad esempio se abcd sono le variabili, - - equivale ad ad L interpretazione della stringa nel piano OR dipende dal tipo di descrizione.type Ciascun carattere c i di tale stringa corrisponde in maniera ordinata alle funzioni dichiarate con.olb. Si possono descrivere sia funzioni completamente specificate che funzioni non completamente specificate Si noti che possiamo avere termini prodotto che non interessano una certa uscita, mentre altri ne interessano piú di una M. Favalli (ENDIF) ESPRESSO Reti logiche / 39 M. Favalli (ENDIF) ESPRESSO Reti logiche 2 / 39

Piano OR - II.type f se c i vale il termine prodotto appartiene all ON-set di tale funzione, se vale o - vuole dire che non ha alcun significato per tale funzione (default) se c i vale il termine prodotto appartiene all ON-set di tale funzione, se vale vuole dire che non ha alcun significato per tale funzione, se vale - vuole dire che appartiene al DC-set.type fr se c i vale il termine prodotto appartiene all ON-set di tale funzione, se vale appartiene all OFF-set se vale - vuole dire che non ha alcun significato per tale funzione r se c i vale il termine prodotto appartiene all ON-set di tale funzione, se vale vuole dire che appartiene all OFF-set, se vale - vuole dire che appartiene al DC-set Infine una significa che il termine prodotto non ha significato per la PLA M. Favalli (ENDIF) ESPRESSO Reti logiche 3 / 39 Rappresentazione per Espresso Esempio Si consideri una funzione f : {, } 3 {,, } 2 definita sul supporto a, b, c con x, y come funzioni di uscita abc x x ON x OFF x DC - - abc y y ON y OFF y DC - - - M. Favalli (ENDIF) ESPRESSO Reti logiche 4 / 39 Esempio:.i 3.o 2.ilb a b c.ob x y.p 8 - - -- -.e Nota che.type f in questo caso non ha significato in quanto le due funzioni hanno delle indifferenze. Inoltre, le matrici di tipo.type fr e r sono uguali a (che é il valore di default) in quanto abbiamo tutti i mintermini e quindi Espresso non compie inferenze. Per apprezzare le differenze fra i diversi tipi di descrizione conviene considerare una PLA in cui compaiono termini prodotto che non sono dei mintermini x ON = ab e x DC = a b c + abc, mentre y ON = ab + bc + abc e y DC = a b c. Si nota che questa descrizione implica l aggiunta all ON-set di un termine ridondante (abc).i 3.o 2.ilb a b c.ob x y.p 4 - - -- -.e M. Favalli (ENDIF) ESPRESSO Reti logiche 5 / 39 M. Favalli (ENDIF) ESPRESSO Reti logiche 6 / 39

Esempio:.type FR Esempio: r Vediamo ora la stessa PLA descritta mediante.type fr x ON = ab e x OFF = bc + a b + a c, mentre y ON = ab + bc e y OFF = bc + a c. Si noti il diverso uso del simbolo -..i 3.o 2.ilb a b c.ob x y.p 5.type fr - - - - - - -.e Vediamo di nuovo la stessa PLA descritta mediante r x ON = ab, x OFF = bc + a c + a b e x DC = a b c + abc, mentre y ON = ab + bc + abc, y OFF = b c + a c e y DC = a b c..i 3.o 2.ilb a b c.ob x y.p 6 r - - - ~ -- - - ~.e M. Favalli (ENDIF) ESPRESSO Reti logiche 7 / 39 Algoritmo M. Favalli (ENDIF) ESPRESSO Reti logiche 8 / 39 Problemi degli euristici Espresso dispone di un algoritmo esatto e di un euristico L algoritmo esatto consente di determinare la soluzione di costo minimo (esatta) fino a circa 25 variabili (simile a Quine - McCluskey) L algoritmo di tipo euristico consente di trattare PLA piú grandi ottenendo una soluzione che puó non essere quella di costo minimo Si tratta di un algoritmo iterattivo che a partire da una soluzione iniziale cerca di convergere verso una soluzione di costo minimo Consideriamo uno spazio di possibili soluzioni S ciascuna delle quali s é caratterizzata da un costo C(s) Un euristico itera (secondo qualche regola) cercando il minimo di C (dc/ds = ) Le regole semplici (gradiente) possono dare luogo facilmente a soluzioni corrispondenti a minimi locali costo spazio delle possibili soluzioni In ciascuna iterazione vengono applicate delle trasformazioni alla rete Sono necessari approcci che consentano di uscire dai minimi locali M. Favalli (ENDIF) ESPRESSO Reti logiche 9 / 39 M. Favalli (ENDIF) ESPRESSO Reti logiche 2 / 39

Il problema e la strategia di Espresso Algoritmo - I Spazio di ricerca: tutte le possibili espressioni di tipo SP Spazio delle soluzioni: insieme delle possibili espressioni di tipo SP (a piú uscite) equivalenti alla PLA di partenza Costo: numero di letterali Strategia di ricerca: utilizzo di trasformazioni (EXPAND, REDUCE) per un numero limitato di termini prodotto Metodi di ottimizzazione (deterministici): (ESSENTIAL, IRREDUNDANT) Ottimizza la PLA esistente utilizzando EXPAND, IRREDUNDANT e ESSENTIAL (tutte trasformazioni che riducono C) 2 Prova a uscire da un minimo locale utilizzando REDUCE 3 Prosegue fino a raggiungere la soluzione 4 Nota: fino a circa 2 variabili l algoritmo raggiunge spesso il minimo assoluto M. Favalli (ENDIF) ESPRESSO Reti logiche 2 / 39 Algoritmo - II M. Favalli (ENDIF) ESPRESSO Reti logiche 22 / 39 EXPAND F OFF = complement(f ON F DC ); F = expand(f ON, F OFF ); F = irredundant(f, F DC ); E = essential(f, F DC ); F = F E; F DC = F DC E; repeat c = cost(f ); repeat c = F F = reduce(f, F DC ); F = expand(f, F OFF ); F = irredundant(f, F DC ); until ( F c); F = last_gasp(f, F DC, F OFF ); until (cost(f) c) F = F E; F DC = F DC E; Elimina un letterale da un cubo giá esistente Verifica se l espansione é corretta (non coinvolge degli ). Si noti che questo implica il calcolo di f OFF Prosegue fino ad ottenere un implicante primo Esempio M. Favalli (ENDIF) ESPRESSO Reti logiche 23 / 39 M. Favalli (ENDIF) ESPRESSO Reti logiche 24 / 39

IRREDUNDANT ESSENTIAL Elimina dalla copertura corrente quegli implicnti che coprono mintermini giá coperti da altri implicanti Esempio Determina se un implicante primo é essenziale In tale caso lo aggiunge (temporaneamente) al DC-set M. Favalli (ENDIF) ESPRESSO Reti logiche 25 / 39 REDUCE M. Favalli (ENDIF) ESPRESSO Reti logiche 26 / 39 PLA iniziale Dato un implicante aggiunge un letterale fra quelli non specificati Verifica se l operazione é valida (si potrebbe avere un implicante che copre esclusivamente delle condizioni di indifferenza) Esempio: M. Favalli (ENDIF) ESPRESSO Reti logiche 27 / 39 M. Favalli (ENDIF) ESPRESSO Reti logiche 28 / 39

Iteration - EXPAND Iteration - REDUCE EXPAND > (covered ) EXPAND > (covered ) EXPAND > (covered ) EXPAND > (covered ) EXPAND > (covered ) La copertura non é ridondante, quindi IRREDUNDANT non cambia nulla. Lo stesso vale per ESSENTIAL che non trova implicanti essenziali. REDUCE > REDUCE > M. Favalli (ENDIF) ESPRESSO Reti logiche 29 / 39 ITERATION 2 - EXPAND & IRREDUNDANT M. Favalli (ENDIF) ESPRESSO Reti logiche 3 / 39 Modello di costo Il modello di Espresso é basato sul numero totale di ingressi di gate, questo puó essere verificato con il comando -s EXPAND > EXPAND > IRREDUNDANT Si osserva come la sequenza di operazioni svolte dall euristico abbia eliminato un minimo locale M. Favalli (ENDIF) ESPRESSO Reti logiche 3 / 39 M. Favalli (ENDIF) ESPRESSO Reti logiche 32 / 39

Comandi di Espresso Comandi di Espresso: verifica I comandi di Espresso possono essere passati sulla linea di comando, qui verranno riporati solo i piú significativi -Dcheck verifica che ON-set, OFF-set e DC-set costituiscano una partizione dello spazio delle variabili di ingresso -Dequiv verifica se se 2 uscite sono equivalenti -Dverify verifica se 2 PLA sono equivalenti (le PLA stanno in due file i cui nomi vengono passati sulla linea di comando) -DPLAverify verifica se 2 PLA sono equivalenti permettendo una permutazione dell ordine delle uscite M. Favalli (ENDIF) ESPRESSO Reti logiche 33 / 39 Comandi di espresso: ottimizzazione M. Favalli (ENDIF) ESPRESSO Reti logiche 34 / 39 Comandi di Espresso: vari -Dexact algoritmo di ottimizzazione esatto -Dopo determina se alcune uscite possono essere complementate per ridurre il costo della PLA -Dpair invece di utilizzare un letterale e il suo complemento, utilizza decoder a 2 bit -Dso minimizza la funzione considerando le singole uscite separatamente -efast non itera sulla soluzione -Dmap disegna la mappa di Karnaugh -Dstats produce alcune statistiche sulle dimensioni della funzione -s stampa in uscita alcune statistiche sul costo della funzione di partenza e quello della funzione ottenuta -o[type] consente di selezionare il formato di uscita M. Favalli (ENDIF) ESPRESSO Reti logiche 35 / 39 M. Favalli (ENDIF) ESPRESSO Reti logiche 36 / 39

Riferimenti Progetti Distribuzione di Berkeley di Espresso (puó essere facilmente compilata sotto Linux): http://embedded.eecs.berkeley.edu/pubs/downloads/espresso/index.htm Espresso precompilato per windows: http://web.cecs.pdx.edu/ alanmi/research/soft/softports.htm R. Brayton, G. Hachtel and A. Sangiovanni-Vincentelli, "Logic minimization algorithms for VLSI synthesis", Kluwer Academic Publisher, 984 Sono disponibili alcuni progetti basati su Espresso Regole Numero massimo di persone del gruppo = 2 Ciascun progetto puó essere eseguito da un solo gruppo che deve "registrarsi" a lezione o a ricevimento M. Favalli (ENDIF) ESPRESSO Reti logiche 37 / 39 M. Favalli (ENDIF) ESPRESSO Reti logiche 38 / 39 Esempi di progetti Differenza di costo fra reti a 2 livelli e piú uscite sintetizzate ottimizzando le singole uscite (e sfruttando il fan-out nel caso in cui occasionalmente due o piú funzioni abbiano in comune lo stesso implicante) 2 Utilizzo della decodifica degli ingressi a coppie (in pratica é una 3... sostituzione di variabili) I dati sono da valutare su un insieme di benchmark che verrá reso disponibile M. Favalli (ENDIF) ESPRESSO Reti logiche 39 / 39