Problemas de Circuitos y Sistemas Digitales - Carmen Baena Oliva PDF

Title Problemas de Circuitos y Sistemas Digitales - Carmen Baena Oliva
Author Joseph Frydesk
Pages 396
File Size 13.7 MB
File Type PDF
Total Downloads 185
Total Views 266

Summary

Y SISTEMAS DIGITALES Carmen Baena • Manuel Jesús Bellido • Alberto Jesús Molina María del Pilar Parra • Manuel Valencia ID 1 4 IC6 A B C D 7448 1 1 UA 9 o1 Q~ IC Q Q 2 a$ 43 n4 n4 7 ' . v z~ R2 n, cb4 oa I1 10K B .R, ( 0 ' 9 9 1 2 1 A 7 2 1 1 A B UNIVERSIDADE DE VIGO BIBLIOTECA _ .. , 111111...


Description

Y SISTEMAS DIGITALES Carmen Baena • Manuel Jesús Bellido • Alberto Jesús Molina María del Pilar Parra • Manuel Valencia

ID

1 4 IC6 7448

A B C D

1

1

UA

o1 Q~

Q Q

2

9 a$ 43 n4 n4

IC

7

' .

v z~

n,

cb4 oa

R2 10K

I1

B .R, 0 ' 9 9 (

1

A B

2

1

A

7

2

1 1

UNIVERSIDADE DE VIGO BIBLIOTECA _ .. ,

1111111111 III III I II II

74

3V00072350 1 F

vcc

C-

Áq7

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES Carmen Baena Oliva Manuel Jesús Bellido Díaz Alberto Jesús Molina Cantero María del Pilar Parra Fernández Manuel Valencia Barrero Departamento de Tecnología Electrónica Universidad de Sevilla

McGraw-Hill MADRID • BUENOS AIRES • CARACAS • GUATEMALA • LISBOA • MÉXICO NUEVA YORK • PANAMÁ • SAN JUAN • SANTAFÉ DE BOGOTÁ • SANTIAGO • SÁO PAULO AUCKLAND • HAMBURGO • LONDRES • MILÁN • MONTREAL • NUEVA DELHI • PARÍS SAN FRANCISCO • SIDNEY • SINGAPUR • ST . LOUIS • TOKIO • TORONTO

TABLA DE CONTENIDOS

PRÓLOGO

vi¡

1.

REPRESENTACIÓN Y CODIFICACIÓN BINARIA 1

2.

ÁLGEBRA Y FUNCIONES DE CONMUTACIÓN 19

3.

ANÁLISIS DE CIRCUITOS COMBINACIONALES 35

4.

DISEÑO DE CIRCUITOS COMBINACIONALES 51

5.

SUBSISTEMAS COMBINACIONALES

6.

CIRCUITOS ARITMÉTICOS

7.

ANÁLISIS DE CIRCUITOS SECUENCIALES 169

8.

DISEÑO DE CIRCUITOS SECUENCIALES 197

9.

SUBSISTEMAS SECUENCIALES

229

10 .

MEMORIAS SEMICONDUCTORAS

263

11 .

INTRODUCCIÓN A LOS SISTEMAS DIGITALES 291

12 .

DISEÑO DE UNIDADES DE CONTROL

325

13

MISCELÁNEA

359

BIBLIOGRAFÍA

391

89 141

v

PRÓLOGO

