Вы находитесь на странице: 1из 51

© Del documento, de los autores. Digitalización realizada por ULPGC.

Biblioteca Universitaria, 2011


Principios
de diseño digital

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
CONSULTORES EDITORIALES:

SEBASTIÁN DORMIDO BENCOMO


Departamento de Infonnática y Automática
UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA

LUIS JOYANES AGUILAR


Departamento de Lenguajes, Sistemas Infonnáticos e Ingeniero del Software
UNIVERSIDAD PONTIFICIA DE SALAMANCA en Madrid

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Principios
de diseño digital

Daniel D. Gajski

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Traducción:
Carlos García Puntonet
Julio Ortega Lopera
Francisco José Pelayo Valle
Beatriz Prieto Campos
Departamento de Electrónica y Tecnología de Computadores
Universidad de Granada

Coordinación de la traducción:
Alberto Prieto Espinosa
Catedrático de Arquitectura y Tecnología de Computadores
Universidad de Granada

Revisión técnica:
Mateo Valero Cortés
Antonio González Colás
Departamento de Arquitectura y Tecnología de Computadores
Universidad Politécnica de Cataluñ"

PRENTICE HALL
Madrid. • México· Santafé de Bogotá· Buenos Aires. Caracas· Lima· Montevideo
San Juan· San José· Santiago· Sao PauIo • White Plains
/ Datos de catalogación bibliográfica

DANIEL D. GAJSKI
Principios de diseño digital
PRENTICE HALL IBERIA. Madrid. 1997

ISBN: 84-8322-004-0
MATERIA:
Infonnática 631

Fonnato 195 x 250 Páginas 488

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
DANIEL D. GAJSKI
Principios de diseño digital

No está permitida la reproducción total o parcial de esta obra


ni su trasmisión o tratamiento por cualquier medio o método
sin autorización escrita de la Editorial

DERECHOS RESERVADOS
© 1997 respecto a la primera edición en español por:
PEARSON EDUCACIÓN, S. A.
el Núñez de Balboa, 120
28006 Madrid

ISBN: 84-8322-004-0
Depósito Legal: TO.- 1103-2000
2. a reimpresión: 2000
Traducido de:
PRlNCIPLES OF DIGITAL DESIGN
PRENTICE HALL, INC. - Simon & Schuster International Group
A Viacom Company
Copyright © MCMXCVIl
ISBN: 0-13-301144-5

Edición en español:
Editor: Andrés Otero
Diseño de cubierta: DIGRAF
Composición: REPROGRÁFICAS MALPE, S.A.
Impreso por: GRAFILLES

IMPRESO EN ESPAÑA - PRINTED IN SPAIN

Este libro ha sido impreso con papel y tintas ecológicas


© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Este libro está dedicado a mi esposa
ANA
por su paciencia y su apoyo incondicional
tanto en los momentos fáciles como en los difíciles
durante este proyecto.
Contenido

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
PRÓLOGO XIll

AGRADECIMIENTOS XIX

1. INTRODUCCiÓN 2

1.1. Representaciones del diseño 4


1.2. Niveles de abstracción 10
1.3. Proceso de diseño 12
1.3.1. Especificaciones del diseño 12
1.3.2. Desarrollo de una biblioteca de componentes 13
1.3.3. Síntesis del diseño 14
1.3.4. Análisis del diseño 14
1.3.5. Documentación 15
1.3.6. Fabricación 16
1.4. Herramientas CAD 16
1.4.1. Captura y modelado del diseño 16
1.4.2. Herramientas de síntesis 17
1.4.3. Verificación y simulación 18
1.4.4. Diseño físico 19
1.4.5. Test 19
1.5. Proceso típico de diseño 20
1.6. Organización del libro 21
1.7. Resumen del capítulo 23
1.8. Lecturas adicionales 24

vii
viii Principios de diseño digital

1.9. Problemas 2S

2. TIPOS DE DATOS Y REPRESENTACIONES 28

2.1. Sistemas numéricos posicionales 30


2.2. Números hexadecimales y octales 31
2.3. Conversiones entre sistemas numéricos 33
2.4. Suma y resta de números binarios 36

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
2.5. Representación de números negativos 39
2.5.1. Representación en signo y magnitud 39
2.5.2. Sistema numérico en complemento 41
2.6. Suma y resta en complemento a dos 43
2.6.1. Reglas para sumar 44
2.6.2. Reglas para restar 45
2.7. Multiplicación binaria 47
2.8. División binaria 50
2.9. Números en coma flotante 51
2.10. Códigos binarios para números decimales 54
2.11. Códigos de caracteres 56
2.12. Códigos para detección y corrección de errores 57
2.12.1. Códigos de detección de errores 59
2.12.2. Códigos de corrección de errores 61
2.13. Códigos Hamming 62
2.14. Resumen del capítulo 6S
2.15. Lecturas adicionales 66
2.16. Problemas 67

3. ÁLGEBRA BOOLEANA Y DISEÑO LÓGICO 70

3.1. Propiedades algebraicas 72


3.2. Definición axiomática del álgebra booleana 73
3.3. Teoremas básicos del álgebra booleana 76
3.4. Funciones booleanas 79
3.4.1. Complemento de una función 80
3.4.2. Manipulaciones algebraicas 81
3.5. Formas canónicas 83
3.6. Formas normalizadas 89
3.7. Otras operaciones lógicas 92
3.8. Puertas lógicas digitales 94
3.9. Ampliación a varias entradas y varios operadores 99
3.10. Implementaciones de puertas 103
3. lO.\. Niveles lógicos 104
3.10.2. Márgenes de ruido 105
Contenido ix

3.10.3. Conectividad de salida 107


3.10.4. Disipación de potencia 109
3.10.5. Retardo de propagación 109
3.10.6. Familias lógicas bipolares III
3.10.7. Familias lógicas MOS 114
3.11. Tecnología VLSI 117
3.12. Resumen del capítulo 125
3.13. Lecturas adicionales 126
3.14. Problemas 127

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
4. SIMPLIFICACiÓN DE FUNCIONES BOOLEANAS 130

4.1. Representación con mapas 133


4.2. Método de simplificación con mapas 143
4.3. Condiciones de indiferencia 147
4.4. Método de tabulación ISO
4.4.1. Generación de implicantes primos ISO
4.4.2. Generación de la cobertura mínima 153
4.5. Traslación a la tecnología de arrays de puertas 157
4.6. Traslación a la tecnología de bibliotecas específicas 166
4.7. Diseño libre de riesgos 170
4.8. Resumen del capítulo 174
4.9. Lecturas adicionales 175
4.\ O. Problemas 175

5. COMPONENTES COMBINACIONALES \78

5.1. S umadores con acarreo en cascada 180


5.2. Sumadores con acarreo anticipado \82
5.3. S limadores/restadores 187
5.4. Unidad lógica 188
5.5. Unidad aritmético- lógica 189
5.6. Decodificadores 193
5.7. Selectores \95
5.8. Buses 199
5.9. Codificadores de prioridad 200
5.10. Comparadores de magnitud 203
5.11. Rotadores y desplazadores 206
5. 12. Memorias de sólo lectura 209
5.13. Arrays lógicos programables 212
5.14. Resumen del capítulo 214
5.15. Lecturas adicionales 216
5.16. Problemas 216
x Principios de diseño digital

6. LÓGICA SECUENCIAL 220

6.1. Latch SR 223


6.2. Latch SR sincronizado 226
6.3. Latch D sincronizado 227
6.4. Biestables 229
6.5. Tipos de biestables 235
6.6. Análisis lógico secuencial 240
6.7. Modelo de máquina de estados finitos 247

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
6.8. Síntesis lógica secuencial 249
6.9. Reproducción del modelo FSM 252
6.10. Minimización de estados 254
6.11. Codificación de estados 258
6.12. Elección de los elementos de memoria 265
6.13. Optimización y temporización 268
6.14. Resumen del capítulo 270
6.15. Lecturas adicionales 271
6.16. Problemas 271

7. COMPONENTES DE MEMORIZACiÓN 276

7.1. Registros 278


7.2. Registros de desplazamiento 281
7.3. Contadores 283
7.4. Contador BCD 286
7.5. Contador asíncrono 287
7.6. Bancos de registros 290
7.7. Memorias de acceso aleatorio 293
7.8. Pilas de inserción/extracción 302
7.9. Colas primero en entrar, primero en salir 306
7.10. Caminos de datos sencillos 311
7.11. Caminos de datos generales 318
7.12. Diseño de la unidad de control 322
7.13. Resumen del capítulo 324
7.14. Lecturas adicionales 325
7.15. Problemas 325

8. DISEÑO DE TRANSFERENCIA ENTRE REGISTROS 328

8.1. Modelo de diseño 330


8.2. Definición FSMD 332
8.3. Esquema de la máquina algorítmica de estados 338
8.4. Esquema de síntesis ASM 346
Contenido xi

8.5. Compartición de registro (asociación de variables) 353


8.6. Compartición de la unidad funcional (asociación de operadores) 361
8.7. Compartición de bus (asoc iaci ón de conexiones) 370
8.8. Asociación de registros 373
8.9. Encadenamiento y multiciclo 376
8. 10. Segmentación de la unidad funcional 379
8. 11. Segmentación del camino de datos 382
8. 12. Segmentación de control 386
8.13. Planificación 389

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
8.14. Resumen del capítulo 399
8. 15. Lecturas adi cionales 400
8. 16. Problemas 400

9. DISEÑO DEL PROCESADOR 404

9.1. Conjuntos de instrucciones 407


9.2. Modos de direccionamiento 412
9.3. Diseño del procesador 416
9.4. Diseño del conjunto de instrucciones 417
9.5. Diseño CISC 42 1
9.6. Conjunto reducido de instrucciones 430
9.7. Diseño RISC 434
9.8. Avance de datos 438
9.9. Predicción de saltos 442
9. 10. Resumen del capítulo 446
9.1 1. Lecturas adicionales 446
9.12. Problemas 447

APÉNDICE: EXPERIMENTOS DE LABORATORIO 449

íNDICE 461
Prólogo

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Situación actual del diseño digital

Con los avances de la tecnología VLSI, se pueden fabricar microchips que con-
tienen cada uno varios millones de transistores. Como el diseño a mano de estos
microchips es casi imposible, ha surgido la industria CAD para proporcionar
herramientas software con objeto de diseñar estos complejos microchips. Por con-
siguiente, la mayoría de las técnicas de diseño digital que se enseñaban, están
ahora encapsuladas en herramientas CAD, y en la actualidad los diseñadores pue-
den concentrarse en el proceso de diseño global, como un todo, desde la defini-
ción del producto hasta su fabricación. Por todo esto, los diseñadores tienen que
dominar varias técnicas de análisis de requisitos, especificaciones de reproduc-
ción, modelado del diseño, co-diseño software/hardware, síntesis del microchip,
verificación, simulación, y tests. En este sentido, se ha introducido la noción de
diseño experto, dando un vuelco desde un conocimiento exhaustivo de las posi-
bles técnicas de diseño, hacia el conocimiento de los principios, y la capacidad de
usar herramientas CAD para explorar las diversas alternativas de diseño y técni-
cas de implementación.

Objetivos del texto

Principios de diseño. Este libro está concebido para proporcionar una compren-
sión detallada de los principios fundamentales del diseño sin exigir a los estu-
diantes la memorización de muchos detalles tecnológicos potencialmente confu-
sos. Hemos conseguido esta simplificación introduciendo bibliotecas de compo-

xüi
xiv Principios de diseño digital

