Está en la página 1de 27

Fundamentos de Lgica Digital

El lgebra Boleana

Existe una forma sencilla y eficaz de analizar el comportamiento de los circuitos lgicos
conocida como el lgebra Boleana, en honor de su creador el matemtico ingls George Boole
(1815-1864). En rigor de verdad, cuando George Boole cre el lgebra Boleana, no lo hizo
precisamente con circuitos lgicos digitales en mente, ya que en su poca no slo no se haban
inventado los circuitos integrados ni los transistores, ni siquiera existan los costosos bulbos
electrnicos que posibilitaron el desarrollo de la radio. Fue un ingeniero de nuestros tiempos,
Claude Shannon (1916-2001), a quien se le ocurri la idea de que los principios del lgebra
Boleana que haba aprendido en sus estudios universitarios eran muy similares a los de los
circuitos elctricos que estaba estudiando. De hecho la hemos estado utilizando desde que se
introdujeron las tres funciones lgicas bsicas. Las funciones OR, AND y NOT son expresiones
tomadas directamente de la lgica simblica. Lo que haremos aqu es formalizar estos conceptos
usando smbolos para representar las palabras binarias.

El lgebra Boleana consiste en utilizar literales en lugar de combinaciones de "unos" y "ceros"


para el anlisis de los circuitos lgicos. Empezaremos por considerar la funcin NOT junto con
su Tabla de Verdad:

Aqu hemos prescindido temporalmente del tringulo porque en los diagramas de circuitos
lgicos es la burbuja la que representa la inversin de la entrada. Obsrvese que la entrada es A
y la salida es C, y la salida es llamada la negacin de A (la inversin de su valor), con el efecto
representado con una lnea horizontal puesta sobre el smbolo A.

Puesto que la salida del NOT es siempre el inverso lgico de la entrada A, podemos representar
la salida del NOT como:

Salida = A
con lo cual con la barra horizontal puesta encima queremos decir que la salida es el inversoo
el complemento de la entrada. Esto se lee puede leer de diversas maneras tales como "el inverso
de A", "el complemento de A", o "A negado", todas ellas equivalentes. En este libro, siempre y
cuando ello ha sido posible, se ha hecho adems otra cosa con fines didcticos: se ha escrito el
smbolo de una variable invertida lgicamente con color azul. Adems, por las dificultades
tipogrficas para poder representar smbolos con una barra horizontal puesta encima de ellos,
en muchos libros y muchos monitores de computadora con ciertas combinaciones de sistemas
operativos y navegadores de Internet se hace preferible o inclusive mandatorio recurrir a otro
tipo de representacin por medio del apstrofe ('). Bajo esta representacin, algo que tiene
puesto un apstrofe inmediatamente a su derecha se debe tomar como una
variable invertida en el sentido Boleano. Si el apstrofe est puesto inmediatamente a la
derecha de una expresin entre parntesis, entonces toda la expresin entre parntesis se debe
considerar negada lgicamente. Todo esto quiere decir que en este libro las siguientes
expresiones deben tomarse como completamente equivalentes:

A = A'
A + B = (A + B)'

A B = (A B)'

= (a')'
Siempre y cuando sea posible o conveniente, cuando se escriban variables negadas se utilizarn
ambos sistemas de notacin para que el lector se vaya acostumbrando al uso de los dos sistemas
tipogrficos.

Consideremos ahora la funcin OR junto con su Tabla de Verdad:

Obsrvese en la Tabla de Verdad cmo la salida del OR asemeja la suma de los valores a sus
entradas. Por ejemplo, en el primer rengln tenemos que cero (0) ms cero (0) es igual a cero
(0). En el segundo rengln tenemos que cero (0) ms uno (1) es igual a uno (1), y en el tercer
rengln tambin tenemos que uno (1) ms cero (0) es igual a uno (1). Guiados por esta
observacin, podemos postular que la salida del OR ser igual a algo que llamamos la suma
lgica de los valores a sus entradas, o sea:

Salida = A + B

Tal vez el lector ya se haya dado cuenta de que, segn lo que podemos ver en el cuarto rengln
de la Tabla de Verdad, uno (1) ms uno (1) es igual a uno (1), o sea:

1+1=1
Esta relacin puede dejar perplejos a muchos a primera vista. Es aqu cuando se le advierte al
lector que una cosa es la suma lgica de dos variables llevada a cabo con un bloque OR, y otra
cosa muy diferente es la suma binaria de dos variables. La suma lgica o suma
Boleana de 1 y 1 es igual a 1, mientras que la suma binaria de 1 y 1 ser igual (en el sistema de
numeracin binaria) a 10.

Sobre esto ltimo debemos recordar que estamos manejando un lgebra diferente al lgebra
clsica. Debemos, por lo tanto, adaptar nuestra mente a las estructuras matemticas requeridas
para el estudio de los circuitos lgicos, porque es el lgebra Boleana y no nuestra lgebra
clsica el "lgebra" que entienden las mquinas en su mundo de "encendidos" o "unos" y
"apagados" o "ceros". El descubrimiento de este hecho por Claude Shannon fue lo que posibilit
el manejo matemtico adecuado de los circuitos lgicos, los cuales se llaman as porque son
circuitos cuyo comportamiento es descrito con las leyes de la lgica simblica (utilizadas
originalmente para el estudio de los pensamientos humanos en cuanto tales sin ninguna
referencia a circuitos elctricos) asentadas por George Boole.

Pasamos a estudiar ahora la funcin AND con su Tabla de Verdad:

Obsrvese en la Tabla de Verdad cmo la salida C del bloque AND asemeja el producto de los
valores a sus entradas A y B. Por ejemplo, en el primer rengln tenemos que cero (0) por cero
(0) es igual a cero (0). En el segundo rengln tenemos que cero (0) por uno (1) sigue siendo
igual a cero (0). En el tercer rengln tambin seguimos teniendo que uno (1) por cero (0) es
igual a cero (0). Es en el cuarto rengln en donde tenemos que uno (1) por uno (1) es igual a uno
(1). Guiados por esta observacin, podemos asegurar que la salida del AND es igual al producto
de los valores de las entradas, o sea:

Salida = A B
En el lgebra Boleana, hay adems una serie de teoremas relativamente fciles de demostrar
(esto se lleva a cabo en la seccin de problemas resueltos), que son los siguientes:

(1) A + 1 = 1
(2) A 1 = A
(3) A + 0 = 0
(4) A 0 = 0
(5) A + A = A
(6) A A = A
(7) =

(8) A + A = 1

(9) A A = 0
Usando los resultados anteriores, se puede analizar cualesquier circuito lgico y, muy a menudo,
simplificarlo. Por ejemplo, supngase que un circuito lgico tiene la siguiente salida:

AB + B + C + CD
El primer paso es factorizar los trminos comunes como se muestra a continuacin:

(A + 1) B + C (1 + D)
Usando el primer teorema de los dados arriba, esta expresin se reduce de inmediato a lo
siguiente:

(1) B + C (1)
B+C
Se ve claramente que es ms fcil y econmico construr el circuito usando esta ltima expresin
(slo se requiere un OR de dos entradas) que usando la expresin original con la cual se
requieren dos bloques AND y un OR de cuatro entradas.

Anteriormente, al carecer de los recursos del lgebra Boleana, la nica manera de descubrir el
comportamiento de un circuito lgico construdo a partir de las tres funciones lgicas bsicas
era aplicar en las entradas todas las combinaciones posibles de "unos" y "ceros" y rastrear los
cambios para cada una de estas combinaciones a lo largo del circuito obteniendo las salidas
resultantes, y con ello construr una Tabla de Verdad. Y no haba una forma obvia de poder
simplificar el circuito reduciendo el nmero de componentes requeridos para su construccin.
Pero ahora, con el recurso del lgebra Boleana en nuestras manos, en vez de rastrear a lo largo
de un circuito lgico todas las combinaciones posibles de "unos" y "ceros" hasta llegar a la salida
del circuito, podemos rastrear el efecto de los componentes sobre las variables simblicas a la
entrada, y sin necesidad de recurrir a los "unos" y "ceros" podemos incluso intentar llevar a cabo
una simplificacin del circuito que antes no estbamos posibilitados para hacer. A continuacin
tenemos un ejemplo de cmo podemos "rastrear" las entradas hasta llegar a la salida de un
circuito lgico para obtener una expresin simblica para su salida en funcin de las variables
de entrada:

Podemos ver cmo en el AND que est en el extremo izquierdo del diagrama, las variables de
entrada B y C son puestas en la salida del mismo como BC, y esto sirve como una de las
entradas al NOR en la parte superior del diagrama, el cual suma (en el sentido Boleano) BC a la
otra entrada A, llevando a cabo inmediatamente tras esto la inversin lgica para obtener la
expresin A+BC a la salida de dicho NOR. Por otro lado, el NAND que est situado debajo de
este NOR recibe como entrada a la seal que le llega de la terminal A junto con la seal que le
llega de la terminal B procesada previamente por el inversor NOT, de modo tal que las dos
entradas a este NAND son A y B. El NAND procesa estas dos entradas llevando a cabo primero
el proceso de multiplicacin (en el sentido Boleano) de estas entradas produciendo el
trmino AB, el cual es invertido inmediatamente por la burbuja inversora del NAND
convirtindose en el trmino mostrado en el diagrama. Continuando el rastreo de las variables
simblicas, llegamos hasta la expresin final de la salida Q, la cual ciertamente parece ser una
expresin susceptible de ser simplificada mediante lgebra Boleana.

Un concepto importante en nuestro estudio es el concepto del minterm, el cual nos permite
obtener la expresin de salida para un circuito a partir de su Tabla de Verdad.

Considrese un circuito cuya Tabla de Verdad sea la siguiente:

Concentremos nuestra atencin en aquellas salidas que tengan el valor de 1. En este caso, son

las salidas f2 y f3.

Por definicin, un minterm correspondiente a la salida de un circuito es igual al producto de las


literales A y B que representan las variables de entrada de modo tal que se produzca una salida
de 1. En el segundo rengln de la Tabla de Verdad, puesto que A=0 hay que invertir A para que
su producto con B=1 produzca una salida de 1. De este modo, vemos que el primer minterm es:

f2 = A B___[ = A' B ]

Usando el mismo razonamiento, el segundo minterm ser:

f3 = A B_____[AB']
Recurrimos ahora a un teorema fundamental (la demostracin no es difcil pero no se llevar a
cabo en este libro para beneficio de quienes las demostraciones matemticas no es su fuerte)
que nos dice que la salida de un circuito lgico es igual a la suma de los minterms de
su Tabla de Verdad.

Entonces, la salida del circuito en este caso ser:

Salida = f2 + f3
Salida = A B + A B
Otro concepto importante es el concepto del maxterm.

Considrese un circuito lgico cuya Tabla de Verdad es la siguiente:

Concentramos ahora nuestra atencin en aquellas salidas que son cero. En este caso, son las
salidas f2 y f4 .

Por definicin, un maxterm correspondiente a la salida de un circuito es igual a la suma de las


literales A y B que representan las variables de entrada de modo tal que se produzca una salida
de 0 (comprese con la definicin del minterm). En el segundo rengln de la Tabla de Verdad,
puesto que B=1, hay que invertir la variable B para que su suma con A=0 produzca una salida
de 0. De este modo, vemos que el primer maxterm es:

f2 = A + B
Usando el mismo razonamiento, el segundo maxterm ser:

f4 = A + B
Recurrimos ahora a otro teorema fundamental de la teora de los circuitos lgicos que nos dice
que la salida de un circuito lgico es igual al producto de los maxterms de su Tabla
de Verdad.

La salida del circuito lgico en este caso ser:

Salida = f2 f4
Salida = ( A + B) (A + B)
Podemos remover los parntesis y simplificar esta expresin llevando a cabo las
multiplicaciones requeridas en forma parecida a la forma en la cual estamos acostumbrados en
el lgebra tradicional:

Salida = AA + AB + A B + B B

Segn uno de los teoremas enunciados anteriormente:

AA=0

y aplicando otro de los teoremas se tiene que:

BB=B

Tenemos entonces que la salida se reduce a:

Salida = AB + A B + B
Podemos factorizar los primeros dos trminos como sigue:

Salida = (A + A)B + B
Usando el teorema que nos dice que A

+ A = 1, la expresin se simplifica a:
Salida = B + B

Pero otro de los teoremas nos dice que cualquier variable lgica sumada a s misma nos produce
la misma variable (este teorema aplica por igual a todas las variables, as se trate de variables
invertidas), o sea el teorema:

A+A=A
Entonces la expresin final se reduce simplemente a:

Salida = B
Entonces el circuito de dos entradas A y B representado por la ltima Tabla de Verdad lo nico
que hace es invertir la entrada B e ignorar la entrada A. Es, en esencia, simplemente un inversor
conectado a la seal lgica B. Una nueva inspeccin a la Tabla de Verdad nos confirma esto que
al principio no nos era tan obvio.

Podemos, por lo tanto, obtener la expresin de salida para cualesquier circuito lgico a partir de
su Tabla de Verdad ya sea por medio de minterms o por medio de maxterms. La decisin de
utilizar minterms o maxterms es meramente una cuestin de conveniencia. Por ejemplo, si la
Tabla de Verdad para un circuito tiene menos minterms que maxterms, posiblemente usando

minterms se llegue ms rpidamente a una expresin final.

Por ltimo, vamos a estudiar el concepto del diagrama de tiempos, el cual siempre se leede
izquierda a derecha.

Supngase que con el transcurso del tiempo, un circuito lgico produce la siguiente salida en
tiempos igualmente espaciados tn:

En el transcurso del tiempo de t1 a t2, la salida es 1. En el transcurso del tiempo t2 a t3, la salida
es 0. Podemos ver cmo en el transcurso del tiempo t1 a t3 se habr formado la palabra:

10
En el transcurso del tiempo t3 a t4 la salida es 1. Y en el transcurso del tiempo t4 a t5 la salida
tambin es 1. Vemos que en el transcurso del tiempo t1 a t5 se habr formado la palabra:

1011
As, desde el inicio del tiempo t1 hasta el final del tiempo t10 se habr formado la palabra:
101101001

En general, dado un diagrama de tiempos podemos obtener a partir del mismo la palabra
binaria que ste genera siempre y cuando estemos seguros del espaciamiento de tiempos entre
un "bit" y el que le sigue. La divisin precisa del tiempo es crucial para poder fijar y distinguir en
forma correcta los "unos" y los "ceros". En el caso que acabamos de ver, si la divisin del tiempo
cronometrada en cierto sistema digital fuera el doble de lo que acabamos de ver, entonces en
lugar de la palabra 1011 generada desde el comienzo de t1hasta el final de t5 podramos muy bien
haber tenido la palabra 11001111. Y si fuera el triple, entonces la palabra debera haber
sido 111000111111. Este detalle se vuelve mucho ms importante cuando la palabra binaria que
est siendo enviada o procesada es una palabra que consta de puros "unos" (como 11111111) o

de puros "ceros" (como 00000000) porque en tal caso la misma palabra no nos proporciona
absolutamente ninguna pista sobre cuntos "bits" la forman.

As como podemos obtener de un diagrama de tiempos la palabra binaria mostrada por dicho
diagrama, de la misma manera dada una palabra binaria podemos obtener a partir de la misma
el diagrama de tiempos que la produce. Por ejemplo, el diagrama de tiempos de la palabra:

11011101
ser como se muestra a continuacin:

Con mucha frecuencia en el estudio y anlisis de sistemas digitales, los diagramas de tiempo se
presentan como diagramas de tiempos mltiples, sincronizados. Esto quiere decir que en
lugar de un solo diagrama podemos tener dos, tres, o ms diagramas, alineados uno encima del
otro de tal modo que sus tiempos se correspondan mutuamente. A continuacin tenemos un
diagrama de tiempos mltiple de un circuito digital que posee cuatro salidas en lugar de una
sola, designadas como Q0, Q1, Q2 y Q3:

Aunque a primera vista no lo parezca, el circuito que produce este diagrama de tiempos mltiple
est llevando a cabo una labor muy importante. Podemos entender mejor lo que est sucediendo
si acomodamos las salidas de modo tal que se forme la palabra binaria:
Q3Q2Q1Q0

Veamos ahora lo que va sucediendo conforme el tiempo va transcurriendo de izquierda a


derecha, veamos las palabras binarias que se van formando empezando por la primera:
Q3Q2Q1Q0 = 0000

Q3Q2Q1Q0 = 0001

Q3Q2Q1Q0 = 0010

Q3Q2Q1Q0 = 0011

Q3Q2Q1Q0 = 0100

Posiblemente a estas alturas ya sea obvio lo que est realizando el circuito lgico que produce
este diagrama de tiempos. Es un contador binario de conteo ascendente. Est
contando hacia arriba en el lenguaje propio de las mquinas electrnicas, en el lenguaje binario
de "unos" y "ceros".

El que sigue es un diagrama de tiempos mltiple producido por un contador binario de


conteo descendente, o sea un contador binario que est contando hacia abajo, como si fuese
una cuenta regresiva:

El lector observador se habr dado cuenta ya de que el circuito lgico que produce este diagrama
de tiempos tiene salidas complementadas: Q0, Q1, Q2, y Q3. De hecho, si comparamos este
diagrama de tiempos con el anterior, no tardaremos en darnos cuenta de que podemos obtener
un contador binario de conteo descendente (hacia abajo) de un contador binario de conteo
ascendente (hacia arriba) con el solo hecho de conectar unos inversores NOT a las
salidas Q0, Q1, Q2 y Q3 del contador binario de conteo ascendente.

A continuacin, se muestran en accin animada varios diagramas de tiempos para varias de las
funciones lgicas bsicas que hemos estudiado hasta ahora (ampliar imagen para poder ver
los efectos especiales de animacin):

Veamos primero los diagramas de tiempos que corresponden al bloque AND que aparecen en el
primer rengln en la columna de la izquierda. Al comenzar la animacin, las dos entradas al
bloque AND tienen un "0" lgico, con lo cual la salida del AND tambin tiene un valor de "0". Al
transcurrir el tiempo, la entrada superior cambia de "0" a "1". Pero como se trata de un bloque
AND que requiere que las dos entradas sean "1" para producir una salida de "1", el diagrama de
tiempos que corresponde a la salida permanece en "0". Poco despus, la entrada inferior
tambin es puesta en "1", con lo cual ambas entradas ya son "1". Esto provoca que en el
diagrama de tiempos la salida del AND cambie de inmediato a "1", y este cambio es confirmado
al encenderse el diodo emisor de luz LED al ocurrir el cambio. Tras esto, al caer el valor en la
entrada superior de "1" a "0", la salida del AND tambin se desploma nuevamente a "0", lo cual
es confirmado por el diagrama de tiempos a la salida del AND y por el indicador luminoso.

En la misma columna, en el tercer rengln, tenemos un bloque OR, el cual dar una salida de "1"
cuando cualquiera de las dos entradas sea "1". Siguiendo la accin en el diagrama de tiempos
como lo hicimos en el caso del bloque AND, podemos verificar lo que nos estn diciendo los

diagramas de tiempos para el OR en su conjunto. En el segundo rengln de la misma columna


tenemos un bloque NAND y en el cuarto rengln tenemos un bloque NOR con sus respectivos
diagramas de tiempo.

Existe equipo de laboratorio, un poco caro por cierto, utilizado precisamente para obtener los
diagramas de tiempos de circuitos como los que hemos estado estudiando, conocidos como
analizadores lgicos, de los cuales tenemos uno a continuacin:

En el siguiente diagrama de tiempos, tenemos ilustrado el comportamiento de un bloque NAND


con tres terminales de entrada A, B y C, y una salida designada como Y:

La forma de leer este diagrama de tiempos es la siguiente, procediendo siempre de izquierda a


derecha. Al principio, las tres entradas A, B y C tienen un valor lgico de 0, con lo cual la

salida Y es 1. Al irnos moviendo de izquierda a derecha, vemos que la entrada A es llevada


de 0 a 1, aunque esto no produce ningn efecto en la salida Y por tratarse de un NAND. Tras
esto, y con la entrada A mantenida con un valor de 1, la entrada B es tambin llevada hasta
un 1 lgico, pero de nueva cuenta, no sucede nada a la salida por tratarse de un NAND. Tras
esto, la entrada C es tambin llevada hasta un 1 lgico, con lo cual las tres entradas del NAND
tienen ya un valor de 1. Esto produce un transicin en el valor de la salida Y de 1 a 0, lo cual est
resaltado con la lnea flechada. Por ltimo, la entrada A es llevada nuevamente al valor de 0 que
tena originalmente, lo cual produce un cambio casi inmediato en la salidaY del NAND que lo
lleva de 0 a 1. Esto concluye la lectura del diagrama de tiempos.

Obsrvese que en el ltimo prrafo usamos la palabra casi.

Los diagramas de tiempos que se acaban de describir estn modelados en base al diagrama de
tiempos ideal, en el cual supuestamente una seal asciende instantneamente de 0 a 1
desciende instantneamente de 1 a 0, lo que requiere que un voltaje (digamos de +5 volts)
suba instantneamente a un valor desde cero volts hasta dicho valor de +5 volts sin retardo
alguno de tiempo, o viceversa. En circuitos lgicos construdos con componentes reales tales
como semiconductores, resistencias y capacitores, esto simple y sencillamente no es posible,
porque por principio de cuentas ninguna seal se puede propagar a una velocidad mayor que la
velocidad de la luz, y mucho antes de llegar a ese lmite entran en accin otros fenmenos que
imponen restricciones en cuanto a la rapidez con la cual se puede llevar a cabo una transicin
de 0 a 1 de 1 a 0. Los siguientes dos diagramas de tiempo muestran lo que sucede con una
seal real, adems de mostrarnos una diferencia muy comn en la representacin de los dos
principales tipos de seales: (a) una seal que representa un pulso, y (b) una seal que
representa un dato binario:

En el primer diagrama (a), tenemos el diagrama de un pulso real, el cual no sube


instantneamente de un valor de "0" lgico (que en la escala vertical a la izquierda vendra
representando un voltaje de cero volts) hasta un valor de "1" lgico (que en la escala vertical a la
izquierda vendra representando un voltaje de algo as como +3 volts o +5 volts dependiendo del
tipo de componentes usados en el circuito). La seal tarda en subir desde "0" hasta "1" un
tiempo Tr conocido usualmente en la literatura tcnica como el tiempo de ascenso (rise
time). Y cuando la seal desciende nuevamente de "1" a "0", la seal tarda un tiempo Tf en caer
conocido en la literatura tcnica como el tiempo de cada (fall time). Una seal como la que se
muestra en este diagrama, si es repetitiva, repitindose en forma idntica una y otra vez, podra
representar algo as como los pulsos de una seal de relojutilizada para poner en marcha unos
circuitos lgicos conocidos como circuitos secuenciales que sern estudiados en captulos
posteriores de este libro. En tal caso, el intervalo de tiempo entre un pulso y el que le sigue es
conocido como el perodo de tiempoT de la seal de reloj, con una duracin desde t1 hasta t3.
La recproca f del perodo T, o seaf=1/T, es la frecuencia de la seal. Cualquiera que haya
comprado alguna vez una computadora personal de escritorio desembolsando dinero de su
propio bolsillo tal vez sin darse cuenta ya est familiarizado con este concepto, porque esta es
precisamente la rapidez con la cual puede trabajar la computadora, y como es bien sabido las
computadoras ms rpidas (y las ms apetecidas) son precisamente las de mayor precio. De este
modo, cuando hablamos de una computadora de 500 MHz, estamos hablando realmente de una
computadora con una velocidad, o mejor dicho, con una frecuencia de los pulsos de su reloj

maestro interno, de 500 millones de ciclos por segundo. Y si la velocidad es de 2 GHz, el reloj
maestro interno de la computadora estar ciclando a una frecuencia de 2 millones de ciclos por
segundo.

En el segundo diagrama (b), tenemos un diagrama de tiempos para la representacin de una


seal binaria que puede causar cierta confusin en los nefitos que no estn acostumbrados a
leerla, porque tenemos dos datos sobrepuestos uno encima del otro. Este diagrama puede
interpretarse como una sola seal con dos alternativas posibles en donde la
lnea rojarepresenta la alternativa de que la seal vaya de "0" a "1" en un tiempo de ascenso tr,
y en donde la lnea azul representa alternativa de que la seal est yendo de "1" a "0" y en cuyo
caso estamos hablando de un tiempo de cada tf. De este modo, la lnea roja representa una
seal que asciende brevemente de "0" a "1" y tras esto vuelve a caer a "0", mientras que la lnea
azul representa una seal que cae brevemente de "1" a "0" y tras esto vuelve a subir nuevamente
de "0" a "1". Estos son los dos comportamientos posibles y aceptables que puede tener la seal
binaria mixta mostrada por el diagrama. Sin embargo, esta seal binaria mixta tambin tiene
otro tipo de interpretacin en la cual no la interpretamos como una sola seal sino como varias
seales que estn siendo enviadas simultneamente. Bajo este modo de interpretacin, un
diagrama de tiempo con dos lneas "cruzadas" en el cual al inicio de un ciclo de operacin una de
ellas va de "0" a "1" mientras que la otra va de "1" a "0", volviendo ambas seales a sus valores
originales al finalizar el ciclo, en realidad est representando no una sola lnea sino varias lneas
paralelas que llevan informacin en forma simultnea(como el domicilio A6A5A4A3A2A1A0),
algunas de las cuales pueden tener un valor lgico de "0" y otras de las cuales pueden tener un
valor lgico de "1" al mismo tiempo.

Como otro ejemplo del diagrama de tiempos mixtos como el que acabamos de ver, es posible
que el lector se encuentre en la literatura tcnica algo como lo siguiente:

Un diagrama de tiempos de este tipo es una cosa que encontraramos al estar estudiando algo
as como los microprocesadores (hay ms detalles sobre esto en el Suplemento # 2 de este libro,
titulado El Microprocesador). Este diagrama de tiempos nos dice que se estn generando una
serie de pulsos de reloj (desde una terminal llamada clock), y que tras un primer pulso de reloj

podemos colocar informacin binaria en un conjunto de terminales designadas domicilio


(address). De nueva cuenta, la lnea que se divide en dos puede parecer desconcertante. Sin
embargo, no se trata de algn voltaje "intermedio" entre el "0" y el "1" (lo cual, dicho sea de
paso, no est permitido dentro de la lgica binaria), lo que nos dice el diagrama es que en este
tiempo vlido (valid) con duracin de dos pulsos de "reloj" (clock) podemos poner informacin
que puede consistir tanto de "unos" (1) como de "ceros" (0) especificando un domicilio
(address), tras lo cual podemos tomar o depositar a lo largo de cuatro ciclos de "reloj" datos
paralelos en un conjunto de terminales designadas datos (data) que puede consistir tanto de
"unos" como de "ceros".

Como se ver en la seccin de problemas resueltos correspondientes a este captulo, el lgebra


Boleana es crucial para poder disear los circuitos digitales que se encargarn de llevar a cabo la
suma binaria (no la suma Boleana) de dos nmeros binarios distintos A y B. Los bloques
fundamentales que servirn como punto de partida para esto son el Medio Sumador (Half
Adder), el Sumador Completo (Full Adder), el Medio-Substractor(Half Subractor) y el
Substractor Completo (Full Substractor). Estos bloques fundamentales nos permiten llevar a
cabo operaciones aritmticas, y como los bloques bsicos son idnticos, el uso de una cantidad
mayor de bloques iguales nos permite aumentar enormemente la precisin numrica de la
aritmtica que podemos llevar a cabo, esa increble precisin a la cual las computadoras
digitales le deben su fama. Un detalle que haba quedado pendiente desde que nos introducimos
a la numeracin binaria fue el problema de llevar a cabo operaciones aritmticas no slo con
nmeros binarios positivos sino tambin con nmeros binarios negativos, cuya discusin se
haba postpuesto hasta ahora porque en aqul captulo introductorio no contbamos con las tres
funciones lgicas bsicas y mucho menos con el lgebra Boleana de la cual ya disponemos ahora
para el diseo de circuitos lgicos, razn por la cual ha llegado el momento de retomar el tema.

En el primer captulo de este libro, al introducir la numeracin binaria, se describi una


convencin universal bajo la cual los nmeros binarios negativos son distinguidos de los
positivos con un "bit" puesto al principio del nmero binario, en donde el "0" representa un "+"
y el "1" representa un "-". Tambin se seal all que si se intenta sumar dos nmeros binarios
de signos distintos bajo esta convencin el resultado aritmtico ser incorrecto. Para
operaciones aritmticas binarias con signos distintos se acostumbra recurrir a una
representacin alterna basada en el uno-complemento (en ingls: one's complement 1's
complement). Se trata de la representacin conocida como el dos-complemento (en
ingls: two's complement 2's complement).

Antes de entrar a fondo en la cuestin sobre la suma de nmeros positivos y negativos en el


sistema binario, trataremos aqu brevemente acerca de cmo trabaja un mtodo conocido como
el 9-complemento en el sistema decimal. Este mtodo nos permite llevar a cabo la operacin
aritmtica de resta (substraccin) entre dos nmeros, o lo que es lo mismo, la suma de un
nmero positivo a un nmero negativo (el nmero que est siendo restado). En el sistema
decimal, el 9-complemento de un nmero se obtiene reemplazando cada dgito del nmero por
nueve menos el dgito. De este modo, el 9-complemento de 147 es 852 y el complemento de 605
es 394. Bajo la tcnica del 9-complemento, para sumar 605 a -147 el procedimiento sera el
siguiente:

Como puede verse, se obtiene primero el complemento del nmero cuyo signo sea negativo, se
suman los nmeros, y tras esto se suma el 1 previamente obtenido de la operacin de "Llevar" a
lo que tenemos, para as lograr el resultado final, que en este caso es +458. De este modo, la
operacin aritmtica de la resta queda reducida a una operacin de suma aritmtica. En lugar de
restar como lo haramos en un clculo hecho a mano, cambiamos 147 por su complemento
procediendo a sumar. El sobreflujo es llevado a la columna de las "unidades" y sumado,
obteniendo el resultado correcto de la operacin. A continuacin se llevar a cabo la misma
operacin, pero invirtiendo los signos:

Aqu tambin tomamos el complemento del nmero negativo. En este caso no hay sobreflujo, y
el procedimiento final es algo diferente. La suma resultante del nmero positivo y el
complemento del otro nmero es simplemente complementada, y al resultado se le asigna un

nmero negativo.

La justificacin del por qu este mtodo siempre trabaja nos llevara a una discusin sobre el
tema de los anillos matemticos y las clases de equivalencia, lo cual nos desviara de nuestro
objetivo central sin aadir ms claridad a la tcnica. Nos basta con saber que este mtodo nunca
falla porque tiene una justificacin terica slida.

As como en la numeracin decimal se tiene al mtodo del 9-complemento para poder sumar un
nmero positivo y un nmero negativo, tambin en otros sistemas numricos existe un
procedimiento similar apoyado por las mismas razones matemticas tericas. En nuestro caso,
estamos interesados en la aplicacin de la tcnica al sistema binario, al lenguaje de "unos" y
"ceros" que es el que entienden las mquinas. Dicho esto, todo lo anterior mejor preparados
para definir lo que es el "uno complemento" en el sistema binario. Esta representacin tomamos
simplemente el inverso lgico del nmero binario, o lo que es lo mismo, su complemento (de
aqu deriva la designacin). As, el uno-complemento del nmero
binario 00000010 (equivalente al nmero decimal 2) es 11111101.

Bajo la representacin del "dos complemento", tomamos primero el 1-complemento del nmero
en la forma que ya se seal, simplemente invirtindolo lgicamente. Tras esto, se le suma 1.
Esto resulta en la codificacin del nmero en 2-complemento. Es importante recalcar que al
tomar un nmero positivo el procedimiento de representarlo como 2-complemento lo convierte
automticamente en un nmero negativo.

Veamos a continuacin un ejemplo de cmo podemos obtener la representacin del nmero -9


bajo el esquema del 2-complemento usando una palabra binaria de cuatro "bits" (un nibble) con
el primer bit reservado para el signo del nmero y los tres bits restantes reservados para la
magnitud del nmero. Empezamos con el equivalente binario del nmero decimal "9", que es
"01001". Le aplicamos ahora el proceso de inversin lgica para obtener el 1-complemento, que
es "10110". Por ltimo le sumamos 1 y obtenemos "10111". Este es el equivalente, en 2complemento, del nmero negativo -9.

Dado un nmero en 2-complemento, podemos convertirlo a su forma negativa decimal


sumando las "potencias de 2" de los bits "1", pero dndole un "peso" negativo al bit (del signo)
ms significativo que va a la izquierda. Por ejemplo:

111110112 = - 128 + 64 + 32 + 16 + 8 + 0 + 2 + 1

111110112 = - 5

o por ejemplo:
100010102 = -128 + 0 + 0 + 0 + 8 + 0 + 2 + 0

100010102 =10001010 = -118

Para que estas conversiones queden claras, recurriremos a otro ejemplo sencillo convirtiendo
primero el nmero 13 en base decimal a su negativo usando su representacin como 2complemento, y despus tomando este resultado obtendremos el nmero negativo expresado en
sistema decimal. El nmero 13 en formato binario es 00001101. Si invertimos los bits
obtenemos como 1-complemento 11110010. Ahora le sumamos 1, y obtenemos el 2complemento 11110011. Podemos checar la respuesta convirtiendo este nmero 2complemento a su equivalente decimal:
11110011 = -128 + 64 + 32 + 16 + 0 + 0 + 2 + 1

11110011 = -13

Cabe notar que el 2-complemento de cero es cero: invirtindolo primero nos d una cadena de
"unos", y al sumarle "1" esto cambia todos los "unos" nuevamente a ceros. Al hacer esta
operacin, el sobreflujo es simplemente ignorado.

A continuacin tenemos una tabla que nos muestra el equivalente de varios enteros positivos y
negativos decimales representados en la segunda columna bajo el esquema "signo magnitud" (el
primer bit es usado para el signo y los tres bits restantes para la magnitud) y representados en la
tercera columna bajo el esquema 2-complemento:

La misma informacin tal vez sea ms fcil de visualizar y recordar con el siguiente "crculo
binario":

Ahora llevaremos a cabo la suma de dos nmeros de signos distintos, +2 y -3, bajo la
representacin del 2-complemento, usando una extensin de un byte (ocho bits). Puesto que el
nico nmero que lleva un signo negativo es el 3, tomamos el 3 cuyo equivalente binario
(positivo) es 0011, lo invertimos lgicamente para obtener el 1-complemento, que es 1100, y le

sumamos 1 con lo cual obtenemos en 2-complemento el nmero negativo -3, el cual podemos
sumar directamente (en suma binaria, no suma Boleana!) al nmero positivo +2 para obtener
"11111111", que es equivalente en 2-complemento del nmero -1 (en 8 bits).

El resultado de la operacin aritmtica est dado, como vemos, en 2-complemento, y es un


nmero negativo. Obsrvese cmo en esta ocasin s obtuvimos los resultados aritmticos
correctos.

Para que el procedimiento quede claro, hagamos una segunda operacin usando 5 bits,
sumando los nmeros +13 y -9. Al nmero 13, por ser positivo, lo dejamos tal cual; su
equivalente binario es 01101. El nmero 9, por ser negativo, debe ser convertido a su
representacin como 2-complemento. El equivalente binario de 9 es 01001; su 1complemento es 10110, y su 2-complemento es 10111. Si sumamos 01101 y 10110,
obtenemos 00100, o sea +4, que es el resultado correcto de acuerdo a los signos originales, con
la respuesta tambin teniendo el signo correcto.

Hay pues tres tipos de operaciones aritmticas involucrando signos: (1) la adicin de dos
nmeros positivos, (2) la adicin de un nmero positivo y uno negativo, o lo que es lo mismo,
una operacin de resta, y (3) la adicin de tres nmeros negativos; y el mtodo del2complemento trabaja en los tres casos como lo resumen los siguientes tres ejemplos:

La ventaja de utilizar la representacin del 2-complemento es que uno no se tiene que preocupar
por el bit del signo al llevar a cabo operaciones aritmticas de suma y resta; el resultado final
siempre ser correcto independientemente de los signos de los nmeros. El no tener que estar
probando explcitamente el signo de los nmeros binarios al llevar a cabo operaciones
aritmticas puede resultar en una mejora substancial de velocidad cuando este tipo de
operaciones son llevadas a cabo por circuitos lgicos.

Solo resta hacer una ltima advertencia con respecto al uso del smbolo "=" (igual) en el lgebra
Boleana. Dicho smbolo nos dice que dos expresiones conectadas por l, por ejemplo:

son equivalentes en lgebra Boleana (ambas producen la misma Tabla de Verdad) pero no
iguales en el concepto de uso comn en el lgebra clsica.

Esto quiere decir que las siguientes operaciones vlidas en el lgebra clsica:

son incorrectas en el lgebra Boleana. En efecto, dada una expresin en lgebra Boleana,
podemos simplificarla usando los teoremas vistos anteriormente, relacionando cada nueva
expresin con la anterior usando el smbolo de equivalencia "=". Sin embargo, las
simplificaciones como la arriba mostrada carecen de todo sentido en el lgebra Boleana.
PUBLICADO POR ARMANDO MARTNEZ TLLEZ EN LUNES, NOVIEMBRE 19, 2007

Entrada ms recienteEntrada antiguaPgina principal


ARCHIVO DEL BLOG

2007 (33)

noviembre (33)

Prefacio a la publicacin en Internet

Prlogo al libro

Contenidos

1: La numeracin binaria

1: Problemas resueltos

2: Las tres funciones lgicas bsicas

2: Problemas resueltos

3: El lgebra Boleana

3A: Problemas resueltos

3B: Problemas resueltos

4: El mapa de Karnaugh

4: Problemas resueltos

5: El flip-flop R-S. Memorias. Multivibradores

5: Problemas resueltos

6: El flip-flop J-K. Contadores

6A: Problemas resueltos

6B: Problemas resueltos

7: Tpicos Especiales

7: Problemas resueltos

8: Lgica Multivaluada

8: Problemas resueltos

Suplemento # 1: Las familias lgicas

Suplemento # 2: El microprocesador P

Suplemento # 3: Cmo trabaja el microprocesador

Suplemento # 4a: Las instrucciones del P 8086

Suplemento # 4b: Programacin del microprocesador

Suplemento # 5: Las comunicaciones asncronas

Suplemento # 6: El amplificador operacional

Suplemento # 7: El temporizador 555

Suplemento # 8: El PLC. Diagramas de Escalera

Suplemento # 9: Mquinas Moore. Mquinas Mealy.

Bibliografa

Indice (enlaces)
DATOS PERSONALES

ARMANDO MARTNEZ TLLEZ


VER TODO MI PERFIL

También podría gustarte