martes, 24 de noviembre de 2015

Compuertas Lógicas

Compuertas Lógicas 

Índice


  •    1.-Introducción.
  •   2.-Lógica Positiva.
  •    3.-Lógica Negativa.
  •    4.-Compuertas Lógicas.
  •           4.1.- Compuerta NOT
  •           4.2.- Compuerta AND
  •           4.3.- Compuerta OR
  •             4.4.- Compuerta OR-EX o XOR
  •           4.5.- Compuerta NAND
  •           4.6.- Compuerta NOR
  •           4.7.- Compuerta NOR-EX
  •           4.8 Buffers
  •    5.- Álgebra Booleana y circuitos electrónicos.
  •   6.- Circuitos Combinacionales.
  •    7.- Circuitos Secuenciales.
  •    8.- Relación entre la lógica combinacional y secuencial con la programación.
  •    9.- Los Teoremas Básicos Del Algebra Booleana.
  •    10.- Conclusión.
  •    11.- Bibliografía.



 Introducción

Dentro de la electrónica digital, existe un gran número de problemas a resolver que se repiten normalmente. Por ejemplo, es muy común que al diseñar un circuito electrónico necesitemos tener el valor opuesto al de un punto determinado, o que cuando un cierto número de pulsadores estén activados, una salida permanezca apagada. Todas estas situaciones pueden ser expresadas mediante ceros y unos, y tratadas mediante circuitos digitales. Los elementos básicos de cualquier circuito digital son las compuertas lógicas.

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.


 2.-Lógica Positiva
En esta notación al 1 lógico le corresponde el nivel más alto de tensión y al 0 lógico el nivel más bajo, pero que ocurre cuando la señal no está bien definida. Entonces habrá que conocer cuáles son los límites para cada tipo de señal (conocido como tensión de histéresis), en este gráfico se puede ver con mayor claridad cada estado lógico y su nivel de tensión.



    3.-Lógica Negativa
Aquí ocurre todo lo contrario, es decir, se representa al estado "1" con los niveles más bajos de tensión y al "0" con los niveles más altos.



Por lo general se suele trabajar con lógica positiva, la forma más sencilla de representar estos estados es como se puede ver en el siguiente gráfico.



   4.-Compuertas Lógicas 
Las compuertas lógicas son dispositivos que operan con aquellos estados lógicos mencionados en lo anterior y funcionan igual que una calculadora, de un lado ingresas los datos, ésta realiza una operación, y finalmente, te muestra el resultado.




Cada una de las compuertas lógicas se las representa mediante un Símbolo, y la operación que realiza (Operación lógica) se corresponde con una tabla, llamada Tabla de Verdad.

·        4.1.- 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



·        4.2.- 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*



·        4.3.- 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*



 4.4.- Compuerta OR-EX o XOR

Es OR EXclusiva en este caso con dos entradas (puede tener más) y lo que hará con ellas será una suma lógica entre a por b invertida y a invertida por b.*Al ser O Exclusiva su salida será 1 si una y sólo una de sus entradas es 1*



Estas serían básicamente las compuertas más sencillas.

Compuertas Lógicas Combinadas

Al agregar una compuerta NOT a cada una de las compuertas anteriores los resultados de sus respectivas tablas de verdad se invierten, y dan origen a tres nuevas compuertas llamadas NAND, NOR y NOR-EX.

4.5.- Compuerta NAND

Responde a la inversión del producto lógico de sus entradas, en su representación simbólica se reemplaza la compuerta NOT por un círculo a la salida de la compuerta AND.




 4.6.- Compuerta NOR

El resultado que se obtiene a la salida de esta compuerta resulta de la inversión de la operación lógica o inclusiva es como un no a y/o b. Igual que antes, solo agregas un círculo a la compuerta OR y ya tienes una NOR.



 4.7.- Compuerta NOR-EX

Es simplemente la inversión de la compuerta OR-EX, los resultados se pueden apreciar en la tabla de verdad, que bien podrías compararla con la anterior y notar la diferencia, el símbolo que la representa lo tienes en el siguiente gráfico.



  4.8 Buffers

En realidad no realiza ninguna operación lógica, su finalidad es amplificar un poco la señal (o refrescarla si se puede decir). Como puedes ver en el siguiente gráfico la señal de salida es la misma que de entrada.



5.- Álgebra Booleana y circuitos electrónicos

