fundamentos de lógica digital. sesión 03. las tres funciones ......1 fundamentos de lógica...
TRANSCRIPT
1
Fundamentos de lógica digital. Sesión 03. Las tres funciones lógicas básicas
Existen tres bloques fundamentales con los cuales se pueden construir todas las funciones
lógicas capaces de ser concebidas por la mente humana. Estos son los “ladrillos” sobre los
cuales descansan todas las computadoras debido a que el lenguaje que manejan se trata de
unos y ceros.
Comencemos diciendo que, en un análisis, un voltaje aplicado que puede ser de 1.5 volts, 9
volts, o algún otro valor, lo llamaremos simplemente como “1” (uno). Y a la ausencia de
dicho voltaje la llamaremos simplemente como “0” (cero). De este modo, al aplicarle un “1”
a un relevador, el contacto eléctrico puesto encima del mismo se cierra, y al remover dicho
“1” (que es lo mismo que aplicar un “0”), el contacto eléctrico se abre.
Considérese a continuación el siguiente circuito formado por dos relevadores, en los cuales
los resortes que normalmente jalan las palancas (o laminitas) conectoras de los relevadores
son mostrados de color rojo:
Normalmente, toda fuente de corriente directa como los acumuladores de los automóviles
tiene un polo positivo (+) y un polo negativo (-), pero con fines de simplificación en los
diagramas y esquemáticos se acostumbra designar al polo negativo (-) como tierra
eléctrica (en inglés, ground ó GND). Esto nos permite "olvidarnos" del polo negativo y
hablar simplemente de la aplicación de un “1” (un voltaje) o de un "0" (ningún voltaje) a
una terminal como la terminal A ó como la terminal B.
En este diagrama, si aplicamos un voltaje positivo (que aquí también llamaremos
simplemente “1”) en la terminal A, el relevador se energizará. Obsérvese que en un
contacto conector superior del relevador izquierdo tenemos un voltaje de +6 volts, el cual
al ser activada la terminal A con un voltaje de “1” y cerrarse la conexión superior del
relevador puede pasar a la otra terminal del mismo. Sin embargo, este voltaje no llegará
hasta el extremo izquierdo de la configuración, designado como Q, si la entrada del
relevador del lado derecho no ha sido activada también en su terminal B con un “0”, por
estar conectadas las terminales de contactos de ambos relevadores en serie, una tras la
otra. La única manera en la cual el voltaje de +6 volts puede llegar desde el lado izquierdo
de la configuración hasta el lado derecho en la terminal Q es si ambos relevadores están
energizados con un “1” en las terminales A y B. Supongamos por un momento que hemos
diseñado aquí los relevadores de modo tal que el voltaje requerido para energizar
cualquiera de ellos sea también de +6 volts. Esto nos permite llamar a los +6 volts
simplemente como “1”. Y nos permite hacer una afirmación interesante: si las entradas en
2
las terminales A y B son "1", entonces la salida Q también será “1”. Pero si cualquiera de
las entradas en las terminales A y B o en ambas es “0”, entonces la salida será “0”.
Únicamente cuando ambas entradas son “1” tendremos una salida de “1”. Únicamente
cuando A y B son “1” la salida será también “1”.
Podemos representar el funcionamiento de este tipo de circuito de una manera más
concreta y más fácil de leer:
La traducción inglesa de la palabra española “y” es la palabra and (en algunos libros de
texto se usa el símbolo ampersand &). Esta es la palabra que usaremos para identificar
cualquier tipo de sistema combinado que muestre un comportamiento como el que
acabamos de ver.
En muchos documentos técnicos y en muchos diagramas esquemáticos, es común
simbolizar un circuito AND de la manera siguiente:
Este es el bloque usualmente conocido como la función AND que como ya se dijo
su traducción del inglés al español significa la palabra “y”, y es en sí una función
lógica básica. Este será uno de nuestros “ladrillos” fundamentales. Podemos
representar sus propiedades en una tabla mejor conocida como Tabla de Verdad
que se muestra a continuación:
3
Considérese ahora el siguiente circuito construido con relevadores
electromecánicos:
Si no hay voltaje alguno aplicado en las dos terminales de entrada A y B, las bobinas de
ambos relevadores no se energizarán y los dos interruptores de ambos relevadores se
mantendrán en las posiciones mostradas en el diagrama. En tal caso, el voltaje (+) que
llamaremos “1” no llegará a la Salida, no habiendo por lo tanto voltaje alguno en ella. La
ausencia de voltaje en la Salida la identificaremos con un “cero” ó “0”. La situación
cambia cuando aplicamos un voltaje (o un “1”) en la terminal A, en tal caso la bobina se
energiza y “jala” el contacto hacia abajo, conectando el voltaje (+) a la Salida, con lo cual
la Salida pasará de la condición “0” a la condición “1”. Este “1” permanecerá en la Salida
mientras haya un "1" aplicado en la terminal “1”. Por otro lado, cuando aplicamos un
voltaje (o un “1”) en la terminal B, en tal caso la bobina también se energizará y “jalará” el
contacto hacia abajo, conectando el voltaje (+) a la Salida, con lo cual la Salida pasará de
la condición “0” a la condición “1”. Y si ambas terminales de entrada A y B son energizadas
con un “1”, la Salida seguirá recibiendo el voltaje (+) ó “1” por las dos vías. Básicamente,
tenemos un circuito en el cual la Salida será “1” cuando cualquiera de las entradas A ó B
tenga un “1” aplicado en ella.
La traducción inglesa de la palabra española "o" es la palabra or. Esta es precisamente la
palabra que usaremos para identificar cualquier tipo de sistema combinado que muestre
un comportamiento como el que acabamos de ver.
Es muy común representar este circuito de esta naturaleza de la manera siguiente:
4
Este será otro de nuestros “ladrillos” fundamentales. También podemos
representar sus propiedades en una Tabla de Verdad como la que se muestra a
continuación:
Aquí podemos ver el sentido de la palabra OR. La salida del circuito será 1 si la
entrada A o la entrada B tienen un valor de 1.
Por último, consideremos ahora el siguiente circuito construido con un solo
relevador electromecánico sencillo, en el cual cuando no hay voltaje alguno
aplicado a la terminal de entrada A (lo cual equivale a poner cero volts o "0" en la
terminal de entrada), el voltaje positivo (+) que designamos como "1" lógico pasa
directamente a la Salida:
Supóngase ahora que se le aplica un voltaje (un “1”) a la terminal de entrada A. Al
energizarse la bobina del relevador, al convertirse en un imán por la acción de la
corriente eléctrica “jalando” con ello el interruptor encima de él hacia abajo, el
contacto superior que conectaba la Salida a una fuente de voltaje positivo (un “1”)
desciende de su posición normal, desconectando dicha terminal del voltaje
positivo, lo cual equivale a dejar sin voltaje alguno la Salida, lo cual podemos
5
tomar como un “cero” (“0”) lógico. Prescindiendo de los detalles innecesarios,
tenemos un componente en el cual cuando la entrada es “0” la salida es “1”, y
cuando la entrada es “1” la salida cae a “0”. Esto es lo que llamamos comúnmente
como una inversión lógica. Este componente es por lo tanto un inversor.
Es común representar simbólicamente un componente que funcione de esta
manera en la siguiente forma:
Es importante aclarar que lo que realmente representa la función inversora es la
“burbuja” colocada a la derecha del triángulo. El triángulo en sí, históricamente,
pretendía hacer notar que además de la inversión se estaba llevando a cabo una
amplificación eléctrica de la señal para corregir cualquier deterioro previo que
hubiera tenido, y de hecho el símbolo sin la burbuja es conocido como buffer,
aunque el buffer en sí no lleva a cabo ningún procesamiento de información porque
un “0” puesto a su entrada pasa como un “0” a su salida y un “1” puesto a su
entrada también pasa inalterado como un “1” a su salida.
Es común en muchos circuitos lógicos utilizar únicamente la burbuja ya sea en una
o varias de las entradas y/o en una o varias de las salidas para indicar que en ese
punto se está llevando a cabo una inversión. Es importante aclarar que, por lo
general, la burbuja sólo tiene este significado únicamente cuando está “pegada” a
una de las funciones lógicas básicas o a algún componente derivado de la misma.
El bloque simbólico arriba mostrado es mejor conocido como la función NOT, y es
nuestra tercera función lógica básica. Podemos resumir sus propiedades en la
siguiente Tabla de Verdad:
6
Los bloques lógicos AND, OR y NOT son los únicos bloques que necesitamos para
construír cualquier computadora. Esto se ha logrado pasando por los bulbos electrónicos
al vacío con los cuales se construyó la computadora ENIAC, hasta llegar a los transistores y
los circuitos integrados que permitieron la construcción de microcomputadoras y
minicomputadoras, hasta llegar al microprocesador y al SOC. Sin embargo, detrás de todas
las variantes tecnológicas, una cosa no ha cambiado, y esto es la teoría fundamental que las
hace operar, basada siempre a fin de cuentas en tan sólo tres funciones lógicas básicas, el
bloque OR, el bloque AND y el bloque NOT.
Las funciones lógicas OR y AND pueden tener no solo dos sino tres o más entradas cada
una. Analicemos, por ejemplo, un AND de tres entradas:
Puesto que en el AND de dos entradas la salida es 1 únicamente cuando todas sus
entradas son 1, extendiendo la definición tenemos que en el AND de tres entradas
la salida también será 1 únicamente cuando todas las entradas sean 1. Teniendo
esto en mente, podemos construir inmediatamente una Tabla de Verdad para el
AND de tres entradas:
7
Del mismo modo, podemos hacer una extensión similar del concepto del bloque
OR para un OR que tenga más de dos entradas, en donde extendiendo la definición
tenemos que la salida de un OR con cualquier número de entradas será 1 cuando
cualquiera de las entradas o una combinación de cualquiera de las entradas tenga
un valor de 1.
Estudiemos ahora lo que ocurre cuando conectamos un OR a un NOT de la
manera siguiente:
Aplicando todas las combinaciones posibles de unos y ceros en las entradas,
obtenemos la salida para cada combinación posible tomando en cuenta las
propiedades del OR y la acción inversora del NOT, con lo cual podemos construír la
siguiente Tabla de Verdad:
Tenemos un circuito que produce un 1 a la salida únicamente cuando ambas
entradas son 0. Esta configuración es mejor conocida como la función NOR (la
palabra NOR es una contracción de las palabras NOT-OR, que son los elementos
usados para construir esta configuración) y se representa de la siguiente manera:
8
A continuación, estudiemos lo que ocurre cuando conectamos un AND a un NOT
de la manera siguiente:
La Tabla de Verdad para este circuito deberá ser como se muestra a continuación:
Tenemos un circuito que produce un 0 a la salida únicamente cuando ambas
entradas son 1. Esta configuración es mejor conocida como la función NAND (la
palabra NAND es una contracción de las palabras NOT-AND, que son los
elementos usados para construir esta configuración) y se representa de la siguiente
manera:
9
Las funciones NOR y NAND son ejemplos claros que muestran cómo se pueden
utilizar las tres funciones lógicas básicas para construir funciones más complejas.
Estudiemos ahora la siguiente situación:
La pregunta que nos hacemos es la siguiente: ¿Cuál será la salida del OR al
introducir las palabras 01100 y 11001 en sus entradas?
Para responder a esta pregunta, notamos que los primeros bits en entrar al OR son
el último bit de la palabra 01100 (esto es, un 0) y el último bit de la palabra 11001
(esto es, un 1). La salida producida por el OR será por lo tanto un 1. A
continuación, los siguientes bits que entran son el penúltimo bit de la palabra
01100 (esto es, un 0) y el penúltimo bit de la palabra 11001 (esto es, un 0). La
siguiente salida producida por el OR será por lo tanto 0, con lo cual a su salida ya
se habrá formado la palabra 01. De esta manera, vemos que a su salida se formará
la siguiente palabra:
11101
Puesto que la palabra en la salida del OR es diferente de las palabras a sus
entradas, decimos que se ha llevado a cabo un procesamiento de información. Este
es el propósito fundamental de todos los circuitos lógicos.
Con las tres funciones lógicas básicas podemos construir circuitos más elaborados,
de creciente complejidad, cuyo análisis se puede llevar a cabo suponiendo todas las
combinaciones posibles de “unos” y “ceros” a la entrada, y siguiendo el flujo de
cada combinación de valores para ver lo que tenemos a la salida podemos
comprobar la función desempeñada por el circuito. Por convención, los diagramas
de circuitos lógicos se dibujan de modo tal que el flujo de señales es rastreado de
izquierda a derecha. A continuación tenemos el diagrama de un circuito lógico
10
simple en cuyas dos terminales de entrada a y b se han puesto dos “unos” (“1”):
En el AND que tenemos en el extremo izquierdo del diagrama, tenemos dos unos
(“1”) a la entrada, los cuales producen un “1” a la salida del mismo. Este “1” a la
salida del AND es invertido por el NOT, convirtiéndose en un “0”. De este modo,
tenemos a las entradas del OR en el extremo derecho del diagrama un “0” y un “1”,
los cuales producen un “1” a la salida del mismo. Nos falta por comprobar otras
combinaciones de valores restantes, las cuales son a=0 y b=0, a=1 y b=0, a=0 y
b=1. Este método de rastreo de valores de señales se puede aplicar a cualquier
circuito lógico, por complejo que sea.
Al ir construyendo circuitos lógicos cada vez más complejos, los alambres que van
conectados entre sí se mostrarán conectados explícitamente con un “punto”
conector, mientras que los alambres que simplemente se cruzan uno por encima
del otro sin conectarse no tendrán el punto conector:
Sin embargo, en las junturas tipo “T” en los diagramas esquemáticos:
11
se sobreentenderá que siempre hay una conexión entre los dos alambres, ya sea
con o sin la presencia del “punto” conector (en esto hay que tener cierta precaución,
ya que en los simuladores de circuitos lógicos en una gran variedad de programas
computacionales es indispensable agregar siempre en los diagramas de simulación
el “punto” conector, ya que muchos de estos programas no están preparados para
reconocer esta convención)
En el diseño de circuitos lógicos, una de las cosas que no está permitida es conectar
directamente a un mismo punto la salida de dos funciones lógicas en una forma
como la que se muestra a continuación:
Puesto que se ha definido el “1” como el polo positivo de la fuente de poder (por
ejemplo, +5 volts) y el “0” como el polo negativo de la misma fuente de poder
(conocida vulgarmente como "tierra eléctrica"), la situación mostrada equivale ni
más ni menos que a un corto circuito. Y aunque la gran mayoría de los circuitos
integrados discretos que se venden en la actualidad tienen integrada en su
microelectrónica una estructura de resistencias y transistores que evitan que un
corto circuito de esta naturaleza los pueda dañar, limitando el flujo de la corriente a
través de los mismos, la salida de un circuito lógico de esta naturaleza es en el
mejor de los casos indefinida.
A continuación, se muestra una tabla con la simbología de las distintas compuertas.
12
13
Ejercicios resueltos.
PROBLEMA: Determinar la salida producida por los siguientes circuitos para
las entradas binarias mostradas.
(a) Empezaremos con el primer AND de dos entradas alimentado con las palabras
binarias 10011001 y 10100101. El análisis se debe llevar a cabo bit-por-bit.
Supondremos que las señales binarias van entrando de izquierda a derecha, aunque
para los fines del presente problema el orden de entrada de las palabras es
irrelevante. En el extremo derecho de ambas palabras binarias tenemos un bit "1"
en la terminal superior entrando al mismo tiempo que un bit "1" entrando en la
terminal inferior. Por ser un bloque AND, la salida resultante para la primera
combinación de bits será un "1". A continuación, entrarán al bloque AND los bits
"0" y "0", los cuales producirán una salida de "0". Con esto, llevamos formada ya
una salida cumulativa de "10". Tras esto, entrarán en las dos terminales,
respectivamente, los bits "0" y "1", los cuales producirán a la salida del AND un
"0", con lo cual la palabra binaria de salida será ya "100". Continuando de esta
manera, bit-por-bit, tendremos a la salida del bloque AND el resultado mostrado
en la siguiente tabla:
14
La palabra a la salida del AND de dos entradas con las dos palabras binarias dadas
será entonces 10000001.
(b) Procediendo de la misma manera para el bloque OR de dos entradas, bit-por-
bit, podemos construír la siguiente tabla:
La palabra binaria a la salida del OR será 10111101.
(c) Para el bloque AND de tres entradas, extendemos la definición del AND de dos
entradas, afirmando que la salida del AND de tres entradas será "1" únicamente
cuando todas sus tres entradas tengan un valor de "1". Con esto, procediendo con el
análisis bit-por-bit, podemos producir la siguiente tabla:
La palabra binaria a la salida del AND de tres entradas será 00010000.
(d) Para el bloque OR de tres entradas, extendemos la definición del OR de dos
entradas, afirmando que la salida del OR de tres entradas será "1" cuando
15
cualquiera de sus tres entradas tengan un valor de "1". Con esto, procediendo con el
análisis bit-por-bit, podemos producir la siguiente tabla:
La palabra binaria a la salida del OR de tres entradas será 11111011.
(e) Para el bloque NAND, podemos llevar a cabo el análisis, bit-por-bit, tomando en cuenta
primero la acción inicial del AND sobre dos bits a su entrada, y llevando a cabo
inmediatamente tras esto el proceso de negación lógica como lo especifica la burbuja
inversora puesta en la salida del AND con la cual es transformado en un NAND. Los
primeros dos bits en entrar son "0" y "1", los cuales por la acción del AND son convertidos
en un "0", el cual por la acción de la burbuja inversora es convertido en un "1" como
resultado final. Tras esto, los siguientes dos bits en entrar son "1" y "0", los cuales
nuevamente por la acción del AND son convertidos en un "0", el cual por la acción de la
burbuja inversora es convertido en un "0". Procediendo de esta manera, podemos construir
la siguiente tabla, en la cual el resultado "intermedio", la palabra binaria formada por la
acción del AND antes de llevarse a cabo la acción inversora, ha sido puesto en color rojo:
La palabra binaria a la salida del NAND será 111110100.
16
PROBLEMA: ¿Son útiles los siguientes circuitos para el procesamiento de
información?
(A) Como este circuito tiene una sola terminal de entrada, sólo se le puede poner
un "1" o un "0". Analizando el primer circuito poniendo la palabra binaria "10" a su
entrada, la cual contiene las dos combinaciones posibles, tenemos lo siguiente:
La palabra binaria "10" a la entrada del NOT es convertida en la palabra binaria
"01" a la salida del NOT. Al entrar las palabras binarias "10" y "01" al OR, la salida
de este será la palabra binaria "11". Puesto que no importando qué información se
le introduzca a su entrada, ya sea un "1" o un "0", la salida siempre será "1", se
concluye que este circuito no puede procesar información.
(B) Al igual que en el caso anterior, como este circuito tiene una sola terminal de
entrada, sólo se le puede poner en dicha entrada un "1" o un "0". Analizando el
segundo circuito con la palabra binaria "10" a su entrada, la cual contiene todas las
combinaciones posibles, tenemos lo siguiente:
17
Nuevamente, la palabra binaria "10" a la entrada del NOT es convertida en la
palabra binaria "01" a la salida del NOT. Y al entrar las palabras binarias "10" y
"01" al AND, la salida de este será la palabra binaria "00". Puesto que no
importando qué información se le introduzca a su entrada, ya sea un "1" o un "0",
la salida siempre será "0", se concluye que este circuito tampoco puede procesar
información.
Tarea: Analice el siguiente circuito y construya su tabla de verdad
correspondiente. Obsérve cómo en el diagrama está trazado el flujo de señales para
la palabra binaria de entrada A3A2A1 = 101 y la única salida activa es uno.