2-Funciones Booleanas

Anuncio
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: Funciones booleanas
1
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
2: Funciones booleanas
2
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
2: Funciones booleanas
3
Á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 { ‘ }.
❍
2: Funciones booleanas
4
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?)
2: Funciones booleanas
5
Á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,
Asociatividad:
a + (b + c) = (a + b) + c
a • (b • c) = (a • b) • c
Identidad:
a + 0 = a,
Distributividad:
a + (b • c) = (a + b) • (a + c)
a • (b + c) = (a • b) + (a • c)
Complementariedad:
a + a’ = 1,
a•b=b•a
a•1=a
a • a’ = 0
2: Funciones booleanas
6
Á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.
❍
2: Funciones booleanas
7
Á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
❍
2: Funciones booleanas
8
Á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
2: Funciones booleanas
9
Álgebra de Boole: Teoremas
❒
❒
❒
❒
❒
conmutatividad:
6. X + Y = Y + X
asociatividad:
7. (X + Y) + Z = X + (Y + Z)
distributividad:
8. X • (Y + Z) = (X • Y) + (X • Z)
unificación (fusión):
9. X • Y + X • Y’ = X
absorción:
10. X + X • Y = X
11. (X + Y’) • Y = X • Y
❒ factorizar:
12. (X + Y) • (X’ + Z) =
X • Z + X’ • Y
❒ consenso:
13. (X • Y) + (Y • Z) + (X’ • Z) =
X • Y + X’ • Z
6D. X • Y = Y • X
7D. (X • Y) • Z = X • (Y • Z)
8D. X + (Y • Z) = (X + Y) • (X + Z)
9D. (X + Y) • (X + Y’) = X
10D. X • (X + Y) = X
11D. (X • Y’) + Y = X + Y
12D. X • Y + X’ • Z =
(X + Z) • (X’ + Y)
13D. (X + Y) • (Y + Z) • (X’ + Z) =
(X + Y) • (X’ + Z)
2: Funciones booleanas
10
Á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 +
2: Funciones booleanas
11
Álgebra de Boole: Teoremas
❒ Ejemplo: de Morgan:
X
0
0
1
1
Y
0
1
0
1
X’
1
1
0
0
Y’
1
0
1
0
(X + Y)’
1
0
0
0
(X’ • Y’)
1
0
0
0
X
0
(X • Y)’ = (X’ + Y’)
0
NAND es equivalente a OR 1
con inputs complementados 1
Y
0
1
0
1
X’
1
1
0
0
Y’
1
0
1
0
(X • Y)’
1
1
1
0
(X’ + Y’)
1
1
1
0
(X + Y)’ = (X’ • Y’)
NOR es equivalente a AND
con inputs complementados
2: Funciones booleanas
12
Á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
2: Funciones booleanas
13
Álgebra de Boole: Teoremas
❒ Actividad:
❍
Demuestre este teorema: X • Y + X • Y’
igualdad
distributividad (8)
complementariedad (5)
identidad (1D)
❍
Demuestre este teorema :
igualdad
identidad (1D)
distributividad (8)
nulo (2)
identidad (1D)
X • Y + X • Y’
= X
=
=
=
=
X
X
X
X
X+X•Y
= X
X + X•Y
=
=
=
=
=
X
X
X
X
X
• Y + X • Y’
• (Y + Y’)
• (1)
➼
+ X•Y
•1 + X•Y
• (1 + Y)
• (1)
➼
2: Funciones booleanas
14
Actividad: Álgebra de Boole
Demuestre lo siguiente usando álgebra booleana:
(X • Y) + (Y • Z) + (X’ • Z) = X • Y + X’ • Z
igualdad
absorción (10)
conmutatividad (6)
conmutatividad (6D)
distributividad (8)
complementariedad (5)
identidad (1D)
conmutatividad (6)
X Y + X’ Z =
=
=
=
=
=
=
=
X Y + X’ Z
(X Y + X Y Z) + (X’ Z + X’ Z Y)
X Y + X’ Z + X Y Z + X’ Z Y
X Y + X’ Z + X Y Z + X’ Y Z
X Y + X’ Z + (X + X’) Y Z
X Y + X’ Z + (1) Y Z
X Y + X’ Z + Y Z
X Y + Y Z + X’ Z ➼
2: Funciones booleanas
15
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
2: Funciones booleanas
16
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
❍
2: Funciones booleanas
17
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.
❍
2: Funciones booleanas
18
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.
2: Funciones booleanas
19
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)
❍
2: Funciones booleanas
20
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
2: Funciones booleanas
21
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!
2: Funciones booleanas
22
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.
2: Funciones booleanas
23
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.
2: Funciones booleanas
24
Representaciones
❒ Ejemplos: tablas de verdad
X
0
0
1
1
Y
0
1
0
1
X•Y
0
0
0
1
X
0
0
1
1
Y
0
1
0
1
X’
1
1
0
0
Y’
1
0
1
0
X
0
0
1
1
X•Y
0
0
0
1
Y
0
1
0
1
X’ • Y’
1
0
0
0
X’
1
1
0
0
X’ • Y
0
1
0
0
( X • Y ) + ( X’ • Y’ )
1
0
( X • Y ) + ( X’ • Y’ )
0
1
≡
X=Y
Expresión booleana que es
verdadera cuando X
e Y son iguales y falso de otra
forma
2: Funciones booleanas
25
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.
2: Funciones booleanas
26
Diagramas de compuertas
❒ NOT : X’, X, ~X
❒ AND: X•Y, XY, X∧Y
❒ OR: X+Y, X∨Y
X
X
Y
X
Y
X
0
1
Y
Y
1
0
Z
X
0
0
1
1
Y
0
1
0
1
Z
0
0
0
1
Z
X
0
0
1
1
Y
0
1
0
1
Z
0
1
1
1
2: Funciones booleanas
27
Diagramas de compuertas
❒ NAND
❒ NOR
❒ XOR
X⊕Y
❒ XNOR
X=Y
X
Y
X
Y
X
Y
X
Y
Z
X
0
0
1
1
Y
0
1
0
1
Z
1
1
1
0
Z
X
0
0
1
1
Y
0
1
0
1
Z
1
0
0
0
Z
X
0
0
1
1
Y
0
1
0
1
Z
0
1
1
0
Z
X
0
0
1
1
Y
0
1
0
1
Z
1
0
0
1
2: Funciones booleanas
28
Diagramas de compuertas
❒ Existe mas de una forma de mapear
expresiones a compuertas
❍
e.g., Z = A’ • B’ • (C + D) = (A’ • (B’ • (C + D)))
T2
T1
❍
Como sería usando compuertas?
A
Z
B
C
D
T1
T2
A
B
Z
C
D
2: Funciones booleanas
29
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)
2: Funciones booleanas
30
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
2: Funciones booleanas
31
Representaciones: diagrama temporal
❒ Ejemplo: y = x + x’
X’
Carrera en señales de entrada
X
Y
Como seria la perturbación?
t
X
X’
Y
perturbación
2: Funciones booleanas
32
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:
B
A
A·B
(A + B)’
A+B
(A + B)’
2: Funciones booleanas
33
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
2: Funciones booleanas
34
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
2: Funciones booleanas
35
Funciones de n variables
❒ Ejemplo: para n=2 se tienen 22ⁿ = 16 funciones
X
Y
X
0
0
1
1
Y
0
1
0
1
f0
0
0
0
0
0
f1
0
0
0
1
f2
0
0
1
0
X
XY
f3
0
0
1
1
f4
0
1
0
0
Y
F
f5
0
1
0
1
f6
0
1
1
0
X xor Y
f7
0
1
1
1
f8
1
0
0
0
f9
1
0
0
1
f10
1
0
1
0
X=Y
f11
1
0
1
1
Y’
f12
1
1
0
0
f13
1
1
0
1
f14
1
1
1
0
f15
1
1
1
1
1
X’
X nand Y=(XY)’
X + Y X nor Y=(X + Y)’
❒ 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
2: Funciones booleanas
36
Conjuntos funcionalmente completos
❒ Cualquier expresión booleana puede ser
escrita mediante los operadores AND, OR y
NOT
❒ Estos conjuntos constituyen un conjunto
funcionalmente completo
2: Funciones booleanas
37
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
❍
2: Funciones booleanas
38
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
2: Funciones booleanas
39
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 Cin
A
B
A
B
A
B
A
B
A
B
S
S
S
S
S
S
Cout
2: Funciones booleanas
40
Actividad:
A
S
B
Cout
Cin
❒ 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
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
Cin Cout S
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
Cout Cin
A
B
A
B
A
B
A
B
A
B
S
S
S
S
S
S = A’ B’ Cin + A’ B Cin’ + A B’ Cin’ + A B Cin
Cout = A’ B Cin + A B’ Cin + A B Cin’ + A B Cin
❒ Como minimizar usando álgebra booleana?
2: Funciones booleanas
41
Minimizar
❒ Usando teoremas para minimizar el sumador
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)
sumar terminos para
B Cin + A Cin + A B
factorizar
❒ Cuales son los criterios de interés al minimizar?
2: Funciones booleanas
42
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
2: Funciones booleanas
estructura
43
Hay que elegir entre diferentes
realizaciones de una función
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
Z
0
1
0
1
0
1
1
0
realización de dos niveles
implementación multinivel
compuertas con menos inputs
compuerta XOR (fácil de
dibujar pero mas costosa)
2: Funciones booleanas
44
Hay que elegir entre diferentes
realizaciones de una función
❒ Las tres implementaciones anteriores son funcionalmente
equivalentes pero tienen diferencias en su
comportamiento
2: Funciones booleanas
45
Descargar