La relación que existe entre la lógica booleana y los sistemas de cómputo es fuerte, de hecho se da una relación uno a uno entre las funciones booleanas y los circuitos electrónicos de compuertas digitales. Para cada función booleana es posible diseñar un circuito electrónico y viceversa, como las funciones booleanas solo requieren de los operadores AND, OR y NOT podemos construir nuestros circuitos utilizando exclusivamente éstos operadores utilizando las compuertas lógicas homónimas. Un hecho interesante es que es posible implementar cualquier circuito electrónico utilizando una sola compuerta, ésta es la compuerta NAND Para probar que podemos construir cualquier función booleana utilizando sólo compuertas NAND, necesitamos demostrar cómo construir un inversor (NOT), una compuerta AND y una compuerta OR a partir de una compuerta NAND, ya que como se dijo, es posible implementar cualquier función booleana utilizando sólo los operadores booleanos AND, OR y NOT. Para construir un inversor simplemente conectamos juntas las dos entradas de una compuerta NAND. Una vez que tenemos un inversor, construir una compuerta AND es fácil, sólo invertimos la salida de una compuerta NAND, después de todo, NOT (NOT (A AND B)) es equivalente a A AND B. Por supuesto, se requieren dos compuertas NAND para construir una sola compuerta AND, nadie ha dicho que los circuitos implementados sólo utilizando compuertas NAND sean lo óptimo, solo se ha dicho que es posible hacerlo. La otra compuerta que necesitamos sintetizar es la compuerta lógica OR, esto es sencillo si utilizamos los teoremas de De Morgan, que en síntesis se logra en tres pasos, primero se reemplazan todos los "·" por "+" después se invierte cada literal y por último se niega la totalidad de la expresión:
A OR BA AND B.......................Primer paso para aplicar el teorema de DeMorganA' AND B'.....................Segundo paso para aplicar el teorema de DeMorgan(A' AND B')'..................Tercer paso para aplicar el teorema de DeMorgan(A' AND B')' = A' NAND B'.....Definición de OR utilizando NAND
Si se tiene la necesidad de construir diferentes compuertas de la manera descrita, bien hay dos buenas razones, la primera es que las compuertas NAND son las más económicas y en segundo lugar es preferible construir circuitos complejos utilizando los mismos bloques básicos. Observe que es posible construir cualquier circuito lógico utilizando sólo compuertas de tipo NOR (NOR = NOT(A OR B)). La correspondencia entre la lógica NAND y la NOR es ortogonal entre la correspondencia de sus formas canónicas. Mientras que la lógica NOR es útil en muchos circuitos, la mayoría de los diseñadores utilizan lógica NAND.


 6.- Circuitos Combinacionales

Un circuito combinacional es un sistema que contiene operaciones booleanas básicas (AND, OR, NOT), algunas entradas y un juego de salidas, como cada salida corresponde a una función lógica individual, un circuito combinacional a menudo implementa varias funciones booleanas diferentes, es muy importante recordar éste hecho, cada salida representa una función booleana diferente.
Un ejemplo común de un circuito combinacional es el decodificador de siete segmentos, se trata de un circuito que acepta cuatro entradas y determina cuál de los siete segmentos se deben iluminar para representar la respectiva entrada, de acuerdo con lo dicho en el párrafo anterior, se deben implementar siete funciones de salida diferentes, una para cada segmento. Las cuatro entradas para cada una de éstas funciones booleanas son los cuatro bits de un número binario en el rango de 0 a 9. Sea Del bit de alto orden de éste número y A el bit de bajo orden, cada función lógica debe producir un uno (para el segmento encendido) para una entrada dada si tal segmento en particular debe ser iluminado, por ejemplo, el segmento e debe iluminarse para los valores 0000, 0010, 0110 y 1000.
En la siguiente tabla se puede ver qué segmentos deben iluminarse de acuerdo al valor de entrada, tenga en cuenta que sólo se están representando valores en el rango de 0 a 9, los decodificadores para las pantallas de siete segmentos comerciales tienen capacidad para desplegar valores adicionales que corresponden a las letras A a la F para representaciones hexadecimales, sin embargo la mecánica para iluminar los respectivos segmentos es similar a la aquí representada para los valores numéricos.

0
a
b
c
d
e
f

1

b
c




2
a
b

d
e

g
3
a
b
c
d


g
4

b
c


f
g
5
a

c
d

f
g
6


c
d
e
f
g
7
a
b
c




8
a
b
c
d
e
f
g
9
a
b
c


f
g

