La lógica digital es un proceso racional para adoptar sencillas decisiones de 'verdadero' o 'falso' basadas en las reglas del álgebra de Boole. El estado verdadero se representado por un 1, y falso por un 0, y en los circuitos lógicos estos numerales aparecen como señales de dos tensiones diferentes.
Circuitos Logicos
Por: Rios González José Antonio
domingo, 10 de octubre de 2010
Circuitos Logicos
Los circuitos de conmutación y temporización, o circuitos lógicos, forman la base de cualquier dispositivo en el que se tengan que seleccionar o combinar señales de manera controlada. Entre los campos de aplicación de estos tipos de circuitos pueden mencionarse la conmutación telefónica, las transmisiones por satélite y el funcionamiento de las computadoras digitales.
sábado, 9 de octubre de 2010
viernes, 8 de octubre de 2010
Dominio Lógico
El funcionamiento de una computadora se basa en el dominio de las señales, es mucho más complejo que aquellas señales, el sólo hecho de mirar la pantalla y ver la metáfora del mundo que aquella representa, hace surgir preguntas tales: ¿cómo funciona esto? O sí algo ya se sabe ¿cómo de un dominio tan pequeño, el de las señales, es posible obtener otro tan complejo como lo que se observa en la pantalla?
Para responder aquellas preguntas se debe partir desde el mismo dominio simple de los dos estado originales, el cual es posible representar por un conjunto de símbolos como { 0, 1 } o { V, F }, símbolos que describen a { -1.5 volts, +4.0 volts } respectivamente.
Pero se está frente a la misma situación anterior, sólo se ha cambiado la forma, pero ese conjunto de símbolos no tiene ninguna potencialidad, de ninguna forma es posible construir algo con aquellos símbolos.
Existe, en las matemáticas, un álgebra llamada Algebra de Boole. Fue desarrollada originalmente por George Boole, alrededor de 1850. La importancia de esta álgebra deriva de los trabajos de Claude Shannon en 1937, quién la utiliza para describir los circuitos digitales.
Álgebra de Boole
En informatica y matemática, es una estructura algebraica que rigorizan las operaciones logicasunión, intersección y complemento. Y, O y NO, así como el conjunto de operaciones
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 Básicas

Los estados posibles del circuito se pueden modelar en la Tabla de Verdad que tiene asociada. Sabemos que los interruptores sólo pueden tener dos estados, abiertos o cerrados, si el interruptor abierto se representa mediante el cero (0 o falso) y el cerrado mediante el valor uno (1 o verdadero) entonces en la tabla de verdad asociada se puede ver la situación que se describía en el párrafo anterior, cuando se decía que la luz sólo prende cuando ambos interruptores están cerrados, es decir, si A = 1 y B = 1 entonces L = 1.
La compuerta lógica es una forma de representar la operación And pero en el ámbito de los circuitos electrónicos, para ese caso A y B son las señales de entrada (con valores = 0 1) y L es la señal de salida.
Para efectos de este curso, la operación And la representaremos como la función And( A, B ), donde A y B serían los parámetros de entrada (los mismos valores de A y B en el circuito) y L = And( A, B ), correspondería a la forma de asignación de valor a L. En este caso el parámetro de salida es la misma función And.
Or. La operación Or tiene similares características a la operación And, con la diferencia que basta que una señal sea verdadera para que la señal resultante sea verdadera. En la figura se puede ver tal situación.

