Este documento presenta una introducción a las funciones booleanas y al álgebra de Boole. Explica conceptos clave como variables booleanas, constantes, expresiones booleanas y funciones booleanas. También describe las representaciones de funciones booleanas incluyendo álgebra booleana, tablas de verdad y diagramas. Finalmente, cubre teoremas importantes del álgebra de Boole como leyes de De Morgan y dualidad.
1. 2: Funciones booleanas 1
ELO211: Sistemas Digitales
Tomás Arredondo Vidal
Este material está basado en:
❒ textos y material de apoyo: Contemporary Logic Design 1st / 2nd edition. Gaetano
Borriello and Randy Katz. Prentice Hall, 1994, 2005
❒ material del curso ELO211 del Prof. Leopoldo Silva
❒ material en el sitio http://es.wikipedia.org
2. 2: Funciones booleanas 2
2-Funciones y representaciones
booleanas
2.1 Lógica y álgebra de Boole
2.2 Funciones booleanas
2.3 Representaciones de funciones booleanas
2.4 Funciones de varias variables
3. 2: Funciones booleanas 3
Lógica Booleana
❒ Definiciones básicas
❍ Una variable booleana (e.g. x, y) es un símbolo que
puede ser substituido por un elemento del
conjunto B={0,1}
❍ Una constante booleana es un valor perteneciente
al conjunto {0,1}
❍ Una expresión (e.g. x+y, x·y, x’) esta compuesta de
variables, constantes y operadores (e.g. +, ·, ’)
❍ Una función booleana de n variables f(x1, x2, ..., xn)
es un expresión o formula que mapea f a un valor
del conjunto booleano B (0 o 1)
❍ Un literal es una variable o su complemento
4. 2: Funciones booleanas 4
Álgebra de Boole
❒ Definición: el álgebra de Boole es un
sistema algebraico cerrado que contiene:
❍ un conjunto de dos elementos {0, 1},
❍ dos operadores binarios {+, ·},
❍ un operador unitario { ‘ }.
5. 2: Funciones booleanas 5
Lógica y álgebra de Boole
❒ El álgebra de Boole es la fundación matemática de
los sistemas digitales.
❒ Las operaciones del álgebra de Boole deben regirse
por propiedades y reglas lógicas llamados leyes o
postulados.
❒ Estos postulados se pueden usar para demostrar
leyes mas generales sobre expresiones booleanas.
❒ Estos postulados también se usan para simplificar
y optimizar expresiones booleanas y sistemas
digitales.
❍ Ejemplo: X AND (Y OR Y’) = X (¿porque?)
6. 2: Funciones booleanas 6
Álgebra de Boole
❒Una expresión algebraica de Boole consiste de
❍ un conjunto de B
❍ operaciones binarias { + , • }
❍ una operaciones unitaria { ’ }
❒B tiene dos elementos : a, b y los siguientes postulados se cumplen:
Clausura: a + b esta en B, a • b esta en B
Conmutatividad: a + b = b + a, a • b = b • a
Asociatividad: a + (b + c) = (a + b) + c
a • (b • c) = (a • b) • c
Identidad: a + 0 = a, a • 1 = a
Distributividad: a + (b • c) = (a + b) • (a + c)
a • (b + c) = (a • b) + (a • c)
Complementariedad: a + a’ = 1, a • a’ = 0
7. 2: Funciones booleanas 7
Álgebra de Boole: Resumen
❒Álgebra de Boole
❍ B = {0, 1}
❍ variables
❍ + es el OR lógico, • es el AND lógico
❍ ’ es el NOT lógico
❒Todos los postulados (axiomas) algebraicos se
cumplen
❒La prioridad de los operadores es ‘, seguido por
AND y despues OR.
❒El ‘ tiene la mayor prioridad.
❒Los ( ) pueden cambiar el orden de evaluación.
8. 2: Funciones booleanas 8
Álgebra de Boole: Teoremas
❒Con la formulación de los postulados del
álgebra de Boole se pueden demostrar varias
proposiciones o teoremas de álgebra booleana
❒Para las demostraciones de teoremas se
pueden usar:
❍ tablas de verdad,
❍ postulados,
❍ y teoremas ya demostrados
9. 2: Funciones booleanas 9
Álgebra de Boole: Teoremas
❒ Definición: El álgebra de boole es un sistema algebraico cerrado
que contiene un conjunto B de dos elementos {0,1} y tres
operadores {·, +, ‘}.
❒ igualdad: Dos expresiones son iguales si una puede ser substituida
por otra.
❒ identidad:
1. X + 0 = X 1D. X • 1 = X
❒ nulo (elementos únicos):
2. X + 1 = 1 2D. X • 0 = 0
❒ idempotencia:
3. X + X = X 3D. X • X = X
❒ involución:
4. (X’)’ = X
❒ complementariedad:
5. X + X’ = 1 5D. X • X’ = 0
10. 2: Funciones booleanas 10
Álgebra de Boole: Teoremas
❒ conmutatividad:
6. X + Y = Y + X 6D. X • Y = Y • X
❒ asociatividad:
7. (X + Y) + Z = X + (Y + Z) 7D. (X • Y) • Z = X • (Y • Z)
❒ distributividad:
8. X • (Y + Z) = (X • Y) + (X • Z) 8D. X + (Y • Z) = (X + Y) • (X + Z)
❒ unificación (fusión):
9. X • Y + X • Y’ = X 9D. (X + Y) • (X + Y’) = X
❒ absorción:
10. X + X • Y = X 10D. X • (X + Y) = X
11. (X + Y’) • Y = X • Y 11D. (X • Y’) + Y = X + Y
❒ factorizar:
12. (X + Y) • (X’ + Z) = 12D. X • Y + X’ • Z =
X • Z + X’ • Y (X + Z) • (X’ + Y)
❒ consenso:
13. (X • Y) + (Y • Z) + (X’ • Z) = 13D. (X + Y) • (Y + Z) • (X’ + Z) =
X • Y + X’ • Z (X + Y) • (X’ + Z)
11. 2: Funciones booleanas 11
Álgebra de Boole: Teoremas
❒ de Morgan:
14. (X + Y + ...)’ = X’ • Y’ • ...14D. (X • Y • ...)’ = X’ + Y’ + ...
❒ de Morgan generalizado:
15. f’(X1,X2,...,Xn,0,1,+,•) = f(X1’,X2’,...,Xn’,1,0,•,+)
establece relaciones entre • y +
12. 2: Funciones booleanas 12
Álgebra de Boole: Teoremas
❒ Ejemplo: de Morgan:
(X + Y)’ = (X’ • Y’)
NOR es equivalente a AND
con inputs complementados
(X • Y)’ = (X’ + Y’)
NAND es equivalente a OR
con inputs complementados
X Y X’ Y’ (X + Y)’ (X’ • Y’)
0 0 1 1
0 1 1 0
1 0 0 1
1 1 0 0
X Y X’ Y’ (X • Y)’ (X’ + Y’)
0 0 1 1
0 1 1 0
1 0 0 1
1 1 0 0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
13. 2: Funciones booleanas 13
Álgebra de Boole: Teoremas
❒ Dualidad
❍ el dual de una expresión booleana se puede obtener remplazando
❍ • por +, + por •, 0 por 1, y 1 por 0, y dejando las variables sin
cambio
❍ cualquier teorema demostrado también esta demostrado para su
dual!
❍ un meta-teorema (teorema sobre teoremas)
❒ Dualidad:
16. X + Y + ... ⇔ X • Y • ...
❒ Dualidad generalizado:
17. f (X1,X2,...,Xn,0,1,+,•) ⇔ f(X1,X2,...,Xn,1,0,•,+)
❍ diferente que ley de De Morgan’s
❍ no es una manera para manipular (cambiar) expresiones sino para
generar otros teoremas que también son verdaderos
❍ Ej: El dual del teorema X + 0 = X o (X + 0 = X)D es X • 1 = X
14. 2: Funciones booleanas 14
Álgebra de Boole: Teoremas
❒ Actividad:
❍ Demuestre este teorema: X • Y + X • Y’ = X
❍ Demuestre este teorema : X + X • Y = X
igualdad X • Y + X • Y’ = X • Y + X • Y’
distributividad (8) = X • (Y + Y’)
complementariedad (5) = X • (1)
identidad (1D) = X ➼
igualdad X + X • Y = X + X • Y
identidad (1D) = X • 1 + X • Y
distributividad (8) = X • (1 + Y)
nulo (2) = X • (1)
identidad (1D) = X ➼
15. 2: Funciones booleanas 15
Actividad: Álgebra de Boole
Demuestre lo siguiente usando álgebra booleana:
(X • Y) + (Y • Z) + (X’ • Z) = X • Y + X’ • Z
igualdad X Y + X’ Z = X Y + X’ Z
absorción (10) = (X Y + X Y Z) + (X’ Z + X’ Z Y)
conmutatividad (6) = X Y + X’ Z + X Y Z + X’ Z Y
conmutatividad (6D) = X Y + X’ Z + X Y Z + X’ Y Z
distributividad (8) = X Y + X’ Z + (X + X’) Y Z
complementariedad (5) = X Y + X’ Z + (1) Y Z
identidad (1D) = X Y + X’ Z + Y Z
conmutatividad (6) = X Y + Y Z + X’ Z ➼
16. 2: Funciones booleanas 16
2-Funciones y representaciones booleanas
2.1 Lógica y álgebra de Boole
2.2 Funciones booleanas
2.3 Representaciones de funciones booleanas
2.4 Funciones de varias variables
17. 2: Funciones booleanas 17
Funciones booleanas
❒ Espacios y funciones booleanas
❍ Si se define un espacio booleano como B={0,1}
❍ Usando el producto cartesiano se puede definir B2
= {0,1} x {0,1} = {(00), (01), (10), (11)}
❍ Para X = (X1, X2) podemos definir una función
booleana f de dos variables según:
f(X): B2 → B, cada punto de B2 se mapea a B
❍ Para n variables booleanas con X = (X1, X2, ... Xn) se
puede definir una función booleana f de n variables
según:
f(X): Bn → B, cada punto de Bn se mapea a B
❍ La función booleana puede tomar valores de 1 o 0
dependiendo de los valores de sus variables
18. 2: Funciones booleanas 18
Funciones booleanas
❒ Espacios y funciones booleanas
❍ El conjunto uno (on set) de f, puede definirse
como los puntos X de Bn que se mapean a 1.
f1 : {X | f(X) = 1}
❍ El conjunto zero (off set) de f puede definirse
como los puntos X de Bn que se mapean a 0.
f0 : {X | f(X) = 0}
❍ Si el conjunto f1 = Bn se dice que f es una
tautología.
❍ Si el conjunto f0 = Bn se dice que f0 es vacío y no
es satisfacible.
19. 2: Funciones booleanas 19
Funciones booleanas: tautología
De: http://es.wikipedia.org/wiki/tautología
❒ En lógica, una tautología es una formula preposicional
que es verdad bajo cualquier evaluación de sus
variables.
❒ En lingüística, una tautología es una redundancia
debida a una calificación superflua o de lógica
circular (e.g. innovación novedosa, mundo mundial“,
Le voy a entregar un obsequio gratis“, El 100% de
nuestros clientes compran nuestros productos“).
❒ Las matemáticas pueden ser consideradas como la
ciencia de hacer tautologías particularmente
elaboradas de una forma rigurosa. Un teorema es un
ejemplo de tautología útil.
20. 2: Funciones booleanas 20
Funciones booleanas
❒ Espacios y funciones booleanas
❍ Una función f es satisfacible cuando existe un
elemento en el conjunto de f que es uno.
❍ Dos funciones son equivalentes si para todo X є Bn
se tiene que:
f(X) = g(X)
21. 2: Funciones booleanas 21
2-Funciones y representaciones
booleanas
2.1 Lógica y álgebra de Boole
2.2 Funciones booleanas
2.3 Representaciones de funciones booleanas
2.4 Funciones de varias variables
22. 2: Funciones booleanas 22
Representaciones
❒ Las funciones booleanas se pueden describir
de variadas formas incluyendo:
❍ álgebra booleana
❍ tablas de verdad,
❍ diagramas de compuertas,
❍ diagramas temporales,
❍ diagramas de Venn,
❍ mapas de Karnaugh,
❍ N-cubos,
❍ lenguajes de descripción de hardware (HDL:
Hardware description languages) como Verilog o
VHDL
Por
verse!
23. 2: Funciones booleanas 23
Representaciones: álgebra booleana
❒ Las funciones booleanas se pueden describir con una
expresión de álgebra booleana.
Ejemplo: f(X, Y, Z) = XY + X’Z + XZ’
❒ La función puede evaluarse para las diferentes
combinaciones de valores que tomen las variables.
❒ Existen infinitas representaciones equivalentes de
una función a través de expresiones.
❒ El problema de síntesis lógica consiste en encontrar
la mejor expresión para representar una función.
24. 2: Funciones booleanas 24
Representaciones: tabla de verdad
❒ Las funciones booleanas también se pueden
representar como una tabla de verdad.
❒ La tabla de verdad despliega todas las
combinaciones de valores de las variables y el
valor asociado de la función.
25. 2: Funciones booleanas 25
Representaciones
❒ Ejemplos: tablas de verdad
X Y X • Y
0 0 0
0 1 0
1 0 0
1 1 1
X Y X’ Y’ X • Y X’ • Y’ ( X • Y ) + ( X’ • Y’ )
0 0 1 1 0 1 1
0 1 1 0 0 0 0
1 0 0 1 0 0 0
1 1 0 0 1 0 1
( X • Y ) + ( X’ • Y’ ) ≡
≡
≡
≡ X = Y
X Y X’ X’ • Y
0 0 1 0
0 1 1 1
1 0 0 0
1 1 0 0
Expresión booleana que es
verdadera cuando X
e Y son iguales y falso de otra
forma
26. 2: Funciones booleanas 26
Representaciones
• Las funciones booleanas también se pueden
representar por diagramas compuestos de
símbolos de compuertas.
• Existen múltiples diagramas que pueden
representar la misma función.
• La ventaja de esta representación es que esta
asociada a la implementación en un medio visual.
• Los circuitos combinacionales contienen solo
compuertas.
• Los circuitos secuenciales contienen flip-flops y
compuertas.
27. 2: Funciones booleanas 27
X Y Z
0 0 0
0 1 0
1 0 0
1 1 1
X Y
0 1
1 0
X Y Z
0 0 0
0 1 1
1 0 1
1 1 1
X Y
X
X
Y
Y
Z
Z
Diagramas de compuertas
❒ NOT: X’, X, ~X
❒ AND: X•Y, XY, X∧Y
❒ OR: X+Y, X∨Y
28. 2: Funciones booleanas 28
X
Y
Z
X Y Z
0 0 1
0 1 1
1 0 1
1 1 0
X Y Z
0 0 1
0 1 0
1 0 0
1 1 0
Z
X
Y
X
Y
Z
X Y Z
0 0 1
0 1 0
1 0 0
1 1 1
X Y Z
0 0 0
0 1 1
1 0 1
1 1 0
Z
X
Y
Diagramas de compuertas
❒ NAND
❒ NOR
❒ XOR
X ⊕ Y
❒ XNOR
X = Y
29. 2: Funciones booleanas 29
T1
T2
A
B
C
D
T2
T1
Z A
B
C
D
Z
Diagramas de compuertas
❒ Existe mas de una forma de mapear
expresiones a compuertas
❍ e.g., Z = A’ • B’ • (C + D) = (A’ • (B’ • (C + D)))
❍ Como sería usando compuertas?
30. 2: Funciones booleanas 30
Representaciones: diagrama temporal
❒ Un diagrama temporal es una representación de las
formas de las ondas de entradas y salidas de los
circuitos.
❒ Los bordes no se alinean exactamente (toma tiempo
para que una compuerta cambie de output)
31. 2: Funciones booleanas 31
Representaciones: diagrama temporal
❒ Las señales de ondas se pueden apreciar usando
varias herramientas como: un simulador, usando un
analizador lógico o un osciloscopio
❒ Retardos de propagación en compuertas pueden
causar que las señales de entrada de otras
compuertas en cascada tengan carreras
❒ Estas carreras pueden causar errores o
perturbaciones (glitches)
❒ Los tiempos de propagación son acumulativos para
compuertas en cascada
32. 2: Funciones booleanas 32
Representaciones: diagrama temporal
❒ Ejemplo: y = x + x’
Como seria la perturbación?
X
X’
Y
X
X’
Y
t
perturbación
Carrera en señales de entrada
33. 2: Funciones booleanas 33
Representaciones: diagramas de Venn
❒ Los diagramas de Venn provienen de la rama de las
matemáticas conocida como teoría de conjuntos.
❒ Estos diagramas son usados para mostrar gráficamente
la relación entre diferentes conjuntos
❒ Son equivalentes a las tablas de verdad al mostrar todas
las relaciones lógicas entre los conjuntos de interés
❒ Ejemplos:
A B
A · B
A + B
(A + B)’ (A + B)’
34. 2: Funciones booleanas 34
2-Funciones y representaciones
booleanas
2.1 Lógica y álgebra de Boole
2.2 Funciones booleanas
2.3 Representaciones de funciones booleanas
2.4 Funciones de varias variables
35. 2: Funciones booleanas 35
Funciones de n variables
❒ Si hay n variables la tabla de verdad tendrá 2n filas.
Cada fila tiene como resultado un 0 o un 1.
❒ El numero de posibles funciones (que resultan en 0 o
1) crece rápidamente, en termino de n es: 22ⁿ
❒ n = 0 indica una función con 0 variables.
X1
X2
F
Xn
36. 2: Funciones booleanas 36
X Y f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Funciones de n variables
❒ Ejemplo: para n=2 se tienen 22ⁿ = 16 funciones
❒ Como son las funciones equivalentes a la tabla?
❒ f0=0, f1=XY, f2=XY’, f3=X, f4=X’Y, ..., f14=X’Y’ + X’Y + XY’= A’ +
B’ = (AB)’, f15=1
X
Y
F
0
XY
X Y
X + Y
Y’ X’
1
X xor Y
X nor Y=(X + Y)’
X = Y X nand Y=(XY)’
37. 2: Funciones booleanas 37
Conjuntos funcionalmente completos
❒ Cualquier expresión booleana puede ser
escrita mediante los operadores AND, OR y
NOT
❒ Estos conjuntos constituyen un conjunto
funcionalmente completo
38. 2: Funciones booleanas 38
Conjuntos funcionalmente completos
❒ La función NAND también es funcionalmente
completa ya que puede implementar AND, OR
y NOT:
❍ NAND(A,B) = AB
❍ NAND(A,A) = A
❍ NAND(A, B) = A+B
39. 2: Funciones booleanas 39
Conjuntos funcionalmente completos
❒ La función NOR también es funcionalmente
completa ya que puede implementar AND, OR
y NOT:
❍ NOR(A, B) = A + B
❍ NOR(A,A) = A
❍ NOR(A, B) = AB
❒ Todas estas funciones se pueden generalizar
a funciones de n variables
40. 2: Funciones booleanas 40
Actividad:
❒ Determine la función de álgebra booleana
para un sumador de un bit
❒ Inputs: A, B, Carry-in
❒ Outputs: Sum, Carry-out
A
B
Cin
Cout
S
A A A A A
B B B B B
S S S S S
Cin
Cout
41. 2: Funciones booleanas 41
Actividad:
❒ Determine la tabla de verdad y la función de álgebra
booleana para un sumador de un bit
❒ Inputs: A, B, Carry-in
❒ Outputs: Sum, Carry-out
❒ Como minimizar usando álgebra booleana?
A
B
Cin
Cout
S
A A A A A
B B B B B
S S S S S
Cin
Cout
A B Cin Cout S
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
Cout = A’ B Cin + A B’ Cin + A B Cin’ + A B Cin
S = A’ B’ Cin + A’ B Cin’ + A B’ Cin’ + A B Cin
42. 2: Funciones booleanas 42
Minimizar
❒ Usando teoremas para minimizar el sumador
❒ Cuales son los criterios de interés al minimizar?
Cout = A’ B Cin + A B’ Cin + A B Cin’ + A B Cin
= A’ B Cin + A B’ Cin + A B Cin’ + A B Cin + A B Cin
= A’ B Cin + A B Cin + A B’ Cin + A B Cin’ + A B Cin
= (A’ + A) B Cin + A B’ Cin + A B Cin’ + A B Cin
= (1) B Cin + A B’ Cin + A B Cin’ + A B Cin
= B Cin + A B’ Cin + A B Cin’ + A B Cin + A B Cin
= B Cin + A B’ Cin + A B Cin + A B Cin’ + A B Cin
= B Cin + A (B’ + B) Cin + A B Cin’ + A B Cin
= B Cin + A (1) Cin + A B Cin’ + A B Cin
= B Cin + A Cin + A B (Cin’ + Cin)
= B Cin + A Cin + A B (1)
= B Cin + A Cin + A B sumar terminos para
factorizar
43. 2: Funciones booleanas 43
Minimizar
❒ Algunos criterios de interés al minimizar son:
❍ Criterios de reducción
• Minimizar compuertas
• Minimizar numero de entradas a las compuertas. Esto
corresponde a minimizar el numero de literales y reduce el
numero de transistores en cada compuerta (reduce el costo)
• Disminuir el numero de niveles, esto aumenta la velocidad de
respuesta del circuito implementando la función
❒ Siempre van a existir compromisos entre velocidad y tamaño. Se
suele denominar compromiso tiempo-espacio.
❒ Diferentes implementaciones de la misma función tienen diferentes
comportamientos:
❍ retardos son diferentes
❍ perturbaciones (glitches) pueden ocurrir
❍ otras variaciones por diferencias en el numero de compuertas y
estructura
44. 2: Funciones booleanas 44
A B C Z
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 0
Hay que elegir entre diferentes
realizaciones de una función
realización de dos niveles
compuerta XOR (fácil de
dibujar pero mas costosa)
implementación multinivel
compuertas con menos inputs
45. 2: Funciones booleanas 45
Hay que elegir entre diferentes
realizaciones de una función
❒ Las tres implementaciones anteriores son funcionalmente
equivalentes pero tienen diferencias en su
comportamiento