6-Simplificación. 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos niveles 6.3 Algoritmos de simplificación. 6: Simplificación 1

Documentos relacionados
Apéndice 7 Uso de abc Un Sistema para síntesis secuencial y verificación

Tema 2. Funciones Lógicas. Algebra de Conmutación. Minimización de funciones Lógicas. Introducción al VHDL.

Plantel Aztahuacan 011 Módulo: operación de circuitos electrónicos digitales

Certamen 2 Sistemas Digitales 01/2003 Nombre Solución Rol

Análisis y síntesis de sistemas digitales combinacionales

5-Mapas de Karnaugh. 5: Karnaugh 1

Arquitectura de Computadoras

Simplificación de funciones lógicas utilizando Karnaugh

ELO211: Sistemas Digitales. Tomás Arredondo Vidal 1er Semestre 2009

Algoritmos de minimización

Mapas de Karnaugh. Apunte N 4

Simplificación de expresiones booleanas usando mapas de Karnaugh

Tema 2. Funciones Lógicas. Algebra de Conmutación. Representación de circuitos digitales. Minimización de funciones lógicas.

Tema 2. Funciones Lógicas. Algebra de Conmutación. Representación de circuitos digitales. Minimización de funciones lógicas.

4-N-Cubos. 4.1 Representación y cubos de diferentes dimensiones. 4.2 Generalizaciones sobre N-Cubos. 4: N-Cubos 1

Método de Karnaugh. Fundamentos de los Computadores Grado en Ingeniería Informática

Mapas de Karnaugh para 4 variables

La comprensión de las ideas en que está basado espresso implican familiarizarse con nuevos conceptos asociados a funciones booleanas.

Diseño modular con Verilog.

Titulación: Grado en Ingeniería Informática Asignatura: Fundamentos de Computadores

Axiomas Básicos. ...Axiomas Básicos. Arquitecturas de Computadores Prof. MAURICIO SOLAR 3 Algebra de Boole. Temario.

EL-611. Minimización de Funciones Booleanas. Dispositivos Digitales

Álgebra Booleana y Simplificación Lógica

Álgebra de Boole. Tema 5

EL-611. Minimización de Funciones Booleanas

Álgebra de Boole. Valparaíso, 1 er Semestre Prof. Rodrigo Araya E.

Sistemas Digitales I

TEMA 5.2 FUNCIONES LÓGICAS TEMA 5 SISTEMAS DIGITALES FUNDAMENTOS DE ELECTRÓNICA

Álgebra de Boole. Diseño Lógico

Método de simplificación de funciones lógicas utilizando el método de Quine McCluskey

Tema 1: Circuitos Combinacionales

Diseño de circuitos combinacionales

FUNCIONES NO COMPLETAMENTE ESPECIFICADAS

Unidad 2. Circuitos digitales

3-Formas Canónicas. 3: Canónicas 1

Organización de computadoras y lenguaje ensamblador

EJERCICIOS TEMA 17: CIRCUITOS DIGITALES COMBINACIONALES

Funciones Lógicas Y Métodos De Minimización

IV II III GUIA 7: MAPAS DE KARNAUGH AB CD

13/10/2013. Clase 05: Mapas de Karnaugh. Sistemas Digitales y Arquitectura de Computadoras. Ing. Christian Lezama Cuellar.

Puertas lógicas. Técnicas de diseño y simplificación de funciones lógicas.

Álgebra de Boole. Tema 5

Circuitos Electrónicos Digitales

Arquitectura de Computadoras 2015 Práctico 03. Práctico 3. Álgebra de Boole. Método de Karnaugh. Circuitos lógicos combinatorios.

ÁLGEBRAS DE BOOLE. Ejemplos 1) Si S es un conjunto, entonces ( (S),, ) es álgebra de Boole. A B = A B A B = A B

SENA; Conocimiento para todos los Colombianos

LECCIÓN Nº 02 FUNCIONES DE LOGICA COMBINACIONAL (PARTE 1)

Sistemas Digitales. Diseño lógico con Verilog. Sinopsis. Prólogo.

Algebra de Boole y puertas lógicas

