Í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
ÍNDICEGENERAL
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 ÍNDICEGENERAL 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
5. CIRCUITOS MSI (1): Multiplexores y
demultiplexores 103
5.1.
Introducción . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 103
5.2.
Multiplexores . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 104
5.2.1.
Conceptos . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 104
5.2.2.
Multiplexores y bits .
. . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.2.3.
Multiplexores de 1 bit y sus expresiones booleanas . .
. . . . . . . . . . 107
5.3.
Demultiplexores . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 113
5.3.1.
Conceptos . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 113
5.3.2.
Juntando multiplexores y demultiplexores . . . . . . . .
. . . . . . . . . 115
5.3.3.
Demultiplexores y bits . . . . . . . . . . . . . . . .
. . . . . . . . . . . 116
5.3.4.
Demultiplexores de 1 bit y sus expresiones booleanas .
. . . . . . . . . . 117
5.4.
Multiplexores con entrada de validación (ENABLE) . . .
. . . . . . . . . . . . . 120
5.4.1.
Entrada de validación activa a nivel alto . . . . . . .
. . . . . . . . . . . 120
5.4.2.
Entrada de validación activa a nivel bajo . . . . . . .
. . . . . . . . . . . 122
5.5.
Extensión de multiplexores . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 123
5.5.1.
Aumento del número de entradas . . . . . . . . . . . . . . . . . . . . . 123
5.5.2.
Aumento del número de bits por canal . . . . . . . . .
. . . . . . . . . . 127
5.6.
Implementación de funciones con MX’s . . . . . . . . .
. . . . . . . . . . . . . 130
5.6.1.
Método basado en el Algebra de Boole . . . . . . . . . . . . . . . . . . 131
5.6.2.
Método basado en la tabla de verdad . . . . . . . . . .
. . . . . . . . . . 132
5.6.3.
Implementación de funciones con multiplexores con
entrada de validación135
5.7.
Resumen . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
5.8. Ejercicios
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 ÍNDICEGENERAL
6. Codificadores, decodificadores y comparadores
139
6.1.
Introducción . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 139
6.2.
Codificadores . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 139
6.2.1.
Conceptos . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 139
6.2.2.
Ecuaciones . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 141
6.3.
Decodificadores . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 143
6.3.1.
Conceptos . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 143
6.3.2.
Tablas de verdad y Ecuaciones . . . . . . . . . . . . .
. . . . . . . . . . 144
6.3.3.
Entradas de validación . . . . . . . . . . . . . . . .
. . . . . . . . . . . 147
6.3.4.
Tipos de decodificadores según sus salidas . . . . . . . . . . . . . . . . 148
6.4.
Aplicaciones de los decodificadores . . . . . . . . . . . . . . . . . . . .
. . . . 148
6.4.1.
Como Demultiplexor . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 148
6.4.2.
Implementación de funciones . . . . . . . . . . . . . . . . . . . . . . . 149
6.5.
Resumen de implementación de funciones . . . . . . . .
. . . . . . . . . . . . . 149
6.6.
Comparadores . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 149
6.6.1.
Conceptos . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 149
6.6.2.
Comparador de dos bits .
. . . . . . . . . . . . . . . . . . . . . . . . . 149
6.6.3.
Comparador de números de 4 bits . . . . . . . . . . . .
. . . . . . . . . 149
6.6.4.
Extensión de comparadores . . . . . . . . . . . . . . . . . . . . . . . . 149
6.7.
Resumen . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
6.8.
Ejercicios . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 149
7. CIRCUITOS ARITMETICOS 151
7.1.
Introducción . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 152
7.2.
Circuitos sumadores . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 152
7.2.1.
Sumadores de números de 1 bit . . . . . . . . . . . . . . . . . . . . . . 152
7.2.2.
Sumadores de números de más de 1 bit . . . . . . . . . . . . . . . . . . 152
7.3.
Circuitos restadores . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 152
7.3.1.
Restador en ca1 . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 152
7.3.2.
Restador en ca2 . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 152
7.4.
Sumador/restador . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 152
7.4.1.
En ca1 . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 152
7.4.2.
En ca2 . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . 152
7.5.
Aplicación de los sumadores: transcodificadores . . . .
. . . . . . . . 152
7.6.
Resumen . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
1.1. Electrónica
Esta asignatura
trata sobre Electrónica. La
Electrónica estudia el comportamiento de los electrones
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 constituido por una pequeña bombilla, una
pila y un interruptor (figura 1.1) y lo conectamos, lograremos que los
electrones circulen por todo el circuito y que al atravesar la bombilla parte
de ellos se conviertan en luz[1].
¡¡Hemos conseguido que los electrones
nos obedezcan!!
Para “dominar” a los
electrones, es necesario crear circuitos
electrónicos, formados por materiales 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.
Tipos de electrónica
1.2.1. Electrónica
Analógica
Uno de los
grandes retos del hombre es el de manipular,
almacenar, recuperar y transportar la
información que tenemos del mundo en
el que vivimos, lo que nos permite ir progresando poco a poco, cada vez con más
avances tecnológicos que facilitan nuestra vida y que nos permiten encontrar
respuestas a preguntas que antes no se podían responder.
Ahora estamos
viviendo un momento en el que esa capacidad de manipulación, almacenamiento,
recuperación y transporte de la información
está creciendo exponencialmente, lo que nos convierte en lo que los
sociólogos llaman la “Sociedad de la
información”, y que tendrá ( de hecho ya tiene) grandes implicaciones
sociales.
Con la
aparición de la electrónica las posibilidades para desarrollar esas capacidades
aumentaron considerablemente. Para comprender los principios de la electrónica analógica, nos centraremos
en un ejemplo concreto: la manipulación,
almacenamiento, recuperación y transporte de una voz humana.
Cuando hablamos, nuestras cuerdas vocales vibran de una determinada
manera, lo que originan que las moléculas del aire también lo hagan, chocando
unas con otras y propagando esta vibración. Si no existiesen esas moléculas,
como en el espacio, el sonido no se podría propagar.[1]
[1] Aunque en la mayoría de
las películas de ciencia-ficción, cuando una nave destruye a otra en el
espacio, se
Cuando hablamos, nuestras cuerdas vocales vibran de una determinada manera, lo que originan que las moléculas del aire también lo hagan, chocando unas con otras y propagando esta vibración. Si no existiesen esas moléculas, como en el espacio, el sonido no se podría propagar.
1.2. TIPOSDEELECTRÓNICA
Figura 1.2: Un trozo de una señal acústica
Si medimos la vibración de una de estas moléculas, durante un intervalo corto de tiempo, y la pintamos, podría tener una pinta como la que se muestra en la figura 1.2. A esta vibración la llamaremos señal acústica.
Cuando esta señal acústica incide sobre un micrófono, aparece una señal eléctrica que tiene una forma análoga a la de la señal acústica. Las vibraciones de las moléculas se han convertido en variaciones del voltaje, que al final se traducen en vibraciones de los electrones. Es decir, que con los micrófonos lo que conseguimos es que los electrones vibren de una manera análoga a cómo lo hacen las moléculas del aire (ver figura 1.3).
Esta nueva señal eléctrica que aparece, se denomina señal analógica, puesto que es análoga a la señal acústica original. De esta manera, con señales eléctricas conseguimos imitar las señales del mundo real. Y lo que es más interesante, conseguimos que la información que se encuentra en la vibración de las moléculas del aire, pase a los electrones. Cuanto mejor sea el micrófono, más se parecerá la señal eléctrica a la acústica, y la información se habrá “copiado” con más fidelidad.
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ómenoque es imposible!!!!!, pero que queda muy vistoso :-)
Figura 1.3: Conversión de una señal acústina en una señal eléctrica
Señal
"magnetica"
Figura 1.4: Un sistema de tratamiento de voz, con electrónica analógica
1.2. TIPOSDEELECTRÓNICA
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:
1. La información está ligada a la forma de la onda. Si esta se degrada, se pierde información
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).
En las señales analógicas, la información se encuentra en la forma de la onda
1.2.2. Electrónica digital
Existe otra manera de modificar, almacenar, recuperar y transportar las señales, solucionando los problemas anteriores. Es un enfoque completamente diferente, que se basa en convertir las señales en números.
Existe un teorema matemático (teorema de muestreo de Nyquist) que nos garantiza que cualquier señal se puede representar mediante números, y que con estos números se puede reconstruir la señal original.
De esta manera, una señal digital, es una señal que está descrita por números. Es un conjunto de números. Y la electrónica digital es la que trabaja con señales digitales, o sea, con números. Son los números los que se manipulan, almacenan, recuperan y transportan.
Reflexionemos un poco. Estamos acostumbrados a escuchar el término televisión digital, o radio digital. ¿Qué significa esto? ¡¡¡Significa que lo que nos están enviando son números!!!!! Que la información que nos envían está en los propios números y no en la forma que tenga la señal que recibidos. ¿Y qué es un sistema digital?, un sistema que trabaja con números. ¿Y un circuito digital? Un circuito electrónico que trabaja con números. ¡¡Y sólo con números!!
Si nos fijamos, con un ordenador, que es un sistema digital, podemos escuchar música o ver películas. La información que está almacenada en el disco duro son números.
En la figura 1.5 se muestra un sistema digital. La señal acústica se convierte en una señal eléctrica, y a través de un conversor analógico-digital se transforma en números, que son procesados por un circuito digital y finalmente convertidos de nuevo en una señal electrónica, a
DIGITAL
Figura 1.5: Sistema digital
través de un conversor digital-analógico, que al atravesar el altavoz se convierte en una señal acústica.
El utilizar circuitos y sistemas que trabajen sólo con números tiene una ventaja muy importante: se pueden realizar manipulaciones con independencia de la señal que se esté introduciendo: datos, voz, vídeo... Un ejemplo muy claro es internet. Internet es una red digital, especializada en la transmisión de números. Y esos números pueden ser datos, canciones, vídeos, programas, etc... La red no sabe qué tipo de señal transporta, “sólo ve números”.
La electrónica digital trabaja con números. La información está en los números y no en la forma de señal. Cualquier señal siempre se puede convertir a números y recuperarse posteriormente.
1.3. Circuitos y sistemas digitales
Ya podemos entender de lo que trata esta asignatura. En ella estudiaremos y diseñaremos circuitos digitales, que manipulan números. Existen unos números en la entrada y nuestro circuitos generará otros números de salida (figura 1.6). Algunos números se considerarán como datos y otros se usarán para el control del propio circuito. No nos preocuparemos de dónde vienen estos números, pero ya sabemos que o bien vendrán de otro sistema digital, o bien de una señal analógica que se ha convertido a números (se ha digitalizado).
Un circuito digital realiza manipulaciones sobre los números de entrada y genera unos números de salida.
1.4. ORGANIZACIÓNDELOSAPUNTES
Figura 1.6: Un circuito digital genérico
1.4. Organización de los apuntes
En la introducción hemos visto la importancia que tienen los números en los sistemas digitales. En el capítulo 2 veremos las diferentes formas de representar un número y en concreto nos centraremos en el sistema binario. Para poder diseñar circuitos digitales, que manipulen números en binario, primero habrá que manejar las matemáticas que hay detrás: el algebra de boole, que se verá en el capítulo 3. Describiremos un tipo de circuitos, los circuitos combinacionales, mediante funciones booleanas y en el capítulo 4 veremos cómo se pueden implementar mediante puertas lógicas. En el capítulo 5 describiremos otros circuitos combinacionales más complejos, constituidos a partir de puertas lógicas, pero que se pueden considerar como componentes electrónicos: multiplexores, demultiplexores, codificadores, decodificadores, comparadores... y en el capítulo 7 cómo es posible realizar operaciones aritméticas. A partir del capítulo 8 se empiezan a ver cirucitos secuenciales, que se caracterizan porque pueden “recordar” o almacenar números. Los biestables nos permiten almacenar 1 bit de información y agrupándolos en registros (capítulo 9) almacenamos más información. Finalmente estudiaremos los contadores ( capítulo 10) y los autónomas finitos (capítulo 11).
20 CAPÍTULO1. INTRODUCCIÓN
Capítulo 2
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
Figura 2.1: Un circuito digital genérico
21
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 habitualmente. Vamos a representar el número “tres mil doscientos ochenta y uno”:
3281
Observamos lo siguiente:
Está constituido por cuatro dígitos: ’3’,’2’,’8’ y ’1’.
El orden en el que están colocados es muy importante y si se modifica, se está representando otro número.
Cuanto más a la izquierda está un dígito, más importante es.
Este último punto es muy intuitivo. Imaginemos que el número 3281 representa el sueldo mensual de un ingeniero . 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:
3281 = 3000 + 200 + 80 + 1 =
= 3 1000 + 2 100 + 8 10 + 1 =
3 +2 +8 +1
Observamos que cada dígito está multiplicando una pontencia de 10. Cuanto más a la izquierda 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.
2.2. CONCEPTOS
Digito de Digito de
mayor peso 3 2 8 1 menor peso
3 2 1 0
Figura 2.2: Dígitos y pesos del número 3281
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.
352 = 3 + 5 + 2 =
3 64 + 5 8 + 2 = 248
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 representación diferentes, se emplea la siguiente notació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.
2.3. Algunos sistemas de representación
2.3.1. Sistema octal (Base 8)
Ya lo hemos visto en el apartado de introducción. Utiliza ocho dígitos: 0,1,2,3,4,5,6 y 7 y los pesos son potencias de 8. No lo utilizaremos en esta asignatura.
2.3.2. Sistema binario (Base 2)
¿Se podrían utilizar sólo dos dígitos para representar cualquier numéro? Si, se denomina sistema binario. Este sistema de representación sólo utiliza los dígitos 0 y 1 para representar cualquier número. Fijémonos en lo interesante que resulta esto, ¡¡¡sólo con dos dígitos podemos representar cualquiera de los infinitos números!!!
En el sistema binario los pesos de estos dígitos son pontencias de 2. Veamos un ejemplo del número binario
= 1 + 0 + 1 + 0 +0 +1 =
+ + = 41
El número binario se corresponde con el número 41 en decimal.
El sistema binario tiene mucha importancia y lo utilizaremos constantemente en esta asignatura. Fijémonos en lo que significa esta forma de representación. Utilizando sólo dos dígitos, es posible representar cualquiera de los infinitos números. En la tecnología actual disponemos de un elemento, llamado transistor, que se puede encontrar en dos estados diferentes, abierto o cerrado , a los que le asociamos los dígitos 0 y 1. Todos los circuitos intregrados o chips se basan en estos transistores y trabajan internamente en binario. Todas las operaciones se realizan utilizando este sistema de representación, por eso es muy importante que lo conozcamos, para entender cómo funcionan los microprocesadores y los chips por dentro.
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.4. GENERALIZACIÓN
2.3.3. Sistema hexadecimal (Base 16)
¿Y sería posible utilizar más de 10 dígitos para representar los números?. También es posible. 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 respectivamente. 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: CACA, 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 anterior. 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.
2.5. Tabla de conversión para los sistemas decimal- binario- hexadecimal
La tabla que se muestra a continuación representa las equivalencias entre diferentes números expresados en los sistemas decimal, binario y hexadecimal, que son los que más usaremos.
DECIMAL BINARIO HEXADECIMAL
0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F
Ejercicios:
Hacer el ejercicio 1 de este capítulo.
2.6. Circuitos digitales y el Sistema binario
Ahora que ya tenemos un poco más claro el concepto de número y las diferentes formas que tenemos de representarlo, podemos retomar el esquema de un circuito digital (Figura 2.1) para precisarlo un poco más.
2.6. CIRCUITOSDIGITALESYELSISTEMABINARIO
Numeros de Numeros de
entrada, en binario salida, en binario
Figura 2.3: Un circuito digital genérico, con entradas y salidas binarias
3 Bits de entrada 4 bits de salida
Figura 2.4: Un circuito digital con tres bits de entrada y 4 de salida
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 humanos 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
Bombilla Bombilla
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.
2.7. Sistema binario y sistema hexadecimal
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. BITSYELECTRÓNICA
Figura 2.6: Cómo introducir dígitos binarios por un bit de la entrada de un circuito digital
1011 0001 1110 1101
B 1 E D
Ejercicios:
Hacer los ejercicios 2 y 3 de este capítulo.
2.8. Bits y electrónica
Todavía nos queda una cosa por resolver. En la electrónica trabajamos con electrones, forzándolos a que hagan lo que nosotros queremos. En el caso de los circuitos digitales, lo que hacemos es operar con números. ¿Cómo conseguimos esto? ¿Cómo introducimos los números en los circuitos digitales?
La solución a esto es asignar un voltaje a cada uno de los dos estados de un bit. Lo normal, conocido como lógica TTL, es asignar el valor de 5 voltios al dígito ’1’ y 0 voltios al dígito ’0’. Esta asignación de valores depende de la tecnología empleada.
En la figura 2.6 se muestra un circuito digital que tiene un bit de entrada. Si queremos introducir un dígito ’1’ ponemos el interrupción en la posición A, de manera que por la entrada E llegan 5 voltios. Si queremos introducir un dígito ’0’ ponemos el interruptor en la posición B, por lo que llegan cero voltios.
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’
2.9. Otros sistemas de representación
Para representar los números hemos visto que los circuitos digitales utilizan el sistema binario. Y hemos estado utilizando el sistema binario natural, en el que los bits tienen de peso potencias de 2, que es lo más habitual.
Sin embargo existen otros sistemas de representación que son binarios en el sentido de que sólo usan los dos dígitos ’0’ y ’1’, sin embargo tienen pesos diferentes. Algunos de estos sistemas, también conocidos como códigos son los siguientes:
1. Código BCD: Decimal Codificado en Binario. Es una manera de representar números decimales en binario. A cada dígito decimal se le asignan 4 bits, correspondientes a su número binario natural. Así por ejemplo para representar número decimal 21 en BCD, utilizaremos en total 8 bits, 4 para uno de los dos dígitos:
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. EJERCICIOSRESUELTOS
2.11. Ejercicios resueltos
1. Descomponer el número en sus dígitos y pesos.
Solución:
=
Dígitos: ’6’ y ’3’ con pesos 10 y 1.
2. Hacer lo mismo que en ejercicio 1, pero con el número 10358.
Solución:
Dígitos ’1’,’0’,’3’,’5’ y ’8’ con pesos 10000, 1000, 100, 10 y 1 respectivamente.
3. Pasar los siguientes números al sistema decimal:
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
4. Pasar de hexadecimal a binario:
a) FFFF
Solución:
FFFF = F - F - F - F = 1111-1111-1111-1111 = 1111111111111111
b) FA00
Solución:
FA00 = F-A-0-0 = 1111-1010-0000-0000 = 1111101000000000
c) 321 C
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)
2. Pasar de binario a hexadecimal
a) 0101101011111011
b) 10010001110000101
c) 1111000011110000
d) 0101010110101010
3. Pasar de hexadecimal a binario
a) FFFF
b) 01AC
c) 55 AA
d) 3210
Capítulo 3
ALGEBRA DE BOOLE
3.1. Introducción
Cuando trabajamos en ingeniería, utilizamos ecuaciones y modelos matemáticos que describren 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 :
Sólo hay que introducir los datos en una calculadora y ya está.
De la misma manera, si un físico nos dice que la posición de cierta partícula viene determinada por la ecuación:
33
y nos da los siguientes datos: A=5, t=0 y , sabemos calcular el valor de x, que será:
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 expresan 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 utilizados 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.
3.2. Las operaciones del Álgrebra de Boole
En el Álgebra de Boole hay dos operaciones, denotadas con los símbolos + y pero que ¡¡no tienen nada que ver con las operaciones que todos conocemos de suma y producto!!. ¡¡¡No
3.2. LASOPERACIONESDELÁLGREBRADEBOOLE
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 nos puede resultar chocante. ¿¿Pero no me habían dicho toda la vida que 1+1=2??, nos podemos estar preguntando. Sí, pero hay que recordar que aquí estamos utilizando otra operación que NO ES LA SUMA, la denotamos con el mismo símbolo ’+’, ¡¡pero no es una suma normal!! ¡¡Hay que cambiar el “chip”!! ¡¡Ahora estamos con Algebra de Boole!!
Pasado el pánico inicial, si nos fijamos en esta nueva operación, notamos lo siguiente: El resultado siempre es igual a ’1’ cuando alguno de los bits sumandos es igual a ’1’. O lo que es lo mismo, El resultado de esta suma sólo da ’0’ si los dos bits que estamos sumando son iguales a cero. En caso contrario valdrá ’1’.
¿Y para qué nos sirve esta operación tan extraña? Veamos un ejemplo. Imaginemos que hay una sala grande a la que se puede acceder a través de dos puertas. En el techo hay una única lámpara y existen dos interruptores de luz, uno al lado de cada puerta de entrada. Como es lógico, la luz se enciende cuando algunos de los dos interruptores (o los dos) se activan. Esto lo podemos expresar mediante una ecuación booleana. Para denotar el estado de uno de los interruptores utilizaremos la variable booleana A, que puede valor ’0’ (Interruptor apagado) ó ’1’ (interruptor activado). Para el otro interruptor usaremos la variable B. Y para el estado de la luz, ’0’ (apagada) y ’1’ encendida, usaremos la variable F.
El estado en el que se encuentra la luz, en función de cómo estén los interruptores viene dado por la ecuación booleana:
que indica que F=1 (Luz encendida) si alguno de los interruptores está a ’1’ (activado).
Ya lo veremos más adelante, pero podemos ir adelantando unas propiedades muy interesantes. 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 seguridad. 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’ introducida) 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. LASPROPIEDADESDELÁLGEBRADEBOOLE
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:
Es decir, que si se lo aplicamos a ’0’ obtenemos ’1’ y si se lo aplicamos al ’1’ obtenemos ’0’. Esta operación nos permite cambiar el estado de una variable booleana. Si A es una variable
boolena, tiene el estado contrario.
3.3. Las propiedades del Álgebra de Boole
Las operaciones del Álgebra de Boole las podemos definir utilizando tablas de verdad:
Operación +
Operación
Las propiedades del Algebra de Boole son las siguientes:
1. Las operaciones + y son CONMUTATIVAS
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.
3.4. Teoremas importantes
Derivados de las propiedades fundamentales, existen una serie de Teoremas muy interesantes e importantes que usaremos a lo largo de todo el curso. Algunos los utilizaremos en la teoría y otros para los problemas.
Asociatividad
Idempotencia:
3.4. TEOREMASIMPORTANTES
Ley de Absorción
Este teorema es muy importante puesto que nos permite realizar simplificaciones en las expresiones.
Este teorema es también muy importante y lo usaremos constantemente. Vamos a hacer algunos ejemplos para aprender a utilizarlo:
Ejemplo 4:
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 viceversa.
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:
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.
3.5. Funciones booleanas
3.5.1. Funciones reales y funciones booleanas
Hasta ahora hemos visto en qué operaciones se basa el Algebra de Boole y algunas de sus propiedades. Para aprender a trabajar con este nuevo tiepo de expresiones booleanas es necesario practicar, por eso se recomienda que se hagan los ejercicios propuestos.
Utilizando expresiones booleanas, vamos a definir Funciones booleanas, que son exactamente iguales a las funciones matemáticas a las que estamos habituados pero con la particularidad de que las variables son booleanas y que los valores devueltos por la función también son booleanos, es decir, una función booleana sólo puede tomar los valores ’0’ ó ’1’.
Como hemos hecho antes, vamos a ver un ejemplo utilizando una función matemática de las que todos conocemos. Por ejemplo esta:
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:
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)
Calcularemos el valor de F para el resto de valores de entrada de A y B:
Se deja como ejercicio para practicar (La solución es 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.2. Funciones booleanas y tablas de verdad
Existen dos maneras de representar una función booleana. Una ya la conocemos, y es utilizado expresiones booleanas. Así por ejemplo se puede definir la función booleana siguiente:
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:
¿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:
Si una función tiene 2 variables, su tabla de verdad tendrá 4 filas
Si la función tiene 3 variables, la tabla tendrá 8 filas Si la función tiene 4 variables, la tabla tendrá 16 filas
.....
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 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?.
Obtención de una tabla de verdad a partir de una expresión
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.
3. Aplicando la expresión, vamos calculando el valor de F. La primera fila se corresponde con F(0,0), la seguna con F(0,1), la tercera con F(1,0) y la última con F(1,1):
4. Ya podemos rellenar la tabla de verdad:
Veamos otro ejemplo, ahora con una función de 3 variables:
1. Como la función tiene 3 variables, la tabla de verdad tendrá 8 filas.
2. Dibujamos la tabla, poniendo en binario natural el número de fila, comenzando por 0:
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:
Ejercicios:
Hacer el ejercicio 4
Obtención de una expresión a partir de una tabla de verdad
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.
0 comentarios:
Publicar un comentario