Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Principios de Diseño Digital Version Electronica Biblioteca ULPGC PDF
Principios de Diseño Digital Version Electronica Biblioteca ULPGC PDF
© 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
~
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
S=D
2
i=U
3
Divide S entre ,.
s = cociente
d, "" resto
5+ 2= 2 resto 1
2+ 2= 1 reSto 1
1 ->- 2 = O resto 1 (MSD)
Por tanto. 179 10 = 10110011 2 ,
(b) 467 ->- 8 = 58 resto 3 (LSD)
58 + 8 = 7 resto 2
7 + 8 = O resto 7 (MSD)
Por tanto, 467 10 = 723 8,
(e) 3417+ 16= 213 resto 9 (LSD)
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
213 + 16 = 13 resto 5
13 + 16 = O resto 13 (MSD)
Por tanto. 34 17,tI = D59' 6'
PROBLEMA
Sumar los eq uivalentes binarios de los números decimales 987 y 123.
SOLUCiÓN
En la Figura 2.4 se muestran las representaciones binarias de los números 987 y 123.
Obsérvese que 123 se completa con ceros por la izquierda durante la suma.
Tipos y re presemaciones de dato s 37
1) ,,
,
,,-------'
:\ l';I I Tl.'(l~ 11 ,,,
,,,
\ + l' 1) 11 1) 1) 11 , 1)
'------
'. ", ,- ,'o '.
1 :11
" " " '"
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
FIGURA 2.4 Ejemplo de suma binaria cuando se suman dos números binarios, x(987) e
y( 123) .
TABLA 2.3 Suma de dígitos binarios TABLA 2.4 Resta de díg itos binarios
x; + YI + CI Ci+1 SI x, y, C, b i+1 d,
11 O () O O O O () O O
O O I O I O O I I I
O I O O I O I O I I
O I I I O O I I I O
I O O O I I () () O I
I O I I O I O I O O
I O I O I I () O O
I I I I I I
38 Principios de diseño digital
¡ :",el
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
FIGURA 2.3 Procedimiento para sumar dos números binarios.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
~ imilar. la resta de x I menos YI y "1 genera di = O Y b:!. :;::. O. C0l110 se ve en el área som-
breada de la figura. El proceso sigue hasla que se genere "9'
5 12 256 12!l 64 ~2 lb 8 .¡ 2
,,
,
(1 O
,,,
Y O ,,,
r----..I
,,
Adeudo!:> U O O O O O O
, ,,
\'+ y O 1) O 1) O ,, O
L _____
También se pueden desalToJlar tablas de suma y resta para dígitos octa les o
hexadecimales o cualq ui er otra base deseada: sin embargo. la mayoría de los inge-
nieros encuentra que es más fácil pasar los números a dec imal, obtener los resu l-
tados y luego volver a pasarlos a su forma orig inal.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Obsérvese que el siste ma de signo y magnitud ti ene el mi smo número de ente-
ros positi vos que de negati vos. C ualquie r entero e n signo y magnitud con Il. bit s
está dentro del rango que va de _(2"- 1 - 1) a +(2,,- 1 - 1), teniendo e n c uenta que
hay dos posibles representaci ones del cero.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
resta se lleva a cabo sumando después de cambiar el signo del sustraendo.
Para llevar a cabo operaciones de multiplicación o di visión, todo lo que tene-
mos que hacer es multiplicar o di vidir las magnitudes y hacer el resultado positi-
vo cuando ambos operandos tengan el mismo signo y negativo en caso contrario.
Cuando el resultado es cero, se pone signo positivo.
Como la multiplicación y la di visión se pueden llevar a cabo normalmente
mediante sumas y restas iterativas , los únicos circuitos aritméticos que necesita-
ríamos son sumadores y restadores . Por el contrario, como la suma y resta de
números en signo y magnitud requiere la comparación de signos y magnitudes, los
sumadores y restadores en signo y magnitud tienden a ser más lentos que sus aná-
logos que utilizan el sistema de numeración en complemento, ya que estos no
requieren tal comparación.
base genera otro número que se encuentra entre I y 1'" - l. Si por el contrario D
es O, el resultado de la complementación será 1"', que tiene un total de m + I dígi-
tos, es decir, el dígito I seguido de m ceros . Como guardamos sólo los m dígitos
menos significativos, el número O se representa de forma única. mediante una
cadena de m ceros.
Alternativamente. podemos obtener el complemento a la base D, descrito en
la Ecuación (2.4), si n restar, reescribiendo la ecuación del siguiente modo:
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
El número 1'" - I de la Ecuación (2.5) consta de 111 dígitos iguales cuyos valo-
res son l' - l. Si definimos el dígito complemento como d' = (1' - 1) - d. entonces
Además, si detinimos
/11 - 1
D'= 'L>':
i=()
D = D' + 1 (26)
de acuerdo con esta ecuación el complemento a la base de un número D se obtie-
ne complementando los dígitos de ese número individualmente y luego añadien-
do uno. Por ejemplo, se obtiene que el complemento a 10 de 987 es 012 + l. es
decir, 13, y el complemento a 10 de 123 es 876 + 1, es decir, 877 . En la Tabla 2.5
se incluyen los dígitos complementarios de dígitos binarios, octales, decimales y
hexadecimales.
En comparación con la representación en signo y magnitud, la ventaja del sis-
tema en complemento a la base es que los nÚI~eros negativo~ se pueden repre-
sentar sencillamente mediante el complemento D, ya que D + D = O cuando guar-
damos sólo los 111 dígitos menos significativos. Ahora vamos a ilustrar esta venta-
ja en relación con los números binarios.
El complemento a la base con números binarios se denomina complemento a
2, y la representación numérica que resulta de esta transformación se denomina
representación en complemento a 2. Con números binarios el signo se representa
con el MSB, que es O para números positivos y I para números negativos.
Entonces un número negativo se obtiene a partir de un número positivo comp le-
mentando cada dígito binario, incluyendo el bit de signo. y luego sumando I (es
decir, cambiamos todos los O por 1 y los I por O y luego sumamos uno). El aca-
rreo resultante del MSB se descarta. Por consiguiente si estamos complementan-
do O y e l acarreo del MSB se descarta obtenemos O en complemento a 2. Entonces
podemos concluir que en el sistema en complemento a 2. O ti ene una única repre-
Tipos y representaciones de datos 43
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
TABLA 2.5 Complementos de dígitos
HEXA-
DíGITO BINARIO OCTAL DECIMAL
DECIMAL
O I 7 9 F
I O 6 8 E
2 5 7 D
3 4 6 e
4 3 5 B
5 2 4 A
6 I 3 9
7 o 2 8
8 I 7
9 o 6
A 5
B 4
e 3
D 2
E I
F o
permite sumar y restar enteros tanto con signo como sin signo con el mi smo cir-
cuito lógico. Como indicaba la Tabla 2.6 se puede obtener cua lquier número entre
el menor (-8) y el mayor (+7) simplemente sumando I al número anterior e igno-
rando cualquier acarreo producido por los bits de signo.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
binaria que mostramos en la Figura 2.3, y se ignora cualquier acarreo del bit de
signo. Mientras que el rango del sistema numérico no se supere. el resultado de
esta suma será siempre correcto incluyendo el signo. Por ejemplo, la suma de dos
números positivos da lugar al resultado positivo correcto:
0010 (+2)
+ 0100 (+4)
01 10 (+6)
Igualmente , sumando dos números negativos siempre se obtendrá una suma
negativa correcta mientras se ignore el acarreo del bit de signo:
1110 (-2)
+ 1100 (-4)
acarreo ignorado = I 1010 (-6)
Sin embargo, hay casos en los que una operación produce un resultado que
excede el rango del sistema numérico, dando lugar a una situación conocida como
desbordamiento (overflow). Como norma, la suma de dos números con distinto
signo nunca produce un desbordamiento. Sin embargo cuando sumamos dos
números con el mismo signo que dan una suma mayor que el mayor número
representable. se puede obtener un resultado incorrecto, como por ejemplo el caso
de un número en complemento a 2 de 4 bits.
0100 (+4)
+ 0101 (+5)
1001 (-7)
De forma similar,
lIIO H)
+ 1011 (-5)
acarreo ignorado = I 0111 (+7)
Como sugieren estos ejemplos, es posible estab lecer una regla sencilla para
detectar si hay desbordamiento en las sumas: en efecto, un desbordamiento en la
suma ocurre siempre que el signo de la suma sea diferente a los signos de ambos
sumandos. Los diseñadores de computadores usan una regla ligeramente diferen-
te en el di seño de circuitos sumadores en complemento a 2. Si ambos operandos
Tipos y representaciones de datos 45
son positi vos, hay desbordamiento siempre que haya acarreo hacia el bit de signo.
En este caso no hay acarreo del bit de signo ya que ambos signos son Q. Por otra
parte. si ambos operandos son negati vos. hay desbordamiento siempre que no
haya acarreo hacia el bit de signo. ya que los números negati vos grandes tienen
co mplementos pequeños. En este caso debería haber aCatTeO del bit de signo. Así,
podemos defi nir la reg la de desbordamiento de la siguiente manera: Hay desbor-
dami ento en la suma siempre que el acarreo que va hac ia el bit de signo sea dife-
rente del acarreo que produce el bit de signo.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
TABLA 2.6 Represe ntaciones en comple-
mento a 2 y en signo y magnitud
-8 1000
-7 100 1 11 11
-6 1010 111 0
-5 101 1 11 01
-4 1lOO I 100
-3 110 1 10 11
-2 111 0 10 10
-1 1111 100 1
O 0000 1000 Ó 0000
I 0001 000 1
2 00 10 00 10
3 00 1I 00 11
4 0100 0 100
5 0101 0101
6 0 110 011 0
7 0111 0111
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
adeudo ignorado = 1 1110 (- 2)
que se puede usar el mismo circuito para números con o sin signo. se tienen que
usar reglas distintas para la detección del desbordamiento en cada caso.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
se multiplica 14 x 3 y se le suma el producto 14 x 1 desplazado:
14 multiplicando
x --.!l multiplicador
42 3 x multiplicando
14 1 x multiplicando
182 producto
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
hacen falta cuatro sumas y cuatro prod uctos parciales para multiplicar los dos
números de4 bits, I4y 13:
f1I' : o
j= ()
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
FIGURA 2.9 Procedimiento para multiplicar números binarios sin signo.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
10010 multiplicando (- 14)
X 10011 multiplicador (- 13)
000000 producto parcial ampliado
+ 110010 multiplicando ampliado
1110010 producto parc ial ampliado
+ 110010 multiplicando desplazado ampliado
Ignorar acarreo 11010110 producto parcial ampliado
+ 000000 todo ceros
111010110 producto parcial ampliado
+ 000000 todo ceros
1111010110 producto parcial ampliado
+ 001 110 multiplicando ampliado, desplazado y
negado
Ignorar acarreo 0010 110110 producto ( 182)
En este ejemplo de multiplicación hay que observar que los acarreos del MSB se han
ignorado en los productos parciales tercero y quinto, antes de la extensión del signo.
Obsérvese también que el último multiplicando desplazado fue negado antes de la suma.
Como el lector puede ver. el producto generado tiene 10 bits de precisión. aunque sólo se
necesitan 9 bits para expresar 182. Para obtener una precisión de 9 bits necesitamos trun-
car el signo.
13 cociente
14)186 dividendo
14 desplazado (divisor X 1)
46 dividendo reducido
42 desplazado (divisor x 3)
4 resto
Cuando trabajamos con números binarios utili zamos un procedimiento simi-
lar. Sin embargo, con números binarios puede haber sólo dos opciones para el
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
mayor múltiplo del divisor: cero y el divisor mismo. Consideremos, por ejemplo,
la divi sión binaria de 186 entre 14:
1101 cociente (13)
1110) 10 111010 dividendo (\ 86)
1110 divisor desplazado
1001010 dividendo reducido
II 10 divisor desplazado
10010 dividendo reducido
00000 divi sor desplazado
10010 dividendo reducido
1110 divi sor desplazado
100 resto (4)
Como podemos ver, una división binaria es similar a una multiplicación bina-
ria, excepto en el tamaño de los operandos y el resultado, ya que un dividendo de
(11 + 111) bits y un divisor de Il bits dan lugar a un cociente de 1/1. bits, y un resto de
11 bits. Siempre que el divisor es cero, o el cociente necesita más de 111 bits, puede
producirse un desbordamiento en la división.
Para dividir números con signo se dividen sus magnitudes y luego se hace el
cociente positivo si los operandos tienen el mismo signo y negativo si es distinto.
Si hay resto, este mantiene el signo del dividendo.
También se puede hacer la división directamente con números en comple-
mento a dos. Sin embargo estas técnicas , que usualmente llevan a cabo computa-
dores de altas prestaciones, están más allá del objetivo de este libro.
tos decimales di stintos de cero. En este caso dec imos que 99000 no está dentro
del rango de una representación con 4 dígitos enteros.
En términos generales, el rango de un sistema numérico se puede definir
como el intervalo de todos los números representables entre el mayor y el menor.
En la representac ión con 4 dígitos, por ejemplo. el tamaño del rango e,~ aproxi-
madamente 104 . Desgraciadamente, muchos cálculos cientíncos necesitan un
rango mucho más amplio que el que ofrece este tipo de representac ión en coma
fija. Para ampliar este rango, utilizamos lo que se denomina números en coma
flotante , que tienen la forma
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
mantisa x (base y .\pnl1t'lIff'
donde s es igual al número de bits del campo del exponente. Por este motivo, este
exponente es siempre un número positivo.
O 9 31
Característica Fracción
Signo
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
exceso 127 normali zada
o 63
Característica Fracción
Signo
con sesgo 1032 nOffimlizada
posibilidad de que el resultado tenga uno o más ceros de cabecera en su manti sa.
en cuyo caso se debe normalizar desplazando la mantisa a la izquierda y decre-
mentando el exponente proporcionalmente. El desplazamiento m¡íximo que se
puede necesitar es siempre menor que el número de bits de la mantisa. Si el expo-
nente se desborda a O durante el decremento, este desbordamiento a O tambi én
debe detectarse.
Conceptualmente, la multiplicación de números en coma flotante es más fácil
que la suma y la resta, debido a que no es necesario alinear los exponentes. En
otras palabras, las mantisas se pueden multiplicar como si fueran enteros en coma
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
fija , y los exponentes senci llamente se suman. Sin embargo. si esta suma de expo-
nentes produce un desbordamiento a infinito (olle/flow) ( o a cero (ullde/:f/OII")).
se tiene que detectar el desbordamiento (a infinito o a cero) en coma flotante .
La manti sa resultante podría tener como mucho un cero de cabecera, lo que
requiere un único desplazamiento a la izquierda y la correspondiente reducción
del exponente en l. Si el exponente desborda a cero tras esta reducción en 1, el
desbordamiento a cero en punto flotante se tiene que detectar. En cambio, si cua l-
quiera de los operandos es cero, se tiene que generar un cero en coma flotante.
La división en coma flotante requiere que se dividan las mantisas y que se
reste al exponente del dividendo el exponente del divisor. Siempre que el di vi-
dendo sea mayor que el divisor, el cociente será mayor que l. en cuyo caso hay
que desplazar la mantisa una so la posición a la derecha mientras que su exponen-
te se incrementará en l. Si el exponente se desborda (a infinito o a cero), se debe
detectar el desbordamiento Ca infinito o a cero) en coma tlotante . En aquell os
casos en los que el dividendo es cero. hay que generar un cero en coma tlotante.
Por otra parte, si el divisor es cero. se debe detectar el desbordami ento en coma
flotante. Finalmente, si tanto el dividendo como el divisor son cero. el resultado
se identifica como número desconocido.
Para acelerar esta aritmética en coma flotante, las computadoras y las estacio-
nes de trabajo de altas prestaciones tienen ace leradores de coma tlotante. que son
ASIC especiales que incorporan algoritmos rápidos para la aritmética en coma
flotante que se implementa directamente en hardware.
go. La asignación de las palabras del código a los objetos se hace mediante una
expresión algebraica o una tabla. Sin embargo, el lector debería observar que
cuando la asignación se hace de forma tabular, puede no haber una explicación
lógica de cómo están relacionadas las palabras código con los objetos. Obsérvese
también que no necesariamente se tienen que usar todas las cadenas de bits como
palabras código.
Como se indicó antes, se necesitan al menos 4 bits para representar dígitos
decimales. Sin embargo, hay (:3) = 16!/ 10!6' fOlmas diferentes de escoger 10
palabras código específicas a partir de 16 posibles cadenas de 4 bits y lO' formas
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
di stintas de asignar cada elección a 10 dígitos decimales. Entonces hay
16' 10!/I0!6! = 16!/6! = 29, 059, 430, 400 códigos decimales de 4 bits diferentes.
Además, sólo unos pocos de ellos se usan actualmente, donde los más comunes
se listan en la Tabla 2.7.
El código decimal más frecuentemente usado es el código de dígitos deci-
males codificados en binario (BCD, BilZa/y Coded Decimal), que asigna una
representación binaria sin signo de 4 bits a cada dígito entre O y 9, no usándose
las palabras del código entre 1010 y 1111. La conversión entre las representacio-
nes BCD y decimal se puede llevar a cabo simplemente sustituyendo 4 dígitos
BCD por cada dígito decimal y viceversa. Sin embargo, en la práctica se suelen
agrupar dos dígitos BCD en un byte de 8 bits, que por tanto puede representar
cualquier valor comprendido entre O y 99.
Los números en BCD negativos se pueden expresar de varias fonnas, incluyen-
do las representaciones en signo y magnitud y en complemento a 10. En cada una de
estas representaciones el signo se sitúa en un dígito extra. En BCD con signo y mag-
nitud' los signos + y - se pueden representar con cualquier cadena de 4 bits, en repre-
sentación en complemento a 10 el signo + se representa con 0000 y el - con 1001.
DíGITO BIQUI·
BCD 2421 EXCESQ.3
DECIMAL NARIO
suma de dos números binarios sin signo de 4 bits, con una excepción: Si la suma
de estos dos dígitos BCD está entre 10 Y 19, debe cOITegirse restando 10 Y gene-
rando el acarreo adecuado para el siguiente dígito. En realidad , esto se puede rea-
lizar sencillamente sumando 6 al dígito desbordado. ya que para los números
binarios de 4 bits, sumar 6 es equivalente a restar 10. Más aún , sumar 6 produce
automáticamente el acarreo adecuado. Obsérvese que también se puede generar el
acarreo adecuado para el sigui ente dígito sumando dos dígitos BCD cuya suma
sea igualo mayor que 16.
BCD es lo que denominamos un código ponderado, ya que el valor de cada
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
dígito decimal es igual a la suma de todos los productos de los valores binarios de
cada bit por su peso asociado. Los pesos del código BCD son 8, 4, 2 Y 1, respec-
tivamente: por esta razón, el código se denomina a veces código 8421. Alterna-
tivamente, los pesos 2, 4, 2, I se usan para generar el código 2421 que se mues-
tran en la Tabla 2.7. Este código literal se denomina autocomplementado, ya que
para todo dígito entre O y 9, se puede obtener la palabra código del complemento
a 9 complementando cada bit de la palabra código del dígito.
También mostramos otro código autocomplementado en la Tabla 2.7, el códi-
go de 3 en exceso. Este código no es un código ponderado pero se genera a par-
tir del código BCD sumando 0011 (3 en binario) a cada palabra del código.
Los códigos decimales pueden tener también más de 4 bits. Por ejemplo, el
código biquinario mostrado en la Tabla 2.7 usa 7 bits. En este código el primer
bit de una palabra del código se usa para indicar si el dígito decimal se encuentra
en el rango entre 5 y 9, mientras que el segundo bit indica el rango de O a 4. Los
últimos 5 bits de cada palabra código se usan para seleccionar uno de cinco núme-
ros dentro del rango, en el que cada bit corresponde a un número del rango.
Como se puede ver a partir de la tabla, el código biquinario requiere 7 bits
para representar la misma cantidad de información que los otros tres códigos de
la tabla, representados con 4 bits. Sin embargo, la ventaja de este código biqui-
narío yace en su facilidad para detectar errores en un sólo bit, ya que todas las
palabras del código tienen la misma propiedad: todas tienen dos unos, uno entre
los dos bits más significativos y otro entre los cinco bits menos significativos.
Dada esta propiedad, cualquier cambio accidental de cualquier bit en cualquier
palabra código, da una palabra no codificada permitiéndonos detectar si una
palabra código es errónea. Trataremos estos tipos de códigos con más detalle en
la Sección 2. 12.
info rmaci ón). en el que cada carácter sc representa con una cadena de 7 bits. Este
código codifica 128 caractcrcs diferentes. incl uycndo mayúsculas y minúsculas.
números. algunos signos de puntuación. y una selic dc caracteres de control. Las 128
palabras de este código se muestran en la Tabla 2.g. que nos dice. por ejemplo. que
la pa labra "DESIGN" se representa con las siguientes sei s palabras código:
1000 100 1000 101 10 1001 1 100100 1 1000 111 1001110
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
b.bsb.
b3 b"b,bo 000 001 010 011 100 101 110 111
Cada una de estas palabras del códi go ASC II se suele almacenar cn un oyte.
4u e incluye un bit de paridad extra que se usa para detecci ón de errores .
los recibidos . Por ejemplo. una radiación cósm ica podría producir un fa llo tem-
poral en un circuito de memoria cambiando el valor de una única ce lda de memo-
ria . Por otra parte, una temperatura alta en el encapsulado podría producir una
desconexión permanente de los pequeños cables del interior de un microchip.
Para detectar tales errores, necesitamos asegurar los datos con la ayuda de códi -
gos de detecc ión de errores. Sin embargo, para comprender estos códigos de
detección de errores primero neces itamos introducir el concepto de distancia boo-
leana, lo que requiere la definición de n-cubo.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
o (a)
o o
10
o
11
o
IbJ
o
00 01
o
101
o
JJI
o
1 ~4~/ '"
O
/~~O~I o
1100 010
11 10 11 11
IOl4~~/o (d)
O-~-.
I / I JOI
/ , )()O
/
0 -- - - 0
/
1000 10\.1[
0 11 ') 0111
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
mismo valor en cada vértice, y el resto de los m bits tomando todas las 2'" com-
binaciones de los valores O y l. Por ejemplo, en la Figura 2.11 (c), los vértices 000,
001 , O1O, O11 forman un cubo de orden 2 dentro del cubo del orden 3. A partir de
la definición anterior de subcubo, sabemos que cada subcubo se caracteriza por
los /1. - 111 bits que son iguales para cada vértice dentro de ese subcubo. Tal subcu-
bo puede especificarse por tanto con una cadena de n bits, que contiene sus n - 111
valores binarios característicos y usando X en el resto de las m posiciones, para
indicar que son bits indiferentes. En otras palabras, cualquier valor binario en un
lugar de un bit indiferente, producirá cadenas que peltenecen a este m-subcubo.
En este nivel conceptual, el n-cubo es útil puesto que proporciona una interpreta-
ción geométrica del concepto de distancia, a veces denominada distancia
Harnrning. La distancia entre dos vértices cualesquiera es igual al camino más
corto entre ellos, que a su vez, es igual al número de bits que tienen distintos valo-
res binarios. En otras palabras, dos vértices adyacentes cualesquiera tienen siem-
pre distancia l. Además. dos véI1ices cualesquiera no adyacentes dentro de cual-
quier 2-subcubo siempre están a una distancia igual a 2. Por ejemplo, en la Figura
2.II(c), los véI1ices 000 y 011 distan 2; de forma similar, los vértices 001 y 010
en el OXX-subcubo siempre distan 2. Este concepto de distancia es esencial para
la comprensión de los códigos de detección de elTores.
lesquiera del código sea <:: 2. En otras palabras, debemos escoger palabras del
código de tal forma que ningún par de vértices que representen palabras del códi-
go sean adyacentes en su correspondiente n-cubo. En la Figura 2.12(a), por ejem-
plo, se muestra un código de 3 bits que consta de cuatro palabras código: 000,
011 , 100 Y 110. Como un error en un so lo bit podría cambiar la palabra del códi-
go 100 por las palabras del código 000 y 110, este código no puede detectar erro-
res de un sólo bit. Sin embargo, si omitimos 100 del código, y añadimos 101 en
su lugar, se puede crear un código con la ventaja de detectar errores en un solo
bit. Como se muestra en la Figura 2.1 2(b). en este cubo un error en un solo bit
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
no puede transformar una palabra del código por otra, ya que todas la palabras
del código distan 2.
En general, para mantener la distancia 2 en un cód igo arbitrario, es necesario
que el número de palabras del código sea igual al de las que no son del código.
Entonces, para lograr este objetivo para cualquier dato de n bits, usualmente deno-
minados bits de información, se pueden usar palabras código de (11 + 1) bits aña-
diendo un bit comúnmente denominado bit de paridad. El valor de este bit de
paridad puede tomar un valor de forma que el número de unos de la palabra del
código sea par para todas las palabras del código e impar para todas las palabras
que. no sean del código, o viceversa. Cuando cada palabra válida del código de
(11 + 1) bits tiene un número par de unos, el código se denomina código de pari-
dad par. Por otra parte, un código en el que e l número total de unos de una pala-
bra válida del código de (11 + 1) bits es impar, se denomina código de paridad
impar. En tales casos, estos códigos se denominan códigos de paridad de I bit
para enfatizar el hecho de que cada uno usa un único bit de paridad. Como ejem-
plo, la Figura 2. I 2(b) muestra un código de paridad par de 11 bits. que consiste en
cuatro palabras: 000, 01 1, 101, 110. Como se puede ver, cada palabra del códi go
contiene ninguno o dos unos, mientras que cada palabra que no pertenece al códi-
go contiene uno o tres unos. Obsérvese que en este código, los dos bits más sig-
nificativos son los bits de información , mientras que e l bit menos signiticati vo es
el bit de paridad. Por el contrario, también podríamos ddinir un código de pari-
dad impar de 3 bits como se ve en la Figura 2. 12(c). Obsérvese que este código
también contiene cuatro palabras código, aunque en este caso cada palabra del
código tendrá uno o tres unos.
Como el lector puede imaginar, estos códigos de paridad de I bit no pueden
detectar errores en 2 bits, ya que un cambio de dos bits cualesquiera de O a I o
de I a O no afecta a la paridad. Sin embargo. pueden detectarse errores que suce-
dan cuando cambien 3 bits en una palabra del código. En general, un código de
paridad de I bit puede detectar cambios que han ocurrido en un número impar de
bits, pero no detecta cambios que impliquen un número par de bits. Por tanto,
estos códigos de paridad de I bit sólo se pueden usar par detectar errores en un
solo bit. Estos códigos de paridad se usan frecuentemente en comunicaciones
locales y globales en los que se añade un bit de paridad a cada código ASCII de
7 bits.
Siempre que se reciba un byte con una paridad incorrecta. hay que retransmi-
til' el byte recibido, o a veces el mensaje entero.
Tipos y representaciones de datos 61
10 1 11 1
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
«.1) Código usual
'"'4 °, /
•
/~170
•
~ '
nou 010
Realmente, para corregir un error en un solo bit se necesita más de un bit de pari-
dad. ya que este único bit sólo puede indicar si una palabra del código es global-
mente correcta o incorrecta. Para obtener una información más precisa necesita-
mos IOg2" bits de paridad extras por cada 11 bits de información , y de esta form a
podremos determinar qué bit de información es el incorrecto. Una vez identifica-
do. el bit incorrecto puede corregirse cambiando su va lor de O a I ó de I a O.
Para ilustrar un código de con'ección de errores. supongamos que sólo se va a
transmitir un único bit de información, y que el O se va a codificar 000 y el l . 111 .
Como se ve en el cubo de orden 3 de la Figura 2. 13. este código tiene una di stan-
cia mínima de 3. Entonces, si se produce un error en un sólo bit durante la trans-
misión de una palabra del código, cambia esa palabra del cód igo por una palabra
que no es del código, como en el caso que tratamos antes con los códigos de I bit.
En este caso, sin embargo, la palabra recibida que no es del código debería di star
I de la palabra del código originalmente transmitida. Como se puede ver en la
Figura 2.13, si por ejemplo se transmite la palabra 000, un solo bit de error puede
cambiarla a 100, OIO o 001. De esta forma , si recibimos una palabra que no está
en el código, con un uno, lo corregimos a 000. Por otro lado, si recibimos una
palabra que no está en el código, con dos unos en ell a. la corregimos a 111.
62 Principios de diselio digi tal
101 Jl1
'o ·4~/
•
/:'170~ ' •
I KXl 010
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
FIGURA 2.13 Ejemplo de código corrector de errores.
Obsérvese que el códi go descrito anteri ormente también puede detec tar.
pero no correg ir, casos e n los que hay dos errores de un solo bi t. Por ejemplo.
si se transmite 000 y se rec ibe 0 11. 10 1 Ó 11 0, es obvio que ha ocurrido un error.
Sin embargn, no es pos ibl e correg ir este error ya que no está cl aro si lo trans-
mitido origi nalmente era 000 y han ca mbi ado dos bi ts , o era 11I y ha cambiado
un so lo bit. Por esta razón, usaríamos este código ya sea para detec tar y corre-
g ir un so lo bi t o para detectar hasta dos errores, pero no para ambas funciones
a la vez.
Sin embargo, hay códigos que permiten simul táneamente detectar y cOITegi r
errores, y se denominan códigos correctores de errores. En general , un código
necesita una distancia mínima de 2.r + 1 para que pueda corregir hasta x errores
de un solo bit. En el sencillo ejemplo mostrado antes, x era igual a l . Por otro lado.
podríamos usar un cód igo con una distancia mínima de 2r + y + l . para corregir
hasta x errores de un so lo bit y detectar hasta y errores ad icio nales. La fun ción de
descubri r qué palabras de l código se transmitieron orig inalmente se denomin a
decodificación, y el hard ware que lleva a cabo esta función se denomina decodi-
ficador corrector de errores.
da al código su capacidad de correcci ón. Prec isando más. a cada bit de paridad en
la posici ón 2k• su grupo de bits de informaci ón conespondiente incluye todos esos
bits en la posición cuya representación binaria tenga un I en la posición 2k •
Para mostrar los grupos de paridad, empezamos con el código Hamming de
7 bits mostrado en la Figura 2. 14, que contiene bits de información en las posi-
ciones 7, 6, 5 Y 3, y los bits de paridad en las posiciones 4. 2, y l. Como indican
los cuadros sombreados, en este código cada bit se usa en el cálc ul o de uno o más
valores de paridad. Como III es la representac ión binaria de 7, por ejemplo, el
bit de información en la posición 7, se usa para calcular el va lor de los tres bits
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
de paridad. Por otra parte, el bit de información en la posición 6, cuya represen-
tación binaria es 110, se usa sólamente para calcu lar el va lor de los bits de pari-
dad de las posiciones 4 y 2, mientras que e l bit de información de la posición 5,
se usa para calcular los valores de los bit s de paridad de las posiciones 4 y l .
Finalmente, el bit de información 3 se usa para calcu lar el bit de paridad de las
posiciones 2 y l .
7 6 5 4 3 2 Posición de los bi ts
GnJpo de paridad p:lra
el bit de paridad 4
Grupo de p:u'tdad para
el bit de parid::.d 2
Grupo de parid:td para
11111111 el hit de paridad 1
t t t
Bits de paridad
De acuerdo con estos grupos de paridad, el valor del bit de paridad de la posi-
ción I tiene que elegirse de modo que el número de unos en las posiciones 7. 5, 3
y I sea par, mientras que el valor del bit de paridad en la posición 2 hace el núme-
ro de unos par en las posiciones 7. 6, 3 y 2, y el valor del bit de paridad en la posi-
ción 4. hace el número de unos par en las posiciones 7, 6, 5 y 4. En la Tabla 2.9
mostramos todas las palabras código para estos códigos de Haml1ling de 7 bits.
Partiendo de la información de esta tabl a, es fácil ver que la distancia mínima
de un códi go de Hamming ti ene que ser 3, ya que esto significa que para otras dos
palabras cualesquiera del código tenemos que hacer al menos tres cambios de un
bit para convertir una palabra del código en otra. Podemos probar esto intuitiva-
mente, demostrando que un cambio de I o 2 bits sólo produce palabras que no
pertenecen al código, que no tienen valores cOlTectos en los bits de paridad. Para
probar que un cambio de I bit siempre generará una palabra que no sea del códi-
go, hemos de ver que un cambio de I bit en una palabra del código afecta al
menos a un bit de paridad , ya que cada bit de una palabra del código se incluye
en al menos un grupo de paridad. De este modo, un cambio de I bit siempre debe-
ría provocar al menos un bit de paridad incorrecto.
64 Principios de diseño digita l
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
0000 000 0000 0000
0001 0 1I 0001 01 I I
00 10 101 0010 10 1I
00 1I 110 001 I 1100
0100 110 0 100 110 1
0101 101 0 101 10 10
01 10 01 1 01 10 0110
01 I I 000 01 I I 0001
1000 III 1000 1110
100 1 100 100 1 1001
1010 010 10 10 010 1
101 I 001 1011 0010
1100 00 1 1100 001 I
I JOI 010 110 1 0100
1110 100 11 10 1000
IIII I II IIII IIII
unos. Por tanto sabemos que tiene que haber un error en los bi ts de paridad -1 y 2.
Como la suma de los números en esas posiciones es 6. sabemos que el error se ha
producido en el sex to bit.
Este código Hanuning de di stancia 3 se podría convcnir fácilmc nle en un
código de distancia 4 sumando un bit de paridad m3. , e u. o va lor se clige de
modo que el número de unos en todos los bits. inc luyendo e l nuevo, sea par. En
la Tabla 2.9 se muestran todas las pa labra, códi go de este código de di stan cia -'
modiflcado. Como en el caso del código de paridad par de un bit, este bit adi -
c iona l asegura que se puede detectar un número impar de errores en un so lo bit
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
si se produjese n. En particular. cualquier error de tres bit s es detectab le co n este
código.
Los cód igos Ham ming de di stanci a 3 y 4 se usan hab itu almente para detec-
ción y corrección de errores en las memorias de la computadoras . Como estos
componentes de memoria representan la pa rte más importante de cualquier
computador. los códi gos Ham min g nos proporcionan una relación coste-efi-
ciente que mejora la fi abilidad del istema, ya que el número de bits de paridad
usados para la corrección de memoria crece sólo logarítmica mente con e l tama-
ño de palabra.
t
Rol
t
Pürid:ld
t t
Paridad Paridad
im:om:clo errónea errónea COrrí:c l:1
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
básicos así como reglas para combinar estos componentes para hacer circuitos
capaces de ll evar a cabo aritmética binaria y otras funcione s digitales.
Peterson. W. w.. and E. J. Welden . En vr-Correclillg Codeso 2nd ed. Boston: MIT Press.
1972.
Un te xto clásico con un tratamiento formal de los códigos de detección y corrección de
errores. Se recomienda sólo para lectores con inclinaciones teóricas.
Schmid, H. Decimal Computalioll . New York: Wiley. 1974.
Una colección, un catálogo y una revista de las técnicas de cálculo BC D. Describe
cómo se implementan de varias formas cada una de las operaciones trascendentales y
aritméticas más comunes.
Sean, N. R. Computer NlImbe r Systems olld Arithmetic. Englewood Cli ffs. NJ : Prenti ce
Hall. 1985.
Un tex to introductorio mu y legible sobre sistemas de numeración y su apl icación a cir-
cuitos digitales.
Steill , M. L. , and R. W. D. Munro. III/",d/lClioll /O Machille Arilhlllelic. Readin g. MA :
Addison-Wesley, 197 1.
Explica los algoritmos bás icos en aritmética de computadoras usando un punto de vista
matemático más que de in geniería. Sin embargo. e l lector no necesita tener muchos
conocimientos matemáti cos para entender el contenido.
Sterbellz, P. H. Floalillg- Poill/ COlllputalion. Englewood Cliffs, NJ: Premiee Hall , 1974.
Un tratamiento formal del cálculo en punto flotante y del amíli sis de errores. Se des-
cribe lo que ocurre realmente durante la ejecución de los programas cuando se utiliza
la aritmética de punto fl otante.
Wakerl y. J. F. Error-Delecling CodesoSelFCheckillg CirclIits. alld ApplicaliulIs. Nc\V York:
North-Hollalld. 1978.
Una introducción excelente a distintos códigos usados en computado .... s y su imple-
mentación en muchas aplicac iones prác ticas.
Tipos y representaciones de datos 67
Waser, S. and M. J. Flynn . Il11rot!uct;oll lO Arithmeric fn ,. Dig ita l Syslem De:"';gllers. New
York: Hall, Rinehart and Winston. 1982.
Un tratamiento más detallado de la aritmética de computadores dirigido il aquellos que
diseñan c.ircuitos aritméticos.
2.16. PROBLEMAS
2.1. (Representación binaria) Ex prese los (a) 606
sigui entes números dec imales en (b) 123
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
binario. (e) 6650
(a) 129 (d) 345.6
(b) 5 11
2.8. (Conversión de números) Pase los
(e) 1000
(d) 2048
siguiente números de la base dada a
las bases indicadas.
2.2. (Representación binaria). ¡,cuál es el (a ) El decimal 11 2 '0 a binario. octal
número mayor que se puede re pre- y base 9.
scntar con: (a) 9: (b) 10: (e) 15: y (d) (b) El hexadecimal I AB2 ,. a deci -
16 bits') mal, binario y base 7
(e) El binario 10110110l z a octal.
2.3. (Representación binaria) Liste todos
decimal. y base 12
los dígitos y sus representaciones en
(d ) 12AB'1 en base I~ a binario.
base 13. base 6 y base 7.
2.4. (Conversión de números) Pase los 2.9. (Conversión de números) Formul e un
siguientes dígitos binari os a notación procedimiento para pasar un número
hexadecimal. de base 3 a base 9.
la) 1010101010
(b) I 000000 I 2.10. (Conversió n de números) Calcule e l
(e) 11111111111 valor de x si 23,. ~ 111100010 2,
(d ) 10011001 1001
2.11. (Reg las para sumar ) Sume los
2.5. (Convers ión de números) Dé los siguientes números sin pasarlos a su
equivalentes binaríos de los siguien- representación decimal.
tes números hexadecimales. (a) 01l102 y ll00ll z
(a) 123.45 (b) 98A" Y 234"
(b) 1000.50 (e) ABC'6 y A 78' 6
(e) BAD.CAB
2.12. (A ritmé ti ca binaria) Eva lúe las
(d ) DA 7.35C
siguientes expresiones usando arit-
2.6. (Conversió n de números ) Pase los mética binaria.
siguientes números decimales a base 6. (a) 1101101 + 11101 )2
la) 131 (b) (100 101 + 101101)(100 10 1 -
(b) 208 101101 )
(e) 1001 (e) ( 111 O11 + 1010 I )/( 11 O111 -
ld ) 5050 101101 )
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
(e) 0000001 (e) Números binarios en signo y
(d) 100000 magnitud
(e) 000000
2.21. (A lgoritmos en punto flotante)
2.15. (Reglas para restar ) Realice la resta Defina un procedimiento para (a)
lamando el complemento a 10 del sumar. (b) restar. (e) multiplicar. y (d)
sustraendo. dividir números en punto Ootante.
(a) 3421 - 1567
(b) 1682 - 2682 2.22. (Cód igo BCD) Represente los
(e) 1000 - I siguie ntes números decimales en
(d) 3003 _. 2002 BCD.
(a) 13675
2.16. (Reglas para restar) Realice la resta (b) 23567
binaria tomand o el complemento a 2 (e) 33441
del sustraendo. (d) 9753
(a) 10 11 10 - 10001
(b) IIIIII - 11110 2.23. (Códigos binarios) Determine el
(e) 111 10 - 1001 código binario para cada uno de los
(d) 100001 - 10001 10 dígitos decimales lIsando códigos
ponderados de pesos 7. 4. 2. Y l .
2.17. (A ritmética BCD) Pase los siguientes
números decimales a binario. y luego 2.24. (Códigos binarios) Represente e l
realice las siguientes multiplicaciones número decimal 9876 en
binarias. (a) Código 8421
(a) 15 x 16 (b) Código 242 1
(b) 120 x 2 1 (e) Cód igo de 3 en exceso
(e) 17xl3 (d) Código biquinario
(d) 2 1 x lOO
2.25. (Códigos de detección de errores)
2.18. (Reglas para multiplicar) Realice la Haga lIn código de detección de eITO-
multiplicación binaria con los res BCD añadiendo (a) un bit de pari-
siguientes números en compl emen to dad par. y (b) un bit de paridad impar
a dos. en la posición del bit menos sign ifica-
(a) O11 OI1 x 00 I1 tiv o.
(b) 111101 xOO l1
(e) 010101 x 1001 2.26. (Códigos de caracteres) Esc riba el
(d) 111101 x 100 I título de este libro en ASCII.
2.19. (Reg las para dividir) Divida los 2.27. (Códi gos de caracteres) Decodifique
siguientes números binarios. el siguiente código ASCII:
(a) 11011/1001 1000010 1001111 1010010
(b) 11111/1111 1001001 1001110 1000111
Tipos y representaciones de datos 69
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
./
L
Algebra
o
booleana y
diseño lógico
© 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
ÁJgebra booleana Puertas lógicas
y biestables
Máquina de
6
1•
estados finitos -.. 4 ~
6
Técnicns de Técnicas de
diseño lógico 4- di seño digital
Sistema bi nario 2
y representación f f
de dalOS
5 7
Componentes Componentes de
combinacionales
T -- almacenamiento
I
Máquinas de 8 Diseño de 8
esl'ados finitos transferencia entre
generalizadas registros
J
9
Componenles
del procesad~
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
implementación de fun ciones booleanas con puertas y biestables. Para presentar
las técnicas de diseño de circuitos digitales. cuyo conjunto usualmente se deno-
mina diseño lógico, tencmos que entender primero las propiedades del álgebra
booleana.
e • .r = x . e = x
Por ejempl o, O es un elemento identidad respecto a la suma en el conjunto de
los enteros
1 = ( .. ., - 3,- 2, - 1. 0, 1. 2. 3.... )
puesto q ue para cada x E 1,
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
es conmutati vo si y sólo si para todo x, v E S.
x _y = y _.r
ELEMEN TO INVERSO. Un conj unto S que contiene un eleme lllo identidad e
respecto a un operador binario, •. se d ice que tiene elemento in verso si y sólo si
para cada x E S, ex iste un elemento y E S tal que
x . v = t!
Por ejemplo, con respec to a la suma, el in verso de cada x E 1 es (- x) ya que
x + (-x) = O.
DIS TRIB UTI VA . Si. Y '1 son dos operadores binarios de un conjunto S, se d ice
que . es di stributi va sobre I si para todo x. v. Z E S,
x • (y t ' ~) = (x • y) J (x • z)
Axioma 1 (Prop iedad de clausura). (a) B es cerrado respecto al operador +; (b) B tam-
hién es cerrado respecto al operador '.
Axioma 2 (Elemento identidad). (a) B tiene un elemento identidad con respecto a "
denominado 1; (b) B también tiene un elemento ide ntidad respecto a +, denominado O.
Axioma 3 (Propiedad conmutati va). (a) B es conmutati vo respecto a +; (b) B es ta m-
bién conmutativo respecto a "
Axioma 4 (Propiedad di stri buti va). (a) El operador · es distributi vo con respecto a + ;
(b) igualmente. el operador + es distri buti vo con respecto a '.
74 Principios de diseño di gital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
no hay operaciones de resta ni de división en el álgebra booleana.
3. Hay complementos en el álgebra booleana pero no en e l álgebra
corriente.
4. El álgebra booleana se aplica a un conjunto finito de elementos, mientras
que el álgebra corriente se aplica a un conjunto infinito de números reales.
5. La definición de Huntington del álgebra booleana no incluye la asociati-
vidad , ya que se puede deri var de los axiomas.
A pesar de estas diferencias, el álgebra booleana se parece al álgebra corrien-
te en muchos aspectos. Usando los símbolos familiares + y " por ejemplo, se faci-
lita el uso del álgebra booleana. Sin embargo, el diseñador lógico principiante
tiene que tener cuidado con no usar las reglas del álgebra corriente cuando no
deba aplicarlas.
Según esta definición, debería quedar claro que para formular un álgebra boo-
leana, necesitamos (a) definir un conjunto de elementos B, eb) definir dos opera-
dores binarios en B y (c) verificar que el conjunto B junto con los dos operadores
satisfacen los seis axiomas de Huntington. Sin embargo, siguiendo este procedi-
miento podríamos formu lar varias álgebras booleanas diferentes senci llamente
porque se puede definir el conjunto B y los dos operadores de varias formas dis-
tintas. En el resto del libro trabajaremos con el álgebra booleana bivaluada defi-
nida por Shannon, es decir, un álgebra en la que el conjunto B tiene sólo dos ele-
mentos. Este álgebra booleana constituye la base de la lógica matemática, en la
que los dos elementos son "falso" y "verdadero", y del diseño lógico, en el que
esos dos elementos son O y l.
El álgebra booleana bivaluada se define en un conjunto formado por dos
elementos, B = {O, l}, con dos operadores binarios OR e+) y ANO (-) según se
definen en las Tablas 3.1 y 3.2. Como puede verse en estas tablas, los axiomas de
Huntington son válidos en el álgebra booleana definida anteriormente.
x y x ·y x y x +y
O (j O O O O
O I () () I I
O O O I
I
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Axioma J. La ley conmutativa se deduce de la simetría en las tablas de los operadores .
Axioma 4. La distributiv idad de este úlgebra se puede. c!t:most rar probando en al11bo ~
sen tidos de la ec uac ión.r· (y + :::) == (x ' y) + (x· :::) para cada va lor posible de las va ria-
b les. Afirmar la distributiv idad equi vale a probar que para cua lqui e r valor de las
variables bina ri as.r, y. y:,.r' (y +::: ) tiene el mismo valor que (x ' y ) + t.r · :). La Tabla
3.3 lo demues tra. Oc forma s imilar. la le y d istributi va de + con respec to a . se
demuestra ele igual forma, C0 l11 0 se ve e n la Tabla 3 .4.
O O O O O O O O
O O I I O O O O
O I O I O O O O
O I I I O O O O
O O O O O O O
O I I O I I
1 O I 1 O 1
I
TABLA 3.4
O O O O O O O O
O O I O O O 1 O
O I O O O I O O
O I I I I
O O O I
O I O 1
1 O O 1
1 1 1
76 Principios de diseño di gi tal
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
TABLA 3.5 Operador
NOT
x y'
O I
I O
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Teorema 5 (a) (x + y) + z = x + (y + z)
(asocialividad) (b) x(yz) = (xy)z
Teorema 6 (a) (x + y)' = xi
(ley de De Margan) (b) (.ty)' = .r' + y'
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
que cualquier igualdad algebraica derivada de estos axiomas será válida siempre
que los operadores OR y AND. Y los elementos identidad O y l. se hayan inter-
cambiado. En otras palabras. el dual de cualquier igualdad al gebraica se puede
obtener cambiando cada OR por AND. cada AND por OR ocada I por O y cada O
por l.
O O O l l l I
O I I O I O O
I O I O O I O
I I I O O O O
El principio de dualidad es muy útil ya que podemos usarlo para probar cual-
quier declaración del álgebra booleana cuya dual sabemos que es cierta. Por ejem-
plo. la demostración completa del Teorema I(b) que presentamos antes procede
de aplicar el principio de dualidad al Teorema I (a). Más aún . podemos usar el
principio de dualidad para probar que cada expresión booleana y su dual con las
variables complementadas son complementarias una de otra. Más concretamente.
si E(x l • x 2 • ..•• x,,) es una expresión booleana de n variables, y E,¡(x x 2• . •• ".r,,) es
J
•
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
hay paréntesi s, NOT se evalúa antes que AND, y AND antes que ORo Las varia-
bles binarias de estas expresiones pueden tomar sólo dos valores , O y l. Entonces,
para un valor dado de las variables, el valor de una función puede ser O ó l.
Consideremos , por ejemplo, la función booleana
(a) x = O, Y = 1, z = l',
(b) x= 1, .y =O , z = 1,.
(e) x= 1, y= 1, z = O;
(d) x= l , y = l , z = 1,.
Por otra parte, para el resto de las combinaciones de los valores de las varia-
bles, FI es igual a O.
Como regla general, la tabla de verdad de cualquier función booleana de n
variables tiene 2" filas , que representan cada combinación posible de los valores
de las variables, de forma que el valor indicado en la columna función de cada fila
es el valor de la función para esa combinación particular de valores de las varia-
bles. Obsérvese que las filas de cualquier tabla se puede numerar de O a 2" - 1,
80 Principios de diseño di gital
O O O O O
I O O I O
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
2 O I O O I
3 O I I I O
4 J O O O I
5 O J O
6 I O O
7 J O
En este ejemplo vemos que en la expresión final de F' l ' se han intercambiado
todos los AND y OR, todas la variables no complementadas sc han complemen-
tado y todas las variables complementadas se han descomplementado .
Una fonna más senci lla de obtener el complemento de una función sería usar
una dual con variables complementadas como se especificaba en la Ecuación
(3.1). Entonces, el complemento de una expresión se puede obtener también sen-
cillamente intercambiando los operadores AND y OR Y complementando cada
literal, ya se haya definido antes como una variable no complementada o com-
plementada. Entonces, la expresión de F' ¡ obtenida directamente de la expresión
de F¡ dada en la Ecuación (3.4) es:
Álgebra booleana y diseño lógico 81
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
ejemplo, la función F I, que se definió con la Ecuación (3.1 ), podría representarse
con cinco operadores ANO. dos OR y dos NOT, como se muestra en la Figura
3.1 (a) . Sin embargo, F' l' que se definió en la Ecuación (3 .5 ), necesitaría cinco
operadores OR, dos ANO, y tres NOT, como muestra la Figura 3.I (b). FI también
se podría obtener a pal1ir de F'I usando un operador NOT adicional como se ve
en la Figura 3.I (b). Obsérvese que esta segunda implementación de F requiere
dos operadores NOT más.
Este ejemplo demuestra que se puede especificar la misma función con dos o
más formas de expresiones algebraicas diferentes. Sin embargo, antes de poder
usar una expresión en lugar de la otra, tenemos que probar que estas dos expre-
siones algebraicas definen la misma función , lo que podría hacerse tanto compa-
rando las tablas de verdad como con una manipulación algebraica. En el primer
método, las dos expresiones algebraicas de 11 vaI·iables binarias se dice que son
iguales si y sólo si tienen los mismos valores para las 2" combinaciones posibles
de las 11 variables. En el segundo método, hay que transformar una de las dos
expresiones, usando los axiomas y teoremas del álgebra booleana hasta que
ambas expresiones sean idénticas. Consideremos. por ejemplo, dos de las expre-
siones algebraicas que definen la función F I:
FI = xy + xy'Z + X'Yl
(3 .6)
FI = Ay + xz + y:
Para demostrar que estas dos expresiones son iguales, podemos red ucir la pri-
mera expres ión a la segunda de la siguiente forma:
xy + xy'z + X'Y l =xy + xyz + xy'z + x'yz por absorción
= xy + x(y + y')z + x'yz por la propiedad distributiva
=xy +xl z +x'yz por el complemento
= xy + xz + x'yz por la identidad
= xy + xvz + xz + .\J yz por absorción
= xy + x: + (x + x')yz por la propiedad distributiva
=xy +xz + 1)': por el complemento
= AY + x z + yz por la identidad
Una vez que hemos probado la equivalencia de las dos expresiones, podemos
usar la más sencilla, que requiere menos operadores. A partir de la representación
gráfica o simplemente contando los operadores, podemos ver fácilmente que
82 Principios de diseño digital
xy + xz + yz necesita sólo tres operadores ANO y dos OR en vez de los cinco ope-
radores ANO, dos OR, y dos NOT que requería la expresión xy + xy'z + x'-"z.
Entonces, como la segunda expresión requiere menos operadores, nos induce a
especular que también requerirá menos hardware cuando se implemente como cir-
cuito lógico.
)' x ,.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
I-+-+-...J
o ¡
+
+ l-~+ F
F r
(a) Expres ión AND-OR (b) E x pl'~ s ¡ ú n OR-AND
Como se puede deducir del ejemplo, es una regla general que el número de ope-
radores ANO y OR en una expresión sea igual al número de literales menos l. La
primera expresión, por ejemplo, tiene ocho literales y necesita cinco operadores
ANO y dos OR, lo que hace un total de siete; la segunda expresión. que tiene sólo
seis literales, necesita tres operadores ANO y dos OR, lo que hace IIn total de ci nco.
Entonces, sabemos que una reducción en el número de literales se:'{¡ equi valente a
una reducción en el número de operadores, así que se puede disminr.i : el número de
operadores ANO y OR reduciendo el número de literales en una expresión.
Como muestra el ejemplo visto, el número de operadores de ur a funci ón boo-
leana se puede minimizar generalmente por medio de manipulación algebraica.
Aunque desgraciadamente no hemos establecido un procedimiento a seguir que
garantice un número mínimo de operadores o literales en la expres ión. Como
resultado, los diseñadores usualmente utilizan una técnica de tanteo (ensayo-
error), empleando los di stintos axiomas, los teoremas básicos y cualquier otra
regla de manipulación que desarrollan a partir de su experi enc ia. En las secciones
siguientes, introduciremos una forma única para especificar funciones booleanas
y mostraremos cómo usarlas como punto de inicio para encontrar expresiones
funcionales más sencillas.
Álgebra booleana y diseño lógico 83
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
dad , hay también 2" mintenns para cada 11 variables. Cada uno de estos mintenns,
denotado mi' se puede expresar como producto , o término ANO. de n literales en
los que cada variable se compl ementa si el valor asignado es O, y no se comple-
menta si el valor es l . Más fonn ahnente, esto signi fica que cada minterm /1/ i se
puede definir como sigue.
Sea i = b".I ... bo un número binario entre O y 2" - 1, que represe nta una asig-
nación de valores binarios a las 11 variables binarias"r. ta les que x . = b . para todo i
donde O 5, j 5, 11 - 1. En este caso un mintenn de 11 ~ariables x"~I' X,,~2' ... , x O' s~
puede representar como:
111¡(.\"11_ 11 . 00' xo) = ).'11 - 1 . .. Yo
donde para todo k tal que O 5, J.: 5, 11 - 1,
.r¡ si b¡ =I
, -{
.v -
..\ ¡
"
si bk =O
x y z MINTERMS NOTACiÓN
O O O x'y'z' mo
O () I x'y'z m,
O I O x'yz 111 2
O I I x'yz 1113
O O xy'z' nl4
O I xy'z 1115
O xyz "'6
I xyz 1117
En la Tabla 3.9 mostramos todos los mintenn s de tres variables bi nari as . .Y, y, :.
En general , la expresión algebraica única para cualquier función bool eana se
puede obtener a paltir de su tabla de verdad usando un operador OR para combi-
nar todos los minterms para los que la función vale l. Estos minterms , se deno-
minan minterms 1, Y los otros minterms se denominan minterms O. Por ejemplo,
84 Principios de di seño di git:_i1
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
VARIABLES FUNCiÓN
NÚMERO
'DE FILA x y z F, F'1
() () O () 11 1
1 (1 () 1 O 1
2 () 1 () f) 1
3 O 1 1 I U
~ 1 O () O 1
5 1 O 1 1 O
6 O I f)
7 1 I 1)
SOLUCiÓN
Esta fun ción tiene tre ~ vari ables: x, y, : . Al prim er términ o. x, le faltan dos variabl es. mien-
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Lrn s que al segundo término. y:::. le falta una. Entonces. necesitamos expandir el primer tér-
mino apli ca ndo la operación AND con (y + /)(::; + ;::'). y ex pand ir el seg undo co n (x + Xl).
En otras palabras.
r .'
F=x + y:.
; xl\' + v') (: + : ') + (x + x')y:
= xy: + xy'::; + xy.::' + .\)1';:' + xy::: + x /y::
Después de el iminar los duplicados. de ac uerd o con el Teorema 1, Y reo rdenando los
min tenn s en orden ascendente. obtenemos fin almente
F ;: .(v.:: + xy':::' + xy'::: + xy:::' + .\)':
= I1IJ + 1114 + 1115 + 1116 + 1117
; 1:(3. 4, 5. 6. 7)
term, M;, se puede expresar como una suma, o término OR, de n literales en la que
cada variable no estaría complementada si el valor asignado es 0, y estaría com-
plementada si su valor es 1. En la Tabla 3.11 hay una lista de ocho maxterms para
tres variables, junto con su notación simbólica. Para cualquier número de varia-
bles, los maxterms se pueden determinar de manera similar. Obsérvese que cada
maxterm es el complemento de su correspondiente minterm, y viceversa, así que
11'1/:::: Mi y M¡' = nl¡
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
en la Ecuación (3.7), obtenemos la siguiente función FI':
(F I )' = (x'yz + xy'z + xy;:' + xyz)'
= (x + y' + z')(x' + y + z')(x' + y' + z)(x' + y' + z')
= M3M SM 6M 7
De forma similar, complementando la expresión dada en la Ecuación (3.8),
obtenemos la siguiente función F I :
FI = (F'I)'
:::: (x'y'z' + x'y'z + x'yz' + xyzT
= (x + y + z)(x + y + z')(x + y' + z)(x' + v' + z)
= MoMIM2M 4
TABLA 3.10 Tabla de verdad de TABLA 3.11 Maxterms para tres variables binarias
F ; x+ yz
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
formas canónicas, podemos dar un procedimiento general que sería como sigue:
Para pasar de una forma canónica a otra, se intercambian los símbolos L
y n, y se listan los números que estaban excluidos de la forma original.
Los ténninos que faltan se pueden encontrar fácilmente, ya que cada función boo-
leana de 11 variables tendrá 2" mintenns y 2" maxtenns, numerados del O al 2" - l.
Como regla, cualquier expresión booleana de n variables binarias se puede
convertir en un producto de maxtenns. Para ello, primero hay que convertir la
expresión booleana en una forma que use ténninos OR, lo que se hace usando la
ley di stributiva, x + yz = (x + y)(x + z) . En este momento, cualquier término OR
al que le falte una variable, como x, se expande aplicando la función OR con xx'.
por ejemplo. Este procedimiento se clarifica con el siguiente ejemplo.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
PROBLEMA
x y z F
O O O I
O O 1 I
O 1 O O
O 1 1 O
1 O O O
O 1 1
1 O O
1 1 1
Álgebra booleana y diseño lógico 89
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
/1 - I operaciones. Hay dos tipos de formas estándar, la suma de productos y el
producto de sumas. Como antes. la suma de productos se podría definir como
una expresión booleana que contiene términos ANO, denominados términos pro-
ducto o implican tes, incluyendo uno o más literales. La suma denota la aplica-
ción dcl operador OR a esos términos. Un ejemplo de una función expresada
como suma de productos es
F I = xy + x'yz + xy'z
Obsérvese que esta expresión tiene tres términos producto, conteniendo cada
uno de ellos dos o tres litera les.
Por otra parle, una expresión de. producto de sumas es una expresión ANO
que contiene términos OR, denominados términos suma o implicados, donde el
producto denota la aplicación del operador ANO a esos términos. Cada término
de la suma puede tcncr cualquier número de literales , y el producto puede tener
cualquier número de términos suma. Un eje mplo de una función expresada como
producto de sumas es
F' I = (.\"' + y') . (x + y' + z') . (..r' + y + z')
Obsérvese que la expresión tiene tres términos suma con dos o tres literales
cada uno.
Estas formas de su ma de productos y productos de sumas normalizadas no son
únicas. en el sentido de que puede haber varias sumas de productos y productos
de sumas distintas para una función dada. Sin embargo, aunque estas fonnas nor-
malizadas no son únicas, son útiles porque contienen menos operadores que las
formas canónicas. Estas formas nonnalizadas se obtienen de las formas canlÍni-
caso combi nando los términos que difieren en un literal, usando los axiomas del
álgebra booleana.
Por ejemplo, la expresión xyz + XK' podría reducirse a xy de la siguiente
forma:
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
EJEMPLO 3.5 Fonna normalizada
PROBLEMA
Obtener una fonna nomlalizada con un número reducido de operadores para la función
Fl = XYZ + xyz' + xy'z + x'yz.
SOLUCIÓN
Como puede ver el lector, el ténnino .x)'z se puede combinar con los témlinos segundo. ter-
cero y cuarto de esta expresión. Por tanto lo podemos replicar dos veces antes de combi-
narlo con otros términos:
F I = .xyz + xy¡' + xy'z + x'yz
= .9'2 + xyz' + .\)'z + .\)" z + .\)': +x'y:
= .\)'(Z + Z') + x(y + y')Z + (x + x')yz
= -'y + xz + yz
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
SOLUCIÓN
Hay tres fomlas no normalizadas de la función F , que requieran menos operadores: cada
una de ellas requiere dos AND y dos OR, en comparación con las tres AND y las dos OR
de la forma nonnali zHda.
F, = -\)' + xz + yz
= x)' + (x + y)z
=x(v+ z)+Y<
=xz + y(x + z)
Expresión algebraica
...
Expandir u una tabla
de verdad
~ Tabla de verdad
Generar una forma canónica
¡ Forma canóni ca
Encontrar subcubos
funcionales
i Forma nonnalizada
Fac(orizar subcxpresiones
Forma no normalizada
Como hemos mostrado en esta sección, podemos usar varias estrategias para
reducir el número de operadores de la expresión booleana, y todos ellos se pue-
den combinar constituyendo la estrategia de diseño mostrada en la Figura 3.2.
92 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Anteriormente, hemos tratado sólo con dos funciones booleanas de dos variables.
AND y ORo Sin embargo, como mostramos en la Sección 3.6, hay 2 2" funciones
booleanas para n variables binarias cualesquiera, lo que significa que habrá un
total de 16 funciones booleanas para dos variables. Puesto que las funciones AND
y OR son sólo dos de las 16 funciones booleanas posibles. en esta secc ión defini-
remos las otras 14 funcione s de dos variables.
En la Tabla 3.13 se dan las 16 funciones de dos variables binarias. .r e V. Cada
fila de esta tabla representa una función posible de estas dos variables. y los nom-
bres de estas funciones se dan en la primera columna de la tabla. Las tablas de ver-
dad de las 16 funciones se presentan en la tercera columna de la tabla . Como cada
una de estas funciones se puede expresar también algebraicamente, damos las
correspondientes expresiones booleanas en la cuarta columna de la tabla.
Obsérvese que cada función se ha denominado F¡, donde i es el equivalente deci-
mal que se puede obtener interpretando como números binarios los valores de la
función que aparecen en la tercera columna.
Como el lector sabe, cada una de estas funciones se. puede dar en forma nor-
malizada usando los operadores AND. OR Y NOT. Como no hay moti vos por los
que no podamos asignar un símbolo espec ial de operador a cada función, cada
función se puede representar también mediante el símbolo del operador que se
li sta en la segunda columna de la tabla. Sin embargo. como regla. con la excep-
ción del símbolo XOR, estos símbolos no los usan normalmente los di se ñadores.
Finalmente, la última columna contiene la descripción en español que explica
cada una de las 16 funciones.
Como puede deducirse a partir de los comentarios. las 16 funciones listadas
se pueden subdividir en tres categorías de acuerdo con el número de variables que
en ese momento influyan en el valor de la función :
1. Hay dos funciones que generan constantes: cero y 11110 . Para cada combi-
nación de los valores de las variables, la función cero dará O. mientras que
la funci ón UtlO dará l.
2, Hay cuatro funciones de una variable que indican operaciones de CO/ II-
plemento y transferencia. Concretamente. la función cOIII/J/elllellto pro-
ducirá el complemento de una de las variables binarias. La función trans-
feren cia, sin embargo, reproduce una de las variables binarias en la sali-
da, así que la variable atraviesa la lógica (o se transtiere a la salida) sin
cambiar su valor.
Á lgeb ra booleana y di ~eño lógico 93
VALORES DE LA
SíMBOLO DEL FUNCiÓN PARA EXPRESiÓN
NOMBRE COMENTAR IO
OPERADOR x, y = ALGEBRAICA
00 01 10 11
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Transfe renc ia () O I I F~ = .r r
Inhibi ción y/x O O O F~ = x/r y pero no .:r
Transfe renc ia () () I F" = Y r
XOR xEBy O I O F~ = xy' + x'y .r Ó y pero no ambas
OR x + \" O I I I F7 = x + y xóy
NOR x .l.) I O O O F ",, =(x+y)' OR no
Equivalencia xOy O O I Fl) = xy + x'y' x igual a y
Co mplemento y' O I O F IO= )"' y no
Impli cac ión xey O I I FI 1= x+y' si y, entonces x
Complemento .r' O O FI ~ = .r' x no
Impli cac ió n X =:J \' O I Fu = x' + y si x, ento nces .r
NAN O x ji· O 1'" = (xyl' ANO no
Uno I 1'" = I Constante binaria J
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
En las secciones an teri ores se ha descrito cómo representar funciones booleanas
y cómo obtener expresiones para calcu lar valores de func iones. Para implemen-
tar una de estas expresiones booleanas, construimos una red lógica o circuito
lógico en el que se usan las variables de la expresión como entradas a la red
lógica, que contiene una o más puertas lógicas. Cada puerta lógica rea li za una
o más operaciones booleanas que hemos definido en secciones anteriores. La
colección de puertas lógicas que usamos para construir redes lógicas se deno-
mina bibljoteca de puertas, y las puertas de biblioteca se denominan puertas
normalizadas. Aunque cada operador booleano se puede implementar con una
puerta lógica e incluirse en la biblioteca de puertas, las bibliotecas de puertas
modernas rara vez incluyen más de una docena de puertas distintas para dismi-
nuir el costo del mantenimiento de la biblioteca y simplifi car el desarrollo de
herramientas CAD para diseño lógico. Antes de seleccionar qué operadores se
vao a incluir en la biblioteca de puertas, generalmente consideramos los
siguientes criteri os:
l. La frecuencia de su uso en diseños lógicos típicos, definida como su capa-
cidad para implementar una serie de funciones booleanas junto con otras
pueltas.
2. La ampliabilidad del operador a más de dos variables, lo que requiere que
sea conm utati vo y asociativo.
3. La sencillez de construcción definida por el número de transistores que se
necesitan para su construcción y el tiempo que se necesita para que el
cambio de la señal se propague a través de la puerta.
En base a este criterio, generalmente se seleccionan ocho operadores que se
van a utilizar en la implementación como puertas normalizadas. que son , los ope-
radores Complemel/to, Transferencia , AND, OR, NAND , NOR, XOR , Y XNOR.
Los diseñadores de lógica frecuentemente denominan al operador Complemento.
operador Inversor o NOT, y al operador Transferencia, Adaptador (driver) ya que
se usa para excitar grandes cargas y líneas de conexión largas.
En la Tabla 3.14, mostramos los símbolos gráficos y expresiones booleanas de
cada una de estas ocho puertas. Obsérvese que cada puerta tiene una o dos entra-
das binarias, designadas por x y/ó y, y una salida binaria, denominada F. Como el
lector puede ver, la Tabla 3.14 también muestra el costo de cada puerta en función
del número de transistores que se necesitarían para su construcción con tecnolo-
Álgebra booleana y di seño lógico 95
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Como mencionamos anteriormente, las puertas ANO y OR se usan para
implementar los operadores binarios ANO y OR, mientras que las puertas NANO
y NOR se usan para implementar las func iones complemento de ANO y OR o
Como puede verse, hay un pequeño círculo en cada una de estas sa lidas que indi-
ca su complemento . Entre los diseñadores de lógica, estas puertas NANO y NOR
se usan ampli amente y son más comunes que las puertas ANO y OR, sencilla-
mente porque su implementación requiere sólo cuatro transistores, en compara-
ción con las puertas ANO y OR q ue req ui eren seis transistores. Además, como
utilizan menos transistores , las pueltas NANO y OR son más rápidas que las
correspondientes pueltas ANO y ORo
AND
: jJ-F F= X)' 6 2,4
NAND
:---C>-F F= (.'y)' 4 lA
NOR
::=L>-F F= (x + y)' 4 1,4
XOR
;. ~D-F F= xEB y 14 4,2
XNOR
; ~D-F F=xGy 12 3,2
96 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
mente se especitica en nanosegundos (ns). Muy frecuentemente , nuestro principal
objetivo será encontrar el diseño menos caro. Debido a su naturaleza. estos dos
objeti vos tienden a estar en contlicto, ya que un diseño más rápido normalmente
evalúa subexpresiones en paralelo, lo que significa que requerirá más puertas que
un diseño con un costo menor en el que las expresiones se factor izan y ejecutan
en sene.
En el siguiente ejemplo, mostraremos varios de los distintos compromisos de
diseño en la realización de un sumador completo.
e, + I = x/, + t)x,- + y)
:;: ((.\'í.\ )'((I\ + y¡Jr)'
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
s, = (Xi tB _,)(" , + (x¡O-,,¡)L'¡
= C\} ::)y)'e'¡ + (x¡0 Y¡)C j
= (\ 0 .' ) OC,
Además. w1llhi é n pode mos imp le mentar \ 0 .", con Jo s puertas NAN O y una OR:
\ 0 .", = \ \ + .\"'/',
= ((.\",..,-/(.r',."' ;)')'
= ((x,y )'C\ + y , ))'
U~ <l11(jn es ta s exp res io nes. pudc mu s implementar un s umador co mpleto m ás rúpi-
du C0l110 SL: ve e n la Fi g urJ 3.3(c) . Ohsér\'e se que es te s umador tarda só lo ::!. 8 Il S de
el a e H 1, e ll co mpara ción CO Il los 4.8 n s del diseño anterior. La imp lcme nta c ión se ría
tam hién mc nu s carel. ya que usa só lo 36 tran sis torcs e n lug ar de lu s -l 8 que' nec e s ita
e l o tro.
A pa rtir dcl Ej e mplo 3.7. pocle mos generalizar y dec ir que inlc nlar mlnlml -
la r el nllmero de operadores no da neces ariamcnl e e l di sc fío más rápido ni lam-
poco clme nos caro . pero s i inlcnlamo s cnconlrar la ex pre s ión que use las pucr-
la.s m.b rúpidas o mc nos cara s de la bibliOlec a. puede qu e co nsig amos los objc-
ti ' ·os.
x, + Y, + el Ci+ l s,
() O O il ()
() U I O I
() I O () I
O I I 1 O
I () O O I
I O I ()
I () ()
I I I
98 Principios de diseño di gital
ENTRADNSALlDA RETARDOS
PATH (ns)
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
\--t--.---- 'i
4.8
el a el + I
, ,
c a .\' .1.2
XI'}' a cl -t I 9.0
\. Y, a si X..l
1+-+-----,- (o¡
ENTRADNSALlDA RETARDOS
PATH (ns)
CI a e, -t I 2"~
e, as ,. 3.8
.\ .,.", a c,-t I 5.2
xl"."1 a.\ 7.2
(L' ) D is~iiú 1.:011 puerta:-. (d) R l' l a rd u~ El1lrada/ S"hda p;lr;¡ d dl"l.:iill
NAN]) y 01< dd <tp;lrladu k)
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
puerta en cualquier orden. Como las operaciones ANO y OR poseen estas dos
propiedades por definición de álgebra booleana, son muy fáci les de ampli ar.
Sin embargo, las funciones NANO y NOR son conmutativas pero no asocia-
tivas. Pero es posible pensar en funciones NANO y NOR de vari as entradas como
complementos de las funciones múltiples ANO y OR respectivamente. Así las
funcione s NANO y NOR múltiples se definen de la fomla siguiente:
NANO(x. y, z, ... ) = (xyz .. .)' >'x ¡y i z i ...
NOR(x. y, z• ... ) = (x + y + z + ... )' >' x J, y J, : J, ...
Como las puertas XOR y XNOR son ambas conmutati vas y asociati vas. se
pueden ampliar a más de dos entradas. En otras palabras, cualquier puerta de la
Tabla 3.14, excepto el inversor y el adaptador, se pueden ampliar a más de dos
entradas.
Por otra parte, usualmente no se hacen puertas XOR y XNOR de varias entra-
das ya que la mayoría de las funciones lógicas en diseño digital, con la excepción
de las funciones de paridad, se pueden diseñar usando puertas XOR y XNOR de
sólo dos entradas. Además, incluso estas puertas XOR y XNOR de dos entradas
se construyen a partir de puertas NANO, NOR y NOT para simplificar la biblio-
teca de puertas.
Por tanto, las bibliotecas más amplias deberían tener puertas NANO, NOR,
AND y OR de 3 o 4 entradas cada una. Se pueden construir puertas con un
número mayor de entradas, pero son más difíciles de hacer y como se usan
menos. el coste de la bibli oteca y del mantenimiento de las herramientas CAD
tiende a considerarse más re levante que su limitado uso. Por estos moti vos se
han incluido sólo puertas de 3 y 4 entradas en nuestra amp liación de la biblio-
teca. Los símbolos gráficos de estas puertas ANO, OR , NANO , Y NOR de 3 y
4 entradas se muestran en la Tabla 3.15, con sus correspondientes expresiones
de costo y retardo.
Hay otra forma de mejorar las prestaciones y el coste de la implementación de
funciones booleanas, pero implica ampliar la biblioteca para incluir puertas que
puedan realizar más de una operación booleana. Ya que en muchos casos las fun-
ciones booleanas, se implementan usando la forma normalizada de suma de pro-
ductos o producto de sumas, es por ejemplo beneficioso tener puertas nOrnlaliza-
das que puedan implementar estas formas efic ientemente. Como se muestra en la
Tabla 3. 16, estas puertas de varios operadores se denominan INVERSORES
ANO-OR (AOI) y puert.as fNVERSORAS OR-ANO (OAD. Usando estas puer-
100 Principios de diseño digita l
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
COSTE (NÚMERO
NOMBRE SíMBOLO EXPRESiÓN RETARDO DE
DE PUERTA (ns)
GRÁFICO FUNCIONAL TRANSISTORES)
AND de 3 entradas
'=C)-
~. F
F = xy.<: 8 2,8
AND de 4 entradas
f I
}-F F = xy;:w 10 3,2
OR de 3 entradas '::::::1)-
~. F F=x+y+ z 8 2.8
NOR de 3 entradas
~ ) ?-F F = (x+ y +:J' 8 1,8
r===# ?-F
NOR de 4 entradas F = (x + y + : + 11')' JO 2,2
Las puertas que tienen varias entradas y pueden reali zar varias operaciones se
denominan frecuenteme nte puertas complejas. En los sig ui entes dos eje mplos
mostraremos su utilidad .
Implementar el sumador compl eto del Ejemplo 3.7 usando las puertas adecuadas de varias
entradas mostradas en la Tabla 3. 15 .
Á lge bra booleana y di se ño lóg ico 101
SOLUCIÓN
Para lIsar pue rta s de va ria s e ntradas. necesitamos partir de In forma normali zada. concreta-
ment e de un a con e l menor número pos ible de operadores. que nos perm ita minimi zar el
cos te . Ade más, inte ntarem os usar las puertas más rápidas de la biblioteca, para o btene r el
menor re ta rdo posible. Usualme nte. las puert as más ráp idas de. la biblioteca son las pucI1as
NAN D y NO R, así que pa ra usarlas a plicare mos los teore mas de De Morgan hasta que
hayamos convertido la fo rm a normali zada selecc ionada e n un a ex presión co n operadores
NAN D o NOR .
En e l caso de l sum ador co mpl eto . modificamos la ex pres ión de ('''+ 1 y Si de la sigui e nte
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
forma:
COSTE
SíMBOLO EXPRESiÓN (NÚMERO DE RETARDO DE
NOMBRE
GRÁFICO FUNCIONAL TRANSISTORES) PUERTA (ns)
AO I
2 de ancho
2 ent radas "B=>-
x
y
z
F F; ( II'X + y:l' 8 2.0
102 Principios de di seño digital
y
:" ¡ = X'¡yl¡C¡ + x'¡y¡c'¡ + xii¡e'¡ + X¡Y¡C ¡
= «x'¡y'¡c;Y(..r' ¡YiC' yex¡.Y't' )'(x¡y¡c¡))'
En la Figura 3.4(a) ilustramos una implementación obtenida a partir de estas ex presio-
nes modificadas. Como se puede ver, el retardo de cualquier salida Si es sólo 5,0 ns, y de
ci• I es sólo 3,2 ns. Sin embargo, desgrac iadamente. el diseño requiere 56 transistores para
su implementación lo que probablemente se reduciría usando puertas de varios operadores .
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
ENTRADA/SALIDA RETARDOS
PATH Ins)
e¡ a C¡ + 1 3,2
el a Si 5,0
Xi' Yi a e¡ + I 4,2
Xi' Yi a Si 5.0
(al Di seño con pucnas de varios operadores (b) Retardos Entrada/Sal ida para el diseño
del aparlado (a)
FIGURA 3.4 Diseño del sumador completo con puertas de varias entradas.
Implementar el sumador completo usando las puertas apropiadas de varios operadores que
se muestran en la Tabla 3. l 6.
SOLUCiÓN
Cuando se usan puertas de varios operadores podemos empezar transformando las expre-
siones funcionales en subexpresiones AOl y OlA. Como la expresión de la suma si tiene
cuatro términos AND de tres literales cada uno, la mejor elección para su implementación
sería una puerta AOI de 3 entradas y 4 ni veles. Sin embargo, como no tenemos este tipo de
puerta en nuestra biblioteca, podemos implementar mejor el sumador usando dos puertas
AOI de 3 entradas y 2 ni veles junto con una puel1a NAND, como se muestra a continua-
ción:
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
En los Ejemplos 3.7. 3.8 Y 3.9. hemos ilustrado la manipulación algebraica de
expresiones boo leanas para implementarl as con vari os tipos de puertas. Como
hemos visto, en un principio no es obvio qué tipos de puett as darán el mejor dise-
ño. Normalmente. hay que probar disti ntas alternati vas hasta encontrar la mejor
solución. En el Capítulo 4. veremos procedimientos sistemáticos para implemen-
tar funciones booleanas y optimi zar esas implementaciones para disti ntas biblio-
tecas.
ENTRADA/SALIDA RETARDOS
PATH Ins)
C;a ej + I 3,4
c¡ a Si 4,4
X¡'Yi a ej. I 3,4
x¡.y¡as¡ 4,4
Si
lu) Oiseiio con puertas uc vados operadores (b) Retardos Enlrada/Salidü para el diseño
de l apartado (a)
FIGURA 3.5 Diseño del sumador completo con puertas de varios operadores.
caros. Sin embargo. con los avances de la tecno logía de sem icond uctores. la fabri-
cación de transistores se volv ió sencilla y barata. así que las puertas actuales se
constru yen exc lusi vamente con tran sistores.
La forma de conectar los tran sistores ca racte ri za cada familia lógica o hihlio-
teca y le da un nombre es pecífico. Antes de d iscutir las bases de las famili as lóg i-
cas básicas definiremos varias medidas que se pueden usar para comparar las dis-
tin tas famil ias.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
3.10.1. Niveles lógicos
Las impl ementacio nes de puertas son ci rcuitos e lectrónicos cuyo comportamicnto
se puede ex pli cur muy hien en térmi nos de ni vel es de tensión. medidos en vo lt ios
(Y). y no necesariamentc en términos de los va lores booleanos () y l . Sin e mbar-
go. para adaptarse a estos valores booleanos. los ci rcu itos de puertas se di seiian de
forma que sólo se pueden dar dos ni ve les de tensión. alto (lf) y bajo (L). para un
estado concreto de las entradas y salidas. Por consiguiente. la función booleana
realizada por tal ci rc uito de pucl1a depende de la interpretac ión de los ni "e les de
tensión H y L. o en otras palahras. de la correspondencia ent re O y I Y los ni veles
de tensión H y L. Esta correspondencia se puede reali zar de dos formas diferentes.
dando lugar a dos sistemas lógicos diferen tes: pos iti vo y negativo.
(a) CUJ11¡:lIJ rlami l'llln de la pUl'lta I h, ~AND l '!)" lú!-'II:¡¡ PP'I II V.1 fl.:) :"!()I{ "nn Itl~h." l lll' gllll\,'
FIGURA 3.6 Interpretación del circui to cuya salida es L sólo cuando ambas entradas son H.
FIGURA 3.7 Interpretación del circuito cuya sal ida es L siempre que una de las entradas es H
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
triángulo como indicador de polaridad de lógica negativa en las líneas de señal de
entrada o de salida con·espondientes. La presencia de este indicador de polaridad
significa que se ha supuesto lógica negativa para los valores de tensión de una
señal concreta. Usando los indicadores de polaridad, podemos mezclar valores de
lógica positi va y negativa como se muestra en la Tabla 3.7.
La mezcla de ni veles lógicos se hacía frecuentemente en el pasado cuando los
diseñadores mezclaban puertas de distintas familias lógicas en la misma tarjeta.
Desde que aproximadamente a partir de la década pasada, todos los lC (Il/regrared
Circuirs, circuitos integrados) nuevos se hacen con la familia lógica CMOS, que
usa lógica positi va. la lógica negativa ha perdido el apoyo de los diseñadores. así
que las herramientas CAD modernas usan predominantemente la lógica positi va.
Por este motivo sólo usaremos lógica positiva a lo largo del libro.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
tir de la tensión característica de entrada/salida que se mide bajo di stintas condi-
ciones de operatividad y se da en la documentación de la puerta. Esta caracterís-
tica de entrada/salida se muestra en la Figura 3.8 para la famj lia lógica transistor-
transistor, en donde se representa la tensión de salida Vo frente a la tens ión de
entrada VI'
~ .O
3.5 - .,
3.0 ~ "
,.0
~ 2.5
1--
'\.
:;!
~ r -I~ ,
~ 2.0 I
.§
:, ,
.~ 1.5 I
~
1.0
\
0.5
:
I
1
, 1-- ... - .. - - -
I
0.5 1.0 1.5 2.0 2.5 ~.O 3.5 -l .O
Tensión de entrada vI
FIGURA 3.8 Característica de entrada/salida típica de las puertas en la familia 16gica transis-
tor·translstor.
Para determinar los márgenes de ruido, debemos comparar la salida y los ran-
gos de tensión de salida de las puertas de la misma familia, como se muestra en
la Figura 3.9, en la que vemos el rango de tensión de salida de una puerta excita-
dora, en la parte izquierda, y el rango de tensión de entrada de las puertas excita-
das, en la parte derecha.
Cualquier tensión entre VOH y Vcc se considera H y cualquier tensión entre O
y V OL se considera L. De forma similar, cualqui er tensión entre V'H y Vce se con-
sidera H y cualquier tensión entre O y VIL se considera L.
La diferencia de tensión V OH - V'H se denontina margen de ruido del nivel alto.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
ya que cualquier tensión de ruido menor de V OH - V'H será tolerada y no cambia-
rá el valor de salida de la puerta excitada. Con el mismo razonamiento, la dife-
rencia de tensión VIL - V OL se denomina margen de ruido del nivel bajo. En el
ejemplo de la lógica transistor-transistor, V OH = 2.4, V'H = 2.0, VIL = 0.8 Y
VOL = 0.4, Y ambos márgenes de ruido, alto y bajo, son iguales a 0.4 V. En otras
palabras. cualquier ruido menor de 0.4 V no influirá en el funcionamiento de la
puelta. Tajes márgenes de ruido, que no se dan en circuitos analógicos , hacen los
diseños digitales más fiables que los analógicos.
H H
:::,eode
rui aI!o
M.u¡endc
ruido bo,jo
L L
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
salida de la siguiente forma:
Conectividad de salida = max (/0 11"/11' I OL "/L)
Por tanto, la conectividad de salida es igual a max (400/40. 16/1.6) = 10. Esto
significa que cada pUet1a puede excitar a otras 10 puertas de la mi sma familia sin
salirse del rango de garantía de funcionamiento. En el caso en que estén conecta-
das más de 10 puertas a la salida de una sola puerta, los ni veles de tensión de sali-
da se degradarán y la puerta irá más despacio.
Las familia s lógicas modernas metal-óxido-semiconductor (MOS ) tienen una
conectividad de salida de alrededor de 50. ya que cada puerta debe dar o rec ibir
cOlTi ente sólo durante la transición de H a L ó de L a H .
Álgebra booleana y diseño lógico 109
Cada puerta está conectada a la fuente de alimentación Vcc y utiliza cierta canti-
dad de corriente durante su funcionamiento. Como cada puerta puede estar en
estado alto, en transici ón o en estado bajo, podemos distinguir tres corrientes dis-
tintas proporcionadas por la fuen te de alimentación: l CCH' I ccTY l ea' En las anti-
guas familias lógicas como TIL, la transición de corriente l cer es despreciable en
comparación con ' CCH e ' ecL" Suponiendo que la puerta permanece un tiempo
aproltimadamente igual en los estados alto y bajo, y no está apenas en el estado
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
de transición , y la corriente media es igual a (lCCN + ' ca)/2. Se puede calcu lar la
disipación de potencia media como el producto de la corriente media por la ten-
sión de la fuente de alimentación. En otras palabras,
Pmedia = Vce x (1cc + ' cCL)/2
El retardo de propagación de cada puerta de las Tablas 3.12 a 3.1 4 se define como
el tiempo medio necesario para que el cambio de la entrada se propague a la sal i-
da. Este retardo de propagación se mide usualmente en nanosegundos (n5) que es
igual a 10- 9 segundos. Este retardo de propagación se puede obtener a partir de las
formas de onda de sali da y entrada de la puerta, como se ilustra en la Figura 3.1 1.
A partir de la figura se puede observar lo siguiente:
110 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
el retardo de propagación de Ha L, tPHL Y el retardo de propagación de L a H. (PUl'
El (PHL es el tiempo necesario para que la señal de salida alcance el 50% de su valor
nominal en transición de H a L después de que la señal de entrada alcance el 50%
de su valor nominal. El t pLH se define de forma similar. El retardo de propagación,
(p' se puede definir como el valor medio de t pHL y t pLH ' Por tanto
TIempo Tiempo
de subida de bajada
~;
. ..
Entrada :
.,r--:--:-:--:-:--:-.,....;,...,.
. ...,." "". . . . . . . 90%
Salida
---- 50%
10%
tPHL
¡ 1( • •
Por ejemplo, los retardos de propagación máxjmos para las puertas NAND de
2 entradas en la farnjlia TIL son t pHL = 22 ns y IpLH = 15 ns, con un retardo medio
t p = 18.5 ns. En el pasado, estos valores de retardo máximo se usaban en el dise-
ño, ya que las distintas puertas procedian de distintos fabricantes y no había
garantías de que todas las puertas lentas no aparecieran en el mismo camino crí-
tico de la entrada a la salida. Actualmente, todas las puertas se fabrican a la vez
en un microchip, así que las variaciones de fabricación se aplican por igual a todas
ellas. En este caso, cada retardo de entrada a salida cambia proporcionalmente y
todo el IC va más rápido o más lento dependiendo de las variaciones en la fabri-
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
cación. Los IC más lentos se venden a menor precio y los rápidos a mayor precio.
Por este motivo, los diseñadores de hoy día usan el retardo nominal en vez de los
retardos máximos.
ColCClor Colector
Base Base
L H --===---i
Emisor Emisor
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
(a) Tensión baja en la base (b) Tensión alta en la base
Como se muestra en la Figura 3.13, una puerta TIL típica consta de tres paJtcs:
la lógica de puerta, un divisor de fase y una etapa de salida con una disposición
denominada totem-pole. La lógica de entrada realiza la función booleana que se
necesite, mientras que el divisor de fase proporciona dos señales de polaridad
opuesta para excitar los dos transistores de salida, que no están ni abiertos ni cerra-
dos a la vez, excepto durante las transiciones. Estos dos transistores, usualmente
denominados transistores de subida (plIll-up) y de bajada (pl/II-dow/l). alternan
sus estados cerrándose alternativamente. Cuando el transi stor de subida está cerra-
do el de bajada está abierto, la salida de la puelta sube a H y la puerta cede la
corriente 1H" Por otra parte, cuando el transistor de subida está abierto y el de baja-
da está cerrado, la salida de puerta baja a L y la puerta capta la corriente 1L"
Etapa
de
salida
Lógica Divisor
Enlradas de la Sulída
de fase
pucna
GND
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
R
u' _ r -........
F F = (wx+y 7.)'
FIGURA 3.14 ADN cableada de dos puertas de colector abierto en la familia lógica TTL.
FAMIUA
NúMERO N\Ja) NúMERo MARGeN CONECTI- DISIPACIÓN
RETARDO
DE DE DE DE VIDAD DE
LÓGICA (ns)
RESISTENCIAS DIODOS TRANSISTORES RUIDO DESAUDA POTENCIA
RTL 3 2 0,4 5 20 25
DTL 4 3 2 1,0 8 12 30
TTL 4 1 5 0,4 10 10 9
Schottky TTL 5 2 7 0,4 10 19 3
ECL 8 2 6 0, 15 25 25 2
CMOS 4 0,5 30-50 0,1-0,3 1
En los estados alto y bajo, la salida totem-pole actúa como antes, mientras
que en el estado de alta impedancia ambos transistores están abiertos y la salida
de la puerta se desconecta eléctricamente del bus. La salida tri-estado se necesi-
ta para controlar buses grandes con muchos controladores ya que las puertas
ANO cableadas sólo se pueden usar con buses pequeños en los que pocas puer-
114 Principios de diseño digital
tas controlan el bus. La puerta AND cableada está limitada a buses pequeños
debido a la falta de corriente a través del transistor de bajada cuando está abier-
to. Si hay demasiadas puertas cableadas juntas, la suma de todas las pérdidas de
corriente puede ser suficientemente grande como para disminuir H en el bus
hasta un rango inaceptable.
Como la lógica TIL fue la familia lógica dominante en los 70 y 80, se comer-
cializaron muchas variaciones de la familia básica para aplicaciones de baja
potencia y alta velocidad. En las versiones de baja potencia, el consumo de poten-
cia se redujo a expensas de la velocidad, y en las variantes de altas prestaciones,
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
el retardo se redujo a base de incrementar la disipación de potencia. Una de las
versiones TIL fue la Schottky TIL, que usaba transistores especiales denomina-
dos como uno de los inventores del transistor (Schottky).
Para aplicaciones de velocidad realmente alta, tales como supercomputadores
y comunicaciones, los diseñadores usaban una familia bipolar denominada lógica
de emisor acoplado (ECL, emitter-collpled-logic) . La familia ECL ofreCÍa la
mayor velocidad de todas las familias, reduciendo el tiempo de conmutación de
los transistores de H a L, y viceversa. En la Tabla 3.18 se comparan los principa-
les parámetros lógicos de las distintas familias lógicas.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Drcnador Drenador
Puerta Puerta
FuenlC Fuente
x T, T, F
F
L on off H
H off 0 11 L
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
In \CNlr
T,
x y T, T, T3 T4 F
-:- GND
x y T, T, T3 T4 F
L L on on off off If
L H 0 11 off off 0 11 L
If L off on on ofT L
H H off off On on L
-:- G~IJ
k) Puer1a NOR
pUCJ1a. es la famili a lógica con mayo r dcn sidad. que se mide cn númcro de puer-
tas por árca de sili c io . Además. como e l dióxido de s ilicio es mu y !-luen ai slante.
e l terminal de puerta está mu y bi e n aislado de la fu cntc y de l drcnador y pur tanto
los trans istores CMOS dan corriente só lo durante la transición de H a L y la reci-
Álgebra booleana y diseño lógico 117
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
ces en las técnicas de fabricación, hoy se pueden fabricar transistores CMOS de
aproximadamente l micra (micrómetro) de ancho, con retardos inferiores a I ns.
La lóg ica CMOS, con estos transistores pequeños, también sobrepasa a la lógica
bipolar en velocidad. como se puede ver en la Tabla 3.18. Por estos motivos, la
CMOS se ha convertido en la familia lógica dominante de los 90 y con las reduc-
ciones en los tamaños del transistor en el rango de las submicras, es probable que
no tenga competidores en un futuro próximo.
0.785
@@)@@@®®
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
,,0.280.
.020 -+11-'--
~
0,070 Pl cclIHndo
de CrIStal
f~~ Plano de
Asentanucnto
l"~ ~KIW\Mr
t-lI .¡ r- CI,I}30
FIGURA 3.17 EnCapsulado de cerámica con 14 coneclores (ladas las dimensiones lineales se
dan en pulgadas) .
altas prestaciones que pueden realizar una sola tarea de forma muy eficiente y
adaptarla para ciertas aplicaciones. Actualmente, los componentes VLSI son los
únicos componentes en uso, ya que los componentes SSI, MSI y LSI que predo-
minaron en los años 70 y 80, hoy en día sólo están disponibles para reemplazar
piezas de equipos antiguos.
14 Ver
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
a
:-B
(iND ru~
7~______~~~
s
(a) 7400 (b) 7404
[JJ==s(~--TII]
4 "cc
2
GND ~ __________ ~
(iND 12.l_ _.!::::=:::!.!.I
(¡;) 7420 (d) 7430
A ~~
B .J2l.)
C~
Elltrada
p'"
D l!.!l..¡
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Entrada
de datos
~ ~:i~)~ Entrada
impar
G-+kh
HJ3l...¡
Entrada (4)
impar ~~----------------~
Entrada -,-,
(3"-
) _ _ _ _ _ _ _ _ _ _ _ _--'
p'"
FIGURA 3.19 Encapsulado de cerámica con 14 conectores (todas las dimensiones lineales se
dan en pulgadas).
Los chips VLSI que se usan en la mayoría de los diseños son de tres tipos:
diseños a medida, casi a medida o programables. En la aproximación a medida
(clIstom approach), los chips VLSI, o algunas de sus partes se diseñan a mano. así
que cada transistor y cada cable se definen individualmente mediante un conjun-
to de polígonos que se usan para generar las máscaras fotográficas necesarias en
el proceso de fabricación. Como el diseño a mano es muy tedioso, se han desa-
!Tallado metodologías de diseño de celdas para acortar el tiempo de diseño per-
mitiendo el uso de celdas estándar (standa rd cells) o componentes prediseñados,
como bloques de construcción, a partir de los que se pueden construir circuitos
muy grandes.
Como regla general, cada celda estándar contiene una única puerta de uno de
los tipos mostrados en las Tablas 3.14, 3.15 Y 3.16. Todas estas celdas son de la
misma altura, pero de distinta anchura y tienen sus entradas y salidas en la parte
superior o inferior de la celda. Por tanto, las celdas estándar se pueden situar por
filas y conectarse con cables que se sitúan en los canales que hay entre las fi las.
Las tiras horizontales y verticales generalmente se fabrican en dos capas diferen-
tes que se sitúan encima de las celdas estándar como se muestra en la Figu ra 3.20.
Las celdas estándar se pueden reunir en bibliotecas de ce ldas estándar que
usan los diseñadores a lo largo del proceso de diseño. El proceso de diseño de cel-
das estándar consta de varias tareas : identificación, capturación, simulación, ubi-
cación, e interconexión. En la primera tarea debe capturarse el di seño con edito-
res de esquemas, que permiten a los diseñadores trabajar en la pantalla de un com-
putador ubicando y conectando los símbolos gráficos de las puertas que se van a
usar. Luego, para verificar las funciones lóg icas que se han capturado y el retardo
Álgebra booleana y di. elio lógico 121
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
100/) para conectar todas las celdas. El objetivo de la interconexión es conectar
todas las redes con líneas metálicas de longitud mínima.
~ Celdas estándar
-+-- Canal de
interconexionado
~;:t:::;:L-r4-r--.l-,
densidad del array de puertas es mucho me nor que la de los chips a medida. ya que
un array de puertas del mismo tamaño que un chip a medida contiene entre la cuar-
ta y la décima parte del número de puertas que el correspond iente chip a medida.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
FIGURA 3.21 Implementación de un sumador completo con celdas están dar.
(x,y¡c,r
" -¡------m--Ir-It:-~
x',
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
FIGURA 3.22 Implementación del sumador completo con tecnologia de array de puertas.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
(a) ESlrllctura del ¡!rray
Memoria
8, de un bit
Func ión GQ
8,
booleana
8, de cuatro
variables G
8,
¡"
¡" Función HQ
booleana
¡"
de cuatro
¡" variahl es H
horizontales con las vertica les de di stintas fo rmas. Como se muestra en la Fi gura
3.23(c). cada puerto de interconex ión contiene seis conmutadores, que se pueden
programar para que están abiertos o cerrados. Dependiendo de qué conmutadores
estén cerrados. podremos se lecc ionar una de las 64 conexiones diferentes entre las
líneas superior. inferi or, de la izqui erda o de la derecha . Los puntos de intercone-
xión se usan también para conectar un PLB a las líneas hori zontales y verticales
como se muestra en la Fi gura 3.23 (a) .
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
.1: 1 ~, ,~ \ g~ G GQ
Sin usur ~,
X U U O O
X U O I U G
8,
X U I O O e,. ¡
X O I I I
S, X I O O <1
X I <1 I I
. g~
X I I O I
X I I 1 I
h, h, ,, ~ h, h, 11
- O O O X U
,, ~
O U 1 X 1 HQ
U I X U 1
O I X 1 <1
h,
1 U X <1 1 H
1 U X 1 O
Si n u ~rt r h,
1 I n X <1
1 I 1 X 1
expres iones booleanas correspondi entes. Como hemos indicado, estas expre -
siones booleanas se pueden dar de tres maneras , usando las formas canónica,
normalizada o no normali zada. Aunque la forma canónica tiene la ventaja de
ser única, no usa necesaria mente e l mínimo número de operadores en una fun -
ción booleana dada. En comparación con esta forma canónica , la forma nor-
malizada tiende a usar menos operadores, y la forma no normali zada preten-
de utili zar el menor número de las tres. Cualquiera de las dos formas puede
obtenerse a partir de la forma canónica con manipul ac ión algebraica. Sin
embargo , es importante recordar que las forma s normali zada y no normali za-
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
da no son únicas , lo que quiere dec ir que para cada func ión booleana pu ede
haber varias ex presiones normali zadas o no normali zadas di stintas. Una de las
principales tareas de di seño es encontrar la ex presión , entre las posibl es for-
mas no normali zadas, que tenga e l menor número de operadores. En este capí-
tulo hemos trabajado con varios ejempl os que ilustran cómo esta expres ión se
puede encontrar manipul ándola algebrai camente , pero no hemos presentado
ninguna técni ca sistemática que pueda ga ranti zar la minimi zac ión o cas i mini-
mi zación.
También hemos introducido las puertas lógicas más sencill as que se usan
para implementar operadores booleanos. as í como puertas más compleja que
pueden implementar varios operadores booleanos a la vez. Estas puertas se nci -
llas y complejas constituyen las bibliotecas lógicas normali zadas usadas por los
diseñadores en diseño lógico. Hemos introducido también la tecnolog ía VLSl y
varias formas de fabricar microchips usando tecnologías a medida, cas i a medi -
da, y programable. Como cabe esperar, cada tecnología, para impl ementar fun-
ciones booleanas, usa su propi a biblioteca y requ iere sus propias técn icas de opti-
mi zac ión.
En resumen, podemos decir que el principal probl ema del di seño lóg ico es
lograr encontrar la impleme ntac ión de una función boo leana que mejor sati sfa-
ga los requi sitos de coste y retardo, que normalmente se manifi esta con altas
prestaci ones (retardo mínimo) y coste mínimo . En el Capítul o 4. di scut iremos
algunas de las técnicas sistemáticas para resol ver este problema. Como estas
técnicas difieren según la tecnología y la biblioteca dadas, también ce ntraremos
nuestra atención en los compromisos de diseño y en la ex ploración del diseño
lóg ico.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
El primer artículo mostrando cómo se puede aplicar el álgebra booleana al di sello de
circuitos lógicos que se implementan con relés electromecánicos.
Weste. N .. and K. Eshragian . Principies ot CMOS VLSI Design. 2nd ed. Reading, MA:
Addison-Wesley. 1993.
Combina la tecnología vLSI y el diseño lógico, haciendo énfasis en la metodología de
diseño a med ida. Recomendado a estudiantes de ingeniería con algunos conoc imi entos
sobre teoría y práctica de circuitos.
3.14. PROBLEMAS
3.1. (Teoremas del álgebra booleana) (e) F(x. y, :) = (x + :)'
Pruebe los siguien tes teoremas. (d ) F(x. v. :) = (x + :)'(x + y')
(a) Teorema 2(a) y (b)
(b) Teorema 3(a) y (b) 3.5. (Funciones booleanas) Obtenga los
(e) Teorema 4(a) y (b) complementos de las funcione s del
(d) Teorema 5(a) y (b) Problema 3.3, usando la ley de De
(e) Teorema 6(a) y (b) Ma rgan.
3.2. (Teoremas y de mostrac iones) Usando 3.6. (Funciones booleanas) Pruebe me-
tablas de ve rdad, probar la validez de diante manipulación algebraica que
las siguientes identidades. las siguientes expresiones son equi-
(a) (xv:)' = x' + r' + :' valentes.
(b) xy' + x\ = (xy + x'y')' (a) _(v' + xy = (xy' + x'y)'
(e) xy + x': + y: = xy + x':: (b) x';:: + xy = .(v';: + y::: + xy
(d ) (x + v + :)' = x'v' :' (e) xy':::' + x' + ..\'.";:" = x' + :::'
(d) x + xr + v = x + y
3.3. (Teoremas y demostraciones) Pruebe
algebraicamente esta s ampliaciones 3.7. (Formas canón icas) Obtenga las fol"
del teorema de De Morgan. mas canónicas de la suma de min-
(a) (x)':)' = x' + y' + :' terms y del pmducto de maxterms de
(b) (x + v + :)' = x'v':' las siguientes fu nc ion es booleanas.
(a) F = x El) y El) :
3.4. (Funciones boolenanas). Obtener las (b) F = :w' + xv' 11" + xy':
tablas de verdad de las sigui entes fun-
ciones booleanas: 3.8. (For mas canónicas) Obtenga lo s
la) F(x, y, z, w) ;;;; x.:: + yw + xz' complementos de las funciones boo-
(b) F(x. y. :::, w) = x'y':' + x'z' w' + leanas presentadas en el Problema
XZ \ V' + ~\y'\V 3.6.
128 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
(a) x'y' + .\)' + xy'
1 1 O O O
(b ) (x + y)(x + y')
1 1 1
(e) .(v ' + x\ + x:
(d) y'ZI + ~ey' + "jz + .'1:::,1
Encontrar la implementación que
3.ll. CManipulación algebraica) Explique tenga:
la diferencia entre reducir el número Ca) El menor coste
de operadores y reducir el número de (b) El menor retardo
literales.
3.17. (Bibliotecas lógicas) Rehaga e l
3.12. (Funciones booleanas) Pruebe si se Problema 3.15 usando sólo las pue.1as
verifica o no la conmutatividad de las que se dan en las Tablas 3. 14 y 3.15.
siguientes operaciones.
3.18. ( Bibliotecas lógicas) Rehaga el
(a) Inhibición
Problema 3. 15 usando sólo las puer-
(b) Equivalencia
tas lógicas normalizadas que se dan
(e) Implicación
en las Tablas 3. 14. 3.15 y3. 16.
(d) Exclusive-or
3.19. (Arrays de pue.1as) Sin usar nada
3.13. (Funciones booleanas) Pruebe si se
salvo puertas NANO de tres entradas.
verifica o no la asociatividad de los
obtener el esquema lógico de un :
operadores dados en el Problema
<a) Sumador completo
3. 12.
(b) Restador completo
3.14. (Implementaciones booleanas) Im-
3.20. (A rrays de puertas) Usando un a
plemente la [unción XOR en térmi-
implementación con NAN O de 3
nos de:
entradas del (a) sumador completo. y
(a) Sólo puertas NANO
(b) restador completo. determine la
(b) Sólo puertas NOR
posición de cada puerta en un array
(e) Puertas ANO, OR Y NOT
de puertas 4 x 4 de forma que ningún
3.15. (lmplementacione booleanas) Imple- canal de interconex ión horizontal o
mente x ES y ES z usando los compo- vertical tenga más de cuatro pistas.
nentes de la biblioteca lógica básica
3.21. (An'ays de puertas programables in
presentada en la Tabla 3, 12. Encontrar
situ) Programe una celda PLB para
la implementación que tenga:
que siempre que la entrada de control
Ca) El menor coste
valga 1, actúe C0l110 un sumador
(b) El menor retardo
completo. mi entras que si la entrada
(e) El menor producto coste-retardo
vale O se convierta en U11 rcst<ldor
3.16. (Bibliotecas lógicas) Usando la hi- completo. Suponer que las señales de
blioteca lógica b¡ísica presentada en acarreo y adeudo comparten la
la Tabla 3. 12. implementar el restador misma entrada.
booleanas
de funciones
Simplificació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
3 3
Álgebra booleana Pucnas lógicas
y biestables
Máquina de
6
I
•
estados finitos 4 L,. 6
Técnicas de Técnicas de
diseño lógico
7- diseño digital
Si stema binario 2
y representación + t
de datos
5 7
Componentes Componentes de
combinaciona~ a1macenamie~
I 1
Máquinas de g Diseño de g
estados finitos transferencia entre
generalizadas registros
I
9
Componentes
del procesad~
Hasta ahora se han eSludiado los principios básicos del álgebra de Boole
y se ha tratado de implememar funciones booleanas con diferemes puertas
lógicas. Puesto que eslas puertas presentan diferentes costes, tamaños y
retardos, también los tienen las implementaciones de funciones booleallas
construidas a partir de dichas puertas. Como el coste, /(Imaño y retardo de
las implementaciones depende en gran medida de la forma de la expresión
booleana y del tipo de puertas utilizadas, necesitamos conocer cómo obte-
ner la expresión correcta y seleccionar los tipos adecuados de pue,1as que
plvporciollen un mínimo coste, tamaño o retardo para una implementa-
ción. En eSle capítulo. pues, se estudian algunas de las técnicas de diseño
que nos ayudan a optimizar los diseños lógicos COI! respecto al coste y al
retardo. Además, veremos cómo estas técnicas pueden ser aplicadas {/ dife-
rentes tecnologías.
132 Principios de diseño digital
En el Capítulo 3 se mostró con varios ejempl os cómo implementar funci ones boo-
leanas con puertas lógicas. También se indicó que el coste y retardo de una imple-
mentación dada depende de la forma de la expresión booleana y de la biblioteca
lógica utilizada en su realización. Por ejemplo, se mostró que una función boole-
ana puede especificarse en la forma de una tabla de verdad, sobre la
o
0----0
lal ll = I
o o
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
00 01
o o
lO 11
lb) n '" 2
OJO OJ I
(K~4~/O
o
/~(~~II o
100 10 1
lel 11 = 3
00 10 1I0J I
o o
0000/ 0001/
0 - o
o(~ t_o
/ / Oll(
/
OIOU e - · - - - o
/
0 101
1000 100 1
Id ) 11 =4
base de que así se pueden definir las formas canónica, estándar y no estándar de
una expresión booleana para esa función. Como se indicó en el Capítulo 3, estos
tres tipos de formas tienen diferentes propiedades. Aunque la forma canónica es
única, generalmente contiene demasiados operadores como para servir de base a
una implementación eficiente. Por otra parte, una forma estándar, que general-
mente contiene pocos ope radores, no es única. De igual manera, una forma no
estándar, que tiene a su vez menos operadores que una forma estándar, no es tam-
poco única. Ya que estas fonnas no son únicas, es necesario un procedimiento que
pennita obtener una forma no estándar que tenga el mínimo número de operado-
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
res, ya que las expresiones booleanas con menos operadores requerirán menos
puertas y menos entradas por puerta, facilitándonos así la realización de imple-
mentaciones menos costosas.
Al mismo tiempo. sin embargo, mientras que la minimización del número de
operadores permite realizar implementaciones menos costosas, tales implementa-
ciones presentan a menudo retardos mayores, ya que la señal de entrada ha de pro-
pagarse a través de más puertas como consecuencia de expresiones muy factoriza-
das. Así pues. para minimizar este retardo es necesario concentrarse en la reduc-
ción del número de operadores en cada camino crítico desde la entrada a la salida.
Además, debe asegurarse que los tipos de operadores en esos caminos críticos pue-
dan ser implementados con las puertas más rápidas de la biblioteca de puertas.
En el Capítu lo 3 se mostró cómo se podía minimizar el número de operadores
en una expresión por medio de ciertos tipos de manipulaciones algebráicas. En
este capítulo se describen técnicas sistemáticas que permiten, primero, minimizar
el número de operadores en formas estándar y no estándar, y después implemen-
tar estos operadores con puertas de una biblioteca dada.
dad y cada vértice del n-cubo booleano. En la Figura 4_2, por ejemplo, se muestra
la tabla de verdad y las con-espondientes representaciones con cubos de las cono-
cidas funciones de acarreo y suma, utilizadas ampliamente como ejemplos en el
Capítulo 3.
Para obtener la fonna estándar de una función que contenga el número míni-
mo de operadores, utilizamos el concepto de subcubo booleano. En general, un 111-
subcubo de un ,,·cubo puede definirse como el conjunto de 2'" vértices en los que
n-m variables tendrán el mismo valor en cada vértice, mientras que las m varia-
bles restantes tomarán las 2'" posibles combinaciones de valores O y l. Así cada
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
subcubo puede caracterizarse por los valores de las 11 - m variables que son los
mismos para cada vértice del subcubo. Por ejemplo, si una función booleana toma
valor I en cada vértice delm-subcubo, los 2'" minterms que hacen 1 a la función
en ese subcubo podrían expresarse con un único término de 11 - m literales, que
representa los valores de las variables que son iguales para cada vértice del sub-
cubo. Para demostrar este hecho, sean XI' x2' ... , x"_,,, las variables cuyos valores
son iguales en cada vértice del n-cubo, y sean Ii' 12' ... ,1"_,,, los literales tales que
li = Xi siempre que Xi = 1, Y li = X'i siempre que Xi = O. Entonces el valor de la fun -
ción del m-subcubo es igual a
o..
l/l -m~re 11- 11/+ IX l l/- m+ 2 o.,
x' 11 +x' 11 - 111+ 1. e, ' 11- 111+ 2 o..
x11
010 0 11
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
c, X, y, c", s,
O O O O O 100 10 1
100 JOl
FIGURA 4.2 Representación de las funciones de suma y acarreo con cubos booleanos.
La Figura 4.3(a), por ejemplo, es un mapa de una sola variable compuesto por
dos celdas que indican x = O Y x = l . Este mapa podría ser utili zado para repre-
sentar las cuatro funciones de una sola variable: O, x, x' y 1. Sin embargo, como
las expresiones para estas funciones son fáciles de recordar, este mapa se usa rara-
mente. Un mapa más utilizado es el de la versión con dos variables mostrado en
la Figura 4.4(a). Este mapa conti ene cuatro celdas, que representan los cuatro
minterms de una función booleana de dos variables, a saber, x'y', x'y, AY ', xy . El
subcubo más grande en un mapa de dos variables es un I-cubo. que representa una
variable o su complemento. Por ejemplo, la Figura 4.4(b) muestra tres de estos
subeubos de tamaño l. Un mapa de dos variables podría utili zarse para represen-
tar cada una de las funcione s de dos variables. Como ejemplo, las funciones boo-
leanas ANO, OR Y XOR se muestran en la tabla de verdad de la Figura 4.5(a) y,
también, en los mapas de la Figura 4.5(b), (e) y (d).
En la Figura 4.6(a) se presenta un mapa de tres variables que contie ne ocho
celdas, correspondientes a los ocho minterms de una función booleana de tres
136 Principios de diseño digital
variables. A partir del mapa puede verse que los subl:ubos mayores tienen tama-
ño 2 y que estos subcubos pueden expresarse con un solo literal. En la Figura
4.6(b) se muestran tres de los seis posibles subcubos de tamaño 2. y en la Figura
4.6(c) se indican varios subcubos de tamaño 1.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
lal 11: 1
,.
., o 1
1110 mi
O
1
I1I J 1113
(b) 11: 2
\
- ()() 01 11 10
1110 111 , 11/ I11 J
)
1... ~
1
L ~
11/ "'j 111 _
m"
(el 11=3
.\y
-
-\1' 00
n
01
n
II
n
10
n
00
l 11/ 111 , 11/ 111: iJ
ol e m(¡ ~
11I.J 11/ 11/
5
I
lo
" '-
" 13 m¡ m I.J iJ
o
1... 11ls m,) 111 11 m I(! P
J U U U
(d) 11=4
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
\. y
o x o
o ",," -,,' x\ () ~S uhc u bo x'
:S ubcubo y
xy xy ~S u bc ubo x
, " o 1
II
1 I
.< o 1
X Y AN D OR XOR () I
O O O O O
1 I I
O I O I
O O I
I I O (c ) OR: x + )'
O I
1 I
FIGURA 4.5 Representación con mapas de tres funciones booleanas de dos variables.
138 Principios de diseño digital
y.:
x ()() DI 11 ID
O
X'Y ' l ' x 'y'z x ' )'.: X l)'.: '
,
,,--
()() DI 11 lO
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
x
O
-- - - - ,- - - :
-V- :
, - - '1-
,r -'- - - - - , x
- -- -- --
I
-_ - I
y:
()() 01 11 10
O • _ 1
,
'1
I ~ .r.:'
",
, 00 01 11 10
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
O 1 ,
,
el XI YI CÍ+ l s¡ 1 1 1
-~
1
O O O O O
O O l O 1
O l O O I
O I I I O X,Y,.
I O O O I e, 00 01 11 10
I O 1 I O
O 1 1
I I O I O
I I I I I
1 1 1
(a) Tabla de verdad
Pueden obtenerse concl usiones simil ares para los mapas de seis variables
como el mostrado en la Figura 4.11 (a) . En este mapa se puede observar que un II~
subcubo podría contener ( 1) cuatro (111 - 2)-subcubos que ocupan la mi sma pos i-
ción en los cuatro mapas, (2) dos (nI - I)-subcubos que aparecen en la mi sma
posición en dos mapas adyacentes, ó (3) un único n~ s ubcubo que aparece en sólo
uno de los mapas. En la Figura 4.ll (b) se muestran varios ejemplos de estos 4-
subcubos.
~ \\ '
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
'! 00 01 11 10
;:w
.,'y 00 01 11 10
00
11 1
-~
11
-~
10
':1\'
'Y 00 01 11 111
00
01 "
-z.-
11
,
111
-
(e) Ejemplos de J ·subcubos
,I'/."¡)
XI x. ()() 01 11 10
00
111 1'
X, "'o y, Yo G E L
-
O O O O O I O 11 1 1 1
O O O I O O I
O O I O O O I
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
O O 1 I O O I 10 1 1 ,
O I O O I O O
Cb) FunC ión "mayor que":
O I O I O I O
O I I O O O I
e == x IY') + XI ~\" IYtl + x l x'f~r'lI
O I I I O O I y/ro
I O O O I O O IlO 111 11 10
.1' 1.\'{J
,
I O
O
O
I O
1
O
I O
I
O
O 00 ,, =,í
'~ _.J
,
O I I O O I ,
, ,
I
I
O
O
O
I
I
I
O
O
O
O 11 1 ', , ,'
I I O I O O
- - -
I I O I O 11
FIGURA 4.9 Representación de las funciones "mayor que" y "menor que" en los mapas.
,
.,y 00 01 11 10 00 111 11 111
00 m, m, mJ7
111 1 111: 11I /1j m i" 111 ' .1(
-
X) 00 01 II 10 00 01 II JO
00
,- -- - - - - - - - -,- -
, , ,
~
- - - - . ---- ---
,-.- ,
- -
x'
, , 7-
,, ,, , , , ,: ~
, , ,,
01
, , ,, , ,,
- -- - - -- , •, ,1- ,, ,
II ,- - - . - ,, ,,, ,, ,.- - - - ", ,,
, , ,
.- , I 'IV
,,
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
, ,
,
.. ,, ,
,
, , , , , , , ,
,
-.,- .
, ,
10
-.- -
I ,
I
-
- ', ' J.
- -- -
- •
-
x ~'
_. - - - - - ':... ----------, - I
-
(b) Ejemplo de subcubos de tamaños 8 y 16
1' = 0 l' = I
- 00 01 II 10 01
X) 00 II 10
00
111 0 "' 1 111 ./ 111 ] "' ", 111 / 7 m 'li 111 / 8
01 m, /II
j 111 7 m, II/ :!u 111 1/ 111 n 111 ]1
11= 0
II 111 / 1 m 1.1 111 /5 m ,.J 111 18 m 1\1 "' .11 '" ./11
00
1/1 J1 '" J J '" J 5 111 ) .J 1II .¡;oJ III.JII
"'5' 11/ jll
II
'" .¡~ m '¡J 111 .0 111 46 /I/ (¡(} 111 ",/ 111 6J 111 6.":
10 11140 1Il .J1 m .1) tt1"z 111 56 m 57 111 51¡ 111 J,~
I' = o 1' = 1
<)'
- 00 01 11 10 00 01 11 10
00
--
o
o I
o o
oo
..
o lo I
01 o I · 1- - - _. - - - ~-
u=o o I
o
11 o - ,...- r---L-- XI'
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
o o
o o o o o
10 -'_..i. _____ • • . - j ..
o~
--- e· -
-t-
oo
- - _.J "
r-~_r----r_--._--_. ' o
-~
o rol. __ .. ___ _
• _
..
• I
.1 t
I oo
o,
"r- - - -
I
. ---
o
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
lista de cobertura, que se expli ca a continuación.
CREACIÓN DE LA COBERTURA MíNIMA. El propósito de este paso es gene-
rar una lista de cobertura que contenga el menor número posible de implicantes
primos, que se se leccionarán de manera tal que cada l-minterm esté contenido en,
al menos, un implicante primo. Hay varias forma s de crear esta lista, siendo la
más sencilla la denominada manera codiciosa, que se explica a continuación. En
este método se obtiene el implicante primo que contiene el mayor número de 1-
minterms no cubiertos, y se traslada de la li sta de implicantes primos a la li sta de
cobertura. Si aparecen dos implicantes primos que incluyen a la vez el mi smo
número de mintenns no cubiertos, se elige uno aleatoriamente. Este procedi-
miento se repite hasta que todos los minterms hayan sido cubiertos. El ejemplo
siguiente muestra una aplicación de este método.
SOLUCIÓN
Siguiendo el procedimiento descrito en la Figura 4.1 2. primeramente se genera un mapa a par-
tir de la expresión algebráica dada, insertando unos en todos los subcubos que se dan en la
expresión. En este caso, estos suhcubos son w'y ': ', wz, xy:.: y w 'y. como se muestra en la
Figura 4.l3(a) . Obsérvese que el ténninoxyz es redundante ya que sus minterms x'v:1I' y .1'.1': 11'
están incluidos en los subcubos w;::: y w 'y, respectivamente.
Una vez desarrollado el mapa de cuatro variables. se determinan todos los implicantes
primos y se genera un a li sta PI. como se muestra en la Figura 4.13 (bl y (e). Para generar
la lista PI. se inspecciona cada l-minterm y se añaden a la lista todos los implicantes pri-
mos que contengan a ese minterm. Como se mencionó anteriormente, si se encuentra un
implicante que ya está en la lista. no se duplica.
En nuestro caso se empieza con el minterm 11l{J el cual está contenido en el implicante
primo w 'z '. El rn.interm 11~ está contenido en dos implicantes primos, w'y y \V'':: . Ahora. sin
embargo, sólo se añade \V 'y a la lista, ya que lV'Z ' ya está en ella . De igual forma, el min-
term 1113 está contenido en y.:: y HI 'y, pero sólo yz se añade a la li sta. Los millterms 11l4 , 111 6 Y
1117 no proporcionan ningún nuevo implicante primo a la li sta. Sin embargo. el minterm 1119
añade HlZ a la lista. Como ninguno de los restantes minterms añade nuevos im plicantes pri-
mos a la li sta, sabemos que la lista PI completa contiene cuatro implicantes primos, eOl11o
se indica en la Figura 4. 13(e).
Simplificación de funciones booleanas 145
Dctenninación de
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
implic:lnlCS primos
Sclccó ón de implicanlcs
primos cscnci:llcs
Obtención de la cobcrtur...
mínilllll
Forma estándar
,.. ,..
.'
·X (KI 01 11 10 ,',\- {)(I 01 11 10
"
I~I 1 I I I I I
, ,
01
I I I , I , I , I
'.
,
..
"
11
1- --- -
I I ,I I
, , ,
10 I I ,I , I(
I I
~ ~ ~ ~ 11 11 ~ ~
11//:' 11" )' w'.:;' w;: y:: lI"y
En este punto se puede realizar el tercer paso seleccionando los implicantes primos
esenciales. Como puede verse, los minterms 1110 y 11/
4
están cubiertos únicamente por el
implicante primo \V'z' , mientras que los minterms y 11113 están cubiertos sólo por el
1119
implicante primo wz. Por tanto, la lista de implicantes primos, o lista EPI, contiene los dos
implicantes primos w': ' y WZ, como muestra la Figura 4.l3(c).
Finalmente, es necesario obtener el minimo número de implicantes primos que cubran
a los restantes minterms 11/
3
y 1I!7' En el mapa de la Figura 4.l3(b) se observa que ambos
mintenns están cubiertos por y.: y por w'y. Como ambos imp licantes primos tienen el
mismo tamaño. cualesquiera de ellos puede elegirse como cobertura final. Por este motivo,
la Figura 4.l3(c) muestra dos listas de cobertura diferentes y la Figura 4.l3(d) muestra dos
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
expresiones simpl ificadas, teniendo cada una de ellas el mismo número de operadores.
Observe que cada una de estas expresiones simplificadas requiere tres operadores ANO y
dos operadores ORo en contraste con los seis operadores ANO y los tres operadores OR que
requería la expresión original. En otras palabras, nuestro procedirn.iento de simplificación
ha obtenido una reducción en el número de operadores ANO del 50%, y en el número de
operadores OR una reducción del 33 %.
to heurístico descrito en la Figura 4.2 no siempre será suficiente para obtener las
coberturas mínimas. En la Sección 4.4 introduciremos un procedimiento alterna-
ti vo que puede ser seguro a la hora de obtener todas las coberturas mínimas de una
función booleana dada.
1"
"
WJ 00 01 11 10
00
,
,-- ,, 'i ,r
~
_1 ,
-- -- 1_' __
,-,
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
r
01 1 ,
L. _ •
1, '
IL _1_
, , T --" ,
r -, , ,
11
"" JI,-, <
-1"
___- i t
,- 1- - ¡' - 111,
- - ,-- ..:-'
10
lisia PI: w/x';:', lI" xy. IVX¿ II'X')", .r'y'z', w)":. xy.:. w'y:;:'
lisia EPI: vacía
LiSias de cobertura: (1) w'x'.:' , w ',l}'. II'X:. Il'x'y'
(2) x')t:.', wy'::. xyz. w')'r
4.3. INDIFERENCIAS
En secciones previas hemos considerado solamente aquellas funciones booleanas
°
que están completamente especificadas, es decir, hemos asumido que una fun-
ción toma el valor ó I para cada combinación de los valores de las variables.
Bajo esta hipótesis, se podría definir cada función booleana en términos de un
conjunto de O-minterms y de un conjunto de I-minterms. Sin embargo, en la prác-
tica se especifica sólo el conjunto de I-minterms y se supone que todos los min-
terms que no están en ese conjunto son O-minterms. No obstante, en muchas apli-
caciones una función booleana no está especificada para ciertas combinaciones de
los valores de las variables, ya que dichas combinaciones nunca se presentan. Por
ejemplo, el código BCD para dígitos decimales utiliza sólo 10 de las 16 posibles
combinaciones para especificar los dígitos decimales al 9. En otras palabras,
seis de esas combinaciones, que representan los números 10, 11 , 12, 13, 14 y 15
°
nunca se utilizan. Por este motivo, cualquier función booleana que use el código
BCD como entrada tendrá que ser considerada no especificada para las combina-
ciones que representan los números 10, 11 , 12, 13, 14 Y 15. Una función boolea-
na de este lipo, que tiene salidas no especificadas para algunas de las combina-
ciones de entrada, se denomina función incompletamente especificada, y los
148 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
al minterm concreto.
Cuando se utilizan mapas con indiferencias, durante la generación de impli-
cantes primos, se inspecciona cada I-minterm, buscando el subcubo mayor posi-
ble de I-minterms y, en este caso, de mintenns con indi ferencias que incluyan al
minterm en cuestión y después se añade este subcubo a la li sta de implicantes pri-
mos, si no está ya incluido. En otras palabras, implícitamente asignamos un valor
funcional de I a todos aquellos minterms que estén incluidos en al menos un
implicante primo y asignamos el valor O a los restantes. Se desc ribe este procedi-
miento en el siguiente ejemplo.
ferentes 11/. 10 ' 111 1 p l1l 14 Y m 15 ti enen el va lor 1. y en la expresión de Yo' qu e los minterms 1Il~.
111
11
Y f1l 14 son iguales a l.
Si no se utilizaran estas indiferencias, se obtendría un literal extra por término en las
expresiones para Y 2' YI' Yo' además de un ténnino extra en la expresión para yO" Es innecesa-
rio decir qu e estos minlerms indiferentes pueden utili zarse de manera similar para simpliti-
caciones en fann a de producto de sumas O en otras formas no estándar, indistintamente.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
X3X2X1 Xo Y:¡Y2Y,YO
O 0000 9 100 1
0001 8 1000
2 0010 7 01 1 I
3 00 I 1 6 01 10
4 0100 5 O1O1
5 O 10 I 4 0100
6 01 10 3 00 I I
7 O1 1 1 2 O O 10
8 1000 I 0001
9 100 1 O 0000
1" 1"
,, , " 00
¡' o
01 11 [(1
,,.,
•1'. 00 01 11 10
(K) I I 00 I I
01 01 I 1,
11 X X X X 11 X X X X
10 X X 10 X X
,,
,, "'"" O( ., ,, , " no
'. '" 11 10
.'
I
01 11 10
I
00 I I 00
01 I I 01 I I
11 X X X X 11 X X X X
10 X X 10 I X , X
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
4.4. MÉTODO TABULAR DE SIMPLIFICACIÓN
Como se desprende de la Sección 4.3, el método del mapa es esencialmente un
procedirrilento de tanteo ya que requiere que una persona reconozca patrones de
subcubo en el mapa. Cuando el número de variables es mayor que seis, se hace
muy difícil reconocer subcubos y seleccionar un conjunto mínimo de implicantes
primos.
En contraposición, el método tabular no tiene estas desventajas ya que no
depende del reconocimiento de patrones. Claro que este método de tabulación es
algo más tedioso para los diseñadores, que son propensos a cometer errores con
este largo y monótono proceso. Sin embargo, es conveniente para su realización
en un computador ya que busca casi exhaustivamente los implicantes primos y
obtiene eventualmente todas las posibles coberturas. Muchas herramientas CAD
modernas utilizan variantes de este método, que ini cialmente fue propuesto por
Quine y más tarde mejorado por McCluskey, por lo que es conocido frecuente-
mente como método de Quine-McCluskey.
Este método tabular de simplificación booleana empieza con la forma canó-
nica de suma de productos y consta de dos pasos. En el primer paso, se obtienen
todos los implican tes primos de una función booleana dada. En el segundo paso,
se identifican los implicantes primos esenciales y se utilizan para obtener todas las
coberturas mínimas.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
EJEMPLO 4.4 Generación de implican tes primos
PROBLEMA
Generar todos los implicantes primos para la función F definida originalmente en el mapa
de la Figura 4.13(a), y que se vuelve a mostrar en la Figura 4. I 6(a).
SOLUCIÓN
De acuerdo con este mapa, la forma canónica de esta función contiene diez I-minterms que
pueden agruparse en cinco grupos: G o' G" G2 , G 3 Y G4 . Cada grupo G" donde O ~ i ~ 4,
contiene aquellos mintenns cuyo número de unos es igual a i. Por ejemplo, el primer grupo,
G Ol contiene sólo el minterm mo ya que este mintenn representa la combinación wxyz =
0000, y su número de unos es igual a O. De igual forma, el grupo G, contiene los rninterms
111, y 111 4, ya que estos minterms representan las combinaciones w.1yz = 0010 Y wxyz = 0100,
cuyo número de unos es igual a l. Se pueden definir los demás grupos del mismo modo.
Cada grupo contiene minterms que pueden ser considerados como O-subcubos, como se
muestra en la lista de O-subcubos de la Figura 4.16(b).
Como puede verse en esta lista, cada elemento (fila) contiene cuatro campos: el nom-
bre del grupo, G" los índices de los minterms incluidos en el subcubo concreto, los valo-
res de las variables del subcubo y una etiqueta que indica si ese subcubo está cubierto o no
por un subcubo mayor. La etiqueta se pondrá a " SI' o " no" después de haber generado la
lista de posteriores subcubos mayores_ Obsérvese que, al contener la forma canónica 10
minterms, esta lista de O-subcubos contendrá 10 elementos que ocuparán cada uno de ellos
una fila.
Para generar una lista de l-subcubos, necesitamos comparar cada uno de los minterms
del grupo G, con cada uno de los mimerms del grupo G,+,. y generar un I-subcubo por
grupo G, en la lista de I-subcubos si estos minterms difieren en una variable. Por ejemplo,
de acuerdo con la Figura 4.16(b), el minterm /lb puede combinarse con el minterm 111, para
generar un l-subcubo que contenga a "ú y n~ y tenga los valores en la variables wxyz =
00-0. Este I-subcubo puede representarse por IV 'x'z' . De igual forma. el minterm /lb puede
también combinarse con el minteml m4, generando un l -subcubo cuyos valores en la varia-
bles son wxyz = 0-00, y que se representa por IV 'y'~ '. Hasta ahora, pues. se ha completado
la generación de I-subcubos para el grupo Go' ya que no hay más parejas de minterms cuyo
primer minterm esté en el grupo Go y cuyo segundo esté en el grupo GI' Utilizando esta
misma técnica, se pueden generar el resto de I -subcubos para los grupos G" G, y G, .
Téngase en cuenta que, como cada mintenn en la lista de O-subcubos ha sido utilizado en
al menos un I-subcubo, se ha insertado un "sr' en cada fila de la cuarta columna de la
Figura 4.16(b).
152 Principios de diseño digital
,-,
VALOR DEL
1\'\ (JO 01 II 10
lDENTI FICAC ~ MINTERMS SUBCUBO SUBCUBO
(JI) t I t DE GRUPO DELSUBCUBO w X y z CUBIERTO
Gn (O) O O O O sí
(JI t t t G, (2) O O 1 O sí
(4) O 1 O O sí
II t I G, (3 ) O O I 1 sí
(6) O 1 1 () sí
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
(9) 1 () O I sí
111 t I
G, (7) O 1 I :-.í
( 11 ) O I sí
(al l{ ~preselllacion con mapa (13) 1 O sí
G, ( 15 ) sí
VALOR DEL
IDENTIFICACION MINTERMS SUBCUBO SUBCUBO
DE GRUPO DELSUBCUBO w X y z CUBIERTO
Gn (0, 2) O O - O sí
(0,4) O - O () sí
G, (2. 3) O O 1 - sí
(2,6) O - 1 O sí
(4,6) () 1 - O sí
G, 0.7) O sí
(3. 11) - O 1 sí
(6. 7) O 1 1 - sí
(9, 11 ) 1 O - sí
(9. 13) 1 - O sí
G, (7. 15 ) - 1 1 ) sí
(1 1. 15) - 1 1 sí
( 13. 151 - 1 sí
VALOR DEL
IDENTIFK:ACION MINTERMS SUBCUBO SUBCUBO
DE GRUPO DEL SUBCUBO w X y z CUBIERTO
Ga (0, 2. ~. 6) O - - O no
GI (2. 3. 6. 7) O - I - no
C, (3.7, 11.1 5) - - no
(9. 11. 13. 15) 1 no
Una vez obtenida una li sta completa de I-subcubos, se puede generar una lista de 2-sub-
cubos, como se indica en la Figura 4. 16(d). Como puede observarse, cada uno de los 2-sub-
cubos en esta lista contiene cuatro mintenns y pueden describirse por un término de dos
literales. De nuevo, estos 2-subcubos se han generado comparando los I-subcubos de dos
glll pos anteriores de la listu de I-subcubos y combinándolos en 2-subcubos si difieren en
una variab le exactamente: es decir, se genera un 2-subcubo siempre y cuando haya una
variable en ambos l -subcubos que tenga un valor O en uno de ellos y un valor I en el otro.
Obsérvese que «- » no es una indicación del valor de la variable sino que es un a indiferen-
cia para una variable que ya ha sido e liminada de la expresió n. Como se observa en la
expresión 4. 16(d}, compara ndo todas las parejas de I-subcubos de la Figura 4 .1 6(c) se
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
obtendría un total de cuatro 2-subcubos. Téngase presente tam bién que, como cada I-sub-
cubo ha sido utili zado para ge nerar un 2-subcubo, se ha insellado un «sí» en cada fi la de la
cuarta columna de la Figura 4.16(c).
Ahora, se inlentan cOmbinar 2-subcubos de la lista para formar 3-subcubos, pero en este
CllSO no se obtiene ninguno. Por consiguiente, todos los 2-subcubos que aparecen en la li sta
de la Figura 4. 16(d) son los implicantes primos. En otras palllbras, los cuatro implicantes
primos de la fu nción que se especifica en la Figura 4.16(a) son 'I"~ '. '1' 'v, y: y ' V~. Obsérvese
que nin gú n I-subcubo o O-subcubo es un implicante primo, ya que cada un o de ellos está
cubi erto por, al menos, un 2-subcubo.
Obtener lodas las cobel1uras mínimas de la función cuyos il1lplicantes primos se determi-
naron en el Ejemplo .. .4.
SOLUCIÓN
En el Ejemplo 4.4 se identificaron cuatro implicantes primos: IV'Z', "'Y, y: Y IVZ. Así pues,
se construye la tabla de selección de implicantes primos esenciales como se muestra en la
154 Principios de diseño digital
Figura 4.17(a). indicando en cada fila el nombre, expresión y los índices del mintenn de uno
de los implicantes primos, y asignando una columna a cada I-minterm. Entonces. se intro-
duce una X dond e un mintenn dado sea cubierto por un implicante primo. Por eje mplo,
empezando por la primera fila, se introduce una X en las columnas O. 2. 4 Y 6 ya que el impli-
cante PI contiene los mintenns mo' m 2, 1114 y 1n6 ,
Tras introducir todas las X necesari as en todas las filas. se indicarán aque llas columnas
que tengan únicamente una x. rodeando dicha X con un círculo. Como se observa e n la
tabla, las columnas O, 4, 9 y 13 ti e ne n sólo una X cada una. Así pues. P, y p. son impli-
cantes primos esenciales ya que son los únicos implicantes primos que cubren a los min-
terms lila . 111 4 , 1119 Y m lJ , Afortunadamente, PI y P4 también cubren a los mintenns 111 2 , f1I (j'
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
mil y nl 15, lo que significa que los únicos mintenns no cubiertos. ni por PI ni por P4' son
los mintenns 111, y 111, . Ya que ambos minterms podrían es tar c ubi ertos por P, O P y se
obtienen dos pos ibles coberturas: como se muestra en la Figura 4 . 17(b). una cobe rtura con-
tendría P" P, Y p. mientras que la seg unda contendría a P" P, Y p •. En la Figura 4. 17(c)
se muestran dos ex presiones mínimas en forma de suma de productos correspondientes a
estas dos coberturas.
puede no ser tan fácil como la de seleccionar los implicantes primos esenciales.
Muy frecuentemente, se tiene un gran número de implicantes primos para escoger,
lo que complica de modo significativo la selección. Una manera de obtener todas
estas posibles coberturas es generar, primero, un producto de sumas en el que cada
suma representa un conjunto de implicantes primos que cubren un minterm en con-
creto que no ha sido cubierto por ningún implicante primo esencial. Después, se
realiza la multiplicación en la forma de producto de sumas hasta obtener una forma
de suma de productos en la que cada producto, junto con todos los implicantes pri-
mos esenciales, representa una de las posibles coberturas. De entre todas las cober-
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
turas, aquéllas que tengan el menor número de implicantes primos serán las cober-
turas mínimas. Este procedimiento se describe en el siguiente ejemplo.
Obtener todas las posibles coberturas mínimas para la función booleana dada en el mapa de
la Figura 4.18(a).
SOLUCiÓN
"
VAlOR DEL SUBCUBO
1\".1 no ni II 10
IDENnFlCACKíN MltiTERMS SUBCUBO CUBIERTO
,~) I DE GRUPO DELSUBCUBO w X y z POR I·SUBCUBO
G, (2) O O I () :-oí
01 I I (8) I O U () sí
G, (6) U I I O sí
II
(9) O () sí
I I
G, (7) () I sí
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
( 13) I O sí
10 I 1
G, ( 15) sí
G, (6.7) ()I no
(9. 13) I O no
G, (7. 15) - 1 I 11 0
(13 , 1S) - 1 no
(e ) Ll~la de adyace m.: ia... tlL' urden l.
P, .\"')": IX, 9) ® X
P, )\I'.\y (6 , 7) X X
P, W):': (9. (3 ) X X
P, xy.: (7 . 15 ) X X
FIGURA 4.18 Generación de implicantes primos y selección de la cobertura para el Ejemplo 4.6.
Simplificación de funciones booleanas 157
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
4.5. TRASLACiÓN A LA TECNOLOGíA DE ARRAYS DE PUERTAS
En la Sección 4.4 se presentaron ciertas técnicas utilizadas para obtener las formas
estándar y factorizadas de funciones booleanas con 1/ variables. Cada una de estas
formas utiliza los operadores booleanos estándar ANO. OR Y NOT, y pueden
implementarse fácilmente con puel1as ANO, OR Y NOT con más de n entradas.
Para reducir el coste y el tiempo de diseño, muchos sistemas se están fabrican-
do actualmente con tecnología de arrays de puertas. Como se ha descrito en la
Sección 3. 11 , un aITay de pueltas es una matriz bidimensional de celdas en la que
cada celda contiene una única puerta con un número fijo de entradas. Estas puertas
intemas a las celdas son nOnTIalmente puertas NANO (NOR) de lII.entradas, o más
frecuentemente, puertas NANO (NOR) de 3 entradas. Para utilizar estos arrays de
puertas, pues, se necesita convertir una expresión o circuito con pueltas ANO, OR
Y NOT en otro que tenga únicamente puertas NANO (NOR) de m entradas.
Este proceso de conversión, llamado traslación a la tecnología (del inglés
technologv mapping), incluye diversas y di stintas tareas que se describen en esta
sección. Primero, se muestra una técnica para convertir un circuito con varias
puertas ANO , OR Y NOT en otro fonnado sólo por puertas NANO (NOR). Esta
tarea conlleva dos partes diferenciadas, conversión y optimización. Durante la
conversión, se sustituye cada puerta ANO y OR con una puerta equivalente
NANO (NOR), mientras que durante la optimización se eliminan los inversores
dobles que se han introducido durante la fase de conversión. Tras explicar la con-
versión y la optimización, se mostrará cómo una puel1a ANO (OR) de 11 entradas
puede descomponerse en una puerta ANO (OR) de m entradas. Finalmente, se
mostrará cómo esta técnica de descomposición puede utilizarse para minimizar el
retardo en un circuito con puertas NANO (NOR).
Las reglas de conversión están basadas en el teorema de involución y en las
Leyes de De Morgan , y pueden resumirse como sigue:
Regla 1: xy = «xy)')'
Regla 2: x + y= «x+ y)')' = (x 'y')'
Regla 3: Ay = ((xy)')' = (x' + ir
Regla 4: x+ y = (x + y)')'
Las Reglas l y 2 se usan, generalmente, para la convers ión a circuitos NANO,
mientras que las Reglas 3 y 4 se utilizan , generalmente, para la conversión a cir-
158 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
..... L
O-Di>
.. ~
D-
"lo O ...
...... 4: D ... [>t>
(a) Reglas de converSi6n
TABLA 4.1 Conversión de suma de productos y producto de sumas a circuitos NANO y NOR
IMPLEMENTACiÓN
IMPLEMENTACiÓN IMPLEMENTACiÓN
CLASE DE FORMA EN FORMA
NANO NOR
ESTÁNDAR
Suma de productos
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Producto de sumas
den tener hasta n entradas, siendo 11 mucho mayor que /1/ . Para poder utili zar puer-
tas NANO (NOR) de mentradas, se debe saber cómo descomponer estos mayores
términos ANO y OR en puertas ANO y OR de /l/ entradas.
\ l'
"
, o 01 11 10
o 1
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
1 1 1 1
t ,.1 = .\ ~,
l ' +.\ e +\· c
I I . I I
c,. I=(.' ,+)",)(-", H ) (y, + C, )
X, --+1-'--/
Y,
'", ---':1--.----..
."
"./
X,
Y,
e, --':L1'"---" e,
Descom po ne r t'lt c: nnino AN D de 10 va riab les x.,.rlt\ 7x6x5x-lxJx~r lxO e n un {¡rbo l de pu e rtas
AND de tres cntrildas.
SOLUCIÓN
Para un té rmin o ele lO va riable s. te nc m os r l og ~ I Ol = .3 ni ve les d e pue rta s en cl úrho! y se
r(
requi e ren I () - I )/(} - 1)1 = S pue rtas . Co m o es te Ül'ho l N A ND tiene 10 e ntradas. req ui e -
re Llo/.3J ;;;; .3 puertas e n e l prim er ni ve l. E n e l seg und o ni vel tie ne
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
3 + (10 - }IL IOI3J)¡ =.¡ e ntradas y. por tanto. requ ie re L413J = I puerta. y e n el terce r ni ve l
tielle I + (-1. - 3(L..V3J));;;;:2 entradas y I puc rta, Es tos cá lcu los. qu e determinan e l mílllero
~H,k C llíl du de puertas en cada ni ve l. e S I ~'¡n resumidos en la Figu ra ..L2 1(a),
NÚMERO NÚMERO
NÚMERO DE ENTRADAS
DE NIVEL DE PUERTAS
10 L IO/3J = 3
2 3 + ( 10 - 3(L I013J)) = 4 L4/3J =1
3 I + 14 - 3([A13J)) = 2 L2I3J = I
FIGURA 4.21 Descomposición de una puerta ANO de 10 en1radas en puertas ANO de 3 entradas.
LJ na ve/.. que se ha det e rminado el llLímcro de pu e rta s e n cada ni ve l. se neces ita aún
th!te rmin ar CtÍ lll O d ebe n co necta rse las en tradas a las puertas de l primer ni ve l. y có m o las
sa li das de las pu e rta s dc UIl ni vel debe n co nec ta rse i.l las e ntradas de las puertas del s igu ien-
te ni\'c l. Esto pu ede rea li zarse de va rias man e ra s. cada un a de las c ua les proporcionará ull a
combi nac ió n di fere nte de retardos en tre las e ntradas y la salida, En las Figuras ..L 2 1(b ) Y (e )
:-.c presen ta n dos po s ibles descom posic io nes que pe rmit e n im pleme nt ar la pucrta AND de
10 entradas con ci nco puertas AND d e J e ntradas. Ob:-.érvese qu e estas dos pos ib le:, dc:-.-
co mpos iciones di fie ren úni ca mente en e l re tardo de pro pagac ió n d e a lg ul1 ca min o de e nt ra-
da/sa lida, En la Fi g ura ..L2 1Cb ). po r ej e mplo. el retardo de propagació n a la sali d a de sde
162 Principios de diseño digital
todas las entradas excepto la situada más a la derecha es de 8,4 ns, y el retardo de propaga-
ción desde la entrada situada más a la derecha a la salida es sólo de 2,8 ns. Sin embargo, en
la Figura 4.21 (e), el retardo de propagación desde las tres entradas de la izquierda a la sali-
da es de 5,6 ns, mientras que el retardo de propagación de las demás entradas a la salida es
de 8,4 ns.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
la eliminación de inversores dobles puede realizarse sólo después de la descom-
posición, como demuestra el siguiente ejemplo.
Implementar la función suma del sumador completo, utilizando puertas NANO de 3 entra-
das.
SOLUCiÓN
, o 01
" 'o
,
"
, 1 1
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
(d) Conversión a red NANO (e) Red NAND optimizada
La funci ón de acarreo de salida del ¡'ésimo bit puede definirse por la siguiente ecuación,
donde g¡ = x¡Y¡ y Pi ;;; Xi + Yi:
Por consiguiente, para representar los primeros cuatro acarreos pueden obtenerse las
siguientes ecuaciones:
c, =80 + Poco
cz = g, +p, c,
C3 = 82 + P 2c 2
C4 = 83 + P 3C3
164 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Figura 4.23(c). el má ximo retardo de entrada/salida para esta red de acarreo anticipado es
de 8.2 ns.
<, ----------------------,
g~ ~"':..==':[)----------,
'.' - - - - - - - - - - - - , x,
1' ,
~2 1.4
" .' fI ,
1'3
·~i¡
JI, " Retardu
1',
/I~
P, "1 máximo = 8,2 ns
1°(,
f'" CfI
"I!
(b) Descomposición del di seño (a) (c) Implementación NAN D del diselio (b )
IP¡'., ~~~
fI ] 1' .
t'J p, "
1', - ~ lA
Retardo
máximo = 6.4 ns
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
En la Figura 4.24 se presenta un diagrama de fluj o del procedimient0 de con-
versión utili zado para los arrays de puertas en el que las redes multini ve l ANO-OR
van a ser convertidas en redes de puertas NANO de III entradas. Como se demos-
tró en el Ejemplo 4. 10, este procedimiento consta de cuat.ro pasos: descomposi-
ción, conversión, eliminación y rete mporización. En la tarea de descomposición se
dividen las puertas ANO y OR mayores en árboles de puertas AND y OR de m
entradas . En el paso de conversión, se reemplaza cada una de estas puertas AND-
OR por una combinación equivalente de puertas NAND (NOR) y NOT. Después,
en la fase de eliminaci ón se suprimen los inversores dobles innecesarios. A conti -
nuación, se calculan los retardos de entrada/salida para todos los caminos de entra-
da/salida. y los caminos que tienen mayor retardo se etiquetan para un examen más
minucioso. Si es pos ible, estos retardos en los caminos críti cos se reducen por
retemporización, que puede repetirse tantas veces como sea necesario hasta que se
llegue a un punto en que no pueda reducirse más el retardo del camino crítico.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
OR de ti! entradas por la única combinación de una puerta NAND o NOR . Sin
embargo, cuando se trabaja con bibliotecas a medida este procedimiento de con-
versión resulta más complejo, preci samente porque estas bibliotecas contienen
puertas complejas tales como puertas AO! y OAI, lo que significa que cada puer-
ta en el circuito original podría ser sustituida por más de una puerta en la biblio-
teca. Además, esto también significa que cada puerta en la biblioteca podria reem-
plazar a varias puertas en el circuito original. Por este motivo, la traslación a la
tecnología de bibliotecas a medida requiere que se agrupen las puertas en el cir-
cuito original de manera tal que cada grupo represente a una de las puertas de la
biblioteca, mientras que, al mismo tiempo, el circui to obtenido debe tener el
mínimo retardo o coste de implementación.
La tarea de agrupar las puertas en el circuito original puede considerarse como
un proceso de cobertura del circuito original con puertas de biblioteca. Así pues,
minimizando el retardo se seleccionará aquella cobertura para la que el máximo
retardo desde cualqui er entrada a la salida sea mínimo. De igual fonna, minimi-
zando el coste, se seleccionará la cobertura para la que el coste sea mínimo.
Aunque a veces es posible minimi zar el retardo y el coste al mi smo tiempo,
generalmente la minimización del retardo y del coste ocasiona dos objetivos con-
tradictorios. Por ejemplo, para minimi zar el retardo las señales de entrada deberí-
an pasar por el menor número de puertas posible. Por este motivo, los circuitos
con retardo optimizado tienden a utilizar una fonna e tándar de suma de produc-
tos (producto de sumas), que requieren sólo dos ni veles de puertas. aunque estas
formas pueden necesitar más puertas y, también, puertas con un mayor número de
entradas que las forma s no estándar. Sin embargo, para minimizar el coste se veri-
fica lo contrario ya que la implementación del circuito debe tener el menor núme-
ro de puertas posible. y cada puerta debe tener el menor número de entradas posi-
ble. Por esta razón, los circuitos con coste optimizado suelen utili zar formas no
estándar factorizadas al máximo, con más de dos niveles de puertas, lo que requie-
re menor número de puertas y puertas con menos entradas que con las formas
estándar. Después de lo dicho, puede observarse que la minimización del coste
puede ser vista como un incremento del retardo al introducir niveles adicionales
de puertas, mientras que la minimización del retardo tiende a incrementar el coste
al incrementarse el número de puertas y el número de entradas en cada puerta.
Sin embargo, en muchos casos estos dos objetivos pueden si ncronizarse
mientras se lleva a cabo la traslación a la tecnología. Como el objetivo de la
Simplificación de funciones booleanas 167
mlnlmi ZaC lOn del retardo es reducir el retardo del camino más largo de entra-
da/salida, denominado camino crítico, no hay razón por la que todos los cami-
nos no críticos no puedan minimizarse en coste, en la medida en que el retardo
de los caminos no críticos no exceda el retardo del camino crítico. Por consi-
guiente , cuando se lleva a cabo la traslación a la tecnología siempre se comien-
za minimizando el retardo del camino crítico y, después. se procede a minimizar
el coste de los caminos no críticos. Para determinar el camino crítico, general-
mente se convierte el circuito dado en un circuito NAND o NOR, ya que las
puertas NAND y NOR son usualmente las más rápidas en cualqui er biblioteca.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
En el siguiente ejemplo se detalla esta tarea de ap li cación a la tecnología de una
biblioteca a medida.
Convertir la ex presión w'z ' + z(w+ y) en un circuito lógico utili zando cualesquiera puertas
de la biblioteca definida en las Tablas 3.14, 3.15 Y 3.16.
SOLUCIÓN
Como se mueslra en la Figura 4.25(3). la expresión IV': ' + :(IV + v) puede implementarse
fácilmente con puel1as ANO, OR Y NOT obtenidas en esta bibliioteca. Sumando los relar-
dos de cada puerta individual. que se indican en el interior del símbolo de cada puerta, se
observa que el mayor retardo va desde la entrada yola entrada IV hacia la salida F. y es igual
a 7,2 ns. Además, sabiendo que cada puerta ANO o OR de 2 entradas requiere seis transis-
tores, y qu e cada inversor contiene dos transistores, se puede ver que el coste total de esta
implementación es igual a 28 transistores.
Por otra parte, si este circuito se convierte a puertas NAND siguiendo el procedimien-
to descrito en la Sección 4.5. se obtiene el circuito mostrado en la Figura 4.25(b), cuyo
retardo en el camino crítico es de sólo 5.2 ns y cuyo coste total es de 22 transistores. Como
se observa en la Figura 4.2S(c), este circuito permite dos posibles conversiones en relación
al camino crítico desde yo whacia F, que se muestran aquí como alternativas Ay B. Si se
implemellla la alternativa A. se reemplazan tres puertas por una puerta AO! de 2 entradas
y 2 ni ve les y un in versor. como se muestra en la Figura 4.25(d). Desafortunadamente, esta
substitución incrementa en 0,2 ns el retardo en el camino crítico, si bien reduce el coste total
a 20 transistores. Por el contrario, si se implementa la alternativa B, reemplazando tres puer-
tas por una puerta OAI de 2 entradas y 2 niveles, como se indica en la Figura 4.25(e). se
puede reducir a 3,4 ns el retardo del camino crítico y reducir el coste a 20 transistores. Sin
embargo. al mismo tiempo se puede introducir un nuevo camino crítico desde las entradas
11' y : hacia la salida F. que tendrá un retardo de 3,8 ns.
Ya que se ha generado un nuevo camino crítico, es necesario volver a prestar atención
en la reducción de su retardo. Sin embargo, para este camino crítico no se puede aplicar
reducción alguna, aunque puede obtenerse una ligera reducción de coste reemplazando la
agrupación formada por los dos inversores y la puerta NANO de 2 entradas de la Figura
4.25(e) por una puerta NOR de 2 entradas y un inversor. El resultado final. mostrado en la
Figura 4.25(f), tiene un retardo en e l camino crítico de 3,8 ns y un coste total de 18 tran-
sistores.
168 Principios de diseño digital
y ----~-1::-:-
~. y~ F
(a) Imp lementación AND-O R (relardo = 7.2 ns: coste = 281
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
(b) Implement ación NANO (retardo = 5.2 ns: coste = 211
-------
B
F
... --------I'-I!>I.--J'-i-:-~
I~~
O_~
_ 1,4,
1.4 F
"
---- /
,.
(1) Al ternativa B opt imizada en coste (retardo =3.8 ns: coste = 1S)
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Seleccionar un camino
Seleccionar puena
¿Crlfl~ideraJo; "O
1(Jdoo;Irlj:
l'rnpon~nle,1
si
¡,ConIHlerad35 "0
uxL.Js las
putn~~~
lOllIHlerao.kls no
ludo> los
rlmioos'.'
sí
E)
FIGURA 4.26 Procedimiento de conversión para bibliotecas a medida.
170 Principios de diseño digital
el objetivo de obtener una cobertura de única puerta que consiga la mayor ganan-
cia. Este procedimiento se repite hasta que todas las puertas del camino crítico
hayan sido cubiertas por, al menos, una de las puertas de la biblioteca. A conti-
nuación. se selecciona la alternativa de mayor provecho y se recalculan los retar-
dos en el resto de los caminos utilizando los mismos procedimientos para cubrir
el más largo de los caminos no cubiertos. Finalmente, cuando todos los caminos
del circuito hayan sido cubiertos, terminará el procedimiento de conversión y se
podrá proceder con la eliminación de inversores y a la retemporización. como se
ha descrito en la Figu ra 4.24.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
4.7. DISEÑO LIBRE DE RIESGOS
Cuando se diseñan circuitos combinaciona les se debe estar seguro de que el cir-
cuito opera adecuadamente bajo todas las posibles condiciones. Una condición que
puede originar un mal funcionamiento del circuito se denom ina riesgo. Los riesgos
generan pequeños pulsos espúreos indeseables que aparecen en las salidas a causa
de los diferentes retardos de propagación en caminos diferentes, pero convergen-
tes, a lo largo del circuito. Concretamente, un pulso espurio es un cambio de corta
duración en el valor de la salida cuando no debería aparecer cambio alguno.
El concepto de riesgo se muestra en el ejemplo de la Figura 4.27. en la que se
expone la representación de mapa y el circui to lógico correspondiente a la función
booleana F = xy' + yz.
A partir del circuito de la Figura 4.27(b) puede verse que hay dos caminos
diferentes, etiquetados como a y b. desde la entrada y hasta la salida F. con dos
retardos de propagación diferentes. El retardo en el camino a, que va desde y hasta
F a través del inversor, una puerta ANO y una puerta OR, es de 5.8 ns. mientras
que el retardo en el camino b, que sólo atraviesa una puerta ANO y una puerta OR
es de 4,8 ns. En el caso en que x = Z = 1, v = 1, la sa lida Fvaldrá 1 debido al cami-
no b. De igual modo, cuando x = Z = 1, v = O. la salida Fvaldrá l debido al cami-
no a. Por consiguiente, en un diseño ideal donde el retardo de las puertas es O. la
salida F debería permanecer a l cuando y cambia de l a O, ya que a se hace igual
a l al tiempo que b se hace igual a O. Sin embargo, en realidad a necesita 3,4 ns
para llegar a valer 1, mientras que bse iguala a O en 2.4 ns, forzando F a O duran-
te l ns. Esta situación se muestra en la Figura 4.27 (c). en la que y cambia a O en
'o seguida por un cambio de ba O en to+ 2.4 ns y por un cambio en a al valor 1 en
'o+ 3,4 ns.
'1
Ya que F es igual al valor de ao al valor de b. Fcambia a O en = 'o+ 4.8 ns ,
y vuelve a valer l en 12 = 'o+ 5.8 ns. Este pulso espurio de l ns es debido a que
existe un riesgo estático al uno al implementar la función booleana F. Más con-
cretamente, se dice que un ci rcuito lógico tiene un riesgo estático al uno si hay dos
implicantes que difieren en sólo una variable que no están cubiertos por un tér-
mino producto común en la implementación de suma de productos. De igual
forma, se puede definir un riesgo estático al cero como una condición en la que,
en una implementación de producto de sumas, hay dos minterms que hacen O a la
Simplificación de funciones booleanas 171
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
sión de suma de productos. Este implicante primo adicional es redundante ya que, con
o sin él, la expresión de suma de productos define la misma función booleana.
)'
x o 01 11 111
"
.
o I
I
-I - . - I- , I
--
F"'-D"+Y::
(a) Representac ión de mapa
x ----r~
y F
'11----
,
a -..., 3.4
l-
,
b
-' ,
,
,
1,4
1-
F ~:+- ..j..8 ---+~~
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
diagrama de tiempos de la Figura 4.28(c). esta puelta redundante ev ita la aparición
de un pulso espurio ya que el valor de e = xz es igual a 1 durante el cambio en el
valor de y mientras x = ~ = l . Para el di seño de circuitos libres de riesgos puede
aplicar e una técni ca simi lar a la form a de producto de sumas. en la que se añaden
implicantes primos redundantes para evitar los riesgos estáticos al cero.
y:
x 01 10
o
Ú
" I
I I I I
.• ----'-"-C\
~ b) E:.qucrna lógico
'If-----
•
h ~: 2.-l LI+-
_____ _
F ---~-------------
En general. los riesgos estáticos se originan a causa de dos seña les comple-
mentarias (tales como ye y ' ), que se hacen iguales por cortos períodos de tiempo
debido a los diferentes retardos en caminos di stintos a través del circuito. Si ade-
más dos señales que tienen siempre el mismo valor se hacen diferentes por un
corto período de tiempo, se dice que el di seño presenta un riesgo dinámico. Esta
situación se produce cuando el mismo valor de la variable se propaga a través del
diseño por dos caminos diferentes con distintos retardos. Un riesgo dinámico oca-
siona un pulso espurio en la salida des pués de una transición de O a I ó de I a O.
Como ejemplo, considérese el diseño de la Figura 4.29, que fue obtenido aña-
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
diendo una puerta AND y otra OR al diseño con un riesgo estático al uno de la
Figura 4.27(b). Como se muestra en el diagrama de tiempos de la Figura 4.29(b),
la señal c genera un pulso espuri o a los lO + 4,8 ns después de que y cambi e de 1
'1
a O en lo' Por otra parte, la señal e/cambia de O a 1 en = lo + 3,4 ns. Como en ese
'2 '1
instante ees igual a 1, la salida Fcambianí a 1 en = + 2,4 ns. Sin embargo, el
'2
pulso espurio en la señal eaparecerá a la salida en + 1,4 ns y desaparecerá 1 ns
después en 12 + 2,4 ns.
... - - - - - - - / . : : . /
(a) Esquema lógi¡,;o
x-----------
"If-----
'" - - , - - - - - - - - - -
'o
(b) Diagrama de tiempos
Este riesgo dinámico puede eliminarse del diseño de varias formas distintas.
Una de ellas, es eliminar el riesgo estático introduciendo un implicante primo
redundante, como se ha expuesto anteriormente. Otra manera consiste en retrasar
el cambio en dhasta 12, insertando en dotra puerta con un retraso de 2,4 ns o más,
entre la puerta OR y la puerta AND de salida. Este retardo adicional retrasará el
cambio en d de O a l hasta 12, y el cambio en F de O a l hasta 12 + 2,4 ns, cuando
el pulso espurio ya haya desaparecido.
Hasta ahora se ha mostrado que los riesgos estáticos y dinámicos causan un
funcionamiento erróneo del circuito durante cambios en una variable. La detec-
ción y eliminación de riesgos con cambios en múltiples variables es más difícil, y
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
se encuentra fuera del alcance de este libro.
Como conclusión, los riesgos en lógica combinacional no son tan críticos ya
que las salidas alcanzan su valor estable tras algún tiempo. Por otra parte, los ries-
gos en circuitos secuenciales son críticos ya que los pulsos espúrios pueden con-
fundirse con pulsos de señales válidas y llevar a un componente secuencial a un
estado incorrecto, sin la posibilidad de recuperarlo de este malfuncionamiento.
grandes en puertas más pequeñas con el mismo número de entradas que las puer-
tas NANO o NOR de la biblioteca, y después cada puerta se convierte en puertas
de la biblioteca utili zando las reglas de conversión dadas. Tras la conversión de
las puertas, se procede a la eliminación de inversores para reducir el coste, y a una
retemporización para reducir el retardo de propagación en los caminos críticos.
El segundo método presentado está pensado para bibliotecas a medida, que
incluyen puertas complejas que pueden realizar varias operaciones booleanas
diferentes concurrentemente. En este método, primero se implementa una función
booleana con puertas NANO y NOR para estimar con precisión el retardo de pro-
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
pagación y para obtener los caminos críticos en las implementaciones. Después de
estimar el retardo, primero se intenta reducir el coste de los caminos críticos y, a
continuación, se procura reducir el coste de los caminos no críticos. De este modo
se pueden satisfacer los dos requisitos contrapuestos de coste y optimización de
prestaciones.
4.10. PROBLEMAS
4.1. (Representación de cubos) Especi- (d) F = x'y'z' + wy'z + xyz' + w'yz'
ficar las representaciones de cubo e
identificar todos los subcubos para 4.2. (Representación con mapa) Ge ne rar
las siguientes funcio nes booleanas. las representaciones con mapa para
(a) F = i,io + xoY' , + x,i, + x,xo + las siguientes fu nciones booleanas.
x¡y'o (a) F = \V'x + xy + wi + \vx
(b) F;;;; w'z' + wz + w) (b) F = x ,x'o + x,Yo + y ,yo + x,y, +
(e) F = \V'~" + ~y + \Vi X oY,
176 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
X¡XcV'¡Yo + X1..\.1oY¡io
(e) F = \V/z' + yz + w.: 4.9. (Método tabular) Utilizando el méto-
(d) F = Wl/Z ' + xy'z + lVyZ + x'y~' do tabular, obtener todas las cobertu-
ras mínimas para las siguientes fun-
4.4. (Mé todo del mapa) Utilizando el
ciones booleanas.
método del mapa, determinar los
(a) F = wx + x'y' + w'y
implicantes primos de las siguientes
(h) F::; w'y'z' + xy'z + wy.: + wx'y +
funciones booleanas.
w'x'.:'
(a) F = X'¡KO + YIYo + x'r\"c/ ¡Yo +
(e) F::; wx'y'z' + wxz' + x'y';:: + \V'y
x'¡xoY¡JI'o + x¡x'oY ¡/o
(h) F = w/x' + w'xy + wx'y' + HiX (d) F = x' ,x'aYo + x IV, + x,x'~)',Yn
(e) F = w'y'z' + ..\)1'Z + wyz + x'yz' 4.10. (Traslación a arrays de puertas)
(d) F;;;; w/y + w'x'z + xyz' + wx'y' + Convertir la función wx'y' + yw'z' +
wy'z.' yxz + y..\"lV a:
(a) puertas NANO de 2 entradas
4.5. (Método del mapa) Obtener todos los
(h) puertas NANO de 3 entradas
implicantes primos esenciales para las
(e) puertas NANO de 4 entradas
siguientes funciones booleanas.
(a) F=y',(y'II+xl1+x,)+x,(xo+ y'o) 4.11. (Traslación a arrays de puertas)
(b) F = ,t',x'IIy',y'O + x'r'aY', yo + Convertir las siguientes funciones a
x¡xoY¡Yo + x¡x'oY li o puertas NOR de 3 entradas.
(e) F;::: w/x/z/ + w'x1y + wxz + wx'y' (a) F::; wX'y' + xyz + w'yz' + wxy
(d) F = y'z + wyz + w'(v' + z') (h) F = wx'v' + y(lV'Z' + xC: + IV))
(e) F::; H'X'y' + \V'y.:: + xz(w + y)
4.6. (Método del mapa) Obtener todas las
(d) F = IV'(y:' + xy) + lV(X'y' + xz)
coberturas mínimas para las siguien-
tes funciones booleanas. 4.12. (Traslación a arrays de puertas )
(a) F = lV'X' + w'xy + wx + w.r y' + xy Suponer que las siguientes expresio-
(b) F = yz + lV'Z' + wiz nes han de implementarse con puertas
(c.) F = x'y'z' + \Viz + xyz + w'yz' NOR de 2 entradas y realizar la des-
(d) F = \Vy':' + lVX'y' + w'y + w'x'y'z composición de puertas que minimice
+ wxy.:' su retardo.
(a) F;;: w'xy.:' + w'y';::' + ~vy'z + y..: +
4.7. (Método tabular) Utilizando el méto-
H,':ey::'
do tabular, obtener todos los implican-
(h) F::; w'y + WZ + w';:'
tes primos para las siguientes expre-
(e) F = HI'X' + W..\" + w'x.v + IV),';::' +
siones booleanas.
wx'y'z
(a) F=~0,4,5 , 8 , 9.10, 12.13, 14, 15)
(d) F::; wi + xy + w'x + \iVxy;:
(b) F=L(O, 1,2.4, 5, 6,9, 11 , 13, 15)
(e) F = L(I , 2. 3. 6, 7, 8. 9.12, 14) 4.13. (Traslación a la tecnología) Utilizando
(d) F = L(O, 2. 4. 5. 10, 11 , 13, 15) la biblioteca detlnida en las Tablas 3. 14,
Simplificación de funciones booleanas 177
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
biblioteca definida en la Tabla 3,14, (b) La biblioteca a medida definida
en las Tablas 3,14 y 3, 15,
4.15. (Traslación a la tecnología) Rehacer el
(e) La biblioteca a medida defini -
problema 4,13 utilizando sólo la
da en las Tablas 3.14, 3,15 Y
biblioteca definida en la Tabla 3,16,
3,16,
4.16. (Traslación a la tecnología) Comen-
4.18. (Diseño libre de riesgos) Detectar y
zando con el sumador completo defi-
corregir todos los riesgos estáticos
nido en la tabla del Problema 3,15,
para la solución propuesta en el
di señar una implementación con retar-
Ejemplo 4, 1,
do mínimo que utilice:
(a) La biblioteca a medida definida 4.19. (Diseño libre de riesgos) Diseñar uoa
en la Tabla 3,14, implementación libre de riesgos para
(b) La biblioteca a medida definida la función booleana dada en el
en las Tablas 3,14 Y 3,15. Ejemplo 4,2.
180 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
que) y operaciones de tratamiento de bits (desplazamiento, rotación, extracción e
inserción). Los componentes de interconexión, que comprenden selectores y
buses, se utilizan para conectar componentes aritméticos y de almacenamiento.
Los componentes de conversión tales como decodificadores y codificadores se
usan para realizar conversiones entre diferentes códigos. Finalmente, los compo-
nentes universales como memorias de sólo lectura (ROM, Read Oll/y Mem ol)') y
arrays lógicos programables (PLA) se utilizan principalmente en el diseño de uni-
dades de control.
En las secciones siguientes se describen lodos estos componentes y se mues-
tra cómo pueden construirse a partir de puertas estándar. Para simplificar las
explicaciones. se utilizan sólo puertas genéricas ANO, ORo XOR y NOT, y no se
intenta optimizar cada diseño para una tecnología o biblioteca particu lar.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
y, XI' x i yi
XI C¡ Ci+l SI
,
¡· í
, o 01 ti 10 e O 01 11 10
O O O O O
O O I O I o 1 I O I
O I O O I
O I I I O
I O O O I I I I 1 I I I
I O I I O
I I O I O
I I I I I S=
, .t , $\'$c
. , I c:,. , =X¡Y, +", (x, $)',)
x y
Co ut Sumador
f.-J==-C]::l......!-c,
FA n
'-----.:¡:. s
s,
(e ) Circu ito lógico del sumador completo (e) Símbolo gráfico
~
'- '- '- '- '- '- '-
e, e, e. e, e,
~
0,
t· FA 1-'- FA ¡...-.:: I'A ~ FA ~ FA ¡...-.:: FA FA ~ FA
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
y la función propagación de acarreo Pi = Xi El) Yi' los cuatro acarreos ei+I, .. ·,ei+4
pueden .expresarse como sigue:
•
C;+ I = g¡ + Pie,. (5. 1)
Cj+2 = gi+l + Pi+l Ci+l (5.2)
Ci+3 = 8;+2 + Pi+2C ¡'+2 (5.3)
Ci+4 = 8;+3 + P i+3Ci+3 (5.4)
Además, tras sustituir términos, se puede expresar cada uno de estos acarreos
en términos de ei , como en las siguientes expresiones:
Cj + 1 = g¡ + Pie,. (5.5)
ei+2 = 8i+1 + P i+18i + Pi+tPiei (5.6)
ei+3 = 8i+2 + Pi+28i+1 + Pi+2Pi+18i + Pi+2Pi+1Pi e i (5.7)
Ci+4 = g;+3 + Pi+3gi+2 + Pi+3Pi+2Ei+1
+ Pi+3Pi+2Pi+lg¡ + P i+3Pi+2Pi+tP ¡C¡ (5.8)
Las ecuaciones (5.5)-(5.8) muestran que los acarreos e i+1 ' e i+2' ei+3 Ye i+4 pue-
den calcularse directamente a partir de los bits de entrada y del acarreo de entra-
da ei sin el efecto cascada. En otras palabras, ninguna de las Ecuaciones (5.5)-
(5.8) depende de ei+1 ' e i+2' e i+3 o ei+4' sin embargo, esta técnica no puede ampliar-
se fácilmente a módulos de n-bits, siendo n mayor que cuatro, a causa de las limi-
taciones en la conectividad de entrada y salida. Como se observa en la Ecuaciones
(5.5)-(5.8), el número de términos producto y el número de literales en cada tér-
mino producto se incrementa en uno en cada ecuación sucesiva, necesitando ade-
más puertas con n+ 1 entradas para un módulo de n bits. Si la biblioteca disponi-
ble contiene puertas con conectividad de salida mucho más pequeña, estas puer-
tas deben implementarse con múltiples niveles de puertas, como se ha visto en el
Ejemplo 4.10. Una implementación con múltiples puertas introduce mayores
retardos, lo que contradice el objetivo de mejorar la velocidad de propagación del
acarreo.
De forma similar, al incrementarse el número y tamaño de los términos en las
Ecuaciones (5.5)-(5.8), puede observarse un incremento en la aparición de varia-
bles en esos términos. Concretamente, cada variable Pi+k' O S; k S; n - 1, aparece
(k + l)(n - k) veces en las ecuaciones del acarreo. Por ejemplo, Pi aparece cuatro
veces YPi+1' Pi+2 YPi+3 aparecen 6, 6 y 4 veces, respectivamente. Con un número
mayor de aparición de variables, debe incrementarse la conectividad de salida de
Componentes combinacionales 183
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
P U.i+3) = Pi+3Pi+'1Pi+iPi (5.11)
En las Ecuaciones (5.5)-(5.11) se ha definido el componente combinacional,
denominado generador de acarreo anticipado (CLA) (carry-Iook-ahead gene-
ra/or). En las Ecuaciones (5.10) y (5.11), específicamente, se han definido las
funciones generación de acarreo y propagación de acarreo para un módulo de 4
bits, que pueden utilizarse por los CLA de mayor orden en la generación de aca-
rreos en módulos mayores de 4 bits.
Este generador CLA puede utilizarse para reemplazar la cadena de acarreo de
4 bits que calcula ci+l' ci+2' ci+3 Y Ci+4 haciendo, así, más rápido el sumador.
Considérese, por ejemplo, la comparación entre un sumador con acarreo anticipa-
do y un sumador en cascada. Como se observa en la Figura 5.2(a), la cadena de
acarreo de 4 bits en el sumador en cascada contiene una puerta AND y una puer-
ta OR, utilizadas para calcular Ci+l = gi + PiCio
Sin embargo, si reemplazáramos esta cadena de acarreo por el generador CLA
mostrado en la Figura 5.2(b) obtendríamos el sumador CLA mostrado en la Figura
5.2(c). En esta versión del sumador, el generador CLA produciría cuatro acarreos
con menos retardo que la cadena de acarreo propagado. Los retardos de entra-
da/salida para el sumador de acarreo propagado de la Figura 5.2(a) y el sumador
CLA de la Figura 5.2(c) se resumen en la Tabla 5.1. Como puede observarse en
la tabla, el generador CLA tarda sólo 8.8 ns en generar Ci+4' lo que es significati-
vamente menor que los 19,2 ns que requiere la cadena de acarreo propagado. De
igual forma, el retardo desde Xi o Yi hasta Ci+4 es de 13,0 ns para el sumador CLA,
a diferencia de los 23,4 ns del sumador de acarreo propagado. De esta compara-
ción, pues, se deduce que el generador CLA de 4 bits originará un sumador de 4
bits más rápido, y que conectando varios sumadores de 4 bits como éstos se podría
mejorar también sustancialmente la velocidad de sumadores mayores. En la
Figura 5.3(a) se muestra un sumador de 16 bits que contiene cuatro sumadores
con acarreo anticipado de 4 bits. El sumador se ha realizado de forma tal que los
acarreos en cada sumador de 4 bits se calculan con un generador CLA, mientras
que los 4 bits de acarreo C4' c8' c12 Y c16 se propagan en cascada a través de los
módulos de 4 bits, de manera que el acarreo de salida desde un generador servirá
como entrada de acarreo al siguiente generador más significativo.
Este tipo de sumador, en el que los generadores CLA se han utilizado para
aumentar la velocidad de los acarreos en módulos de 4 bits, mientras que los aca-
rreos entre los generadores se propagan en cascada a través del sumador, se
denomina sumador CLA de un nivel. También se puede hacer más rápida la
184 Principios de diseño digital
generación de los 4 bits de acarreo C4' Cs, C12 Y cI6 utilizando un generador CLA
adicional.
,,.,
r--- ----- -1 r--- f-¡==;--j-I r--- H==;--j·-' r---¡":¡=:::,i -'
(", ' ~
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
(a) Módulo de 4 bits de un sumador con acarreo en cascada
~ ~
r--~----'~'·~'--+---LL----·~'·~'--~~-L--~~-1--~~--~2-,~
Gm,",doc e LA "
Utilizando la Ecuación (5 .9), los acarreos C4' CS' C l 2 Y cI6 pueden expresarse
como:
C4 = g (O.3)+ P(O,3)cO (5.12)
Cs = g(4,7) + P(4,7 )c4 (5.13)
C12 = g(s.l l ) + P (8, II)c8 (5 .14)
cl6 = g(12,15) + P ( 12.15¡C1 2 (5.15)
Componentes combinacionales 185
RETARDO ACARREO
CADENA DE ACARREO RETARDO CASCADA
ANTICIPADO
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
c¡(x¡. Yi) a g l;,;+3) No aplicable 6,4 ( 10.6)
c¡(x¡. Yi} a PW+3) No aplicable 3,2 (7,4)
Ya que las Ecuaciones (5.12)-(5.15 ) tienen la misma forma que las Ecuaciones
(5.1 )-(5.4), puede utilizarse un generador CLA para generar los acarreos C4' CM' Cl 2
y C l 6 como indica la Figura 5.3(b). Observe que, en este diseño a dos niveles, el
acarreo no se propaga en cascada a través de los generadores CLA: por el contra-
rio. el segundo nivel genera estos acarreos para los generadores CLA del primer
nivel. En este diseño, pues, los acarreos de salida e", e8' cl 2 Y C l 6 desde el primer
nivel de generadores no se utilizan. En su lugar, se utilizan las salidas g (I.;+3) y
P U.;+3) desde los generadores del primer nivel para generar estos acarreos en el
generador CLA del segundo nivel.
'11 '11 ' ltI 1 , ,, " , ' "" " l. l_ l. ' .. 'b '~ " t, ' 1
Igual que en la Ecuación (5.9), se puede definir el acarreo Cl6 en términos del
acarreo de entrada Co con la siguiente ecuación:
(5.16)
Las funciones de 16 bits de generación de acarreo y propagación de acarreo,
Y P(O.IS ) tienen la misma forma que las dadas por las Ecuaciones (5.10) y
g (o. IS )
(5.11), Y pueden utilizarse para la generación de acarreos de mayor orden C16, c32 ,
c48 Y c64 en un sumador de 64 bits con tres niveles de generadores CLA.
En general, en un sumador de n bits se pueden utilizar Ilog 4nl niveles de gene-
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
radores CLA. En la Tabla 5.2 se han comparado los retardos de los sumadores de
16 bits de las Figuras 5.3(a) y (b), que disponen de generadores CLA de uno y dos
niveles, con el sumador de 16 bits de acarreo propagado.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
ce tanto la suma como la resta.
En general, este sumador/restador tendrá dos entradas A = a,,_I ···aO Y
B = b,,_I ...bO Y una salida F = I,,- I .. fo , así como una señal de selección, S. Siempre
\ que S = O, el sumador/restador realizará la suma, y cuando S = 1 realizará la resta.
La tabla funcional para el sumador/restador se muestra en la Figura S.4(a), y su
símbolo gráfico se indica en la Figura S.4(b). Finalmente, como ejemplo, en la
Figura S.4(c) se muestra un sumador/restador de 8 bits. Obsérvese que esta figu-
ra representa un diseño de acarreo propagado, si bien podría también utilizarse
una implementación de acarreo anticipado (CLA) como la expuesta en la Sección
S.2. En esta implementación, el complemento de la entrada B se obtiene realizan-
do una operación XOR entre S y B.
A 8
s
Sumador/restador
o A+B Suma
1 A+B'+1 Resta
(a) Tabl a de verdad
F
(b) Símbolo gráfico
I
188 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
En la Figura 5.5(a) se muestran las 16 func iones booleanas de dos variables.
Como son 16 funciones, deben utili zarse cuatro variables de selección S), S~, S] y
So para permitir elegir cualquiera de estas funciones. La codificac ión de estas
variables de selección para una función dada es tal que la variable de selección Si'
para O $ i $ 3, es igual a 1 si y sólo si el minterm m ¡ = I para esa función. Por
ejemplo, la función OR es/]4 = m ) + IIZz + m], así que los valores de las variables
de selección son S)S2S]So = 1110. Obsérvese que. cuando el valor de las variables
de selección S)S2S]SO se interpreta como un número binario, será igual al índice
de la función que selecciona. En otras palabras, en el caso de la función 1]4. el
valor de S3S2S]SOes igual a 111 0, que es también la representación binaria del
número entero 14.
", )',
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
funcionando concurrentemente, como en el caso de la unidad lógica de 8 bits mos-
trada en la Figura 5.5(d).
•
5.5. UNIDAD ARITMÉTICO-LÓGICA
Una unidad a ritmético-lógica (ALU, Arirhllletic-Logic Unit) realiza las opera-
ciones aritméticas y lógicas básicas de un microprocesador. Estas operaciones
aritméticas incluyen, por ejemplo, la suma. resta, incrementar y decrementar, y
sus operaciones lógicas incluyen la ANO. OR, identidad y operaciones de com-
plemento. Como todas las operaciones aritméticas están basadas en la suma, se
puede di señar una ALU simplemente modificando las entradas de un sumador de
acarreo propagado o de acarreo anticipado (eLA). La lóg ica de modificación uti-
lizada en las operaciones aritméticas se denomina, a veces, un ampliador arit-
mético (AE, Arit/unetic Extender), y la lógica de modificación utili zada para las
operaciones lógicas se denomina un ampliador lógico (LE, Logic Extender) .
Cada uno o ambos ampliadores se conectan a la entrada del sumador, como se
indica por las líneas discontinuas de la Figura 5.6. Ahora, mostraremos cómo
diseñar estos ampliadores de uno en uno.
X,
. >", Ye,
e,
X ·( 1 .tu
J y" )'2
e, -e,
FA FA FA FA
-~ en
+
J, •
1, •
Jo
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
así como los valores de las entradas del sumador X, Y Y Co necesarios para gene-
rar ese valor de F. Obsérvese que, de acuerdo con esta tabla, la entrada X del
sumador requiere siempre el valor de A, mientras que la entrada Y puede disponer
de todo unos, B, B' o todo ceros. Estos valores para la entrada Y serán generados
por el AE, cuya tabla de verdad se muestra en la Figura 5.7(b). Esta tabla se ha
obtenido a partir de la tabla funcional de la Figura 5.7(a) simplemente expan-
diendo la columna Yen las columnas b¡ e y¡. En la Figura 5.7(c) se muestra la
representación en forma de mapa del AE, a partir de la cual se obtiene su expre-
sión booleana:
y¡ = MS' lb¡ + MS'ob'¡
Finalmente, el circuito lógico de este AE se muestra en la Figura 5.7(d).
M S. ~ NOIIIIE DE lA RIOlN F X Y q,
O O Decremento A- l A Todo unos (1) O
O I Suma A+B A B O
• I O Resta A + B' +I A B' I
I I Incremento A + I A Todo ceros (O) I
(a) Tabla funcional
b,
MS.~b, y, "10 00
b; 01 11 10 'o
O
O
O O I
O I I
- --, ,- - ,\' ,
O 1 I 1 M
- --,
I
O I O O ,--
O I I I
I O O I ,, __-1-
r - -,
1 1
I
I
O I O - -- -•
O O
I I O
y¡=MS ¡b,+MS'¡jJ',
(b) Tabla de verdad .v,
(e ) Representación con mapa td) Esquema lógico
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
x; = M'S'¡S'¡¡a'; + M'SISob; + Soa;b; + Sla; + Ma;
Una vez obtenida esta expresión, se procede a la construcción del circuito
lógico del LE, mostrado en la Figura 5.8(d).
M,.D M.1
J]SU S,
00 01 11 10 00 01 11 10
(I,b,
S,
00 ,' I ',
, ,
..,
M
, ,
01 ,' 1 ,' -,
~l ~ -
• '. ¿
.-, r -r , - - - -r----' ----, .
11
r -
J' : 1 J .' ~ 1,
l'
10
,, 1,
, , 1
1 1
l •• _
- -- -1 "
~,
UI
.x;~I'S 15'0'" I + M'S ¡Sub, + S¡p ,b¡+S 1aI + Ma,
",
(e) Representación con mapa (d) Circuito lógico
LE sin cambiarlos. En otras palabras, los FA se util izan como conexiones con
retardo fijo.
Obsérvese, también, que el acarreo de salida del bit más significativo repre-
senta un desbordamiento en el caso de aritmética sin signo y que la EX-OR de los
acarreos de salida de los dos bits más significativos representa el desbordamiento
en el caso de ari tméti ca en complemento a 2. Si es necesario, la ALU de 4 bits
mostrada en la Figura 5.9(a) puede ampl iarse a una ALU de 11 bits utilizando un
sumador de 11 bi ts conjuntamente con 11 AE Y n LE. El símbolo gráfico para esta
ALU se muestra en la Figura 5.9(b). En la industri a, muchas ALU utili zadas en
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
productos reales se construyen de esta manera, con la excepción de que pueden
diferir en el número y tipo de sus operac iones aritméticas y lógicas, y en la imple-
mentación de sus cadenas de acarreos.
LE AE LE AE LE AE LE AE
-r '-L-r-"-r '-L-r-"-r
---yo- ---yo-
T
x) Y3 .1:
2 .\", x, -"1 "0 Yo
e,
~
e3 e2
FA FA FA FA
Ir',=
~ ~ ~ ~ ~
Desbordamiento (, J, Jo
(a) ALU de 4 bits
A B
~ ---r--~--~---'
S, Unidad lógi ca
M
Desbordamiento F
5.6. DECODIFICADORES
Los decodificadores (a veces llamados también demultiplexores) se incorporan
frecuentemente en grandes unidades para su utili zación siempre que se neces ite
°
acti var o habilitar sólo uno de /1. subcomponentes . En ta l caso, a cada subcompo-
nente se le puede asignar un índi ce entre y 11- 1 que representa una direcc ión
binaria A. Para acti var un subcomponente concreto en un ti empo dado, esta direc-
ción A se decodifi ca en n líneas de habilitación, de las cuales sólo una es igual a
1. En general , un decodificador de 11/ a n tiene 11/ = log211 líneas de entrada,
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
A",_I".A O' y 11 líneas de salida, C,,_I "'CO' as í como una entrada de contro l, E. Esta
entrada de contro l habilita las salidas del siguiente modo: siempre que E = O todas
las salidas son 0, y siempre que E = I sólo la salida C, será 1, siendo i el entero
cuyo valor es igual al valor binario de las entradas A ",_I" .A O'
Como ejemplo, la Fi gura 5. I O muestra un decodificador de I a 2, y el símbo-
lo gráfi co y la tabla de verdad se dan en las Figuras 5. 1OCa) y 5. IO(b). Como puede
verse, el decodificador tiene una línea de dirección, Ao, y una línea de habilita-
ción, E, con dos líneas de salida C o y CI ' Mientras E valga 1, Co = I siempre que
Ao = 0, y C I = I siempre que Ao = l . Las expresiones booleanas de las salidas C I
y Co se muestran en la Figura 5. IO(c) , mientras que su implementación con puer-
tas se presenta en la Figura 5.IO(d).
A"
E Ao C, Ca
Decodificador
J O O J
J J 1 O
O X O O
eI e" (b) Tabla de verdad
(a) Símbolo gráfico
E Au
e, Co
(e) Expresi6n booleana (d) Diagrama lógico
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
A, Ao
Decodificador
E A, Aa C:! c.. e, c"
E
3 2 I a J O O O O O 1
1 O J O O J O
1 1 O O 1 O O
eJ e2 el Cu 1 1 1 1 O O O
O X X O O O O
(a) Símbolo gráfico
(b) Tabla de verdad
FIGURA 5. 11 Decodificador de 2 a 4.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
E Aa.-A, A., C, Gt es c.. Ca Ca t; Co
1 O O O O O O O O O O 1
1 O O 1 O O O O O O 1 O
1 O 1 O O O O O O 1 O O
1 O 1 1 O O O O 1 O O O
1 1 O O O O O 1 O O O O
1 1 O 1 O O 1 O O O O O
1 1 1 O O 1 O O O O O O
1 1 1 1 1 O O O O O O O
O X X X O O O O O O O O
• •
• • • •
••••
(b) Implementación con decodificadores de I a 2 (e) Implementación con decodificadores de 2 a 4
5.7. SELECTORES
En muchos diseños se encuentran componentes que necesitan utilizar datos de
fuentes distintas en tiempos distintos. Para tales diseños es necesario un selector
196 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
En la Figura 5.1 3 se muestra un selector de 2 al , cuyo símbolo gráfi co se pre-
senta en la Figura 5. 13(a) y su tabla de verdad en la Figura 5. 13(b). Como puede
verse, este selector de 2 a I di spone de dos entradas, D, y Do, Y una salida, Y, ade-
más de una señal de selecc ión, S, que selecciona una de las entradas del sigui en-
te modo: siempre que S = O la salida Y = Do, mientras que siempre que S = I la
salida Y = D" La ex presión booleana para la salida Y se indi ca en la Figura 5. l 3(c)
y el di agrama lógico completo de este selector de 2 a I se presenta en la Figura
5.1 3(d).
Ji
y
s
O Do
I D,
l' (b) Tabla de verdad
(a) Símbolo gráfico
l'
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Figura 5.15 muestra un selector de 8 a l, cuya tabla de verdad se· indica en la
Figura 5. l 5(a), mientras que en la Figura 5.l5(b) se muestra una implementación
que utiliza selectores de 2 a l.
DJ D ~ D I DI)
S, S, So y
So
O O Do
O 1 D,
l O D,
y
1 1 D3
Ca) Símbolo grMico (b) Tab l:1 de verdad
0 3 O, O, O" S. Su
tendrían que crecer con el número de entradas de manera que las puertas de mayor
tamaño tendrían que implementarse como árboles de puertas, lo que incrementa-
ría significativamente el coste y el retardo del selector. Por este motivo, general-
mente se utiliza esta implementación con puertas sólo para pequeños valores de
n, mientras que los selectores para valores mayores de n se construyen con el
método descrito anteriormente, utilizando varios niveles de selectores de 2 a l y
de 4 a 1.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
s, s, So y
O O O Do
O O I DI
O I O D2
O I I D,
I O O D.
I O I D,
I I O D.
I 1 I D,
(a) Tabla de verdad
y
l b) Imple ment ación con selectores de 2 al
s, s, So y So
SI
O O O DO 52
O O I DI
O I O D?
O I I D;
I O O D.
I O I D,
I I O D.
I I I D,
(a) Tabla de verdad
5.8. BUSES
Aunque los selectores descritos en secciones anteriores se utilizan habitualmente,
aquéllos que tienen un mayor número de entradas son difíciles de fabricar, ya que
requieren reunir muchas conexiones centralizadas, donde se sitúa el selector.
Afortunadamente, existe una solución elegante a este problema, que se denomina
bus, que puede estar situado fácilmente alrededor de otros objetos en un micro-
chip o en una tarjeta PCB. Para realizar un bus se utiliza un componente denomi-
nado adaptador triestado, cuya salida proporciona tres valores diferentes, O, l YZ.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
El valor Z representa un estado de alta impedancia, que puede considerarse como
una desconexión eléctrica del bus a efectos prácticos.
s --.1[;»--..,
Do -+-----1 ':>---1
y
D, -------1 o Do
1 DI
(e) Bus de 2 entradas (d) Tabla de verdad para el bus de 2 cntr3das
Do --+++---1
(
D, _-++_--1 ~>---I
y
s, ~ y
D, -+---r,::>---~
O O DO
D, _ _ _ _ ---1 O l DI
1 O D2
l i D,
(e) Bus de 4 en tradas (f) Tabla de verdad para el bus de 4 entradas
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Un bus, en su funcionamiento, es equivalente a un selector ya que puede tener
n entradas de datos, pero proporciona sólo un dato al bus en un instante dado. Por
ejemplo, el bus de 2 entradas mostrado en la Figura 5.17(c) tiene dos líneas de
datos, DI y Do, Y una línea de dirección, S, tal que cuando S = O, Y es igual a Do,
y cuando S = I entonces Yes igual a DI' Obsérvese que la tabla de verdad de este
bus de 2 entradas, mostrada en la Figura 5.17(d), es equivalente a la tabla de ver-
dad de un selector de 2 a l. Utilizando los mismos principios, se pueden construir
buses que tengan más entradas, tales como el bus de 4 entradas mostrado en la
Figura 5.17(e), que corresponde a la tabla de verdad de la Figura 5.17(f). Como
puede verse, este bus incorpora un decodificador de 2 a 4, que convertirá las dos
líneas de dirección SI y So en las cuatro líneas de habilitación necesarias para que
los cuatro adaptadores triestado se conecten al bus Y.
En general, los buses son muy fáciles de fabricar y muy sencillos de modifi-
car si se necesita añadir nuevas fuentes o eliminar antiguas. Por este motivo, los
buses son usuales en redes locales donde hay muchas fuentes de información que
han de conectarse en la misma sala o en el mismo edificio.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
D, Do Aa CUALQUIERA
O O O O
O l O l
IXI l
e Ua/I/II;a An
(b) Tabl:t de verdad
(a) Símbolo gráfico
Clla/qllie,. A I¡
dores de 2 al, que generarán n/2 candidatos para la dirección de bit menos sig-
nificativa, Aa. Uno de estos candidatos será seleccionado por un selector de (n/2)
a 1. Para producir la siguiente dirección más significativa, A 1> habrá que codificar
n/2 salidas Cualquiera de los n/2 codificadores de primer nivel, agrupándolos una
vez más por parejas. En este segundo nivel de codificación, se utilizan n/4 codi-
ficadores de prioridad y un selector de (n/4) a l que selecciona el bit A] . Además.
estos n/4 codificadores generan n/4 salidas Cualquiera, que pueden codificarse
para producir la dirección de bit más sign ifI cativa, A 2 . Este procedimiento se repi-
te hasta que sólo quede una salida Cualquiera.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
DJ D~ DI Do
J 2 ] a
Os o. D, Do A, Aa CUALQUIERA
O O O O O O O
Codificador
O O O 1 O O l
O O l X O l l
O 1 X X 1 O 1
Cualquier A, Ao 1 X X X 1 1 1
CUlIlquier Al Au
o, De De D. Da Da o, Do A:. A, Aa ANl'I
O O O O O O O O O O O O
O O O O O O O 1 O O O 1
O O O O O O 1 X O O 1 1
O O O O O 1 X X O 1 O 1
O O O O 1 X X X O 1 1 1
O O O 1 X X X X 1 O O 1
O O 1 X X X X X 1 O 1 1
O 1 X X X X X X 1 1 O 1
1 X X X X X X X 1 1 1 1
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
(a) Tabla de verdad
Cllu/quitra A:!
(b) Impleme ntación con codificadores y selectores de 2 a I (e) Implementación utilizando codificadores de 4 a 2
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
para cada sufijo de X e Y, donde los sufijos i de X e Y se definen como los ente-
ros x¡Xi_I"'xOe YiYi-l"'YU tales que i $ 11 - l. Por tanto, para el sufijo i de X e Y. e
x,
es igual a I si es mayor que Yi o si xi = Yi Y si el sutijo (i- I ) de X es mayor que
el sufijo (i-I ) de Y. Igualmente, L es igual a I si Xi es menor que Yi o si xi = Yi Y si
el sufijo (i-I) de X es menor que el sufijo (i-I) de Y. Estos valores pueden resu-
mirse en las expresiones siguientes:
ei = (Xi> y¡) Ó «Xi = Y¡) y (e¡_1> L i_ l ))
Li = (Xi < Yi) ó «Xi =y¡) y (e i_1 < L ¡_I»)
Como puede verse, se ha reducido la comparación completa a una compara-
ción de números de 2 bits x¡Gi-l e y¡L¡_I' Ahora, pues, se puede diseñar un com-
parador básico de 2 bits que puede comparar los números de 2 bits {l1~ Y b1bo, Y
utili zarlo para constru ir comparadores de un número mayor n de bits.
En la Figura 5.2 1(a) se muestra una tabla de verdad para un comparador de 2
bits cuyas entradas son los dos enteros de 2 bits a l{lo Y blbo• y las salidas son e y
L. La representación con mapa de este comparador, con las expresiones boolea-
nas para e y L, se muestra en la Figura 5.21 (b), y su circuito lógico en la Figura
5.21 (e).
Como se ha mencionado, el comparador de 2 bits puede utilizarse en imple-
mentaciones serie y paralelo de comparadores de 11 bits que pueden comparar cua-
lesquiera enteros sin signo X e Y. Por ejemplo. en una implementación serie se uti-
liza un comparador de 2 bits para cada pareja de bits, representada por x¡ e Yi' Para
cada comparador de 2 bits, los valores de entrada Xi e Yi se conectan a sus entra-
das al Y b l , mientras que los valores eH y L¡_I obtenidos de la comparación del
sufijo (i- I) se conectan a las entradas (lo y bo.
De este modo. cada comparador de 2 bits produce las salidas e y L, que repre-
sentan las funciones e¡ y L¡. En la Figura 5.22(a) se muestra una implementación
de un comparador de magnitud de 8 bits. Como puede apreciarse, este compara-
dor de 8 bits necesita só lo siete comparadores de 2 bits, ya que se ha utilizado sólo
un comparador de 2 bits para comparar XIXO e YIYO'
Como regla general, la comparación de cualesq uiera dos enteros de Il bits
siempre requiere (11- 1) comparadores de 2 bits, independientemente de si se utili-
za una implementación en serie o en paralelo.
Sin embargo, la implementación serie descrita anterionnente presenta un gran
inconveniente, debido a que el retardo del comparador de 11 bits será igual ti (11- 1)
Componentes combinacionales 205
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
implementación en paralelo aún requiere (11-1) comparadores de 2 bits, pero su
retardo es sólo rlog2n1veces el retardo de un único comparador de 2 bits.
a, b, Bo /lo G L
O O O O O O
O O O 1 O 1
O
O
O
O
I
I
O
1
1
O
O
O
G u.
O I O O O 1
O 1 O I O 1
O 1 I O O 1
O I I I O 1
I O O O I O
1 O O I 1 O
I O I O 1 O L
I O I I J O bu
J I O O O O
J I O I O 1
1 I 1 O 1 O
1 I I I O O
(a) Tabla de verdad (e) Esquema lógico
ah • 00
u "
a ,b, 00 01 11 10 ,b, 01 11 10
00 I 00 1
01 01 1 1 1 1
11 1 11 I
10 1 1 1 I 10
rI \'
- I
(/ , b l
G, Gs G, G, G, G,
G7 G G G G G G G IIO
L, LS L, LJ 1-, LI
L, L L L L L L L bO
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Xc, X5 X
-,-) x.., Y,:: .r 1 ,- .ru .1'11
-"7
"
-7 Y, Y, -"4
" J - I
G L
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
da. Y = Y". ..v(), y tres líneas de se lección , 52' S, Y So' que determinan la operación
a realizar. De acuerdo con la tabla funcional de la Figura 5.23(a), cuando 52 = O
los datos de entrada pasarán sin modificarse a la salida, mientras que cuando 52 = I
se realizará una operación de desplazamiento o rotación. El hecho de que estas
operaciones muevan a la izquierda o a la derecha depende del valor de S,: esto es,
S, = O indica que el movimiento de datos será a la izquierda, mientras que S, = I
indica que el movimiento será a la derecha. Finalmente, So se utiliza para distin-
guir entre operaciones de desplazamiento y de rotación, tal que si So = O el des-
plazador/rotador desplazará, y si So = 1 rotará.
S. $, So y COMENTARIO
O O X D No desplaza
O I X No usado
l () O shl(D) Desplaza izquierda
I O I rtl(D) Rota izquierda
1 1 O shr(D) Desplaza derecha
1 1 1 rtr(D) Rota derecha
(a) Tabla funcional
En lnld:l
11 ,krccha
Enlnlu..
:1i'l.'IU!i:rd;¡
s"
s,
\1'~S'kJ~trutJrrillkl~;]rri1k,,~Jrri1I"'O~:'~'~~
32 10 3210
f----1
321 ()
f----1
i
32 10
----, ----,
32 1 0
f----1
321 0 32 10 32 1 0
l l I I I I I
s,
.
-,. 1-
',o ",
,- -
" "
(b) Desplazador implementado con selectores de 4 a J
'"
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
oS.! S, ~ ~ Ya Ya Y. Y. Y2 y, Yo
O O O d, d6 ds d4 d, d2 dI do
O O I do d, d6 ds d4 d, d2 dI
O I O dI do d, d6 ds d. d, d2
O I I d, dI do d, d6 ds d4 d,
I O O d3 d2 dI do d, d6 ds d.
I O I d4 d, d, dI do d, d6 ds
I I O ds d4 d, d, dI do d, d6
I I I d6 ds d. d; d2 dI do d,
(a) Tabla de verdad
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
dispuestos de forma tal que el nivel i-ésimo de selectores (O ~ i ~ m- I) desplaza
2¡ posiciones cuando su línea de selección S¡ = 1, o pasa sin modificar los datos
cuando la línea Si = O. En otras palabras, si se quiere desplazar B posiciones los
datos, siendo B un número binario bm_I ... bo, se coloca el valor de la línea de selec-
ción Si del desplazador a b¡, para todo i tal que O ~ i ~ m-l.
En la Figura 5.24 se muestra un posible diseño para un desplazador en bloques
en el que, por simplificación, se ha limitado el desplazador a una función, la rota-
ción a la derecha. Como puede verse, este desplazador en bloques de 8 bits se ha
implementado con tres niveles de selectores de 2 al, controlados por las líneas de
selección So' SI Y S2 del siguiente modo: cuando So = 1, el primer nivel rota un
bit; cuando SI = 1, el segundo nivel rota dos bits, y cuando S2 = 1, el tercer nivel
rota cuatro bits.
En general, el coste de este rotador en bloques de 8 bits será de nlog2n veces
el coste de un único selector de 2 al, Y su retardo desde cualquier entrada a cual-
quier salida será aproximadamente log2n veces el retardo de un selector de 2 a 1.
Para construir un desplazador/rotador más complejo capaz de realizar un amplio
número de operaciones se utilizan, fundamentalmente, los mismos conceptos y un
número mayor de selectores de 2 a l.
do físicamente dos líneas siempre que se desee una conexión o in Silu , fund iendo
el fusible entre una línea de entrada y una línea de puerta siempre que no se quie-
ra una conex ión. Tales memorias ROM con fusibles, llamadas también ROM
programables (PROM, Programlllab/e Read OI1 /y Memorv). son muy prácticas
ya que pueden fabricarse en grandes cantidades y personalizarse, posteriormente,
in silu. Además, a menudo son preferibles a las ROM porque son fáci les de mejo-
rar o de sustituir si el contenido de la PROM neces ita moditicarse. De hecho. las
PROM pueden considerarse como un caso particular de arrays lógicos programa-
bles in silu (FPGA , Fie/d Programll1able Gale Array) , descritas en la Sección
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
3.10: dado su parecido funci ona l, estas memorias PROM pueden verse como pre-
de.cesoras de las FPGA, que requieren una organizac ión interna más comp leja.
Por ejemplo, en la Figura 3.23 se vió que cada PLB se implementaba con una
PROM de 16 x 2.
SíMBOLO SíMBOLO
COMPUTACIONAL
.AB..CD·D
PROGRAMABLE
--
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Arruy OR
11
1
2
.'
-
•
;
- [kClld¡¡ iL' ;ldllt ro
.1. -
lk -1 a Ih
,
7
')
.1 - 111
11
,.
12
1.1
15
) I
Aa Ao A, Ao F3 F2 F, Fo
(S) (a~ (b,) (cJ (c~,) (I¡)
a, b,
O O O O X X O O
s O O O I X X O I
~ O O I O X X O I
O O I I X X I O
O 1 O O X X O I
D O
O
I
I
O
1
I
O
X
X
X
X
I
I
O
O
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
O I I I X X I I
eH 1 e, I O O O X X O I
FA
I O O I X X I O
-r- I O 1 O X X O O
J I
I
O
I O
I I
O
X
X
X
X
O
I
I
O
I I O I X X I I
I I 1 O X X O I
I I I I X X I O
(a) Módulo sumador/ reslador (b) Tabla de verdad
1IIny0lt
o
1
2
3
Ao - 4
5
A, - Decodificador 6
de 4 a 16 7
A, - 8
9
A, - 10
11
12
13
14
15
IC] (J CJIJ.
I I I I
FJ F~ FI Fo
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
site complementar los valores de salida. Esta array de salida puede mejorar la efi-
ciencia de la PLA permitiendo un mayor grado de flexibilidad al implementar
cada función. Por ejemplo, si una función dada tiene sólo unos cuantos ceros. los
arrays ANO y OR pueden programarse para implementar el complemento de esa
función . lo que requerirá menos palabras y. así, complementar este complemento
de la función otra vez en el array de salida.
Como regla, cada PLA se caracteriza por su número de palabras, designado
por /l , y por su número de salidas, definido como m. Por otra parte, como el núme-
ro de líneas de dirección no será igual a log2/l, se necesita especificar el número
de entradas o líneas de dirección de la PLA, lo que se designa como k. Así, se sabe
que una PLA de k x /l X In tendrá A k_, , ... ,Ao líneas de dirección además de las /l
palabras. donde cada palabra representa un minterm de las direcciones de las
entradas. y m salidas, denominadas F m_ , , .... F u. También se sabe que la PLA puede
implementar m funciones booleanas cualesquiera de k variables cada una, siem-
pre que el número total de términos diferentes en las In funciones no sobrepase el
valor de 11.
En la Figura 5.27 se muestra la estructura de una PLA de 4 x 8 x 4. Como
puede apreciarse, tiene las cuatro entradas AJ , A 2, A, Y Ao, las cuatro salidas F ),
F2, F, Y Fo Y 8 términos ANO de palabras. A partir de esta definición se sabe que
cada término ANO puede contener más de cuatro literales, que cada función de
salida tiene más de ocho términos ANO y que cada salida puede obtenerse con o
si n complementar.
En la Figura 5.28 se utiliza esta PLA de 4 x 8 x 4 para implementar las fun-
ciones ei+' YSi del sumador completo, que se definió en la Figura 5.1. Téngase en
cuenta que no se podría utilizar esta PLA para implementar el sumador/restador
modular que se presentó en la Figura 5.26 porque tal módulo necesita ocho tér-
minos para las funciones Ji y cinco términos más para la función el+ " es decir, un
total de 13 términos diferentes que sobrepasaría el límite de ocho términos dispo-
nibles en la PLA.
Para implementar este sumador completo. se asignan XI' YI Y cI a las líneas de
dirección A,. A, YAa. y las salidas CI+' YSI a las salidas F, y Fo de la PLA. La tabla
de verdad y las representaciones con mapa para esta implementación se han mos-
trado en la Figura 5.28(a) y (b). y el circuito lógico de la PLA. indicando todas
sus conexiones. se ha presentado en la Figura 5.28(c).
Las PLA tienden a ser no menos flexibles que las ROM y tienen la ventaja
adicional de ser más eficientes en la implementación de lógica aleatoria.
214 Principi os de diseño di gital
ArrayOR
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
ArrayAND
ot
Am)'de
salida
. .-
, 00 01 11 10
As A2 A, F2 o I I
Aa F, F, Fo
x, y, e, s, Ci+l
I I I
X O O O X X O O
X O O I X X O I
X O I O X X O I
X O I I X X I O .\".-
\'
X I O O X X O I , DO 01 11 111
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
X I O I X X I O
X I I O X X I O O I
X I I 1 X X 1 1
~7 ;, r; ~7 1 ro- Array OR
'(j"" r;Y' Pi
~ x'¡yf',
--G
r,. .l ll¡
~
L....
¡=:.,
X~fi
c.....
¡=:.,
XiY¡
¿.. 'P,
;::;;; Y,e¡
r,;
L...:.J
AITayAND
~
UULl
QDOQF , f·- ,
OI
Array de
salida
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
rias ROM y PLA, frecuentemente empleados en la implementación de tablas,
lógica de control y otras funciones lógicas diversas. En muchos casos se han di se-
ñado estos componentes a partir de sus tablas funcionales, convirtiéndolas en
tablas de verdad e implementándolas con puertas un.iversales, mientras se recurría
a técnicas de síntesis lógica estudiadas en capítulos anteriores.
5.16. PF:¡OBLEMAS
5.1. (Sumadores) Di señe un sumador 5.3. (Restadores) Defina y diseñe una fun-
modular de 2 bits que combine las ción de adeudo anticipado (bo rro\\'-
funciones de dos FA. Utilizando la !ook-a!Jead) y muestre cómo podría
biblioteca presentada en la Tabla utilizarse en un restador de magnitud.
3.14, compare el retardo de su diseño
5.4. (Generadores de acarreo anticipado)
con el del diseño mostrado en la
Utilizando las bibliotecas dadas en las
Figura 5.1.
tablas que se indican a continuación,
5.2. (Restadores) Defina y diseñe un res- rediseñe el generador CLA mostrado
tador completo, que podría ser equi- en la Figura 5.2(c).
valente a un sumador completo. y uti- (a) Tabla 3.14
lícelo para diseñar un restador de (b) Tablas 3.14 y 3.15
adeudo propagado (ripple-borrow ). (e) Tablas 3.14,3.15 Y 3.16
Componentes combinacionales 217
En cada diseño, compare los retardos pueda comparar los siguientes tipos
al generar los siguientes acarreos: C4. de representación numérica:
Cs _ C)2 y C 16' (a) Signo y magnitud
(b) Complemento a dos
S.S. (Generadores de acarreo anticipado)
(e) Punto flotante
Diseñe un sumador CLA de 64 bits
utilizando: 5.14. (Comparadores) Diseñe comparado-
(a) Un nivel de CLA res que puedan evaluar las siguientes
(b) Dos niveles de CLA relaciones:
(e) Tres niveles de CLA (a) X> Y
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
(b) X = Y
5.6. (Generadores de acarreo anticipado)
(e) X < Y
Diseñe el sumador CLA más rápido
(d) X :2! Y
posible de:
(e) X 5, Y
(a) 16 bits
(b) 32 bits 5.15. (Comparadores) Rediseñe el compa-
(e) 64 bits rador de 2 bits que compara X = x,xo
5.7. (Unidades lógicas) Diseñe una unidad con y = Y,YO, con la condición de que
Xo e Yo no pueden ser 1 al mismo tiem-
lógica que mejore las siguientes com-
po. ¿Cúantos transistores ahorrará si
binaciones de operaciones:
utiliza este comparador de 2 bits en la
(a) NAND, NOR, transferencia y
implementación serie del comparador
complemento
de 8 bits de la Figura 5.22(a)?
(b) XOR y XNOR
(e) AND, OR Y NOT 5.16. (Comparadores) Rediseñe el compa-
rador de 2 bits que compara X = x IXO
5.8. (ALU) Diseñe una ALU que pueda
con y = Y,YO, con la condición de que
realizar las operaciones de suma!
resta, NAND y NOR. x, e Y, o Xo e Yo o ambos no pueden ser
1 al mismo tiempo. ¿ Cúantos transis-
5.9. (ALU) Diseñe un ampliador lógico tores ahorrará si utiliza este compara-
que realice las operaciones AND, dor de 2 bits en la implementación
NAND, OR , NOR, XOR. XNOR, paralelo del comparador de 8 bits de
identidad y complemento. la Figura 5.22(b)?
5.10. (Decodificadores) Di señe un decodi- 5.17. (Desplazadores) Diseñe un registro
ficador de 4 a 16 utilizando: de 8 bits que:
(a) decodificadores de 1 a 2 (a) rote a la izquierda
(b) decodificadores de 2 a 4 (b) desplace a la izquierda
(e) puertas lógicas AND, OR Y NOT (e) desplace a la izquierda y a la
derecha
5.11. (Codificadores) Diseñe un codifica-
(d) desplace y rote a la izquierda y
dor de (a) 2 al, (b) 4 a 2, (e) 8 a 3 y
a la derecha
(d) 16 a 4. que sea un verdadero com-
plemento de un decodificador. 5.18. (Desplazadores) Defina las operacio-
nes de un desplazamiento aritmético a
5.12. (Selectores) Obtenga un algoritmo
la izquierda (multiplicación por 2) y
para la construcción de selectores de
uno a la derecha (división por 2) para
11 a 1 a partir de selectores de 2 a 1
los números en signo y magnitud y
para cualquier entero dado 11.
complemento a 2. Diseñe un despla-
5.13. (Comparadores) Diseñe las versiones zador aritmético de 1 bit para:
serie y paralelo de un comparador que (a) Números en signo y magnitud
218 Principios de diseño di gital
(b) Números en complemento a 2 2 bits que genere las fun cio nes
(e) Ambos tipos de números "mayor que", "menor que" (' "igua l
que".
5.19. (Des plazadores) Di señe de nuevo el
desplazador uni versal presentado en 5.22. (PLA) Uti lizando el tipo de PLA indi-
la Figura 5.23 añad iendo la capacidad cado entre paréntesis. implemente las
de dos desplazadores aritméticos en siguientes funciones:
complemento a :! a Su conjunto de (a) Un módulo sumador/restador
operaciones. (conPLAde4x 16 x 4)
(b) Un comparador de magnitud
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
5.20. (ROM ) Compare el coste y el retardo (con PLA de 4 x 8 x 4)
de las siguientes imple mentaciones (e) Un generador de CLA (co n PLA
de funciones booleanas cualesquiera: de 9 x 8 x 6)
(a) A PROM
(b ) A PLA 5.23. (PLA) Utilizando una PLA de 4 x 8 x 4.
(e) A FPGA añada e l modo de bit M al slImador
(d) Lógica diversa presentado en la Figura 5.28(a) tal que.
si M = O la salida.l"; =x;, y si M = 1, la
5.21. (ROM ) Utilizando una PROM de PLA realice la función del sumador
16 x 4, implemente un comparador de completo.
Lógica
secuencial
© 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 biestable.:.-
6
J
Máquina de
estados finitos l! 4
Técnicas de
6
Técnicas de
I dise ño lógico di seño digital
Sislcma bi nario 2
y representación
de datos
f +
5 7
Compone,ntes Componentes de
combinacionales almacenamiento
I I
Máquinas de 8 Diseño de 8
estados finitos transferencia entre
generaHzadas registros
1
9
Componentes
del procesador
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
como los anteriores.
Esta dependencia, en los circuitos sec uenciales, de los valores de entrada ante-
riores hace necesaria la presencia de elementos de memoria. Los valores almace-
nados en elementos de memoria definen el estado de un componente secuencial.
Así pues, cualquier cambio en los valores de entrada en el instante t i modificará
el estado del componente secuencial en el instante ti + /; 1 Y los valores de salida
en el instante t i + /;2·
Como ejemplo de circuito secuencial, considércse el contador de tonos en un
contestador automático, que cuenta el número de tonos y conecta el grabador de
mensajes después de cuatro tonos. Como el contador de tonos cuentra hasta cua-
tro, la memoria del contador debe pennitir el almacenamiento de cuatro dígitos:
O, 1,2 Y 3. Cuando el número O está almacenado en memoria, se dice que el con-
testador está en el estado O, esperando el primer tono. En los estados l. 2 Y 3 el
contestador habrá recibido uno, dos o tres tonos, respectivamente. Cuando el con-
tador esté en el estado 3 y Uegue el cuarto tono, el grabador se activará. En este
momento, los tonos posteriores serán ignorados y el contador volverá al estado O.
En este ejemplo puede verse que la salida del contador de tonos depende no sólo
de un tono, sino de una secuencia de tonos que se suceden antes de que llegue el
cuarto tono.
Generalmente, esto es verdad en todos los circuitos secuenciales. Sus sa lidas
dependen de la secuencia de valores de entrada presentados durante un período de
tiempo. De hecho, el témúno secuencial se debe a esta dependencia con la secuen-
cia de valores de entrada en lugar de depender sólo del valor de entrada actual.
Como se ha visto, la secuencia de valores de entrada, o algo relacionado con ella,
se almacena en la memoria. Debido a que esta memoria siempre es finita , el tama-
ño de la secuencia debe ser finito, lo que significa que la lógica secuencial conten-
drá sólo un número finito de estados, aunque éste sea bastante elevado.
En general, los circuitos secuenciales pueden ser asíncronos o síncronos. Los
circuitos secuenciales asíncronos cambian su estado y los valores de sa lida siem-
pre que hay un cambio en los valores de entrada, mientras que los circuitos
secuenciales síncronos cambian sus estados y los valores de salida en instantes
fijos de tiempo, determinados por el flanco de subida o bajada de una señal exter-
na de reloj (clk, de c/ock). En la Figura 6.1 se muestra el diagrama de tiempos y
la nomenclatura de una señal típica de reloj . En este diagrama puede verse que el
período de reloj es el tiempo entre transiciones sucesivas en la mi sma dirección.
es decir. entre dos flancos de subida o dos flancos de bajada. El invcrso del perí-
Lógica secuencial 223
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
~ .
P('riodo del reloj
.;
J.) ·1 (I¡-----'l;
Ancho del pulso Flanco de subi'd a Flanco de bajada
de reloj
6.1. LATCH SR
El elemento de memoria más simple en un diseño digital es e ll atch SR, que cons-
ta de dos pueltas NOR conectadas de forma cruzada. Como puede verse en la
Figura 6.2(a) , el latch SR tiene dos señales de entrada: la señal de puesta a l , S
(Set). y la señal de puesta a O. R (Rese/); también tiene dos señales de salida. Q y
Q': finalmente, tiene dos estados: un estado de puesta a uno (o set) cuando
Q = I (Q' = O) Y un estado de puesta a cero (o reset) cua ndo Q = O (Q' = 1).
Mi entras las señales S y R sean igua les a O, el late h SR permanece en el mi smo
estado. Por ejemplo. si Q = I la salida de la puelta NOR superior será ig ual a 0,
lo que hará que la salida de la puelta NOR inferior sea igual a O. Igualmente, si
Q = O. la salida de la puerta NOR superior será igual a l . lo que hará que la sali-
da de la puerta NOR inferior sea igual a O.
224 Principios de diseño digital
O O O O l
O O I 1 O
O I X O I
R Q I O X 1 O
1 I X O O
(al Circuito lógico (e) Tabla de verdad
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
S
.!4.
Q'
- t= tm
'" " "
(b) Diagr3 m¡} de tiempos
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
tal caso. la puerta NOR más rápida prevalecerá y establecerá su salida al, for-
zando la salida del otro latch a O en I JO + 2,8 ns. Así pues, cuando las señales de
entrada se restablecen al mismo tiempo, el estado siguiente del latch es indefini-
do, ya que no se sabe que condición ocurrirá.
Para eliminar este funcionamiento indeterminista, se debe asegurar que las
señales S y R no se restablezcan al mismo tiempo.
Desafortunadamente, esta regla es difícil de imponer al no conocer los retar-
dos de los circuitos lógicos que generan los valores de S y R. Como consecuen-
cia, cuando se diseña con latches SR debe seguirse una regla más estricta; hay que
asegurarse de que las señales S y R nunca cambien al mismo tiempo.
R
'-----11
Q -+\ 1~4 -+ 2.81..-
Q' -+1 2,8 1~ -+, I~ I.4 -+ 1'l:l f l.4
1.4
-+,
~::::JI
. -- I
1"
" " '.>
(h) Diagrama de tiempos
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
imple me ntació n NOR e n la que acti vando S o R a I se causaba la puesta a uno o
a cero de ll atch, respecti vamente. Finalmente, la implementación NAN D se mues-
tra en las Figuras 6. 3(a). (b) y (e).
ti
e
R {l'
~
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
f:l) Símbolo grnJ1r.:o lb) Circui to lógk o
E.~ladu rc.<,ct
('
~
"
(! -+ 4+- __ 1-"0
'. " " '. "
(d) Diagrama de tiem po",
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
los que la entrada D debe pe rmanecer estable. El intervalo de tiempo entre ' sctup y
I hold se muestra e n la Figura 6.5 (d) sombreado. Por ejempl o. en la figura , Q será
igual a 1 en 17 + 4.0 ns, ya que D valía 1 c uando C = l . Por otra parte. cuando D
cambie a O en 18, Q le segu irá en 18 + 3,0 ns siempre que 19 - 18 ~ ' setu . En gene-
ral, es fác il trabajar con e llatch D sincronizado, porque la señal de en t~ada D y la
señal de salida Q, ligerame nte retardada, tienen e l mismo va lor durante e l perío-
do de tiempo en el que se considera C.
D¡-{:»----;===D
o Q
Q
e o Q Q (siguiente)
~ .O/3.0 e O X O O
e Q' O X ¡ 1
Q' l O X O
l l X l
(a) Símbo lo gráfico (b) Circuito lógico (el T,;.bl:l de verdad
Q
_ I~·o -~______
'.,
I~ ,
"
_________
'.
~_o_~~~l-_~_______
1.,.,IUjl I II"W
6.4. BIESTABLES
Como se ha explicado anteriormente, los latches con puertas son elementos sen-
cillos de memoria que se habilitan durante todo el intervalo de tiempo en el que
la señal de control e es igual a l. Frecuentemente, estos late hes se denominan
latches sensibles al nivel porque están habilitados siempre que la señal de con-
trol esté al nivel 1. En cualquier instante de ese tiempo los latches serán transpa-
rentes, en el sentido de que cualquier cambio en las entradas se propagará a la sal i-
da con un pequeño retardo. Estos biestables básicos funcionan como elementos de
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
memoria sólo después del flan co de bajada de la señal de control, cuando man-
tienen el estado establecido por el último valor de la entrada anterior al flanco de
bajada de la señal de control.
Basándose en esta descripción, se comprende que los diseñadores deban tener
cuidado cuando utilizan estos latches ya que. cuando el latch es transparente, los
largos intervalos de tiempo pueden, a veces, permitir que se introduzca informa-
ción no deseada. Como ejemplo, considérese un registro de desplazamiento de 3
bits formado por tres latches D. como se indica en la Figura 6.6(a). En este ejem-
plo. la señal de entrada X se conecta a la entrada D del primer latch, su salida Q,
se conecta a la entrada D del segundo, y su salida Q2 se conecta a la entrada D del
tercero. La entrada de control C se conecta al reloj del sistema, C/k, que sincroni-
za la operación de todos los biestables. Teóricamente, este registro de desplaza-
mi ento dehe trabajar de la siguiente manera: Durante sucesivos anchos del pulso
de reloj, el valor X entrará al primer latch, el valor del primer latch se transferirá
al segundo latch, y el segundo valor pasará al tercer latch.
Sin embargo, como puede observarse en el diagrama de ti empos detallado de
la Figura 6.6(b). el desplazamiento de la información que resulta no es el desea-
do. Por ejemplo, supóngase que todos los latches están en el estado de puesta a
cero (Q, =Q2 =Q3 =O) y que la señal de entrada X tiene el valor I durante el pri-
mer pulso de reloj y posteriormente el valor O. En otras palabras, el registro de
desplazamiento debería comenzar con el contenido 000 y con los valores 100, OIO
Y 001 después del primer, segundo y tercer pulsos de reloj. Sin embargo, si el
registro de desplazamiento empieza con el contenido 000, le seguirán los valores
111 , 000 Y 000 después del primer, segundo y tercer pulsos de reloj. En otras pala-
bras, el registro de desplazamiento funciona como un único latch que almacena el
valor de la señal de entrada X en cada ciclo de reloj.
Observe este funcionamiento , aún con mayor detalle, suponiendo que el ancho
del pulso de reloj es 1", = 15 ns y que la señal de entrada X vale [ en 'o' Cuando la
señal de reloj habilite ellatch en 1" el primer latch cambiará al estado de puesta a
uno (Q, = 1) en 1, + 4,0 ns. Sin embargo, como la señal de reloj mantiene su valor
otros II ns, el segundo latch cambiará al estado de puesta a uno en 1, + 8.0 ns , así
como el tercero, que conmutará en t, + 12,0 ns. Entonces , tras el primer flanco de
bajada en 1" el contenido del registro de desplazamiento será igual a [11. Habrá
un funcionamiento similar cuando el segundo pulso de reloj, y los sucesivos, habi-
liten los restantes latches del registro de desplazantiento.
230 Principios de diseño di gital
x l'
D Q' D Q' D Q;
".UI3.0 4.0/3 .0 4,0/3 .0
e e e
e /k
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
elk 1..- 15 '1
L - -_ _- - - '
Q'
~~~.-------.---------------------------
~: ~I.-~
)·_o________________________ ______
~ ~.---------------------------
'r, " 1,
" 1-
Un posibl e método para rectiticar este funci onami ento erróneo es di sminuir el
ancho del pul so de reloj a un retardo de propagación. No obstante. la di ficultad de
esta solución radi ca en que los retardos no son los mi smos al poner a uno o cero
los latches. lo que significa que un ancho del pul so de reloj que ponga a un o el
lateh puede no servir para ponerlo a cero. y viceversa. Además, si el ancho del
pul so de reloj se limita a un tiempo menor que el retardo del latch. éste no tendrá
tiempo de captar el valor de entrada. En cualquier caso, el fabricante de l latch no
puede garantizar realmente valores exactos de retardo, sencillamente a causa de
los márgenes de error en el proceso de fabricaci ón. En este sentido. debe tenerse
en cuenta que la puesta a uno y a cero que se utili zan son sólo valores de retardo
esperados . mientras que los valores de retardo reales se di stribuyen según un a di s-
tribución normal alrededor de estos valores esperados.
Una vez ex puestas estas restri cci ones, hay dos pos ibl es solu ciones al proble-
ma: los bi estables maestro-esclavo y los biestables disparados por llaneo. Los
biestables maestro-esclavo (nwster-slave .fJip-.fJop ) se implementan utili zando
dos latches. denominados maestro y esclavo. Como muestra la Fi gura 6.7(a ). )a
Llig ica :-'l'L'lIclll,.:i al 23 1
entrada al lateh maestro e, la entraua al biestable , mi entras que la elll raua al lateh
escla \o es la salida del lateh maestro, La salida ud lateh ese la"o eS la sa lida uel
biestable c","pleto. En el hie stable, los latches mae , tro ) esclavo e.stán guiad,,,
por la mi sma señal de reloj, C/k, con la dii'crencia importante de quc d latch maeS-
tro ,e habi lit an; cuando la ,e lial de re loj sea igua l a 0, y cllatch e,clan) cuando la
selial de reloj sea igua l a l .
La ve ntaja de ut il izar estos biestables es clara: c",no los latches maestro y
csclavo 110 se habilitan nunca al mi ~ mo ticmpo. d bi c!'>wbk lll<Lcstro -t::-.c la\'o
nunca e, transparcllle. Por ejemp lo, cuando la ,c li al de rd oj c, () , ólo el latch
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
maestro cstú habilit ado y su v'(lI11enido sc trans fiere al latch esela\ o sólo despu~,
de qu e la .se lla I vil' reluj \ alga l. Obsérvcse que, cuando la selial de reloj cs igual
al, el la teh maestro se de shabil it a y su cOlllcnido no cambia,
-I,(ln,O .. ,01',0
e
('J¡ _ _ - ' -_ _ _ _--'
e/l..
f, 'lo 1- !, "1
(hl Ula~ra l11 a d~ !ll'IIIJlO~
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
por el latch maestro hasta 19 + 4,0 ns, y no se propaga al lateh esclavo hasta que
la señal de reloj vuelva a ser igual a l .
Como se ha indicado en la Figura 6.7, el valor de la entrada D se capta en el
latch maestro antes del flanco de subida de la señal de reloj, y se transfiere al latch
esclavo inmediatamente después del mismo flanco de subida. Prácticamente puede
decirse que el valor de D se ha captado en el flanco de subida de la señal de reloj.
Si se reconstruye el registro de desplazamiento tratado anteriormente utili-
zando biestables maestro-esclavo, se obtiene el circuito lógico de la Figura 6.8(a),
que corresponde al diagrama de tiempos mostrado en la Figura 6.8(b). Este nuevo
diagrama de tiempos muestra la misma señal e/k y las señales de entrada que la
Figura 6.6(b), pero se ha modificado de modo que para cada biestable se indican
dos formas de onda: las salidas de los biestables maestro y esclavo. Q¡m y Q ¡S'
donde 1 ~ i ~ 3.
Como indica el diagrama, después de que la señal de entrada X cambie a 1 en
lo' sólo ellatch maestro del primer biestable se pondrá a 1 (Qlm = 1) en '0 + 4,0
ns. Entonces, cuando la señal de reloj cambie a l en / l' el latch esclavo se pondrá
a 1 en /1 + 4,0 ns. Un poco después. después de que la señal de reloj vuelva a O
en /2 ' el lateh maestro del segundo biestable se pondrá a 1 (Q2m = 1) en /2 + 5.0
ns. Nótese que, cuando la señal de entrada X vuelva a O en /)' el latch maestro del
primer biestable se pondrá a O (Qlm = O). Tras el siguiente flanco de subida del
reloj, QI S retomará a Oen / J + 3,0 ns y Q 2s se pondrá a 1 en /4 + 4,0 ns. Igua lmente.
al tercer flanco de subida del reloj Q2, se pondrá a O y Q3., se pondrá a l .
Como puede observarse, los registros de desplazamiento realizados con bies-
tables maestro-esclavo desplazan su contenido una posición a la derecha en cada
flanco de subida de la señal de reloj. Por consiguiente, cada ciclo de reloj corres-
ponde a un estado del registro de desplazamiento que, para la secuencia de valo-
res de la señal de entrada mostrada en la Figura 6.8(b), va desde el estado 000 a
los estados 100, O10 y 001 Y vue lve, finalmente, a 000.
Como indica la Figura 6.9(a), un biestable disparado por flanco (edge /rig-
gered flip-j7op) se implementa con tres biestables básicos SR de puesta a uno, de
puesta a cero y de salida interconectados. El latch de puesta a uno sigue los cam-
bios en la señal C/k si D es igual a 1 en el flanco de subida de la señal e/k, mien-
tras que el latch de puesta a cero sigue a la señal de reloj si D es igual a O en el
flanco de subida de la señal de reloj. En otras palabras, las señales Ay Bregistran
los cambios en D mientras e/k es igual a O. El funcionamiento detallado del bies-
table disparado por flanco se ilustra en el diagrama de tiempos de la Figura 6.9(b).
X
_.
D Q,. _
I l it ....
D 0,, 1- D O,. D O, i-
...
Lógica secuencial
D O,.
I
D
I
•
Q j ,;
233
-2
4,0/3,0 4,0/3,0 4,013,0 4,0/3.0 4.013,0 4,013.0
- e r- e
r e r- e r- e r- e
l'> ~ I L~
e/k
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Q,. -,.o F- _ : ~1.-_
3._0~________________________________
~Q~,,____-___4,o~l .- - '1
3O
IL._-. _____________________________
~Q"~,______~__________~____- __,_"
.() r.- -. ~14_3-._0 _ __ __ __ __
1" + 2,8 ns y A vale I e n 1" + ·t2 ns. En 17 + 2.8 ns. Q se eslabkee a I Iras el nan -
eo ue s ubida ue C/k e n 17 y la bajada de S en 17 + 1...1 ns .
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Latch de salida
B
/! ---jt===~~
Lutch de puesta a cero
CIJ. I I
/l
'---_---'1 1'--_ _
----.. :2.:-: rl. -----------1 '4- ----.. -t.~ lr..------- - - . 1..- ~:-,
Ii
11
----.. : ! .~ 1-..-
1____- --'j -
,,(J_ __ --
_~-
/: /,
-- 4.:2
1- -- 2.' 1_
'.
/"
"
/,
"
/"
'"
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
6.5. TIPOS DE BIESTABLES
En la Sección 6.4 se indicó cómo realizar un biestable maestro-esclavo y un bies-
table disparado por flanco. Aunque hay varias y diferentes maneras de realizar
biestables, todas presentan las siguientes dos características: primero, un biesta-
ble cambia de estado sólo en el flanco positivo o negativo de la señal de reloj y.
segundo. sus entradas de datos no deben cambiar después del tiempo I' <IU ante-
rior, ni antes del tiempo I ho1d posterior. al flanco de disparo de la señal de 1~loj.
Todos los biestables pueden dividirse e n cuatro categorías básicas: SR. JK . O
Y T. Se diferencian e n el número de entradas y en la respuesta que proporcionan
a valores diferentes de las señales de entrada. Las cuatro clases de biestables se
indican en la Tabla 6. 1. Cada uno de estos biestables puede caracterizarse por su
símbo lo gráfico. por su tab la característi ca y su ecuación característica o por su
tabla de excitación. Los símbolos gráticos indican el número y el tipo de entradas
y salidas. Todos los biestables tienen señales de salida Q y Q'. También todos ello.
disponen de en trada de señal de reloj. El pequeño triángulo en la entrada de reloj
indica que el biestable se dispara por el tlanco de subida de la señal dc reloj . Por
el contrario, un círcu lo junto al triángulo indicará que se trata de un biestable dis-
parado por llaneo de bajada de la señal de reloj.
Para hacerlo más sencillo, a lo largo de este libro se utilizarán sólo biestables
disparados por flanco de subida. Cada biestable tiene una o dos entradas de datos
que caracterizan al biestable y le dan nombre. como se ha descrito anteriormente.
El biestable SR tiene dos entradas, S (se/) y R(reser), que ponen a l ó a Oel bies-
table cuando se act ivan. En concreto, cuando S = I Y R = O la salida Q del biesta-
ble se pone a I y cuando S = Oy R = I la salida se pone a O. E l biestable JK. simi-
lar al SR. dispone de dos entradas, J y K, que realizan la puesta a I ó a Odel bies-
table cuando se activan. Además, cuando ambas e ntradas J y K están ac tivas al
mismo tiempo. el biestable JK cambia de estado . Como se ha mencionado ante-
rionncnte. el biestable D tiene una entrada D (datos) que pone a I e l biestable
cuando D = I Y lo pone a O cuando D = O. El biestable T ti ene una entrada T(log-
g/e) que fuerza al biestable a cambiar de estado cuando T es igual a l .
En la segunda columna de la Tabla 6.1 puede verse la tabla característica,
una versión reducida de la tabla de verdad que proporciona. para cada conjunto de
valores de entrada del biestable y dado su estado anterior al flanco de subida. su
correspondiente estado posterior al flanco de subida de la señal de re loj. En la
236 Plincipios de diseño digital
tabla, Q y Q(siguiente) denotan el estado del biestable antes y después del flanco
de subida del reloj , respectivamente. La tabla característica se utili za en el análi-
sis de circuitos secuenciales, cuando se conoce el valor de las entradas del biesta-
ble y se desea obtener el valor de la salida Q del biestable después del flanco de
subida de la señal de reloj. Como en cualquier otra tabla de verdad, se puede uti-
lizar el método del mapa para obtener una ecuación característica para cada
biestable, como se muestra en la tercera columna de la Tabla 6.1.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
TABLA 6.1 Tipos de biestables
S R Q (siguiente) j Q Q (siguiente) S R
SR
El
R a
O
O
I
I
O
l
O
1
Q
O
I
NA
Q(siglliellle) =S + R'Q
SR =O
O
O
I
I
O
1
O
I
O X
1 O
O I
X O
J K Q (siguiente) Q Q (siguiente) J K
JK
fl
K a
O
O
1
1
O
I
O
1
Q
O
1
Q'
Q(siglliellle) =lQ' + K'Q
O
O
1
I
O
I
O
I
O X
I X
X 1
X O
ta:t
Q Q (siguiente) D
D Q (siguiente) O O O
D Q(siglliellle) =D O I I
O O 1 O O
1 1 1 1 1
Q Q (siguiente) T
ti
T Q (siguiente) O O O
T el.! QIsiglliente) =TQ' + rQ O 1 1
O Q 1 O 1
(! 1 Q' I 1 O
el va lor de las cntradas de los bi estables que se neccsitan para camhiar dc estado
despm's del flanco de s ubida ue la señal de reloj.
°
Aucmás de los símbo los gráticos, tablas ecuaciones, los biestab les pueden
ca racte ri zarse también con di agramas ele estados o gra fo s de estados, en cuyo L'asn
cada cstado se rep rese nta por un círcul o. y una tran sic ión entre e~tadlls sc indi ca
por un a fle cha. Por ejemp lo, en la Tabla 6,2 se describen con este método los cua-
tro tipos ue biestables , O bsérvese que caua !lecha se marca con Ins va lores de la,
sc ilalcs de cn trada, que originan una transición oc un estado a otru. Adc lll i.ís . un
mi slllo estado puede ser orige n y destino uc la transición. Comu las tran siciones
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
ocurre n e n e l flan co de reloj, cada estadn puede consi derarse comn un intervalo
ue ti empo entre dos Ilancos de subida s ucesivos de la seiia l de reloj .
S.N:.::. !'II
,1",/(d l. 1
J~
J,A'=O.I n 1.1
1)
T=!
Puede versL' L'n la tahl a qu e los uiagramas de es tados ue los cuatro hi estables
tiL:I1Cll el mi :-tlllo número u(' estados y u~ transiciones: caua bicstahle esti.Í en el
estauo ue estahkcim iento () puesta a I (sel) c uanuo Q = I Y en e l estauo tk ini -
cia li /ación o puesta a O (I"esel) cuanuo Q = O. Además, caua bi estable puetk pasar
uc un estauo a otro o \'oll'er al mi smo estauo, La única uifere nc ia en tre lo, cuatro
238 Principios de diseño digital
tipos de biestables reside en los valores de las señales de entrada que originan las
transiciones. Un diagrama de estados es un método muy conveniente de visuali-
zar el funcionamiento de un biestable o, incluso, de gran número de componentes
secuenciales. En la Sección 6.7 se generalizan estos diagramas de estados al defi-
nir el modelo de máquina de estados finitos utilizado en el diseño de lógica
secuencial.
Cada biestable está disponible, normalmente, con o sin entradas asíncronas,
que se utilizan para poner a 1 (preset) o poner a O (clear) los biestables indepen-
dientemente de las restantes entradas. Estas entradas se utilizan para poner los
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
biestables en un estado inicial antes de su funcionamiento normal. Por ejemplo,
tras conectar la fuente de alimentación, el estado de cada biestable no es predeci-
ble y deben utilizarse las entradas asíncronas para poner los biestables al valor
adecuado antes del comienzo de su funcionamiento síncrono. Las entradas de
puesta a uno y cero se denominan asíncronas debido a que no dependen de la señal
de reloj y, por tanto, tienen prioridad sobre todas las operaciones síncronas. En
CLR
D
Q
C PRS
D Q
Q' C Q'
CLR
PRS
C/k
Q'
PRS
D Q
D C/k Q'
CL R
olras palabras, cuando las entradas asíncronas están activas los valores de las
demás entradas del biestable se ignoran. Esto puede deducirse, también, de los cir-
cuitos lógicos con entradas asíncronas de un latch D y de un biestable maestro-
esclavo D con entradas asíncronas mostrados en la Figura 6.10.
Como muestra la Figura 6.1 Ora), el latch D con puertas y enlradas asíncronas
es el mismo de la Figura 6.5 con dos entradas adicionales: PRS y CLR. Cuando la
entrada de puesta a uno (PRS) es igual al , la salida Q' es igual a O y Q a l .
Contrariamente, cuando la entrada de borrado (CLR) es igual al, la salida Q es
igual a O. Mientras que una de las entradas PRS o CLR sea 1, el biestable perma-
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
necerá en los estados impuestos por las enlradas asíncronas. El símbolo gráfico de
un latch D con entradas asíncronas se muestra en la Figura 6.1 O(b).
NOMBRE SIMBOLO
OS BIESTABlE DEL BIESTABlE
! f>u.c:.o.llllll
1- S Q-
SR 1- >Clk
I- R (l -
r Pue~tu a O
Ál'IIOIa a'
1- J Q-
JK 1- >CI1c
1- K a-
TPuest:! a O
.l PuC-S(;I 3 I
I- D ,, 1-
O 1- ~at
1: a 1-
yPuesta ~ O
.l Pucnl al
I- r a l-
T 1- ~at
te (l 1-
TPuesta a O
240 Principios de diseiio digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
todas las entradas asíncronas son activas en baja. En la Tabla 6.3 se muestran los
símbolos gráficos de todos los tipos de biestables con entradas asíncronas acti vas
en baja.
SOLUCiÓN
El primer paso en el análisis es obtener las expresiones booleanas de las entradas a cada
biestable del circuito en términos de la entrada externa C ll t y de las sal idas del biestable
QI y Q(). Como hay dos biestables D en el ejemplo. se obtie nen dos ex presiones para DI
y Do:
Lógica secuencial 241
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
e nl= !
el! _--=====::1-----'
( a) Circuito lógico
Ahora se transforman las ecuaciones de estado siguiente a una forma tabular. o tabla de
estados siguientes. en la que cada fila corresponde a un estado del circuito secuencial y
cada columna representa un conjunto de valores de entrada. En general, cada estado de un
circuito secuencial se define por los valores binarios almacenados en su biestable. En este
caso, pues, como sólo hay dos biestables. el número de posibles estados es de cuatro. es
decir, Q I Qo puede ser igual a 00, 01, lO ó l l . Estos valores se muestran como estados actua-
les en la Figura 6. l l (d).
En la parte de la tabla correspondiente a los estados siguientes, cada entrada define el valor
del circuito secuencial en el siguiente ciclo de reloj tras el flanco de subida de C/k. Como este
valor depende del estado actual y del valor de las señales de entrada. la tabla de estados
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
siguientes contendrá una columna para cada asignación de valores binarios de las señales de
entrada. En el ejemplo. como hay sólo una señal de entrada, Cm, la tabla de estados siguien-
tes mostrada en la Figura 6. l l (d) tendrá sólo dos columnas, correspondientes a CIII = O Y CIII
= l . Obsérvese que cada fila en la tabla de estados siguientes indica el valor de los biestables
en el siguiente estado si su valor de estado actual es el que se indica en la cabecera de la fila
y los valores de entrada son los mostrados en la cabecera de la columna. Cada uno de los valo-
res de los estados siguientes se ha calculado a partir de las ecuaciones de estado siguiente (6.3)
y (6.4).
Sin embargo, para representar el comportamiento de un circuito secuencial se podría
utili zar un diagrama de estados en lugar de una tabla de estados siguientes. Un diagrama
de estados es, básicamente, una representación gráfica de la tabla de estados siguientes.
Para cada estado presente de la tabla de estados siguientes hay exactamente un nodo, iden-
tificado por un círculo. También hay un arco directo saliendo de cada estado para cada
entrada de la tabla. Cada arco se etiqueta con los valores de las señales de entrada que cau-
san la transición desde el estado presente (origen del arco) al siguiente estado (destino del
arco),
En general , el número de estados en una tabla de estados siguientes o diagrama de esta-
dos será igual a 2"', donde 111 es el número de biestables; de manera similar, el número de
arcos será igual a 2'" x 2', donde k es el número de señales binarias de entrada. En el dia-
grama de estados de la Figura 6. ll (e), debe haber cuatro estados y ocho transiciones .
Siguiendo estos arcos de transición, puede verse que mientras Cm = l el circuito secuen-
cial recorre los estados en la siguiente secuencia: O, 1, 2, 3, O, 1, 2... . Por otra parte, cuan-
do Cm = O el circuito permanece en su estado actual hasta que Cnt cambie al, en cuyo
caso la cuenta continúa. Como esta secuencia es típica de la cuenta en módulo 4, se puede
concluir que el circuito secuencial representado en la Figura 6.11 (a) es un contador módu-
lo 4 con una señal de control, CIl!, que habilita la cuenta cuando C III = 1 Y la deshabilita
cuando Cn! = O.
En la Figura 6.11 (f) se muestra un diagrama de tiempos que representa cuatro ciclos
de reloj y que permite observar el fun cionamiento del contador con ma yo r detalle. En
este diagrama de tiempos se supone que CIlI se habilita en el ciclo de reloj O, en 'o' y se
deshabilita en el ciclo de reloj 3, en 14' También se supone que el contador está en el esta-
do QIQO = 00 en el ciclo de reloj O. Obsérvese que en el flanco de subida del reloj, en / 1,
el contador irá al estado QIQO= 01 con un cierto retardo de propagación ; en el ciclo 2,
después de 12, irá a QIQO= 10; y en el ciclo 3, tras 13' irá a QIQO= 11. Como Cnt vale O
en 14, se sabe que el contador permanecerá en el estado QIQO= II en el siguiente ciclo
de reloj. Para verificar completamente el funcionamiento de un circuito secuencial, se
deben construir diagramas de tiempo para todas las posibles secuencias de los valores de
entrada.
Lógica secuencial 243
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
EJEMPLO 6.2 Contador módulo 4 basado en estados
PROBLEMA
Obtenga el estado siguiente, las tablas de salida y el diagrama de estados del circuito
secuencial mostrado en el esquema de la Figura 6. 12(a).
SOLUCIÓN
En la figura, la lógicn combinacional de entrada es la misma que en el Ejemplo 6.1 , por
tanto las ecuaciones de excitación y de estado siguiente serán las mismas que en el Ejemplo
6.1. Para resumir. se han mostrado estas ecuaciones en la Figura 6.12(b) y (e). No obstan-
te. también se ha calculado la ecuación de salida,
(6.5)
Como muestra esta ecuación, la salida Y será igual a I cuando el contador esté en el
estado Q,Q,, ; 11. Y permanecerá a I mientras el contador se mantenga en ese estado. Como
la salida Ydepende s610 del estado actual del circuito secuencial. puede añadirse una colum-
na adicional a la tabla de estados para transformarla en tabla de estados-siguientes/salidas.
Se utiliza la Ecuación (6.5) para determinar los valores que se colocarán en la columna de
salida, como indica la Figura 6.12(d). En general, para convertir una tabla de estados
siguientes en una tabla de estados-siguientes/salidas se añade una columna para incluir las
señales de salida.
En la Figura 6.12(e) se muestra cómo puede añadirse el valor de la señal de salida a cada
estado en el diagrama de estados. y en la Figura 6. 12(f) cómo añadir la salida Yal diagra-
ma de tiempos. Obsérvese que, en la Figura 6.12(f), el contador alcanzará el estado Q , Q" ;
II sólo en el tercer ciclo de reloj, y la salida Y será igual a I después de que Qo cambie a 1.
Como el contador queda deshabilitado en el tercer ciclo de reloj , permanecerá en el estado
Q,Q,, ; 11 e Ypermanecerá activa en los sucesivos ciclos de reloj hasta que el contador sea
habilitado de nuevo.
das. lo que s ig nifi ca que cada en trada en la labia de estados s i g lli c n t c~ represe n-
tará, separados por e l s ig no /. al estado s ig uiclHe y al va lo r dc sali da,
e 1/:
11 ti f-l-----r-...
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
l'
/". ,
n n n
!h ) Fcu;.¡ción de e \c ila\:lú"
{J,,! " 1: 11II' /JI t' ¡ =o IJ" '" ( m 1,)" .. ( "m (..I "
{} 1'/ 1:111011,' /= {) '" Cm 'U .. ("!l IIJ ' (J,, " ( 't!I (llJ "
. -1
ESTADO SAliDAS
PRESENTE
ESTADO SIGUIENTE
-,-
0 _ __ J
0,0, O,(siguiente) o,(siguienle) Y
Cm = () Cllt = I
- - - -- -------- ---
L--_J
O O OO O I O
O
I
I
()
O I
I O
I O
I I
O
() I
I I I I () O I
Como se observa en la Figura 6.13. esle circuito difiere del c ircuito del Ejemplo 6.2 sólo en
la expresión de su salida. que ahora depende de l valor de la selial de entrada CIlI. Del cir-
cuito se observa que e l valor Yes igual a 1 cuando el contador está en e l estado Q,Qo = 11
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Y Cm = l . Por lo Wn to
(6.6)
Dad" esta ecuación de salida . la tabla de estados del Ejemplo 6.1 debe modificarse de
manera que cada entrada represente los valores de estados siguientes y de salida. Es decir,
el valor del es tado siguiente debe calcu larse a partir de las ec uaciones de es tado siguien -
te. y los valores de sa lida debe n calcu larse a partir de las ecuaciones de salida, como
mueslra la Figura 6. 13(c). Esta tabla de estados/salidas modificada se indica en la Figura
6.13(d).
El diagrama de estados de este circuito basado en entradas tendrá cuatro estados , C0111 0
antes. Sin embargo, a diferencia del diagrama del circuito basado en estados. ahora se mar-
cará cada arco con los valores de entrada y salida en la forma X/Y. La marca X/l' se inter-
preta como sigue: si el valor de la señal de entrada en el siguiente llaneo positi vo de la señal
de reloj es igual a X. entonce s el circuito cambiará al estado apun tado por el arco en el
siguiente ciclo de re loj. AdcnHÍs. durante el ciclo act ual de reloj su salida sení igual a Y
mientras que el valor de la se,'al de entrada sea igual a X. Por ejemplo. en la Figura 6. 13(e).
el arco entre los estados Q,Qo = 01 Y Q,Q" = 10 se ha marcado con Cm = l/Y = O. signifi -
cando que si Cm = 1 en el cic lo en que Q, Q" = O1. la sa lida del contador será Y=O en el ciclo
ac tual de reloj, y en el siguient.e cic lo de reluj el contador estará en el estado Q,Qo = 10.
Esta situación se ilustra en el ciclo 1 de reloj del diagrama de ti empos presentado en la
Figura 6. 13(1).
Por lo tanto. e l contador alcanzará el estado Q, Qo = lOen el ciclo 2 de reloj, cuando la
sellal de salida Y = O. En el ciclo 3 de re loj. el contador estará en e l estado
Q1 QO :; II Y la seiial de sal ida Yserá igual al, Sin embargo. en 1-lla salida Ysení igual a O
debido a que la sc¡ial de entrada Cm ahora v:l lc 0, a pesar de que el contador está aún en el
estado Q,Q" = 11. En c011lraposición. obsérvese que la salida Yen el Ejemplo 6.2 mantenía
su valor 1 en e l ciclo 3 de reloj. debido a que su valor dependía exclusivamente de l estado
del comador. que no h:lbía cambiado.
salidas, así como los diagramas de estados. Cuando se alcanza esta etapa, se uti-
lizan las tablas o los diagramas de estados para desarrollar un diagrama de tiem-
pos, que puede verificarse por simulación. Pueden obtenerse formas de onda
mediante simulación a dos niveles distintos. A nivel físico, puede describirse el
ci rcuito lógico en un lenguaje de simulación y realizar la simulación para cada
estado y valores de entrada utili zando una biblioteca de modelos de puertas y
biestables. A nivel funcional, pueden describirse diagramas de estados o tablas de
estados siguientes/salidas en un lenguaje de simulación y realizar la simulación.
En este caso, se puede verificar el funcionamiento del circuito secuencial pero no
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
sus retardos reales, ya que el diagrama de estados y las tablas no contienen infor-
mación sobre la implementación del circu ito.
Cm
Cm~ I II'",1
er,
C;¡k _~=====f--------.l
(a) Circuito lógico
Esquema lógico
~
Obtener ecudones de
excitación 1
~
Obtener ecucioncs de
estado siguiente y de salida 2
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Generar tablas de estado
siguiente y de salida 3
i
Gcncrar diagrlllnas
de estado 4
~
Desarrollar diagrama
de tiempos 5
!
Simu lar el circuito
lógico 6
+
FIGURA 6.14 Procedimiento de análisis para circuitos secuenciales.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
las entradas.
De acuerdo con esta definición, cada conjunto S, I Y O puede tener cualquier
número de símbolos. Sin embargo. en la práctica se trata sólo con variables bina-
rias, operadores y elementos de memoria. Por lo tanto, S, I Y O dehen impl emen-
tarse como un producto vectorial de señales binari as o elementos de memori a.
mi entras que las fun ciones f y h se defi nen como ex presiones booleanas que se
implementarán con puertas lógicas.
Así pues. la máquina de estados fi nitos puede modelar cualquier circuito
secuencial con k señales de entrada A p ... ,Ak' 111 hiestables Qp .... Q'" y n señales de
salida Y I , ... , YII , como se muestra en la Figura 6. 15. En este circuito secuencial, S.
I y O son el producto cartesiano de biestables o señales de la siguiente forma:
S = Q I X QoL X ... x Q11/
I= A l xA 2 x ... x Ak
0= YI X YoL x ... x Y11
Por consiguiente, cada elemento de S, I Y O se representa con una cadena de
unos y ceros.
•
Q (), ...• O",
•
e /k
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
So So s , (Jo
S, S , S , o"
"sJ
52
.\'J
SJ
.\'()
I 0,"
o
s,/o" 5[/°0
s /oo S-/°o
s/o() S/Oo
sioo s,(o,
una n-upla de valores en los bi estables, es necesario asignar distintas n-uplas a los
di versos estados. Este procedimiento, que se denomina codi fi cación, simpli fica rá
la lógica de entrada y de salida si se realiza adecuadamente. Tras la codificación.
se genera la forma binaria de las ecuaciones de estados siguientes y de salidas.
...
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
D, Q,
FF I
f- 1>
r,
D, Q, I : J':. Señale .. de
salida
FF2
f: SX¡ ..... S
f- 1>
11:5· ..... 0 f---+
,-.. D. Q",
FF,~
' - 1>
Señales de c ntrJdil
D, Q,
d 1
FF.
1-- ~
l'
D:. Q, I : r; Señales de
sal id:.!
FF!
f Sx¡ + S
1-1>
J¡ "SXJ + O f---+
,---+ D. Qm
FF.
L-- ~
.,0.
~
Desarrollo diagrama
de eStados
~
Generar tablas de estados
siguientes y de salida
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
!
Minimizar estados
!
Codificar entradas.
estados y salidas
!
Obtener et'uaciones
de estados siguientes
y de salida
¡
Elegir e\eme~tos de
mcmorta
!
Obtener ecuaciones
de exci tación
¡
Optimizar la
implementación
de la lógica
!
Obtener esquema
lógico y diagramas
de tiemPos
!
Simular el esquema
lógico
¡
Verificar
funcionamiento y
tempori zac ión
biestable, se pueden obtener las ecuaciones de exci tación para cada entrada del
biestable, procediéndose a opt imizar la implementación lógica de las ecuac iones
de excitación y de salida, dibujando un circuito lógico que sirva de base a la gene-
ración de un diagrama de tiempos.
La última tarea cons iste en simul ar el ci rcuito lógico, comparando la sa lida
del diagrama de tiempos obten ido y veri ficando si la simul ación se correspon-
de ahora con el com portamiento que se deseaba obtener. En las secciones
siguientes se describirá en detalle este procedimiento de síntesis con un eje m-
plo completo .
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
6.9. CAPTURA DEL MODELO FSM
El diseño de lógica secuencial se ini cia con la gene ración de un diagrama de esta-
dos y/o las tabl as de estados siguien tes y de salidas. Ini cia lmente. estos diagra-
mas y tablas deben obtenerse a partir de una descripción en lenguaje natural de l
comportami ento del circu ito secuencial. Desafortunadamente , las descripciones
en lenguaje natural son. a veces, ambiguas e incompletas en muchos casos. debi-
do a que prestan atención excl usivamente a la función principal del circ uito
secuencial. sin enumerar todas las situac iones de su posib le comportamiento. Por
este motivo, las descripciones en lenguaje natural se complementan. a veces . con
diagramas de tiempos. Sin embargo, incluso estos diagramas tle tiempos pueden
resultar incompletos ya que no muestran las respuestas del circ ui to a toclas las
posibles sec uencias de entrada sino só lo las más importantes. Así pues. en
muchos casos es mejor sustitu ir la descripción en lenguaje natural por un a más
preci sa. basada en un lenguaje de descripción de hardware como VHDL , o por
una forma gráfica. como un diagrama de flujo o un diagrama ASM. que se intro-
ducirán en los Capítulos 7 y 8. No obstante. independientcmente del método quc
se utilice, la construcción del modelo FSM es una parte muy creativa del proce-
so de di seño, requiriendo espec iali zación y experienc ia. En esta sección se des-
cribe la construcción del diagrama de estados y de la tabla de estados con un
ejemp lo sencillo.
SOLUCIÓN
A panir de es ta descripc ió n. se concluye qu e el contador requi ere a l menoS dos biestables.
ya que debe memori zar los códigos de tres dígitos: O. I y 2. Además. como el contador es
hidireccional , se necesitan dos sec uencias: un a asce ndente y otra desce nden te. La sec uen-
cia ascendente conti ene tres estados: 110 , 11 1 Y 112' avanzando desde 110 a 11 J Y 11 2: y volviendo
a 110 mientras CD = 10. De igual fo rma, cuando la cuenta es descendent e pasa por tres esta-
dos que. en este caso. son d u- di y d:!.. Sin embargo. en la secuencia desce ndente el co nt ador
avanza desde do a ti, y d , Y vuelve a do mi entras CD = 11 . Las secuencias ascendente y des -
ce ndent e se mu estran en la Figura 6. 20( b).
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
A l desarrollar el diagrama de estados del comador, debe tenerse en cuenta la posibili -
dad de que el cont ador cambie de direcc ió n du rante la cuent a. es dec ir. debe permitirse la
posibil idad de que el va lor de la entrada O cambie mientras C = l. Aunque este caso no se
ha mencionado en la descri pción dada anteri o rmente. se puede resolver esta posibilidad
suponi endo qu e e l contado r seg ui rá co ntando en una llueva dirección desde el mismo esta-
do de la otra sec uencia, es decir. si D cambia de O a l , el co ntador iní desde 11; hasta
dv+ " "'oo" para i = O. I ó '2. Este caso ha sido añadido al di ag rama de estados de la Figura
620(c)
CD=1I!
('1)= 10
CD=-OX CD=IIX
CD=I I
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Por supuesto, esto es fácil de entender ya que los distintos modos de operación se
distinguen claramente y son fácilmente visibles en el diagrama de estados. Sin
embargo, en diseño digital la claridad no es, usualmente, el objetivo prioritario;
por el contrario, a menudo los factores más importantes son el coste y las presta-
ciones y, desde esta perspectiva, es necesario considerar la minimización del
número de estados como parte del proceso de diseño.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
, . d' . . 1
sigUIentes con IClones son Ciertas:
l. Ambos estados s. y Sk producen el mismo símbolo de salida para cada
símbolo de entrada i: es decir, h(s .,i) = h(Sk,i).
2. Ambos estados tienen estados "ig1uientes equivalentes para cada símbolo
de entrada i: es decir,fCs/) "' .f(sk,i) .
De esta definición de equ ivalencia de estados se deduce un procedimiento
sencillo para obtener una máquina de estados tinitos con el mínimo númcro de
estados. El procedimiento requiere particionar todos los estados de una FSM en
clases de eq ui valencia y construir la FSM con mínimos estados, en la que cada
estado represente una clase de equi valencia.
En la práctica, este procedimiento consta de dos pasos. En el primero, se· com-
paran los símbolos de salida para cada estado y para cada símbolo de entrada. El
objetivo de esta comparación es combinar estados en grupos, de manera que todos
los estados del mi mo grupo generen e l mismo símbolo de salida para cada sím-
bolo de entrada. En el segundo paso, se detennina el siguiente estado para cada
estado del grupo y para cada símbolo de entrada . Así, se pueden particionar los
grupos en subgrupos de modo que todos los estados de un subgrupo tengan sus
estados siguientes en el mi smo grupo para cada símbolo de entrada.
En algunos casos. todos los estados que están en el mi smo subgrupo después
de la partición no tienen sus estados siguientes en el mi smo subgrupo, aunque sí
en el mismo grupo. En tales casos, el segundo paso debe repetirse hasta que no
sean necesarias particiones adicionales. Así pues. en teoría, cada subgrupo repre-
sentará una clase de eq ui valencia idéntica a un estado de la máquina mínima de
estados fini tos. En el siguiente ejemplo se describe este procedimiento con el con-
tador módulo 3 del Ejemplo 6.4.
miento de sc rito anteriormente al co njunto de estados de la Figura 6.21(b). Oh~ é rv(' s e quc
s~ e mpieza (un el (o njul1t o de todo s 10:-' es tados y se (ktermini.tn los val ore s de salida para
cada co mbinac ión dc los va lores de en trada. Para los \'a lores de entrada CD :;:OX. 10, 11. se
, abe que el valor de la señal de sa lida ser" Y = O. O. I ó (). D. O ó O. l. O. Ahura. se pueden
crea r los tre s grupos siguientes: G n :;: {IIO'''o}' G l :;: {II I,di} Y C 2 :;: { 1/ 2,d2 }, De spués. s\.' de he
dete rm inar e l e stado siguiente para \.' ad ~l estado de l grupo y pa ra cada conjunlO de \'a lort.'s
de cn triJda. C omo puede ve rse, para cada \ ',11 0 1' de las sl! ña le s de e ntrada. los e stados
sigu ie nt es a cada estado del grupo pe rt e nece n al mismo grupo, Por lo tanto, no es nCCL'sa-
rio seg uir parti c ionando, COIll O cada grupo represe nta una clase de estados equi va lcnt\.'s, se
pueden renombrar los gru pos G{). G I Y G , CO IllO estados so' SI y.\') e n la máquina de es tad os
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
finitos mínima . La tahla de es tado s siguientes/salidas para esta FSM mínima se prese nta e n
la Figura 6.21(c).
(XII
I
GI) :;:' (1I",d,,}
()(XI
+
G ! :;:. (1I I, d ; )
0 10 \
G~:::: (11 .. ti . )
Las clases de equivalencia de una máq uina de estados fini tos pueden ubtener-
se también construyendo una tabla de implicación. que permite eliminar estados
no equivalentes e indicar los estados equivale ntes. Como muestra la Figura 6.22.
una tabla de implicación es una tabla triangular en la que cada celda representa un
par de estados concreto. Obsérvese que las filas han sido marcadas con todos los
estados salvo el primero, mientras que las columnas se han etiquetado con todos
los estados salvo el último. De esta manera. se asegura que cada pareja de estados
tendrá asignada una celda en la tabla.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
x
X < S;:.5(,>
<S ) 'SJ>
<SII' S,¡ >
'\'0
I
FIGURA 6.22 Tabla de implicación ,
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
PROBLEMA
Obtenga e l mínimo número de estados para la máquina de e stados finitos descrita por la
tabla de la Figura 6.23(al. [Obsérvese que esta tabla es una ligera modificación de la tabla
de la Figura 6.21 (al .]
SOLUCiÓN
Primero, es necesario crear la tabla de implicación, como indica la Figura 6.23(bl. Después.
se tachan todas las celdas que representan parejas de estados con diferente salida en. al
menos, un conj unto de va lores de e ntrada , Eso deja, como únicas parejas para examen pos-
terior de equiva lencia entre estados siguientes, a </lo,do>' <lIl'd]> y < u 2,d2>. La pareja
<uo,do> tiene los mismos estados siguientes para cualquier conj unto de valores de entrada.
Por lo tanto. son equivalentes y no implican la equivalencia de ningún e stado siguiente. La
pareja <l/l'd 1> requiere que los estados l/o y d 2 sean equivalentes, así que se introduce
</tO'd2> e n la celda que represc-nta a <ll],d]>. Los estados u2 y d.1. son equivalentes. ya que
tienen los mi smos estados siguientes para cada conjunto de valores de entrada.
Posteriormente, se inspecciona la tabla y se inserta una x en la celda que representa a
</l1,d]>. ya que 1/0 y d no son equ ivalentes. lo que implica que 11 y d] lampoco lo sean .
2 1
Con esto tlnaliza el segundo paso del procedimiento .
En e l terce r paso es necesario agrupar todos los estado s equivalentes en clases de equi-
valencia. En el ejemplo. sólo Uo y do, Y 1/ 2 Y d 2 son equ ivalentes.
Así pues. la máquina de es tados finitos mínima llega a tener cuatro estad os. representa-
dos por las cuatro clases de equivalencia siguientes: {"o,do), {",}. {", }. {" ,.d, }.
el resto de esta sección se exponen las tres estrategias más comúnmente utili za-
das : mínimo cambio de bits, prioridad de adyacenci a y cod ifi cac ión del uno
caliente.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
,('10
d.,l l
cr;;0
0,/0
(a) Tabla de estado!> siguientes y de salidas
NÚMERO DE
CODIFICACiÓN s" 5, S, S,
00 01 10 11
2 00 01 11 10
3 00 10 01 1I
4 00 10 11 01
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
5 00 11 00 10
6 00 1I 10 01
7 01 00 10 I1
8 01 00 11 10
9 01 10 00 I1
10 01 10 1I 00
11 01 I1 00 10
12 01 11 00 10
13 10 00 01 11
14 10 00 11 01
15 10 01 00 11
16 10 01 11 00
17 10 11 00 01
18 10 11 01 00
19 11 00 01 10
20 11 00 10 01
21 11 01 00 ID
22 11 01 10 00
23 11 10 00 01
24 I1 10 01 00
00
11
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
tes de estados crearán un l-cubo en el mapa de Karnaugh durante la minimización
l6gica de las se ñales de sa lida.
La Figura 6.25(a) muestra un diagrama de cuatro estados. Obsérvese que los
estados s I y S2 sati sfacen la condición de la primera prioridad; esto es. la entrada
O lleva a ambos estados a 53' Además, sati sfacen la condición de la segunda prio-
ridad, ya que ambos son estados siguientes de so' En relación a la tercera priori-
dad, los estados So y SI tienen e l mi smo valor de salida, O, para el mi smo valor de
entrada, O, y los estados 52 y 53 satisfacen idéntica condición. Estas prioridades se
li stan en la Figura 6.25(b). y la Figura 6.25(c) muestra una posible codificación
que sati sface las di stintas prioridades de adyacencia.
Prioridad 1: Cf¡.s2' ~0
Priorid"d 2: el',"f 1)
Pri o ridad~ : ('\·o"\', ).(Sl,,I, ) OI .~
1 ~
~
oo~
(a) Diagrama ue CSlados inid ,,1 In) Prioridad en las adyacenci as (el Posible. coditk....cI6n
salida para cada tipo de codificación. En el resto de esta sección, se describe este
procedimiento uti]jzando el ejemplo del contador módulo 3.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
retardo de la lógica del contador.
SOLUCiÓN
Como puede verse en la tabla de estados siguientes/salidas, este contador tiene sólo tres
estados, lo que significa que cualquier codificación produce dos parejas de estados con
codificaciones adyacentes y un par de estados cuyas codificaciones difieren en dos bits.
Además, como se pueden codificar cuatro estados con dos variables, Q, y Qo' existe una
combinación de valores redundante. Por lo tanto, puede omitirse la combinación Q,Qo; 11 ,
ya que esto permitiría reducir el número de unos durante la minimización de la lógica. Así
pues, una posible codificación es la A, mostrada en la Figura 6.26. Es la codificación que
se obtiene si se sigue la estrategia de mínimo cambio de bit.
ESTADOS
CODIFICACIÓN A CODIFICACIÓN B CODIFICACIÓN el
0,00 0,00 0.0,00
oo o1 oo 1
o1 oo 010
1 o 1 o 1 oo
variables de. entrada ya que se requieren inversores dobles para incrementar su conectivi-
dad como señales de entrada. Los inversores dob les en la entrada añaden un coste y un
retardo constantes a la estimación, por lo que pueden omitirse, ya que no afectan a la COI11-
paración entre las dos implementaciones alternativas.
En la Figura 6.27 se muestra la estimación del coste y el retardo de la coditicación A.
En primer lugar, en las Figuras 6.27(a) y 6.27(b) se presentan los mapas de Karnaugh para
las func iones de estado siguiente y de salida, mientras que las ecuaciones de excitación y
de salida obtenidas de los mapas de Karnaugh se dan en la Figura 6.27(c). Finlmente. cada
una de estas ecuaciones se ha implementado con redes lógicas de dos ni veles de puertas
NAND. Como puede verse, el coste lOtal será igual a coste(QI) + coste(Q2) + coste(Y) ; 24
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
+ 24 + 18 ; 66, Yel máximo retardo de entrada será igual a 4.0 ns, mientras que e l retardo
de salida será igual a 3.6 ns.
CD CD
Q,Qu 00 01 11 10 Q,Qu 00 01 11 10
,
(lO O O O O t O
-
o . I 00 O o t o
01 O I O I O O I O 01 O O O O
,
11 !x X X X X x ,' 'x X 11 X X X X
" ,
10 t O I O O t O O 10 O O O I
--
QI(slguiente). Q,} s ig uicnte) )'
>
,8 y
1.4
2,2
CD CD
QtQo 00 01 11 10 QtQo 00 01 11 10
(Xl O O O O O 1 1 O 00 O O O O
01 () 1 O 1 1 O () () 01 O O 1 O
11 X X XX X X X X 11 X X X X
10 1 O 1 O O O O 1 10 O O O 1
Q I (S lg UI Cllh!)
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
(a) Mapa de eSlados sig lllc llIcs tb) Mapa de salida
~
.8 Y
t.4
1.8
CD el)
Q, Q,Q
"
00 0 1 I I 10 Q, Q,Q)" 00 ni II lO
1)(JO X X X X X X X X X X X X 000 X X X X
()() I (1 (1 I (1 (1 I I O (1 O I O 00 I o o 1 (1
OII X X X X X X X X X X X X oII X X X X
)10 (1 1 (1 O I O (1 O I I O O OlO () () o (1
()() I (1 O I O O (1 I (1 O (1 1 100 o (1 o 1
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
01 X X X X X X X X X X X X 101 X X X X
II X X X X X X X X X X X X I II X X X X
lO X X X X X X X X X X X X 110 X X X X
)'
~
Q.,:I ~ igLLiclltc I .8
(1 ¡(sigu icIlIC ) 1,4 )'
Qo(siguicntc) 1.8
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
conexiones, se adaptan mejor a las implementaciones VLSI. Para co mparar la
eficiencia total de los diferente s biestables , se puede obtener la lógica de
entrada para e l contador módulo 3 utili zando cada uno de los cuatro tipos de
biestables.
EJEMPLO 6.8
PROBLEMA
Dado el contador módul o 3 con la cod ificac ión A, como se describe e n la Figura 6.26,
seleccione el tipo de biestable que minimice el coste y/o el reta rdo de la lógica de
entrada.
SOLUCIÓN
Para realizar el problema, se comienza con la tabla de estados siguientes mostrada en la
Figura 6. 27(a), que se ha repetido e n la Figura 6.30(a). Después. para obtener las ecua -
ciones de excitación de los distintos tipos de biestables, se utili zan las tablas de exci l"-
ción de los cuatro biestables que se muestran en la Figura 6.30(b). A continuación. 'c
tomará cada pareja de eslados presente y siguiente del mapa de estados siguientes y se
sustituirán sus valores de estado siguiente por los valores de entrada requeridos en la tabla
de excitación. De esta forma, se pueden crear mapas de entrada para los biestables SR,
JK, T Y D. que se muestran en las Figuras 6.30(c), (d). (e) y (l), respecti va mente.
Obsérvese que. realmente. los mapas de entrada combinan cuatro mapas en el caso de
biestables SR y JK, Y dos mapas en el caso de biestables T y D. A partir de estos mapas
de entrada se pueden obtener expresiones mínimas para cada entrada del biestable. como
se indica en la parte inferior de cada mapa. con el coste y retardo estimados para cada
expresión. La estimación del coste y el retardo no incluye los inversores de entrada. ni el
coste ni el retardo de los biestables.
De estas estimaciones se deduce que una implementación con biestables JK tiene míni-
mo coste y bajo retardo, principalmente porque, en este caso, se puede utili zar una puerta
AOI para la implementación de la lógica de entrada de JI y Jo' en lugar de dos ni veles de
puertas NAND. No obstante, en muchos casos en los que hay que implementar circuitos
secuenciales con muchos estados, los biestables JK no presentan grandes ventajas sobre
otros tipos de biestables. Se puede ver en este ejemplo que los biestables T, D Y SR gene·
ran implementaciones con costes y retardos similares.
Lóg ica sec uencial 267
el)
l" no 111 11 111
(~I 11 11 11 11 1 11 11 1
01 (J 1 (J 1 11 11 1 11
11 X X X X X !\ )( X
111 1 (J 1 (J (J 1 11 11
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
la ) Tanl.l de e, taJ \l~ ,igUI~' llll' " para
1:1~·uJ i fi c :Il'j¡in.-\
Q (presente) Q (siguiente) S R J K T O
() O O X O X O O
O I I O I X I I
1 () O I X I I ()
I I X [) X O O I
('Il
IIU UI 11 lO
"
UO (J X o X Il X Il X l Il (J X o X l 11
01 11 X X 1) 11 X X 11 11 X o l l o o l
11 X X X X X X X X X X X X X X X X
111 X (J o x x (J ox (J l l 11 tl l o X
FIGURA 6.30 Implementación del contador módulo 3 con varios tipos de biestables.
268 Principios de diseño digital
CD
n[) 01 11 lO
"(JO X X X 1 X o 1 X
" " " " X X
" X
01 O X X 11
X X X X
"
X
X
X
X
X X
" "xX X X X
X 1
X
1 X
X
X
X X
1
" X o 11 X 1
I LI X O
" X X I X X 1 11 X
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
1C\ , ~t ('=
K¡ =c ((,OSIl.'=n, rClard o = 01
J I = OICD' + Q'leD' = re' + O ID ' + OID')' IC(l~ IC = 11. n:tard o =2.-t1
CD CD
Q,Q, 00
O O
'" 11 10
"
00 01 11 111
Oú
O
" O I
11
O
" 1 nI) 11 11
O ,
O
O 1
" I O O 1
01
" " O I 1 1 01
" 11 1
"
X X X X X X X X I XX X X
"10 11 O 1 1 I
" X X
1 () 1 1
X X
"" O lO
" " 1 O
"
TI =Q:e + Q'oCD + QlrlJ' [tll~\(: =22. retardo =3.61 D I '"" Qle + QflCO' + Q'I Q'iICO Ico~ ll' =1..1. retard o = -I.(l ]
1;1 =QpC + Q/'O + Q' ¡C/J' (coste ", 21. re ta rdo =3.nl 1)11 =Qll e' + QICD + Q' IQ'n eD' I CO~ I C =24, rCl ard lJ =H )l
(e) Irnpkmcntaciólll..:on bi estables T (O Implemen tación COn bi c :, lab l c~ O
nentes expresados en un lenguaje de descripción hardware antes de que sea uti li-
zado por un programa software de simulación y test.
El paso tinal en el proceso de síntes is secuencial consiste en obtener un dia-
grama de tiempos del circuito, y los retardos de las puertas y biestables. El dia-
grama de tiempos del contador módulo 3 se muestra en la Figura 6.32. Los retar-
dos en el diagrama de tiempos corresponden a los retardos dados en la Figura
6.3 1(b). En la Figura 6.32 se habili ta el contador módulo 3 en lo' pero no cambia
de estado hasta el flanco de subida de la señal C/k. Alcanza el estado SI (Q 1Qo = 0 1)
en 11 + 4.0 ns. Tras el segundo flanco de subida, alcanza el estado siQIQo = 10)
en 1, + 4,0 ns . La señal de salida Y vale I en 1, + 7,6 ns , ya que Y debe valer I en
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
s? si CD = 10. Cuando, en el siguiente flanco de subida, el contador módulo 3
alcanza el estado SO(QIQO = 00). la salida Yvuelve a O en 13 + 7,6 ns. Cuando D
se desactiva en /4' la salida Y vale I de nuevo en /4 + 5,6 ns, ya que la salida Y
dcbe ser I en el estado '\'0 si CD = 11 . Después, el contador módulo 3 alcanza el
estado s2(QI Qo = 10) en 15 + 4,0 ns e Yv uelve a O en 15 + 7,6 ns, ya que Y debe ser
O en s2 si CD = 11. Finalmen!e, después de 16 + 4,0 ns el contador módulo 3 alcan-
za el estado sl(Q IQO= 0 1). Este es el último estado que se indica en el diagrama
de tiempos .
e f)
~ 17 ~ 17
Q' ,
~f ~r7 Q,
---.,
L~ :>J' 4.0
Q, e-
K , Q' , -1-
1.8
I
-g2.2
1.4 y
-~
L RETARDO DE ENTRADNSAUDA
Jo Qo - 1- CAIANO
r > 4.0
e,D a e/k 4,4
Q'o
Ko Q'o - e/k a Y 7,6
Qo
e, D a Y 5,6
CIk a e /k 6,4
C'Ik
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Clk
, ,
Q, ---"':4.01·
, -:4
, .o
b ~.o¡:
,
Qo , ---.!4.01_
, ~4,, ob
,
y ~I ~ I~L______, _______
/0 /, /, /) /,
FIGURA 6.32 Diagrama de tiempos de un contador módulo 3 para una secuencia de valo/es
de entrada.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Kohavi. Z. SwiTChillg alld Alllomatic TheO/y . 2nd. ed. New York: McGraw-Hill , 1978.
Tratamiento teórico completo de máquinas de estados fini tos y lógica secuencial.
McCluskey. E. Logic Desigll Prillciples. Englewood Cliffs, NJ: Prentice-Hall, 1986.
Proporciona explicaciones detalladas de los conceptos básicos en el anál isis,
síntesis y test lógico secuencial.
6.16. PROBLEMAS
6.1. (Señal de reloj ) Calcule la frecuencia 6.4. (Latch D sincronizado) Diseñe un
de reloj y e l rendimiento de ciclo para lateh O utilizando sólo (a) puertas
una señal de reloj con un ancho y NAND y (b) puertas NOR, y calcule
período de: los retardos D a Q y C/k a Q para tran-
(a) 5 ns y 20 ns siciones de salida positivas y negati-
(b) IOns y lOOns vas.
(e) 100 ns y l nS
6.5. (Biestables) Diseñe un biestable
6.2. (Latch SR) Dibuje el diagrama de maestro-esclavo (a) SR, (b) JK, (e) D
tiempos de salida de una implementa- y (d) T, utilizando latches SR sincro-
ción (a) NOR y (b) NAND de un latch nizados y puertas ANO, OR e
SR para las señales de entrada mostra- INVERSORES.
das en la Figura P6.2.
6.6. (Biestables JK) Obtenga las formas de
onda de salida de un biestable JK
s maestro esclavo para las formas de
onda de entrada dibujadas en la Figura
P6.6.
Clk
FIGURA P6.2 L
6.3. (Latch SR) Obtenga una implementa-
ción para un latch SR sincronizado K L
utilizando sólo:
FIGURA P6.6
(a) puertas NOR
(b) puertas N ANO 6.7. (Biestables) Utili zando mapas de
(e) puertas ANO, OR e INVERSO- Karnaugh. obtenga las ecuaciones
RES características a partir de las tablas
272 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
so sJl s,lO
6.9. (Análisis secuencial) Obtenga (a) una s , sJO siD
tabla de estados y (b) un diagrama de .\'2 s,lO s,lO
estados para el circuito secuencial
s3 s,lO s,lO
s, s,lO sil
mostrado en la Figura P6.9 s, s;1O s6/1
s6 s;1O s,fl
s , s310 s, /I
FIGURA P6.12
sil
s,/O
s;/1
FIGURA P6.10 s"IO
s;[O
6.11. (Análisis secuencial) Obtenga (a) las s2/O
ecuaciones de exc itación, (b) una
ecuación de estado siguiente. (e) una FIGURA P6. 13
tabla de estados/salidas y (d) un dia-
grama de estados para el circuito mos- 6.14. (Codilicación de estados) En el dia-
trado en la Figura P6.ll. grama de estados mostrado en la
Figura P6. l4, obtenga las codificacio-
nes de estado utili zando:
(a) La heurística del mín imo cambio
de bit
(b) La heurística de prioridad en
adyacencia
FIGURA P6.11 (e) Codificación del uno caliente
Lógica secuencial 273
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
1/1 ca todas las secuencias de entrada que
tengan tres o más unos consecutivos. o
tres o más ceros consecutivos.
FIGURA P6.14
6,21. (Síntesis secuencial) lmplemente un
6.15. (Codi ficac ión de estados) Obtenga la
circuito secuencial que complemente
codi ficaci ón de estados que minimice
un número de 16 bits en complemento
la lógica de salida de un contador que
a dos. X = xI5""14"'"" IXO' El circuito
genera la siguiente secuencia:O. l . 3,
t.iene una entrada. X que tiene valor Xi
6. 10. 15, O, ...
en el ciclo de re loj i. y otra entrada
6,16, (Síntesis secuencial) Diseñe un conta- Reser. que iniciali za el ci rcuito a un
dor que genere la secuencia O, 1, 3, 6. estado inic ial después de 16 ciclos de
10. 15. utilizando cuatro biestables (a) reloj. La salida Yserá el complemento
D. (b) SR, (e) JK y (d) T. como ele- a dos de X En el estado inicial. se
mentos de memoria y codifi cación en establecerá a O un indicador. El c ircui -
binario natural. to debe actuar como sigue: Para cada
Xi' O ::; i ::; 15. si indi cador = 0, enton-
6.17. (S íntesis secuencial) Diset1e un conta-
ce s Yi = Xi Y indicador = Xi: en caso
dor que genere la secuencia O. l . 2, 3.
contrario. Yi = X'i' Desarroll e un di a-
4. 5,6.7,8,9, O,... , utilizando codifica-
grama de estados y un circuito lógico
ción en binario natura] y biestables D.
utilizando biestables D.
6.18. (Síntesis secuencial) Diset1e un detec-
6,22, (Síntesis secuencial ) Diset1e un con-
tor de paridad que cuente el número
trolador de sem<Íforos simpl ifi cado
de unos en una cadena de entrad a.
que conmute las luces en un cruce
Este detector acti va su salida Ysi reci-
cuando una calle norte-sur (NS) se
be un número impar de unos en la
cruce con una calle este-oeste (EW).
entrada X Una señal asíncrona Reset
La entrada de l cont ro lador es el botón
debe poner al detector de paridad en
PASAR pulsado por los peatones cuan-
su estado inicial. Utilice como ele-
do quieren atravesar la ca lle . Las sali-
mentos de memoria sólo biestables (a)
das son dos set1ales NS y EW que con-
D, (b) JK Y (c) T.
trolan los semáforos en las direccio-
6.19, (S ínlesis secuenc ial) Di set1c un circui- nes NS y E W. Cuando NS o EW son O,
to que reconozca una secuencia de se enciende la luz roj a. y cuando son
entrada que tenga. al menos. tres unos. 1, se enciende la luz verde. Si no hay
El circuito ti ene una única entrada X y peatones. NS ; O Y EW; 1 durante 1
ulla única salida Y.además de una minuto. y des pués NS; 1 Y EW ; O
señal asíncrona Reser. El circuito esta- duranie otro minuto. y así sucesiva-
blece la salida Y a 1 si la señal de me nte. Cuando se pul sa el botón
entrada X es igual a I al menos duran- PA SAR. NS y E W se ponen a 1 duran-
274 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
e
de
A P
í
. .
,/
Componentes
memorlzaClon
© 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
Álgl'bra booleana P UCllaSlógicas
y biestables
6
J
Máquina de
estados fi nitos .... 4 6
Técn icas de
diseño lógico '"'
'-+
Técnicas de
diseño digi tal
Sistema binario 2
y representación
de dalos
t -+ ,
5 7
Componentes Componentes de
combInacionales almacenamiento
T -- T
Máquinas de 8 Diseño de 8
estados finitos transferencia entre
generalizadas registros
1
9
Componentes
del procesador
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
7.1. REGISTROS
El componente de memori zación más sencillo es un registro, que puede conside-
rarse como un biestable ampliado a múltiples bits. Cada registro consta de 11 bies-
tables acti vados por una señal de reloj común . En otras palabras, cada biestable del
registro almacena su propio dato en cada fl anco ascendente de la señal de reloj. Así
pues un registro básico posee 11 entradas y 11 salidas además de la señal de reloj.
En la Figura 7. l se muestra un ejemplo de registro de 4 bits. Su símbolo grá-
fi co, que utilizaremos a lo largo del libro, se muestra en la Figura 7. l (a). Como se
indica en la Figura 7. l (b) el registro consta de cuatro bi establ es D conectados en
paralelo.
C/k
" '"
- D, Q, - - D, Q, - ~
D, Q, 1- - D" Q" r-
.- f> - f> .- f> r- >
e lk
Q, Q, Q,
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Pre,H!/ /; /, l. fu
R I'.'g ISlnl
1, /. /"
¿, ¿, b b
y y y
( 'Icm"
Clk
Q. Q. Q"
Ih) Esquema do.!! reg istro
FIGURA 7.2 Registro de 4 bits con puesta a uno (prese~ y puesta a eero (elear) asíncronas.
Como puede ve rse en la Fig ura 7.2(b). el contenido del regi stro puede hacer-
se todo ceros poniendo a O la selial C!l!or durante un corto período de tiempo. De
forma simi lar. un contenido ele todo unos podría introducirse poniendo a cero la
selial Presel . Obsérvese que estas seJiales de puesta a cero y puesta a uno son inde-
pend ientes de la seña l de reloj y tienen prioridad sobre ell a, lo que significa que
si están a cero durante el tlanco ascendente de la señal de re loj. se ig nora la ent ra-
da I y el regi stro es puesto a cero o a todo unos .
En lo que resta del libro supondremos que todos los registros y contadores
pueden di sponer de entradas asíncronas de puesta a cero. a uno , o ambas. En gene-
ral. no lo indicaremos explícitamente salvo cuando sea esencial para expli car el
func ionamiento de l componen te.
Tanto en el registro de la Figura 7.1 como en el de la 7.2 automáticamente se
alm acena un nuevo dato por cada tl anco ascendente de la selial de reloj. Sin
280 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
ESTADO
ESTADO SIGUIENTE
ACTUAL
LO/ld
Load
°3 °2 0,
o No cambia
I
" "
(a) Símbo lo gráfico
/. /,
, O
I , I (J , I
O , I
(J
5 S S S
Ú}ml 1 Se lectur
I Selector
I Selector
I Seketor
"- O, Q, 1- "- /\ Q, - ~
O, (i, r- '--
IJ" U"
-
- > - t> - > - t>
Clk
•
r, 1'.' l' , r,
(e) Esq uema de l reg istro
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
tab le más a la izqui erda del registro . Un registro como el de la Figura 7.4 se podría
utili zar para convertir una secuencia de datos seri e en otra de datos paralelo. Por
este moti vo se le denomi na a veces reg istro de desplazami ento de entrada-
serie/salida-paralelo.
ESTADO
ESTADO SIGUIENTE
ACTUAL
/,
Rcgi~!ro
f)('~plll=lII'
d(' lk~p hl /nll1 i ('n to
Q, Q. QI Qo
Desplazar
°3 °2 0,
°0
O No cambia
I IL Q3 Q, Q,
(a ) Símbolú gráfico
(b) Tab la de opcrac]()n
/,
, OI , OI , OI , I (1
.í
Sd~c lor
¡- Selector
¡- Selector
I
Sckct\.r
,.
" (e) Esquema de l regIstro
.',
FIGURA 7.4 Registro de desplazamiento a la derecha con entrada-serie/salida-paralelo.
cargar en parale lo un nuevo dato. Adetmls, podría desplazar e n un bit su con ten i-
do a la izquierda o ti la derec ha, introduciendo por la derecha o por la izquierda e l
bit de dato di spo nible en las e ntradas serie ' R o I L respecti vamente. La Figu ras
7.5(a) y (b) mu estran el s ímbolo gráfico y la tabla de operac ión, y la Figu ra 7.5 (c)
muestra e l esquema de este regi stro multifunc ió n.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
S, S. O, O2 O, O.
1, 1,
1,
I I I I I I I j
3 2 1 O 3 2 , O .\ 2 I O :1 2 1 1)
rr=
I
S.. kt'wr
Ir Sclccwr
rr
l
Sdc~' lur
rr
St'1cl.' h\r
e/k
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
a fin de tratarl os en un procesador.
7.3. CONTADORES
Un contador es un tipo especia l de reg istro que incorpora un incrementador, que
permite contar de forma ascendente o descendente. En la Figura 7.6 se muestra un
ejemplo de contador ascendente que tiene dos señales de control: una señal E de
habi litación (El/a!Jle) , que cuando vale I habi lita la cuenta: y una seña l Clea r para
la puesta a cero del comador. El símbolo gráfico de este contador binario ascen-
dente de 4 bits se muestra en la Figura 7.6(a) y su tabla de operación en la Figura
01 C¡ C¡+1 D,
E OPERACIONES O O O O
O I O I
"
>
( ',ljll:ullll
O No cambia I O O I
( 'h ." e e e IJ" 1 Cuenta I 1 I O
la ) SítnboJu ~r;Hi ,-,u (h) Tuh la de 0 p~'ra'-'lón (e) Tabla de verdilU de] HA
e, c•
c., ( [ e,
.rr e, .(T
8 8 8
11 ·\ 11 \ 11 1\ HA r=J
n /j I r-- n. v: f-- " (1 1 t-- D" l,J,, ¡-
r- r r
el,'/u
),I/,d,1
e e,
.I¡",m/l"
(d i Esquema del COntador
7.6(b). En la Figura 7.6(c) puede verse que el incrementador con,w de una se rie
de semi-sumadores (HA) dispuestos de manera que e l HA en la pos ición ue bit;
tenga sus dos entradas conectadas a la salida del ;-ésimo bi estable Q, y al aca rreo
C; de l HA en la posición ;- 1. Obsérvese que el nuevo va lor del biestable D; será
1 si Q I. ó C I . pero no ambas . son l . Por el contrario. la salida C.1+ 1 será 1 s610 si Q I
Y C; son ambas l. La tabla de verdad ue un HA se da en la Figura ó.7(c¡. dc la
cual podemos derivar las s iguientes expresiones booleanas para D, y C,.I:
D; = Q, EB C;
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Ce. 1 = Q¡C¡
/l
~.
C"Ill.ltlnr
.1"'CII,kn ldu"",,-"'lld"II W
E o OPERACIONES
0".11
O X No cambia
O Cuenta ascendente
I C uenta dcsccndenl~
(n) Simbolo grMico
(b J Tabla dl.' lJ l>C l'aI.' UlIl
E O Q; C; C;"l O;
O O O O O
O O I O I
O I O O I
O I I I ()
----------------------------- . ----
O O O O
O I I I
I O O I
l l O O
(e) Tabla dI! verdad del HA S
J
E
c-eS n
'---"CJ
c.~ c'-U 1- h "I
• l A!'> { II MI It \s ¡lA.'" l
,0.,"'1,<1"
11,' ",un,.,'
Q, ~.
(d ) E sqUl'I1l:\ IÓglCll
Mi entras la señal E sea l . este contado r rea li zará un a cuenta ascendente módu -
lo 16. sumado I a su conte nido por cada llanca de subida del reloj .
Este contador ascendente básico puede tambié n ampli arse como contador
ascendente/descendente sustituyendo el semi-sumador por un semi-sumador/
restador (HAS), que pucda inc reme ntar o decreme ntar bajo el control de una señal
de dirección . Por ejemplo, en la Fi g ura 7.7 se muestra un contador ascendente/
descendente que se parece bastante al contador ascende nte de la Figu ra 7.6.
excepto en que ti ene una te rcera entrada de control. D. Como ind ica la tabla de
operación de la Figura 7.7(b), el objetivo de esta e ntrada adicional es permitir
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
contar de forma ascenden te cuando su valor es O y de manera descende nte c uan-
do es 1. La tabla de verdad de un HAS se muestra en la Figura 7.7(<:). de la que
es fác iI de rivar expresiones booleanas para Di y C¡+1:
D ,. = Q, ®C,
C,+I = D 'QIC, + DQ'¡C;
D LOAD E D OPERACIONES
1, Contaij"r
> ;):....... lllk nlc/uc"l·l·nUe' Ite () O X No cambia
I..,(md (J , O (! Q. O I O Cuenta ascendente
O I I Cuenl3 descendente
(a) Símholo gráfico
I X X Carga la entrada
(h) Tnh la de I)per:lc ión
/, /, 1, 1"
D
,
I
I I 1 I
UAS
- HAS - HA S
¡-
HAS
=J
I I I
Ll!illl
r
1
Selector
O
Ir
1 11
Sckctur
I
r
[ s,,,,,,,,
"1 r "1
St"lcclor
c- D , Q, c- D. O. c- /) o, c- J)"
(J"
-
Q',
r- >
Q',
- F>
Q',
- F> (l'
"
cu-
En el esquema lógico de la Figura 7.7(d) puede verse que cada HAS consta de
una puerta XOR conectada a las entrada de los biestables, así como dos puertas
ANO y una OR que se utilizan para propagar el acarreo.
Es importante observar que el contador ascendente/descendente de la Figura
7.7 siempre comienza a contar desde cero. En muchas ocasiones es si n embargo
más conveniente poner inicialmente el contador a un valor diferente para después
contar de forma descendente o ascendente hasta que alcanza el valor O. Para ello
sólo se necesita una puerta NOR que detecte cuándo se alcanza el valor de cuen-
ta O. Para construir un contador con inicialización de este tipo, combinamos un
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
incrementador/decrementador con un registro con carga en paralelo. Como mues-
tra la Figura 7.8(a), este contador tiene tres señales de control: E, D, Y Load. La
señal E habilita la cuenta en la dirección especificada por la señal D, y la señal
Load cargará una nueva entrada e inhabilitará la cuenta siempre que su valor sea
l. Por otra parte, mientras la seña l Load sea O, el contador se comportará exacta-
mente igual que el ascendente/descendente de la Figura 7.7. La tabla de operación
y el esquema lógico de este contador con inicialización aparecen en las Figuras
7.8(b) y (c).
D 'J 1, I1 In
E Contador D 1, 1, , ) lO!
> ascendente/desce ndente E Contador -
Load Q3 Q~ al ºI) > ascendente/descendente
Load Q, Q ~ QI Q"
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
en la secuenc ia de sa lida req uiere una puerta adicional para la detección y una
entrada adicional en el selector para la carga.
Contador
> asíncrono
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
E
e/k
Q, Q, Q, Q"
lb) Esquema lógico
O ~
C/k
Q,
-+ .t. F
Q, -+ 3t.1-- -+ 3t. ~
Q, - 2t.1- -+ 2t.b-
Q" -t.~-4--
t" t, t, t, t, t" t.
'5 '7
+ 2~, Y + 2~). Obsérvese que el retardo se ha incre mentado a 2~, ya que la
transición ha tenido que propagarse a través de dos biestables. De forma simi lar,
el siguiente biestable, FF2 , sólo cambiará cuando pasen de I a O tanto FFo como
FF] (es deci r, e n los instantes de tiempo 13 + ~3 Y 17 + ~3) . Por último, el biesta-
ble más signi ficati vo, FF3' cambiará de estado sólo cuando pasen de I a O FF2•
FF ], y FFo (es decir, en t7 + 4~).
Del análi sis precedente podemos concluir que el retardo de la salida de l
i-és imo biestable respecto del reloj es de i~, y en consecuencia que el contador
asíncrono puede contar a una frecuencia máxima de I/11~ . En cambi o, la frecuen-
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
cia máx ima de cuenta de un contador síncrono de 11 bits estará sólo limitada por
la propagación de acarreo en el increme ntador. En otras palabras, dado que la pro-
pagac ión del acarreo (retardo desde la entrada de acarreo a la sali da de acarreo) a
través de la serie de HAs es mucho más rá pida que la propagación del cambio de
estado (retardo de la salida Q respecto de la entrada de reloj) a través de un núme-
ro igual de biestables, el contador asíncrono descrito seria más lento que uno sín-
crono, incluso sin hacer uso de técnicas de anticipación de acarreo para acelerar
la propagación del mi smo.
r-- E E
Contador Contador
>
11r ~/,m
asíncrono rlsíncrono
Q, Q, O, Q" Clellr Q, Q, Q, Q"
Clk
CJ¡:ar
í!
\
I
- E Contador
r-- >
E
Conl:ldor
r
síncrono síncrono
O, Q, Q, Q" e/ear Q, Q, Q, Q"
Clear
Clk
('fea,.
~
"\
Para que un contador asíncrono sea más rápido podemos hacerlo parcialmen-
te síncrono. Para ello, un contador grande lo dividiríamos en secc iones de Il bits
de manera que el funcionamiento interno de cada sección sea asíncrono, mientras
que la propagación entre secciones sea síncrona, o viceversa. Como ejemplo de
esta técnica podemos considerar los contadores de modo mixto de 8 bits mos-
trados en la Figura 7.11. En la Figura 7.11 (a) hemos construido un contador sín-
crono con secciones asíncronas de 4 bits. Obsérvese que en un contador de este
tipo, todas las secciones se activarían por la mi sma señal de reloj , pero la sección
más significativa estará habilitada sólo cuando la sección menos signifi cativa esté
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
en su estado 111 l. En la Figura 7. II (b) , por el contrario, hemos construido un
contador asíncrono con secciones síncronas de 4 bits. En esta versión del conta-
dor, todos los biestables que forman cada sección están activados por la mi sma
señal de reloj , pero la sección más significativa utilizará como reloj una señal que
indica cuándo la sección menos signiticativa está saliendo del estado 11 I l. En
otras palabras, siempre que la sección menos significati va pase de I I I I a 0000, la
señal de reloj de la secc ión más signiticativa efectuará una transici ón de O a l.
haciendo que esta sección incremente en uno su cuenta.
puede verse en estas figuras. un banco de registros de 2" x 111 tiene 111 entradas ,
/ "" ' .... ,/0.111 salidas, 0"'._1..... 00. y 2" fil as de biestables. El decodificador de escri-
tura sirve para seleccionar una de las fil as y memorizar los valores de entrada coin-
cidiendo con el fl anco de subida de la señal de reloj. Las entradas al decodificador
de escritura son n líneas de direcciones. WA,,_I' .... WA o' y la señal de habi litación de
escritu ra WE. Cuando WE es O, los valores de entrada no se memo rizan.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
S.. /.-, 1 ¡IIII dI' n '/TI/llra
'"
IJ Q Sil/Mil
"
m1 --+---+ .,. " RA
)+--+-
PJ. --==:::::::::::::"'---1> 11'1:' -------+ ~. - /1/ )+--- Rf.
'"
~ a) Celda lid 1i,:hcJ'Q de rc-gblros jb l Símbolo "
~ I':ifi l.'ó
l l oo
(1 De('" d if¡c:llh' r
dI.' k(' IUra
de ~ .I.t
1---+---F==I:f=~==*:t==:!==j:j::==:===H (1
HA
HA "
Hl~
[Jl.'cn¡]ifi cauo r
de c'l'rllura
de .2 1, ~
(1 , n. (J ..
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
'"
F:/IImdil -+---r~-J.
RFC
> - - (JuIII
(}1II1I
\V.-I
WI, - - .
'" - - - >
-- RF
2 ", ,,,
--
+--f-
--
"
RAA
NI:. \
NAII
Nt./I
"
D<,('udili -
~ ad(!r
dC' ("~l'ntLlm
de:2 a 4
FIGURA 7.13 Banco de registros con un puerto de escritura y dos de lectu ra.
Componentes de memorización 293
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
ren del uso de dos operadores al mi smo tiempo. Con dos puert os de lectura es
posible captar estos dos operandos y memori zar el resultado en el mi smo banco
de reg istros en un ciclo de rel oj . Por otra parte. la justifi cac ión del uso de dos
puertos de escritura radica en la ve loc idad a la que se utili zan operandos: en cada
ciclo hacemos uso de dos operandos para producir un res ultado. En consecuen-
cia, si se va a reali zar una operación en cada c iclo de reloj , debemos poder dar
un nuevo operando al banco de reg istros y a la vez memorizar el resultado de la
operac ión.
En la Figura 7. 13 se muestra un ejemplo de banco ele registros con un puerto
de escritura y dos de lectura. Como se observa en la Figura 7.I3(a), la RFC ha
sido modifi cada para albergar los dos puertos de lectura. y el símbolo gráfico de
la Figura 7. 13(b) retlcj a el puerto añadido. La Figura 7 . 13(c) muestra la estructu-
ra completa de l banco de registros de 4 x 4. Obsérvese que este di agrama es simi-
lar a la estructura del banco de registros de la Figura 7. 12(c), exce pto que esta ver-
sióntiene un decodi ficador de lectura más, que añade a su vez un cable más a cada
fila y cada columna para la lectura del dato a través del segundo puerto.
Los bancos de registros son por lo general muy rápidos porque cada celda
incl uye un latch o bi estable completos. Sin embargo son caros porque cada latch
o biestable requiere medi a docena de transistores en su diseño. Por este moti vo.
los fi cheros de registros se emplean normalmente para cantidades limi tadas de
memoria temporal en aplicaciones de alta ve loc idad y en microprocesadores.
Binario Decimal
0 .. .000 o 011...0100
0 . .. 00 1 I 011 ... 0100
0 ... 010 2 101. .. 1100
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
0 .. .01 1 3 101. .. 0001
0 ... 100 4 011.. .0 101
0 .. . 101 5 0 10 ... 0 10 1
0 ... 110 6 110 . .. 0011
0 ... 111 7 10 1. .. 0001
1... 11 0
l. .. lll
.. ni bits
.
(a) Direcciones de memoria y contenidos
1", . I ... I 1 In
- A,, _I
- es - es
- R\VS - RWS
...
da por las líneas de direcciones y lo hará disponible en su puerto de salida. Por otro
lado. cuando RWS sea l . la memori a escribirá el contenido presente en su puel10
de entrada en la posición de memoria indicada por las líneas de direcc iones.
Cada chip de memori a también dispondrá de 111 puertos de entrada y mde sali -
da. Para valores pequeños de 111 (I o 4). el chip de memori a puede iener puertos
de entrada y de salida separados. No obstante. normalmente los puertos de entra-
da y de salida están combinados para reducir e l núm ero de patill as del encapsula-
do del chip de memoria. Por lo general, el número de patill as determin a el tama-
ño del encapsul ado y por lo tanto la cantidad de área de tarjeta de circuito impre-
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
so ocupada por los chips de memoria. El símbolo gráfico para ambos tipos de
encapsulados se muestra en la Figura 7 . 14(b) .
En un ni vel de mayor grado de detalle. un a RAM está organi zada como un
array de celdas de memoria j unto con un decoditlcador de direcc iones y adapta-
dores de entrada/sa lida (l/O). Como se muestra en la Fi gura 7. 15(a), una celda de
memoria (MC, Memory Cell ) puede representarse simbóli camente medi ante un
latch D sincroni zado, una puerta AND, y un adaptador de sali da. Cuando la señal
Selección de fila es 1, el bit memorizado en el latch aparece en la salida. Si la
señal Habilitaciól/ de escritura es también 1, el valor de la EI/trada se memori -
zaría en el latch . La señal Habilitación de escritura actúa como señal de reloj del
latch .
Aunque la MC se ha representado mediante un latch y do puertas. como es
de imagin ar en realidad se implementa con bastantes menos transistores.
Depend iendo de la forma de implementación de la MC las memori as RAM se cla-
sifican en estáticas o dinámicas. En el caso de la RAM estática (SRAM , Static
RAM) , la celda de memori a se construye con entre cuatro y seis transistores,
empleando dos in versores interconectados formando un latch, e implementando
con un transistor la puerta AND de entrada y con otro el adaptador de salida. Este
tipo de celda de memori a SRAM retendrá su contenido indefin idamente en tanto
no se reescriba y se mantenga conectada la alimentación. Sin embargo, en el caso
de la RAM dinámica (DRAM, Dynamic RAM), las celdas de memoria se imple-
mentan con sólo un transistor. El inconveniente de la DRAM es que el contenido
de la celda se pierde con cada operación de lectura, tras la cual habrá que reescri-
birlo. Además ocurre que. debido a imperfecciones de fabri cación, el contenido
de la celda se pierde transcurrido un tiempo. Para contrarrestar este problema cada
posición de memori a debe accederse con cierta frecuencia, o alternativamente, el
contenido debe reescribirse o refrescarse periódicamente. Durante el refresco
todas las demás operaciones de lectura o escritura deben suspenderse, lo cual
puede resultar molesto. A pesar de ello, la mayor densidad y coste reducido de las
DRAM las hace muy populares para el diseño de productos electrónicos. Las
SRAM, por otro lado, aunque más costosas, son más rápidas y por lo tanto apro-
piadas para tiradas más pequeñas y en los casos en que se requiera un acceso a
memoria más rápido.
Tanto las SRAM como las DRAM son memorias volátiles, ya que su conte-
nido se pierde al desconectar la fuente de alimentación. Por este moti vo equipos
tales como teléfonos y contestadores automáticos incluyen baterías que evitan la
296 Principios de diseño digital
pérdida de datos en memoria por un corte temporal del suministro eléctrico. Por
el contrario, las ROM y las PROM son memorias no volátiles ya que preservan
su contenido aunque se corte de la alimentac ión. No obstante el contenido de estas
memorias no se puede leer hasta que se restablezca la alimentación.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
e
Me
H,,/Jilililóón de escritura
(a ) Cel da de memoria
()
A , .....- - . . . ,
.1 1-+-+--,.--+-+--.----++-~--+-+--
Decod ifi -
cador de
di rcco.: i ul1c~
de 2 a-l
es
¡n o /O ,
l b) Esquema de la memoria
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
entradas y salidas para las operaciones de lectura y escritura . Por ejemplo, ya que
el camino crítico desde la entrada hasta la salida pasa a través del decodificador
de direcciones, las líneas de direcciones deben tener valores estables antes que
cualquier otra señal. Esto significa que durante el cic lo de lectura mostrado en la
Figura 7.1 6(a), las líneas de direcci ones se fij arán en lo' y con posteri oridad, en 11'
actu ará la señal CS. El tiempo de retardo 12 - lo se denomina tiempo de acceso a
memoria, ya que se tarda 12 - lo IlS en obtener el dato de la memori a. El tiempo
de retardo 12 - I I se denomina tiempo de habilitación de la salida. ya que repre-
senta el retardo necesari o para habilitar los adaptadores de sal ida. Obsérvese que
después de que las líneas de direcciones hayan cambiado en 13' el dato válido
seguirá di sponible hasta 15' Este interva lo de tiempo 15 - 13 se denomina tiempo
de retención de la salida. Por último, la diferencia de tiempo 1; - 14 reci be el
nombre de tiempo de inhabilitación de la salida. ya que representa el retardo
necesario para inhabilitar el dato de salida. Ya que el camino de retardo desde las
Ifneas de direcciones hasta las salidas es más largo que el cam ino desde es hasta
la sa lida, el tiempo de acceso determina la di sponibilidad del dato cuando la direc-
ción y es se fij an al mi smo ti empo. Por otra parte, si la dirección y es se desac-
tivan al mismo tiempo, el tiempo de inhab ilitaci ón de la salida determ ina el fin de
la di sponi bi lidad del dato.
En la Figura 7. 16(b) pueden verse otras restri cciones de temporizac ión que
deben también satisfacerse durante una operación de escritura en la RAM. En este
diseño hemos supuesto que es y RWS se han acti vado al mismo tiempo. 11, Ya que
el retardo desde las líneas de direcc iones hasta la salida es mayor que el retardo
desde es o RWS. las líneas de direcciones deben fij arse algún ti empo antes, en lO'
El retardo 11 - lO se denomina tiempo de establecimiento de la dirección. Ya que
cada MC es un latcb D sincronizado, en donde es está actuando como señal de
reloj. el valor del dato en el fl anco de bajada de es (e n 13) será memorizado en el
latch. Sin embargo, como sabemos de di scusiones anteriores sobre el funciona-
miento de un latch, para un fu ncionamiento correcto, el dato de entrada debe estar
estable algún tiempo antes y después del fl anco de bajada del reloj. Como puede
verse en la Figura 7.16(b), estos tiempos se denomi nan tiempo de estableci-
miento del dato y tiempo de retención del dato, y están definid os por los inter-
valos de tiempo 13 - 12 Y 14 - 13 respectivamente.
También sabemos, del Capítulo 6. qu e la anchu ra del pulso de re loj debe ser
de una cierta duración para que se memorice el dato correctamente. La mi sma res-
tri cción se impone a las señales es y RWS, que deben acti varse durante un tiem-
298 Principios de diseño digital
po igualo mayor que la anchura del pulso de escritura, definida por el interva-
lo 13 - 11, Además, la dirección debe permanecer estable por algún tiempo después
del flanco de bajada de es o RWS, Este tiempo, denominado tiempo de retención
de la dirección, está definido por el intervalo 15 - 13,
RII'S - - - - - - - - - - - - - - - - - - - - - - - - - - -
es
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Direcciól/ _ _ _ ~X\. ____ 0_irc_c_c_i6_n_V_n_1id_a_ _ ~X\. __________
Dato
Tiempo de
habilitación
< 0",0 válido
Tiempo de
»).---
de la salida inhabiJjlación
.. .. de la salida
... J
Tiempo de re(e nrión
Tiempo,de acceso ( de la salida ..
.. ..
t, t,
t"
" "
(a) Temporización de un ciclo de lectura
RWS
es
~
Dirección
~ X: '-----------,--~ Dirección válida
d tablccimicnto Tiempo de
»----
Tiempo de
retención tic
de la dirección establecimiento del dato I la dirección
I.... 11 .. ( ..
I I Tiempo de
I retención
, Anchurjl de l pulso de escritura .. .. del dat')
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
donde se obtiene una memoria RAM de 16K x 32 conectando en paralelo cuatro
RAM de 16K x 8: M ), M z' MI ' Y Mo' En este caso, las líneas de direcciones, A,
así como las señales es y RWS, se conectan a todos los chips de memoria.
Obsérvese cómo los buses de datos de entrada y de salida están partidos en cua-
tro bytes, desde el menos al más significativo, y que cada byte conecta a su corres-
pondiente memoria. Con este procedimiento podríamos construir una memoria
para datos de cualquier longitud en bits.
Bus de t'nlrada
J2
8 8 -8 - 8
/4
A ,
I I I I
- A - A - A
- A
r - es M1 r - es r - es M, M r•
M:
r - es
RWS R\VS RIVS r RWS
O o o o
es
RIVS
8 8 ' 8 ,
J2
Bu:. de salida
Para obtener una memoria más grande necesitaríamos sin embargo conectar
varios chips de memoria en serie, de tal manera que cada chip almacene una parte
de las palabras de memoria. Este procedimiento se ilustra en la Figura 7. 18, en
donde se ha construido una RAM de 64K x 8 conectando en serie cuatro RAM s
de 16K x 8, M o' MI' M 2, Y M ). En este caso todas las RAM comparten los mis-
mos buses de entrada y salida, así como la señal de control común RWS. Durante
el acceso a memoria, la señal de selección de chip es se utiliza para distinguir qué
300 Principios de diseño digital
A RIt'S Bu ~ de CIUr:lda
h 14
Decodificador
.1 ,
de 2 34
1 O
I
I
A
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
es M I!
RlrS
o
I
I
I
A
es M,
HU/S
o
I
I
I
ti
es M~
RWS
o
I
I
I
ti
es M,
RIVS
o
I
Bus de salida
45
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
ClIhecera 34
Cabecera - I 23
C(lbl!cera - 2 vacía
C(lbecera - 3 vacía
(a) Contenido
de la pi la
antes de insenar 45
45
34
23
vacía
(b) Contenido
de la pila
tras Insertar 45
45
t
34
23
vacía
vacía
(e) Contenido
de la pila después
de extraer 45
ria. Para ello, los 14 bits menos significativos del bus de direcciones se han conec-
lado a las entradas de direcciones de todos los chips de memoria, y los dos bits
más significativos se han conectado a un decodificador de 2 a 4, que determina
cuál de los cuatro chips se seleccionará para la correspondiente operación de lec-
tura o escritura. Esta selección se implementa, como indica la Figura 7.18, conec-
tando cada salida del decoditicador a la entrada CS del chip apropiado .
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Las pilas de inserción/extracción son de uso frecuente en diseiios software y hard-
ware. Por definición , una pila de inserción/extracción es un componente de
memoria con un acceso limitado. A diferencia de la RAM. en la que cualquier
dato almacenado puede ser accedido en cualqui er momento. a los datos memori-
zados en una pila de inserción/extracción sólo se puede acceder a través de una
posición concreta: la cabecera de la pila. En otras palabras, cuando se inserta un
dato en la pila, éste se memoriza en la cabecera y todos los demás datos se dcs-
plazan una posición hacia el interior de la pila (inserción). Por e l contrario. cuan-
do se extrae un dato de la pila, es eliminado de la cabecera y todos los demás datos
se trasladan una posición hacia arriba (extracción). En el ejemplo de pila de inscr-
ción/extracción de 4 palabras mostrado en la Figura 7.19.la pila comienc inicial-
mente dos números: 34 en la posición Cabecera y 23 en la posi ción Cabecera -
1. En la Figura 7.l9(bl puede verse que la inserción en la pila del número 45
requiere que los números 34 y 23 se desplacen hacia abajo. a las posic iones
Cabecera - 1 Y Cabecera - 2. Por otra parte, como muestra la Figura 7.l 9(c). al
extraer e l45 de la cabecera de la pila, el 34 y el 23 son de nuevo desplazados hacia
arriba para volver a ocupar las posiciones Cabecera y Cabecera - 1. Por supucs-
to, en este caso concreto, no podemos insertar más de cuatro números en la pila
sin llenarla. La inserción de cada número adicional provoca la pérdida del situa-
do en la base de la pila.
Cuando se diseña una pila de inserción/extracción, el punto más importante a
tener en cuenta es que los datos almacenados se desplazan en una posición des-
cendente o ascendente en las operaciones de inserción y extracción. respecti va-
mente. Esta observación nos lleva a utilizar registros de desplazamicnto para su
implementación, así como un contador ascendente/descendente para detectar
cuándo está llena o vacía la pila. Estos componentes se emplean en el di seño de
la pila de 4 palabras de m bits que se muestra en la Figura 7.20. Observe que esta
pila tiene l1l líneas de entrada IN; y m líneas de salida OUT;, en donde O ~ i ~ 111- 1.
También dispone de tres señales de control: Inserción/extracción (PlIsh/popl.
Habilitación (Enable), y puesta a cero (Resel) .
La señal PlIsh/pop controla la inserción y extracción de manera que, cuando
es O, se inserta un dato en la pila, y cuando es 1 se el imina el dato de la cabecera
de la pila. La señal Enable habilita el funcionamiento de la pila, y la señal Resel
anula, cuando toma el va lor O, el contenido de los registros de desplazamiento y
del contador. Las operaciones síncronas de la pila se indican en la tabla de opera-
Componentes de memorización 303
ción de la Figura 7.20(a). Observe que la pila tiene dos señales de salida. Vacía y
Llella, que indican el estado de la pila de la siguiente manera: Cuando \klcía toma
el valor I indica que la pila está vacía; por otro lado, cuando Llena es l . la pila
está llena.
En la Figura 7.20rd) puede verse que la implementación de la pila incluye un
regi stro de desplazamiento con carga en paralelo (RDconCP) por cada pareja
entrada/salida (en total la pila contiene 111 registros de desplazamiento). Estos
registros desp lazarán a la derecha cuando se pida una operación de inserción y a
la izquierda cuando sea necesaria una de extracción. Cada nuevo dato se inserta
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
en la pila a través de la entrada 1L del registro de desplazamiento, siendo memo-
rizado en la salida Q3' que representa la cabecera de la pila. Ya que el contador
contiene el número de entradas a la pila, por cada flanco de subida del reloj, como
sabemos. o bien el registro desplazará a la derecha con la cuenta ascendente del
contador (si PlI sh/pop = O Y Enable = 1), o desplazará a la izquierda con la cuen-
ta descendente del contador (s i PlIsh/pop = I Y Enable = 1).
Los valores de las señales de control para los registros de desplazam iento y el
contador pueden derivarse de la tabla de control de la Figura 7.20(b). De esta tabla
podemos tambié n deducir las siguientes ecuaciones booleanas para las di stintas
señales de control:
S¡ = Enable
So = (PlIsh/pop) 'Enable
D = (Push/pop)Enable
E = Enable
La implementaci ón de estas ecuaciones constituye la lógi ca de control de la
pila de inserción/extracc ión.
Según la tabla de salida de la Figura 7.20(c), la lógica de salida decoditicará
los estados 000 y 100 del contador. La señal Vacía se pondrá I cuando el conte-
nido del contador sea O. y será O en cualquier otro instante. Por otra parte. cuan-
do el contenido del contador sea 4, el valor de la señal Llella será 1, siendo O el
resto del tiempo. Por tanto se pueden deducir las siguientes ec uaciones booleanas
para la lógica de salida:
Vacía = Q2' Q¡ 'Qo '
Llena = Q2 Q ¡ 'Qo'
La principal desventaja de la implementación con registros de desplazamiento es
el número elevado de registros caros que se necesitan cuando se requiere una pila
grande. Por esta razón. las pilas de inserción/extracci ón grandes se implementan
normalmente con RAM. Además, ya que las RAM no son capaces de desplazar
su contenido. las operaciones de inserción y extracción en estas pilas deben imple-
mentarse de una manera ligeramente diferente: cambiando la posición de la cabe-
cera de la pila. En otras palabras , al insertar datos en dicha pila, la dirección de la
cabecera se incrementará por cada inserció n, y, por el contrario. se decrementará
en cada extracción . Considérese, por ejemplo, una pila que está vacía: La cabece-
ra está en la dirección O. Entonces, a medida que se van escribiendo datos en la
304 Principios de diseño digital
x O No cambia
O inserción
Extracción
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
REGISTROS DE CONmOLES
DESPlAZAMlENTC DEL CONTADOR
°2 0, °0 VAcfA LLENA
PUSH/POP ENABLE S, So O E O O O I O
O O I O O
X O O O X O O I O O O
O I I I O I O I I O O
I I I O I I I O () O I
"O"
I 1
r--< R e St' l 1, 1,
SI RDconCP
SI> Q, Q, Q, Q"
I I
IN", I
I "1"
!---< Reset 1, 1,
s, RDcol/ CP
S(I Q, Q, Q, QII
~-L)
I f--< R e.\'el
D
E
Contador
ascendente/descendente
El w h le
f-- Ser Q, Q, Q, QI'
Lógica de control
I I
Lógica
1 ... Llena
Rt'set
de salida
(d) ESqUCrll á de la pi la
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
A pesar de que estamos con ello sacrificando una de las 2" palabras de la RAM ,
se simplifica con ello la lógica de salida.
En la Figura 7.21 se muestra este tipo de implementación de la pila, con una
memoria RAM de I K y dos contadores que apuntan a la posición de la cabecera
y a la inmediatamente inferior. Obsérvese que las señales de entrada y de salida
y las operaciones de la pila son las mismas que en la Figura 7.20, y que, por con-
veniencia, se ha reproducido en la Figura 7 .21(b) la tabla de operación de la
Figura 7.20(a). Como puede verse, esta pila tiene dos contadores de 10 bits, un
selector de 10 bits, una RAM de l K, una lógica de control y otra lógica de sali-
da. Los dos contadores, denominados Cabecera y Cabecera-l. contienen res-
pectivamente la dirección de la cabecera (que representa la posición más baja sin
utilizar) y de la posición inmediatamente debajo de la cabecera (que representa
el dato insertado más recientemente en la pila). Como es de esperar, los conteni-
dos de los contadores Cabecera y Cabecera-I difieren en 1, ambos se incre-
mentarán durante una operación de inserción, y se decrementarán en una opera-
ción de ex tracción. Cuando se ordena una operación de inserción , se selecciona-
rá el contenido del contador Cabecera como dirección de la RAM, mientras que
para una operación de extracción será seleccionado como dirección el contenido
de Cabecera-1.
A partir de la descripción anterior hemos construido la tabla de control mos-
trada en la Figura 7.21 (c), que especifica los valores de todas las señales de con-
trol de los contadores, del selector, y de la RAM , para las operaciones de inser-
ción y de extracción. De esta tabla podemos deducir las siguientes ecuaciones
para la lógica de control:
E = CS = Enable
S = RWS = (PIIS/¡/POP)' Enable
D = (PlIsh/Pop)Enable
La lóg ica de salida consta de dos puertas que indican si la pila esta vacía
o ll ena . Ya que la pila está vaCÍa cuando es cero el contenido del contador
Cabecera, se ha e mpleado una puerta NOR de 10 entradas conectadas a la
salida de dicho contador para detectar el estado de pila vaCÍa. De forma simi-
lar. decimos que la pila está llena cuando el contenido del contador Cabecera
es todo unos , lo que se detecta con una puerta AND de 10 entradas cuando su
salida se hace 1. En la Figura 7.21(d) se muestra el esquema completo de la
pila.
306 Principios de diseIio di gital
Il timo
I dalO ~ CtIIJl'ca{/ - II PUSH·POP ENABLE OPERACIONES
2
I"aci" ...--1 ClIl",c l'f1l I
x () No ca mbia
O I Inse rc ión
102 1 HIere, I I Extracc ión
1022 \ ' //("1( 1
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
DEL SELECTOR DE LA MEMORIA CONTADOR
X o x o o x o
o I I I I o I
I I o I o I I
(e) Tahla de control
r- D L
'-- E
D
r;"
E e/llnTe,." CI/I"'l,' m I
r- R e.\',,[
Re.H'¡
I ->
I
I I
PII.\'/JlpOp
1\
l·
I
Sc!c-c(ur Il I
I P-J-
""'1 I A
1{f\ ~ 1 de I K
('.\
HWS
1.J;gim
dt' CrJlllml
Il u, d~ [JO
V Jgicl/
d,',mNda tg \ ,. rUl
LI, '11<1
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Cabecera
vacía
Caf'f'ara - I vacía
Cllbea m - 2 34
Cabecem - 3 23
vacía
45
34
23
vacía
vacía
45
34
23
(e) Contenido de la wla
después de leer 23
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
introducir los números 23 y 34 pero antes de que llegue el 45. En la Figura 7.22(b)
puede verse el contenido de la cola después de introducir el número 45. Obsérvese
que cuando se lee de la cola, el número 23 sale y es descartado, haciendo que el
contenido de la cola sea desplazado en una posición hacia abajo. La Figura
7.22(c) muestra el contenido de la cola tras el desplazamiento.
En general , una cola tiene m líneas de entrada IN¡, y m líneas de salida OUT¡,
con O ~ i ~ m-1. Dispone también de tres señales de control: Lectura/escritura,
habilitación (EnabLe), y puesta a cero (Reset). Cuando la señal Lectura/escritura
es O, la cola dará como salida el dato que ha estado memorizado por más tiempo,
tomándolo del principio de la cola. En consecuencia, cuando la señal Leclural
escritura sea 1, se añadirá otro dato al final de la cola.
Las FIFO normalmente también disponen de dos salidas de control que se
emplean para controlar los circuitos productor y consumidor. Por ejemplo, cuando
la cola esté llena, la señal Llena tomará el valor 1, avisando al productor que puede
perderse cualquier dato adicional que envíe. Cuando la cola está vacía, la señal
Vacía se hace 1, avisando al consumidor que no han llegado aún nuevos datos.
Ya que la cola preserva el orden de llegada de los datos, podemos construir la
cola utilizando registros de desplazamiento junto con un contador que contabili-
ce el número de datos que contiene. Esta implementación de la cola se muestra en
la Figura 7.23, y su tabla de operación en la Figura 7.23 (a). Cuando se introduce
un dato en la cola, los registros de desplazamiento desplazan su contenido a la
derecha y se incrementa el contador. Por otra parte, cuando se lee un dato, éste se
toma del principio de la cola mediante el selector, y el contador se decrementa.
Obsérvese que el dato no se descarta en ese instante, sino que, en su lugar, se inva-
lida al decrementar el contador. En la Figura 7.23 (b) hemos trasladado la tabla de
operación de la Figura 7.23(a) a una tabla de control, que muestra los valores de
las distintas señales de control de los elementos de la cola. En una operación de
lectura, el contenido del registro de desplazamiento no cambia y el contador dis-
minuye en 1 su contenido. En una escritura, por el contrario, el registro desplaza
en una posición a la derecha y en contador incrementa en I su contenido. El con-
tador también controla la selección del dato apropiado durante la operación de
lectura. Como regla, el contador se pondrá a IIII durante la inicialización, de
manera que su contenido sea cero cuando se introduzca el primer dato en la cola.
Este sesgo negativo de l en la cuenta es necesario para un control adecuado del
selector, que requiere uno de los valores 00, 01, 10 o 11 para seleccionar una de
las salidas del desplazador.
Componentes de memorización 309
x O No cambia x O O O X O
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
O 1 Lecwra O O O 1 1
1 1 Escritura 1 O 1
(a ) Tabl:¡ de opcr;Jc ló n eh ) Tabla de control
IN,
I
r--< R t'Jrt 1, 1,
S,
• L
RDronCP
S" Q. Q, Q Q,
•
I I
• • l
e
e
• ] OUT~
N
•
• -.
~~
~
'J!~
IN" (
I •
1•• 'll/Irall',\'( ' rllUr" r---< S,RON " RDconCP "
IL •
I~
-LJ L •
.~~¡ Q. Q, Q, Q" ~
Q)------ I I o
I
Erwhl". o. u
~ O{.'T..
~
'--- -.
1)
E
Con l.Ldllf
a."I:~nJe n [e/d"'~('c lld('n l e
'í L:..r-
S..t Q. (!~ (1, Q,
Lógica
de ~ :Jl ida
~ l í,¡ 1Il
Llena = Q2'Q¡QO
Vacía = Q2Q ¡QO
La Figura 7.23(c) muestra el esquema completo de la cola FIFO de 4 palabras.
Como ocun'e con las pilas de inserci ón/extracción. colas más grandes se
implementan normalmente con una RAM en lugar de con registros de desplaza-
miento, e incorporan dos contadores que apuntan al principio y final de la cola.
Esta implementación se conoce con el nombre de cola circular y se muestra sim -
bólicamente en la Figura 7.24(a). Obsérvese que se emplea una RAM de l K Ydos
contadores designados Inicio y Final. El contador Inicio contiene la dirección del
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
primer dato escrito. Cuando se solicita una operación de lectura. se transfiere al
bus de entrada/salida (l/O) el dato de la posición direccionada por el contador
Inicio, y el contenido del contador se decrementa. El contador Filial contiene la
dirección de la primera posición vaCÍa de la cola, y cuando se solicita una opera-
ción de escritura, el dato se escribe en la posición direccionada por este contador.
que en ese momento se incrementa. Si se leen datos de la cola con mayor fre-
cuencia de la que se escriben, el contador Inicio apuntará a la misma posic ión que
el Final, indicando que la cola está vacía. Por otra parte. si se están escribiendo
datos en la cola con mayor frecuencia de la que se leen. el contador Final. que está
siendo incrementado en la forma módulo 1024, apuntará eventualmente a la
misma posición que el l/licio, aunque en este caso significará que la cola está
llena. Para evitar esta ambigüedad se pueden emplear contadores de II bits
(módulo 2048), que indiquen si la cola está vacía cuando ambos tengan el mismo
contenido, y que está llena cuando sus contenidos difieran en sólo el bit más sig-
nificati va.
o vacía
¡ llato ....--1 Inicio
2 dato
, ,¡,
, LECTURAlESCRfTURA ENABLE OPERACIONES
't'
dMo x o No cambia
102 ¡ \'{jera ....--1 Filial O Leclttra
1022
I Escritura
1023
(a) Diseño sim bólico (ni Tabla d~ operac ilin
E E
LECTURAlESCRfTURA ENABLE S es RWS (Inicio) (FinaQ
X O X O X O O
O I I I O I O
O I O I
(e) Tabla de control
R t' I'f'1
E E
R,'s!'1 R,' ,',,¡
~ 111/, '10 '-----< FlIlIIl
1> 1>
I 1 10 I 10
I
I ~S I
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
I
COlnparador
I < = >
Sdector \1
I I RAMd(' IK
Ellllh/" r?---J A
es
1.i'nll"(¡}"It'rilllrll L¡¡ HIVS
t 1 Bus de 110
\'tIC';'
~ L/CIIU
Id) Esquema
En la Figura 7.24 se muestra una implementación de cola que utiliza dos con -
tadores y una memoria de 1K. Esta cola emp lea un selector para elegir el conte-
nido del contador Inicio O del Final, así como un comparador para contrastar sus
contenidos. La Figura 7.:~4(b) muestra su tabla de operación, la Figura 7.24(c)
indica su tabla de control, y por último, el esquema completo de esta implemen-
tación se muestra en la Figura 7.24(d) .
I(KI
suma = L. x,
' '''' I
suma = O
bucle:
para i = I a lOO
suma = suma + Xi
fin de bucle
Este bucle podría ejecutarse en un camino de datos de 32 bits fonnado por un
registro (denominado acumulador) y una ALU. La variable suma se almacenaría
en el acumulador, y en cada ciclo de reloj se sumaría a suma, mediante la ALU,
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
el nuevo Xi' de manera que pueda almacenarse de nuevo en el acumulador el
nuevo valor de suma.
Por regla general, la mayoría de los diseños digitales trabajan de la misma
manera. Los valores de variables y constantes se memorizan en registros o memo-
rias, son captados de los componentes de memoria tras el flanco de subida de la
señal de reloj, transfonnados mediante los componentes combinacionales duran-
te el tiempo entre dos flancos de subida del reloj, y los resultados se vuelven a
almacenar en los componentes de memoria en el siguiente flanco ascendente de
la señal de reloj.
La Figura 7.25 muestra un ejemplo de camino de datos sencillo que podría
realizar la suma anterior. Contiene un selector, para seleccionar como operando de
la izquierda para la ALU o bien O o bien un dato del exterior. El operando de la
derecha será siempre el contenido del acumulador, que también puede obtenerse
a través de un adaptador triestado. El acumulador es un registro de desplaza-
miento con carga en paralelo. La Figura 7.25(a) muestra el esquema de este cami-
no de datos, y en la Figura 7.25(b) aparece la palabra de control de 9 bits que espe-
cifica los valores de las señales que controlan el selector, la ALU , el acumulador,
y los adaptadores de salida. Todos los componentes del camino de datos son de
32 bits.
En cada ciclo de reloj, una palabra de control definirá la operación del cami-
no de datos. Para calcular la suma de los 100 números, necesitaríamos 102 ciclos.
En este caso las palabras de control para todos los ciclos de reloj son iguales,
salvo la primera y la última. En el primer ciclo debe ponerse a O el acumulador,
en cada uno de los 100 ciclos siguientes se añade un nuevo dato a la suma del acu-
mulador; y finalmente , en el último ciclo, se extrae la suma acumulada.
El camino de datos anterior sería útil para expresiones aritméticas sencillas;
para expresiones más complejas se requerirá utilizar varias variables temporales
así como un camino de datos más elaborado, que necesita de un banco de regis-
tros en lugar de un solo acumulador. En la Figura 7.26(a) se muestra un ejemplo
de camino de datos más complejo, consistente en un selector, un banco de regis-
tros con 3 puertos, una ALU, un desplazador, y adaptadores triestado. En este caso
es el banco de registros el que suministra los dos operandos, además de memori-
zar el resultado en cada ciclo de reloj . Para una descripción más completa, en las
Figuras 7.26(b) y (c) se incluyen las tablas de operación de la ALU y del despla-
zador, y en la Figura 7.26(d) la palabra de control. El camino de datos se contro-
la por una palabra de 20 bits que determina todos los destinos, fuentes, y opera-
Componentes de memorización 313
ciones del camino de datos. Para una mejor comprensión del funcionamiento del
camino de datos, a continuación mostramos su uso para implementar el algoritmo
del contador de unos .
EntraJa
o
o
8 Selector
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
7 M A 8
6 S, ALU
5 S"
4
J
S, /, /,
2
I Acumu lador
CIk >
0 _------\
8 7 6 5 3 2 1)
de dato. que constará de ceros y unos. El algoritmo recorrerá Dato. desde el LSB a l MSB.
y sumará I a Cuenta por cada I que e ncuentre en Dalo. Máscara contiene la conslanle l. y
Temp se empleará para memori za r te mpora lmente el LSB de Dato. Tras la inic ialización. el
.""un
"
Is
I
l
SCICl: IOr
•I
O M S, So OPERACIONES DE LA ALU
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
O O O Complementar A
O O I AND
O I O EX-OR
O I I OR
16- 18
3
, W4
I O O Decremen tar A
5 I\'E
B ¡IOCO O I Sumar
de rcgblros I O Restar
CI k > de,'ii X III I I Incrementar A
4
3
, RAA
RAB ~ lb , Opl'rae iullc", dl' la A LU
l REA REB ~
R- I O 3
, I
7
BusA Bus B
NI A B
(,
5 S, ALU OPERACIONES DEL
S2 S, So DESPLAZADOR
4 S"
..O'. O O O Pasar
"0"
O O I Pasar
I I O
O
I
I
O
I
No usada
No us¡¡da
S. 1, 1H
,3 S, Ol's"lll:adllr
I O () Dcsplaz¡¡r a la izquierda
l S"
() I ROlar a la izquierda
I O Desplazar a la dercrha
I ROlar a la derecha
Bus de resuJlado
Il' ) 0Pl' r:Il"Lllrl C., dl" dc\plilLadnr
'\
11
OUl po rt
1') [8 J7 16 15 14 U 12 11 10 C) 8 7 6 ::; ~ 2 ()
algori tm o aislará el LSB de Dato. lo almacenará en Temp, sumará Temp a Cuenta, y final-
mente. desplazará Dala una posició n a la derecha. Esta secuencia se repet iría hasta qu e
D o l O contenga sólo ceros. Con ello. este algoritmo repetiría la secuencia de operaciones
desc rita un número distinto de veces para palabras de datos diferentes .
En la Figura 7.27(a) se muestra el algoritmo básico para contar el número de unos de la
palabra de datos. Las sentencias 1, 2, Y 3 se utili zan para inicializar las variables, mientras en
las sentencias 4 y 5 se suma uno a CI/ellla siempre qu e el LSB de Dato sea igual al, Y des-
pués, en la sentencia 6 se desplaza Dala en una posición a la derecha, introduciendo un O en el
MSB de dicha valiable. La sentencia 7 se utiliza para obtener como salida la Cuenta. Obsérvese
que se están empleando los símbolos » y « para especificar desplazamiento de datos a la
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
derecha o a la izquierda. indicando a la derecha del símbolo el número de desplazamientos.
1 I R, X X X X O
2 O R3 O O Sumar Pasar O
3 O R, O X Incrementar Pasar O
4 O R, R, R2 AND Pasar O
Repetir
5
6
O
O
R3
R,
R3
R,
R4
O
Sumar
Sumar
Pasar
~ alI M
O
O
) mientras
DlIto~O
Al implementar este algo ritmo debemos en primer lugar asignar las variab les a registros
del banco de regi stros. Como indi ca la Fi gura 7.27(b). las variabl es Dalo. Máscara, e l/ f ilfa,
y Tel1lp se han asi g nado a los registros R 1, R2 , Ry Y R..¡, respectiva mente. Una vez qu e
hemos as ig nado estas variables a los registros, estamos en disposición de deduc ir las pala-
bras de control adecuadas para cada sentencia. mostradas en la Figu ra 7.'27( c). donde se
emp lean nemotécni cos en los distintos campos de control para indicar las operac iones y las
direcciones de los registros de operandos y res ultados. Para controlar el camino de datos
supo nemos que el contado r de UIlOS es un módu lo separado, qu e comenzará la cuenta de
un os siempre qu e una señal Inicia sea 1, Y que pondrá la se ñal Hecho a I tan pronto como
esté di sponible el resultado.
316 Principios de diseño digital
Como puede verse en la Figura 7.28. la representación FSM del contador de unos cons-
tarfa de ocho estados. Observe que el contador permanecerá en el estado So hasta que la
señal I/licio se ponga al. Y después. en los siete estados siguientes. s" ...•s7. ejecutará el
algoritmo de la Figura 7.27(a). Finalmente, en el estado S7' se obtendrá el resultado. ponien-
do la señal Hecho al . Y retomando al estado original so'
El controlador del contador de unos tiene dos señales de entrada. Inicio y Dato O, Y *
una señal de salida. Hecho. Inicio y Hecho se utilizan para comunicar al resto del sistema
*
los instantes de comienzo y de terminación . La señal Dato O es básicamente una señal de
estado proporcionada por el camino de datos. En cada ciclo de reloj. el controlador debe
también suministrar 20 señales en la palabra de control. Para implementar los ocho estados
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
se necesitan tres biestables D. que denominamos Q2' QI' y Q()' En las figuras 7.29(a), (b),
y (e) se muestran las correspondientes tablas de estado siguiente. mapas. y ecuaciones de
estado siguiente.
Inicio :::: O
Dalo ;: ¡lIporr
ClIell1(l = O
Mdscara :::: I
OIll/JOrl = Cllema
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Inicio, (Dato = O)
ESTADOS
°2 0, °0 00 01 10 11
So O O O 000 000 00 1 00 1
s, O O I 010 010 O J O 010
S2 O I O OI 1 01 I O J J 01 J
S3 O I I 1 00 1 00 1 O O 1 00
$. I O O I Ol I Ol 1 01 101
s5 I O I I 10 I 10 l J O I 10
S6 I I O 100 I I I 1 00 I I I
s7 I I I 000 000 000 000
Q, Qu Q, =O Q, =I
00 01 11 10 00 01 11 10
" ricio (Da ro = O)
Q,. Q,.Q"
(b) Mapa de Karnaug h
FIGURA 7.29 Lógica de estado siguiente para el controlador del contador de unos.
318 Princip io!-. tic disciio digi tal
'\'0 O O () () X X X O X X X O X X X O X X X X X X n
.\'1 () () I I O O I I X X X O X X X O X X X X X X O
s~ O I O () O I I I X X X O X X X O I O I O O O O
,\'J O I I O O I () I X X X O X X X () I I I O 11 IJ 1)
.\'4 I () O () I O O I n O I I () I O I O O I O O O O
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
'\'5 I O I O O I I I () I I I I O O I I O I O () (1 (j
Sf, I I O O () O I I O O I I X X X O I 11 I I I () ()
S7 I I I O X X X O O I I I X X X O I () I () O () I
It: = Q':U ' !QII RA" , = () I~A /J ~ = Q1I .\/ :=- {]+{)"
1\:.\: = Q ' jQ'u «.-lA ] = O" R" IJ ¡ = Q'II 1 =Q':Q,
I\j\ ¡ = Q~ Q(. + Q '~ Q I RAAu = I RA/JI( = () 1
11
= 1
\\'A I • = O ' ]Q" + OjO'q REA = Q: R E/I = Q~ {)' ! \ , = I ¡ = Q ,(J I(J '"
IVI:~ = O ~ Q ' ] + O 'cQI! + QIQ'II 11 , = /l
fU; = (! ~ (! (JI!
FIGURA 7.30 Lógica de salida para el co ntro lador del contad or de unos .
L~ f-
r-> Q',
L-- ~
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Lt- .---
~
D , Q,
r- > Q'I
'----
~ J
L t- Du Ql)
Clk Q '(I
u-
Y ¡
L--
11I1/O/"'
IJl/fo=O
H('cI/f1
/){/fo"# O
-(] Bus de resultadu
fE
\\'A ::
Jr \VA l
~
~ \VA 11
\..-.
yu IVE
O RAA ::
RAA I
I R;\¡\ o
Cam ino
dc datus
Rt.A
Unidad
de control RAIJ .
RAB I
O R;\/lu
REIJ
M
S¡
1 Sil
I
s,
s,
U Sil
01;
I I Lógica de salida OUlport
no duplicaría las prestaciones del camino sencillo como sería de esperar. Además,
los componentes de este camino de datos no están totalmente conectados, lo que
implica que no se pueden explotar algunos tipos de paralelismo. Por ejemplo, no
podría ejecutar en paralelo operaciones de multiplicación y división, o realizar en
paralelo operaciones de suma y de desplazamiento, aunque puede disponerse de
ellas en el algoritmo. Como puede verse, el problema de este camino de datos es
que el multiplicador y el divisor, así como la ALU y el desplazador, deben usar
los mismos buses para sus operandos y resultados, lo que limita su capacidad para
realizar operaciones en paralelo.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Entrada1 Entrada2
Bus de resultado ¡ Bu s de resultado ,
I
Selector
II I I Selector
I
I
I I
Banco
de regisrros
BlI s~
7 Bu s~
Bus.¡
L--..,--------- I
~ V _,g.L-__~"",7 _ _--,
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
resultados, permitiendo pues incrementar el tráfico en dichos buses.
Por otra parte, el uso de latches de entrada y de salida requiere una unidad de
control más compleja, ya que cada operación necesita más de un ciclo de re loj
para ejecutarse. Se requiere al menos un ciclo de reloj para captar los operandos
de los registros, de los bancos de registros, o de memorias, y almacenarlos en los
latches de entrada; al menos otro ciclo para realizar la operación y memorizar un
resultado en un latch de salida, y al menos un ciclo para memorizar el resultado
de un latch de salida en un registro o en memoria.
I Se lector
I
I
I Selector
J
I 1 1 1
1 Se lector
1 I 1
I Banco de
M emori a
I Contador
11 Registro
I registros
Bus1 ,'7 ,
Bus2 , 'i'
Bus) , ,'7 ,
Bus" 7 , ~
~
I
1 Se lector I 1 Latch
I
11
Latch
I
I Se lector J
ALU¡
I ALU 2
I I Latch
11 Latch
1
J
I
I Latch
1 l Multiplicador I
I I
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
caminos de datos a medida se emplean con frecuencia en diseños de aplicación
específica para obtener la mejor relación prestaciones/coste.
"'~¡¡JI..,
d..· ,''',Hh,'I'~1 "'~1l.!"· ,
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
~t
~k~ tk ~"~J,,
~ l gU1L·IIl,·
"',-ñ..k·, <k',"rllf"¡
~
oJd L."IlIr.., .k ,L'Ii"
., fI..Y
'>..¡... ¡..,
.k ....ll h ' j
t'
~
¿ "d ..,mll O.'
,lo:dU''''
t "J!'('!
,1.: L
',I.,".) Rt"~iqn', t::t,-'1.
"li"" 'lIh.' .Ie e~lndo ......., S.,h"."
d~ n,m ",1
Lógu.. ~ ¡l<; ~nll~, J
l:t} Modelo de unidad d... control ( 1"1) Unidad de cuntrol con rcgi!.lro de c,lado y tkcod iril.:aJor
'di:,k, "'I-Ml~,
de ""llu"·,,m .Io:.",.II,,'I.!!!
¿ I... ,¡:,."
Ikc,\."I ..
~ "~U I ~"I<'
(1,;) Un idad de control con un contador (el) Un idad de conl rol eón rcgi stn.l de c:-iludo y pi la
de insereic'mkx tnu:ción
So.-;wl,·,
.J.: <·' ''I(h<· ~~l
1(0 \\
:-'c".'¡'" ,¡.. .... "W"I
<Id ,'alllUlO de eI,u".
1'ltO\1
DnCCClU1I
~,\ICt n~
".,h.l" ,
,k,,~llroj
En este último caso, el valor del estado al que se salta puede suministrarlo
internamente la lógica de estado, o puede darse externamente por medio de las
entradas de control. El valor apropiado del estado de salto se elige mediante el
selector.
Otra forma de implementar un control modular es codificando como subruti-
nas tareas usadas con frecuencia. Por ejemplo, en lugar de repetir la misma
secuencia muchas veces, podríamos sustituirla por una llamada a subrutina y
retomar de ella cuando haya terminado. Para ello necesitamos una pila de inser-
ción/extracción que preserve el estado que sigue a la llamada a la subrutina. Este
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
diseño se muestra en la Figura 7.34(d). Como puede verse, la pila memoriza el
sucesor del estado actual, que se cargará en el registro de estado cuando termine
la subrutina. Obsérvese que hemos añadido también una nueva señal a la lógica
de estado siguiente, diseñada para controlar la inserción y extracción en la piJa.
Una última estrategia para simplificar el diseño de unidades de control requie-
re que sustituyamos la lógica de estado siguiente por una memoria de control, nor-
malmente implementada con una ROM o una PROM. Cuando utilizamos esta
estrategia, el registro de estado actúa como registro de direcciones para la memo-
ria de control. Esta forma de diseño se ilustra en la Figura 7.34(e), y en ella es
importante que limitemos el número de señales de control y de condición utiliza-
das para seleccionar el estado siguiente, ya que el coste de la memoria de control
se duplica por cada entrada de controlo señal de condición adicional. Por este
motivo se uti]jza sólo una señal de entrada o de condición para seleccionar el esta-
do siguiente, lo que ]jmita la capacidad de salto a sólo bifurcaciones. En otras
palabras, la dirección siguiente puede ser solamente o la dirección actual incre-
mentada o una de las direcciones de salto. La bifurcación se implementa median-
te dos selectores de direcciones en serie, e introduciendo un selector de condición,
que elige una de las entradas de controlo las señales de condición para utilizarla
en la selección de la dirección siguiente. La dirección siguiente se elige de entre
la dirección actual incrementada y la dirección de salto aportada por la ROM, por
la pila de inserción/extracción, o por el entorno externo. La alternati va de control
de la Figura 7.34(e) suele conocerse con el nombre de control microprograma-
do, y al proceso de convertir cartas ASM en palabras de ROM se denomina a
veces microprogramación. Los estilos de diseño más populares para el control
son el de implementación directa mostrado en la Figura 7.34(a), utilizado en dise-
ños a medida de aplicación específica y procesadores sencillos, y el control micro-
programado, empleado con frecuencia en procesadores complejos.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
trado como utilizarlo para implementar algoritmos específicos, centrándonos en
el ejemplo del contador de unos. También se han discutido brevemente los cami-
nos de datos empleados en microprocesadores y en otros ASIC de altas presta-
ciones. También se han explicado brevemente distintos estilos de implementación
de unidades de control. En el siguiente capítulo formalizaremos el concepto de
camino de datos a medida y sus unidades de control, y presentaremos técnicas
actuales para la síntesis de diseño en el nivel de transferencia entre registros.
7.15. PROBLEMAS
7.1. (Registros) Partiendo de las fomlas 7.2. (Registros) Diseñe un regi stro con
de onda mostradas en la Figura P7 .1. dos señales de carga que habiliten la
dibuje la form a de onda de salida de carga de datos desde dos fuentes dife-
un biestable D con puesta a 1 (Sel) y rentes.
puesta a O (Reset).
7.3. (Registros) Explique la diferencia
entre la puesta a cero mediante un
resel y la carga de una entrada de todo
ceros en un registro.
Dm~ L
Sel
u LJ 7.4. (Registros) Diseñe un registro de 16
bits que pueda cargar nuevos datos y
rotar o desplazar su contenido a dere-
cha y a .izquierda.
326 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
más signi ficati vo. (e) Dos puertos de escritura y dos
de lectura
7.7. (Registros de desplazamiento) Di se-
tie. empleando registros de despla za- 7.16. (Memorias) Di se ñe:
miento de 16 bits. un comparador (a) Una RAM de 256K x 8 utili zan-
serie que compare dos números de 16 do chips de RAM de 256K x I
bits tras cargarlos en los registros de (b) Una RAM de 64K x 32 utili zan-
desplazamiento . El comparador serie do chips de 64K x 8
debiera tener tres salidas que indi- (e) Una RAM de I M x I utili zando
quen si el prim er número es mayor. chips de 256K x I
igual, o menor que el segu ndo. (d ) Una RAM de 256K x 8 utilizan-
do chips de 64K x 8
7.8. (Con tado res) Diseñe dos contadores
binarios con cuenta ascendente de: 7.17. (Pilas) Diseñe una pila de inser-
(a) Sólo números pares (O. 2, 4, 6. ción/extracción con una RAM de I K.
8, ...) que use rodas (las 1024) palabras de
(b) Sólo números impares ( 1. 3. 5. la RAM.
7,9, ... )
7.18. (Colas) Di setie. Co n una RAM de
7.9. (Contadores) Di señe un circuito lógi- I K. L1na cola FIFO que esté vacía
co que detecte cuándo ha alcanzado cuando los contadores de Il11elO y
un contador de 4 bits el valor de: final apunten a la mi sma posición. y
(a) 7 ll ena cuando ambos contadores
(b) 14 difi eran en l.
(c) 15
7.19. (Caminos de datos) Di señe un camino
(d) O
de datos sencillo que pueda calcular
7.10. (Contadores) Di se ñe contadores las expresiones:
módulo (a) 15, (b) 17 , (c) , 3 1, Y (d) (a)
módulo 32.
(b)
7.11. (Contadores) Di se tie un contador
decimal que cuente módulo 1000. (e) ¿ " x-, +x + ('
,,,, 1' , ,
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
para un cami no de datos que lo pueda ritmo desarrollado en el Problema
ejecutar. 7.22 .
e
A
entre registros
Diseño al nivel
de transferencias
© 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
Álgcbr<l boolean:l Pucllas lógicas
y biCSl ahlcs
Máquina de
6
1
cSlados finitos L,. 4 6
L,.
Técnicas de Técnicas de
diseño lógico 4 diseño digital
J
9
Componentes
del procesador
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
tros se introduce el modelo FSM (Finit e-State-Ma chin e, Máquina de estados fini-
tos) con camino de datos (FSMD, FSM .... ith a Datapath), y presentamos diversas
formas de especificar los diseños a este nivel de descripción , inclu yendo los popu-
lare s diagramas de máquina de estado algorítmica (diag ram as ASM, de
Algorithlll-State-Machine), Después se explicarán las técnicas para convertir los
diagramas ASM en una implementación del di seño constituida por una unidad de
control y un camino de datos, También se describen las técnicas de diseño para
optimizar estas implementaciones en costo y prestaciones, Mi entras que este capí-
tulo se centra en el diseño al nivel de transferencia s entre registros, el diseño de
procesadores estándar se cubre en el Capítulo 9 como caso especia l de diseño de
transferencia entre registros, Puesto que el repertori o de instrucciones del proce-
sador se puede describir mediante un tipo restringido de diagramas AS M, la arqui -
tectura del procesador también puede contemplarse como un caso especial del
modelo FSMD,
las operacio nes realizadas en el camino de datos y rec ibir info rmac ión acerca del
e, tado de los reg istros del ca mino de datos que han sido seleccionados,
Elll r;\ua:.
E ll l f ;\c!;I" lid énnu l10
ue ':U!llro! de dato:.
~ Señale:. de
con trol ~
L'TlI(kuJ Señale .. dI.' C :UllIlllldl'
Uf.' l'üntrul c:.l:ldo d¡lIn.,;
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
t
Sahda.-,
t
S,t lida!!
(le cont rol dcll'.IITl ¡no
de datu:.
l a ) Diagrama uc bloqm' s de nito n¡vel
i:.n t r¡¡d;t~
(.11.' 1 C;¡mUllO
de d!l.to,
Señak.' de
c011lrol
Bus
Bus,
--»-
Lógkade
c$t:ldo RI'.!;I, trtl Lógica de
SIgui ente d~' ""1:111,, salida
Comino
de dutos
Unidad de control
S alida~
d ... S,llId" cid
contro l ~.IHllll" ¡le
dm",
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
rior a las que el ASIC debe responder. La señal Inicio del Ejemplo 7. 1. que indi-
ca el comienzo de la cuenta de unos, es un ejemplo de estas señales de entrada.
Por otra parte, las señales de estado representan el estado del camino de datos. Su
valor se obtiene al comparar los valores almacenados en el camino de datos
correspondientes a ciertas variables. Por ejemplo, Dato = O en el Ejemplo 7.1 era
una señal cuyo valor es igual a I cuando el valor de Dalo es igual a O y O cuando
Dato es distinto de O.
Hay además dos tipos de señales de salida: las señales externas y las señales
de control del camino de datos. Las señales externas informan al entorno que el
ASIC ha llegado a cierto estado o ha finalizado un cálculo determinado. Las seña-
les de control del camino de datos seleccionan la forma de actuar de los compo-
nentes del camino de datos.
La implementación de un ASIC se ajusta a esta arquitectura general. aunque dos
ASICs puedan diferir en el número de unidades de control y caminos de datos en el
número de componentes y conexiones en el número de estados de la unidad de con-
trol , y en el número de puertos de FJS. Para realizar un diseño, en primer lugar hemos
de conocer la forma de definir su arquitectura y especificar su comportamiento.
variables que indican los cambios en los valores de las variables almacenados en
el camino de datos.
Una sentencia de asignación de variable proporciona la expresión a utilizar
para el cálculo del nuevo valor de la variable. En cada estado. y para cada varia-
ble de asignación asociada a dicho estado. el camino de datos evalúa la expresión
del lado derecho de la sentencia de asignac ión y, en el siguiente tlanco de subida
de la señal de reloj . carga el resultado en e l registro que almacena la variable indi-
cada en el lado izquierdo de la sentencia. Es importante resaltar que aunque la
ev aluaci ón de la expres ión se hace en un estado, el nuevo valor de la variable no
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
puede utili zarse hasta el estado sigui ente, como muy pronto. Generali zando a par-
tir de la especificaci ón del contador de unos. podemos decir que un modelo FSM
con sentencias de asignación añadidas a cada estado, normalmente designado
como FSM con camino de datos, o FSMD, permite especificar completamente
el comportamiento de un diseño digital arbitrario.
In icio=O
Fillul=O: Clle/lwl=O
Fil/lI/=Ü: MásCtlm= 1
Fillal= 1: OWport=Ctu!flW I
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
f:Sxl-tS
h:Sxl-tO
Normalmente se especifican mediante una tabla que proporciona los símbolos
de estado siguiente y la salida para cada símbolo de estado y de entrada. Cada
símbolo de estado, entrada, y salida se define mediante el producto cartesiano de
variables booleanas. Más concretamente,
I=AI xA 2 x ... xA k
S = QI X Q,_ x ... x Qm
O = Y I X Y, x ... X Y
- "
donde A ;, I S i S k, es una señal de entrada, Q¡, J S i S m, es la salida de un bies-
table, e Y;, I S i S n, es una señal de salida.
Para incluir el camino de datos debemos ampliar la definición anterior aña-
diendo el conjunto de variables, entradas, y salidas del camino de datos. Más for-
mahnente, se define un conjunto de variables
V = VI X V, X ... X V
- 1/
que definen el estado del camino de datos a partir del valor que tomen dichas
variables de estado. De la misma forma, el conjunto de entradas a la FSMD está
constituido por el conjunto de entradas a la FSM, l e y el conjunto de entradas al
camino de datos, ID' Así
1=lcx l D
donde l e = Al x A z x ... X Ak como antes, e 'D = BI X B2 x ... x BI"
De igual forma, el conjunto de salida consta de las salidas de la FSM, Oc y
las salidas del camino de datos, OD' En otras palabras,
0= 0 ex 0D
donde O e = YI X Y2 X ... X Yk como antes, y OD = 2 1 X 2z x ... x 2,.. No obstante,
hay que tener en cuenta que A;, Qj' e Yk representan a variables booleanas, mien-
tras que B;, V; Y 2; con'esponden a vectores booleanos, que pueden representar a
su vez a números enteros, en punto flotante, y caracteres. Por ejemplo, en un
camino de datos de 16 bits, B;, V; Y 2¡ tendrán un tamaño de 16 bits, y si son ente-
ros positivos, podrán asumir valores entre O y 2 16_1 .
Diseño al nivel de transferencias entre registros 335
Excepto en casos muy triviales, el tamaño de las variables y los puertos del
camino de datos hace muy difícil la especificación de las funcionesfy" en forma
tanular. Para poder especiticar los valores de las vari ables de forma eficiente y
comprensible al definir una FSMD, utili zaremos expresiones aritméticas.
Se define el conjunto de todas las posibles expres iones, Expr, sobre el con-
junto de variables V, como el conjunto constituido por todas las constantes K del
mi smo tipo tomadas como variables en V, el propio conj unto de variables V, y
todas las expresiones obtenidas combinando dos expres iones mediante operado-
res aritméticos , lógicos , o de reordenación. Más formalmente,
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Erpr(V) =K u Vu {(e¡ :::J e) I e" ej
E Exp/; O es un operador aceptable}
Mediante Exp r (V), podemos definir los valores de las seña les de estado así
como las transformaciones en el camino de datos. Sea 5TAT = (slal k = e¡ ~ 7 le¡,
e· E Etpr(V), ~ E {::;, <. =. *.
> . <! }} el conjunto de todas las señales de estado
descritas como relaciones entre variables o como expresiones de variables.
Ejemplos de señales de estado son DOlo = O, (a-b) > (x+y), y (conlador =0) AND
(x> 1O~ Las relaciones que detinen las señales de estado pueden ser ciertas (Irue) .
en cuyo caso la señal de estado tiene el valor 1, o falsas (jo /se), tomando enton-
ces el valor O.
Mediante la definición formal de las expresiones y las relaciones sobre un
conj unto de variables, es posible simpli ficar la funciónf: (5 x V) x I-? 5 x V divi-
diéndola en dos partes: f e y fo' La función f e define el estado siguiente de la uni-
dad de contro l,
f e: 5 x l ex 5TAT -? 5
en tanto que la función j~ define los valores de las variables del camino de datos
en el estado siguiente,
f o : 5 x V X ID -? V
En otras palabras, para cada estado s¡ E 5 se calcula un nuevo valor para cada
variable V E V del camino de datos mediante la evaluación de una expresión
e. E Expr(V) . De esta forma, la función j~ se representa mediante un conj unto de
funciones más simples, en el que cada función de l conjunto define los valores de
las variables para cada estado si:
j~ : = {(Di: V x ID -? V :
{\j = eJ IVj E V, ej E Expr(V x ID))}
En otras palabras, la función f D se descompone en un conjunto de funciones
.fO¡, donde cadafo¡ asigna una expresión e k a cada variable del camino de datos Ij
en el estado si' Por consiguiente, los nuevos valores para las variables del cam ino
de datos se determinan evaluando las expresiones e, para todo} tal que 1 ::;}::; q.
Análogamente, se puede descomponer la funci6n de salida h : 5 x V x I -? O
en dos funciones diferentes: he y ho' donde he define las salidas de control exter-
336 Principios de diseño digital
nas Oc igual que en la definición de una FSM y hD define las salidas externas del
camino de datos. Por lo tanto,
he : Sx lex STAT -,;0c
ho : Sx Vxl o -,;°
0
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
primeras columnas definen respectivamente el estado presente, e l estado siguien-
te. y las salidas de control externas, mientras que las s iguientes dos columnas dell-
nen las salidas y los valores de las variables del camino de datos. Como es usual.
el símbolo X se utiliza para las indiferencias (don '/ care cOl1ditiol1s). A partir de la
tabla de la Figura 8.3(a) vemos que en cada estado existen nuevos valores para las
salidas de control, variables y salidas del camino de datos.
Sabemos que un camino de datos real puede almacenar cientos de variables
diferentes y que muchas de esas variables raramente cambian sus va lores. Por
tanto, sería más eficiente asumir que las variables mantienen sus valores a no ser
que se especifique uno nuevo en un estado determinado. Así, la cuarta columna
de la Figura 8.3(a) se podría reescribir mediante un conjunto de sentencias de
asignación, recordando líneas de código típicas de un le nguaje de programac ión,
tal y como muestra la Figura 8.3(b).
También se puede utilizar el mismo formato en la columna de estado siguiente
de la Figura 8.3(b). En este caso, no tenemos que especificar el estado siguiente para
todas las posibles entradas de control y señales de estado sino sólo para aquellas que
afecten a la selección del estado siguiente. Por tanto, es posi ble simplificar la colum-
na de estado siguiente especificando en cada estado sólo la condición y el estado
siguiente al que pasará la unidad de control si dicha condición se verifica.
Igual que para representar las asignaciones de variables, es posible utili zar
sentencias de asignación para los pueltos de sa lida de la unidad de control y del
camino de datos. No obstante, a diferencia de las variables del camino de datos,
los puertos de salida no mantienen sus valores más allá del estado presente pues-
to que los valores no están almacenados en registros o en memoria. Así. la unidad
de controlo el camino de datos deben proporcionar e l último valor asignado a los
puertos de salida en cada estado, aunque no se especifique explícitamente e n la
tabla. Teniendo esto en cuenta, podemos obtener una tabla reducida, llamada nor-
malmente tabla de estado-acción, que contiene sólo tres columnas. Como antes.
la primera columna especifica e l conjunto de estados actuales, y la segunda espe-
cifica los estados siguientes y las condiciones bajo las que la unidad de control
pasará a dichos estados. La tercera columna especifica las asignaciones de nuevos
valores a las variables correspondientes del camino de datos y las condiciones
bajo las que se producen dichas asignaciones. Las asignaciones a los puertos de
salida también se incluyen en esta columna.
Como ejemplo, en la Figura 8.3(c) se muestra la tabla de estado-acción para
el contador de unos. Esta tabla es fácil de comprender y proporciona toda la infor-
DiscÍlo al ni ve l oc trans ferencias entre registros 337
'\'0 So '\'11 ., , SI
() Z X X X X
.,, .\'1 s~ s, s, O Z II/port X X X
.'i
1 '\'3 s.\ s3 s,, () Z Dl/IO O X X
JI JJ .\ , .', .\'..¡ O Z Dato Cut'llta I X I
SI sf. s5 s5 ,\'; O Z DalO C/lema I Dato A D M lÍs('(/J'{/ A/tÍscara
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
"'50 s(, " 11 ,"(, S¡, () Z OC/lO Ctll'lI/rI I + Tl'mp X Mú.\'('lIJ'{/
'\'h SJ '\ 7 S..¡ "'"7
(J Z Dato» I CtwllIa I X Músl"lIl"lf
s7 '\'o So '\'0 ~'o I C/lema I Dato C Uf!Il llf I X X
00 01 10 11 Final Ou/por/
[ Inicio = O. /'il/al : () J
S (I
IlIicin 1, =
,\'u ]
,\' ,
[ Out/mt =Z
", '\'1 Dato = IlIport
.\"., ,\',\ 01('11((1 l=-O
S,I S', Máscara :;: : I
.\'..¡ .,'~ T('I1I/1O :;::: Dmo AND ¡\I!t1scarC/
.\':; '\'h CIII1 /I/(I I =- Cuen ta I + T('lIIjJ
[ Dalo;#. O, .\, J Da/() :;::: Darn » 1
."
\
Dato:;::: O, '\'7
s7 So [ Filial = I
OfllfJlIf =- el/ellla I
]
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
En la Sección 8.2, hemos detinido el modelo FSMD y se ha explicado como obte-
ner una tabla de estado-acción para especificar FSMD. En esta sección presenta-
mos una forma gnífica alternativa para especificar un FSMD. que se denomina
diagrama de máquina de estados algorítmica, o diagrama ASM. En general,
un diagrama ASM es totalmente equivalente a las tablas de acción-estado descri-
tas anteriormente: es decir, para cada tabla de acción-estado, existe al menos un
diagrama ASM que describe el mismo comportamiento. No obstante, en muchos
casos los diagramas ASM presentan una cierta ventaja desde el punto de vista del
ser humano puesto que muestran explícitamente los caminos desde un estado a
otro, que son menos visibles en una tabla de estado-acción. La siguiente defini-
ción pone de manifiesto estas ventajas.
Como muestra la Tabla 8.1, un diagrama ASM representa una FSMD en tér-
minos de cuatro componentes básicos: la caja o bloque de estado, la caja de deci-
sión, la caja de salida condicional, y el bloque ASM. Cada estado en un diagrama
ASM se indica mediante una caja de estado, que contiene el conjunto de asigna-
ciones incondicionales a las variables y puertos de salida del camino de datos.
Cada caja de estado tiene un nombre que se sitúa en la parte superior izquierda de
la caja. Si se conoce, el código asignado al estado se sitúa en la parte superior
derecha. No obstante, usualmente no se conoce el código del estado en el momen-
to en que el diagrama ASM se dibuja por primera vez, y debe añadÍJ·se durante el
proceso de asignación de estados descrito en el Capítulo 6.
La caja de decisión describe la condición bajo la que la FSMD llevará a cabo
acciones especíticas en el camino de datos y seleccionará el e: t'ldo siguiente.
Estas condiciones pueden referirse tanto a las entradas de control ~xternas como
a las señales de estado.
Obsérvese que cada caja de decisión tiene dos salidas posibles, una se toma
cuando la condición indicada dentro de la caja es cierta, y la otra cuando es fal sa.
Estas dos salidas se indican usualmente con un I para el caso de condición cier-
ta, y con un O para la falsa.
La caja de salida condicional describe las asignaciones de variables o sal i-
das que se realizan cuando se verifican las condiciones espec ificadas por una o
más cajas de decisión. Los bordes redondeados de una caja de salida condicional
permite diferenciarla de una caja de estado.
Por último, el bloque ASM es una estructura compleja que incorpora una caja
de estado y una red de cajas de decisión y cajas de salida condicional organizadas
Diseño al ni ve l de transferencias entre registros 339
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Nombre Código de! 0 11
del e~lado estado
Asignación
Caja de l'slado inco ndic iona l de Te/IJ!/=7f.'II/{J AN O MlI.IClIT{/
variahles y salidas
Asignación
Caja dl cond ic ión conditional CIII'IIIl1I = CIlf:'1I1lI 1 + I
de va riables
Fi/J(/! =O
o
Bloq ue AS~\'I
( )
340 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Bloque ASM
o
>-~,+-< CVIli! 1
•
s,
BloqueASM SI ~
o
COlld 1 . / " _.....
s,
C uando se describe una FSMD mediante un diagrama ASM, hay que segui r
dos regl as:
1. El diagrama de be definir un único estado sigui ente para cada estado pre-
sente y conjunto de condiciones,
2. Todo camino definido por la red de cajas de condición debe conduc ir a
otro estado.
En la Figura 8.4, se muestran dos ejemplos de diagramas ASM incorrectos
que violan las reglas anterio res. En concreto, el diagrama de la Figura 8.4(a) viola
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
la primera regla, puesto que cuando COl/d2 es cierta. tanto 52 como 5} están espe-
cificados como estados sigu ientes. De igual manera, puede verse como el diagra-
ma de la Figura 8.4(b) vio la la segunda reg la ya que el cam ino definido cuando
COl/d I es cierta y C0l1d2 es fal sa forma un bucle que no lleva a ningún estado .
000
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
llegue a ser demasiado voluminoso cuando la FSMD en cuestión tuviese un
número elevado de estados y condiciones.
Para entender el papel de los diagramas ASM y las tablas de estado-acción en
el proceso de diseño, volveremos al contador de unos del Ejemplo 7.1, Y lo redi-
señaremos utilizando un camino de datos específico o a medida (clIstom) en lugar
de utilizar uno estándar. En comparación con un camino de datos estándar. un
camino de datos específico se di seña de forma que se ajuste al algoritmo particu-
lar de que se trate y por tanto necesita menos componentes e interconexiones.
Puesto que utiliza menos componentes, el camino de datos específico también
puede proporcionar mejores prestaciones. Por estas razones, se utili zan caminos
de datos específicos en el diseño de ASIC.
C ualquiera de eStos di agramas ASM puede co nve rtirse fác ilmente en un a tabla de esta-
do-acción qu e nos permita obtener las ecuaciones booleanas para la lógica de estado
sigui ent e y de salida de la unidad de co ntrol. En la Figura 8.7( a ) y (b). se muestran las tablas
de estado-acció n correspond ientes a la ~ versiones del contador de unos basadas en es tados
yen entradas. respectivamente.
La im plcment ac ión de este mismo contador de unos se da en la Figura 8.8. O bsé rvese
q ue el camin o de dutos es igual para ambas ve rsio nes pucsto q ue ambos contado res só lo
almace nan dos va ri ables y rea li zan úni camente dos operac iones. Es dec ir. ambas ve rsiones
despl azan el val or almace nado en Dato e incrementan e l valor de la variable Cuenta / .
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Cuel/ta / = Cllef//a / + I
Fillal=}
O ll t{Jllf= Ole/l/al
\al Diagrama para FSMD basada ib) Diagrama pm·;. rSMD has¡u.la
en cSlados (Moorl' ) en entradas (Mcaly)
FIGURA 8.6 Diagramas ASM para el contador de unos (diseño de propósito especifico).
Dados es tos dos opcfJd ores. e l camino de datos sólo necesita un reg istro de des plaza-
miento co n ca rga para le la. qu e tome los ,dat os desde el puerto !lIpo rl. y un co ntado r ascen-
dcnte/descendent e CO n carga paralela q ue se haga O al comienzo de la cuenta de linos e
incremente su cont enido cuand o DalO¡..,Su sea igual a l .
344 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
0, 0, °0NOMBRE CONDICiÓN, ESTADO CONDICiÓN, OPERACIONES
O O O So
[ I"icio = O,
IlIicio = l .
So]
.vJ
Filial = O
[ Daw ::: JI/lwr, ]
O O I ,~' I sl C/(('I//(I/ ::: O
O I O ·'i2
[D(I{OL'iB = 1,
D(l((JUiB = 0,
s, ]
.\'4
(j I I .'1'3 S.I CUfllflll = Cut!ll/a I + I
I O O .\'4
[Dato '* O.
/Ja/o = 0, ,.s,, ] Dato = Daro» I
[ Filial ::: I ]
I O I s, -\'0
OUlpl/f :; el/naO I
s,'o ]
[ I/licio :; O.
O () So Inicio :; l.
Filial =O
[ {Ja!O = II/porr ]
O ,1 S , s:!
Cllel/wl :; O
~~~ ]
[ Daw '1= O, [DawLSB :; 1, CIIl'ntal :; CtwII1aJ + 1]
I O .\'2
/JalO =(j. Daw'l= O Daro = Daro» 1
I I [ Filwl= I ]
s:,l So Ourpl/l :; Cue1lta I
Al implemen tar la lóg ica de contro l. podríamos reducir el nlimero y tamaño de las puer-
tas s i considera mos que en la versión basada en estados, los estados ,\'2. ' s" s4 y Ss se puede n
defi nir de forma un ívoca media nte Q ,Q'f)' Q ,Qn' Q, Q'n y Q , Qf)' Ten iendo eslO en cncnta.
podemos obtener las ec uac io nes de estado siguiente para la vers ión basada en estados de la
Figura 8.8(a) directamente a partir de la tabla de estado-acci6n.
D, = Ql"igllielll e)="'po/(J ''-'11 +s,
+,' j Dato=O) = Q, Q ',p% '1..\'/1+ Q , Q" + Q, Q 'n( DolII=O)
D,=Q ,(siglliell/e )=.1', +s, Da/o¡s'l+si D,t/ootO)=Q' ,Q' ,Q,,+Q, Q ',paIOL<tJ+Q, Q 'o! DowotO )
Diseño al ni vel de transferencias entre registros 345
Do:. Qof siguiellfl' ) = ,\·/";cio+s~ D(lf0 Lm+.'ii DalO;O ); Q 'l Q ' IQ '(ll l1icio+Q 1Q 'ODllIO LSIl +
Q,Q '<I( DlI l,,=Oj
I"in,. I"por,
s,
8v'D,Q,- ~JD
~
Sil
SRwPL
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Q', - Dato LSs
'------'
Daw74J
<} "o"
9D-~ - I
Conwdor
~ "0" - /)
E a..;cc nclcntt·/
~
Q' =l de,,'endet1lc
=LJ C(II"}.:(/
Habilitación de salida ,- 7
-$v"
-
LógiCi/ de eSf(ulo sigl/i~",~
Lóg;Cl/
(le ~'(djtl(,
ClImi"o
lle d(/to~'
~
Fillol Ol f /POlI
I"po/"
L;::fJ.
,
r
- B>-- v;¡;;-'- ~
S
Su
SR\\ PL
(J ' -
----2. J)(/tl}¡.5S
Dma#)
-(}
J.:Rr>-~ Cllfll:tdlll"
.....r "0" - /)
~
E a,ú'm.lenld
dc~cenJl'nlc
~ --, CWl;O
Filial
de dlllos
•
GIIII'f}/'1
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
D] = Q](siglliellfe) = s ] + S2 = Q\Qo + Q]Q'o
Do = QoCsiglliellfe) = sofnicio + s,(DalO",D)'=
= Q ' ]Q 'ofllicio + Q]Q 'oCDalOo'D)'
Obsérvese que para la versión basada en entradas. la lógica de salida es más compleja
puesto que incluye la ejecución condicional de las operaciones del camino de datos:
S] = siDatoo'D) = Q]Q'oIDato>"O)
So = s] + s2(Dato>"O) = Q ']Qo + Q]Q'o(Dato>"O)
E = S2DatoLSB = Q]Q'oDaIO LSB
Cargar = s] = Q']Qo
Final = Habilitación de salida = s3 = Q]Qo
Como se puede ver en la Figura 8,8, mientras que los caminos de datos son los mismos
en los dos casos, el registro de estado en la versión basada en estados tiene más bits pues-
to que esta versión utiliza más estados. De igual forma, la lógica de estado siguiente de la
versión basada en estados es más compleja. La lógica de salida, por otra pane, es más si m-
ple puesto que depende sólo del estado presente. Por contra. la versión basada en entradas
tiene menos estados pero una lógica de salida más compleja que incluye las condiciones
internas y externas.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
des funcionales. Por tanto, para ejecutar cada sentencia de asignación a una varia-
ble, el camino de datos debe tomar los datos de los componentes de almacena-
miento donde se encuentran las variables que aparecen en el lado derecho de la
sentencia de as ignación, pasarlos a través de las unidades funcionales que calcu-
lan el nuevo valor, y después devolver el resultado al componente que almacena
la variable del lado izquierdo de la sentencia. De este comportamiento se deduce
que es posible abordar la optimización del camino de datos minimizando los com-
ponentes de almacenamiento, las unidades funcionales , y los buses que interco-
nectan estos componentes.
Centrándonos en los componentes de almacenamiento, por ejemplo, observa-
mos que las variables del camino de datos pueden estar almacenadas en registros,
bancos de registros, o memorias. Sin embargo, puesto que no todas las variables
están vivas al mi smo tiempo, es posible que ciertas variables puedan compartir el
mi smo registro, o la misma posición en el banco de registros o en memoria. En
otras palabras, podemos agrupar las variables del camino de datos de forma que
se reduzca el número de posiciones de almacenamiento necesarias. Es más, inclu-
so si ciertas variables están vivas al mismo tiempo, posiblemente no se acceda a
ellas a la vez. lo que significa que podríamos almacenarlas en un mismo banco de
registros o en memoria para que puedan compartir los mismos puertos del banco
de registros o de memoria. De esta forma, al combinar posiciones de almacena-
miento se minimiza el número de puertos en el camino de datos y con ello se redu-
ce el número de conexiones necesarias.
Por otra parte, ciertas técnicas de optimización se centran en minimizar el
número de unidades funcionales del camino de datos. Como se mencionó antes,
en cada estado se asignan nuevos valores a ciertas variables a través de operacio-
nes aritméticas, lógicas, o de desplazamiento, que pueden implementarse en uni-
dades funcionales distintas. No obstante, puesto que la mayoría de estas opera-
ciones se ejecutan en estados di stintos, podrían compartir la misma unidad fun-
cional. En otras palabras, es posible reducir el número de unidades funcionales en
el camino de datos agrupando operaciones, y asignando cada uno de esos grupos
de operaciones a una única unidad funcional.
La tercera técnica básica de optimización se centra en la conectividad del
camino de datos. Como se ha mencionado, la ejecución de una sentencia de asig-
nación precisa que el dato pase desde un componente de almacenamiento a la uni-
dad funcional que calcula el nuevo valor, que a su vez retorna después a un com-
ponente de almacenamiento. En otras palabras, el dato se transfiere entre el alma-
348 Principios de diseño digital
cenamiento y las unidades fun cional es a través de unas conex iones. Sin embargo,
puesto que en diferentes estados se utili zarán conexiones di stintas, dichas cone-
xiones se pueden agrupar en buses, permitiendo así reducir el número de líneas en
el camino de datos.
Estas tres técnicas se muestran para caso del ejemplo de AS lC de la Figura
8.9, que implementa una aproximación a la raíz cuadrada (S RA. Sqllare-Roo/
Aproximation) de dos enteros con signo, a y b, mediante la siguiente fórmul a:
;-, -,
va- +b- ~ f//ax«0 ,875x+0,5y),x)
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
donde x = l/Iax(la l, Ibl), e y = mill (lal, Ibl ). Según la Figura 8.9(a), este ASlC tiene
dos puertos de entrada, 111 1 e 1"2' que son utili zados por los números enteros a y
b, Y un puerto de salida Out. Como puede verse en el diagrama ASM de la Figura
8.9(b), el ASlC lee los puertos de entrada y comienza el cálculo cuando la entra-
da de control Inicio se hace igual a l . En el estado s l ' se calculan los valores abso-
lutos de a y b, Y en " 2 se asigna el máximo de esos dos valores a x y el mínimo él
y. En el estado s3 se desplaza el valor de x tres posiciones a la derecha para obte-
ner O.125x y se desplaza y una posición a la derecha para obtener 0.5)'. El ASIC
calcula 0.875x restando 0.125.1' de x en el estado S4' En el estado .1'5 se suman
0.875x y O.5y, mientras que en el estado s7 se determina el máximo de x y la
expres ión 0.875x+0.5y. En el estado S7' el AS IC genera el resultado y lo muestra
a través de Out durante un ciclo de reloj. Al mi smo ti empo, pone a I la señal ue
control Fillal, para indicar que el dato que ha aparecido en 0 /1/ es un res ultado
válido.
Para detenninar los recursos que se precisan a partir de este diagrama ASM ,
es necesario generar las tablas de uso de vari ables y operaciones que se muestran
en las Figuras 8.1 O(a) y 8. 1O(b). En la tabl a de uso de variables, cada tila corres-
ponde a una de las variables que aparecen en el diagrama ASM y cada col umn a
representa un estado. Entonces, para cada vari able se asigna una x en la(s) co lum-
na(s) correspondiente(s) al (a los) estado(s) donde la variable está viva. Una vari a-
ble se considera viva en el primer estado tras el tlanco de subida de la señal de
reloj que le asigna su nuevo va lor y tamb ién en todos los estados. desde el primero
al último inclusive, en los que se utili za su nuevo valor. En la Figura 8. 1O(a ), por
ejemplo, se asignan los valores a las variables a y b en el fl anco de subida de la
señal de reloj que indica el comienzo del estado SI ' pero no se util izan en ningún
otro estado. Por consiguiente, sólo están vivas en el estado .1' l' En ca mbi o, la varia-
bl e x recibe su valor al comienzo del estados" pero como este valor de x también
se utili za en los estados .1'4 Y .1'6' la variable xestá viva en los estados .1') • .1'4 ' .1'5' y.l'6'
A partir de esta tabla, podemos ver las variables que están vivas cn cada estauo.
Más importante aún, la Figura 8. 10(a) también muestra el número máximo de
variables vivas en un estado. Así, en los estados s~ y .1'5 hay tres variables vivas.
Podríamos concluir que se necesitan al menos tres regi súos en el cami no de datos
de esta implementación de la SRA. En consecuencia, debemos combinar las
variables de la Figura 8.1 OCa) en tres gru pos de manera que cada uno de ellos con-
tenga variables que 11 0 están vivas al mi smo ti empo y se puedan almace nar en el
Diseño al nivel de Iransferencias enlre regislros 349
mi smo registro. A partir de este ejemplo podemos ver que una de las principales
tareas de la síntesis RT consiste en la agrupación de varia bles Vll elg illg o grOll-
ping variables) y en la asignación de estos grupos a los registros o posic iones de
memori a de forma que se minimice el número de componentes de almacena-
miento o alguna otra métrica asociada al di seño, como las prestaciones. la poten-
cia disipada. o la testeabi lidad. Puesto que cada grupo de variables comparte un
registro o una posición de memoria, frecuentemente esta tarea rec ibe el nombre
de compartición de registros/memoria (regisleJ!lIIeIlIlJl:1' sharillg~
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
In icio {II ¡ /1/1
Cfmtml
Filial Dllf
¡ ¡
(a) Diagrama de bloque'
(b l Diagrama ASM
5, 52 53 54 55 5. S,
a x
b x
X
"
1, X
x x X X X
Y X
1) X
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
X X
"'" x
," ><
X
"
Número de 2 2 2 3 3 2
variables vivas
(;11 L'"" Je \"ariahk ...
5, S, 53 54 55 5. S, NÚMERO MÁXIMO
DE UNIDADES
(lbs
111 i 11
2
"
IIl11X
» 2 2
Número de 2 2
operaciones
De ig ual forma . podríamos dete rminar el mínimo nlllllcro ¡Je uni¡Ja¡Jes nece-
sarias para ej ecutar todas las o perac io nes ¡Je l diagrama ASM . Para ello usaríamos
la tabl a de la Fi g ura 8. IOlb ). en la que las fi las representan los di sti ntos tipos ¡Je
ope rador que aparecen en e l d iag rama ASM y las columnas , ig ual qu e antes.
correspon¡Jen a los estados . A partir de esta tabla ll egamos a la conclu silÍ n de qu e
son necesarias ¡Jos unidades qu e puedan ca lcular los val o res abso lu tos (indica¡Jos
mediante 11 en el di ag rama ASM¡ y desplazar datos (operac ión in¡Ji cada con » en
e l diagrama ASM ). y una unidad que pueda rea lizar las o perac io nes mux. milI. +.
y - . A partir de estos requisitos. e l enfoque más ¡Jireeto para di sciiar e l cami no de
dalOs para la SRA consiste en utili zar dos unidades para el cálc ul o de los va lo res
absolutos, dos desplazadores. una unidad para la dctenn inación de l máx imo y nt ra
para la del mínimo, un sumador. y un restador. A partir ¡Je la Figura 8. 11 , que
muestra el di seño de cada unidad, podemos ver que esta implemen tació n direc ta
Diseño al nivel de transferenci as entre registros 351
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
construir unidades funcionale s que puedan realizar más de una operación, puesto
que esto pennitiría un ahorro sustancial en hardware.
Por ejemplo, en la descripci ón de la SRA, la suma y la resta nunca se rea li zan
al mismo tiempo, lo que signitica que se pueden agrupar estas dos operaciones en
una única unidad funcional llamada sumador/restador. En este caso se gana un
sumador y un complementador a expensas de una puerta lógica EX-OR, como
muestra la Figura 8.11 (k). Por otra parte, agrupar el desplazador de I bit y el de 3
bits no supone un ahorro de hardware y prec isa un selector adicional , como mues-
tra la Figura 8.11 (h). A partir de estos ejemplos, se ve como podemos reali zar la
segunda tarea en importancia para la síntesis RT, que consiste en la agrupación
de operadores ({lzergillg o grollping op eralors) y en el diseño de la unidad fun-
cional para cada grupo, minimizando una métrica de diseño dada como puede ser
el área, el número de puertas o transistores, o el número de unidades funcionales
en el camino de datos. Esta tarea también recibe el nombre de compartición (o
uso compartido) de unidades funcionales (jullctional unit slzaring).
Si nuestro primer objetivo fuese minimizar el número de líneas, también con-
sideraríamos la agrupación de líneas en buses puesto que cada conexión entre dos
unidades se utiliza en muy pocos estados y permanecería inacti va gran parte del
tiempo . Por ejemplo, consideremos las conexiones del camino de datos para la
SRA que utiliza un registro por variable y una unidad funcional para cada opera-
ción . Las conexiones para este camino de datos se dan en la tabla de conectividad
de la Figura 8.12, en la que cada fila corresponde a una unidad funcional y cada
columna representa un registro. Para rellenar la tabla, utilizamos una 1 para cada
conexión entre un registro y la entrada a una unidad funcional , y para cada cone-
xión entre la salida de una unidad funcional y un registro, utilizamos la letra o.
Como puede verse en la Figura 8. 12, la unidad para la SRA neces itaría 14 cone-
xiones de entrada y 9 conex iones de salida, es decir un total de 23 conexiones.
No obstante, cada estado usa muy pocas de estas 23 conexiones. De hecho, a
partir del diagrama ASM sabemos que el máximo número de conexiones se utili-
za en el estado s" donde se necesitan cuatro conexiones de entrada, que comuni-
can los regi stros-que almacenan las variables 1] y ' 2 con las unidades min y max,
y dos conexiones de salida comunicando las unidades min y lIlax con los registros
que almacenan las variables x e y . En otras palabras, el número máximo de cone-
xiones que se usan al mismo tiempo es seis.
A partir de este ejemplo se puede ver que entre las tareas principales de la sín-
tesis RT, la tercera es la agrupación de conexiones Vllelging o grollping COllllec-
354 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Determi nar los lict11[los
de vida de [as variahles
!
Ordenar las variables
segú n estado de eSCritura
y valor del tiempo de vida
t
Tomar un nuevo registro
!
Asignar al registro todas
las variables no SOlapádá.~
empezando por la
C<lbcccra de la lisia
+
Eliminar de la lista 1m.
,.¿
variables asignadas
¿,LiMa "acía"
solapa con e ll a ' l ya continuac ión x Y 'r En este momento. puesto que no ex isten
más variables no solapadas e n la li sta, se e liminan las variables ya asignadas al
registro R l' A continuac ión. se toma e l reg istro R 2• y. de igua l manera. se le asig-
nan las variables b. 12 " " 1-1' Y ' 6' Fi na lme nte. as ignamos las variables restantes. t,
y 1,. al reg istro R " como indi ca la Figu ra 8. 14(b) . Utilizando estas asignaciones ,
es 'pos ihle disei'i¡ú' un cam ino de datos para la S RA que neces ita tres regi stros.
como aparece en la Fi g ura 8. 14(c ).
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
So s, 52 53 54 Ss 56 s.,
a X
b x
X
"
'2
x
X
X X X X
Y X
'.' 3 X
X
X
X
"
'. X
X
"
( a) LiSIa de variahlcs ordenadas
R ¡ ~ lo, 1 , \',1, 1
1
R ~ = Ih, I~ , .1'. ' J ' 1,,1
R ~ = \1 1' '~ I
/" j /11 2
I ----, I 1, ,
I Selector I I Se lector I I Se lcclOr I
I I I
I R, I I R, I I R, I
I , , ,
I I , I I I I I I I I
~
'--l
I 1(/ 1
l' 11>1 I mili I
L- '--l
I//l/X
I
II + 11 -
. 1
11 »1 , , » ) ,
I L.
OIll¡J/f1
FIGURA 8.14 Registros compartidos después de aplicar el algoritmo de lado izqu ierdo.
356 Principios de diselio digilal
¡ ¡¡
IlIiáv 11/ 1 111 .
COllfml
Filial 01//
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
(h) Diagram:¡ t\S ~
miendo un coste constante para todas las entradas de un selector. En el caso del
camino de datos de la SRA mostrada en la Fi gura 8. 14(c). el número de entradas
a los selectores es 10.
Para desarrollar un algoritmo que minimice el número de registros junto con
el costo de conecti vidad , se da prioridad a la combinación de ciertas variables . La
mayor prio ridad corresponde a dos variables que se utili cen como operandos a la
izquierda o a la derecha del mismo tipo de operador y a las variables cuyo valor
es generado por el mi smo tipo de o perador, debido a que la agmpac ión de tales
variables puede suponer el ahorro de una entrada a un selector. Este concepto se
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
muestra en la Figura 8. 15(a) para el caso de dos sumas (x = a + b e y = e + d)
reali zadas en diferentes estados, con operandos distintos y asignadas a variables
distintas. Si se asume que ambas sumas pueden ejecutarse en la misma unidad
funcional. la agrupación de operandos y resultados puede ocasionar un ahorro de
entradas a se lectores. Por ejemplo. si se asigna cada variable a un registro distin-
to. se obtendría el di seño de la Figura 8. 15(b), que necesi ta 10 entradas a se lecto-
res. Sin embargo. si se agrupan las variables a y e, b y d, Y x e .Y, y se as igna cada
par al mismo registro. se. reduce en tres el número de entradas a selectores, como
muestra la Figura 8. 15(c).
x = lI+h
y=c +d
t
(al Diagr:lI11a ASM pun: i¡¡1 (b) Camino de ualos si n rcgi¡'ITO!> (e) C l!Oi no de datos con regi stro:.
compart idos compartidos
En genera l, dadas 11 variables utili zadas como fuente o destino del mi smo ope-
rador o unidad funcional, hay un ahorro potencial de 11- 1 entradas a selectores si
esas 11 variables co mparten el mismo registro . Para tener en cuenta el ahorro
potencial de la agrupaci ón de variables. se presenta un nuevo algoritmo que esta-
blece una partición en un grafo de compat ibilidad de variables. Este grafo de
compatibilidad (colllparibiliry graph ) está constituido por nodos y arcos tales que
cada nodo represe nta una variab le y cada arco entre dos nodos representa la com-
patibilidad o incompatibilidad para la agrupación de las variables representadas
por estos dos nodos. Hay dos tipos de arcos en el grafo: un arco de incompati-
bilidad (representado por una línea di scontinua) entre dos nodos indica variables
con ti empos de vida solapados, mientras que un arco prioritario entre dos nodos
indica variables con tiempos de vida no solapados que sirven como fuente o des-
358 Principios de diseño digital
tino de las mismas unidades funcionales. Cada arco prioritario tiene un peso de
prioridad que indica el número de entradas a selectores que pueden ahonarse. El
peso de prioridad tiene la forma sld, donde ses igual al número de unidades fun-
cionales que utilizan ambos nodos como operandos a la derecha o a la izquierda,
y des igual al número de unidades funcionales diferentes que generan resultados
para ambos nodos.
A continuación describimos un algoritmo de partición de grafos que agrupa
nodos compatibles en supernodos hasta que todos los nodos del grafo son incom-
patibles. Más concretamente, el algoritmo siempre agrupa dos nodos que están
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
conectados por arcos de prioridad con el peso mayor y crea un supernodo con
ellos. A continuación, se borran todos los arcos dentro del supernodo y se crean
nuevos arcos entre el supernodo y los otros nodos. Por ejemplo, se crea un arco
de incompatibilidad a cada uno de los nodos que son incompatibles con alguno de
los nodos del supernodo, y de igual forma, se crea un arco prioritario a cualquier
nodo que se utilice como fuente o destino común con al menos un nodo del super-
nodo y es compatible con todos los nodos del supernodo. El peso del nuevo arco
de prioridad se calcula como antes. Este procedimiento se resume en la Figura
8.16.
Crear el gra fo de
compatibil idad
¿Todos
no sí
los nodos
incompatibles?
( Fin )
FIGURA 8.16 Algoritmo de partición de grafos .
Si aplicamos este algoritmo al ejemplo del camino de datos para la SRA, obte-
nemos una agrupación de variables que es ligeramente diferente de la agrupación
obtenida con el algoritmo de lado-i zquierdo. En primer lugar, necesitamos crear
Diseño al nivel de lransferencias entre registros 359
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
arcos prioritarios entre las variables 11, 12, Y x. Y 11, 12, Y 16 puesto que todas ellas
son entradas a la misma unidad l1Iax : hay arcos prioritarios entre las variables x.
y. y '7 porque son destinos posibles de una unidad min/max: y hay arcos priorita-
rios entre 13 y 15 Y 15 Y16 porque son entradas y salidas posibles de un sumador/res-
tador.
(a) Grafo de compati bil idad ini cial (b) Grafo de compatibi lidad despuc.!s dc agmpar 'l ' 15 Y1"
o
le) Grafo de compatibilidad después de agrupar 11, .r Y', (d) Grafo dc compatibilidad después de agrupar'2 e )'
bras , agrupamos las variables / 3' /5' Y /6 con una posib le di sminución de dos entra-
das a selectores, y creando con e llo e l supernodo I/ J , /s' /6 1que muestra la Figura
8.17(b). A contin uac ión, se selecciona e l nodo con e l máximo número de arcos de
prioridad. concretamente el., y lo agrupamos con / 7 y luego con /1 como indica la
Figura 8. 17(c ). Obsérvese que al agrupar .r, / 7' y / , se han e liminado dos arcos
prioritarios del grafo de compatibilidad, entre y y 17 Y entre 1, y.r. Ahora se puede
agrupar / 2 y luego v ean el s upernodo 1/3' 15,16 ], como muestra la Figura 8. 17(d ).
Fina lmente, podemos asignar aleatoriamente la variable a al supcrnodo 1/,. .r. 171
y b al supernodo [1 2 , r. /3' /S' 161 para reducir más e l número de reg istros necesa-
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
rios, de forma que e l supernodo [a. 1" x. 171 pueda asignarse al registro R,. e l
Ib, 12• y, IJ' /s' 16l a l registro R 2 • y el [141 al registro R j'
Para comparar el costo de conectividad de las soluciones generadas por los
a lgoritmos de lado-izquierdo y de palt ición de grafos. utili zamos las mi smas ocho
unidades funciona les que se usan en la Figura 8.14(c). donde Se ha di señado e l
camino dc datos con la asignación de regi stros generada por el algoritmo de lado-
izqu ierdo. A partir de l cam ino de datos mostrado en la Figura 8.18. construido con
la asignación de regi stros obte nida mediante el algoritmo de partición de grafos.
vemos que el número de entradas a selectores es 9. una menos que en la Figura
8. 14(c). La diferencia pod ría haber sido mayor si se hubiesen ut il izado unidades
mu ltifunciollales para el disefio de la Figura 8.18 en lugar de unidades para una
sóla función. puesto que al haber menos unidades habría menos conexiones. La
observación anterior sugiere que se deberían combinar ope rac iones en unidades
multifuncionales pru'a conseguir una mayor minimi zac ión del costo de los recursos
de l camino de datos y de las conexiones, ta l y como se discute en la Sección 8.6.
RI :o (n , ' 1' .1.1_1
R, = [ (I, f ,o y. ' l ' t~ . I¡, I
R~ '" [r~ l -
(a) A sig rKIL'jc1Jl de regislro!-
I ,--, I II[
I Selector I I Selec tor I
I I
I R, I I R, I I R, I
I I [
[ I
I I I I I I I I I I I
[ 101 [[ I!JI [ I lIIi/l 1I /1111.\ II + I r - ,, », II ».1 I
, L- --.J I
LJ I I
lb) E~quema del cam ino de dalos
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
cuencia, incrementandose su utilización . Por supuesto, en algunos casos la agru -
pación de operaciones de esta forma no reduce el coste del camino de datos; debi-
do a que a menudo ocurre que operadores di stintos requieren diseiios estructural-
mente diferentes y su agrupación no produce mejoras sino incluso costos mayores.
En muchos casos. no obstante, la asociación de operaciones puedc producir reduc-
ciones no despreciables en el costo. como se muestra en la Figura 8. 19.
", tI
l = If + 11
" t ~~
~ ~
y=c - cI
( a) Diagrama A SM parcin l l b) Camino de d;,¡!Os ~ in rcgh.lros (e) Camino de dU IOS con r('g iMro~
l:Ompartidos compartido!>
En este ejemplo hemos asumi do que el camino de datos realiza dos operacio-
nes diferentes, la suma y la resta. con operandos diferentes en estados distintos.
como indica la Figura 8.1 9(a). Si implementamos el diagrama ASM utili zando
unidades unifuneionales. se obtendría el diseño de la Figura 8. 19(b), en el que el
camino de datos necesita tanto un sumador como un restador. Sin embargo, se
podría conseguir la mi sma funcionalidad mediante un sumadorlrestador y dos
se lectores, como muestra la Figura 8.1 9(c). Obviamente, el segundo diseño es'
preferible cuando el costo del sumadorlrestador y los dos selectores sea menor
que el de un sumador y un restador por separado. Es en estos casos en los que
compartir unidades funci onales podría se r ventajoso. De esta forma sería cuesti ón
de desalTollar un algoritmo que combinase operadores en unidades funci onales de
forma que el costo total de todas las unidades multifuncionales y los se lectores
necesarios sea mínimo . Para e llo podemos utili zar el algoritmo de partici ón de
grafos presentado en la Sección 8.5. Ahora se muestra el algoritmo para la agru-
pación de operadores en el ejemplo del cam ino de datos para la SRA dado en el
diagrama ASM de la Figura 8.9. Para este ejemplo suponemos que están di sponi-
362 Principi os de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
f-
" ~
c, o OPERACIÓN
~
C C, Co OPERACiÓN
r--
" b
t-
eJ ~ "oC, OPERACiÓN
mI dl' signo Sumador
Para asociar los operadores indicados en el diagrama ASM, primero hay que
construir un grafo de compatibilidad que indique los operadores que pueden com-
binarse. Cada nodo del grafo de compatibi lidad representa un tipo de operador del
diagrama ASM, aunque cada grafo puede tener varios nodos para cada tipo de
operador. Como norma, el número de nodos deberá ser igual al máxi mo número
de apariciones de cualquier tipo de operador en alguno de los estados. Para ind i-
car la compatibilidad de los distintos operadores, es preciso conectar los nodos del
grafo medi ante arcos prioritarios o arcos de incompatibilidad. Como era de espe-
rar, un arco de incompatibil idad indica que los operadores que conecta no pueden
agruparse bajo ninguna circunstancia puesto que se usan concurrentemente en el
mi smo estado. Por contra, los arcos pri oritarios indican preferencias para estable-
cer agrupaciones, debido a las similitudes de los operadores en cuanto a su cons-
trucción o por la sustancial reducc ión en el costo de conexiones del camino de
Diseño al ni vel de transferencias entre registros 363
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
to que se utilizan en el mi smo estado, mientras que el segundo arco conecta los
operadores máximo y mínimo que son incompatibles por la misma razón .
Si utili zamos unidades unifuncionales, entonces la implementación del cami-
no de datos para la SRA precisa dos unidades de valor absoluto y una ullidad para
cada una de las operaciones de máximo, mínimo, suma, y resta . Como se mues-
tra en la Figura 8. 12(b). el costo total de estas unidades es de cinco inversores
lógicos, seis sumadores, y cuatro selectores.
Al agrupar los operadores en el grafo de compatibilidad podemos reducir el
costo del camino de datos de diferentes formas. Dos de estas formas se muestran
en las Figuras 8.21 (e) y (e), con los correspondientes costos del camino de datos
en las Figuras 8.21(d) y (f). Obsérvese que las dos alternativas precisarán dos
puertas lógicas AND, un inversor lógico, una puerta lóg ica EX-OR. dos sumado-
res y dos selectores, con un costo total mucho menor que el de la implementación
original con unidades unifuncionales. Las conexiones del camino de datos para
estas dos alternativas se muestran en las Figuras 8.22(a) y 8.22(b). En estas figu-
ras se puede ver que cada diseño necesita nueve entradas a selectores. como ocu-
rría en el camino de datos de la Figura 8.18(b). Por otra parte, los diseños de la
Figura 8.22 tienen un costo de unidades funcionales mucho menor, lo que signi-
fica que globalmente el diseño es más eficiente en cuanto a su costo.
Además es posible reducir más el costo del camino de datos minimizando el
costo de conecti vidad al agrupar operadores. Para conseguirlo debemos utili zar
los arcos prioritarios del grafo de compatibilidad como se hi zo en el caso de la
agrupación de variab les. Aquí también, el peso de estos arcos prioritarios se basa
en el número de fuentes y destinos comunes.
Para ilustrar el cálculo de los pesos de prioridad, se considera como ejemplo
el diagrama ASM parcial de la Figura 8.23(a), en el que una operación de suma y
otra de resta se completan en estados distintos con diferentes conju ntos de ope-
randos, asignándose sus resultados a variables di stintas. Además. si las vari ables
a y e, b y d, Y x e y comparten los mismos registros, un diseño de camino de datos
con un sumador y un restador separados precisaría cuatro selectores de dos entra-
das y un selector de 3 entradas, con un total de l l entradas a se lectores, como
muestra la Figura 8.23(b). Por otro lado, un camino de datos que utilice un sumu-
dor/restador sólo preci saría dos selectores de tres entradas y un se lector de dos
entradas. con un total de 8 entradas a selectores, como muestra la Figura 8.23(c).
En otras palabras. la asociación de un sumador y un restador en un circuito suma-
dor/restador proporciona un ahorro de tres entradas a selectores puesto que el
364 Principios de diseño digital
0---8 ~
UNIDAD
la 1
PUERTAS liNERSORES PUERTAS
ANO LÓG~ EX-OR
SUMAIJOfIES SELECTORES
Ibl
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
O O Total 5 6 4
0--G
8--------8 ~
UNIDAD
[lal/mÍn [
PUERTAS INVERSORES PUERTAS
ANO LÓG~ EX-OR
SUMAIJOfIES SELECTORES
~
[Ibl/máx/+I-[ 1
O O Total 2 2 2
0--G
8--------8 ~ UN~AD
PUERTAS INVERSORES PUERTAS
ANO LÓG~OS EX-OR
SUMAIJOfIES SELECTORES
Ilal/mÍn/+1 1
o O
[Ibl/máx/- J
Total 2 2
2
2
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
I Selector
I
I
R, I I
I
I Selector
R. I
n
I R, I
1
1
I I
I 1I
1
Sdl-'Clor I
I 1 » 1 11 », 1
iI
I
Selector
N, I
I Selector I
I R, I
n
I R, I
1
I
I I Selector
I 1 »1 11 »3 1
~'7 I [ob,,'III/I"/+ 1
I [alJ.\/l/uíxl-1
I I L
(b) Esquema del camino de dalo:" parJ la asignación de unidadc!>
de la fig ura 8.2 1{e)
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
I/licio {III 11/ 2
Control
Filial 0111
¡ ¡
(a) Diagrama de bloques
Inicio
o
x_ <l+b
~ cili cili
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
(al Diagrama ASM parcial lb) Di seño s in ulli dadcs agruplldas lel Diseño con unidades agrupadas
88
(e) Grafo de compatibil idad tras (d) Particiones fmale s del gr:lfo
agrupar m(n. +. y -
FIGURA 8.24- Partición del grafo asociado al camino de datos para la SRA con R, = [a, t,. x, t,l,
R, = lb, t" y, t" t5 , t61, Y R, = [t,].
Ahora podemos utilizar el algoritmo de partición de grafos presentado en la
Figura 8. 16 para agrupar estos operadores en las unidades funcionales apropiadas.
Según este algoritmo, primero se intentan agrupar aquellos operadores que ti enen
una estructura de di seño similar, tal como la suma y la resta, los operadores min
y /1/ax, y el desplazamiento a izquierda y a derecha. En general , esta forma de
agrupación de operadores similares producirá una mayor reducción del costo. En
368 Principios de diseño digi tal
el caso del algoritmo para la SRA, por ejemplo, podríamos agrupar los operado-
res + y - en un único supernodo y después redibuj ar el grafo de compatibilidad
como muestra la Figura 8.24(b). A continuación , añadimos el operador min a este
supernodo puesto que de todos los nodos del grafo es el que tiene mayor número
de fuente s comunes (dos) y destinos com unes (uno). La nueva disposición del
grafo de compatibi lidad se muestra en la Figura 8.24(c). Fina lmente, añadimos a
este supernodo el operador valor absoluto de la variable a Así se llega a la parti-
ción del grafo de la Figura 8.24(d), que no se puede reducir más.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
JI/ido /n. /"'!
Control
Filial 0111
¡"icio
o
Como puede verse a partir de esta partición del grafo, se podría construir un
camino de datos para el algoritmo de la SRA util izando tres registros y cuatro uni -
dade, funcionales. La asignación final de variables y operadores a reg istros y uni-
dades funciona les se da en la Figura 8.25(a), y el esquema del camino de datos se
muestra en la Figura 8.25(b). Obsérvese que este diseño del camino de datos sólo
neces ita siete entradas a selectores, en comparación con las nueve entradas a
selectores necesarias en la, soluciones de diseño previas, que no tenían en cuenta
las prioridades de agrupación.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Inicio In l In'!.
Control
Final Om
l l
(a) Diagrama de bloques
I Selector Selector
I I 11
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
I N, I I R, I I R, I
I
I I
I I
Selector I
I I »
I
1 II
II
»)
"7 I [Clh,\YmlÍ.I'1
I [ab.l'l mtll/+/- ] 1
I L
(bl Esqu\!lll:J del camino de dato"
La técnica para agrupar conexiones es similar a las técnicas que hemos utili-
zado para agrupar variables y operadores. En primer lugar, se crea una tabla de
uso de conexiones que indica los estados en los que se utiliza cada conexión.
Después se obtiene un grafo de compatibilidad a partir de esta tabla de uso, en el
que cada conexión se representa mediante un nodo y dos nodos pueden estar
conectados mediante un arco prioritario o un arco de incompatibilidad. Como el
mismo nombre indica, dos nodos están conectados mediante un arco de incompa-
tibilidad cuando sus correspondientes conexiones no parten de la misma fuente
pero deben usarse al mismo tiempo. A la inversa, los nodos están conectados por
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
arcos prioritarios siempre que sus correspondientes conexiones tengan una fuen-
te común o un destino común. Una vez construido este grafo de compatibilidad,
se usa un algoritmo de partición de grafos para agrupar las conexiones de forma
que se maximice el número de arcos prioritarios incluidos en los grupos.
En la Figura 8.26 se muestra como se agrupan las conexiones en el camino de
datos para la SRA presentada anteriormente, que se repite y aclara en la Figura
8.26(a). A partir de este diagrama y del diagrama ASM de la Figura 8.9, se cons-
truye la tabla de uso de conexiones, mostrada en la Figura 8.26(b). En esta tabla,
se ha utilizado una x para designar los estados en los que se usa cada conexión.
Obsérvese que esta tabla contiene tanto las entradas de las conexiones, que comu-
nican las salidas de los registros con las entradas a las unidades funcionales, como
las salidas, que comunican las salidas de las unidades funcionales con las entra-
das a los registros apropiados. Para simplificar la tarea de partición, resulta útil
separar estos dos tipos de conexiones y realizar independientemente la partición
de cada tipo. Separando estos dos tipos de conexiones, se definen buses distintos
para la entrada y la salida, lo que simplifica la arquitectura del camino de datos.
Una vez terminada la construcción de la tabla de uso, podemos transformarla en
los correspondientes grafos de compatibilidad asignando un nodo a cada conexión
y añadiendo los arcos apropiados entre los nodos. Los grafos de compatibilidad
para los buses de entrada y salida se muestran en la Figura 8.26(c) y (d).
Obsérvese que también existen arcos de incompatibilidad entre todos aquellos
nodos que no están eléctricamente conectados pero que se utilizan al mismo tiem-
po. En la Figura 8.26(c), por ejemplo, la conexión B es incompatible con la C y
la D, la F es incompatible con la C, la D, y la E, y la G es incompatible con la H.
Además hemos añadido los arcos prioritarios para aquellas conexiones que tienen
la mi sma fu ente o destino, indicando, por ejemplo, que las conexiones A, C, D, Y
H se originan todas en el mismo registro R \' Yque las conexiones B, F, Y G se ori-
ginan todas en el registro Ro. Los nodos D y E del grafo también se han conecta-
do con un arco prioritario porque tienen el mismo destino (la entrada izquierda a
la unidad funcional AU2l.
En la Figura 8.26(d) se determinan los arcos de prioridad para las conexiones
de salida procediendo de igual forma. En este momento, una vez se han determi-
nado todos los arcos prioritarios y de incompatibilidad, podemos realizar la parti-
ción de las conexiones intentado cortar todos los arcos de incompatibilidad en
tanto que se corta el menor número de arcos de prioridad posible. Como muestra
la Figura 8.26(e), se puede conseguir el número más reducido de particiones agru-
372 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
M N
I
I Selector I Selector I
I I 11
I R, I I N. I I N, I
1
1
I
DI E
FI GI I11
A BI e Se leclor I 1 »1 11 » .1 1
p
A
B
So 51 $2 53 54 Ss Ss
x x
Sr
x Ó (0
e x x x
D x x
E x
F x x x x
G x
H x
I x x x
J x x x x
K x (e) Ora ro de compat ibilidad par;¡ (d) Grafo de wmpatibili d:lll p,lr,j
L x los bu ses de e ntrada los I m s c~ de <;alid.l
M x
N x
III ~
I
I R, I I R,
I I 11 , I
Bus. ~ ~
Bus. I I
I 1(/1'.l'/mll.\1 I I 1/111.1'/11/11//+1- 1
I
~
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
» 3
BII ~ I : Itl. C. 1) . ¡:. I-!!
BII'l = 11-1. l'. I;¡
"
,
Bu .. ~: 1./. l .. NI
0111
In Organi¡;¡¡ción del camino de datos ~eg ún " U eStructura de buses
estados indica el flan co de subida de la señal de reloj que carga los datos en los
regi stros. Un tri áng ulo blanco apuntando a la línea divi soria signifi ca que se va a
cargar un nuevo dato e n el registro correspondiente en ese flan co ele subida elel
reloj. Tambi én se ha dibujado un triángul o negro desde la línea divi soria para
indicar el estado e n el que se usará el dato.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
(a) Asignación de registros
tl l ,
,
53 5,
/1/ ,
R,
11, L 11,
J
Bus, \7
Bu s~
1 I ,7
I lobs/má.\ 1
I I IlIb.vmíl// +/ · '
I
I »' I I » 1 I
Bus] ~7 I ~
Bus '\7
0//1
(d) E:.qucm ~ del cami no de <.blll.'.
¡ ¡
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
(o) Diagrama de bloques
I/l icio
o
A parti r de este esquema también puede verse que agrupando los registros R 1
Y R3> ha sido posible reducir el número de adaptadores de bus en el camino de
376 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
8.9. ENCADENAMIENTO Y MULTICICLO
En la Sección 8.8 presentamos técnicas para la síntesis del camino de datos basa-
das en un modelo sencillo del mismo. Por ejemplo, en los caminos de datos con-
siderados, los registros se conectaban ti las unidades funcionales mediante uno o
más buses, y las unidades funciona les a su vez se conectaban mediante uno o más
buses a los registros. En algunos casos se utilizaron selectores cuando un registro
o una unidad funcional recibía datos de más de un bus. En este tipo de camino de
datos, los registros reciben una señal de reloj cuyo ciclo es igual al mayor retardo
registro-registro. Puesto que el camino con mayor retardo registro-registro pasa a
través de la unidad funcional más lenta, las otras unidades funcionales sólo están
ocupadas durante una parte del ciclo de reloj. permaneciendo inactivas el resto del
ciclo. No obstante, si el retardo total de dos cualesquiera de estas unidades es
menor que el ciclo de reloj , es posible conectarlas en serie y realizar dos opera-
ciones en un sólo ciclo de reloj . Este mismo principio se puede extender a más de
dos unidades 'funcionales si el camino de datos tiene ciclos de reloj más largos.
Esta técnica de conectar unidades en serie recibe el nombre de encadenamiento
(chainil/g), puesto que dos o más unidades se conectan sin introducir reg istros
entre ellas. Creando así una unidad combinacional mayor que puede calcular asig-
naciones que implican a dos o más operaciones. Siempre que se utilice esta téc-
nica, una sentencia de asignación de variables en el diagrama ASM tendrá dos o
más operadores en su término derecho .
Para mostrar la técnica de encadenamiento utilizamos el diagrama ASM de a
Figura 8.28(a), que corresponde al algoritmo para la SRA. Obsérvese que este dia-
grama ha sido modificado con respecto al diagrama de la Figura 8.9, puesto que
se han fundido dos estados (S2 y s3) en uno . ólo (s2)' Como puede verse, esto sig-
nifica que en el estado s2 de la Figura 8.28(a) se ejecutarán tres sentencias de asig-
nación : la primera de ellas usa una operación binaria (máximo), mientras que las
otras dos sentencias usan dos operaciones cada una. Más concretamente. el nuevo
valor asignado a'3 se obtiene tras calcular el máximo de'l y'2 Y después despla-
zar el resultado tres posiciones a la derecha. Igualmente. el nuevo valor de 1.) se
'1 '2
obtendrá tras calcular el mínimo de y Y después desplazar el resultado una
posición a la derecha. Puesto que desplazar a la derecha una o tres posiciones no
produce ningún retardo como se mostró en las Figuras 8.11 (t) y (g). el ciclo de
DiseIio al ni vel de transferencias enlre regislros 377
reloj para este camino de datos encadenado no se rá mayor que el ciclo de reloj ori-
ginal. Por otra parte. puesto que este diagrama ASM só lo tiene siete estados en
lugar de los ocho del diagrama ori ginal, podemos conclui r que este camino de
datos modificado puede rea lizar el algoritmo para la SRA un 12.5 % más rápido.
El esquema del nuevo camino de datos con las unidades encadenadas se muestra
en la Figura 8.28(bl. Obsérvese que para almacenar concurrentcmente los tres
nuevos va lores de las variables x, t" y I~ que se generaron en el estado S2 no se ha
tenido que añadir ninguna conexión adicional desde el desplazador indicado con
» 1 al reg istro R3'
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
K r",[·r. /r· I.I. J
R1", !b. t:. l . t i' I... /,,!
R1: l/JI
(~ ) Asignación de registros
I
I ", I I ", I I R, I
Bu.~ r
Bus,
-& -&
'V
I I I
lah.vlI/(HI [(IIH/mr"J . / ) I
[2~ C >2]
BusJ ,'7
B us~
,\7
0111
fa) Diagrama ASM (b) Esque ma dd camino dl' t1il[ OS
Además del encadenamiento, que permite utili zar un idades más rápidas. algu-
nas veces puede que se desee utili zar unidades más lentas pero más baratas, que
precisan más de un ciclo de reloj para generar su s resultados. Esta técnica sc llama
multicido vnu/licycl in g), y las unidades más lentas utili llldas, unidades multici-
do. Por razones obvias estas unidades sólo pueden utili zarse en los cami nos no
críticos del diagra ma ASM . Por ejemplo, en el diagrama ASM de la Figura
8.28(a). a la variabl e 14 se le asigna el nuevo valor (lJIill(I I, /2))» / en el estado 52'
pero este lluevo va lor no se utili za hasta el estado 5~. En este caso. entonces. po-
dríamos utilizar una unidad que necesitase dos ciclos de reloj para calcular el
378 Principios de di seño di gital
valor mínimo. y encade nar esta unidad con un desplazador a la derecha que no
consuma tiempo para generar su resultado.
Esta organizac ión de multicicl o se muestra en la Figura 8.29. Como puede
ve rse en la Fi gura 8.29(a). el di agrama ASM se ha mod ificado introduciendo cor-
chetes. que indican que el resultado sólo estará di sponible en algún estado
siguiente o que el cálcu lo de un a ex pres ión ya se ini ció en un o de los estados pre-
vios. Por ejemplo. la asignac ión de vari abl e [1 4J= (IIÚIl ( I !. I, ))» I indi ca que el
'4
nuevo va lor se as ignará a en uno de los estados siguientes. Igualmente. la expre-
sión ' 4 = [lIlill ('! ,' , )) » !J indica que el nuevo valor se asigna a 1.1 en el estado
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
presente pero el cálculo de la ex pres ión entre corchetes se ini ció en uno de los
estad os prev ios. Como se ilustra en la Figura 8.29(c). un di agrama AS M de este
ti po se traduce de manera sencill a en un camino de datos con unidades multiciclo.
Obsérvese q ue se ha tenido que introduci r un estado ad ic ional puesto que la asig-
'4
nac ión = lIl ill(' !,' , )) » I neces ita dos estados durante los cual es Bus! y Bus,
se uti lizan para proporcionar los operandos I! y 12, lo que a su vez retrasa la eje-
cución de la asignac ión 's = x - 1, al estado SS'
I
I
R, I I ., I I R• I
Bus! ~ .&
Bus, \7 1 1 ~
I IfllJ.\/l/lIíx l I I 10/1.\1+/-1
I
Queda por tanto probado que las prestaciones del camino de datos pueden mejo-
rarse mediante el encadenamiento de unidades funcionales y que se puede reducir
el costo del camino de datos utilizando unidades multiciclo. Como es de esperar, las
técnicas descritas anteriormente para la asociación de variables, de operadores, y de
conexiones se pueden ampliar incluyendo encadenamiento y unidades multiciclo.
No obstante. por razones de brevedad, en este libro se omite su discusión.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
En secciones anteriores se han presentado diversas técnicas para reducir el costo
del camino de datos, principalmente mediante la reducción del número de regi s-
tros, unidades funcionales, y conexiones. En esta sección la atención se centra en
la presentación de técnicas que incrementan las prestaciones del camino de datos .
La técnica más efectiva para la mejora de las prestaciones es la segmentación
(pipelining ). Un camino de datos segmentado es similar a una línea de montaje de
una fábrica donde un producto se desplaza de etapa a etapa. En otras palabras. en
cada etapa se aplica la misma operación a cada producto, pero cada etapa lleva a
cabo una tarea distinta dentro del proceso de ensamblado del producto, lo que ace-
lera significativamente la fabricación del mismo.
La técnica de segmentación puede aplicarse a unidades funcionales . caminos de
datos, o unidades de control. En el caso de unidades funcionales . se divide la unidad
funcional en dos o más etapas, cada una separada por biestables para que pueda ope-
rar sobre un conjunto de operandos distinto. Por tanto, en cualquier momento exis-
ten varios conjuntos de operandos dentro de la unidad segmentada (concretamente,
el número de conjuntos en la unidad es igual a su número de etapas). El uso de uni-
dades funcionales segmentadas no afecta al tiempo necesario para generar el resulta-
do correspondiente al primer conjunto de operandos, que es el mismo que el tiempo
en una unidad no segmentada. Sin embargo, el resultado correspondiente a cada con-
junto de operandos adicional estará disponible en un tiempo igua! a! retardo de una
única etapa. Por ejemplo, para una unidad segmentada con dos etapas, cuyo retardo
cuando no e tá segmentada es de 100 ns, el resultado del primer conjunto de ope-
randos también se genera después de 100 ns, pero el del segundo conjunto de ope-
randos estará disponible sólo 50 ns después. y lo mismo sucede para todos lo con-
juntos de operandos siguientes. En general, si hay 11 etapas en la unidad segmentada,
se puede reducir el tiempo necesario para generM resultados a I/n veces el tiempo de
ejecución sin segmentación, con la excepción del primer resultado.
Como ejemplo de unidad segmentada, se considera la unidad aritmética (A U,
de Arit/¡metic Ullit) de dos es tapas que se muestra en la Figura 8.30, obtenida
insertando tres biestables para los datos y un biestable para las señales de control
entre los puertos de entrada y salida de la AU no segmentada de la Figura 8.20(d).
Podríamos haber insertado biestables dentro de la AU , en lugar de entre la AU y
los selectores, para dividir el camino crítico en dos partes iguales. Si estos biesta-
bles estuvieran exactamente en mitad de l camino de retardo crítico, cada es tupa
necesitaría sólo la mitad de tiempo que la unidad no segmentada para generar sus
380 Principios de diseño digital
resultados. ASÍ, la unidad segmentada puede operar con un ciclo de reloj aproxi-
madamente igual a la mitad del ciclo de reloj de la unidad no segmentada. Como
se indicó anteriormente, todavía se necesitarán dos ciclos de reloj (o estados) para
que la unidad segmentada proporcione un resultado; en el primer ciclo de reloj, el
resultado parcial se almacena en los biestables; en el segundo ciclo de reloj. se
genera el resultado final en la segunda etapa de la unidad segmentada. mi entras
que la primera etapa está generando resultados parciales para el siguiente conjun-
to de operandos, y así suces ivamente para cada conjunto de operandos.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
11 b
e, ~===::P¡---J=;l
'" ,
('(1
Bi estables
/' "'"-
Bit de sIgno
Para comparar los resultados de las unidades con y sin segmentación. se con-
sidera el camino de datos para la SRA con una única AU no segmentada que ca l-
cule el valor absoluto, el mínimo, el máximo, la suma, y la resta. Este camino de
datos y su correspondiente diagrama ASM se muestran en la Figura 8.3 1. ,_
Obsérvese que este camino de datos preci sa 9 estados, ó 9 ciclos de reloj , para cal-
cular la aproximación de la raíz cuadrada. Por otro lado, podríamos red isei\ar el
camino de datos de la Figura 8.3l(b), sustituyendo su AU no segmentada con una
AU segmentada de dos etapas, como muestra la Figura 8.32(a). Este nuevo cami-
no de datas precisa 13 estados o ciclos de reloj para calcular la aproximación de
la raíz cuadrada, como muestra el diagrama de tiempos de la Figura 8.32(b).
En ese diagrama de tiempos, la carga y la lectura de cada regi stro y la opera-
ción de cada unidad funcional se muestran estado a estado. El diagrama de tiem-
pos tiene una fila por cada acceso de lectura o de escritura a un registro y tambi én
una fila por cada etapa de la AU y de las unidades de desplazamiento. Cada
columna representa un estado de la unidad de control. Como puede verse, en el
estado So el camino de datos lee los valores de las variables (1 y b de los puertos
de entrada y los almacena en los registros R I y R2 . A continuación, en el estado
SI' se lee el valor de la variable a del regi stro R I Y se calcula parcialmente el valor
absoluto de a. Este resultado parcia] se almacena a continuación en los biestables
que hay entre las dos etapas de la AU segmentada. Después, en el estado .1"2' el
Di seño al nivel de transferencias entre registros 381
camino de datos termina el cálcu lo de lal y asigna su valor a la variable ' 1, que
está almacenada en el registro R 1, Al mismo tiempo, en el estado .\'2 el cam ino de
datos tambié n comienza el cálcu lo de Ibl, almacenando el resultado parcial de este
cálculo e n los biestables de la unidad segmentada, Así, en el estado '\'7 las dos eta-
pas de la AU segmentada están activas , aunque procesando operandos diferentes,
En el estado", el camino de datos termina de calcu lar Ib l y asigna el res ultado a
la variab le 17 almacenada en el regi stro R" Obsérvese que en este momento el
camino de dlltos todav ía no puede inici ar la siguiente operac ión puesto que nece-
sita el valor de 17 , q ue todavía no se ha cargado en el reg istro R" Por tanto, en s,
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
no se ini cia ninguna operación, De forma si mil ar, el camino de -datos empieza lá
ejecución de las operaciones de máximo, mínimo, y resta en los estados 054 , Ss' y
Se" Y comp leta estas operaciones, junto con los desplazami entos, en los estados ,\'s'
.1'6' y ,\'7' La suma no puede iniciarse hasta el estado .1'8 porq ue de be espe rar a que
'5
el valor as ignado a esté di sponible, Igualmente, el cá lculo del máximo comien-
za en el estado SJO pero no tennina hasta el estado Sw Po r último, el camino de
datos utiliza el estado s 12 para proporci onar el resultado,
s,
1= 111111'11 1"1 1
I I
I R, I I R, I I R, I
BU S1 ~ ~
SU'l '\7 I ~
\ Al j
~~
Bus1
Bu~~ ~
~
7 '7 ~
'7
FIGURA 8,31 Camino de datos para la SRA con una única unidad aritmética (AU),
382 Principios de discfio digital
/1/ 1 /Ir,
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
I I
I R, I I R, I
Bus 1 ~
Bus2 \7 I ~
v
\ I AU de 2 t!tapa.~
I ».1 I I », I
-&
Bus~ ~7
0111
(a) Camino de dato~ con AU segmentada
So 5, 52 S, S. S, S. S, S. S, 5 10 S" 5, 2
Leer R, " 1, 1, x X 1,
Leer R} b 1, 1, 1] 15 1"
Leer R; 1,
Etapa 1 de AV 1,,1 Ibl máx mín - + mlÍx
Etapa 2 de AV 1,,1 Ibl máx mín - + máx
Unidades de
desplazamiento »3 » 1
Escribir en R[
Escribir en R, "b 1,
1,
X
t, 1, 1"
1,
Escribir en R; 14
Out 1,
embargo, en el caso de un camino de datos que realice el mismo cálculo con con-
juntos de operandos distintos, estas prestaciones se pueden mejorar aún más
mediante la segmentación de todo el diagrama ASM . Para ello se di vide e l dia-
grama ASM en una serie de partes del mi smo tamaño y luego se utilizan estados
di stintos del cam ino de datos para ejecutar cada una de esas partes. Con este dise-
ño , todas las etapas podrían trabajar simultáneamente con conjuntos de operandos
distintos, generando cada una un resultado parcial que puede ser utili zado por la
siguiente etapa.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
(/ - /1/ 1
IJO-' /11 , I I
I R, I I M, I
S, I
1I - I¡,¡I 8us] ~
s~ I Bus1 '\7 I
1, _ Ibl I I
S,
I
I~- m (/lrr I, l ~¡» I
AU ,
S, I I ».1 I I »1 I
\= /1IIi.\(11· 12) Bus) , 'n '7 ,'7 , '7 8us..¡
1 , =III,Ü(l l· I~»>3
, '7
s,
I,_x
I I R, I I R, I I R, I
~ ~
"
Bus5
s" I ,'7 I Busó
s, I
1, = mcl\rl(,.xJ h t,. I AU ,
Fil/(// I
& Bus7
0111=1 7
0 111
I par n par(n+1)
So s, s, S3 s. Ss S6 S, S. s"
Leer R, ti 1, 1,
Leer R, b 1, 1,
Etapa i de AV Itll Ibl mín máx ETAPA 1
Unidades de
tle-splazamiento » 1 »3
Escribir en R, ti 1,
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Escribir en R2 b 1,
Leer RJ 1] 1, 16 1,
Leer R. x x
Leer R, l.
Etapa 2 de AV - + máx ETAPA 1
Escribir en R3 13 1, 16 1,
Escribir en R4 x
Escribir en R, l.
par 11
fd) Di agram:1de II!:mpos
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Si combinamos este camino de datos segmentado con las unidades fun ciona-
les segmentadas, aún se podrían mej orar más las prestaciones . Por ejempl o. se
pueden utilizar AU segmentadas con dos etapas en el camino de datos que se
acaba de desarroll ar, obteniéndose el camino de datos correspondi ente al diagra-
ma de tiempos de la Fi gura 8.34 . En este diagrama se indi ca que cada etapa de
este nuevo camino de datos segmentado necesitaría siete estados para calcul ar su
resultado: sin embargo. puesto que cada estado de este diagrama es sólo la mitad
de largo que los estados de la Figura 8.33, nuestro nuevo camino de datos calcu-
lará la SRA en (7/2)11+ (7/2)=3,511+ 3,5 ciclos de reloj en lugar de en los 511 +4
ciclos de rel oj q ue se necesitan si no se utilizan unidades fun cionales segmenta-
das. En otras pal abras, al segmentar el camino de datos en dos etapas y uti lizar
unidades funcionales segmentadas con dos etapas en cada una de dichas etapas.
reducimos el tiempo de ejecución del camino de datos a aprox imadamente un ter-
cio del tiempo original, mejorando las prestac iones en un factor de 3.
Leer RI a ,I
'1
Leer R.,
Etapa f de AV I 101
b
Ibl
'míll2 máx
'2
Etapa 2 de A VI lal Ibl m(" ",tí.\"
Unidades de
desplazamiento » 1 »3
Escribir en R I a ,I
Escribir en R,., b 1
2
Lee r R3 '6
Lee r R, "x " x "
Leer R, ,,
ElUpa I de AV - + lIuix
Etapa 2 de AV - + máx
Escribir en R,
Escribir en R4 "x ', '. " "x
Escribir en Rs
Out " "
"
FIGURA 8.34 Diagrama de tiempos para el camino de datos segmentado con unidades fun-
cionales segmentadas.
386 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Sin embargo, es importante tener en cuenta que el mayor retardo registro-registro
se produce de registro de estado a registro de estado. Por supuesto, este retardo
variará según las señales de control dependan de las señales de estado o no. como
muestran las líneas de estado discontinuas de la Figura 8.35 (a). Si las señales de
estado se utilizan sólo para seleccionar el estado siguiente, el camino críti co va
desde la señal de reloj a la salida del registro de estado y luego a través de la lógi-
ca de salida, RF. v ALU, y vía la señal de estado a través de la lógica de estado
siguiente, de vuelta al registro de estado, incluyendo el tiempo de establecimien-
to (setup time) del registro de estado. Por otra parte, si algunas señales de estado
se utilizan para controlar una parte del camino de datos, el camino crítico es más
largo puesto que pasa dos veces a través del camino de datos: la primera vez para
determinar las señales de estado, y la segunda vez para realizar una operación con
valores almacenados en los registros del camino de datos. En este caso el camino
crítico va desde la señal de reloj a la salida del registro de estado y luego a través
de la lógica de salida. RF. ALU. lógica de salida de nuevo, RF o memoria. mul-
tiplicadotldivisor. y vuelta al registro o RF, incluyendo el tiempo de estableci-
miento del registro o RF.
En cualquier caso, el camino crítico a través de la unidad de control determi-
na la longitud del ciclo de reloj (periodo de reloj ). Consecuentemente. si se quie-
ren mejorar las prestaciones reduciendo el ciclo de reloj , tendría sentido dividir el
camino crítico en trozos e insertar registros entre ellos. En la Figura 8.35(b). por
ejemplo, se insertan registros en tres lugares diferentes. Primero, se introduce un
registro de estado entre el camino de datos y la unidad de control para que todas
las señales de estado que salgan del camino de datos se guarden en el registro, que
tiene un biestable por cada señal de estado. En segundo lugar, se inserta un regis-
tro de control entre la unidad de control y el camino de datos para que todas las
señales de control generadas por la lógica de salida se guarden en ese registro,
que tiene un biestable por cada señal de control. Finalmente, se segmenta el cami-
no de datos mismo insertando biestables de segmentación (pipelin e haches)
entre las unidades de almacenamiento (registros , RF, y memoria) y las unidades
funcionales (ALU, multiplicador/divisor), como se muestra en la Figura 8.35(b) y
se explicó en la Sección 8.11.
En general. cuando se pretende utilizar unidad de control y camino de datos
segmentados en las implementaciones de una FSMD, hay que construir los dia-
gramas ASM de forma que reflejen las decisiones relativas a la segmentación.
Para ilustrarlo, considérese el diagrama ASM de la Figura 8.36(a), que en su
Di seño al nive l de transfe rencias entre regi stros 387
forma original tiene tres estados. En el primer estado. S I ' se comprueba si " > b.
Y se pasa a 53 si la desigualdad es cierta o a s 2 si no lo es. En el estado " 2 se reali-
za la asignación x = e * d, Y en el estado S 3 la asignación v = x - l. En este dia-
grama ASM no se asume la posibilidad de una impl ementación segmentada.
Sei'i alcs
de control
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Bus?
[ "w u
,k ¡·,'.Idl) R ~¡!I , IT(' l.O)!".'
'lgU ICllh: ,k t,I,IlI.. d,' , ..11.1.1
Señales
de eswdo
t
•
,- Sci'i aJes
--+ 1- - -
de e antrol
.... 1-
. 1-
Bus
L,1 ~"",
,tt ,-".,<1,) Rcg" m, L"g " u
" gllJ c" le dt" c'I.ld" ,k,. .. ¡" b
t Se nalcs
'
I de estado
Unidad de control
L-l'-'-...J Camino de datos
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
ciclos de reloj para cargar los registros de estado antes de la ramificación según
la señal de estado.
Ja ) Diagrnmu ASM (b) Diagr:lI11 l1 AS M pam (e) Diagrama AS M para Id) Diagramu ASivl para
la unidad de ('ontrol la unidad de control la unidad de C'ü lll ro!
.)cgmcllIada con registro :\CgmcllIada con I'cgbtro y camino de tJ:¡ to"
de c-~t ml o de C~lado y control "cglll~'lU adu"
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
un diseño específico que consta de un camino de datos y una unidad de control.
En general, la síntesis de estos diagramas ASM está basada en el modelo de la
FSMD, que explícitamente especifica los estados, las transiciones de estado, y las
as ignac iones de variables a realizar en cada estado. Desgraciadamente, los di se-
ño, normalmente están basados en algoritmos que no se especifican mediante dia-
gramas ASM sino que se describen mediante algún lenguaje de programación o
se representan mediante un diagrama de flujo . Ninguna de estas formas contem-
pla el concepto de estado, aunque proporcionan el orden en el que deben reali-
zarse las asignaciones de variables . Por tanto, la principal diferencia entre los len-
guajes de programación o los diagramas de fluj o y los diagramas ASM es que los
primeros no especifican los estados, ni asocian las asignaciones de variables a los
estados particulares en los que se producen.
Para transformar un algoritmo ordinario o un diagrama de flujo en un diagra-
ma ASM habría que dividir su tiempo de ejecución en una serie de intervalos de
tiempo llamados estados y asociar cada operación de asignación de variables a un
estado particular. En otras pal abras, hay que planificar (schedllle) el acceso y las
operaciones con las variables distribuyéndolas entre los estados , bajo ciertas res-
tricciones de recursos o de tiempo. En esta sección consideran ambos tipos de pla-
nificación, la planificación con restricciones de recursos (RC, resolll'ce-COIISlrai-
lI ed sclzeduling) y la planificación con restricciones de tiempo (TC, lime- colIs-
lrailled sclled/llillg). proporcionándose un algoritmo de planificación para cada
tipo.
Para reali zar la planificación, primeramente hay que convertir un programa o
un diagrama de flujo en un grafo de controVl1ujo de datos (CDFG, cOII/rolldala-
fla", grapll). que muestra explícitamente las dependencias de control entre las
sentencias y las dependencias de datos entre los valores de las variables . En otras
palabras, un CDFG contiene la estructura de control de un diagrama de flujo pero
además debe representar las asignaciones de variables como grafos de flujo de
datos, en los que cada nodo con'esponde a un operador mientras que cada arco
entre dos nodos representa el resultado que es generado por el primer operador y
es utilizado depués como operando por el segundo operador.
Puesto que un diagrama de flujo es una estructura recursiva de conexiones
serie-paralelo entre cajas de asignación y cajas de decisión, un CDFG se diferen-
cia de un diagrama de flujo sólo en la representación de una caja de asignación:
mientras que una caja de asignación en un diagrama de flujo contiene una secuen-
cia de sentencias de asignación, el CDFG representa la misma sec uencia medi an-
390 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
t i =- 1(/1
12 = lbl
x=mch(I I, /~)
J= míll (t l, / ~J
'3=x»J
14 =.\'» I
' 5= .r-/3
It, ='ol + l ~
17=1116.\"(1&-,")
F;m¡/ = J
0111=17
En primer lugar, los algoritmos ASAP y ALAP suponen que cada operación
necesita exactamente un ciclo de reloj para ejecutarse, y en segundo lugar, que se
dispone de un número ilimitado de unidades funcionales o recursos para cada una
de las operaciones a reali zar en cada estado. Debido a la anterior asunción pode-
mos considerar ambos algoritmos como restringidos únicamente por las depen-
dencias de datos. Dentro de este contexto, el algoritmo ASAP planifica cada ope-
ración asociándola al primer estado en el que todos los operandos estén disponi-
bles. En otras palabras, se explora el grafo de controllflujo de datos desde su ini-
cio hasta su final y se asignan a cada estado todos los nodos del grafo cuyos nodos
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
predecesores, o padres, hayan sido ya asignados a estados previos. Así, el algorit-
mo ASAP proporciona una planificación con el mínimo número de estados o, en
otras palabras, el tiempo de ejecución más corto.
A diferencia de la aproximación ASAP. el algoritmo ALAP planifica cada
operación asignándola al último estado posible antes de que su resultado sea nece-
sario, en el caso de que se haya especificado una longitud máxima (en términos
de número de estados) como restricción para la planificación obtenida finalmen-
te. En otras palabras. se explora el grafo de controllflujo de datos desde su final
hasta su inicio y se asignan a cada estado todos los nodos cuyos nodos sucesores,
o hijos, han sido ya asignados a estados posteri ores. Si la longitud de la planifi-
cac ión obtenida es igual al número de estados obtenido por el algoritmo ASAP, el
algoritmo ALAP planifica todas las operaciones del camino más largo, o camino
crítico, del grafo de flujo de datos a los mismos estados que el algoritmo ASAP.
Las operaciones que no están en el camino crítico se ejecutan antes de ser nece-
sarias en el algoritmo ASAP y después de ser posible su ejecución en la planifi-
cación ALAP.
En I~ Figura 8.38 las planificaciones ASAP y ALAP se aplican a la mayor de
las dos cajas de asignación de la Figura 8.37. Se ha considerado sólo una caja por
simplicidad. Las dos planificaciones de la Figura 8.38 requieren siete estados.
Además se comprueba que todas las operaciones excepto min y »1 están en el
camino crítico. Estas dos operaciones se asignan tan pronto como sea posible
(estados $2 y s3) en la planificación ASAP y tan tarde como sea posible (estados
s] y s.¡) en la planifi cac ión ALAP.
El hecho de que los algoritmos de planificación ASAP y ALAP asignen las
operaciones del camino crítico a los mi smos estados puede utilizarse para separar
las operaciones críticas de las no críticas en los algoritmos de planificación gene-
rales. La prioridad se da siempre a aquellas operaciones que se encuentran en el
camino crítico, puesto que relardar una de estas operaciones en un estado puede
aumentar la planificación en un estado e incrementar el tiempo de ejecución. Por
otra parte. la menor prioridad se confiere a las operaciones que no están en el
camino crítico puesto que se dispone de mayor tlexibilidad para su planificación
en estados diferentes y pueden retardarse sin afectar al tiempo de ejecuci ón del
CDFG.
La prioridad de una operación en el proceso de planificación puede medirse
mediante diferentes métricas. Una de estas métricas es la movilidad de la opera-
ción, que es igual a la distancia en número de estados entre los estados asignados
392 Principios de diseño digital
a b a b
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Out Out
ser asignadas en el futuro . Hay otras medidas de prioridad además de éstas. pero
ninguna de ellas resulta adecuada en todo. los casos. En teoría. podríamos uti li-
zar cualquier número de métri cas de pri oridad en cualquier orden.
Planificación ASAP
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Plól nilic;:lf.:ión ALAP
~
Dclcmtinar
rnovil ldadc:<t.
~
Crear lisIas
de preparadas
.~
Ordenar lisias de
preparadas scglin
movilidades
~
Plan ificar las
operaciones segú n lu
lisIa de preparadas
~
BOJlJf las operaciones
planificadas de la lisia
de preparadas
+
Añadi r nuevas
operaciones a la lisia
de preparadas
~
Incrementar el índice
de estado
!
no
¿Toe!:IS sí
las opemcioncs
~
asignadas?
Uno de los algoritmos más popu lares para la planificación Re es el algor it-
mo de pla nificación de lista (Iist-schedllling algorilhm) , que debe su nombre a
394 Principios de diseño digital
que utiliza una lista de las operaciones que están disponibles para ser asignadas
(lista de preparadas). En este algoritmo, las operaciones con la lista de preparadas
se ordenan según sus mov ilidades, de forma que las operaciones con movilidad
cero se sitúan al principio de la lista mientras que las operaciones con mayor
movilidad se sitúan al final. En los casos en los que dos operaciones tengan la
misma movilidad, se da mayor prioridad a la operación con menor valor de urgen-
cia. Si estos números también son iguales, se asigna la prioridad de forma aleato-
ria. Al aplicar este algoritmo de planificación de li sta se realizan los siguientes
pasos en cada estado : se as ignan, una a una, las operaciones con pri oridades más
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
altas de la li sta de preparadas a las unidades funcionales di sponibles, después se
borran de la li sta todas las operac iones asignadas, y se insertan en la lista, en las
posiciones que les correspondan según sus movilidades y urgencias. las nuevas
operaciones que pasan a estar dispon ibles para su planificación. Este algoritmo de
planificación de li sta se resume en la Figura 8.39.
El algoritmo de planificación de lista actuando sobre el grafo de fluj o de datos
de la caja de asignación de la Figura 8.37(b) asume que se di spone de una única
unidad aritmética, que puede calcular el valor absoluto. el mínimo, e l máx imo, la
suma, y la resta, y de dos unidades de desplazamiento más . En primer lugar. gene-
ramos las pl anificaciones ASAP y ALA P, como muestran las Figuras 8.40(a) y
(b). Después creamos una lista de preparadas para el primer estado como muestra
la Figura 8.40(c) y calculamos las mov ilidades para las operaciones de dicha lista.
En nuestro caso, sólo las operaci ones la l y Ibl están disponibles en el primer esta-
do. Puesto que estas operaciones tienen la mi sma movilidad [M( la l)=M( lbl )=OJ,
se ordenan aleatoriamente y se asigna la l en primer lugar. Puesto que la as ignación
de Icj no libera nuevas operaciones para la planificación no se cambia la li sta de
preparadas en este momento. Por tanto, hay que as ignar Ibl al estado s" lo que per-
mite añadir los operadores lI1ax y mi/1 a la lista. Puesto que el operador lI1ax está
en el camino crítico. tienen una movi lidad M (max)=O, que le da una pri oridad
mayor con respecto al operador mil1 , que tiene una mov ilidad M(lI/il1)= l. Así, se
planificaría II/ax en el estado 53' que nos permite añadir »3 a la lista de opera-
ciones preparadas. Puesto que su movilidad es M (»3)=0, este operador debe
situarse al comienzo de la li sta. En este momento hay una AU y dos desplazado-
res di sponibles, por lo que se pueden planificar las dos operac iones. (»3) y II/i/l ,
en el estado 54' Después actualizamos la li sta de preparadas añadiendo - y »1,
ya que ambos pueden planificarse en el estado SS' En este momento se puede asig-
nar + al estado 056 y max al estado 05 7 , y finalmente. proporcionar el resultado en el
estado ss' La planificación RC fin al se muestra en la Figura 8.40(d).
Como se ha visto, el objeti vo del algoritmo de planificación RC es asignar a
cada estado tantas operaciones como sea posible dado el número de unidades fun-
cionales disponibles. Cuando haya más operaciones di sponibles que unidades
funcionales debemos utili zar una medida de prioridad, tal como la movilidad o la
urgencia. En nuestro ejemplo se ha obtenido una planificación que req uiere un
estado más que las planificaciones ASAP y ALAP pero con un coste menor ya
que se utili za sólo una AU y dos desplazadores, mientras que las planificaciones
ALAP y ASAP precisan dos AU y dos desplazadores.
Di seño al nivel de transferencias entre regi stros 395
.', eo ®o
s,
®
"
e" e I
<8 e
" I
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Ss + o <0
" I
Plnlliticación ASAP
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Plan ifi cación ALAP
Dc!ll1 ir rangos
dI! llIovi I¡dades
Crear grafos
de dI stribucIón
de po s ibilid adc~
Asignar la operación
con ganancia m.íxi ma
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
",
s,
s,
s,
s,
s.
,1'. /IIrl,\'
'.
Oul
Como puede verse a partir de los grafos de distribución para las AU y las unida-
des de desplazamiento. la planificación de una operación en un estado concreto
incrementa la suma de probabilidades en ese estado y en consecuencia el número de
unidades necesarias, excepto en el estado s7' donde la suma de probabilidades es sólo
0.5. Por tanto. se asigna el operador lIlax al estado S7' lo que incrementa su suma de
probabilidades a 1.0. Por la misma razón. se asigna + al estado s6 y - al estado s5" En
este momento se tiene la opción de asignar lIlax o lIlin al estado S3' Sin embargo,
como puede verse, la asignación de lIlax hace disminuir la suma de probabilidades
del estado s? a 1.33, mientras que la de min haría decrecer la suma de probabilidades
a 1.5. Por elTo, se asigna max al estado s ] para reducir lo más posible su suma de pro-
babilidades. Una vez asignada max al estado S3' hay que asignar »3 al estado S4
puesto que »3 utiliza el resultado de la operación /1/ax corno entrada. En la Figura
8,43íb) pueden verse los grafos de distribución correspondientes a la planificación
398 Principios de diseño digital
parcial que se ha desarrollado hasta este punto del algoritmo. Utilizando el mismo
criterio de antes, se asigna la operación min al estado S4 y la operación » 1 al estado
ss' obteniéndose el grafo de distrib ución que muestra la Figura 8.43(c).
s, 1,0 s, 1.0
"'645 lal Ibl
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
S2 1,83 s2 1,33
,8
~
S3 ,"¡; ,83 ,83 s3 máx ¡; ," 1,33 ,33
- '"
A
~ »3 1
A
s. ,83 A ,8'3 s. ,33 1,33
A
,
S5 1,0 ,33 s5 ~
1.0 ,33
+
s6 1,0 s6 + 1,0
]
s7 ,5 s7 111m: 1,0
(a) Grafo de distribución de probabilidades inicial (b) Grafo de distribución de probabilidades después de
plani!lcar max, + y -
ESm
s,
s,
lIIIm
~
lal Ibl
alMlI
MIIIt1tI.I l'IIIIIIl.OOS
!SWXI
1,0
1,0
lIDIEi
11
LQWHIHJD
-alMlI
l'IIlWIJlIre1 ESm
s,
,
lIDIEi
ft1rAI
tM1
lal
Ibl
9.11.\11
!lWallW
ESIIlX1
1,0
1,0
lII!JIru
11
lllI'I!lIIINIQ
Slll\1!:
l'IWIlIIIJW
ESIIlX1
s5 ~ 1,0 »1 1,0 s5 ~
1,0 » 1 1,0
S6 + 1,0 S6 + 1,0
(e) Grafo de distribución de probabilidades después de (d) Grafo de distribución para la planificación fi nal
planificar máx. mío. +. -, »3 y » 1.
FIGURA 8,43 Grafo de distribución de probabilidades antes, durante, y después de la planrricación Te.
Diseño al nivel de transferencias entre registros 399
Como puede verse, tanto al intentar planificar lal como Ibl se incrementan la
suma de probabilidades de s I o s2' pero este incremento es sólo temporal, puesto
que cuando se hayan planificado ambas operaciones, la suma de probabilidades
en cada estado es 1.0 tanto para la AV como para la unidad de desplazamiento. Es
decir, se ha mostrado que el CDFG de la Figura 8.37(b) puede planificarse en 9
estados utilizando únicamente una AV y una unidad de desplazamiento, aunque
eventualmente se utilicen dos unidades de desplazamiento en lugar de una, por-
que su costo y retardo son iguales a cero.
Aunque en este caso el algoritmo TC proporciona la misma planificación que
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
el algoritmo RC, en casos más complejos estos dos algoritmos generalmente pro-
porcionan planificaciones diferentes. Como regla, se seleccionará el algoritmo
que mejor se ajuste al objetivo principal de nuestro diseño, utilizando la planifi-
cación RC si se han de satisfacer restricciones de costo y la planificación TC si
hay que satisfacer restricciones relativas a prestaciones.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Presenta los diagramas de máquina algorítmica de estados (ASM) y muestra los pasos
esenciales en el diseño de distintos tipos de FSMD.
DeMicheli , G. SYIl/h esis alld Optimization of Digi/al Circui/s. New York: McGraw-Hill ,
1994.
Presenta una buena revisión de los resultados en la planificación y en la sÍnlesis de des-
cripciones de comportamiento de ASIC.
Gaj ski, D. D. , N. Dutt, A. C-H. Wu, y S. Lin. High-Level Syn/hesis: /nlroduc/ion /0 Chip
alld Sys/em Design. Bastan: Kluwer Academic Publi shers. 1992.
Describe los modelos y algoritmos para la optimización y la planificación ASM. Para
su lectura se requieren conocimientos relativos a algoritmos y estlUcturas de datos.
8.16. PROBLEMAS
8.1. (Modelo FSMD) Determine el ciclo cuando Da/o ha sido leído del banco
de reloj mínimo (de flanco de subida de registros y ha pasado a través de la
a flanco de subida) para el modelo ALU y de la unidad de desplazamien-
FSMD de la Figura 8.2, cuando se to.
comporta como:
8.3. (Descripción FSMD) Obtenga (a) el
(a) Un FSMD basado en estados.
diagrama ASM y (b) la Tabla de esta-
(b) Un FSMD basado en entradas.
Pis/a: El ciclo de reloj mínimo es do-acción , para la solución del
igual al retardo registro-registro más Problema 8.2.
largo. Así, se necesita identificar el 8.4. (Diagramas ASM) Oblenga una des-
cam ino de la Figura 8.2 con mayor cripción con un diagrama ASM para
retardo. Normalmente se denomina un contador de decenas que tiene tre s
camino crítico. salidas que indican si la cuenta es
8.2. (Descripción FSMD) Reescriba la menor que cinco (L5), igual a cinco
descripción del contador de unos de la (E5 ), o mayor que cinco (G5) .
Figura 8.1 sin utilizar las variables 8.5. (Diagramas AS M) Oblenga un dia-
Másca ra y Telllp. Utilice el bit menos grama ASM para un conlador que
significativo de Dato para incremen- contará en módulo 4 si la señal rallgo
tar Cuenta/. La implementación debe es igual a O y en módulo 7 si es igual
utilizar el camino de datos de la
a l.
Figura 7.25.
Pis/a: El bit menos significativo está 8.6. (Diagramas ASM) Determine un dia-
disponible en e l bus de resultado grama ASM (a) basado en estados y
Diseño al nivel de transferencias entre registros 401
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
8.10. (Algoritmo de lado-izqu ierdo) Asigne
2. Aceptar una carta y sumar su
las variables tIa 1::; al minimo número
valor a Marcador.
de registros utilizando el algoritmo de
3. Sumar 10 más a Marcador si la
lado-izquierdo. Los tiempos de vida
carta es un as y borrar el indica-
se dan en la Figura P8.1 O.
dor flag de 11 puntos de as. Poner
a 1 el indicador fla g de 11 puntos.
4. Ir a :2 si Marcador es menor o
igual a 16.
1, X X X X
5. Ac ti var Sland e ir a I (e mpezar
12 X X X
una nueva partida) si Marcador
1, X X X X
es menor o igual a 2 1. X X
6. Re star lO a Marcador. borrar "
flag. e ir a 4 si flag estaba a 1. '5 X X X
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
de control segmentadas con registros
quiera tres operaciones.
de control y estado.
8.13. (Multiciclo) Obtenga un diagrama
8.18. (Diseño de la unidad de control) Para
ASM para el algoritmo de la SRA en
la versión basada en estados del con-
el que:
tador de unos de la Figura 8.9(a) dise-
(a) las operaciones mill, I1UU". y
ñe la unidad de control utilizando:
valor absoluto utili zan dos
(a) Un registro de estado y un deco-
ciclos de reloj .
dificador.
(b) max necesita dos ciclos de reloj.
(b) Un contador y un decodificador.
(e) mill necesita dos ciclos de reloj.
(e) Una unidad de control micropro-
8.14. (Unidades Funcionales Segmentadas) gramada (i ndique también el
Determine el diagrama ASM y el dia- contenido de la ROM).
grama de tiempos para el algoritmo 8.19. (Di seño de la unidad de cont rol)
de la SRA con dos unidades segmen-
Repita el problema 8. 18 para la ver-
tadas, en el que: sión basada en entradas del contador
(a) La unidad [abs/mill/ max] tiene de unos de la Figura 8.9(b).
dos etapas, y la unidad
[+/-/» V»3 ] tiene tres eta- 8.20. (Planificac ión) Obtenga la plani fica-
pas. ción (a) ASAP y (b) ALAP para el
(b) La unidad [mill/ max/> > 1] tiene cuerpo del bucle del problema 8.7.
dos etapas. y la unidad 8.21. (Planificación) Para el cuerpo del
[abs/+/- ] tiene dos etapas. bucle del Problema 8.7. obtenga una
(e) La unidad [abs/max/»Y-] tiene planificación TC con (al cuatro esta-
dos etapas, y la unidad dos, (b) cinco estados. y (e) seis esta-
[mill/ +/> > 1] tiene dos etapas. dos.
8.15. (Camino de Datos Segmentado)
8.22. (Pl anificación) Obtenga una plani fi-
Obtenga un camino de datos segmen-
cación RC para el cuerpo del bucle
tado dividiendo el algoritmo de la
del Problema 8.7 dados:
SRA en (a) tres, y (b) cuatro etapas.
(a) Tres multiplicadores y dos
Proporcione los diagramas de tiempo
sumadores/restadores.
para cada caso. ¿Cuál es la ganancia
(b) Dos multiplicadores y dos
en cuanto a prestaciones?
sumadores/restadores.
8.16. (Control segmentado) Utilizando el (e) Dos multiplicadores y un suma-
contador de unos descrito en el dia- dor/restador.
grama ASM de la Figura 8.6, obtenga !pista: Utilice un restador para com-
el diagrama de tiempos para un cami- parar los valores de dos vari ables).
e
L
o
El diseño
del procesador
© 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 Pucr1as lógicas
y biestables
Máquina de
6
1
estados fi nitos Lo 4 lo 6
Técnicas de Técnicas de
diseño lógico Lo. diseño digital
Sistema binario 2
y representación + t
de datos
5 7
Componentes Componentes de
combi nacionales almacenamiento
I I
Máq uinas de 8 Diseño de 8
estados finitos transferencia entre
generalizadas registros
I
9
Componentes
del procesador
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
las capacidades del procesador, y que deben realizarse en componentes especíti-
cos para ese tipo de operaciones.
Comparado con un procesador, un circuito de aplicación específica (ASIC,
Application.-Specific Integrated Circuit) puede realizar muy eficazmente una tarea
o un algoritmo determinado, pero no di spone de la programabilidad y generalidad
de un procesador. Junto con los procesadores y los ASIC, la mayoría de las com-
putadoras incluyen la memoria principal, que almacena los datos que necesitan
con mayor urgencia los procesadores y los ASIC. El resto de datos se almacena
en dispositivos de E/S tales como discos, CD ROM , o cintas, y se ll evan a la
memoria cuando son necesarios para el procesamiento en curso. Normalmente,
estos componentes de la computadora están conectados al sistema mediante un
bus, como muestra la Figura 9. 1.
Procesador
l
AS le
l
BT Bu s
l l l
MemOria Dispositivo Dispositi vo
princ ipal de E'JS de E/S
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Computer), así como el correspondiente procesador de repertorio reducido de ins-
trucciones (RISC, Reduced Instruction -Set Computer).
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
frecuentes son instrucciones con registros, que operan con valores almacenados
en registros, instrucciones de transferencia vnove instructions} que transtieren
datos entre la memoria y los registros, y las instrucciones de salto condicional
(brand, instructions), que seleccionan una de las dos posibles instrucciones a eje-
cutar a continuación de la actual en función del estado del camino de datos.
Las instrucciones con regi stros típicas, como la instrucción Add considerada
anteriormente, realizan operaciones aritméticas, lógicas, y de desplazamiento con
operandos almacenados en el banco de registros. Como ejemplos de instrucciones
de tran sferencia frecuentemente usadas están las instrucciones de carga Uoad) ,
tales como
Load R2A (RF[2] f- Mem[Aj)
que carga el dato almacenado en memoria, en la posición A , en el registro RF[2],
incluido en el banco de registros, y las instrucciones de almacenamiento (Hore)
como
Store A, R2 (Mem[A) « RF[2j)
que almacena el valor del registro RF[2] en la posición de memoria A.
Una instrucción de salto condicional típica compara los va lores de dos regis-
tros y decide qué hacer a continuación en base a dicha comparación. Por ejemplo,
una instrucción de saltar-si -i gual, Beq (de brallch-oll-equal), determina si los dos
valores son iguales y, si son iguales. decide ejecutar la instrucción situada en la
dirección de memoria especificada en el campo de dirección de la instrucción , o
bien, si no son iguales, ejecutar la siguiente instrucción de la secuenc ia. Así. la
instrucción
Beq R2,R3,A
indica que si los valores de RF[2] y RF[3] son iguales. el procesador ejecu tará la
instrucción situada en Mem[Aj.
Además de los campos de tipo , una instrucción puede incluir un campo de
modo que especificaría la forma de obtener la dirección efecti va de los datos a
partir de la información proporcionada por el campo de dirección. Por ejemplo, si
el campo de modo indica que la instrucción proporciona una dirección indirecta,
se tiene que el campo de dirección de la instrucción especifica una dirección de
memoria donde se encuentra la dirección real del operando. Considere. por ejem-
plo, la siguiente instrucción:
El diseño del procesador 409
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
indica que el procesador sumará 1 al valor del tercer registro del banco de regis-
tros y lo almacenará en el segundo reg istro. El campo de constante tambi én puede
utili zarse para espec ifi car un índice cuando se está accediendo a los elementos de
un array.
Al definir un repertorio de instrucciones, uno de los factores más importantes
a tener en cuenta es el número de campos de dirección que tendrán las instruc-
ciones. puesto que el número de campos de dirección afecta de manera importan-
te al tamaño de los programas y a las prestaciones del procesador. Es decir, cuan-
tos más campos de dirección tenga una instrucción, mayor será el tamaño de la '
instrucc iones pero los programas serán más cortos debido a que tendrán menos
instrucc iones. En cambi o. las instrucciones con menos campos de dirección son
más cortas pero se necesitan programas más largos para ejecutar una tarea deter-
min ada. Cuando se utilizan instrucciones más largas, el procesador realiza más
accesos a memoria por instrucción para captar las instrucc iones y los operandos.
Sin embargo, el número total de accesos a memoria puede no ser diferente en el
caso de instrucciones más cortas, puesto que el programa necesitaría más instruc-
ciones. Si el número total de accesos a memoria se usa sin más como una medida
de prestaciones, debemos diseñar el repe rtorio de instrucciones de manera que por
término medio los programas necesiten el mínimo número de accesos a memoria.
A continuación se muestran varias opciones con un ejemplo sencillo.
Considérense instrucciones con distintos tipos y número de direcciones para
el cálculo de la expresión e = al - b1 = (a + b) * (a. - b). En general, las instruc-
ciones con tres direcciones son las más potentes porque pueden ejecutar una asig-
nación completa a las variables que intervienen en una operación de dos operan-
dos. Concretamente, una instrucción con tres direcciones contendría las posi-
ciones de los dos operandos y la del resultado, ade más de especificar la operación
binaria a reali zar. Por ejemplo, el cálculo de (a + b) * (a - b) podría espec ificar-
. e mediante las siguientes tres hipotéticas instrucciones, en las que asumimos que
las variables a. b. e y un a variable temporal x est,ín almacenadas en memoria, en
las posiciones A. B. C. Y X respecti vamente:
1. Add X, A. B (M em[X] f--- Melll[A 1+ Melll[B])
2. Sub C. A. B (Mem[ el f--- Mem[A I - Melll[B])
3. Mili C. X. e (Mem[C] f--- MemlXl " M em[eJ)
El ejemplo anterior muestra un punto débil de las instrucciones con tres ope-
randos: aunque son muy convenientes. también son muy largas si se tienen en
410 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
nueve veces a memoria para captar las instrucciones y otras nueve más para acce-
der a los operandos y almacenar los resultados.
Una estrategia que puede mejorar las prestaciones del programa consiste en
reducir el número de direcciones de tres a dos, utilizando instrucciones con dos
direcciones que asumen que el primer operando y el resultado comparten las
misma posición de memoria. Por ejemplo, si utilizamos instrucciones con dos
direcciones, el programa para calcular e = (a + b) * (a - b) necesitaría cinco ins-
trucciones, como se indica a continuación:
l. Move X, A (Me1ll[X] f- Melll[AJ)
2. Add X, B (Mem[X] f- Mem[Xl + Me1ll[B])
3. Move C,A (Mem[C] f- MemlA])
4. Sub C.B (Me1ll[C] f- Mem[C] - Mem[BJ)
5. Mu¡ C,X (Mem[C] f- Mem[C] * Mem[X])
Asumiendo nuevamente que cada dirección necesita entre 24 y 28 bits, cada una
de la~ instrucciones de dos direcciones podría caber en sólo dos palabras de memo-
ria, en lugar de tres. Sin embargo, ahora necesitaríamos cinco instrucciones para cal-
cular el mismo resultado. Es decir, el procesador accedetía en este caso 10 veces a
memoria para captar las instrucciones, y otras 13 veces para obtener los operandos y
almacenar los resultados. Con esta situación, el programa anterior tendría un tiempo
de ejecución mayor que el del programa con instrucciones de tres direcciones. pues-
to que ahora se necesitan dos instrucciones Move extra para cargar los datos en las
posiciones adecuadas para su uso por las instrucciones con dos operandos siguientes.
No obstante, podríamos reducir el número de direcciones a una si se dedica un
registro específico del camino de datos para almacenar el resultado de cada ope-
ración así como uno de los operandos. Usualmente. ese registro recibe el nombre
de acumulador (ACC). Usando un acumulador en el ejemplo anterior se podría
calcular e = (a + b) * (a - b) mediante las siete instrucciones siguientes:
1. LoadA (ACC f - Mem[AJ)
2. AddB (ACC f - ACC + Melll[B])
3. Store X CMem[X] f - ACC)
4. Load A (ACC f - Mem[A])
5. SubB CACC f - ACC - Mem[B])
6. Mili X (ACC f - ACC * Mem[X])
7. Store C (Mem[C) f - ACCl
El diseño del procesador 411
Con las suposiciones anteriores, cada instrucción sólo necesitaría ahora una
palabra de memoria, lo que significa que el procesador accedería a memoria siete
veces para captar las instrucciones y otras siete más para acceder a los operandos
y almacenar los resultados. Según esto, este programa se ejecutaría en un tiempo
menor que cualquiera de los anteriores puesto que el acumulador permite guardar
los operandos y los resultados temporalmente para que el procesador no tenga que
acceder tanto a memoria.
Este concepto de almacenamiento temporal también puede ampliarse y apli-
carse a más de un registro, de manera que llegamos a una segunda estrategia para
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
mejorar las prestac iones de un programa: se puede incrementar el número de
registros del camino de datos introduciendo un banco de registros. Puesto que este
banco de registros contiene varios registros, tendríamos que incluir en las ins-
trucciones campos de direcc iones adicionales para estos registros . Entonces, para
ejecutar el programa anterior, se utilizan instrucciones con dos direcciones en las
que una de las direcciones especifica una posición particular dentro del banco de
registros. Si, por ejemplo. se usa un banco de registros (RF) con tres o más regis-
tros, se podría calcular e = (a + b) * (a - b) con la siguiente secuencia de ins-
trucciones de dos direcciones:
l. Load RI , A (RF[ 1] f- M em[A])
2. Load R2. B (RF[2] f- M em[B))
3. Load R3, RI (RF[3] f- RFll])
4. Add RI , R2 (RF[I] f- RF[I] + RF[2])
5. Sub R3, R2 (RF[3] f- RF[3] - RF[2])
6. MuIRI , R3 *
(RF[ 1] f- RF[ l]) RF[3])
7. Store e, RI (M em[C] f- RF[I ])
Como puede verse a partir de este programa, el procesador todavía tendría que
acceder siete veces a memoria para captar las instrucciones pero accedería sólo
tres veces para captar los operandos y almacenar el resultado. Puesto que el pro-
cesador tendría que cargar las variables {/ y b Y almacenar e en cualquier progra-
ma, estos tres accesos constituyen el número mínimo para el cálculo de
e = (a + b) * (a - b).
Una importante característica de este último programa es el hecho de que sólo
se necesitan instrucciones de carga (load) y almacenamiento (sto re) para acceder
a memoria, mientras que las instrucciones aritméticas sólo accederán a los regis-
tros. necesi tando campos de dirección más cortos. A partir de esta modificación ,
podríamos utilizar intrucciones con tres direcciones para aquellas instrucciones
con operandos y resultado en registros, e instrucciones con dos direcciones para
cargar datos desde memoria a los registros y para vol ver a almacenarlos en la
memoria. De hecho. la mayoría de los procesadores actualmente en el mercado
utili zan esta estrategia, puesto que implica instrucciones más cortas y una menor
frecuencia de accesos a memoria. Por ejemplo, si utilizamos esta estrategia, se
podría calcular e = ({/ + b) * (a - b) con sólo seis instrucciones, como en el
siguiente programa:
412 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
resto de este capítulo.
En el ejemplo anterior. se han mostrado varias soluciones para sati sfacer los
objetivos contrapuestos que aparecen al utilizar el máltimo número posible de
direcciones por instrucción para acelerar la ejecución de los programas. Como
pone de manifiesto la última opción, se llega a un compromi so si se utiliza un
pequeño banco de regi stros como almacenamiento temporal. que permite utilizar
instrucciones con tres direcciones para las operaciones con datos contenidos en
dicho almacenamiento temporal, dado que las direcciones del banco de registro.
necesitan menos bits. y usar además instrucciones de carga y almacenamiento con
una dirección de memoria para transferir datos entre el banco de regi stros y la
memoria principal. Esta estrategia de dividir las intrucc iones en instrucciones de
carga/almacenamiento e instrucciones con registros se basa en el hecho de que
cada variable del programa se utiliza más de una vez, y el acceso a dichas varia-
bles en un banco de regi stros de acceso rápido con direcciones cortas reduce los
accesos a memoria principal. Puesto que todos los procesadores comerciales
actuales utilizan esta estrategia, en el resto del capítulo también se utilizará para
el di seño de repertorios de instrucciones.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
dirección puesto que esos registros son ún icos y por consiguiente están ind icados
implíc itamente en el propi o codop. Este ti po de instrucciones de modo implícito
eran comúnmente utili zadas por los primeros com putadores orientados a pila, en
los que todos los operandos siempre debían estar en la cabecera de la pila y el
resultado también se introducía automáti camente en la cabecera de la pil a.
En el modo de direccionamiento inmediato. que se muestra en la Figura
9.2(b), el campo de dirección espec ifica el propio operando, de forma que en rea-
lidad una instrucc ión con modo inmedi ato ti ene un campo de operando en lugar
de un campo de di recc ión. Este campo de operando se utiliza para especi ficar las
constantes usadas como operandos en la operac ión que especifica el couop. Este
modo de direccionamiento es particularmente útil cuando se incrementan o decre-
mentan Índi ces de un bucle o de un vector, o cuando se calcul an ex presiones que
tienen muchos coefi cientes, puesto que los índices y los coefi cientes se pueden
proporcionar en el campo de dirección en lugar de estar almacenados en la memo-
ri a como datos. lo que además ahorra accesos innecesarios a memori a por parte
del procesador.
En el modo de direccionamiento directo, Figura 9.2(c). el campo de direc-
ción especifi ca la posición de un operando o del resultado. que puede estar situa-
do en la memoria o en el banco de reg istros. Obsérvese que una dirección de
memori a es mucho más larga que una dirección de registro. debido a que los
tamaños de la memoria varían entre 16 millones y 256 millones de palabras, en
tanto que los tamaños de los bancos de registros van desde 8 a 128 palabras, lo
que si gnifi ca que se necesitan de 24 a 28 bits para una dirección de memori a en
lugar de los 3 a 7 bits para una direcci ón de registro.
En el modo de direccionamiento indirecto. que corresponde a la Figura
9.2(d), el campo de direcc ión especifica la posic ión de la dirección de un operan-
do o del resultado. Así. en el modo indirecto a través de memoria (lII elll o/)'-indi-
recf) el procesador ti ene que acceder dos veces a memoria: una vez para captar la
dirección, y otTa para captar el operando o almacenar el resultado. En el modo
indirecto a través de registro (regisfer -illdirect) . el campo de dirección contiene la
direcc ión de un reg istro determinado del banco de reg istros donde se encuentra la
direcc ión del operando o el resultado. De esta fo rma. para utili zar el modo indi-
recto con registro, el programador necesita asegurarse de que la dirección de
memoria se ha colocado en el registro adecuado antes de acceder a él. La princi-
pal ventaja de utilizar el modo de direccionamiento indirecto a través de registro
es que la direcci ón del registro necesita menos bits que una direcc ión de memo-
414 Principios de diseño digital
ria, y que el acceso al banco de registros es mucho más rápido. como se di scutió
en el párrafo anterior.
~ a) Implícito C()(Jop
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
RF
~ O/)eml/(/u ...... Operando
I Opt',lIlIIlo
L.0+ Opcr{//ulu
tf) Indexado
Ml'lII urja
índice
+)....--'----+( Oflerando M¡'/IIor;{/
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
registro del banco de registros, como muestra la Figura 9.2(e). En este caso se uti-
liza para realizar búsquedas en tablas; usualmente el registro conti ene el comien-
zo de la tabla y el desplazam iento se utiliza para apuntar a un elemento específi-
co de la mi sma. El direccionamiento relativo también se puede utili zar para la reu-
bicación de código, en cuyo caso el registro contiene la primera instrucción y el
desplazamiento se utiliza para apu ntar a la siguiente instrucción a ejecutar. La reu-
bicación de código permite mover programas dentro de la memoria de la compu -
tadora, conmutar entre un programa y otro, y alternar la ejecución de varios pro-
gramas al mismo tiempo. La principal ventaja de este modo de direccionamiento
es que da lugar a un formato de instrucción con un campo de dirección más corto,
puesto que el desplazamie nto normalmente necesita menos bits que la dirección
de memoria completa.
El modo de direccionamiento indexado, ilustrado en la Figura 9.2(1), gene-
ralmente se utili za cuando se necesita acceder a datos almacenados en arrays,
matrices, pilas, o colas. El campo de dirección de la instrucción especifica la
dirección de comienzo, llamada base, mi entras que el índice del dato se encuen-
tra e n un registro índice específi co o mediante un registro del banco de registros.
Para calcular la dirección efecti va, se suman los valores de la base y del registro
índice. En algunas instrucciones, además, el valor del registro índice se incre-
menta o decrementa después, de forma automática, para acceder al siguiente ele-
mento del vector, la pila, o la cola. Este tipo particular de instrucción, en el que el
registro se incrementa o decrementa automáticamente, se denomina instrucc ión
con autoincremento o autodecremento. El direccionamiento indexado también
contribuye a reducir el número de bits necesarios en el campo de direcc ión, ya que
las direcciones de las bases suelen ser múltiplos de 2", conteniendo (11- 1) ceros.
Puesto que estos (n- l ) ceros no neces itan almacenarse en el campo de dirección,
la instrucción precisa menos bits.
Obsérvese que el direcc ionamiento indexado es similar al direccionamiento
relativo, ya que los dos valores, incluidos en el campo de dirección y en el regis-
tro específico, tienen que sumarse para obtener la dirección efecti va. Estos dos
modos de direcc ionamiento se diferencian sólo en la situación de la base y del
índice o desplazamiento: e n el direccionamiento relativo, la base está en el regis-
tro dedicado y el desplazamiento se sitúa en el campo de dirección, mientras que
e n el direccionamiento indexado, la base está en el campo de dirección y el índi-
ce en un registro dedicado. Generalmete, la disponibilidad de varios modos de
indexado en un repertorio de instrucciones hace que los programas que ejecuta el
416 Principios de diseño digital
procesador sean más cortos, pero esto también hace que la implementación del
procesador sea más compleja, como se verá en el resto del capítulo.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
pasos. indicados en la Figura 9.3, constituyen el ciclo de ejecución de instruc-
ción. El ciclo comienza cuando el procesador busca una instrucción desde la
memoria y la carga en el registro de instrucción (IR, Inst/'uctiol1 Register). que
almacena la instrucc ión mientras se está ejecutando en el camino de datos del pro-
cesador. En este primer paso, el procesador también incrementa el contenido de
otro registro, Uamado contador de programa (PC, Program COl/lite,,). que alma-
cena la dirección de la sigui ente instrucc ión a ejecutar. En el segundo paso. des-
pués de haber buscado la instrucción, el procesador debe tener en cuenta el modo
y los campos de dirección de la instrucción para determinar la dirección efecti va
de todos los operandos que intervienen en la operación y del resultado de la
mi sma. En el tercer paso, el procesador debe buscar estos operandos desde la
memoria y almacenarl os temporalmente en el banco de registros o en algún otro
!
Buscar
instrucción
t
Calcular
direcci ón decti va
~
BII.~l: a r
opcnmdos
~
Ejecutar
opcntd 6n
~
AlmaCena,.
resultado
I
FIGURA 9.3 Ciclo de ejecución de instrucción.
El diseño del procesador 417
registro del camino de datos. Después de buscar los operandos, el procesador eje-
cutará la operación especificada en el codop, completando así al cuarto paso del
cicl o de instrucción. Finalmente, en el quinto paso, el procesador almacena el
resultado de la operación en la memoria, o lo guarda temporalmente en el banco
de registros para su uso en instrucciones siguientes.
Aunque es posible identificar estos cinco pasos en una instrucción típica,
diversas instrucciones precisan acciones ligeramente diferentes dentro de alguno
de estos pasos, y algunas instrucciones pueden incluso saltarse alguno de ellos.
Así. para diseñar un procesador, hay que diseñar en primer lugar su repertorio de
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
instrucciones, especificando las operaciones que realiza cada instrucción. Como
se indica en la Figura 9.4, el diseño del repertorio de instrucc iones es el primer
paso del diseño de un procesador. Una vez definido el repertorio de instrucciones,
se puede describir sucintamente con un diagrama de flujo de repertorio de ins-
trucciones (diagrama IS , Inslrucliol/ Sel). que indica de manera precisa todas las
nperaciones que se reali zan en cada instrucción . El diagrama de flujo IS se utili-
za como punto de partida para asignar los componentes en el camino de datos.
do nde se ejecutan todas las instruciones. Sin embargo. puesto que el diseño del
camino de datos depende del repertorio de instrucciones. y el di seño del reperto-
rio de instrucciones del camino de datos. el proceso de diseño del repertorio de
instrucciones, elaboración del diagrama de flujo. y asignación de componentes se
debe repetir varias veces. Después. una vez determinados los componentes bási-
cos del camino de datos del procesador. se obtiene el diagrama ASM del proce-
sador, que divide cada instrucción en una serie de ciclos de reloj y especifica
todas las transferencias que tienen lugar en cada ciclo. A partir de este momento
se pueden deducir fáci lmente las conexiones del camino de datos para completar
su diseño. Finalmente, el último paso consiste en el diseño de la unidad de con-
trol. Es importante tener en cuenta, sin embargo. que esta secuencia de pasos sed
siempre en cierto modo iterativa ya que el diseño del repertorio de instrucciones
y el del camino de datos son interdependientes y no se conocerán las prestaciones
del procesador hasta que se termine. Antes de obtener un diseño satisfactorio,
habrá que repetir el proceso de diseño en tero. o alguno de sus pasos, varias veces.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Diseñar la unidad
de control
no
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
ciclo de ejecución es difícil de implementar en el caso de instrucciones complejas
puesto que cada paso precisa un número de ciclos de reloj diferente para cada ins-
trucción, de forma que la ejecución segmentada va a la velocidad de la etapa más
lenta, que está determinada por la instrucción que necesita un mayor número de
ciclos de reloj en dicha etapa. En cambio, puede hacerse que las instrucciones
simples ejecuten cada etapa del ciclo de instrucción en el mismo número de ciclos
de reloj, normalmente en un único ciclo de reloj. pennitiendo así una implemen-
tación segmentada del camino de datos.
Las diferencias que se han descrito en los párrafos precedentes se ilustran con
dos ejemplos. En el ejemplo 9.1 se diseña un repertono complejo de instruccio-
nes para un procesador de 16 bits; en el Ejemplo 9.5 se convierte este repertono
complejo en un repertorio reducido de instrucc iones para un procesador de 32
bits.
15 14 13 1" 11 10 9 8 7 6 5 4 3 1 O
(<1) InStrucciones con registros: Tipo Op D es! Src l Srcl.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
15 14 13 12 11 10 9 8 7 6 5 4 3 2 O
(h) Instrucciones con memoria: Tipo 01' Des! Src l Src2
DirecciólI
load ~cargar)
y ~Iorc (a lmacenar)
Denominación Acción
Lll1m Des' RFIDt'.\'rl f- Din'cl.: i6n
Ldi,. Dest RF{Desl} t- Mem¡ Direccion f
L rel De.I" , Src'2 RF[De.\'rj f - Memf RFfSrc'1./ + Dirección}
Lin Des' RF[Destj f- MemfMem/DirecdónJJ
S l/ir S",I Mem[ Direccirill} f - RFI Sre I ]
S rel Srcl. 5/"(:2 Mcm[RF/Src l) + Dirección! f- RFISn: JI
S in Srcl MemfMemfDirecciv /!jf f - RF!Srclf
15 14 13 12 11 10 9 ~ 7 6 5 4 3 2 O
(e ') Instrucciones de control: Tipo 01' Desr Src l 51'('2
ju mp (saltarl.
Dirección
branch (sal to condicionoll),
call ¡llamada a subnuin;¡ ) Denominación Acción
y rClumlrel0mo de subrutina) Jump Dirección PC f- Direcl'ió/l
PC f - pe + I J i SIlIIII.I"fndf = o J
Brel DiH'C(."ió" [ pe f- Direcciól1 .,·i SllIllIsfre /J = 1
Mcm/Src lj t- PC + 1: pe f- Dirección:
Ca/{ Dirección, Src 1
RFjSrc lj f- RFfSrc l /+ 1
Relum
pe f - MemfSrc lj: RF{Src l j f- RF/Srd J - 1
15 14 13 1" 11 10 9 8 7 6 5 4 3 2 O
(d) Instrucciones mi sceláneas: Tipo 01' Des! Src l Src2
Direcci6n
no-op.
clear.
status, Denominación Acción
SC L No-op No I/l/cer /lada
y rcscl e/ea/" Dest RFIDestJ f- O
LI'lat Slr l , Sn"2 Srmus R/SrclJ ~ RF/Src2j
S~WI De~t 5trllJ/s{Deslj f- I <
Rstm Desl SWlUs{Desrj f- O
Las instrucciones de memoria. en la Figura 9.5(b). son las instrucciones de carga (load)
y almacenamiento (store) , encargadas de transferir datos entre un registro del banco de
El diseño del procesador 421
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
una instrucción de salto incondicional (jI/m!') , por ejemplo, carga el PC con la dirección de
salto espec ificada en la segunda palabra de la instrucci ón y en el siguiente ciclo de instruc-
ción ejecuta la instrucción al macenada en la di rección de salto. La instrucción de salto con-
di cional (brollc/¡ ) ti ene el mismo efec to si el correspondiente bi t de condición es igual al:
en caso con trario, el procesador ejecuta la siguiente instru cción de la secuencia. Los seis
bits de relación corresponden a las seis operaciones re lacionales: igual. mayor que, mayor
o igual que-omenor que. menor o igual que. y distinto ue. Las instrucciones de tipo misce-
lánea ponen a uno o a cero estos bits. depués de comparar los contenidos de dos registros.
Cuando el procesador ejecuta una instrucción de llamada (call), salta a la subrutina cuya
primera in strucción se encuentra en la posición especi fi cada en el campo de dirección.
Además, también decrementa el va lor de PC y lo almace na en la posición superior de la pil a
cuya dirección se encuentra en el puntero de pila indicado en el campo S rcl, Como puede
esperarse. la instrucción cal! también incrementa el valor del puntero de pila. La inst.rucción
de re torn o de subruti na ( re/un i) es la opuesta a la instrucc ión de llamada: carga la dirección
de retorno en el pe y dec rementa el puntero de pila que está almace nado en el registro indi-
cado en el campo Src J.
Por último. las instrucciones de tipo misce láneo, que se Illuestran en la Figura 9.S(d).
incluyen tanto a la instru cción No-o" como a aquellas instrucciones necesarias para poner
a uno o borrar un regis tro concre to del cami no de datos . La instrucción más importan te de
este gru po es la instrucción Lslal , que perm ite comparar los valores de los registros indica-
dos en los campos S rcJ y Src2 y modifi car los seis bi ts de relación del registro de estado
con los valores correspondientes. Como se indicó anteri ormente. las instrucciones de salto
condi cional comprueban el bit correspondiente después de que este haya sido modificado
por una instrucción Lsta/.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
ciones presentado en la Figura 9.5.
SOLUCIÓN
Como se mencionó anteriormente, el diagrama de flujo IS no presupone ningún detalle en
cuanto a la arquitectura, ni ningún camino de datos particular para el procesador. Es más.
no se considera ninguna restricción temporal , ni la duración de los ciclos de reloj. El único
propósito del diagrama de flujo es proporcionar el orden en el que se han de ejecutar las
operaciones especificadas por cada ins(mcción.
En la Figura 9.6 se presenta el diagrama de flujo IS para el repertorio de instrucciones
de la Figura 9.5 . Obsérvese que cada instrucción se ha especificado en dos partes. En la pri-
mera parte. que se aplica a todas las instrucciones. el procesador busca la instrucción y la
introduce en IR e incrementa el registro Pe. En la segunda parte. el procesador decodifica
el campo de tipo para determinar el tipo de instrucción y luego ejecuta la instrucción cal-
culando la dirección efectiva (EA, Effective Address) , realizando la operación especificada
en el código de operación, e incrementando pe en el caso de instrucciones de memoria o
control.
Una vez que se ha completado el diagrama de flujo IS, el siguiente paso para
diseñar un procesador es asignar sus componentes seleccionando el número ade-
cuado y el tipo de unidades funcionales a incluir en el camino de datos. En un pro-
cesador se necesita incluir al menos una ALU con capacidad para desplazar datos
una posición a la derecha o a la izquierda. En los procesadores de altas prestacio-
nes, sin embargo, se debería añadir un desplazador en bloques «<barrel shiftef» l,
un multiplicador, y un sumador/restador y multiplicador/divisor en punto flotan-
te. En este caso, también se debe incluir una unidad funcional para el cálcu lo de
las direcciones efectivas.
En este momento de la etapa de asignación, hay que determinar además el
tamaño de memoria necesario y la mejor forma de organizarla. Después hay
que determinar cuantos buses se necesitan, junto con e l número de bits de
ancho y el protocolo que va a utilizarse. Además, es preciso estab lecer la forma
de implementar la interfaz que permitirá la comunicación con la memoria y
otros ASIC. Por último, se considera la posibilidad de añadir registros de uso
especial, tales como punteros de pila, registros base, contadores de bucles, y
registros de interfaz, que simplifican la transferencia de datos y aumentan las
prestaciones del procesador. La etapa de asignación se muestra en el siguiente
ejemplo.
El diseño del procesador 423
t
IR t- Mem/ PC/
PCt-PC+)
I n~lruccioncs
miscelánea
Á 3
lnl
InStl'UCCloncs tic I1l1nific ac i~'i n
2 I o III~t ru cclOnc:. con registros
l
~'~~"~~~ I RF(De.fl ) t-- NF/Srt'l 10" R/ Src2/
I
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
I
MOllu
3 2 1 O
I I I Inmediato
~
Directo I LO:ld
(cargar)
/,us~
RF{Desl / lIfem { PC¡
PCt- PC+] f-
Load
11 (cargar) EA t- Mt'III! PC/
Rr¡Desr¡ +- Mi'm(EAI
PC+- I'C+ J
Relati\'1I Swre
/,u~
(al mace nar) &\ +- MeIJ/! PCj
Mem{EAI f - Rf[Srt' l /
PCf-PC+ ]
Load
(cargur) EA t- Mem{P CI ... RF{Srcl/
RFI D f:J'l j t- Me",' EA}
PC f--- PC+ 1
Slore
I L\l1IU
(cargar) EA +- MeJII{ Melll { PC/I
RFf D eslj +- /lfem(EA ]
PC+- PC+ J
5 10 fC
( alll\llc~'n ar) EA t- Mem{!I1('II1!PCII
MemlEAJ f- R¡:¡Srd I
PC+- PC+ I
I I
IN ___ .1I''11I{ I'CI
I' e<l I'C+ I
11
I \J
I
J I1~l ml:C"lmws COl l rl:gi~ln •.~
A A
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
4 } 2. I () ) ~ ¡ (j
I
Jurnp I ,;1111)) 1
I Sil .llm:,,:cnar
I
I
I
~h ""lo" ",,"h,,~.,' ,
PC -r\"'lII f l'Cf
f-
I
I
R"',IJ .. .,/ o oi-
I
I
~1fIS I 11
I
I
Stutll\4-RPf!l tt l / - NF(Srr:!/ ~ Lf /'e_ N: .1
~
I
I
I
Stm¡o{IJ" .'>Ij_1
L--
pe (0- . M <'lIIfSrr l !
Rr'ISrl'l/+- Rf'{Src1 f - I
SOLUCiÓN
Durante el diseño del repertorio de instrucciones, asum imos la ex istenci a de una memoria
de 64K, Mem. un banco de registros con 8 registros, RF, y los registros de uso especínco
pe. IR. y SWI/I.I'. Si nuestro único objetivo fuera obtener un procesador de costo reducido.
no deberíamos añadir ningú n componente adicional a este conj unto básico.
Sin embargo, si se tienen en cuenta las prestaciones, podemos mejorar la eficacia del
procesador añadiendo dos registros más. En el procesador. la memoria es el componente
más lento, por lo que no debemos encadenar los accesos a memoria con una operación en
alguno de los otros componentes. puesto que se requerirían ciclos de reloj de mayor longi-
tud . Por esta razón hemos de añadir un registro de dirección (A R. Address Register) y un
El diseño del procesador 425
registro de datos (DR. Dala Registe,.), como muestra la Figura 9.7. Al añadir estos regis-
tros. en la ejecución de una instrucción de carga (load) podremos calcular la direcc ión efec-
ti va en un cic lo de reloj , almacenándola en AR. y después buscar el operando correspon-
diente en un segundo ciclo de reloj . Igualmente. en la ejecución de una instrucción de al ma-
cenamiento (slorr) se puede cargar, en un sólo ciclo de reloj , la direcció n efectiva en AR y
el dato cOITcspondicnle en DR, y después almacenar el dato en memoria en el siguiente
ciclo de re loj. Así. al añadir estos dos registros. se puede red ucir el período de re loj nece-
surio y se mejoran las prestaciones del procesador.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Unidád
d~ control
[J
SIf/IU ,\
IR II pe li AR II DR
Procesador
1 Bus
D ispol> i l i vo~
Mel/l
de flS
Después de decidir los componentes que van a inclu irse en el camino de datos.
el siguiente paso del di seño de un procesador es la obtención del diagrama ASM
a partir de la in formaci6n presente en el diagrama de flujo IS . Para esta tarea se
podrían utili za r los métodos de planificación expuestos en la Sección 8. 14. Por
otra parle, también se podría planificar el diagrama de fluj o manualmente, puesto
que cada ciclo de instrucción del diagrama IS está descrito con muy pocas sen-
tencias de asignaci6n.
Durante la planificac ión manual. es crucial la detecc i6 n de cualquier conflic-
tO entre los datos y los recursos y asegurar su resol uci6n asignando las operaci o-
nes o las transferencias de datos conflicti vas a estados distintos o a cicl os de reloj
difere ntes. Por ejemplo, es posible leer un valor almacenado en un regi stro y
escribir un nuevo valor en ese registro durante el mi smo ciclo de re loj puesto que
las leclllras de regi stros pueden reducirse en cualquier in stante de dicho ciclo qu e
426 Principios de diseño digital
sea posterior al flanco de subida de la señal de reloj , mientras que las escrituras
sólo se producen al final del ciclo de reloj en el siguiente flanco de subida de la
señal de reloj. Sin embargo, no es posible escribir un valor en un registro y leer el
nuevo valor en el mismo ciclo de reloj ya que la escritura sólo puede ocurrir al final
de cada ciclo de reloj. Igualmente, dentro de un mismo ciclo, se puede leer o escri-
bir en una posición de memoria, pero no se pueden hacer ambas cosas puesto que
la memoria sólo tiene un decodificador de direcciones. Por lo mi smo, cada unidad
funcional o bus sólo se pueden utilizar una vez en un ciclo de reloj . Siguiendo estas
indicaciones adecuadamente, el proceso de transformaci ón del diagrama de flujo
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
de instrucciones en un diagrama ASM es relati vamente directo.
Obtener el diagrama ASM a partir del diagrama de fluj o IS dado en la Figura 9.6.
SOLUCiÓN
E l diagrama ASM se muestra en la Figura 9.8. Obsérvese que es similar al diagrama de nujo
IS excepto por el hecho de que la ejecución de la instrucción se ha dividido en vari os ciclos
de re loj para eliminar las dependencias entre recursos.
Como se muestra en la Figura 9.8. las instrucciones con registros se ejecutan en dos
ciclos. En el primer ciclo de reloj, el procesador busca la instrucción y la almacena en el
registro IR , mientras que en el segun do ciclo realiza la operación especificada en el campo
de código de operación.
Las instrucciones con memoria precisan tres o cuatro ciclos de reloj . Considérese, por
ejemplo. la instrucción de carga indirecta. Li/l. que necesita cuatro ciclos de reloj para eje-
cutarse. En e l primer ciclo de reloj , e l procesador busca la primera palabra de instrucción y
la guarda en IR. mientras que en el segundo ciclo. busca la segunda palabra de instrucción
y la almacena en AR. Después, en el tercer ciclo de reloj. busca la dirección real del dato y
la carga en AR. Por último. en el cuarto ciclo de reloj . el procesador busca el dato de memo-
ria y lo guarda en el banco de registros. R F.
Las instrucciones de control utili zan dos o tres ciclos de reloj para su ejecución. Por
ejemplo. una instrucción de salto condicional necesitaría dos ciclos de reloj . En el primer
ciclo de reloj. el procesador busca la instrucción, y en el segundo comprueba el bit de
condición correspondiente e incrementa el contador de programa, pe, si e l bit de condi-
ción es igual a O. ó carga la segunda palabra de instrucción en pe si el bit de condición
es 1.
De igual forma. las instrucciones de tipo misceláneo utili za n dos ciclos de reloj . En el
primer ciclo se busca la instrucción, como siempre, mientras que el segundo ciclo se uti li-
za para modificar un registro o uno de los bits de ese registro. Como ejemplo. se considera
la instrucción LswI. En el segundo ciclo de re loj, el procesador compara dos valores que
están almacenados en el banco de registros, RF. restando un valor a otro y disponiendo con-
ve nientemente los seis bits del registro de estado en los valores. Por ejemplo. si el valor de
RF{Srcl { es mayor que e l valor almacenado en RF{Src2/. la instrucción Lstal pondrá a uno
los bits que corresponden a las relaciones mayor que. mayor o igual que, y distinto de. y
mantendrá a cero los restantes bits. que representan las condiciones menor que. menor o
igual que. e igual a.
El diseño del procesador 427
Para temlÍnar. a partir del diagrama ASM se puede ver que el procesador necesita entTe
dos y cuatro ciclos de reloj para ejecutar una instrucción. Además, como se mostró en el
Capítulo 8, es posible obtener fác ilmente el camino de datos y la unidad de control a partir
de este diagrama ASM .
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
IR ",,.,,,IPe/
I PC ... PC+ J
I
Inslrucclones miscelánea
I n(lruCC:lOn~s d(' rumific;tClóo
A 3 '2
I
I o
I n~ lrut'C1one~ con ncl! I ~ln)<;
I
Instrucciones con memOI'':1 I
I RFIDu tl +- RF/Srr l /Op RFfSrr2/
~,,~
I
, ' I
Inmediato
/,~~
~
Di1'l:cll! RF(DeJl1 +- M f!/II{PCI
...
~~
PC ... I'C + I
~
Rt:htlh'¡¡
~~
RFIDtstJ +- MrmIAR!
I Il
InduttlQ Slore lalmacel\llJ) I DF _ RFfSrdJ
I
AR _ Mt'm/PCJ
I
/~~
PC ..... PC+I
AR t- RFfDrstf + Rf"[Srr2/
MrIll M RJt- DR
r
~ .4.R ..... ¡\!rm! PC/
PC+-PC +I I 510re
RF/lkJt¡ t- MemlA RJ
Leye nd a:
+ IR " RC¡;J ~ ln l de in, lruc':hJ11
RF " R:ll1l'(1 de rC~:1, IIl\~
I I
IR ..- M"m(PC/
i'C..- PC + I re" Conl;l.!ur .k p rU~r:lIH:1
A R '" Rc p ,lr" ,k ,.II r'·":':I"n
A
!JI{ " 1{C); I~lr" d~ d:lh)<
,s Ial u' " Rc)!I, lr" .k e,IOIII" Ide 1.1 /\ I.:S I ' I
.l :2 I f)
In, lm.:.:,,,n.:, (,',11\ rCJ.'I, If<h
A A
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
.\ J .2 I U .1 J ! O
1
Jump I
I I I 1'{"\-- tI!l' III/ I'CI
I
N/.J almil"'n111"
1
Br:II1l'h
f---
I
I
NF/f)¡' I'I/I:-O
I
~,~
r
1 I "
Rcwrn
. IR 1:- M~m{A R I
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
lógica de control. que genera las señales de control para la operación de A LSU. y
para todos los registros . el banco de reg istros, y la memori a.
~ ¡
I * IRcg"tro,
de estado RF
!
~
~
Lógica
de contro l
Señales
~ dcconlrol
!
H SWtlfS ~ ALS U
IR I pe
r-I I AR
r-I I DR
!
I
1 1
Bus de dalos ~ \}
Ir'
Bus de di recciones
~.., I L, 1"
Mem
\1 Bus de con trol
Out
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
una de las expresiones de control posee un término producto por cada estado y por
cada instrucc ión en la que esa línea de control particular está activa. Así, en cada
térm ino producto intervienen los bits que definen el tipo de instrucción. el código
de operación de la in strucción , y el estado del procesador. Puesto que la obtención
de las expresiones de control es directa, se ha dejado como ejercicio para el lec-
tor al final del capítulo.
Es más, si ambas comparten la mi sma etapa, se puede uti lizar la misma ALSU
para realizar las dos tareas, Como puede verse en la Figura 9,1 Ora), al combinar
estas dos tareas en una, se obtiene un ciclo de ejecución de instrucción que puede
ejecutarse fácilmente en un camino de datos segmentado con cuatro etapas,
+
Buscar
Instrucción
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Bu .~car opcr:mdol>
o direcciones
¡
Ejecutar operaciones o
calcular direcC ión efectiva
¡
Almacenar
rcsuhado
I
(a) Ciclo de cjccuci6n de inslmcción
Ciclo
de reloj o 2 3 4 5
Clptar
/, /, /, /, /, /,
instrucción
Capl:lr
operandos o /, /, /, /, /,
direcciones
Ejcculm
operac ión
o calcu lar /, /, / , /,
dirección
efectiva
A lmace nar
resultado /, /, / ,
(b) Ejecución segmentada
Esta ejecución segmentada se muestra en la Figura 9-1 O(b), en la que cada fila
representa una etapa de la segmentación y cada columna corresponde a un ciclo
de reloj . Se ve que cada instrucción necesita cuatro ciclos de reloj para ejccutar-
432 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
una instrucc ión neces ita datos que son generados por la instrucc ión previa. hay
que retardar tres ciclos de reloj el comienzo de dicha instrucción, hasta que el dato
que neces ita esté almacenado en memoria. Esta interrupción en la ejecución seg-
mentada recibe el nombre de detención (pipelin e s/(/II). Para minimi zar el núme-
ro de detenciones, se pueden reordcnar las instrucciones de manera que ninguna
instrucc ión neces ite datos generados por las tres in strucciones prev ias. Cuando
esto no es posible, se deben insertar instrucciones no-op (no operar) en la secuen-
cia de instrucc iones para asegurar el funcionamiento correcto.
Para usar la ej ecución segmentada de in strucc iones. es necesario además redi-
señar e l repertorio de instrucciones de forma que todas las instrucciones sean
similares y cada instrucción consuma un tiempo aproximadamente igual en cada
etapa. En otras palabras. tenemos que garanti zar que cada instrucci ón contenga el
mi smo número y tipo de campos. Sin embargo, para sati sfacer este requi sito se
nece sita ampliar el tamaño de palabra del procesador a 32 o más bits y limitar los
modos de di.reccionamiento. utilizando sólo los modos inmediato y relati vo, que
utili zan menos bits de la palabra de instrucc ión que los modos de direcci ona-
miento directos o indirectos. Además, recuérdese que el modo de direcciona-
miento indirecto viola automáticamente el segundo requisito, es decir, que todas
las instrucciones consuman el mi smo tiempo en cada etapa . Por estas razones , los
demás modos de direccionamiento deben implementarse med iante una secuencia
de las instrucciones disponibles . En el siguiente ejemplo. se muestra el diseño de
este repertorio reducido de instruccio nes.
ción, tres bits para la dirección del registro destino del resultado (Des/), y dos campos de
tres bi ts cada uno para las direcciones de los registros utili zados por los operandos (5n' / y
5rc2).
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 O
(:1) [nstrucc:i nl1cs con registros: O"
aritmé ti cas. Denominación Acción
lógic,.s.
OP De.n. SrLI. Sn<! R F(J)t:~'I) f - R FJSrcl/ Op RFISrf'21
de transferen cia .
OP Dest. Sil.' l . C(Jn.~tallli' RF(De,'fI) +- RFlSrcl1 Op COI/SlmUI'
y de t1csplul.amicn lo
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
MCJI't! De:,.I, Srd RF(OnlJ f-- RFtSn' IJ
Slrifl DI'J/, Srt'I. CmlJ/f/flte RF(D eSI} f- RFfSrt'l1 (/¡'SI'!(/ :'dr C (m,I'Wllle
31 30 29 28 27 26 25 24 23 22 2 1 20 19 18 17 16 15 O
(b) Instnlcl'ionc,) con memoria: O"
load (cargar) Denominación Acción
y slorc (uhn nccnar)
Lillll/lU Oes1 RF(nt!~·1J(31 . . 16) f- lJesJlI//:Jllllief1fo
L ill/IIIL Dest RFrDI.',fr)( 15 .. 0) f - De.\1J1a:wl/ien/o
L n." 0".1'1. Src2, De,\'p/a:lIl11;ento RI"(De~'I) f-- M em(RF(Src.:2/ + DCSf1/tl<.1I", iell/o]
S 1'1'/ Slrl, 51'('2, O e,lplll ;'lIlII;ellfo Mt'luIRFISn'2j + Dl'sp/a:amiemo/ f- RF/5rclj
3 1 30 29 28 }7 26 25 24 23 22 2 1 20 19 18 17 16 15 O
(e) InslllIt'cioncs de contro l: Tipo I O" Des' Src l 5rc2 IDcsplllzumienlll !
j ump (sultur), y Denominación Acción
brand, (slll to condicional )
JI/mI' DeJ1}/a:::amielllo pe pe + DtWl/tI:allliell/o
f--
Obsérvese que este repertorio de instrucciones tiene los mismos cuatro tipos de ins-
trucciones que el repertorio CISC de hl Figura 9.5 . Las instrucciones con registros que
muestra la Figura 9, 11 (a) realizan di versas operaciones con los operandos almace nados en
alguno de los ocho registros del banco de registros y después devuel ven el resultado a otro
registro del mismo fi chero. Cualquier instrucción puede utilizar el valor del campo de cons-
tante como uno de los operandos.
Las instrucciones de memoria. que se muestran en la Figura 9. 11 (b), cargan datos de
memoria en el banco de registros, y almacenan datos de los registros en memoria, En este
repertorio de instrucciones, el modo de direcc ionamiento principal es el relati vo donde la
434 Principios de di seño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
ciones de salto condicionaJ e incondicional. Las instrucciones de salto incondicional (jllll/p)
pueden transferir el control a una posición relati va al contador de programa PC o bien a una
posición indicada en el campo Src2. De igual forma , las instrucciones de salto condicional
(bra1lch) pueden tran sferir el control a una posición relati va al pe. En realidad. hay seis in s-
trucciones de salto condicional diferentes: Beq. Bgre. Bgoeq. Bless. Bloeq. y BI/er¡, que se
denominan Brel en la figura. Cada instru cción de salto condicional compara los valores de
los registros indicados en los campos SrcJ y Src2 y de spués. si se verifica la relación espe-
cificada, da lugar al salto a la dirección de memoria que se obtiene añadiendo el va lor alma-
cenado en el campo de Despla:amielllo al valor del PC. En cambio , si la relación no se ve ri -
fica, el procesador ejecu ta la instrucción siguiente. Como antes. las in stru cciones de tipo
miscelánea, mostradas en la Figura 9.11 (d). se utilizan para inicializar los distintos registros
y realizar ciertas funcione s específicas.
ciclo segmentado, cada etapa ejecuta una instrucción distinta , de forma que hay
que dividir la unidad de control en cuatro unidades de control. Cada unidad de
con trol tiene sólo un estado en el que se recibe una instrucción decodificada, o una
parte. desde la etapa anterior, y utiliza una parte de la instrucción proporcionada
para controlar la ejecución de su propia etapa. y pasa la parte no utilizada a la uni-
dad de control de la siguiente etapa. En otras palabras, la unidad de control se
redu ce a una serie de regi stros de control y a una pequefía lógica de decodifica-
ción en la segunda etapa .
El último cambio en la estructura del procesador es consecuencia de la seg-
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
mentaci ón. Siempre que aparezca una instrucci ón de ramificación, el procesador
debe esperar varios ciclos de reloj para determinar donde saltar. Por tanto, no se
debe iniciar la ejecución de in strucciones durante estos ciclos de reloj . o si ya se
ha iniciado la ejecución de alguna deben descartarse en el caso de que se produz-
ca el sa lto. Este proceso. llamado detención de la segmentación (pipeline sta-
IIillg), se explica con más detalle en las secciones siguientes.
memoria de instru cciones. y después se almacena una nueva instrucción en IR. El conteni-
do de pe también se incrementa en esta etapa.
En la segunda etapa. la instrucción contenida en IR es primero decodificada por la lógi-
ca de decodificación y luego se buscan sus dos operandos desde RF y se almacenan en los
registros A y B. Además. los valores de los campos de instrucción Desf y D espla-:,allZieHlo
se copian en el registro de Destino y en el registro de Desplazamiento para su uso posterior.
Igualmente, la parte decodificada del código de operación que se utilizará para el control de
las etapas tercera y cuarta de la segmentación se almacena en el registro de Control.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Lógica
do RF
decodificac ión
i t .j.
~ rl
Me moria
Selector I
do
¡
in ~l ruccioncs
ALSU
I .... ....
1 1 Sl'lcclur I
pe ,1
11 Registro de,J I
desplazamiento 4
IJI
Reg istro
de control.,
Registro deJ
des tino .,
Status , 1 AH , DH
J
1
t ,..-J Selector
¡
Selector
1
'-
~
.Vlcmuria
+ L. 1.1c- dato ~
L::r
I
La tercera etapa de la segmentación realiza diversas operaciones según los di~t i n tos tipos
de instrucción. En el caso de operaciones con regi stros. por ejemplo. realiza la operación
especificada en el codop. utilizando los operandos almacenados en los registros A y B. Y
almacena des pués el resultado en DR. En el caso de operaciones de memoria, la tercera etapa
suma el valor de base almacenado en el registro B al valor de l registro de Desplazamiento y
almacena la dirección efectiva en AR. Además, si la instrucción de memoria es una instruc-
ción de almacenamjento, esta etapa transfiere el dato a ser almace nado desde e l registro A al
DR. En el caso de una instrucción de control, la tercera etapa resta la constante 3 del valor
de desplazamiento puesto que el contenido de pe se habrá incrementado tres veces antes de
que la instrucción de salto se haya procesado en la cuarta etapa del cauce.
El diseño del procesador 437
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Para mostrar el funcionamiento de este procesador RISC, se describe su fun-
cionami ento ciclo a cicl o con una secuencia de tres instrucc iones:
x=a+/)
y= h +c
:=c+d
La Fi gura 9.l3(a) proporciona las instrucciones en ensamblador para el pro-
grama anterior. Para simplificar se han utilizado los símbolos a, /J, c, d. x. y. z.
base . y off para indicar las direcciones correspondientes. En la Figura 9.l3(b) se
da un diagrama de ciclos de reloj en el que horizontalmente aparecen las cuatro
etapas de la segmentación. y verticalmente un conjunto de ciclos de reloj o esta-
dos. En este esq uema cada línea vertical indica el flanco de subida de la señal de
reloj. que origina la carga de datos en los registros del procesador y del banco de
registros. Cada fi la del diagrama indica el registro o el valor de memoria que se
escribe al final del ciclo de reloj correspondiente y que estará disponible en el
ciclo de reloj siguiente.
Como puede verse. este diagrama de tiempos comienza con cuatro instruccio-
nes Load, que cargan los valores a. b, c. y d en el banco de registros. Obsérvese
que los valores a, b. c. y destarán disponibles para su lectura cuatro ciclos de reloj
después de que sus direcciones de instrucción se hayan cargado en pe, es decir,
en los ciclos de reloj 4, 5, 6, Y 7, respectivamente. En los ciclos de reloj 4, 5, Y6,
el procesador accede a las instrucciones aritméticas que almacenarán los resulta-
dos x. y. y : en RF cuatro ciclos de reloj después. Por último, el procesador acce-
de a tres instrucciones Srore para almacenar en memoria los valores x . y. y z. Así,
el valor de z estará disponible 13 ciclos de reloj después de que la instrucción
almacenada en la dirección 100 se cargara en pe.
A partir de este diagrama de tiempos. puede verse como un procesador seg-
mentado, que ejecute cuatro instrucciones concurrentemente, puede conseguir
unas prestaciones que son casi cuatro veces las prestaciones de un procesador que
ejecute las instrucciones secuencialmente, incluso aunque cada instrucción siga
necesitando cuatro ciclos de reloj. En general, este procesador necesitará 1/+3
ciclos para ejecutar 11 instrucciones, en comparación con los 4n ciclos que necesi-
taría si se ejecutaran secuencialmente. Obsérvese, no obstante, que en el cálculo
anterior se ha asumido que ninguna instrucción utiliza los resu ltados de las pre-
cedentes. Cuando esto no se verifica, las prestaciones del procesador se reducirán,
como se muestra en la siguiente sección.
438 Principios de diseño digita l
DIRECCIÓN INSTRUCCIÓN
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
108 Store y. base. off
109 Store z. base. off
110
rcnoDERBAJ O 1 2 3 4 5 6 7 8 9 10 11 12 13
Leer PC lOO 101 102 103 104 105 106 107 108 109 11 0
Escribir en IR Load Load Load Load Add Sub Add Srore Srore Store
Escribir en A a b e x y --
Escribir en B base base base base b e d base base base
Escribir en AR base base base base base base base
+ offi +offib +offc +offd +offx +offy +offz
Escribir en DR (I + b b-c c + d x y :
Escribir en RF a b e d x y :
Escribir en Mem x -" z
Escribir en PC 101 102 103 104 105 106 107 108 109 110 111 11 2 11 3 11 4
(b ) Diagrama dc tfe mpos
que el dato necesario no puede devolverse al RF a tiempo para que pueda ser leído
por la siguiente instrucción dependiente.
En estos casos el problema puede solucionarse retrasando la instrucción
dependiente durante uno o dos ciclos de reloj insertando instrucciones No-op en
la sec uencia de instrucciones. Estas instrucciones No -op pueden ser introducidas
por el compilador en el momento de la compi lación o bien ser la unidad de con-
tro l la que detenga la ejecución de instrucciones el tiempo necesario tras detectar
una dependencia de datos entre dos instrucciones. Considérese, por ejemplo,
como podría actuarse frente a una dependencia de datos en el pequeño programa
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
que calcula la suma de tres variables a. b. y e, utilizando el registro lemp de RF
como almacenamiento temporal, y guardando después el resultado en la variable
10lal:
lemp = a + b
= lemp + e
10 /(11
Uti lizando este camino, se asegura que el resultado generado por una instrucción
pueda ser usado por la siguiente. El segundo camino transfiere datos directamen-
te desde DR o desde la memoria de datos al registro B, evitando la etapa que escri-
be los datos en RF, desde donde se transferían al registro B. Utilizando este cami -
no, se consigue que el dato generado por una instrucción pueda ser utilizado dos
instrucciones más tarde.
lllRECCION INSIRUCCIÓN
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
100 Load a, base, offa
10 1 Load b. base, offb
102 Load e, base, offe
103 No-op
104 Add sum , a. b
105 No-op
106 No-op
107 Add total. c, swn
108 No-op
109 No-op
110 Store total, base. offl
(a) Programa en lenguaje ensamblador
I CIClODER8.W O 1 2 3 4 5 6 7 8 9 10 11 12 13 •
Leer PC 100 101 102 103 104 lOS 106 107 108 109 110
Escribir en IR Load Load Load ~/HfJ Add N/HfJ NINJl1 Add NlHJp No-op Slore
Escribir en A a temp toral
Escribir en B base base base b e base
Escribir en AR base base base base
+ offi +offib +offc +offi
Escribir en DR a+b temp+c rota!
Escribir en RF a b e temp lotal
Escribir en Mem toral
Escribir en PC 101 102 103 104 105 106 107 108 109 110 111 1I2 113 114
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
asignada a la variable 101al.
DIRECCIÓN lNSlIIUCCtON
100 Load a, base, off
101 Load b, base, off
102 Load e, base, off
103 Add sum, a, b
104 Add total , C, Sl/m
105 Store total, base, off
(a) Programa en lenguaje ensamblador
I CIClO DE RB.OO O 1 2 3 4 5 6 7 B
Leer PC 100 101 102 103 104 105
Escribir en /R Lood Lood Load Add Add StO(('
Como puede verse a partir de este ejemplo, el avance de datos permite que el
procesador segementado funcione a pleno rendimiento, eliminando la necesidad
de insertar instrucciones No-op que retrasan las instrucc iones con dependencias
de datos. El avance de datos se uti liza de una u otra forma en todos los procesa-
dores comerciales actuales.
442 Princi pios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
ción. En ambos casos. es prec iso insertar tres instrucc iones No-op después de cada
instrucc ión de control.
La necesidad de insertar estas instrucc iones se ilustra en la Figura 9. 16, que
presenta los diagramas de tiempo para un programa que calcula el tmíximo y el
mínimo de dos valores almacenados en las variabl es a y b. En la Figura 9. 16(3)
puede verse el programa en ensambl ador, que compara a y b. Y si a es mayor o
igual que b, hará lila.\" = a y min = b: yen caso contrario hará lila.\" = b Y mili = a.
Puesto que este procesador no puede determinar la dirección de la instrucc ión
siguiente hasta pasados tres cicl os de reloj , hay que insertar tres instrucc iones No-
op después de la instrucc ión de salto condicional. Bgoeq. Igualmente. se han
insertado tres instrucc iones No-op más después de la instrucc ión .IUlIlp de la posi-
ción 106. La Figura 9. 16(b) muestra el diagrama de ti empos correspondiente a la
ejecución de l programa cuando no se produce el salto, y la Fi gura 9. 16(c) mues-
tra lo que ocurre cuando se produce el salto.
Considérese el primer caso, en el que no se produce el sa lto cuando el proce-
sador ejecuta Bgoeq seguida de tres instrucciones No-oiJ. Como puede verse,
hasta el ciclo de reloj 3 el procesador no determina que el salto no se va a produ-
cir_momento en el que carga la dirección 104 en pe. A continuación se ejecutan
DIRECCIÓN INSlRUCCIÓN
CICLO DE RELOJ O 1 2 3 4 5 6 7 8 9 10
Leer pe lOO 101 102 103 104 105 106 J07 J08 109 11 2
Escribir en IR Bgoeq No-op No-op No-op More Mon' lump No-op No-op No-op
Escribir en A a b a
Escribir en B b
Escribir en AR
Escribir en DR b (/
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Esc ribir en RF n/ax mili
Escribir en Mem
Escribir en pe 101 102 103 104 105 106 107 108 109 112
(b) Diagrama de liempos cuando no se produce el !>alIO
CICLO DE RELOJ O 1 2 3 4 5 6 7 8 9 10
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
un procesador RISC de 32 bits.
Para ell o. se han introducido los diagramas de tlujo IS y se ha most rado cómo
refinarlos para detenninar diagramas ASM a partir de los que obtener la arquitec-
tura del procesador. Finalmente, se han presentado los conceptos de avance de
datos y predicción de saltos, utilizado: en los procesadores actuales para mejorar
sus prestac iones.
9.12. PROBLEMAS
9.1. (Formatos de instrucc ión) Escriba teniendo el valor del dato y la segun -
una secuencia de instru cc iones que da con la dirección del siguiente e le-
pennila ca lcular el val or de y = x2 + mento de la li sta. Utili ce só lo instruc-
2r + J para un va lor de x dado utili- ciones de tres direcciones, con:
zando: (a) Direccionamiento directo
(a) Instrucc iones de tres direcciones (b) Direcc ionamiento indirecto
(b) Instrucciones de dos direcciones
9.6. (Modos de direccionamiento) Escriba
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
(e) Instru cc iones de una direcc ión
la secuencia de in strucc iones para cal-
As uma que no hay banco de reg istros
en el procesador. tan sólo puede supo· cular L~:~a, x" do nde A=[a ).1I 2.... a)IXJ
ner la ex i$tencia de un único acumula- y X={.r ).x]. ....x)ool re pre~ent an vecto-
res almacenados en la memoria prin -
dor para la parte (e) . Indique e l núme·
cipal. Utili ce instrucciones de dos
ro de instrucc iones y de accesos a
direcciones, con:
memoria en cada caso.
(a) Direccionamiento directo
9.2. (Fo rmatos de instrucc ión) Resuelva el (b) Direccionamiento indirec to
problema 9.1 suponiendo que hay un (e) Direcc ionamiento indexado con
banco de registros. Tanto para las modo de autoincremento.
direcc iones del banco de reg istros
como para las de memori a utilice: 9.7. (Diseño del repe rt ori o de instruccio-
(a) Instru cciones de una dirección nes) Modifi que el repenorio de ins-
(b) Instrucc iones de dos direcciones tru cciones de la Figura 9.5 ampliando
(e) Instrucciones de tres direcciones el campo de dirección a 22 bits. Esto
M inimice el número de direcciones de puede conseguirse utilizando sólo una
memori a en cada caso. direcc ión del banco de registros en las
instr ucciones de memoria y control y
9.3. (Formatos de in strucc ión) Utili zando asumiendo que los seis bits más signi -
instru cc iones de tres direcciones , fi cati vos están en los campos 5/'c/ y
desarrolle la sec uenc ia de instruccio- Src2. Considere que e l registro RF(OJ
nes para leer y escribir: siempre contiene la base en el modo
(a) Una pila crec iente hac ia direc- de direcc ionamiento relativo.
ciones mayores.
(b) Una co la FIFO 9.8. (Diseño de l repert ori o de instrucc io-
(e) na pi la UFO nes) Asuma que RF(O) es el contador
de program a Pe. Muestre que las ins-
9.4. (Modos de direcc ionamiento) Escriba trucciones Call y RetuJ"n no son nece-
los procedimientos de lectura y escri - saria s al poder ser imp lementadas
tura en una cola FIFO. utilizando un mediante una secuencia de otras ins-
formato de dos direcc iones. con:
tru cciones .
(a) Direccionamiento directo
(b) Direcc ionamiento indirecto 9.9. (D iagrama de nujo IS ) Considere que
(e) Di recc ionamiento relativo pe se encuent ra en RF(O). Modi fique
en consecuencia el diagrama de fl ujo
9.5. (Modos de direcc ionamiento) Esc riba
IS de la Figura 9.6 y e l di ag rama ASM
los proce dimientos para borrar y aña-
mos trado en la Figura 9.8 .
dir elementos a una lista. Asuma que
cada elemento de la li sta utili za dos 9.10. (Repertori o de instrucc iones) Añada
palabras de memori a. la primera con- un registro de base específi co (BR ) al
448 Princ ipios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
(a) Un registro dc base específico
para un x dado. Asuma 3demás que la
(BR)
ALS U puede realizar la multiplica-
(b ) Un registro es pecífi co como
c ión en un ciclo de re loj. Obtenga el
puntero de pi la (SR)
diagrama de tiempos para este proce -
9.12. (Recursos del procesador) Utilizando sador utilizando como modelo el de la
e l mismo procesador de 16 bits. mues- Figura 9.13 .
tre los cambios que requiere el disgra-
9. 18. (Predicc ión de salto) Escriba un pro-
l11a ASM ~ i los accesos a memoria uti-
grama para e l procesador RIS C de la
lizan:
Figura 9.1 2 que calc ule e l valor abso-
(a) Dos c ic los de reloj
luto. Obtenga el diagrama de ti empos
(b) Tres ciclos de reloj
para es te procesador:
(e) Cuatro ciclos de re loj
(a) Sin predicción de saltos
9.13. (Repertorio reducido de instrucc io- (b) Con pred icc ión de saltos
nes) Utili za ndo el re pertori o reduc ido
9.19. (Avance de datos/predicción de salto)
de instruc ciones de la Figura 9 . 11 ,
Escrib a un prog rama en lenguaje
proponga los cambios que le permit i-
ensamblador para un procesador
rían utili zar un ban co de registros
RI SC que calcu le la aprox imac ión de
con:
la raíz cuadrad a (presentada en el
(a ) 16 registros
Capítulo 8):
(b) 32 registros
(a ) Sin avance de datos ni pred ic-
(e) 64 registros
ción de saltos.
(d ) 256 regi stros
(b) Con avance de datos pero si n
9.14. (Repertorio reduc ido de instruccio- predic¡;ión de saltos.
nes) Indique los camhios a reali za r en (e) Sin avance de datos pero con
el repe rtori o de instrucciones de la predicc ión de saltos.
Fig ura 9. 11 para inc rementar e l (d) Con avance de datos y predic-
campo de des plazamiento. ción de sal tfJs.
Apéndice:
Prácticas
de laboratorio
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
En los capítulos anteriores mostramos cómo diseñar circuitos di gitales a nive l de'
puerta. registro y procesador. Después de acabar el diseño en cualquiera de estos
nivel es, debemos asegurarnos de que los circuitos diseñados se comportan como
se pretende , además de satisfacer las restricciones impuestas por algunos paráme-
tros de calidad. Como hemos mencionado antes, los parámetros de calidad más
conocidos son el coste, las prestaciones (la velocidad) y el consumo de energía.
El coste se puede medir mediante el número de transistores, puertas, registros
o procesadores usados en el diseño. Una medida alternativa del coste es el área
de l mi crochip o de la tarjeta de circuito impreso usada para albergar estos com-
ponentes. El coste total se obtiene sumando el número de transistores, puertas o
registros de cada componente en el esquema final. Por otra parte. la medida del
área es más difícil de obtener, ya que requiere calcular el área usada por los cables
y estimar la posición o situación de cada componente en un microchip o en una
tarjeta de circuito impreso.
La velocidad se mide de manera diferente en los di stintos niveles de abstrac-
ción. En los nivel es de transistor y de puerta, se mide el tiempo (retardo de pro-
pagación) que se neces ita para llevar el cambio de la entrada a los conectores de
salida. En el nivel de transferencia entre registros , se mide con el número de cicl os
de reloj o número de estados, mientras que en e l nivel de procesador se mide el
número de instrucciones por segundo o el tiempo de ejecución con los programas
de referencia (bell c/¡II/{/rks) selecc ionados.
La disipación de potencia es igual al producto de la tensión de la fu ente por el
consumo medio de corriente. Como la fuente de tensión normalmente es constan-
te para todo el microchip o tarjeta de circuito impreso, la di sipación de potencia
es proporcional a la corriente media que suministra la fuente de ten sión. En tec-
nología bipolar. como es la familia TIL, las puertas utilizan poca corriente cuan-
do están en corte (off) y mucha más corriente cuando están en conducción (on) .
Por ello, la disipación de potencia es proporcional al número de puertas en esta-
do de conducción y en estado de corte. Con tecnología MOS , las puertas condu-
cen corriente só lo en la transición de O a 1 y de I a O. Así. la disipación de poten-
cia es proporcional al número medio de puertas que cambian su valor de sa lida en
un intervalo de ti empo concreto. En cualquier caso, el número de puertas conmu-
450 Principios de diseño digital
tanda depende principalmente de los datos de entrada y en menor medida del dise-
ño del circuito. De este modo, para medir la disipación de potencia tenemos que
contar el número de puertas en estado "on" o el número de puertas conmutando
considerando un gran número de datos de entrada aleatorios. calc ular la media. y
luego multipli car la cOlTiente nominal de puerta por la tensión de la fuente.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Como hemos exp licado en la sección anterior, utili zamos las prácticas para com-
probar el funcionamiento y otros índices de calidad una vez concl uido el diselio.
El funcionamiento del diseño se puede comprobar de varias fOl1nas.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
salida de la puerta o biestable que estamos observando a los terminales de salida
del ci rcuito y crear un patrón de entrada que propague este cambio de salida hasta
los conectores de salida del circuito donde podamos observarlo con los indicado-
res LEO. Muchas veces no es posible encontrar estos patrones, particulannente en
circuitos sec uenciales con lazos de realimentación internos complejos.
Para medir el retardo de propagación necesitamos un generador de pulsos y un
osc iloscopio multicana\. El generador de pulsos se conectará a una o más entra-
das que permitan la propagación de la secuencia de pulsos a la puerta o biestable
concreto. Las sondas del osci loscop io (un a para cada canal) se conectan a las sali-
das de las puertas o biestables que están bajo observación. De esta forma. pode-
mos comparar las señales de entrada y salida en la pantalla del osciloscopio y
medi r el retardo entre ellas .
La estimación de la potencia es más difícil de calcular. Para circuitos peque-
110s se pueden encontrar el estado o frecuencias de conmutac ión de cada puerta a
partir de su tabla de verdad. Además, si suponemos que a cada patrón de entrada
le sigue otro patrón de entrada con la mi sma frecuencia, podremos obtener la
corriente de cada puerta y promediarla para todas las puertas y para todos los
patrones con objeto de obtener la disipación med ia de potencia. En el caso de cir-
cuitos grandes, tenemos que seleccionar un conjunto de patrones de entrada repre-
sentati vo y usar herramientas CA D para medir el estado o frecuencia de conmu-
tación de las puertas y biestables para lograr la potencia media. Obsérvese que la
potencia media depende del conjunto de patrones de entrada seleccionado. ya que
algunos patrones pueden provocar muchos cambi os en el circuito mientras que
otros pueden producir sólo cambi os mínimos.
Una tarjeta FPGA es parec ida a un a placa de pruebas con la diferencia de que
las tiras de orific ios de conexión y los IC de pequeña escala se sustituyen por
una o más FPGA. Cada FPGA contiene hasta varios miles de puertas como se
describió en la Sección 3. 11 y en la Figura 3.23. La otra diferencia importante
es que los di señadore s no pueden conectar las puertas individualmente, ya que
están encapsuladas dent ro de la FPGA , y en su lugar tienen que programar las
conexiones. Por esta razón neces itamos una herramienta de captura de esque-
mas que conv ierta el esq uema creado por los diseñadores en la pantalla del com-
452 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
mienta de implementación de un diseño que traslada (carga) el esquema captura-
do en los bloques lógicos de la arquitectura de la FPGA, determina la ubicación
óptima de los bloques lógicos y selecciona los canales de interconex ionado que
conectan la lógica con los bloques de E/S.
Para medir la velocidad y la potencia podemos usar, como en el caso de la
placa de pruebas , generadores de pulsos y el osciloscopio para medir el retardo de
propagación de la entrada a la salida y la acÜvidad de conmutación.
ner lo ' valores de salida correctos para cada señal de salida. un simul ador tam-
bi én indica cuando la señal de salida alcanzará este va lor de salida con respecto
al instante en que cambien los valores de entrada. Contabili zando todos los cam-
bios de los valores de salida de todos los componentes dentro de al gún interva lo
de tiempo también podemos calcular la disipación de potencia. Como se men-
cionó anteriormente en esta secc ión , cada simulador re4ui ere una descripción del
circuito digital , que se puede obtener con una herrami enra de capt ura de esque-
mas o mediallle un HDL. Una herram ienta de captura de esquemas permite intro-
duc ir e l esq uema gráficamente mientras 4ue con un HDL se hace mediante tex to.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
Escribir la descripción del di sei\o t!n un HDL determin ado. como e l estándar
YHDL del IEEE o con el lenguaje Yeril og se llama modelado. La ventaja prin -
cipal de los lenguajes HDL es que permiten a los di señadores describ ir circuit os
digitales con diferentes nive les de abstracción. Por ejemplo podemos di señar un
circ uito digital y describirl o espec ifi cando todas sus puertas y bi establ es y sus
conex iones. Por otra parte. podemos desc ribirl o usando expres iones booleanas
para cada entrada del biestable o especi fi cando todas las ll'ansferencias entre
registros en cada ciclo de re loj . Incluso en los niveles más altos de abstracción
podemos describir un procesador usando su conjunto de instrucci ones. En este
caso el modelo es un lazo infinito que contiene una sentencia CASE cuya vari a-
ble CASE es el tipo de instrucción y los campos del código de operaci ón. En este
mode lo de procesador cada iteración del lazo representa un ciclo de ejec ución de
una in strucc ión.
La ventaja de modelar a alto nivel de abstracc ión es la reducción del tiempo
de ejecución de una si mulación. Al acortarse los tiempos de simulación se puede
usar un modelo de conjunto de instrucciones del procesador para depurar un
ensamblador. un compilador o un sistema operativo, mientras se diseña y se fabri -
ca el procesador.
Como el uso de los lenguajes HDL permite a los diseñadores describir ci rcuitos
digitales en nive les de abstracción más altos. podemos aprovechar la ventaja de
estas descripciones más cort as, eficientes y leg ibles y sintetizar automáticamente
di seños de menor ni vel usando distintas herramientas de síntesis.
Por ejemplo, las herramientas de síntesis lóg ica convierten las expresiones
booleanas en puertas y optimi zan el diseño a nivel de puerta para un determinado
coste. velocidad. potencia y biblioteca de puertas, utilizando métodos parec idos a
los ex plicados en el Capítulo 4. Además, las herramientas de síntesis secuencial
minimizan los estados y los codifican para la lógica secuencial y generan ex pre-
siones booleanas para las descripciones ASM y FSM. como se ex plicó en e l
Capítulo 6. Por otra parte, las herramientas de síntesis de comportamiento llevan
a cabo la síntesis de tran sferencia entre registros. incluyendo memoria comparti-
da , unidad funciona l compartida y bus compartido, así como su planificación que
se ex plicó en el Capítulo 8.
454 Principios de diseño di gital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
7). Para medir la velocidad, podemos mejorar la práctica de la placa de pruebas
con generadores de pulsos y osciloscopios de modo que los estudiantes puedan
observar fonnas de onda de distintas señales y medir el retardo y la potencia.
Una práctica más moderna se ría con FPGA, en la que se reemplazarían las
placas de pruebas por tarjetas FPGA y software adicional para trasladar los esque-
mas de diseño a FPGA , que normalmente facilita e,l fabricant e de la FPGA. Esta
prácti ca también se puede usar para medir la potencia y la velocidad, si aI'iadimos
generadores de pulsos y osciloscopios.
También podemos practicar el di sello de componentes digitales usando herra-
mientas de simulación que pueden albergar fácilmente diseijos mayore s que los
de placas de pruebas. Una práctica de simulación utilizaría al menos una herra-
mienta de captura de esquemas conectada a un simulador. Para ensellar HDL y
modelado, acudimos a las prácticas de modelado, en las que los estudiantes
aprenden cómo describir los distintos componentes en di stintos ni veles de abs-
Apéndi ce: Pr<Ícticas de laboratorio 455
tracción y como escribir los modelos para verificar el funcionam iento, los proto-
colos de com unicación, prestaciones. potencia y verificabilidad entre otros. Estas
prácticas de modelado necesitarían una herramienta de simulac ión con un len-
guaje estándar como VHDL o Verilog como procesador frontal.
En cursos más avanzados podríamos utilizar hemunientas de síntes is para
diseñar circuitos dig itales. En una práctica de síntesis lógica los estudiantes des-
cribirían modelos a niveles más altos y di se ñarían circuitos digitales a partir de
mode los descritos. Con objeto de poder comparar, cada circuit o puede diseñarse
primero manualmente y luego sinteti zarlo automáticamente . (Esta materi a se vio
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
en los Capítulos 4 y 6). En las prá cticas de síntesis del comportamiento los
estudi antes harían lo mi smo que en las prácticas de síntesis lógica con la diferen-
cia de que podrían trabajar a partir de conjuntos de instrucciones para sintetizar
procesadores o a panir de descripciones algorítmicas para sin teti zar ASIC. (Esto
se vió en los Capítulos 8 y 9).
En resumen , un laboratorio de diseño típico que se pueda usar en distintos
cursos incluiría un simulador basado en HDL con una herramienta de captura de
esq uemas para los cursos introductorios. y una entrada HDL para los cursos avan-
zados o de modelado. También incluiría tmjetas FPGA con algunos generadores
y osciloscopios para que los estudiantes se hi cieran una idea de lo que es el hard-
ware real y el proceso de fabricación . Las herramientas de síntesis lógica y de
comportamiento serían un útil añadido para los centros de enseñanza con progra-
mas densos en di seño y fabricación .
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
(Sección 5. 11) tos (Sección 7.6)
(h) RAM 4 X 4 (Sección 7.7)
A.5. Diseñe los siguiemes elementos de
almacenamiento usando la biblioteca (i) P ila de inserción/ex tracc ión
de pu ertas que qu iera, ve ri fit¡uc su
(Sección 7.R. Figura 7.20)
comportamiento y cree los diagra- (j ) Co la F IFO de 4 pa lab ras
mas de ti em po para cada transición (Sección 7.9. Figura 7.231
de un estado a otro , (k) Camino de da tos de ~ bi ts
(a) Larch SR (Sección 6. 1) (Sección 7. 10. Fig un. 7.26)
(b) Latch SR con puenas (Sección A.S. Usando los componentes combina-
6.2) cionales y secuenciales diseñauos en
(e) Larch D con pue'llls (Sección 6.3) los Experi mentos A.4, A.S y A.7
(d ) Biestable SR maestro/esc lavo diseñe las siguientes unidades ele
(Sección 6.4) contro l y determine el retardo de l
(e) Biestable J K maes tro/esc lavo peor caso .
(Sección 6.4) (a ) Contro l cableado (Fig ura
(1') Biestable D maes tro/escl avo 7.34( a»
(Sección 6.4) (b) Unidad de control con un regis·
(g) Bi estable T maes tro/esclavo tro de estado y un decodificador
(Sección 6.4) (Figura 7.J4(b))
(h) Biestable D disparado por nan- (e) Unidad de control con un con-
eo (Secc ió n 6.4) tado r (Fig ura 7.34(c))
(i) Bi es ta ble D maes tro/esclavo (d ) Un idad de contro l con un a pila
con puesta a lino y puesta a cero ele in serción/cx tracc ión(Figura
(Sección 6.5) 7.34( d))
(j) Biestable disparado por tlanco (e) Un idad de conlrol microp rogra-
con puesta a uno y puesta a cero mada (Figu ra 7.34(c»)
(Secc ión 6.5)
A.9. Usa ndo su propia biblioteca rediseñe
A.6. Diseñe el contro lado r de un semáfo-
el contado r de unos del Ejemplo 7. 1
ro (Prob lema 6.22). compruebe s u
Yde temline e l menor peri odo de reloj
comportamien to y determine el retar-
operac ional (la mayor rrec uencia del
do de l peor caso entrada/salida.
periodo de re loj) para los ~igll icn tes
A.7. Usando su propia bibl ioteca diseñe casos:
los siguientes ci rcuitos secuenciales. (a) Cami no de datos (Fig ura 7.26)
defi na sus diagramas tle estado, com- y unidad de contro l (Fig ura
pruebe su com pOrlamienlo y deter- 7.34(a»
mine el mínimo pe riodo de reloj (b ) Camino de da tos (Figu ra 7.16)
necesari o para su funcionamiento: y (Figu ra 7. 34(c))
Apéndice: Prácticas de laboratorio 457
(e) Camino de datos (Fig ura 7.26) A.IO. Diseñe un camino de datos y una uni-
y (Figura 7.34(e» dad de control para el algoritmo de
(d) Camino de datos a medida y inserción de campo descrito en el
unidad de co ntro l (Fi g ura Problema 7.20 . Determine también la
7.34(a)) frec uencia operacional mayor para su
(e) Camino de datos a medida y uni- disefio (e l menor peri odo de re loj
dad de control (Fig ura 7.34(c)) posible).
(n Camino de datos a medida y uni-
dad de control (Figura 7.34(e))
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
A.4. EXPERIMENTOS DE SIMULACiÓN
A.II-20. Repita los experimentos de la sec- even tos para validar el funciona-
ción anterior. En vez de la placa de miento. y delemline retardos. cami-
pruebas use una herrami enta de cap- nos crít icos. e l retardo entrada/s alida
lum de esquemas para especificar el del peor caso y la mayor frecuencia
diseño y un simulador dirigido por operacionnl.
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
trabajar co n cua lquier número de bits
mi entras qu e el modelo estru ctural
entre I y 64. En otras palabras. e l
contiene cinco co mponentes di stin -
número de bits 11 debe ser un paráme-
tro del generador de modelos que
tos. a saber. el selec tor. el fichero de
produzca e l mode lo adecuado al registros. la ALU. e l desplazador y el
adaptador del bus. C ada compon ente.
número de bit s especificado por el
parámetro JI. Verifique su generador
a su vez, se define por sus propios
modelos estru ctural es o de comporta-
para 4, 7, 14. 29 Y 60 bits.
miento.)
A.24. Desarroll e mode los de comporta-
mi ento y estructural para: A.26. Desarrolle e l modelo para el diseño a
(a) Pila de in serción/ex tracc ión con m edida de un co ntador de unos
-reg istro s de de splazamiento (Figura 8.6) a partir de su diagrama
(Figura 7.20) ASM y compáre lo con el m.,dclo
(b) Pila de inserc ión y extracc ión desanollado a partir de su imple,.>n-
con memoria (Fi gura 7.2 1) tac ión (Figura 8.8).
(e) Cola FIFO con registros de des- A.27. Desarrolle los mode los de comporta-
plazamiento (Figura 7.23) mi en to. de tran sferenc ia entre reg is-
(d) Co la FIFO con me moria tros (diagrama ASM) y estructural
(Fig ura 7.24) para la müquina de Black-Jack des-
(Ayuda: el modelo de comportamien- erita en el Problema 8.6.
to describe la función de la pila o la
cola pero no sus co mponentes. mi en- A.l8. D esalTolle los modelos de conjunto
tras el modelo estructural est:.i fonna - de in strucciones (d iagrama de flujo
do por todos los co mponentes inter- del conjunto de in strucciones de la
conectado s con cada component e Figura 9.6) y de tran sferencia entre
descrito por su modelo de comporta- regi stro s (d iagrama ASM de la Figura
miento o es tru ctural desaJTollado en 9.8) para e l procesador CISC definido
los Experimentos A.2 l Y A.22. ) por el co njunto de im;trucciones de la
Figura 9.5. Desarrolle también los
A.25. Desarrolle mode los de comporta- dos modelo s anteriore s para el proce-
miento y estru ctural para el co ntador
sador RIS C definido por e l conjunto
de linos que se mu es tra en la Fi gura
de in struccione s de la Figura 9.11 y
7.31.
compare amhos modelos.
(Ayuda: e l mode lo estru ctural se
compone de la unidad de control y A.29. D esarrolle modelos estru ctural es de
los componente s del ca mino de datos los procesadores CISC (Figura 9.9) y
que ti enen sus propios modelos de RIS C (Figura 9. l 2) Y páse le los test
comportami ento y estructurales. El con el código de referencia dado en
modelo de comportamiento de la uni- las Figuras 9.13. 9.1 4 . 9.15 y 9.16.
Apéndice: Prác ticas de laboratorio 459
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
E xperim ent o A. 2 1 con co mponent es (Secc ión 7.5)
combinacionales y sintetice cada (g) Fichero registro con 2 puertos
componente con herramientas de sín- (Secc ión 7.6)
tes is lógica. Compare los resultados (h) RAM 4 x 4 (Secc ión 7.7 )
de la sínt esis lógica con los dise ii os (i) Pila de inserción/extmcción de 4
de l Capítulo 5 para : palabras (Sección 7.8. Figur:¡ 7.20)
(a) Sumad or con acarreo en casca- (j) Co la FIFO de 4 palabras
da de 4 bit s (Secc ión 5. 1) (Secc ión 7.9. Figura 7.23)
(b) Generad or de acarreo antic ipa· (k) Camino de datos de 8 bits
do de 4 bits (Secc ión 5._ ) (Secc ión 7. 10. Figura 7.26)
(e) Unidad lóg ica de 4 bit s
A.32. Sinteti ce las ve rsi ones ba sadas en
(Sección 5.4 )
(d ) ALU de .¡ bits (Sección 5.5) estados y basadas en entradas del
(e) Decod ificador de ~ a 3 (Sección contador de unos a part ir de sus
5.6) modelos de tran sferencia elllrc regis-
(1') Se lector de X a 1 (Sección 5.7) tros (diagramas ASM ) dados en la
(g ) Codifi cador de prioridad de 8 a Fi gura 8.6.
3 (Secc ión 5.9) A.33. Sillletice las versiones basadas en
(h ) Comparador de magnitud de 4 estados y basadas en entradas del
bi ts (Sección 5. 10) t ontador de unos a partir de sus
(i) Desplazador/rotador de izquier· modelos de com portamiento.
d,Vderccha de 4 bits (Sección 5. 11 ) (Ay uda: Los modelos de comporta-
(j) Des plazador en bloques de mi ento no ti enen variables ele reloj ).
izqu ierda/derecha de 8 bit s
(Sección 5. 11 ) A.34. Sintetice la máqu ina de Black·Jack a
part ir de sus modelos de comporta-
A.31. samio los modelos de tran sferencia mi ento. de tran sferencia entre regis-
entre registros (c iclo de reloj) desa· tros y estructural desarrollados en el
rroll ados en e l Experimento A.22 Ex pe rimento A.27 usando he rra-
para componentes sec uenciales. sin - mientas de sínt es is de comport a-
tetice cada componente con he na- miento. secuencial. y lóg ica.
mjentas de sínt esi s secuencial.
Compare los resultados con los di se- A.35. Sintetice: el algoritm o de aproxima-
ños manuales de : ción a la raiz cuadrada (Fi gura 8.9) a
(a) Reg istro de 4 hits (Secci ón 7. 1) partir de sus mode los de co mporta-
(b) Registro desplazador de 4 bits miento y de transferencia entre regis-
(Sección 7.2) tros ( diagrama s AS M ). Repita la sín -
(e) Contador de 4 bits (Secc ión 7. 3) tes is para (a) la sencilla bibl ioteca de
(el) Contador ascendente/deseen· la Fi gura 8.1 1. y (b) la compleja
dente de 4 bits (Sección 7 ..\) bi blioteca de la Figura 8.20.
460 Princi pios de diseiio di gital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
,/
Indice
A b~nco de rcgistros. 290 circu itos lógkos. Y'+
b~ls;.¡do en estado, 243. 248 circ uitos secuencia les
acarreo anticipado. I R3 b¡¡s¡¡do en la en trada. 24~. 248 asíncronos. 2~2
Ilc umulad o r. 312. 410 b"se. 30 codi ficación de l uno ca lil!ntt! .
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
adaptudor tri es tado. 200 base binari a. 3 1 261
biblioteca de componen tes. 13 ('odilicadore~de prioridí.ld. 200
.\lge bro boo leo"o. 73
(¡ Ige bra de co nmutación. 73, 76 bibliotcc ~1 de pucr1as. 9~ código. 54
olgoritmo ALAP. 391 biestable di spar:¡do por nanco. código biqui nario. 56
algoritmo ASAP. 391 231 código de detección de errores.
algoritmo de lado izqui e rdo. bies lab lc JK. 23, 59
),3 bicst"blc SR. 235 código de 3 en eXl:Cso. 56
bies tab les maes tro/esclavo. cód igo de ope ración. -l07
algoritmo de planificac ión de
li SIo. 393
230-23 1 códi go de paridad impar. 60
biestable,> sensibles al nivel. cód igo de paridad par. 60
almacenar instrucc iolll'!\. 40&
229 codigo 242 1. 56
alto acti vo. 223
bi ts de infonnadón. 60 código Hamming. 62
ampliado r de memoria. 1f!9
bits de relación. ~21 código 8-121. 56
mnpli.tdor lógico. ISlJ
bloque ASM. 33R código ponde rado. 56
:'lI1álisis. 240
booleana bi va luada álgebra. 7~ códigos de corrección de
ancho de l pu lso de escri tura.
bus. 199 errores. 62
29R códigos de paridod de 1 bit. 60
í.lproxim:lción a medida. 120
co la. 307
aprox imación
121
sc.! l11i-a - l11 cd id ~l .
e co lec lor abierto, 11 2
coma binario. 31
urco de incompatibilidad. 359 caja de dec is ión. 338 com~1 de kl base. 30
arco prioritario. 359 coj" de es IOdo. 33~ comparadores. 203
array de pue rt as. 121 caja de srll ida condiciona l. 338 compart ición del bus. 353
arrays lóg. icos programables cambio de bit m{nimo. 259 compar1ición de
(PLAs). 2 13 cami no crít ico. 167 me moria/regist ro. 349
ASC II , 56 camino de dato!' paralelas. 3 1~ compartición de unll unidad
AS Ie. -106 campo constallte. 409 fun cional. 35 1
asociación o agrupac ión de campo de direcciones. 407 compilodor. -106
conex iones. 35 J campo de modo. 408 complemento a 10. ..t J
asociac ión o ag rupación de campo programable compleme nlO a dos. 42
operadores. 35 1 aproximación de. 123 completamente especificado. 1..t7
asociación o agrupac ión de captum de esqucma. 17 componentes analógicos. 9
voriobles. 3-19 característica, 52 comportamiento. 4. 18
asoci::lIividad. 72 carga estándar. 107 condi ciones de indifercnci¡l.
aUlOcomplcmcnlación. 56 ca rrera críti ca. 225 148
a ut odecremento. 4 15 ce lda. 10 cone,cliv idud de sa lida (fall
autoincreme lll o. 415 cel da de memoria . 295 0/1/ ), 107
~vance de dmos. -141 celdas del b,lI1cO de reg istros. conjunto. 72
axiolll~\s . 72 290 conjunto de instrucciones. '+06,
c hip. 117 422
ciclo útil. 223 conmutatividad. 73
B cierre. 72 con lador. 283
circ uito integrado de aplicación contador
bajo ~\ c li vo. 223 específica (AS IC\, 406 nscendeme/desccndente. 2X3
462 Principios de diselio digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
entradas asínc ronas. 238
equivale nc ia de
o comportamient o, 254
eq ui valenc ia de es tados, 2 55 imp licante primo. 134
decodificador de cOIrecc ión de e rror. 57 impli cante primo cse nci.d. 90.
errores, 62 escala de integración grande. 134
decodificadores. 193 11 8 implicantc pri mo gene ración de
decodificando. 62 esca la de int egrac ión med ia. la . 144
demultipl exores. 193 11 8 implicailtcs. 89
dependenc ia de los datos. 438 escala de illlegración peque ña , imp licar. 89
desbordamiento. 44. 5 1 11 7 incomple tame nte espec ificado.
desbordamie nro en coma especificac ión de l produ cto. 12 147
n Olanl e. 54 esquema. 17 in strucc ión. 407
descomposición de términos. establ ec imi ento de los datos. instrucc ión de sa lt o. 40X
160 297 instruccio nes de carga. 408
desc ripción ele l hardware c!)lado ele puesta a cero. 223 instrucc ione s de dos
lenguaje de. 17 es tado de l conjunto. 223-224 direcc iones. 410
des plazador en bloque, 209 evn luilción del tes t. 20 in strucc iones de mov imiento.
desplazadore s. 207 extensión de l signo. 43 408
destinos de conexión. 370 ex.pre siones booleanas. 79 in strucc iones de tres
detenci ón del cauce, 435 direcciones. 409
diagrama ASM. 340 instrucc iones registro, 408
diagrama de bloques, 13 F integración a mu y gran esca la.
diagrama de flujo. 5. 42 I 11 8
diagrama de flujo de un fina l de lazo. 311
conjunto de in strucciones, fonna canónic¡1. 87
4 17 fonn a estándar. 89 L
diagrama de máquina frecuencia de l re loj . 223
al gorítmica de estados FSM con cam ino de datos, 333 laleh D. 235
(ASM).338 FSM de Mea ly. 248 latch D sincroni zado. 227
diagramas AS M de FS M Moore. 248 latch si ncron izado. 226
procesadores. 417 fu e lll cs de conex ión, 370 l"leh SR. 223
di gital anal ógico (DIAl . 9 fun c iones. 79 lat ch SR sinc ron izado . 227
dígilO más significante. 3 1 lateh T, 235
dígito menos significante. 3 1 litem!. 79
dígitos decimales codifi cados G lóg ica. 114
en binario. 55 lógica d iodo-transistor. I11
dirección actual. 4 12 generac ión de mapas, 143 lóg ica tl'an.'i istor-tran sistor, 111
direcc ión efec tiva . 4 12 generación de patrones de tes t.
di sipación de potenc ia. 109 19
di sposilivos de E/S. 4U6 ge ne rador. 183 M
di stancia. 59 grá fi co de control/diagrama de
di stancia de Hamming. 59 Oujo. 389 mapa, 13.+
di stributividad.73 gr"ro de compalibilidad. 357 mapa de ci nco variables. 139
Índice 463
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
memoria de sólo lectura. 209 predi cción de solitOS . . .J.-I-5 s~c.: u enci.aI tipo Me~ly c ircuit o.
memorias de acceso directo. primero e n entrar primero e n 243
293 sal ir. ]06 sccuenc ial e... Mncronos
memorias no voJ¡i til es. 196 princ ipio de dualidad . 7S circ uitos. 212
memorias volátiles. 295 prioridad e n adyacencia segme ntación, 3HO
método de tabu lac ión. 150 estrateg ia. 260 sc:l ección del im plicante
me todol ogía de di se l o. 12 proceso ele di ~eño . 12 ese nc ial. 1-1--1-
mic roprog ramación. 32-1- produClO. 89 '>e lec tor. 195
mintellll. 83 produc to de sumas. g9 selec tor o multiplexor. 196
mintenllS O. 83 programa. 407 se micondu ctor l11 e lal ~óx id o.
milltenn s illdiferelllcs. I...J.S puerta c;lblead;¡ AN O. 11.3 I I~
minte nll s l . R3 pue rta lógica. 94 st: llli sumadores. 2H5
modo de d ireccionami ento pue rt as compl ejas. 100 se ñal digita l. 9
directo. -1-1 J plll! rtas es t ~índar. 94 Señales de puesta ti cero (clear).
modo de direccionamicllIo puesta .1uno (preset) asíncrona. 279
impl icndo. -I- I .~ 279 sesgo. 52
modo de d irecc ionami enlO pul so del re loj. 223 s imulaci ón. 18
indexado. 4 15 pu lso es púreo. 170 síntesis de a lto nivel. IR
modo de direccionamicllIo síntesi s de arquitec tur.l. 14
indirec to. -1- J3 síntesis de l sistema. 14
modo de direccionamiento R sílll esis lógica, 16
inmediat o. 4 13 sín tes is secue ncia l. 14. 18
modo de direcc iol1<l11lic l11 0 RAM dimími ca. 295 siste ma pos icional. JO
relat ivo. -1- 14 RAM cS I..iti ca. 295 sistema digital. 1)
mód ul os. 1I r.mgo. 52 siste ma de numeración oc l ~.II . 3 J
MOS com pl ementari o. 1J-I- reali zac ión del produclo. 15 sistema en compl emento base.
mov ilidad. 39-1- redes lóg icas. 94 41
IllLl hi cicJo. 377 reg istro. 278 sistema en signo y magnilUd,
reg istro de ca rga paralela. 2~:W 39
reg istro de cOlllroL 386 sistema lógico negm ivo. 104
reg istro de desplazamie nto . 28 1 sistema lógico positi vo. 104
N regi stro de estado. 3M6 subcubos de orden 111. 58
registro in strucc ión. 416 subida . 112
ni vel de registro. 11 re loj. 222 suma. 89
nivel de procesador. II representación estruc tural . 4 suma de productos. 89
ni ve l de Iran s i~ t or. 10 represe ntac ión física. 5 sumado!" con acarreo e n
nivel de pue rta. 1I rcpre se lll ación fun c iona l. 4 casc ada. 181
núme rOs en coma Il ot;lllte. 5 1 restri cc ión de tiempo, 395 sum<ldor complelO. ISO
restri cción de tiempo sumad or/restador. 187
planificac ión con. 395
retard o de propagac ión, 110
o re te mporizac ión. 162 T
ri esgo. 171
ope rador binario. 72 riesgo O está! ico. 170 ti.lbla carac terística. 236
464 Principios de diseño digital
© Del documento, de los autores. Digitalización realizada por ULPGC. Biblioteca Universitaria, 2011
297
tiempo de establecimiento de
transistor-resistor lógico. 111
transistores de bajada. 112
v
direcciones. 297 traslación a la tecnología, 157 ve rificadores de equi va lencia.
ti empo de habililación de tri-estado, 11 3 18
salida. 279 truncaci ón del signo. 43 ve rificadores temporales, 18