Este ejemplar es un libro de problemas resueltos en el campo del Diseño Lógico . Como tal libro de problemas ha sido concebido con la finalidad de enseñar cómo se aplican los conceptos y herramientas a casos concretos . Esto significa que nuestra atención no se centra en el desarrollo de la doctrina teórica, sino en tratar de explicar cómo interpretar enunciados de problemas más o menos bien especificados y, empleando los conocimientos teóricos adquiridos por otras vías, resolver ese problema en particular y no otro . Como se ve, nuestros objetivos primarios son potenciar las capacidades de aplicación de la teoría y la de resolución práctica de problemas . En cuanto a la disciplina, el término Diseño Lógico alude a materias tan bien conocidas como son los Circuitos y Sistemas Digitales o la Teoría de Conmutación . En ella se incluyen : 1) los fundamentos matemáticos usuales (álgebra de Boole, representaciones binarias de números y su aritmética, codificación binaria) ; 2) la presentación, análisis y diseño de circuitos a nivel de conmutación, tanto combinacionales como secuenciales ; y 3) la descripción y realización de sistemas digitales a nivel de transferencias entre registros (RT), organizando el sistema como una unidad de procesado de datos y otra de control . Aunque claramente fuera del contexto de este libro, las materias fronteras son, en el nivel inferior, el tratamiento eléctrico de las puertas lógicas y, en el nivel superior, la arquitectura de computadores, así como los sistemas multiprocesadores . La proliferación de aplicaciones y el considerable aumento de la complejidad experimentada por los circuitos digitales en los últimos años hacen inviable el cubrimiento completo de esta materia . Nuestro propósito ha sido desarrollar un conjunto de problemas que den soporte y fundamenten adecuadamente a todos los circuitos y técnicas de Diseño Lógico . Nuestro libro está pensado para un primer curso de Diseño Lógico, con aplicación en diversos estudios universitarios tales como Informática (fundamentos del hardware) e Ingeniería Electrónica (realización de sistemas digitales) . También es útil en algunos campos científicos, en concreto, los relacionados con la Teoría de Conmutación, la Teoría de Autómatas y la Aritmética del Computador . Además, al estar fuertemente enfocado a la resolución de problemas, este texto también puede servir a profesionales que deseen realizar una puesta al día

vi¡

viii

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

rápida y eficiente en las realizaciones de circuitos y de sistemas digitales . El uso de este libro no requiere conocimientos específicos previos ni en Electrónica, ni en Computadores, ni en Matemáticas avanzadas . Sin embargo, al ser un libro de problemas, el lector debe conocer a nivel teórico los conceptos, principios y técnicas del diseño digital . En la actualidad hay disponibles suficientes libros que cubren satisfactoriamente los aspectos teóricos de esta materia (véanse las referencias que citamos) . A ellos deberá acceder el lector para conocer los fundamentos teóricos de este libro de problemas . No obstante, con el doble fin de resumir los conceptos más importantes y de presentar la terminología que utilizamos, en cada Capítulo hay una pequeña presentación teórica . Además, en los problemas que introducen materias, durante su resolución se detallan los nuevos aspectos teóricos involucrados . En la realización del libro hemos huido de los ejercicios puramente repetitivos, de los excesivamente simples y de los de escasa entidad . Esto es debido a que, en nuestra experiencia, es claramente preferible primar el nivel de profundidad de los problemas sobre la cantidad de éstos . Por otra parte y desde un punto de vista más práctico, hemos establecido dos tipos de ejercicios . En primer lugar hemos seleccionado un amplio conjunto de problemas para resolverlos en detalle . Sobre ellos el lector aprenderá la metodología de resolución . Hemos intentado que cada aspecto importante de la materia esté cubierto por problemas bien desarrollados . Posteriormente se presenta un segundo conjunto de problemas de los que sólo se ofrece la solución final . Con ello se pretende que el lector se aventure en la resolución de éstos y simplemente pueda comprobar la corrección de sus resultados . La organización elegida obedece a un cubrimiento de la materia que va de abajo a arriba (de forma similar a la metodología "bottom-up"), avanzando desde lo más simple a lo más complejo . En gran parte el material es autocontenido por lo que no se necesita ningún prerrequisito . Básicamente la materia contenida en este libro de problemas está dividida en tres grandes bloques más un Capítulo final . El primero de los bloques (Capítulos 1 al 6) corresponde a circuitos combinacionales, el segundo (Capítulos 7 al 10) a circuitos secuenciales y el último (Capítulos 11 y 12), donde se aumenta significativamente la complejidad, a los sistemas digitales . Dentro de cada bloque hemos ordenado los problemas procurando ordenarlos para que el lector pueda apoyarse en los ya realizados a la hora de abordar los que vengan a continuación . Así, cada bloque consta de varios Capítulos, cada uno de los cuales contiene problemas de una materia concreta . Los problemas de estos Capítulos han sido desarrollados procurando que el lector vaya aprendiendo a resolverlos dentro de esa materia . Por el contrario, el último Capítulo está ideado con la finalidad de que el lector evalúe su nivel de conocimientos . Para ello, por una parte, los problemas no se han ordenado según la materia, de forma que el lector no los sitúe