Los circuitos combinacionales son la base de muchos componentes en un sistema de cómputo básico, se puede construir circuitos para sumar, restar, comparar, multiplicar, dividir y muchas otras aplicaciones más.

 7.- Circuitos Secuenciales

Un problema con la lógica secuencial es su falta de "memoria". En teoría, todas las funciones de salida en un circuito combinacional dependen del estado actual de los valores de entrada, cualquier cambio en los valores de entrada se refleja (después de un intervalo de tiempo llamado retardo de propagación) en las salidas. Desafortunadamente las computadoras requieren de la habilidad para "recordar" el resultado de cálculos pasados. Éste es el dominio de la lógica secuencial. Una celda de memoria es un circuito electrónico que recuerda un valor de entrada después que dicho valor ha desaparecido. La unidad de memoria más básica es el flip-flop Set/Reset. Aunque recordar un bit sencillo es importante, la mayoría de los sistemas de cómputo requieren recordar un grupo de bits, esto se logra combinando varios flip-flop en paralelo, una conexión de éste tipo recibe el nombre de registro. A partir de aquí es posible implementar diferentes circuitos como registros de corrimiento y contadores, éstos últimos también los conocemos como circuitos de reloj. Con los elementos mencionados es posible construir un microprocesador completo.


8.- Relación entre la lógica combinacional y secuencial con la programación

En ésta lección hemos dado una repasada muy básica a los elementos que forman la base de los modernos sistemas de cómputo, en la sección dedicada al diseño electrónico estudiaremos a profundidad los conceptos aquí presentados, pero para aquellos que están más interesados en el aspecto programático podemos decir que con los elementos vistos en ésta lección es posible implementar máquinas de estado, sin embargo la moraleja de ésta lección es muy importante: cualquier algoritmo que podamos implementar en software, lo podemos a su vez implementar directamente en hardware. Esto sugiere que la lógica booleana es la base computacional en los modernos sistemas de cómputo actuales. Cualquier programa que Usted escriba, independientemente del lenguaje que utilice, sea éste de alto ó bajo nivel, se puede especificar como una secuencia de ecuaciones booleanas.

Un hecho igualmente interesante es el punto de vista opuesto, es posible implementar cualquier función de hardware directamente en software, en la actualidad ésta es la función principal del lenguaje ensamblador y otros con capacidad de trabajar directamente en hardware, como el C y el C++. Las consecuencias de éste fenómeno apenas se están explotando, se infiere la existencia de un futuro muy prometedor para el profesional de la programación, especialmente aquellos dedicados a los sistemas incrustados (embedded systems), los microcontroladores y los profesionales dedicados a la Programación Orientada a Objetos. Para tener éxito en éstos campos de la investigación es fundamental comprender las funciones booleanas y la manera de implementarlas en software. Aún y cuando Usted no desee trabajar en hardware, es importante conocer las funciones booleanas ya que muchos lenguajes de alto nivel procesan expresiones booleanas, como es el caso de los enunciados if-then o los bucles while.

 9.- Los Teoremas Básicos Del Algebra Booleana

Los Teoremas Básicos del álgebra Booleana son:
TEOREMA 1 Ley Distributiva A (B+C) = AB+AC


A
B
C
B+C
AB
AC
AB+AC
A (B+C)
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1


TEOREMA 2
A+A = A
AA = A
A
A
A+A
0
0
0
1
1
1
A
A
AA
0
0
0
1
1
1

TEOREMA 3
Redundancia
A+AB = A
A
B
AB
X
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1

A (A+B) = A
A
B
A+B
X
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1



TEOREMA 4
0+A = A
Equivalente a una compuerta OR con una de sus terminales conectada a tierra

A
B=0
X
0
0
0
1
0
1
1A = A


Equivalente a una compuerta AND con una de sus terminales conectada a 1


A
B=1
X
0
1
0
1
1
1
1+A = 1
A
B=1
X
0
1
1
1
1
1
0A = 0
A
B=0
X
0
0
0
1
0
0

 


  10.- Conclusión

·         Las álgebras booleanas, estudiadas por primera vez en detalle por George Boole, constituyen un área de las matemáticas que ha pasado a ocupar un lugar prominente con el advenimiento de la computadora digital.
·         Son usadas ampliamente en el diseño de circuitos de distribución y computadoras, y sus aplicaciones van en aumento en muchas otras áreas.
·         Las compuertas lógicas son los dispositivos electrónicos más sencillos que existen, pero al mismo tiempo son los más utilizados en la actualidad.



 11.- Bibliografía:


 

No hay comentarios:

Publicar un comentario