43388787 Metodo de Quine Mccluskey

  • Upload
    pijipi

  • View
    219

  • Download
    2

Embed Size (px)

Citation preview

Universidad Jos Carlos Maritegui

Sistemas Digitales

MTODO DE QUINE McCLUSKEY IntroduccinEn matemticas las expresiones booleanas se simplifican por numerosas razones: - Una expresin ms simple es ms fcil de entender y tiene menos posibilidades de error a la hora de su interpretacin. - Una expresin simplificada suelen ser ms eficiente y efectiva cuando se implementan en la prctica, como en el caso de circuitos elctricos o en determinados algoritmos. El mtodo de Quine-McCluskey es particularmente til cuando se tienen funciones con un gran nmero de variables, no es el caso del mtodo de Karnaugh, que se hace impracticable con ms de cinco variables. En nuestro caso, como el mximo nmero de variables ser cuatro podremos utili zar conjuntamente ambos mtodos. Una expresin booleana se compone de variables y trminos. Para este mtodo las variables slo podrn tener un valor numrico de cero (el correspondiente al valor de verdad false) o uno (el correspondiente al valor de verdad true) y se designarn mediante una letra. Como notacin se designar x si la variable contiene el valor uno, x en caso de que contenga el valor cero. Por otra parte, las variables se relacionarn entre s nicamente mediante operaciones lgicas and para formar trminos y mediante or para relacionarse con otros trminos constituyendo una suma de productos. sta debe de ser cannica, es decir: - Cada variable se usa una vez en cada trmino. A dichos trminos se les llama trminos cannicos. P.ejemplo f(x,y,j) = xy z +x yz

xy z se representa con 011, donde x = 0, y = 1, z = 1 x yz se representa con 101, donde x = 1, y = 0, z = 1

1

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

Metodo de Quine-McCluskeyIl metodo di Quine-McCluskey (o metodo degli implicanti primi) un algoritmo sviluppato da Willard Van Orman Quine ed Edward McCluskey che viene utilizzato nelle reti combinatorie a due livelli di logica per la minimizzazione di una funzione booleana di n variabili. Il metodo funzionalmente identico alla mappa di Karnaugh, ma la sua forma tabellare lo rende pi efficiente per essere realizzato al computer; inoltre fornisce anche un modo deterministico per testare la minimizzazione di una funzione booleana. Il metodo consiste in due passi: 1. Identificare tutti gli implicanti primi della funzione. 2. Riportare gli implicanti primi trovati in una tabella per ricavare gli implicanti primi essenziali della funzione.

ComplessitSebbene sia pi pratico rispetto alle mappe di Karnaugh per funzioni con pi di 4 variabili, il metodo di Quine-McCluskey ha comunque un intervallo limitato di utilizzo, poich il problema che l'algoritmo risolve (la soddisfacibilit booleana) NP-difficile: il suo runtime cresce esponenzialmente all'aumentare del numero degli ingressi. Si pu dimostrare che per una funzione di n variabili il limite superiore sul numero di implicanti primi 3n/n. Se n = 32 ci possono essere pi di 6.5 * 1015 implicanti primi. Pertanto, le funzioni con un grande numero di variabili booleane deve essere minimizzato con metodi euristici, come ad esempio il minimizzatore logico Espresso.

MetodoIl metodo consiste in due fasi principali: la ricerca degli implicanti primi e la successiva ricerca della copertura ottimale. Consideriamo la minimizzazione in forma di somma di prodotti (detta anche SOP, dall'acronimo inglese sum of products), ma il tutto facilmente estendibile alla forma di prodotto di somme (o POS, product of sums). Nella prima fase si applica sistematicamente la semplificazione del tipo:

cio la propriet distributiva del prodotto rispetto alla somma, dove P indica un qualsiasi termine prodotto (mintermine). Ovviamente il metodo estendibile anche a funzioni non completamente specificate e anche a circuiti multiuscita. La prima fase consiste dei passi: 1. tabellare tutti i mintermini della funzione in forma binaria, in ordine crescente come per la tabella della verit; 2. confrontare tra loro tutti i termini esaustivamente: si semplificano i termini che differiscono per un solo bit (distanza di Hamming unitaria) e si marcano, in quanto essi hanno contribuito alla creazione di un implicante;

2

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

3. creare quindi una nuova tabella con tutti i termini prodotto marcati che vengono fuori dalla prima tabella e si ripete il passo 2); 4. il processo termina quando non si possono pi fare riduzioni. Al punto della costruzione della tabella facile vedere che non dobbiamo necessariamente confrontare tutti i termini tra loro, ma effettivamente solo quei termini adiacenti che differiscono per un solo bit 1. Quindi raggruppiamo nella tabella i termini che hanno un numero uguale di 1 nel mintermine.

EsempioSia data la seguente funzione:

Passo 1: tabella degli implicanti primiabcd 0001 1001 1011 1100 1101 1110 1111 1 9 11 12 13 14 15

Pi... ... ... ... ... ... ...

Passo 2): confrontoVediamo dalla tabella che il mintermine 1 va confrontato solo con il mintermine 9, che ha due 1 nel suo prodotto e non con gli altri che differiscono di due bit. Confrontando il mintermine 1 con quello 9 vediamo che differiscono solo per il primo bit: la prima riga della successiva tabella deve quindi essere -001 semplicando per l'appunto il primo bit. Il confronto di 1 con 12 non compatibile perch i due mintermini non differiscono per un solo bit. Viceversa 9 si confronta con 11 e 13 ma non con 14, e 12 si confronta con 13 e 14 ma non con 11. Infine 11, 13, 14 si confrontano con 15. Il risultato finale tabellato nella successiva tabella. abcd 001 10 1 1 11 1 01 11 0

Pi1,9 ... 9,11 ... 9,13 ... 11,15 ... 12,13 ... 12,14 ...Wilber Araujo Quispe

110

3

Universidad Jos Carlos Maritegui

Sistemas Digitales

11 111

1

13,15 ... 14,15 ...

Passo 2): ancora riduzioneOvviamente dobbiamo nuovamente ridurre finch possible. In questo caso possiamo solo confrontare 9,11 con 13,15 che differiscono per il secondo bit e 12,13 con 14,15 che differiscono solo per il terzo bit: abcd 1 11 1

Pi9,11,13,15 ... 12,13,14,15 ...

Passo 3): selezione implicanti primiA questo punto non sono possibili altre riduzioni. Gli implicanti primi sono:

P1(9,11,13,15) = ad P2(12,13,14,15) = ab

CoperturaLa seconda fase riguarda la scelta ottimale degli implicanti. Per fare questo costruiamo una tabella detta tabella di copertura che consiste in una matrice in cui gli indici di riga rappresentano gli implicanti primi identificati, mentre gli indici di colonna rappresentano tutti i mintermini P i della funzione. Gli elementi della tabella di copertura sono caselle segnate con 1 se l'implicante P i copre il mintermine j-esimo, altrimenti sono 0. In alternativa si usa semplicemente una "x" per identificare solo gli uno in tabella.1 9 11 12 13 14 15 ------------------------------P0 | x x | P1 | x x x x | P2 | x x x x| -------------------------------

Esempio

ABCD m0 0 0 0 0 m1 0 0 0 1 m2 0 0 1 0 m3 0 0 1 1

f 0 0 0 0 Wilber Araujo Quispe

4

Universidad Jos Carlos Mariteguim4 0 1 0 0 m5 0 1 0 1 m6 0 1 1 0 m7 0 1 1 1 m8 1 0 0 0 m9 1 0 0 1 m10 1 0 1 0 m11 1 0 1 1 m12 1 1 0 0 m13 1 1 0 1 m14 1 1 1 0 m15 1 1 1 1 1 0 0 0 1 1 1 1 0 1

Sistemas Digitales

Dalla tabella si pu ricavare la forma canonica della funzione sotto forma di somma di prodotti (disgiuntiva) semplicemente sommando i mintermini con uscita "1" (ma tralasciando quelli con uscita don't care "-"):

fA,B,C,D = A'BC'D' + AB'C'D' + AB'CD' + AB'CD + ABC'D' + ABCDLa funzione, ovviamente, non in forma minima. Quindi, per minimizzarla, si riportano su una tabella tutti i mintermini con uscita "1" (comprendendo anche quelli con il don't care come uscita), ordinandoli in classi a seconda del numero di "1" presenti in ciascun mintermine:Numero di "1" Mintermine Rappresentazione binaria -------------------------------------------1 m4 0100 m8 1000 -------------------------------------------2 m9 1001 m10 1010 m12 1100 -------------------------------------------3 m11 1011 m14 1110 -------------------------------------------4 m15 1111

