Javier García Zubía
Ejercicios básicos de sistemas digitales4.ª edición
Universidad deDeusto
• • • • • • • •
Universidad deDeusto
• • • • • • • •
Ejer
cicios
básic
os de
siste
mas d
igital
es / J
avier
Garc
ía Zu
bía
Inge
nier
íaĀA
Cerca de 200 ejercicios cubren el análisis y diseño de sistemas digitales combinacionales y secuenciales: tablas de verdad, diagramas de Veitch-Karnaugh, bloques MSI, cronogramas, autómatas, etc. Cada bloque de ejercicios viene precedido de los métodos que los resuelven. El sw educativo BOOLE-DEUSTO facilita al lector la resolución interactiva de los ejercicios y puede ser descargado en:http://paginaspersonales.deusto.es/zubia
Cub Sistemas digitales 4ed (15) 1Cub Sistemas digitales 4ed (15) 1 18/1/08 09:08:1518/1/08 09:08:15
Ejercicios básicos de
sistemas digitales
Javier García Zubía
Ejercicios básicos de
sistemas digitales 4ª edición
2008 Universidad de Deusto
Bilbao
Ninguna parte de esta publicación, incluido el diseño de la cubierta, puede ser reproducida, almacenada o trans-mitida en manera alguna o por ningún medio, ya sea eléctrico, químico, mecánico, óptico, de grabación o de fo-tocopia, sin permiso previo del editor. Publicación impresa en papel ecológico Compuesto según diseño de JosuKa Díaz Labrador
Publicaciones de la Universidad de Deusto Apartado 1 - 48080 Bilbao e-mail: [email protected] ISBN: 978-84-9830- 784- 9
V
Índice
1. Códigos binarios .............................................................................. 1 2. Manipulación básica booleana ....................................................... 15 3. Diagramas de Veitch-Karnaugh .................................................... 31 4. Sistemas combinacionales a nivel de bit o de puerta lógica....... 47 5. Sistemas combinacionales a nivel de palabra o MSI ................... 95 6. Biestables........................................................................................... 131 7. Registros y Contadores ................................................................... 147 8. Autómatas......................................................................................... 161
© Universidad de Deusto - ISBN 978-84-9830-784-9
© Universidad de Deusto - ISBN 978-84-9830-784-9
Prólogo
Uno de los principales cometidos de un profesor es facilitar el trabajo al alumno en la medida de lo posible, por ejemplo mediante este libro. Quede dicho esto en primer lugar para no llamar a nadie a engaño: éste no es un libro clásico de teoría, ni tampoco lo es de ejercicios resueltos. La enseñanza en clase de toda asignatura técnica tiene dos aspectos esenciales: la teoría y los ejercicios. Como el tiempo asignado a las clases es limitado, éste se dedica principalmente a la teoría; así en el tiempo restante, a veces escaso, el profesor plantea y resuelve ejercicios. Estos ejercicios de clase son completados con otros que el alumno deberá resolver fuera del horario de clase con el fin de asentar los conocimientos y habilidades adquiridas. Este libro tiene por objetivo facilitar la labor del alumno fuera de clase. Para ello no sólo se entregan los enunciados, sino que también se acompañan de las tablas y diagramas que ayuden en su resolución. De este modo el libro parece un crucigrama a completar por el alumno, con sus casillas inicialmente vacías. El libro facilita el desarrollo del curso y la comunicación entre el profesor y la clase. Ayuda al alumno a preguntar sus dudas y al profesor a detectar las lagunas en lo enseñado. Los ejercicios que aquí se presentan son de procedencia muy variada. La mayoría son originales, otros son los ejercicios típicos, además de los que ya han caído en examen (que tanto gustan a los alumnos), y de algunos han sido enunciados por los propios alumnos. Por último quiero agradecer a mis compañeros de curso Jose Antonio Aranguren y Alfonso Barba sus siempre acertados comentarios, ya que sin ellos este libro no sería tan completo Bilbao, julio de 2000
VII
© Universidad de Deusto - ISBN 978-84-9830-784-9
Prólogo a la 2ª edición
Cualquiera que conozca la primera edición de este libro verá que ésta es en principio idéntica, pero ha cambiado algo. En primer lugar, he añadido a cada capítulo una breve introducción teórica. En estas 2 ó 3 páginas intento recordar al lector no tanto las bases teóricas de los ejercicios siguientes, sino sobre todo los métodos que debe aplicar para resolverlos. Algunos pensarán que esta introducción es demasiado breve, pero no quisiera desvirtuar el enfoque original del libro. A aquel que quiera profundizar en los aspectos teóricos le remito al libro “Sistemas Digitales” cuyos autores somos José Mª Angulo Usategui y yo mismo, y fue editado por Paraninfo en el año 2001. En segundo lugar, el lector podrá ver que han desaparecido algunos de los temas que se trataban en el anterior libro. Esto ha sido así para dejar sitio a nuevos ejercicios, y sobre todo para eliminar del libro enfoques y técnicas ya superadas. Un ejemplo de esto último es que en el libro ya no hay ejercicios de contadores asíncronos, pues éstos van (o deben) desaparecer de un curso reglado de electrónica digital. Por último, en el libro hay muchos ejercicios nuevos, sobre todo en los últimos capítulos, que son los más prácticos (los primeros simplemente fortalecen la metodología del alumno). Sólo cuando el lector se proponga resolver los ejercicios verá las nuevas incorporaciones. Éstas sobre todo se centran en los ejercicios combinacionales y secuenciales MSI o funcionales, es decir, aquellos que usan bloques como multiplexores, comparadores, contadores, etc. Estos nuevos ejercicios vienen a completar el hueco que tenía el primer libro, a cambio han desnudado un poco el libro, perdiendo el libro en estos temas su aspecto de crucigrama. Cabe decir que la complicación de estos nuevos ejercicios es baja. Primero porque el nivel del curso sigue siendo el básico, y segundo porque este tipo de sistemas está siendo implementado con dispositivos PLD más que con puertas lógicas, utilizando lenguajes de descripción hardware como ABEL, VHDL, etc.; técnicas y métodos que quedan totalmente fuera de este libro. Sólo me queda esperar que este libro siga siendo útil a aquellos profesores y alumnos que lo utilizan.
VIII
.
© Universidad de Deusto - ISBN 978-84-9830-784-9
Prólogo a la 3ª edición
En esta tercera edición poco cabe decir que no se sepa ya. Cada dos años sale una nueva edición. En ésta se añaden nuevos ejercicios, desaparecen otros y se corrigen los fallos. En resumen, una nueva edición aumentada y corregida. El objetivo del libro se mantiene: ayudar en el seguimiento del curso en el aula con ejercicios que refuercen o introduzcan lo aprendido. Desde este punto de vista, son los alumnos los que dan valor al libro. Los alumnos o profesores más interesados cuentan con una edición de estos ejercicios resueltos. La editorial Paraninfo ha publicado en el 2003 el libro “Problemas Resueltos de Electrónica Digital”. Por último, y como siempre, quiero agradecer a mis compañeros de asignatura sus aportaciones y recomendaciones para este libro, especialmente a Alfonso Barba por todos estos años juntos en la electrónica digital. Sigo contando con José Antonio Aranguren, Iván Trueba e Ignacio Angulo. Como siempre, estaré encantado de recibir comentarios o nuevos ejercicios a mi dirección de correo [email protected].
IX
© Universidad de Deusto - ISBN 978-84-9830-784-9
Prólogo a la 4ª edición
En esta cuarta edición los cambios han consistido en añadir nuevos ejercicios de examen (más de 50) y en borrar otros ya “antiguos”. En cuanto a los cambios hay algunos destacables: desaparecen los ejercicios NAND/NOR, ya que su utilidad actual no está muy clara en este nivel; aparecen ejercicios de análisis en sistemas combinacionales funcionales; y el tema de biestables se ha reducido de una forma considerable, evitando disquisiciones teóricas. Otro cambio importante ha sido eliminar la implementación de autómatas con circuitos digitales (J-K, D, etc.), es decir, en la nueva edición solo se plantea el DTE, ya que el esfuerzo de implementación no se corresponde con su interés. La última novedad consiste en que se ha añadido a algunos capítulos cómo usar el programa BOOLE-DEUSTO (http://paginaspersonales.deusto.es/zubia) para resolver los ejercicios. El BOOLE-DEUSTO es un entorno informático con difusión internacional y gran aceptación universitaria, ya que es tan potente como sencillo, siendo gratuito. Los alumnos o profesores más interesados cuentan con una edición de algunos de estos ejercicios resueltos. La editorial Paraninfo ha publicado en el 2003 el libro “Problemas Resueltos de Electrónica Digital”. Por último, y como siempre, quiero agradecer a mi compañero Ignacio Angulo sus aportaciones a este libro; y también a los alumnos, que con sus comentarios tanto mejoran el libro. Como siempre, estaré encantado de recibir comentarios o nuevos ejercicios a mi dirección de correo [email protected].
X
© Universidad de Deusto - ISBN 978-84-9830-784-9
1
1. Códigos binarios
Introducción metodológica
Resolver ejercicios de códigos es muy fácil, tanto que algunos prefieren liarse. En este tema se exige al alumno que sepa representar información binaria y operar con ella. La información común de nuestro mundo diario es alfanumérica, pero en el reducido campo de nuestra asignatura solo representaremos números, así que todo es más fácil. Volviendo a nuestro mundo, sabemos que estos números los representamos siempre en decimal, en el único código decimal que utilizamos. Este código por ser único no tiene ni nombre (sí lo tiene), es simplemente el decimal. Vayamos ahora al mundo digital, en él los números se representan en binario, pero frente al mundo real no existe un único código binario, existen muchos. La razón de que existan muchos códigos binarios es porque ninguno de ellos es lo suficientemente bueno para eliminar a los otros. Cada código binario está especializado en un campo, aunque hay un par de códigos binarios que están por todas partes: el código binario puro y el BCD puro. En este momento tenemos un código decimal y muchos binarios. Llamamos escribir a pasar de decimal a binario, y leer a pasar de binario a decimal. Esta descripción muestra un claro favoritismo a nuestro mundo; mejor sería decir que pasamos de un código a otro, o dicho más adecuadamente, que transcodificamos. Una vez que sepamos representar información binaria, debemos saber operar con ella. Como nuestro curso es básico, aprenderemos las operaciones básicas binarias, que son las lógicas y las aritméticas, siendo estas últimas las que más se practican en los siguientes ejercicios, donde sumaremos, restaremos y complementaremos. Resumiendo, debemos saber pasar del código decimal a cualquiera de los binarios, y viceversa, y sumar, restar y complementar en cualquier código binario. Empecemos por saber leer y escribir, y luego por sumar, restar y complementar.
© Universidad de Deusto - ISBN 978-84-9830-784-9
Ejercicios de sistemas digitales
2
Transcodificación binario-decimal
Antes de escribir o leer hay que saber de qué tipo de número estamos hablando: sin signo o con signo. Seguidamente hay que saber qué código estamos usando. De momento hay que distinguir entre códigos de palabra o de dígito. La diferencia metodológica estriba en que para usar el primer código hay que saberse una regla, y para usar el segundo hay que saberse una tabla. Pero ya estamos hablando de métodos, es momento de describirlos. Paso de decimal a código binario de palabra
Dada una secuencia decimal, se le aplica con rigor la regla del código binario elegido, que puede ser, básicamente, uno de tres: binario puro, Gray y exceso. De decimal sin signo a binario puro sin signo
Se divide sucesivamente el número decimal entre dos hasta que el cociente es 1 ó 0. En este momento el equivalente binario se obtiene leyendo el último cóciente y los restos de abajo arriba. Por ejemplo: 19 en decimal se escribe 10011 en binario puro 19/2=9 Resto=1 9/2=4 Resto=1 4/2=2 Resto=0 2/2=1 Resto=0 En realidad con poco tiempo de práctica nadie aplica este método, todos lo hacemos a ojo y con acierto. Al fin y al cabo tenemos que acabar escribiendo magnitudes en binario como en decimal; nuestro mundo también va a ser el digital binario. De binario puro sin signo a decimal sin signo
Se obtiene el sumatorio de los bits ponderados con las correspondientes potencias de 2. Por ejemplo: 10011 en binario puro es 19 en decimal 10011= 1x24 + 0x23 + 0x22 + 1x21 + 1x20 = 16+0+0+2+1 Pero igual que en el caso anterior, nadie aplica esta regla tan larga como exacta, una vez que tengamos confianza leeremos directamente del binario. Al fin y al cabo, nuestro mundo es binario y no deberíamos pasar al decimal.
© Universidad de Deusto - ISBN 978-84-9830-784-9
1. Códigos binarios
3
De decimal con signo a binario puro con signo en complemento a 1 o en complemento a 2.
La regla de escritura es muy sencilla como muestra la siguiente tabla. Binario puro con C-1 Binario puro con C-2 positivos: binario puro y añadir 0 positivos: binario puro y añadir 0 negativos: C-1 del positivo negativos: C-2 del positivo decimal binario puro binario puro con C-1 binario puro con C-2 +13 1101 01101 01101
-13 10010 10011
+1 1 01 01
-1 10 11
0 0 00 00
Paso de decimal a código binario BCD
Si los anteriores códigos se basaban en una regla, éstos se basan en una tabla. El método consiste en sustituir cada dígito decimal por los cuatro bits correspondientes. A continuación se ofrece una tabla con alguno de los códigos BCD, con los más comunes. decimal BCD puro BCD XS3 Aiken BCD 5421 0 0000 0011 0000 0000
1 0001 0100 0001 0001
2 0010 0101 0010 0010
3 0011 0110 0011 0011
4 0100 0111 0100 0100
5 0101 1000 1011 1000
6 0110 1001 1100 1001
7 0111 1010 1101 1010
8 1000 1011 1110 1011
9 1001 1100 1111 1100
Algunos alumnos tienen tendencia a buscar y aprender la regla que subyace en esta tabla, pero no siendo esto malo debe recordarse que la que manda es la tabla, no la regla intuida. Para pasar de un código BCD a decimal habrá que aplicar la tabla inversa a cada grupo de cuatro bits. Parece sencillo aunque tiene alguna particularidad.
© Universidad de Deusto - ISBN 978-84-9830-784-9
Ejercicios de sistemas digitales
4
Operaciones con información binaria
Básicamente hablamos de operaciones lógicas: AND, OR, NOT, etc. y aritméticas: suma, resta y complemento. Las primeras serán vistas en el siguiente capítulo, pasemos a las aritméticas. Una vez más todo pasa por aplicar el método rigurosamente, y habrá tantos como códigos binarios utilicemos. Suma en binario puro sin signo
Este es la suma básica, y es tan sencilla como sumar en decimal. La tabla de la suma es: 0 + 0= 0 y me llevo 0 (S=0 y C=0) 0 + 1= 1 y me llevo 0 (S=1 y C=0) 1 + 0 = 1 y me llevo 0 (S=1 y C=0) 1 + 1 = 1 y me llevo 1 (S=0 y C=1) Suma en binario puro con signo en complemento a 2
1. Sumar las secuencias binarias según la regla del binario puro. 2. Despreciar el acarreo final. 3. Habrá desborde si los dos últimos acarreos son distintos. Complemento a 2 de una secuencia binaria
1. Complementar a 1. 2. Sumar 1, despreciando el acarreo final si se produce. Resta en binario puro con signo en complemento a 2
1. Complementar a 2 el sustraendo. 2. Sumar el minuendo y el sustraendo negado según la regla del C-2. Como consejos finales: • Identifica bien cuál es el código de partida y cuál es el de llegada. • Identifica si el número a leer o escribir tiene signo o no. • Ten presente (a la vista) la regla o tabla que vas a aplicar. • Aplica el método o tabla radicalmente. • Recuerda que un código es algo arbitrario y no necesita de tu
inteligencia. • Comprueba el resultado en la medida de lo posible: si has pasado
de A a B, siempre podrás darle la vuelta y ver si obtienes de nuevo A.
© Universidad de Deusto - ISBN 978-84-9830-784-9
1. Códigos binarios
5
Ejercicios
1.1 Pasa de decimal a binario, y viceversa.
Binario Decimal Decimal Binario
01 1
1101 7
1100 9
1111 12
0011 34
0101 32
1010 33
0000 01
000000 00001
110011 100
10101 205
0100011 63
01111000 64
0110011 4
000000011 56
11011 62
011 1023
100000001 0000
00110 015
© Universidad de Deusto - ISBN 978-84-9830-784-9
Ejercicios de sistemas digitales
6
1.2 Convierte entre sí los siguientes números hexadecimales y binarios.
Hexadecimal Binario
12A
3C0
4
FF
D1A
11
00100110
010100001
11001101100
10000
1000
01001
© Universidad de Deusto - ISBN 978-84-9830-784-9
1. Códigos binarios
7
1.3 Pasa de decimal a BCD puro, y viceversa.
DEC. BCD puro
4
32
63
0
1
00
36
12
04
100
00110010000
01100011
00000000
01000010
10000111
000100000000
0010
000010011001
00111100
© Universidad de Deusto - ISBN 978-84-9830-784-9
Ejercicios de sistemas digitales
8
1.4 Anota para cada número de bits, el rango de valores asociado a cada código. Anota fuera de la tabla las expresiones generales para cada código.
Núm. bits BP sin signo BP con C-2
1
2
3
4
5
6
7
8
9
10
BP sin signo Rango Núm. bits
Goles en un partido
Peso de una persona
10 notas de un alumno
Temperatura en una casa
Temperatura en la calle
Altura sobre el nivel del mar
Años de vida
Dinero en una cuenta
Diferencia horaria
Altura de una marea
© Universidad de Deusto - ISBN 978-84-9830-784-9
1. Códigos binarios
9
1.5 Anota para cada secuencia binaria la secuencia decimal que le corresponde, según sea el código en el que se lea dicha secuencia binaria.
Secuen.Binaria
Según BP sinsigno
Según BP consigno en C-2
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
© Universidad de Deusto - ISBN 978-84-9830-784-9
Ejercicios de sistemas digitales
10
1.6 Codifica las siguientes magnitudes decimales con signo en el código binario puro con signo en C-2. Selecciona cuidadosamente el número de bits para codificar cada número.
Decimal Binario con C-2
+15
+36
+8
+1
+0
-10
-4
-9
+17
-17
-001
-106
-64
-63
+36
-44
-0
-99
-1585
+1260
© Universidad de Deusto - ISBN 978-84-9830-784-9
1. Códigos binarios
11
1.7 Obtén el número decimal con signo correspondiente a cada secuencia binaria codificada en binario puro con signo en C-2.
Binario
Decimal leídosegún BP con C-2
100
00111
10100
11000
10011101
1100
011111
10000
11111
01111
1111
10010100
11111111
1011001
0000001
© Universidad de Deusto - ISBN 978-84-9830-784-9
Ejercicios de sistemas digitales
12
1.8 Completa las siguientes sumas binarias, indicando en cada caso si ha habido o no desborde. Comprueba los datos anotando a la izquierda los resultados decimales.
Dec. Binario Puro Dec. Binario Puro
1100+ 01
00110
+ 110
101000
+ 000001
11000
+ 10011
11001
+ 1111001010
010
+ 00010
1001001010+1000010011
0100001
+0111101
111111111
+ 1
11011010
+ 1110000101
© Universidad de Deusto - ISBN 978-84-9830-784-9