Mariagiovanna Sami Politecnico di Milano. Franco Fummi Università di Verona 2 L OTTIMIZZAZIONE DELLE RETI COMBINATORIE 2.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Mariagiovanna Sami Politecnico di Milano. Franco Fummi Università di Verona 2 L OTTIMIZZAZIONE DELLE RETI COMBINATORIE 2."

Transcript

1 2 L OTTIMIZZAZIONE DELLE RETI COMBINATORIE 2 L OTTIMIZZAZIONE DELLE RETI COMBINATORIE INTRODUZIONE MINIMIZZAZIONE A DUE LIVELLI DI RETI COMBINATORIE AD UNA USCITA METODO DI QUINE-MCCLUSKEY RAPPRESENTAZIONE MEDIANTE SIS MINIMIZZAZIONE A DUE LIVELLI DI RETI COMBINATORIE A PIÙ USCITE METODO DI QUINE-MCCLUSKEY PER FUNZIONI A PIÙ USCITE MINIMIZZAZIONE A PIÙ LIVELLI DI RETI COMBINATORIE MODELLI DI RAPPRESENTAZIONE MODELLO ALGEBRICO TRASFORMAZIONI BOOLEANE RAPPRESENTAZIONE MEDIANTE SIS LA VALUTAZIONE DEI RITARDI RAPPRESENTAZIONE MEDIANTE SIS INTRODUZIONE L ottimizzazione di un circuito comporta normalmente un compromesso o meglio, un bilancio fra un certo numero di parametri che caratterizzano il circuito stesso. Due parametri tipici (ancora oggi, i fondamentali) sono l area occupata dal circuito (di solito valutata approssimativamente riferendosi al numero di porte logiche e/o al numero di letterali presenti nell espressione cui il circuito corrisponde) e il ritardo di propagazione, valutato fra l istante in cui si presenta un evento, cioè una variazione di valore a un ingresso, e l istante in cui la risposta all evento appare manifesta all uscita. Altri parametri possono essere la potenza dissipata dal circuito, la facilità di operare il collaudo dello stesso, o la rispondenza a vincoli specifici posti dall uso di particolari tecnologie. Riferendosi ai soli parametri area-tempo, idealmente i progetti che corrispondono a un bilancio ottimo si trovano su un iperbole (vedi figura 2.1); il progettista spesso parte da un progetto sub-ottimo (punto A) per spostarsi verso soluzioni rispondenti al bilancio e che premiano uno o l altro dei parametri di valutazione (il punto B corrisponde a un circuito più costoso in termini di area ma anche più veloce, il punto C permette un risparmio in area ma presenta un maggiore ritardo di propagazione). area A B Franco Fummi Università di Verona Mariagiovanna Sami Politecnico di Milano C La presente dispensa è stampabile e riproducibile esclusivamente per gli scopi didattici dei corsi del Politecnico di Milano e dell'università di Verona; ogni altro uso deve essere preventivamente autorizzato dagli autori. ritardo Febbraio 2000 Figura 2.1. Relazione tra ottimizzazione di area e ritardo. Le tecniche di sintesi ottimizzata permettono al progettista di raggiungere o almeno avvicinare la curva di bilancio ottimo; starà poi al progettista stabilire a quale dei parametri vuole assegnare priorità (e in quale misura). 2