A questo punto, si pu iniziare a combinare i mintermini tra di loro. Se due mintermini, appartenenti a classi diverse, hanno una distanza di Hamming pari a 1 (ossia differiscono per una sola variabile), allora possono essere uniti, inserendo nella variabile non in comune un don't care. I mintermini che non possono essere combinati tra di loro sono indicati nell'esempio con un asterisco ("*"). Una volta esauriti tutti gli implicanti del 4 ordine, si passa all'eventuale semplificazione di quelli del 3 ordine, dove in questo caso vanno uniti tra loro i mintermini con distanza di Hamming pari a 2. Alla fine si perviene alla seguente tabella:Implicanti del 4 ordine | Implicanti del 3 ordine | Implicanti del 2 ordine ------------------------------- |--------------------------|------------------------Numero di "1" Mintermine | | ------------------------------- |--------------------------|------------------------1 m4 0100 | m(4,12) -100* | m(8,9,10,11) 10 --* m8 1000 | m(8,9) 100 | m(8,10,12,14) 1--0* ------------------------------- | m(8,10) 10-0 | -------------------------

5

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui2 m9 1001 | m(8,12) 1 -00 | m(10,11,14,15) 1 -1-* m10 1010 |-------------------------- | m12 1100 | m(9,11) 10-1 | ------------------------------- | m(10,11) 101| 3 m11 1011 | m(10,14) 1 -10 | m14 1110 | m(12,14) 11-0 | ------------------------------- |--------------------------| 4 m1 5 1111 | m(11,15) 1-11 | | m(14,15) 111|

Sistemas Digitales

Passo 2: tabella degli implicanti primiUna volta terminata la ricerca degli implicanti primi, questi vengono riportati in una tabella apposita, scrivendo sulle righe gli implicanti e sulle colonne i mintermini.

4 8 10 11 12 15

m(4,12)*

X

X

-100

m(8,9,10,11)

X X X

10--

m(8,10,12,14)

X X

X

1--0

m(10,11,14,15)*

X X

X 1-1-

Per poter procedere alla scelta delle coperture si applicano i seguenti criteri:y

Dominanza di riga: La riga i domina la riga j se l'implicante Pi copre tutti i mintermini che copre l'implicante Pj pi almeno uno. Dominanza di colonna: La colonna i domina la colonna j se il mintermine mj coperto dagli stessi implicanti da cui coperto mi pi almeno uno. Scelta dell'implicante essenziale: Un implicante detto essenziale se una marcatura presente in una colonna coperta in una sola riga. Nel qual caso si aggiunge l'implicante all'insieme delle coperture e si elimina la riga e tutte le colonne in cui presente una marcatura dell'implicante.

y

y

In questo caso, il secondo implicante primo pu essere coperto dal terzo e dal quarto, mentre il terzo implicante primo pu essere coperto dal secondo e dal primo, quindi entrambi non sono essenziali. In alcuni casi, "si presentano situazioni di mappe cicliche in cui non sono presenti condizioni di dominanza n di essenzialit, per cui vanno utilizzate altre procedure per la semplificazione. Un modo sistematico ed efficiente rappresentato dal metodo di Petrick. In quest'esempio, gli implicanti primi essenziali

6

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

non coinvologono tutti i mintermini, quindi si possono combinare gli implicanti essenziali con i due non essenziali, ottenendo le seguenti due equazioni:

Entrambe le equazioni ricavate sono funzionalmente equivalenti all'equazione originaria:

Algoritmo de Quine-McCluskeyEl algoritmo de Quine-McCluskey del (o el el mtodo de los implicants primeros ) es un mtodo utiliz para la minimizacin de las funciones boleanas que fue desarrollada por W. Es funcionalmente idntica al Karnaugh que traza, pero la forma tabular hace ms eficiente para el uso en algoritmos de la computadora, y tambin da una manera determinista de comprobar que la forma mnima de una funcin boleana se ha alcanzado. Se refiere a veces como el mtodo de la tabulacin. El mtodo implica dos pasos: Encontrar todos los implicants de la prima de la funcin. Utilizar esos implicants primeros en una carta implicant de la prima del para encontrar los implicants primeros esenciales de la funcin, as como otros implicants primeros que sean necesarios cubrir la funcin.

ComplejidadAunque ms sea prctico que Karnaugh el trazado al ocuparse de ms de cuatro variables, el algoritmo de Quine-McCluskey tambin tiene una gama limitada de uso puesto que el problema que soluciona es el NP-duro: el tiempo de pasada del algoritmo de Quine-McCluskey crece el exponencial con el tamao de la entrada. Puede ser demostrado que para una funcin de las variables del n el lmite superior en el nmero de implicants primeros es 3 el n del n /. Si el n = 32 all puede estar sobre 6.5 * 1015, implicants primeros. Las funciones con una gran cantidad de variables tienen que ser reducidas al mnimo con mtodos heursticos potencialmente no ptimo, cuyo el minimizer heurstico de la lgica del caf express es el estndar de hecho del mundo.

EjemploPaso 1: encontrar implicants primerosReduccin al mnimo de una funcin arbitraria:

7

Wilber Araujo Quispe

Universidad Jos Carlos Mariteguif (A, B, C, D) = \ suma m (4.14) \,

Sistemas Digitales

A B C D f m0 0 0 0 0 0 m1 0 0 0 1 0 m2 0 0 1 0 0 m3 0 0 1 1 0 m4 0 1 0 0 1 m5 0 1 0 1 0 m6 0 1 1 0 0 m7 0 1 1 1 0 m8 1 0 0 0 1 m9 1 0 0 1 x m10 1 0 1 0 1 m11 1 0 1 1 1 m12 1 1 0 0 1 m13 1 1 0 1 0 m14 1 1 1 0 x m15 1 1 1 1 1 Uno puede formar fcilmente la suma cannica de expresin de los productos de esta tabla, simplemente sumando el Minterms (que deja hacia fuera el no hacer - los trminos del cuidado) donde la funcin evala a una: f_ del l {A, B, C, D} = A'BC'D + AB'C'D + AB'CD + AB'CD + ABC'D + ABCD Por supuesto, eso no es ciertamente mnimo. Para optimizar tan, todos los minterms que evalan a uno primero se ponen en una tabla del minterm. No hacer - los trminos del cuidado tambin se agregan en esta tabla, as que pueden ser combinados con los minterms: Nmero de representacin del binario de 1s Minterm -------------------------------------------- 1 m4 0100 m8 1000 -------------------------------------------- 2 m9 1001 m10 1010 m12 1100 ------------------------------------------- 3 m11 1011 m14 1110 -------------------------------------------- 4 m15 1111 A este punto, uno puede comenzar a combinar minterms con otros minterms. Si dos trminos varan por solamente un solo dgito que cambia, ese dgito se puede substituir por una rociada que indica que no importa el dgito. Los trminos que no pueden ser combinados ms se marcan con un " *". Al ir del tamao 2 a clasificar 4, tratar - como tercer valor de pedacito. Ex: -110 y -100 o -11 - se puede combinar, pero no -110 y 011-. (Truco: Emparejar encima de - primero.) Nmero de 1s Minterm 0-Cube | Tamao 2 Implicants | Tamao 4 Implicants -----------------------------|-------------------|---------------------- 1 m4 0100 | m (4.11) 10--* m8 1000 | m (8.14) 1--0* ------------------------------| m (8.10) 10-0 |---------------------- 2 m9 1001 | m (8.15) 1-1-* m10 1010 |-------------------| m12 1100 | m (9.11) 10-1 | ------------------------------| m (10.11) 101 - | 3 m11 1011 | m (10.14) 1-10 | m14 1110 | m (12.14) 11-0 | ------------------------------|------------------| 4 m15 1111 | m (11.15) 1-11 | | m (14.15) 111 - |

Paso 2: carta implicant primeraNingunos de los trminos se pueden combinar ms lejos que ste, tan a este punto nosotros construye una tabla implicant primera esencial. A lo largo del lado van los implicants primeros acaban de generarse que, y a lo largo de la tapa van los minterms especificados anterior. No cuidar los trminos no se colocan en tapa - se omiten de esta seccin porque no son entradas necesarias.

