Un mapa de Karnaugh ( KM o K-map ) es un diagrama que se puede utilizar para simplificar una expresión de álgebra de Boole . Maurice Karnaugh lo introdujo en 1953 [1] [2] como un refinamiento del diagrama de Veitch de 1952 de Edward W. Veitch , [3] [4] que a su vez fue un redescubrimiento del diagrama lógico de Allan Marquand de 1881 [5] [6] (también conocido como diagrama de Marquand [4] ). También es útil para comprender circuitos lógicos. [4] Los mapas de Karnaugh también se conocen como diagramas de Marquand-Veitch , [4] diagramas de Svoboda [7] -(aunque solo en raras ocasiones)- y mapas de Karnaugh-Veitch ( mapas KV ).
Definición
Un mapa de Karnaugh reduce la necesidad de realizar cálculos extensos al aprovechar la capacidad de reconocimiento de patrones de los humanos. [1] También permite la rápida identificación y eliminación de posibles condiciones de carrera . [ Aclaración necesaria ]
Los resultados booleanos requeridos se transfieren desde una tabla de verdad a una cuadrícula bidimensional donde, en los mapas de Karnaugh, las celdas se ordenan en código Gray , [8] [4] y cada posición de celda representa una combinación de condiciones de entrada. Las celdas también se conocen como minterms, mientras que cada valor de celda representa el valor de salida correspondiente de la función booleana. Se identifican grupos óptimos de 1 o 0, que representan los términos de una forma canónica de la lógica en la tabla de verdad original. [9] Estos términos se pueden usar para escribir una expresión booleana mínima que represente la lógica requerida.
Los mapas de Karnaugh se utilizan para simplificar los requisitos lógicos del mundo real de modo que se puedan implementar utilizando el número mínimo de puertas lógicas . Una expresión de suma de productos (SOP) siempre se puede implementar utilizando puertas AND que alimentan a una puerta OR , y una expresión de producto de sumas (POS) conduce a puertas OR que alimentan a una puerta AND. La expresión POS da un complemento de la función (si F es la función, entonces su complemento será F'). [10] Los mapas de Karnaugh también se pueden utilizar para simplificar expresiones lógicas en el diseño de software. Las condiciones booleanas, como se utilizan por ejemplo en declaraciones condicionales , pueden volverse muy complicadas, lo que hace que el código sea difícil de leer y mantener. Una vez minimizadas, las expresiones canónicas de suma de productos y producto de sumas se pueden implementar directamente utilizando operadores lógicos AND y OR. [11]
Ejemplo
Los mapas de Karnaugh se utilizan para facilitar la simplificación de las funciones del álgebra de Boole . Por ejemplo, considere la función booleana descrita por la siguiente tabla de verdad .
A continuación se presentan dos notaciones diferentes que describen la misma función en álgebra booleana no simplificada, utilizando las variables booleanas A , B , C , D y sus inversas.
¿Dónde están los minterms a mapear (es decir, filas que tienen salida 1 en la tabla de verdad)?
¿Dónde están los términos máximos a mapear (es decir, filas que tienen salida 0 en la tabla de verdad)?
Construcción
En el ejemplo anterior, las cuatro variables de entrada se pueden combinar de 16 maneras diferentes, por lo que la tabla de verdad tiene 16 filas y el mapa de Karnaugh tiene 16 posiciones. Por lo tanto, el mapa de Karnaugh está organizado en una cuadrícula de 4 × 4.
Los índices de filas y columnas (mostrados en la parte superior e inferior del lado izquierdo del mapa de Karnaugh) están ordenados en código Gray en lugar de en orden numérico binario. El código Gray garantiza que solo cambie una variable entre cada par de celdas adyacentes. Cada celda del mapa de Karnaugh completo contiene un dígito binario que representa la salida de la función para esa combinación de entradas.
Agrupamiento
Una vez construido el mapa de Karnaugh, se utiliza para encontrar una de las formas más simples posibles (una forma canónica ) para la información de la tabla de verdad. Los 1 adyacentes en el mapa de Karnaugh representan oportunidades para simplificar la expresión. Los mintérminos ('términos mínimos') para la expresión final se encuentran al encerrar en un círculo los grupos de 1 en el mapa. Los grupos de mintérminos deben ser rectangulares y deben tener un área que sea una potencia de dos (es decir, 1, 2, 4, 8...). Los rectángulos de mintérminos deben ser lo más grandes posible sin contener ningún 0. Los grupos pueden superponerse para que cada uno sea más grande. Las agrupaciones óptimas en el ejemplo siguiente están marcadas por las líneas verde, roja y azul, y los grupos rojo y verde se superponen. El grupo rojo es un cuadrado de 2 × 2, el grupo verde es un rectángulo de 4 × 1 y el área de superposición se indica en marrón.
Las celdas suelen estar indicadas por una abreviatura que describe el valor lógico de las entradas que cubre la celda. Por ejemplo, AD significaría una celda que cubre el área de 2x2 donde A y D son verdaderas, es decir, las celdas numeradas 13, 9, 15, 11 en el diagrama anterior. Por otro lado, A D significaría las celdas donde A es verdadera y D es falsa (es decir, D es verdadera).
La cuadrícula está conectada toroidalmente , lo que significa que los grupos rectangulares pueden envolverse a lo largo de los bordes (ver imagen). Las celdas del extremo derecho son en realidad "adyacentes" a las del extremo izquierdo, en el sentido de que los valores de entrada correspondientes solo difieren en un bit; de manera similar, también lo son las de la parte superior y las de la parte inferior. Por lo tanto, A D puede ser un término válido (incluye las celdas 12 y 8 en la parte superior y se envuelve hacia la parte inferior para incluir las celdas 10 y 14), al igual que B D , que incluye las cuatro esquinas.
Solución
Una vez que se ha construido el mapa de Karnaugh y se han vinculado los 1 adyacentes mediante cajas rectangulares y cuadradas, los mintérminos algebraicos se pueden encontrar examinando qué variables permanecen iguales dentro de cada caja.
Para el grupo rojo:
A es el mismo y es igual a 1 en todo el cuadro, por lo tanto, debe incluirse en la representación algebraica del mintérmino rojo.
B no mantiene el mismo estado (cambia de 1 a 0) y por lo tanto debe excluirse.
C no cambia. Siempre es 0, por lo que su complemento, NOT-C, debe incluirse. Por lo tanto, C debe incluirse.
D cambia, por lo que queda excluido.
Por lo tanto, el primer mintérmino en la expresión de suma de productos booleana es A C .
En el caso de la agrupación verde, A y B mantienen el mismo estado, mientras que C y D cambian. B es 0 y debe ser negado antes de poder incluirse. Por lo tanto, el segundo término es A B . Nótese que es aceptable que la agrupación verde se superponga con la roja.
De la misma manera, la agrupación azul da el término BC D .
Las soluciones de cada agrupación se combinan: la forma normal del circuito es .
Así, el mapa de Karnaugh ha guiado una simplificación de
También habría sido posible derivar esta simplificación aplicando cuidadosamente los axiomas del álgebra de Boole , pero el tiempo que lleva hacerlo crece exponencialmente con el número de términos.
Inverso
La inversa de una función se resuelve de la misma manera, agrupando los 0. [nb 1]
Los tres términos que cubren la inversa se muestran con cuadros grises con bordes de diferentes colores:
Los mapas de Karnaugh también permiten minimizar más fácilmente las funciones cuyas tablas de verdad incluyen condiciones de " no importa ". Una condición de "no importa" es una combinación de entradas para las cuales al diseñador no le importa cuál es la salida. Por lo tanto, las condiciones de "no importa" pueden incluirse o excluirse de cualquier grupo rectangular, lo que lo haga más grande. Por lo general, se indican en el mapa con un guión o una X.
El ejemplo de la derecha es el mismo que el ejemplo anterior, pero con el valor de f (1,1,1,1) reemplazado por un "no importa". Esto permite que el término rojo se expanda completamente hacia abajo y, por lo tanto, elimina por completo el término verde.
Esto produce la nueva ecuación mínima:
Tenga en cuenta que el primer término es simplemente A , no A C. En este caso, al no importarle se le ha quitado un término (el rectángulo verde), se ha simplificado otro (el rojo) y se ha eliminado el peligro de carrera (eliminando el término amarillo como se muestra en la siguiente sección sobre peligros de carrera).
El caso inverso se simplifica de la siguiente manera:
Los mapas de Karnaugh son útiles para detectar y eliminar condiciones de carrera . Los peligros de carrera son muy fáciles de detectar con un mapa de Karnaugh, porque puede existir una condición de carrera al moverse entre cualquier par de regiones adyacentes, pero disjuntas, circunscritas en el mapa. Sin embargo, debido a la naturaleza de la codificación Gray, adyacente tiene una definición especial explicada anteriormente: de hecho, nos estamos moviendo sobre un toro, en lugar de un rectángulo, que envuelve la parte superior, inferior y los lados.
En el ejemplo anterior, existe una condición de carrera potencial cuando C es 1 y D es 0, A es 1 y B cambia de 1 a 0 (pasando del estado azul al estado verde). Para este caso, la salida se define para permanecer sin cambios en 1, pero debido a que esta transición no está cubierta por un término específico en la ecuación, existe la posibilidad de que se produzca una falla (una transición momentánea de la salida a 0).
Hay un segundo error potencial en el mismo ejemplo que es más difícil de detectar: cuando D es 0 y A y B son ambos 1, C cambia de 1 a 0 (pasa del estado azul al estado rojo). En este caso, el error se extiende desde la parte superior del mapa hasta la parte inferior.
La naturaleza física de la implementación determinará si se producirán o no fallos, y la aplicación determinará si es necesario preocuparse por ellos. En la lógica sincronizada, basta con que la lógica se asiente en el valor deseado a tiempo para cumplir con el plazo de tiempo. En nuestro ejemplo, no estamos considerando la lógica sincronizada.
En nuestro caso, un término adicional eliminaría el riesgo de carrera potencial, creando un puente entre los estados de salida verde y azul o los estados de salida azul y rojo: esto se muestra como la región amarilla (que envuelve desde la parte inferior hasta la parte superior de la mitad derecha) en el diagrama adyacente.
El término es redundante en términos de la lógica estática del sistema, pero dichos términos redundantes o de consenso suelen ser necesarios para garantizar un rendimiento dinámico sin competencia.
De manera similar, se debe agregar un término adicional de a la inversa para eliminar otro riesgo potencial de carrera. La aplicación de las leyes de De Morgan crea otra expresión de producto de sumas para f , pero con un nuevo factor de .
Ejemplos de mapas de 2 variables
Los siguientes son todos los posibles mapas de Karnaugh de 2 variables, 2 × 2. Junto con cada uno se enumeran los mintérminos como función de y la ecuación mínima libre de riesgo de carrera ( ver sección anterior ). Un mintérmino se define como una expresión que da la forma más mínima de expresión de las variables mapeadas. Se pueden formar todos los bloques interconectados horizontales y verticales posibles. Estos bloques deben ser del tamaño de las potencias de 2 (1, 2, 4, 8, 16, 32, ...). Estas expresiones crean un mapeo lógico mínimo de las expresiones de variables lógicas mínimas para las expresiones binarias que se mapearán. Aquí están todos los bloques con un campo.
Un bloque puede continuar en la parte inferior, superior, izquierda o derecha del gráfico. Incluso puede extenderse más allá del borde del gráfico para minimizar las variables. Esto se debe a que cada variable lógica corresponde a cada columna vertical y fila horizontal. Una visualización del mapa k puede considerarse cilíndrica. Los campos en los bordes de la izquierda y la derecha son adyacentes, y la parte superior e inferior son adyacentes. Los mapas k para cuatro variables deben representarse como una forma de rosquilla o toro. Las cuatro esquinas del cuadrado dibujado por el mapa k son adyacentes. Se necesitan mapas aún más complejos para 5 variables y más.
Σ m (0); K = 0
Σ m (1); K = A ′ B ′
Σ m (2); K = AB ′
Σ m (3); K = A ′ B
Σ m (4); K = AB
Σ m (1,2); K = B ′
Σ m (1,3); K = A ′
Σ m (1,4); K = A ′ B ′ + AB
Σ m (2,3); K = AB ′ + A ′ B
Σ m (2,4); K = A
Σ m (3,4); K = B
Σ m (1,2,3); K = A' + B ′
Σ m (1,2,4); K = A + B ′
Σ m (1,3,4); K = A ′ + B
Σ m (2,3,4); K = A + B
Σ m (1,2,3,4); K = 1
Métodos gráficos relacionados
Los métodos de minimización gráfica relacionados incluyen:
Diagrama de Marquand (1881) de Allan Marquand (1853-1924) [5] [6] [4]
Gráfico de Veitch (1952) de Edward W. Veitch (1924–2013) [3] [4]
Gráfico de Svoboda (1956) de Antonín Svoboda (1907-1980) [7]
Mapa de Mahoney ( mapa M , números de designación , 1963) de Matthew V. Mahoney (una extensión simétrica de reflexión de los mapas de Karnaugh para un mayor número de entradas)
Técnicas de mapas de Karnaugh reducidos (RKM) (a partir de 1969) como variables infrecuentes , variables ingresadas en el mapa (MEV), mapas ingresados por variables (VEM) o mapas de Karnaugh ingresados por variables (VEKM) por GW Schultz, Thomas E. Osborne, Christopher R. Clare, J. Robert Burgoon, Larry L. Dornhoff, William I. Fletcher, Ali M. Rushdi y otros (varias extensiones sucesivas de mapas de Karnaugh basadas en entradas variables para un mayor número de entradas)
Mapa de anillos de términos mínimos (MRM, 1990) de Thomas R. McCalla (una extensión tridimensional de los mapas de Karnaugh para un mayor número de entradas)
^ Curtis, Herbert Allen (1962). Un nuevo enfoque para el diseño de circuitos de conmutación . The Bell Laboratories Series (1.ª ed.). Princeton, Nueva Jersey, EE. UU.: D. van Nostrand Company, Inc. ISBN0-44201794-4. OCLC 1036797958. S2CID 57068910. ISBN 978-0-44201794-1 . ark:/13960/t56d6st0q. (viii+635 páginas) (NB: Este libro fue reimpreso por Chin Jih en 1969.)
^ ab Veitch, Edward Westbrook (1952-05-03) [1952-05-02]. "Un método gráfico para simplificar funciones de verdad". Actas de la reunión nacional de la ACM de 1952 (Pittsburgh) en - ACM '52 . Nueva York, EE. UU.: Association for Computing Machinery . págs. 127–133. doi :10.1145/609784.609801. S2CID 17284651.
^ abcdefg Brown, Frank Markham (2012) [2003, 1990]. Razonamiento booleano: la lógica de las ecuaciones booleanas (reedición de la 2.ª ed.). Mineola, Nueva York: Dover Publications, Inc. ISBN978-0-486-42785-0.[1]
^ ab Marquand, Allan (1881). "XXXIII: Sobre diagramas lógicos para n términos". The London, Edinburgh, and Dublin Philosophical Magazine and Journal of Science . 5. 12 (75): 266–270. doi :10.1080/14786448108627104 . Consultado el 15 de mayo de 2017 .(NB. Muchas fuentes secundarias citan erróneamente este trabajo como "Un diagrama lógico para n términos" o "Sobre un diagrama lógico para n términos").
^ ab Gardner, Martin (1958). "6. La máquina de Marquand y otros". Máquinas lógicas y diagramas (1.ª ed.). Nueva York, EE. UU.: McGraw-Hill Book Company, Inc., págs. 104-116. ISBN1-11784984-8. LCCN 58-6683. ark:/13960/t5cc1sj6b.(x+157 páginas)
^ ab Klir, George Jiří (mayo de 1972). "Notas de referencia al capítulo 2". Introducción a la metodología de los circuitos de conmutación (1.ª ed.). Binghamton, Nueva York, EE. UU.: Litton Educational Publishing, Inc. / D. van Nostrand Company . pág. 84. ISBN0-442-24463-0. LCCN 72-181095. C4463-000-3.(xvi+573+1 páginas)
^ Wakerly, John F. (1994). Diseño digital: principios y prácticas . Nueva Jersey, EE. UU.: Prentice Hall . pp. 48–49, 222. ISBN0-13-211459-3.(NB. Las dos secciones de la página tomadas en conjunto dicen que los K-maps están etiquetados con código Gray . La primera sección dice que están etiquetados con un código que cambia solo un bit entre entradas y la segunda sección dice que dicho código se llama código Gray).
^ Belton, David (abril de 1998). «Mapas de Karnaugh: reglas de simplificación». Archivado desde el original el 18 de abril de 2017. Consultado el 30 de mayo de 2009 .
^ Cook, Aaron. "Uso de mapas de Karnaugh para simplificar el código". Quantum Rarity. Archivado desde el original el 18 de abril de 2017. Consultado el 7 de octubre de 2012 .
Vingron, Shimon Peter (2004) [5 de noviembre de 2003]. "Mapas de Karnaugh". Teoría de la conmutación: comprensión a través de la lógica de predicados . Berlín, Heidelberg, Nueva York: Springer-Verlag . Págs. 57–76. ISBN.3-540-40343-4.
Wickes, William E. (1968). "3.5. Diagramas de Veitch". Diseño lógico con circuitos integrados . Nueva York, EE. UU.: John Wiley & Sons . págs. 36–49. LCCN 68-21185. pág. 36: […] un refinamiento del diagrama de Venn en el que los círculos se reemplazan por cuadrados y se organizan en forma de matriz. El diagrama de Veitch etiqueta los cuadrados con los minitérminos . Karnaugh asignó 1 y 0 a los cuadrados y sus etiquetas y dedujo el esquema de numeración de uso común.
Maxfield, Clive "Max" (2006-11-29). "Lógica Reed-Muller". Lógica 101. EE Times . Parte 3. Archivado desde el original el 2017-04-19 . Consultado el 2017-04-19 .
Lind, Larry Frederick; Nelson, John Christopher Cunliffe (1977). "Sección 2.3". Análisis y diseño de sistemas digitales secuenciales. Macmillan Press . ISBN 0-33319266-4.(146 páginas)
Holder, Michel Elizabeth (marzo de 2005) [14 de febrero de 2005]. "Una técnica de mapa de Karnaugh modificada". IEEE Transactions on Education . 48 (1). IEEE : 206–207. Bibcode :2005ITEdu..48..206H. doi :10.1109/TE.2004.832879. eISSN 1557-9638. ISSN 0018-9359. S2CID 25576523.
Cavanagh, Joseph (2008). Fundamentos de aritmética informática y Verilog HDL (1.ª ed.). CRC Press .
Grund, Jürgen (2011). KV-Diagramme in der Schaltalgebra - Verknüpfungen, Beweise, Normalformen, schaltalgebraische Umformungen, Anschauungsmodelle, Paradebeispiele [ Diagramas KV en álgebra booleana - relaciones, demostraciones, formas normales, transformaciones algebraicas, modelos ilustrativos, ejemplos típicos ] (ejecutable de Windows/Mac o Adobe Flash -Navegador compatible en CD-ROM) (libro electrónico) (en alemán) (1 ed.). Berlín, Alemania: viademica Verlag. ISBN 978-3-939290-08-7. Archivado (PDF) del original el 12 de noviembre de 2022. Consultado el 26 de noviembre de 2022 .[2] (282 páginas con 14 animaciones)