2 Si considerino dapprima reti combinatorie a una sola uscite. Una generica rete combinatoria non può essere sintetizzata con meno di due livelli (solo funzioni molto particolari sono risolubili con una sola porta logica!); dato che un qualsiasi segnale attraversa solo due porte logiche da ingresso a uscita (appunto, due livelli) la forma a due livelli è in linea di principio veloce: la velocità diminuisce però quando cresce il numero degli ingressi a una porta, quindi questo fattore deve essere tenuto in conto nella valutazione del ritardo. Ricordiamo innanzitutto alcune definizioni: le introduciamo per il caso più semplice, quello di una rete a una sola uscita, completamente specificata (tale cioè che il valore dell uscita sia specificato per ogni configurazione degli ingressi). Si indica con letterale una variabile, sia essa in forma naturale o in forma complementata; le variabili d ingresso sono letterali; una funzione può a sua volta essere usata come un letterale. Un implicante di una funzione data f(x 1,,x n )è un prodotto di letterali P=x a i x a k (dove l insieme di indici i k è compreso in, o coincide con, l insieme degli indici i..n, e a indica che la variabile può comparire sia in forma naturale sia in forma negata) tale che ogniqualvolta sia P=1 è anche f=1. Se tutte le variabili d ingresso compaiono nell implicante, questo si dice anche mintermine della funzione data (spesso indicato anche come 1 della funzione data); un implicante corrisponde a un sottocubo di soli 1 della funzione data, cioè a un insieme di 2 k configurazioni d ingresso a distanza di Hamming unitaria (ognuna a distanza 1 da k altre configurazioni) a ognuna delle quali è associato un 1 della funzione. Un implicante si dice primo se non esiste alcun altro implicante più grande (cioè generato da un numero maggiore di 1 adiacenti) che lo contenga interamente; si noti che un implicante più grande corrisponde a un prodotto di un numero minore di letterali. Un implicante primo si dice essenziale se esiste almeno un 1 incluso (coperto) dall implicante stesso che non è incluso in alcun altro implicante della funzione data. Una copertura di una funzione è un insieme di implicanti che coprono tutti i mintermini della funzione stessa. Rifacendosi a una rappresentazione grafica molto semplice e già nota - quella delle mappe di Karnaugh - si consideri la mappa in figura 2.2. ]Y [\ Figura 2.2. Esempio di mappa di Karnaugh. Gli implicanti primi sono yz, xz, z v, yv, x y z ; di questi, solo yv, x y v e xz sono essenziali - il primo perché è l unico che copre gli 1 xyvz=0110 e 1110, il secondo perché è l unico che copre 0011, il terzo perché è l unico che copre 1000; tutti gli altri 1 della funzione sono coperti da almeno due implicanti primi. 2.2 MINIMIZZAZIONE A DUE LIVELLI DI RETI COMBINATORIE AD UNA USCITA Usando come cifra di merito primaria il numero di porte logiche presenti in una realizzazione di una funzione data, e come cifra secondaria il numero di letterali utilizzati complessivamente, si dimostra che esiste una forma minima a due livelli del tipo somma di prodotti costituita da soli implicanti primi, e che un implicante essenziale deve far parte di una qualsiasi forma minima a due livelli 1. Un metodo esatto per realizzare una sintesi minima a due livelli di una rete combinatoria deve quindi: identificare tutti gli implicanti primi; identificare un sottoinsieme di implicanti primi che costituisca una copertura di costo minimo - cioè un sottoinsieme di cardinalità minima. I metodi esatti derivano dalla soluzione proposta da Quine e McCluskey negli anni 50; dato che sono computazionalmente pesanti, spesso oggi vengono applicati a parti di un circuito complesso, usando poi tecniche euristiche che portano a soluzioni complessive 1 Notazioni e dimostrazioni duali valgono per le forme del tipo prodotto di somme; in tal caso si parla di implicati, corrispondenti a sottocubi costituiti da soli 0 della funzione. 3 4

3 subottime che - in genere - approssimano in modo soddisfacente l ottimo globale Metodo di Quine-McCluskey Si veda dapprima il metodo di Quine-McCluskey per reti a una sola uscita completamente specificate. Si parte dalla tabella delle verità della funzione da sintetizzare; sia consideri ad esempio la funzione descritta in tabella 2.1. x y z v f Tabella 2.1. Tabella delle verità di una funzione completamente specificata. Tabella 2.2. Riordino degli implicanti. m i x y z v Ogni configurazione i in un gruppo viene confrontata con tutte le configurazioni nel gruppo immediatamente successivo (le uniche che potenzialmente potrebbero essere a distanza di Hamming 1, avendo un numero di 1 che differisce per una sola unità); quando si trova una configurazione j adiacente alla i, ciò indica - nella forma canonica somma di prodotti - la presenza di una somma di due mintermini del tipo Aa+Aa, dove A è il prodotto di tutte le variabili (naturali o complementate) identiche nelle due configurazioni, mentre a è l unica variabile che cambia valore; l algebra di Boole ci dice che la somma può essere sostituita dal solo prodotto (implicante) A. Costruiamo una seconda tabella (tabella 2.3) in cui inseriamo la configurazione A, inserendo un trattino al posto della variabile a; le configurazioni i e j nella tabella di partenza vengono ambedue marcate, in quanto certamente non corrisponderanno ad implicanti primi. Così, i due mintermini 1 e 5 - corrispondenti alle configurazioni 0001 e essendo a distanza unitaria generano nella seconda tabella la configurazione 0-01 e vengono ambedue marcati nella tabella di partenza 2. Il primo passo consiste nel riordinare le righe della tabella secondo il numero di 1 contenuti nella corrispondente configurazione d ingresso, e nel riportare (per ogni sottoinsieme) solamente le configurazioni per cui l uscita vale 1 (vedi tabella 2.2). 2 Con il simbolo - si indica qui la condizione di indifferenza (don t care). 5 6

4 {m 1 m n } x y z v {m 1 m n } x y z v 1, A 4,5,6, E 1, B 6,7,14, F 4, , , , , , C 7, , D 14, Tabella 2.3. Secondo passo dell'algoritmo di Quine-McCluskey. Tabella 2.4. Terzo passo dell'algoritmo di Quine-McCluskey. L analisi completa della tabella 2.3 porta a costruire la tabella 2.4 e a marcare tutti i mintermini nella tabella di partenza - nessun mintermine è un implicante primo. Anche le configurazioni nella seconda tabella vengono raggruppate sulla base del numero di 1 presenti, e su di esse si ripete lo stesso confronto fatto prima, facendo attenzione al fatto che si possono confrontare solo due configurazioni appartenenti a due gruppi immediatamente successivi e nelle quali il trattino si trovi nella stessa posizione (la variabile semplificata per ambedue le configurazioni deve essere ovviamente la stessa, perché le due configurazioni possano essere confrontabili). Si può verificare che la configurazione derivata da 4,5 e quella derivata da 6,7 sono adiacenti - si semplificano dando e adiacenti sono anche le due configurazioni 4,6 e 5,7, che danno anch esse la configurazioni 01--: nella terza tabella che si costruisce (tabella 2.4) si inserisce una sola volta la configurazione risultante, ma si marcano tutti i quattro implicanti identificati in tabella 2.3. Procedendo in questo modo, si vede che nella tabella 2.4 compaiono due sole configurazioni: la 4,5,6,7 già indicata e la 6,7,14,15 (-11-). Nella tabella 2.3 restano non marcate le configurazioni 1,5 (0-01), 1,9 (-001), 9,11 (10-1) e 11,15 (1-11). La tabella 2.4 non ammette ulteriori riduzioni; le due configurazioni in questa tabella, insieme alle quattro non marcate nella tabella precedente, costituiscono l insieme di tutti e soli gli implicanti primi della funzione data (che vengono etichettati con lettere dell alfabeto, come indicato nelle tabelle). Si è così completata la prima fase indicata per un algoritmo di minimizzazione esatta a due livelli; si tratta ora di trovare la copertura minima della funzione data. A questo punto, si passa alla seconda fase realizzando innanzitutto una tabella di copertura che ha tante righe quanti i mintermini della funzione e tante colonne quanti gli implicanti primi ora determinati (tabella 2.5); nella casella (i,α) della tabella si inserisce una marca se e solo se l implicante α copre il mintermine i (se cioè il mintermine i è fra quelli che hanno originato α). xyzv A B C D E F 0001 X X 0100* X 0101 X X 0110 X X 0111 X X 1001 X X 1011 X X 1110* X 1111 X X Tabella 2.5. Tabella di copertura dell'algoritmo di Quine-McKluskey. Esaminiamo ora la tabella di copertura. Innanzitutto, notiamo che esistono alcune righe che contengono una sola marca; la colonna in cui tale marca appare corrisponde a un implicante essenziale, dato che il corrispondente implicante primo è l unico a coprire il mintermine associato alla riga (si sono marcate le righe con *). Qualsiasi forma minima somma di prodotti dovrà contenere gli implicanti essenziali (colonne essenziali): gli implicanti essenziali sono E ed F. Possiamo indicare preliminarmente che la forma minima sarà f=e+f+.; gli implicanti E ed F coprono anche altri implicanti, che non richiedono altra copertura nella forma minima. Passiamo a una tabella ridotta (tabella 2.6) ottenuta da quella iniziale cancellandone le colonne corrispondenti agli implicanti essenziali e le righe corrispondenti alle righe coperte dagli implicanti essenziali. xyzv A B C D E F 0001 X X 1001 X X 1011 X X Tabella 2.6. Tabella di copertura, dopo la prima riduzione. Ci troviamo ora di fronte a una tabella nella quale ogni mintermine è coperto da almeno 7 8

5 (qui, esattamente) due implicanti; non ci sono più relazioni di essenzialità. Operiamo però un confronto fra le colonne A e B; la colonna B ha tutte le marche della A, più almeno una: si dice che B è dominante rispetto ad A. Dal nostro punto di vista, ciò significa che l implicante associato alla colonna B (dominante) copre tutti i mintermini coperti dall implicante A, più almeno uno; in altre parole, scegliere l implicante B per la forma somma di prodotti non porterà mai a un costo maggiore di quello che si avrebbe scegliendo A. Si può quindi cancellare la colonna A senza modificare il comportamento del circuito che si sintetizzerà. Analogamente, si cancella la colonna D (dominata dalla C); evidentemente è inutile riportare le colonne E ed F, che sono vuote. Si giunge alla tabella ridotta 2.7 (non si sono aggiunti per ora altri termini prodotti alla forma f): xyzv B C 0001 X 1001 X X 1011 X Tabella 2.7. Tabella di copertura, dopo la seconda riduzione. Finalmente, nella tabella ora realizzata vediamo che la riga 0001 è diventata pseudoessenziale - nella tabella ridotta è coperta dal solo implicante B - come anche la riga 1011 (coperta dal solo C): si possono quindi aggiungere B e C alla forma, ottenendo f=e+f+b+c Nell esempio ora sintetizzato si sono considerati due tipi di caratteristiche che permettono di semplificare l elaborazione della tabella di copertura: l essenzialità (sia essa primaria o pseudo-essenzialità) e la dominanza fra colonne. Si supponga ora che, dopo avere selezionato eventuali implicanti essenziali ed eliminato colonne dominate, ci si sia riportati alla tabella ridotta 2.8 in cui non esistono righe essenziali, né relazioni di dominanza fra colonne. A B C D α X X β X X γ X X X δ X X ε X X X Tabella 2.8. Esempio di tabella di copertura. Si confrontino ora le righe γ e δ; la δ è dominata dalla γ. Ciò significa che qualunque implicante copra δ copre anche γ, ma non viceversa; in altre parole, se nel corso di una copertura si sceglie un implicante che copra il mintermine dominato si è sicuri di coprire anche quello dominante, mentre la scelta opposta potrebbe non dare la medesima garanzia. Scegliere un implicante che copra il mintermine dominato di conseguenza garantisce che il costo è non maggiore di quello che si otterrebbe scegliendone uno che coprisse il mintermine dominante, mentre la scelta di un implicante che coprisse il mintermine dominante potrebbe portare a un aumento di costo. Analogamente, β è dominata da ε: è quindi possibile semplificare la tabella cancellando le righe dominanti (tabella 2.9). A B C D A C α X X α X X β X X β X δ X X δ X Tabella 2.9. Tabella A questo punto si genera una relazione di dominanza della colonna A rispetto alla D, e della C rispetto alla B, che porta a ulteriori riduzioni (tabella 2.10) e permette di concludere che la somma A+C copre con costo minimo la tabella 2.8. Non sempre le riduzioni dovute a essenzialità e dominanza consentono di giungere a una soluzione; si consideri il caso (peraltro molto semplice) descritto in tabella xyz A B C D E F 000 X X 010 X X 011 X X 100 X X 101 X X 111 X X Tabella Esempio di tabella di copertura. In questa tabella non esistono righe essenziali, e non sono identificabili relazioni di dominanza né fra righe né fra colone. Peraltro, la scelta di tutti gli implicanti primi (sei) darebbe una copertura sicuramente ridondante. Per giungere a una copertura si procede dunque per tentativi; si sceglie un implicante come se fosse essenziale, si cancellano - oltre alla sua colonna - tutte le righe che esso copre, e si riesamina la tabella ridotta per 9 10

6 eventuali semplificazioni. Ovviamente, non c è nessuna garanzia che la scelta operata (ed eventualmente quelle che occorre ripetere anche in seguito) porti alla soluzione ottima; in teoria almeno, occorrerebbe esplorare tutto l albero delle scelte per valutare alla fine quale, fra e varie soluzioni, è effettivamente la ottima. In realtà, si utilizzano delle euristiche opportunamente guidate (ad esempio, si inizia scegliendo un implicante che copra un numero di mintermini più elevato possibile - là dove questa selezione sia ammissibile). Infine, si considera l applicazione del metodo di Quine-Mc Cluskey a reti a una sola uscita incompletamente specificate - che ammettano cioè delle condizioni di indifferenza (corrispondenti a configurazioni d ingresso che non si presenteranno mai, e per le quali di conseguenza qualunque valore di uscita è ammissibile). Sia data la funzione f(x,y,z,v) assegnata mediante la tabella delle verità xyzv f xyzv f Tabella Tabella delle verità di una funzione parzialmente specificata. Si elencano in ordine di numero crescente di 1 tutte le configurazioni corrispondenti sia a 1 della funzione, sia a condizioni di indifferenza; tenendo però presente che non è necessario coprire le condizioni di indifferenza - e che quindi non potranno mai esistere implicanti primi costituiti da sole condizioni d indifferenza - questa vengono marcate a priori. In tabella 2.13 le condizioni d indifferenza sono ulteriormente indicate in corsivo. Nel confronto che porta alla tabella 2.14, ancora, ogni volta che si trova una coppia di condizioni d indifferenza adiacente il potenziale implicante viene, si, introdotto, ma viene a priori marcato Tabella , , , , , , , , , , , , , , Tabella ,5,6, A 3,7,11, B 5,7,13, C 6,7,14, D 10,11,14, E Tabella Di nuovo, iterando la procedura si giunge alla tabella 2.15, che raccoglie tutti e soli gli implicanti primi della funzione. Si passa quindi a costruire la tabella di copertura 2.16 nella quale ovviamente le righe corrispondono solo agli uni della funzione - non è necessario coprire le condizioni di indifferenza! A B C D E 4 X 10 X 11 X 13 X X 14 X X 15 X X X X Tabella Tabella di copertura della funzione parzialmente specificata. Le forme a due livelli sono state le prime ad essere usate (inizialmente, erano anche le uniche per cui esistessero tecniche formali che fossero la base di strumenti di CAD); a parte le iniziali realizzazioni in logica sparsa, rimasero in uso con l introduzione di componenti chiamati PLA (Programmable Logic Array) che potevano essere programmati dall utente il quale creando o distruggendo collegamenti e/o dispositivi 11

7 all interno di una matrice come quella indicata in figura 2.3 aveva la possibilità di definire sia i termini prodotto creati nella sezione AND, sia i termini somma creati nella sezione OR: a Sezione AND a ab a c bc Sezione Linee di OR funzione b b c c f1=ab +bc f=a c+bc Figura 2.3. Esempio di realizzazione con PLA di una funzione a due livelli. linee di prodotto Una PLA predefinisce il numero di linee di prodotto ammissibili (un numero molto inferiore alla cardinalità dell insieme di tutti i mintermini) e il numero delle linee di funzione: tipicamente, ha senso utilizzarla per reti a più uscite. Oggi, non esistono PLA come dispositivi a sé stanti programmabili dall utente finale; si trovano eventualmente come strutture facenti parti di sistemi VLSI complessi (dove risultano interessanti a causa della loro estrema regolarità, e quindi della compattezza del layout risultante). La tendenza oggi con l uso oramai generale di circuiti C-MOS e l uso di dispositivi semicustom 3 - spinge piuttosto verso la realizzazione di reti a più livelli. Prima di passare alle tecniche di sintesi a più livelli, vale la pena di considerare il problema della ottimizzazione a due livelli di funzioni a più uscite Rappresentazione mediante SIS L'algoritmo di Quine-McKluskey è stato brillantemente implementato nel programma di sintesi a due livelli ESPRESSO. Benché sia possibile utilizzare esplicitamente questo programma è molto più comodo usare la sua reimplementazione nel programma SIS data dal comando full_simplify. In questo modo è possibile descrivere la funzione da 3 Dispositivi costituiti da un insieme di sottocircuti predefiniti ad esempio, porte logiche con un numero fisso di ingressi fra i quali l utente finale realizza una rete di interconnessione che permette di realizzare la funzione voluta. Casi tipici sono i gate arrays, matrici di porte logiche (es.: NAND a due ingressi). minimizzare in formato.blif e manipolare la rete corrispondente dentro SIS. Il lettore interessato ad approfondire l'utilizzo di ESPRESSO può comunque utilizzare SIS per generare il formato di ingresso di ESPRESSO mediante il comando write_pla di SIS che converte un file.blif in un file.pla. Usando le opzioni di ESPRESSO si potrebbe esaminare passo passo l'esecuzione dell'algoritmo di Quine-McKluskey facendo stampare gli implicanti primi, gli essenziali e la copertura minima. Riprendiamo la funzione riportata in tabella 2.1 e descriviamola in formato.blif. Poiché la funzione è completamente specificata, si ricorda che è sufficiente descrivere solamente l'on-set: i mintermini non elencati apparterranno all'off-set. La funzione di tabella 2.1 è quindi descritta nel seguente modo:.model COMPSPEC.inputs x y z v.outputs f.names x y z v f end Il suo caricamento in SIS e la stampa delle statistiche producono il seguente risultato: sis> read_blif compspec.blif sis> print_stats COMPSPEC pi= 4 po= 1 nodes= 1 latches= 0 lits(sop)= 36 Il modello ha un costo di 36 letterali poiché è descritto da 9 mintermini da 4 variabili. L'a minimizzazione esatta a due livelli (comando full_simplify) produce il seguente risultato: sis> full_simplify sis> print_stats compspec pi= 4 po= 1 nodes= 1 latches= 0 lits(sop)= 10 sis> write_blif.model compspec.inputs x y z v.outputs f.names x y z v f end La funzione è ora descritta con quattro prodotti il cui costo è sceso a 10 letterali. Per facilitare la lettura di questi prodotti, è possibile stamparli come equazioni: 13 14

8 sis> write_eqn INORDER = x y z v; OUTORDER = f; f =!y*!z*v + x*z*v + y*z +!x*y; Queste equazioni concordano quasi completamente con il risultato ottenuto manualmente e riportato in tabella 2.6 e 2.7. La differenza riguarda l'implicante primo essenziale D (1-11) che è stato selezionato invece dell'implicante C (10-1). Il loro costo in termini di letterali è però identico quindi la loro scelta in fase di copertura è indifferente. Nel caso di funzioni parzialmente specificate, l'unica differenza consiste nella scritta del don t care set (DC-set). Il DC-set viene descritto come l'on-set, ma viene identificato perché è posto dopo la parola chiave.exdc. Per esempio, la funzione parzialmente specificata di tabella 2.12 è descritta in formato.blif nel seguente modo:.model parspec.inputs x y z v.outputs f.names x y z v f exdc.inputs x y z v.outputs f.names x y z v f end I mintermini per cui la funzione è don't care sono riportati dopo la parola chiave.exdc e completano l'on-set della funzione descritto come in precedenza. L'esecuzione del comando full_simplify produce il seguente risultato: sis> read_blif parspec.blif sis> print_stats parspec pi= 4 po= 1 nodes= 1 latches= 0 lits(sop)= 24 sis> full_simplify sis> print_stats parspec pi= 4 po= 1 nodes= 1 latches= 0 lits(sop)= 6 sis> write_eqn INORDER = x y z v; OUTORDER = f; f = y*v + x*z +!x*y; Don't care: INORDER = x y z v; OUTORDER = f; f =!x*y*z*!v +!x*y*!z*v +!x*!y*z*v +!x*y*z*v; Il costo della funzione è sceso a 6 letterali per i tre prodotti (A, C, E) che erano stati già identificati manualmente nella tabella di copertura Si noti che l'esecuzione del comando full_simplify sulla funzione senza il DC-set, produce il seguente risultato: sis> read_blif parspec_nodc.blif sis> print_stats parspec_nodc pi= 4 po= 1 nodes= 1 latches= 0 lits(sop)= 24 sis> full_simplify sis> print_stats parspec_nodc pi= 4 po= 1 nodes= 1 latches= 0 lits(sop)= 9 sis> write_eqn INORDER = x y z v; OUTORDER = f; f =!x*y*!z*!v + x*y*v + x*z; Il maggior costo è correttamente dato dalla minore riduzione delle dimensioni dei tre prodotti che coprono la funzione poiché non sono state sfruttate le condizioni di indifferenza. 2.3 MINIMIZZAZIONE A DUE LIVELLI DI RETI COMBINATORIE A PIÙ USCITE Una prima soluzione al problema della sintesi a due livelli di funzioni a più uscite potrebbe apparire quella di minimizzare individualmente le singole uscite utilizzando gli algoritmi già visto. Si consideri però l'esempio di una rete a tre ingressi e due uscite (F1 e F2) riportato come mappe di Karnaugh in figura 2.4). xy z xy z F1 Figura 2.4. Mappe di Karnaugh di una funzione a due uscite. La minimizzazione individuale porta alle due espressioni: F1= xy+yz F2=x y +z x e quindi alla rete di figura 2.5, per un costo totale di quattro porte AND a due ingressi e due porte OR a due ingressi. F

