Minimización mediante el mapa de Karnaugh
Transcripción
Minimización mediante el mapa de Karnaugh
Minimización mediante el mapa de Karnaugh Mario Medina C. [email protected] Minimización lógica Minimización lógica: conjunto de técnicas para obtener la representación más simple de una expresión booleana Diversos criterios de minimización Métodos de minimización Mapas de Karnaugh-Veitch Método de Quine-McCluskey Método de Espresso Mario Medina Criterios de minimización Minimizar 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 Reducir Número de conexiones entre puertas Retardo global de un circuito Número de literales Maximizar Reutilización de bloques Sea Z (A,B,C) definida en la siguiente tabla de verdad y sus formas equivalentes Z1, Z2, Z3 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 Ejemplo Z: Estructura típica SoP de 2 niveles Z1: Estructuralmente similar a Z (SoP) No normalizados Menos literales y puertas Z2: Implementación multinivel Puertas más simples (menor número de entradas) Mayor retardo de salida Camino crítico AND-NOT-AND-OR Z3: Reduce el número total de puertas Usa una puerta XOR, que puede ser más lenta © Mario Medina C. Ejemplo 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 Técnicas tradicionales de minimización Se encargan de minimizar el retardo del circuito resultante A expensas de aumentar el número y complejidad de los productos ó sumas Minimización en 2 niveles Suma-de-productos (SoP) Producto-de-sumas (PoS) 1 Motivación para los métodos de minimización lógica Usar reglas del álgebra binaria para reducir expresiones booleanas No hay algoritmos que aseguren llegar a una solución mínima Resultado depende de la intuición y experiencia del diseñador Base para los métodos de simplificación Sean las funciones F y G definidas como F = AB’+ AB, y G = A’B’ + AB’ La simplificación nos lleva a F = A(B’ + B) = A G = B’(A’ + A) = B’ Problema puede ser más complicado que el original 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 Multiplicar una expresión por 1 (X+X’) y reducir Aumenta probabilidad de error Proceso tedioso, largo y manual Base para los métodos de simplificación Método básico Buscar repetidamente subconjuntos de 2 términos que difieran sólo en una variable Eliminar la redundancia La variable que aparece en forma negada y no negada es redundante y se puede eliminar Mapa de Karnaugh 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) En forma tabular (Quine-McCluskey) Mapa de Karnaugh El número al interior de cada celda representación decimal para la combinación de entradas asociada Cada celda es un minterm (o maxterm) La celda almacena la salida asociada al minterm Los índices se forman mediante un código adyacente (Gray) 2 celdas adyacentes tienen distancia 1 La última columna (fila) es adyacente con la primera columna (fila) © Mario Medina C. A 0 0 1 1 0 2 1 3 AB CD AB C 0 1 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 Celdas adyacentes Adyacencia del mapa permite visualizar grupos de celdas contiguas a agrupar En un mapa de n variables, cada celda es lógicamente adyacente a otras n celdas 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 2 Celdas adyacentes en mapa de Karnaugh Correspondencia K-map y minitérminos (3 variables) Correspondencia K-map y minitérminos (4 variables) Mapa de Karnaugh Mapa de Karnaugh Mapa de Karnaugh Expresar en un K-Map la función F(A, B, C, D) = ∑m(4, 5, 6, 7, 9, 10, 11, 13) Sea F(X, Y, Z, W) = XY + X’WZ + X’YZ’W XY AB CD 00 01 11 10 ZW 00 01 11 10 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 Equivalente a la función AB ACD ABC 00 01 11 10 00 01 11 10 0 0 1 0 0 1 1 0 1 1 1 0 0 0 1 0 X’YZ’W está expresado en forma canónica y genera sólo un minterm X’WZ genera 2 minterms (X’WYZ + X’WY’Z) YX genera 4 minterms (YXW’Z’ + YXWZ’ + YXW’Z + YXWZ) F(A, B, C, D) = A’B + AB’C + AC’D © Mario Medina C. 3 Mapas de Karnaugh En general, para un función de n variables, un término producto no normalizado de n - r variables genera 2r minitérminos Representación alternativa mapas de Karnaugh Indicar sólo las filas y columnas donde las variables valen 1 Si n = 4, Término producto de 4 variables da 1 minterm Término producto de 3 variables da 2 minterms Término producto de 2 variables da 4 minterms Término producto de 1 variable da 8 minterms Mapa de 4 variables como diagrama de Venn Un mapa de Karnaugh puede representarse también como un diagrama de Venn Diagrama de Venn para función de 4 variables Círculo y ocho centrales se traslapan Ejemplo de simplificación de funciones Usando álgebra booleana 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 D C B 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 En el mapa, se puede ver la agrupación óptima de celdas (minterms) Subcubos 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) El término producto (o suma) que se obtiene a partir de un subcubo de 2r celdas se compone de (n-r) literales. Sólo aparecen las variables que no cambian en todas las celdas Ejemplo de simplificación de funciones Sea el siguiente mapa de Karnaugh La agrupación central es redundante 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 Expresión mínima tiene sólo 2 productos F(A, B, C, D) = AC’D + BCD A AB CD D C B Demostración gráfica del teorema del consenso! © Mario Medina C. 4 Ejemplo de simplificación de funciones Ejemplos de simplificación Sea la función AB CD A 00 01 11 10 00 1 0 0 1 01 0 1 0 0 F(A, B, C, D) = ∑m(0, 2, 3, 5, 6, 7, 8, 10, 11, 14, 15) La función equivalente es D 11 1 1 10 1 1 1 1 1 1 C B F(A, B, C, D) = C + A’BD + B’D’ 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 que hacen 1 la función Implicante primario: implicante que no puede combinarse con, o no puede ser cubierto por otro implicante de la función Implicante primario esencial: implicante primario que contiene celdas no cubiertas por ningún otro implicante primario. © Mario Medina C. Objetivos de la minimización 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 4 implicantes primarios A’B’D, BC’, AC, A’C’D, AB, B’CD 2 implicantes esenciales A AB CD 00 01 11 10 00 0 1 1 0 01 1 1 1 0 AC, BC’ BD, CD, AC, B’C 3 implicantes esenciales Expresión mínima 11 1 0 1 1 10 0 0 1 1 Los implicantes esenciales bastan para cubrir el mapa Expresión mínima única C BC’ + AC + A’B’D 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 B A AB CD D C BD + AC + B’C Implicantes primarios y esenciales Simplificación con maxterms 5 implicantes primarios A’C’D, ABC’, A’BC, ACD, BD 4 implicantes esenciales Los implicantes esenciales bastan para cubrir el mapa Expresión mínima única Mismo procedimiento pero agrupando los 0s A AB CD 00 01 11 10 00 0 0 1 0 01 1 1 1 0 11 0 1 1 1 10 0 1 0 0 A’C’D, ABC’, A’BC, ACD B D C B A’C’D + ABC’ + A’BC + ACD La formación de un maxterm a partir de los valores 0 o 1 de las entradas es inversa a la del minterm Equivalente a agrupar los 0s para formar términos producto de F, y luego aplicar DeMorgan para obtener la expresión en PoS 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) D C 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. Condiciones superfluas En algunos problemas pueden existir combinaciones de entrada que por definición no pueden ocurrir Aunque en la implementación la salida asumirá un valor lógico, al diseñador no le importa cual sea ésta y entonces no queda especificada. Por ejemplo, un sumador con entradas BCD 8421 tendrá sólo 10 combinaciones de entradas válidas de las 16 posibles. Esto implica que las salidas asociadas a las entradas 1010 al 1111 pueden tener cualquier valor, pues esas entradas nunca ocurrirán. 6 Funciones con condiciones superfluas Ejercicio: BCD incremento en 1 Sea una función que recibe como entrada un dígito en BCD8421 y como 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 Z 0 0 0 0 0 0 0 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 X 1 0 1 1 X X X X 1 1 0 0 X X X X 1 1 0 1 X X X X 1 1 1 0 X X X X 1 1 1 1 X X X X Funciones con condiciones superfluas Salidas asumen valor X para las combinaciones de entrada que no importan. Condiciones superfluas, opcionales o indiferentes (don’t care) Estas funciones se llaman incompletamente especificadas Ojo!! Los términos X no corresponden ni a un 1 ni a un 0 Un término superfluo es una X tanto en el mapa de F como en el mapa de F’ Condiciones superfluas y KMaps Eventualmente, los valores superfluos toman un valor lógico definido por el diseñador Los estados superfluos X pueden ser tratados individualmente como 0s o 1s con el fin de ayudar en el proceso de minimización Generalmente se les asigna un estado inactivo, pero esto no simplifica el diseño La asignación adecuada de valores de salida definidos a las condiciones superfluas pueden simplificar el diseño. Por ejemplo, en el ejemplo anterior, la función de salida Z podría implementarse simplemente como D’ Formación de subcubos de mayor orden AB CD 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 (minterms) AB CD Si tratamos esta X como 1, podemos formar un subcubo de orden 2. A 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 11 1 1 0 0 10 0 X 0 0 C B Tratar esta X como 0 simplifica el problema. © Mario Medina C. Si tratamos esta X como 0, podemos formar un subcubo de orden 3. 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) B Lo mismo ocurre si deseamos la expresión mínima en PoS (agrupando 0s): F = D(A’ + C’) En cada mapa, el término superfluo debe escogerse como 0 ó 1 según convenga para minimizar la función 7 Mapa de Karnaugh de 5 variables Mapa de Karnaugh de 5 variables Se usan 2 mapas de 4 variables y se deja una variable “afuera” Estos mapas muestran la posición de los minitérminos si se deja fuera la variable A BC DE BC DE 00 01 11 10 00 01 11 10 0 4 12 8 1 5 13 9 3 7 15 11 2 6 14 10 Mapa de 5 variables Dejamos variable A “afuera” X = DE’ + B’CE + A’BD’ + BC’D’E 00 01 11 10 00 01 11 10 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) DE A =0 BC 00 00 01 BC DE 00 01 11 10 BC DE 00 01 11 10 00 0 0 0 01 0 1 1 1 00 0 0 0 1 0 01 2 11 1 1 1 0 11 0 1 1 0 1 1 1 0 3 1 11 10 1 0 0 1 10 4 1 A=0 0 0 0 3 0 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 25 27 1 1 BC 10 24 10 1 1 10 10 11 1 01 9 11 01 1 11 10 1 1 1 01 11 01 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. 6 DE A =1 A=1 2 11 4 BC F(A, B, C, D, E) = C E + A B E + B C D E + A C D E 1 7 2 01 5 3 01 10 0 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 Representación alternativa Diagrama muestra celdas adyacentes a minitérmino 5 Representación alternativa de un mapa de 5 variables Triángulos superiores son adyacentes Mapa de Karnaugh de 6 variables CD EF 00 AB =00 01 11 10 00 01 0 5 3 7 2 11 4 1 6 15 14 8 CD EF 00 00 48 01 11 10 49 51 50 55 54 11 60 61 63 62 01 11 10 EF 59 CD EF 00 01 11 10 00 AB =10 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 00 01 11 10 EF 01 11 10 0 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 EF 10 1 00 00 CD 1 CD EF 00 00 01 57 58 1 11 10 56 1 CD EF 00 AB =01 00 CD CD 10 1 11 10 01 00 00 01 11 52 53 EF AB =00 9 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 CD 10 12 13 Mapa de Karnaugh de 6 variables CD 00 01 11 10 EF 00 01 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 11 10 AB =10 1 CD EF 00 00 01 A=1 1 01 1 11 10 1 11 10 1 B=0 1 Mapa de Karnaugh de 6 variables CD 00 00 EF AB =00 01 11 10 1 B=1 Mapas de Karnaugh con variables en el mapa 01 11 10 1 1 CD EF 00 AB=01 00 2, 8, 10, 18, 24, F(A, B, C, D, E, F) = ∑ m 26, 34, 37, 42, 45, 50, 53, 58, 61 11 10 1 01 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 01 01 1 Alternativa para representar más variables aún en un mapa Celdas no almacenan valores 0 ó 1, sino que almacenan expresiones con variables que no están en el mapa 1 11 10 AB=10 1 1 CD EF 00 00 01 01 1 11 10 1 11 10 © Mario Medina C. 1 1 9 Mapas de Karnaugh con variables en el mapa 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 Mapas de Karnaugh con variables en el mapa Separamos la función anterior utilizando la variable D 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 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