martes, 17 de agosto de 2010

SIMPLIFICACIÓN DE CIRCUITOS LOGICOS

uando se tiene una función lógica con su tabla de verdad y se desea implementar esa función de la manera más económica posible se utiliza este método.

Ejemplo: Se tiene la siguiente tabla de verdad para tres variables.

Se desarrolla la función lógica basada en ella. (primera forma canónica). Ver que en la fórmula se incluyen solamente las variables (A, B, C) cuando F cuando es igual a "1".

Si A en la tabla de verdad es "0" se pone A, si B = "1" se pone B, Si C = "0" se pone C, etc.

Ejemplo de tabla de verdad de 3 variables. Mapas de Karnaugt - Electrónica Unicrom

F = A B C + A B C + A BC + A B C + A B C + A B C

Una vez obtenida la función lógica, se implementa el mapa de Karnaugh.

Mapa de Karnaugh de 3 variables - Electrónica UnicromEste mapa tiene 8 casillas que corresponden a 2n, donde n = 3 (número de variables (A, B, C))

La primera fila corresponde a A = 0
La segunda fila corresponde a A = 1
La primera columna corresponde a BC = 00 (B=0 y C=0)
La segunda columna corresponde a BC = 01 (B=0 y C=1)
La tercera columna corresponde a BC = 11 (B=1 y C=1)
La cuarta columna corresponde a BC = 10 (B=1 y C=0)

En el mapa de Karnaugh se han puesto "1" en las casillas que corresponden a los valores de F = "1" en la tabla de verdad.

Tomar en cuenta la numeración de las filas de la tabla de verdad y la numeración de las casillas en el mapa de Karnaugh.

Para proceder con la simplificación, se crean grupos de "1"s que tengan 1, 2, 4, 8, 16, etc. (sólo potencias de 2).

Los "1"s deben estar adyacentes (no en diagonal) y mientras más "1"s tenga el grupo, mejor.

La función mejor simplificada es aquella que tiene el menor número de grupos con el mayor número de "1"s en cada grupo

Grupos de "1" formados en mapa de karnaugh de 3 variables - Electrónica Unicrom

Se ve del gráfico que hay dos grupos cada uno de cuatro "1"s, (se permite compartir casillas entre los grupos).

La nueva expresión de la función boolena simplificada se deduce del mapa de Karnaugh.

- Para el primer grupo (rojo): la simplificación da B (los "1"s de la tercera y cuarta columna) corresponden a B sin negar)
- Para el segundo grupo (azul): la simplificación da A (los "1"s están en la fila inferior que corresponde a A sin negar)

Tabla de verdad para ejemplo de simplificación por mapa de Karnaugh - Electrónica Unicrom

Entonces el resultado es F = B + A ó F = A + B

Ejemplo:

Una tabla de verdad como la de la derecha da la siguiente función booleana:

F = ABC + AB C + A B C + A B C

Se ve claramente que la función es un reflejo del contenido de la tabla de verdad cuando F = "1"

Con esta ecuación se crea el mapa de Karnaugh y se escogen los grupos. Se lograron hacer 3 grupos de dos "1"s cada uno.

Grupos de "1" formados en ejemplo de mapa de karnaugh de 3 variables - Electrónica UnicromSe puede ver que no es posible hacer grupos de 3, porque 3 no es potencia de 2. Se observa que hay una casilla que es compartida por los tres grupos.

La función simplificada es:

F = AB + A C + B C

Grupo en azul: AB, grupo marrón:AC, grupo

COMPUERTAS LOGICAS

Las computadoras digitales utilizan el sistema de números binarios, que tiene dos dígitos 0 y 1. Un dígito binario se denomina un bit. La información está representada en las computadoras digitales en grupos de bits. Utilizando diversas técnicas de codificación los grupos de bits pueden hacerse que representen no solamente números binarios sino también otros símbolos discretos cualesquiera, tales como dígitos decimales o letras de alfabeto. Utilizando arreglos binarios y diversas técnicas de codificación, los dígitos binarios o grupos de bits pueden utilizarse para desarrollar conjuntos completos de instrucciones para realizar diversos tipos de cálculos.