9 x y y z F1 Figura 2.5. Prima realizzazione della funzione a due uscite. [ y z x y x y x z F2 F1 in questo) è la cosiddetta rappresentazione cubica. Una rappresentazione cubica fa in sostanza riferimento a una forma a due livelli (somma di prodotti o prodotto di somme): di conseguenza, una funzione ammette in genere più notazioni cubiche. Si consideri dapprima la seguente funzione a tre ingressi e una uscita: xyz Una possibile notazione cubica è la seguente: f x y Figura 2.6. Realizzazione condivisa della funzione a due uscite. Al contrario, la rete in figura 2.6) realizza le stesse due funzioni, condividendo il prodotto x yz : individualmente, le due forme non sono più minime e, in particolare, si è usato un implicante (x yz ) che non è primo né per F1 nè per F2 ma la rete complessiva ha un costo inferiore. Si è giunti a questo, appunto, identificando degli implicanti comuni che possono essere condivisi dalle due uscite (si è introdotto un fanout sull uscita di una delle porte AND, che ora alimenta due porte OR). Per giungere a una metodologia che sfrutti il concetto di condivisione introdotto ora intuitivamente, occorre introdurre il concetto di implicante primo di più multiple. In poche parole, oltre agli implicanti primi delle singole funzioni, occorre considerare anche quelli dei prodotti di singole funzioni: date tre funzioni F1, F2, F3, occorre considerare gli implicanti primi di: F1, F2, F3, F1.F2, F1.F3, F2.F3, F1.F2.F3. Ad esempio, gli implicanti primi di F1.-F2 sono i massimi implicanti condivisi da F1 e F Metodo di Quine-McCluskey per funzioni a più uscite Una notazione che riesce particolarmente utile nel caso delle reti a più uscite (e non solo F2 xyz Si tratta chiaramente di una notazione più compatta della tabella delle verità: in sostanza, corrisponde ad indicare un insieme di implicanti e di implicati (in genere, primi) che coprano la funzione assegnata, ammettendo eventuali ridondanze. Si può vedere che due cubi possono parzialmente sovrapporsi, per quanto riguarda gli ingressi: i due cubi 00 e 00, nel nostro esempio, includono ambedue il termine 000. Tornando alla funzione a due uscite di figura 2.4, una possibile notazione cubica è: xyz f1 f Questa notazione mette in evidenza i termini comuni a due o più uscite; un altra notazione possibile sarebbe: f 17 18

10 xyz f1 f Si noti in questo caso l effetto delle parziali sovrapposizioni dei cubi: 010 fa parte sia del cubo 10 sia del cubo 0 0. In questo caso, il valore della funzione a più uscite per la parte comune ai due cubi (per i mintermini facenti parte dell intersezione) si ottiene sommando tutte le parti di uscita nel nostro caso, il valore è (giustamente) 10+01=11. Un cubo diventa dunque un implicante di più uscite. Su questa base, si estende il metodo di Quine-McCluskey per giungere alla minimizzazione di funzioni a più uscite. Innanzitutto, si creano gli implicanti primi di uscite multiple. Si parte da una tabella in qui si elencano tutti i mintermini per cui almeno una delle uscite vale 1. xyz f1 f2 xyz f1 f B C A D E Tabella Tabella Nella prima tabella (tabella 2.17) si elencano tutti i mintermini delle due uscite, indicando per quali uscite il valore sia 1. Si cercano poi i mintermini adiacenti, e si compie l intersezione delle corrispondenti parti d uscita per creare la parte d uscita del corrispondente implicante: se tale parte è nulla, non si introduce in corrispondenza alcun elemento nella nuova tabella (tabella 2.18). L implicante usato per crearne uno nuovo viene marcato se e solo se la parte di uscita del nuovo implicante è identica a quella dell implicante di partenza: così, si marcano 000 e 001 perché l implicante di più uscite 00 ha anch esso parte d uscita 01, ma non si marca 010 perchè nella creazione di 00 si ha parte di uscita 01 (quella di 010 è 11) e nella creazione di 10 si ha parte di uscita 10. Gli implicanti primi di più uscite sono quindi quelli (A,B,C,D,E) indicati sulle tabelle. cui, come al solito, si pongono sulle righe gli implicanti e sulle colonne i mintermini con la regola che ogni mintermine deve essere ripetuto tante volte quante sono le uscite cui appartiene (nel nostro caso, 010 comparirà due volte): la matrice di copertura risultante è data in tabella xyz f1 f2 A B C D E X X X X X X X X X Tabella Tabella di copertura di una funzione a due uscite. Le regole di copertura sono le solite si cerca il minimo numero di colonne le cui marche consentano di coprire tutte le righe facendo attenzione a rispettare le marche che indicano le specifiche funzioni interessate : nell esempio particolare, è immediato vedere come la scelta degli implicanti A, B ed E dia la soluzione di costo minimo. Si consideri ora una funzione a tre uscite per la quale in tabella 2.20 e 2.21 è effettuata l'analisi dei prodotti secondo il metodo di Quine-McKluskey. xyz f1 f2 f3 xyz f1 f2 f A B C D E Tabella Tabella Si costruisca ora la tabella di copertura X A questo punto, nasce il problema di identificare una copertura. Si consideri come unica cifra di merito il numero delle porte logiche necessarie; si crea una tabella di copertura in 19 20

11 xyz f1 f2 f3 A B C D E X X X X X X X X Tabella Tabella di copertura di una funzione a tre uscite. Si verifica immediatamente che gli implicanti D ed E sono essenziali; dovranno quindi comparire in qualsiasi forma minima, rispettivamente, D di f2 ed f3 ed E di f1 ed f3. Si costruisce quindi la tabella ridotta 2.22., in cui compaiono solo i mintermini non coperti da D ed E e gli implicanti residui (A, B, C). xyz f1 f2 f3 A B C X X X X Tabella Tabella di copertura ridotta di una funzione a tre uscite. Si verifica che A domina sia B sia C e garantisce la copertura completa di tutti gli implicanti residui per f1 ed f2 rispettivamente; le tre uscite risultano quindi sintetizzate come: f1= A+E f2= A+D f3= D+E La funzione a tre uscite è dunque sintetizzabile con tre soli implicanti. Si può facilmente osservare che la minimizzazione individuale delle tre funzioni (basata sull uso di implicanti delle funzioni singole) avrebbe richiesto l uso di quattro implicanti. X X X X X X 2.4 MINIMIZZAZIONE A PIÙ LIVELLI DI RETI COMBINATORIE Come si è detto all inizio del capitolo, oggi si tende a favorire la sintesi dei circuiti combinatori mediante reti logiche a più livelli; questo tipo di sintesi dà al progettista un maggior numero di gradi di libertà che può sfruttare sia per effettuare il bilancio areatempo, sia per soddisfare ulteriori richieste (es., l esistenza di più percorsi da un ingresso a un uscita, il limite sul numero di ingressi ad ogni singola porta, ecc.). Sono state proposte tecniche esatte di ottimizzazione a più livelli; si tratta però di proposte relativamente vecchie (risalgono agli anni 60 e 70) e di metodologie applicabili solo a reti combinatorie dotate di particolari caratteristiche e per di più computazionalmente inaccettabili per funzioni di complessità anche modesta. Già per reti a componenti discreti si è fatto ricorso a tecniche euristiche: una soluzione immediata per realizzare reti a più livelli consiste nella fattorizzazione - in pratica, l applicazione interattiva della proprietà distributiva (sia da destra verso sinistra che viceversa). Si consideri un esempio classico (rappresentato dalla mappa di Karnaugh in figura 2.7). zv xy Figura 2.7. Mappa di Karnaugh di una funzione particolare. La sintesi minima a due livelli porta alla forma f= x y z v +x y zv+x yz v+x yzv +xyz v +xyzv+xy z v+xy zv e corrisponde a un circuito costituito da otto porte AND a quattro ingressi e una porta OR a otto ingressi - porte raramente disponibili in una normale libreria e certamente caratterizzate da ritardi di propagazione elevati. Si applichi ora la proprietà distributiva del prodotto rispetto alla somma da destra verso sinistra (operando cioè un raccoglimento a fattor comune ) rispettivamente al primo e al secondo termine, raccogliendo x y, al terzo e al quarto, raccogliendo x y, e così via: si ottiene la forma: f=x y (z v +zv)+x y(z v+zv )+xy(z v +zv)+xy (z v+zv ) cui si può applicare nuovamente la stessa proprietà, raccogliendo questa volta (rispettivamente) (z v +zv) e (z v+zv ) e ottenendo f= (x y +xy)(z v +zv)+(x y+xy )(z v+zv ) 21 22

12 Il corrispondente circuito risulta ancor più semplice se si ricorda che (a b +ab) =a b+ab : lo schema finale è riportato in figura 2.8. x y x y z v z v Figura 2.8. Rete a più livelli che realizza la funzione di figura 2.7. Il costo totale della rete è ancora di nove porte logiche (e due negatori), ma tutte le porte sono a due ingressi reperibili quindi in qualsiasi libreria e con prestazioni molto migliori delle precedenti; se poi si considera il numero dei letterali presenti, la riduzione è veramente drastica (da 40 a 16, tenendo in conto l uso dele due espressioni negate). La tecnica di fattorizzazione applicata manualmente implica evidentemente una certa misura di intuito (o di fortuna) da parte del progettista, che deve saper scegliere nel modo migliore i termini rispetto a cui fattorizzare e l ordine di applicazione della fattorizzazione; inoltre, spesso occorre procedere a una fase di espansione (ricorrendo, tipicamente, al teorema di Shannon) prima di poter fattorizzare. Occorre in genere procedere per tentativi nella ricerca - procedimento meglio applicato mediante strumenti di progettazione automatica. In genere, le forme fattorizzatevengono derivate da forme del tipo somma di prodotti; la definizione formale - di tipo ricorsivo - di una forma fattorizzata è la seguente: un prodotto può essere o un singolo letterale o un prodotto di forme fattorizzate; una somma può essere o un singolo letterale o una somma di forme fattorizzate; una forma fattorizzata è o una somma o un prodotto. Ad esempio, forma fattorizzate sono: x abc a+bc (x+y )v+w z mentre (xy) sulla base della definizione data non è una forma fattorizzata - la negazione di un prodotto non è inclusa fra le possibilità prese in considerazione. Esistono algoritmi di tipo euristico che - partendo, come si è detto, da una forma a due livelli, tipicamente somma di prodotti - estraggono forme fattorizzate; in genere, tali forme possono non essere ottime, nel senso che applicando ad esse ulteriori operazioni (non di fattorizzazione) è possibile giungere a forme meno costose o più veloci. Anche per quanto riguarda tali successive operazioni, gli strumenti di CAD attualmente in uso fanno tutti riferimento a metodi euristici che non garantiscono di raggiungere una soluzione ottima ma che consentono di ottenere risultati ottimali in tempi ragionevoli. Si fa l ipotesi fondamentale di esaminare solamente reti prive di anelli di retroazione; con porte a una sola uscita. Le tecniche euristiche correnti partono da una prima sintesi (ottenuta, ad esempio, da una sintesi a due livelli su cui si sia operata una fattorizzazione, o dalla composizione di moduli preesistenti in libreria) e procedono su due passi successivi: 1) una prima fase di ottimizzazione in cui si ignorano i vincoli implementativi (vincoli imposti dalla libreria tecnologica usata, limiti al fan-in e fan-out ammissibile, ecc.); 2) una seconda fase in cui il risultato della fase 1) viene raffinato sulla base dei vincoli implementativi. Il risultato è inevitabilmente di qualità inferiore a quello che si potrebbe ottenere considerando simultaneamente vincoli e tecniche di ottimizzazione, ma - ancora una volta - il carico computazionale è inferiore. In questo corso, si considererà solamente la fase 1); la fase 2) (che comporta anche il mapping tecnologico, riferito alla specifica libreria di cui il progettista si serve, si veda il capitolo 3) è più dipendente dalla tecnologia usata, e si presta quindi meno a uno studio di base. Per procedere alla sintesi a più livelli, occorre introdurre i modelli di cui ci si servirà e le trasformazioni che si opereranno su tali modelli Modelli di rappresentazione. I circuiti a cui ci si dedica sono, per generalità, reti a più uscite,. Il comportamento di una generica rete con n ingressi ed m uscite è rappresentabile mediante un vettore di m funzioni Booleane f i definite sull insieme di valori 0,1,-. La struttura di un circuito può 23 24

