12) pizarro, j. (2006)

8
1 MÉTODO DE KARNAUGH Jesús Pizarro Peláez MÉTODO DE KARNAUGH............................................................................................. 1 1. INTRODUCCIÓN ....................................................................................................... 1 2. MÉTODO DE KARNAUGH .......................................................................................... 2 3. EJEMPLO DE APLICACIÓN (I) ..................................................................................... 4 4. ESTADOS NO IMPORTA EN LAS FUNCIONES LÓGICAS .................................................. 6 5. EJEMPLO DE APLICACIÓN (II) .................................................................................... 7 1. INTRODUCCIÓN En ocasiones, el método algebraico para simplificar funciones lógicas aplicando los teoremas del álgebra de Boole, puede no ser el mejor medio por varias razones: o Cuando aumenta el número de variables o de términos resulta difícil ver la forma de reducir la expresión. o Se trabaja con grandes cantidades de expresiones muy similares ... · · · · · · d c b a d c b a + por lo que la probabilidad de equivocarse en algún paso es muy elevada (y aunque no nos equivoquemos, siempre resulta farragoso). o Podemos llegar a una expresión que no es la óptima, con el consiguiente incremento en puertas y complejidad del circuito final. Existe un método gráfico para simplificación de funciones que resuelve todos estos problemas: El método de Karnaugh. Con este método la simplificación adquiere las siguientes ventajas con respecto al método algebraico: o Para funciones de tres y cuatro variables se aplica de forma muy sencilla. Para cinco variables puede resultar algo más difícil, y para más… existen otros métodos. 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 práctica), resulta muy sencillo hallar siempre la expresión más óptima de la función. Es por todos estos motivos que el método de Karnaugh sea ampliamente utilizado para sistemas de tres y cuatro variables. A todo esto hay que añadir otra gran ventaja: Es un método muy sencillo de aprender, como vamos a ver a continuación.

Upload: toto-bama

Post on 13-Sep-2015

228 views

Category:

Documents


2 download

DESCRIPTION

efw