La información binaria se representa en un sistema digital por cantidades físicas denominadas señales, Las señales eléctricas tales como voltajes existen a través del sistema digital en cualquiera de dos valores reconocibles y representan una variable binaria igual a 1 o 0. Por ejemplo, un sistema digital particular puede emplear una señal de 3 volts para representar el binario "1" y 0.5 volts para el binario "0". La siguiente ilustración muestra un ejemplo de una señal binaria.


Como se muestra en la figura, cada valor binario tiene una desviación aceptable del valor nominal. La región intermedia entre las dos regiones permitidas se cruza solamente durante la transición de estado. Los terminales de entrada de un circuito digital aceptan señales binarias dentro de las tolerancias permitidas y los circuitos responden en los terminales de salida con señales binarias que caen dentro de las tolerancias permitidas.

La lógica binaria tiene que ver con variables binarias y con operaciones que toman un sentido lógico. La manipulación de información binaria se hace por circuitos lógicos que se denominan Compuertas.

Las compuertas son bloques del hardware que producen señales en binario 1 ó 0 cuando se satisfacen los requisitos de entrada lógica. Las diversas compuertas lógicas se encuentran comúnmente en sistemas de computadoras digitales. Cada compuerta tiene un símbolo gráfico diferente y su operación puede describirse por medio de una función algebraica. Las relaciones entrada - salida de las variables binarias para cada compuerta pueden representarse en forma tabular en una tabla de verdad.

A continuación se detallan los nombres, símbolos, gráficos, funciones algebraicas, y tablas de verdad de las compuertas más usadas.

Compuerta AND:
Cada compuerta tiene dos variables de entrada designadas por A y B y una salida binaria designada por x.
La compuerta AND produce la multiplicación lógica AND: esto es: la salida es 1 si la entrada A y la entrada B están ambas en el binario 1: de otra manera, la salida es 0.
Estas condiciones también son especificadas en la tabla de verdad para la compuerta AND. La tabla muestra que la salida x es 1 solamente cuando ambas entradas A y B están en 1.
El símbolo de operación algebraico de la función AND es el mismo que el símbolo de la multiplicación de la aritmética ordinaria (*).
Las compuertas AND pueden tener más de dos entradas y por definición, la salida es 1 si todas las entradas son 1.

Compuerta OR:
La compuerta OR produce la función sumadora, esto es, la salida es 1 si la entrada A o la entrada B o ambas entradas son 1; de otra manera, la salida es 0.
El símbolo algebraico de la función OR (+), es igual a la operación de aritmética de suma.
Las compuertas OR pueden tener más de dos entradas y por definición la salida es 1 si cualquier entrada es 1.


Compuerta NOT:
El circuito NOT es un inversor que invierte el nivel lógico de una señal binaria. Produce el NOT, o función complementaria. El símbolo algebraico utilizado para el complemento es una barra sobra el símbolo de la variable binaria.
Si la variable binaria posee un valor 0, la compuerta NOT cambia su estado al valor 1 y viceversa.
El círculo pequeño en la salida de un símbolo gráfico de un inversor designa un inversor lógico. Es decir cambia los valores binarios 1 a 0 y viceversa.

Compuerta Separador (yes):
Un símbolo triángulo por sí mismo designa un circuito separador, el cual no produce ninguna función lógica particular puesto que el valor binario de la salida es el mismo de la entrada.
Este circuito se utiliza simplemente para amplificación de la señal. Por ejemplo, un separador que utiliza 5 volt para el binario 1, producirá una salida de 5 volt cuando la entrada es 5 volt. Sin embargo, la corriente producida a la salida es muy superior a la corriente suministrada a la entrada de la misma.
De ésta manera, un separador puede excitar muchas otras compuertas que requieren una cantidad mayor de corriente que de otra manera no se encontraría en la pequeña cantidad de corriente aplicada a la entrada del separador.