13 essere rappresentata mediante una rete logica costituita da porte logiche interconnesse fra di loro; il concetto di rete logica può in effetti essere esteso definendo la rete come interconnessione di moduli che sono a loro volta associati ad arbitrarie funzioni Booleane a una sola uscita (funzioni scalari). Si può considerare la rete logica come una struttura che collega dei comportamenti - quelli delle funzioni locali associate ai singoli nodi. Una rete logica può poi essere rappresentata mediante un grafo orientato aciclico (DAG, Directed Acyclic Graph) G(V,E) in cui: V è l insieme dei vertici o nodi, partizionato nei sottoinsiemi V I (nodi d ingresso), V O (nodi di uscita) e V G (nodi interni nodi a cui è associata una funzione scalare); E è l insieme dei lati; A ogni nodo (e alla corrispondente funzione locale) si associa una variabile temporanea. Si considera il caso di funzioni locali a due livelli, della forma somma di prodotti. Si consideri ad esempio una rete a tre ingressi (i 1,i 2,i 3 ) e due uscite primarie (o 1,o 2 ) descritta dalle seguenti equazioni: a=i 1 i 2 c=i 1 +i 3 b=a+ i2 d=bc o 1 =d o 2 =c La rete logica corrispondente è riportata in figura 2.9. i 1 i 2 i 3 a=i 1i 2 c=i1+i3 Figura 2.9. DAG di una rete logica. b=a+i 2 d=bc o1 o2 L ottimizzazione a più livelli ha lo scopo di ridurre area e ritardi del circuito; si tratta di un problema di ottimizzazione a più obiettivi, e spesso conviene identificare dei punti di bilancio, proponendosi di minimizzare: o l area, imponendo dei vincoli sui ritardi, o il ritardo, imponendo dei vincoli sull area. L area - in un circuito integrato - è relativa a componenti (porte logiche) e collegamenti (wiring): mentre quella delle porte è definibile una volta che si conosca la libreria tecnologica, o è comunque valutabile parametricamente sulla base, in particolare, del numero di ingressi, la valutazione dell area dovuta ai collegamenti è di gran lunga più complessa; ua soluzione approssimata valuta quest ultima area in proporzione al numero totale di letterali presenti nella rete (si noti che - in una rete a più livelli - si devono tenere presenti anche i letterali derivanti dai livelli intermedi). Per una rete a più livelli, può anche essere comodo - in prima approssimazione - valutare l area richiesta da ogni macrocella costituita da una rete a due livelli, e calcolare poi l area totale come somma delle aree parziali. Per quanto riguarda la temporizzazione, si riferisce di solito l ottimnizzazione del ritardo alla minimizzazione del ritardo lungo il percorso critico, cioè il percorso più lento. Per calcolare il ritardo lungo un percorso occorre valutare sia il ritardo di propagazione relativo a ogni nodo del percorso, sia il ritardo dovuto ai segmenti di interconessione; mentre il primo è abbastanza facile da calcolare, una volta nota la tecnologia (è una funzione del fanout di una porta, e tale funzione è specificata dalle specifiche della libreria), per quanto riguarda il percorso stesso la valutazione precisa si può in realtà avere solo dopo che si è completato il disegno fisico del circuito. Normalmente, si ricorre a una approssimazione che tiene in conto solo i ritardi dovuti ai nodi, usando poi approcci statistici per i ritardi sulle interconnessioni. Le tecniche euristiche di ottimizzazione a molti livelli operano mediante un insieme di trasformazioni che mantengono il comportamento complessivo ingresso-uscita. Le trasformazioni adottate possono essere locali o globali. Le prime modificano localmente una funzione Booleana senza modificare la struttura della rete, mentre le seconde modificano anche la struttura della rete (ad esempio, fondendo due nodi e le rispettive funzioni in un solo nodo, mediante un processo di eliminazione). Le trasformazioni sono applicate a partire da una rete logica che collega funzioni locali rappresentate da espressioni logiche, eventualmente fattorizzate. Le trasformazioni modificano sia l area sia le prestazioni, poiché modificano il numero dei letterali, le funzioni locali, le connessioni; per valutare le trasformazioni si utilizzano delle cifre di 25 26