TRANSCRIPT

  • 1

    MTODO DE KARNAUGH

    Jess Pizarro Pelez

    MTODO DE KARNAUGH............................................................................................. 1

    1. INTRODUCCIN ....................................................................................................... 1 2. MTODO DE KARNAUGH .......................................................................................... 2 3. EJEMPLO DE APLICACIN (I) ..................................................................................... 4 4. ESTADOS NO IMPORTA EN LAS FUNCIONES LGICAS .................................................. 6 5. 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 ... dcbadcba + 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.

    UserCuadro de texto12) Pizarro, J. (24 de 10 de 2006). Mtodo de Karnaugh. Recuperado el 24 de 05 de 2013, de http://ficus.pntic.mec.es/jpip0006/digital/descargas/metodo%20de%20karnaugh.pdf

    UserSello

    UserCuadro de textoMaterial compilado con fines acadmicos, se prohbe su reproduccin total o parcial sin la autorizacin de cada autor.

  • 2

    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 01 11 10

    00

    01

    11

    10

    ba

    c 00 01 11 10

    0

    1

    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 cbacbacbaf ++= que como se ve, vale 1 para las combinaciones { } { } { } { }1,0,1,1,0,0,0,0,1,, =abc . Pues en el diagrama de Karnaugh pondramos un 1 en cada una de esas casillas.

    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

    ba

    c 00 01 10

    0 1

    1 1 1

    Casillas donde f = 1

  • 3

    { } { } { }1,0,1,0,0,1,, =abc y otro con { } { } { }1,0,1,1,0,0,, =abc 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 cb . 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 ab . Por lo que la funcin simplificada queda: )( cababbcf +=+= .

    A continuacin se ponen unos cuantos ejemplos de grupos posibles para un diagrama de cuatro variables.

    ba

    dc 00 01 11 10

    00

    01 1

    11

    10

    ba

    dc 00 01 11 10

    00

    01 1 1

    11 1 1

    10

    ba

    dc 00 01 11 10

    00 1 1 1 1

    01 1 1 1 1

    11

    10

    ba

    dc 00 01 11 10

    00 1 1

    01 1 1

    11 1 1

    10 1 1

    No cambia ninguno, por lo que abcdf =

    Cambian b y d, por lo que queda caf =

    Cambian a, b y c, por lo que queda df =

    Cambian a, c y d, por lo que queda bf =

    ba

    dc 00 01 11 10

    00

    01

    11

    10 1 1

    ba

    dc 00 01 11 10

    00

    01 1

    11 1

    10

    ba

    dc 00 01 11 10

    00 1 1 1 1

    01

    11

    10

    ba

    dc 00 01 11 10

    00 1

    01 1

    11 1

    10 1

    Cambia a, por lo que queda bcdf =

    Cambia d, por lo que queda abcf =

    Cambian a y b, por lo que queda cdf =

    Cambian d y c, por lo que queda abf =

    ba

    dc 00 01 11 10

    00

    01

    11 1 1

    10

    ba

    dc 00 01 11 10

    00 1 1

    01

    11

    10 1 1

    ba

    dc 00 01 11 10

    00 1 1

    01

    11

    10 1 1

    ba

    dc 00 01 11 10

    00 1 1

    01 1 1

    11 1 1

    10 1 1

    Cambia b, por lo que queda acdf =

    Cambian d y b, por lo que queda acf =

    Cambian d y b, por lo que queda acf =

    Cambian b, c y d, por lo que queda af =

    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.

  • 4

    3. EJEMPLO DE APLICACIN (I)

    Vamos a resolver un problema de lgica combinacional aplicando el mtodo de Karnaugh para obtener la

    funcin simplificada.

    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 resultado

    0 0

    1 0

    2 0

    3 1

    4 1

    5 1

    6 2

    7 2

    8 2

    9 3

    D C B A b1 b0

    0 0 0 0 0 0

    0 0 0 1 0 0

    0 0 1 0 0 0

    0 0 1 1 0 1

    0 1 0 0 0 1

    0 1 0 1 0 1

    0 1 1 0 1 0

    0 1 1 1 1 0

    1 0 0 0 1 0

    1 0 0 1 1 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.

    b1

    ba

    dc 00 01 11 10

    00

    01

    11

    10

    b0

    ba

    dc 00 01 11 10

    00

    01

    11

    10

    Problema Disear un circuito combinacional que realice la divisin entre 3 (entera) de un nmero codificado en BCD.

  • 5

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

    ( ) ( ) ( ) ( ){ }1,0,0,1,0,0,0,1,1,1,1,0,0,1,1,0 y b0 en las posiciones ( ) ( ) ( ) ( ){ }1,0,0,1,1,0,1,0,0.0,1,0,1,1,0,0

    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,0,1,1,1,0 y otro por ( ) ( ){ }1,0,0,1,0,0,0,1 . Mientras que para b0 tendremos un grupo de dos unos formado por ( ) ( ){ }1,0,1,0,0.0,1,0 y dos grupos de un solo uno correspondientes a las combinaciones ( ){ }1,1,0,0 y ( ){ }1,0,0,1 .

    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 bcd . En el

    grupo de abajo cambia la a tambin, por lo que nos queda bcd . 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:

    bcdbcdb 1 +=

    bcdabcdabcdb 0 ++=

    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:

    bcddbcabcdbdbdcabcdabcdabcdb )()(0 +=++=++=

    b1

    ba

    dc 00 01 11 10

    00

    01 1 1

    11

    10 1 1 b0

    ba

    dc 00 01 11 10

    00 1

    01 1 1

    11

    10 1

    b1

    ba

    dc 00 01 11 10

    00

    01 1 1

    11

    10 1 1 b0

    ba

    dc 00 01 11 10

    00 1

    01 1 1

    11

    10 1

  • 6

    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.

    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.

    3 2 1

  • 7

    C B A b1 b0

    0 0 0 0 0

    0 0 1 0 1

    0 1 0 X X

    0 1 1 1 0

    1 0 0 X X

    1 0 1 X X

    1 1 0 X X

    1 1 1 1 1

    b1

    ba

    c 00 01 11 10

    0 1 X

    1 X X 1 X

    b0

    ba

    c 00 01 11 10

    0 1 X

    1 X X 1 X

    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.

    Esta era la tabla de verdad que obtuvimos anteriormente:

    Nmero resultado

    0 0

    1 0

    2 0

    3 1

    4 1

    5 1

    6 2

    7 2

    8 2

    9 3

    D C B A b1 b0

    0 0 0 0 0 0

    0 0 0 1 0 0

    0 0 1 0 0 0

    0 0 1 1 0 1

    0 1 0 0 0 1

    0 1 0 1 0 1

    0 1 1 0 1 0

    0 1 1 1 1 0

    1 0 0 0 1 0

    1 0 0 1 1 1

    Divisin entre 3 de los nmeros del 0 al 9 Tabla de verdad del circuito

    Problema Disear un circuito combinacional que realice la divisin entera de un nmero codificado en BCD entre 3.

  • 8

    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:

    Deberamos incluir en nuestros diagramas de Karnaugh dicha combinaciones como x, en lugar de como 0:

    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:

    b1

    ba

    dc 00 01 11 10

    00

    01 1 1

    11 X X X X

    10 1 1 X X b0

    ba

    dc 00 01 11 10

    00 1

    01 1 1

    11 X X X X

    10 1 X X

    En esta ocasin nos queda:

    bcdb 1 +=

    abcadbcb 0 ++=

    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.

    b1

    ba

    dc 00 01 11 10

    00

    01 1 1

    11

    10 1 1 b0

    ba

    dc 00 01 11 10

    00 1

    01 1 1

    11

    10 1

    b1

    ba

    dc 00 01 11 10

    00

    01 1 1

    11 X X X X

    10 1 1 X X b0

    ba

    dc 00 01 11 10

    00 1

    01 1 1

    11 X X X X

    10 1 X X