Está en la página 1de 8

MTODO DE KARNAUGH

Jess Pizarro Pelez


MTODO DE KARNAUGH............................................................................................. 1 1. 2. 3. 4. 5. INTRODUCCIN ....................................................................................................... 1 MTODO DE KARNAUGH .......................................................................................... 2 EJEMPLO DE APLICACIN (I) ..................................................................................... 4 ESTADOS NO IMPORTA EN LAS FUNCIONES LGICAS .................................................. 6 EJEMPLO DE APLICACIN (II) .................................................................................... 7

1. INTRODUCCIN
En ocasiones, el mtodo algebraico para simplificar funciones lgicas aplicando los teoremas del lgebra de Boole, puede no ser el mejor medio por varias razones: o Cuando aumenta el nmero de variables o de trminos resulta difcil ver la forma de reducir la expresin. o Se trabaja con grandes cantidades de expresiones muy similares a bcd + a bc d ... por lo que la probabilidad de equivocarse en algn paso es muy elevada (y aunque no nos equivoquemos, siempre resulta farragoso). o Podemos llegar a una expresin que no es la ptima, con el consiguiente incremento en puertas y complejidad del circuito final.

Existe un mtodo grfico para simplificacin de funciones que resuelve todos estos problemas: El mtodo de Karnaugh. Con este mtodo la simplificacin adquiere las siguientes ventajas con respecto al mtodo algebraico: o Para funciones de tres y cuatro variables se aplica de forma muy sencilla. Para cinco variables puede resultar algo ms difcil, y para ms existen otros mtodos. o No se escriben las expresiones de los productos de las variables, se trabaja directamente sobre un diagrama, por lo que se gana considerablemente en claridad. o Con un poco de soltura (adquirida mediante un poco de prctica), resulta muy sencillo hallar siempre la expresin ms ptima de la funcin.

Es por todos estos motivos que el mtodo de Karnaugh sea ampliamente utilizado para sistemas de tres y cuatro variables. A todo esto hay que aadir otra gran ventaja: Es un mtodo muy sencillo de aprender, como vamos a ver a continuacin.

2. MTODO DE KARNAUGH
El mtodo de Karnaugh es un mtodo grfico. Se usan unas tablas llamadas tablas o diagramas de Karnaugh. Dichas tablas tienen una casilla por cada combinacin de variables de la funcin, de forma que para 3 variables tendremos 23 = 8 casillas, para cuatro variables tendremos 24 = 16 casillas.

ba dc 00 c 01 11 10 0 1 00 01 11 10 ba 00 01 11 10

Diagrama de Karnaugh para 4 variables

Diagrama de Karnaugh para 3 variables

Ntese que el orden de las combinaciones no es binario natural si no que es cdigo Gray (00, 01, 11, 10) esto es debido a que el funcionamiento del mtodo se basa en combinaciones adyacentes.

Una vez dibujado el diagrama, se trasladan a ste las combinaciones de la tabla de la verdad poniendo un 1 en la casilla correspondiente. Ejemplo: sea la funcin combinaciones de esas casillas.
ba c 0 1 00 01 10

f = abc + abc + abc que como se ve, vale 1 para las

{c, b, a} = {1,0,0}, {0,0,1}, {1,0,1} . Pues en el diagrama de Karnaugh pondramos un 1 en cada una

1 1 1

Casillas donde f = 1

Ahora es cuando vamos a simplificar. A partir de las posiciones de los unos en la tabla, intentamos formar grupos de unos lo ms grandes posibles. Dichos grupos de unos:

Debern estar constituidos por un numero de unos que sea potencia de dos (no valen 3 ni 6 ni 7). Debern ser un conjunto convexo (o sea, no tener esquinas hacia dentro). No podrn ir en diagonal. Intentaremos formar el menor nmero de grupos y stos debern ser lo ms grandes posible. Un uno puede formar parte de tantos grupos como haga falta.