La operación Or también tiene una representación funcional como Or( A, B ) donde A y B serían los parámetros de entrada (los mismos valores de A y B en el circuito) y L = Or( A, B ), correspondería a la forma de asignación de valor a L. En este caso, el parámetro de salida es la misma función Or.
Not: La última de la tres operaciones fundamentales, la cual también se conoce como negación, complemento o inversión, es mucho más simple que las anteriores. En la figura se puede observar el circuito, que en este caso tiene la particularidad de que al estar el interruptor abierto la luz enciende, cuando él está en posición de cerrado la luz permanecería apagada.
La notación funcional para esta operación será Not( A ), donde A corresponde a la señal de entrada y Not( A ) corresponde al valor complementario de A.
Con las operaciones básicas ya definidas es posible redefinir el Algebra de una manera más formal, por ejemplo, dándole el nombre de Dominio Lógico y caracterizandolo de la siguiente manera:
Dominio Lógico ( l ð Dominio Lógico ) = ( { 0, 1 }, { l: And( l, l ), l:Or( l, l ), l:Not( l ) } )
Note que cada una de las operaciones o funciones de este dominio se ha explicitado claramente la cantidad y el tipo de parámetros con los cuales ellas operan (operandos) y el tipo de valor que la operación devuelve, en este caso todos los parámetros son del tipo lógico ( l ).
Así, cuando se habla del dominio del computador al resolver un problema, este dominio tiene como base el dominio recién descrito. Los circuitos electrónicos que dan vida al computador pueden ser representados todos mediante este Dominio Lógico.
jueves, 7 de octubre de 2010
Operaciones Compuestas
El conjunto de las operaciones del dominio básico se puede extender mediante un mecanismo de composición de operaciones, por ejemplo, se quiere agregar la operación XOR, que corresponde a un OR Exclusivo mediante el cual: si ambas entradas son iguales el resultado es cero (0 o falso) y si ambas son distintas, entonces el resultado es uno (1 o verdadero).
Es claro, en la figura, la forma de composición de la operación XOR a partir de las operaciones básicas and, or y not en el formalismo gráfico de las compuertas lógicas. También es posible usar el formalismo funcional, que se consideró en la definición el Domino Lógico, para componer la operación XOr:
Or( And( Not( A ), B ), And( A, Not( B ))); donde A, B ð Dominio Lógico
De hecho, si se quiere extender el conjunto de las operaciones del Dominio Lógico sería necesario expresar, la operación XOr, en el mismo formato que las operaciones primitivas; sin ser muy rigurosos bastaría con una asignación para que con ello se tenga una forma de definir nuevas operaciones en base a las ya existentes:
XOr( A, B ) ð Or( And( Not( A ), B ), And( A, Not( B ))) ; donde A, B, XOr ð Dominio Lógico
El símbolo ð permitiría trasladar toda la funcionalidad de la expresión a la nueva operación, incluidos los parámetros de entrada y salida (A, B como parámetros de entrada y el nombre de la operación XOr como parámetro de salida). Con la operación XOr ya definida es posible, entonces, ampliar la definición del Dominio Lógico:
Dominio Lógico (l ð Dominio Lógico ) =( { 0, 1 }, { l: And( l, l ), l:Or(l,l), l:Not(l) l:XOr( l,l ),})
Por lo cual XOr podría ser utilizado para componer nuevas operaciones de este mismo dominio o, eventualmente, de otros.
miércoles, 6 de octubre de 2010
Construcción de Nuevos Dominios
Pese a que se ha formalizado un dominio básico y, además, se ha creado nuevas operaciones dentro de ese dominio, aún no se cumple el objetivo de poder aproximar el mundo de señales del computador a nivel de complejidad actual observado.
En los puntos anteriores se revisó la forma de representación de los números enteros, la cual se basaba en una memoria organizada en palabras de 8 bits. Es decir, si se considera que cada una de las señales básicas puede ser utilizada para componer un bit, entonces sería necesario 8 señales para poder componer un número, donde cada una de estas señales podría tomar los dos estados posibles y, dependiendo de la posición en que ella esté -recuerden lo hablado sobre sistemas numéricos posicionales- tendría más o menos incidencia en el valor del número a representar, por ejemplo, el siguiente número binario, representa al 165 decimal -según la transformación estudiada:
xb = 10100101
X10 = V(xb) = 1× 27+0× 26+1× 25+0× 24+0× 23+1× 22+0× 21+1× 20 = 165
Con esta forma de representación es posible entonces sintetizar un conjunto de números enteros a partir de las señales originales, combinándolas. En este caso el conjunto de enteros puede ser uno que vaya desde 0 a 255, pero si se amplia el número de señales paralelas consideradas, este espectro se puede aumentar o, considerando el signo, se pueden incluir números negativos.
Así, para crear el conjunto de los números enteros a partir del conjunto de las señales se debe organizar éstas en cadenas paralelas -la forma usual de los buses dentro del computador- donde la posición de cada una tiene un peso específico en la síntesis del número que se está representando. En la notación que se está propugnando, un conjunto de estas cadenas puede ser visto de la siguiente forma:
Dominio Enteros Binarios ( nb Î Dominio Enteros Binarios) = ({Ln...L7L6L5L4L3L2L1L0 / Li Î Dominio Lógico} )
Ahora, si bien existe una representación factible de números enteros a partir de las señales primitivas, un dominio de los enteros (que en este caso se ha denominado enteros binarios por no estar expresados en base decimal) no está completo si es que no existen operaciones que permitan manejarlos, por lo cual es necesario componer tales operaciones a partir de del dominio lógico o de las mismas operaciones ya desarrolladas para este dominio.
La Unidad Aritmética
Todas las operaciones aritméticas se realizan en la unidad aritmética, también conocida como unidad aritmético-lógica -ver punto 1.2 de este apunte-, de un computador. El principal propósito de una unidad aritmética es aceptar datos binarios que están almacenados en memoria y ejecutar las operaciones aritméticas sobre aquellos datos de acuerdo a las instrucciones dadas desde la unidad de control.
La unidad aritmética tiene al menos dos registros de flip-flops: el registro B y el registro acumulador. Además contiene los circuitos lógicos que permiten ejecutar las operaciones sobre los números binarios almacenados en ambos registros. La típica secuencia de ejecución para una suma (ADD) puede ser la siguiente:
- La unidad de control recibe una instrucción (desde la unidad de memoria) indicando que un número almacenado en una ubicación particular de memoria (dirección) deberá ser sumado a el número actualmente almacenado en el acumulador.
- El número a ser sumado es transferido desde la memoria al registro B.
- El número en el registro B y el número en el acumulador son sumados en los circuitos lógicos (comandados desde la unidad de control). La suma resultante en enviada al acumulador para ser almacenada.
- Al nuevo número en el acumulador se le puede sumar otro, o si el proceso aritmético en particular ha terminado, el número puede ser transferido a memoria para almacenarlo.
Estos pasos demuestran de donde el registro acumulador deriva su nombre. Este registro "acumula" los valores que resultan de ejecutar sucesivas sumas entre nuevos números extraídos desde memoria y el resultado de las sumas anteriores almacenado en el acumulador. Para cualquier problema aritmético que contienen varios pasos, el acumulador siempre contiene el resultado de los pasos intermedios, así como el resultado final cuando la ejecución ha terminado.
martes, 5 de octubre de 2010
Suma en los Enteros Binarios
La suma de dos números binarios se realiza de la misma manera que la suma en los números decimales. Por ejemplo, la siguiente es una suma decimal:
3 7 6 los números en negrillas corresponden a los dígitos menos significativos + 4 6 1
8 3 1
Los dígitos en las posiciones menos significativos son operados primero, produciendo la suma 7. Luego, los dígitos en la segunda posición son sumados para dar el resultado 13, que produce un acarreo de 1 hacia la tercera posición, lo que produce la suma 8.
Los mismos pasos generales son seguidos en la suma binaria. Sin embargo, aquí sólo hay que considerar cuatro casos al sumar dos dígitos binarios:
0 + 0 = 0
1 + 0 = 1
1 + 1 = 0 + acarreo de 1 (uno) a la siguiente posición
1 + 1 + 1 = 1 + acarreo de 1 (uno) a la siguiente posición
1 + 0 = 1
1 + 1 = 0 + acarreo de 1 (uno) a la siguiente posición
1 + 1 + 1 = 1 + acarreo de 1 (uno) a la siguiente posición
El último caso ocurre cuando dos bit de una cierta posición tienen 1 (uno) y además hay un acarreo desde la posición previa. Los siguientes son varios ejemplos de sumas de dos números binarios:
011 (3) 1001 (9) 11,011 (3,375)
+110 (6) +1111 (15) +10,110 (2,750)
1001 (9) 11000 (24) 110,001 (6.125)
No es necesario considerar la suma de más de dos números binarios al mismo tiempo, ya que todos los sistemas de circuitos digitales que actualmente ejecutan la suma sólo pueden manejar dos números a la vez. La suma es una de las operaciones aritméticas más importantes en los sistemas digitales, de hecho, las operaciones de resta, multiplicación y división pueden ser definidas en base a la suma.
Si se quiere entonces sumar dos números enteros binarios en un computador, es necesario para ello que exista la operación suma de enteros binarios. De manera análoga a como se definió la operación XOr, es posible definir ahora una operación de suma.
Un Sumador Binario en Paralelo
Los computadores y calculadoras implementan la operación de suma sobre dos números binarios al mismo tiempo, donde cada numero binario puede tener varios dígitos binarios. En la tabla se muestra la suma de dos números binarios de cinco bits. Uno de los operandos es almacenado en el acumulador; esto es, el acumulador contienen cinco Flip-Flops, almacenando, en cada uno, los dígitos 10101. De la misma forma el otro de los operandos, el que será sumado al primero, es almacenado en el registro B (en este caso, 00111).
El proceso de suma comienza por la suma de los bit menos significativos de ambos operandos. Así, 1+1 = 10, que significa que la suma para esa posición es 0 y el acarreo es 1.
1º Operando, almacenado en el acumulador | 1 | 0 | 1 | 0 | 1 |
2º Operando, almacenado en el Registro B | 0 | 0 | 1 | 1 | 1 |
Suma | 1 | 1 | 1 | 0 | 0 |
Acarreo (para ser agregado a la siguiente posición) | 0 | 0 | 1 | 1 | 1 |
Este acarreo (o bit de carry) será sumado a la siguiente posición, junto a los bit correspondientes de los operandos. Así, en la segunda posición 1+0+1 = 10, que corresponde nuevamente a la suma 0 y el carry 1. Este carry será sumado a la siguiente posición junto a los correspondientes bits de los operandos y así sucesivamente hasta las últimas posiciones.
A cada paso en el proceso de suma se realiza la adición de tres bits; los dos de los operandos y el de carry que viene de la posición previa. El resultado de la suma de estos 3 bits produce 2 bits: un bit de suma y otro de carry que deberá ser sumado a la siguiente posición. Este mismo proceso es usado para cada posición. Ahora, si se quiere diseñar un circuito lógico que permita implementar este proceso, entonces simplemente se deberá usar el mismo circuito para cada una de las posiciones. Esto se ilustra en la Figura No. 10.
En este diagrama las variables Ai representan los bits del operando almacenados en el acumulador (que también puede ser llamado el registro A). Las variables Bi representan los bits del segundo operando almacenados en el registro B. Las variables Ci representan los bits de carry entre las correspondientes posiciones. Las variables Si son los bits de la suma para cada posición.
Los circuitos Full-Adder usados en cada posición tienen tres entradas: un bit A, un bit B y un bit C; y producen dos salidas: un bit de suma (S) y un bit de carry (C). Por ejemplo, el Full-Adder No. 0 tienen como entradas A0, B0 y C0, y produce las salidas S0 y C1. Lo anterior se repite para todos los bits de los operandos. Actualmente los computadores usan palabras de 32 y 64 bits, al contrario del de la figura que sólo es un sumador de 5 bits.
Se llama sumador paralelo (parallel adder) por que todos los bits de los operandos se usan simultáneamente en todos los circuitos. Esto significa que la suma en cada posición ocurre al mismo tiempo. Que es distinto de las sumas que se hacen en papel. Ya que se toma cada posición una a la vez, comenzando desde las posiciones menos significativas.
Suscribirse a:
Entradas (Atom)