Compuerta NAND:
Es el complemento de la función AND, como se indica por el símbolo gráfico, que consiste en una compuerta AND seguida por un pequeño círculo (quiere decir que invierte la señal).
La designación NAND se deriva de la abreviación NOT - AND. Una designación más adecuada habría sido AND invertido puesto que es la función AND la que se ha invertido.
Las compuertas NAND pueden tener más de dos entradas, y la salida es siempre el complemento de la función AND.

Compuerta NOR:
La compuerta NOR es el complemento de la compuerta OR y utiliza el símbolo de la compuerta OR seguido de un círculo pequeño (quiere decir que invierte la señal). Las compuertas NOR pueden tener más de dos entradas, y la salida es siempre el complemento de la función OR.

CIRCUITOS LOGICOS CON COMPUERTAS

el sistema matematico llamado algebra pooleana en honor del matematico george boole que especifica la operacion de cada compuerta.
El algenra pooleana tambien se utiliza para describir la interconexion de compuertas digitales y para transformar diagramas de circuitos en expresiones algebraicas.

Lògica Binaria

Tiene que ver con variables que asumen 2 valores discretos y con operaciones que asumen un significado logico los 2 valores que toman las variables son 1 y 0. Y su nombre es designado por letras del alfabeto .
Existen 3 operaciones logicas asociadas con los valores binarios llamados:
AND
OR
NOT

Compuerta NOT:
Se trata de un inversor, es decir, invierte el dato de entrada, por ejemplo; si pones su entrada a 1 (nivel alto) obtendrás en su salida un 0 (o nivel bajo), y viceversa. Esta compuerta dispone de una sola entrada. Su operación lógica es s igual a a invertida


Compuerta AND:
Una compuerta AND tiene dos entradas como mínimo y su operación lógica es un producto entre ambas, no es un producto aritmético, aunque en este caso coincidan.
*Observa que su salida será alta si sus dos entradas están a nivel alto*



Compuerta OR:
Al igual que la anterior posee dos entradas como mínimo y la operación lógica, será una suma entre ambas... Bueno, todo va bien hasta que 1 + 1 = 1, el tema es que se trata de una compuerta O Inclusiva es como a y/o b
*Es decir, basta que una de ellas sea 1 para que su salida sea también 1

lunes, 2 de agosto de 2010

ALGEBRA DE BOOLE

Álgebra de Boole (también llamada Retículas booleanas) en informática y matemática, es una estructura algebraica que rigorizan las operaciones lógicas Y, O y NO, así como el conjunto de operaciones unión, intersección y complemento.
Se denomina así en honor a George Boole, (2 de noviembre de 1815 a 8 de diciembre de 1864), matemático inglés que fue el primero en definirla como parte de un sistema lógico a mediados del siglo XIX. El álgebra de Boole fue un intento de utilizar las técnicas algebraicas para tratar expresiones de la lógica proposicional. En la actualidad, el álgebra de Boole se aplica de forma generalizada en el ámbito del diseño electrónico. Claude Shannon fue el primero en aplicarla en el diseño de circuitos de conmutación eléctrica biestables, en 1948.

Operaciones

Hemos definido el conjunto A = {1,0} como el conjunto universal sobre el que se aplica el álgebra de Boole, sobre estos elementos se definen varias operaciones, veamos las más fundamentales:

Operación suma
a b a + b
0 0 0
0 1 1
1 0 1
1 1 1

La operación suma (+) asigna a cada par de valores a, b de A un valor c de A:

Su equivalencia en lógica de interruptores es un circuito de dos interruptores en paralelo.

Si uno de los valores de a o b es 1, el resultado será 1, es necesario que los dos sumandos sean 0, para que el resultado sea 0.

Operación producto
a b a b
0 0 0
0 1 0
1 0 0
1 1 1

La operación producto () asigna a cada par de valores a, b de A un valor c de A:

Esta operación en lógica de interruptores es un circuito en serie de dos interruptores