a priori en un contexto predeterminado ; por otra, se incluyen algunos que afectan

a más de una unidad temática ; y, por último, se presentan todos los enunciados juntos, cada problema separado de su solución, con el fin de que el lector tenga que ir a buscar explícitamente cada solución .

PRÓLOGO

ix

Concretando, la organización de este libro de problemas es como sigue : Capítulo 1 .- Aplicación de los conceptos básicos como son los sistemas de numeración y la codificación binaria . Estos problemas están orientados a practicar con las representaciones no decimales de magnitudes y las conversiones entre las distintas bases, así como la de números con signo y fraccionarios incluyendo tanto el punto fijo como el punto flotante . También se tratan los principales códigos binarios y decimales . Capítulo 2 .- Desarrollo de los problemas relacionados con el álgebra de Boole y con el manejo de las funciones booleanas incluyendo demostraciones de teoremas e identidades, y las diversas representaciones de funciones de n variables (tablas de verdad, mapas binarios y de Karnaugh) y los teoremas para dichas funciones que dan lugar a las expresiones canónicas y estándares . Capítulo 3 .- Análisis de circuitos combinacionales, tanto a nivel puramente lógico como temporal, incluyendo técnicas específicas para el análisis de circuitos con sólo puertas NAND o NOR . Capítulo 4.- Diseño de funciones . En él se aplican técnicas de reducción para obtener las expresiones mínimas en suma de productos o producto de sumas (basadas en mapas de Karnaugh y en los métodos de Quine-McCluskey y de Petrick) . Además se presta una especial atención a la obtención de los O's y los l's de una función cuando ésta se da a través de una descripción verbal de su comportamiento . Capítulo 5.- Presentación de los subsistemas combinacionales de propósito específico, en particular los que convierten códigos binarios (decodificadores, codificadores y convertidores de códigos) y los comparadores . También se incluyen los subsistemas de propósito general como son los multiplexores y los subsistemas programables (las memorias de sólo lectura, los PLA's y los PAL's) . Los subsistemas se estudian desde tres perspectivas : cómo se construyen a nivel de puertas, cómo se analizan circuitos que los contienen y cómo se diseñan funciones utilizándolos como componentes de la realización . Capítulo 6 .- Desarrollo de los problemas relacionados con la aritmética binaria . En ellos se muestran tanto las operaciones aritméticas (suma, resta, multiplicación . . .) como los circuitos combinacionales que las realizan (sumadores, sumadores-restadores y unidades aritmético-lógicas) . Capítulo 7 .- Presentación del biestable tanto a nivel lógico (RS, JK, D y T) como a nivel temporal (sin reloj, disparados por nivel, tipo Master-Slave y disparados por flanco) . También se aborda el análisis de circuitos secuenciales . Se desarrollan tanto los circuitos síncronos o con una única señal de reloj, como los asíncronos, incluyendo en éstos los que operan mediante entradas asíncronas y los circuitos que poseen más de una señal de reloj .