ANÁLISIS Y DISEÑO COMBINACIONAL Tema 3: CIRCUITOS DE CONMUTACIÓN: ANÁLISIS Y DISEÑO DE CIRCUITOS COMBINACIONALES

MATEMÁTICAS PARA LA COMPUTACIÓN CAPÍTULO 5. ÁLGEBRA BOOLEANA

Algebra de Boole. » a + a = 1» a a = 0

ELO211: Sistemas Digitales. Tomás Arredondo Vidal 1er Semestre 2011

Funciones incompletamente especificadas Circuitos con salida múltiple. Fundamentos de los Computadores Grado en Ingeniería Informática

CIRCUITOS ELECTRÓNICOS DIGITALES BOLETÍN DE PROBLEMAS 4

Problema Nº 1.a2.- Obtenga las siguientes conversiones numéricas. Problema Nº 1.a3.- Obtenga las siguientes conversiones numéricas. 9E36.

LECCIÓN Nº 01 SISTEMAS COMBINACIONALES

IMPLEMENTACIÓN DE CIRCUITOS COMBINACIONALES

Universidad Autónoma de Nuevo León Facultad de Ingeniería Mecánica y Eléctrica. Actividad 5. Recursos para la minimización de funciones Booleanas

Figura 4-11 Mapas de Karnaugh y tablas de verdad para (a) dos, (b) tres y (c) cuatro variables.

NOT. Ejemplo: Circuito C1

1ª evaluación: 1: INTRODUCCIÓN A LOS SISTEMAS DIGITALES SISTEMAS DE NUMERACIÓN BINARIO OCTAL Y HEXADECIMAL CAMBIOS DE BASE

FUNDAMENTOS DE COMPUTADORES Ejercicios U2: Circuitos Combinacionales

Simplificación de Funciones Booleanas. Circuitos Digitales, 2º de Ingeniero de Telecomunicación ETSIT ULPGC

Los Mapas de Karnaugh son una herramienta muy utilizada para la simplificación de circuitos lógicos.

GUIA DE CIRCUITOS LOGICOS COMBINATORIOS

d)la primera función con un mux de 2 entradas de control, tomando como variables de control las dos más significativas

Los Mapas de Karnaugh son una herramienta muy utilizada para la simplificación de circuitos lógicos.

Fundamentos lógicos. Dpto. Ingeniería Eléctrica, Electrónica, Automática y Física Aplicada

Simplificación y minimización por adyacencias

Universidad Autónoma de Baja California

Tabla 5.2 Compuertas básicas A B A B A B

PROBLEMAS TECNOLOGÍA INDUSTRIAL II. CONTROL DIGITAL

INDICE. XVII 0 Introducción 0.1. Historia de la computación

Operación de circuitos lógicos combinatorios.

TEMA 5 SIMPLIFICACIÓN DE FUNCIONES BOOLEANAS

Tema 3. 2 Sistemas Combinacionales

Algebra de Boole y simplificación de funciones lógicas. Capítulo 4

DISEÑO DE CIRCUITOS LOGICOS COMBINATORIOS