Algoritmo QuineMcCluskeyEl Algoritmo QuineMcCluskey es un mtodo de simplificacin de funciones booleanas desarrollado por Willard Van Orman Quine y Edward J. McCluskey. Es funcionalmente idntico a la utilizacin del mapa de Karnaugh, pero su forma tabular lo hace ms eficiente para su implementacin en lenguajes computacionales, y provee un mtodo determinstico de conseguir la mnima expresin de una funcin booleana.

Contenido8Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

PasosEl mtodo consta de dos pasos: 1. Encontrar todos los implicantes primos de la funcin. 2. Usar esos implicantes en una tabla de implicantes primos para encontrar los implicantes primos esenciales, los cuales son necesarios y suficientes para generar la funcin.

ComplejidadAunque es ms prctico que el mapa de Karnaugh, cuando se trata de trabajar con ms de cuatro variables, el tiempo de resolucin del algoritmo Quine-McCluskey crece de forma exponencial con el aumento del nmero de variables. Se puede demostrar que para una funcin de n variables el lmite superior del nmero de implicantes primos es 3n/n. Si n = 32 habr ms de 6.5 * 1015 implicantes primos. Funciones con un nmero grande de variables tienen que ser minimizadas con otros mtodos heursticos.

EjemploPaso 1: Encontrando implicantes primosMinimizando una funcin arbitraria:

A

B

C

D

f

m0

0

0

0

0

0

m1

0

0

0

1

0

m

0

0

1

0

0

m

0

0

1

1

0

m4

0

1

0

0

1

9

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

m5

0

1

0

1

0

m6

0

1

1

0

0

m7

0

1

1

1

0

m8

1

0

0

0

1

m9

1

0

0

1

X

m10

1

0

1

0

1

m11

1

0

1

1

1

m12

1

1

0

0

1

m13

1

1

0

1

0

m14

1

1

1

0

X

m15

1

1

1

1

1

Uno fcilmente puede formar la expresin cannica suma de productos de esta tabla, simplemente sumando minitrminos (dejando fuera las redundancias) donde la funcin se evala con 1:

Por supuesto, esta expresin no es mnima. Para optimizarla, primero son colocados todos los minitrminos evaluados en la funcin como 1 en una tabla. Las redundancias tambin son agregadas a la tabla, estas pueden combinarse con los minitrminos:N. de 1s Minterm Representacin binaria

10

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

1

m4 m8

0100 1000

2

m9 m10 m12

1001 1010 1100

3

m11 m14

1011 1110

4

m15

1111

En este punto, uno puede empezar a combinar los minitrminos entre s. Si dos minitrminos slo varan en un solo dgito, ese dgito debe reemplazarse por un guin "" indicando que ese bit no importa. Los trminos que ya no pueden combinarse ms son marcados con "*". Cuando van de tamao 2 a 4, tratamos '-' como un valor de bit. Ejemplo: -110 y -100 o -11- pueden ser combinados, pero no -110 y 011-. (Consejo: agrupar los '-' primero.)Nmero de 1s Minterm Bin | Implicantes de tamao 2 | Implicantes de tamao 4 -------------------------------- |-------------------------|-----------------------1 m4 0100 | m(4,12) -100* | m(8,9,10,11) 10 --* m8 1000 | m(8,9) 100| m(8,10,12,14) 1--0* -------------------------------- | m(8,10) 10-0 |-----------------------2 m9 1001 | m(8,12) 1 -00 | m(10,11,14,15) 1-1-* m10 1010 |-------------------------| m12 1100 | m(9,11) 10 -1 | -------------------------------- | m(10,11) 101| 3 m11 1011 | m(10,14) 1 -10 | m14 1110 | m(12,14) 11 -0 | -------------------------------- |-------------------------| 4 m15 1111 | m(11,15) 1 -11 | | m(14,15) 111|

Paso 2: tabla de implicantes primosLos trminos marcados con "*" ya no pueden combinarse ms, en este punto ya tenemos la tabla de implicantes primos. En el costado van los implicantes primos recientemente generados, y en la parte superior los minitrminos utilizados. Los minitrminos correspondientes a las redundancias son omitidos en este paso, no se colocan en la parte superior.4 8 10 11 12 15

11

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

X

X

- 100

X X X

1 0- -

X X

X

1 - - 0

X X

X 1 - 1-

En esta tabla vemos los minitrminos que "cubre" cada implicante primo. Ninguno de los implicantes de esta tabla est incluido dentro de otro (esto queda garantizado en el paso uno), pero si puede estar "cubierto" por dos o ms implicantes. Es el caso de que est cubierto por que est cubierto por y y . o

Por este motivo, cada uno de estos dos implicantes slo son esenciales en ausencia del otro. Un proceso adicional simple para reducir estos implicantes es prueba y error, pero un proceso ms sistemtico es el mtodo de Petrick. En el caso que estamos analizando, los dos implicantes primos y no llegan a incluir todos los minitrminos por lo que podemos combinar estos implicantes con cada uno de los implicantes no esenciales para conseguir dos funciones mnimas:

Las dos son equivalentes a esta funcin original:

MTODO TABULAR DE QUINE-MC CLUSKEY Cuando las variables de una funcin son varias -seis o ms- el mtodo de Karnaugh resulta muy engorroso y complicado. En estos casos es ms asequible el mtodo de Quine-Mc Cluskey que a pesar de ser ms lento, es ms sistemtico y por lo tanto ms seguro. As mismo puede resultar ms idneo incluso para cinco variables. El mtodo de Quine Mc-Clusquey parte tambin de la representacin de una funcin en forma cannica (minterms y maxterms). Consiste en ordenar, segn el nmero de unos que tengan, las combinaciones de las variables que satisfacen la ecuacin. A continuacin se buscan las combinaciones que comparadas con las de grupos adyacentes, con un bit ms o menos difieren slo en una variable, que en una combinacin estar negada y en la otra no, eliminndose la misma. La simplificacin se basa en el mismo teorema que Karnaugh; es decir, que

12

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

A

+

A

=

1.

OBSERVACIONES:1- Todos los trminos de la ecuacin deben de contener todas las variables. 2- Todos los trminos de la ecuacin que carezcan de alguna o algunas variables, sta o stas se incluyen, realizando el producto lgico entre ese o esos trminos cannicos y los grupos formados por la suma de la o las variables sin negar y negadas. Ejemplo: Sea la ecuacin Y = ABCD + ACD Como se puede observar, el segundo trmino cannico no contiene la variable B; pero como debe tenerla, segn la observacin segunda, se le introduce y queda: Y = ABCD+ ACD ( B + B) = ABCD + ABCD+ ABCD Ya todos los trminos contienen todas las variables. Los pasos a seguir para la simplificacin de funciones por ste mtodo son: 1- Conseguir que todos los trminos contengan todas las variables de la funcin. 2- Se sustituyen todos los trminos por los bits que representan las variables.(Una variable sin negar es un uno y para una variable negada se pone un cero). 3- Se determina el ndice de cada trmino, siendo ste el nmero de unos que tenga. As mismo, y para distinguir entre si los distintos trminos de igual ndice, se designa a cada uno de ellos el valor decimal que su cdigo binario representa. Por ejemplo 10011 es de ndice 3 y se le asigna el valor once. 4- Se hace una primera lista de los trminos de la ecuacin clasificndolos por su ndice. 5- Se hace una segunda lista combinando los trminos anteriores teniendo en cuenta que los trminos a combinar no deben diferir entre s ms que en el estado de una variable, la cual se sustituye por un guin. Si hay dos o ms trminos repetidos, se eliminan todos menos uno. 6- Se forma una tercera lista combinando las parejas de trminos de acuerdo con la norma anterior. Las nuevas combinaciones dispondrn, por lo tanto, de dos guiones, el anterior y el obtenido ahora. Los trminos repetidos se eliminan todos menos uno. 7- Con los trminos no eliminados (despus de sustituidos de nuevo por letras) se forma la expresin simplificada. Ejemplo: Sea la ecuacin Y = ABC + ACD + ABCD 1Poner a todos los trminos todas las Y = ABC ( D+D) + ACD ( B+B) +ABCD+ACD Y = ABCD + ABCD + ABCD + ABCD + ABCD+ ABCD 2Sustituimos las letras por Y = 0101 + 0100 + 0111 + 0011 + 0110 + 1111 3- y 4- Determinacin del ndice y confeccin de la primera lista. ndice 1 2 2 2 3 3 trmino valor decimal 0100 4 0011 3 0101 5 0110 6 0111 7 1011 11Wilber Araujo Quispe

+ ACD variables: ( B+B) + ABCD bits: + 1011

13