En los grupos que formemos se eliminan las variables que estn presentes en el cero y en el uno. En nuestro diagrama anterior, vemos que podemos hacer dos grupos de dos variables: uno con las casillas

{c, b, a} = {1,0,0}, {1,0,1}

y otro con

{c, b, a} = {0,0,1}, {1,0,1}

Vemos que en el primer grupo la variable a

aparece con 1 y con 0, por lo que la eliminamos, quedndonos c=1 y b=0 por lo que el trmino nos queda

bc . En

el segundo grupo aparece la c negada y sin negar, por lo que la eliminamos, quedndonos b=0 y a=1 por lo que el trmino nos queda

ba . Por lo que la funcin simplificada queda: f = cb +ba = b(a + c) .

A continuacin se ponen unos cuantos ejemplos de grupos posibles para un diagrama de cuatro variables.
ba 00 01 11 10 dc 00 00 01 11 10 ba dc 00 00 01 11 10 ba dc 00 01 11 10 00 01 11 10

ba dc 00

1 1

1 1

1 1

1 1

1 1 1 1

1 1 1 1

01 11 10

01 11

1 1

1 1

01

11 10

10

No cambia ninguno, por lo que


ba dc 00 01 11 00 01 11 10

f = d cba

Cambian b y d, por lo que queda f = ac


ba dc 00 00 01 11 10

Cambian a, b y c, por lo que queda


ba dc 00 00 01 11 10

Cambian a, c y d, por lo que queda


ba dc 00 01 11 10 00 01 11 10

f =d

f =b

1 1 1 1

01 11

1 1

01 11 10

10

10

Cambia a, por lo que queda


ba dc 00 01 00 01 11 10

f = d cb

Cambia d, por lo que queda f = cba


ba dc 00 00 01 11 10

Cambian a y b, por lo que queda


ba dc 00 00 01 11 10

Cambian d y c, por lo que queda


ba dc 00 01 11 00 01 11 10

f = d c

f = ba

1 1 1 1

1 1 1 1

01

01 11

11 10

11

10

10

10

Cambia b, por lo que queda

Cambian d y b, por lo que queda

Cambian d y b, por lo que queda

Cambian b, c y d, por lo que queda

f = d ca

f = ca

f = ca

f =a

Observemos que los cuatro ltimos ejemplos no parecen cumplir con lo que dijimos acerca de los grupos, que deban ser un conjunto convexo. En realidad si que lo son. Debemos ver los diagramas de Karnaugh como una superficie continua, algo as como una caja de cartn desmontada que cuando se monta se cierra y se unen los lados. Se pueden coger estos grupos siempre que queramos, sin ms condicin que ser potencia de 2 y no ir en diagonal.

3. EJEMPLO DE APLICACIN (I)


Vamos a resolver un problema de lgica combinacional aplicando el mtodo de Karnaugh para obtener la funcin simplificada. Problema Disear un circuito combinacional que realice la divisin entre 3 (entera) de un nmero codificado en BCD.

Como ya se sabe, la divisin entera de un nmero tiene dos partes: cociente y resto, ambos enteros. Nuestro circuito har la divisin de un nmero BCD (o sea, del 0 al 9) entre 3. El cociente ms grande ser el obtenido al dividir el nmero ms grande, que en BCD es el 9. Como 9:3 = 3 necesitamos 2 bits para representar este nmero por lo que nuestro circuito deber tener dos salidas. Una para el bit de ms peso y otra para el de menos peso. A continuacin se muestra la salida del circuito y la tabla de verdad.

Nmero 0 1 2 3 4 5 6 7 8 9

resultado 0 0 0 1 1 1 2 2 2 3

D C B A b1 b0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 1

Divisin entre 3 de los nmeros del 0 al 9

Tabla de verdad del circuito

Nos van a quedar dos funciones de 4 variables cada una, lo cual es mucho para poder simplificar por el mtodo algebraico, por lo que usaremos el mtodo de Karnaugh. Usaremos dos diagramas de Karnaugh; uno para la variable b1 y otro para b0.
ba dc 00 01 11 10 00 01 11 10 ba dc 00 01 11 10 00 01 11 10