x

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Capítulo 8 .- Diseño de circuitos secuenciales síncronos . Se muestran los distintos pasos del proceso habitual de diseño, sistemático en su mayor parte, y que consigue como resultado un circuito de coste reducido u óptimo . Algunos de los problemas van encaminados a practicar con determinados pasos del proceso mientras que otros muestran el proceso globalmente . Capítulo 9 .- Desarrollo de los problemas de análisis de circuitos secuenciales construidos con contadores y registros, el diseño interno de estos dispositivos para que posean operaciones específicas, su realización mediante la asociación de subsistemas semejantes de menor tamaño y el diseño en general de funciones secuenciales . Capítulo 10 .- Problemas de memorias semiconductoras . Básicamente están dirigidos al uso de estas memorias y a la formación de memorias "principales" por la asociación de varios de estos dispositivos (realización de mapas de memorias) . Capítulo 11 .- Introducción al nivel de transferencia entre registros (nivel RT) y al diseño de sistemas digitales . En particular, se tratan las formas de descripción (notación RT, cartas ASM y lenguaje HDL), conectándolas con los bloques de circuitos funcionales, básicamente registros . También se incluyen problemas sobre las técnicas de interconexión entre registros mediante buses y la realización de unidades de datos simples cuando se conoce su operación a nivel RT . Capítulo 12 .- Diseño de sistemas digitales completos, esto es, la unidad de datos y la de control . En los primeros problemas se parte de una unidad de procesado de datos conocida y hay que desarrollar una unidad de control adecuada . Finalmente se afrontan problemas de diseño completo de sistemas digitales . Capítulo 13 .- Presentación de problemas de las materias ya tratadas .



Capítulo 1 REPRESENTACIÓN Y CODIFICACIÓN BINARIA