nentes genéricos que reflejan restricciones prácticas de diseño, tales como coste y
retardo. Esta biblioteca genérica se usa para explicar todos los conceptos que se
presentan y para implementar todos los ejemplos que están resueltos en el texto.
Proceso de diseño. Tomado como un todo, este libro está estructurado en
torno al proceso de diseño global en vez de dirigirse particularmente a las técni-
cas de diseño relevantes dentro de una fase concreta del mismo. Por esta razón,
explicamos el proceso de diseño digital tanto al principio como a lo largo del
libro, enfatizando el papel de cada tarea dentro del contexto de los amplios pro-
cesos de diseño.

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Relación entre teoría y práctica. Desgraciadamente, muchos textos sobre
diseño digital tienden a destacar los principios básicos, o. inversamente, a discu-
tir con gran detalle teorías que raramente se usan. Para contrarrestar estas defi-
ciencias se ha planificado este libro de forma que desde el principio haya una rela-
ción clara entre los principios y el diseño práctico. Los fundamentos teóricos se
introducen sólo cuando ayudan a simplificar ciertas explicaciones o técnicas de
diseño.
Ejemplos detallados. En cada Capítulo se presentan varios ejemplos claros
que muestran cada paso del proceso de diseño. Creemos que los ejemplos deta-
llados son la mejor forma de aprendizaje, ya que los estudiantes pueden deducir
todos los pasos del diseño, evaluar las alternativas y cuestionarse las razones que
hay tras todas las decisiones. Los estudiantes también prefieren ejemplos detalla-
dos a lo largo del texto, ya que a través de ellos pueden comprender fácilmente el
significado de los nuevos conceptos. De esta manera, se evitan los errores en la
definición de conceptos que se encuentran frecuentemente en los ejemplos trivia-
les; sin embargo, los ejemplos detallados dejan al estudiante combinar los con-
ceptos del proceso de diseño y deducir por qué y cómo ir de un paso a otro del
diseño.
Diseño de transferencia entre registros. Además de los fines generales indi-
cados, el libro tiene una meta más específica, el aprendizaje de la metodología de
diseño, más allá de los niveles secuencial y lógico, abordando las técnicas de dise-
ño de transferencia entre registros como método general de diseño y también de
procesadores y microchips de aplicación específica. La finalidad de la exposición
del diseño de transferencia entre registros, es mostrar el vínculo perdido entre el
diseño lógico y secuencial, que se ve en el primer año de diseño de computadores
y la organización de computadores, usualmente contemplada en un segundo curso
de diseño de computadores. Esta materia se omite en mucho libros de texto,
dejando al estudiante que adivine cómo se usan los sumadores, contadores y
memorias en el diseño de los procesadores y otros microchips.

Temas destacados

Proceso moderno de diseño. En el primer capítulo se introduce la disciplina de


diseño de sistemas, definiendo el proceso de diseño y sus tareas principales. Este
capítulo sirve como base de exposiciones posteriores más detalladas así como
Prólogo xv

para proporcionar un esquema de la organización de todo el libro. También se dis-


cute la tecnología de un diseño moderno y las herramientas CAD que facilitan su
uso. Se presenta una breve visión del proceso de fabricación y se discute la rela-
ción entre diseño y fabricación. El objetivo del Capítulo I es motivar al estudian-
te a comprender el diseño de sistemas dándole una visión amplia del papel de la
ciencia del diseño en el mundo real.
Números binarios y representaciones de datos. En el Capítulo 2 se presen-
tan modelos de datos usados por los sistemas digitales. Como es crucial una repre-
sentación binaria inteligible para comprender cómo funcionan los sistemas digi-

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
tales. se explican minuciosamente los números binarios (tanto en punto flotante
como fijo) así como varios algoritmos para implementar operaciones aritméticas.
que se usarán en capítulos posteriores. También se explican varios tipos de mode-
los de datos y cómo usarlos eficientemente.
Impacto de la tecnología VLSI. Las técnicas de diseño siempre deben poder
adaptarse a ciertos compromisos entre los requisitos de un sistema dado y la tec-
nología disponible para su implementación. Por esta razón se introducen muy
pronto los principios y restricciones de la tecnología VLSI y se discute en casi
cada capítulo su impacto sobre varias técnicas de diseño. Sin embargo, este libro
no requiere un conocimiento de electrónica, ni trata de circuitos eléctricos. En su
lugar, se usan componentes que representan operadores aritméticos y booleanos
estándar así como estructuras de datos tanto sencillas como complejas. El libro no
utiliza bibliotecas de componentes concretas como TTL o bibliotecas CMOS
comercialmente disponibles, porque el libro se ha escrito bajo la suposición de
que comprender los principios de varios componentes y conocer cómo usarlos es
más importante que saber los nombres exactos y tipos de encapsulados de todos
los circuitos comercialmente disponibles. Por este motivo se usan componentes
genéricos independientes de cualquier tecnología patentada.
Enfoque actual del diseño lógico y secuencial. Las bibliotecas de diseño
actuales intentan ser pequeñas para simplificar tanto su mantenimiento como los
algoritmos de diseño y las herramientas CAD. A través de este libro, se usa una
sencilla biblioteca de puertas y se construyen todos los componentes de alto nivel
que se necesitan a partir de esta biblioteca básica. Los Capítulos 5 y 7, por ejem-
plo, introducen todos los componentes secuenciales y combinacionales que se
necesitan para el diseño de procesadores y circuitos integrados de aplicación
específica. Al mismo tiempo, creo que el hecho de que existan herramientas CAD
adecuadas, no debe hacer pasar por alto que estas también pueden aliviar a los
diseñadores de la necesidad de tratar con técnicas de optimización manual com-
plejas. Por esta razón, se enfatizan los fines básicos y principios de optimización
y se muestra el proceso de diseño moderno.
Enfoque formal al diseño de transferencia entre registros. En el pasado,
las técnicas de diseño por encima del nivel de síntesis secuencial se han conside-
rado un arte y han ocupado muy poco espacio en los textos de diseño. Para cubrir
este hueco, en el Capítulo 8 se introduce el concepto de máquina de estados fini-
tos con un camino de datos. Una vez definido este concepto, se muestra cómo
materializar los algoritmos arbitrarios, expresados en términos de un diagrama de
xvi Principios de diseño digital

flujo O de diagramas de transferencia entre registros, en un hardware constituido


por un camino de datos y una unidad de control, formados por componentes
secuenciales y combinacionales detenninados, definidos en los Capítulos S y 7.
Diseño del procesador. En el Capítulo 9 se muestra cómo se puede diseñar
una CPU usando el formalismo y los métodos de diseño del nivel de registros que
se introdujeron en el Capítulo 8. Además, este capítulo ofrece una introducción a
los conjuntos de instrucciones, la arquitectura del computador, y la metodología
de diseño del procesador. Para mostrar estos conceptos, en el Capítulo 9 se carac-
teriza el diseño de procesadores CISC de 16 bits y RISC de 32 bits con avance de

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
datos y predicción de saltos.

Características editoriales

Esquema de organización del libro. Para orientar al estudiante, se utilizan dia-


gramas de bloques típicos que resumen los temas presentados en el libro y que
definen sus interconexiones. Cada capítulo comienza con un párrafo introducto-
rio que resume los objetivos del capítulo y los temas que cubre. Esta visión ayu-
dará al estudiante a relacionar los conceptos presentados en capítulos anteriores
con los nuevos conceptos que se van introduciendo.
Procedimientos de diseño. Cada técnica de diseño se presenta paso a paso,
resumida en forma de diagrama de flujo. El diagrama de flujo permite al estudian-
te resolver problemas de fonna ordenada, así como sugerir cómo ampliar una téc-
nica determinada a nuevos problemas o a tecnologías que aparezcan en el futuro.
Ejemplos comprensibles. El libro incluye ejemplos resueltos para ilustrar
principios y procedimientos de diseño que son relevantes en ciertas aplicaciones.
En cada capítulo se utiliza un pequeño número de estos ejemplos comprensibles
para mostrar varias alternativas de diseño, guiando al lector a través de todos los
pasos necesarios del diseño, desde la definición hasta el esquema final.
Manual del profesor y transparencias para clases. Se ha desarrollado un
manual de soluciones que contiene los resultados de cada problema del final de
cada capítulo. El manual también incluye problemas originales para comodidad
del profesor. También se ofrecen transparencias de las clases dadas por el autor
cuando usa el libro. El manual y el conjunto de transparencias estarán disponibles
para los profesores que usen este libro como texto en sus clases.

Opciones del curso

Basándonos en su organización, este libro debería ser igualmente efectivo en dos


tipos de cursos. En un curso introductorio al diseño lógico, por ejemplo, el libro
se puede usar para enfatizar el diseño secuencial y combinacional tradicional,
cubierto en los estudios de ciencia e ingeniería informática tanto en Estados
Unidos como fuera. La materia para estos cursos corresponde a los Capítulos del
I al 7. Además, se incluye materia sobre diseño de transferencia entre registros,

~-~_ .. ~~~
Prólogo xvii

para sistemas de uso general y para procesadores de aplicación específica, usual-


mente cubiertos en un segundo curso de diseño digital o en un curso de introduc-
ción a la arquitectura de computadores.
En este curso, el estudiante aprendería primero los componentes básicos de
transferencia entre registros: componentes combinacionales en el Capítulo 5 y
secuenciales en el Capítulo 7. La mayor parte del curso consistiría en el aprendi-
zaje de técnicas de diseño a nivel de registro y procesos de diseño para síntesis de
procesadores específicos de aplicación arbitraria, que están en el Capítulo 8.
Finalmente, en el Capítulo 9, el estudiante aprendería el diseño de conjuntos de

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
instrucciones modernos y de procesadores RISC y CISC de uso general.
En cualquier caso, se sugiere complementar las clases con prácticas en las que
los estudiantes trabajarían con problemas reales de diseño usando herramientas
CAD modernas para reproducción del diseño, modelado, simulación, verifica-
ción. síntesis, análisis del tiempo. planteamientos de base, diseño ñsico y otros
aspectos del proceso de diseño. En nuestra experiencia, las prácticas han tenido
mucho éxito entre los estudiantes, ya que les permite relacionar los conceptos
aprendidos, con los diseños prácticos en un entorno de trabajo real. Se describen,
para ayuda del profesor. varios montajes de laboratorio y se dan varios ejemplos
de experimentos en el Apéndice.

Daniel Gajski
lrvine. California
Agradecimientos

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Primero, me gustaría agradecer a todos los estudiantes que han seguido mis cIa-
ses y preguntado cientos de cuestiones. haci endo que me diera cuenta del proce-
so de aprendizaje y forzándome a experim entar con varios métodos para replan-
tear el conocimiento sobre la ciencia del diseño.
Me gustaría agradecer a Nikil Dutt, Alex Orailoglu , Fadi Kurdahi , Youn-Long
Steve Lin, y a Allen C. H. Wu. que han probado en clase una primera versión de
este li bro proporcionándome muchas sugerencias útiles sobre como mej orar el
contexto y la presentación de los temas . También aprecio mucho las útiles suge-
rendas de revisore. anónimos sobre el material selecc ionado y la calidad de la
presentación .
Me gustaría también mostrar mi agradecimiento a las personas que me han
ayudado en la producción del libro. Jon Kleinsmith hizo las figuras, mecanogra-
fió y formateó el texto. Sin su paciencia y dedicaci ón este libro nunca hubiera ll e-
gado al editor. También estoy agradecido a Sarah Wilde por la edición deli cada y
minuciosa del manuscrito. Gracias también a los miembros del CAD LAB que me
ayudaron con las correcciones y lecturas de prueba de la vers ión final del texto:
Tedd Hadley. Jie Gong, Hsiao-Ping Juan. SOlita Bakshi. Alfred Thordarson,
David Kolson. Pradip Jha, Preeti Panda, Jianwen Zhu , Min Xu, Laurent Choura-
ki. Marie-Li se Flottes, Nong Fan, Joanna Kang, Wnwei Pan. Viraphol Chaiyakul.
y Poonan Agrawal. Tambi én estoy muy agradecido a Gen'y Johnson y Don
Fowley de Pre ntice Hall , que me convencieron de que escribir este libro sería un
reto adecuado e interesante en este momento de mi vida. Me gustaría también
agradecer a Tom Robbins, Barbara Cappucio, lrwin Zucker, y al personal de
Prentice Hall su gran profesionalidad en la producción del libro.

xix
Principios
de diseño digital

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
e
A
PUL
o

Introducción

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Diseñar no es sólo IIn conjunto de técllicas o cómo hacer una receta, es un
proceso en el que contribuyen muchas personas ell los diferentes aspectos
que dall lugar al produclo filial. Cada 1/110 de eslas personas ve el produc-
to desde WI punto de vista distinto, tiene WICl experiencia diferente, y usa
herramientas distintas. Juntos, convierten tul concepto en un producto real.
4 Principios de diseño digital

En cualquier producto, el proceso de diseño abarca desde la manera de concebir


su funcionamiento hasta el desarrollo de un esquema de fabricación, Muchas per-
sonas están implicadas en este proceso, desempeñando cada uno una tarea espe-
cífica,
El departamento de ventas, por ejemplo, estudia las necesidades de mercado
y determina los requisitos de un nuevo producto, Los tecnólogos seleccionan la
tecnología, y los proveedores los posibles componentes, mientras un grupo dc
apoyo adquiere o de sarrolla herramientas software que puedan facilitar el diseño
del producto y de cada una de sus partes, Los di señadores del producto convier-

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
ten los requi sitos del producto en esquemas para la fabricación, Los ingenieros de
tests desarrollan estrategias de test para verificar la corrección del diseño y prue-
ban los productos fabricados por si no funcionan , mientras que los ingenieros de
fabricación desarrollan planes de construcción y producción,

