Está en la página 1de 45

ELO211: Sistemas Digitales

Toms 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

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

Lgica Booleana
Definiciones bsicas
Una variable booleana (e.g. x, y) es un smbolo que
puede ser substituido por un elemento del
conjunto B={0,1}
Una constante booleana es un valor perteneciente
al conjunto {0,1}
Una expresin (e.g. x+y, xy, x) esta compuesta de
variables, constantes y operadores (e.g. +, , )
Una funcin booleana de n variables f(x1, x2, ..., xn)
es un expresin 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

lgebra de Boole
Definicin: 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

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.
Ejemplo: X AND (Y OR Y) = X
(porque?)

2: Funciones booleanas

lgebra de Boole
Una expresin 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,

ab=ba

a1=a

a a = 0
2: Funciones booleanas

lgebra de Boole: Resumen


lgebra de Boole

B = {0, 1}
variables
+ es el OR lgico, es el AND lgico
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

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:
tablas de verdad,
postulados,
y teoremas ya demostrados

2: Funciones booleanas

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

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)
unificacin (fusin):
9. X Y + X Y = X
absorcin:
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 expresin booleana se puede obtener remplazando
por +, + por , 0 por 1, y 1 por 0, y dejando las variables sin
cambio
cualquier teorema demostrado tambin 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 Morgans
no es una manera para manipular (cambiar) expresiones sino para
generar otros teoremas que tambin 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+XY

= X

X + XY

=
=
=
=
=

X
X
X
X
X

Y + X Y
(Y + Y)
(1)

+ XY
1 + XY
(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
absorcin (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 Lgica 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 funcin
booleana f de dos variables segn:
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 funcin booleana f de n variables
segn:
f(X): Bn B, cada punto de Bn se mapea a B
La funcin 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
tautologa.
Si el conjunto f0 = Bn se dice que f0 es vaco y no
es satisfacible.

2: Funciones booleanas

18

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

19

Funciones booleanas
Espacios y funciones booleanas

Una funcin 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 Lgica 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 descripcin 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

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

23

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

24

Representaciones
Ejemplos: tablas de verdad

X
0
0
1
1

Y
0
1
0
1

XY
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

XY
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

Expresin booleana que es


verdadera cuando X
e Y son iguales y falso de otra
forma
2: Funciones booleanas
25

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

26

Diagramas de compuertas
NOT : X, X, ~X

AND: XY, XY, XY

OR: X+Y, XY

X
Y

X
Y

X
0
1

Y
1
0

X
0
0
1
1

Y
0
1
0
1

Z
0
0
0
1

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

XY

XNOR

X=Y

X
Y

X
Y

X
Y

X
Y

X
0
0
1
1

Y
0
1
0
1

Z
1
1
1
0

X
0
0
1
1

Y
0
1
0
1

Z
1
0
0
0

X
0
0
1
1

Y
0
1
0
1

Z
0
1
1
0

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 sera usando compuertas?

B
C
D

T1
T2

A
B

C
D

2: Funciones booleanas

29

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

30

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

31

Representaciones: diagrama temporal


Ejemplo: y = x + x
X

Carrera en seales de entrada

X
Y

Como seria la perturbacin?


t

X
X
Y

perturbacin
2: Funciones booleanas

32

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:
B

A
AB

(A + B)

A+B

(A + B)
2: Funciones booleanas

33

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

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 rpidamente, en termino de n es: 22
n = 0 indica una funcin con 0 variables.
X1
X2

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=XY, ..., f14=XY + XY + XY= A +

B = (AB), f15=1

2: Funciones booleanas

36

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

37

Conjuntos funcionalmente completos


La funcin NAND tambin 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 funcin NOR tambin 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 funcin 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
Cout

2: Funciones booleanas

40

Actividad:

Cout

Cin

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

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 = 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 inters al minimizar?


2: Funciones booleanas

42

Minimizar
Algunos criterios de inters al minimizar son:

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:

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 funcin
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

realizacin de dos niveles

implementacin multinivel
compuertas con menos inputs

compuerta XOR (fcil de


dibujar pero mas costosa)
2: Funciones booleanas

44

Hay que elegir entre diferentes


realizaciones de una funcin
Las tres implementaciones anteriores son funcionalmente

equivalentes pero tienen diferencias en su


comportamiento

2: Funciones booleanas

45

También podría gustarte