Está en la página 1de 45

2: Funciones booleanas

1
ELO211: Sistemas Digitales
Toms Arredondo Vidal
Este material est basado en:
textos y material de apoyo: Contemporary Logic Design 1
st
/ 2
nd
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: Funciones booleanas
2
2-Funciones y representaciones
booleanas
2.1 Lgica y lgebra de Boole
2.2 Funciones booleanas
2.3 Representaciones de funciones booleanas
2.4 Funciones de varias variables
2: Funciones booleanas
3
Lgica Booleana
Definiciones bsicas
H Una variable booleana (e.g. x, y) es un smbolo que
puede ser substituido por un elemento del
conjunto B={0,1}
H Una constante booleana es un valor perteneciente
al conjunto {0,1}
H Una expresin (e.g. x+y, xy, x) esta compuesta de
variables, constantes y operadores (e.g. +, , )
H Una funcin booleana de n variables f(x
1
, x
2
, ..., x
n
)
es un expresin o formula que mapea f a un valor
del conjunto booleano B (0 o 1)
H Un literal es una variable o su complemento
2: Funciones booleanas
4
lgebra de Boole
Definicin: el lgebra de Boole es un
sistema algebraico cerrado que contiene:
H un conjunto de dos elementos {0, 1},
H dos operadores binarios {+, },
H un operador unitario { }.
2: Funciones booleanas
5
Lgica y lgebra de Boole
El lgebra de Boole es la fundacin matemtica de
los sistemas digitales.
Las operaciones del lgebra de Boole deben regirse
por propiedades y reglas lgicas llamados leyes o
postulados.
Estos postulados se pueden usar para demostrar
leyes mas generales sobre expresiones booleanas.
Estos postulados tambin se usan para simplificar
y optimizar expresiones booleanas y sistemas
digitales.
H Ejemplo: X AND (Y OR Y) = X (porque?)
2: Funciones booleanas
6
lgebra de Boole
Una expresin algebraica de Boole consiste de
H un conjunto de B
H operaciones binarias { + , }
H 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
2: Funciones booleanas
7
lgebra de Boole: Resumen
lgebra de Boole
H B = {0, 1}
H variables
H + es el OR lgico, es el AND lgico
H es el NOT lgico
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 evaluacin.
2: Funciones booleanas
8
lgebra de Boole: Teoremas
Con la formulacin 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:
H tablas de verdad,
H postulados,
H y teoremas ya demostrados
2: Funciones booleanas
9
lgebra de Boole: Teoremas
Definicin: 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
involucin:
4. (X) = X
complementariedad:
5. X + X = 1 5D. X X = 0
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)
unificacin (fusin):
9. X Y + X Y = X 9D. (X + Y) (X + Y) = X
absorcin:
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)
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(X
1
,X
2
,...,X
n
,0,1,+,) = f(X
1
,X
2
,...,X
n
,1,0,,+)
establece relaciones entre y +
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
2: Funciones booleanas
13
lgebra de Boole: Teoremas
Dualidad
H el dual de una expresin booleana se puede obtener remplazando
H por +, + por , 0 por 1, y 1 por 0, y dejando las variables sin
cambio
H cualquier teorema demostrado tambin esta demostrado para su
dual!
H un meta-teorema (teorema sobre teoremas)
Dualidad:
16. X + Y + ... X Y ...
Dualidad generalizado:
17. f (X
1
,X
2
,...,X
n
,0,1,+,) f(X
1
,X
2
,...,X
n
,1,0,,+)
H diferente que ley de De Morgans
H no es una manera para manipular (cambiar) expresiones sino para
generar otros teoremas que tambin son verdaderos
H Ej: El dual del teorema X + 0 = X o (X + 0 = X)
D
es X 1 = X
2: Funciones booleanas
14
lgebra de Boole: Teoremas
Actividad:
H Demuestre este teorema: X Y + X Y = X
H 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
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
absorcin (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
2: Funciones booleanas
16
2-Funciones y representaciones booleanas
2.1 Lgica y lgebra de Boole
2.2 Funciones booleanas
2.3 Representaciones de funciones booleanas
2.4 Funciones de varias variables
2: Funciones booleanas
17
Funciones booleanas
Espacios y funciones booleanas
H Si se define un espacio booleano como B={0,1}
H Usando el producto cartesiano se puede definir B
2
= {0,1} x {0,1} = {(00), (01), (10), (11)}
H Para X = (X
1
, X
2
) podemos definir una funcin
booleana f de dos variables segn:
f(X): B
2
B, cada punto de B
2
se mapea a B
H Para n variables booleanas con X = (X
1
, X
2
, ... X
n
) se
puede definir una funcin booleana f de n variables
segn:
f(X): B
n
B, cada punto de B
n
se mapea a B
H La funcin booleana puede tomar valores de 1 o 0
dependiendo de los valores de sus variables
2: Funciones booleanas
18
Funciones booleanas
Espacios y funciones booleanas
H El conjunto uno (on set) de f, puede definirse
como los puntos X de B
n
que se mapean a 1.
f
1
: {X | f(X) = 1}
H El conjunto zero (off set) de f puede definirse
como los puntos X de B
n
que se mapean a 0.
f
0
: {X | f(X) = 0}
H Si el conjunto f
1
= B
n
se dice que f es una
tautologa.
H Si el conjunto f
0
= B
n
se dice que f
0
es vaco y no
es satisfacible.
2: Funciones booleanas
19
Funciones booleanas: tautologa
De: http://es.wikipedia.org/wiki/tautologa
En lgica, una tautologa es una formula preposicional
que es verdad bajo cualquier evaluacin de sus
variables.
En lingstica, una tautologa es una redundancia
debida a una calificacin superflua o de lgica
circular (e.g. "innovacin novedosa", "mundo mundial,
"Le voy a entregar un obsequio gratis, "El 100% de
nuestros clientes compran nuestros productos).
Las matemticas pueden ser consideradas como la
ciencia de hacer tautologas particularmente
elaboradas de una forma rigurosa. Un teorema es un
ejemplo de tautologa til.
2: Funciones booleanas
20
Funciones booleanas
Espacios y funciones booleanas
H Una funcin f es satisfacible cuando existe un
elemento en el conjunto de f que es uno.
H Dos funciones son equivalentes si para todo X B
n
se tiene que:
f(X) = g(X)
2: Funciones booleanas
21
2-Funciones y representaciones
booleanas
2.1 Lgica y lgebra de Boole
2.2 Funciones booleanas
2.3 Representaciones de funciones booleanas
2.4 Funciones de varias variables
2: Funciones booleanas
22
Representaciones
Las funciones booleanas se pueden describir
de variadas formas incluyendo:
H lgebra booleana
H tablas de verdad,
H diagramas de compuertas,
H diagramas temporales,
H diagramas de Venn,
H mapas de Karnaugh,
H N-cubos,
H lenguajes de descripcin de hardware (HDL:
Hardware description languages) como Verilog o
VHDL
P
o
r

v
e
r
s
e
!
2: Funciones booleanas
23
Representaciones: lgebra booleana
Las funciones booleanas se pueden describir con una
expresin de lgebra booleana.
Ejemplo: f(X, Y, Z) = XY + XZ + XZ
La funcin puede evaluarse para las diferentes
combinaciones de valores que tomen las variables.
Existen infinitas representaciones equivalentes de
una funcin a travs de expresiones.
El problema de sntesis lgica consiste en encontrar
la mejor expresin para representar una funcin.
2: Funciones booleanas
24
Representaciones: tabla de verdad
Las funciones booleanas tambin 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 funcin.
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
Expresin booleana que es
verdadera cuando X
e Y son iguales y falso de otra
forma
2: Funciones booleanas
26
Representaciones
Las funciones booleanas tambin se pueden
representar por diagramas compuestos de
smbolos de compuertas.
Existen mltiples diagramas que pueden
representar la misma funcin.
La ventaja de esta representacin es que esta
asociada a la implementacin en un medio visual.
Los circuitos combinacionales contienen solo
compuertas.
Los circuitos secuenciales contienen flip-flops y
compuertas.
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: XY, XY, XY
OR: X+Y, XY
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
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
H e.g., Z = A B (C + D) = (A (B (C + D)))
H Como sera usando compuertas?
2: Funciones booleanas
30
Representaciones: diagrama temporal
Un diagrama temporal es una representacin 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)
2: Funciones booleanas
31
Representaciones: diagrama temporal
Las seales de ondas se pueden apreciar usando
varias herramientas como: un simulador, usando un
analizador lgico o un osciloscopio
Retardos de propagacin en compuertas pueden
causar que las seales de entrada de otras
compuertas en cascada tengan carreras
Estas carreras pueden causar errores o
perturbaciones (glitches)
Los tiempos de propagacin son acumulativos para
compuertas en cascada
2: Funciones booleanas
32
Representaciones: diagrama temporal
Ejemplo: y = x + x
Como seria la perturbacin?
X
X
Y
X
X
Y
t
perturbacin
Carrera en seales de entrada
2: Funciones booleanas
33
Representaciones: diagramas de Venn
Los diagramas de Venn provienen de la rama de las
matemticas conocida como teora de conjuntos.
Estos diagramas son usados para mostrar grficamente
la relacin entre diferentes conjuntos
Son equivalentes a las tablas de verdad al mostrar todas
las relaciones lgicas entre los conjuntos de inters
Ejemplos:
A
B
A B
A + B
(A + B) (A + B)
2: Funciones booleanas
34
2-Funciones y representaciones
booleanas
2.1 Lgica y lgebra de Boole
2.2 Funciones booleanas
2.3 Representaciones de funciones booleanas
2.4 Funciones de varias variables
2: Funciones booleanas
35
Funciones de n variables
Si hay n variables la tabla de verdad tendr 2
n
filas.
Cada fila tiene como resultado un 0 o un 1.
El numero de posibles funciones (que resultan en 0 o
1) crece rpidamente, en termino de n es: 2
2
n = 0 indica una funcin con 0 variables.
X
1
X
2
F
X
n
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 2
2
= 16 funciones
Como son las funciones equivalentes a la tabla?
f0=0, f1=XY, f2=XY, f3=X, f4=XY, ..., f14=XY + XY + 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)
2: Funciones booleanas
37
Conjuntos funcionalmente completos
Cualquier expresin booleana puede ser
escrita mediante los operadores AND, OR y
NOT
Estos conjuntos constituyen un conjunto
funcionalmente completo
2: Funciones booleanas
38
Conjuntos funcionalmente completos
La funcin NAND tambin es funcionalmente
completa ya que puede implementar AND, OR
y NOT:
H NAND(A,B) = AB
H NAND(A,A) = A
H NAND(A, B) = A+B
2: Funciones booleanas
39
Conjuntos funcionalmente completos
La funcin NOR tambin es funcionalmente
completa ya que puede implementar AND, OR
y NOT:
H NOR(A, B) = A + B
H NOR(A,A) = A
H NOR(A, B) = AB
Todas estas funciones se pueden generalizar
a funciones de n variables
2: Funciones booleanas
40
Actividad:
Determine la funcin 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
2: Funciones booleanas
41
Actividad:
Determine la tabla de verdad y la funcin 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
2: Funciones booleanas
42
Minimizar
Usando teoremas para minimizar el sumador
Cuales son los criterios de inters 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
2: Funciones booleanas
43
Minimizar
Algunos criterios de inters al minimizar son:
H Criterios de reduccin
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 funcin
Siempre van a existir compromisos entre velocidad y tamao. Se
suele denominar compromiso tiempo-espacio.
Diferentes implementaciones de la misma funcin tienen diferentes
comportamientos:
H retardos son diferentes
H perturbaciones (glitches) pueden ocurrir
H otras variaciones por diferencias en el numero de compuertas y
estructura
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 funcin
realizacin de dos niveles
compuerta XOR (fcil de
dibujar pero mas costosa)
implementacin multinivel
compuertas con menos inputs
2: Funciones booleanas
45
Hay que elegir entre diferentes
realizaciones de una funcin
Las tres implementaciones anteriores son funcionalmente
equivalentes pero tienen diferencias en su
comportamiento

También podría gustarte