Tema 3: Representación y minimización de



Documentos relacionados
Tema : ELECTRÓNICA DIGITAL

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL

ELECTRÓNICA DIGITAL. Una señal es la variación de una magnitud que permite transmitir información. Las señales pueden ser de dos tipos:

28 = =

Operaciones Booleanas y Compuertas Básicas

El álgebra booleana (Algebra de los circuitos lógicos tiene muchas leyes o teoremas muy útiles tales como :

CURSO TECNOLOGÍA TECNOLOGÍA 4º ESO TEMA 5: Lógica binaria. Tecnología 4º ESO Tema 5: Lógica binaria Página 1

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN

Tema 3 : Algebra de Boole

Los números racionales

UNIDAD DIDÁCTICA: ELECTRÓNICA DIGITAL

Naturaleza binaria. Conversión decimal a binario

OR (+) AND( ). AND AND

Tema 5: Álgebra de Boole Funciones LógicasL

Tema 1: Fundamentos de lógica, teoría de conjuntos y estructuras algebraicas: Apéndice

SISTEMAS DE NUMERACIÓN. Sistema decimal

NÚMEROS NATURALES Y NÚMEROS ENTEROS

Lección 9: Polinomios

Divisibilidad y números primos

circuitos digitales Oliverio J. Santana Jaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Centro de Capacitación en Informática

TEMA 3: IMPLEMENTACIÓN DE CIRCUITOS COMBINACIONALES CON PUERTAS LÓGICAS.

Circuitos Digitales CON José Manuel Ruiz Gutiérrez

Informática Bioingeniería

1. Utilizando el método de Karnaugh simplificar la siguiente expresión lógica:

UNIDAD 6. POLINOMIOS CON COEFICIENTES ENTEROS

I. ALGEBRA DE BOOLE. c) Cada operación es distributiva con respecto a la otra: a. ( b + c) = a. b + a. c a + ( b. c ) = ( a + b ).

CIRCUITOS DIGITALES -

Tema 07. LÍMITES Y CONTINUIDAD DE FUNCIONES

Tema 11: Sistemas combinacionales

Maria José González/ Dep. Tecnología

Índice Introducción Números Polinomios Funciones y su Representación. Curso 0: Matemáticas y sus Aplicaciones Tema 1. Números, Polinomios y Funciones

Sistemas de numeración

Tema 4: Circuitos combinacionales

Curso Completo de Electrónica Digital

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

Los sistemas de numeración se clasifican en: posicionales y no posicionales.

Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso Introducción a la lógica binaria

Lógica Binaria. Contenidos. Objetivos. Antes de empezar 1.Introducción... pág. 2. En esta quincena aprenderás a:

Universidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS

TEMA 5: HOJAS DE CÁLCULO. Edición de hojas de cálculo con OpenOffice Calc

UNIDAD I NÚMEROS REALES

Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones

PRÁCTICAS DE GESTIÓN GANADERA:

Los polinomios. Un polinomio es una expresión algebraica con una única letra, llamada variable. Ejemplo: 9x 6 3x 4 + x 6 polinomio de variable x

Figura 1: Suma binaria


ALGEBRA DE BOOLE ENTRADAS SALIDA A B A + B

Qué son los monomios?

Unidad Didáctica. Códigos Binarios

Ecuaciones de primer grado con dos incógnitas

La ventana de Microsoft Excel

Llamamos potencia a todo producto de factores iguales. Por ejemplo: 3 4 =

Matrices Invertibles y Elementos de Álgebra Matricial

1. Se establecen los conceptos fundamentales (símbolos o términos no definidos).

MÉTODO DEL CAMBIO DE BASE PARA CÁLCULO MANUAL DE SUBREDES CON IP V4.0

VECTORES. Módulo, dirección y sentido de un vector fijo En un vector fijo se llama módulo del mismo a la longitud del segmento que lo define.

TEMA 1: Control y programación de sistemas automáticos

Computación I Representación Interna Curso 2011

Funciones, x, y, gráficos

Generación de funciones lógicas mediante decodificadores binarios con salidas activas a nivel alto

by Tim Tran:

Puertas Lógicas. Contenidos. Objetivos

PROPORCIONALIDAD - teoría

Los circuitos lógicos combinacionales

SISTEMAS NUMERICOS CAMILO ANDREY NEIRA IBAÑEZ UNINSANGIL INTRODUCTORIO A LA INGENIERIA LOGICA Y PROGRAMACION

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

Universidad Autónoma de Baja California Facultad de Ingeniería Mexicali

DE SISTEMAS: ANALÓGICOS:

Álgebras de Boole. Juan Medina Molina. 25 de noviembre de 2003

_ Antología de Física I. Unidad II Vectores. Elaboró: Ing. Víctor H. Alcalá-Octaviano

SOLECMEXICO Página 1 DISEÑO DE CIRCUITOS A PARTIR DE EXPRESIONES BOOLEANAS

Fundamentos de Investigación de Operaciones Investigación de Operaciones 1

UNIDAD 2: ELECTRÓNICA DIGITAL

Programación Lineal. Ficha para enseñar a utilizar el Solver de EXCEL en la resolución de problemas de Programación Lineal

Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos

Sistemas Electrónicos Industriales II EC2112

Operaciones con polinomios

Polinomios y fracciones algebraicas

MICROSOFT EXCEL Introducción: Qué es y para qué sirve Excel2007? TECNOLOGIA/ INFORMATICA: MS-EXCEL

GUIA DE CIRCUITOS LOGICOS COMBINATORIOS

Sistemas de numeración y aritmética binaria

Práctica 4 Diseño de circuitos con puertas lógicas.

1. INVERSA DE UNA MATRIZ REGULAR

Capítulo 1: Sistemas de representación numérica Introducción. Dpto. de ATC, Universidad de Sevilla - Página 1 de 8

Por ejemplo convertir el número 131 en binario se realiza lo siguiente: Ahora para convertir de un binario a decimal se hace lo siguiente:

EXPRESIONES ALGEBRAICAS. POLINOMIOS

Sistemas de numeración, operaciones y códigos.

1 INFORMÁTICA ESO: 4ºA

RAZONAMIENTOS LÓGICOS EN LOS PROBLEMAS DE MATEMÁTICAS

SISTEMAS DE NUMERACIÓN. Sistema de numeración decimal: = =8245,97

Materia: Informática. Nota de Clases Sistemas de Numeración

Eduardo Kido 26-Mayo-2004 ANÁLISIS DE DATOS

LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS

Definición Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.

Modelo de examen tipo resuelto 1

Tema 2. Espacios Vectoriales Introducción

Transcripción:

Tema 3: Representación y minimización de funciones lógicas 3.. Teoremas y postulados del álgebra de Boole Definiciones El álgebra de Boole se utiliza para la resolución de problemas de tipo lógico-resolutivo, desarrollado en 947 por George Boole. Actualmente es muy utilizada en electrónica digital (en computadoras), y sobre todo en síntesis de circuitos digitales. El álgebra de Boole son las matemáticas de los sistemas digitales. Variable lógica: Sea el conjunto B = {, }. Con este conjunto podemos codificar la información en un computador. Decimos que una variable x es lógica si su dominio es el conjunto B, es decir, si x solo puede tomar los valores y. Complemento: El complemento de una variable es su inverso, y se indica con una barra encima, ó con un apóstrofe. Lo más utilizado siempre es la barra, pero en estos apuntes utilizamos un apóstrofe por comodidad en la escritura. Por ejemplo, el complemento de A es A'. Si A =, entonces A' = Si A =, entonces A' =

