Analisi e sintesi di circuiti combinatori
Reti combinatorie
Funzioni Booleane
Tabelle di verità
Tabelle di Verità (2)
Espressioni Booleane
Unicità FB
Schema circuitale
Schema Circuitale (2)
Porte logiche elementari
Porte logiche elementari (2)
Livello fisico
Porte a più ingressi
Applicazione dei teoremi dell’algebra booleana
Universalità delle porte NAND equivale a un NOT Equivale a un AND Equivale a un OR
Realizzazione di un circuito con un solo tipo di porta, esempio:
Uso: ottimizzare utilizzo integrati B Y
Equivalenza fra le varie forme di rappresentazione del funzionamento di un circuito combinatorio
Dal circuito all’espressione booleana
Dalla funzione booleana alla espressione booleana Mintermini, maxtermini e forme canoniche Dalle funzioni booleane alle forme canoniche
Forme canoniche (1) Consideriamo un circuito combinatorio con n variabili di ingresso, X: {X1..Xn}. Denotiamo ogni occorrenza di una singola variabile, sia in forma semplice Xi che complementata , col nome di letterale. Implicante di una funzione f(X1..Xn) è un prodotto P(X’) X’X di letterali tale che se P=1 f=1 Mintermine è un implicante in cui appaiono tutte le variabili di ingresso, cioè X’=X I mintermini possono essere posti in corrispondenza con punti nello spazio booleano, ad es: Si definisce maxtermine di una funzione f(X1..Xn) un punto Bx nello spazio booleano Bn tale per cui f(Bx )=0 Mintermini e maxtermini sono identificabili tramite la funzione booleana
Esempio Mintermini: Maxtermini:
Rappresentazione nello spazio B3 della funzione a+b+c maxtermine
Forme canoniche (2) On-set è l’insieme dei mintermini m1,m2..mk di una funzione booleana L’espressione booleana f(X1..Xn) = m1+m2+..mk prende il nome di forma canonica disgiuntiva Un maxtermine è un punto nello spazio in cui la f(X1..Xn)=0. Sia M1..Mh l’insieme dei maxtermini, o off-set Quindi, f(X1..Xn)=M1+M2+..Mh f(X1..Xn)=M1M2.. Mh La forma precedente si dice forma canonica congiuntiva
Esempio Mintermini: Maxtermini:
Procedura per ottenere fcd da TV Ad ogni riga della tabella di verità, costituita da una sequenza di n valori booleani bn-1..b0, in cui f(X1..Xn)=1, associamo una sequenza di letterali nel seguente modo: se bi=0, facciamo corrispondere a bi il letterale Xi, se bi=1 facciamo corrispondere a bi il letterale Xi (es 001 x2x1x0) Le stringhe di letterali così ottenute corrispondono all’ On-set di f, cioè l’insieme dei mintermini m1..mk La forma canonica disgiuntiva sarà
Procedura per ottenere fcc da TV Ad ogni riga della tabella di verità, costituita da una sequenza di n valori booleani bn-1..b0, in cui f(X1..Xn)=0, associamo una sequenza di letterali nel seguente modo: se bi=0, facciamo corrispondere a bi il letterale Xi, se bi=1 facciamo corrispondere a bi il letterale Xi e costruiamo i maxtermini Mi come somma logica di questi letterali (es 010 x2+x1+x0) La forma canonica congiuntiva sarà:
Esempio
Dalla espressione booleana alla TV (1) La forma normale disgiuntiva FND o SOP (Sum of Products) é una generalizzazione della FCD. In una SOP i prodotti non sono necessariamente mintermini.
Dalla espressione booleana alla TV (2) Data una espressione booleana, ricavarne la forma normale disgiuntiva Ad ogni termine Ti della FCD, associare una stringa binaria Ri= bn-1..b0 nel seguente modo: se il letterale é negato porre bi=0 , se il letterale é diretto porre bi =1, se non compare in Ti, porre bi=X , dove col simbolo X (o d, o -) indichiamo la condizione di indifferenza "dont'care" ossia indifferentemente uno 0 o un 1.
Dalla espressione booleana alla TV (3) A questo punto costruiamo la parte sinistra della tabella di verità, TV, e nella parte destra, poniamo un 1 in corrispondenza a tutte le righe uguali o implicate dalle stringhe Ri. Nell'esempio, la stringa R1 contiene le stringhe 110 e 010, dato che può essere sia 0 che 1 (dont'care). R1 R2
Dalla EB allo Schema Circuitale Per ricavare lo schema circuitale SC di una rete combinatoria da una EB, conviene ancora partire dalla forma canonica congiuntiva o disgiuntiva, oppure una sua generalizzazione FNC o FND. Tuttavia non è strettamente necessario. Assegnata dunque una EB, costruiamo una rappresentazione gerarchica degli operatori booleani, partendo dai più esterni. Ad esempio si può rappresentare: AND(AND(X2,X1), OR(X3,AND(NOT(X0),X2)) Lo schema ad albero equivalente è:
Dalla EB allo Schema Circuitale (2) A questo punto, il passaggio allo schema circuitale é immediato: i terminali dell'albero sono le variabili booleane di ingresso i nodi vengono associati alle corrispondenti porte logiche elementari gli archi vengono associati alle linee interne della rete.
Ottimizzazione di reti combinatorie
Sintesi di reti combinatore La sintesi di una rete combinatoria implica il passaggio dalla specifica funzionale del circuito allo schema circuitale. Il procedimento di sintesi può essere sviluppato in tre fasi: 1 Dalla specifica funzionale si ricava la funzione booleana rappresentata in forma tabulare (TV) 2 Dalla TV si ricava una espressione minima, o EB minima della TT 3 Dalla EB minima si ricava lo schema circuitale Il passo 3 é stato già descritto
Minimizzazione EB Il problema di ricavare una espressione minima deriva dalla necessità di ridurre il numero di porte logiche necessarie per realizzare una rete combinatoria. Con l'avvento dei circuiti integrati su scala media, alta e molto alta (MSI, LSI e VLSI) questa esigenza é meno sentita, soprattutto in termini di costi. Il costo di una porta logica aggiunta é pressoché nullo. Tuttavia esiste un problema di area occupata. Ridurre il numero di porte attraversate da un segnale logico ha una sua rilevanza soprattutto in termini di specifiche temporali. Il tempo di risposta di una rete combinatoria dipende dal numero di porte logiche attraversate: ridurre tale numero può avere effetti importanti in termini di prestazioni.
Minimizzazione basata sulle mappe di Karnaugh Si basano sulla applicazione ripetuta della seguente semplificazione: dove a è una sequenza di letterali Queste mappe ordinano i punti di uno spazio booleano Bn in modo che i punti a distanza unitaria (cioè le cui coordinate differiscono per un solo bit) siano adiacenti anche sul piano della mappa
Struttura delle MdK
MdK della funzione OR
Copertura di una FB Un implicante corrisponde ad un sottocubo di soli “1” della MdK, cioè un insieme di 2k configurazioni di ingresso a distanza unitaria Un implicante si dice primo se non esite un imlicante di dimensioni maggiori che lo contenga interamente Un implicante si dice essenziale se contiene almeno un 1 che non sia incluso in alcun altro implicante Una copertura minima di una funzione booleana è l’ insieme di implicanti primi minimo che copra tutti gli 1 (mintermini) della fb
Esempio (a)
Esempio (2)