Minimización mediante el mapa de Karnaugh Mario Medina C. mariomedina@udec.cl Minimización lógica z Minimización lógica: conjunto de técnicas para obtener la representación más simple de una expresión booleana z z Diversos criterios de minimización Métodos de minimización z z z Mapas de Karnaugh-Veitch Método de Quine-McCluskey Método de Espresso © Mario Medina Criterios de minimización z Minimizar z z z z z z z z z Tamaño de un circuito Consumo de potencia Disipación de potencia Costo Errores de operación Número de compuertas Tipo de compuertas Complejidad de compuertas lógicas Número de niveles de compuertas en cascada z Reducir z z z z z No normalizados z z z z Menos literales y puertas z Puertas más simples (menor número de entradas) Mayor retardo de salida z Camino crítico AND-NOT-AND-OR Z3: Reduce el número total de puertas z Usa una puerta XOR, que puede ser más lenta © Mario Medina C. A B C 0 0 0 Z 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 Minimización lógica No es posible minimizar todos los criterios al mismo tiempo z Técnicas tradicionales de minimización z z Z2: Implementación multinivel z z z Z = A’B’C + A’BC + AB’C + ABC’ Z1 = ABC’ + A’C + B’C Z2 = TC’ + T’C; T = AB Z3 = (AB) ⊕ C Otros Z: Estructura típica SoP de 2 niveles Z1: Estructuralmente similar a Z (SoP) z Sea Z (A,B,C) definida en la siguiente tabla de verdad y sus formas equivalentes Z1, Z2, Z3 z Reutilización de bloques Ejemplo z z Maximizar z z Número de conexiones entre puertas Retardo global de un circuito Número de literales Ejemplo Se encargan de minimizar el retardo del circuito resultante z z A expensas de aumentar el número y complejidad de los productos ó sumas Minimización en 2 niveles z z Suma-de-productos (SoP) Producto-de-sumas (PoS) 1 Motivación para los métodos de minimización lógica z Usar reglas del álgebra binaria para reducir expresiones booleanas z z z No hay algoritmos que aseguren llegar a una solución mínima z z z Buscar repetidamente subconjuntos de 2 términos que difieran sólo en una variable Eliminar la redundancia F = A(B’ + B) = A G = B’(A’ + A) = B’ z A B F A B G 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 1 0 1 1 1 1 1 1 0 La variable que aparece en forma negada y no negada es redundante y se puede eliminar Mapa de Karnaugh z Representación matricial de la tabla de verdad de una función B Proceso manual es engorroso Métodos ordenan la tabla de verdad para reconocer fácilmente patrones a simplificar Gráficamente (Karnaugh) z En forma tabular (Quine-McCluskey) Mapa de Karnaugh C 0 1 AB A 0 1 0 1 0 2 1 3 AB CD 00 01 11 10 0 2 6 4 1 3 7 5 00 01 11 10 00 01 11 10 0 4 12 1 5 13 8 9 3 7 15 11 2 6 14 10 Correspondencia K-map y minitérminos (3 variables) El número al interior de cada celda z representación decimal para la combinación de entradas asociada Cada celda es un minterm (o maxterm) z z z Aumenta probabilidad de error z z z Proceso tedioso, largo y manual Método básico z z F = AB’+ AB, y G = A’B’ + AB’ La simplificación nos lleva a Multiplicar una expresión por 1 (X+X’) y reducir Base para los métodos de simplificación z z Resultado depende de la intuición y experiencia del diseñador z z Sean las funciones F y G definidas como Problema puede ser más complicado que el original z z Base para los métodos de simplificación La celda almacena la salida asociada al minterm Los índices se forman mediante un código adyacente (Gray) z z 2 celdas adyacentes tienen distancia 1 La última columna (fila) es adyacente con la primera columna (fila) © Mario Medina C. 2 Correspondencia K-map y minitérminos (4 variables) Mapa de Karnaugh Mapa de Karnaugh Mapa de Karnaugh z Expresar en un K-Map la función z F(A, B, C, D) = ∑m(4, 5, 6, 7, 9, 10, 11, 13) AB CD 00 01 11 10 z 00 01 11 10 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 AB ACD ABC Equivalente a la función Sea F(X, Y, Z, W) = XY z X’YZ’W está expresado en + X’WZ + X’YZ’W forma canónica y genera XY sólo un minterm ZW 00 01 11 10 z X’WZ genera 2 minterms 0 0 1 0 00 0 1 1 0 01 (X’WYZ + X’WY’Z) 1 1 1 0 11 z YX genera 4 minterms 0 0 1 0 10 (YXW’Z’ + YXWZ’ + YXW’Z + YXWZ) F(A, B, C, D) = A’B + AB’C + AC’D Mapas de Karnaugh z En general, para un función de n variables, un término producto no normalizado de n - r variables genera 2r minitérminos z Si n = 4, Término producto de 4 variables da 1 minterm z Término producto de 3 variables da 2 minterms z Término producto de 2 variables da 4 minterms z Término producto de 1 variable da 8 minterms z Celdas adyacentes Adyacencia del mapa permite visualizar grupos de celdas contiguas a agrupar z En un mapa de n variables, cada celda es lógicamente adyacente a otras n celdas z z Se considera adyacencia horizontal y vertical, pero no diagonal A AB 00 01 11 10 0 000 010 110 100 1 001 011 111 101 C B © Mario Medina C. 3 Celdas adyacentes en mapa de Karnaugh Representación alternativa mapas de Karnaugh z Mapa de 4 variables como diagrama de Venn z z Un mapa de Karnaugh puede representarse también como un diagrama de Venn Diagrama de Venn para función de 4 variables z Subcubos z Subcubo: un conjunto de 2r celdas de valor 1 o 0 (para minterms o maxterms, respectivamente), en el que cada celda es lógicamente adyacente a otras r celdas de valor 1 (o 0) z z A AB CD 00 01 11 10 00 0 0 0 0 01 1 1 0 0 11 1 1 0 0 10 0 0 0 0 F(A, B, C, D) = A’B’C’D + A’BC’D + A’B’CD + A’BCD F(A, B, C, D) = A’C’D + A’CD F(A, B, C, D) = A’D D B © Mario Medina C. Usando álgebra booleana z En el mapa, se puede ver la agrupación óptima de celdas (minterms) El término producto (o suma) que se obtiene a partir de un subcubo de 2r celdas se compone de (n-r) literales. z Círculo y ocho centrales se traslapan Ejemplo de simplificación de funciones C Indicar sólo las filas y columnas donde las variables valen 1 Sólo aparecen las variables que no cambian en todas las celdas Ejemplo de simplificación de funciones z Sea el siguiente mapa de Karnaugh z La agrupación central es redundante z 00 01 11 10 00 0 0 0 0 01 0 0 1 1 11 0 1 1 0 10 0 0 0 0 Celdas ya están cubiertas por otros términos z Expresión mínima tiene sólo 2 productos z Demostración gráfica del teorema del consenso! F(A, B, C, D) = AC’D + BCD A AB CD D C B 4 Ejemplo de simplificación de funciones AB CD z A 00 01 11 10 00 1 0 0 1 01 0 1 0 0 11 1 1 10 1 1 1 1 1 1 B Sea la función F(A, B, C, D) = ∑m(0, 2, 3, 5, 6, 7, 8, 10, 11, 14, 15) z D C Ejemplos de simplificación La función equivalente es F(A, B, C, D) = C + A’BD + B’D’ z Se requiere encontrar el menor número de subcubos que cubran todas las salidas 1 (ó 0) Ejemplos de simplificación Ejemplos de simplificación Definiciones Minimización de funciones usando el Mapa de Karnaugh Implicante de una función: elemento o grupo de elementos que pueden combinarse en un mapa de Karnaugh y hacen 1 la función z Implicante primario: implicante que no puede combinarse, o no puede ser cubierto por otro implicante de la función z Implicante primario esencial: implicante primario que contiene celdas no cubiertas por ningún otro implicante primario. z © Mario Medina C. z Objetivos de la minimización z z z z Convertir todos los implicantes en implicantes primarios Cubrir todos los 1s (o 0s) utilizando el menor número posible de implicantes primarios Todos los implicantes primarios esenciales deben estar en el resultado final La minimización no es necesariamente única 5 Implicantes primarios y esenciales Implicantes primarios y esenciales 6 implicantes primarios z 2 implicantes esenciales z A AB CD 00 01 11 10 00 0 1 1 0 01 1 1 1 0 AC, BC’ BD, CD, AC, B’C C BC’ + AC + A’B’D 11 1 0 1 1 10 0 0 1 1 3 implicantes esenciales z Los implicantes esenciales bastan para cubrir el mapa Expresión mínima z B z A AB CD 00 01 11 10 00 0 0 0 0 01 0 1 1 0 11 1 1 1 1 10 1 0 1 1 BD, AC, B’C D Expresión mínima z 4 implicantes primarios z A’B’D, BC’, AC, A’C’D, AB, B’CD D C BD + AC + B’C Implicantes primarios y esenciales Simplificación con maxterms 5 implicantes primarios z A’C’D, ABC’, A’BC, ACD, BD 4 implicantes esenciales z z Mismo procedimiento pero agrupando AB CD A’C’D, ABC’, A’BC, ACD Los implicantes esenciales bastan para cubrir el mapa Expresión mínima z z B A 00 01 11 10 00 0 0 1 0 01 1 1 1 0 11 0 1 1 1 10 0 1 0 0 los 0s z La formación de un maxterm a partir de los valores 0 o 1 de las entradas es inversa a la del minterm z Equivalente a agrupar los 0s para formar términos producto de F, y luego aplicar DeMorgan para obtener la expresion en PoS D C B A’C’D + ABC’ + A’BC + ACD Simplificación con maxterms AB CD A 00 01 11 10 00 1 0 0 1 01 0 1 0 0 11 1 1 1 1 10 1 1 1 1 F = (B + C + D) (A + C + D) (B + C + D) z D C Condiciones superfluas En algunos circuitos pueden existir combinaciones de entrada que no pueden ocurrir z B Considerando los 0s como los minterms de F F = B C’ D’ + A C’D + B’C’D F = B C’D’ + A C’D + B’C’D F = (B + C + D) (A + C + D) (B + C + D) © Mario Medina C. z Aunque en la implementación la salida asumirá un valor lógico, al diseñador “no le importa” cual sea y no es necesario especificarla. Un circuito con entradas BCD 8421 tendrá sólo 10 combinaciones de entradas válidas de las 16 posibles. z Esto implica que las salidas asociadas al rango 1010 al 1111 pueden tener cualquier valor, pues nunca ocurrirán. 6 Funciones con condiciones superfluas Ejercicio: BCD incremento en 1 z Sea una función que recibe como entrada un dígito en BCD y cómo salida genera el dígito de entrada incrementado en 1 en forma circular A B C D W X Y Z F A B C D W X Y 0 0 0 0 0 0 0 Z 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 X X X z X Ojo!! Los términos X no corresponden ni a un 1 ni a un 0 1 1 X X X X z 0 0 X X X X z 1 1 0 1 X X X X 1 1 0 X X X X 1 1 1 1 X X X X Por ejemplo, en el ejemplo anterior, la función de salida Z podría implementarse simplemente como D’ Funciones con condiciones superfluas (minterms) AB CD z 0 1 Si tratamos esta X como 1, podemos formar un subcubo de orden 2. Estas funciones se llaman incompletamente especificadas z Aunque si tomarán un valor de salida definido Un término superfluo es una X tanto en F como en F’ Condiciones superfluas y KMaps z Generalmente se les asigna un estado inactivo, pero esto no simplifica el diseño A Condiciones superfluas, opcionales o indiferentes (don’t care) 1 La asignación adecuada de valores de salida definidos a las condiciones superfluas pueden simplificar el diseño. z z 1 Eventualmente, los valores superfluos toman un valor lógico definido por el diseñador z Salidas asumen valor X para las combinaciones de entrada que no importan. 1 Funciones con condiciones superfluas z z Los estados superfluos X pueden ser tratados individualmente como 0s o 1s con el fin de ayudar en el proceso de minimización z AB CD Formación de subcubos de mayor orden A 00 01 11 10 00 0 0 X 0 01 1 1 X 1 11 1 1 0 0 10 0 X 0 0 F(A, B, C, D) = ∑m(1,3,5,7,9) + ∑d(6,12,13) D C B Funciones con condiciones superfluas (maxterms) AB CD A 00 01 11 10 00 0 0 X 0 00 01 11 10 00 0 0 X 0 01 1 1 X 1 01 1 1 X 1 11 1 1 0 0 10 0 X 0 0 Tratar esta X como 1 simplifica el problema D D C 11 1 1 0 0 10 0 X 0 0 B Tratar esta X como 0 simplifica el problema. © Mario Medina C. C F(A,B,C,D) = ∑m(1,3,5,7,9) + ∑d(6,12,13) F = A’D + B’C’D (sin considerar las X) F = C’D + A’D (considerando las X) Si tratamos esta X como 0, podemos formar un subcubo de orden 3. B Lo mismo ocurre si deseamos la expresión mínima en PoS (agrupando 0s): F = D(A’ + C’) Si se trata X como 1 en un mapa, debe tratarse igual en el otro mapa! 7 Mapa de Karnaugh de 5 variables z Mapa de Karnaugh de 5 variables Se usan 2 mapas de 4 variables y se deja una variable “afuera” BC DE z z BC DE 00 01 11 10 0 00 01 11 10 4 12 8 1 5 13 9 3 7 15 11 2 6 14 10 00 01 11 10 00 01 11 10 z 16 20 28 24 17 21 29 25 19 23 31 27 18 22 30 26 A=1 A=0 Mapa de Karnaugh de 5 variables Mapa de Karnaugh de 5 variables F(A, B, C, D, E) = ∑ m(2,5,7,8,10,13,15,17,19,21,23,24,29,31) BC 00 DE Mapa de 5 variables Dejamos variable A “afuera” X = DE’ + B’CE + A’BD’ + BC’D’E 01 11 10 BC 00 DE 3 01 11 10 00 0 0 0 1 00 0 0 0 1 01 0 1 1 0 1 1 1 0 11 0 1 1 0 01 2 11 1 1 1 0 DE A =0 01 10 1 0 0 1 10 4 1 A=0 0 0 0 1 3 6 00 11 10 10 12 8 13 15 14 BC 00 DE 00 A=0 11 00 01 11 16 20 28 1 17 19 18 21 23 22 29 31 1 30 26 00 DE 00 A=1 11 1 01 1 1 01 25 27 1 1 BC 10 24 10 1 1 10 10 11 1 01 9 11 01 1 11 10 1 1 1 10 F(A, B, C, D, E) = ∑ m(2,5,7,8,10,13,15,17,19,21,23,24,29,31) 4 Implicantes esenciales en mapa de 5 variables © Mario Medina C. 7 DE A =1 A=1 2 11 4 5 3 2 01 BC 0 F(A, B, C, D, E) = C E + A B E + B C D E + A C D E 0 1 11 01 10 BC 00 00 F(A, B, C, D, E) = C E + A B E + B C D E + A C D E Representación espejo de mapa de 5 variables 8 Representación alternativa z Representación alternativa Diagrama muestra celdas adyacentes a minitérmino 5 z Representación alternativa de un mapa de 5 variables z Mapa de Karnaugh de 6 variables EF 00 AB =00 CD 00 1 11 10 01 0 01 3 7 2 6 11 4 5 15 14 10 12 13 8 9 CD EF 00 00 48 01 11 11 10 49 51 50 60 53 55 54 11 52 61 63 62 00 01 11 10 10 1 EF 59 CD EF 00 01 11 10 AB =10 00 32 36 44 40 01 33 37 45 41 11 35 39 47 43 10 34 38 46 42 01 11 10 1 01 10 AB =11 1 ⎛ 2, 8, 10, 18, 24, ⎞ ⎜ ⎟ F(A, B, C, D, E, F) = ∑ m⎜ 26, 34, 37, 42, 45, ⎟ ⎜ ⎟ ⎝ 50, 53, 58, 61 ⎠ A=0 01 1 11 1 A=1 1 CD EF 00 01 11 AB =10 00 01 1 1 01 11 10 EF 10 00 01 1 4 12 8 00 16 20 28 24 01 1 5 13 9 01 17 21 29 25 11 3 7 15 11 11 19 23 31 27 10 2 6 14 10 10 18 22 30 26 CD 00 01 11 10 EF 00 01 Mapa de Karnaugh de 6 variables CD 00 00 EF AB =00 01 11 10 1 11 10 00 32 36 44 40 00 48 52 60 56 01 33 37 45 41 01 49 53 61 57 11 35 39 47 43 11 51 55 63 59 10 34 38 46 42 10 50 54 62 58 B=0 1 10 0 11 10 11 00 EF 10 1 11 10 00 CD 1 CD EF 00 00 01 57 58 1 11 10 56 1 CD EF 00 AB =01 00 CD CD CD 11 10 01 EF 00 Mapa de Karnaugh de 6 variables 01 CD EF 00 01 11 10 AB =01 00 16 20 28 24 01 17 21 29 25 11 19 23 31 27 10 18 22 30 26 AB =11 AB =00 Triángulos superiores son adyacentes B=1 Mapas de Karnaugh con variables en el mapa 01 11 10 1 ⎛ 2, 8, 10, 18, 24, ⎞ ⎟ ⎜ F(A, B, C, D, E, F) = ∑ m⎜ 26, 34, 37, 42, 45, ⎟ ⎟ ⎜ 50, 53, 58, 61 ⎠ ⎝ 01 11 10 1 01 Alternativa para representar más variables aún en un mapa z 11 10 1 1 CD EF 00 01 11 10 00 AB =11 F(A, B, C, D, E, F) = D E F + A D E F + A C D F z 1 CD EF 00 AB =01 00 1 01 Celdas no almacenan valores 0 ó 1, sino que almacenan expresiones con variables que no están en el mapa 1 11 10 1 1 CD EF 00 01 11 10 00 AB =10 01 1 1 11 10 © Mario Medina C. 1 1 9 Mapas de Karnaugh con variables en el mapa z Ejemplo: representar la función F(A, B, C, D) = A’B’C + A’BC + A’BC’D + ABCD + (AB’C) en un mapa de Karnaugh de 3 variables z Mapas de Karnaugh con variables en el mapa z Separamos la función anterior utilizando la variable D z z z A’B’C y A’BC son 1 independiente del valor de D A’BC’D y ABCD son 1 sólo si D es 1 AB’C es redundante El último término es redundante Mapas de Karnaugh con variables en el mapa z z z Si D es 0, función se simplifica a A’C Si D es 1, función se simplifica a C + A’B Entonces, función F es F = A’C + D(C + A’B) © Mario Medina C. 10