Universidad Jos Carlos Maritegui

Sistemas Digitales

4

1111

15

5- Confeccin de una segunda lista: combinaciones 4,5 4,6 5,7 3,7 6,7 3,11 7,15, 11,15 trmino ndice 010_ 1 01_0 1 0 1 _1 2 0 _1 1 2 011_ 2 _011 2 _111 3 1_11 3

6- Tercera lista: combinaciones 4,5-6,7 4,6-5,7 3,7-11,15 3,11-7,15 trmino ndice 01_ _ 1 01_ _ 1* _ _11 2 _ _11 2*

y

Se elimina por estar repetido

7- Ecuacin simplificada Y = AB + CD

Ejercicios4: Problemas resueltos

PROBLEMA: Verificar los dos teoremas de DeMorgan mediante el uso de diagramas

14

Wilber Araujo Quispe

de Empezaremos por la veri icaci n del teorema de DeMorgan que dice: A+B AB

subconjuntos.

Un diagrama de subconjuntos nos permite localizar A + B de la siguiente manera:

Por otra parte, de los diagramas de subconjuntos de A y B:

vemos de la intersecci n de los mismos (que viene siendo el producto Boleano deA y B) que AB es igual a:

1

Wil

Arauj Qui

Uni rsi

J s

r s

ri t

ui

Si

Di i l

Esto

comprueba

el

teorema

de

DeMorgan

que

se

deseaba

veri icar.

Ahora continuamos con el teorema de DeMorgan que dice: AB=A+B Un diagrama de subconjuntos nos permite localizar A B de la siguiente manera:

Por otra parte, de los diagramas de subconjuntos de A y B que tenemos arriba, vemos que la suma de los mismos A+B es igual al diagrama superior derecho. Esto comprueba el otro teorema de DeMorgan que se deseaba veri icar.

BLE A: Mostrar todos los t rminos posibles del doble producto AB corresponda (como AB , AB ,

usando un etc.)

diagrama de subconjuntos, escribiendo dentro de cada celda el t rmino que le

1

Wilber Araujo Quispe

Uni rsi

J s

r s

ri t

ui

Si

Di i l

Para la resoluci n de este problema, resulta conveniente tener a la mano los diagramas de subconjuntos para cada una de las variables considerando que el sistema estar formado por tres variables en total:

Con estos tres diagramas a la mano, resulta fcil elaborar el diagrama de subconjuntos mostrando todos los t rminos posibles del doble producto ABC:

PROBLE A: Usando diagramas de subconjuntos, disear una mquina que produzca las siguientes salidas.

1

Wilber Araujo Quispe

Uni rsi

J s

r s

ri t

ui

Si

Di i l

" #

! "

Esta mquina se puede lograr juntando los productos bsicos AB , AB , AB y AB , pero en este problema se trata de construr una mquina ms sencilla.

Un vistazo al diagrama de subconjuntos producido por la Tabla de Verdad proporcionada demuestra que dicho diagrama se puede descomponer en la suma de otros sub-diagramas que representan expresiones ms sencillas:

En base a esto, la salida correspondiente a la misma mquina pero construda de una manera ms sencilla ser: li = AB + AC + BC

Obsrvese que con mera lgebra Boleana no es posible "ver" fcimente esta l simplificaci n. Esta mquina puede ser vista como una mquina analizadora de votos, puesto que la salida ser "1" cuando una mayora de las entradas A, B, C sean "1". Y desde luego, el principio de la misma puede ser extendido a ms de tres en tradas.

1

Wilber Araujo Quispe

$&

Uni rsi

J s

r s

ri t

ui

Si

Di i l

(% )

$ '& $ ( %

Universidad Jos Carlos Maritegui

Sistemas Digitales

PROBLEMA: Usando diagramas de subconjuntos, disear la mquina ms sencilla posible cuya Tabla de Verdad sea la siguiente:

Tomando en cuenta las entradas que producen un "1" a la salida, de la Tabla de Verdad obtenemos el siguiente diagrama de subconjuntos (usando el mismo orden de acomodos que en los problemas previos) que destaca los seis trminos ABC, ABC, ABC, ABC, ABC y ABC:

Podemos agrupar los trminos ABC', ABC y ABC obteniendo la regin comn a las variables B y C, o sea B+C, y tomando tras esto la interseccin de esta regin con la regin que corresponde a la variable A:

19

Wilber Araujo Quispe

Podemos agrupar tambin los trminos ABC y ABC:

Esto deja a un solo trmino solitario, el trmino ABC:

umando las tres regiones obtenemos la expresi n final para la mquina simplificada: Sali a = A(B + C) + AB + ABC

20

Wilber Araujo Quispe

02

Uni rsi

J s

r s

ri t

ui

Si

Di i l

41 5

0 32 0 4 1

PROBLE A: Dado un circuito cuya Tabla de Verdad es la siguiente:

construr el mapa de Karnaugh que le corresponde, mostrando en el mapa todas las entradas correspondientes tanto de los "unos" como de los "ceros".

El contenido de cualquier Tabla de Verdad se puede vaciar directamente a un mapa de Karnaugh, y viceversa. La Tabla de Verdad y el mapa de Karnaugh son en realidad dos formas diferentes de representar exactamente la misma informaci n. Podemos empezar con la construcci n del mapa poniendo un " en todos los casilleros del mapa que 1" correspondan a los minterms, por ejemplo ABCD, ABCD, etc., y una vez que hayamos vaciado todos los minterms en el mapa podemos simplemente llen el resto ar de los casilleros con "0". Para la Tabla de Verdad proporcionada, vaciando los "unos" en los lugares que les corresponden y vaciando los "ceros" en los lugares que les corresponden, el mapa de Karnaugh ser:

21

Wilber Araujo Quispe

68

Uni rsi

J s

r s

ri t

ui

Si

Di i l

@7 A

6 98 6 @ 7

Universidad Jos Carlos Maritegui

Sistemas Digitales

PROBLEMA: Representar, usando mapas de Karnaugh para cuatro variables, las siguientes 1) 2) ABCD ABCD + + expresiones ABCD ABCD + + que ABCD ABCD + + contienen ABCD ABCD + + minterms: ABCD ABCD

Los mapas de Karnaughg para las expresiones dadas sern como se muestra a continuacin: 1)

22

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

2)

PROBLEMA: La Tabla de Verdad para un circuito lgico es como se muestra a continuacin:

23

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

Usando

minterms,

dibujar

su

mapa

de

Karnaugh

correspondiente.

De acuerdo con la Tabla de Verdad proporcionada, trabajando sobre las salidas con valor de "1" la salida Boleana del circuito est dada en funcin de sus minterms por la siguiente expresin: Salida = ABC + ABC + ABC + ABC + ABC El mapa de Karnaugh que corresponde a esta expresin es el siguiente:

PROBLEMA: Dibujar los mapas de Karnaugh para las siguientes expresiones:

24

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

__1) __2)

AB ABC

+ +

ABC B

+ +

BC BC

Puesto que ambas expresiones estn dadas como sumas-de-productos, la representacin apropiada en ambos casos es a travs de minterms. Los mapas deseados tendrn el siguiente 1) aspecto:

2)

PROBLEMA: Representar en un mapa de Karnaugh la siguiente expresin: ABCD + ABCD + ABD + ABCD + AC

25

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

El mapa de Karnaugh para esta expresin Boleana de cuatro variables es el siguiente:

PROBLEMA: Una configuracin produce la siguiente salida: f = AB + ABCD + ABCD + ABD + ABCD Simplificar la configuracin utilizando el mapa de Karnaugh.

El mapa de Karnaugh, mostrando un posible agrupamiento simplificador, es el siguiente:

26

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

Segn se puede observar en el mapa, una primera simplificacin se puede llevar a cabo enrollando el mapa horizontalmente alrededor de un cilindro para que varios cuadros queden cubiertos por la expresin BC. Sin embargo, esto deja fuera tres "unos". Buscamos a continuacin la mejor manera de agrupar los "unos" restantes como se muestra en el siguiente agrupamiento:

27

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

Estos dos agrupamientos "cobijan" todos los "unos"faltantes. Vemos que los dems "unos" se pueden agrupar bajo las expresiones AB y BD. La salida simplificada estar dada entonces por la siguiente relacin: f = AB + BC + BD

PROBLEMA: Utilizando el mapa de Karnaugh, simplificar la siguiente expresin: f = ABCD + ABCD + ABCD + ABCD + ABCD + ABCD + ABCD + ABCD El mapa de Karnaugh correspondiente a esta expresin, con una posible simplificacin, es el siguiente:

La solucin posible indicada en el mapa resulta ser: f = ABD + ACD + ABC + ABD Existe, sin embargo, otra solucin posible, la cual se indica en el siguiente mapa de Karnaugh (uno de los agrupamientos se obtiene enrollando el mapa horizontalmente uniendo el borde derecho con el borde izquierdo):

28

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

Vemos pues que la solucin alterna est dada por la relacin: f = ABC + BCD + ACD + BCD En este problema, el mapa de Karnaugh nos proporciona dos soluciones diferentes para un mismo caso, cualquiera de las cuales es igualmente aceptable y vlida. Corresponder al ingeniero de diseo decidir cul de las dos soluciones es ms econmica de construr con los componentes que tenga disponibles a la mano.

PROBLEMA: Representar en mapas de Karnaugh las siguientes expresiones que contienen maxterms:

1) (A + B) (A + B + C) (A + B + C + D) (B + C + D) 2) (A + B + C) (A + C + D) (B + C + D) (A + D) Los 1) mapas de Karnaugh pedidos son los siguientes:

29

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

2)

PROBLEMA: Un circuito produce la siguiente Tabla de Verdad. Usando maxterms, encontrar su salida y simplificar dicha expresin usando el mapa de Karnaugh:

30

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

Usando maxterms, la salida del circuito est dada por la siguiente relacin: (A + B + C + D) (A + B + C + D) (A + B + C + D) (A + B + C + D) (A + B + C + D) El mapa de Karnaugh con las agrupaciones simplificadoras posibles es el siguiente:

31

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

Del mapa vemos que la expresin de salida simplificada ser: Salida = (B + C + D) (A + C + D) (A + B +D) (A + B + C)

PROBLEMA: Se requiere construr un circuito lgico que produzca las siguientes salidas:

32

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

Haciendo uso del mapa de Karnaugh y diseando alrededor de los minterms, encontrar un circuito minimizado que pueda producir las salidas deseadas.

Lo primero que debemos notar es que aunque se trata de un circuito lgico de cuatro variables, no todas las 16 combinaciones posibles de variables estn presentes, tales como las combinaciones ABCD=1110, ABCD=1101, etc., lo cual podemos tomar como un indicativo de que tales combinaciones no estn presentes por el simple hecho de que no sern utilizadas para los propsitos que persigue el circuito lgico que est siendo diseado. En otras palabras, son combinaciones redundantes, las cuales no importa que tomen un valor de "1" de "0". Y si son redundantes, las podemos meter dentro del mapa de Karnaugh simbolizadas con una "X", dando a entender con esto que pueden tomar un valor de "1" de "0" sin que ello afecte en lo absoluto los requerimientos finales del diseo. El mapa de Karnaugh del circuito, mostrando las simplificaciones posibles que se pueden lograr aprovechando las combinaciones redundantes, es el siguiente:

Enmarcados en un recuadro de color verde, los minterms ABCD y ABCD junto con las redundancias ABCD, ABCD, ABCD, ABCD, ABCD y ABCD se reducen a la variable A. Enmarcados en un recuadro de color rojo, los minterms ABCD y ABCD junto con las redundancias ABCD y ABCD se reducen al trmino BC. Y enmarcados en un recuadro de color azul, los minterms A'BCD y A'BC'D junto con las redundancias

33

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

ABCD y ABCD se reducen al trmino BD. La salida del circuito minimizado resulta ser entonces: Salida = A + BC + BD

PROBLEMA: Escribir, mostrando todas las variables Boleanas en forma explcita, las expresiones (1) (2) (3) (4) representadas F(a,b,c) F(A,B,C,D) F(A,B,C,D) Z = = = por la siguiente = notacin compacta: m(0,2,7) m(0,1,3,4,5,7,12,13,15) m(15,11,7,14,10,12,6,4) m(0,1,2,4,6)

En el primer caso que involucra a tres variables, la expresin Boleana explcita ser: F(a,b,c) = m(000,010,111) F(a,b,c) = abc + abc + abc En el segundo caso, la expresin Boleana explcita ser: F(A,B,C,D) = m(0000,0001,0011,0100,0101,0111,1100,1101,1111) F(A,B,C,D) = ABCD + ABCD + ABCD + ABCD + ABCD + ABCD + ABCD + ABCD + ABCD En el tercer caso, la expresin Boleana explcita ser: F(A,B,C,D) = m(1111,0111,1110,1010,1100,0110,0100) F(A,B,C,D) = ABCD + ABCD + ABCD + ABCD + ABCD + ABCDD + ABCD

34

Wilber Araujo Quispe

Y en el cuarto caso que podemos suponer que involucra a tres variables puesto que el decimal ms grande de todos no excede de 7 (111), designando a dichas variables como p, q y r la expresi n Boleana explcita ser: Z = m(000,001,010,100,110)

Z = pqr+ pq + pqr + pqr + pqr

PROBLE A: Mediante el mtodo de Quine-McCluskey, simplificar la siguiente expresi n. Z = ABC + ABC + ABC + ABC Usaremos la notaci n compacta para simplificar los listados que se llevarn a cabo, con la cual: Z Z = m(0,1, ,5) Agrupando los trminos segn sus ndices, podemos llevar a cabo una simplificaci n sucesiva pasando de una primera lista a una segunda lista y tras esto a una tercera lista de la manera mostrada: = (000,001,100,101)

En la segunda lista podemos ver que la expresi n original ha sido reducida a: Z = AB + BC + BC + AB

35

Wilber Araujo Quispe

BD

Uni rsi

J s

r s

ri t

ui

Si

Di i l

FC G

B ED B F C

Y en la tercera lista vemos que la expresi n final simplificada es Z=B En este caso, dada la simplicidad de la minimizaci n, no fue necesario trazar ninguna retcula.

PROBLE A: Mediante el mtodo de Quine-McCluskey, simplificar la siguiente expresi n. Z = ABCD + ABCD + ABCD + ABCD' + ABCD + ABCD' + ABCD Por comodidad, usaremos la notaci n compacta para simplificar los listados que se llevarn a cabo, con lo cual: Z = m(0000,0010,0100,0101,1000,1001,1100)

Z = m(0,2,4,5,8,9,12) Agrupando los trminos segn sus ndices, podemos llevar a cabo una simplificaci n sucesiva pasando de una primera lista a una segunda lista y tras esto a una tercera lista de la manera mostrada:

De la simplificaci n sucesiva podemos ver que los implicantes primarios de la expresi n Boleana original son ABD, ABC, ABC y CD.

Finalmente, y aunque no es indispensable en este problema, construmos una retcula con la finalidad de confirmar que ninguno de los implicantes primarios obtenidos es redundante:

36

Wilber Araujo Quispe

HP

Uni rsi

J s

r s

ri t

ui

Si

Di i l

RI S

H QP H R I

Universidad Jos Carlos Maritegui

Sistemas Digitales

Podemos ver que la solucin final de la minimizacin es entonces: Z = ABD + ABC + ABC + CD

PROBLEMA: Mediante el mtodo de Quine-McCluskey, simplificar la siguiente expresin. Z = ABCD + ABCD + ABCD + ABCD + ABCD + ABCD + ABCD + ABCD + ABCD + ABCD + ABCD Nuevamente, por comodidad usaremos la notacin compacta para simplificar los listados que se llevarn a cabo, con lo cual: Z = m(0000,0001,0010,0011,0101,0111,1000,1010,1100,1101,1111)

Z = m(0,1,2,3,5,7,8,10,12,13,15) Agrupando los trminos segn sus ndices, podemos llevar a cabo una simplificacin sucesiva pasando de una primera lista a una segunda lista y tras esto a una tercera lista de la manera mostrada:

37

Wilber Araujo Quispe

De la simplificaci n sucesiva podemos ver que los implicantes primarios de la expresi n Boleana original son AB, BD, AD, BD, ACD y ABC. Finalmente, construmos una retcula con la finalidad de remover a los implicantes primarios redundantes:

Podemos ver que la soluci n final de la minimizaci n, con los implicantes primarios redundantes ya removidos, es entonces: Z = BD + BD + AB + ACD

PROBLE A: Mediante el mtodo de Quine-McCluskey, simplificar la siguiente expresi n. Z = ABCD + ABCD + ABCD + ABCD + ABCD + ABCD

+ ABCD + ABCD' + ABCD + ABCD + ABCD

38

Wilber Araujo Quispe

TV

Uni rsi

