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

Slides:



Advertisements
Presentazioni simili
Dall’informazione al linguaggio macchina
Advertisements

Rappresentazioni numeriche
Aritmetica Binaria
Informatica Generale Marzia Buscemi IMT Lucca
Fondamenti di Informatica
Espressioni generali e MULTIPLEXER.
Rappresentazioni numeriche
Algebra di Boole e Funzioni Binarie
Codifica dei Dati Idea: vogliamo rappresentare dati eterogenei utilizzando un linguaggio che l’elaboratore puo’ facilmente manipolare Essenzialmente vogliamo.
(sommario delle lezioni in fondo alla pagina)
6. Catene di Markov a tempo continuo (CMTC)
Cap. II. Funzioni Logiche
Numerazione in base tre Prof. Lariccia Giovanni Gruppo: Roberta Spicciariello, Roberta Accaria e Maria Elisa Graziano.
2ab2 2b4 4x − 2y a 3b2y3 3b2y3b Definizione e caratteristiche
6. Catene di Markov a tempo continuo (CMTC)
Gli alberi binari sono contenitori efficienti.
Esercitazioni su circuiti combinatori
Reti Logiche A Lezione n.1.4 Introduzione alle porte logiche
Macchine non completamente specificate
Circuiti di memorizzazione elementari: i Flip Flop
Analisi e sintesi di circuiti combinatori
ESEMPI DI ARCHITETTURE DI DAC
INTRODUZIONE AI CONVERTITORI ANALOGICO-DIGITALI (ADC)
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Informatica 3 Codifica binaria.
A.S.E.QM.1 ARCHITETTURA DEI SISTEMI ELETTRONICI Alcune definizioniAlcune definizioni Algoritmo di sintesi ottima di Quine-McCluskeyAlgoritmo di sintesi.
A.S.E.13.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 13 Somma e differenza di due numeri in C2Somma e differenza di due numeri in C2 Half AdderHalf.
A.S.E.6.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 6 Complemento a MComplemento a M Rappresentazione di numeri con segnoRappresentazione di numeri.
A.S.E.QM.1 ARCHITETTURA DEI SISTEMI ELETTRONICI Alcune definizioniAlcune definizioni Algoritmo di sintesi ottima di Quine-McCluskeyAlgoritmo di sintesi.
A.S.E.13.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 13 Alcune definizioniAlcune definizioni Algoritmo di sintesi ottima di Quine-McCluskeyAlgoritmo.
A.S.E.12.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 12 Teorema di SHENNONTeorema di SHENNON Implicanti, Inclusivi, Implicanti PrincipaliImplicanti,
A.S.E.5.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 5 Rappresentazione di numeri con segnoRappresentazione di numeri con segno –Modulo e segno (MS)
ARCHITETTURA DEI SISTEMI ELETTRONICI
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Corso di Informatica (Programmazione)
Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)
Algoritmi e strutture dati
I CODICI.
Seminario su clustering dei dati – Parte II
Reti Combinatorie: sintesi
Codici binari decimali
Lezione 5 Domande: Laverage path length di Chord con 2^b identificatori e N=2^b nodi è (giustificare la risposta) Laverage path length di Chord con 2^b.
Cos’è un problema?.
Intelligenza Artificiale Algoritmi Genetici
Codifica binaria Rappresentazione di numeri
Rappresentazione dell’informazione
Rete Asincrona Una rete sequenziale asincrona è dotata di due ingressi E, X e di una uscita Z. L'uscita Z deve diventare 1 solamente quando durante l'ultima.
Una rete sequenziale asincrona è dotata di due
Diagramma degli stati che descrive il comportamento della rete.
Cassaforte Asincrona di Mealy
3/29/2017 Minimizzazione.
Milano, 17 Dicembre 2013 Informatica B Informatica B Matlab Laboratorio del 14/01/2014 Responsabili di laboratorio: Gianluca Durelli:
Una rete sequenziale asincrona è dotata di due ingressi X1, X2 e di un’uscita Z. I segnali X2 e X1 non cambiano mai di valore contemporaneamente. Il segnale.
Una rete sequenziale asincrona è dotata di due ingressi X1, X2 e di un’uscita Z. I segnali X2 e X1 non cambiano mai di valore contemporaneamente. Il segnale.
Una rete sequenziale asincrona ha due ingressi C,X e un’uscita Z. I segnali C,X non cambiano mai di valore contemporaneamente. Il segnale C è periodico;
Reti Logiche A Lezione xx.x Dispositivi Programmabili
Teoria dei sistemi Autore: LUCA ORRU'.
FONDAMENTI DI INFORMATICA
Tecniche di progettazione Fault Tolerant
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più.
Sintesi di reti combinatorie a due livelli
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano Reti Logiche A Macchine non completamente specificate.
Risoluzione di Problemi con gli algoritmi Ricorsivi
Rappresentazione dell’Informazione
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ù.
A.S.E.14.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 14 Alcune definizioniAlcune definizioni Algoritmo di sintesi ottima di Quine-McCluskeyAlgoritmo.
Reti Logiche A Lezione 2.1 Sintesi di reti combinatorie a due livelli
Transcript della presentazione:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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:

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

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

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

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

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;

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

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

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