14 merito, in modo da rifiutare le trasformazioni non convenienti. Le trasformazioni vengono applicate in modo iterativo; il procedimento termina - e la rete viene considerata ottimale - rispetto a un insieme di trasformazioni quando nessuna ulteriore applicazione di queste la migliora. Per ogni trasformazione si definisce un algoritmo che determina dove la trasformazione può essere applicata e termina quando nessuna trasformazione dello stesso tipo è ulteriormente applicabile; gli algoritmi legati a trasformazioni diverse vengono applicati in sequenza. Inevitabilmente, sequenze diverse possono portare a soluzioni differenti: gli strumenti CAD adottano regole empiriche per superare questo problema, per esempio identificano sequenze di operazioni che statisticamente producono buoni risultati Modello algebrico Si fa ricorso piuttosto che all algebra Booleana all algebra polinomiale usando quindi un sottoinsiene delle trasformazioni Booleane per semplificare la ricerca delle trasformazioni utili, anche se questo riduce la qualità del risultato. Per chiarire la differenza fra trasformazioni algebriche (polinomiali) e trasformazioni Booleane, si considerino i seguenti due esempi. Esempio 1 Sia data f=a+bcd+e; introducendo il termine q=a+cd, si può passare alla forma a più livelli f= a+bq+e; infatti, si ha f=a+bq+e=a+ba+bcd+e= a+bcd+e grazie alla proprietà di assorbimento. Questa è una tipica trasformazione Booleana, che non può essere determinata usando trasformazioni polinomiali. Esempio 2 Sia data f=ka+kb+e; si può sostituire k=q=a+b, ottenendo f=kq+e. Questa sostituzione è determinabile mediante trasformazioni polinomiali. Le espressioni algebriche sono derivate dalle espressioni polinomiali considerando i cubi alla stregua di monomi e mantenendo come variabili differenti i letterali con polarità diversa (vale a dire i forma naturale piuttosto che complementata: a e a vanno tenuti distinti). Le trasformazioni algebriche si ottengono manipolando espressioni algebriche mediante l algebra polinomiale; non si prendono in considerazione nè l insieme delle condizioni d indifferenza, né specifiche proprietà dell algebra Booleana quali a+a =1, a.a =0 ecc.). Detto ciò, si considerano ora le trasformazioni che utilizzano la manipolazione algebrica delle espressioni. Una prima trasformazione banale adottata, ad esempio, nel programma SIS di Berkeley, è la sweep, che elimina dalla rete tutti i nodi con un solo ingresso e i nodi le cui funzioni danno valore costante. Sweep viene richiamata ripetutamente, a valle di altre trasformazioni che potrebbero generare nodi con le caratteristiche citate. Meno immediata è la eliminazione di un nodo interno di una rete logica: il nodo viene rimosso dalla rete, e la variabile corrispondente viene sostituita dalla corrispondente espressione in tutti i punti in cui compare nella rete. Lo scopo di questa trasformazione è essenzialmente quella di ridurre la lunghezza di un percorso da ingresso a uscita, calcolata come numero di nodi attraversati: al limite, se applicata in modo non vincolato, porta a una rete a due livelli, collassando tutti i nodi del grafo in un unico nodo. In genere, ovviamente, si applica in modo vincolato se e solo se provoca un aumento di area inferiore a un certo limite. Un esempio di eliminazione di un nodo può essere quello in figura j=a+b+c y=jf+be x=je+ef x=(a+b+c)e+ef y=(a+b+c)f+be Figura Esempio di applicazione dell'eliminazione di un nodo. Se come indice di costo si valuta il numero dei letterali, la rete iniziale di figura 2.10 ha un costo pari a 3 letterali per il primo nodo, quattro per il secondo e quattro per il terzo (quindi 11), mentre la rete trasformata ha un costo pari a 6+6=12; l incremento di costo è contenuto (pari a 1), ma il numero di nodi è stato ridotto da 3 a 2. Nel programma SIS questa operazione viene eseguita dal comando eliminate. Le altre trasformazioni sono più complesse; utilizzare a pieno campo le possibilità offerte dalle trasformazioni Booleane porterebbe a eccessiva complessità computazionale. Scomposizione (Decomposition): si sostituisce un nodo interno alla rete logica con un insieme di due o più nodi che formano una sottorete equivalente al nodo originale: ad esempio, si consideri x=abcf+efc+de y=acef+def z=bcd+acf Una prima rete logica è riportata in figura 2.11; si può però fattorizzare la funzione x come cf(ab+e) +de, e la y come ef(ac+d); estraendo rispettivamente h=ab+e, j=ac+d si 27 28

15 ottiene la rete in figura j=acf a abcf+cef+de x h=de r=jb+ecf+h; x=r b s=je+hf; y=s c acef+def y t=bcd+j; z=t d giungendo alla rete di figura 2.13 il cui numero dei letterali è ora 24. e bcd+acf z a j=acf r=jb+ecf+h x f b c h=de s=je+hf y Figura Rete prima della decomposizione. d a h=ab+e l=hcf k=l+de x e t=bcd+j z b c d e f j=ac+d bcd+acf Figura Rete dopo la decomposizione. Una ragione per la scomposizione è quella di passare da nodi con funzioni complesse a nodi con funzioni più semplici che possono essere più facilmente minimizzati. Si può notare inoltre che nel particolare esempio si è anche ridotto (da 28 a 26) il numero totale dei letterali. Il programma SIS realizza questa funzionalità con il comando resub. Estrazione (Extraction): si può trovare una sottoespressione comune di due funzioni associata due nodi diversi; estraendola, e creando un nuovo nodo, si può giungere a una semplificazione della rete. Si faccia riferimento allo stesso esempio; si può osservare che la sottoespressione acf è comune a tutte e tre le funzioni, mentre de è comune a x e y. Estraendole, si possono riscrivere le tre funzioni come: r=jef z y f Figura Rete dopo l'estrazione della parte comune. In sostanza, nell estrazione si estrae da un gruppo di nodi un cubo o un espressione che contiene più cubi; l estrazione viene ripetuta fino a che è possibile. Si tratta di identificare divisori comuni a due o più espressioni; estraendolo, esso diventa un nuovo nodo della rete e ha per successori i nodi da cui proveniva. Il programma SIS realizza questa operazione con il comando fx. Semplificazione: si riduce la complessità di una funzione sfruttando le proprietà della sua rappresentazione, localmente o globalmente. Nel programma SIS il comando simplify ed il comando full_simplify realizzano questa operazione. La differenza tra i due comandi va ricercata nella maggior capacità del secondo di calcolare i don't care locali ad ogni nodo. Sostituzione: si riduce la complessità di una funzione sostituendo una sottoespressione con l espressione associata a un nodo già presente nella rete. Si accetta una sostituzione se porta a una diminuzione dei letterali (comando eliminate di SIS). Per considerare l effetto dell applicazione delle varie proprietà a un esempio più complesso, si consideri un esempio preso da [De Micheli], relativo a una rete a cinque ingressi e quattro uscite: 29 30

16 p=ce+de q=a+b r=p+a s=r+b t=ac+ad+bc+bd+e u=q c+qc +qc v=a d+bd+c d+ae w=v x=s y=t z=u La rete logica corrispondente è riportata in figura w=v x=s y=t z=u cui corrisponde la rete logica in figura 2.15 (anche qui, il numero totale dei letterali è diminuito passando da 33 a 20). a b c d j=a +b+c v=jd+ae w q=a+b k=c+d s=ke+a +b u=q+c x y a b c v=a d+bd+c d+ae p=ce+de r=p+a s=r+b x w t=kq+e z e Figura Risultato delle trasformazioni applicate alle rete di figura q=a+b u=q c+qc +qc z d e t=ac+ad+bc+bd+e y Figura Esempio di rete per l'applicazione delle trasformazioni. L applicazione delle varie trasformazioni porta a creare la seguente rete: j=a +b+c k=c+d q=a+b s=ke+a +b t=kq+e u=q+c v=jd+ae Come si è accennato, il problema di un approccio basato su trasformazioni è che applicando sequenze diverse di trasformazioni si possono raggiungere risultati diversi in altre parole, si possono raggiungere diversi ottimi locali relativamente alla sintesi del circuito dato. Questo può facilmente impedire di raggiungere l ottimo globale. Diventano quindi delicate la scelta e l ordine di applicazione delle trasformazioni; le soluzioni algoritmiche adottate nella maggior parte degli strumenti CAD definiscono un algoritmo per ogni tipo di trasformazione, e questi identifica quando e dove applicare la trasformazione stessa (terminando quando ulteriori applicazioni non porterebbero a miglioramenti) Trasformazioni Booleane In questo tipo di modello, si fa pieno uso della logica Booleana; a ogni nodo si associa quindi non solo la funzione Booleana locale, ma anche un insieme di condizioni di indifferenza locali. La trasformazione fondamentale; se le funzioni locali sono espresse come somme di prodotti, si può anche ricorrere a tecniche esatte di ottimizzazione, con qualche variante (ad esempio, sostituendo il numero di letterali al numero delle porte 31 32

Minimizzazione di Reti Logiche Combinatorie Multi-livello

Minimizzazione di Reti Logiche Combinatorie Multi-livello Minimizzazione di Reti Logiche Combinatorie Multi-livello Maurizio Palesi Maurizio Palesi 1 Introduzione I circuiti logici combinatori sono molto spesso realizzati come reti multi-livello di porte logiche

Dettagli

Metodo di Quine- McCluskey

Metodo di Quine- McCluskey Metodo di Quine- McCluskey Maurizio Palesi Maurizio Palesi Definizioni Date due funzioni f(x,x 2,,x n ) e g(x,x 2,,x n ) si dice che f copre g (oppure g implica f) e si scrive f g se f(x,x 2,,x n )= quando

Dettagli

Minimizzazione di Reti Logiche Combinatorie Multi-livello. livello

Minimizzazione di Reti Logiche Combinatorie Multi-livello. livello Minimizzazione di Reti Logiche Combinatorie Multi-livello livello Maurizio Palesi Maurizio Palesi 1 Introduzione I circuiti logici combinatori sono molto spesso realizzati come reti multi-livello di porte

Dettagli

Ottimizzazione delle reti combinatorie

Ottimizzazione delle reti combinatorie Ottimizzazione delle reti combinatorie Ottimizzazione delle reti combinatorie L ottimizzazione di un circuito comporta normalmente un compromesso tra: Prestazioni (ritardo di propagazione) Area (o costo)

Dettagli

Minimizzazione di Reti Logiche Combinatorie Multi-livello

Minimizzazione di Reti Logiche Combinatorie Multi-livello Minimizzazione di Reti Logiche Combinatorie Multi-livello Maurizio Palesi Maurizio Palesi 1 Introduzione Obiettivo della sintesi logica: ottimizzazione delle cifre di merito area e prestazioni Prestazioni:

Dettagli

Sintesi di una rete combinatoria

Sintesi di una rete combinatoria Mappe di Karnaugh Sintesi di una rete combinatoria Offrono uno strumento per esprimere una funzione booleana f: {0,1}n {0,1} in una forma SP o PS minima. Invece della tabella di definizione si impiegano

Dettagli

Corso di Calcolatori Elettronici I

Corso di Calcolatori Elettronici I Corso di Calcolatori Elettronici I Algebra di Boole: minimizzazione di funzioni booleane Roberto Canonico Università degli Studi di Napoli Federico II A.A. 2014-2015 Roberto Canonico Corso di Calcolatori