Postulados del algebra de Boole Un conjunto B = {, }, dotado de dos operaciones denotadas por + y, es un álgebra de Boole si y sólo si se verifican los siguientes postulados o leyes. En todos los casos consideramos a,b,c B.. Las operaciones + y son conmutativas: a + b = b + a (conmutativa de la suma) a b = b a (conmutativa del producto) 2. Las operaciones + y son asociativas: a + (b + c) = (a + b) + c (asociativa de la suma) a (b c) = (a b) c (asociativa del producto) 3. Cada operación es distributiva respecto a la otra: + respecto : a + (b c) = (a + b) (a + c) respecto +: a (b + c) = (a b) + (a c) a,b,c B Un álgebra de Boole es simétrica con respecto a las operaciones + y, y a los elementos identidad y. Tal característica es el principio de dualidad, es decir, si tenemos un teorema, podemos obtener otro dual, cambiando las operaciones. Reglas Un álgebra de Boole B tiene las siguientes propiedades o reglas:. Identidad (+): a + = a a B 2. Elementos dominantes (+): a + = a B 3. Elementos dominantes ( ): a = a B 4. Identidad ( ): a = a a B 5. Idempotencia (+): a + a = a 6. Complemento (+): a + a' = 7. Idempotencia ( ): a a = a 8. Complemento ( ): a a' = 9. Involutiva: a'' = a. Ley de absorción (dual): a + (a b) = a y a (a+b) = a. Ley del consenso (dual): a + (a' b) = a + b y a (a +b) = a b Las 2 últimas reglas se pueden obtener a partir de las leyes y de las otras reglas más sencillas. a' = Complementario de a 2

3.2. Teoremas de De Morgan De Morgan propuso dos teoremas que constituyen una parte muy importante del álgebra de Boole. Teoremas de De Morgan:. El complemento de una suma de variables es igual al producto de los complementos de las variables: (a + b)' = a' b' a,b B 2. El complemento de un producto de variables es igual a la suma de los complementos de las variables: (a b)' = a' + b' a,b B Estos teoremas son válidos para cualquier número de variables. Ejemplos: a b c = a' + b' + c' (a + b + c)' = a' b' c' (a' + b' + c') ' = a b c ((a + b + c) d) ' = (a + b + c)' + d' = (a + b + c)' + d' = (a' b' c') + d' ((a b c) + (d e f)) ' = (a b c)' (d e f)' = (a'+b'+c') (d'+e'+f') ((a+b) c' d' + e + f') ' = ((a+b) c' d')' e' f = ((a+b)'+c+d) e' f = = ((a' b') + c + d) e' f Funciones lógicas Función lógica: Dadas n variables lógicas x, x 2,... x n, decimos que F es una función lógica de las citadas variables si: F(x, x 2,... x n ) B es decir, si F sólo toma los valores y. Al número de variables también se le llama dominio. 3

