Академический Документы
Профессиональный Документы
Культура Документы
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
CONSULTORES EDITORIALES:
© 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
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
DANIEL D. GAJSKI
Principios de diseño digital
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
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
PRÓLOGO XIll
AGRADECIMIENTOS XIX
1. INTRODUCCiÓN 2
vii
viii Principios de diseño digital
1.9. Problemas 2S
© 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
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
4. SIMPLIFICACiÓN DE FUNCIONES BOOLEANAS 130
© 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
© 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
í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.
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
© 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
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
datos y predicción de saltos.
Características editoriales
~-~_ .. ~~~
Prólogo xvii
© 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
© 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,
© 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)
1 seg un do
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.
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
© 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
© 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.
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
© 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.
© 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.
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
© 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
1.3.6. Fabricación
© 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.
© 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.
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
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
1.4.3. Verificación y simulación
© 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.
© 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
© 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
© 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
© 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.
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
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
o,
"
" ----4-~~_+----_r~_r---t~
(b) MCM
FIGURA Pl.8
Introducción 27
© 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
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.
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
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.
© 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
© 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.
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:
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
~