Dettagli

Calcolatori Elettronici Lezione 2 Algebra delle reti Logiche

Calcolatori Elettronici Lezione 2 Algebra delle reti Logiche Calcolatori Elettronici Lezione 2 Algebra delle reti Logiche Ing. Gestionale e delle Telecomunicazioni A.A. 27/8 Gabriele Cecchetti Algebra delle reti logiche Sommario: Segnali digitali vs. segnali analogici

Dettagli

Algebra di Boole: minimizzazione di funzioni booleane

Algebra di Boole: minimizzazione di funzioni booleane Corso di Calcolatori Elettronici I A.A. 200-20 Algebra di Boole: minimizzazione di funzioni booleane Lezione 8 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Forme Ridotte p Vantaggi

Dettagli

PORTE LOGICHE. Si effettua su due o più variabili, l uscita assume lo stato logico 1 se almeno una variabile di ingresso è allo stato logico 1.

PORTE LOGICHE. Si effettua su due o più variabili, l uscita assume lo stato logico 1 se almeno una variabile di ingresso è allo stato logico 1. PORTE LOGICHE Premessa Le principali parti elettroniche dei computer sono costituite da circuiti digitali che, come è noto, elaborano segnali logici basati sullo 0 e sull 1. I mattoni fondamentali dei

Dettagli

Funzioni booleane. Vitoantonio Bevilacqua.

Funzioni booleane. Vitoantonio Bevilacqua. Funzioni booleane Vitoantonio Bevilacqua bevilacqua@poliba.it Sommario. Il presente paragrafo si riferisce alle lezioni del corso di Fondamenti di Informatica e Laboratorio di Informatica dei giorni 9

Dettagli

Sintesi Sequenziale Sincrona Sintesi Comportamentale di reti Sequenziali Sincrone

Sintesi Sequenziale Sincrona Sintesi Comportamentale di reti Sequenziali Sincrone Sintesi Sequenziale Sincrona Sintesi Comportamentale di reti Sequenziali Sincrone Il problema dell assegnamento degli stati versione del 9/1/03 Sintesi: Assegnamento degli stati La riduzione del numero

Dettagli

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

Sintesi di reti logiche multilivello. Sommario. Motivazioni. Sommario. M. Favalli Sommario Sintesi di reti logiche multilivello M. Favalli Engineering Department in Ferrara 1 2 3 Aspetti tecnologici Sommario (ENDIF) Reti logiche 1 / 36 Motivazioni (ENDIF) Reti logiche 2 / 36 1 2 3 Aspetti

Dettagli

Algebra di commutazione

Algebra di commutazione Algebra di commutazione E un caso particolare di algebra booleana. B = Dominio Op1 = AND Vale 1 solo se entrambi gli operandi sono 1 Op2 = OR Vale 0 se entrambi I termini sono zero, altrimenti 1 Op3 =

Dettagli

Algebra di Boole Cenni all Algebra di Boole

Algebra di Boole Cenni all Algebra di Boole Algebra di Boole Cenni all Algebra di Boole Introduzione Rappresentazione di una funzione combinatoria Proprietà dell algebra di commutazione Forme canoniche Teorema di espansione di Shannon Versione del

Dettagli

Progettazione Digitale: Modellazione dei ritardi e mapping tecnologico

Progettazione Digitale: Modellazione dei ritardi e mapping tecnologico Progettazione Digitale: Modellazione dei ritardi e mapping tecnologico Prof. Antonino Mazzeo A cura di: Ph.D., Ing. Alessandra De Benedictis, alessandra.debenedictis@unina.it Testi di riferimento: Franco

Dettagli

Dalla tabella alla funzione canonica

Dalla tabella alla funzione canonica Dalla tabella alla funzione canonica La funzione canonica è la funzione logica associata alla tabella di verità del circuito che si vuole progettare. Essa è costituita da una somma di MinTerm con variabili

Dettagli

Le mappe di Karnaugh

Le mappe di Karnaugh Le mappe di Karnaugh Le semplificazioni di una funzione logica possono essere effettuate mediante i teoremi dell'algebra di Boole. Esiste però un metodo molto più pratico di semplificazione che quello

Dettagli

Sintesi di Reti Combinatorie Ottimizzazione di Reti Combinatorie a Due Livelli: Metodo di Karnaugh. Mariagiovanna Sami a.a.

Sintesi di Reti Combinatorie Ottimizzazione di Reti Combinatorie a Due Livelli: Metodo di Karnaugh. Mariagiovanna Sami a.a. Sintesi di Reti Combinatorie Ottimizzazione di Reti Combinatorie a Due Livelli: Metodo di Karnaugh Mariagiovanna Sami a.a. 2007-2008 2008 livelli: Introduzione Le reti combinatorie mostrano in ogni istante

Dettagli

Mappe di Karnaugh G. MARSELLA UNIVERSITÀ DEL SALENTO

Mappe di Karnaugh G. MARSELLA UNIVERSITÀ DEL SALENTO Mappe di Karnaugh 1 G. MARSELLA UNIVERSITÀ DEL SALENTO Introduzione Le semplificazioni di una funzione logica possono essere effettuate mediante i teoremi dell'algebra di Boole. Esiste però un metodo molto

Dettagli

Progetto di Contatori sincroni. Mariagiovanna Sami Corso di reti Logiche 8 Anno

Progetto di Contatori sincroni. Mariagiovanna Sami Corso di reti Logiche 8 Anno Progetto di Contatori sincroni Mariagiovanna Sami Corso di reti Logiche 8 Anno 08 Introduzione Per le reti sequenziali esistono metodologie di progettazione generali, che partendo da una specifica a parole

Dettagli

Richiami di Algebra di Commutazione

Richiami di Algebra di Commutazione LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n Prof. Rosario Cerbone rosario.cerbone@libero.it http://digilander.libero.it/rosario.cerbone a.a. 6-7 Richiami di Algebra di Commutazione In questa

Dettagli

Algebra di Boole Cenni all Algebra di Boole. Algebra Booleana: definizione

Algebra di Boole Cenni all Algebra di Boole. Algebra Booleana: definizione Algebra Booleana: operazioni e sistema algebrico Algebra di Boole Cenni all Algebra di Boole Introduzione Rappresentazione di una funzione combinatoria Proprietà dell algebra di commutazione Forme canoniche

Dettagli

Sintesi di reti combinatorie

Sintesi di reti combinatorie Sintesi di reti combinatorie Criteri e procedure di sintesi (4.1-4.7) Indice Introduzione: formulazione e parametri di valutazione Implicanti principali e coperture irridondanti Mappe di Karnaugh: procedura

Dettagli

Minimizzazione del costo di reti livelli a 2 livelli tramite mappe di Karnaugh. Mappe di Karnaugh. Sommario. Sommario. M. Favalli

Minimizzazione del costo di reti livelli a 2 livelli tramite mappe di Karnaugh. Mappe di Karnaugh. Sommario. Sommario. M. Favalli Sommario Minimiaione del costo di reti livelli a 2 livelli tramite mappe di Karnaugh Rappresentaione grafica di funioni M. Favalli Engineering Department in Ferrara 2 Mappe di Karnaugh 3 Copertura 4 Funioni

Dettagli

Maurizio Palesi. Maurizio Palesi 1

Maurizio Palesi. Maurizio Palesi 1 Mappe di Karnaugh Maurizio Palesi Maurizio Palesi 1 Obiettivi Trovare una espressione in forma SP o PS minima rispetto a certi criteri di costo Nella ottimizzazione delle espressioni SP (PS) a due livelli

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici Lezione 2 Reti Logiche: Sintesi Emiliano Casalicchio emiliano.casalicchio@uniroma2.it Argomenti della lezione q Reti combinatorie Sintesi, Mappe Karnaugh Esercizi 2 Sintesi di reti

Dettagli

Esercitazioni di Reti Logiche. Lezione 4

Esercitazioni di Reti Logiche. Lezione 4 Esercitazioni di Reti Logiche Lezione 4 Progettazione dei circuiti logici combinatori Zeynep KIZILTAN zkiziltan@deis.unibo.it Argomenti Procedura di analisi dei circuiti combinatori. Procedura di sintesi

Dettagli

Sintesi multilivello

Sintesi multilivello Sintesi multilivello PLA => in alcuni casi danno luogo ad un eccessiva occupazione d area (provare con adder a 4, 8, 16 bit) Logica multilivello => maggior numero di gradi libertà Minore occupazione d

Dettagli