Una función lógica puede definirse de dos formas: a) Mediante una expresión algebraica, en la que intervengan las variables x, x 2,... x n (y sus complementarias: x ', x 2 ',... x n ') relacionadas entre sí mediante las operaciones + y. b) Mediante una tabla de verdad, que consiste en expresar en una tabla todas las posibles combinaciones de las variables de entrada x, x 2,... x n, asociando un valor a la salida. El número de combinaciones es 2 n. Es posible tener más de una salida en la misma tabla: multifunciones. Ejemplos: Sean x y x 2 dos variables lógicas. Ejemplos de expresiones algebraicas y sus correspondientes tablas de verdad serían: F = x ' F 2 = x + x 2 F 3 = x x 2 ' x F x x 2 F 2 x x 2 ' F 3 Como podemos observar, para construir la tabla de verdad de una función lógica, escribimos en las columnas de la izquierda todas las combinaciones posibles de las variables independientes, y en la columna de la derecha, los valores de la función correspondientes a cada combinación de las variables independientes. Las tablas de verdad permiten una representación compacta, pudiendo además definir dos o más funciones en una sola tabla, siempre y cuando dependan de las mismas variables independientes. Una suma de productos es igual a si y sólo si al menos uno de los productos es igual a. Un producto de sumas es igual a solamente si al menos uno de los términos es igual a. Por otro lado, dadas dos expresiones algebraicas F y F 2 diferentes, sus valores en la tabla pueden coincidir. En ese caso diremos que ambas funciones son equivalentes (F = F 2 ). 4

Ejemplos: Suma de productos: F = (a' b' c) + (a b' c' ) + (a b c) (3 variables) Los valores binarios que hacen que los productos de la expresión sean son: (a' b' c), (a b' c'), (a b c). Para estas combinaciones, en la columna de salida de la tabla de verdad pondremos un ; en el resto pondremos. a b c F Producto de sumas: F 2 = (a+b+c) (a+b'+c) (a+b'+c') (a'+b+c') (a'+b'+c) Los valores binarios que hacen que los términos suma sean son: (a+b+c), (a+b'+c), (a+b'+c'), (a'+b+c'), (a'+b'+c). Para estas combinaciones, en la columna de salida de la tabla de verdad pondremos un ; en el resto pondremos. a b c F 2 Podemos comprobar que ambas funciones son equivalentes (F =F 2 ). 5

Ejemplo: Sean las dos funciones lógicas siguientes, que dependen ambas de las mismas variables lógicas: a, b y c. F = (a + b + c) (a + b + c') (a' + b + c) (a' + b + c') F 2 = (a' b c') + (a' b c) + (a b c') + (a b c) Podemos representarlas en una única tabla de verdad (multifunciones): a b c F F 2 Podemos comprobar que ambas funciones son equivalentes (F = F 2 ). Obtención de la expresión algebraica a partir de la tabla Podemos obtener la expresión algebraica a partir de la tabla de verdad. Dada una función lógica F, ésta solo puede tomar los valores y. Podemos definir F indicando para qué combinaciones de las variables independientes, toma el valor (implementación por ""), o bien, para qué combinaciones toma el valor (implementación por ""). Implementación por "": Obtendremos una suma de productos. La función F será cierta para alguna de las combinaciones (suma lógica) que sean ciertas (vale ""). Cada combinación será cierta cuando sean ciertas todas las variables que la componen (producto lógico). Si alguna de las variables en la combinación elegida es falsa (vale ""), su negación será cierta (valdrá ""). Implementación por "": Obtendremos un producto de sumas. La función F será cierta cuando no se da ninguna de las combinaciones para las cuales es falsa (producto lógico). Una de estas combinaciones no ocurre cuando es falsa (negación) alguna de las variables (suma lógica) que componen la combinación. 6

Ejemplo: Sea la tabla de verdad del ejemplo anterior (F = F 2 = F). Recordamos que: ó (OR Lógica) = + (Suma lógica) y (AND Lógica) = (Producto lógico) Implementación por "": La función F es cierta (vale ) para las siguientes combinaciones: a b c F Condiciones para que F= a' y b y c' a' b c' a' y b y c a' b c a y b y c' a b c' a y b y c a b c La función F será cierta cuando se cumpla la primera combinación, ó la segunda, ó la tercera ó la cuarta, es decir, cuando se cumpla cualquiera de esas cuatro combinaciones. Una combinación es cierta si y solo si son ciertos todos los valores: F = (a' b c') + (a' b c) + (a b c') + (a b c) Podemos comprobar como hemos obtenido la misma función que la función F del ejemplo anterior (suma de productos). Implementación por "": La función es cierta (vale ) para las siguientes combinaciones: a b c F Condiciones para que F= a ó b ó c a + b + c a ó b ó c' a + b + c' a' ó b ó c a' + b + c a' ó b ó c' a' + b + c' La función F será cierta (vale ) si y solo si no se cumple la primera combinación, y no se cumple la segunda, y no se cumple la tercera y no se cumple la cuarta, es decir, cuando no se cumpla ninguna de esas cuatro combinaciones. Una combinación no es cierta si y solo si no es cierto el primer valor ó no es cierto el segundo ó no es cierto el tercero. Un valor no es cierto si su complemento es cierto (vale ""). 7

Sustituyendo las "y" por productos lógicos, las "ó" por sumas lógicas e incluyendo las complementaciones, tenemos como expresión de la función: F = (a + b + c) (a + b + c') (a' + b + c) (a' + b + c') Podemos comprobar como hemos obtenido la misma función que la función F 2 del ejemplo anterior (producto de sumas). Hemos comprobado así mismo, que las funciones F y F 2 son equivalentes, y que cualquier función puede expresarse mediante las variables independientes, relacionadas mediante las operaciones suma, producto y negación. Por tanto, tenemos dos formas de obtener la expresión algebraica de una función a partir de la tabla de verdad. Siguiendo el proceso inverso, ya hemos visto cómo fácilmente podemos, a partir de la expresión algebraica, obtener: las combinaciones de la tabla de verdad para las cuales la función vale desde una suma de productos las combinaciones de la tabla de verdad para las cuales la función vale desde un producto de sumas. Forma canónica de una función lógica Se llama término canónico de una función lógica a todo producto o suma en el cual aparecen todas las variables (o sus complementos) de esa función. A los términos producto se les llama productos canónicos (mintermus) y a los términos suma, sumas canónicas (maxtermus). Cuando una función se expresa como una suma de productos canónicos (mintermus) o como producto de sumas canónicas (maxtermus) se dice que se encuentra en su forma canónica o estándar. La implementación por "" nos lleva a la forma canónica de suma de productos. La implementación por "" nos lleva a un producto de sumas. Aplicando los teoremas de De Morgan, podemos convertir una función expresada en sumas de productos (mintermus) a producto de sumas (maxtermus) y viceversa. Aplicando las leyes distributivas, podemos convertir cualquier función que no esté en forma canónica a suma de productos o productos de sumas (forma canónica): F = a b + c (d+e) = a b + c d + c e 8

Ejemplo: Producto de sumas Suma de productos (maxtermus mintermus) F = ((a + b + c') (a + b' + c)) ' = = (a + b + c') ' + (a + b' + c) ' = = (a' b' c) + (a' b c') Suma de productos Producto de sumas (Mintermus Maxtermus) F = (a b c) + (a b' c') = = ( (a b c) + (a b' c') ) '' = = ( (a b c)' (a b' c')' ) ' = = ( (a' + b' + c') (a' + b + c) ) ' Conversión de una suma de productos a su forma canónica Utilizando lo siguiente podemos convertir un término producto que no contenga todas las variables a otro que si las tenga: Regla 6 del álgebra de Boole: (a + a' = ) Propiedad distributiva: a (b+c) = (a b) + (a c) Tenemos que multiplicar cada término producto que no esté en forma canónica por un término formado por la suma de la variable que le falta y su complemento. Multiplicar por no altera el valor de un término. El número de productos se duplica por cada variable que falta. Ejemplo: Convertir la siguiente expresión booleana al formato suma de productos canónicos: F = (a b' c) + (a' b') + (a b c' d) Tenemos 4 variables: a,b,c,d. Consideramos cada término por separado. a b' c = (a b' c) (d+d') = (a b' c d) + (a b' c d') a' b' = (a' b') (c+c') = (a' b' c) + (a' b' c') = = [ (a' b' c) (d+d') ] + [ (a' b' c') (d+d') ] = = [ (a' b' c d) + (a' b' c d') ] + [ (a' b' c' d) + (a' b' c' d') ] a b c' d => Ya lo tenemos en forma canónica Sustituyendo cada término por su equivalente término canónico: F = (a b' c d) + (a b' c d') + (a' b' c d) + (a' b' c d') + + (a' b' c' d) + (a' b' c' d') + (a b c' d) 9

Conversión de un producto de sumas a su forma canónica Utilizando lo siguiente podemos convertir un término suma que no contenga todas las variables a otro que si las tenga: Regla 8 del álgebra de Boole: (a a' = ) Propiedad distributiva: a+(b c) = (a+b) (a+c) Tenemos que sumar a cada término suma que no esté en forma canónica un término formado por el producto de la variable que le falta y su complemento. Sumar no altera el valor de una suma. El número de sumas se duplica por cada variable que falta. Ejemplo: Convertir la siguiente expresión booleana al formato de producto de sumas canónico. F = (a+b'+c) (b'+c+d') (a+b'+c'+d) Tenemos 4 variables: a,b,c,d. Consideramos cada término por separado. (a+b'+c) = (a+b'+c) + (d d') = (a+b'+c+d) (a+b'+c+d') (b'+c+d') = (b'+c+d') + (a a') = (a+b'+c+d') (a'+b'+c+d') (a+b'+c'+d) Ya lo tenemos en forma canónica Sustituyendo cada término por su equivalente término canónico: F = (a+b'+c+d) (a+b'+c+d') (a+b'+c+d') (a'+b'+c+d') (a+b'+c'+d)

Forma compacta de una función en forma canónica Una expresión en forma canónica puede expresarse de una forma compacta. La forma compacta de representar esta tabla o las expresiones lógicas sería indicando las combinaciones que hacen cierta (suma de productos) o falsa (producto de sumas) la función F de la siguiente forma: Forma de la expresión suma de productos producto de sumas Forma compacta F = Suma de m i = (Combinaciones ciertas) F = Producto de M i = Π (Combinaciones falsas) Sea la función F definida por la tabla de verdad siguiente: a b c F Mintermus (m) Maxtermus (M) Valor M = a+b+c = M = a+b+c' = M 2 = a+b'+c 2 = m 3 = a' b c 3 = M 4 = a'+b+c 4 = m 5 = a b' c 5 = m 6 = a b c' 6 = M 7 = a'+b'+c' 7 = Por tanto, las expresiones lógicas equivalentes "suma de productos" y "producto de sumas" son: F = m 3 +m 5 +m 6 = (a' b c) + (a b' c) + (a b c') F = M M M 2 M 4 M 7 = (a+b+c) (a+b+c') (a+b'+c) (a'+b+c) (a'+b'+c') Si expresamos en binario las combinaciones: Suma de productos (directo): ++ Producto de sumas (complementados): Las expresiones compactas son: Suma de productos: F = (3,5,6) Producto de sumas: F = Π (,,2,4,7) F = (3,5,6) = Π (,,2,4,7) Ambas expresiones compactas son equivalentes, como se demuestra aquí: Sabemos que: M i = m i ' (DeMorgan) Tenemos que: F = (3,5,6) = m3 + m5 + m6 Obtenemos la función complementada F', que valdrá para aquellas combinaciones que F= (y no estará definida para las mismas combinaciones que F). F' = (,,2,4,7) = m+m+m2+m4+m7 Complementamos en ambas partes de la igualdad: F'' = F = (m+m+m2+m4+m7)' = m' m' m2' m4' m7' F = M M M2 M4 M7 = F = Π(M,M,M2,M4,M7) = Π(,,2,4,7)

3.3. Puertas lógicas Introducción Los computadores actuales utilizan como soporte tecnológico los circuitos electrónicos, por lo que se consiguen grandes velocidades. Pero estos circuitos electrónicos no pueden manejar directamente cifras ni caracteres. La información se representa casi siempre mediante tensiones eléctricas. Ahora bien, pueden utilizarse tensiones eléctricas de dos tipos: Señales analógicas: las tensiones toman cualquier valor dentro de un intervalo determinado. Permiten representar una magnitud y asignarle un valor cualquiera. Señales discretas: las tensiones sólo toman unos valores concretos. Permiten representar un número limitado de valores diferentes. En el caso de que el número de valores diferentes que pueda representar la tensión sean solo dos, la señal se denomina lógica o digital. En los computadores se utilizan señales lógicas para representar la información. A los dos valores que puede tomar dicha señal, se les asigna habitualmente como y. La razón de la utilización de este tipo de señales es, fundamentalmente tecnológica. Existe un tipo de circuitos electrónicos, denominados circuitos digitales, que trabajan solo con dos niveles de tensión, y que pueden realizar una transición de un nivel a otro. son: Las ventajas que presentan estos circuitos respecto a los analógicos Gran simplicidad de diseño Velocidad de trabajo más elevada Consumo más reducido Inmunidad al ruido muy elevada (margen de error) Posibilidad de diseño descendente, al poder confeccionar cualquier circuito, por complejo que sea, con unidades más simples diseñadas previamente. Posibilidad de aumentar hasta el nivel que se desee, la precisión en la representación de una información numérica. Menor coste de fabricación, para las mismas prestaciones, ya que al poder construir cualquier circuito con unidades básicas, permite fabricar éstas en grandes cantidades. El único inconveniente es una complejidad superior de los circuitos, que no es tal inconveniente, gracias a la posibilidad de diseño y análisis descendente. 2

Las únidades básicas más simples que componen los circuitos digitales se denominan puertas lógicas, y son circuitos que implementan las funciones lógicas elementales. Son bloques de construcción básicos de funciones más complejas. Se representan por unos símbolos de acuerdo al estándard ANSI / IEEE 9-984. Los valores lógicos "" y "" se representan por niveles de tensión diferentes en las líneas de entrada y salida de estos circuitos. Realmente estos dos niveles de tensión son bastante diferentes entre si. Los circuitos digitales se diseñan de tal forma, que reconocen un valor lógico, aunque la tensión no tome exactamente el nivel definido, siempre y cuando esté dentro de una franja alrededor de dicho nivel, permitiendo una cierta inmunidad ante variaciones en la señal de entrada (ruido). Se dice que una lógica es positiva si la tensión correspondiente al "" lógico es mayor que la tensión del "" lógico. En caso contrario, se trata de una lógica negativa. La mayoría de las veces, el "" lógico es la masa o tensión de voltios. Los niveles de tensión utilizados vienen determinados por la tecnología empleada en la fabricación de circuitos. Puertas básicas Puerta AND De la definición de álgebra de Boole, las puertas básicas son: La salida es si y sólo si todas y cada una de las variables de entrada toman el valor. La puerta AND realiza la función producto lógico de las variables de entrada: y = x x 2... x n Representación gráfica: Tabla de verdad: a b AND Ejemplo de aplicación: Habilitar / impedir el paso de alguna señal. Si el cinturón de seguridad no está abrochado, se activa una de las entradas, pero mientras el coche no esté en marcha no nos avisará. Al arrancar, activamos la otra entrada, y una alarma o mensaje nos advertirá de que debemos colocarnos el cinturón. 3

Puerta OR La salida es si y sólo si al menos una de las entradas toma el valor. La puerta OR realiza la función de suma lógica: y = x + x 2 +... + x n Representación gráfica: Tabla de verdad: a b OR Ejemplo de aplicación: Un sistema de alarma, en el que tenemos varios sensores en puertas y ventanas. En el momento en que cualquiera de los sensores detecte la presencia de un intruso, el valor de la función OR será "", y podría activar un circuito de alarma (sirena, etc.). Puerta NOT (inversor) y = x' Representación gráfica: Tabla de verdad: a NOT Ejemplo de aplicación: Realizar el complemento a de un número binario, con una serie de inversores en paralelo, tantos como bits utilizados en el número binario. 4

Puerta NAND La salida es si y sólo si todas y cada una de las entradas toman el valor. En el resto de caos, la salida es. Equivale a una puerta AND seguida de una puerta NOT. Realiza la función: y = (x x 2... x n )' = x ' + x 2 ' +... + x n ' Representación gráfica: Tabla de verdad: a b NAND / Neg-Or La puerta NAND (AND+NOT) es equivalente a la puerta llamada negativa-or (NOT+OR). El uso de una u otra puerta depende de si nos interesa detectar todas las entradas a nivel alto (NAND) o alguna a nivel bajo (Negativa-OR). Recordar los teoremas de De Morgan. Ejemplo de aplicación: En un proceso de fabricación tenemos dos tanques A y B de líquido, con sensores de nivel que se activan por nivel alto (""), es decir, cuando el nivel es igual o supera al del sensor. Tenemos dos posibilidades: Queremos que se nos encienda un testigo de color verde (LED conectado a +V) en un panel de control en el caso de que el nivel de los dos tanques esté por encima de unos valores correctos: NAND. Queremos que se nos encienda un testigo de color rojo (LED conectado a GND) en un panel de control en el caso de que el nivel de cualquiera de ellos descienda por debajo de un determinado nivel: Negativa-OR. Es decir, cuando la salida de estas puertas es (3 casos) se enciende el LED rojo, y cuando es, se enciende el LED verde. 5

Puerta NOR La salida es si y sólo si al menos una de las entradas toma el valor. Equivale a una puerta OR seguida de una puerta NOT. Realiza la función: y = (x + x 2 +... + x n )' = x ' x 2 '... x n ' Representación gráfica: Tabla de verdad: a b NOR / Neg-AND La puerta NOR (OR+NOT) es equivalente a la puerta llamada negativa- AND (NOT+AND). El uso de una u otra puerta depende de si nos interesa detectar alguna de las entradas a nivel alto (NOR) o todas a nivel bajo (Negativa-AND). Recordar los teoremas de De Morgan. Ejemplo de aplicación: Monitorizar el tren de aterrizaje de un avión. Este dispone de tres mecanismos: rueda delantera y ruedas en las dos alas. Queremos que se encienda una luz verde si, tras pulsar el interruptor de "bajar el tren de aterrizaje", los tres mecanismos está correctamente extendidos, y una luz roja si alguno de ellos ha fallado. Cuando uno de los mecanismos se extiende, el sensor genera una corriente a nivel bajo; cuando se retrae, genera una corriente a nivel alto. El circuito sólo se alimentará al pulsar el botón de "bajar el tren de aterrizaje". Las tres señales serán las entradas de dos puertas lógicas, una NOR, que encenderá el LED Rojo, y una Negativa-AND que encenderá el LED Verde Realmente son dos puertas NOR, sólo que una de ellas funciona como una puerta Negativa-AND, para detectar un nivel bajo de los sensores (extendidos). Cuando los tres sensores están a nivel bajo (extendidos), la puerta Negativa-AND tiene como salida un nivel alto, que enciende el LED verde (conectado a GND). Si alguno de los tres sensores está nivel alto (retraidos), la puerta NOR tiene salida a nivel bajo, que enciende el LED rojo (conectado a +V). Es decir, cuando la salida de estas puertas es (3 casos) se enciende el LED rojo, y cuando es, se enciende el LED verde. 6

Puerta XOR (OR-Exclusiva) Una puerta XOR de 2 variables de entrada es tal que la salida toma el valor cuando las dos entradas son diferentes, y toma el valor cuando son iguales. Sólo tiene 2 entradas. Se representa por el símbolo. Representación gráfica: Tabla de verdad: a b XOR La función se expresa en forma canónica como: y = (x' x2) + (x x2') = (x + x2) (x' + x2') La definición para más de 2 entradas es compleja, pero puede obtenerse la expresión de la función en forma canónica fácilmente, sabiendo que la función OR-exclusiva tiene la propiedad asociativa: y = x x2... xn = (((x x2) x3)... xn) Esta puerta se utiliza bastante en muchos circuitos, como los generadores de paridad. Ejemplo de aplicación: Suma de dos bits sin acarreo (semisuma). Puerta XNOR (NOR-exclusiva) Equivale a una puerta OR-exclusiva seguida de una puerta NOT, por tanto, también tiene sólo 2 entradas. Representación gráfica: Tabla de verdad: a b XNOR 7

Implementación de funciones con puertas NAND o NOR Hasta ahora hemos visto que cualquier función lógica podía definirse utilizando solamente las operaciones de complementación, suma y producto (puertas NOT, AND y OR). Vamos a ver ahora que cualquier función lógica (sistema digital) puede implementarse solamente con puertas NAND, o bien con puertas NOR. Por ello, a las puertas NAND y NOR se las conoce como puertas universales. Para ello, es suficiente obtener las puertas básicas, implementándolas con puertas NAND o NOR, es decir, debemos demostrar que es posible derivar las puertas NOT, AND y OR utilizando únicamente puertas NAND, y luego, puertas NOR. Las puertas básicas (NOT, AND y OR) pueden obtenerse con puertas NAND de la siguiente forma: Puerta básica Función NOT f = x = (x x) ' ó también f = x = (x ) ' Esquema (el símbolo de una puerta NAND con una sola sola entrada no es válido) AND f = x x2 = (x x2) '' (complementando dos veces) OR f = x + x2 = (x + x2) '' = (x' x2') ' (complementando dos veces y aplicando el teorema de De Morgan) Este procedimiento nos lleva a un número excesivo de puertas, pudiéndose simplificar a continuación el circuito. De todas formas, si se quiere implementar una función con puertas NAND o NOR, lo más inmediato es modificar la expresión algebraica de la función mediante los teoremas de De Morgan. 8

Ejemplo: Como ejemplo, vamos a implementar con puertas NAND y NOR una función expresada en forma de suma de productos (F) y otra expresada en forma de productos de sumas (F2): Puertas NAND F = (a b c) + (a' b c') + (a' b' c') F2 = (a + b + c)' ' (a' + b + c)' ' (a + b' + c')' ' (I) Sumas de productos F = (a b c) + (a' b c') + (a' b' c') = = ( (a b c) + (a' b c') + (a' b' c') ) ' ' = = ( (a b c)' (a' b c')' (a' b' c')' ) ' Lo que hemos hecho es complementar dos veces las función entera, con lo cual la función sigue siendo equivalente. A continuación, aplicamos el teorema de De Morgan, que convierte el complemento de una suma en el producto de los complementos. Así obtenemos una expresión en la que sólo tenemos productos seguidos de negaciones (NAND). (II) Productos de sumas F2 = (a + b + c)' ' (a' + b + c)' ' (a + b' + c')' ' = = (a' b' c')' (a b' c')' (a b' c')' En este caso simplemente hemos aplicado el teorema de De Morgan a cada uno de los términos. Puertas NOR (I) Sumas de productos F = (a b c) + (a' b c') + (a' b' c') = = (a b c)' ' + (a' b c')' ' + (a' b' c')' ' = = (a' + b' + c') ' + (a + b' + c) ' + (a + b + c) ' Hemos complementado dos veces cada uno de los sumandos, y luego aplicamos De Morgan para transformar los productos en suma de negaciones. (II) Productos de sumas F2 = (a + b + c)' ' (a' + b + c)' ' (a + b' + c')' ' = = ( (a + b + c)' ' (a' + b + c)' ' (a + b' + c')' ' )' ' = = ( (a + b + c)' ' ' + (a' + b + c)' ' ' + (a + b' + c')' ' ') ' = = ( (a + b + c)' + (a' + b + c)' + (a + b' + c')' ) ' 9

3.4. Métodos de simplificación de funciones Hemos visto como dos funciones con expresiones algebraicas diferentes eran equivalentes. Sin embargo, existen numerosas funciones con expresiones diferentes equivalentes a dichas funciones. De entre ellas, habrá algunas que poseerán un número menor de productos y sumas. Debemos buscar la más sencilla, para simplificar procesos posteriores como el de diseñar un circuito lógico para dicha función. El proceso de simplificación de funciones lógicas consiste en pasar de una expresión algebraica a otra equivalente con el menor número posible de sumas y productos. 3.4. Simplificación mediante propiedades del álgebra de Boole. Este método requiere un profundo conocimiento del álgebra booleana y una considerable experiencia en su aplicación. Las propiedades más utilizadas para la simplificación de funciones son: Distributiva: + respecto : a + (b c) = (a + b) (a + c) respecto +: a (b+c) = (a b) + (a c) a,b,c B a B,! a' B tal que: a + a = a a = Ley de absorción: a + (a b) = a a (a+b) = a Teoremas de De Morgan Ejemplos. F = (a b' c' d) + (a b' c' d') Aplicamos la propiedad distributiva: (a b' c' d) + (a b' c' d') = a b' c' (d+d') = a b' c' = a b' c' De esta forma hemos reducido dos sumandos de 4 variables a uno solo de tres variables. 2

2. F = (a+b'+c'+d) (a+b'+c'+d') Podemos aplicar las mismas propiedades que antes, en su versión dual. (a+b'+c'+d) (a+b'+c'+d') = (a+b'+c') + (d d') = = (a+b'+c') + = (a+b'+c') 3. F = a b + a (b+c) + b (b+c) Comenzamos aplicando la propiedad distributiva. a b + a (b+c) + b (b+c) = a b + (a b + a c) + (b b + b c) = = a b + a c + b + b c = a b + a c + b = a c + b Hemos terminado aplicando dos veces la propiedad. 4. Función F del ejemplo anterior F = (a' b c') + (a' b c) + (a b c') + (a b c) = = (a' b) (c' + c) + (a b) (c' + c) = = (a' b) + (a b) = (a' b) + (a b) = = (a' + a) b = b = b 5. Función F2 del ejemplo anterior F 2 = (a + b + c) (a + b + c') (a' + b + c) (a' + b + c') = = (a + b + (c' c)) (a' + b + (c c')) = = (a + b + ) (a' + b + ) = (a + b) (a' + b) = = (a a') + b = + b = b Podemos comprobar que en los dos últimos ejemplos hemos llegado a la misma expresión simplificada. Anteriormente habíamos visto que ambas expresiones eran equivalentes. De este ejemplo no debe sacarse la conclusión de que una expresión en suma de productos y otra equivalente como producto de sumas, tras simplificar, conducen a la misma expresión. Esto, en general, no es cierto. El método de simplificación algebraica se utiliza poco, pues tiene varios inconvenientes: No es sistemático (requiere ingenio y destreza). En una expresión compleja, es difícil detectar todas las posibles simplificaciones. En la mayoría de los diseños, una función se define por su tabla de verdad, debiendo obtener la expresión algebraica para poder simplificarla. 2

3.4.2 Mediante tablas de Karnaugh Un mapa de Karnaugh es una forma de presentar la tabla de verdad de tal manera que la disposición de las combinaciones de valores es particularmente útil, de tal forma que la simplificación de una determinada expresión consiste en agrupar adecuadamente las celdas. La forma de la tabla dependerá del número de variables independientes con las que estemos trabajando. Los mapas de de Karnaugh pueden utilizarse para expresiones de hasta 5 variables. En el caso de tener más de 5 variables, tendríamos que recurrir a otro método que no vamos a ver, llamado método de Quine-McClusky. El número de celdas de un mapa de Karnaugh es igual al número total de posibles combinaciones de las variables de entrada, al igual que el número de filas de una tabla de verdad: 2 n. Una sola variable (a): Sólo habrá dos símbolos de entrada: y. La tabla de Karnaugh tendrá dos casillas, en donde el indica el valor de de entrada y el indica el valor de entrada. Para el proceso de simplificación que veremos a continuación, conviene numerar las casillas según un criterio, aunque no es obligatorio. Para ello pondremos un índice en la esquina superior derecha, comenzando desde el. a a' a Puesto que esta tabla contiene todos los posibles valores de entrada, cualquier función de una variable puede representarse en este diagrama, asignando a cada casilla el valor que toma la función para el valor de la variable de entrada indicada. Por ejemplo, si la función es F(a) = a' tendremos la tabla: a 22

Dos variables (a,b): Ahora la tabla de Karnaugh debe contemplar las cuatro posibles combinaciones de las variables: (,), (,), (,), (,). a \ b a' b' a' b 2 3 a b' a b El valor de una determinada celda es el valor binario de las dos variables a y b, comenzando por la parte izquierda y luego la parte superior. Sea la función F(a,b) = a + b. La representaremos del siguiente modo. a \ b Tres variables (a,b,c): Se puede representar de forma horizontal o vertical. En este caso y en los restantes (con más variables), la forma de numerar las casillas depende de la combinación que represente una determinada columna o fila, y para etiquetar una determinada columna o fila hay que realizarlo de tal forma que el cambio de una combinación a la siguiente sólo varíe un bit. a \ bc a' b' c' a' b' c a' b c 3 a' b c' 2 a b' c' 4 a b' c 5 a b c 7 a b c' 6 El código cíclico empleado para las combinaciones de filas y columnas es algo importante. Como resultado de este código, las casillas que tienen en común un lado corresponden a combinaciones que difieren en el valor de una 23

variable y se dice que son adyacentes; las casillas que tocan diagonalmente alguna de sus esquinas no son adyacentes. Las casillas adyacentes son clave en el proceso de simplificación. La adyacencia se define por un cambio de una única variable. Las celdas que difieren en una única variable son adyacentes. Las celdas cuyo valor difiere en más de una variable no son adyacentes. En la determinación de casillas adyacentes es necesario, para el caso de tres variables, considerar el diagrama de Karnaugh como una superficie cilíndrica en que los lados izquierdo y derecho están unidos. Siendo así, la celda es contigüa a 2, y la celda 4 es contigua a 6. Cuatro variables (a,b,c,d): La tabla será, de nuevo, cíclica, donde los lados izquierdo y derecho están unidos, y de la misma forma, el superior e inferior. Las variables a y b se encuentran en la parte izquierda, mientras que las variables c y d en la parte superior. El valor de una determinada celda es el valor binario de a y b en la parte izquierda de la misma fila, combinado con los valores binarios de c y d en la parte superior de la misma columna. ab \ cd a' b' c' d' 3 2 4 5 7 6 2 3 5 4 8 9 a b' c d' Dos celdas son adyacentes si sólo cambia un dígito, aunque no lo sean físicamente. Son adyacentes de extremo a extremo. Por ejemplo, son adyacentes los siguientes pares de celdas: -8, -2, -9, 3-, 2-, 2-4, 8-, 4-6 24

Cinco variables (a,b,c,d,e): Al igual que en el caso de 4 variables, se pueden solapar las partes laterales. Aquí se pueden solapar las partes extremas: laterales izquierda y derecha, y superior e inferior. Además, en este caso tenemos un eje central que actúa de espejo, de tal forma que la celda 3 es adyacente con la celda 7. Para comprobarlo, se ven las combinaciones y se observa que sólo cambia un bit. ab \ cde 3 2 6 7 5 4 8 9 4 5 3 2 24 25 27 26 3 3 29 28 6 7 9 8 22 23 2 2 En definitiva, podemos sacar las siguientes conclusiones: Las tablas consideradas establecen una correspondencia biunívoca entre los valores de las variables de la función y el conjunto de casillas del diagrama de Karnaugh. Cada combinación de valores de las variables representa un término canónico (producto o suma), es decir, existe también una correspondencia entre el conjunto de los términos canónicos y el conjunto de las casillas de la tabla de Karnaugh. Por ejemplo, para cuatro variables, la combinación (,,,) representa: el producto canónico: a' b' c' d' (de forma directa) la suma canónica: a + b + c + d (de forma complementada) Las celdas que tienen un lado común son adyacentes, y corresponden a términos canónicos que difieren en sólo el valor de una de las variables. 25

Construcción de una tabla de Karnaugh Podemos construir una tabla de Karnaugh desde la expresión lógica (suma de productos o producto de sumas), o bien, desde una tabla de verdad. Vamos a explicar todos estos casos basándonos en el siguiente ejemplo que ya vimos anteriormente. Sea la función F definida por la tabla de verdad siguiente: a b c F Mintermus (m) Maxtermus (M) Valor M = a+b+c = M = a+b+c' = M 2 = a+b'+c 2 = m 3 = a' b c 3 = M 4 = a'+b+c 4 = m 5 = a b' c 5 = m 6 = a b c' 6 = M 7 = a'+b'+c' 7 = Por tanto, las expresiones lógicas equivalentes "suma de productos" y "producto de sumas" y compactas serían: F = (3,5,6) = (a' b c) + (a b' c) + (a b c') F = Π (,,2,4,7) = (a+b+c) (a+b+c') (a+b'+c) (a'+b+c) (a'+b'+c') Desde la expresión lógica La forma de construcción de la tabla de Karnaugh depende de la forma de la expresión que tengamos (suma de productos o producto de sumas). En ambos casos, la expresión debe estar expresada en forma canónica, es decir, todos sus términos son canónicos (contienen todas las variables). Podemos ver también la forma compacta que representa cada caso, poniendo entre paréntesis los números de las combinaciones de que hacen cierta la expresión lógica. Veremos algún ejemplo en el siguiente punto. Dada una función con "n" variables, la construcción de la tabla de Karnaugh correspondiente se efectúa indicando mediante un "" o un "" las celdas que corresponden a términos canónicos que forman parte de la función, y dejando en blanco las casillas correspondientes a los términos que no forman parte de la función. Partiendo de la expresión en su forma canónica, procedemos como sigue. 26

Desde la expresión "suma de productos": Introduciremos un "" en el mapa de Karnaugh por cada término producto (mintermus) de la expresión. Consideramos los valores binarios de las variables del término de forma directa (sin complementar). En las casillas correspondientes a dichas combinaciones colocaremos 's, pues consideramos los casos en los que la función es cierta; y para que esto ocurra, por lo menos uno de los términos debe ser cierto (es una suma), y para que un término (producto) sea cierto, todas sus variables deben ser ciertas. Siguiendo con el ejemplo, la expresión "suma de productos" es: F = (3,5,6) ó también F = (a' b c) + (a b' c) + (a b c') ==> + + (directos) Vamos a construir la tabla de Karnaugh: a \ b c 3 4 5 2 7 6 Podemos comprobar que hemos colocado un "" en las casillas correspondientes a las combinaciones indicadas por los términos canónicos de la función compacta. El resto de casillas podemos poner "" ó dejarlas en blanco. Otro ejemplo: F = a' b' c' + a' b' c + a b c' + a b' c' a \ bc 27