Los circuitos digitales operan con dos niveles de señal, la mayoría de las veces una tensión baja y otra alta . Desde el punto de vista matemático decimos que operan con señales binarias y los dos niveles se representan mediante 0 y 1 . Toda la información que ha de procesar un sistema digital ha de expresarse mediante combinaciones de esos dos valores . En consecuencia, hay que describir cómo se representan los entes mediante 0 y 1 (codificación binaria) y, más específicamente, por ser esencial en el cálculo, cómo se representan los números . REPRESENTACIÓN POSICIONAL DE MAGNITUDES Un sistema numérico se caracteriza por sus símbolos básicos ; estos son llamados dígitos, cada uno de los cuales representa una determinada cantidad de unidades . A su vez, cada cantidad puede expresarse mediante una secuencia de tales dígitos . En algunos sistemas la posición ocupada por cada uno de los dígitos dentro de la secuencia está asociada a un valor determinado (peso) . Decimos entonces que se trata de un sistema de representación posicional . Un sistema numérico de base r es un sistema posicional de representación donde los pesos de los dígitos son potencias de r. Así, una magnitud M puede representarse en la base r de la siguiente forma : M = dn-1 d n_2 . . . d1 do . d_1 d-2 ... d_m (r n-1 siendo d; un dígito de dicha base y cumpliéndose que d i e {0, 1, . . ., r-1} y M = d . r1 . j -m Para realizar cambios entre distintas bases existen diversos métodos . En este Capítulo se usan fundamentalmente los siguientes : n -1 - Para cambiar de base r a base 10, se aplica la fórmula : M = Y, r• .

d.

j= -m - Para cambiar de base 10 a base r, se utiliza el método de las divisiones sucesivas para obtener la parte entera y el método de las multiplicaciones sucesivas para obtener la parte fraccionaria .

1



2

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

- Para cambiar de una base arbitraria rl a otra r 2 , se pasa en primer lugar de rl a 10 y después de 10 a r2 . - Para cambiar entre las bases 2, 8 y 16 (potencias de 2) se utiliza un método de agrupación de bits .

REPRESENTACIÓN DE NÚMEROS CON SIGNO De entre las notaciones existentes para expresar números con signo nos hemos centrado en las notaciones signo-magnitud, complemento a 1 y complemento a 2 . En algunos aspectos que detallaremos a continuación las tres notaciones son similares . Se designa un bit especial denominado bit de signo (bs ) cuyo valor es 0 en números positivos y 1 en números negativos . En números positivos los demás bits representan la magnitud : A = ° n-1 a n _2 . . . al a0 . a_ 1 a_2 . . . a- m/ l bit de signo

T magnitud

La forma de representar los números negativos es distinta para las tres notaciones : - En la notación signo magnitud b s se hace igual a 1 y el resto de bits representan de nuevo la magnitud :



- A = 1 a 1 a n_2 . . . al a0 . a-1 a-2 . . .a_T 1

7

5

T bit de signo

magnitud

- En la notación complemento a 1, el número negativo es el complemento a 1 del correspondiente número positivo : -A= Cal (A) = 1 an_ l a n _ 2 . . . al ao . a-1 a-2 . . . a_ m - En la notación complemento a 2, el número negativo es el complemento a 2 del correspondiente número positivo : -m - A = Ca2(A) = Cal (A) + 2 REPRESENTACIÓN DE NÚMEROS EN PUNTO FLOTANTE La representación en punto (o coma) flotante se basa en la notación exponencial o científica . En dicha notación los números se expresan en la forma M = m x b e (m mantisa, b base, e exponente) . Esto permite expresar cantidades de muy distinto tamaño de forma compacta, por ejemplo, la masa del sol : 1 .989 x 1030 Kg o la carga del electrón : -1 .602 x 10 -19 C . Si se supone conocida la base, basta representar los valores de mantisa y exponente . Esto es lo que se hace cuando se representan números en punto flotante . Una cantidad se puede expresar de muchas formas distintas en notación exponencial, por ejemplo la velocidad de la luz, c, es 3 x 10 8 m/s ó 0 .003 x 10 11 m/s ó 3000,n 10 m/s, etc . Para trabajar con números en punto flotante se suele adoptar un convenio acerca de cuál de las múltiples expresiones de la forma m x be es la que se escoge . En este Capítulo trabajaremos con mantisas cuyo dígito más significativo es "no nulo" (notación normalizada) . Por ejemplo,

REPRESENTACIÓN Y CODIFICACIÓN BINARIA

supongamos que disponemos de 5 dígitos para la mantisa, representaciones normalizadas de c serían : 3 .0000 x 108 ó 3000 .0 x 105 ó 30000 x 10 4, pero no lo sería 0 .0030 x 10 11 ó 0.00003 x 10 13 . Sin embargo, aún es necesario adoptar un segundo convenio para elegir una entre las diversas representaciones normalizadas . Ese convenio se refiere a concretar cuál es la posición del punto decimal de la mantisa . En este texto se trabaja con dos convenios : - Notación fraccionaria : el punto decimal está a la izquierda del primer dígito representado de la mantisa, en nuestro ejemplo : 0 .30000 x 109 . - Notación entera : el punto decimal está a la derecha del último bit representado de la mantisa, en nuestro ejemplo : 30000 x 104. CODIFICACIÓN BINARIA Por codificación binaria se entiende la representación de un conjunto de entes, numéricos o no numéricos, mediante palabras de n bits . Ahora presentaremos algunos códigos binarios de cada tipo . La conversión entre la base 2 y la base 8 ó 16 se realiza por agrupación de bits . Por extensión cualquier código binario puede representarse mediante los dígitos de dichas bases . Así podemos hablar de código octal y código hexadecimal .

0 1 2 3 4 5 6 7

código octal 000 001 010 011 100 101 110 111

0 1 2 3 4 5 6 7

código hexadecimal 0000 0001 0010 0011 0100 0101 0110 0111

8 9 A B C D E F

código hexadecimal 0000 0001 0010 0011 0100 0101 0110 0111

Entre los códigos más utilizados se encuentran los llamados códigos decimales . Estos asignan a cada uno de los dígitos de la base 10 una palabra binaria . Con su utilización se evita el proceso de conversión entre base 2 y base 10, aunque el número de bits precisado para expresar una cantidad es, en general, mayor . En la siguiente tabla se muestran algunos ejemplos : dígito decimal

BCD natural

BCD exceso 3

2 de 5

7 segmentos

0 1 2 3 4 5 6 7 8 9

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

0011 0100 0101 0110 0111 1000 1001 1010 1011 1100

00011 00101 00110 01001 01010 01100 10001 10010 10100 11000

1111110 0110000 1101101 1111001 0110011 1011011 0011111 1110000 1111111 1110011



4

PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES

Otro código de gran interés es el código Gray (o código reflejado) de n bits . En las siguientes tablas se muestran los casos n = 3 y n = 4 . Puede observarse en ellas la particularidad de que las palabras asignadas a dos números consecutivos se diferencian únicamente en 1 bit . Se trata por tanto de un códig...


Similar Free PDFs