J s

r s

ri t

ui

Si

Di i l

XU Y

T WV T X U

Universidad Jos Carlos Maritegui

Sistemas Digitales

Agrupando los trminos segn sus ndices, podemos llevar a cabo una simplificacin sucesiva pasando de la primera lista que aparece en el extremo izquierdo a la segunda lista en donde puede apreciarse que los trminos de cuatro variables han sido reducidos a trminos de tres variables, pasando finalmente a la tercera lista en el extremo derecho en la cual los trminos de tres variables han sido reducidos a trminos de dos variables:

Finalmente, construmos la retcula en la cual "graficamos" los implicantes primarios obtenidos en su relacin con los minterms de la expresin original:

De la reticula podemos ver que la expresin final simplificada es: Z = BC + AD + CD El mtodo de Quine-McCluskey es superior al mapa de Karnaugh en el sentido de que

39

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

el primero se presta a ser programado para ser resuelto de manera automtica por una computadora. Repasando los problemas anteriores, cualquiera que tenga conocimientos previos en programacin en algn lenguaje como BASIC C++ podr ir formando ya en su mente un algoritmo ("receta de cocina" generalizada especificando una serie de pasos para la resolucin de un problema computacional) para llevar a cabo la minimizacin de un circuito lgico en forma automatizada mediante el mtodo QuineMcCluskey, el cual siempre garantiza la obtencin de la configuracin mnima. Sin embargo, el principal problema con el mtodo de Quine-McCluskey, visible ya para alguien con conocimientos de programacin que quiera elaborar su programa para generalizar el mtodo hacia cualquier nmero de variables, es que tiene que llevar a cabo una bsqueda exhaustiva agotando una por una todas las posibilidades, lo cual en la materia clsica de Estructuras de Datos equivale a tener que recorrer todos los nodos de un "rbol" que se va formando al irse acumulando los resultados parciales obtenidos en la bsqueda de la solucin ptima. Esto, desde luego, pone al mtodo de Quine-McCluskey dentro de una categora de problemas matemticos conocidos como NP-"duros", lo cual en trminos llanos significa que el algoritmo de Quine-McCluskey va creciendo exponencialmente de acuerdo a la cantidad de variables de entrada aumentando enormemente la cantidad de tiempo computacional requerido a medida que aumenta la cantidad de entradas a un circuito lgico, lo cual eventualmente limita el rango de aplicacin del mtodo.

PROBLEMA: As como hay una notacin compacta para representar una expresin Boleana puesta en funcin de sus minterms como una suma de productos, tambin hay una notacin compacta para representar una expresin Boleana puesta en funcin de sus maxterms como un producto de sumas. Bajo esta notacin, la siguiente expresin Boleana escrita empleando maxterms, como un producto de sumas: Salida = (A + B + C)(A + B + C) puede ser convertida a notacin compacta recordando la manera en la cual se definen los maxterms a partir de una Tabla de Verdad (recurdese que en un maxterm la suma Boleana de las variables debe ser siempre cero, debindose complementar aquellas variables que sean "1" para que as haya nicamente "ceros" en la formacin del maxterm). As, la expresin dada arriba queda representada en forma compacta de la siguiente manera:

40

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

Salida =

M(000,001)

o bien, usando la ms familiar notacin decimal: Salida = M(0,1)

Revirtiendo los pasos, podemos reconstrur la expresin original. Obsrvese que se ha utilizado la letra griega Pi mayscula ( ) para indicar que se trata de un producto de sumas. El par " M" se lee como "el producto de maxterms".

Definido lo anterior, representar en forma compacta las siguientes expresiones: (1) F(A,B,C) = (A + B + C) (A + B + C)

(2) F(A,B,C,D) = (A+B+C+D) (A+B+C+D) (A+B+C+D) (A+B+C+D) (2) Z = (A+B+C+D) (A+B+C+D) (A+B+C+D) (A+B+C+D) (A+B+C+D) __________ ( A+B+C+D) (A+B+C+D)

Para la primera expresin, convirtiendo cada maxterm a su equivalente binario de acuerdo con la combinacin de "unos" y "ceros" que lo produciran en una Tabla de Verdad: F(A,B,C) F(A,B,C) = M(5,6) = M(101,110)

Para la segunda expresin, convirtiendo cada maxterm a su equivalente binario de acuerdo con lo que lo producira en una Tabla de Verdad: F(A,B,C,D) = F(A,B,C,D) = Reacomodando: F(A,B,C,D) = M(3,5,8,9)Wilber Araujo Quispe

M(0101,1000,0011,1001) M(5,8,3,9)

41

Para la tercera expresi n, convirtiendo cada maxterm a su equivalente binario de acuerdo con lo que lo producira en una Tabla de Verdad: Z Z= = M(2,6,14,10,8,9,11) M(0010,0110,1110,1010,1000,1001,1011)

Reacomodando: Z= M(2,6,8,9,10,11,14)

PROBLE A: Encontrar, para un circuito de dos salidas con cuatro variables de entrada, cuyos mapas de Karnaugh sean los siguientes:

los agrupamientos comunes que podran ser utilizados para formar sub -circuitos comunes reduciendo con ello la cantidad de componentes y alambrado requerido. Con ambos mapas de Karnaugh puestos lado a lado, podemos captar de inmediato las siguientes tres regiones comunes (una encerrada en una lnea roja, la otra en una lnea verde, y la otra en una lnea azul) que podran ser utilizadas para formar sub -circuitos:

42

Wilber Araujo Quispe