solo si los dos valores a y b son 1, el resultado será 1, si uno solo de ellos es 0 el resultado será 0.

Operación negación
a
0 1
1 0

La operación negación presenta el opuesto del valor de a:

Un interruptor inverso equivale a esta operación:

Operaciones combinadas
a b
0 0 1
0 1 1
1 0 0
1 1 1

Partiendo de estas tres operaciones elementales se pueden realizar otras más complejas, que podemos representar como ecuaciones booleanas, por ejemplo:

Que representado en lógica de interruptores es un circuito de dos interruptores en paralelo, siendo el primero de ellos inverso.

La distinta secuencia de valores de a y b da los resultados vistos en la tabla de verdad.


Leyes fundamentales

El concepto de dualidad permite formalizar este hecho: a toda relación o ley lógica le corresponderá su dual, formada mediante el intercambio de los operadores unión (suma lógica) con los de intersección (producto lógico), y de los 1 con los 0.
Además hay que cambiar cada variable por su negada. Esto causa confusión al aplicarlo en los teoremas básicos, pero es totalmente necesario para la correcta aplicación del principio de dualidad.

En matemática se emplea la notación empleada hasta ahora ({0,1}, + , ) siendo la forma más usual y la más cómoda de representar.
Por ejemplo las leyes de De Morgan se representan así:


Cuando el álgebra de Boole se emplea en electrónica, suele emplearse la misma denominación que para las puerta lógica AND (Y), OR (O) y NOT (NO), ampliándose en ocasiones con X-OR (O exclusiva) y su negadas NAND (NO Y), NOR (NO O) y X-NOR (equivalencia). las variables pueden representarse con letras mayúsculas o minúsculas, y pueden tomar los valores {0, 1}
Empleando esta notación las leyes de De Morgan se representan:


En su aplicación a la lógica se emplea la notación y las variables pueden tomar los valores {F, V}, falso o verdadero, equivalentes a {0, 1}
Con la notación lógica las leyes de De Morgan serían así:


En el formato de Teoría de conjuntos el Álgebra de Boole toma el aspecto:
En esta notación las leyes de De Morgan serían así:


Desde el punto de vista practico existe una forma simplificada de representar expresiones booleanas. Se emplean apóstrofes (') para indicar la negación, la operación suma (+) se representa de la forma normal en álgebra, y para el producto no se emplea ningún signo, las variables se representan, normalmente con una letra mayúscula, la sucesión de dos variables indica el producto entre ellas, no una variable nombrada con dos letras.
La representación de las leyes de De Morgan con este sistema quedaría así, con letra minúsculas para las variables:


y así, empleando letras mayúsculas para representar las variables:


Todas estas formas de representación son correctas, se utilizan de hecho, y pueden verse al consultar bibliografía. La utilización de una u otra notación no modifica el álgebra de Boole, solo su aspecto, y depende de la rama de las matemáticas o la tecnología en la que se esté utilizando para emplear una u otra notación.

Álgebra de Boole aplicada a la informática

Se dice que una variable tiene valor booleano cuando, en general, la variable contiene un 0 lógico o un 1 lógico. Esto, en la mayoría de los lenguajes de programación, se traduce en false (falso) o true (verdadero), respectivamente.

Una variable puede no ser de tipo booleano, y guardar valores que, en principio, no son booleanos; ya que, globalmente, los compiladores trabajan con esos otros valores, numéricos normalmente aunque también algunos permiten cambios desde, incluso, caracteres, finalizando en valor booleano. ..

El valor booleano de negación suele ser representado como false, aunque también permite y equivale al valor natural, entero y decimal (exacto) 0, así como la cadena "false", e incluso la cadena "0".

En cambio, el resto de valores apuntan al valor booleano de afirmación, representado normalmente como true, ya que, por definición, el valor 1 se tiene cuando no es 0. Cualquier número distinto de cero se comporta como un 1 lógico, y lo mismo sucede con casi cualquier cadena (menos la "false", en caso de ser ésta la correspondiente al 0 lógico).