1.1. REPRESENTACIONES DEL DISEÑO


En la definición del producto, en el diseño y en el proceso de fabricación, cada
persona ve el producto desde un punto de vista ligeramente diferente y necesita
información específica para realizar su trabajo, Por este motivo, cada producto. y
consecuentemente cada di seño, requiere varias representaci on¡,s o puntos de vista
diferentes, que difieren en el tipo de información que se ctes:raca, Además. la
misma representación requiere a menudo distintos niveles de detalle en las distin-
tas fases del diseño o del ciclo de fabricación, Los tres tipos de representaciones
más comunes que se usan son las representaciones de comportamiento, estructu-
ral y física.
Una representación de comportamiento o funcional ve el diseño como una
caja negra y se centra en especificar su comportamiento en función de los valores
de entrada y restricciones de tiempo, En otras palabras, una representación de
comportamiento describe el funcionamiento pero no la implementación de un
diseño dado, definiendo la re,s puesta de la caja negra para cualquier combinación
de valores de entrada, pero sin describir la forma de diseñar o construir la caja
negra con unos componentes dados,
Una representación estructural, por el contrario. es aquella en la que se defi -
ne la caja negra como un conjunto de componentes y sus conexiones, A diferencia
de una representac ión de comportamiento, se especifica la implementación del
producto sin hacer referencia ex plícita a su funcionamiento. En algunos casos. por
supuesto, el funcionamiento se puede deducir a partir de sus componentes interco-
nectados. Sin embargo, es difícil deducir el funcionamiento de un diseño de esta
forma y es propenso a errores, ya que las funciones de algunos componentes puede
que no se usen con todo su potencial, o pueden ser modificadas codificando las
entradas y salidas de los componentes, Además, en casos en los que el número de
componentes es muy grande, digamos unos 10.000, sería imposible descubrir su
funcionamiento, especialmente porque la tecnología de hoy permite fabricar
microchips excesivamente complejos, con varios millones de componentes,
Introducción S

Finalmente, una representación física es aquella que especifica las caracte-


rísticas físicas de la caja negra. dando las dimensiones y situación de cada com-
ponente y las conexiones contenidas en la descripción estructural. Obsérvese que
mientras la representación estructural proporciona la conecti vidad del diseño,
sólamente la representación física describe las conexiones espaciales concretas
entre vari os componentes. En otras palabras. la representación física se usa para
describir el di seño después de haber sido fabricado, especificando su peso, tama-
¡io, disipación de calor, consumo de energía, y la posición de cada conector de
entrada o salida.

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
EJEMPLO 1. 1 Reloj despertador
PROBLEMA

Desarroll ar las re presentaciones dI! comportamie nto, estruc tural y física del diseño de un
reloj despertador senci llo.
SOLUCIÓN