Diseño combinacional (Parte #2) Mapas de Karnaugh

Suma Resta Multiplica. División Alg. Boole Tbla Verdad Circuitos Karnaugh

ELO211: Sistemas Digitales. Tomás Arredondo Vidal 1er Semestre 2009

0. Repaso Electrónica Digital

Suma de productos Producto de sumas. Fundamentos de los Computadores Grado en Ingeniería Informática

CIRCUITOS LÓGICOS. Lógica FCE 1. ALGEBRA DE BOOLE

1.- Realizar la función f = Σ (1,2,3,6,7) con MUX de 1, de 2 y de 3 variables de control. Discutir el coste y dar la solución óptima razonable.

1. Representar posicionalmente dieciséis unidades en las bases 3, 7, 8, 10, 16.

5.3. Álgebras de Boole y de conmutación. Funciones lógicas

Sistemas Digitales. Unidad I. Sistemas numéricos, códigos y aritmética binaria

Aplicación de la lógica secuencial asíncrona en automatización

Electrónica Digital. Fco. Javier Expósito, Manuel Arbelo, Pedro A. Hernández Dpto. de Física Fundamental y Experimental, Electrónica y Sistemas

EL LENGUAJE DE LAS COMPUTADORAS

Circuitos combinacionales. Tema 6

TRABAJO PRÁCTICO Nº 3. Expresiones booleanas, tablas de verdad y compuertas lógicas

Tema 5: Álgebra de Boole Funciones LógicasL

Transcripción:

6-Simplificación 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos niveles 6.3 Algoritmos de simplificación 6: Simplificación 1

Ejemplo: comparador de dos bits N1 N2 A B C D LT EQ GT A B < C D A B = C D A B > C D diagrama de bloque y tabla verdad A B C D LT EQ GT 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 mapa de Karnaugh de 4-variables para cada una de las 3 funciones de output 6: Simplificación 2

Ejemplo: comparador de dos bits (cont) A A A 1 0 1 1 1 0 D D 1 1 D C 1 1 1 1 C 1 0 C 1 0 B B B K-mapa para LT K-mapa para EQ K-mapa para GT LT = EQ = GT = A' B' D + A' C + B' C D A' B' C' D' + A' B C' D + A B C D + A B' C D = (A xnor C) (B xnor D) B C' D' + A C' + A B D' LT y GT son similares 6: Simplificación 3

Ejemplo: comparador de dos bits (cont) A B C D EQ dos implementaciones alternativas de EQ con y sin XOR EQ XNOR se implementa con al mínimo 3 compuertas simples 6: Simplificación 4

Ejemplo: multiplicador de dos bits A1 A2 B1 B2 P1 P2 P4 P8 diagrama en bloque y tabla de verdad A2 A1 B2 B1 P8 P4 P2 P1 1 0 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 mapa de Karnaugh de 4-variables para cada una de las 4 funciones de output 6: Simplificación 5

Ejemplo: multiplicador de dos bits (cont) A2 K-mapa de P8 B1 K-mapa de P4 P4 = A2B2B1' + A2A1'B2 A2 B1 B2 1 0 P8 = A2A1B2B1 B2 1 1 A1 A1 A2 1 1 K-mapa de P2 B1 K-mapa de P1 P1 = A1B1 A2 1 0 B1 B2 1 0 A1 P2 = A2'A1B2 + A2B2 B1 + A2A1'B1 + A1B2B1 B2 1 0 A1 6: Simplificación 6

Ejemplo: incrementador en 1 de números BCD de 4 bits I1 I2 I4 I8 diagrama en bloque y tabla de verdad O1 O2 O4 O8 I8 I4 I2 I1 O8 O4 O2 O1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 0 X X X X 1 1 X X X X 1 1 X X X X 1 1 X X X X 1 1 1 0 X X X X 1 1 1 1 X X X X mapa de Karnaugh de 4-variables para cada una de las 4 funciones de output 6: Simplificación 7

Ejemplo: incrementador en 1 de números BCD de 4 bits (cont) I8 X 1 O8 O4 I8 X 0 I2 X 0 X X X X I4 I8 X 0 I1 O2 O8 = I4 I2 I1 + I8 I1' I2 O4 = I4 I2' + I4 I1' + I4 I2 I1 O2 = I8 I2 I1 + I2 I1' O1 = I1' O1 1 0 1 1 X 0 X X X X I4 I8 X 1 I1 1 1 X 0 I1 X 0 I1 I2 1 1 X X X X I2 1 1 X X X X I4 I4 6: Simplificación 8

6-Simplificación 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos niveles 6.3 Algoritmos de simplificación 6: Simplificación 9

Definiciones de términos para simplificación en dos niveles Implicante Elemento individual del ON-set o algún grupo de estos elementos que se puede combinar para formar un subcubo. Implicante primo Implicante que no se puede combinar con otro para formar un subcubo más grande. No contiene literales repetidos. No contiene una variable y su complemento. No contiene variables redundantes, si se descarta un literal del implicante el resto no será un implicante. Si x e y son implicantes primos de f, entonces: x no cubre a y; y viceversa. Implicante primo esencial Un implicante primo es esencial si el es el único que cubre un elemento del ON-set (o mintérmino) Va a participar de todas las posibles coberturas del ON-set 6: Simplificación 10

Definiciones de términos para simplificación en dos niveles Objetivo: Hacer crecer implicantes para convertirlos en implicantes primos (minimizar literales por término) Cubrir el ON-set con el menor número de implicantes primos posible (minimizar número de términos) 6: Simplificación 11

Ejemplos para ilustrar términos 0 X A 1 0 6 implicantes primos (no se pueden agrupar mas): A'B'D, BC', AC, A'C'D, AB, B'CD 1 1 1 0 D esencial C 1 0 B 1 1 1 1 mínima cobertura: AC + BC' + A'B'D A 5 implicantes primos: 1 0 BD, ABC', ACD, A'BC, A'C'D 1 1 1 0 D esenciales C 1 1 cobertura mínima : 4 implicantes esenciales B 6: Simplificación 12

6-Simplificación 6.1 Ejemplos en dos niveles 6.2 Simplificación en dos niveles 6.3 Algoritmos de simplificación 6: Simplificación 13

Algoritmo para simplificación de dos niveles en un mapa de Karnaugh Algoritmo: mínima expresión de suma de productos de un mapa de Karnaugh 1: elegir mintérmino (un elemento del ON-set) 2: encontrar grupos máximos de 1s y Xs adyacentes a ese elemento considerar filas de arriba/abajo, columnas izquierda/derecha y adyacencias de las esquinas estos son implicantes primos (número de elementos siempre potencia de 2) Repetir pasos 1 y 2 hasta encontrar todos los implicantes primos 3: revisar los 1s en el K-map si cubiertos por un solo implicante primo, se considera esencial, y tiene que estar en la cobertura final 1s cubiertos por implicantes primos esenciales no tienen que ser revisados 4: si quedan 1s no cubiertos por implicantes primos esenciales elegir el número más pequeño de implicantes primos que cubren el resto de los 1s 6: Simplificación 14

Algoritmos para simplificación de dos niveles (ejemplo) A A A X 1 X 1 X 1 1 1 1 1 1 1 D D D 0 X X 0 0 X X 0 0 X X 0 C C C B B B 2 primos cubriendo A'BC'D' 2 primos cubriendo ABC'D A A A X 1 X 1 X 1 1 1 D 0 X X 0 C B 3 primos cubriendo AB'C'D' 1 1 D 0 X X 0 C B 2 primos esenciales 1 1 D 0 X X 0 C B cobertura mínima (3 primos) 6: Simplificación 15

Actividad Indique todos los implicantes primos para el K-map: A X 0 X 0 C 0 X X 1 X 1 X 0 1 1 D CD BC BD AB AC D B Cuales son implicantes primos esenciales? CD BD AC D Cual es la cobertura mínima? CD BD AC D 6: Simplificación 16

Método de Quine Método sistemático para encontrar la expresión mínima de una función, no requiere reconocer agrupaciones en un mapa de Karnaugh Básicamente es la búsqueda exhaustiva de todas las adyacencias entre los mintérminos de la función mediante el uso sistemático del teorema a = ab + ab Algoritmo Quine para encontrar implicantes primos: 1. Formar columna con los mintérminos de la función 2. Formar siguiente columna según: Revisar primer elemento de la columna con todos los siguientes; si se encuentra un término que difiere en una variable, se lo anota en la nueva columna omitiendo el literal correspondiente; se marcan los términos en la columna actual Se repite para todos los elementos 3. Repetir el paso 2 hasta no poder formar nuevas columnas Después se pueden encontrar los implicantes primos esenciales usando la tabla de implicantes primos 6: Simplificación 17

Ejemplo: Método de Quine Obtener implicantes primos de: f(a, b, c) = m(0,2,5,6,7) Primera Columna Segunda Columna m min marcas Grupos Implicantes 0 a b c x (0,2) a c 2 a bc x x (2,6) bc 5 ab c x (5,7) ac 6 abc x x (6,7) ab 7 abc x x Como no se pueden formar nuevas columnas los implicantes primos son a c, bc, ac, ab 6: Simplificación 18

Tabla de implicantes primos Una vez obtenido los implicantes primos se puede determinar cuales son esenciales con la tabla de implicantes primos: Crear tabla empleando implicantes primos en las filas y los min términos en las columnas En cada fila marcar con 1 las columnas de los mintérminos pertenecientes al implicante considerado Aquellas columnas con solos una marca son implicantes primos esenciales Hay que escoger el menor número de implicantes primos que cubran todos los mintérminos de la función 6: Simplificación 19

Ejemplo: Tabla de implicantes Obtener implicantes primos de: f(a, b, c) = m(0,2,5,6,7) Primera Columna Segunda Columna m min marcas GruposImplicantes 0 a b c x (0,2) a c 2 a bc x x (2,6) bc 5 ab c x (5,7) ac 6 abc x x (6,7) ab 7 abc x x Usando los implicantes primos se genera la tabla de implicantes primos 0 2 5 6 7 a c 1 1 bc 1 1 ac 1 1 ab 1 1 implicantes primos esenciales: a c + ac solo falta cubrir m6, se puede lograr con bc o con ab la forma mínima de la funcion: f = a c + ac + bc o f = a c + ac +ab 6: Simplificación 20

Método de Quine-McCluskey Otro método sistemático para encontrar la expresión mínima de una función, no requiere reconocer agrupaciones en un mapa de Karnaugh Permite la búsqueda exhaustiva de todas las adyacencias entre los mintérminos de la función mediante el uso sistemático del teorema a = ab + ab Es un método tabular adecuado para ser programado en un computador ya que se representan los implicantes primos en forma binaria Algoritmo QM para encontrar implicantes primos: 1. Formar columna con los mintérminos de la función representados en forma binaria y agrupados de acuerdo al número de 1s que lo conforman 2. Formar siguiente columna según: Revisar primer elemento de la columna con todos los siguientes; si se encuentra un término que difiere en una variable, se lo anota en la nueva columna omitiendo el literal correspondiente; se marcan los términos en la columna actual Se repite para todos los elementos 3. Repetir el paso 2 hasta no poder formar nuevas columnas Después se pueden encontrar los implicantes primos esenciales usando 6: Simplificación 21 la tabla de implicantes primos.

Ejemplo: Método de Quine-McCluskey Obtener implicantes primos de: f(a, b, c, d) = m(4,5,6,8,9,10,13) + d(0,7,15) Columna I Columna II Columna III 0000 x 0-00 * 01-- * -000 * 0100 x -1-1 * 1000 x 010- x 01-0 x 0101 x 100- * 0110 x 10-0 * 1001 x 1010 x 01-1 x -101 x 0111 x 011- x 1101 x 1-01 * 1111 x -111 x 11-1 x - indica el literal combinado * indica los implicantes primos (no se pueden combinar mas) solo se pueden combinar los implicantes primos que tienen el - en la misma posición 6: Simplificación 22

Ejemplo: Crear tabla de implicantes primos Una vez obtenido los implicantes primos se puede determinar cuales son esenciales con la tabla de implicantes primos: Crear tabla empleando implicantes primos en las filas y los min términos en las columnas. En cada fila marcar con 1 las columnas de los mintérminos pertenecientes al implicante considerado. Aquellas columnas con solo una marca son implicantes primos esenciales- Hay que escoger el menor número de implicantes primos que cubran todos los mintérminos de la función. 6: Simplificación 23

Ejemplo: Tabla de implicantes primos Tabla de implicantes primos 4 5 6 8 9 13 0,4 (0-00) x 0,8 (-000) x 8,9 (100-) x x 8,10 (10-0) x x 9,13 (1-01) x x 4,5,6,7 (01--) x x x 5,7,13,15 (-1-1) x x solo falta cubrir m9 y m13, se puede lograr con 1-01 (ac d) la forma mínima de la funcion: f = ab d + a b + ac d implicantes primos esenciales: ab d + a b 6: Simplificación 24

Reducción de tabla de implicantes primos Una vez que se selecciona un implicante para formar la función se puede reducir la tabla eliminando la fila (o renglón) correspondiente. Cuando se elimina una fila también se eliminan las columnas con marcas en dicha fila. Se comienza eliminando implicantes primos esenciales. La tabla se puede continuar simplificando eliminando renglones cubiertos por otros y columnas que cubren a otras. Un renglón (R1) cubre a otro (R2) si tiene marcas en todas las columnas marcadas por el otro. El renglón (R1) también puede tener columnas adicionales marcadas. Una columna (C1) cubre a otra (C2) si tiene marcas en cada renglón que la otra tiene. La columna (C1) podría también tener renglones adicionales marcados. 6: Simplificación 25

C Ejemplo: Reducción de tabla de implicantes primos 1 1 B A 1 0 1 1 D La tabla reducida: 5 13 a bc 1 bc d 1 1 abd 1 La función mínima es: f(a,b,c,d)=a c d + acd + bc d La tabla de implicantes primos resulta: 0 4 5 11 13 15 a c d 1 1 a bc 1 1 bc d 1 1 abd 1 1 acd 1 1 6: Simplificación 26

Reducción de tabla de implicantes primos II Se puede tratar de reducir la tabla se eliminando las filas cubiertos por otros y columnas que cubren a otras. Esto es como simplificación previa a la elección de implicantes primos. La tabla simplificada tiene que garantizar cobertura de los mintérminos requeridos para implementar la función. 6: Simplificación 27

Ejemplo: Reducción de tabla de implicantes primos II La tabla de implicantes primos: m1 m2 m3 ipa 1 1 ipb 1 1 ipc 1 1 ipd 1 eliminando m2 eliminando m1 ipd es cubierto por ipa, ipb esta cubierto por ipc y viceversa Se puede reducir alguna fila cubierta por otra? Si Se puede reducir alguna columna que cubra a otra? Si...la columna m2 cubre a la columna m1; puede eliminarse m2 Si se elimina m2 para cubrir m1 debe seleccionarse ipb o ipc lo que considera a m2 en la cobertura Si se elimina m1 es un error porque si después se eligiera a ipa no se incluiría a m1 en la función 6: Simplificación 28

Tabla reducida cíclica En algunos casos luego de remover los implicantes primos esenciales, los renglones cubiertos por otros y las columnas cubiertas por otras no puede seguir reduciéndose la tabla. Estas tablas que no pueden ser reducidas se denominan tablas cíclicas m1 m2 m3 m4 ip1 1 1 ip2 1 1 ip3 1 1 ip4 1 1 No hay ninguna fila o columna que cubra a otra 6: Simplificación 29

Tabla reducida cíclica: Método de Petrick Para generar una función que cubra una tabla cíclica se puede plantear una expresión booleana P como producto de sumas que garantice la cobertura y que entregue todas las soluciones posibles m1 m2 m3 m4 ip1 1 1 ip2 1 1 ip3 1 1 ip4 1 1 Para que m1 este presente debe cumplirse que ip1 o ip4 estén presentes; es decir (ip1 + ip4). Usando P: (P1 + P4) Para que estén presentes todos los mintérminos: P = (P1 + P4)(P2 + P3)(P1 + P3)(P2 + P4) Simplificando: P = P1P2 + P3P4 Se tienen dos soluciones. La primera es ip1 e ip2: f = ip1 ip2. La segunda es ip4 e ip3: f = ip4 ip3 Se elige la solución de menor costo 6: Simplificación 30

Actividad: Método de Quine-McCluskey f(a, b, c, d) = m(4,5,8,9,11,13,15) + d(0,3) Columna I Columna II Columna III 0000x 0-00 * 1--1 * -000 * 0100x 1000x 010- * 100- * 0011x 0101x -011 * 1001x -101 * 10-1 x 1011x 1-01 x 1101x 1-11 x 1111x 11-1 x 6: Simplificación 31

Actividad: Tabla de implicantes primos Tabla de implicantes primos 4 5 8 9 11 13 15 0,4 (0-00) x 0,8 (-000) x 4,5 (010-) x x 8,9 (100-) x x 3,11 (-011) x 5,13 (-101) x x 9,11,13,15 (1--1) x x x x Hay varias soluciones posibles, con 010- y 100- se cubren m4, m5, m8 y m9. Solo falta cubrir m11, m13 y m15 que se puede lograr con 1--1. La forma mínima de la función: f = a bc + ab c + ad 6: Simplificación 32

Aplicación Computacional La minimización de funciones booleanas basada en mapas de Karnaugh se torna impracticable a medida que el número de variables aumenta; no es recomendable usar esta metodología para más de cuatro variables. El algoritmo de Quine-McCluskey es de complejidad no polinomial, ya que el costo de resolver la cobertura mínima de la tabla de implicantes es de costo exponencial. 6: Simplificación 33

Aplicación Computacional espresso: Programa de minimización de funciones booleanas fue desarrollado por la Universidad de Berkeley, y puesto a disposición de otras universidades en 1984. Hoy es una aplicación de software abierto. Abc: Es un programa interactivo para la síntesis y optimización de circuitos combinacionales, secuenciales sincrónicos. 6: Simplificación 34

Aplicación Computacional espresso Ejemplo de uso, La especificación de la siguiente función: Z = m(0,3,5,12,13) + d (1, 2,15) # Ejemplo de formato PLA.i 4 # número de entradas.o 1 # número de salidas.ilb A B C D # nombre de las entradas.ob Z # nombre de la salida # Los mintérminos presentes se especifican con valor 1. # ON-set 000 0011 1 0101 1 110 1101 1 # Los mintérminos superfluos se especifican con -. DC-set 0001-0010 - 1111 -.e #se termina con end. 6: Simplificación 35

Aplicación Computacional espresso.i 4.o 1 La ejecución del comando: espresso ej1.pla > ej1.out, produce el siguiente archivo:.ilb A B C D.ob Z.p 3-101 1 00-- 1 110-1.e El resultado, entrega, en el mismo formato de entrada, los implicantes, productos o cubos que son una cobertura de la función. 6: Simplificación 36

Aplicación Computacional espresso La salida puede generarse en forma simbólica mediante: espresso -oeqntott -eeat ej1.pla > ej1s.out La opción oeqntott genera una salida simbólica. La opción eeat se come los comentarios, y no los envía hacia la salida. El comando anterior produce: Z = (B&!C&D) (!A&!B) (A&B&!C); 6: Simplificación 37

Aplicación Computacional Abc Se tiene la siguiente función Booleana, descrita por sus mintérminos: f(a, b, c, d) = m(0, 1, 3, 8, 9, 11, 13, 14) La cual puede describirse por el archivo ej5_5.pla: # f(a, b, c, d) = Suma de m(0, 1, 3, 8, 9, 11, 13, 14).i 4.o 1.ilb a b c d.ob f.p 8 000 0001 1 0011 1 100 1001 1 1011 1 1101 1 111.e 6: Simplificación 38

Aplicación Computacional Abc Dentro de abc, el comando: read_pla./ej/ej5_5.pla Ingresa la descripción de la red, asumiendo que el archivo se encuentra en un subdirectorio,de nombre ej, desde la ubicación desde donde se invoca a abc. El comando: print_kmap f Imprime el mapa de Karnaugh de la salida f. 6: Simplificación 39

Aplicación Computacional Abc El comando: sop Convierte las funciones de los nodos, de las representaciones internas, en suma de productos. El comando: write_pla./ej/ej5_5ip.pla Escribe en el subdirectorio ej, un archivo con los implicantes primos, en formato pla..i 4.o 1.ilb a b c d.ob f.p 4 111 1-01 1-00- 1-0-1 1.e 6: Simplificación 40

Aplicación Computacional Abc El comando: write_verilog./ej/ej5_5.verilog Produce un modulo estructural, con las formas factorizadas de la red lógica. module unknown ( a, b, c, d, f ); input a, b, c, d; output f; assign f = (a & ((~c & d) (b & c & ~d))) (~b & (~c d)); endmodule 6: Simplificación 41