`b

Uni rsi

J s

r s

ri t

ui

Si

Di i l

da e

` cb ` d a

Obsrvese que no estamos utilizando aqu el mapa de Karnaugh en su sentido "clsico" para minimizar una funci n Boleana dentro del mapa, sino para detectar las regiones comunes en mapas diferentes. in embargo, una vez detectadas las regiones comunes a mapas diferentes, podemos tratar de minimizar dichas regiones comunes dentro de cada mapa (la simplificaci n en todo caso ser la misma para regiones iguales). Esta tcnica se puede extender a circuitos l gicos con tres, cuatro, cinco o ms salidas. El inconveniente de ir extendiendo este mtodo a una cantidad mayor de variables de salida es que con muchos mapas de Karnaugh puede ir resultando ms difcil captar las regiones comunes. 6. Impli aciUn implicante es un mintrmino o un grupo de stos que formen un sub-cubo.

Una expresi n X implica la funci n f, si y solamente si f=1 para cualquier combinaci n de valores para los cuales X=1.

e anota la implicaci n de la siguiente forma:

f

X

Xf

Puede verse que si X f, con g una funci n booleana, puede anotarse: f = X + g .

Es decir, X es un trmino o parte de f. Tambin suele decirse que f cubre a X. En una mapa de f, si X corresponde a un grupo de mintrminos, g corresponder al resto de los mintrminos de f, no considerados en X.

43

Wilber Araujo Quispe

fh

Uni rsi

J s

r s

ri t

ui

Si

Di i l

pg q r

f ih f p g

t

r

r

r

s

Universidad Jos Carlos MariteguiSe desea ahora definir las componentes de f que sean ms primitivas.

Sistemas Digitales

Implicantes primos

Un implicante primo es un implicante que no puede ser agrupado con otros implicantes, para formar un sub-cubo de mayor dimensin.

Se dice que X (producto de literales) es un implicante primo de f si y slo si:y y

XfNo existe y tal que X y f, donde el nmero de literales de y es menor que el nmero de literales de X. No puede encontrarse un grupo mayor que X. Si existe y; entonces y es un implicante primo. Bsicamente, es un producto de literales que no puede ser combinado con otros para obtener un trmino con menos literales. Se dice primo o primitivo en el sentido de ser componente bsica o elemental de una funcin. Algunas propiedades de un implicante primo:

y y y

No contiene literales repetidos. No contiene a una variable y a su complemento. No contiene variables redundantes. Es decir, si se descarta un literal del implicante, el resto no ser implicante. Si x e y son implicantes primos de f, entonces: x no cubre a y; y viceversa.

y

Encontrar los implicantes primos es determinar los grupos de mintrminos que pueden escribirse con menos literales. Pasar de un implicante a un implicante primo est asociado a un proceso de crecimiento; es decir, a encontrar un grupo de mintrminos que forman el sub-cubo mayor posible.

Implicante primo esencialEs aqul que cubre a lo menos un mintrmino de la funcin que no es cubierto por otros implicantes primos. Deben estar presentes en la forma mnima. Los mintrminos superfluos pueden emplearse para formar implicantes primos; pero no deben considerarse para los implicantes primos esenciales.

44

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

Ejemplo: Para una funcin de 4 variables se tienen los siguientes implicantes primos:

A'B'D, BC', AC, A'C'D, AB, B'CDDe los 6 implicantes primos, slo AC es esencial. ya que contiene al mintrmino: AB'CD' que no es cubierto por ningn otro implicante primo.

A

0 1 1 C 0

X 1 0 0B

1 1 1 1

0 0D

1 1

Puede comprobarse que se logra una mnima cobertura de la funcin con: AC + BC' + A'B 'D Ejemplo: Para una funcin de 4 variables se tienen los siguientes implicantes primos: BD, ABC ', ACD, A'BC, A'C'D

ASlo BD es no esencial.

0 1 0

0 1 1 1

1 1 1 0

0 0

La funcin mnima debe contener los esenciales, y con stos se logra cubrir completamente a la funcin:

D1 0

C0

f = ABC ' + ACD + A'BC + A'C'D

BWilber Araujo Quispe

45

Universidad Jos Carlos Maritegui

Sistemas Digitales

Mtodo de Quine

Es un mtodo sistemtico para encontrar la expresin mnima de una funcin, que no depende de la habilidad para reconocer agrupaciones en un mapa de Karnaugh.

Bsicamente, es una bsqueda exhaustiva de todas las adyacencias entre los mintrminos de la funcin, mediante la aplicacin sistemtica de:

a ! ab ab

a todos los trminos de la forma cannica.

Obtencin de implicantes primos

y y

Se forma una primera columna con los mintrminos de la funcin. Se forma la siguiente columna segn:

Se revisa el primer elemento de la columna con todos los siguientes; si se encuentra un trmino que slo difiera en una variable, se lo anota en la nueva columna, omitiendo el literal correspondiente; se marcan los trminos en la columna actual.

Se repite el proceso para todos los elementos de la columna.

y

Se vuelve a repetir el paso anterior hasta que no se puedan formar nuevas columnas.

Los trminos que originan nuevas entradas, en la prxima columna, slo necesitan marcarse una vez. Pero pueden usarse las veces que sea necesario.

Ntese que la segunda columna lista todos los grupos de dos mintrminos. La tercera, lista grupos de cuatro mintrminos adyacentes, y as sucesivamente. Al finalizar el proceso anterior, los elementos no marcados en las columnas, corresponden a los implicantes primos.

Ejemplo: Obtener los implicantes primos de: f(a, b,c) ! m(0,2,5,6,7)

46

Wilber Araujo Quispe

Universidad Jos Carlos MariteguiPrimera columna m 0 2 5 6 7 min. a'b'c' a'bc' ab'c abc' abc

Sistemas Digitales

Segunda columna Grupos Implicantes (0,2)

marcas

a'c' bc' ac ab

(2,6) (5,7) (6,7)

No se pueden formar nuevas columnas, por lo tanto los implicantes primos son: a'c', bc', ac, ab

Ntese que en la segunda columna, se han identificado los renglones con los grupos de mintrminos.

Cuando se escribe, en la segunda columna: columna.

a'c', se marcan con el 0 y el 2 en la primera

Cuando se escribe, en la segunda columna:

bc', se marcan con los mintrminos 2 y 6.

Tabla de implicantes

La tabla de implicantes se forma empleando los implicantes primos en los renglones y los mintrminos de la funcin en las columnas. Luego, en cada rengln, se efecta una marca en las columnas de los mintrminos pertenecientes al implicante considerado.

Aquellas columnas que tengan slo una marca, permiten detectar a los implicantes primos esenciales. En esta tabla puede escogerse el menor nmero de implicantes primos que cubran todos los mintrminos de la funcin. Evidentemente, deben estar presentes todos los implicantes primitivos esenciales en la expresin mnima de una funcin.

Ejemplo: La tabla de implicantes, para el ejemplo anterior:

0

2

5

6

7Wilber Araujo Quispe

47

Universidad Jos Carlos Mariteguia'c' bc' ac ab

Sistemas Digitales

La columna 0 permite identificar a: a'c' como implicante primo esencial. Igualmente la columna 5 indica que ac tambin es esencial.

Se acostumbra encerrar con un crculo las marcas en las columnas que definen los implicantes primos esenciales.

Ntese que slo resta cubrir el mintrmino 6, lo que puede lograrse eligiendo: bc' ab

Finalmente, la forma mnima es: f = a'c' +ac + bc'

o, alternativamente:

f = a'c' + ac + ab

Reduccin de tablas

En caso de tener tablas complejas, stas pueden reducirse mediante el siguiente mtodo. Cada vez que se selecciona un implicante para formar la funcin, se remueve el rengln correspondiente.

Cuando se remueve un rengln, tambin se eliminan las columnas que tienen marcas en dicho rengln.

Se comienza eliminando los implicantes primos esenciales. reducindose, aplicando las siguientes reglas:

Luego la tabla puede seguir

y y

Un rengln cubierto por otro, puede eliminarse (slo el rengln). Una columna que cubre a otra puede eliminarse (slo la columna).

48

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

Un rengln cubre a otro, si tiene marcas en las columnas marcadas del otro, pudiendo adems tener columnas adicionales marcadas. Podra decirse que el rengln eliminado es menos importante, debido a su menor cobertura de la funcin.

Ejemplo: Implicante primo ipa cubre a implicante primo ipb.

m1 ipa ipb

m2

m3

Una columna cubre a otra, si contiene marcas en cada rengln que esa otra columna tiene marcas. Ejemplo:

m1 ipa ipb ipc ipd

m2

m3

La columna m2 cubre a la columna m1; puede eliminarse la columna m2. El mintrmino de la columna eliminada tiene asegurada su consideracin.

Se repite la aplicacin de las reglas hasta agotar la tabla. Siempre se remueven aquellos renglones que contengan columnas con una sola marca (se tratan en la tabla reducida, en forma similar a los implicantes primos esenciales en la tabla completa).

La funcin se forma con los implicantes de los renglones removidos por contener columnas con una sola marca.

Excepcin a lo anterior la constituyen las tablas reducidas cclicas, que no pueden reducirse segn el mtodo recin planteado. En stas se elige un implicante en forma arbitraria y se remueve el rengln correspondiente.

49

Wilber Araujo Quispe

Universidad Jos Carlos MariteguiEjemplo: Reducir la tabla de implicantes de la funcin f.

Sistemas Digitales

1 ipa ipb ipc ipd ipe ipf ipg iph

3

4

6

7

9

13

15

Observar que el implicante primo b es esencial. Removiendo el rengln asociado a b, deben tambin removerse columnas asociadas a los mintrminos 4 y 6.

Queda la siguiente tabla reducida: 1 ipa ipc ipd ipe ipf ipg iph

3

7

9

13

15

El rengln ipc cubre a ipd; por lo tanto, puede eliminarse el rengln ipd.

1 ipa ipc ipe

3

7

9

13

15

Wilber Araujo Quispe

50

Universidad Jos Carlos Mariteguiipf ipg iph

Sistemas Digitales

La tabla resultante es cclica. Se escoge arbitrariamente al primitivo ipa para formar la funcin, esto elimina columnas 1 y 3, quedando:

7 ipc ipe ipf ipg iph

9

13

15

Ahora, ipe cubre a ipc; e ipg cubre a iph, queda eliminando a ipc e iph:

7 ipe ipf ipg

9

13

15

ipe e ipg deben formar parte de la funcin; pues contienen a las columnas 7 y 9, que en la tabla reducida slo tienen una marca. Luego de esto, la tabla queda vaca.

Finalmente:

F = ipb + ipa + ipe + ipg

Existen otras formas mnimas posibles. Estas se obtienen eliminando otro implicante cuando la tabla result cclica.

Por ejemplo, eliminando ipc, resulta:

51

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui1 ipa ipe ipf ipg iph

Sistemas Digitales15

9

13

ipf cubre a ipe. iph cubre a ipa. Eliminando ipa e ipe, se obtiene:

1 ipf ipg iph

9

13

15

En la cual deben escogerse: ipf e iph.

Entonces resulta otra funcin mnima: f = ipb +ipc + ipf + iph

Cuando se tienen condiciones superfluas, el mtodo es similar, excepto que en la tabla no se consideran las columnas de mintrminos superfluos, debido a que stos no requieren ser cubiertos.

El mtodo anterior es adecuado para un nmero reducido de variables. Una variante del mtodo tabular recin descrito es el de Quine-McCluskey. Bsicamente, representa en forma digital el mtodo de Quine, y es muy adecuado para ser programado en un computador.

52

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui

Sistemas Digitales

Mtodo de Quine-McCluskey

Se forma la columna de mintrminos, codificada en binario o decimal, en grupos, de acuerdo al nmero de unos.

Se comparan los elementos de cada grupo, buscando adyacencias, y se forman las siguientes columnas en forma similar al mtodo de Quine. Notando que en la representacin decimal, diferencias de 1, 2, 4, 8 y, en general, de una potencia de 2, indican una diferencia en un bit. Tambin se mantiene la separacin en grupos en las nuevas columnas.

Existen tablas con los nmeros decimales y su nmero de unos en representacin binaria. Para facilitar la formacin de los grupos.

La segunda columna representa todas las agrupaciones posibles de dos mintrminos. La tercera columna representa grupos de cuatro mintrminos, y as sucesivamente.

El algoritmo permite trabajar con dgitos decimales o binarios. Se anotan en los ejemplos columnas binarias y decimales. En la segunda y siguientes columnas, las variables eliminadas se denotarn con un guin(tambin es posible anotar la posicin del guin con un nmero decimal potencia de dos).

Pueden combinarse dos trminos si ellos difieren solamente en un literal; por esta razn, no podrn combinarse dos trminos en un mismo grupo. Los miembros de un grupo de un solo "1", difieren en dos variables por lo menos; lo mismo puede establecerse para los otros grupos. Esta observacin organiza la bsqueda de adyacencias, ya que slo es preciso comparar entre grupos adyacentes. Ejemplo:

Aplicar mtodo de Quine-McCluskey para minimizar la siguiente funcin:

g(a,b,c,d,e,f) = 7 m(0,2,6,7,8,10,12,14,15,41)

Considerando la equivalencia binaria de los mintrminos decimales, se tienen: m0 = 000000 m2 = 000010 m8 = 001000 m6 = 000110

53

Wilber Araujo Quispe

Universidad Jos Carlos Mariteguim10 = 001010 m12 = 001100 m7 = 000111 m14 = 001110 m41 = 101001 m15 = 001111

Sistemas Digitales

Formando grupos, de acuerdo al nmero de unos: Se obtiene la siguiente tabla:

Decimal mintrmino 0 2 8 6 10 12 7 14 41 15 a 0 0 0 0 0 0 0 0 1 0 b 0 0 0 0 0 0 0 0 0 0 c 0 0 1 0 1 1 0 1 1 1 d 0 0 0 1 0 1 1 1 0 1 e 0 1 0 1 1 0 1 1 0 1 f 0 0 0 0 0 0 1 0 1 1 4 3 2 Nmero de unos 0 1

Los mintrminos del grupo con n unos, se comparan con todos los del grupo con (n+1) unos.

En la representacin decimal se buscan diferencias de potencias de dos; en binario, se busca la diferencia en un bit. Puede formarse la siguiente tabla, que contiene los implicantes formados por dos mintrminos:

Decimal Grupo

Binario Posicin a b c d e f Nmero de unos

54

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui0,2 0.8 2,6 2,10 8,10 8,12 6,7 6,14 10,14 12,14 7,15 14,15 2 8 4 8 2 4 1 8 4 2 8 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 -

Sistemas Digitales0

1

2

3

En la notacin decimal, se anota la lista de mintrminos y la posicin de la variable eleiminada se registra con una potencia de dos entre parntesis. Ntese que se mantiene el concepto de grupos, mediante lneas horizontales. A medida que se forma la segunda tabla, se van marcando los mintrminos utilizados en la primera tabla.

En el ejemplo no queda marcado el 41, ya que no puede agruparse con ningn otro mintrmino; en este caso el mintrmino 41 es implicante primo esencial. Para formar la tercera tabla, que contendr grupos de cuatro mintrminos; se buscan diferencias de potencias de dos entre grupos adyacentes, pero adems deben tener igual diferencia (o posicin de variable eliminada). Por ejemplo la componente del grupo 0,2 es necesario compararla solamente con 8,10 del segundo grupo, debido a la diferencia comn (2).

No importa el orden de las listas de mintrminos, slo se anotan una vez. Por ejemplo, entre los primeros grupos se tiene:

0, 2 8, 10 Diferencia: 8, 8

(2) (2) generando: 0, 2, 8, 10 (2,8)

55

Wilber Araujo Quispe

Universidad Jos Carlos Maritegui0, 8 2, 10 Diferencia: 2, 2 (8) (8) generando: 0, 8, 2, 10 (8,2)

Sistemas Digitales

Estas dos agrupaciones se consideran iguales. Desarrollando en forma similar, se genera la siguiente tabla:

Decimal Grupo 0, 2, 8, 10 2, 6, 10, 14 8, 10,12,14 6, 7, 14, 15 Posicin 2,8 4,8 2,4 1,8

Binario a 0 0 0 0 b 0 0 0 0 c 1 d 0 1 e 1 1 f 0 0 0 2 Nmero de unos 0 1

De este modo quedan marcados todos los grupos de la segunda lista.

Ntese que, en la tabla anterior, no hay diferencias comunes entre grupos, por lo tanto, no puede formarse una siguiente tabla. Es decir, no hay implicantes formados por 8 mintrminos que estn formando un 3-cubo.

La tabla de implicantes resulta:

Implicantes primos 41 0, 2, 8, 10 2, 6, 10, 14 8, 10, 12, 14 6, 7, 14, 15

0

2

8

6

10

12

7

14

41

15

Removiendo los implicantes primos esenciales, la funcin mnima queda:

56

Wilber Araujo Quispe

Universidad Jos Carlos Mariteguig = ab'cd'e'f + a'b'd'f' + a'b'cf' + a'b'de

Sistemas Digitales

Es conveniente realizar el ejemplo, desarrollando agrupaciones en un mapa de Karnaugh, a medida que se forman las tablas.

Ntese que todo el proceso podra haberse realizado slo considerando la informacin binaria, o solamente la informacin decimal.

La exposicin de este mtodo permite elaborar algoritmos para efectuar programas para minimizacin automtica, y tambin tener las bases para comprender el funcionamiento de las aplicaciones.

El siguiente programa en Abel, permite obtener las ecuaciones minimizadas:

" Ejemplo Quine McKluskey. "g(a,b,c,d,e,f) = Suma(0,2,6,7,8,10,12,14,15,41) MODULE quine " entradas a, b, c, d ,e, f PIN; " salidas g PIN ISTYPE 'COM';

EQUATIONS truth_table ( [a, b, c, d, e, f ]-> g) 0-> 1; 2-> 1; 6-> 1; 7-> 1; 8-> 1; 10-> 1; 12-> 1; 14-> 1; 15-> 1; 41-> 1;

57

Wilber Araujo Quispe

Universidad Jos Carlos MariteguiEND quine Se obtienen las siguientes ecuaciones:

Sistemas Digitales

g = (a & !b & c & !d & !e & f ) # (!a & !b & d & e) # (!a & !b & !d & !f) # (!a & !b & c & !f)

!g = (a & !c) # (d & !e & f) # (a & e) # (!a & !d & f) # (!c & d & !e) # (b) # (a & !f)

Y puede generarse una simulacin temporal, que permite obtener las siguientes formas de ondas:

Para lograr las formas de ondas, se generan los siguientes vectores de prueba:

Test_vectors ( [a, b, c, d, e, f]-> g ) 00-> 1;01-> 0;02-> 1;03-> 0;04-> 0;05-> 0; 06-> 1;07-> 1;08-> 1;09-> 0;10-> 1;11-> 0; 12-> 1;13-> 0;14-> 1;15-> 1;16-> 0;17-> 0; 18-> 0;19-> 0;20-> 0;21-> 0;22-> 0;23-> 0; 24-> 0;25-> 0;26-> 0;27-> 0;28-> 0;29-> 0; 30-> 0;31-> 0;32-> 0;33-> 0;34-> 0;35-> 0; 36-> 0;37-> 0;38-> 0;39-> 0;40-> 0;41-> 1; 42-> 0;43-> 0;44-> 0;45-> 0;46-> 0;47-> 0; 48-> 0;49-> 0;50-> 0;51-> 0;52-> 0;53-> 0; 54-> 0;55-> 0;56-> 0;57-> 0;58-> 0;59-> 0; 60-> 0;61-> 0;62-> 0;63-> 0;

58

Wilber Araujo Quispe