Algebra di Boole. Tavole di verità. Fondamenti di Informatica Algebra di Boole. Si basa su tre operazioni logiche: AND (*) OR (+) NOT (!

Algebra di Boole. Tavole di verità. Fondamenti di Informatica Algebra di Boole. Si basa su tre operazioni logiche: AND (*) OR (+) NOT (! Fondamenti di Informatica Algebra di Boole Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a. 2-22 Algebra di Boole Si basa su tre operazioni logiche: AND (*) OR () NOT (!) Gli operandi

Dettagli

FUNZIONI BOOLEANE. Vero Falso

FUNZIONI BOOLEANE. Vero Falso FUNZIONI BOOLEANE Le funzioni booleane prendono il nome da Boole, un matematico che introdusse un formalismo che opera su variabili (dette variabili booleane o variabili logiche o asserzioni) che possono

Dettagli

I circuiti digitali: dalle funzioni logiche ai circuiti (le SOP)

I circuiti digitali: dalle funzioni logiche ai circuiti (le SOP) I circuiti digitali: dalle funzioni logiche ai circuiti (le SOP) Prof. Alberto Borghese Dipartimento di Informatica borghese@di.unimi.it Università degli Studi di Milano Riferimento al testo: Sezione C.3;

Dettagli

Appunti su Indipendenza Lineare di Vettori

Appunti su Indipendenza Lineare di Vettori Appunti su Indipendenza Lineare di Vettori Claudia Fassino a.a. Queste dispense, relative a una parte del corso di Matematica Computazionale (Laurea in Informatica), rappresentano solo un aiuto per lo

Dettagli

Sintesi di Reti Combinatorie

Sintesi di Reti Combinatorie Sintesi di Reti Combinatorie Ottimizzazione di Reti Combinatorie a due Livelli: Mariagiovanna Sami Corso di Reti Logiche B 08 Sintesi di reti combinatorie a due livelli Obiettivo della sintesi: riduzione

Dettagli

Minimizzazione di Reti Logiche Combinatorie Multi-livello

Minimizzazione di Reti Logiche Combinatorie Multi-livello Minimizzazione di Reti Logiche Combinatorie Multi-livello Maurizio Palesi Maurizio Palesi 1 Introduzione Obiettivo della sintesi logica: ottimizzazione delle cifre di merito area e prestazioni Prestazioni:

Dettagli

Algebra di Commutazione

Algebra di Commutazione Algebra di Commutazione Maurizio Palesi Maurizio Palesi 1 Algebra Booleana - Introduzione Per descrivere i dispositivi digitali è necessario avere: Un modello che permette di rappresentare insiemi di numeri

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole e Circuiti Logici Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2016/17 Algebra di Boole e Circuiti Logici L Algebra

Dettagli

Algebra di Boole: mappe di Karnaugh e funzioni NAND e NOR

Algebra di Boole: mappe di Karnaugh e funzioni NAND e NOR Corso di Calcolatori Elettronici I A.A. 2010-2011 Algebra di Boole: mappe di Karnaugh e funzioni NAND e NOR Lezione 7 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Funzioni Equivalenza

Dettagli

Esercitazioni di Reti Logiche

Esercitazioni di Reti Logiche Esercitazioni di Reti Logiche Sintesi di Reti Combinatorie & Complementi sulle Reti Combinatorie Zeynep KIZILTAN Dipartimento di Scienze dell Informazione Universita degli Studi di Bologna Anno Academico

Dettagli

Teorema di Thevenin generalizzato

Teorema di Thevenin generalizzato Teorema di Thevenin generalizzato Si considerino due reti elettriche lineari, A e B, aventi rispettivamente N A e N B nodi interni. Esse si interfacciano attraverso n (n 3) fili di collegamento, in cui

Dettagli

TEOREMA DEL RESTO E REGOLA DI RUFFINI

TEOREMA DEL RESTO E REGOLA DI RUFFINI TEOREMA DEL RESTO E REGOLA DI RUFFINI ALCUNI TEOREMI IMPORTANTI Prendiamo una divisione intera tra numeri: 6 : 3 = 2. Il resto di questa divisione è 0, e questo significa che moltiplicando il quoziente

Dettagli

Esercizi. 1. Algebra booleana

Esercizi. 1. Algebra booleana Esercizi 1. Algebra booleana Esercizio 1.1 Data le forma logica F = (z(xy ) +x+yz ) +x y Svolgere i seguenti punti: Applicare le regole dell algebra per semplificare la forma riducendo il numero dei prodotti

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algebra di Boole Stefano Cagnoni Algebra di Boole L algebra

Dettagli

A.A. 2003/2004 Esercizi di Reti Logiche A

A.A. 2003/2004 Esercizi di Reti Logiche A A.A. 2003/2004 Esercizi di Reti Logiche A A cura di F. Ferrandi, C. Silvano Ultimo aggiornamento, 11 novembre 2003 Questi appunti sono stati possibili anche per il lavoro fatto da alcuni studenti del corso

Dettagli

Algebra di Boole X Y Z V. Algebra di Boole

Algebra di Boole X Y Z V. Algebra di Boole L algebra dei calcolatori L algebra booleana è un particolare tipo di algebra in cui le variabili e le funzioni possono solo avere valori 0 e 1. Deriva il suo nome dal matematico inglese George Boole che

Dettagli

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara Sistemi lineari Lorenzo Pareschi Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara http://utenti.unife.it/lorenzo.pareschi/ lorenzo.pareschi@unife.it Lorenzo Pareschi (Univ. Ferrara)

Dettagli

Algebra di Boole. Modulo 2. Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica (EOLAB)

Algebra di Boole. Modulo 2. Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica (EOLAB) Algebra di Boole Modulo 2 Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica (EOLAB) Algebra di Boole L algebra di Boole o della commutazione è lo strumento

Dettagli

Un monomio è in forma normale se è il prodotto di un solo fattore numerico e di fattori letterali con basi diverse. Tutto quanto sarà detto di

Un monomio è in forma normale se è il prodotto di un solo fattore numerico e di fattori letterali con basi diverse. Tutto quanto sarà detto di DEFINIZIONE Espressione algebrica costituita dal prodotto tra una parte numerica (coefficiente) e una o più variabili e/o costanti (parte letterale). Variabili e costanti possono comparire elevate a potenza

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi Codice BCD Prima di passare alla rappresentazione dei numeri relativi in binario vediamo un tipo di codifica che ha una certa rilevanza in alcune applicazioni: il codice BCD (Binary Coded Decimal). È un

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Algebra di Boole Algebra di Boole I circuiti logici sono componenti hardware che manipolano informazione binaria. I circuiti di base sono detti PORTE LOGICHE (logical gate). Allo

Dettagli

Note sull utilizzazione di componenti logici di tipo memoria

Note sull utilizzazione di componenti logici di tipo memoria Architettura degli Elaboratori, a.a. 2005-06 Note sull utilizzazione di componenti logici di tipo memoria Queste note precisano e completano il contenuto nel Cap. III, sez. 7 delle Dispense, in particolare

Dettagli

Tecniche di Progettazione Digitale. Reti combinatorie: Le mappe di Karnaugh

Tecniche di Progettazione Digitale. Reti combinatorie: Le mappe di Karnaugh Tecniche di Progettazione Digitale Reti cominatorie: Le mappe di Karnaugh Valentino Lierali Mappe di Karnaugh (1) Una unzione ooleana di n it ha come dominio l insieme costituito da tutte le possiili n-ple

Dettagli

Esercizi svolti. risolvere, se possibile, l equazione xa + B = O, essendo x un incognita reale

Esercizi svolti. risolvere, se possibile, l equazione xa + B = O, essendo x un incognita reale Esercizi svolti 1. Matrici e operazioni fra matrici 1.1 Date le matrici 1 2 1 6 A = B = 5 2 9 15 6 risolvere, se possibile, l equazione xa + B = O, essendo x un incognita reale Osservazione iniziale: qualunque

Dettagli

Ancora sui criteri di divisibilità di Marco Bono

Ancora sui criteri di divisibilità di Marco Bono Ancora sui criteri di divisibilità di Talvolta può essere utile conoscere i divisori di un numero senza effettuare le divisioni, anche se la diffusione delle calcolatrici elettroniche, sotto varie forme,

Dettagli

Reti Logiche A Esame del 24 febbraio 2006

Reti Logiche A Esame del 24 febbraio 2006 Politecnico di Milano ipartimento di Elettronica e Informazione prof.ssa Anna Antola prof. Fabrizio Ferrandi prof.ssa Cristiana Bolchini Esercizio n. a) ata la seguente tabella di copertura: Reti Logiche

Dettagli

COMPITO A Esercizio 1 (13 punti) Dato il seguente automa:

COMPITO A Esercizio 1 (13 punti) Dato il seguente automa: COMPITO A Esercizio 1 (13 punti) Dato il seguente automa: 1/0 q8 1/0 q3 q1 1/0 q4 1/0 q7 1/1 q2 1/1 q6 1/1 1/1 q5 - minimizzare l automa usando la tabella triangolare - disegnare l automa minimo - progettare

Dettagli

LEZIONE 8. k e w = wx ı + w y j + w z. k di R 3 definiamo prodotto scalare di v e w il numero

LEZIONE 8. k e w = wx ı + w y j + w z. k di R 3 definiamo prodotto scalare di v e w il numero LEZINE 8 8.1. Prodotto scalare. Dati i vettori geometrici v = v x ı + v y j + v z k e w = wx ı + j + k di R 3 definiamo prodotto scalare di v e w il numero v, w = ( v x v y v z ) w x = v x + v y + v z.

Dettagli

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I)

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I) Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I) Luigi De Giovanni Giacomo Zambelli 1 Problemi di programmazione lineare Un problema

Dettagli

Algebra di Boole Algebra di Boole

Algebra di Boole Algebra di Boole 1 L algebra dei calcolatori L algebra booleana è un particolare tipo di algebra in cui le variabili e le funzioni possono solo avere valori 0 e 1. Deriva il suo nome dal matematico inglese George Boole

Dettagli

Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754

Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754 Addizionatori: metodo Carry-Lookahead Costruzione di circuiti combinatori Standard IEEE754 Addizionatori Il circuito combinatorio che implementa l addizionatore a n bit si basa su 1-bit adder collegati

Dettagli

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria.

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria. Capitolo 2 Campi 2.1 Introduzione Studiamo ora i campi. Essi sono una generalizzazione dell insieme R dei numeri reali con le operazioni di addizione e di moltiplicazione. Nel secondo paragrafo ricordiamo

Dettagli

Esercitazioni di Reti Logiche

Esercitazioni di Reti Logiche Esercitazioni di Reti Logiche Sintesi di Reti Sequenziali Zeynep KIZILTAN Dipartimento di Scienze dell Informazione Universita degli Studi di Bologna Anno Academico 2007/2008 Sintesi dei circuiti sequenziali

Dettagli

Copyright Esselibri S.p.A.

Copyright Esselibri S.p.A. ..3. Prodotti notevoli Per quanto visto in precedenza, in generale per moltiplicare un polinomio di m termini per uno di n termini devono effettuarsi m n moltiplicazioni, così per esempio per moltiplicare

Dettagli

AUTOMA A STATI FINITI

AUTOMA A STATI FINITI Gli Automi Un Automa è un dispositivo, o un suo modello in forma di macchina sequenziale, creato per eseguire un particolare compito, che può trovarsi in diverse configurazioni più o meno complesse caratterizzate

Dettagli

Programmazione dinamica

Programmazione dinamica Programmazione dinamica Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati Programmazione

Dettagli

CORSO ZERO DI MATEMATICA

CORSO ZERO DI MATEMATICA UNIVERSITÀ DEGLI STUDI DI PALERMO FACOLTÀ DI ARCHITETTURA CORSO ZERO DI MATEMATICA RADICALI Dr. Erasmo Modica erasmo@galois.it LE RADICI Abbiamo visto che l insieme dei numeri reali è costituito da tutti

Dettagli

Corso E Docente: Siniscalchi. Algebra di Boole

Corso E Docente: Siniscalchi. Algebra di Boole Corso E Docente: Siniscalchi Algebra di Boole I circuiti logici sono componenti hardware che manipolano informazione binaria. I circuiti di base sono detti PORTE LOGICHE (logical gate). Allo scopo di descrivere

Dettagli

12BHD - Informatica (I anno Ingegneria) - esercizi sulle funzioni logiche - v. 1.0

12BHD - Informatica (I anno Ingegneria) - esercizi sulle funzioni logiche - v. 1.0 Esercizio 1 Semplificare la seguente espressione ooleana: a (b + c) + b (a + c) pplicando le proprietà dell algebra ooleana: [ a + b c ] a b + a c + a b + b c = a (b + b) + a c + b c = a 1 + a c + b c

Dettagli

Si consideri il sistema a coefficienti reali di m equazioni lineari in n incognite

Si consideri il sistema a coefficienti reali di m equazioni lineari in n incognite 3 Sistemi lineari 3 Generalità Si consideri il sistema a coefficienti reali di m equazioni lineari in n incognite ovvero, in forma matriciale, a x + a 2 x 2 + + a n x n = b a 2 x + a 22 x 2 + + a 2n x