b1

b0

En primer lugar rellenamos los diagramas con unos en los lugares donde corresponda. b1 en las posiciones

{(0,1,1,0), (0,1,1,1), (1,0,0,0), (1,0,0,1)} y b0 en las posiciones {(0,0,1,1), (0,1,0.0), (0,1,0,1), (1,0,0,1)}
ba dc 00 01 11 10 00 01 11 10 ba dc 00 00 01 11 10

1 1 1

01 11

10

b1

b0

Ahora buscamos grupos de unos lo ms grandes posible. Vemos que para b1 tendremos dos grupos de dos unos: uno formado por

{(0,1,1,1), (0,1,1,0)} y otro por {(1,0,0,0), (1,0,0,1)} . Mientras que para b0 tendremos un grupo de dos unos formado por {(0,1,0.0 ), (0,1,0,1)} y dos grupos de un solo uno correspondientes a las combinaciones {(0,0,1,1)} y {(1,0,0,1)}.
ba dc 00 00 01 11 10 ba dc 00 00 01 11 10

1 1 1

01 11 10

01 11

10

b1

b0

A partir de estos diagramas obtenemos directamente las ecuaciones del circuito. Para b1 tendremos dos trminos: en el primer grupo (el de arriba) cambia la a, mientras que dcb = 011 por lo que nos queda grupo de abajo cambia la a tambin, por lo que nos queda

d cb . En el

d cb . Para b0 operamos de la misma forma.

Observemos que vamos a tener tres trminos, dos de los cuales tendrn todas las variables. Cuanto menores sean los grupos, menos variables desaparecen y por tanto ms variables aparecern en la expresin final.

Las ecuaciones de nuestro circuito sern:

b1 = d cb + d cb

b0 = d cba + d cba + d cb

A partir de estas ecuaciones ya podemos implementar nuestro circuito. Ntese que mediante el mtodo de Karnaugh lo que obtenemos es la expresin mnima de la funcin expresada en forma de suma de productos. Esto no quiere decir que la funcin no se pueda simplificar ms. En ocasiones podremos, pero ya no ser una expresin en forma de suma de productos. En este caso, podramos encontrar una expresin ms simple para b0:

b0 = d cba + d cba + d cb = ac(d b + d b) + d cb = ac(b d ) + d cb

4. ESTADOS NO IMPORTA EN LAS FUNCIONES LGICAS


En ocasiones, podemos encontrar combinaciones de entrada para las que no existe definida una salida. No estamos hablando de que sea 1 o 0, nos referimos a que simplemente, no se va a dar dicha combinacin a la entrada, o si se da, carece de sentido.

Para entender esto mejor pongamos un ejemplo: Sea un tanque de agua con tres sensores (boyas) que indican el nivel del agua. Si se activa el sensor 1 (combinacin 001), significa que el agua llega a ese nivel. Si el agua sube, se activar tambin el segundo sensor (combinacin 011), y as sucesivamente. De forma que la combinacin 000 corresponde al tanque vaco, 111 al tanque lleno, etc.

3 2 1

Pero qu pasa con la combinacin 110, por ejemplo? Qu quiere decir esta combinacin? Pues lo que quiere decir, es que el agua ha activado los sensores 2 y 3, pero no el sensor 1. Por lo que sabemos de fsica esto es imposible, ya que el agua no flota en el aire, por lo que es imposible que se activen los sensores 2 y 3 si antes no se ha activado el sensor 1. Esta combinacin de entrada nunca se va a dar en nuestro sistema. Hay ms combinaciones que nunca se van a dar como la 100, 101 Qu hacemos con estas combinaciones a la hora de disear nuestro circuito?

