Algebra Booleana.

Anuncio
Introducción al álgebra de Boole
Muchos componentes utilizados en sistemas de control, como contactores y relés, presentan dos estados claramente
diferenciados (abierto o cerrado, conduce o no conduce). A este tipo de componentes se les denomina componentes todo
o nada o también componentes lógicos.
Para estudiar de forma sistemática el comportamiento de estos elementos, se representan los dos estados por los
símbolos 1 y 0 (0 abierto, 1 cerrado). De esta forma podemos utilizar una serie de leyes y propiedades comunes con
independencia del componente en sí; da igual que sea una puerta lógica, un relé, un transistor, etc...
Atendiendo a este criterio, todos los elementos del tipo todo o nada son representables por una variable lógica,
entendiendo como tal aquella que sólo puede tomar los valores 0 y 1. El conjunto de leyes y reglas de operación de
variables lógicas se denomina álgebra de Boole, ya que fué George Boole el que desarrolló las bases de la lógica
matemática.
Operaciones lógicas básicas
Sea un conjunto formado por sólo dos elementos que designaremos por 0 y 1. Llamaremos variables lógicas a las que
toman sólo los valores del conjunto, es decir 0 o 1.
En dicho conjunto se definen tres operaciones básicas:
SUMA LOGICA:
Denominada también operación "O" (OR). Esta operación responde a la siguiente tabla:
a
0
0
1
1
b
0
1
0
1
a+b
0
1
1
1
PRODUCTO LOGICO:
Denominada también operación "Y" (AND). Esta operación responde a la siguiente tabla:
a
0
0
1
1
b
0
1
0
1
a*b
0
0
0
1
NEGACION LOGICA:
Denominada también operación "N" (NOT). Esta operación responde a la siguiente tabla:
a
0
1
a'
1
0
Propiedades del álgebra de Boole
Las propiedades del conjunto en el que se han definido las operaciones (+, *, ') son las siguientes:
PROPIEDAD CONMUTATIVA:
De la suma: a+b = b+a
Del producto: a*b = b*a
PROPIEDAD ASOCIATIVA:
De la suma: (a+b)+c = a+(b+c) = a+b+c
Del producto: (a*b)*c = a*(b*c) = a*b*c
LEYES DE IDEMPOTENCIA:
De la suma: a+a = a ; a+a' = 1
Del producto: a*a = a ; a*a' = 0
PROPIEDAD DISTRIBUTIVA:
De la suma respecto al producto: a*(b+c) = (a*b) + (a*c)
Del producto respecto a la suma: a + (b*c) = (a+b) * (a+c)
LEYES DE DE MORGAN:
(a+b+c)' = a'*b'*c'
(a*b*c)' = a'+b'+c'
Otras operaciones lógicas
A partir de las operaciones lógicas básicas se pueden realizar otras operaciones booleanas, las cuales son:
NAND, cuya tabla correspondiente es:
a
0
0
1
1
b
0
1
0
1
(a*b)'
1
1
1
0
NOR, cuya tabla correspondiente es:
a
0
0
1
1
b
0
1
0
1
(a+b)'
1
0
0
0
XOR, también llamada función OR-EXCLUSIVA. Responde a la tabla:
a
0
0
1
1
b
0
1
0
1
a(+)b
0
1
1
0
Puertas lógicas
Todas las funciones lógicas vistas hasta el momento poseen una representación normalizada, la cual se muestra en la
figura siguiente:
Toda puerta lógica consta de 1 o más entradas y 1 o 2 salidas (puede darse el caso de proporcionarse la salida y su
negada). En todos los símbolos las entradas se encuentran a la izquierda y las salidas a la derecha.
Estas puertas las podemos encontrar empaquetadas dentro de distintos circuitos integrados. Por ejemplo, para la familia
lógica TTL tenemos las siguientes referencias:
54/74 (LS) 00
Cuádruple puerta NAND de dos entradas
54/74 (LS) 02
Cuádruple puerta NOR de dos entradas
54/74 (LS) 04
Séxtuple puerta NOT
54/74 (LS) 08
Cuádruple puerta AND de dos entradas
54/74 (LS) 10
Triple puerta NAND de tres entradas
54/74 (LS) 11
Triple puerta AND de tres entradas
54/74 (LS) 20
Doble puerta NAND de cuatro entradas
54/74 (LS) 21
Doble puerta AND de cuatro entradas
54/74 (LS) 27
Triple puerta NOR de tres entradas
54/74 (LS) 30
Puerta NAND de ocho entradas
54/74 (LS) 32
Cuádruple puerta OR de dos entradas
Las puertas lógicas más frecuentes, baratas, y fáciles de encontrar son las NAND. Debido a esto se suelen implementar
circuitos digitales con el mayor número de dichas puertas.
Hay que mencionar en este punto que los niveles de tensión que se corresponden con los niveles lógicos 1 y 0 dependen
de la familia lógica empleada. De momento basta saber que la familia TTL se alimenta con +5V, por lo que los niveles de
tensión se corresponderán con +5V para el 1 lógico y 0V para el 0 lógico (idealmente hablando, claro).
Funciones lógicas
La aplicación más directa de las puertas lógicas es la combinación entre dos o más de ellas para formar circuitos lógicos
que responden a funciones lógicas. Una función lógica hace que una o más salidas tengan un determinado valor para un
valor determinado de las entradas.
Supongamos que tenemos dos entradas, A y B, y una salida F. Vamos a hacer que la salida sea 1 lógico cuando A y B
tengan el mismo valor, siendo 0 la salida si A y B son diferentes.
En primer lugar veamos los valores de A y B que hacen 1 la función:
A=1yB=1
A=0yB=0
Es decir, podemos suponer dos funciones de respuesta para cada caso:
F1 = A*B (A y B a 1 hacen F1 1)
F2 = A'*B' (A y B a 0 hacen F2 1)
La suma de estas funciones será la función lógica final que buscamos:
F = F1 + F2 = (A*B)+(A'*B')
A continuación vamos a ver como en muchos casos es posible simplificar la función lógica final en otra más simple sin
alterar el funcionamiento del circuito.
Simplificación de funciones
Supongamos que tenemos un circuito donde "F" es la respuesta (salida) del mismo en función de las señales A, B, y C
(entradas):
F = A*B*C + A'*B*C + B*C
Esta función puede ser simplificable aplicando las propiedades del álgebra de Boole. En primer lugar aplicamos la
propiedad distributiva:
F = B*C*(A+A') + B*C
Ahora aplicamos las leyes de idempotencia:
F = B*C + B*C = B*C
Como hemos podido ver en este ejemplo en muchas ocasiones se puede simplificar la función (y por tanto el circuito) sin
que ello afecte al resultado. Más adelante veremos como simplificar funciones empleando otros métodos más sencillos y
fiables.
Tabla de verdad
DEFINICION:
Es una forma de representación de una función en la que se indica el valor 0 o 1 para cada valor que toma ésta por cada
una de las posibles combinaciones que las variables de entrada pueden tomar.
Anteriormente hemos visto las tablas de respuesta de cada una de las operaciones lógicas; estas tablas son tablas de
verdad de sus correspondientes puertas lógicas.
La tabla de verdad es la herramienta que debemos emplear para obtener la forma canónica de la función del circuito,
para así poder simplificar y conseguir la función más óptima.
Familias lógicas
Los circuitos digitales emplean componentes encapsulados, los cuales pueden albergar puertas lógicas o circuitos lógicos
más complejos.
Estos componentes están estandarizados, para que haya una compatibilidad entre fabricantes, de forma que las
características más importantes sean comunes. De forma global los componentes lógicos se engloban dentro de una de
las dos familias siguientes:
TTL: diseñada para una alta velocidad.
CMOS: diseñada para un bajo consumo.
Actualmente dentro de estas dos familias se han creado otras, que intentan conseguir lo mejor de ambas: un bajo
consumo y una alta velocidad.
No se hace referencia a la familia lógica ECL, la cual se encuentra a caballo entre la TTL y la CMOS. Esta familia nació
como un intento de conseguir la rapidez de TTL y el bajo consumo de CMOS, pero en raras ocasiones se emplea.
Comparación de las familias
PARAMETRO
TTL
estándar
TTL
74L
Fairchild 4000B
TTL Schottky de
CMOS (con
baja potencia (LS)
Vcc=5V)
Fairchild 4000B
CMOS (con
Vcc=10V)
Tiempo de propagación
de puerta
10 ns
33 ns
5 ns
40 ns
20 ns
Frecuencia máxima de
funcionamiento
35 MHz
3
MHz
45 MHz
8 MHz
16 MHz
Potencia disipada por
puerta
10 mW
1 mW 2 mW
10 nW
10 nW
Margen de ruido
admisible
1V
1V
0'8 V
2V
4V
Fan out
10
10
20
50 (*)
50 (*)
(*) O lo que permita el tiempo de propagación admisible
Dentro de la familia TTL encontramos las siguiente sub-familias:
•
•
•
•
L: Low power = dsipación de potencia muy baja
LS: Low power Schottky = disipación y tiempo de propagación pequeño.
S: Schottky = disipación normal y tiempo de propagación pequeño.
AS: Advanced Schottky = disipación normal y tiempo de propagación extremadamente pequeño.
TENSION DE ALIMENTACION
CMOS: 5 a 15 V (dependiendo de la tensión tendremos un tiempo de propagación).
TTL: 5 V.
Parámetros de puerta
Las puertas lógicas no son dispositivos ideales, por lo que vamos a tener una serie de limitaciones impuestas por el
propio diseño interno de los dispositivos lógicos. Internamente la familia TTL emplea transistores bipolares (de aquí su
alto consumo), mientras que la familia CMOS emplea transistores MOS (a lo que debe su bajo consumo).
MARGEN DEL CERO
Es el rango de tensiones de entrada en que se considera un cero lógico:
VIL máx: tensión máxima que se admite como cero lógico.
VIL mín: tensión mínima que se admite como cero lógico.
MARGEN DEL UNO
Es el rango de tensiones de entrada en que se considera un uno lógico:
VIH máx: tensión máxima que se admite como uno lógico.
VIH mín: tensión mínima que se admite como uno lógico.
MARGEN DE TRANSICION
Se corresponde con el rango de tensiones en que la entrada es indeterminada y puede ser tomada como un uno o un
cero. Esta zona no debe ser empleada nunca, ya que la puerta se comporta de forma incorrecta.
MT = VIH mín - VIL máx
AMPLITUD LOGICA
Debido a que dos puertas de la misma familia no suelen tener las mismas características debemos emplear los valores
extremos que tengamos, utilizando el valor de VIL máx más bajo y el valor de VIH mín más alto.
AL máx: VH máx - VL mín
AL mín: VH mín - VL máx
RUIDO
El ruido es el elemento más común que puede hacer que nuestro circuito no funcione habiendo sido diseñado
perfectamente. El ruido puede ser inherente al propio circuito (como consecuencia de proximidad entre pistas o
capacidades internas) o también como consecuencia de ruido exterior (el propio de un ambiente industrial).
Si trabajamos muy cerca de los límites impuestos por VIH y VIL puede que el ruido impida el correcto funcionamiento del
circuito. Por ello debemos trabajar teniendo en cuenta un margen de ruido:
VMH (margen de ruido a nivel alto) = VOH mín - VIH mín
VML (margen de ruido a nivel bajo) = VIL máx - VOL máx
VOH y VOL son los niveles de tensión del uno y el cero respectivamente para la salida de la puerta lógica.
Supongamos que trabajamos a un nivel bajo de VOL = 0'4 V con VIL máx = 0'8 V. En estas condiciones tendremos un
margen de ruido para nivel bajo de:
VML = 0'8 - 0'4 = 0'4 V
FAN OUT
Es el máximo número de puertas que podemos excitar sin salirnos de los márgenes garantizados por el fabricante. Nos
asegura que en la entrada de las puertas excitadas:
VOH es mayor que VOH mín
VOL es menor que VOL mín
Para el caso en que el FAN OUT sea diferente a nivel bajo y a nivel alto, escogeremos el FAN OUT más bajo para nuestros
diseños.
Si además nos encontramos con que el fabricante no nos proporciona el FAN OUT podemos calcularlo como:
FAN OUT = IOL máx / IIL máx
Donde IOL e IIL son las corrientes de salida y entrada mínimas de puerta.
POTENCIA DISIPADA
Es la media de potencia disipada a nivel alto y bajo. Se traduce en la potencia media que la puerta va a consumir.
TIEMPOS DE PROPAGACION
Definimos como tiempo de propagación el tiempo transcurrido desde que la señal de entrada pasa por un determinado
valor hasta que la salida reacciona a dicho valor.
vamos a tener dos tiempos de propagación:
Tphl = tiempo de paso de nivel alto a bajo.
Tplh = tiempo de paso de nivel bajo a alto.
Como norma se suele emplear el tiempo medio de propagación, que se calcula como:
Tpd = (Tphl + Tplh)/2
FRECUENCIA MAXIMA DE FUNCIONAMIENTO
Se define como:
Fmáx = 1 / (4 * Tpd)
Descargar