Dettagli

Corso di elettrotecnica Materiale didattico: i grafi

Corso di elettrotecnica Materiale didattico: i grafi Corso di elettrotecnica Materiale didattico: i grafi A. Laudani 12 ottobre 2005 I grafi costituiscono uno strumento matematico che permette di descrivere e schematizzare una grande varietà di problemi

Dettagli

L ALGORITMO DEL SIMPLESSO REVISIONATO

L ALGORITMO DEL SIMPLESSO REVISIONATO L ALGORITMO DEL SIMPLESSO REVISIONATO L'algoritmo del simplesso revisionato costituisce una diversa implementazione dell algoritmo standard tesa a ridurre, sotto certe condizioni, il tempo di calcolo e

Dettagli

Equazioni lineari con due o più incognite

Equazioni lineari con due o più incognite Equazioni lineari con due o più incognite Siano date le uguaglianze: k 0; x + y = 6; 3a + b c = 8. La prima ha un termine incognito rappresentato dal simbolo letterale k; la seconda ha due termini incogniti

Dettagli

Sintesi di Reti Sequenziali Sincrone

Sintesi di Reti Sequenziali Sincrone Sintesi di Reti Sequenziali Sincrone Maurizio Palesi Maurizio Palesi 1 Macchina Sequenziale Una macchina sequenziale è definita dalla quintupla (I,U,S,δ,λ ) dove: I è l insieme finito dei simboli d ingresso

Dettagli

Algebra di Boole: mappe di Karnaugh

Algebra di Boole: mappe di Karnaugh Corso di Calcolatori Elettronici I A.A. 2012-2013 Algebra di Boole: mappe di Karnaugh Pro. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie

Dettagli

I circuiti digitali: dalle funzioni logiche ai circuiti

I circuiti digitali: dalle funzioni logiche ai circuiti rchitettura dei calcolatori e delle Reti Lezione 4 I circuiti digitali: dalle funzioni logiche ai circuiti Proff.. orghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi

Dettagli

Sistemi Combinatori & Mappe di Karnaugh

Sistemi Combinatori & Mappe di Karnaugh Sistemi Combinatori & Mappe di Karnaugh AB E=0 F=0 E=1 F=0 00 01 11 10 AB 00 01 11 10 00 1 0 0 0 00 0 0 0 0 01 0 0 0 0 01 0 0 0 0 11 0 0 1 0 11 0 0 1 0 10 0 0 0 1 10 0 0 0 1 AB 00 01 11 10 AB 00 01 11

Dettagli

1 Fattorizzazione di polinomi

1 Fattorizzazione di polinomi 1 Fattorizzazione di polinomi Polinomio: un polinomio di grado n nella variabile x, è dato da p(x) = a n x n + a n 1 x n 1 + + a 1 x + a 0 con a n 0, a 0 è detto termine noto, a k è detto coefficiente

Dettagli

Indice. Prefazione. sommario.pdf 1 05/12/

Indice. Prefazione. sommario.pdf 1 05/12/ Prefazione xi 1 Introduzione 1 1.1 Evoluzione della progettazione dei sistemi digitali 1 1.2 Flusso di progettazione dei sistemi digitali 2 1.3 Obiettivi del libro 6 1.4 Struttura ragionata del libro 7

Dettagli

Le variabili logiche possono essere combinate per mezzo di operatori detti connettivi logici. I principali sono:

Le variabili logiche possono essere combinate per mezzo di operatori detti connettivi logici. I principali sono: Variabili logiche Una variabile logica (o booleana) è una variable che può assumere solo uno di due valori: Connettivi logici True (vero identificato con 1) False (falso identificato con 0) Le variabili

Dettagli

Insiemistica. Capitolo 1. Prerequisiti. Obiettivi. Gli insiemi numerici di base Divisibilità e fattorizzazione nei numeri interi

Insiemistica. Capitolo 1. Prerequisiti. Obiettivi. Gli insiemi numerici di base Divisibilità e fattorizzazione nei numeri interi Capitolo 1 Insiemistica Prerequisiti Gli insiemi numerici di base Divisibilità e fattorizzazione nei numeri interi Obiettivi Sapere utilizzare opportunamente le diverse rappresentazioni insiemistiche Sapere

Dettagli

01 - Elementi di Teoria degli Insiemi

01 - Elementi di Teoria degli Insiemi Università degli Studi di Palermo Scuola Politecnica Dipartimento di Scienze Economiche, Aziendali e Statistiche Appunti del corso di Matematica 01 - Elementi di Teoria degli Insiemi Anno Accademico 2015/2016

Dettagli

associate ai corrispondenti valori assunti dall uscita.

associate ai corrispondenti valori assunti dall uscita. 1. Definizione di variabile logica. Una Variabile Logica è una variabile che può assumere solo due valori: 1 True (vero, identificato con 1) False (falso, identificato con 0) Le variabili logiche si prestano

Dettagli

Possibile applicazione

Possibile applicazione p. 1/4 Assegnamento Siano dati due insiemi A e B entrambi di cardinalità n. Ad ogni coppia (a i,b j ) A B è associato un valore d ij 0 che misura la "incompatibilità" tra a i e b j, anche interpretabile

Dettagli

Corso di Reti Logiche

Corso di Reti Logiche Corso di Reti Logiche Minimizzazione degli Stati nelle Macchine Sequenziali Dipartimento di Informatica e Sistemistica Università Degli Studi di Napoli Federico II 1 Le Macchine o Automi E necessario individuare

Dettagli

Appendice A: un esempio di scelta del mix ottimo di produzione in presenza di vincoli 19

Appendice A: un esempio di scelta del mix ottimo di produzione in presenza di vincoli 19 14 18-12-07 19:04 Pagina 411 Le decisioni di breve termine fra alternative diverse 411 i minori costi differenziali, almeno nella misura in cui la dimensione di costo è la più importante. Sebbene i costi

Dettagli

2.6 Calcolo degli equilibri di Nash

2.6 Calcolo degli equilibri di Nash 92 2 Giochi non Cooperativi Per queste estensioni di giochi non finiti si possono provare risultati analoghi a quelli visti per i giochi finiti. Rimandiamo alla bibliografia per uno studio più approfondito

Dettagli

Esercizi Logica Digitale,Circuiti e Bus

Esercizi Logica Digitale,Circuiti e Bus Esercizi Logica Digitale,Circuiti e Bus Alessandro A. Nacci alessandro.nacci@polimi.it ACSO 214/214 1 2 Esercizio 1 Si consideri la funzione booleana di 3 variabili G(a,b, c) espressa dall equazione seguente:

Dettagli

Università degli Studi di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica ALGEBRA BOOLEANA

Università degli Studi di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica ALGEBRA BOOLEANA Università degli Studi di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica ALGEBRA BOOLEANA Introduzione George Boole (1815-1864) nel 1854 elaborò una algebra basata su predicati logici. Valori

Dettagli

Dispositivi Logici Programmabili

Dispositivi Logici Programmabili Dispositivi Logici Programmabili Introduzione ROM (Read Only Memory) PLA (Programmable Logic Array) PAL (Programmable Array Logic) PLA e PAL avanzate Logiche programmabili Sono dispositivi hardware che

Dettagli

Reti logiche: introduzione

Reti logiche: introduzione Corso di Calcolatori Elettronici I Reti logiche: introduzione ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica Circuiti e porte logiche Esempio di rete di commutazione: Circuiti e porte

Dettagli

Reti Combinatorie: sintesi

Reti Combinatorie: sintesi Reti Combinatorie: sintesi Sintesi di reti combinatorie Una rete combinatoria realizza una funzione di commutazione Data una tabella di verità è possibile ricavare più espressioni equivalenti che la rappresentano.

Dettagli

APPUNTI DI MATEMATICA ALGEBRA \ CALCOLO LETTERALE \ MONOMI (1)

APPUNTI DI MATEMATICA ALGEBRA \ CALCOLO LETTERALE \ MONOMI (1) LGEBR \ CLCOLO LETTERLE \ MONOMI (1) Un monomio è un prodotto di numeri e lettere; gli (eventuali) esponenti delle lettere sono numeri naturali (0 incluso). Ogni numero (reale) può essere considerato come

Dettagli

Algebra di Boole. Andrea Passerini Informatica. Algebra di Boole

Algebra di Boole. Andrea Passerini Informatica. Algebra di Boole Andrea Passerini passerini@disi.unitn.it Informatica Variabili logiche Una variabile logica (o booleana) è una variable che può assumere solo uno di due valori: True (vero identificato con 1) False (falso

Dettagli

Corso di Analisi Numerica

Corso di Analisi Numerica Corso di Laurea in Ingegneria Informatica Corso di 3 - PROBLEMI DI INTERPOLAZIONE Lucio Demeio Dipartimento di Scienze Matematiche 1 Interpolazione: Polinomio di Lagrange 2 3 Introduzione Problemi di interpolazione

Dettagli

Introduzione all algebra

Introduzione all algebra Introduzione all algebra E. Modica http://dida.orizzontescuola.it Didattica OrizzonteScuola Espressioni letterali come modelli nei problemi Espressioni come modello di calcolo Esempio di decodifica Premessa

Dettagli

Massimi e minimi vincolati

Massimi e minimi vincolati Massimi e minimi vincolati Vedremo tra breve un metodo per studiare il problema di trovare il minimo e il massimo di una funzione su di un sottoinsieme dello spazio ambiente che non sia un aperto. Abbiamo

Dettagli

Introduzione al Metodo agli Elementi Finiti (FEM) (x, y) Γ Tale formulazione viene detta Formulazione forte del problema.

Introduzione al Metodo agli Elementi Finiti (FEM) (x, y) Γ Tale formulazione viene detta Formulazione forte del problema. Introduzione al Metodo agli Elementi Finiti (FEM) Consideriamo come problema test l equazione di Poisson 2 u x 2 + 2 u = f(x, y) u = f y2 definita su un dominio Ω R 2 avente come frontiera la curva Γ,

Dettagli

I.4 Rappresentazione dell informazione

I.4 Rappresentazione dell informazione I.4 Rappresentazione dell informazione Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 13, 2015 Argomenti Introduzione 1 Introduzione 2 3 L elaboratore Introduzione

Dettagli

misura. Adesso, ad un arbitrario punto P dello spazio associamo una terna di numeri reali x

misura. Adesso, ad un arbitrario punto P dello spazio associamo una terna di numeri reali x 4. Geometria di R 3. Questo paragrafo è molto simile al paragrafo : tratta infatti delle proprietà geometriche elementari dello spazio R 3. Per assegnare delle coordinate nello spazio, fissiamo innanzitutto

Dettagli