Como son combinaciones que no se van a dar, la funcin para estos valores no estar definida. Esto quiere decir que la salida para esa combinacin de entrada puede ser cualquier cosa, 1 o 0. Nos da igual que tome un valor u otro, ya que, repetimos: Esa combinacin de entrada no se va dar.

A estas combinaciones imposible se las denomina estados no importa y se representan en la tabla de verdad como una x. Al valor x le podemos asignar el valor lgico 0 o 1 segn nos convenga uno u otro.

Se representan a continuacin la tabla de verdad y los diagramas de Karnaugh de este sistema. La entrada son los tres sensores y la salida el valor binario del nivel del agua entre 0 y 3 (dos bits). Obsrvese como para las combinaciones imposibles (010, 100, 101 y 110) se ha puesto a la salida el estado lgico no importa representado por una x. Al trasladar nuestra tabla de la verdad a los diagramas de Karnaugh trasladamos los unos y las x a las casillas que corresponda.

Ahora hacemos los grupos teniendo en cuenta que podemos usar las x como queramos, o sea, hacer que sean un 1 lgico si con ello conseguimos reducir el nmero de grupos o hacer los grupos mayores. 6

C 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

A b1 b0 0 0 0 1 0 1 0 X X 1 1 0 0 X X 1 X X 0 X X 1 1 1

ba c 0 1 00 01 11 10

ba c 0 1 00 01 11 10

1 X X 1

X X

1 X X 1

X X

b1

b0

Tabla de Verdad

Diagramas de Karnaugh

No es necesario continuar con el problema para darnos cuenta que hemos conseguido reducir considerablemente el nmero de funciones lgicas necesarias. Siempre que podamos, deberemos observar si en nuestro circuito van a aparecer estados no importa, ya que usarlos supondr un ahorro considerable de puertas lgicas en la mayora de los casos.

5. EJEMPLO DE APLICACIN (II)


Para ver la importancia de aplicar los estados no importa al diseo de sistemas digitales, vamos a resolver de nuevo el problema del apartado 3 aplicando los que hemos aprendido acerca de los no importa. Problema Disear un circuito combinacional que realice la divisin entera de un nmero codificado en BCD entre 3.

Esta era la tabla de verdad que obtuvimos anteriormente: Nmero 0 1 2 3 4 5 6 7 8 9 resultado 0 0 0 1 1 1 2 2 2 3

D C B A b1 b0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 1

Divisin entre 3 de los nmeros del 0 al 9

Tabla de verdad del circuito

Si nos fijamos, vemos que la tabla de verdad no est completa. Para 4 bits hay 16 combinaciones de entrada y nosotros solo hemos puesto 10. Por qu? Porque en BCD no se usan las combinaciones superiores, aquellas correspondientes a los nmeros decimales 10, 11, 15.

Pero nosotros, sin darnos cuenta, si que las hemos usado, las hemos asignado el valor 0 como se ve en los diagramas de Karnaugh:
ba dc 00 01 11 10 00 01 11 10 ba dc 00 00 01 11 10

1 1 1

01 11

10

b1

b0

Deberamos incluir en nuestros diagramas de Karnaugh dicha combinaciones como x, en lugar de como 0:
ba dc 00 01 11 10 00 01 11 10 ba dc 00 00 01 11 10

1 1 X 1 X 1 X X X X

1 X 1 X 1 X X

1 X X

01 11 10

b1

b0

Ahora, para realizar los grupos usaremos las x que acabamos de aadir como 1 o como 0 lgico en funcin de lo que ms nos convenga para conseguir el menor nmero de grupos, o bien que stos sean lo ms grandes posible:
ba dc 00 00 01 11 10 ba dc 00 00 01 11 10

1 1 X 1 X 1 X X X X

01 11 10

1 X 1 X 1 X X

1 X X

01 11 10

b1

b0

En esta ocasin nos queda:

b1 = d + cb

b0 = cb + d a + cba

Que como vemos son expresiones bastante menos complejas que las obtenidas en el apartado 3 y adems el circuito se va a comportar exactamente de la misma manera.

También podría gustarte