domingo, 8 de junio de 2014
Electr贸nica Digital
8:16:00 p. m.
No comments
脥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.
Suscribirse a:
Entradas (Atom)