Desde la expresión "producto de sumas": En este caso introduciremos un "" en el mapa de Karnaugh por cada término suma (maxtermus) de la expresión. Aquí, los valores binarios de las variables de los términos van complementados, ya que estamos considerando los valores que hacen que la función sea falsa (); y para que esto ocurra, basta con que uno de los términos sea falso (es un producto), y para que un término (suma) sea falso, basta con que una de sus variables sea falsa. Consideramos los valores binarios que hacen falso cada término. Siguiendo con el ejemplo, la expresión "producto de sumas" es: F = Π (,,2,4,7) ó también F = (a+b+c) (a+b+c') (a+b'+c) (a'+b+c) (a'+b'+c') ==> ==> (complementados) La tabla de Karnaugh del ejemplo ahora será: a \ bc 4 5 7 3 2 Podemos comprobar que hemos colocado un "" en las casillas correspondientes a las combinaciones indicadas por los términos canónicos de la función compacta: F = Π (,,2,4,7). El resto de casillas podemos poner "" ó dejarlas en blanco. 6 Otro ejemplo: F = (a+b+c) (a+b'+c) (a'+b'+c) (a'+b+c') a \ bc 28

Desde la tabla de verdad: Recordemos que una tabla de verdad proporciona la salida de una expresión lógica para todas las posibles combinaciones de las variables de entrada. Lo único que tenemos que hacer es trasladar los "" o los "" de la columna de salida (F) de la tabla de verdad directamente al mapa de Karnaugh, a las celdas correspondientes a los valores asociados de las combinaciones de variables de entrada. Es el caso más sencillo, pues trabajamos de forma directa. Podemos implementar por "" (considerando los 's) o por "" (considerando los 's). Lo más rápido es considerar aquel que tenga menos ocurrencias, rellenar la tabla de Karnaugh para dicho valor y finalmente rellenar el resto de casillas con el otro valor o dejarlas en blanco. Para el ejemplo tenemos aquí los dos casos: a \ b c a \ b c 3 4 5 2 7 6 4 5 7 3 2 Implementando por : considerando los valores que hacen que la función sea cierta (). El resto de casillas podemos dejarlas en blanco o poner "". Implementando por, considerando los valores que hacen que la función sea falsa (). El resto de casillas podemos dejarlas en blanco o poner "". 6 NOTA: Independientemente de como hayamos construido la tabla de Karnaugh (implementando por "" o por ""), después, para el proceso de simplificación, podremos obtener la función simplificada como suma de productos (implementando por "") o como producto de sumas (implementando por ""). 29

Mecanismo de simplificación Si dos celdas adyacentes están marcadas con, tenemos dos términos canónicos que difieren sólo en una variable, que además, dicha variable aparecerá como directa (valor ) en un término canónico y como complementada (valor ) en el otro término. Podemos agrupar las dos celdas adyacentes produciendo un único término canónico en que falta justo esa variable en que diferían. Vamos a ver el mecanismo de simplificación:. Construir la tabla de Karnaugh adecuada según el número de variables, indicando con un "" y con "" las celdas que correspondan. 2. Seleccionar la forma final que tendrá la función simplificada: suma de productos (implementando por "" ) o producto de sumas (implementando por ""). En los siguientes pasos suponemos que implementamos por "". 3. Agrupar celdas adyacentes marcadas con "". Primero, grupos de 2 unos que no pueden formar grupos de 4. Luego formar grupos de 4 unos que no pueden formar un grupo de 8, etc. Interesa buscar los grupos más numerosos, para obtener el menor número de grupos posible. Cada celda de un grupo tiene que ser adyacente a una o más celdas del mismo grupo, pero no todas las celdas del grupo tienen que ser adyacentes entre si. Además un "" puede estar en varios grupos a la vez. 4. Tomar todas las celdas con "" que no se pueden agrupar con ninguna otra como grupos de un "" (aislados). 5. Cuando se hayan considerado todos los "" se ha finalizado el proceso. Los grupos de "" conseguidos y los "" aislados son los términos que expresarán la función lógica en una forma irreducible. Este proceso de simplificación no es único, pudiéndose obtener por tanto varias formas irreducibles de la misma función, dependiendo de las distintas agrupaciones que podemos realizar. Una vez realizadas las agrupaciones, para obtener la expresión de la función lógica irreducible, realmente lo que haremos es utilizar de forma sistemática las propiedades: (a b c) + (a' b c) = (a + a') b c = b c = b c (a + b + c) (a' + b + c) = (a a') + b + c = + b + c = b + c Es decir, las variables que aparecen complementadas y sin complementar dentro del mismo grupo se eliminan (variables contradictorias). NOTA: Siempre que un mapa de Karnaugh sea un tablero de ajedrez en el que la casilla de la esquina inferior derecha sea un, la solución es la OR- Exclusiva (XOR) de las variables (F = a b' + a' b = a b). Si dicha casilla es un, la solución es la OR-Exclusiva negada (XNOR) de las variables (F = a b + a' b' = (a b)'. 3

Ejemplo: Sea la función F vista anteriormente. Como es suma de productos implementamos por (de forma directa) para construir la tabla de Karnaugh: F = a' b' c' + a' b' c + a b c' + a b' c' Hacemos las agrupaciones, sobre su tabla de Karnaugh. Como queremos obtener una suma de productos, implementamos por : a \ bc La expresión irreducible será: F = (a b') + (a c') Ejemplo: Sea la siguiente tabla de Karnaugh obtenida directamente desde la tabla de verdad siguiente, implementando por o por "" (no importa): a b c F F = Σ (3,5,6) Su tabla de Karnaugh será: a \ bc 4 5 3 7 2 6 Implementando por "" (suma de productos): No podemos asociar ningún grupo de "" que sea de 2, 4 u 8. Por tanto, la función simplificada será: F = (a' b c) + (a b' c) + (a b c') Casilla 6 Casilla 5 Casilla 3 Implementando por "" (producto de sumas): No tenemos grupos de 8 ni de 4 "". Grupos de 2 "": casillas -, -4, -2 "" aislados: casilla 7 3

Tema 3 La función simplificada será: F = (a+b) (b+c) (a+c) (a'+b'+c') Casilla 7 Grupo -2 Grupo -4 Grupo - Ejemplo: Sea la función F(a,b,c,d) = (,4,5,7,8,9,3,5), construimos su tabla de Karnaugh (implementando por ) y vamos a obtener la función simplificada en forma de suma de productos (implementando por ""). ab \ cd 4 3 2 5 2 3 8 9 7 5 6 4 Agrupando y simplificando según el mecanismo obtendríamos: F = (b d) + (a' c' d') + (a' b' c') Grupo 2: 8,9 Grupo 2:,4 Grupo 4: 5,7,3,5 Dependiendo de las agrupaciones que hagamos, podríamos haber obtenido otras formas irreducibles de la función, pero no todas serán la mínima. Ejemplo: Sea la función F(a,b,c,d) = (5,6,9,), construimos su tabla de Karnaugh (implementando por ) y vamos a obtener la función simplificada como producto de sumas (implementando por ""). ab \ cd 4 2 8 5 3 9 3 7 5 2 6 4 32

Tema 3 Si implementásemos por "" (suma de productos), vemos que no podemos agrupar, pues no hay celdas con "" adyacentes. Esto quiere decir que no se puede reducir, y su forma mínima como suma de productos es: F = (a' b c' d) + (a' b c d') + (a b' c' d) + (a b' c d') Agrupando por "" y simplificando según el mecanismo obtendríamos la función como producto de sumas: F = (c+d) (c'+d') (a'+b') (a+b) Grupo 4:,,3,2 Grupo 4: 2,3,5,4 Grupo 4: 3,7,5, Grupo 4:,4,2,8 Esta expresión contiene sólo 8 letras, en lugar de las 6 de la forma suma de productos y es, por tanto, mínima. Como conclusión, una función lógica o booleana puede representarse y simplificarse, tanto en su expresión como suma de productos, como en la de producto de sumas, mediante una tabla de Karnaugh. Indiferencias en el mapa de Karnaugh Algunas veces se producen situaciones en las que algunas combinaciones de las variables de entrada no están permitidas o no están determinadas para un problema concreto, ó bien, no nos importa la salida para dichas combinaciones. Estos casos los llamaremos indiferencias, ó términos indiferentes. Los representaremos por 'x'. Esto significa que a estos términos les podemos asignar "" ó "". Hemos visto que las funciones lógicas se pueden expresar de forma compacta como suma de productos canónicos o producto de sumas canónicas. En el primer caso considerábamos los casos en los que se cumple la función (""), y en el segundo, los casos en los que la función es falsa (""). Ahora tenemos un tercer valor que nos puede aparecer en la función de salida. Para representar una función en forma compacta que tiene indiferencias en la salida hacemos lo siguiente: Forma de la expresión Forma compacta suma de productos F = ( Combinaciones ciertas ) + d ( Combinaciones indiferentes ) producto de sumas F = Π ( Combinaciones falsas ) d ( Combinaciones indiferentes ) donde "d(combinaciones indiferentes)" representa una lista de las combinaciones indiferentes de la función. En el caso de la "suma de productos", las combinaciones van de forma directa. En el caso del "producto de sumas", las combinaciones van complementadas, incluso las indiferentes. 33

Tema 3 Ejemplo Como ejemplo vamos a analizar el código BCD. Hay muchas formas de representar datos numéricos en forma binaria. Una puede ser escribir el número en base 2, que se denomina codificación binaria directa. Otra forma es codificar los números decimales dígito por dígito. Esta codificación se denomina BCD (Binary-Coded-Decimal). Hay varios tipos de códigos BCD, pero en general, se trata simplemente de sustituir cada dígito decimal (-9) por su equivalente binario. En BCD, al igual que en la codificación binaria directa, necesitamos 4 bits. Por tanto, el número de combinaciones posibles es 2 4 = 6. Sin embargo, para el código BCD sólo utilizamos. Las 6 restantes combinaciones binarias no se pueden dar en esta codificación. Por ejemplo, para codificar el número decimal 469 en BCD: 4 6 9 = 2-BCD Vamos a diseñar un circuito que teniendo como código de entrada BCD, encienda un foco de luz cuando tengamos la combinación BCD correspondiente al 9 decimal. Para ello, lo primero que hacemos es construir su tabla de verdad. a b c d F a b F c 9 d F = Σ(9) + d(,,2,3,4,5) x x Su salida nos es indiferente. x No se pueden dar en el x código BCD. x x 34

Tema 3 Implementando por : Haciendo uso de las indiferencias vamos a simplificar aun más la función. Para ello construimos la tabla de Karnaugh, implementando por (es lo más rápido, pues sólo tenemos una combinación): Sin utilizar términos indiferentes: cd ab x x x x x x a b' c' d Sólo tenemos un "" aislado (no podemos agrupar nada), por tanto, la función no se puede simplificar, es decir, obtendríamos que: F = a b' c' d Utilizando términos indiferentes: Los términos indiferentes (x) pueden utilizarse para aprovechar mejor el método del mapa de Karnaugh, por que les podemos dar el valor que nos interese para formar los grupos tan grandes como sea posible, pues cuanto más grande sea el grupo, más simple será el término resultante. Utilizando los términos indiferentes como si fueran "" obtenemos una función más sencilla. cd ab x x x x x x a d NOTA: debemos agrupar todos los 's o 's, utilizando "x", pero todas las casillas con "x" no tienen por qué incluirse en un grupo. Podemos realizar un grupo de 4 "", con lo cual: F = a d 35

Tema 3 Implementando por Construimos la tabla de Karnaugh del mismo modo que antes, es decir, implementando por "" ya que sólo tenemos una combinación, pero ahora implementaremos por "" a la hora de la simplificación (agruparemos ""). Pondremos las condiciones indiferentes donde correspondan ("x"), y en el resto de casillas pondremos "". Sin utilizar términos indiferentes: cd ab x x x x x x a a' + b + c + d La expresión irreducible que obtenemos es: F = a (a'+b+c+d) Utilizando términos indiferentes: cd ab x x x x x x a d Tenemos dos grupos de 8. Por tanto, la expresión irreducible es: F = a d Podemos observar que obtenemos la misma expresión irreducible, al implementar por y por cuando tenemos en cuenta las indiferencias, aunque esto, en general, no es así. Como vemos, las expresiones se simplifican mucho más, y, por tanto, la construcción del circuito. El inconveniente de estos circuitos es que si estos estados indiferentes apareciesen, la reacción del circuito sería imprevisible. 36

Tema 3 3.5. Funciones incompletas Funciones incompletas Las funciones incompletas o incompletamente definidas son aquellas que no tienen su salida definida para alguna de las combinaciones de entrada. Suponemos que las salidas para dichas combinaciones de entradas es "indiferente". Como hemos visto, estas combinaciones se utilizan para simplificar las funciones mediante mapas de Karnaugh. Conjuntos completos Un conjunto de funciones es completo en un álgebra de Boole si y sólo si cualquier función booleana puede implementarse con dichas funciones. Ejemplos de conjuntos completos: { AND, OR, NOT } { OR, NOT } { NOR } { AND, NOT } { NAND } Ejemplos de conjuntos no completos: { AND, OR } Nivel de un circuito Dado un circuito con una serie de puertas lógicas, puesto que por cada una de estas puertas que la señal eléctrica atraviesa se produce un retraso (tiempo de propagación), es importante especificar el número de puertas que atraviesa la información de entrada hasta llegar a la salida. Una puerta se considera de nivel i, donde i >, si y sólo si: a) no recibe ninguna entrada de puertas de nivel j, con j > i. b) tiene al menos una entrada procedente de una puerta de nivel i-. Un circuito lógico es de nivel i, si al menos contiene una puerta de nivel i, y no contiene ninguna puerta de nivel j, siendo j > i. Dicho de otro modo, el nivel de un circuito lógico será el nivel máximo de las puertas. El coste económico de un circuito dependerá del número de puertas. La velocidad de un circuito dependerá del nivel de dicho circuito. Hemos visto como podemos simplificar el diseño de un circuito, reduciendo el número de puertas y, por tanto su coste, pero en ocasiones, a costa de que el circuito tenga un nivel mayor, es decir, sea más lento. 37