Un reloj despertador senci llo consla de un visualizador de crislal líquido (LCD. Liquid
C,ysral Displ"r) que visualiza los segundos. minulos y horas, y cinco conmutadores difc-
renles para ajuslar la hom (S,), la alarma (S2)' el ava nce de los minulos (S3)' el avance de la
hora (S) . y la conexión de la alarma (S,). Cuando S, eSlá acuvado (cerrado), se puede aj us-
lar elliempo presionando S3 Ó S•. Cada vez que se pulsa S3 ó S•. el ajusle de los minutos o
la hora avanza 1 y el cambio en los minutos o la hora aparece en el visualizador del reloj .
Cuando S2 eSlá activado, se puede ajuslar la alarma de manera similar, pulsando S3 ó S. para
avanzar los minulos o la hora. Siempre que se eSlá ajuslando la alamla. la hora y los minu-
lOS aparecen en el LCD. Fi nalmenle, cuando el conmulador S5 eSlá activado (cerrado), la
alarma está habilitada, y se genera un sonido que dura 5 segundos cuando e l reloj ll ega al
inSlanlC de alamla.
El comportamiento de esle reloj desperlador se puede represenlar median le lres lareas o
procesos concurre nte s: re loj . aju ste . y alarma . Cada uno de estos procesos, a su vez, se
puede describir mediante un diagrama de flujo sencillo. que consisle en cajas en forma de
penlágono para indicar pregunlas y cajas rectangulares para inrucar cálculos. En las Figuras
1.1 a 1.3 se mueSlran los diagramas de Ilujo que represenlan el componamienlo de cada uno
de eslOs tres procesos.
Como se puede ver Cilla Figura 1. 1. el proceso del reloj tiene una señal de entrada. Pulso.
y seis variables inlemas: Segulldos, Millufos. Horas, Spalltalla, Mpalltalla y Hpallfalla . La
señal Pulso. que se usa para contar los segundos en la alamla, dura 1 segundo. siendo 1 la
primera milad del segundo y O el reSlO. Tres de las variables inlemas (Segul/dos. Mil/lilaS y
Horas) se usan para contabilizar los segundos. minutos y horas. Los Segundos y Minutos se·
conlabili zan en módulo 60 ( es decir. se pone a O siempre despué de que la cuenla alcance
59). Las Horas se conlabilizan en módulo 12, empezando por 1 y volviendo a 1 después de
llegar a 12. En fun cionamienlo. los Segulldos se incrementan en 1 siempre que la señal Pulso
pase de O al , lo que se indica en el diagrama de Ilujo con una flecha hacia an·iba. l . De
forma similar, siempre que los Se[.! lfIlllos alcancen 0, los Mifllllos se incrementan en l . y
siempre que los Mil/lItos llegan a O. las Horas se incrementan en l .
Las olras lres variables inlernas (Sp(lIIwll", Mpclllfalla y Hpal/falla ) se usan para visua-
li zar los segundos. minulos y horas. Hay que deslacar que cada una de es las variables de
6 Principios de diseño di gital

visuali zación se actualizan indi vidualmente siempre que hay un cambio en las correspon-
d ientes variables de reloj (es decir, en Seg undos. Min utos y Horas).

0
Pulso = t "
r-('-___ .:..._/"
sí - I Segwlllos = Selllmdos
. I Spcmtalla '" Seg/l"tlo,~
o
+ 1 I
t
I
r --!n!2o<~~;::~>~ >!..i._11I M/'.\1ill/uos

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
-<" ¿Seglllldo.{ O? I 11= M
p Ul! a (/
ini/tos
'l'
= /.'
+ I
//I I/tos

t I
r<¿Mi","OS - O') si Huras = Horas +
Hpt/lllrll/(/ = H oras

I
1

I
I
I
I
FIGURA 1.1 Repres entación del comportamiento del reloj des pertador: proceso del reloj.

A d ife rencia del proceso del reloj . el proceso de ajuste (Figura 1.2) describe como aj us-
tar la hora del reloj o de la alarm a, como se desee. Se usan dos vari ables internas adiciona-
les. Ma/arl/w y Ha/arllla, para almacenar los minutos y la hora de la alarm a. Acti vando los
conmutadores S, y S4' se pueden incrementar los minutos y la hora de la alarma, que están
almace nados en Mala rllla y Ha/arillO respecti vamente . Entonces, se ajusta el tiempo correc-
to primero acti vando el conmutador S , Ó S2' según se qu.iera aj ustar la hora de l reloj o de la
alarma, y después se pulsan repetidamente los conmutadores S3 y S4' Obsérvese que no se
pueden accionar S, y S2 a la vez. Obsérvese también que la hora q ue se aj usta accionando
S3 Ó S4 se visualiza inmediatamente en el visualizador del reloj .
El úl timo de los tres procesos, el proceso de la alarma, (Figura 1.3). se ha diseñado para
ac ti var la alarma poniendo la variabl e de sal ida, Pirido, a I en el momento en el que la hora
del reloj se iguale a la de la alarma. suponiendo que el conmutador de alarma, S" está acti-
vado. En otras palabras, siempre que M inuros = Ma/a rllla. Horas = Ha/arma , y S, esté ac ti-
vado. Pitido tomará el valor l .
Para una descripción del comportamiento del reloj despertador como la que acabamos de
realizar, podría haber vari as descripciones estructurales ya que un a descripción de l compor-
tamiento no determina una estructura exacta. Sin embargo, especifica una serie de vari ables
internas que se pueden usar para almacenar datos y una seri e de declaraciones de asignacio-
nes utilizadas para transformac ión de datos. A partir de esta información, se pueden conver-
tir las variables en componentes de memoria y deducir los componentes aritméticos adecua-
dos para realizar las transformaciones de datos especificadas en las declarac iones de as igna-
ción. Esta conversión da lugar a la representación más obvia. aunque no óptima. qu e se
mues tra en la Figura l A.
Obsérvese que, según la Figura l A, el reloj despertador lo dirige el oscilador. qu e pro-
du ce una o nda senoidal con una frecuencia de un ciclo por segundo, como se ve en la Figura
1.5(a). El generador de pulsos convie rte la onda senoidal en un tren de pulsos. ver Figura
Introducción 7

1.5(h), de la misma frecuencia que el seno, pero toma sólo dos valores : O y 1. Esta señal.
con sólo dos valores posibles. se denomina señal digital, y a culaquier sistema que proce-
sa señales digitales se le denomina sistema digital.

1
no~ (,S¡ actI vado" ~i
¡ ¡
)-!!.........~
00

' >lf<
¿S2 act,\'udo? c.S2 actIvado?

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
+ r< +
. ~
no / ¿53 activado? ).& ¿53 actIvado? +
+
I M alanllo = M llla rnw + I
Mpamolla = M alanllo
I I MiIlIlIOS::: MilJlltQS
Mpamalla :: M i/lUtos
+ I
I
1
).á
! ,1
~
00
¿54 activado? ¿54 activado?
¡ +
I Ha/amm = H a/anllo + I
Hpalllllllll = H,lIan/w
I I H oras "" H oras + I
=
Hpatlwlfa H ora.f
I
I
I
l

FIGURA 1.2 Representación del comportamiento del reloj despertador: proceso de ajuste.

no
¿Mil/l/tos = Ma/arma ?

00
¿Horas ::: H{//a rma ?

00
¡ 55 (lcril'ado?

FIGURA 1.3 Representación del comportamiento del reloj despertador: proceso de a larma.
8 Principios ue di seflo digital

qJ / s, (ajuste de la hora)

L--L

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Visualizador
de segundos
Visualizador
de minutos S;!
Visualizador ;:~~:::¡:======I----------'
deho~ S'~+--1~___-r_+-____________~
"-

Pitido
~
Ss (alarma
activada)

FIGURA 1.4 Representación estructural de l reloj despertador.

1 seg un do

I I l b) Tre )1 lit! pl bp~


(l L _ _ _ _--L.._ _ _ _--'-_ _ __ --L.._ _

FIGURA 1.5 Generadores de ondas.

Volviendo a la Figura 1.4, puede verse que el resto ue la especificación estructur31 del
reloj despertador contiene tres con tadores. un contador de segundos. un contador ele l11inu ~
tos y un contador de horas. que contabili zan segundos. minutos y horas. y Jos comron e ll ~
tes de memoria de una palabra. un registro de minutos y un regi stro de horas. usado5 para
almacenar el minuto y hora de alarma. El visualizador muestra los segundos, minutos y hora
tanto de l reloj como de la alarma. dependi endo de la posición del co nmutador S~.. En el COI1l ~
In troducción 9

parador de minutos, se comparan los minutos del reloj y de la alarma. Si son iguales, el
valor I pasa al comparador de horas. De forma similar. el com parador de horas pone su sali -
da a I siempre que la hom de l reloj y de la alarma sean iguales y la enu'ada del comparador
de minutos sea l . Suponiendo que el conmutador S5 esté activado cuando la salida del com-
parador de horas se hace l. la señal PiTie/o pasa a l . El generador de sonido se usa para con-
vertir el cambio de O a 1 de la señal Pitido en un tono de 5 seg undos. que controla el minial-
tavoz del reloj.
Categorizando los componentes de la representación estructural del reloj despertador, e l
osci lador y e l al tavoz se consideran componentes analógicos. ya que su entrada y salidas
pueden tomar cualquier va lor de nt ro de un rango dado. Por ejemplo. durante cada segundo.

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
el oscilador genera C0 l110 salida todos los valores comprendidos entre - 1.5 y +1.5 voltios.
El generador de pulsos es lo que denominamos un conversor analógico-digital (AIO). ya
que a partir de una entrada analógica ge nera una salida digital. In ve rsamente. el generador
de sonido es un conversor digital-analógico (D/A) ya que está diseñado para convertir
señales digitales en anal6gicas. El resto del sistema. contenido en la zona sombreada de la
Figura 1.4. es un sistema digital compuesto por componentes digitales. El contenido de este
libro trata exclusivamente úe técnicas de diseño de sistemas di gitales.
En la Figura 1.6 se muestra una representación física del re loj despertador. dando los
tamaños y posiciones de los componentes reales como se montarían en una tarjeta de cir-
cuito impreso (PCE. Primed Cicuir Bo{//yl) dentro del chasis del re loj despertador. Obsér-
vese que esta pes contiene varios microchips : el oscilador. el ge nerador de pulsos. el gene-
rador de sonidos. y todas las palles digitales del re loj despertador. También contiene el
visuali zador, los conmutadores. la caja para la batería. así como las tiras de metal que
conectan todos los componentes.

G~· ncr.w.lllr Gc:ne r.ltl,--"


.:1.. ptl l .. o- Ik 'I'\f\IUo

Vi,u ~ I I /:¡,klf
1.Ie cri,tal
11 1 líqU idO

1-1 CnmnUl.wo.
dt·.:l'o':Ulo,clk'
111 1111110' Cnnll1ul~dor
tilo' :l\";\IlCC di:
1-ICJoI'¡h 00,-,.
= A I:u-I1 \:1 'líC l11 po
=
0 11 0 11
C\1l1 lP~ r1 iltle nUI
¡Je ¡)1 1:1~
Cl1 l1l1lu t ~dor

• de pU<';\oI~ en

• • hN:l. ~ d ~
.,I:lrill:l

~======A=J=I~=I:lr=I,=m==~A=',="=ml====~~
(a) Vi ~la de frente (b) Tarjeta de circuito impreso

FIGURA 1.6 Representación física del reloj despertador.

Como se ha indicado e n e l Ejem p lo 1.1 , e l proceso de diseño de productos


e lectrónicos en ge ne ral , y de sistemas digitales e n particular, siempre consta de al
menos tres fases, centradas en tomo a tres representaciones principales con los
siguientes objetivos:
10 Principios de diseño digital

1. Proporcionar la representación del comportamiento para definir el fun-


cionamiento del producto.
2. Convertirla en una representación estructural formada por componentes
de una biblioteca dada de componentes.
3. Producir una representación física que especifique cómo se monta y se
fabrica el producto.
Cualquier diseño digital puede pasar por estas tres fases en di stintos niveles
de abstracción, como se verá en la siguiente. sección.

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
1.2. NIVELES DE ABSTRACCiÓN
En la Sección l.l se describían las representaciones de comportamiento. estruc-
tural y física. En el proceso de diseño de sistemas electrónicos, cualquiera de estas
tres representaciones se puede usar en di stintos niveles de abstracción o granula-
ridad, en la que los niveles se definen por el tipo de objetos que usan. En general,
se pueden identificar cuatro tipos diferentes de objetos en un sistema electrónico:
transistores, puertas, registros y componentes del procesador. Estos niveles de
abstracción se resumen en la Tabla 1.1. Como indica la tabla, la mayoría de los
componentes en el nivel de transistor son transistores. resistencias, y condensa-
dores, que se combinan para formar circuitos analógicos y digitales que pueden
dar una determinada funcionalidad. Esta funcionalidad normalmente se describe
mediante un conjunto de ecuaciones diferenciales o mediante algún tipo de rela-
ción corriente/tensión. La representación física de estos circuitos analógicos y
~igitales, denominados celdas. está fonnada por componentes a ni vel de transis-
tor y los cables que los conectan.
En general, una celda se define en términos del trazado del transistor, forma-
do por un conjunto de rectángulos, usualmente dibujados con diferentes colores,
que representan áreas rectangulares de las distintas capas de material de un micro-
chip.
A partir de estos trazados se generan máscaras para el proceso litográfico, que
es el primer paso a dar dentro de la fabricación de microchips. En este proceso
una máscara sirve para exponer fotográficamente ciertas áreas de la superficie de
silicio de forma que puedan ser químicamente alteradas, y crear así varias capas
de materiales distintos. Al final , la combinación adecuada de materiales crea el
efecto transistor, de fomla que una corriente eléctrica puede fluir entre do capas
de materiales diferentes siempre que se le aplique una tensión adecuada en sus
extremos.
Como se indica en la Tabla 1.1 , los componentes principales del nivel de
puerta son puertas lógicas y biestables (jlip-fiops ). Las puertas lógicas son cir-
cuitos especiales que realizan operaciones booleanas que son simi lares a conjun-
ciones tales como "o" e "y" (en inglés "or" y "and"). Un biestable es un elemen-
to de memoria básico que es capaz de almacenar un bit de información que puede
tomar uno de dos valores: O (falso, no) ó I (verdadero, sí).
hm-oducció n 11

TA BLA 1.1 Representaciones del diseño y niveles de abstracción

NIVE L DESCRIPCiÓN DEL COMPONENTES OBJETOS


COMPORTAMIENTO ESTRUCTU RALES FfslCOS

Transistor Ecuaciones diferenciales, Transistores. Celdus analógicas y


diagramas corriente- resistencias, digitales
tensión condensadores
Puerta Ecuaciones booleanas, Puertas, biestables Módulos, unidades
máquinas de estados

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
finitos
Registro Algoritmos, diagramas de Sumadores. Microchips
flujo, conjuntos de comparadores,
instrucciones. FSM registros. contadores,
generalizado bancos de registro.
pilas, caminos de datos
Procesador Especificación ejecutable, Procesadores, Tarjetas de circuito
programas controladores, impreso, módul os
memorias, ASlC multichip

Las puertas y los biestables son celdas digitales típicas que tienen entradas y
sa lidas en sus extremos. Estas celdas se pueden agrupar y situar en una superficie
de silicio para formar módulos o unidades aritméticas y de almacenamiento que
. e usan como componentes básicos en el nivel de regi stro. Estas unidades se des-
criben según su comportamiento en términos de ecuaciones booleanas y diagra-
mas de máquinas de estados finitos (FSM, Finife Stafe Machine).
En la Tabla 1.1 puede verse también que los componentes principales del
nivel de registro son unidades aritméticas y de almacenamiento, tales como
sumadores. c.omparadores. multiplicadores, contadores, registros. ficheros regis-
tro, pilas y caminos de datos. Cada uno de estos componentes registro es un
módulo o unidad que tiene unas dimensiones fijas, un tiempo de propagación fijo,
y un comportamiento determinado. fijado por sus entradas y salidas de intercone-
xión con otros módulos. Estos componentes regi stro se pueden montar e interco-
nectar en microchips, que se usan como componentes básicos del siguiente nivel
superior de abstracción. En general. estos microchips se describen mediante dia-
gramas de flujo. c.onjuntos de instrucciones, diagramas FSM generalizados, o
tablas de estados.
El nivel más alto de abstracción presentado en la Tabla 1. 1 se denomina nivel
de procesador. ya que los componentes básicos de este ni vel son los procesado-
res. memorias. controladores, e interfaces, además de los Hmicrochips a medida"
(c lIstom Inicrochips) denominados circuitos integrados de aplicación específica
(AS IC, Application Specific lnfegrafed Circuits). Generalmente, uno o más de
estos componentes se colocan en una tarjeta de circuito impreso y se conectan con
tiras conductoras que están impresas en la tarjeta. En muchos casos se pueden
reducir las dimensiones de la tarjeta usando un sustrato de silicio, en vez de una
U Principios de diselio digi tal

taljeta de circ uito impreso, para conectar los microchips. en cuyo caso el conjun-
to se denomina módulo multichip. El comportamiento de un sistema que está
compuesto por estos componentes se describe usualmente mediante lenguaje
natural, o una especificación ejecutable en un lenguaje de descripción hardware,
o un algoritmo o un programa escrito en un lenguaje de programación .
Durante el proceso de diseño de un sistema electrónico digital , cualquiera de
los niveles de abstracción se puede usar una o más veces, dependiendo de cuan-
tos objeti vos, tecno logías, componentes, bibliotecas y alternativas de di seiio
diferentes se quieran exp lorar. Como esta exploración se podría ll evar a cabo

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
potencialmente de diferentes maneras, debemos escoger cuidadosamente una
metodología de diseño efic iente que determine el subconjunto adecuado de
niveles de abstracción, tareas de síntes is, el orden en q ue han de se r ejecutadas y
el tipo de herramientas CAD a usar durante la ejecución de cada tarea en el pro-
ceso de diseño.
La metodología más usual consiste en la construcción de una biblioteca o catá-
logo para un cierto nivel de abstracción, usando la síntesis para converti r una des-
cripción de compOlt amiento en otra estructural que pueda implementarse con los
componentes de esta biblioteca. En los últimos 20 alias, las bibliotecas más com u-
nes han consistido en componentes a nivel de puerta, aunque recientemente las
bibliotecas de registros han ganado popularidad. En este libro también se sigue esta
metodología, definiendo primero una biblioteca a nivel de puerta que puede usarse
para construir una biblioteca a nivel de registro que se usará para la síntesis de trans-
ferencia entre registros de uso general y procesadores de aplicación específica.

1.3. PROCESO DE DISEÑO


En términos muy generales, se puede definir el proceso de di seño como la secuen-
cia de pasos que llevan desde el concepto de un producto hasta los esquemas de
fabricación que describen cómo hacer dicho producto. En la práctica, por supues-
to. este proceso está muy influenciado por el producto que se está diseñando, por
cuándo debe ser introducido en el mercado, por la tecnología particular que se usa
en su fabricación, e incluso por factores tales como la estructura organi zativa de
la compañía, la experiencia del eq uipo de diseño, la disponibilidad de herramien-
tas CAD, y la adecuación de la financiación. En este sentido, el proceso de di se-
ño siempre varía de una empresa a otra, e incluso de un producto a otro dentro de
cada empresa. A pesar de estas variaciones, podemos, sin embargo, asumir sin
riesgos que los sig uientes pasos básicos siempre están presentes. de una fo rma u
otra, en cada proceso de diseño.

1.3.1. Especificaciones de diseño

Una vez anali zados los requisitos del mercado, el arquitecto jefe escribi rá la
especificación del producto que define el fu ncionam iento de dicho producto y
Introducción 13

las interfaces con el entorno en que va a funcionar el producto. En muchas oca-


siones, este proceso de especificaciones incluye un diseño esquemático de la
arqu itectura del producto, que usualmente se da en forma de diagrama de blo-
ques de alto nivel. En el diagrama, cada bloque tendrá una función clara que
se puede especificar con una fórmula o algoritmo matemático, o simplemente
en leguaje natural. Tal diagrama de bloques puede también especificar el tipo
y formato de los datos que se transfieren entre los bloques y puertos de entra-
da/salida.
En general, este tipo de especificaciones tiende a ser vaga en ciertos lugares,

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
y quizás incluso incompleta, debido a que el producto no ha sido aún diseñado y
evaluado. Esto no es necesariamente un problema, ya que la especificación sirve
fundamentalmente corno punto de partida para el equipo de diseño y normalmen-
te se modifica y redefine con el avance del diseño. En la mayoría de los casos la
especificación se escribe en lenguaje natural, como españolo inglés, a pesar de
que las especificaciones de tipo ejecutable han ganado fama ya que se pueden
verificar, analizar y sintetizar más fácilmente.

1.3.2. Desarrollo con una biblioteca de componentes

Una vez que se ha desarrollado el diagrama de bloques de alto nivel en la fase de


especificación, se debe redefinir iterativamente o descomponer en componentes
menores. La finalidad de este proceso es asegurar que el producto no contenga
más que los componentes predefinidos en la biblioteca de componentes que se
ha caracterizado para una tecnología de fabricación concreta. En algunos casos
estas bibliotecas contienen componentes de uno o más niveles de abstracción. Por
ejemplo. no es inusual encontrar algunos componentes del nivel de registro inclui-
dos entre los componentes del nivel de puerta.
Los componentes de la biblioteca deben estar, por tanto, diseñados, probados
y completamente documentados para que los diseñadores puedan usarlos sin tener
que analizar su estructura. La información de caracterización debería incluir lo
siguiente:
1. La función de los componentes, los nombres de las entradas y salidas y su
aplicación típica
2. Las dimensiones físicas de los componentes, la posición de sus entradas
y salidas, e información sobre su encapsulado
3. Las restricciones eléctricas, los requisitos de la fuente de alimentación,
las rangos de corriente y tensión permitidos para las entradas y salidas y
la disipación de calor
4. Las formas de onda de las tensiones de entrada y de salida, la rela-
ción en el tiempo entre ellas, y los retardos críticos entre entradas y
salidas
5. Los modelos de componentes usados por las herramientas CAD para
simulación, síntesis. diseño físico y verificación
14 Principios de diseño digital

1.3.3. Síntesis del diseño

En el proceso de diseño, la síntesis es el procedimiento mediante el cual se con-


vierte una especificación o descripción del comportamiento de un componente en
una descripción estructura l usando componentes de los ni veles de abstracción más
bajos que se incluyen en una biblioteca dada. En aquellos casos donde se necesi-
tan componentes que no están contenidos en esa biblioteca, se necesi taría ll evar a
cabo una síntesis complementaria.
La síntesis se puede entender normalmente como un proceso de redefinición

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
de la descripción de comportamiento, en el que se añaden más detalles estructu-
rales en cada paso. En la práctica, esto normalmente significa que la descripción
de comportamiento se divide en varios bloques y se reescribe para reflejar el
resultado de la divi sión. Esta nueva descripción redefinida contiene una desclip-
ción estructural de los bloques divididos y sus conexiones junto con las descrip-
ciones de comportamiento de cada bloque. Este proceso sigue hasta que cada blo-
que represente uno de los componentes de la biblioteca elegida.
Siguiendo los niveles de abstracción desc ritos en la Tabla 1.1, se pueden iden-
tificar diferentes tareas de síntesis:
1. La síntesis del sistema convierte una especificación en una estructura de com-
ponentes a nivel de procesador, tales como proce adores, memorias, y ASIC.
2. La síntesis de la arquitectura convierte algoritmos, diagramas de !lujo.
o conjuntos de instrucciones en componentes a nivel de registro, tales
como contadores, registros, pilas, colas, sumadores y multiplicadores.
3. La síntesis secuencial transforma la descripción de una máquina de e. ta-
dos finitos en puertas y biestables.
4. La síntesis lógica transforma expresiones booleana en componentes a
nivel de puerta.
Por debajo del nivel del puerta, las técnicas de síntesi s se dividen de acuerdo
con áreas de aplicación específica, a causa de la diversidad de estilos en el dise-
ño de circuitos. Por ejemplo, se necesitan distintas técnicas para sintetizar circui-
tos para distintos dominios, tales como conversión A/D, filtrado. procesamiento
de audio, o realzado de imágenes. Es importante destacar que cada uno de los
pasos de síntesis descritos en esta subsección pueden dividirse en varios subpasos
o problemas, que se tratan a través del resto del libro.

1.3.4. Análisis del diseño

Una vez se ha sintetizado un diseño. el siguiente paso es eva luar dicho diselio.
verificando que satisface Jos requisitos de la especificación. o en algunos casos.
verificando que el di seño desarrollado es realmente el mejor dentro de las di s-
tintas alternativas de di seño. Cuando se evalúa un diseño, nos concentramos,
normalmente en una de entre diferentes medidas de calidad, tales como coste,
prestaciones o testeabilidad. Una de las medidas más importante es, por ejem-
Introducción 1S

pi o, el coste de fabricación del producto concreto. Esta medida usualmente se


aproxima con el tamaño o medida del área, ya que el área de un microchip o de
una PCB es proporcional al coste de su fabricación. El número de conectores de
entrada y salida es otra medida importante del coste, ya que el coste de encap-
sulam iento es proporcional al número de conectores de entrada/salida.
Recientemente, el consumo de energía se ha vuelto una medida muy importan-
te debido al uso exte ndido de equipos portátiles como las computadoras portá-
tiles o '"Iaptop" y los teléfonos móviles. Como el consumo de energía determi-
na el tamaño de las baterías, aquel tiene también una gran influencia en e l peso

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
del producto.
La otra medida importante que concierne al proceso de diseño son las pres-
taciones del producto, que se pueden medir de varias formas. Las medidas
más usuales de las prestaciones son ( 1) el retardo entrada/salida, (2) el periodo
del reloj y (3) e l tiempo necesario para que se complete la ejecución de un pro-
grama, algoritmo, diagrama de flujo o una instrucción. En general, se conside-
ra que los componentes con menos retardos , los diseños con ciclos de re loj más
cortos y los productos con menores tiempos de ejecución, tienen mejores pres-
taciones.
Finalmente, el índice de testeabilidad se define en función del número de
fallos de fabricación detectables y del número de patrones de test que se necesi-
tan para detectar todos esos fallos. Cada patrón o vector de test contiene un con-
junto de valores de entrada al que corresponde un conjunto de valores de salida
esperados para obtener un funcionamiento libre de fallos. En general, el número
de fa ll os potenciales es proporcional al número de patrones de test que se necesi-
tan. que a su vez es proporcional al tiempo necesario para verificar el producto
fabricado.

1.3.5. Documentación

El paso final del proceso de diseño consiste en preparar la documentación del


microchip o sistema fabri cado. Esta documentación generalmente incluye tanto
la representaci ón física como de comportamiento del producto, pero omite las
representaciones estructurales detalladas. que se consideran información confi-
dencial del fabricante que será utili zada sólo por las divisiones de fabricación
de la empresa. La información sobre el comportamiento se da usualmente en
forma de un diagrama de bloques tosco acompañado por un diagrama de
flujo que describe el comportamiento del sistema completo o de alguna de sus
partes. Además, esta documentación sobre el comportamiento presenta proto-
colos de comunicación, y se suele dar en forma de diagramas de tiempo para
una o varias entradas y salidas. La representación física , por otra parte, cont ie-
ne e l tamaño, la información de encapsulado y los nombres y posiciones de
todos los conectores. Finalmente, esta documentación también espec ifica los
rangos mínimo, normal y máximo de corriente, tensión , potencia, temperatura y
tiempos de retardo.
16 Principios de diseño digital

1.3.6. Fabricación

La fabricación no es realmente una parte del proceso de diseño: sin embargo. es


su meta, en el sentido de que el proceso de fabricación convierte los dibujos fina-
les del di seño en un microchip o una tatjeta de circuito impreso montando todas
las partes y conectándolas adecuadamente. Después de la fabricación, normal-
mente se llevan a cabo más tests para separar cualquier producto defectuoso de
los que son funcionalmente correctos. Este test se puede realizar a velocidad de
ejecución normal o a velocidades menores de las que se va a operar normalmen-

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
te. En el caso de productos de altas prestaciones, es muy difícil hacer los tests a
ve locidad normal ya que los verificadores tendrían que ser mucho más rápidos
que la velocidad normal del producto que se está verificando.

1.4. HERRAMIENTAS CAD


En la Sección 1.3, vimos los pasos básicos del proceso de diseño, y en esta sec-
ción vere mos brevemente las herramientas de diseño con ayuda de una computa-
dora (CA D, Computer Aided Design) que usan los diseñadores en las dist intas eta-
pas del proceso de diseño. Estas herramientas CAD se pueden dividir en cinco
categorías diferentes, según la forma de usarlas en el proceso de diseño.
1. Captura y modelado
2. Síntesis
3. Verificación y simulación
4. Ubicación e interconexionado
5. Generación de tests
Estas cinco categorías corresponden gros so modo a las áreas de especializa-
ción de investigación y desarrollo de hen'amientas CAD.

1.4.1. Captura y modelado del diseño

Llega un momento, en todo proceso de diseño, donde se necesita transformar una


representación de comportamiento en un representación estructural compuesta
por varios elementos de una biblioteca bien caracterizada. En este momento, se
podrían especificar textualmente todos los componentes y sus interconexiones,
aunque esto puede ser un procedimiento tedioso y propenso a errores. Por otra
parte, también se puede capturar la representación estructural de forma más fácil
y precisa, usando una herramienta de captura. Básicamente, esta herramienta per-
nute al diseñador seleccionar un componente de un menú, situarlo en la pantalla,
y conectarlo a otros componentes mediante líneas que representan cables. Este
tipo de representación estructural de captura se denomina esquemática, y las
herramientas que frecuentemente se usan para su captura se conocen como helTa-
mientas de captura de esquemas.
Introducción 17

Altel11ativamente, con un lenguaje de descripción hardware, como el están-


dar YHDL del IEEE, se puede llevar a cabo la captura de esq uemas. Sin embar-
go. además de la captura de esquemas estos lenguajes de descripción hard ware
también permiten capturar representaciones de comportam iento, así que se puede
describir el di eño como una combinación de su comportamiento y de su estruc-
tura. La descripción del producto a diseñar normalmente empieza con una des-
cripción del com portamiento de cada bl oq ue con un diagrama de bloques estruc-
tural de alto ni vel. A medida que el proceso de diseño progresa, cada uno de estos
comportam ientos ti ene que descomponerse recursi vamente en una estructura de

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
bloques dc niveles inferiores hasta que el diseño se convierta en una jerarqu ía de
bloques. en donde el nivel más bajo represente componentes específicos de la
biblioteca dada. Entonces, cada diseilo se habrá descrito con diferentes niveles de
abstracción. conteni endo cada nivel un tipo y una cantidad de detalles diferente.
Este conjunto jerárquico de descripciones es necesario para que se puedan erifi-
car distintas propiedades del diseilo y para que el diseño esté de acuerdo con las
restricciones impuestas. Además, este procedi miento simplifica la gestión del pro-
yecto de diseño, acelera la comunicación entre los diseñadores, permite una inte-
gración del diseño 'sencilla, reduce los errores de diseño y admite la evolución y
mantenimiento del diseño. Cada una de estas descripciones se denomina modelo
del diseño real. ya que proporciona pane de. pero no toda, la información sobre
el diseño manual. Los diseñadores, o herramientas CAD. pueden usar la infonlla-
ción de diseño que proporciona cada model o para analizarla posteriormente o eva-
luar la calidad del di seño, o incluso para su síntesis posterior. El proceso de desa-
rrollo de estos modelos se denomina modelado, y la guía que proporciona ins-
trucciones para escribir los modelos incluyendo la infonnación requerida para que
los modelos puedan ser usados por otras herramientas se denomi na guía de
modelado.

1.4.2. Herramientas de síntesis

Las téc nicas de síntesis se usan siempre que se necesita convertir una descripción
de comportamiento en una descripción estructural que contenga componentes de
una biblioteca dada. Por ejemplo, las herramientas de diseño lógico permiten con-
vertir ex presiones booleanas en estructuras a nivel de puerta, además minimizan
el número de puertas, el retardo de propagación. o el consumo de energía. Las
herramientas de síntesis lógica son muy útiles cuando se diseñan circuitos com-
binacionales tales como operadores aritméticos, comparadores de datos, codifica-
dores, decodificadores, y lógica de control.
Las herramientas de síntesis secuencial son necesarias para sintetizar estruc-
turas que contengan elementos de memoria. Estas herramientas de síntesis están
concebidas para minimizar el número de elementos de memoria a usar en el cir-
cuito, para generar una codificación de los estados y entradas que reduzca sus cos-
tes, para minimi zar el retardo entrada /sa lida, y para si mplificar las expresiones
booleanas que se requerirán en su implementación.
18 Principios de diseño digital

Las herramientas de síntesis de alto nivel ode comportamiento se usan para


convertir expresiones aritméticas, conjuntos de instrucciones, o descripc iones
algorítmicas en estructuras a nivel de registro, en las que se minimizan tanto el
tamaño del microchip como el tiempo de ejecución. La síntesi s de comporta-
miento es muy útil en el diseño de circuitos de interfaz, aceleradores de uso espe-
cífico, y algoritmos para señales digitales . Las técnicas y principios de síntesis se
describen en los Capítulos 4, 6, 8 y 9.

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
1.4.3. Verificación y simulación

Una vez que se ha capturado el diseño mediante una herramienta de captura de


esquemas o que se ha especitic.ado con una descripción HDL, se necesi ta verifi-
car si el diseño funciona como se esperaba. Esto es difícil de llevar a cabo. ya que
no conocemos la definición del funcionamiento deseado si ésta no fue capturada
de una u otra forma . Por otra parte, lo que se puede verificar, por comparación de
la descripción estructural y de la descripción de comportamiento. es el hecho de
que su estructura se ha sintetizado correctamente. Usando computación simbóli -
ca, demostrando teoremas, o con manipulación algebraica, se puede probar que
dos representaciones diferentes del mismo diseño son iguales para todos los con-
juntos posibles de valores de entrada. Además de probar la equivalencia de repre-
sentaciones, los verificadores temporales pueden generar todos los caminos críti-
cos de una representación estructural o de comportamiento, y garantizar que
incluso los retardos más largos satisfarán los requisitos. Como los verificadores
de equivalencia deben probar la equivalencia entre dos diseños para cada con-
junto de valores de entrada, y los verificadores temporales deben probar que se
satisfacen las restricciones para cada camino de entrada/salida del di seño. ambos
consumen mucho tiempo. Por esta razón, el tipo de verificación mús común es el
de simulación del di seño. en el que se prueba el diseño sólo para un conjunto
dado de valores de entrada, generando un conjunto de valores de salida a partir de
una descripción estructural, y se compara con un conjunto dado de vrlores de sali-
da esperados, deducidos a partir de la descripción de comportalr ie'lto.
Dada una descripción estructural compuesta por componente s de mode los
conocidos, un simulador opera de la siguiente forma. Primero ca;cula los va lores
de salida de los componentes cuyas entradas están conectadas a los puertos de
entrada correspondientes a las entradas de estos que hayan sI do facilitadas.
Después, una vez calcu lados dichos valores de salida, proporciona el ti empo de
propagación obtenido a partir de los modelos de los componentes concretos utili-
zados. A continuación se selecciona el siguiente conjunto de componentes. cuyos
valores de entrada se conocen ahora, y se calcu lan sus valores de sal ida a partir de
estos nuevos valores de entrada, obteniendo el tiempo de propagac ión igual que
antes. Este paso se repite hasta que se simule la fOfma de actuar de todos los com-
ponentes o hasta que no haya ningún cambio en ningún \ alor de salida.
Finalmente, el valor de salida generado se compara con el valor esperado y el
retardo de propagación entrada/salida con la restricción especificada del retardo.
Introducción 19

De esta forma, un simulador puede verificar la exactitud del funcionamiento y de


la temporización, aunque esta verificación sólo sea válida para un conjunto parti-
cular de datos de entrada. Por este motivo, un diseñador que usa un simulador
debe intentar desarrollar conjuntos de entradas y valores de salida esperados de
forma que se prueben todos los caminos posibles del interior del diseño. Este
desarrollo puede no ser una tarea fácil en el caso de diseños que contengan un
millón de puertas o transistores.

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
1.4.4. Diseño físico

Las herramientas CAD di sponibles para el diseño físico son las herramientas de
ubicación (p/acel1lent too /s) que permiten optimizar la situación de los compo-
nentes en una tarjeta de circuito impreso o de las celdas y módulos en un micro-
chip. Teniendo en cuenta el tamaño, la relación de dimensiones y las posiciones
de los terminales de entrada/salida de cada componente, estas herramientas de
ubicación permiten posicionar cada componente en la representación estructural
de forma que se minimi ce el área ocupada por todos los componentes. Una vez
que se ha determinado la posición de cada componente. se usan las herramien-
tas de encaminamiento (routing l OO/S) para determinar la posición de cada cable
que conecta dichos componentes, de forma que se reduzca al máximo la longitud
del cable, la suma de las longitudes de todos los cables, y se optimice el uso de
todas las capas de conexión en una tarjeta de circuito impreso o en un microchip.
Aplicando estas herramientas de ubicación, hay que tratar especialmente los
cables de suministro de energía, que deben poder llegar a cada componente y
sumini strar corriente suficiente. Igualmente, hay que tener en cuenta los cables
que forman parte del reloj , ya que una longitud excesiva puede generar retardos
en la señal del reloj, lo que puede ser una fuente intermitente o permanente de
fallos .

1.4.5. Test

Los tests se realizan después de que el producto haya sido fabricado, con objeto
de separar las unidades correctas de las defectuosas. En general, el proceso de
verificación consiste en aplicar ciertos patrones de te t a la unidad que se va a pro-
bar y comparar las salidas de dicha unidad con las respuestas esperadas de esta
unidad funcionando correctamente. Dentro de este proceso de verificación, las
herram ientas CAD se usan para la generación de patrones de tests y para la deter-
minación del perfil de detección de faltas. La finalidad de las herramientas de
generación de patrones de test es ayudarnos a generar el conjunto de patrones
de test que compruebe tantos caminos en el diseño como sea posible. Es muy difí-
cil, sin embargo, crear un conjunto de patrones de test que abarque todas las fal-
tas potenciales en cualquier diseño. Por este motivo, usualmente se complemen-
tan las herramientas de generac ión de test con herramientas para determinar el
20 Principios de diseño digital

perfil de faltas (test grading), que nos permitan generar una lista de todas las fal-
. tas cubiertas por un conjunto particular de patrones de test.

1.5. PROCESO TíPICO DE DISEÑO


El proceso típico de diseño. tal como se hace en entornos industriales desde los
últimos 20 años, se inicia con un análisis de mercado y una definición de los
requisitos del producto. A partir de estos requisitos el arquitecto jefe planifica un

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
estudio de viabilidad para determinar la tecnología, la arquitectura, y las aplica-
ciones típicas del producto. En esta etapa, se desarrolla un diagrama de bloques
preliminar y se redactan las especificaciones del producto. El equipo de diseño
reconsidera este diagrama de bloques preliminar y lo refina a nivel de sistema, de
registro y finalmente a nivel de estructura de puertas. Después , esta estructura a
nivel de puerta normalmente se captura con una herramienta de captura de esque-
mas y se simula para verificar su funcionamiento y su temporización. Si en este
momento se encuentra que no se ha tenido en cuenta alguna restricción del di se-
ño o que alguna medida de calidad no es satisfactoria, deben modificarse los
requisitos del diseño. las especificaciones y la arquitectura, y debe repetirse el
proceso completo. Una vez que se logra un resultado satisfactorio. el siguiente
paso es el diseño físico que define la ubicación e interconexionado de la estructu-
ra del diseño. En el caso de una implementación con microchips , cada compo-
nente lógico o de almacenamiento, tiene que estar trazado antes de su ubicación e
interconexionado. Finalmente, después de terminar el diseño físico , el grupo de
tests genera los patrones de test adecuados a usar durante la fabricación, esc ri-
biendo también la documentación sobre el producto.
En el pasado, la mayoría de estas tareas de diseño tenían que hacerse manual-
mente. ya que sólo una pequeña parte del proceso de diseño estaba automatizado. Sin
embargo, esto empezó a cambiar, con la disponibilidad de herramientas CAD para el
diseño físico, que se desarrollaron para ayudar a los di señadores en la ubicación e
interconexionado de los componentes. Posteriormente, se desarrollaron herramientas
adicionales para la captura de esquemas a nivel de puerta y también para simulación
a nivel de puerta, que hicieron posible automatizar más el proceso de diseño.
Más recientemente, en los 90. ha avanzado significativamente la automatiza-
ción del proceso de diseño, introduciendo lenguajes de descripción hardware
estándares y herramientas de síntesis. Con los lenguajes de descripción hardware
se pueden generar ahora descripciones de comportamiento que se simulan fácil-
mente, y con las nuevas herramientas de síntesis se ha hecho mucho más fácil
pasar de una representación estructural a una de compoltamiento.
Debido a este reciente desarrollo, ha surgido un nuevo proceso de diseño que
depende enormemente de la descripción del comportamiento en ni veles de abs-
tracción superiores y de refinado o síntesis de la descripción del comportamiento.
Este rápido éxito de las nuevas herramientas de síntesis ha generado una deman-
da en la automatización del proceso de diseño en incluso los niveles supeliores, y
eventualmente en el desarrollo de técnicas de síntesis de sistemas completos a
Introd ucción 21

parti r de especificaciones ejecutables. En este libro seguimo este nuevo proceso


de diseño, con la excepción de la síntesis de sistemas, que queda fuera del alcan-
ce de este texto.

1.6. ORGANIZACiÓN DEL LIBRO


En este li bro, nos hemos ocupado ante todo de las técnicas de di seño di gital que
se requieren en el diseño de computadoras. En su más extenso alcance, el diseño

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
de un computador podría dec irse que empieza con la física del estado sólido y con
el proceso de fabricación de circuitos integrados, que determinan los tipos y pro-
piedades de los componentes electrónicos más básicos, tales como transistores,
resistencias y condensadores. Con estos componentes se pueden diseñar tanto cir-
cuitos analógicos como di gitales, siguiendo las leyes básicas de la electrónica.
Los circuitos digitales procesan señales que pueden tomar sólo un pequeño núme-
ro de valores fijos, normalmente dos, que hacen que sean muy robu stos y fáciles
de diseñar. Debido a estas dos características, todos los cálculos y el procesa-
miento de la información se hacen con circuitos digitales.
Por otra parte, los circuitos analógicos procesan señales que pueden tomar
cualquier valor dentro de un rango dado. La mayoría de las señales que se gene-
ran o que los humanos reconocen, como texto, voz, y vídeo, son señales analóg i-
cas. Como todo el procesamiento se hace digitalmente, los sistemas electróni cos
generales deben convertir estas señales analógicas, generadas por humanos, en
señales digitales, y después realizar las operaciones, transformaciones y comuni -
cac iones totalmente en el domin io digital, convirtiendo los resultados en señales
analógicas con el tin de que el ser humano las utilice.
El análisis y síntesis de circuitos analógicos y digitales se presenta en cursos
introductorios en la mayoría de las ingenierías y se ha omitido en este libro. No
se requieren tampoco conocimientos de electrónica o de diseño de circuitos para
entender el contenido de este libro. Teniendo en cuenta esto, la exploración de un
computador comienza con puertas lógicas y biestables, que son circuitos digitales
especíticos que trabajan sólo con dos valores y presentan sólo dos estados. Por
conveniencia, suponemos que nuestra biblioteca de componentes lógicos la ha
defini do un hipotético fabricante de circuitos integrados. De esta forma no nece-
sitamos implicarnos en la fabricación y di seño de ci rcuitos. Esta situ ación se pare-
ce a lo que ocurre actualmente en la industria, en la que los fabri cantes de chi ps
también proporcionan a sus clientes bibliotecas lógicas. Por tanto. los diseñado-
res de sistemas trabajan con bibliotecas y dan la descripción del sistema en fun-
ción de los componentes de la biblioteca, mientras que en las fábricas de circui-
tos integrados se introduce el trazado de cada componente antes de su t'abl; cación.
En este libro se usa una estrategia de abajo a arriba en los principios de dise-
ño di gital. Como vemos en la Figura 1.7, comenzamos presentando en el Capítul o
2 el sistema de numeración binari o y las representaciones de datos que se usan en
todos los sistemas digitales y productos basados en computadores. Todos los com-
ponentes de almacenamiento y aritméticos que se usan se basan en la representa-
22 Principios de diseño digital

clOn binaria de números y alfabetos. Sin embargo, antes de embarcamos en el


diseño de componentes concretos, en el Capítulo 3 se introduce el fundamento
teórico del diseño digital, que se denomina álgebra de Boole. En el mi smo capí-
tulo se introduce nuestra biblioteca lógica, que es básicamente una implementa-
ción de los operadores de este álgebra de Boole. En el Capítulo 4 se cubren las
técnicas de diseño lógico más básicas que se usan en la síntesis y optimización de
funciones booleanas arbitrarias . Luego, en el Capítulo 5, se emplean estas técni-
cas para construir componentes lógicos y aritméticos, incluyendo sumadores,
comparadores, selectores, codificadores y decodificadores que constituyen una

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
biblioteca combinacional par? diseños de transferencia entre registros.

Tm IlSI S l~"
res !~ l encins r
co ndel1~adore •


DIse ño de
l
I
Ir
E leC lrón ica 0""'0 d,,;rro;',<
cIrcuitos uigilale.-. analógicos
I I
1 ~
3

l
3
Á l gcbr~ de Boo lo:
r- Pucr1as 1 6gic;\~
y bies la bles
Componcnl<·s
ana lógico,

!
6
~
r-,'!áq uin a

L
de c~ llldos
linilos
.... Téc nicas de
4
Técnicas de di seño
6

I I
dist!Ílo lógico Diseño VLSJ
s.ec ucncial
'-+
SiSlemn binario 2
y rt'Jl!'t'scnlación I
de dmos
1 1 1 .¡
Co mponentes
, 7
Comp!mcnlcs de
Co mpo nclllc s
combinacionales mem orizaci ón de mterfaz

1
~ l
Máljuina de ",lados
8 Diseño de
tran sferencia entre
S 11
fin itos gcncrali7.!1da registros

l
Componcnl es 9
del
proces~dor
Mat.eria cubierta en esle libro

.1
I Diseño dd

I
Dise ño e ingcnicria Co nlpu lil¡Jor
soft ware
I I
Diseño de
Codisciln h~rdwart:. :.iSlc nms
SQ flw are y
mecánico I embchidos

FIGURA 1.7 Estructura del libro.


Introducción 23

En el Capítulo 6 se introduce el modelo de máquina de estados finitos, que se


necesi ta en el di seño de componentes de almacenamiento tales como registros,
contadores y memorias. Estos componentes de memorización se suelen denomi-
nar componentes secuenciales porque su comportamiento depende de una secuen-
cia de valores de entrada en lugar del valor exacto de la entrada actual. Además
del modelo de máquina de estados finitos, en el Capítulo 6 se introducen algunas
de las técnicas de diseño secuencial que se usan en el Capítulo 7 cuando se cons-
truyen componentes secuenciales básicos como registros, contadores, memorias.
pilas. colas y caminos de datos.

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Una vez diseñadas las bibliotecas combinacionales y secuenciales, se puede
acceder al siguiente nivel de abstracción. En el Capítulo 8 se introduce el mode-
lo de máquina de estados finitos generalizada y se presentan las técnicas de dise-
ño que se usan en la síntesis de componentes del procesador, cuyo comporta-
miento se suele describir mediante algoritmos, diagramas de flujo , o programas,
o en el caso de procesadores, con conjuntos de instrucciones. Finalmente, en el
Capítulo 9 se usan estas técnicas para diseñar procesadores con conjuntos de ins-
trucciones tanto reducidos como complejos.
Los componentes de procesadores estándar y a medida, presentados en los
Capítulos 8 y 9. junto con los componentes de intetfaz y con dispositivos electro-
mecáni cos tales como di scos, cintas y teclados, se usan en el diseño de muchos
tipos de computadoras. incluyendo computadoras personales, estaciones de traba-
jo, servidores de ficheros y controladores de comunicación. El diseño de compu-
tadoras se estudia en los cursos de arquitectura de computadoras y su contenido
se sale del alcance de este libro. Por supuesto, en el caso de computadoras el hard-
ware básico se complementaría con varias capas de programas software, inclu-
yendo ensambladores, compiladores e intetfaces gráficas de usuario. Esto se estu-
dia en cursos de diseño e ingeniería del software. Las computadoras se usan en el
diseño de sistemas embebidos más complejos, adecuados para aplicaciones tales
como procesamiento de señales, mecatrónica, robótica, comunicaciones, trans-
portes , procesamiento de imágenes, instrumentación médica y multimedia entre
otras. Sin embargo, en general las técnicas y aplicaciones de sistemas embebidos
se estudia sólo en cursos de arquitectura y sistemas avanzados, cuyo contenido
queda fuera del alcance del libro.

1.7. RESUMEN DEL CAPíTULO


En este capítulo hemos introducido las representaciones básicas de diseño, cono-
cidas como representaciones de comp0I1amiento, estructural y física. Hemos des-
crito cuatro niveles de abstracción diferentes: los niveles de transistor, puerta.
registro y procesador. También hemos explorado las relaciones entre las repre-
sentaciones de un diseño y los niveles de abstracción describiendo el proceso de
diseño de un sistema digital electrónico, comenzando por una especificación y
terminando con la fabricación del producto. Hemos descrito muy brevemente
algunos conceptos sobre herramientas CAD usadas en el proceso de diseño.
24 Principios de diseño digital

En e l resto del libro estudi aremos aque llos princ ipi os y técnicas que se usan
en el diseño digital e n los niveles de pueJ1a, regi stro y procesador. Esto nos per-
mitirá con ve rtir una especificación d e un di seño o una descripció n de su compor-
tamie nto e n un a estructura de componentes se leccionados de una biblio teca basa-
da e n las bibliotecas indu striales ac tuales. Podríamos introducir antes el proceso
de diseño, pero previamente neces itamos conocer los principios de lo s s istemas
binarios y del álgebra lógica.

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
1.8. LECTURAS ADICIONALES
Alamasi, G. s.. aud A. GOlllieb. Highly Paral/el CUIIIIJ//lill!i. 2nd ed. Redwood City, CA:
Benjamin-Cummings. 1994.
Una visión del procesamiento paralelo que relata apl icac iones paralelas y modelos
computacionales paralelos de software y arquitectura!\.
Dasgupta. S. COlllpuler ArchilecllIre: A M odem SVlllhesis. Vol. l . Ncw York : Wi lcy. 1989
Una exp licación bien escrita y clara del proceso de diseño. centrándose en el ni vel de
abstracción arquitectural. Es un texto avanzado, más adecuado para estudi antes con
algunos conoc imien tos sobre arqui tectura de computadores,
Gajski . D. D., F. Vahid . S. Narayan. and J. Gong. Specificalillll {/I/{I Desigll (JI EIII/Jedded
Syslellls. Englewood Cliffs. NJ: Prentice Hall , 1994.
Una introducción al pro blema y resolución del diseño de si stemas embebi dos. hacien-
do é nfasis en modelado, exploración y refinamiento del diseño.
Geiger, R. L., P.E. Allen. and N. R. Strader. IfLSI Design Tecltl/ iq/l /'sjo r AII(¡/(lg al/(l Digiwl
Circuils. New York : MacGraw-Hill, 1990.
Una visión excelente de la tcoría de circuitos analógicos y digitales y de las técnicas de
diseño. con una introducción al diseño fís ico y fabri cación de circuitos integrados
VLSJ. Requiere conocimientos básicos de electrónica.
Hayes, J. P. 111II'Oducliol/ 1(1 Digi/al Desigl/. Reading. MA : Addison- Wesley, 1993.
Una int rod ucción minuciosa al diseño digital. relacionando la electrónica y la lógica :l
tra vés de un conjunto de modelos sencillos y f,íciles de comprender.
Hennesey. J. L. and D. A, Patterson. Compurer Architecture: A Q ue11l1itatil'e Apl>/"O(/C/¡, San
Mateo, CA: Margan Kaufmann , 1990.
Una introducc ión al diseiio de computadoras, re laci onando aplicaciones e implementa-
ciones, escrito por dos pioneros en el campo de la tecnología RISC.
Lauther, U. II/ /mdu eliol/ lO 5)·l/ lhe5is. Chapter 1: "The synthes is approach to di gital system
design." Boston: Klu we r, 1992 .
Una introducción mu y legible sobre las representaciones y el proceso de di sel10.
Maly, W. A lias oI I C Techllolog ies: AII Inlrodu Glioll /0 IfLSI Proasses. Menla Park. CA:
Benjamin-Cummi ngs, 1987.
Una visión ilustrada excelente para inexpertos del proceso de fabricación.
McCluskey, E. J. Log ic Desigll Prill ciples. Englewood Cliffs. NJ : Premice Hall , 1986.
Uno de los pioneros del diseño digital explica los métodos básicos del di seño digital.
con una visión mu y buena sobre los problemas de test y su solución.
Introducció n 2S

Sapiro. S .. Hnd R. J. Smith 11. Halldbook of Design AIIIOlllatioll. Englewood C liffs, NJ:
Prentice Hall. 1986.
Un Lratamiento introductoJio que proporci ona una descripción concisa del proceso de
diseño. sus tareas básicas y el papel de las herramientas CAD en él. Requiere algunos
conoci mientos básicos de di sei'io di gital.
Wolf. W. Modem VLS¡ Desigl/ : A Systellls Ap¡)ltwch. Englewood C liffs. NJ: Prcntice Hall .
1994.
Un tex to fácil de leer explicando los principios del diseño VLSI y cubri endo varias
fases del diseño digital. desde el trazado de máscaras a la arquitectura.

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
1.9. PROBLEMAS
1.1. (Representac ión de l diseño) Desc riba sem áforos de scriro co m o sigue
las diferencias entre las representacio- C uatro scm~í roros están orientados en
nes de comportamiento. estructural y cuatro direcciones. identil1cadas por
física tle un producto electrónico. las letras N . S. W y E. Cada luz sigue
la siguiente secuencia : ve rde (45
1.2. (Representac ión de l diseño) Añada
segund os). naranja ( 15 segundos). y
una llueva característica al reloj des-
rojo (60 seg und os). Además, los
pel1Hdor descrito en la Secció n 1.1 de
se máfo ros N y S están siempre del
forma que si se mantiene presionado
mismo color. a l igual que E y W. y los
durante 4 segundos el botón de avan-
semáforos N y S nunca están en ve rd e
ce ue los minutos o las horas, el tiem-
o amarill o al mi smo ti empo que los E
po comience a avanzar a la velocidad
tic 1 minuto o 1 hora elida 0 . 1 segun-
yw.
dos. Modi ficar, para refl ejar este 1.5. (Proceso de diseño) Describir la dife-
c3m hio en las especificacione s. las rencia entre:
re prese ntaciones (a) de comporta- (a) Una especificación y una espe-
mient o. (b) estructural. y (c) física. cificación ej ecutable
1.3. (Representación de l diseño) Añada (b ) Una biblioteca a medida y una
una nueva construcción a la repre sen- biblio teca estánd ar
tación de compo rtamiento del reloj (e) Síntesis y refinami ento
despertador. de forma que la señal (d ) Representac ión y abs tracción
Pirido lome el valor 1 sólo 5 seg lln ~ (e) Patro nes de test y medidas de
dos después de que el reloj alcance la testeabi I idad
hora y minuto de la alarm a. (f) Doc umentació n y desc ripción
Obsérvese que en dicha descripció n. HDL
la señal Pitido tendrá el valor I
1.6. (He rrami entas CAD ) Desc ribe las
duran te un minuto entero (es decir,
di fere ncias entre:
hasta que el cOl/fador de m il/1I10S
(a) Captura de esquemas y modela-
haya ava nzado 1 y e l valor del cOIIIll -
do
dor de minutos deje de ser igual que
(b) Diagrama de bloques y espec ifi-
el valor del regisfm de minutos) .
cación
1.4. (Representación del diselio) Haga las (e) Vcrilicación y s imulación
represen taciones de comportam iento (d) Optimi zación y traslación (lIla-
y estructural de un co ntrolador de peudo) a la tecnología
26 Principios de di seño di g ital

(e) Ubicación y planificación de l ASIC. mientras el proceso de diseño


espacio comienza con una especificación eje-
(r) Determinación de l pertil de fal- cutabl e y termine con la fabricación
tas y generación de patrones de de MCM.
test
1.8. (Di seño físico) Dada un a es tru ctura
1.7. (Proceso de diseño) Definir un a de seis microchips, como se muestra
metodo logía en la que la bibli oteca en la Figura P I.8(a), ubicarl os en un
contenga procesadores, memorias. y MCM de 3 x 3 y conectar los micro-

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
o,
"
" ----4-~~_+----_r~_r---t~

(a) Representación estructural

(b) MCM

FIGURA Pl.8
Introducción 27

chips usando las trayectorias de tras que las conexiones horizontales


encaminamiento sugeridas con las están en la segunda capa de metal.
líneas de puntos de la Figura Obsérvese también que cada micro-
PI. 8(b). Después conectar 1" L" O, Y chip tiene dos puertos a cada lado y
O, a los puertos MeM . Obsérvese que no se puede reasignar cualquier
qüe las conexiones verticales están conexión de estos puertos a otros
en la primera capa de metal, mien- puertos.

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Tipos y
L

de datos
o

representaciones

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
3 3
Álgebra booleana Puertas lógicas
y biestables

6
I
Máquina de
'+
estados finitos
Técnicas de
4 e. Técnicas de
6
diseño lógico -+ diseño digital

Sistema binario 2
y representación
de datos
t t
5 7
Componentes Componenles de
combinacionales alm3cenamienJ,g.
I -- 1
Máquinas de 8 Diseño de 8
estados finitos transferencia entre
generalizadas registros

1
9
Componentes
del procesador

Como es fácil construir circuitos digitales que reconozcan y mallip/llen


sólo ceros y unos, nuestro objetivo en el diseño de sistemas es realizar
todas las operaciol/es de /111 compllfador usando sólo estos dos s{mbolos.
En consecuencia, todos los números y datos de un computador tienen que
representarse en esta fomla binaria. En este capítulo veremos cómo repre·
senta,. mlmeros y caracteres en fonna binaria y cómo realizar operaciones
aritméticas COII esta de los datos.
30 Principios de diseño digital

En este capítulo se introducen los tipos de datos más comunes que se pueden
encontrar en sistemas digitales y después se muestra cómo se pueden representar
con un código binario. Los datos que podemos encontrar en sistemas digitales se
pueden clasificar en tres categorías generales que incluyen: (1) números que se
usan en operaciones aritméticas, (2) letras del alfabeto que se usan en procesa-
miento de datos y (3) una serie de símbolos discretos para diversos usos. Estos
tres tipos de datos se representan en computadoras en un código binario, que es la
forma más natural de diseñar dichas computadoras, sencillamente porque es fácil
construir circuitos electrónicos que posean dos situaciones alternativas que se

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
puedan interpretar según convenga como los valores O ó I de un dígito binario.
Aunque toda la información de los sistemas digitales se representa con estos dígi-
tos binarios, siempre que esta información sea para uso humano debe reconver-
tirse en dígitos decimales y letras de alfabeto.

2.1. SISTEMAS POSICIONALES DE NUMERACiÓN


Para comprender el sistema de numeración binario usado en el diseño de compu-
tadoras, necesitamos reconocer que el sistema de numeración que usamos a dia-
rio es un sistema de numeración posicional. En este sistema se puede represen-
tar cualquier número mediante una cadena de dígitos en la que la posición de cada
dígito tiene un peso asociado. Así, el valor de un número dado equivale a la suma
ponderada de todos sus dígitos, como por ejemplo:
1234 = I . 1000 + 2 . lOO + 3 . lO + 4 . 1
Obsérvese que en este ejemplo, cada peso es una potencia de lO que es igual
a 10i, donde i corresponde a la posición del dígito contando desde la derecha. Un
punto decimal nos permite usar potencias de 10 tanto negativas como positivas en
la representación numérica. Por ejemplo:
1234,56= l· 1000+2·100+3·10+4· I +5·0, 1+6·0,01
En general, cualquier número decimal D de la forma d l dQd_l d_2 vale:
D = di . JOI + do . JOO + d_1 . 10- 1 + ('-2 . 10- 2
Aquí a 10 se le denomina base (radix) del sistema numérico. En un sistema
numérico posicional general, la base debe ser cualquier entero r, y un dígito en la
posición i tendrá entonces el peso ,J. Por consiguiente, podríamos describir la
forma general de un número en tal sistema como:
dm_ l d m_2 .. . d l dQ,d_l d_2 •• •d_n
donde hay m dígitos a la izquierda de la coma, conocida como coma fracciona-
ria, y n dígitos a su derecha. Obsérvese que si no hay coma fraccionaria debe-
ríamos suponer que está a la derecha del dígito que esté más a la derecha. El valor
de este número es la suma de los productos de cada dígito multiplicado por la
correspondiente potencia de la base:
Tipos y representaciones de datos 31

111 - 1
D= L d¡. /
"=-11
En un sistema numérico posicional la representación dc cada número es única
una vez eliminados los posi bles ceros del comienzo o del final. Obsérvese que el
dígito que está más a la izquierda se denomina en este sistema numérico dígito
más significativo (MS D. MOSl SigllijicclIIl Digil). y el que está más a la derecha
es el dígito menos significativo (LSD, Leasl Sigllificalll Digir). Puesto que los

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
sistemas digitales usan dígitos binarios, sc usa una base binaria para representar
cualq uier número en un sistema digital. La forma general de tal número binari o
es

y su valor equi vale a


II/ - J
B= L b¡.2'
1=-1/

De forma similar a la coma decimal en un número decimal, a la coma frac-


cionaria en un númcro binario se le denomina coma binaria. Usualmente, siem-
pre que se trabaja con números binarios u otros no decimales se usa un subíndice
para indicar la base de cada número, aunque la base suele estar sufi cientemente
clara por el contexto. A continuación hay algunos ejemplos de números binarios
y sus equ ivalentes decimales:
10101 2 = 1 · 16+0·8+ 1 ·4+0 ·2 + 1·1 =2 110
110 10 12 = 1 . 32 + I . 16 + O . 8 + 1 . 4 + O . 2 + 1 . 1 = 53 10
10, 101 2 = 1 · 2+0· 1 + 1 ·0.5+0·0.25+ 1· 0, 125=2,625[0
,1111 2 = 1 ·0,5 + 1·0,25 + 1 ·0, 125 + 1 · 0,0625 = 0,9375[0

2.2. NÚMEROS OCTALES Y HEXADECIMALES


Después de la discusión sobre los sistemas numéricos posicionales. se puede reco-
nocer fác ilmente la importancia de la base 10. que se usa conmumnente, y de la
base 2, que se usa en sistemas digitales para procesar números. Sin embargo, ex is-
ten también dos bases adicionales que son importantes para nuestros objetivos. ya
que la base 8 y especialmente la base 16 se usan a menudo para hacer las repre-
sentaciones de números binarios más cortas, reduciendo la necesidad de cadenas
largas indescifrables.
El sistema de numeración octal u~a como base el 8, mientras que el sistema
de numeración hexadecimal lisa como base el 16. Como el siste ma octal posee
ocho valores diferentes , se usan los dígi tos de l O al 7 del sistema decimal. El sis-
tema hexadecimal , sin embargo, necesita representar 16 va lores diferentes, así que
suplementa los dígi tos decimales con las letras de la A a la F. En la Tabla 2. 1 se
32 Princi pios de di seilo digit al

muestran los e nte ros hinarios del O a l 10001 con sus eq ui valentes en octal. dec i-
mal y hex adec imal. Obsérvese que los díg itos octale s pueden represe nt arse co n
tre s dígitos binarios. mientras que los díg itos hexadec imal es y dec imal es puede n
representarse eon cuatro dígitos binarios. La Tabla 2.2 Illuestra los e nteros bina-
rios del O al 10001 y sus equivalentes octal. decimal y hexadecimal codifi cados
e n o ctal.

TABLA 2.1 Diferentes representaciones de TABLA 2.2 Represen taciones codificadas

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
los números del o al 21 en binario

HEJ<A. HEXA·
BINARIO OCTAL DECIMAL OCTAL DECIMAL
DECIMAL DECIMAL
BINARIO CODIFICADO CODIFICADO
CODIFICADO
EN BINARIO EN BINARIO
(J O n O EN BINARIO
I I I I
10 2 2 1 (1 000 DOOO 0000
11 3 3 3 I 00 1 000 1 0001
10 0 10 00 10
100
101 "5 4
5 "5 11
100
01 1
I(KI
00 11
0 100
(lO" '
00 11
olon
li D Ó 6 6
111 7 7 7 10 1 101 010 1 (1 1111
1000 10 8 8 11O 110 01 10 0 110
111 11 1 0 11I 0 111
1001 11 9 9
10011 110 1 ono 1000 11100
1010 12 lO A
11101 I XII nOI 1110 1 IIlOI
101 1 13 11 B 1(11 0 00 1 0 10 ()(X) 1 IKXIO 10 10
11(JO 14 12 e 10 11 (101011 mo 1 IXX II 10 11
1101 15 13 D 11 00 (JO 1 100 000 1 ()(l 1o 11 !lo
11 1() 16 14 E 11 01 (XII 10 1 (XKI! 110 11 11 111
1111 17 15 F 1110 UOI 11 0 O! XJ! () I(XI 11 10
10000 10 16 10 1111 001 11I OO!J! o 10 1 1111
1000 1 11 17 11 I(XIOO 01 0000 OliO 1 010 1 OliO 1 tKJOO
1000 1 0 10 001 0011 1 11 111 OliO 1 t100 I

Es Illuy fácil conve rtir un número binariu en octal. Empeza ndo por el punt o
binario y operando hacia la izqui erda. sencill amente se separan los bits en g rupos
de :1 y se sustitu ye cada g rupo po r el correspo ndiente díg ito octal co nll) se ve e n
el sig uiente ej e mplo:
IÜIOOIII002 = OOI olnoll 100 = 12:14 s
La conve rsión de binario a hexadec imal es igual. excepto que se to man gru -
pos de 4 bits:
lüIOOIIIOO, = 00101001 1100 = 29C 'I'
Obsérvese en estos eje mplos que se añaden ceros por la izqui erda si hace falta
que el número total de bits sea múltipl o de 3 Ó 4 .
Tipos y representaciones de d a lOS 33

Las partes fraccionarias se pasan a octal o hexadec imal empezando en la coma


binari a y agrupando los dígitos binarios que quedan a la derecha. De nuevo tene-
mos que añad ir ceros al grupo que está más a la derecha para conseguir múltiplos
de 3 ó 4 bits. como se ve en el siguiente ejemplo.

, 10 111 2 = , 10111 0 = ,56 8


= , 10 11 1000=,B8] 6
Convertir en sentido opuesto, de octal o deci mal a binario. es tambi én bastan-
te senci llo. Sustituimos cada díg ito octal o deci mal por la correspondiente cadena

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
binaria de 3 ó 4 bits siguiendo la Tabla 2. l. Por ejemplo:

765 8 = 11111 0 10 12
765 ,432 8 = 11111 010 1,1 000 1101 0 2
FEO]6 = 1111111 0 11 0 1"
FEO,CBA = III I I I 10 11 0 1.11 00 101 I 10102

A pesar de que el sistema octal no se usa mucho hoy en día, el siste ma hexa-
dec imal es bastante popu lar, ya que se puede pasar fác ilmente de o a binario, y
porque los datos normali zados de 8. 16. 32. y 64 bits se pueden expresar efi cien-
temente con 2.4. 8. y 16 dígitos hexadecimales.

2.3. CONVERSIONES ENTRE SISTEMAS NUMÉRICOS


Como regla ge nera l. no podemos pasar de la representación de un número en una
base a la representación en otra base sencillamente sustituyendo lo números de
una base po r los eq ui valentes de la otra: esto es correcto sólo cuando ambas bases
son potencias enteras de l mi smo número. Cuando no es este caso. se deben seg uir
procedimientos de conversión más complejos q ue requieren operaciones aritmé-
ticas. En esta secc ión se muestra cómo conve rtir un número en cualquier base a
baoe 10. y viceversa. usando una aritméti ca en base 10.
Co mo se indicó en la Sección 2. 1, el va lor de un número en cualquier base se
puede represe ntar medi ante la fórm ula
/11 - 1
D= ¿ d;!" (2. 1)
1=-- 11

donde r es la base del número, 111 indica el núme ro de dígitos a la izquierda del
punto. y n indica el número de dígitos a la derecha. Entonces. el valor decimal de
un número en cualquier base se determina conv irti endo cada dígi to del número en
su equ iva lente en base 10. y luego se aplica la fórmu la usando aritmética en base
10. A continuación , e muestran dos ejemp los:

12EF](¡ = 1 . 16 3 + 2. 16" + 14 · 16 ] + 15.160 =4847 10


436.5. = 4 . 82 + 3 ·8] + 6 .80 + 5 ·8- ] = 286,625] 0
34 Principios de diseño digital

Por otra parte, como alternativa al uso de esta fórmula , se puede seguir un sen-
cillo procedimiento para pasar números de una base a base 10 reescribiendo la
parte entera de la Ecuación (2. 1) así tenemos:
D = «(. .. «d",_llr + d"'_2)r + ... )1' + d l)r + do (2 .2)
A partir de la Ecuación (2.2) podemos idear un proced imi ento iterati vo que
examine el número desde el MSD al LSD y lo vaya acumulando a una suma deci-
mal , S. Como se muestra en la Figura 2. 1, este procedimiento asigna primero O a
S, y luego en cada paso del procedimiento, comenzando por el dígito más signiti-

© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
cativo, se multiplica S por la base 1', y el siguiente dígito menos significati vo (el
siguiente por la derecha) se suma al producto. Este paso se repite para cada dígi-
to hasta que se haya sumado a S el dígito menos sign ificati vo, que representa el
equivalente dec imal del número en base r.
La Ecuación (2 .2) es también un punto de comienzo útil para convellir un
número decimal D en un número en base r. Si dividimos el número D de la
Ecuación (2 .2) por 1', la parte entre paréntesis de la Ecuación (2 .2) representa el
cociente
Q = ( ... «d",_I)r + d",_2)r .. . )1' + di (2.3)
mientras lo que queda es el resto
R = do

5'=0

;= m -I
,

--=r
~

FIGURA 2.1 Procedimiento para pasar números en base r a números decimales.

Вам также может понравиться