Circuitos y Sistemas Digitales
Circuitos y Sistemas Digitales
Circuitos y Sistemas Digitales
Apuntes de clase
A
B
C
F
D
E
G
Octubre-2002
2
Sobre estos apuntes
Estos apuntes se están realizando para cubrir el temario de la asignatura “Circuitos y siste-
mas digitales” , del Departamento de Electrónica y Comunicaciones, que se imparte en prime-
ro de Escuela y Facultad de Informática en la Universidad Pontificia de Salamanca en Madrid
(UPSAM)[2].
Se han publicado bajo una licencia libre, de manera que se puedan copiar, distribuir y/o
modificar. Y se ha hecho así por decisión del autor. El conocimiento siempre se ha difundido
mediante las copias. En la edad media se realizaban copias a mano de los libros en los monas-
terios. Posteriormente con la aparición de la imprenta, ese proceso que tardaba muchos años
se redujo drásticamente, permitiendo además obtener un número muchísimo mayor de copias,
con lo que mayor cantidad de gente tenía acceso a los conocimientos. Actualmente tenemos
prohibido copiar total o parcialmente los libros. Sólo hay que mirar las notas que aparecen en la
contraportada. Y esta es una de las paradojas que existen hoy en día en el mundo de la enseñanza:
El conocimiento lo puede transmitir el profesor oralmente, sin embargo, no es posible realizar
copias del conocimiento que existe en los libros. Y si lo copias estás violando la ley.
Poco a poco, están apareciendo publicaciones y sobre todo software que permiten que se
realicen copias. Es más, se incita a que se hagan estas copias, pues es la única manera de que
se transmita el conocimiento. Y no sólo eso, sino que se permite su modificación, de manera
que cada vez se vayan enriqueciendo más. Es un enfoque similar al del mundo científico: el
descubrimiento de cada científico pasa a ser parte de la comunidad cientifica, para que otras
personas los puedan utilizar para realizar nuevos descubrimientos.
Este es un asunto polémico, que visto desde una perspectiva científica tiene mucho sentido,
pero visto desde una perspectiva comercial puede poner los pelos de punta a más de uno. A mí me
gusta más el enfoque científico de la enseñanza. Y es ese conocimiento el que tiene que circular
libremente, motivo por el cual estos apuntes tienen una licencia libre.
3
4
Licencia
Se concede permiso para copiar, distribuir y/o modificar este documento bajo los términos de
la Licencia de Documentación Libre de GNU (GNU Free Documentation License)[1]
Índice general
1. Introducción 13
1.1. Electrónica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2. Tipos de electrónica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2.1. Electrónica Analógica . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2.2. Electrónica digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.3. Circuitos y sistemas digitales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.4. Organización de los apuntes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2. Sistemas de representación 21
2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2. Conceptos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3. Algunos sistemas de representación . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3.1. Sistema octal (Base 8) . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3.2. Sistema binario (Base 2) . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3.3. Sistema hexadecimal (Base 16) . . . . . . . . . . . . . . . . . . . . . . 25
2.4. Generalización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5. Tabla de conversión para los sistemas
decimal- binario- hexadecimal . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.6. Circuitos digitales y el Sistema binario . . . . . . . . . . . . . . . . . . . . . . . 26
2.7. Sistema binario y sistema hexadecimal . . . . . . . . . . . . . . . . . . . . . . . 28
2.8. Bits y electrónica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.9. Otros sistemas de representación . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.10. Terminología . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.11. Ejercicios resueltos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.12. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5
6 ÍNDICE GENERAL
3. ALGEBRA DE BOOLE 33
3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2. Las operaciones del Álgrebra de Boole . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.1. La operación + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.2. La operación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.3. La negación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3. Las propiedades del Álgebra de Boole . . . . . . . . . . . . . . . . . . . . . . . 37
3.4. Teoremas importantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.5. Funciones booleanas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.5.1. Funciones reales y funciones booleanas . . . . . . . . . . . . . . . . . . 40
3.5.2. Funciones booleanas y tablas de verdad . . . . . . . . . . . . . . . . . . 43
3.6. Formas canónicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.6.1. Primera forma canónica . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.6.2. Segunda forma canónica . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.7. Simplificación de funciones booleanas . . . . . . . . . . . . . . . . . . . . . . . 50
3.7.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.7.2. Método analítico de simplificación de funciones . . . . . . . . . . . . . . 51
3.7.3. Método de Karnaugh . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.8. La operación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.9. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.10. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4. CIRCUITOS COMBINACIONALES 69
4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.2. Puertas lógicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2.1. Puertas básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2.2. Otras puertas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.2.3. Circuitos integrados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.2.4. Otras tecnologías . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.3. Diseño de circuitos combinacionales . . . . . . . . . . . . . . . . . . . . . . . . 78
4.3.1. El proceso de diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.3.2. Implementación de funciones con cualquier tipo de puertas . . . . . . . . 79
4.3.3. Implementación de funciones con puertas NAND . . . . . . . . . . . . . 82
4.3.4. Implementación de funciones con puertas NOR . . . . . . . . . . . . . . 87
4.4. Aplicación: Diseño de un controlador para un robot seguidor de línea . . . . . . 90
ÍNDICE GENERAL 7
4.4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.4.2. Especificaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.4.3. Diagrama de bloques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.4.4. Tabla de verdad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.4.5. Ecuaciones booleanas del circuito . . . . . . . . . . . . . . . . . . . . . 94
4.4.6. Implementación del circuito . . . . . . . . . . . . . . . . . . . . . . . . 95
4.5. Análisis de circuitos combinacionales . . . . . . . . . . . . . . . . . . . . . . . 95
4.6. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.7. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
8. BIESTABLES 153
9. REGISTROS 155
11
12 ÍNDICE DE FIGURAS
Introducción
Antes de entrar en los detalles de esta asignatura, es interesante tener una perspectiva mayor,
para entender el contexto de esta asignatura, en qué fundamentos se basa y cómo se relaciona
con el resto de asignaturas.
1.1. Electrónica
Esta asignatura trata sobre Electrónica. La Elecrónica estudia el comportamiento de los elec-
trones en diversos medios, y se aplican estos conocimientos para conseguir que “los electrones
hagan lo que nosotros queramos”. Así por ejemplo, si construimos un circuito electrónico cons-
tituido por una pequeña bombilla, una pila y un interruptor (figura 1.1) y lo conectamos, lograre-
mos que los electrones circulen por todo el circuito y que al atravesar la bombilla parte de ellos
se conviertan en luz1 . ¡¡Hemos conseguido que los electrones nos obedezcan!!
Para “dominar” a los electrones, es necesario crear circuitos electrónicos, formados por ma-
teriales conductores (cables) que unen todos los componentes del circuito, de la misma manera
que hay tuberías de agua que recorren nuestras casas, uniendo diferentes elementos: grifos, llaves
de paso, el contador del agua...
1
No es el objetivo de estos apuntos el entrar en los detalles de los fenómenos físicos que subyacen en los cirucitos
electrónicos. Se pretende que el alumno tenga una “intuición” de lo que está pasando.
13
14 CAPÍTULO 1. INTRODUCCIÓN
Interruptor abierto
Bombilla
+ Pila
Interruptor cerrado
Bombilla
+ Pila
−
Electrones
Posicion
molecula
Tiempo
La electrónica analógica trata con este tipo de señales, análogas a las que hay en el mundo
real, modificando sus características (ej. amplificándola, atenuándola, filtrándola...).
Fijémonos en el esquema de la figura 1.4. La persona que habla emite una señal acústica
que es convertida en una señal electrónica analógica por el micrófono. Estas dos señales son
muy parecidas, pero la que sale del micrófono es más pequeña. Por ello se introduce en un
circuito electrónico, llamado amplificador, que la “agranda” (la ha manipulado). A continuación
esta señal se puede registrar en una cinta magnética de audio. Lo que se graba es una “copia”
de la señal, pero ahora convertida a señal magnética. En cualquier momento la señal se puede
escucha un sonido de explosión.¡¡¡¡Fenómeno que es imposible!!!!!, pero que queda muy vistoso :-)
16 CAPÍTULO 1. INTRODUCCIÓN
Ambas señales
son muy parecidas
Señal
Persona acustica
hablando
Señal
:−) electrica
analogica
Microfono Cable
Señal
acustica
Señal Señal
Señal electrica electrica
electrica Señal
acustica
Microfono
Amplificador
Sistema de
transmision
Cinta de audio recepcion
Señal
"magnetica"
volver a recuperar, convirtiéndose de señal magnética nuevamente a señal eléctrica. Una parte
del sistema se ha llamado “sistema de transmisión-recepción” indicándose con esto que la señal
eléctrica se puede transportar (Por ejemplo el sistema telefónico). Finalmente se introduce por
un altavoz que relaliza la conversión inversa: pasar de una señal eléctrica a una acústica que se
puede escuchar.
Los problemas de los sitemas analógicos son:
2. Cada tipo de señal analógica necesita de unos circuitos electrónicos particulares (No es
lo mismo un sistema electrónico para audio que para vídeo, puesto que las señales tienen
características completamente diferentes).
Señal
acustica Señal digital
(NUMEROS)
Señal
Señal electrica
electrica Señal
acustica
transformar
5083... Almacenar 9287...
A/D D/A
Recuperar
Transportar
Microfono
Conversor Conversor
analogico/digital digital/analogico Altavoz
CIRCUITO
DIGITAL
Un circuito digital realiza manipulaciones sobre los números de entrada y genera unos
números de salida.
1.4. ORGANIZACIÓN DE LOS APUNTES 19
Numeros de Numeros de
entrada salida
Circuito
5,8,10... 22,4,05...
Ditial
Sistemas de representación
2.1. Introducción
Hemos visto en el capítulo 1 cómo un circuito digital trabaja con números y sólo con
números. El esquema general de estos circuitos se puede ver en la figura 2.1. Antes de entrar en
la comprensión y diseño de estos circuitos, hay que estudiar cómo se pueden representar esos
números, de manera que el circuito los entienda. Veremos que existen muchísimas formas de
representar el mismo número (de hecho, existen infinitas formas), pero sólo unas pocas son las
que nos interesarán para los circuitos digitales.
2.2. Conceptos
El concepto de número todos lo tenemos, pero un mismo número se puede representar
de muchas maneras. Por ejemplo, el número 10, lo representamos mediante dos dígitos, el ’1’
y el ’0’. Si utilizásemos numeración romana, este mismo número lo representaríamos sólo con
un único dígito ’X’. Pero está claro que ambas representaciones, “10” y “X” hacen referencia al
mismo número diez.
Numeros de Numeros de
entrada salida
Circuito
5,8,10... 22,4,05...
Ditial
21
22 CAPÍTULO 2. SISTEMAS DE REPRESENTACIÓN
Nosotros estamos acostumbrados a representar los números utilizando diez dígitos: ’0’, ’1’,
’2’, ’3’, ’4’, ’5’, ’6’, ’7’, ’8’, ’9’. Por eso nuestro sistema de representación se denomina Sistema
decimal o sistema en base diez.
Analicemos con un poco más de detalle el sistema decimal, que es el que manejamos habi-
tualmente. Vamos a representar el número “tres mil doscientos ochenta y uno”:
3281
Observamos lo siguiente:
Este último punto es muy intuitivo. Imaginemos que el número 3281 representa el sueldo men-
sual de un ingeniero1 . Si le preguntamos qué dígito es el que le gustaría modificar para tener
un sueldo mayor, no dudaría en señalar al ’3’. “¡¡Ojalá me subieran en sueldo a 4281 euros!!”
pensaría el ingeniero. Sin embargo, se echaría a reir si su jefe le dijese: “te subimos el sueldo a
3285 euros”.
El dígito ’3’ es más importante que todos los que tiene a su derecha. Tiene un peso mayor
que el resto de dígitos. De hecho, este dígito ’3’ está representando al número tres mil. El dígito
’2’ por estar en tercera posición comenzado desde la derecha, representa el número doscientos,
el ’8’ al ochenta y el ’1’ al uno. Podemos descomponer el número de la siguiente manera:
Observamos que cada dígito está multiplicando una pontencia de 10. Cuanto más a la izquier-
da se sitúe el dígito, mayor será la pontencia de diez por la que se multiplica.
En la figura 2.2 se muestra el número 3281 descompuesto en dígitos y pesos, y se indica cuál
es el dígito de mayor peso y cuál es el de menor.
1
Obviamente esto no se corresponde con la realidad :-)
2.2. CONCEPTOS 23
Digito de Digito de
mayor peso 3281 menor peso
3 2 1 0
3.10 + 2.10 + 8.10+ 1.10
DIGITOS
PESOS
Este sistema de representación también se llama sistema en base diez porque los pesos de
los dígitos son potencias de 10: El dígito de más de la derecha tiene un peso de , los siguientes
tienen pesos de , , ,
...
Nosotros representamos los números en el sistema decimal, que consta de diez dígitos
diferentes, asignándoles un peso que es una potencia de diez, y que será mayor cuanto más a
la izquierda se encuentre el dígito.
¿Qué nos impide que utilicemos unos sistemas de representación en los que los pesos de
los dígitos, o incluso los dígitos sean diferentes de los del sistema decimal? Nada. Por ejemplo,
podemos emplear un sistema de representación octal (Base 8), que utiliza sólo ocho dígitos
(0,1,2...7) para representar cualquier número y los pesos de los diferentes dígitos serán potencias
de 8. En este sistema, si escribimos los dígitos 352 no se corresponden con el número “trescientos
cincuenta y dos” . Para calcular cuál es el número que representa hay que multiplicar cada dígito
por su correspondiente peso, obteniendo el número equivalente en el sistema decimal.
El número 352 en representación octal es equivalente al número 248 del sistema decimal.
En el sistema octal, los dígitos tienen pesos que son potencias de 8, en lugar de potencias de 10
como en el sistema decimal. Para evitar confusiones cuando se trabaja con sistemas de repre-
sentación diferentes, se emplea la siguiente notación:
24 CAPÍTULO 2. SISTEMAS DE REPRESENTACIÓN
El subíndice 8 indica que el número está representado en un sistema octal y con el subíndice
10 se indica que lo está en un sistema decimal.
El sistema binaro utiliza sólo dos dígitos diferentes para representar cualquier número.
El peso de los dígitos es una potencia de 2.
2
El nombre técnico para estos estados es Corte y Saturación, pero es más intuitivo pensar en un transistor como
en un pequeño interruptor que puede estar abierto o cerrado.
2.4. GENERALIZACIÓN 25
¿Y sería posible utilizar más de 10 dígitos para representar los números?. También es posi-
ble. Ese es el caso del sistema hexadecimal, en el que se emplean 16 dígitos: 0, 1, 2, 3, 4, 5, 6,
7, 8, 9, A, B, C, D, E y F, donde las letras representan los números 10, 11, 12, 13, 14 y 15 respec-
tivamente. Los pesos de los dígitos son pontencias de 16. Por ejemplo, el número hexadecimal
FE2A se puede descomponer de la siguiente manera:
=
El sistema hexadecimal es muy curioso. Permite escribir números como los siguientes: CA-
CA, DE, BACA :-). Se deja como ejercicio el obtener sus correspondientes números en el sistema
decimal.
Este sistema, como veremos más adelante, se emplea para escribir números binarios de una
manera más compacta, dado que el paso de hexadecimal a binario y vice-versa es inmediato.
2.4. Generalización
Dado un número de m dígitos ( , y usando un sistema en base b, se puede expresar en
el sistema decimal utilizando la siguiente fórmula:
Esta fórmula no es más que la generalización de los ejemplos expuestos en el apartado ante-
rior. Si estamos trabajando con un sistema en base 7 (b=7) y el número que queremos convertir
al sistema decimal tiene 4 dígitos (m=4), la fórmula de conversión sería:
En esta asignatura nos centraremos en el sistema binario, que será el que tendremos que
comprender para utilizarlo en el diseño de circuitos digitales.
26 CAPÍTULO 2. SISTEMAS DE REPRESENTACIÓN
Ejercicios:
Hacer el ejercicio 1 de este capítulo.
Numeros de Numeros de
entrada, en binario salida, en binario
E0 S0
E1 Circuito S 1
E2 S2
. E3 Ditial S3 .
. .
. .
Em Sn
E0 Circuito S 0
E1 S1
E2 Ditial S2
S3
Con la tecnología que hay actualmente, los circuitos digitales manipulan números que están
representados en binario. Así podemos decir que un circuito digital actual tiene como entradas
y salidas números en binario. Es decir, números que vienen expresados con los dígitos ’0’ y
’1’. En la figura 2.3 se ha dibujado un circuito digital genérico, en el que sus entradas y salidas
se expresan en binario. Cada una de las entradas y salida representa un dígito binario. ¿Pero cual
es el peso de este dígito? Eso nos lo indican los subíndices de las letras E y S. Así, la entrada
se corresponde con el dígito de menor peso, la entrada con los dígitos de peso
, y así
sucesivamente hasta la entrada n que es la de mayor peso. Lo mismo es aplicable a la salida.
En los circuitos digitales, los números que se procesan, están expresados en binario,
tanto en la entrada como en la salida.
Un dígito binario, que puede ser ’0’ ó ’1’, recibe el nombre de BIT, del término ingles
BInary digiT (dígito binario). Utilizaremos los bits para indicar el tamaño de las entradas y salias
de nuestros circuitos. Así por ejemplo podemos tener un circuito digital con 3 bits de entrada y
4 de salida. Este circuito se muestra en la figura 2.4.
Los circuitos digitales sólo saben trabajar con números en binario, sin embargo a los huma-
nos nos es más cómodo trabajar en decimal. Trabajar con número binarios puede parecer “poco
intuitivo”. Vamos a ver cómo en determinadas ocasiones resulta muy intuitivo el trabajar con
números binarios.
Imaginemos que en una habitación hay 5 bombillas situadas en la misma línea, y que cada
28 CAPÍTULO 2. SISTEMAS DE REPRESENTACIÓN
Bombilla Bombilla
encendida apagada
0 1 0 1 1
Figura 2.5: Utilización del sistema binario para expresar el estado de 5 bombillas
una de ellas puede estar encendida o apagada. ¿Cómo podríamos representar el estado de estas
5 bombillas mediante números? Una manera muy intuitiva sería utilizar el sistema binario, en
el que utilizaríamos el dígito 1 para indicar que la bombilla está encendida y el dígito 0 para
indicar que está apagada. Así el número 01011 nos indica que la primera bombilla está apagada,
la segunda encendida, la tercera apagada y las dos últimas encendidas, como se muestra en la
figura 2.5. Esta forma de representar el estado de las bombillas es bastante intuitivo. Este es un
ejemplo en el que se puede ver que “pensar” en binario resulta más fácil que hacerlo directamente
en decimal.
El sistema hexadecimal se utiliza para representar números binarios de una forma más
compacta. Cada dígito hexadecimal codifica 4 bits, de manera que un número hexadecimal de 4
bits permite representar un número binario de 16 bits. Veamos un ejemplo:
1011000111101101 = B1ED
Podemos ver cómo es mucho más cómodo utilizar el número hexadecimal que el binaro.
Pero, ¿cómo se pasa de binario a hexadecimal o vice-versa? El proceso es muy sencillo. Lo
único que hay que conocer es la tabla del apartado 2.5. El número en binario hay que dividirlo
en grupos de 4 bits empezando desde la derecha. La conversión del número binario anterior se
haría de la siguiente manera:
2.8. BITS Y ELECTRÓNICA 29
5 voltios A B 0 voltios
Circuito
E S
Ditial
1 Bit de entrada 1 Bit de salida
Figura 2.6: Cómo introducir dígitos binarios por un bit de la entrada de un circuito digital
B 1 E D
Ejercicios:
Hacer los ejercicios 2 y 3 de este capítulo.
En los circuitos digitales, se usan dos tensiones diferentes, una para representar el dígito
’1’ y otra para representar el dígito ’0’. En la electrónica tradicional se usan 5 voltios para el
digito ’1’ y 0 voltios para el digito ’0’
21 = 0010 0001
Los primeros 4 bits representan al dígito ’2’ y los 4 siguientes al dígito ’1’.
2. Código AIKEN: Similar al BCD, pero con los pesos cambiados. Cada dígito decimal se
representa mediante 4 bits, siendo los pesos de estos bits: 2, 4, 2 y 1.
3. Código GRAY: Son una familia de códigos que se caracterizan porque el paso de un
número al siguiente implica que sólo se modifica un bit.
2.10. Terminología
BIT Dígito binaro. Un bit puede tomar los valores 0 ó 1. Es la abreviatura de las palabras inglesas
de Binary digiT.
Byte Conjunto de 8 bits. El número más alto que se puede representar es el 11111111, que en
decimal es 255.
2.11. EJERCICIOS RESUELTOS 31
a)
Solución:
=
+ 16 + 4 + 2 +1 = 87
b)
Solución:
BABA=B
=
4096 + 10 256 + 11 16 + 10 =
45056 + 2560 + 176 + 10 =47802
c)
Solución:
=2 8 + 9 = 16 + 9 = 25
a) FFFF
Solución:
FFFF = F - F - F - F = 1111-1111-1111-1111 = 1111111111111111
32 CAPÍTULO 2. SISTEMAS DE REPRESENTACIÓN
b) FA00
Solución:
FA00 = F-A-0-0 = 1111-1010-0000-0000 = 1111101000000000
c) 321C
Solución:
321C = 3-2-1-C = 0011-0010-0001-1100 = 11001000011100
2.12. Ejercicios
1. Pasar los siguientes números a decimal
a)
"
b)
c)
d)
a) 0101101011111011
b) 10010001110000101
c) 1111000011110000
d) 0101010110101010
a) FFFF
b) 01AC
c) 55AA
d) 3210
Capítulo 3
ALGEBRA DE BOOLE
3.1. Introducción
Cuando trabajamos en ingeniería, utilizamos ecuaciones y modelos matemáticos que descri-
bren lo que estamos diseñando o analizando. Así por ejemplo, la ecuación
nos indica cuál es la velocidad máxima de transmisión por un canal que tiene un ancho de
banda W y por el que se permiten n estados posibles de la señal transmitida, y será usada por
un Ingeniero de Telecomunicación para el diseño de canales o sistemas de comunicación. Esa
ecuación describe una relación entre ciertas variables, que son objeto de estudio del Ingeniero.
A lo mejor no entendemos el significado de esta ecuación. No sabemos lo que significa ancho
de banda o velocidad máxima de transmisión, pero sí entendemos las operaciones que hay en
ella: hay productos y logaritmos. Sin saber nada, y partiendo de los datos iniciales: ,
n=4, seríamos capaces de calcular el valor de :
33
34 CAPÍTULO 3. ALGEBRA DE BOOLE
y por las propiedades de los Números Reales, que son los que estamos manejando, sabemos
que “algo por cero es cero” y “algo más cero es algo”:
¿Y por qué hemos sabido hacer eso? Porque conocemos las operaciones que el físico ha
utilizado y además sabemos algunas propiedades de ellas.
En estas dos ecuaciones de ejemplo, los números y las variables son Reales. El conjunto
de los Números Reales lo conocemos muy bien, así como todas las operaciones definidas en él.
Estamos acostumbrados a trabajar con ellos desde pequeños, por eso este tipo de ecuaciones nos
parecen intuitivas y sencillas, aunque no comprendamos lo que significan las variables usadas.
Hemos dicho que los circuitos digitales trabajan con números, y que estos números se expre-
san en binario. Veremos más adelante cómo con un conjunto de ecuaciones podemos describir
lo que hace un circuito, que transforma los números de la entrada y los saca por la salida. Sin
embargo, puesto que estos números vienen expresados en binario, las variables y números uti-
lizados NO SON REALES.
Para describir un circuito digital utilizaremos ecuaciones
Para describir un circuito digital utilizaremos ecuaciones matemáticas. Sin embargo, estas
ecuaciones tienen variables y números que NO SON REALES, por lo que NO podemos aplicar
las mismas propiedades y operaciones que conocemos. Hay que utilizar nuevas operaciones y
nuevas propiedades, definidas en el ALGEBRA DE BOOLE.
Por tanto, vamos a trabajar con unas ecuaciones a las que NO estamos acostumbrados. Son
muy sencillas, pero al principio pueden resultar poco intuitivas. En este capítulo aprenderemos a
trabajar con ellas.
hay que confundirlas!!!!. El + y el del Algebra de Boole se aplican a bits, es decir, a números
que sólo pueden ser el ’0’ ó el ’1’.
3.2.1. La operación +
Esta operación se define de la siguiente manera:
0+0=0
0+1=1
1+0=1
1+1=1
Las tres primeras operaciones nos resultan obvias, son iguales que la suma que conocemos,
sin embargo la expresión
que indica que F=1 (Luz encendida) si alguno de los interruptores está a ’1’ (activado).
36 CAPÍTULO 3. ALGEBRA DE BOOLE
Ya lo veremos más adelante, pero podemos ir adelantando unas propiedades muy interesan-
tes. Si A es una variable boolena, se cumple:
A+A=A
1+A=1
0+A=A
3.2.2. La operación
Esta operación se define así:
0 0=0
0 1=0
1 0=0
1 1=1
En este caso, la operación es más intutitiva, puesto que es igual que el producto de números
Reales. Si nos fijamos, vemos que el resultado sólo vale ’1’ cuando los dos bits están a ’1’, o
visto de otra manera, el resultado es ’0’ cuando alguno de los dos bits es ’0’.
Vamos a ver un ejemplo. Imaginemos una caja de seguridad de un banco que sólo se abre
cuando se han introducido dos llaves diferentes, una la tiene el director y la otra el jefe de se-
guridad. Si sólo se introduce una de ellas, la caja no se abrirá. Modelaremos el problema así.
Utilizaremos la variable A para referirnos a una de las llaves (’0’ no introducida, ’1’ introdu-
cida) y la variable B para la otra llave. Con la variable F expresamos el estado de la caja de
seguridad (’0’ cerrada y ’1’ abierta). El estado de la caja lo podemos expresar con la ecuación:
que indica que la caja se abrirá (F=1) sólo si A=1 (una llave introducida) y B=1 (la otra llave
introducida). En cualquier otro caso, F=0, y por tanto la caja no se abrirá.
Podemos ir adelantando algunas propiedades de esta operación:
A A=A
A 0=0
A 1=1
3.3. LAS PROPIEDADES DEL ÁLGEBRA DE BOOLE 37
3.2.3. La negación
La operación de negación nos permite obtener el estado complementario del bit o variable
booleana al que se lo aplicamos. Se define de la siguiente manera:
Operación +
A B A+B
0 0 0
0 1 1
1 0 1
1 1 1
Operación
A B AB
0 0 0
0 1 0
1 0 0
1 1 1
Las propiedades del Algebra de Boole son las siguientes:
2. Elemento Neutro
A+0=A
A 1=A
3. Distributiva
4. Elemento inverso
A
=0
Operación de negación definida por:
Ejercicios:
Para practicar e ir cogiendo soltura con el Algebra de Boole se recomienda hacer el ejercicio
1 de este capítulo.
Asociatividad
Idempotencia:
3.4. TEOREMAS IMPORTANTES 39
Ley de Absorción
Este teorema es muy importante puesto que nos permite realizar simplificaciones en las
expresiones.
Leyes de DeMorgan
Este teorema es también muy importante y lo usaremos constantemente. Vamos a hacer
algunos ejemplos para aprender a utilizarlo:
Ejemplo 1:
Ejemplo 2:
Ejemplo 3:
Ejemplo 4:
Teorema de Shannon:
Este teorema es una generalización de las leyes de DeMorgan. Lo que nos dice es que
si tenemos cualquier expresión booleana negada, es igual a la misma expresión en la que
todas las variables estén negadas y en la que se sustituyan las operaciones + por . y vice-
versa.
Veamos algunos ejemplos:
Ejemplo 5:
En este este ejemplo se podrían haber aplicado las leyes de DeMorgan sucesivas veces,
como hemos hecho en ejemplos anteriores, sin embargo podemos aplicar el Teorema de
Shannon.
Ejemplo 6:
=(
Ejemplo 7:
40 CAPÍTULO 3. ALGEBRA DE BOOLE
Teorema de expansión:
Este teorema es más teórico y no tiene aplicación directa en los problemas.
Ejercicios:
Hacer el ejercicio 2.
Se trata de una función Real que tiene una variable Real (x). Para cada valor de x, otenemos
el valor de la función. Así por ejemplo podemos calcular los siguiente:
3.5. FUNCIONES BOOLEANAS 41
Como es una función Real, obtenemos como valores de la función Números Reales.
También podemos definir funciones reales de 2 ó más variables, como por ejemplo:
. Función de 2 variables
. Función de 3 variables
Como estamos acostumbrados a trabajar con este tipo de funciones, nos resultan sencillas. Ahora
vamos a definir funciones booleanas. Para ello hay que tener en mente que trabajaremos con
variables booleanas y que por tanto usaremos las operaciones + y del Algebra de Boole, y que
como ya sabemos, nada tienen que ver con las operaciones suma y producto a las que estamos
habituados.
Por ejemplo, sea la siguiente función booleana de una variable:
El valor devuelto por la función es el negado del que se le pasa por la variable. Como la
variable A es booleana, sólo puede tomar los valores ’0’ y ’1’. Los que la función F toma son:
F(0)= =1
F(1)=
Vamos a definir una función un poco más compleja, usando dos variables booleanas, A y B:
¿Cuando vale F(0,0)? sólo hay que sustituir en la función los valores de A y B por ’0’,
obteniéndose:
F(0,0)=(0+0)
Fijándonos en esta función tan sencilla, podemos darnos cuenta de varias cosas:
1. Puesto que las variables de entrada A y B, sólo pueden tomar los valores ’0’ y ’1’, hay 4
casos distintos:
a) A=0, B=0
b) A=0, B=1
c) A=1, B=0
d) A=1, B=1
2. Antes de calcular los valores que toma la función, según lo que valgan A y B, se pueden
aplicar algunas propiedades para obtener una función más simplificada (Como veremos
en el apartado 3.7):
{Aplicando la propiedad distributiva}=
Es más sencillo trabajar con esta función simplificada:
Las funciones booleanas pueden ser de muchas más variables, como en los siguientes ejemplos:
. Función booleana de 3 variables
. Función booleana de 4 variables
. Función booleana de 5 variables
Por cuestiones de comodidad, muchas veces no escribimos entre paréntesis las variables de la
función, así por ejemplo podemos definir una función de 3 variables de la siguiente manera:
Ejercicios:
Hacer el ejercicio 3
3.5. FUNCIONES BOOLEANAS 43
y hemos visto cómo podemos obtener todos los valores de esta función.
Existe otra manera de especificar una función booleana y es utilizando las tablas de
verdad. En ellas lo que estamos representando es el valor que debe tomar la función cuando
las variables de entrada toman todos los valores posibles. Así por ejemplo yo puedo definir una
función G de la siguiente manera:
A B G
0 0 0
0 1 1
1 0 0
1 1 1
¿Cuánto vale G si A=0 y B=1?. Miramos la tabla y vemos que G vale 1. Esta forma de definir
funciones booleanas es muy sencilla. El número de filas de la tabla de verdad depende del número
de variables que usemos.
Cuanto mayor número de variables, mayor cantidad de filas tendrá la tabla de verdad.
La regla que se cumple es la siguiente: “Si la función tienen n variables, la tabla de verdad
tendrá filas”. Veamos algunos ejemplos:
.....
En la práctica no haremos tablas de verdad de más de 4 variables. Para eso están los ordenadores
:-). Nosotros aprenderemos a definirlas y manejarlas.
Todavía hay algo que necesitamos conocer. ¿Qué relación hay entre una función definida
mediante expresiones booleanas y una función definida mediante una tabla de verdad? Es
44 CAPÍTULO 3. ALGEBRA DE BOOLE
decir, dada una tabla de verdad, ¿cómo podemos obtener la expresión booleana de la función? O
dada una función mediante una expresión, ¿cómo obtenemos su tabla de verdad?.
Esto es bastante sencillo. Lo primero que hay que hacer es identificar el número de variables
de la función, para conocer el tamaño de la tabla de verdad. A continuación escribimos números
en binario en la parte de las variables. Finalmente vamos fila por fila obteniedo el valor de la
función, utilizando la expresión.
Lo mejor es ver un ejemplo. Imaginemos que nos han dado la siguiente función, definida por
la expresión:
1. La función tiene 2 variables, luego la tabla de verdad tendrá filas
2. Dibujamos una tabla de verdad con 4 filas, y ponemos en la parte de la izquierda el número
de fila en binario natural, comenzando por la fila 0.
A B F
0 0
0 1
1 0
1 1
A B F
0 0 0
0 1 1
1 0 0
1 1 1
A B C G
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
3. Calculamos el valor de la función para cada una de las filas. El resultado se muestra a
continuación, dejándose al lector su comprobación:
A B C G
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 1
46 CAPÍTULO 3. ALGEBRA DE BOOLE
Ejercicios:
Hacer el ejercicio 4
Cuando diseñemos circuitos combinacionales, será muy normal que tengamos una tabla de
verdad que haya que convertir a expresiones booleanas. El proceso es sencillo, sin embargo
ocurre que dada una tabla de verdad se pueden obtener multitud de expresiones diferentes,
todas ellas equivalentes. Nuestra misión consistirá en obtener la expresión más simplificada
posible. Esto lo iremos viendo en los siguientes apartados.
Vemos que está constituida por la suma de tres términos y en cada uno de los términos están
todas las variables.
La obtención de la primera forma canónica, a partir de una tabla de verdad es inmediato. El
proceso se denomina “desarrollo de la tabla de verdad por unos”. Tomamos la tabla de verdad y
sólo nos fijamos en las filas en las que la función vale ’1’, olvidándonos del resto. Por cada una de
3.6. FORMAS CANÓNICAS 47
estas filas tendremos un sumando, constituido por el producto de todas las variables, aplicando
la siguiente regla:
Si una variable está a ’0’, en la fila escogida, usaremos la variable negada, y si está a ’1’
usaremos la variable sin negar.
Ejemplo:
Obtener la primera forma canónica, a partir de la siguiente tabla de verdad:
A B C F
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 1
Nos fijamos en las filas en las que F=1. Vemos que sólo hay tres filas, por tanto la función F
se podrá expresar como suma de tres términos. Tomemos la primera fila en la que F=1. En ella
vemos que A=0, B=0 y C=1, por tanto el primer término será
. Ahora nos fijamos en la
siguiente fila en la que F=1: A=0, B=1 y C=1, por tanto el segundo término será:
.Y
por último nos fijamos en la última fila en la que F=1, en la que A=1, B=1 y C=1, por lo que el
término será:
. La función F será la suma de estos tres términos:
Esta función está constituida por la suma de tres términos y en cada uno de ellos es el producto
de las tres variables, bien negadas o no.
Vamos en algunos casos que esta expresión representa la misma función que la de la tabla de
verdad:
1. Para A=0, B=1 y C=0, vemos en la tabla de verdad que F=0. Vamos a comprobarlo:
Ejercicios:
Hacer los ejercicios 5 y 6.
Notación:
A cada uno de los sumandos de una expresión en la primera forma canónica, le corresponde
una fila de la tabla de verdad, es decir, un número en decimal. Así en la función anterior:
el término
representa la fila de la tabla de verdad en la que A=0, B=0 y C=1, que si
se pone en decimal es el número 1.
De esta manera, esa función la podemos escribir de la siguiente manera:
"
está constituida por dos términos que van multiplicados, y cada uno de ellos está formado
por sumas.
La obtención de la segunda forma canónica, a partir de una tabla de verdad es inmediato. El
proceso se denomina “desarrollo de la tabla de verdad por ceros”. Tomamos la tabla de verdad y
sólo nos fijamos en las filas en las que la función vale ’0’, olvidándonos del resto. Por cada una
de estas filas tendremos un término, constituido por la suma de todas las variables, aplicando la
siguiente regla:
3.6. FORMAS CANÓNICAS 49
Si una variable está a ’1’, en la fila escogida, usaremos la variable negada, y si está a ’0’
usaremos la variable sin negar.
Es decir, que esta regla es justo la contraria que cuando estábamos trabajando con la primera
forma canónica.
Ejemplo:
A B C F
0 0 0 1
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
Nos fijamos en las filas en las que F=0. En este ejemplo hay tres. Cada fila representa un
término, que estará multiplicando al resto. Tomamos la primera fila en la que F=0 y vemos que
A=0, B=1 y C=0. Aplicando la regla, el término que obtenemos es:
. Para la siguiente
fila en la que F=0, A=1, B=0 y C=0:
y finalmente, de la fila en la que A=1, B=1 y
C=0 obtenemos:
. La función F desarrollada por la segunda forma canónica, queda:
Se deja como ejercicio al lector el que compruebe que efectivamente esta expresión repre-
senta la misma función que la de la tabla de verdad.
Ejercicios:
Notación:
Para la segunda forma canónica se usa otra notación. La función F anterior está consituida
, se corresponde con la
por tres términos multiplicados. Si nos fijamos en el primero:
fila de la tabla de verdad en la que A=0, B=1, C=0, que si lo ponemos en decimal es el número
2. De esta manera podemos usar la siguiente notación para representar a F:
3.7.1. Introducción
En las matemáticas con números Reales, estamos muy acostumbrados a simplificar. De hecho
es lo que nos han enseñado desde pequeños. Si una determinada expresión la podemos simpli-
ficar, ¿por qué no hacerlo?, así seguro que nos ahorramos cálculos. Por ejemplo, si vemos la
siguiente ecuación:
lo primero que hacemos es simplificarla, aplicando primero que
, quedando:
Las funciones booleanas se tienen que simplificar al máximo, para diseñar los circuitos
con el menor número de componentes electrónicos.
Y este será uno de los grandes caballos de batalla de esta asignatura: la simplificación de las
funciones. Esta simplificación la podemos realizar de dos maneras diferentes:
Ejemplo:
Simplificar la siguiente función:
Vamos a intentar aplicar la propiedad distributiva, lo que normalmente llamamos sacar factor
común. Operando con los términos 1 y 3:
Tanto la función inicial, como la que hemos obtenido son funciones equivalentes. Tienen la
misma tabla de verdad, sin embargo, la segunda está mucho más simplificada: sólo tiene dos
sumandos y cada sumando tiene sólo dos variables.
Ejemplo:
Si nos fijamos, vemos que podemos reordenar la función de manera que quede:
y puesto que
y cualquier cosa multiplicada por 0 es 0, al final nos queda:
En este apartado veremos un método para obtener la función más simplificada a partir de
una tabla de verdad.
Vamos a ir poco a poco, viendo los fundamentos de este método. Supongamos que tenemos
una función F(A,B,C) de tres variables, cuya tabla de verdad es:
3.7. SIMPLIFICACIÓN DE FUNCIONES BOOLEANAS 53
A F
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1
Si la desarrollamos por la primera forma canónica obtenemos:
0 0 0 1 1
1 1 1 1 1
Observamos lo siguiente:
En total hay 8 casillas, cada una correspondiente a una fila de la tabla de verdad
Hay dos filas, en al primera fila están todos los valores de F correspondientes a A=0, y en
la segunda correspondientes a A=1.
Hay 4 columnas, y el número que está en la parte superior de cada una de ellas nos indica
los valores de las variables B y C en esa columna.
Dada una casilla cualquiera, mirando el número situado en la misma fila, a la izquierda
del todo nos informa del valor de la variable A y los dos valores superiores, en la misma
54 CAPÍTULO 3. ALGEBRA DE BOOLE
columna, nos dan los valores de B y C. Así por ejemplo, si tomamos como referencia la
casilla que está en la esquina inferior derecha, se corresponde con el valor que toma F
cuando A=1, B=1 y C=0.
Entre dos casillas adyacentes cualesquiera, sólo varía una variable de entrada, quedando
las otras dos con los mismos valores. Por ejemplo, si estamos en la casilla inferior derecha,
en la que A=1, B=1 y C=0. Si vamos a la casilla que está a su izquierda obtenemos un
valor de las variables de: A=1, B=1, C=1. Si lo comparamos los valores de las variables
correspondientes a la casilla anterior, vemos que sólo ha cambiado una de las tres variables,
la C. Lo mismo ocurre si nos desplazamos a cualquier otra casilla adyacente.
Ahora vamos a ver una propiedad “mágica” de esta tabla. Si obtenemos la primera forma canóni-
ca, obtenemos una función con 6 términos. Vamos a fijarnos sólo en los términos que obtenemos
si desarrollamos sólo dos casillas adyacentes, como por ejemplos las marcadas en gris en la
figura:
BC
A 00 01 11 10
0 0 0 1 1
1 1 1 1 1
Los valores de las variables en estas casillas son: A=1, B=1, C=1 y A=1, B=1, C=0. Si
obtenemos los términos de la primera forma canónica y los sumamos:
¡¡Se nos han simplificado!! Es decir, por el hecho de agrupar los términos obtenidos de estas
dos casillas y sumarlos, se han simplificado. Y esto es debido a la propiedad antes comentada de
que entre dos casillas adyacentes sólo varía una de las variables, de manera que podemos sacar
factor común. Estos dos términos son los sumandos 5 y 6 de la primera forma canónica obtenida
anteriormente, que al sumarlos y aplicar aglunas propiedades se han simplificado.
Si nos fijamos en estas dos casillas adyacentes, la variable C, que es la única que varía de una
a otra, ha desaparecido en la suma. De esta manera podemos afirmar lo siguiente:
Si tomamos dos casillas adyacentes cuyo valor es ’1’ y desarrollamos por la primera forma
canónica, desaparecerá una de las variables. Sólo permanecen las variables que no cambian
3.7. SIMPLIFICACIÓN DE FUNCIONES BOOLEANAS 55
De esta manera, vamos a ver qué pasa si tomamos los siguientes grupos:
BC
A 00 01 11 10
0 0 0 1 1 Grupo 1
1 1 1 1 1
Grupo 2 Grupo 3
Grupo 1:
Grupo 2:
Por tanto, la función F también la podemos expresar como suma de estos grupos:
¡¡Y está más simplificada que la forma canónica!! Pero...¿Se puede simplificar más? ¡Si!.
Inicialmente la función F tenía 6 sumandos, puesto que tenía 6 unos. Al hacer 3 grupos, ahora
tiene 3 sumandos. ¿Podemos reducir el número de grupos? Si, vamos a ver qué pasa si tomamos
los siguientes grupos:
BC
A 00 01 11 10
0 0 0 1 1 Grupo 1
1 1 1 1 1
Grupo 2
Ahora sólo hay 2 grupos. El nuevo grupo 2 está constituido por 4 casillas en las que F=1.
La expresión de este grupo se obtiene sumando las expresiones de estas 4 casillas. Las nuevas
expresiones de los grupos quedarían:
56 CAPÍTULO 3. ALGEBRA DE BOOLE
Grupo 2:
¡¡Que está más simplificada que la anterior!! Pero... ¿Es la más simplificada? No, todavía
podemos simplificarla más. ¿Por qué no podemos tomar 2 grupos de 4 casillas adyacentes?.
Tomemos los grupos siguientes:
BC
A 00 01 11 10
0 0 0 1 1
Grupo 1
1 1 1 1 1
Grupo 2
Grupo 1:
Hay que tener en cuenta que los grupos cd unos que se tomen sólo pueden tener un tamaño de
1, 2, 4, 8, 16,... (es decir, sólo potencias de dos). Esa es la razón por la que en el ejemplo anterior
los grupos que se han tomado son de tamaño 4 (y no se han tomado de tamaño 3).
Fijémonos en todas las funciones que hemos obtenido anteriormente:
3.7. SIMPLIFICACIÓN DE FUNCIONES BOOLEANAS 57
(CANONICA)
(3 grupos de 2 1’s por grupo)
(1 grupo de 4 1’s y 1 grupo de 2 1’s)
(2 grupos de 4 1’s)
¡¡Todas son funciones booleanas equivalentes!! (Porque tienen la misma tabla de verdad). ¡¡Pero
es la función la que usamos!! ¡¡Sómos Ingenieros y queremos optimizar al máximo!!!
Ejemplo
Veamos con un ejemplo cómo podemos aplicar directamente el criterio para obtener una fun-
ción simplificada. Dada la siguiente tabla de verdad, obtener la expresión de F más simplificada
posible:
A B C F
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 1
Colocamos la tabla de verdad como un diagrama de Karnaugh y hacer tres grupos de dos
unos:
BC
A 00 01 11 10
0 0 1 1 1
1 0 0 1 0
La función F la obtenemos sumando las expresiones de los tres grupos, siendo cada uno de
ellos el producto de las dos variables booleanas que permanecen sin cambios dentro de cada
grupo:
58 CAPÍTULO 3. ALGEBRA DE BOOLE
Ejemplo:
A B C F
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 0
BC
A 00 01 11 10
0 1 0 0 1
1 1 0 0 1
Funciones de 4 variables
¿Y qué ocurre si tenemos una función de 4 variables? La idea es la misma pero tendremos
una tabla más grande. El criterio de máxima simplificación es el mismo: hacer el menor número
posible de grupos con el máximo número de ’1’s. Veamos un ejemplo:
Ejemplo:
A B C D F
0 0 0 0 1
0 0 0 1 0
0 0 1 0 1
0 0 1 1 0
0 1 0 0 1
0 1 0 1 1
0 1 1 0 1
0 1 1 1 1
1 0 0 0 1
1 0 0 1 0
1 0 1 0 1
1 0 1 1 0
1 1 0 0 1
1 1 0 1 0
1 1 1 0 1
1 1 1 1 0
CD
AB 00 01 11 10
00 1 0 0 1
01 1 1 1 1
11 1 0 0 1
10 1 0 0 1
Vemos que ahora en la izquierda de la tabla están los valores de las variables A y B y en la
parte superior los valores de C y D. Lo siguiente es agrupar los ’1’s. Vamos a hacer primero los
siguientes grupos:
CD
AB 00 01 11 10
00 1 0 0 1
01 1 1 1 1
11 1 0 0 1
10 1 0 0 1
Sin embargo, ¿es esta la función más simplificada? O lo que es lo mismo, podemos hacer
menos grupos de ’1’s. La respuesta es sí, porque no olvidemos que las casillas de la derecha son
adyacentes a las de la izquierda de la tabla, por lo que podemos hacer sólo dos grupos:
3.8. LA OPERACIÓN 61
CD
AB 00 01 11 10
00 1 0 0 1
01 1 1 1 1
11 1 0 0 1
10 1 0 0 1
Ejercicios:
Hacer el ejercicio 9.
3.8. La operación
Hay un operación que en electrónica digital se utiliza mucho, llamada XOR y que se denota
por el símbolo . Esta operación la podemos definir mediante una tabla de verdad:
A B
0 0 0
0 1 1
1 0 1
1 1 0
Fijándonos en esta tabla podemos ver lo que hace: esta operación devuelve ’0’ cuando los dos
bits sobre los que operan son iguales, y ’1’ cuando con distintos. Tanto esta operación como su
negada,
, las utilizaremos mucho, por ello vamos a ver cómo las podemos definir a partir
A B
0 0 0 1
0 1 1 0
1 0 1 0
1 1 0 1
Vamos a obtener las dos formas canónicas de ambas funciones. Estas expresiones las utiliza-
remos bastante:
Ejercicios:
Hacer el ejercicio 10.
3.9. Resumen
En este capítulo se han presentado las herramientas matemáticas que nos servirán para
analizar y diseñar circuitos digitales. Trabajaremos con dígitos binarios o bits que pueden estar
en dos estados ’0’ ó ’1’, sobre los que se definen las operaciones + y , del Algebra de Boole, y
que no hay confundir con las operaciones de suma y producto a las que estamos acostumbrados.
Hemos vista una serie de propiedades y teoremas que nos permiten trabajar con expresiones
booleanas y con los que es necesario practicar, haciendo los ejercicios indicados.
También hemos visto el concepto de función boolena y cómo podemos representar cualquier
función de este tipo mediante tablas de verdad o mediante expresiones booleanas. También
hemos visto cómo es posible obtener una tabla de verdad a partir de una expresión booleana y
cómo obtener una expresión booleana a partir de la tabla de verdad.
Dada una tabla de verdad, existen multitud de expresiones booleanas, todas ellas equivalen-
tes, que se pueden obtener. Sin embargo, hemos visto cómo es inmediato obtener la primera
3.10. EJERCICIOS 63
y segunda forma canónica. Sin embargo, las funciones así obtenidas no tienen porqué ser las
más simplificadas posibles. Para simplificar una función podemos utilizar las propiedades del
Algebra de Boole, o también podemos utilizar el método de Karnaugh, que si lo aplicamos
correctamente, conseguiremos obtener la función más simplificada posible.
Finalmente hemos visto una nueva operación, , que se define a partir de las operaciones +
3.10. Ejercicios
Ejercicio 1:
Realizar las siguientes operaciones:
1. 1 + 0 =
2. 1 + 1 =
3. 1 0 =
4. 1 1 =
5. A+0 =
6. A+1=
7. A 1=
8. A 0=
9. A+A=
10. A.A=
11. A+ =
12. A
=
13. A+AB =
64 CAPÍTULO 3. ALGEBRA DE BOOLE
14. A(A+B) =
15. A+AB+B =
Ejercicio 2:
Aplicar las leyes de Morgan en los siguientes casos:
1.
=
2.
=
3. =
Ejercicio 3:
Obtener el valor de las siguientes funciones booleanas, en todos los casos.
1.
2.
3. F=
Ejercicio 4:
Dadas las siguientes funciones booleanas, obtener su correspondiente tabla de verdad
1.
2.
3.
4.
3.10. EJERCICIOS 65
Ejercicio 5:
Desarrollar las siguientes tablas de verdad por la primera forma canónica:
1. Tabla 1:
A B F
0 0 0
0 1 1
1 0 0
1 1 1
2. Tabla 2:
A B C F
0 0 0 1
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 0
Ejercicio 6:
Dadas las siguientes funciones, indicar si se encuentra expresadas en la primera forma canó-
nica, y si es así, obtener la tabla de verdad
1.
2.
3.
4.
Ejercicio 7:
Desarrollar las siguientes tablas de verdad por la segunda forma canónica:
66 CAPÍTULO 3. ALGEBRA DE BOOLE
1. Tabla 1:
A B F
0 0 0
0 1 1
1 0 0
1 1 1
2. Tabla 2:
A B C F
0 0 0 1
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 0
Ejercicio 8:
Dadas las siguientes funciones, indicar si se encuentra expresadas en la primera forma canó-
nica o en la segunda. En caso de que así sea, obtener la tabla de verdad.
1.
2.
3.
4.
5.
Ejercicio 9:
Obtener las expresiones más simplificadas a partir de las tablas de verdad:
3.10. EJERCICIOS 67
Tabla 1: Tabla 2:
A B C D F
F
0 0 0 0 1 0 0 0 0 1
0 0 0 1 0 0 0 0 1 0
0 0 1 0 1 0 0 1 0 0
0 0 1 1 0 0 0 1 1 0
0 1 0 0 0 0 1 0 0 1
0 1 0 1 0 0 1 0 1 0
0 1 1 0 0 0 1 1 0 1
0 1 1 1 0 0 1 1 1 1
1 0 0 0 1 1 0 0 0 0
1 0 0 1 1 1 0 0 1 0
1 0 1 0 1 1 0 1 0 0
1 0 1 1 1 1 0 1 1 0
1 1 0 0 0 1 1 0 0 0
1 1 0 1 0 1 1 0 1 1
1 1 1 0 0 1 1 1 0 0
1 1 1 1 0 1 1 1 1 0
Ejercicio 10:
Operar con las siguientes expresiones obteniendo la mayor cantidad posible de operaciones
1.
=
2.
=
3. =
4.
Ejercicio 11:
Dejar las siguientes expresiones en forma de sumas de productos:
1. (x + y + z)( +z) =
68 CAPÍTULO 3. ALGEBRA DE BOOLE
2.
3.
Ejercicio 12:
Simplificar la función
de las siguientes maneras:
CIRCUITOS COMBINACIONALES
4.1. Introducción
Después de introducir y trabajar con el Algebra de Boole, vamos a volver a los circuitos
digitales. Recordemos que son circuitos electrónicos que trabajan con números, y que con la
tecnología con la que están realizados, estos números están representados en binario. En la
figura 4.1 se muestra el esquema general de un circuito digital, que tiene m bits de entrada y n
bits de salida.
Si tomamos un circuito genérico y miramos en su interior, podemos ver que está constituido
por otros circuitos más simples, interconecados entre sí. En la figura 4.2 hay un ejemplo de un
circuito con 4 bits de entrada y 3 de salida, constituido por otros dos circuitos más simples e
interconectados entre ellos.
Estos subcircuitos se pueden clasificar en dos tipos:
Circuitos combinacionales
Circuitos secuenciales
Numeros de Numeros de
entrada, en binario salida, en binario
E0 S0
E1 Circuito S 1
E2 S2
. E3 Ditial S3 .
. .
. .
Em Sn
69
70 CAPÍTULO 4. CIRCUITOS COMBINACIONALES
E3 S2
E2 Circuito 1 S1
E1
E0
Circuito 2 S0
Figura 4.2: Un circuito digital constituido por otros dos circuitos interconectados
Así, podemos decir que todo circuito digital genérico tendrá una parte combinacional y otra
parte secuencial. En este capítulo nos centraremos en los circuitos combinacionales, que no
tienen parte secuencial. Estos circuitos se caracterizan porque NO almacenan información.
Las salidas están relacionadas con las entradas a través de una función booleana, como las
vistas en el capítulo 3. Como veremos más adelante, los circuitos secuenciales son capaces de
“recordar” números que han recibido anteriormente.
Cada bit de salida de un circuito combinacional, se obtiene mediante una función booleana apli-
cado a las variables de entrada. Así, si un circuito tiene n salidas, necesitaremos n funciones
booleanas para caracterizarlo.
En la figura 4.3 vemos un circuito combinacional que tiene 3 entradas: A,B y C, y dos salidas
F, G, que son dos funciones booleanas que dependen de las variables de entrada: F(A,B,C) y
G(A,B,C). Por ejemplo, estas funciones podrían tener una pinta así:
En este capítulo estudiaremos las puertas lógicas, que son los elementos que usamos para
4.2. PUERTAS LÓGICAS 71
A Circuito F(A,B,C)
B Combinacional G(A,B,C)
C
construir estos circuitos, y cómo las funciones booleanas las podemos realizar mediante puertas
lógicas, lo que se denomina implementación de funciones booleanas.
A
A.B
B
72 CAPÍTULO 4. CIRCUITOS COMBINACIONALES
Esta puerta implementa la operación del Algebra de Boole. La que se muestra en esta
figura tiene dos entradas, sin embargo puede tener más. Lo mismo ocurre con el resto de
puertas lógicas que veremos a continuación.
Puerta OR
A
A+B
B
Implementa la operación + del Algebra de Boole. Puede tener también mas de dos entradas.
A A
Tiene sólo una entrada y realiza la operación de negación lógica. Esta puerta se conoce
normalmente con el nombre de inversor.
Sólo con estos tres tipos de puertas se pueden implementar cualquier función booleana.
Ejemplo:
Analizar el siguiente circuito y obtener la expresión booleana de la salida:
A
B F
C
El circuito está constituido por dos puertas, una AND de tres entradas y un inversor. A
la salida de la puerta AND se tiene el producto de las tres variables de entrada
y al
atravesar el inversor se obtiene la expresión final de F, que es:
Ejemplo:
Obtener la expresión booleana de salida del siguiente circuito:
4.2. PUERTAS LÓGICAS 73
A
B F
El circuito está constituido por dos puertas AND, dos inversores y una puerta OR. La expre-
sión de F es:
Puerta NAND
A
A.B
B
Puerta NOR
A
A+B
B
74 CAPÍTULO 4. CIRCUITOS COMBINACIONALES
Lo mismo que con las puertas NAND, con las puertas NOR se puede implementar cual-
quier función booleana (ver apartado 4.3.4)
Puerta XOR
A
A + B
B
Ejemplo:
Analizar el siguiente circuito y obtener la expresión booleana de la salida:
A
B F
Es decir, que es un circuito nulo. Con independencia de lo que se introduzca por las entradas,
a su salida siempre se obtendrá ’0’.
Ejercicios
Hacer el ejercicio 1.
4.2. PUERTAS LÓGICAS 75
14 13 12 11 10 9 8
VCC
GND
1 2 3 4 5 6 7
impreso, o por sus siglas en inglés PCB (printed circuito Board). En la figura 4.7 se muestra la
parte inferior de una de estas placas. Por los agujeros se introducen las patas de los componentes
y luego se sueldan. Los distintos agujeros están interconectados por pistas de cobre. Además
existe una capa de un barniz verde para que las pistas no estén “al aire” y se puedan producir
cortocircuitos.
Los VLSI se corresponden con los microprocesadores y los microcontroladores. Muchos di-
seños que antes se realizaban sólo con electrónica digital, ahora es más sencillo y barato hacerlos
4.2. PUERTAS LÓGICAS 77
Figura 4.7: Una placa de circuito impreso (PCB) vista desde abajo
1. Estudio de las especificaciones iniciales, para entender realmente qué es lo que hay que
diseñar. Este punto puede parecer una trivialidad, sobre todo en el entorno académico don-
de las especificaciones son muy claras. Sin embargo, en la realidad, es muy difícil llegar a
comprender o entender qué es lo que hay que diseñar.
En este apartado veremos el punto 4, es decir, veremos cómo a partir de una función (que ya está
simplificada) podemos obtener el circuito correspondiente, o cómo la podemos modificar para
utilizar un tipo determinado de puertas lógicas. Esto se denomina implementar una función.
Ejemplo 1:
Implementar la siguiente función, utilizando cualquier tipo de puertas lógicas:
Se trata de implementar un circuito que tiene tres bits de entrada: A, B y C y como salida se
quiere obtener la función F indicada. Se puede realizar de muchas formas, pero vamos a ir poco
a poco. Primero nos fijamos que no tenemos ninguna restricción. Es decir, en el enunciado nos
permiten utilizar cualquier tipo de puerta lógica, y con cualquier número de entradas. Tampoco
vamos a simplificar la función, porque lo que queremos es ver cómo implementarla, aunque ya
hemos visto que siempre hay que simplificar!!! (y de hecho, esta función se puede simplificar
más, ¿como?, se deja como ejercicio). Vemos que en la función hay tres términos que van suma-
, y . La puerta lógica que representa la suma es la OR, por lo que podemos
dos: ,
escribir:
A
BC F
ABC
Ahora el problema es más sencillo. Hay que obtener esos tres términos independientemente.
Uno ya lo tenemos, que es A (es directamente una de las entradas). El término es el producto
de B y , y lo podemos obtener con una puerta AND así:
80 CAPÍTULO 4. CIRCUITOS COMBINACIONALES
B
BC
C
C C
A
B ABC
C
A A
B B
C BA
F
4.3. DISEÑO DE CIRCUITOS COMBINACIONALES 81
Ejemplo 2:
Implementar la siguiente función, utilizando el menor número posible de puertas lógi-
cas de cualquier tipo. La función está simplificada al máximo.
En este caso nos dicen que la función está simplificada al máximo, por lo que no hay que
hacer. ¡¡¡Pero es una pregunta que siempre nos tendremos que hacer!! ¿Está simplificada al má-
ximo?. También nos introducen una restricción: usar el menor número posible de puertas lógicas.
Lo primero que se nos puede ocurrir es utilizar el método del ejemplo anterior, sustituyen-
do las operaciones del Algebra de Boole por puertas lógicas. El circuito que obtenemos es el
siguiente:
A
B
C F
D
4 inversores
La única restricción que nos han impuesto es utilizar el menor número posible de puertas lógi-
cas... ¿Podemos implementar este circuito con menos puertas?. Echemos un vistazo la función F.
Teniendo en cuenta que existen otras puertas, como las NAND, XOR, etc... vamos a realizar las
siguientes operaciones:
82 CAPÍTULO 4. CIRCUITOS COMBINACIONALES
A
B F
C
D
¡¡Sólo hemos utilizado 3 puertas!!. Una puerta NAND, una XOR y una OR, todas de dos
entradas.
Ejercicios:
Hacer el ejercicio 2
A
A.B = A+B
B
Si introducimos la misma variable booleana por las dos entradas de una NAND obtendremos
lo siguiente:
4.3. DISEÑO DE CIRCUITOS COMBINACIONALES 83
Gráficamente:
A
A.A = A
Tenemos que diseñar un circuito con puertas NAND que implemente la función
. Lo
que haremos será aplicar propiedades del Algebra de Boole a esta función hasta dejarla de forma
que la podamos implementar directamente con puertas NAND. Podemos hacer lo siguiente:
La expresión
se implementa con una puerta NAND y la expresión será por tanto
la negación de la NAND. Como ya sabemos como negar utilizando una puerta NAND, el circuito
resultante es:
A A.B
A.B
B
La función que queremos implementar con puertas NAND es: . Aplicando pro-
piedades del Algebra de Boole, esta expresión la convertimos en la siguiente:
que es el negado de un producto de dos términos, es decir, es una puerta NAND aplicada a
y :
84 CAPÍTULO 4. CIRCUITOS COMBINACIONALES
A A
A.B = A+B
B B
No nos dejemos asustar por aparente complejidad de esta expresión. Fijémonos en que la
expresión es la suma de dos términos negados, es decir, que tiene la forma de:
. ¡¡Y
esto es una puerta NAND!!, que lo podemos poner de la siguienet manera:
A.B
F
A.B
El término
tiene también la forma de una puerta NAND, puesto que es del tipo .
Y lo mismo le ocurre al término
. El circuito nos queda así:
A A.B
B
F
A
B
A.B
A
A A.B
B
F
A
B
B A.B
Ejemplo 1:
Implementar la siguiente función utilizando únicamente puertas NAND. La función está sim-
plificada al máximo:
Tendremos que aplicar la propiedades del Algebra de Boole para dejar esta expresión de
forma que la podamos implementar con puertas NAND. Como el enunciado no nos pone ninguna
restricción, podremos usar puertas NAND con el número de entradas que queramos. Una puerta
NAND de tres entradas puede realizar las siguientes operaciones:
Si aplicamos una doble negación a F y luego aplicamos sucesivamente las leyes de DeMorgan
(o el teorema de Shannon):
B F
Ejemplo 2:
Es la misma función que la del apartado anterior, sin embargo, ahora tenemos la restricción
de que sólo podemos usar puertas NAND de dos entradas. Si hacemos la misma transformación
que antes, obtenemos:
A+B+C
F
A+B+C
A
A+B+C
BC
AB
A+B+C
C
B F
Ejercicios:
Hacer el ejercicio x
Lo mismo que con las puertas NAND, con las puertas NOR se puede implementar cualquier
función booleana. Vamos a ver cómo se pueden implementar el resto de puertas lógicas. Recor-
demos que las expresiones a las salidas de las puertas NOR son:
A
A+B = A.B
B
88 CAPÍTULO 4. CIRCUITOS COMBINACIONALES
Se hace de la misma manera que con las puertas NAND. Si introducimos la misma variable
por las dos entradas, obtenemos la variable negada:
A A+A = A
es decir, que podemos utilizar una puerta NOR y luego un inversor, que ya sabemos cómo
implementarlo con puertas NOR. Lo que nos queda es:
A A+B
A+B
B
A
A
A.B
B
B
4.3. DISEÑO DE CIRCUITOS COMBINACIONALES 89
y de la misma manera que hemos hecho con las puertas NAND, vamos a ir implementando
esta función poco a poco. Primero vemos que hay una puerta NOR cuyas entradas son
y
, y que está negada:
A.B+A.B
A.B
F
A.B
A continuación implementamos
y
, teniendo en cuanta que los podemos reescribir
de esta forma:
Gráficamente:
A
A.B
B
A
A.B
B
Uniendo “todas las piezas”, el circuito final que nos queda es:
90 CAPÍTULO 4. CIRCUITOS COMBINACIONALES
A B
A.B
B A.B+A.B
F
A
A.B
Ejercicios:
Hacer el ejercicio x
4.4.1. Introducción
En este apartado diseñaremos un circuito digital que gobierne el comportamiento de un
robot seguidor de línea. El objetivo es que el alumno vea cómo todo lo aprendido hasta ahora
se puede aplicar, y obtener también algo de intuición sobre el tipo de circuitos digitales que se
pueden diseñar.
Este apartado es opcional. El lector no interesado puede saltar directamente al apartado 4.6.
Sin embargo los alumnos inquietos pueden utilizarlo de base para introducirse en el mundo de la
robótica y de la electrónica digital práctica, para ver cómo se puede hacer un proyecto real.
Obviamente no construiremos el robot entero, esto nos llevaría más tiempo :-). Partiremos de
un robot ya existente, que tiene una estructura mecánica hecha con piezas de Lego, dos motores,
dos sensores para detectar el color negro sobre un fondo plano y la electrónica necesaria para
controlar los motores y leer los sensores. Este robot se comercializa bajo el nombre de Tritt. Sin
embargo utiliza un microcontrolador 6811 para implementar el “cerebro”. Nosotros diseñaremos
nuestro propio cerebro digital, para que el robot siga una línea negra. En la figura 4.8 se muestra
el microbot Tritt, junto a un disquete, para hacerse una idea de las dimensiones que tiene.
4.4. APLICACIÓN: DISEÑO DE UN CONTROLADOR PARA UN ROBOT SEGUIDOR DE LÍNEA91
En la figura 4.9 se muestra el mismo microbot Tritt pero sin la tarjeta CT6811 que lleva el
microcontrolador 6811. En vez de ella diseñaremos nuestro propio “cerebro digital”.
4.4.2. Especificaciones
Las especificaciones son:
Objetivo: Diseñar un circuito digital, capaz gobernar un microbot, haciendo que éste siga
una línea negra pintada sobre un fondo blanco.
Sensores: El microbot está dotado de dos sensores digitales capacez de diferenciar el color
negro del blanco. La salida de estos sensores es ’0’ cuando leen blanco y ’1’ cuando leen
negro. Denominaremos a este bit como C:
Sensor C
Color Blanco 0
Color Negro 1
Motores: Dos motores de corriente continua que son controlados cada uno mediante dos
bits, denominados S y P, descritos mediante la siguiente tabla de verdad:
92 CAPÍTULO 4. CIRCUITOS COMBINACIONALES
P S Motor
0 0 Parado
0 1 Parado
1 0 Giro derecha
1 1 Giro izquierda
El bit P es el bit de ’Power’. Indica si el motor está conectado o no. El bit S es el del
sentido de giro. Según su valor el motor girará a la derecha o a la izquierda (siempre que
el motor esté activado, con P=1).
Sensor 1 Sensor 2
Motor 1 Motor 2
Ruedas
Algoritmo: El algoritmo para seguir la línea negra es muy sencillo. Mientras los dos senso-
res detecten negro, el robot deberá avanzar. Cuando el sensor de la derecha detecte blanco y
el de la izquierda negro, el robot girará a la izquierda y cuando ocurra el caso contrario gi-
rará a la derecha. Si ambos sensores leen blanco permanecerá parado. Esto se esquematiza
en la siguiente figura:
Sensor 1 C1 S1
Circuito P1 Motor 1
a diseñar
Sensor 2 C2 S2
P2 Motor 2
94 CAPÍTULO 4. CIRCUITOS COMBINACIONALES
Ahora hay que definir el comportamiento del circuito, utilizando una tabla de verdad. Este
comportamiento nos lo da el algoritmo de seguir la línea. La tabla de verdad es la siguiente:
0 0 x 0 x 0
0 1 0 1 1 1
1 0 1 1 0 1
1 1 0 1 0 1
Con una ’x’ se han marcado las casillas de la tabla de verdad que es indiferente su valor.
Según nos convenga puede valer ’0’ ó ’1’.
Puesto que el circuito sólo tiene 2 variables de entrada, es inmediato obtener las expresiones
de , , y .
P1 S1 S2
C2 C2 C2
C1 0 1 C1 0 1 C1 0 1
0 0 1 0 x 0 0 x 1
1 1 1 1 1 0 1 0 0
4.5. ANÁLISIS DE CIRCUITOS COMBINACIONALES 95
C1 S1
C2 S2
P1
P2
Si lo construimos utilizando puertas TTL, necesitamos dos integrados, uno para los inversores
y otro para la puerta OR. Si en vez de ello lo implementamos sólo con puertas NAND, el circuito
es el siguiente:
S1
C1
P1
P2
C2
S2
Tiene también 3 puertas, pero ahora sólo es necesario un sólo circuito integrado.
tabla. Iremos rellenando el valor de estos puntos intermedios hasta obtener el valor de la función.
Y como siempre, lo mejor es ver ejemplos.
Ejemplo 1:
Obtener la tabla de verdad del siguiente circuito:
A B C
El problema se puede hacer de varias maneras. Y ese suele ser uno de los problemas. ¿Qué
camino escojo para obtener la tabla de verdad?. Por un lado podemos obtener la expresión de F,
pasando las puertas lógicas a operandos del Algebra de Boole y luego obtener la tabla de verdad.
O podemos obtener directamente la tabla de verdad. Sea cual sea el camino elegido, lo primero
que haremos será tomar puntos intermedios: seleccionamos las salidas de las puertas lógicas y
les asignamos una variable boolena:
A B C
!
Y ahora la representaríamos en una tabla de verdad. Sin embargo, suele ser más sencillo
4.5. ANÁLISIS DE CIRCUITOS COMBINACIONALES 97
obtener la tabla de verdad directamente del diseño y luego aplicar karnaugh para obtener la
expresión más simplificada de F, si fuese necesario. En la tabla de verdad dibujaremos nuevas
columnas en las que aparecen los puntos intermedios, que nos permitirán ir anotando los cálculos
intermedios para obtener F más fácilmente. La tabla de verdad sin rellenar es:
A B C
!
!
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
Y ahora vamos columna por columna, rellenando la información. Comenzaremos por la co-
lumna a. Hay que hacer la NAND de B y C. Para no confundirnos, nos dibujamos la tabla NAND
para dos variables:
A B
0 0 0 1
0 1 0 1
1 0 0 1
1 1 1 0
y nos fijamos en que sólo vale ’0’ cuando ambas variables son 1. Recorremos las filas de B
y C buscando el caso en el que B=1 y C=1, y anotamos un ’0’. Para el resto de casos a=’1’. Nos
queda lo siguiente:
A B C
!
!
0 0 0 1
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 0
98 CAPÍTULO 4. CIRCUITOS COMBINACIONALES
Se ha marcado con “negrita” los dos casos en los que B=1 y C=1. Para el resto de casos “no
hemos tenido que pensar”, se puede rellenar de forma directa. Este método nos permite obtener
las tablas de verdad de una manera muy rápida y cometiendo muy pocos errores.
Contiemos con la siguiente columna. En este caso hay que rellenar una columna con el pro-
ducto entre B y A. Nuevamente nos fijamos en la tabla de la operación AND y vemos que el
resultado sólo vale ’1’ cuando B=1 y A=1. Para el resto de casos se tendrá ’0’:
A B C
!
!
0 0 0 1 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 0
1 0 0 1 0
1 0 1 1 0
1 1 0 1 0
1 1 1 0 1
A B C
!
!
0 0 0 1 0 1
0 0 1 1 0 1
0 1 0 1 0 1
0 1 1 0 0 0
1 0 0 1 0 1
1 0 1 1 0 1
1 1 0 1 0 1
1 1 1 0 1 1
Aunque no los pide el enunciado del ejercicio, vamos a obtener la expresión más simplifi-
cada de F, usando Karnagh, y la vamos a comparar con la expresión F que antes obtuvimos. El
diagrama de Karnaugh es muy sencillo de obtener a partir de la tabla de verdad, puesto que sólo
un ’0’. Pintamos este ’0’ en su casilla correspondiente (A=0, B=1 y C=1) y el resto de casillas
valdrán ’1’:
4.6. RESUMEN 99
BC
A 00 01 11 10
0 1 1 0 1
1 1 1 1 1
BC
A 00 01 11 10
0 1 1 0 1
1 1 1 1 1
Vemos que está más simplificada que la expresión inicial que obtuvimos aplicando el Algebra
de Boole.
4.6. Resumen
Todo circuito digital está constituido en su interior por circuitos combinacionales y/o cir-
cuitos secuenciales. Estos últimos son capaces de almacenar información. En este capítulo he-
mos trabajado con circuitos combinaciones, en los que sus salidas dependen directamente de
las entradas, y no son capaces de almacenar información ni recordar cuáles fueron las entradas
anteriores.
Para la construcción de los circuitos combinacionales, se emplean las puertas lógicas, que
permiten realizar electrónicamente las operaciones del Algebra de Boole. Las puertas lógicas
básicas con AND, OR y NOT, pero también existen otras puertas lógicas que se usan mucho:
NAND, NOR y XOR. Cualquier circuito combinacional se puede construir a partir de las puertas
básicas, combinándolas adecuadamente. Sin embargo, también es posible implementar circuitos
utilizando sólo puertas NAND, o sólo puertas NOR.
Las puertas lógicas se encuentran encapsuladas en un circuito integrado. Esto se denomina
100 CAPÍTULO 4. CIRCUITOS COMBINACIONALES
tecnología TTL. También es posible utilizar otras tecnologías para la construcción de circuitos
digitales, como son los dispositivos lógicos programables o las FPGA’s.
El diseño de un circuito combinacional es sencillo. A partir de unas especificaciones se
obtiene la tabla de verdad de las salidas del circuito, y utilizando el método de simplificación
de Karnaugh obtendremos la función más simplificada. Las funciones así obtenidas se podrán
implementar de diversas maneras, entre las que hemos visto, su implementación usando puertas
básicas, sólo puertas NAND, o sólo puertas NOR.
Como ejemplo práctico, hemos diseñado un circuito combinacional que actúa de “cerebro”
de un Microbot, controlándolo de manera que siga una línea negra sobre un fondo blanco.
Finalmente hemos visto cómo se analizan los circuitos, obteniendo sus tablas de verdad o
ecuaciones booleanas a partir de las puertas lógicas.
4.7. Ejercicios
Ejercicio 1:
Obtener las expresiones booleanas de las salidas de los siguientes circuitos (no hay que sim-
plificar ni operar estas expresiones):
Circuito 1:
A
B
C F
Circuito 2:
4.7. EJERCICIOS 101
A
B
C
F
D
E
Circuito 3:
A
B
C F
D
Ejercicio 2:
Implementar las siguientes función, utilizando cualquier tipo de puertas lógicas, sabien-
do que todas las funciones están simplificadas al máximo.
1.
Ejercicio 2:
Implementar sólo con puertas NAND
Ejercicio 3:
Implementar sólo con puertas NOR
Ejercicio x:
Dada la función
:
5.1. Introducción
Los circutios MSI son los que están constituidos por un número de puertas lógicas com-
prendidos entre 12 y 100 (ver apartado 4.2.4). En este capítulo veremos una serie de circuitos
combinaciones que se utilizan mucho en electrónica digital y que son la base para la creación
de diseños más complejos. Aunque se pueden diseñar a partir de puertas lógicas, estos circuitos
se pueden tratar como “componentes”, asignándoles un símbolo, o utilizando una cierta nomen-
clatura.
Los circuitos que veremos son los siguientes:
Multiplexores y demultiplexores
Codificadores y decodificadores
Comparadores
Lo más importante es comprender para qué sirven, cómo funcionan y que bits de entrada
y salida utilizan. Estos circuitos los podríamos diseñar perfectamente nosotros, puesto que se
trata de circuitos combinacionales y por tanto podemos aplicar todo lo aprendido en el capítulo
4.
103
104 CAPÍTULO 5. CIRCUITOS MSI (1): MULTIPLEXORES Y DEMULTIPLEXORES
Tuberia de
Manguera de entrada
agua potable
a la granja
0
Tuberia de agua 1
para regar Llave de
paso
5.2. Multiplexores
5.2.1. Conceptos
Un Multiplexor es un circuito combinacional al que entran varios canales de datos, y sólo
uno de ellos, el que hallamos seleccionado, es el que aparece por la salida. Es decir, que es un
circuito que nos permite SELECCIONAR que datos pasan a través de dicho componente.
Vamos a ver un ejemplo NO electrónico. Imaginemos que hay dos tuberías (canales de datos)
por el que circulan distintos fluidos (datos). Una transporta agua para regar y la otra agua potable.
Estas tuberías llegan a una granja, en la cual hay una única manguera por la que va a salir el agua
(bien potable o bien para regar), según lo que seleccione el granjero posicionando la llave de
paso en una u otra posición. En la figura 5.1 se muestra un esquema. Las posiciones son la 0 para
el agua potable y 1 para el agua de regar.
Moviendo la llave de paso, el granjero puede seleccionar si lo que quiere que salga por la
manguera es agua potable, para dar de beber al ganado, o agua para regar los cultivos. Según
cómo se posicione esta llave de paso, en la posición 0 ó en la 1, seleccionamos una tubería u otra.
Pero ¿por qué sólo dos tuberías?. Porque es un ejemplo. A la granja podrían llegar 4 tuberías.
En este caso el granjero tendría una llave de paso con 4 posiciones, como se muestra en la
figura 5.2. Esta llave se podría poner en 4 posiciones distintas para dar paso a la tubería 0, 1, 2
ó 3. Obsérvese que sólo pasa una de las tuberías en cada momento, ¡y sólo una!. Hasta que el
granjero no vuelva a cambiar la llave de paso no se seleccionará otra tubería.
Con este ejemplo es muy fácil entender la idea de multiplexor. Es como una llave de paso,
que sólo conecta uno de los canales de datos de entrada con el canal de datos de salida.
Ahora en vez de en tuberías, podemos pensar en canales de datos, y tener un esquema como
el que se muestra en la figura 5.3, en la que hay 4 canales de datos, y sólo uno de ellos es
seleccionado por el multiplexor para llegar a la salida . En general, en un multiplexor tenemos
dos tipos de entradas:
5.2. MULTIPLEXORES 105
Tuberia 0 0
1 Tuberia de acceso
Tuberia 1
a la granja
Tuberia 2 2
Tuberia 3 3
Llave de paso
de 4 posiciones
Canal 0
4,57,98,92,202... 0
Canal 1
0,1,7,11,55,35... 1 Canal de salida
Multiplexor 11,23,44,234,156...
Canal 2
11,23,44,234,156... 2
(Canal 2 seleccionado)
Canal 3
0,0,0,2,3,45... 3
2
Entrada de
seleccion
A0
A1
A
Entradas de datos
Entradas de datos
B0 Salidas
B1 O0 B Salida
O1 O
C0 C
C1 D
S1 S0
D1
D0
S1 S0
Entradas de seleccion
Entradas de seleccion
Así en los dos multiplexores de la figura 5.4, vemos que el de la izquierda tiene 2 bits de salida,
por tanto sus canales de entrada son de 2 bits. El de la derecha tiene 1 bit de salida, por tanto los
canales de 1 bit.
Los multiplexores en lo que principalmente nos centraremos son los que tienen canales de 1
bit. A partir de ellos podremos construir multiplexores mayores, bien con un mayor número de
canales de entrada o bien con un mayor número de bits por cada canal.
Llamaremos así a los multiplexores que tienen canales de entrada de 1 bit, y por tanto
sólo tienen un bit de salida. Estudiaremos estos multiplexores, comenzando por el más simple
de todos, el que sólo tienen una entrada de selección.
El multiplexor más simple es el que sólo tiene una entrada de selección, S, que permite
seleccionar entre dos entradas de datos, según que
ó
. Su aspecto es el siguiente:
I0
Entradas
Salida
F
I1
S
Entrada de
seleccion
Entradas
Salida
MX
Seleccion
Construyamos la tabla de verdad. Lo primero que nos preguntamos es, ¿Cuantas entradas
tengo en este circuito?. En total hay tres entradas. Dos son de datos: , y una es de selección:
. La tabla de verdad tendrá en total filas. Para construir esta tabla de verdad sólo hay que
entender el funcionamiento del multiplexor e ir caso por caso rellenando la tabla. Por ejemplo,
¿qué ocurre si
,
y
tendrá su mismo valor. Y puesto que entonces . Si hacemos lo mismo para todos
los casos, tendremos la siguiente tabla de verdad:
.
0 0 0 0 En el primer bloque, se selecciona que
0 0 1 1 aparecerá en la salida. Se ha puesto en ne-
0 1 0 0 grita todos los valores de para que se vea
0 1 1 1 que son los mismos que hay a la salida. En
1 0 0 0 el bloque inferior, lo que se selecciona es
1 0 1 0 y es lo que se obtiene por la salida.
1 1 0 1
1 1 1 1
I1 I0
S 00 01 11 10
0 0 1 1 0
1 0 0 1 1
(5.1)
Y si ahora “escuchamos” lo que la ecuación nos dice, veremos que tiene mucho sentido:
¡¡Es justo la definición de un multiplexor!! La salida toma el valor de una de las entradas,
según el valor que tome la entrada de selección.
En realidad, el multiplexor lo podríamos haber descrito de una manera más sencilla, y po-
dríamos haber obtenido la ecuación de otra forma. Veamos cómo.
La función F que describe el comportamiento de un multiplexor con una única entrada de
selección, la podemos describir mediante la siguiente tabla:
S F
0
1
que lo que nos viene a decir es lo mismo que su ecuación: cuando S=0, por la salida del
multiplexor aparece el valor y cuando S=1, aparece el valor . Estamos considerando las
variables e como parámetros y NO como variables de entrada del circuito y por tanto
estamos considerando como si la función F sólo dependiese de la variable S, es decir, tenemos la
función F(S). ¿Cómo podemos obtener la ecuación del multiplexor a partir de esta tabla?:
aplicando el teorema de expansión, que vimos en el apartado 3.4 obtenemos los siguiente:
cuando S=0,
. La ecuación del multiplexor es la siguiente: y F(0) es la salida
110 CAPÍTULO 5. CIRCUITOS MSI (1): MULTIPLEXORES Y DEMULTIPLEXORES
I0
I1
Entradas
Salida
F
I2
I3
S1 S0
Entradas de
seleccion
F
0 0
0 1
1 0
1 1
5.2. MULTIPLEXORES 111
que lo que nos está expresando es que la salida del multiplexor valdrá , , o según el
valor que tomen las variables de entrada y . Estamos considerando que la función F sólo
depende de estas dos variables: y que , , e son parámetros, es decir, valores
constantes que pueden valer ’0’ ó ’1’.
Si aplicamos el teorema de expansión a la función , desarrollándola por , obte-
nemos lo siguiente:
(5.2)
Se deja como ejercicio el que se compruebe la ecuación para el resto de valores de las entradas
de selección.
Y lo mismo podemos hacer para cualquier multiplexor con un número de entradas de selec-
ción mayor, lo que ocurre que la ecuación tendrá muchos más términos.
5.3. DEMULTIPLEXORES 113
Tuberia de entrada
a la granja 0 Manguera 0
1 Manguera 1
Llave de
paso
5.3. Demultiplexores
5.3.1. Conceptos
El concepto de demultiplexor es similar al de multiplexor, viendo las entradas de datos como
salidas y la salida como entradas. En un multiplexor hay varias entradas de datos, y sólo una de
ellas se saca por el canal de salida. En los demultiplexores hay un único canal de entrada que se
saca por una de las múltiples salidas (y sólo por una!!!).
Si utilizamos el símil de la granja y las tuberías, podemos imaginar el siguiente escenario.
Supongamos que ahora a la granja le llega una única tubería con agua, pero en el interior de la
granja hay varias mangueras, cada una para limpiar una zona del establo o dar de beber a los
animales de esa zona. Cómo sólo hay un granjero, sólo podrá usar una de las mangueras cada
vez (el granjero no podrá usar a la vez dos mangueras, porque están en sitios diferentes!!).
Para seleccionar qué manguera quiere usar en cada momento, hay una llave de paso, de
manera que si la sitúa en una posición, el agua que viene por la entrada saldrá por la manguera
0, mientras que si la sitúa en la otra posición, el agua saldrá por la manguera 1 (ver figura 5.5)
De la misma manera que en los multiplexores puede haber varias entradas, en los demulti-
plexores puede haber varias salidas. Por ejemplo en la figura 5.6 se muestra el mismo sistema de
tuberías de la granja, pero ahora hay 4 mangueras, para llegar a 4 zonas distintas de la granja.
Ahora el granjero tendrá que posicionar la llave de paso en una de las 4 posiciones posibles, para
que el agua salga por la manguera seleccionada.
Ya comprendemos cómo funcionan los demultiplexores. Si lo aplicamos al mundo de la elec-
trónica, en vez de tuberías tendremos canales de datos. Habrá un único canal de entrada, por
el que llegarán números, que saldrán sólo por uno de los canales de salida, el que tengamos
seleccionado, como se muestra en la figura 5.7.
En general en un demultiplexor tendremos:
0 Manguera 0
Tuberia de acceso 1 Manguera 1
a la granja
2 Manguera 2
3 Manguera 3
Llave de paso
de 4 posiciones
Canales de salida
Canal 0
0
Demultiplexor
Canal 3
3
2 (Canal 2 seleccionado)
Entrada de
seleccion
Una entrada de selección: que indica a cuál de las salidas se manda la entrada
Varios canales de datos de salida. Sólo estará activo el que se haya seleccionado.
Sistema Sistema
a A
Sistema Sistema
b B
DEMUX
MUX
Sistema Sistema
c C
Sistema Sistema
d D
Circuito Circuito
control control
Figura 5.9: Uso de un multiplexor y demultiplexor para transmisión de datos por un único cable
por qué salidas debe salir la información que llega por la entrada.
Lo que hemos conseguido es que toda la información enviada por un sistema, llega a su
homólogo en el extremo anterior, pero sólo hemos utilizado un único canal de datos.
Un demultiplexor, como cualquier otro circuito digital trabaja sólo con números. Pero estos
números vendrán expresados en binario, por lo que los canales de datos de entrada y salida,
y la entrada de selección vendrán expresados en binario y tendrán un número determinado de
bits.
Una vez más nos hacemos la pregunta, ¿Cuantos bits?. Depende. Depende de la aplicación
que estemos diseñando o con la que estemos trabajando. En la figura 5.10 se muestran dos demul-
tiplexores de 4 canales, por lo que tendrán 2 bits para la entrada de selección. El de la izquierda
tiene canales de 2 bits y el de la derecha de 1 bit.
Los multiplexores que vamos a estudiar son lo que tienen canales de 1 bit. A
partir de ellos podremos construir multiplexores con un mayor número de bits por
canal.
5.3. DEMULTIPLEXORES 117
Canal A
A0
Canal de entrada
A
Canales de salida
A1
B
Canal de entrada
Canal B I
Canales de salida
B0 C
I0 B1
I1 D
Canal C S0 S 1
C0
C1
Canal D
D1
Entradas de seleccion
D0
S0 S1
Entradas de seleccion
El demultiplexor más simple es el que tiene una entrada de selección, una entrada de datos y
dos salidas. Según el valor de la entrada de selección, la entrada de datos se sacará por la salida
o por la :
Salida 0
Entrada de O0
datos
I Salida 1
O1
S
Entrada de
seleccion
Nos hacemos la misma pregunta que en el caso de los multiplesore: ¿Cómo podemos expre-
sar las funciones de salida usando el Algebra de Boole?. Podemos escribir la tabla de verdad y
obtener las expresiones más simplificadas. Para tener la tabla aplicamos la definición de demul-
tiplexor y vamos comprobando caso por caso qué valores aparecen en las salidas. Por ejemplo, si
S=1 e I=1, se estará seleccionando la salida , y por ella saldrá el valor de I, que es 1. La salida
118 CAPÍTULO 5. CIRCUITOS MSI (1): MULTIPLEXORES Y DEMULTIPLEXORES
S I
0 0 0 0
0 1 0 1
1 0 0 0
1 1 1 0
Para obtener las expresiones de y no hace falta aplicar Karnaugh puesto que cada
salida sólo toma el valor ’1’ para un caso y ’0’ para todos los restantes. Desarrollando por la
primera forma canónica:
Y podemos comprobar que si hemos seleccionado la salida 0 (
), entonces
y
S
0 I 0
1 0 I
Entrada de
O0 Salida 0
datos O1 Salida 1
I
Salida 2
O2
O3 Salida 3
S1 S0
Entrada de
seleccion
0 0 0 0 0 I
0 1 0 0 I 0
1 0 0 I 0 0
1 1 I 0 0 0
La entrada I se saca por la salida indicada en las entradas de selección. Las ecuaciones de las
funciones de salida son:
sólo cuando
y ”. Para el resto de valores que pueden tomar las entradas de selección y ,
siempre será 0.
120 CAPÍTULO 5. CIRCUITOS MSI (1): MULTIPLEXORES Y DEMULTIPLEXORES
Para demultiplexores con mayor número de entradas de selección, las ecuaciones serán simi-
lares. Por ejemplo, en el caso de un demultiplexor que tenga tres entradas de selección: y
, y que por tanto tendrá 8 salidas, la ecuación para la salida será:
Los multiplexores, y en general la mayoría de circuitos MSI, disponen de una entrada adi-
cional, llamada entrada de validación (en inglés Enable). Esta entrada funciona como un inte-
rruptor de encendido/apagado para el circuito MSI. Si la entrada de validación está activada,
el circuito funcionará normalmente. Pero si esta está desactivada, el circuito sacará el valor
’0’ por todas sus salidas, independientemente de lo que llegue por sus entradas. Se dice que está
deshabilitado (no está en funcionamiento).
Las entradas de validación se les suele llamar E (del inglés Enable) y pueden ser de dos tipos:
activas a nivel alto ó activas a nivel bajo.
Si esta entrada se encuentra a ’1’ (E=1) el multiplexor funciona normalmente (está conecta-
do). Si se encuenrta a ’0’ (E=0) entonces su salida será ’0’ (estará desconectado). A continuación
se muestra un multiplexor de 4 entradas de datos, 2 entradas de selección y una entrada de vali-
dación activa a nivel alto:
5.4. MULTIPLEXORES CON ENTRADA DE VALIDACIÓN (ENABLE) 121
I0
I1
I2
Z
I3
E
S1 S0
Entrada de
validacion
E
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0
1 0 1
1 1 0
1 1 1
Sólo en los casos en los que E=1, el multiplexor se comporta como tal. Cuando E=0, la salida
Z siempre está a ’0’. Esta tabla de verdad se suele escribir de una manera más abreviada de la
siguiente manera:
E
0 x x 0
1 0 0
1 0 1
1 1 0
1 1 1
Con las ’x’ de la primera fila se indica que cuando E=0, independientemente de los valores
que tengan las entradas y la salida siempre tendrá el valor ’0’.
¿Y cual sería la nueva ecuación de este multiplexor? La misma que antes pero ahora multi-
plicada por E:
122 CAPÍTULO 5. CIRCUITOS MSI (1): MULTIPLEXORES Y DEMULTIPLEXORES
Otros fabricamentes de circuitos integrados utilizan una entrada de validación activa a nivel
bajo, que es justamente la inversa de la enterior. Se suele denotar mediante . Cuando la entrada
E está a ’0’ el multiplexor funciona normalmente, y cuando está a ’1’ está desconectado. En la
siguiente figura se muestran dos multiplexores de 4 entradas, dos entradas de selección y una
entrada de validación activa a nivel bajo. Ambos multiplexores son iguales, pero se han utilizado
notaciones distintas. En el de la izquierda se utiliza y en el de la derecha E pero con un pequeño
círculo en la entrada:
I0 I0
I1 I1
I2 I2
Z Z
I3 I3
E E
S1 S0 S1 S0
Entradas de
validacion
E
0 0 0
0 0 1
0 1 0
0 1 1
1 x x 0
Cuando E=1,
y entonces Z=0, con lo que el multiplexor se encuentra deshabilitado.
5.5. EXTENSIÓN DE MULTIPLEXORES 123
Queremos: Tenemos:
I0
I1
I0
I2 Z
I3 I1
Z S
I4
I5
I6
I7
S2 S1 S0
los multiplexores de la primera columna tiene peso 0, la segunda peso 1 y la última peso 2:
I0 I0
Z
I1 I1 I0
S Z
I1
S
I2 I0
Z
I3 I1 I0
S Z
I1
S
I4 I0
Z
I5 I1 I0
S Z
I1
S
I6 I0
Z
I7 I1
S
S2 S1 S0
¡¡Vamos a comprobarlo!! (Siempre que se hace un diseño hay que comprobar si es correcto).
Vamos a comprobar qué ocurre si seleccionamos el canal 6. Introducimos en binario el número
6 por las entradas de selección:
,
y
. Por la entrada S de los multiplexores
de la primera columna se introduce un ’0’, por lo que estos multiplexores sacan por sus salidas
lo que hay en sus entradas : , , e . Por la entrada de selección de los multiplexores de
la segunda columna se introduce un ’1’ por lo que están seleccionando su canal . A la salida
de estos multiplexores se tendrá: e . Finalmente, el multiplexor de la última columna está
seleccionando su entrada , por lo que la salida final es (Recordar la idea de multiplexor como
una llave de paso que conecta tuberías de agua):
5.5. EXTENSIÓN DE MULTIPLEXORES 125
I0 I0 I0
Z
I1 I1
I0
S I2
Z
I1
S
I2 I0 I2
Z
I3 I1 I0 I6
S Z
I1
S
I4 I0 I4
Z
I5 I1 I0 I6
S Z
I1
S
I6 I0 I6
Z
I7 I1
S
S2 S1 S0
1 1 0
Ejemplo:
Queremos Tenemos:
I0
I1
I2
I3
I4
I5 I0
I6 I1
I7 Z Z
I2
I8 I3
I9 S1 S0
I10
I11
I12
I13
I14
I15
S3 S2 S1 S0
Los conectamos en cascada, para lo cual necesitamos una primera columna de 4 multiplexo-
res de 4 entradas, con entradas de todos ellos unidos, así como las . En la segunda fila hay
un único multiplexor de 4 entradas:
5.5. EXTENSIÓN DE MULTIPLEXORES 127
I0 I0
I1 I1
Z
I2 I2
I3 I3
S1 S0
I4 I0
I5 I1
Z
I6 I2
I7 I3 I0
S1 S0 I1 Z
I2
I3
I8 I0 S1 S0
I9 I1 Z
I10 I2
I11 I3
S1 S0
I12 I0
I13 I1 Z
I14 I2
I15 I3
S1 S0
S3 S2 S1 S0
Para conseguir esto hay que conectarlos en paralelo. Imaginemos que tenemos queremos
construir un multiplexor de dos canales de entrada, cada uno de ellos de 2 bits, y para ello
disponemos de multiplexores de 2 canales de un bit:
128 CAPÍTULO 5. CIRCUITOS MSI (1): MULTIPLEXORES Y DEMULTIPLEXORES
Queremos: Tenemos:
A0
Canal 0 A1 I0
Z
Z0 I1
B0 Z1 S
Canal 1 B1
S
Utilizaremos dos multiplexores de lo que tenemos, uno por cada bit que tengamos en el
nuevo canal de salida. Como los canales en el nuevo multiplexor son de 2 bits, necesitaremos 2
multiplexores de canales de 1 bit. Uno de estos multiplexores será al que vayan los bits de menos
peso de los canales de entrada y el otro los de mayor peso. Las entradas de selección de ambos
están unidas:
A0 I0
Z
A1 I1
S Z0
Z1
B0 I0
Z
B1 I1
S
Si con en este nuevo multiplexor hacemos S=0, las salidas serán y . Y si
hacemos S=1, entonces obtenemos y . ¡¡Es lo que andábamos buscando!!. Por
la salida obtenemos bien el número que viene por el canal 0 ( ó bien el número que viene
por el canal 1( ).
Ejemplo:
Queremos: Tenemos:
A0
A1
Canal 0
A2
A3
B0
Canal 1 B1
B2 Z0 I0
B3 Z1 I1 Z
C0 Z2 I2
C1 Z3 I3
Canal 2 S1 S0
C2
C3
D0
Canal 3 D1
D2
D3
S1 S0
Ahora necesitaremos 4 multiplexores de los que tenemos, a cada uno de los cuales les llegan
los bits del mismo peso de los diferentes canales. Por el primer multiplexor entran los bits de
menor peso ( y ) y por el último los de mayor ( y ). En el dibujo no se
muestran todas las conexiones para no complicarlo:
130 CAPÍTULO 5. CIRCUITOS MSI (1): MULTIPLEXORES Y DEMULTIPLEXORES
A0 I0
A1 I1
Z
A2 I2
A3 I3
S1 S0
B0
B1
B2 I0
B3 I1 Z
I2
C0 I3 Z0
C1 S1 S0 Z1
C2
Z2
C3
I0 Z3
D0 I1
Z
D1 I2
D2 I3
D3 S1 S0
I0
I1
Z
I2
I3
S1 S0
I0
I1
O
I2
I3
S1 S0
Existen dos maneras de hacerlo. Una es emplear el algebra de boole y la ecuación de este tipo
de multiplexores. Por lo general este método es más complicado. La otra es utilizar un método
basado en la tabla de verdad.
¡¡Que es muy parecida a Z!!. Si igualamos términos, obtenemos que por las entradas del
multiplexor hay que introducir:
Z I0
I1 O F
0 I2
1 I3
S1 S0
XY
Vamos a comprobarlo. Para ello sustituimos en la ecuación del multiplexor los valores que
estamos introduciendo por las entradas:
X Y Z O
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 0
5.6. IMPLEMENTACIÓN DE FUNCIONES CON MX’S 133
2. Dividimos la tabla en tantos grupos como canales de entrada halla. En este caso hay 4
entradas, por lo que hacemos 4 grupos. Las variables de mayor peso se introducen directa-
mente por las entradas de selección y :
X Y Z O
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 0
Las variables X e Y son las que se han introducido por las entradas de selección (
,
). Vemos que hay 4 grupos de filas. El primer grupo se corresponde con la entrada
, el siguiente por la , el siguiente por la y el último por la .
En el primer grupo, cuando Z=0, O=1 y cuando Z=1, O=0, por tanto
. Esa será
la salida cuando se seleccione el canal 0, por tanto por su entrada habrá que introducir lo
mismo: .
Ahora nos fijamos en el siguiente grupo, correspondiente a . En este caso, cuando Z=0,
Vamos a por el tercer grupo. Si Z=0, O=0 y si Z=0, también O=0. Independientemente del
valor de Z, la salida vale 0: .
Y para el último grupo ocurre que si Z=0, O=1, y si Z=1, O=1. Deducimos que .
Ejemplo:
Implementar la función utilizando un
multiplexor, sin entrada de validación.
134 CAPÍTULO 5. CIRCUITOS MSI (1): MULTIPLEXORES Y DEMULTIPLEXORES
Queremos: Tenemos:
A I0
B F I1 Z
C I2
I3
S1 S0
Ahora vamos siguiente los pasos del método. Primero construimos la tabla de verdad a partir
de F:
A B C F
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 1
Las entradas A y B las conectamos directamente a y respectivamente. Fijándonos en
las columnas de C y F, deducimos las siguientes conexiones:
C I0
I1 F
Z
I2
1 I3
S1 S0
A B
Para implementar funciones también se puede usar la entrada de validación. En este caso
no todas las funciones se pueden implementar con este tipo de multiplexores. La entrada de
validación la usamos como si fuese una entrada más.
Ejemplo
A B C F
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
Las entradas A y B se conectan directamente a las entradas y . Los valores que se
introducen por las entradas son: , . El circuito es el siguiente:
0 I0
0 I1 F
Z
I2
C
I3
S1 S0
A B
¿Se podría implementar esta función con un multiplexor con entrada de validación?. Si nos
fijamos en la función F vemos que podemos sacar factor común en A:
I0
C F
I1 Z
A E
S
5.7. Resumen
En este capítulo hemos visto los multiplexores y los demultiplexores, constituidos inter-
namente por puertas lógicas. Los multiplexores nos permiten seleccionar entre uno de varios
canales de entrada (tuberías) para sacarlo por la salida. Por ello disponen de unas entradas de
datos (por donde entra el “agua”), unas entradas de selección (Llaves de paso) y un canal de
salida. Estos canales de datos pueden ser de varios bits, sin embargo, en este capítulo nos he-
mos centrado en los multiplexores que tienen canales de datos de 1 bits, puesto que a partir de
ellos podemos construir multiplexores con canales de datos de mayor cantidad de bit, así como
multiplexores que tienen mayor cantidad de canales de entrada.
También hemos visto los demultiplexores, que realizan la función inversa. Un canal de en-
trada (tubería) se puede conectar a una de las diferentes salidas, según el valor introducido por
las entradas de selección (llaves de paso).
Los multiplexores pueden tener opcionalmente una entrada de validación, que puede ser
activa a nivel alto o a nivel bajo y actúa como una especie de interruptor que permite que el
multiplexor funcione o no. Si está activada, el multiplexor funciona normalmente. Si la entrada
de validación está desactivada, por la salida del multiplexor siempre hay un ’0’.
Por último hemos visto que con un multiplexor también se pueden implementar funciones
lógicas, y es otra alternativa que tenemos además de las puertas lógicas. Metiante el método de
las tablas de verdad, podemos saber facilmente qué variables hay que conectar a las entradas
del multiplexor.
5.8. Ejercicios
138 CAPÍTULO 5. CIRCUITOS MSI (1): MULTIPLEXORES Y DEMULTIPLEXORES
Capítulo 6
Codificadores, decodificadores y
comparadores
6.1. Introducción
En este capítulo veremos otros circuitos MSI: codificadores, decodificares y comparadores.
6.2. Codificadores
6.2.1. Conceptos
Los codificadores nos permiten “compactar” la información, generando un código de sali-
da a partir de la información de entrada. Y como siempre, lo mejor es verlo con un ejemplo.
Imaginemos que estamos diseñando un circuito digital que se encuentra en el interior de una
cadena de música. Este circuito controlará la cadena, haciendo que funcione correctamente.
Una de las cosas que hará este circuito de control será activar la radio, el CD, la cinta o
el Disco según el botón que haya pulsado el usuario. Imaginemos que tenemos 4 botones en
la cadena, de manera que cuando no están pulsados, generan un ’0’ y cuando se pulsan un ’1’
(Botones digitales). Los podríamos conectar directamente a nuestro circuito de control la cadena
de música, como se muestra en la figura 6.1.
Sin embargo, a la hora de diseñar el circuito de control, nos resultaría más sencillo que cada
botón tuviese asociado un número. Como en total hay 4 botones, necesitaríamos 2 bits para
identificarlos. Para conseguir esta asociación utilizamos un codificador, que a partir del botón
que se haya pulsado nos devolverá su número asociado:
139
140 CAPÍTULO 6. CODIFICADORES, DECODIFICADORES Y COMPARADORES
Botones
CD
Circuito de control
TAPE
de la cadena de
musica
RADIO
DISCO
Figura 6.1: Circuito de control de una cadena de música, y 4 botones de selección de lo que se
quiere escuchar
Botones Codificador
CD
E0
TAPE E1 C0
E2 C1
RADIO E3
DISCO
Fijémonos en las entradas del codificador, que están conectadas a los botones. En cada mo-
mento, sólo habrá un botón apretado, puesto que sólo podemos escuchar una de las cuatro
cosas. Bien estaremos escuchando el CD, bien la cinta, bien la radio o bien un disco, pero no
puede haber más de un botón pulsado1 . Tal y como hemos hecho las conexiones al codificador,
el CD tiene asociado el número 0, la cinta el 1, la radio el 2 y el disco el 3 (Este número de-
pende de la entrada del codificador a la que lo hayamos conectado). A la salida del codificador
obtendremos el número del botón apretado. La tabla de verdad será así:
Botón
0 0 0 1 0 0 CD
0 0 1 0 0 1 TAPE
0 1 0 0 1 0 RADIO
1 0 0 0 1 1 DISCO
El circuito de control de la cadena ahora sólo tendrá 2 bits de entrada para determinar el
1
De hecho, en la cadena de música que tengo en casa, que es un poco antigua, cuando aprietas uno de los botones
el otro “salta”, y deja de estar apretado.
6.2. CODIFICADORES 141
botón que se ha pulsado. Antes necesitábamos 4 entradas. El codificador que hemos usado tiene
4 entradas y 2 salidas, por lo que se llama codificador de 4 a 2. Existen codificadores de mayor
número de entradas, como el que vamos a ver en el siguiente ejemplo.
Imaginemos que ahora queremos hacer un circuito para monitorizar la situación de un tren en
una vía. En una zona determinada, la vía está dividida en 8 tramos. En cada uno de ellos existe
un sensor que indica si el tren se encuentra en ese tramo (el sensor devuelve 1) o fuera de él
(valor 0). Se ve claramente que cuando uno de los sensores esté activado, porque que el tren se
encuentre en ese tramo, el resto de sensores devolverán un ’0’ (No detectan al tren).
Si conectamos todas las entradas de los sensores a un codificador de 8 a 3, lo que tendremos
es que a la salida del codificador saldrá un número que indica el tramo en el que se encuentra el
tren. El circuito de control que conectemos a las salidas de este codificador sólo necesita 3 bits
de entrada para conocer el tramo en el que está el tren, y no es necesario 8 bits. ¡¡Su diseño será
más simple!!. La tabla de verdad es:
Tramo
0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 1 0 0 0 1 1
0 0 0 0 0 1 0 0 0 1 0 2
0 0 0 0 1 0 0 0 0 1 1 3
0 0 0 1 0 0 0 0 1 0 0 4
0 0 1 0 0 0 0 0 1 0 1 5
0 1 0 0 0 0 0 0 1 1 0 6
1 0 0 0 0 0 0 0 1 1 1 7
6.2.2. Ecuaciones
A continuación deduciremos las ecuaciones de un codificador de 4 a 2, y luego utilizaremos
un método rápido para obtener las ecuaciones de un codificador de 8 a 3.
El codificador de 4 a 2 que emplearemos es el siguiente:
E0
E1 C0
E2 C1
E3
Las ecuaciones las obtenemos siguiendo el mismo método de siempre: primero obtendremos
142 CAPÍTULO 6. CODIFICADORES, DECODIFICADORES Y COMPARADORES
la tabla de verdad completa y aplicaremos el método de Karnaugh. Con ello obtendremos las
ecuaciones más simplificadas para las salidas y .
Al hacer la tabla de verdad, hay que tener en cuenta que muchas de las entradas NO SE
PUEDEN PRODUCIR. En las entradas de un decodificador, una y sólo una de las entradas estará
activa en cada momento. Utilizaremos esto para simplificar las ecuaciones. Se ha utilizado una
X para indicar que esa salida nunca se producirá:
0 0 0 0 x x
0 0 0 1 0 0
0 0 1 0 0 1
0 0 1 1 x x
0 1 0 0 1 0
0 1 0 1 x x
0 1 1 0 x x
0 1 1 1 x x
1 0 0 0 1 1
1 0 0 1 x x
1 0 1 0 x x
1 0 1 1 x x
1 1 0 0 x x
1 1 0 1 x x
1 1 1 0 x x
1 1 1 1 x x
y siempre valen ’x’ excepto para 4 filas. Los mapas de Karnaugh que obtenemos son:
E1E0 C0 E1E0 C1
E3E2 E3E2
00 01 11 10 00 01 11 10
00 x 0 x 0 00 x 0 x 1
01 1 x x x 01 0 x x x
11 x x x x 11 x x x x
10 1 x x x 10 1 x x x
Las casillas que tienen el valor ’x’ podemos asignarles el valor que más nos convenga, de
forma que obtengamos la expresión más simplificada. Las ecuaciones de un decodificador de 4
a 2 son:
6.3. DECODIFICADORES 143
6.3. Decodificadores
6.3.1. Conceptos
Un decodificador es un circuito integrado por el que se introduce un número y se activa una
y sólo una de las salidas, permaneciendo el resto desactivadas. Y como siempre, lo mejor es
verlo con un ejemplo sencillo. Imaginemos que queremos realizar un circuito de control para un
semáforo. El semáforo puede estar verde, amarillo, rojo o averiado. En el caso de estar averiado,
se activará una luz interna “azul”, para que el técnico sepa que lo tiene que reparar. A cada una
de estas luces les vamos a asociar un número. Así el rojo será el 0, el amarillo el 1, el verde el 2
y el azul (averiado) el 3 (Ver figura 6.2).
Para controlar este semáforo podemos hacer un circuito que tenga 4 salidas, una para una de
las luces. Cuando una de estas salidas esté a ’1’, la luz correspondiente estará encendida. Sin
embargo, ocurre que NO PUEDE HABER DOS O MAS LUCES ENCENDIDAS A LA VEZ.
Por ejemplo, no puede estar la luz roja y la verde encendidas a la vez!!!!.
144 CAPÍTULO 6. CODIFICADORES, DECODIFICADORES Y COMPARADORES
Luz Roja: 0
Luz Amarilla: 1
Luz verde: 2
Decodificador Semaforo
de 2 a 4
O0 Luz Roja: 0
Circuito E0 O1 Luz Amarilla: 1
de E1
control O2 Luz verde: 2
decodificador activa sólo una de las salidas, la salida que tiene un número igual al que se ha
introducido por la entrada. En el ejemplo del semáforo, si el circuito de control envía el número
3, se activa la salida y se encenderá la luz azul (y sólo esa!!).
A la hora de diseñar el circuito de control, sólo hay que tener en cuenta que cada luz del
semáforo está conectada a una salida del decodificador y que por tanto tiene asociado un número
diferente.
Comenzaremos por el decodificador más sencillo, uno que tiene 2 entradas y 4 salidas, como
se muestra en la figura 6.4.
6.3. DECODIFICADORES 145
Decodificador
de 2 a 4
O0
E0 O1
E1 O2
O3
0 0 0 0 0 1
0 1 0 0 1 0
1 0 0 1 0 0
1 1 1 0 0 0
Y las ecuaciones las podemos obtener desarrollando por la primera forma canónica. Pues-
to que por cada función de salida sólo hay un ’1’, no se podrá simplificar (No hace falta que
hagamos Karnaugh):
E
Decodificador
de 3 a 8
O0
O1
E0
O2
E1
O3
E2 O4
O5
O6
O7
Salida Activa
0 0
0 1
1 0
1 1
Decodificicador de 3 a 8
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
O0
E0 O1
E1 O2
ENA O3
Lo mismo que ocurría con los multiplexores y demultiplexores, existe una entrada de vali-
dación opcional. Si esta entrada está activada, el decodificador funciona normalmente, pero si
está desactivada, sus salidas siempre estarán a ’0’. Existen dos tipos de entrada de validación, las
activas a nivel alto y las activas a nivel bajo.
En la figura 6.6 se muestra un decodificador de 2 a 4 con entrada de validación activa a nivel
bajo, por lo el decodificador funcionará siempre que esta entrada esté a ’0’ y todas sus salidas
permanecerán desactivadas cuando la entrada de validación esté a ’1’.
Las ecuaciones de este decodificador irán multiplicadas por
, siendo ENA la entrada de
validación:
E
O0
E0 O1
E1 O2
O3
0 0 1 1 1 0
0 1 1 1 0 1
1 0 1 0 1 1
1 1 0 1 1 1
6.6. Comparadores
6.6.1. Conceptos
6.7. Resumen
6.8. Ejercicios
150 CAPÍTULO 6. CODIFICADORES, DECODIFICADORES Y COMPARADORES
151
152 CAPÍTULO 7. CIRCUITOS ARITMETICOS
Capítulo 7
CIRCUITOS ARITMETICOS
7.1. Introducción
Sumador total
7.4. Sumador/restador
7.4.1. En ca1
7.4.2. En ca2
7.6. Resumen
Capítulo 8
BIESTABLES
153
154 CAPÍTULO 8. BIESTABLES
Capítulo 9
REGISTROS
155
156 CAPÍTULO 9. REGISTROS
Capítulo 10
CONTADORES
157
158 CAPÍTULO 10. CONTADORES
Capítulo 11
AUTOMATAS FINITOS
159
160 CAPÍTULO 11. AUTOMATAS FINITOS
Capítulo 12
a)
"
=
"
"
231
b) + 18 + 1 = 73
c)
=
+ 240 + 2 = 2802
d) = + 4 + 2 + 1 = 23
161
162 CAPÍTULO 12. SOLUCIÓN A LOS EJERCICIOS PROPUESTOS
Ejercicio 1:
En algunos ejercicios se explica entre llaves ({}) los pasos que se han seguido.
12. A
= 0 (Elemento inverso)
13. A+AB = {Sacando factor común A} = A(1+B) = {B+1=1} = A (También se conoce como
ley de absorción).
Ejercicio 2:
Aplicar las leyes de Morgan en los siguientes casos:
1.
= {Aplicando Morgan a ambos términos del producto} = = {Apli-
cando Morgan al segundo sumando} =
2.
= = {
} = AB+CD+ (también se
puede aplicar Morgan primero al termino
, pero hay que dar más pasos para
llegar al final).
3. =
=
=(
)( )+
Ejercicio 3:
Obtener el valor de las siguientes funciones booleanas, en todos los casos.
1.
a) A=0, B=0
b) A=0, B=1
c) A=1, B=0
d) A=1, B=1
2.
a) A=0, B=0
b) A=0, B=1
c) A=1, B=0
d) A=1, B=1
3. F=
Tenemos todos los siguientes casos:
164 CAPÍTULO 12. SOLUCIÓN A LOS EJERCICIOS PROPUESTOS
a) A=0,B=0, C=0
Ejercicio 4:
Dadas las siguientes funciones booleanas, obtener su correspondiente tabla de verdad.
Para resolver este tipo de ejercicios resulta cómo colocar nuevas columnas con resultados
intermedios.
1.
2.
3.
X Y Z
F
0 0 0 1 1 1 0 0 0
0 0 1 1 1 0 0 1 1
0 1 0 1 0 1 0 0 0
0 1 1 1 0 0 0 0 0
1 0 0 0 1 1 0 0 0
1 0 1 0 1 0 0 0 0
1 1 0 0 0 1 1 0 1
1 1 1 0 0 0 0 0 0
4.
0 0 0 0 1 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 0 0 0 0
0 1 1 0 0 0 0 0
0 1 1 1 0 0 0 0
1 0 0 0 1 0 1 1
1 0 0 1 1 0 1 1
1 0 1 0 1 0 1 1
1 0 1 1 1 0 1 1
1 1 0 0 0 0 0 0
1 1 0 1 0 0 0 0
1 1 1 0 0 0 0 0
1 1 1 1 0 1 0 0
Ejercicio 5:
Desarrollar las siguientes tablas de verdad por la primera forma canónica:
1. Tabla 1:
166 CAPÍTULO 12. SOLUCIÓN A LOS EJERCICIOS PROPUESTOS
A B F
0 0 0
0 1 1
1 0 0
1 1 1
Como la función tiene dos “unos”, será la suma de dos términos:
2. Tabla 2:
A B C F
0 0 0 1
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 0
La función tiene tres “unos”, será la suma de tres términos:
Ejercicio 6:
Dadas las siguientes funciones, indicar si se encuentra expresadas en la primera forma canó-
nica, y si es así, obtener la tabla de verdad
1.
A B F
0 0 0
0 1 1
1 0 0
1 1 1
2.
También está en la primera forma canónica. En este caso la función es de tres variables:
A B C F
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1
3.
4.
Esta sí lo está:
F
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 1
168 CAPÍTULO 12. SOLUCIÓN A LOS EJERCICIOS PROPUESTOS
Ejercicio 7:
Desarrollar las siguientes tablas de verdad por la segunda forma canónica:
1. Tabla 1:
A B F
0 0 0
0 1 1
1 0 0
1 1 1
Nos fijamos en las filas en las que F=0 y obtenemos el producto de sumas, con el criterio
de que si una variable está a 1 usaremos su negada y que si está a ’0’ usaremos esa misma
variable:
2. Tabla 2:
A B C F
0 0 0 1
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 0
En este caso la función es de tres variables y hay cuatro filas en las que F=0, por tanto tendrá
cuatro términos que van multiplicados:
Ejercicio 8:
Dadas las siguientes funciones, indicar si se encuentra expresadas en la primera forma canó-
nica o en la segunda. En caso de que así sea, obtener la tabla de verdad.
12.2. ALGEBRA DE BOOLE 169
1.
Está en la segunda forma canónica, puesto que es un producto de sumas, y en todos los
términos se encuentran las dos variables. Para construir la tabla de verdad tenemos que
tener en cuenta que en las filas en las que A=0, B=0 y A=1,B=1 la función vale ’0’, y para
el resto de filas vale ’1’:
A B F
0 0 0
0 1 1
1 0 1
1 1 0
2.
Se encuentra en la primera forma canónica puesto que es una suma de productos y en cada
una de las sumas se encuentran las dos variables. En la tabla de verdad, en las filas en las
que A=0,B=1 y A=1,B=0 la función vale ’1’, y en el resto de filas valdrá ’0’
A B F
0 0 0
0 1 1
1 0 1
1 1 0
3.
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1
170 CAPÍTULO 12. SOLUCIÓN A LOS EJERCICIOS PROPUESTOS
4.
F
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
5.
Ejercicio 9:
1. Tabla 1:
12.2. ALGEBRA DE BOOLE 171
A B C D F
0 0 0 0 1
0 0 0 1 0
0 0 1 0 1
0 0 1 1 0
0 1 0 0 0
0 1 0 1 0
0 1 1 0 0
0 1 1 1 0
1 0 0 0 1
1 0 0 1 1
1 0 1 0 1
1 0 1 1 1
1 1 0 0 0
1 1 0 1 0
1 1 1 0 0
1 1 1 1 0
CD
AB 00 01 11 10
00 1 0 0 1
01 0 0 0 0
11 0 0 0 0
10 1 1 1 1
y la función es:
2. Tabla 2:
172 CAPÍTULO 12. SOLUCIÓN A LOS EJERCICIOS PROPUESTOS
F
0 0 0 0 1
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 1
0 1 0 1 0
0 1 1 0 1
0 1 1 1 1
1 0 0 0 0
1 0 0 1 0
1 0 1 0 0
1 0 1 1 0
1 1 0 0 0
1 1 0 1 1
1 1 1 0 0
1 1 1 1 0
E1E0
E3E2 00 01 11 10
00 1 0 0 0
01 1 0 1 1
11 0 1 0 0
10 0 0 0 0
y la expresión de F:
12.2. ALGEBRA DE BOOLE 173
Ejercicio 10:
Operar con las siguientes expresiones obteniendo la mayor cantidad posible de operaciones
1.
= {Definición de la opereración
}=
2.
= {Definición de la operacion XOR negada} =
B C
4.
{Aplicando la propiedad
}=
{Como }= ={Aplicando
={Aplicando que
}=
}= ={Por la definición de }=
Ejercicio 11:
Dejar las siguientes expresiones en forma de sumas de productos:
2.
{Aplicando Morgan al primer término} =
= {
= x. = {Prop. distributiva} = x.
=
= x.
= yx + = {Ley absorción:
} = yx + +
174 CAPÍTULO 12. SOLUCIÓN A LOS EJERCICIOS PROPUESTOS
Bibliografía
175