Download CAPITULO 6 .- ÁLGEBRA DE BOOLE INTRODUCCIÓN.

Document related concepts

Función booleana wikipedia , lookup

Formas canónicas (álgebra de Boole) wikipedia , lookup

Lógica binaria wikipedia , lookup

Álgebra de Boole wikipedia , lookup

Mapa de Karnaugh wikipedia , lookup

Transcript
D.I.I.C.C
Arquitectura de Sistemas Computacionales
CAPITULO 6 .- ÁLGEBRA DE BOOLE
INTRODUCCIÓN.
E
n 1854 George Boole introdujo una notación simbólica para el tratamiento
de variables cuyo valor podría ser verdadero o falso (variables binarias)
Así el álgebra de Boole nos permite manipular relaciones proposicionales
y cantidades binarias. Aplicada a las técnicas digitales se utiliza para la
descripción y diseño de circuitos más económicos. Las expresiones booleanas
serán una representación de la función que realiza un circuito digital. En estas
expresiones booleanas se utilizarán las tres operaciones básicas (AND, OR
NOT) para construir expresiones matemáticas en las cuales estos operadores
manejan variables booleanas (lo que quiere decir variables binarias).
El estudio de los sistemas numéricos nos ha permitido visualizar que
el sistema binario tiene una implementación natural mediante algún
dispositivo electrónico como por ejemplo, un interruptor que habilita o
deshabilita una variable eléctrica como son Voltaje e Intensidad de
corriente.
El estudio de los códigos nos entregó una forma compacta para la
representación de números y símbolos alfanuméricos de uso habitual en
nuestro lenguaje. En lo que sigue, estudiaremos la base técnica en la cual
se sustenta el funcionamiento de los diferentes circuitos electrónicos
digitales, los cuales permiten desarrollar funciones específicas.
6.1 ÁLGEBRA DE BOOLE.
Un conjunto ℜ sobre el cual se han definido operaciones binarias (+, *), se
llama álgebra de Boole, si cumple los postulados:
Postulado 1: La multiplicación y la suma son conmutativas.
i) a+b=b+a
ii) a·b=b·a
Postulado 2: ℜ contiene elementos neutros, 0 y 1, con respecto a la + y a
la *, tal que:
i) a+0=a
ii) a·1=a
Capitulo 6.- Álgebra de Boole
Página 1
D.I.I.C.C
Arquitectura de Sistemas Computacionales
Postulado 3: Cada operación es distributiva respecto a la otra, es decir:
∀ a, b, c ∈ ℜ se verifica que:
i) a+b·c = (a+b)·(a+c)
ii) a·(b+c) = a·b + a·c
Postulado 4: Cada operación tiene elemento inverso, es decir:
∀ a ∈ ℜ ∃ a ∈ ℜ tal que:
i) a+ a =1
ii) a· a =0
Un álgebra de boole satisface el principio de dualidad:
"Todo teorema deducible de los 4 postulados de un álgebra
Booleana sigue siendo válido si se intercambian los símbolos + y *,
los elementos 0 y 1 entre si."
En consecuencia basta demostrar uno de los enunciados para
posteriormente deducir el otro por dualidad.
Ejemplo 1: Demostrar que ∀ a ∈ ℜ a+a=a.
Dem:
(a+a) = (a+a)·1
= (a+a)(a+ a )
= a+(a· a )
= a+0
=a
/por postulado 2
/por postulado 4
/por postulado 3
/por postulado 4
/por postulado 2
Ejemplo 2: Demostrar que ∀ a ∈ ℜ a·0=0.
Dem:
(a·0) =
=
=
=
=
(a·0)+0
a·0+a· a
a·( a +0)
a· a
0
/por
/por
/por
/por
/por
postulado
postulado
postulado
postulado
postulado
2
4
3
2
4
Ejemplo 3: Demostrar que ∀ a,b ∈ ℜ a+a·b=a
Dem:
a+a·b = a·1+a·b
= a·(1+b)
= a·1
=a
/por
/por
/por
/por
postulado 2
postulado 3
demostración anterior
postulado 2
Ejercicios. Demostrar:
a) a·a = a
b) a+1 = 1 c) a·(a+b) = a
Capitulo 6.- Álgebra de Boole
d) a·( a +b) = a·b
Página 2
D.I.I.C.C
Arquitectura de Sistemas Computacionales
6.1.1 Teoremas del Álgebra de Boole
1. Regla del cero y la unidad
a) X + 0 = X
b) X + 1 = 1
c) X · 1 = X
d) X · 0 = 0
2. Idempotencia o potencias iguales
a) X + X = X
b) X · X = X
3. Complementación
a) x +
x=1
b) X * X = 0
4. Involución
5. Conmutatividad
a) conmutatividad del “+”
X+Y=Y+X
b) conmutatividad del “·”
X· Y=Y ·X
6. Asociatividad
a) asociatividad del “+”
X + (Y + Z) = (X + Y) + Z
b) asociatividad del “·”
X · (Y · Z) = (X · Y) · Z
7. Distribuitividad
a) distribuitividad del “+”
X + (Y · Z) = (X + Y) · (X + Z)
b) distribuitividad del “·”
X · (Y + Z) = (X · Y) + (X · Z)
8. Leyes de absorción
a) X · (X + Y)= X
e) X + X·Y = X
b) X · (
f) X +
c)
+ Y)= X·Y
· (X + Y)=
d) (X + Y) · (X +
·Y
)= X
Capitulo 6.- Álgebra de Boole
g)
·Y = X + Y
+ X·Y =
+Y
h) X·Y + X· = X
Página 3
D.I.I.C.C
Arquitectura de Sistemas Computacionales
9. Teoremas de DeMorgan
a)
c)
b)
d)
10. Teoremas generalizados de DeMorgan
a)
b)
Dualidad
Los postulados y teoremas presentados anteriormente están
representados en pares. La razón es que cada teorema posee lo que
llamamos un dual. El dual de una expresión se obtiene intercambiando las
ocurrencias de OR por AND, 0 por 1 y viceversa.. Si un teorema es valido,
también lo será su dual, En efecto siguiendo el dual de la demostración del
teorema, se obtiene la demostración del dual del teorema.
Por ejemplo dado el postulado 0+0 = 0 se obtiene el dual haciendo 1·1 = 1
6.1.2 FUNCIONES BOOLEANAS.
Sea ℜ = {a,b,c,...} un álgebra Booleana, definimos:
Constante: Un valor dado que puede tomar un elemento de ℜ , como por
ejemplo 0 y 1.
Variable: Un símbolo que representa un elemento de ℜ .
Función: Combinación finita de elementos de ℜ a través de los operadores
“·” y “+”.
Nº de variables de una función: Es el número de elementos distintos que
aparecen en una función, considerándose que una variable y su
complemento son una única variable.
a+b ⇒ 2 variables
x+ x ⇒ 1 variable
Ejercicios: Simplificar:
a) f(x,y)
= (x+y) + ( x + y ) · y
= (x+y) + x · y + y · y
= (x+y) + x · y
= x+y+ x + y
=1
Capitulo 6.- Álgebra de Boole
Página 4
D.I.I.C.C
Arquitectura de Sistemas Computacionales
b) f(w,x,y,z) = x + x·y·z + x ·y·z + w·x + w ·x + x ·y
=
x + x ·y·z + x + x ·y
=
x + yz + x+y
=
x+y+y·z
=
x+y
6.1.3 Formas Canónicas
Definiciones:
Literal: se refiere a una variable o a su complemento (por ej. A, X,
)
Termino Producto (POS): Es un grupo de literales que se encuentran
relacionados entre si por un AND (por ej. A·B, C·A,
·Y·Z )
Termino Suma (SOP): Es un grupo de literales que se encuentran
relacionados entre si por un OR (por ej. A+B, C+A,
+Y+Z )
Termino Normal: Término producto o termino suma en el que un literal no
aparece más de una vez
Termino Canónico: Término en el que se encuentra exactamente uno de
cada uno de los literales de la función. Si el término canónico es un
producto, se denominará mintermino ( ∑ (m) ). Si es una suma se
denominará maxtermino ( ∏ (M ) ).
Forma Normal de una función: Es la que está constituida por términos
normales. Puede estar en la forma suma de términos productos o
productos de términos sumas.
Forma Canónica de una función: Es aquella constituida exclusivamente
por términos canónicos que aparecen una sola vez.
6.1.4 Forma canónica de funciones booleanas
La importancia de la forma canónica estriba en el hecho de ser UNICA.
Como se mostró anteriormente una función puede tener infinidad de
representaciones, pero solo una representación en forma canónica.
Capitulo 6.- Álgebra de Boole
Página 5
D.I.I.C.C
Arquitectura de Sistemas Computacionales
Existen dos formas canónicas de una función: Suma De Productos o
Producto de Sumas. (También de una manera mas formal Suma de
minterminos o Producto de maxterminos)
Para obtener algebraicamente la forma canónica de una función se puede
utilizar los teoremas de expansión canónica:
Teorema 1: Para obtener la forma canónica de una función suma de productos
se multiplicará por un termino de la forma (X +
que el termino sea canónico.
) donde falte un literal para
Teorema 2: Para obtener la forma canónica de una función
sumas se sumará un termino de la forma X ·
el termino sea canónico.
producto de
donde falte un literal para que
6.1.4.1 Forma canónica suma de productos (SOP):
Es aquella constituida exclusivamente por términos canónicos productos
(minterminos) sumados que aparecen una sola vez.
Por ejemplo: F ( X , Y , Z ) = X Y Z + X Y Z + X Y Z + XY Z + XYZ
Para simplificar la escritura en forma de suma canónica de productos, se
utiliza una notación especial. A cada mintermino se le asocia un número binario
de n bits resultantes de considerar como 0 las variables complementadas y
como 1 las variables no complementadas. Así por ejemplo el mintermino
Z
corresponde a combinación X=0, Y=0, Z=1 que representa el numero binario
001, cuyo valor decimal es 1. A este mintermino lo identificaremos entonces
como m1.
De esta forma, la función: F ( X , Y , Z ) = X Y Z + X Y Z + X Y Z + XY Z + XYZ
se puede expresar como: F(X,Y,Z) =
sumatoria de los minterminos 1,4,5,6,7
m(1, 4,5,6,7) que quiere decir la
6.1.4.2 Forma canónica producto de sumas (POS):
Es aquella constituida exclusivamente por términos canónicos sumas
(maxterminos) multiplicados que aparecen una sola vez.
Por ejemplo: F ( X , Y , Z ) = ( X + Y + Z )( X + Y + Z )( X + Y + Z )
Capitulo 6.- Álgebra de Boole
Página 6
D.I.I.C.C
Arquitectura de Sistemas Computacionales
Análogamente al caso anterior, podemos simplificar la expresión de la
función, indicando los maxterminos. Sin embargo, en este caso se hace al
contrario de antes. A cada maxtermino se le asocia un número binario de n bits
resultantes de considerar como 1 las variables complementadas y como 0 las
+ Y + Z
variables no complementadas. Así por ejemplo el maxtermino
corresponde a combinación X=1, Y=0, Z=0 que representa el numero binario
100, cuyo valor decimal es 4. A este maxtermino lo identificaremos entonces
como M4.
De esta forma, la función: F ( X , Y , Z ) = ( X + Y + Z )( X + Y + Z )( X + Y + Z )
Se puede expresar como: F(X,YZ) =
producto de los maxterminos 0,2,3
En resumen, cada mintermino se asocia
con la combinación de entrada para la
que la función produciría un 1, y cada
maxtérmino con la combinación para la
que produciría un 0.
En la tabla de la derecha se muestran
los minterminos y los maxterminos
asociados con cada combinación en una
tabla de verdad de 3 variables. De
acuerdo con esta tabla para determinar
el término producto o suma se hace lo
siguiente: para los minterminos cada
variable no complementada se asocia
con
un
1
y
cada
variable
complementada se asocia con 0. Para
los maxtérminos la regla es la inversa.
M(0,2,3) que quiere decir el
Valor
X Y Z Mintermino
decimal
0
000
1
001
2
010
3
011
4
100
5
101
6
110
7
111
X Y Z =m0
Maxtermino
X +Y +Z =M0
X Y Z =m1
X +Y +Z =M1
X Y Z =m2
X +Y +Z =M2
X Y Z =m3
X +Y +Z =M3
X Y Z =m4
X +Y +Z =M4
X Y Z =m5
X +Y +Z =M5
X Y Z =m6
X +Y +Z =M6
X Y Z =m7
X +Y +Z =M7
Ejemplo 1. Exprese la siguiente función como una suma de minterminos: Hay
dos formas de resolver este problema. F = X + Y Z .
Capitulo 6.- Álgebra de Boole
Página 7
D.I.I.C.C
Arquitectura de Sistemas Computacionales
Forma 1. Se puede obtener la tabla de verdad de la expresión y entonces
tomar los minterminos.
X Y Z F= X +YZ minterminos
0 0 0
0
0 0 1
1
0 1 0
0
0 1 1
0
1 0 0
1
1 0 1
1
1 1 0
1
1 1 1
1
XYZ
Se evalúa la función para todas las combinaciones y
se toman los minterminos de la tabla para los cuales
la función vale 1.
__
__
_
_
La respuesta es :F= X Y Z + X Y Z + X Y Z + X Y Z + X Y Z
XYZ
Otra notación que podemos utilizar es:
XYZ
F=
XYZ
que quiere decir la sumatoria de los minterminos
1,4,5,6,7
m(1, 4,5,6,7)
XYZ
Forma 2. Aplicando los teoremas de expansión canónica para las variables
faltantes.
_
X + YZ
_
_
_
_
X ( Y+ Y ) ( Z + Z ) + Y Z ( X + X )
_
_
_
_ _
( X Y + X Y ) ( Z + Z ) + YZ X + Y Z X
_
_
__
_
__
X Y Z + X YZ + X YZ + X YZ + X Y Z + X YZ
__
__
_
_
X Y Z + X YZ + X YZ + X YZ + X Y Z
Ejemplo 2. Exprese la siguiente función como un producto de maxterminos:
_
F = X +YZ
De nuevo, se puede resolver construyendo una tabla de verdad o con
manipulación algebraica.
Capitulo 6.- Álgebra de Boole
Página 8
D.I.I.C.C
Arquitectura de Sistemas Computacionales
Forma 1. Se obtiene la tabla de verdad de la función. Tomando los
maxterminos desde la tabla de verdad, la respuesta es:
X Y Z F= X +YZ maxterminos
0 0 0
0
0 0 1
1
0 1 0
0
0 1 1
0
1 0 0
1
1 0 1
1
1 1 0
1
1 1 1
1
Se evalúa la función para todas las combinaciones y se
(X+Y+Z) toman los maxtermino de la tabla para los cuales la
función vale 0.
(X+Y+Z)
(X+Y+Z)
_
_ _
La respuesta es: F = ( X + Y + Z ) ( X + Y + Z ) ( X + Y + Z )
Otra notación que podemos utilizar es:
F=
M(0,2,3)
que quiere decir el producto de los maxterminos 0,2,3
Forma 2. Aplicando el teorema de expansión canónica.
_
X +YZ
_
( X +Y ) ( X + Z )
_
_
_
( X + Y + Z Z ) (X + Z + YY )
_
_ _
_
( X +Y+ Z ) ( X +Y+ Z ) ( X + Z +Y ) ( X + Z +Y )
_
_ _
_
( X +Y+ Z ) ( X +Y+ Z ) ( X +Y+ Z ) ( X +Y+ Z )
_
_ _
( X +Y+ Z ) ( X +Y+ Z ) ( X +Y+ Z )
_
_ _
( X +Y+ Z ) ( X +Y+ Z ) ( X +Y+ Z )
Note la simetría que existe entre la suma de productos y el producto de sumas
de una expresión. Si mi es el mintermino para la combinación i, y Mi es el
maxtermino.
m i =M i
Para convertir de una forma canónica a otra se intercambian los signos
y
y se reemplazan los números correspondientes a las combinaciones no
incluidas el la forma original. Por ejemplo:
M(2,4,6) =
Capitulo 6.- Álgebra de Boole
m(0,1,3,5,7)
Página 9
D.I.I.C.C
Arquitectura de Sistemas Computacionales
6.1.4.3 Forma normal de funciones booleanas
Otra manera importante de expresar expresiones booleanas es la forma
normal. Tiene la misma estructura básica suma de productos o producto de
sumas, pero no se requiere que los términos sean minterminos o maxterminos.
Por ejemplo:
La siguiente es una forma normal suma de productos:
__
XY+XYZ
La siguiente es una forma normal producto de sumas:
_
(Y+X)(X+Z)(Y)
A lo largo de este curso la forma que se utilizará con preferencia será la de
suma de productos
6.1.5 Compuertas Lógicas:
Un computador digital, como su nombre lo indica, es un sistema
digital que realiza diversas operaciones de cómputo. La palabra Digital
implica que la información que se representa en el computador por medio
de variables que toman un número limitado de valores discretos o
cuantizados. Estos valores son procesados internamente por componentes
que pueden mantener un número limitado de estados discretos. Los dígitos
decimales por ejemplo, proporcionan 10 valores discretos (0 .. 9). Como
sabemos en la práctica, los computadores funcionan más confiablemente si
sólo utilizan dos estados equiprobables. Debido
al
hecho que los
componentes electrónicos atienden a dos estados (encendido / apagado) y
que la lógica humana tiende a ser binaria (esto es, cierto o falsa, si o no)
se utiliza el sistema binario y se dice que son binarias.
Los computadores digitales utilizan el sistema de números binarios,
que tiene dos dígitos 0 y 1. Un dígito binario se denomina un bit. La
información está representada en los computadores digitales en grupos de
bits. Utilizando diversas técnicas de codificación los grupos de bits pueden
hacerse que representen no solamente números binarios sino también
otros símbolos discretos cualesquiera, tales como dígitos decimales o letras
de alfabeto. Utilizando arreglos binarios y diversas técnicas de codificación,
los dígitos binarios o grupos de bits pueden utilizarse para desarrollar
Capitulo 6.- Álgebra de Boole
Página 10
D.I.I.C.C
Arquitectura de Sistemas Computacionales
conjuntos completos de instrucciones para realizar diversos tipos de
cálculos.
La información binaria se representa en un sistema digital por
cantidades físicas denominadas señales. Las señales eléctricas tales como
voltajes existen a través del sistema digital en cualquiera de dos valores
reconocibles y representan un a variable binaria igual a 1 o 0. Por ejemplo,
un sistema digital particular puede emplear una señal de 3 [volts ] para
representar el binario “1” y 0.5 [volts ] para el binario ”0”. La siguiente
ilustración muestra un ejemplo de una señal binaria.
Como se muestra en la figura, cada valor binario tiene
una
desviación aceptable del valor nominal. La región intermedia entre las dos
regiones permitidas se cruza solamente durante la transición de estado.
Los terminales de entrada de un circuito digital aceptan señales binarias
dentro de las tolerancias permitidas y los circuitos responden en los
terminales de salida con señales binarias que caen dentro de las tolerancias
permitidas.
La lógica binaria tiene que ver con variables binarias y con
operaciones que toman un sentido lógico. Es utilizada para escribir, en
forma algebraica o tabular. La manipulación y procesamiento de
información binaria. La manipulación de información binaria se hace por
circuitos lógico que se denominan Compuertas. Las compuertas son
bloques del hardware que producen señales del binario 1 ó 0 cuando se
satisfacen los requisitos de entrada lógica. Las diversas compuertas lógicas
se encuentran comúnmente en sistemas de computadores digitales. Cada
compuerta tiene un símbolo gráfico diferente y su operación puede
describirse por medio de una función algebraica. Las relaciones entrada salida de las variables binarias para cada compuerta pueden representarse
en forma tabular en una tabla de verdad.
A continuación se detallan los nombres, símbolos, gráficos, funciones
algebraicas, y tablas de verdad de ocho compuertas.
Capitulo 6.- Álgebra de Boole
Página 11
D.I.I.C.C
Arquitectura de Sistemas Computacionales
Compuerta AND:
Cada compuerta tiene una o dos variables de entrada designadas por
A y B y una salida binaria designada por x. La compuerta AND
produce la unión lógica AND: esto es: la salida es 1 si la entrada A y la
entrada B están ambas en el binario 1: de otra manera, la salida es 0. Estas
condiciones también son especificadas en la tabla de verdad para la
compuerta AND. La tabla muestra que la salida x es 1 solamente cuando
ambas entradas A y B están en 1. El símbolo de operación algebraico de la
función AND es el mismo que el símbolo de la multiplicación de la
aritmética ordinaria (*). Podemos utilizar o un punto entre las variables o
concatenar las variables sin ningún símbolo de operación entre ellas. Las
compuertas AND pueden tener más de dos entradas y por definición, la
salida es 1 si cualquier entrada es 1.
Compuerta OR:
La compuerta OR produce la función OR inclusiva, esto es, la salida
es 1 si la entrada A o la entrada B o ambas entradas son 1; de otra
manera, la salida es 0. El símbolo algebraico de la función OR es
(+), similar a la operación de aritmética de suma. Las compuertas OR
pueden tener más de dos entradas y por definición la salida es 1 si
cualquier entrada es 1.
Compuerta NOT (Inversor):
El circuito inversor invierte el sentido lógico de una señal binaria.
Produce el NOT, o función complemento. El símbolo algebraico
utilizado para el complemento es una barra sobra el símbolo de la
variable binaria. Si la variable binaria posee un valor 0, la compuerta NOT
cambia su estado al valor 1 y viceversa. El círculo pequeño en la salida de
un símbolo gráfico de un inversor designa un complemento lógico. Es decir
cambia los valores binarios 1 a 0 y viceversa.
Compuerta Separador:
Un símbolo triángulo por sí mismo designa un circuito separador no
produce ninguna función lógica particular puesto que el valor binario
de la salida es el mismo de la entrada. Este circuito se utiliza
simplemente para amplificación de la señal. Por ejemplo, un separador
que utiliza 3 volts para el binario 1 producirá una salida de 3 volts cuando
la entrada es 3 volts. Sin embargo, la corriente suministrada en la entrada
es mucho más pequeña que la corriente producida en la salida. De ésta
manera, un separador puede excitar muchas otras compuertas que
Capitulo 6.- Álgebra de Boole
Página 12
D.I.I.C.C
Arquitectura de Sistemas Computacionales
requieren una cantidad mayor de corriente que de otra manera no se
encontraría en la pequeña cantidad de corriente aplicada a la entrada del
separador.
Compuerta NAND:
Es el complemento de la función AND, como se indica por el símbolo
gráfico que consiste en un símbolo gráfico AND seguido por un
pequeño círculo. La designación NAND se deriva de la abreviación
NOT - AND. Una designación más adecuada habría sido AND invertido
puesto que Es la función AND la que se ha invertido.
Compuerta NOR:
La compuerta NOR es el complemento de la compuerta OR y utiliza
un símbolo gráfico OR seguido de un círculo pequeño. Tanto las
compuertas NAND como la NOR pueden tener más de dos entradas,
y la salida es siempre el complemento de las funciones AND u OR,
respectivamente.
Compuerta OR exclusivo (XOR):
La compuerta OR exclusiva tiene un símbolo gráfico similar a la
compuerta OR excepto por una línea adicional curva en el lado de
la entrada. La salida de esta compuerta es 1 si cada entrada es 1
pero excluye la combinación cuando las dos entradas son 1. La función OR
exclusivo tiene su propio símbolo gráfico o puede expresarse en términos de
operaciones complementarias AND, OR.
Compuerta NOR exclusivo (XOR):
El NOR exclusivo como se indica por el círculo pequeño en el símbolo
gráfico. La salida de ésta compuerta es 1 solamente si ambas
entradas son tienen el mismo valor binario. Nosotros nos referiremos
a la función NOR exclusivo como la función de equivalencia. Puesto que las
funciones OR exclusivo y funciones de equivalencia no son siempre el
complemento la una de la otra. Un nombre más adecuado para la operación
OR exclusivo sería la de una función impar; esto es, la salida es 1 si un
número impar de entrada es 1. Así en una función OR (impar) exclusiva de
tres entradas, la salida es 1 si solamente la entrada es 1 o si todas las
entradas son 1. La función de equivalencia es una función par; esto es, su
salida es 1 si un número par de entradas es 0. Para un función de
equivalencia de tres entradas, la salida es 1 si ninguna de las entradas son
0 (todas las entradas son 1) o si dos de las entradas son 0 (una entrada es
1). Una investigación cuidadosa revelará que el OR exclusivo y las
funciones de equivalencia son el complemento la una de la otra cuando las
Capitulo 6.- Álgebra de Boole
Página 13
D.I.I.C.C
Arquitectura de Sistemas Computacionales
compuertas tienen un número par de entradas, pero las dos funciones son
iguales cuando el número de entradas es impar. Estas dos compuertas
están comúnmente disponibles con dos entradas y solamente en forma rara
se encuentran con tres o más entradas.
RESUMEN COMPUERTAS LÓGICAS:
Símbolo
Algebraica
Tabla de Verdad
Función
AND
aA
X = A * b ⇒ AB
OR
X = A+ B
Inversor (Not)
X = A' ⇒ A
Separador
X =A
NAND
X = ( AB )'
Capitulo 6.- Álgebra de Boole
Página 14
D.I.I.C.C
Arquitectura de Sistemas Computacionales
Símbolo
Algebraico
Tabla de Verdad
Función
NOR
X = ( A + B)'
OR (Exclusivo XOR)
X = A ⊕ B ⇒ A B + AB
NXOR (Exclusivo, Equivalencia)
X = A ⊗ B⇒ A B + AB
Tabla Resumen de Compuertas Lógicas
NAND
OR
NOR
Var Var AND
(+)
A
B
(*)
aA
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
OR EX ( ⊕ )
NOREX ( ⊗ )
A B + AB
A B + AB
0
1
1
0
1
0
0
1
Retomemos el teorema DeMorgan:
El teorema DeMorgan es muy importante al tratar compuertas NOR y
NAND. Expresa que una compuerta NOR que realiza la función (x + y)’ es
equivalente a la expresión función xy’. Similarmente, una función NAND
Capitulo 6.- Álgebra de Boole
Página 15
D.I.I.C.C
Arquitectura de Sistemas Computacionales
puede ser expresada bien sea por (xy)’ o por x’ + y’ por esta razón, las
compuertas NOR y NAND tienen dos símbolos gráficos distintos como se
muestra en la figura:
En vez de representar una compuerta NOR por el símbolo gráfico OR
seguido por un círculo, nosotros podemos representarla por un símbolo
gráfico AND precedido por círculos en todas las entradas. El inversor AND
para la compuerta NOR proviene del teorema DeMorgan y de la convención
de que los círculos pequeños denotan complementación. Similarmente la
compuerta NAND también posee dos símbolos gráficos.
Para ver cómo se utiliza la manipulación del álgebra Booleana para
simplificar circuitos digitales considere el diagrama lógico de la siguiente
figura. La salida de la primera compuerta NAND es, por el teorema
DeMorgan , (AB)’ = A’ + B. La salida del circuito es la operación NAND de
este término y B’.
x= ( A’ + B ) * B’ ]‘
Diagrama lógico.
Utilizando el teorema DeMorgan dos veces, obtenemos:
x = ( A’ + B )’ + B = AB’ + B
Note que el teorema DeMorgan ha sido aplicado tres veces ( para
demostrar su utilización ) pero podría ser aplicado solamente una vez de la
siguiente manera:
x = [ ( AB’ )* B´ ] ‘ = AB’ + B
La expresión para x
puede simplificarse por aplicación de las
relaciones mencionadas anteriormente:
Capitulo 6.- Álgebra de Boole
Página 16
D.I.I.C.C
Arquitectura de Sistemas Computacionales
x = AB’ + B
= B + AB’
= ( B + A) ( B + B’ )
= ( B + A) * 1
=B+A=A+B
El resultado final produce una función OR y puede ser implementado
con una sola compuerta OR como se muestra en la figura parte (b) del
diagrama lógico. Uno Puede demostrar que dos circuitos
producen
relaciones binarias idénticas Entrada - Salida simplemente obteniendo la
tabla de verdad para cada uno de ellos.
6.1.6
Mapas de Karnaugh.
Dentro de las representaciones esquemáticas de una función Booleana,
ésta es una de las más útiles. La idea es representar en forma más
compactas las tablas que representan a la función.
DEFINICIONES BÁSICAS:
Definición 1: Minterm de n variables (m)
Es el producto Booleano de las n variables, donde cada variable
está presente en su valor verdadero o falso. En otras palabras
corresponde a un término producto normal.
Definición 2: Maxterm de n variables (M)
Es la suma Booleana de las n variables donde cada variable
está presente en su valor verdadero o falso. Se puede decir
que corresponde a un término suma normal.
TEOREMA:
Cualquier
representarse:
función
Booleana
f(x1,
x2,...,xn)
puede
i) Como forma canónica de suma de producto.
ii) Como forma canónica de producto de sumas.
La función F puede describirse como:
F(x,y,z)=Σm(2,3,5)
F(x,y,z)= ΠM(0,1,4,6,7)
Capitulo 6.- Álgebra de Boole
Página 17
D.I.I.C.C
Arquitectura de Sistemas Computacionales
Obs: F (x,y,z)=Σm(0,1,4,6,7)
F (x,y,z)=ΠM(2,3,5)
Esto es válido para cualquier nº de variables de entrada.
Ejemplo para 4 variables
F(x,y,z,w) = Σm (0,1,3,5,7,15)
= Π M (2,4,6,8,9,10,11,12,13,14)
6.2 Simplificación de circuitos lógicos:
La complejidad del diagrama lógico que implementa una función
Booleana está directamente relacionado con la complejidad de la expresión
algebraica a partir de la cual la función se implementa. La representación de
la tabla de verdad de una función es única pero la función puede aparecer
en muchas formas diferentes como se expresa algebraicamente. La
expresión puede simplificarse utilizando las relaciones básicas del álgebra
Booleana. Este procedimiento sin embargo. es algunas veces difícil porque
carece de reglas específicas para predecir cada uno de los pasos sucesivos
en el proceso de manipulación. El método del mapa proporciona un
procedimiento simple, y directo para simplificar funciones Booleanas . Este
método puede mirarse como un arreglo gráfico de una tabla de verdad que
permite una interpretación fácil para elegir el mínimo número de variables
que se necesitan para expresar la función algebraicamente. El método del
mapa también se le conoce con el nombre de Mapa de Karnaugh y
diagrama de Veitch.
Cada una de las combinaciones de la variable en una tabla de verdad
se denomina un Miniterm. Por ejemplo, tenemos la siguiente tabla de
verdad:
Esta tabla posee ocho miniterm. Una función de “n” variables cuando
se expresa por medio de una tabla
de verdad tendrá 2n minterm,
Capitulo 6.- Álgebra de Boole
Página 18
D.I.I.C.C
Arquitectura de Sistemas Computacionales
equivalente a 2n números binarios obtenidos de los n dígitos. Una función
Booleana será igual a 1 para algunos miniterm y a 0 para los otros. La
información contenida en una tabla de verdad puede expresarse en forma
compacta enumerando el decimal equivalente de aquellos, miniterm que
producen un 1 para la función
Por ejemplo la tabla anterior puede
expresarse de la siguiente forma:
F (x,y,z) = ∑ (1,4,5,6,7)
Las letras en paréntesis enumeran las variables binarias en el orden
que ellas aparecen en la tabla de verdad. El símbolo “ ∑ “ se utiliza para la
suma de los miniterms que siguen en el paréntesis. Los miniterms que
producen en la salida un 1 para la función se enumeran con su equivalente
decimal respectivo. Los miniterms que no aparecen en la lista son los que
producen 0 para la función Booleana.
El mapa es un diagrama hecho de cuadrados, en que cada cuadrado
representa un miniterm. Los cuadrados a los miniterm que producen 1 para
la función se marcan con un “1” y los restantes con “0” o se dejan vacíos.
Para reconocer varios patrones y combinar cuadrados marcados por 1 en el
mapa, es posible derivar las expresiones algebraicas alternas para la
función, a partir de las cuales se puede seleccionar la más conveniente.
Los mapas para las funciones de dos, tres y cuatro variables se
muestran en la siguiente figura.
a).- Mapa de dos variables
b).- Mapa de tres variables
Capitulo 6.- Álgebra de Boole
Página 19
D.I.I.C.C
Arquitectura de Sistemas Computacionales
C).- Mapa de cuatro variables
El número de cuadrados en un mapa de “n” variables es 2n minitern
y son listados por un número decimal equivalente para fácil referencia.
Los números de miniterms son asignados en un arreglo ordenado de tal
manera que los cuadrados adyacentes representen los miniterms que
difieren solamente en una variable. Los nombres de las variables son
listados a través de ambos lados de la línea diagonal en la esquina del
mapa. Los 1 y 0 marcados a lo largo de cada fila y de cada columna
designan el valor de las variables. Cada variable debajo de los paréntesis
contiene la mitad de los cuadrados en el mapa en donde aquella variable
aparece sin comillas (no complementada). La variable aparece con un
comilla (complementada) en la mitad de los cuadrados. Toda la información
que aparece en los mapas de la figura, no siempre es necesaria, en ésta
oportunidad se muestra solamente a modo explicativo.
El miniterm representado por un cuadrado es determinado de la
asignación binaria de las variables a lo largo de los bordes izquierdo y
superior del mapa.
A continuación se muestran algunos ejemplos de representación en
mapa de Karnaugh de distintas funciones a partir de su tabla de verdad,
éste mapa representará los valores a minimizar cuando la función arroje un
valor igual a 1.
a)
X
0
0
1
1
Mapa de Karnaugh para representar dos variables
Y
0
1
0
1
F(x,y)
0
1
0
1
x 0
y
0 0 0
1 1 1
Capitulo 6.- Álgebra de Boole
1
2
0
3 1
Página 20
D.I.I.C.C
Arquitectura de Sistemas Computacionales
b) Mapa de Karnaugh para representar tres variables
X
0
0
0
0
1
1
1
1
Y
0
0
1
1
0
0
1
1
Z
0
1
0
1
0
1
0
1
F(x,y)
0
1
1
0
1
1
0
1
z
xy
00
0
0
0
1
1
01
2
1
3
1
11
6
4
0
7
0
10
1
5
1
1
c) Mapa de Karnaugh para representar cuatro variables
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
Capitulo 6.- Álgebra de Boole
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
F(A,B,C,D)
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Página 21
D.I.I.C.C
Arquitectura de Sistemas Computacionales
Naturalmente hemos representado la forma más simple que
corresponde a lo más 2 entradas. Nuestro estudio apunta a la realización de
funciones Booleanas. En general, cada variable será representativa de
alguna condicionante que pudiera tener sólo 2 valores de verdad.
Una serie de condicionantes y la o las acciones que se deseen
ejecutar de acuerdo al estado de dichas condiciones podrán ser
representadas por una expresión Booleana.
Dicha expresión Booleana podrá posteriormente implementarse
mediante circuitos electrónicos capaces de reconocer 2 estados (0,1). Lo
que a continuación se estudia es la forma de obtener una expresión lo más
simple posible para la representación de una función. De esta forma
podremos posteriormente obtener un circuito electrónico menos complejo.
6.3 Minimizacion de funciones booleanas.
Veamos un ejemplo:
F(a,b,c,d) = Σ m (5,6,9,10,13,14)
= a · b· c ·d + a · b·c·d + a · b· c·d + a · b·c·d + a· b· c ·d + a · b·c·d
(1)
= a · b · c · d + a · b · c · d + a · c · d · (b + b) + a · c · d · (b + b)
= a · b· c ·d + a · b·c·d + a· c·d + a ·c·d
= c · d · (a · b + a) + c · d · (a + a · b)
= c · d · (a + b) + c · d · (a + b)
Capitulo 6.- Álgebra de Boole
Página 22
D.I.I.C.C
Arquitectura de Sistemas Computacionales
= (c · d + c · d) · (a + b)
(2)
= a·c·d +a·c·d + b·c·d + b·c·d
(1)
(2)
(3)
(3)
6 AND de 4 entradas + 1 OR de 6 entradas.
2 OR de 2 entradas + 3 AND de 2 entradas.
4 AND de 3 entradas + 1 OR de 4 entradas.
Observaciones: El circuito (2) es más simple pero debe notarse que las
señales A y B en el caso (2) pasan a través de 3 niveles previo a procesar la
salida.
Cualquier suma de producto o producto de suma puede realizarse por
circuitos de 2 niveles donde estos pueden ser AND - OR / OR - AND /NAND
- NAND/NOR - NOR. Este tipo de expresiones se dice una expresión de 2º
orden o circuito de 2º orden.
Un circuito como el (2) que corresponde a uno de mayor orden se
dice un circuito factorizado. Este nombre proviene del hecho de que el
proceso a partir de uno de 2º orden es muy similar a un proceso de
factorización del álgebra convencional.
Este tipo de factorización se basa principalmente en prueba y error y
en la habilidad para recordar que cierto tipo de productos tienen dicha
factorización.
A continuación se desarrolla un proceso de minimización en el cual se
obtienen expresiones de 2º orden.
Definición: Una expresión suma de productos de 2º orden se dirá mínima
si:
a) No existe una expresión equivalente con menos productos
b) No hay una expresión equivalente que contenga el mismo número de
productos, pero con menos cantidad de variables
Igual enunciado vale para expresiones de producto de sumas, en las
cuales se debe reemplazar producto por suma y viceversa.
Nota: Puede existir más de una representación mínima.
Ejemplo:
A)
Sea f(a,b,c) = Σm (0,1,4,6)
= a· b·c + a · b·c +a· b·c +a·b·c
Capitulo 6.- Álgebra de Boole
Página 23
D.I.I.C.C
Arquitectura de Sistemas Computacionales
Notemos que los 2 primeros términos se combinan para dar:
a · b · c + a · b · c = a · b · (c + c)
= a·b
y los otros 2 dan:
a · b · c + a · b · c = a · c(b + b)
= a·c
Por lo tanto, f= a · b + a · c
Observaciones:
i) m0 y m1 son adyacentes, en ellos sólo cambia la variable “c”.
ii) al unir m0 y m1 observamos que no aparece la variable que marca la
distancia entre ambos minterm, es decir la variable “c”.
iii) igual caso entre m4 y m6.
B) Sea f(a,b,c,d) = Σm(5,7,10,13,15)
= a · b· c ·d + a · b·c·d + a· b·c·d + a · b· c ·d +a · b·c·d
m5
m7
m10 m13
m15
m13 y m15 son adyacentes
m5 y m7 son adyacentes
ambos grupos son adyacentes entre sí.
m5+m7+m13+m15 = a · b · c · d + a · b · c · d + a · b · c · d + a · b · c · d
= bd
Luego, en la agrupación restante se han eliminado A y C, las
cuales son las variables que cambian de valor. Así agrupando 2k minterm
adyacentes pueden eliminarse k variables de una función.
Por lo tanto,
f(a,b,c,d)= b · d + a · b · c · d
C) f(a,b,c,d)= Σm (0,8,12,14,5,7)
Minimizar de la forma anterior es más complicado que si se
aplica un mapa de Karnaugh.
Capitulo 6.- Álgebra de Boole
Página 24
D.I.I.C.C
Arquitectura de Sistemas Computacionales
En efecto:
Del mapa de Karnaugh se obtienen las siguientes ecuaciones:
(a)
b·c·d
(b)
a·b·d
(c)
a ·b·d
a:
Por lo tanto, la función es: f = b · c · d + a · b · d + a · b · d y es equivalente
f = d (bc + ab ) + abd , por lo tanto el circuito asociado sería:
Este circuito, posee los siguientes componentes: 5 compuertas AND,
2 compuertas OR y 3 NOT.
D) f(a,b,c,d) = Σm (0,1,2,3,13,15)
Capitulo 6.- Álgebra de Boole
Página 25
D.I.I.C.C
Arquitectura de Sistemas Computacionales
AB
CD
00
01
11
10
00
1
0
0
0
01
a 01
0
0
1 b
0
11
01
0
0
1
0
10
1
0
0
0
Del mapa de Karnaugh se obtienen las siguientes ecuaciones:
(a) a · b
(b) a · b · d
Por lo tanto, la función es: f = a · b + a · b · d y el circuito asociado es:
E) f(a,b,c,d) = Σm(0,2,8,12,13)
Capitulo 6.- Álgebra de Boole
Página 26
D.I.I.C.C
Arquitectura de Sistemas Computacionales
Del mapa de Karnaugh se obtienen las siguientes ecuaciones:
(a) a · b · d
(b) a · b · c
(c) a · c · d
Por lo tanto, la función es: f = a · b · d + a · b · c + a · c · d y es equivalente
a: f = ab d + ac (b + d ) cuyo circuito asociado es:
Del mapa de Karnaugh se obtienen las siguientes ecuaciones:
(a) a · b · d
(b) b · c · d
(c) a · b · c
Capitulo 6.- Álgebra de Boole
Página 27
D.I.I.C.C
Arquitectura de Sistemas Computacionales
Por lo tanto, la función es: f = a · b · d + b · c · d + a · b · c y es equivalente a:
f = b d ( a + c ) + abc cuyo circuito asociado es:
Como podemos apreciar en este ejemplo existen 2 formas mínimas,
dependiendo de como se agrupen las celda adyacentes (los 1´).
CONDICIONES SUPERFLUAS.
Son casos en los que la salida no está definida frente a una cierta
combinación de entrada pudiendo ocurrir que dicha combinación de entrada
nunca se de.
Como ejemplo se puede citar un semáforo, el cual no puede tener la
luz roja y verde encendida al mismo tiempo.
Capitulo 6.- Álgebra de Boole
Página 28