Publicado el 18 de Enero del 2019
2.419 visualizaciones desde el 18 de Enero del 2019
4,6 MB
253 paginas
Creado hace 13a (07/02/2012)
Introducción a los sistemas digitales.
Un enfoque usando lenguajes de descripción de hardware.
José Daniel Muñoz Frías
i
ii
© José Daniel Muñoz Frías.
Esta obra está bajo una licencia Reconocimiento – No comercial – Compartir bajo
la misma licencia 2.5 España de Creative Commons. Para ver una copia de esta
licencia, visite http://creativecommons.org/licenses/by-nc-sa/2.5/es/ o envíe una
carta a Creative Commons, 171 Second Street, Suite 300, San Francisco, California
94105, USA.
Usted es libre de:
copiar, distribuir y comunicar públicamente la obra.
hacer obras derivadas.
Bajo las condiciones siguientes:
Reconocimiento. Debe reconocer los créditos de la obra de la manera especi-
ficada por el autor o el licenciador (pero no de una manera que sugiera que
tiene su apoyo o apoyan el uso que hace de su obra).
No comercial. No puede utilizar esta obra para fines comerciales.
Compartir bajo la misma licencia. Si altera o transforma esta obra, o genera
una obra derivada, sólo puede distribuir la obra generada bajo una licencia
idéntica a ésta.
Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la
licencia de esta obra.
Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del
titular de los derechos de autor.
Nada en esta licencia menoscaba o restringe los derechos morales del autor.
Edición: . Enero 2012.
iii
A mis padres.
Índice general
Índice general
v
1 Introducción
1
1
Introducción a la técnica digital . . . . . . . . . . . . . . . . . . . .
4
Bits y niveles lógicos . . . . . . . . . . . . . . . . . . . . . . . . . .
7
Tecnologías para implantar circuitos digitales . . . . . . . . . . . .
Niveles de diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.1.
1.2.
1.3.
1.4.
1.5.
2.1.
2.2.
2.3.
2.4.
2.5.
2 Álgebra de Boole
19
Definiciones y teoremas del álgebra de Boole
. . . . . . . . . . . . 19
Funciones lógicas no básicas . . . . . . . . . . . . . . . . . . . . . 23
Formas normales de una función booleana . . . . . . . . . . . . . 24
Simplificación usando diagramas de Karnaugh . . . . . . . . . . . 28
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3 Sistemas de numeración
37
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.1.
Sistemas de numeración posicionales . . . . . . . . . . . . . . . . 38
3.2.
Conversión entre bases . . . . . . . . . . . . . . . . . . . . . . . . 40
3.3.
Rangos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.4.
Sistemas hexadecimal y octal . . . . . . . . . . . . . . . . . . . . . 43
3.5.
Operaciones matemáticas con números binarios . . . . . . . . . . 45
3.6.
Representación de números enteros . . . . . . . . . . . . . . . . . 48
3.7.
Rangos en los números con signo . . . . . . . . . . . . . . . . . . . 53
3.8.
3.9.
Operaciones matemáticas con números con signo . . . . . . . . . . 54
3.10. Otros códigos binarios . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.11. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4 Introducción al lenguaje VHDL
67
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Flujo de diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Estructura del archivo . . . . . . . . . . . . . . . . . . . . . . . . . 70
Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.1.
4.2.
4.3.
4.4.
v
vi
ÍNDICE GENERAL
4.5.
4.6.
4.7.
Tipos de datos, constantes y operadores . . . . . . . . . . . . . . . 78
Sentencias concurrentes . . . . . . . . . . . . . . . . . . . . . . . . 82
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5 Circuitos Aritméticos
87
5.1.
Sumador de un bit . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.2.
Sumador de palabras de n bits . . . . . . . . . . . . . . . . . . . . 89
5.3.
Restador de n bits . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.4.
Sumador/Restador de n bits . . . . . . . . . . . . . . . . . . . . . 107
5.5. Multiplicadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Sumador de números en BCD natural
5.6.
. . . . . . . . . . . . . . . . 113
5.7.
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
6 Bloques Combinacionales
117
6.1. Multiplexor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Demultiplexores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
6.2.
6.3.
Codificadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Decodificadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
6.4.
Comparadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
6.5.
6.6.
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
7 Circuitos secuenciales. Fundamentos
135
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Conceptos básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Biestables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
7.1.
7.2.
7.3.
7.4.
8 Máquinas de estados finitos
149
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Nomenclatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Diseño de máquinas de estados . . . . . . . . . . . . . . . . . . . . 151
Descripción en VHDL . . . . . . . . . . . . . . . . . . . . . . . . . 158
Detector de secuencia . . . . . . . . . . . . . . . . . . . . . . . . . 165
Detector de secuencia usando detectores de flanco . . . . . . . . . 169
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
8.1.
8.2.
8.3.
8.4.
8.5.
8.6.
8.7.
9.1.
9.2.
9.3.
9.4.
9 Registros
177
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Registros de entrada y salida en paralelo . . . . . . . . . . . . . . . 177
Registros de desplazamiento
. . . . . . . . . . . . . . . . . . . . . 180
Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
10 Contadores
189
10.1.
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
10.2. Contador binario ascendente . . . . . . . . . . . . . . . . . . . . . 189
ÍNDICE GENERAL
vii
10.3. Contador binario descendente . . . . . . . . . . . . . . . . . . . . . 191
10.4. Contador ascendente / descendente . . . . . . . . . . . . . . . . . 193
10.5. Contadores con habilitación de la cuenta . . . . . . . . . . . . . . 194
10.6. Contadores módulo m . . . . . . . . . . . . . . . . . . . . . . . . . 196
10.7. Conexión de contadores en cascada . . . . . . . . . . . . . . . . . 198
10.8. Contadores con carga paralelo . . . . . . . . . . . . . . . . . . . . 201
10.9. Contadores de secuencia arbitraria . . . . . . . . . . . . . . . . . . 203
10.10. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
11 Diseño de sistemas complejos: ruta de datos + control
209
11.1.
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
11.2. Control de una barrera de aparcamiento . . . . . . . . . . . . . . . 210
11.3. Control de calidad de toros . . . . . . . . . . . . . . . . . . . . . . 216
11.4. Conversor de binario a BCD . . . . . . . . . . . . . . . . . . . . . . 222
11.5.
. . . . . . . . . . . . . 232
11.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Interconexión de dispositivos mediante SPI
Bibliografía
Índice alfabético
243
245
Capítulo 1
Introducción
En este capítulo se realiza una introducción a los conceptos básicos que se uti-
lizarán a lo largo del texto. Se expone la diferencia entre un sistema digital y uno
analógico, remarcando las ventajas de los primeros frente a los segundos. A contin-
uación se define qué es un bit y cómo se representa en un circuito. Se presentan a
continuación algunas de las funciones básicas que se pueden realizar con los cir-
cuitos digitales y se termina el capítulo introduciendo los tipos de circuitos usados
para diseñar sistemas digitales, haciendo especial énfasis en los circuitos digitales
programables y el flujo de diseño seguido para configurarlos.
1.1.
Introducción a la técnica digital
Una señal analógica es una representación análoga a la magnitud física que
pretende sustituir. Por ejemplo si medimos con un osciloscopio la señal de salida de
un micrófono, lo que veremos en la pantalla es una señal equivalente a la señal de
audio que está capturando el micrófono. Así, el micrófono traduce las variaciones
de presión del sonido capturado por su membrana en variaciones de tensión en sus
conectores de salida.
En un sistema analógico, se usan componentes electrónicos para procesar señales
analógicas, de forma que todo el circuito trabaja siempre con una copia analógica de
la señal, tal como se ilustra en la figura 1.1, en la que se muestra un amplificador
de audio.
Figura 1.1: Sistema analógico: amplificador de audio.
1
2
Introducción
Figura 1.2: Muestreo y cuantización de una señal analógica
Las ventajas de este tipo de sistemas son:
Las señales con las que trabaja el circuito electrónico son copias “exactas” de
la señal analógica de entrada.
Los circuitos para procesar las señales analógicas necesitan pocos transis-
tores.
Pueden manejar señales de potencia y de muy alta frecuencia.
Pero los inconvenientes son:
Los circuitos analógicos son sensibles al ruido electromagnético, lo que hace
que la señal deje de ser una copia exacta de la entrada. Se podría decir que la
señal se “ensucia” conforme va avanzando por el circuito analógico.
El comportamiento de los componentes electrónicos varía con la temperatura,
edad del componente, etc. lo que hace que, para una misma señal de entrada,
la salida del sistema analógico sea distinta de un circuito a otro, o cuando
varía
Comentarios de: Introducción a los sistemas digitales (0)
No hay comentarios