Contenido
lr
t
I
PREFACIO
v l
S I S T E M A SE I N A R I O S 't-'l Computadores digiialesy sistemasd¡gitales t-z Númerosbinarios 4 t-5 Conversiones entre númerosde based¡ferente y octales 9 1-4 Númeroshexadecimales -5 Comolementos I I -6 Códigosb¡nar¡os | 6 Almacenamiento de binariosy regislros 23 -8 Lógicabinaria 26 -q Circuitosintegrados3l Referencias 33 Problemas 33 A L G E B R AD E B O O L EY C O M P U E R T A S LOGICAS z-l
2-2 2-3 2-4 2-5 2-6 2-8
Def¡n¡ciones lógicas 36 del álgebrabooleana 38 Definiciónaxiomática Teoremasbásicosy propiedadesdel álgebrade Boole 4l Funcionesbooleanas 45 Formascanónicay normalizada 49 Otrasoperacioneslógicas 55 Compuertaslógicas digitales 58 Familiasde circuitosintegradoslógicodigitales 62 Referencias 70 Problemas 7l
36
CONTENIDO
S I M P L I F I C A C I ODNE F U N C I O N E S DE BOOLE
3-1 3-2 3-3 3-4 3-5 3-6 3-7 3-8 3-9 3 -1 0 3-11 3 -1 2
L O GI C A C O MB I N A C I O N A L 4-1
4-2 4-3 4-4 4-5 4-6 4-7 4-8
4-E
75
E l m é t o d od e l m a p a 7 5 , Mapas de dos y tres variables 7Sr/ M a p a d e c u a t r ov a r i a b l e s g O X M a p a s d e c i n c o y s e i s v a r i a b l e sx . g 3 S i m p l i f i c a c i ó nd e u n p r o d u c t o d e s u m a sy , g 6 E j e c u c i ó nc o n N A N D y N O R Sg O t r a s e j e c u c i o n e sc o n d o s n i v e l e s g 6 C o n d i c i o n e sd e N O i m p o r t a I 03 E f m é t o d od e l t a b u l a d o I O s D e t e r m i n a c i ó nd e f o s p r i m e r o s implicados lOs S e l e c c i ó nd e l o s p r i m e r o s i m p l i c a d o s | || O b s e r v a c i o n e sc o n c l u y e n t e s | |s Referencias | | s Problemas | | 6
fntroducción | 20 P r o c e d i m i e n t od e d i s e ñ o | 2l Sumadores 123 Sustractores | 27 C o n v e r s i ó ne n t r e c ó d i g o s l30 P r o c e d i m i e n t o d e a n á "i sf i s | 3g C i r c u i t o sN A N D d e m u f t i n i v e l | 36 C i r c u i t o sN O R d e m u ¡ t ¡ n ¡ v á i t44 L a s f u n c i o n e so R e x c r u s i v ay ' de equivarencia r4g Referencias I 54 Problemas I 54
L O GI C A C O MB I N A C I O N A L C O N M S I Y L SI 5-1 fn t r o d u c c i ó n I S g 5-2 S u m a d o r p a r a l e l ob i n a r i o | 60 5-3 S u m a d o rd e c i m a l | 6 6 5-4 C o m p a r a d o rd e m a g n i t u d e s | 70 5-5 Decodificadores | 7 | 5-6 Muftiplexores I gl 5-7 M e m o r i a d e s o l o l e c t u r a( R O M ) 188 5-8 A r r e g f o l ó g i c o p r o g r a m a b l e( p L A ) 195 5-9 Notas concluyentes 20l R e f er e n c i a s 2 0 2 Problemas 2O3
120
159
I
I
CONTENIDO
LOGICA SECUENCIAL 6-1 6-2 6-3 6-4 6-5 6-6 6-7 6-8 6-9
8-4 8-5 8-6 8-7 8-8 8-9 8 -1 0 8-11 8 -1 2
265
lntroducción 265 Registros 266 R e g i s t r o sd e d e s p l a z a m i e n t o 2 7 2 C o n t a d o r e sd e r i z a d o 2 8 2 C o n t a d o r e ss i n c r ó n i c o s 2 8 6 S e c u e n c i ad se tiempo 295 L a u n i d a dd e m e m o r i a 3 O O E j e m p l o sd e m e m o r i a d e a c c e s oa l e a t o r i o 3 0 6 R e f er e n c i a s 3 l 2 Problemas 3l3
L O GI C A D E T R A S F ER E N C I AD E R E GI S T R O S
8-1 8-2 8-3
208
fn t r o d u c c i ó n 2 0 8 F l i p - lf o p s 2 l O D i s p a r od e l o s F l i p - lf o p s ( t r i g g e r i n g ) 2 t 6 A n á l i s i sd e l o s c i r c u i t o ss e c u e n c i a l e st e m p o r i z a d o s 2 2 4 R e d u c c i ó nd e e s t a d o sy a s i g n a c i ó n 2 3 1 T a b l a sd e e x c i t a c i ó nd e l o s F l i p - f l o p s 2 3 7 P r o c e d i m i e n t od e d i s e ñ o 2 4 0 D i s e ñ od e c o n t a d o r e s 2 5 1 D i s e ñ od e e c u a c i o n e sd e e s t a d o 2 5 5 R e f er e n c i a s 2 5 9 Problemas 260
R E GI S T R O S C O N T A DR OE SY U NI D A DD E M EM OR I A 7-1 7-2 7-3 7-4 7-5 7-6 7-7 7-8
v
lntroducción 3 | 6 T r a s f e r e n c i ae n t r e r e g t s t r o s 3 l 9 M i c r o o p e r a c i o n e sa n t m é t i c a s ,l ó g i c a sy desplazamiento 327 P r o p o s i c i o n e cs o n di c i o n al e s de control 332 D a t o sb i n a r i o sd e l p u n t o f i j o 335 S o b r e c ap a c i d a d 3 3 I Desplaza m i e n t o sa r i t m é t i c o s 3 4 1 D a t o sd e c i m a l e s 3 4 3 D a t o sd e l p u n t o f l o t a n t e 3 4 5 D a t o sn o n u m é r i c o s 3 4 8 C ó d i g o sd e i n s t r u c c i ó n 3 5 2 D i s e ñ od e u n c o m p u t a d o rs e n c i l l o 3 5 7 Referencias 366 Problemas 366
316
--
V¡
9
CONTENIDO
D I S E Ñ OL O G I C OD E P R O C E S A D O R E S 9-1 9-2 9-3 9-4 9-5 9-6 9-7 9-8 9-9 9-10
10
1O-7 10-8
11
Introducción 372 O r g a n i z a c i ó nd e l p r o c e s a d o r 3 7 3 U n i d a d l ó g i c aa r i t m é t i c a 3 8 2 D i s e ñ od e u n c i r c u i t oa r i t m é t i c o 3 8 3 D i s e ñ od e l c i r c u i t ol ó g i c o 3 9 O D i s e ñ o d e u n a u n i d a d l ó g i c aa r i t m é t i c a 3 9 3 Registro de condición 396 D i s e ñ o d e u n . r e g i s t r od e d e s p l a z a m i e n t o 3 g g Unidadprocesadora 4Ol D i s e ñ od e l a c u m u l a d o r 4 0 6 Referencias 417 Problemas 417
D I S E Ñ OD E L O G I C AD E C O N T R O L 1 O -1 1O-2 10-3 10-4 10-5 1O-6
Introducción 423 O r g a n i z a c i ó nd e l c o n t r o l 4 2 G C o n t r o ld e c o m p o n e n t e sa l a m b r a d o s- E j e m p l o1 C o n t r o ld e m i c r o p r o g r a m a 4 4 1 C o n t r o ld e l a u n i d a d p r o c e s a d o r a 4 4 7 C o n t r o l a b a s e d e c o m p o n e n t e sc o n e c t a d o s E j e m p l o2 4 5 2 C o n t r o ld e l P L A 4 6 1 S e c u e n c i a d od r el microprograma 464 Referencias 471 Problemas 472
D I S E Ñ OD E C O M P U T A O O R E S 1 1 -1 11-2 11-3 11-4 11-5 11 - 6 11-7 11 - 8
372
Introducción 477 C o n f i g u r a c i ó nd e l s i s t e m a 4 7 8 I n s t r u c c i o n eds e c o m p u t a d o r 4 8 2 Sincronización de tiempo y control 4Sg E j e c u c i ó nd e i n s t r u c c i o n e s 4 g O D i s e ñ o d e l o s r e g i s t r o sd e c o m p u t a d o r 4 9 7 D i s e ñ od e l c o n t r o l 5 O 3 C o n s o l ad e l c o m p u t a d o r S l 2 Referencias 5l3 Problemas 5l4
423
431
477
CONTENIDO
12
D I S E Ñ OD E L S I S T E M AD E L M I C R O C O M P U T A D O R 12-1 12-2 12-3 12-4 12-5 12-6 12-7 12-8
13
518
lntroducción 5l8 O r g a n r z a c i ódne l m i c r o c o m p u t a d o r 5 2 1 O r g a n i z a c i ó nd e l m i c r o p r o c e s a d o r 5 2 6 I n s t r u c c i o n e ys m o d o s d e d i r e c c i o n a m i e n t o 5 3 4 P i l a , s u b r u t i n a se i n t e r r u p c i ó n 5 4 3 O r g a n i z a c i ó nd e l a m e m o r i a 5 5 4 I n t e r c o n e x i ó nd e e n t r a d a - s a l i d a 5 5 9 A c c e s od i r e c t o d e m e m o r i a 5 6 9 Referencias 574 Problemas 575
C I R C U I T O SI N T E G R A D O SD I G I T A L E S 13 - 1 13-2 13-3 13-4 13-5 13-6 13-7 13-8
vii
579
Introducción 579 C a r a c t e r í s t i c adse l t r a n s i s t o rb i p o l a r 5 8 1 C i r c u i t o sR T L y D T L 5 8 5 L ó g i c ad e i n y e c c i ó ni n t e g r a d a ( l ' z L ) 5 8 9 (TTL) 591 Lógica de transistor-transistor ( E C L) 600 L ó g i c ad e e m i s o r a c o p l a d o S e m i c o n d u c t o rd e ó x i d o d e m e t a l ( M O S ) 6 0 4 M O S c o m p l e m e n t a d o( C M O S ) 6 0 8 Referencias 6lO Problemas 6l O
A P E N D I C E : R e s p u e s t a sa p r o b l e m a ss e l e c c i o n a d o s
613
INDICE
625
Prefacio
La lógica digital trata de la interconexión entre componentes digitales y módulos y en un término usado para denotar el diseño y análisis de los sistemas digitales. EI ejemplo más conocido de un sistema digital es un computador digital para propósito general. Este libro presenta los conceptos básicos usados en el diseño y análisis de los sistemas digitales e introduce los principios de la organízacíón del computador digital y su diseño. Presenta varios métodos y técnicas adecuados para una variedad de aplicaciones de diseño del sistema digital. Cubre todos los aspectos del sistema digital desde los circuitos de compuertas electrónicas hasta la estructura compleja de un sistema de microcomputador. Los Capítulos t hasta 6 presentan técnicas de diseño de lógica de diseño desde el punto de vista clósico. El álgebra de Boole y las tablas de verd a d s e u s a n p a r a e l a n á l i s i s y d i s e ñ o d e l o s c i r c u i t o s c o m b i n a c i o n a l e sy l a s técnicas de transición de estado para el análisis y diseño de los circuitos secuenciales. Los Capítulos 7 hasta el 12 presentan métodos de diseño de sistemas digitales desde el punto de vista de trasferencia entre registros. EI sistema digital se descompone en subunidades de regirqtrosy el sistema se especifica con una Iista de proposiciones de trasferencia entre registros que describen las trasferencias operacionales de la información almacenada en los registros. El método de trasferencia entre registros se usa para ei análisis y diseño de las unidades del procesador, unidades de control, un procesador central de computador y para describir las operaciones internas de microprocesadores y microcomputadores. El Capítulo 13 trata de la electrónica de los circuitos digitales y presenta las familias lógicas digitales más comunes a base de circuitos integrados. Los componentes usados para construir sistemas digitales se fabrican en la forma de circuitos integrados. Los circuitos integrados contienen una gran cantidad de circuitos digitales interconectados dentro de una pequeña pastilla. Los dispositivos (MSI) de integración a mediana escala conforman funciones digitales y los dispositivos (LSI) de integración a gran escala conforman módulos de computador completos. Es muy imporante para el diseñador lógico, familiarizarse con los diferentes componenviii
X PREFACIO
ix
tes digitales encontrados en la forma de circuitos integrados. Por esta razón muchos circuitos MSI y LSI se introducen a lo largo del libro y se explican completamentesus familias lógicas.El uso de circuitos integrados en el diseño de sistemas digitales se ilustra por medio de ejemplosen el texto y en los problemasal final de los capítulos. Este Iibro fue planeado originalmente como una segundaedición del diseñn lógico de computadores,del autor (Prentice-Hall, rg72). Debido a la gran cantidad de material nuevo y a las revisionesextensasque se han llevado a cabo, parecemás apropiadoadoptar un nuevo título para el texto presente. Alrededor de un tercio del texto es material que apareceen el Iibro anterior. Las otras dos terceraspartes constituyen información nueva o revisada. Los factores fundamentalespara las revisionesy adiciones surgen de las desarrolladasen la tecnologíaelectrónica digital. Se da un gran énfasis a los circuitos MSI y LSI y a los métodosde diseño que usan circuitos integrados.El libro cubre varios componentesLSI de la variedad de grupo de bits y microcomputador.Presentaaplicacionesde Ia meryroria de sólo lectura (RoM) y del arreglo lógico programable(PLA). sin embargo, los adelantos posterioresen el método de diseño de trasferenciaentre registros,demandauna nueva redacciónde la segundaparte del libro. El capítulo 1 presentavarios sistemasbinarios adecuadospara representar información en componentesdigitales. El sistema de númerosbinarios se explica y se ilustran los códigosbinarios para demostrar la representación de la información decimal y alfanumérica. La lógica binariá se introduce desde un punto de vista intuitivo antes de proceder con una definición formal del álgebrade Boole. Los postuladosbásicosy teoremasdel álgebra de Boole se encuentran en el Capítulo 2. Se enfatiza la correlaciónentre las expresionesde Boole y sus compuertas de interconecciónequivalentes.Todas Ias operaciones Iógicasposiblespara dos variables se investigan y a partir de elló se deducen las compuertasdigitales disponiblesen Ia forma de circuitos integrados se presentanal comienzode este capítulo, pero se deja para la última parte del capítulo el análisis más detallado para describir Ia construcción interna de las compuertas. . rll capítulo 3 presentael mapa y los métodosde tabulado para simplificar las funciones de Boole. El método del mapa se usa para simplificar circuitos digitales construidoscon AND, OR, NAND, NOR, y compuertas lógicas alambradas. Los diferentes procesosde simplificación se sumarizan en forma de tabla para una referenciafácil. Los procedimientosde diseño y análisis de los circuitos combinacionales se presentan en el Capítulo 4. Algunos componentesbásicosusados en el diseño de sistemas digitales,-tales como sumadoresy convertidores de código son introducidos como ejemplosde análisis y diseño. El capítulo investiga configuracionesposibles usando circuitos combinacionalesde multinivel NAND y NOR. El capítulo 5 versa sobre los componentesMSI y LSI de lógica combinacional. A menudo se explican funcionestales como sumadorei paralelos, decodificadoresy multiplexores, y se ilustra con ejemplossu uso en el diseño de circuitos combinacionales.La memoria de sólo lectura (RoM) y el arreglo lógico programable(PLA) son introducidos y se demuestrasu utilidad en el diseñode circuitos combinacionalescomplejos.
4^^idE
f, .Á
-/-
PREFACIO
El Capítulo 6 esboza varios métodos para el diseño y análisis de los circuitos secuenciales temporizados. El capítulo comienza presentando varios tipos de flip-flops y la forma como ellos son disparados. El diagrama de estado, tabla de estado, y las ecuaciones de estado se presentan como herramientas convenientes para analizar los circuitos secuenciales. Los métodos de diseño presentados, trasforman el circuito secuencial a un grupo de funciones de Boole que especifican la entrada lógica a los flip-flops del circuito. Las funciones de entrada de Boole se derivan de la tabla de excitación y se simplifican por medio de mapas. En el Capítulo 7, se presentan una variedad de registros, registros de desplazamiento y contadores similares a aquéllos disponibles en la forma de circuitos integrados. Se explica la operación de la memoria de acceso aleatorio (RAM). Las funciones digitales introducidas en este capítulo son los bloques de construcción básicos a partir de los cuales se pueden construir sistemas digitales más complejos. El papítulo 8 introduce un método de trasferencia entre registros para describir los sistemas digitales. Este muestra cómo expresar en forma simbólica la secuencia de operación entre los registros de un sistema digital. Se definen símbolos para trasferencia entre registros, microoperaciones aritméticas, lógicas y de desplazamiento. Se cubren en detalle los diferentes tipos de datos almacenados en los registros de los computadores. Se usan algunos ejemplos típicos para mostrar cómo se presentan las instrucciones de computador en forma binaria codificada y cómo las operaciones especificadas por instrucciones pueden ser expresadas con proposiciones de trasferencia entre registros. El capítulo concluye con el diseño de un computador muy sencillo para demostrar el método de trasferencia entre registros del diseño de sistemas digitales. El Capítulo 9 tiene que ver con la unidad procesadora de los computadores digitales. Se discuten alternativas para organizar una unidad procesadora con buses y memorias tapón (Scratchpad memory). Se presenta una unidad lógica, aritmética típica (ALU) y se desarrolla para el diseño de cualquier otra configuración de ALU. Se presentan también otros componentes encontrados comúnmente en los procesadores, tales como registros de condición y desplazamiento. Se comienza el diseño de un registro acumulador para propósitos generales, comenzando a partir de un grupo de operaciones de trasferencia entre registros y culminando con un diagrama lógico. En el Capítulo 10 se introducen cuatro métodos de diseño de lógica de control. Dos de los métodos constituyen un control alambrado con circuito impreso. Los otros dos introducen el concepto de la microprogramación y cómo diseñar un controlador con un arreglo lógico programable (PLA). Los cuatro métodos son demostrados por medio de ejemplos que muestran el d,esarrollo de algoritmos de diseño y el procedimiento para obtener los circuitos de control del sistema. La última sección introduce un secuenciador de microprograma LSI y muestra cómo se puede usar en el diseño de una unidad de control de microprograma. El Capítulo 11 está dedicado al diseño de un computador digital pequeño. Los registros en el computador son definidos y se especifica el conjunto de instrucciones del computador. La descripción del computador se
I
PREFACIO
xi
formaliza con las proposicionesde trasferencia entre registros que especifican las microoperacionesentre los registros, lo mismo que las funciones de control que inician esas microoperaciones.Se muestra entonces que el conjunto de microoperacionespuede usarse para diseñar Ia parte procesadora de datos del computador. Las funciones de control en la lista de proposiciones de trasferencia entre registros, suministran la información para el diseño de la unidad de control. La unidad de control para el computador se diseña por medio de tres métodos diferentes: el control alambrado con circuito impreso,el control PLA y el control del microprograma. El Capítulo 12 es enfocado sobre varios componentesLSI para formar un sistema de microcomputador.La organización de un microprocesador típico se describey explica su organizacióninterna. Un conjunto típico de instruccionespara el microprocesador,se presentay se explican varios modos de direccionamiento.La operaciónde una pila y el manipuleo de las subrutinas e interrupciones,se cubre desdeel punto de vista de los materiales. El capítulo ilustra también la conexión de las pastillas de memoria al sistema de bus del microprocesadory la operaciónde varias unidades de interconexión que se comunican con dispositivos de entrada y salida. Concluye con una descripción del modo de trasferenciade accesodirecto a Ia memoria. El Capítulo 13 detalla los circuitos electrónicosde la compuertabásica en siete familias lógicas de circuitos integrados.Este capítulo final debe ser consideradocomo un apéndice,puede ser omitido si se desea.El Capítulo 13 asume un. conocimientoprevio de electrónica básica, pero no hay un prerrequisito específicopara el resto del libro. Cada capítulo incluye un grupo de problemasy una lista de referencias. Las respuestasa los problemasseleccionadosaparecenen el apéndicepara suministrar una ayuda al estudiante y para ayudar al lector independiente. Un manual de solucionesse suministra para el instructor por parte del publicista. El libro es adecuadopara un curso en lógica digital y diseñode courputadores en un departamento de ingeniería eléctrica o de computadores. Se puede usar también en un departamentode ciencia de computadores para un curso en organizaciónde computador.Las partes del libro pueden usarsede va¡ias formas: (1) Como un primer curso en lógica digital o circuitos de conmutación al cubrir los Capítulos t hasta el 7 y posiblemente el Capítulo 13. (2) Como un segundocurso, en lógica de computadordigital con un prerrequisitode un curso en circuitos de conmutaciónbásicos,basadoen los Capítulos3 y 7 hasta el 12. (3) Como una introducción a la configuración con materiales de los microprocesadores y microcomputadores al cubrir los Capítulos8 hasta el 12. En conclusión,me gustaria explicar la filosofia fundamental del material presentadoen este libro. El método clásico ha sido predominanteen el pasadopara describir las operacionesde los circuitos digitales. Con el advenimiento de los circuitos integradosy especialmentede la introducción de los componentesLSI del microcomputador,el método clásico parece estar bastante lejos de las aplicacionesprácticas.Aunque el método clásico para describir sistemas digitales complejos no es directamente aplicable, el conceptobásicode álgebrade Boole, lógica combinacionaly procedimien-4
?,s
--:7 PREFACIO
to de lógica secuencial, son todavía importantes para comprender Ia construcción interna de muchas funciones digitales. Por otra parte, el método de trasferencia entre registros, presenta una mejor representación para describir las operaciones entre los dife¡entes módulos en los sistemas digitales. Este versa de la trasferencia de cadenas de bits en paralelo y puede ser considerado como de un nivel mayor en la jerarquía de la representación del sistema digital. La transición del método clásico al de trasferencia entre registros, se hace en este libro por medio de las funciones MSI de circuitos integrados. Los Capítulos 5 y 7 cubren muchas funciones digitales que están disponibles en circuitos integrados. Su operación se explica en términos de conpuertas y flip-flops que conforman el circuito digital particular. Cada circuito MSI se considera como una unidad f'uncional que realiza una función particular. Esta operación se describeen el método de rotación de trasferencia entre registros. Así, el análisis y diseño de registros y otras funciones digitales se hace por medio del método clásico, pero el uso de esas funciones al describir Ias operaciones de un sistema digital, se especifica por medio de proposiciones de trasferencia entre registros. EI método de trasferencia entre registros se usa para definir las instrucciones de computador, para expresar las operaciones digitales en forma concisa, para demostrar la organización de los computadores digitales y para especificar los componentes de los materiales para el diseño de sistemas digitales. D e s e o e x p r e s a r m i s a g r a d e c i m i e n t o sa l D r . J o h n L . F i k e p o r r e v i s a r e l manuscrito original y al Profesor Víctor Payse por indicar correcciones durante la enseñanzadel curso al usar el manuscrito. La mayor parte del trabajo de mecanografia fue hecho por Mrs. Lucy Albert y su hábil ayuda es apreciada grandemente. Mis mayores agradecimientos los doy a mi señora por ias sugerencias que ella hizo al mejorar la facilidad de lectura del libro y por su ánimo y apoyo durante la preparación de éste. M. Mor.nls M¡No
Sistemas bi nar ros
ffi
1 - 1 C O M P U T A D O R EDSI G I T A L E S Y S I S T E M ¡ SO I C I T A L E S Los computadores digitales han hecho posible muchos avances científicos, industriales y comerciáIesque no se hubiesenpodido lograr por otros medios. Nuestro programaespacialhubiesesido imposiblesin la vigilancia continua de tiempo real del computador y muchas empresas de negocios funcionan eficientemente sólo con la ayuda del procesamientoautomático de datos. Los computadores se usan para cálculos científicos, procesamientos de datos comerciales y de negocios, control de tráfico aéreo, dirección espacial, campo educacionaly en muchas otras áreas' La propiedad más impactante de un computador es su generalidad.Puede seguir una serie de instrucciones, llamadas programa, que operan con datos dados. El usuario puede determinar y cambiar los programas y datos de acuerdo a una necesidadespecífica.Como resultado de esta flexibilidad, los computadoresdigitales de uso general pueden realizar una serie de tareas de procesamientode información de amplia variedad. El computador digital de uso general es el ejemplo más conocido de sistema digital. Otros ejemplos incluyen conmutadorestelefónicos, voltímetros digitales, contadores de frecuencia, máquinas calculadoras,y rnáquinasteletipos. Típico de un sistema digital es su manejo de elementos discretos de información. Tales elementos discretos pueden ser impulsos eléctricos, Ios dígitos decimales,las letras de un alfabeto, las operacionesaritméticas, los símbolosde puntuación o cualquier otro conjunto de símbolos significativos. La yuxtaposición de elementos discretos de información representanuna cantidad de información. Por ejemplo, las letras d, o y g forman la palabra dog. Los dígitos 237 forman un número' De la misma manera una secuencia de elementos discretos forman un lenguaje,es decir una disciplina que con lleva información. Los primeros computadoresfueron usados principalmente para cálculos numéricos, en este caso los elementos discretos usados son los dígitos. De esta aplicación ha surgido el término computador digital. Un nombre más adecuado para un computador digital podría ser "sistema de procesamiento de información discreta".
S I S T E M A SB I N A R I O S
CAP, 1
Los elementos discretos de información se representan en un sistema digital por cantidades físicas llamadas señnles. Las señales eléctricas tales como voltajes y corrientes son las más comunes. Las señales en los sistemas digitales electrónicos de la actualidad tienen solamente dos válores discretos y se les llama binarios. El diseñador de sistemas digitales está restringido al uso de señalesbinarias debido a la baja confiabilidad de los circuitos electrónicosde muchos valores. En otras palabras puede ser diseñado un circuito con diez estadosque use un valor de voltaje discreto.para cada estado, pero que tenga pocq confiabilidad de operación. En contraste,un circuito de transistor que puedeestar en conducción o corte tiene dos valores de señales posibles y puede ser construido para sér extrerradamente confiable. Debido a la restricción fisica de los componentesy a que la lógica humana tiende a ser binaria, los sistemasdigitales que estén restringidos a usar valores discretos, lo estarán para usar valores binarios. Las cantidades discretas de información podrían desprendersede la naturaleza del procesoo podrían ser cuantificadas a propósito de un proceso continuo. Por ejemplo, un programa de pago es un procesodiscreto inherente que contiene nombres de empleados, números de seguro social, sala¡ios semanales,impuestos de renta, etc. El cheque de pago de un empleado, se p¡ocesausando valores discretos, tales como las letras de un alfabeto (nombres), dígitos (salarios) y símbolosespecialestales como g. Por otra parte, un científico investigador podrla observar un procesocontinuo pero anotar solamente cantidades específicasen forma tabular. El científico estará cuantificando sus datos continuos. Cada número en su tabla constituye un elemento discreto de información. Muchos sistemas fisicos pueden ser descritos matemáticamente por medio de ecuaciones diferenciales cuyas soluciones, como funciones de tiempo, darán un comportarñientomatemático del proceso.lJn computador análogo realiza una sirnulación directa de un sistema fisico. Cada sección del computador es el análogo de alguna parte específica del proceso sometido a estudio. Las variables en el computador análogo están representadaspor señales continuas que varían con el tiempo y que por lo general son voltajes eléctricos. Las señalesvariables son-consiáeraáas análogas con aquellas del procesoy se comportan de la misma manera. De esta forma, las mediciones de voltajes análogos pueden ser sustituidos por variables del proceso.El término señnl anéloga se sustituye por serial continua debido a que un "computador análogo" se ha convertido significativamente en un computador que maneja variables continuas. Para simular un proceso físico en un computador digital, deben ser cuantificadas las cantidades. Una vez que las variables del procesosean representadaspor señales continuas de tiempo real, estas últimas serán cuantificadas por un aparato de conversión de análogo a digital. un sistema fisico, cuyo compartamiento se exprese por medio de ecuaciones matemáticas, se simula en un computador digital con base en métodos numéricos. Cuando el problema que va a ser procesadoes inherentemente discreto, como en el caso de aplicacionescomerciales,el computadordigital manipula las variables en su forma natural.
Procesador o unidad aritmética
Almacenador o unidad de memoria
Dispositivos de entrada y control
Dispositivos de salida y control
digital debloquede un computador Figura l-1 Diagrama Un diagrama de bloque del computador digital se muestra en Ia Figura.1-1. Lá unidad de memoria almacena los programasde la misma for-" q,r" los datos de entrada, salida e intermedios. La unidad de proceso realiza tareas aritméticas y de procesamiento de datos según sea especificado por el programa. La unidad de control supervisa el flujo de información entre las diferentesunidades. Dicha unidad recupera las instrucciones una a una del programa acumulado en la memoria. Para cada instrucción, ella informa al procesador a fin de ejecutar la operación específica de la instrucción. Tanto el programa como los datos se almacenan en la memoria. La unidad de control supervisael programa de instrucciones, y el procesador manipula los datos de acuerdo a las especificaciones del programa. El programa y los datos preparados por el usuario son trasferidos a la unidád de la memoria mediante un elemento de entrada tal como una lectora de tarjetas perforada o una teleimpresora. Un elemento de salida tal como un impresor recibe el resultado de los cálculos y le presenta al usuario los resultados impresos. Los elementos de entrada y salida son sistemas digitales especiales manejables por partes electromecánicas y controladaspor circuitos electrónicosdigitales. Una calóuladora electrónica es un sistema digital similar al computador digital que tiene como elemento de entrada el teclado y como elemento de salida una pantalla numérica. Las instrucciones son trasferibles a la calculadora por medio de las teclas de función tales como el más y el menos. Los datos se introducen mediante las teclas numéricas y los resultados se muestran por pantalla en forma de números. Algunas talculadoras tienen algo de parecido a las computadoras digitales ya que tienen forma de imprimir y además facilidad de programación'
4
STSTEMAS B|NARTOS CAp. l
'
Un computador digital es sin em,bargo,.un aparato más poderosoque una calculadora; puede usar muchos.otros"disposiíivÁ áe entraü y salida, puede realizar nó solament" a¡itméticos y operacioneslóeicas sino que puede ser "et"rlo. .programadopara tomar decisioíes basadasen cJndi_ ciones internas y externas. un computador digital es una interconexión de módulos digitales. Para poder óomprender"¡" opl.""ioi de cada má-"ü digital es necesario tener lbs conocimientosbásicos de los."rst"-* áigül!, , a" su comportamiento. La primera mitad ae este.ribro versa ,iúr" ,r.t"mas digitales en general proporcionandolos conocimiento" puru su diseño., La segundamitad del libro trata """".iio.-"oauto* sob¡e ros direil.,tes de un com_ putador digital' su operacióny ,u diseRo.r,m operaciona_ les de la unidad de memoria só explican en el "".""t"rísticas T. La organización y diseño de la unidad de proceso .capíturo .Jir"tu" -en el capítulo g. varios métodos para diseñar la unidad de cont¡ol sslnrroduc; ;;;i'ó;píruro 10. La orga_
-ffi '3 deun computa dái ;ü t; r r"ffi';#rueñosep.*.,iü :i":f lr?,i,T 1T
un procesadorcombinado con la unidad de control nente llamado uní.dad.centrard" pri"ro .formaun compoo cpu. ú" ciri-, encapsuladoen una pastilla de circuito integradá ,e de'o- i"; ;;;r;;ror"rodor. La uni_ dad de memoria, de ra mism; i;;;q;;'i;ñ;';;"".'ltror, la interco_ nexión entre el microprocesgao-f io* elementosde éntrada y sarida, puede ser encapsulada dentio de ra pÁtiit" a"f -i"i";;";;;il, -de o puede encon_ trarse en pastilras pequeñas circuitos integrados. un cpu combi_ nado con u'u -u.noiia y un ¿" i.,ter.o.r?¡ár,- ro.-".¿ un compu_ tador de tamaño nequeñóa"ro-in"a'o "o"t.átm i c ro-c ompui o-ii r'." ru disponibi ridad de los aer -ic.o"o-ii,"r.ao" h; ;;;;ñ"i"r,^"ao "om'o.t"ttie" t" tecnología de diseño de los sistemas aigitái"i-permitiendo al diseñador la libertad de c¡ear estructuras que antes eran antieconómicas.Los diferentes ponentesde un sistema de com_ microcomputador,r;;;;;;;i"., .., el capítulo Ya se ha mencionadoel hecho de que un computadordigital manipula elementosdiscretosde informa;i¿;; que estos eÉmentos se p¡esentan en fo¡ma binaria. Los operando., .r.ldou ros ser expre_ sados en el sistema áe n.i*"io.-üI""rio.. .en "¿r."l"r-p"eden o;;-;;;;"íL. aiscretos, in_ cluidos los dígitos_ r",u!.u.".rru' con códigos binarios. Er ,deci*"1"., procesamientode datos se lleva a cabo por medio ¿e los álementoslógicos binarios, usando señales¡irra.ias. iL- ca'tidades se acumulan en los ele_ mentos de almacenamientobinario. u.propo.itá"¿1".i.'.apítulo es el de introducir ros diferent_esconceptos bi;uñr- ;;;; ^"*^" de referencia ;;".; para un posterior estudio de los capítulos .".t""i"r. 1-2
N U M E R O SB I N A R I O S
un número decimal tal como T3g2 .;;; representauna cantidad igual a T unidades de mil, más 3 center,as, ;;"""nas, más 2 unidades.Las unida_ des de mil, las centenas,etc.,^sonpoJencias de 10 implícitamente indica-
3r"g;,#rrosición
de roscoeficienies. para .", ;á-;;;ctos, ?3e2puede
N U M E R O SB I N A R I O S
s E c .1 - 2
5
7 x 103+ 3 x 102+ 9 x l0r + 2 x l0o Sin embargo, Io tonvencional es escribir solamente los coeficientesy a partir'de su posición deducir las potencias necesariasde 10. En general, ün número con punto decimal puede ser representadopor una serie de coeficientesde la siguiente manera: A y A 4 A 3 A 2 A P O ,A - 1 Q - 2 Q - 3
L o s c o e f i c i e n t eas¡ s o n u n o d e I o s d i e z d í g i t o s( 0 , l , 2 , . . . , 9 ) y e l s u s c r i t o por el cual debe ser .l da el lugar y poi tanto el valor de la potencia de 10 multiplicado el coeficiente. 1054,+ l}aao* lda3 * 102a2*lOra,* l00ao* l0-ra-, +10-2a-2+ l0-3a-, Se dice que el sistema de númerosdecimalestiene la baseo raíz I0 debido a que ,r.á di., dígitos y que los coeficientesson multiplicados por potencias de 10. El sislema binarío es un sistema numérico diferente. Los coeficientes del sistema de números binarios tienen dos valores posibles: Ó y 1. cada coeficienteo, se multiplica por 2'. Por ejemplo, el equivalente decimal del número'binario 11010,11es 26,75como se demuestrade la multiplicación de los coeficientespor potenciasde 2. I x 2 4 + I x 2 3+ 0 x 2 2 + I x 2 r + 0 x 2 0+ | x 2 - l +lx2-2:26,75 En general,un número expresadoen un sistema de base r tiene coeficientes multiplicados por potenciasde r: en'rn + an-t'fn-l + *a-t.
* az'r2+ at'r*
r-t + a-r' r-2 +'''
a¡
+ Q-^' r-^
Para distinguir los Los coeficientes o, varían en valor entre 0 y r-1. entre parénlos coeficientes se encierran números de bases- diferentes, (con en excepción la usada a base igual suscrito y un escribe se tesis algunós casos de los números decimales en los cuales su contenido hace obvio que se trate de un decimal). Un ejemplo de un número de base 5 será: ( 4 0 2 1 , 2 ) :s 4 x 5 3 + 0 x 5 2 + 2 x 5 t + I x 5 0 + 2 x 5 - r : ( 5 1 1 , 4 ) 1 0 Nótese que los valores para coeficientes de base 5 pueden solamente ser 0 ', 7 ,'Es 2,3 y 4. cbstumbre presentar los r dígitos necesarios para los coeficientes del sistema decimal en caso de que la base del número sea menor qge 10' Las letras del alfabeto se usan para completar los diez dígitos decimales cuando la base del número sea mayor que 10. Por ejemplo, en el sistema de números hexadecimal (base 16) se presentan los primeros diez dígitos del sistema decimal. Las letras A, B; C, D, E y F se usan para los dígitos 10,
-{ / É
t
SISTEMAS EINARIOS
CAP. 1
1 1 , 1 2 , 1 3 , 14 y 15 respectivamente.Un ejemplo de números hexadecimal será: (865F)r6: ll x 163+ 6 x 162+ 5 x 16 * 15: (46687)rc Los primeros 16 números en los sistemas decimal, binario, octal y hexadecimalse listan en la Tabla 1-1. Las operacionesaritméticas con números en base r siguen las mismas reglas que los números decimales. Cuando se usa ,.ru bu." diferente a la conocida de 10 se debe ser precabidode usar solamente las r dígitos permitidos. A continuación se muestran ejemplos de suma, resta y irultiplicación de los nrlmerosbinarios: sumando: l0l l0l s u m a n d o :+ l 0 0 l l l
minuendo: l0l I0l multiplicando; l0l I sustraendo:-l00lll multiplicador: xl0l
suma:
diferencia: 000110.
l0l0l00
l0l I 0000 l0l I
producto: Tabla
1-1
ll0llt
Números con dife¡entes bases
Decimal (base10)
Binario (base2)
Octal (base 8)
Hexadecimal (base 16)
00 0l 02 03 M 05 06 07 08 09 l0 ll t2 l3 t4 I5
0000 0001 00r0
00 0l 02 03 04 05 06 07 l0 ll t2
0 I 2
00rr 0r00 0l0l 0ll0 0lll 1000 l00l r0l0 l 0 lI I 100 Il0l lll0 lllt
IJ
l4 l5 ló l7
J
4 5 6 7 8 9 A B C D E F
La suma de dos números binarios se carcuia mediante las mismas reglas que en decimalescon la diferencia de que los dígitos de la suma en cualquier posición significativa pueden ser 0 ó 1. cuaiquie¡ ..lleva" obte_ nida en una posición significativa tlada, se usa por el par de dígitos en la posición significativa superior. La resta es un poco más com"plicada,
C O N V E R S I O NEENST R E NUMEROD S E B A S ED I F E R E N T E 7
S E C .1 - 3
sus reglas son las mismas que en el caso del sistema decimal excepto que la "lleva" en una posición significativa dada agrega 2 al dígito del minuendo. (Una lleva en el sistema decimal agrega 10 al dígito del minuendo). La multiplicación es muy simple. Los dígitos del multiplicador son siempre 1 ó 0. Por tanto, los productos parciales son iguales al multiplicando o a 0.
ES N T R EN U M É R O SD E B A S ED I F E R E N T E 1-3 CONVERSIONE Un número binario puede ser convertido a decimal formando la suma de las potencias de base 2 de aquellos coeficientes cuyo valor sea 1. Por ejemplo: (10,375)r0 ( 1 0 1 0 , 0 1 l ) z : 2 3+ 2 t + 2 - 2 + 2 - 3 : El número binario tiene cuatro unos y'el decimal equivalente se deduce de la suma de cuatro potencias de 2. Similarmente, un número expresado en base r puede ser convertido a su equivalente decimal multiplicando cada coeficiente con su correspondiente potencia de r y sumando. El siguiente es un ejemplo de conversión de un sistema octal a decimal: (630,4)8: 6 x 82 + 3 x 8 + 4 x 8-' : (408,5)¡q La conversión de decimal a binario o cualquier otro sistema de base r es más conveniente si el número se separa en parte entero y parte fraccio' nario para hacer la conversión de cada parte separadamente. La conversión de un entero de sistema decimal o binario se explica de mejor manera en el siguiente ejemplo:
EJEMPLO f -1.' Convertir el decimal 41 a binario. Primero, 41 se divide por 2 para dar un cocienteentero de 20 y un residuo de i. El cocientese divide a su turno por 2 para producir un cociente nuevd con su residuo. Se continua así el procesohasta que el cociente entero se convierte en cero. Los coeficíenúesde los números binarios deseadosse obtienen de los residuos de Ia siguiente manera: Cocíente entero
residuo
T: ,O
I ,
,o"ürr!!: do: I
+= ro
at=0
0 -l = 2-
az: 0
;:2
'\
+
I 2
4l:
\
id
?
i
SISTEMAS BINARIOS
CAP. 1
cocLente entero
residuo
coefíciente
-2: 2
dq:0
_I : 2
ds:
I
r e s p u e s t a : ( 4 1 ) r o: ( a r a . a s a z a t a o ) , : ( 1 0 1 0 0 1 ) , El proceso aritmético puede llevarse a cabo en forma más conveniente, de Ia siguiente manera: entero
4l 20 l0 5 ? I 0
residuo
I 0 0 I
0 I
l0l00l : respuesta
La conversión de enteros decimales a cualquier sistema de base r es similar al ejemplo anterior con la diferencia de que la división se hace por r en vez d,e 2.
'.
EJEMPLO l-2: Convertir el decimal 153 a octal. La base requerida es 8. Primero se divide 153 por 8 para dar un cociente entero de 19 y un residuo de 1. Luego se divide 19 por 8 para dar ,n cociente entero de 2 y un residuo de 3. Finalménte, ," diuidu 2 por 8 para dar un cociente de 0 y un residuo de 2. Este proceso puede hacerse convenientemente de la siguiente manera: 153 l9 I 2 3 0 2L
:1zl¡,
La conversión de una fracción decimal o binaria se lleva a cabo por un método similar al usado para enteros..Empero, se usa Ia multiplicación en vez de Ia división y se acumulan los enteros en vez de los residuos. El método se explica más claramente a continuación: EJEMPLO f-3.. Convertir (0,6875),0 a binario. Primero se m u l t i p l i c a 0 , 6 8 7 5p o r 2 p a r a d a r u n e n t e r o y u n a f r a c c i ó n . L a n u e va fracción se multiplica por 2 para dar un número entero y una nueva fracción. Este proceso se continúa hasta que la fracción se convierta en 0 o hasta que el número de dígitos tenga la suficiente precisión. Los coeficientes del número binario se obtienen de los enteros de la sizuiente manera:
\ 0,6875x2: 0,3750x2: 0 , 7 5 0 0 x2 : 0,5000x2:
,oolrr::!t, entero fr"::r"! 0,3750 ¿-r = I + I 0,7500 a-z=0 + 0 0,5000 a -t: I + I 0,0000 a _c: I + I
: (0'l0ll)2 respuestl: (0,6875)r0 (0,a-P -2a -3a-4)2 Para convertir una fracción decimal a un número expresadoen base r, se usa un procedimientosimilar: se multiplica por r en vez de 2 y los coeficientesencontradosde los enteros varían entre valores desde 0 hastar-1 envezde0yl. EJEMPLO
f -4.' Convertir (0,513)roa octal' 0 , 5 1 3X 8 : 4 , 1 0 4 0 , i 0 4x 8 : 0 , 8 3 2 0,832X 8: 6,656 0,656x 8: 5,248 0,248x 8: 1,984 0 , 9 8 4x 8 : 7 , 8 7 2
La respuestacon siete cifras significativas se obtiene de la parte entera de los Productos: ( 0 , 5 1 3 ) r:o ( 0 , 4 0 6 5 1 1. ) a La conversiónde números decimales con parte fraccionaria y entera' se hace convirtiendo la parte fraccionaria y la entera separadamentey luego combinando las dos respuestas.Usando los resultadosde los Ejemplos 1-1y 1-3se obtiene: ( 4 1 , 6 8 7 r5o) : ( 1 0 1 0 0 1 , 1 0 1 1 ) 2 De los Ejemplos 1-2 y l-4, se obtiene: ( 1 5 3 , 5 1 r30) : ( 2 3 1 , 4 0 6 5 1 7 ) 8 1-4
Y OCTALES N U M E R O SH E X A D E C I M A L E S
La conversiónde binario a octal y hexadecimaly viceversajuega un papel . omo2'-8 y 2a:16, cada m u y i m p o r t a n t ee n l o s c o m p u t a d o r edsi g i t a l e s C dígito octal correspondea tres dígitos binarios y cada dígito hexadecimal u crrui.o dígitos binarios. La conversiónde binario a octal se co"..esponde lleva á cabo fácilmentehaciendo la partición del número binario en grupos de tres dígitos, cada uno comenzandodesdeel punto binario y haciéndolo cle izquierda a derecha. El dígito octal correspondientese asigna a cada grupo, El, siguiente ejemplo es una ilustración del prbcedimiento: I
''':í¿
aa'/
IO
S I S T E M A SB I N A R I O S
CAP.
(glgggIIgg 2
6
I
5
'3
pgsgrg J_11 7
4
0
), : (26153,7406) r
6
La conversión de binario a hexadecimal es simirar excepto que el número binario se divide en grupos de cuatro dígitos:
( l 0 1 1 0 00 l l 0 l 0 l I I I t_J
/
2C
L__J
l__l
6B
I!
EI
)': (2C68,F2),u
F2
El dígito hexadecimal correspondiente para cada grupo de dígitos bina'valores rios es fácilmente recordado después dé estudiar iós ústados en Ia Tabla 1-1. La conversión de octal o hexadecimal a binario se hace por un procedimiento inverso al anterior._ cada dígito octal se convierte a un equivalente binario de tres dígitos. De la misma manera, cada dígito hexadecimal se convierte a un equivalente binario de cuatro dígitos. Esto se ilustra con ejemplos a continuación:
: ( ¿g (6i3,r24)8 J-l_L E_L gE Eg Ig t 673124 (306,D) ,0 : ( 001I 0000 0l l0
???
I l0l )"
?
Los números binarios son dificiles de trabajar ya que necesitan tres o cuatro veces más que su equivalente decimal-. por ejemplo, el _dígitos número binario 111111111111 es equivalente al decimal aOos. Empero, los computadores digitales usan los ñú.nu.o, binarios y uigr.,", veces se hace necesario que el operador humano o usuario se comunique directamente con la máquina en términos de números binarios. un eiquema que retiene el sistema binario en el computador pero que ¡educe el número de dígitos que el humano debe considerar, utilüa la relación que hay entre el sistema de números binarios y el sistema hexadecimal u octal. Median_ te este método, el humano piensa en.términos de números octales o hexadecimalresy hace la conversión por medio de la inspección, cuando se hace necesaria la comunieación directa con la máquina. Así el número binario 1 1 1 1 1 1 1 1 1 1 1 1 t i e n e 1 2 d í g i t o s y s e e x p r e s ae n o c t a l c o m o 7 7 7 7 ( . " u i . o dígitos) o en hexadecimal como FFF (lres dígitos). Durante la comunicación de 1a gente (relativa a números binarios en el computador), se hace más deseable la representación hexadecimal u octal yá qu" puede ser usada de manera más compacta con una tercera o cuarta parte del número de dígitos necesarios para expresar el número binario equivalente. cuando un humano se comu4.icq.col la máquina (a través ae tos interruptores de la consola, las luces indicadoras o por medio de los programas escritos en lenguaje de maquína), la conversión de octal o hexádeiimal a binario y viceversa se hace por inspección de parte del usuario.
COMPLEMENTOS I I
sEc. 1-5
1-5 COMPLEMENTOS Los complementosse usan en los computadoresdigitales para simplificar la operaáiónde sustraccióny para manipulacioneslógicas.Hay dos clases de complementospara cada sistema de base r: (1) EI t:omplementode r y (2) ei complementode (r- 1). Cuando se sustituye .! valor de la base io.' áo. tipos reciben los nombres de complementosde 2 y 1 en el uso de los númerosbinarios o complementosde 10 y 9 en el caso de los números decimales. El complemento de /' Dado un número positivo .^y'en base r con parte entera {e n dígitos, se O paraN:0' El d e f i n ee l c o m p l e m ó n t ro d e N c o m or " - N p a r a N l 0 y Ia situación: mejor comprender a ayudará numérico siguiente ejemplo El complementode 10 de (52520)16es I05 -52520:47480. El número de dígitosdel número es n:5. es l-0,3267:0,6733. El complementode 10 de (0,3267)1e No hay parte entera, por tanto i0' : 10o:1. El complementode 10 de (25,639)rues 102-25,639:74,361' El complementode 2 de (101100),es (26)'o - (101100)z : (1000000-101100)::010100. : : 0,1010. El complementode 2 de (0,0110),es (1- 0,0110)z Por la definición y los ejemplos,es claro que el complementode 10 de un número decimal puede ser formado dejando todos los ceros menos significativos inalterados, restando el primer número diferente de cero menos significativo de 10 para luego sustraer el resto de dígitos más significativos de 9. El complemento de 2 puede ser formado dejando todos los ceros menos significativos y el primer dígito diferente de cero sin cambio, para luego remplazar unos por cerosy cerospor unos en el resto de dígitos mas significat ivos. Un tercer método más sencillo para obtener el complementode r es dado despuésde la definicióndel complementode (r-1)'El complemento de r de un número existe para cualquier base r (siendo r mayor pero no igual a 1) y puedeser obtenido de la definición que se dará a continuación. Los ejemplos listados aquí usan números con r:10 (decimal) y r:2 (binario) debido a que estos son las bases más interesantes.El nombre del complementose relaciona con Ia base del número usado. Por ejemplo el complementode (r-1) de un númeroen base 11 se llama complemento d e 1 0 y a q u er - 1 : 1 0 p a r ar : 1 1 . E l c o m p l e m e n t od e ( r -
1)
Dado un número positivo N en base r con una parte entera de n dígitos y una parte fraccionaria de rn dígitos, se define el complementode (r- 1) de N como rn -r-n -11[. Se dan algunosejemplosa continuación:
Áfr
--r F
f
I I I
|2
S I S T E M A SB I N A R I O S
CAP. 1
El complemento de 9 de (52520)r0 es (tOt - I-52520):9999952520: 47479. Como no hay parte fraccionaria,entonces10--:100
:1.
El complementode 9 de (0,3267),nes (1-tO-+ -0,3267):0,99990.3267:0.6732. Cqmo no hay parte entera entonces10" : 100: 1. El complemento d e 9 d e ( 2 5 , 6 3 9 ) 1ees ( t 0 , - 1 0 - 3 - 2 5 , 6 3 9 ) : 9 9 , 9 9 9 :74.360. 25.639 2 s ( 2 6- 1 ) - ( 1 0 1 1 0 0 ) :( 1 1 1 1 1 1 E l c o m p l e m e n t od e 1 d e ( 1 0 1 1 0 0 ) e : 0 1 0 0 1 1 . 101100)2 2 s ( 1 - Z - + ) r o * ( 1 , 0 1 1 0 ): 2 ( 0 , 1 1 1 1 E l c o m p l e m e n t od e 1 d e ( 0 , 0 1 1 0 ) e - 0,0110)2 : 0,1001. De estos ejemplosse ve que el complementode 9 de un número decimal se forma simplemente sustrayendocada dígito de 9. El complemento de 1 de un número binario se expresaen una forma aún más sencilla: los unos se cambian a cerosy los cerosa unos. Como el complementode (r- 1) se puede obtener muy fácilmente el complementode r. De las definiciones y de la comparación de los resultados obtenidos en los ejemplos se desprende que el complemento'de r puede ser obtenido del complementode (r- 1) despuésde sumar r-^ al dígito menos significativo. Por ejemplo el complemento de 2 de 10110100se obtiene del complemento de 1 de 01001011agregando1 para dar 01001100. Vale la pena mencionar que el complementodel complementodeja al número en su valor original. El complementode r de N es rn - N y el complemento de (r" - N) es r" - (r" - N) : N; de la misma manera sucedecon el complementode 1. S u s t r a c c i ó nc o n c o m p l e m e n t o sd e r El método directo de sustracción diseñadoen las escuelasusa el concepto de prestar. En este método se presta un 1 de una posición significativa más alta cuando el dígito del minuendo es más pequeñoque el correspondiente dígito del sustraendo. Esto parece el método más sencillo usado por la gente al hacer la sustracción con papel y lápí2. Cuando Ia sustracción se gjecuta por medio de los componentesdigitales se.encuentra que este método es menos eficiente que el método que usa complementosy suma de la forma descrita a continuación. La sustracciónde dos númerospositivos (M-N), ambos en base r puede hacersede la siguiente manera: 1. Se suma el minuendoM al complementode r del sustraendoN. 2. Se inspeccionanlos datos obtenidosen el Paso 1 para una "ileva" final. (a) Si ocurre una "lleva" final. se debe descartar.
I3 COMPLEMENTOS
sEc. 1-5
(b) Si no ocurre una "lleva" final, se toma el complemento de r del número obtenido en el paso 1 y se coloca un número negativo al frente.
Los siguientesejemplosilustran el procedimiento: EJEMPLO 72532- 3250.
I-5.' Usando el complemento de 10, sustraer
M =72532 N : 03250
72s32 +
complementode 10 de .lf : 96750
96750
lleva final -+ L/OgZgZ respuesta: 69282 EJEMPLO
l-6.' Sustraer: (3250- 72532)rc.
03250
M:03250 N :72532 complementode 10de N :2'1468 ninguna lleva respuesta:-69282:
- (complementode 10 de 30718)
EJEMPLO I-Z Usar pl complemento de 2 para sustraer M - N con los númerosbinarios dados. (a)
M: N:
1010100 1000100
l0l0l00 -r
complementode 2 d e N : 0 1 1 1 1 0 0 lleva finul--- I
0llll00 0010000
respuesta: I00[lA (b)
M: N:
1000100 l0l0l00
1000100
complementode 2 d e N : 0 1 0 1 1 0 0 nrnguna l l e v a respuesta: - 10000: - (complementode 2 de 1110000)
--1 t4
SISTEMAS EINARIOS
CAP. 1
La prueba de este procedimiento es: la suma de M al complemento de r de N da (M*r" -N). Para númerosque tienen una parte éntera de l/ dígitos, r" es igual a 1. (Lo que se ha llamado la "lleva" final) en la posición (N+ 1). Como se asume que M y N son positivos,por tanto: (o) (M+r"-N))r, (b) (M+r, -N)(r,
siM)N, siM(N
o
En el caso (a) la respuestaes positiva e igual a M - N, y se obtiene directamente descartando la "lleva" final r" . En el caso (b) la respuestaes negativae igual a - (N-M).Este caso se detectapor la ausenciade la "lleva" final. La respuestase obtiene sacando un segundocomplemento y agregandoun signo negativo: -lr' - (M + r^- N)] : - (N M). S u s t r a c c i ó nc o n c o m p l e m e n t o d e ( r -
1)
El procedimiento para sustraer con el complementode (r- 1) es exactamente el mismo que el usado con el complementode r excepto por una variación llamada la "lleva" final de reinicio mostrada a continuación. La sustracción M-N de dos números positivos en base r pueden calcularse de la siguientemanera: 1. Se agregael minuendoM al complementode (r-i) del sustraendo N. 2. Se inspeccionael resultado en el Paso 1 y la ..lleva" finai. (a) Si apareceuna "lleva" final se agrega1al dígito menossignificativo (lleva final de reinicio). (b) Si no ocurre una "lleva" final, se obtiene el complementode (r- 1) del número obtenido en el Paso 1 y se coloca un signo negativo al frente. La prueba de este procedimientoes muy similar a la del complemento de r dada y se deja al lector como ejercicio. Los siguientesejemplosilustran este procedimiento:
EJEMPLO plementosde
I-8.' Repetir los Ejemplos 1-5 y 1-6 usando com-
M :72532 N: 03250 complemento de 9 de N :96749 (a)
72532 +
96749
/-t@ lleva final de reinicio respuesta: 69282
*
[__--', 69282
\
sEc.1-5
COMPLEMENTOS I5
(b)
M:03250 N :72532 complemento de9 de N : 27467 ninguna lleva
03250
+
27467
___Jh07n
respuesta: - 69282: - (complementode 9 de 30717) EJEMPLO mento de 1.
I-9; Repetir el Ejemplo 1-7 usando el comple-
M: l0l0l00 N: 1000100 complemento de 1 d e 1 { : 0 l l l 0 l l
(a)
lleva final de reinicio
l0l0l00 0lll0ll 000llll I
0010000 respuesta: 10000 (b)
M: 1000100 r/ : l0l0l00 complemento de 1 de N : 0 l 0 l 0 lI ninguna lleva
r000100 0l0l0l I
ll0lnl
respuesta: - 10000: - (complementode I de 1101111) C o m p a r a c i ó ne n t r e l o s c o m p l e m e n t o s de2ydel Al comparar los complementos de 2 y de 1 se detallan las ventajas y desventajas de cada uno. El complemento de 1 es más fácil de ejecutar, por medio de componentes digitales ya que lo único que hay que hacer es cambiar los ceros a unos y los unos a ceros. La ejecución del complemento de 2 puede obtenerse de dos maneras: (1) agregando 1 al dígito significativo menor del complemento de 1 y (2) dejando los primeros ceros, en las posiciones significativas menores y el prirner 1 inalterados para cambiar solamente el resto de unos a ce¡osy de ceros a unos. Durante la sustracción de los números, usando complementos,es ventajoso emplear el complemento de 2 en el cual solamente se requiere una operación aritmética de suma. El complemento de 1 requiere dos sumas aritméticas cuando sucedeuna."lleva" final de reinicio. El complemento de 1 tiene la desventaja adicional de poseer dos ceros aritméticos: uno con todos los ceros y otro con todos los
t6
SISTEMAS BINARIOS
CAP. 1
{
I
unos. Para ilustrar este hecho, considéresela sustracción de dos números binarios iguales 1100- 1100: 0. Usando el complementode 1:
I 100 T
001I + llll Complementar de nuevo para obtener - 0000. Usando el complementode 2: -r
I 100
0100 + 0000 Mientras que el complementode 2 tiene solamenteun cero aritmético, el 0 complemento de 1 puede ser negativo o positivo lo cual podría complicar la situación. Los complementosútiles para los cálculos aritméticos en los computadoresse tratan en los capítulos 8 y 9. El complementode 1, sin embargo, es muy útil en los manipuladoreslógicos (como se mostrará más adelante) ya que el cambio de urros a ceros y viceversa es equivalente a la operación de inversión lógica. El complementode 2 se usa solamenteen asociode las aplicacionesaritméticas. En consecuenciaes convenienteadoptar la sig¡iente convención:cuando,se use la palabra complemenúo, sin mencionarel tipo, en asocio con una aplicación aritmética, se asume que es el complemento de 1. 1-6
C O D I G O SB I N A R I O S
Los sistemas digitales electrónicos usan señales que tienen dos valores distintos y elementosde circuito que tienen dos estadosestables.Existe una analogía directa entre las señalesbinarias. los elementosde circuito bina-riosy los dígitos binarios. un número binario de r dígitos, por ejemplo, puede ser representadopor n elementos de circuito binaiio con se¡áleJ de salida equivalentesa 0 ó 1 respectivamente.Los sistemas digitales tepi"sentan y manipulan no solamente los númerosbinarios sino también muchos otros elementosdirectos de información. Cualquier elementodiscreto de información específico entre un grupo de cantidades puede ser representado p9r un código binario. Por ejemplo el rojo es un color específicodel espectro. La letra A es una letra específicadel alfabeto. un óif por definición es un dígito binario. cuando se usa en asocio con un código binario es mejor pensar que denota una cantidad binaria igual a 0 ó 1. Para representar un grupo de 2n elementos diferentes en código binario se requiere un mínimo de N bits. Ello es debido a que es posible arreglar r bits en 2" mane¡as diferentes. por ejemplo, ,r.t grnpo
-! C O O I G O SB I N A R I O S t 7
de cuatro cantidades diferentes puede ser representadopor un codigo de dos bits con cada cantidad asignada a cada una de las siguientescornbinaciones de bits; 00, 01, 10, 11. Un grupo de ocho elementos requiere un código de tres bits con cada uno de los elementosasignadosa uno y sólo uno de los sigr¡ientes:000, 001, 010, 011, 100, 101, 110, 111. Los ejernplos muestran que las diferentes combinacionesen bits de un código de n bits pueden encontra¡secontando en forma bina¡ia desde 0 hasta 2'- 1. Algunas combinacionesde bits no se asignan cuando el número de elementos de un grupo que va a codifica¡seno es múltiplo de una potencia de 2. Los diez núme¡osdecimales0, 1, 2, , 9 son ejemplosde este grupo. Un código binario que distingue diez elementos diferentes debe contener mínimo cuatro bits: tres bits dete¡minan un máxi¡no de ocho elementos. Cuatro bits pueden conformar 16 combinacionesdife¡entes, pero como se codifican solamente diez dígitos, las seis combinacionesrestantesno se usan ni seasignan. Aunque el número mínimo de bits, necesariospara codifica¡ 2" cantidades diferentes, es n, no hay un número máxímo d,e bits que puedan ser usados por un código bina¡io. Por ejemplo, los diez dígitos decimales pueden ser codificados con diez bits y a cada dígito decimal asignarle una combinación de bits de 9 cerosy un 1. En este código binario en particular, al dígito 6 se le asigna la combinaciónde bits 0001000000. C ó di g o s d e c i m a l e s Los códigosbinarios para digitos decimales requierenun mínimo de cuat¡o bits. Se puede obtene¡ numerosos códigos dife¡entes rearreglando cuatro o más bits en diez combinacionesposibles.Varias de estas posibilidades se muestran en la Tabla 1-2. Tabla l-2
Códigosbinarios para dígitos decimal€s
Digito decimal
( B D C) u2\
Excesoa 3
u.2-l
0 I 2 3 4 5 o 'l
0000 0001 0010 001I 0100 0l0l 0 tl 0 0lll r000 t 00l
001I 0100. 0101 0 ll 0 0lll' 1000 l00l l0lü l0lI I100
0000 0llt 0 ll 0 0l0l 0lm l 0 lI l0l0 l00t r000 llll
8 9
(Biguinario) 5043210
0000 0001 0010 001I 0100 l 0 lI I 100 I l0l lll0 l l
010000 | 0100010 0100100 0101000 0l 10000 100000r 1000010 1000100 1001000 l0l0m0
Bl BDC (el binario decimal codificado)es una forma directa asignada a un equivalente binario. Es posible asignar cargasa los bits binarios de acuerdo a sus posiciones.Las cargasen el código BDC son 8, 4, 2, l. La asignaciónde bits 0110por ejemplo, puede ser interpretadapor las cargas
I8
S I S T E M A SS I N A B I O S
CAP. 1
el dísitodecimal6 ya que0x 8+ 1x 4+ 1x 2+0+ 1:6. B1*_l:l,t:."ltg. Ds posrDreasrgrar ca¡gas
ne,gativasa un código decimal, tal como se muestra.en el código 8, a, 1. En este l" ¿" ¡its .?,. 0 1 1 0s e i n t e r p r e t ac o m o e l d í g i t o d e c i m a l i , "u"o "n-binu"l¿n de 0X8+1X4 +.I x ( - 2) + 0 X ( - 1) : 2. O-tros dos códigás" icon á¡t""ér." -o"t.ados en la tabla son el 2421y el b043210.U" ""-.gJ- ¡u usado á""i_ái q,]""J" en al_ "Oaig, viejos en el código de Este último es un fl9-.""-nut"dores LuurBUsrn ca¡ga. cuva asrgnatión se obtiene "*"".o del"'i. correspondientevalor e n B D C u n a v e z s e h á y as u m a d ol .
jl-.'j"$":ir:jffi o"",,lli,l"l"u'jff J:'::"r",::T,"?,J:t'"""11r1':T li":
datos, el usuario gusta dar los datos j*i."i. f;;;; L"" _"r,ur"" d", crmales recibidas se almacenan inte¡namente "" en el computadorpor medio del código decimal. Cada dígito a""irn"l ."q,li"i" cuatro ele'a""iaules mentos de almacenamientobinario. Los n,i-".o.. ;;;;"".. se convrenen cuando las operacionesaritméticas ." hr"un-lnt".numente :..1i1* con numeros representadosen binario. Es posible también realizar operacio_ nes aritméticas directamente en decimál con todos lo" n"¡n"ro. ¡,a deja_ dos en forma codificada. por ejemplo, ,,,i_".o J""i-"i -"ueve ¡9b, ." "t y da igual a 1100b1011 ",rundo dígitos bina:j:ri:rl"_1^lirrio rrus. or mrsmo nume¡o representadoalternamente "on"i"t" en "i, código BóC, ocupa paracada.digrrd , re c i m a lp a r a u n t o t a f a e i Z ú i i s : 0 0 1 1 1 0 0 1 0 1 0 1 . :L.,fs r ^ 1 rprrmeros 1"_,b1" c't¡tro bits representanel 3, los siguientes cuatro el g y los ultrmos cuatro el 5. . Es muy importante comprender la dife¡encia entre conuersiónde un n-úmerodecimal a bina¡io y ra codit'icación¡i...L 'á" -¡it". áu ,"'.omero -i_* decimal. En_cada caso el ¡esultado rirral e" u.. ,".i" ¡ir" obtenidos d-ela conversiónson dígitos binarios. L", úii".¡1""iJosli ta codificac¡ón son combinacionesde unos a ceros arregladu" a" u"ulaan u las reglas del código usado. Por tanto es extremadam"ert" i-p".ir.i"'i"r,". que una serie de unos y.ceros en "n "u"nru, un sistema dilital pueáe algunas veces ¡epresentarun número binario y otras veces ."pi"a"r,tu. alguna otra can tidad disc¡eta de información como se especifica en un código binario
ha *... ejemplo, 3:n::^,?^":0.11"^ u,r coorgoy una llc "laá-i"""eiJ.'j"iui -o,,",^ ouu"" conversiónbina¡ia directa
siemprey cuando los números decimalessean algún entero y entre 0 y 9. pa; ;;;JrÁ-il.yo.". que g, la conversióny Ia codificación son completamente diferentÁ.'E.t" -.r"upto es tan importante que vale la pena repetirlo usando otro ejemplo: la con_ versión binaria del decimal l3 es l10l; t, áecimal 13 con BDC es 00010011. "raln"""i¿""aál 1 , " "c i n c o c ó d i g o sb. i n a r i o s . l i s t a d oes n l a T a b l a 12, et BDC parece - - _ el? "m¿is ser natural y es sin duda el que se encuentramás ümtnmente. Los otros códigosde cuatro bits tienen una característica en común que no se en_ cuent¡a en BDC. El de excesoa 3, el 2, a, _l-_ I son códigos ?, ,,, "l B,¡, autocomplementarios,esto es que el compremento de 9 der núme¡o decimal se obtiene fácilmente cambianáot"" .á.;; ;; por más. Esta ;ñ;il propiedades muy útil cuando se hacen las operacionesaritméticas interna_
c o D t G o sB t N A R r o s 1 9 mente con números decimales (en código binario) y la sustracción se hace por medio del complemento de 9. Fil código binario mostrado en la Tabla l-2 es un ejemplo de un código de sietc díBitos con propiedades de derección de error. Cada digito decimal c o n s i s ¡ ed e 5 c e r o s 1 2 u n o s c o l o c a d o se ¡ r l a s c o r r e s D o n d i e n t ccso l u m n a s d e ."-a I Pa. La propredad de la detección de e¡ror de este código puede comprenderse si uno se da cuenta de que los sistemas digitalm representan el binario 1 mediante una señal específica uno y el bina¡io cero por otra segunda señal específica. Durante la t¡asmisión de señales de un lugar a otro puede p¡esentarse un error. Uno o más bits pueden cambia¡ de valor. Un ci¡cuito en el lado de recepción puede detectar la presencia de más (o menos) de dos unos y en el caso de que la combinación de bits no esté de acuerdo con la combinación permitida, se detectará un error. Códigos de detección de error La información binaria, siendo señales de pulsos modulados o señales de entrada y salida de un computador digital, puede ser t¡asmitida a través de algún medio de comunicación tal como ondas de radio o alambres. Cualquier ruido exte¡no int¡oducido en el medio de comunicación fisica cambia los valo¡es de los bits de 0 a 1 y viceversa. Puede ser usado un código de detección de error con el objeto de detecta¡ los errores durante la trasmisión. El er¡or detectado no puede ser corregido pero sí indicada su presencia. El procedimiento usual es observar la frecuencia del e¡ror. Si el e¡ro¡ ocurre de vez en cuando, aleatoriamente y sin algún efecto pronunciado sob¡e el total de la información trasmitida, o no se hace nada o se trasmite de nuevo el mensaje erróneo especíñco. Si el erro¡ ocur¡e tan a menudo que se distorciona el significado de la información ¡ecibida, se debe rectificar la falla del sistema. Un bit de parid.ad es un bit extra, incluido con el mensaje para convertir el núme¡o total de unos en par o impar. Un mensaje de cuatro bits y un bit de paridad P se representan en la Tabla 1-3. En (a), se escoge P de tal manera que la suma de todos los unos sea impar (en total cinco bits). En (b), se escoge P de tal manera que Ia suma de todos los unos es par. Du¡ante la trasferencia de información de un lugar a otro, el bit de pari dad se trata de la siguiente manera: en el ext¡emo de envío, el mensaje (en el caso de los primeros cuatro bits) se aplica a un circuito "generador de paridad" en el cual se genera el bit P requerido. EI mensaje junto con su bit de paridad se t¡asfiere a su destino. En el extremo de recepción todos los bits entrantes (en este caso cinco) se aplican al ci¡cuito de "ve¡ificación de paridad' para constatar la paridad adoptada. Se detecta¡á un eror si la paridad ve¡ificada no corresponde a la adoptada. El método de Ia paridad detecta la presencia de uno, tres o cualquier combinación de e¡ro¡es impar. Una combinación par de errores no se puede detecta¡. Una ulte¡ior discusión de la generación de paridad y su verificación puede ser encont¡ada en Ia Sección 4-9.
!¿
r
Tabla l-3
Generacióndel bit de paridad
(a) Mensaje
P (impar)
(b) Mensaje
P (pari
0000 0001 00r0 001I 0r00 0 1 0| 0 ll 0 0l 1000 l00l l0l0 l 0 lI I 100
1 0 0
0000 0001 0010 001I 0100 0l0l 0ll0 0lll 1000 t 00l l0l0 l 0 lI | 100 Il0l nl0
0 1 I 0 I 0 0
l0l I l0 l
I
0 I I
0 0 I
I
0 I 0 0 I
ll
I
I 0 0 I 0 I I 0
El código reflejado Los sistemas digitales pueden ser diseñados para procesa¡ datos solamente en forma disc¡eta. Muchos sistemas fisicos suministran salida continua de datos. Estos datos pueden convertirse en forma discreta o dieital antes de ser aplicados a un sistema digital. La información análoga o continua s_e.convierte a forma digital por medio del convertido¡ análógo a digital. Algunas veces es conveniente usar el código reflejado mostrado en la Tabla 1-4 para representar los datos digitales convertidos en datos análosos. -ou. La ventaja del código reflejado sobre los números bina¡io, pu.o" ". el número en el código reflejado cambia en sólo un bit cuando cambia'de un número al siguiente. Una aplicación típica del código reflejado ocurre cuando los datos análogos se ¡epresentan por un cambio continuo de la posición de un eje. El eje se divide en segmentos y a cada segmento se le asigna un número. Si se hace corresponder segmentos adyacentes con núme¡os de código reflejados adyacentes, se reduce la ambigüedad cuan do se sensa la detección en la línea que separa cualquier par de segmen, tos. El código reflejado que se muestra en la Tabla l-4 es solamente uno de los muchos códigos posibles. Para obtener un código reflejado diferente se puede comenzar con cualquier combinación de bits y proceder a obtener la siguiente combinación, cambiando solamente un bit de 0 a I ó de 1 a 0 de cualquier modo deseado, al azar, siempre y cuando dos núme¡os no tengan códigos asignadtx idénticos. El código reflejado se conoce como el código Groy.
Códigosa lfanu méricos Muchas aplicaciones de computadores digitales, requieren manejar datos que consisten no solamente de números sino también de letras. po¡ eiem_ 20
\ T6bls
1-4
Código reflejado de cuatro bits
Códigoreflejado
0000 0001 001I 0010 0ll0 0lll 0l0l 0100 l100 I l0l llll l 0 l0l0 l0l I lml 1000
Equivalentedecimal
0 I 2 3 4 5 6 'l 8 9 l0 ll
t2 t4 t5
plo una compañía de seguros con millones de clientes pueden usar un computador digital para procesarsus historias. Para representarel nombre del dueño de una póliza en forma bina¡ia, es necesa¡iotener un código binario para el alfabeto. Además, el mismo código binario puede represen tar números decimales y algunos otros caracteresespeciales.Un código alfanumérico (algunas veces abreviado aLphameric)es un código binaricr de un grupo de elementosconsistentede los diez números decimales, los 26 caracteresdel alfabeto y de cierto número de símbolosespecialestales como $. EI número total de elementosde un grupo alfanume¡rcoes mayor que 26. Por consiguientedebe se¡ codificado con un mínimo de seis bits ( 2 ' j: 6 4 , y a q u e 2 5 : 3 2 e s i n s u f i c i e n t e ) . Un arreglo posible de un código alfanumérico de seis bits se muestra en la Tabla 1-5 bajo el nomb¡e de "código interno". Con algunas variaciones se usa en muchas computadoras,para ¡epresentarinternamente ca, ¡acteresalfanumé¡icos.La necesidadde representarmás de 64 caracteres (las letras minúsculas y los caracteresde control especialespara la trasmisión de info¡mación digital) dio lugar a códigosalfanumé¡icosde siete y ocho bits. Uno de estos códigoses conocidocomo ASCII (American Standard Code fo¡ Information lnterchange: Códigonormalizadoamericanopara el intercambiode información)iot¡o es conocidocomo EBCDIC (Extended BCD InterchangeCode: Código de intercámbioBDC aumentado).El código ASCII listado en la Tabla 1-5, consistede siete bits, pero es para propósitos prácticosun códigode ocho bits ya que el octavo bit se agregade todos modospara efectosde paridad. Cuando se trasfie¡e información directa mediante tarjetas perforadas,los ca¡acteresa-lfanuméricosusan un código bina¡io de 12 bits. Una tarjeta perforadaconsisteen 80 columnas y 12 filas. En cada columna se representaun ca¡ácter alfanumérico mediante huecos
_-
.- .1
Tsbla
l-5
( odrgos de caracte¡€s alfanuméricos
C a r a c te ¡
B C D E F G H I J K L M N
o P
a R
s
T U X Y
z 0 I 2 3 4 5 0 'l 8 9 espacio
( + $ )_
Códigointemo 6.bits
uoolgo
L odlgo
AS CII ?-bits
EBCDIC 8-birs
0t0 001 010 010 010 0 010 r00 0t 0 r 0 l 010 I l0 010 l 0lt 000 0l l 001 100 001 100 010 t00 0tI 100 100 100 l0l 100 I l0 100 Il I l0l m0 t 0| 0 0 1 0 0r0 Il0 0ll I l0 100 I l0 r0l Il0 ll0 ll0 lll llt 000 ll I 001
lm 0001 100 0010 100 001I 100 0100 100 0r0l 100 0l l0 1000lll 100 1000 r00 l00l 100 l0r0 100 101 | t00 llm 100 I tol 100 Il t0 100 l l r0r 0000 l0l 0001 l0l 0010 l 0 l 0 0 1I l0l 0100 r0l 0l0l I0l 0ll0 l0l 0lll l0l l0ü) t0 l l 0 0 l l0l l0l0
000 000 000 000 000 000 000 000 001 00r
000 001 0r0 0l I 100 l0r l r0 I Il m0 001
l r0 000 0ll 011 I lt I00 010 000 I o t 0 lI l0 t 100 0lI 100 100 000 I l0 001 ll I 0 001 0rl
I 100 0001 l 100 0010 I 100 001I I 100 0100 r 100 0 1 0| I 100 0 l t 0 I100 0 l | 100 1000 l l m 1001 I l 0 l 0001 I l 0 l 0010 I l 0 l 00 I l 0 l 0100 I l0l 0l0l l 1 0 l 0ll0 Il0l 0lll I l 0 l t000 I l 0 l t 00l l ll0 ml0 l I 0 001I I l 0 0100 l r0 0l0l l l 0 0 ll 0
Códisode taljeta
12-bits t2,1 1)) 1) 1
12,4 12.6 t2,7 12,8 t2,9 lt,t 11,2 I1,3 I t,4 I1,5 I 1,6 11,7 I1,8 I 1,9
lll0 lll0 lll0
0 r r000 t 00l
o,2 0,3 0,4 0,5 0,6 0,1 0,8 0,9
0l I 0lt 0l l 0 0l I 0lI 0lI 0ll 0l I 0l I
0000 I I Il 0001 l l 0010 l l l l 001I Illl 0100 l l l t 0l0l ll 0ll0 ll 0llt llll 1000 r l ll t00l ll
0000 0001 0010 00ll olm 0l0l 0ll0 0llt 1000 l00l
0 I 2 3 4 5 6 7 8 9
010 0t0 010 010 010 010 010 010 0t0 010 0lr
0000 I n0 1000 l o tI 0100 l0l0 r00l l l0l llll l r00 Il0l
m00 l0l I I l0r | I l0 lot I I100 Il0l 0000 0001 l0 lll0
no perforado t2.8,3 12,8,5 12,8,6 I1,8,3 I1,8,4 I1,8.5
0100 0100 0100 0100 0l0t 0r0| 0t0l 0l l0 0l r0 0l l0 0l
ll
0,1 0,8,3 8,6
T
A L M A C E N A M I E N TD OE E I N A R I O SY R E G I S f R O S 2 3
SEC ]7
perforadosen las columnas adecuadas.Un hueco se sensacomo 1ó su ausencia como 0. Las 12 filas están marcadas,comenzandodesdeel extremo superiorcomo las filas de ¡rerforación12, 11,0, 1,2, , 9. Las tres primeras constituyen el área de perforaciónde zona y las últimas nueve,de perforaciór' numérica. El código de tarjeta de 12 bits most¡adoen la Tabla 1-5 da un listado de las filas en las cuales se perfora un hueco (dando los unos). Las filas restantesse asumen como ceros.El código de tarjeta de 12 bits es ineficiente con respectoal número de bits con que se usa. La mayoría de los computadorestraducen el código de entrada a un código interno de seis bits. Como ejemplose usa la representacióndel nomb¡e "John Doe" a continuación:
100001rml l0 0l l0@ r00l0l l10000010100l00ll0 0l0l0l
1.7
espacio D
N
JOH
OE
Y REGISTROS A L M A C E N A M I E N TDOE B I N A R I O S
Los elementos discretos de info¡mación en un computador digital deben tener una existencia fisica en algún medio de almacenamiento de información. Además, cuando los elementos discretos de info¡macion se re' presentan en forma binaria, el medio de almacenamiento de información debe contener elementos de almacenamiento bina¡io para Ia acumulación de los bits individuales. Una celd.a binaría es un elemento que posee dos estados estables y es capaz de almacenar un bit de info¡mación. La entrada a la celda ¡ecibe las señales de exitación que la coloca en uno de los dos estados. La salida de la celda es una cantidad ñsica que distingue entre los dos estados. La información almacenada en la celda es un I cuando está en su estado estable y un 0 cuando está en el otro estado estable. Algunos ejemplos de celdas bina¡ias son los circuitos flip-flops, los núcleos de ferrita usados en la memoria y las posiciones perforadas o no de una tarJeta. Reg ist ros Un regístro es un grupo de celdas binarias. Como una celda almacena un bit de información, se desprende que un registro de r celdas puede alma.:enar cualquier cantidad disc¡eta de información que contenga n bits. El estado del re$stro es un número enésimo de unos o ceros con cada brt .ndicando el estado de una celda en el registro. El cc,ntenido de un registro es una función de la interpretación dada a Ia info¡mación almacenada en ella. Considé¡ese como ejemplo un registro de 16 celdas:
0 0 0 0 I
I
I
0 0
0 0 I
I
I
|
2 3 4 5 6 7 8 9 l0 1l 12 13 14 15 16
Físicamente se podría p€nsar que el registro está compuesto de 16 celdas b i n a ¡ i a s , c o n c a d a c e l d a a l m a c e n a n d o u n 1 ó u n 0 . S u p o n g a m o sq u e l a c o n fizuración de bits almacenados es como se muestra en la figu¡a. El estado
*t
24
S I S T E Ñ 4 ABSI N A R I O S
CAP, 1
del registro es el número 16-avo 1100001111001001. Más claramente, un ¡egist¡o de n celdas puede estar en uno de los 2n estadosposibles.Ahora bien, si se asume qu€ el contenido del registro ¡epresentaun entero binario, obviamente el registro puede almacenar cualquier número binario de 0 a 2¡6 -1. Para el caso particular mostrado,el contenido del registro es el equivalentebinario al número decimal 50121.Si se asumeque el registro almacena caracteresalfanuméricos de un código de 8 bits, el contenido del registro es cualquiera de los caracteressignificativos. (Las combinaciones de bits no asignadas no representan información significativa). En el código EBCDIC, el ejemplo anterior representalos 2 caracteresC (ocho bits izquierdos)e 1 (ocho bits derechos).Por otra parte, si se interp¡eta el contenido del registro como cuat¡o dígitos decimales repr€sentados por un código de cuatro bits, el primero se¡á un número decimal de cuatro dígitos. En el código de excesoa 3 del ejemploante¡ior se representa el núme¡o decimal 9096.En el código BDC el contenidodel registro no tiene ningún significado ya que la combinación de bits 1100no se asigna a ningún dígito decimal. De acuerdo al ejemplo, se nota que un registro puede almacenar uno o más elementosdiscretos de información v que la misma configuración de bits puede ser interpretada, de manera dife¡ente para dife¡entes tiDos de elementos de información. Es muv importante que el usuario almacene información significativa en ¡egistros y que el computador sea programado para procesar esta información de acuerdo al úipo de la misma. T r a s f e r e n c i ae n t r e r e gi s t r o s Un computador digital se caracterizapor sus ¡egistros.La unidad de memoria (Figura 1-1) es principalmente una colecciónde cientos de registros para almacenar información digital. La unidad procesadorase compone de va¡ios registros que almacenan operandoscon base en los cuales se realizan operaciones,La unidad de control usa registros para controlar va¡ias secuenciasdel computador y cada dis¡nsitivo de ent¡ada y salida debe tener al menos un registro para almacenar la información trasferida de o al dispositivo. Una operación de trasferenciaenrre registros es una operación básica en sistemas digitales y consiste en la t¡asferencia de la información almacenadade un registro a otro. La Figura 1-2 ilustra la trasferencia de información entre registros y demuestra pictóricamente ia trasferencia de información binaria de un teclado de teletipo a un registro en la unidad de memo¡ia. Se asume que la unidad de entrada del teletipo tiene un teclado, un circuito de control y un registro de entrada. Cada vez que se digita una tecla, el control introduce al registro de ent¡ada un código de carácter alfanumérico equivalentede 8 bits. Se supone que el códigousado es el códigoASCII con un octavo bit de paridad impar. La info¡mación del registro de entrada se t¡asfie¡e a las ocho celdas menos significativas del registro procesador.Después de cada trasfe¡encia se borra el registro de entrada para permitir que el control pueda enviar un nuevo código de ocho bits cada vez que se digite el teclado. Cada caracter de ocho bits t¡asferido al registro procesadorviene seguidopor un corrimiento del anterior carácter en las sizuientes ocbo celdas a su iz-
\
UNIDAD DE MEMORIA roH I I I1110I 0 1 0 0 I0010 1 1 010010100100 1
PROCESADOR
UNIDAD TELETTPODE ENTRADAI
Resistro ..-:-.--.--.!
CONTROL
conregistros de información Figura l_2 Traslerencia quierda. Cuando se complete la t¡asferencia de cuat¡o caracteres,el reji.i.o p.o"".udor estará lleno y su contenido se trasferirá.al registro de il"-o.iu. El contenido almacenadoen el registro de memoria de la Figura 1-2 nrovino de la t¡asferencia de los caracteresJOHN despuésde digitar las óuat¡o teclas adecuadas. P"." pro"""u. las cantidades discretas de información en forma binaria, el óomputador debe estar dotado de (l) elementos que sostengan los datos qus vayan a ser procesadosy (2) elementos de circuito que manejen los bits individuales de info¡mación. El elementomás convenientemente usado para retener información es un registro. El manejo de va¡iables bina¡ias se hace por medio de circuitos lógicos digitales' La Figura 1-3 ilustra el procesode suma de dos númerosbinarios de 10 bits' La unidad de memoria, que consiste usualmente en cientos de reglstros se muestra en el diagráma con sólo tres de sus registros.La pa¡t€ de la unidad de procesomóstrada, consiste en tres registros,R1, R2 y R3 conjuntamente con circuitos lógicosdigitales que manejan los bits de Rl y R2 y t¡asfie¡en a R3 un númeio binario igual a su suma aritmética Los regist¡os de memoria almacenan información y están incapacitadospara procesar los dos operandos.Sin ernbargo,la información almacenadaen la memoria puede ser trasferida a los regist¡os de proceso Los resultados obtenidos por el registro del procesadorpueden ser trasferidosal registro 25
I
NIDAD DE MEMORIA 0000000000
0011100001
0001000010
00010000r0
Circuitos de lógica digital para la suma binaria
01001000 r l
001 l 100001
U N I D A DD E P R O C E S A D O R Figura
l-3
Ejemplo de procesamiento de información
binaria
de la memoria para almacenamientohasta que vuelvan a ser necesarios. El diagrama muestra el contenido de los dos operandostrasferidosde los dos registrosde memoria Rl y R2. Los circuitos lógicos digitales producen la suma que a su vez será trasferida al registro R3. El contenido del registro R3 puedeser trasladado a los registrosde memoria. Los últimos dos ejemplos demuestranla capacidaddel flujo de información del sistema digital de una manera muy sencilla. Los registrosdel sistema son los elementosbásicospara almacenamientoy retención de la información binaria. Los circuitos digitales procesan la información. En la siguiente sección se introducen los circuitos digitales y su correspondiente capacidad de manipulación. El tema de los registros y las operaciones de trasferenciade registrosse verá de nuevo en el Capítulo 8. 1-8
L O G I C AB I N A R I A
La lógica binaria trata con variablesque toman dos valoresdiscretosy con operacionesque asumen significado lógico. Los dos valores que las variables asumen pueden llamarse de diferentes maneras (por ejemplo, uerdadero y falso, si y no, etc.) pero para este propósito es conveniente pensar 26
SEC.1-8
L O G I C AB I N A R I A
27
en términos de bits y asignar los valoresde 1 y 0. La lógica binaria se usa para describir, de una manera matemática el procesamientoy manipuleo de la información binaria. Se acomodamuy bien para el análisis y diseño de los sistemas digitales. Los circuitos lógicos digitales de la Figura 1-3, que realizan la aritmética binaria, son circuitos cuyo comportamientose más convenientementeen términos de variables binarias y ope".*p.e.u tuóion". lógicas. La lógica binaria que se introduce en esta sección es equivalentea un tipo de álgebrallamada álgebrade Boole..La presentación formal del álgebra-deBoole de dos valores se verá en más detalles en el Capítulo 2. E1 proposito de esta sección es el de introducir el álgebra de Boó1",de una -a.tóra heurísticay de relacionarla con los circuitos lógicos digitales y señalesbinarias. D e f i n i c i ó nd e l ó g i c a b i n a r i a La lógica binaria consisteen variables binarias y operacioneslógicas. Las variabllesse indentifican mediante las letras del alfabeto tales como A, B, C, x, y, z, etc. y cada variable tendrá dos y sólo dos valores posibles: 1 y 0. Hay tres operacioneslógicasbásicas:AND, OR y NOT. 1. AND: Esta operación se representa por un punto o por la ausencia ó xy:z leído "x y y es igual de un operador.Por ejemplo,Í'!:z a z " i m p l i c a nq u e e : 1 s i y s ó l os i ¡ : 1 y y : 1 ; d e o t r a f o r m ae : 0 ' (Recuérdeseque f, y y z son variables y pueden ser solamente 1 ó0ynadamás.) 2. OR: Esta operación se representapor un signo más. Por ejemplo r f y : z s e l e é " r O R y e s i g u a l a 2 " , q u e r i e n d od e c i r q u e z : 1 ! i o s i y : 1 o s i s e t i e n e x : l y y : 1 ' . S i a m b o s¡ : 0 y ! : 0 , ¡:f entoncee s :0. operación se representapor un apóstrofe (algunas veces Esta 3. NOT: por una barra). Por ejemploix':z (6 7: e) se lee "r no es igual a z" implicandoque z es lo que r no. En otras palabras,si ¡:1 ent o n c e se : 0 , p e r os i ¡ : 0 e n t o n c e se : 1 ' La lógica aritmética se parecea la aritmética binaria y las operaciones AND y OR tienen su similitud con la multiplicación y la_sumarespectivamente. De hecho los símbolosusadospara AND y OR son los mismos que se usan para la suma y la multiplicación. La lógicabinaria, empero'no se debe confundir con la aritmética binaria. Se debe tener en cuenta que una variable aritmética designaun número que puede consistir en muchos dígitos mientras que una variable lógica es siempre 1 ó 0. En la aritmética binaria, por ej-emplo,se tiene que 1+ 1: 10 (leído "uno más uno es igual a dos") mientral que en la lógica binaria se tiene que 1+ 1 : 1 (leído: "uno OR uno es igual a uno"). Existe ,r.r uulo. de z especificadopor la definición de la operación lógica, por cada combinación de valores x y y. Estas definiciones pueden Ii.t"r." en una forma compacta usando tablas de uerdad. Una tabla de verdad es una tabla de todas las combinacionesposiblesde las variables
_*Á
Tabla
l-6
Tablas de verdad de las operaciones lósicas
AND
OR x'Y
0 0 I
0 0 0
l
I
x y
00 0l l0 ll
0 I I I
que muestra la relación entre los valores que las variables pueden tomar y el resultado de la^operación.por ejemplo, las tablas-áe verdad para las operaionesAND y OR con variables r y y se obtienen al-r"listar todos los valores_posiblesque las variables puede' t"rr". en pares. El resultadode la operaciónde cada "rráláose lista "o*binan en una coseparada.Las tabrai de verdad d" Áñó, "o-¡i"ácián llrlu oii;"ñóT se listan en la Estas tabras demuestranclaramentelas definiciones de lps ope::?jlj:t S e ñ a l e s b i n a r i a s y c i r c u i t o sd e c o n m u t a c i ó n El uso de variables binarias y la aplicación a ra lógica binaria se demuestra por los circuitos sencillos de c-onmutación de ü rig"." r_4. suponga_ mos que los interruptores A. y-in-terruptor B representendos variables binarias con valores iguales a 0 cua¡do el está abierto e-igual 1 cuando el interruptor está cerrado. Simultáneámente asúmase que la lámpara l representauna tercera variable primaria igual a t cuandola luz está pien-_ dida e igual a 0 cuando está apagJu. puü ;;-ü., i't"r.upto.u, .r, series, la luz se prende solamenté si A y B "t "uro para los inte_ están rruptores en paralelo,.ra ruz se prenderá si A o B ";;.;á;.. ;;;";;rrados. obvia_ mente estos dos circuitos pueden expresarsepor medio de la lógica binaria con las operacionesAND t OR repectivamente: L = n .B para el circuito de la Figura I_4(a) L : A + B para el circuito de la Figura 1-4(b) Los ci¡cuitos digitales electrónicosse llaman algunas veces circuitos de conmutación,ya que se comportan como u¡ interruptor con qR elemento activo tal como un transistor conduciendo (interripto, o en "...uao)
Fuente de voltaje
Fuente de voltaje
(a) Inte¡ruptoresen se¡ie- AND lóeica Figura
28
L
l-4
(b) Interruptoresen paralelo- OR lósico
ci¡cuitos de interrupción que demuestran la lógica binaria
f Voltios
Tolerancia permitida para la lógica 1
Lógica l nominal
La transiciónocur¡e entre estosIímites
Tolerancia permitida para la lógica0
Lógica 0 nominal
-0,5 Figura
l-5
Ejemplo de señalesbina¡ias
corte (interruptor abierto). En vez de cambiar manualmente el interruptor el circuito de interrupción electrónico usa señalesbinarias para controlar el estado de conducción o no conducción del elemento activo. Las señaleseléctricas tales como voltajes o corrientesexisten por todo el sistema digital en cualquierade los dos valores reconocibles(exceptodurante la transición). Los circuitos operadospor voltaje respondena dos niveles separadoslos cuales representanuna variable binaria igual a lógica 1 o lógica 0. Un sistema digital en particular podría definir la lógica 1 como una señal de valor nominal de 3 voltios y la lógica 0 como una señal de valor nominal de 0 voltios. Como se muestra en la Figura 1-5 cada nivel de voltaje tiene una desviación aceptable de la nominal. La región interinedia entre las regiones permitidas se cruza solamente durante las transiciones de estado. Los terminales de entrada de los circuitos digitales aceptan señales binarias dentro de las tolerancias permisibles y respondenen el termi-' nal de salida con señalesbinarias que caen dentro de las tolerancias específicas. Compuertaslógicas Los circuitos digitales electrónicosse llaman circuitos lógicosya que con las entradas adecuadasestablecen caminos de manipuleo lógico. Cualquier información deseadapara calcular o controlar, puede ser operada pasando señales binarias a través de varias combinacionesde circuitos iógico* con cada señal que representa una variable y trasporta un bit de inlormación. Los circuitos lógicos que ejecutan las operacioneslógicas de AND, OR y NOT se muestran con sus respectivossímbolosen la Figura 1-6. 29
-J
I
x ( a ) CompuertaAND de dosentradas
(b) CompuertaOR de dos entradas
a---.fA
BcL)-
F - ABC ,$
G: A* B -¡c + D
Bjf
(d) CompuertaAND de tres ent¡adas Figura
(c) CompuertaNOT o inversor
(e) CompuertaOR de cuatro entradas
Símbolos para los circuitos lógicos
l-6
Estos circuitos, llamados conlpuertas son bloques de circuitería que producen señalesde salida de lógica 1 o lógica 0, si se satisfacenlas cóndiciones de las entradas lógicas. Nótese que se han usado cuatro nombres diferentes para el mismo tipo de circuito: circuitos digitales, circuitos de conmutación, circuitos lógicos y compuertas. '.fodos los cuatro nombres se usan a menudo pero se hará referencia a los circuitos como compuertas AND, OR y NOT. La compuertaNOT se denominaalgunasvecescomocjrcuito inuersorya que invierte la señal binaria. Las señales de entrada r y y en las compuertas de dos entradas de la Figurl 1-6 pueden existir en uno de los cuatro estadosposibles:00, 10, 11 ó 01. Estas señalesde entrada se muestran en la Figurá 1-? conjuntamente con las señalesde salida de las compuertasAND y oR. Los diagramas de tiempo de la Figura 1-7 ilustran la respuesta de cada circuito a cada una de las posibles combinacionesbinarias de entrada. La razón para el nombre "inversor" dado a la compuerta NOT es aparente al comparar la señal ¡ (entrada del inversor) y la señal r' (salida del inversor). Las compuertas AND y OR, pueden tener más de dos entradas como la compuerta AND con tres entradas y la compuerta OR con cuatro entradas de la Figura 1-6. La compuerta AND de tres entradas respondecon la salida de lógica 1 si todas las tres señalesde entrada son de lógica 1. La salida produce una señal de lógica 0 si cualquier entrada es de lógica 0. La compüerta 0 de cuatro entradas respondecon lógica 1 cuando cualquier enirada es de lógica 1. Su salida será de lógica 0 si todas las señalesde entrada son de lógica 0.
'
ol-T--Tlo
_v
o,
ofTlo
o
o.f--Tl o
AND: ;r . y OR:¡*y NOT: ¡' Figura
30
l-7
o
o
fr W
señales de entrada-salida para las compuertas (a), (b) y (c) de la Figura l-6
I N T E G R A D O S3 I CIRCUITOS
1-9
El sistema matemático de lógica binaria es mejor conocido como de Bole o álgebra de conmutación. Esta álgebra se usa convenientemente la operación de conjuntos complejos de circuitos digitales. :,ara ',,s describir diseñadoresde los sistemas digitales usan el álgebra de Boole para ::asformar los diagramas de circuito a expresionesalgebraicaso vicever-a. Los capítulos 2 y 3 se dedican al estudio del álgebra de Boole, sus :ropiedadesy su capacidad de manipuleo. El Capítulo 4 muestra cómo .. atgebra de Boole puede usarse para expresar matemáticamente las .:lrerconexionesentre los enlaces de compuertas. .-9
C I R C U I T O SI N T E G R A D O S
Los circuitos digitales están construidos invariablemente con circuitos .ntegrados.Un clrcuito integrado (abreviado CI) es un cristal semiconjuct'or de silicón, llamado pastilla, que contiene componenteseléctricos :ales como transistores, diodos, resistenciasy condensadores.Los diver:os componentes están interconectados dentro de la pastilla para formar un circuito electrónico. La pastilla está montada en un empaqueplástico con sus conexionessoldadasa las patillas externas para conformar el circuito integrado. Los circuitos integrados difieren de otros circuitos elecde elementosdiscretos en que los componentesindit¡ónicos compuestos -CI no pueden ser separadoso desconectadosy que el circuito viduales del dentro del paqueteie hace accesible solamente por medio de las patillas externas. Los circuitos integrados vienen en dos clases de pastillas, la pastilla plana y la pastilla de hilera doble de patillas* tal como se ve en la Figura i-s. Lá pu.li¡a de hilera doble es la más comúnmente usada debido a su bajo costo y fácil instalación en los circuitos impresos. La protección del ciicuito iniegrado se hace de pl:ístico o cerámica. La mayoría de las pastillas tienen tamaños normalizados y el número de patillas varían entre g y &. cada circuito integrado tiene su designación numérica impresa .oÉt" su superficie, para poder identificarlo. Cada fabricante publica un libro de características o catálogo para suministrar la información correspondientea los diversos productos.
Pastilla plana Pastilla de hilera doblede patillas Figura
l-8
Circuitos integrados
* En inglés se usa (DIP) Dual-in-line package.
32
S I S T E M A SE I N A R I O S
CAP, 1
El tamaño del c,ircuito integrado es bastante pequeño. por ejemplo, cuatro compuertas AND están escapsuladasdentro de una pastilla de 14 patillas en hilera doble con dimensionesde 20x 8x B milímetios. un microprocesador completo está encapsulado de una pastilla de 40 patillas en hilera doble con dimensionesde 50 X 15X 4 milímetros. Además de la reducción sustancial de tamaño el cI ofrece otras ventajas y beneficios comparados con los circuitos electrónicos con componentes discretos. El costo de los CI es bastante bajo, lo cual los háce económicosde usarlos.-Su bajo consumo de poder haóe los sistemasdigitales más econémicosde operar. Tienen una gran confiabilidad de no faliár y por tanto menos reparaciones.La velocidad de operaciónes alta haciéndolos más adecuadospara operacionesde alta velocidad. El uso de los cI reduce el número de conexiones externas ya que la mayoría están internamente dentro de la pastilla. Debido a todas estas ventajas, Ios sistemas digitales se construyencon circuitos integrados. Los circuitos integrados se clasifican en dos categorías generales: lineales y digitales. Los cI lineales operan con señales'contiñuas para producir funciones electrónicas tales como amplificadbres y res de voltaje. Los circuitos integrados digitale!, operan con "o-prt"doseñáles binar'ias y se hacen de compuertas digitales interconictadas. Aquí se tratará solamentecon los circuitos integradosdigitales. A medida que mejora la tecnología de los cI, el número de compuertas que pueden encapsularseen una pastilla de silicón, ha aumentado considerablemente.La forma de diferenciar aquellos cI que tengan unas pocas compuertas, con las que tienen cientos de compuertas, eJ referirse a la pastilla como un elementode integraciónpequeña-, medianao grande.unas pocas compuertasen una sola pastilla constituyen un elemento de integración pequeña (ssD.* Para poder calificar como un elemento de integración mediana (MSI)* el circuito integrado debe cumplir una función lógica c-ompletay tener una complejidad de 10 a 100 compuertas. un elemento-de integración a gran escala (LSD* realiza una función lógica con más-de_1_00_ compuertas.Existe también una integración de muy- grande escala (vLSI). para aquellos elementosque contienen miles de áoñrp,r"rtas en una sola pastilla. Muchos diagramas de circuitos digitales consideradosen este libro, se muestran en detalle hasta describir las compuertasindividuales y sus interconexiones.Tales diagramas son útiles para demostrar la conjtrucción Iógica de una función particular. sin embargo,dcbemostener en cuenta en Ia práctica que una función dada se obtiene de u.t elemento de mediana o gran integración(MSI y LSI), al cual el usuariosólo tiene accesoa las ent¡adas externas o salidas pero nunca a las entradas o salidas de las compuertas intermedias. Por ejemplo, un diseñador que desee incorporar un registro en,su sistema debe preferiblemente escogertal función de un circui!o -9".mediana integración (MsI), en vez de diseñar los circuitos digitales individuales como se muestra en el diagrama. 'En inglés se usa: SSI (Small scale integration) Integración de pequeña escala; MSI (Medium scale integration) lntegración de mediana escala; LSI (Lar'ge'scale integration) Integración a gran escala; VLSI (Very large scale integration) Iniegrición a muy-grande escala.
\ PROBLEMAS 33
REFERENCIAS 1. Richard, R. K., Arithmetíc Operations in Digítat Computers. Nueva York: Van Nostrand Co., 1955. 2. Flores, 1., The Logic of computer Arithmetic. Englewoodcliffs, N. J.: PrenticeHall, Inc., 1963. 3. Chu, Y., Dígitat Cornputer Design Fundamentals. Nueva York: McGraw-Hill Book Co., 1962,CaPítulos 1 Y 2. 4. Kostopoulos,G. K., Digital Engineering. Nueva York: John wiley & sons, Inc., 1975,Capítulo 1. N. J.: 5. Rhyne, Y. T., Fundamentalsof Digitat sysüemsDesign. Englewood cliffs, 1. Capítulo 19?3, Prentice-Hall. Inc.,
PROBLEMAS Escriba los primeros 20 dígitos decimales en base 3' L-2. sume y multiplique los siguientes números en la base dada sin convertirlos a decimal. (c) (367)' v (715)a ( a ) ( 1 2 3 0 ) +Y ( 2 3 ) ¿ ( d ) ( 2 9 6 ) t zY ( 5 7 ) t z ( b ) ( 1 3 5 , 4 ) 6v ( 4 3 , 2 ) o 1-3. convierta el número decimal 250,5a base 3, 4,7,8 y 16 respectivamente. t-4. Convierta los siguientes números decimales a binarios: 12,0625,104, 673,23 y 1.998. 1-5. Convierta los siguientes binarios a decimales: 1 0 , 1 0 0 0 11,0 1 1 1 0 , 0 1 0111, 1 0 1 0 1 , 1 1101, 0 1 1 0 1 ' 1 1 1 . 1-6. convierta los siguientes números en base a las bases que se indican:
1-1.
(a) (b) (c) (d)
El El El El
decimal 225,225a binario, octal y hexadecimal' a decimal, octal y hexadecimal' binario 11010111,110 octal 623,77a decimal, binario y hexadecimal' hexadecimalzAC5,D a decimal, octal y binario'
Convierta los siguientesiúmeros a decimal: (a) (1001001,011), (b) (12121)3 (c) (1032,2)o (d) (4310)5 (e) (0,342)u (f) (50)? (g) (8,3)g (h) (1e8),, 1-8. Obtenga el complementode 1 y de 2 de los siguientes números binarios: 1010101,0111000,0000001,10000,00000 1-9. obtenga el complemento de 9 y de 10 de los siguientes números decimales: 13579,09900, 90090. 10000,00000.
l-7.
34
s r s r E M A sB l N A R t o s
C A P .1
1-10. Encuentre el complementode 10 de (935),,. 1-11. Haga la sustracción de los números decimalesa continuación, usando (1) el complemento de 10 (2) el complemento de 9. Compruebe la respuestapor medio de la resta directa. (al 52ñ-32I (b) 3570- 2100 (c) 753-864 (d) 20- 1000 l-L2. Realice la sustracción, de los siguientes números binarios usando (1) el complemento de 2 (2) el complemento de 1. Compruebela respuestapor sustracción directa. ( a ) 1 1 0 1 0 -1 1 0 1 (b) 11010- 100m ( c ) 1 0 0 1 0 -1 0 0 1 1 (d) 100- 110000 1-13. Pruebe el procedimiento expuesto en la Sección 1-5 para la sustracción de dos númeroscon complementode (r- i). 1-14. Para los-códigoscargados(a) B, B, 2, 1 V (b) 4,4,9, _2para númerosdecimales, determine_todaslas tablas posibles de tal manera que el complemento de 9 de cada dígito decimal se obtenga mediante el cambio de unos a ceros y de ceros a unos. 1-15. Representeel número decimal 8620 (a) en BDC, (b) en código de exceso3, (c) el código 2, 4, 2, 1 v (d) como número binario. 1-16' Un código binario usa diez bits para representar cada uno de los diez dígitos decimales. A cada dígito se le asigna un código de nueve ceros y un r. El código binario.para-6,.por_ejemplo,es 0001000000. Determine el cóáigo binario para los dígitos decimales restantes. L-r7. obtenga el código binario cargado para los dígitos de base 12 usando las cargas de 542L. 1-18' Determine el bit d9 paridad impar generadocuando el mensaje consiste en d r e zd i g i t o sd e c i m a l e se n e l c ó d i g o9 , 4 , _ 2 , _ 1 . 1-19. Determine otras dos combinaciones distintas al código reflejado mostrado en Ia Tabla 1-4. l-20. obtenga un código binario para representar todos los dígitos en base 6 de tal manera que el complemento de 5 se cbtenga re-plar"rráo I por 0 y por 0 1 en cada uno de los bits del código. 1-21' Asigne un código binario de alguna manera ordenada a las b2 cartas de la baraja. Se debe usar el menor número de bits. L-22. Escriba su norrbre y apellidos en un código de ocho bits compuesto de los siete bits ASCII.de la Tabla 1-5 v un brt d"eparidaá p"i L""rúao un t" posición más significativa. Incluya los espaciósentre las partes del nombre y el punto despuésde la inicial del segundoapellido. L-23' Muestre la configuración de un registro de 24 celdas cuando su contenido representa(a) el número (295),s en binario, (b) el número decimal 2g5;; BDC y (c) los caracteresXyb en ngCOtC
¡t
PROBLEMAS
35
significa su conl-24. El estadode un registrode 12 celdases 010110010111.¿Qué tenido si este representa (a) tres dígitos decimales en BDC, (b) tres dígitos decimales en código de exceso 3, (c) tres dígitos decimales en código 2, 4, 2, 1 V (d) dos caracteresen el código interno de la Tabla 1-5? I-25. Muestre el contenido de todos los registros en Ia Figura 1-3 si los dos números binarios agregadostienen el equivalente decimal de 257 y 1050.Asuma un registro¡c{on8 celdas. L-26. Exprese el siguiente circuito de conmutación en notación lógica binaria. AL
I'Lrente de voltaje
1-27. Muestre las señales(usando un diagrama similar al de la Figura 1-7) de las s a l i d a s F y G d e l a Figura 1-6. Use señales arbitrarias en Ias entradas A, B,CyD.
Algebra d e Boole ly compuertaslógicas
2-1
DEFINICIONES LOGICAS
EI álgebra de Boole, como cualquier otro sistema matemático deductivo puede ser definida por un conjunto de e.lementos,un conjunto de operadores, un número de axiomas o postulados.Un conjunto de elementoses una colección de objetos que tienen una propiedad común. Si S es un conjunto y x y y son objetos ciertos, entonces¡€S denota que r es un miembro del conjunto S y y G S denota que y no es un elementode S. Un conjunto con un número finito de elementosse representapor medio de llaves:A:11, 2, 3, 4f , es decir Ios elementosdel conjunto A son los números l, 2, 3 y 4. Un operador binario definido en un conjunto S de elementos, es una regla que asigna a cada par de elementosde S un elemento único de S. Por ejemplo,considérese la relacióna*b: c. Se dice que * es un operador binario si éste especificauna regla para encontrar c de un par (o, b) y también si a, b, ceS. Por otra parte, * no es un operadorbinario si a, beS mientrasque la regla encuentreque cG S. Los postuladosde un sistema matemático forman las suposicionesde las cuales se deducen las reglas, teorías y propiedadesdel mismo. Los postulados más comúnmente usados para formular varias extructuras algebraicasson: 1. Conjunto cerrado. Un conjunto S es cerrado con respecto a un operadorbinario, si para cada par de elementosde S, el operador binario especificauna regla para obtener un elemento único de S. El conjunto de los números naturales N: I 1, 2, B, 4, l, po. ejemplo, es cerrado con respectoal operador binario ( + ) por las reglas de la suma aritmética ya que por cada a, b e N se obtiene una ce N única por la operacióna+b: c. El conjunto de los números naturales no es cerrado con respecto al operador binario menos ( - ) por las reglas de la sustracción aritmética ya que 2 - 3 : - t y 2 , 8 € N m i e n t r a sq u e ( - l ) € N . 2. Ley asociatiua. Se dice que un operadorbinario * en un conjunto S es asociativosi: 36
D E F I N I C I O NLEOSG I C A S3 7
sEc.2-1 (x*Y)+z : ¡*(Y*z)
Paratoda x,Y, z €S
3. Ley conmutatiDo. Se dice que un operador binario * en un conjunto S es conmutativo si: x*y : y*x
para toda x,y € S
4. Elemento de identidod. Se dice que un conjunto S tiene un ele* en S mento de identidad con respecto a la operación binaria propiedad: la si existe un elemento e € S con e*x:
x*e:
paratodax€S
x
Ejemplo: El elemento 0 es un elemento de identidad con respecto ,-3, -2, -7, a l a o p e r a c i ó n* e n e l c o n j u n t od e e n t e r o sI : l 0 , 1 , 2 , 3 , . . . 1 Y aq u e : x*0:0+x:xParatoda
x€I
El conjunto de números naturales N no tiene elemento de identidad ya que el 0 es excluido del mismo. 5. Inuerso.Se dice que un conjunto S, que tiene un elemento de identidad e con respectoa un operadorbinario *, tiene un inverso si para cada ¡ € S existe un elementoy C S tal que: x*!:€ ffimplo: En el conjunto de enteros I con e: 0, el inverso del elem e n t oo e s ( - o ) Y a q u e o + ( - o ) : 0 . 6. Ley distributiua. Si * y . son dos operadoresbinarios en un con' si: ¡unto S, se dice Que * es distributivo con respectoa x * ( " y 'z ) : ( x * , ¡ ' ) (' x * z ) Un ejemplo de una extructura algebraicaes un compo. Un campo es un conjunto de elementos agrupadoscon dos operadoresbinarios, cada uno de los cuales tiene las propiedades1 a 5 que se combinan para dar Ia propiedad 6. El conjunto de números reales conjuntamente con los opeiadóres binarios + y . forman el campo de los númerosreales.El campo de los números reales es la base de la aritmética y el álgebra ordinaria. Los operadoresy postulados tienen los siguientessignificados: El operadorbinario * define la suma. La identidad aditiva es 0. El inverso aditivo define la sustracción. El operadorbinario . define la multiplicación. La identidad multiplicativa es 1. define la división, es decir, a.l/a El inverso multiplicativo de a:l/a : 1. La única ley distributiva aplicable es la de ' sobre f : a-(b + c):
(a'b) + (a'c)
2.2
D E F I N I C I OANX I O M A T I C A D E L A L G E B R AB O O L E A N A
En 1854GeorgeBoole (1) introdujoun tratamientosistemáticode lógica !' para ello desarrolló un sistema algebraico que hoy en día llamamos rílgebra de Boole. En 1938 C. E. Shannon (2) introdujo una álgebra de Boole de dos valores llamada álgebra de conmutación en la cual él demostró que las propiedades de los circuitos de conmutación eléctricas biestables pueden ser representadas por esta álgebra. Se usarán los postulados formulados por E. v. Huntington (3) en 1g04 para la definición formal del álgebra de Boole. Estos postulados y axiomas no son únicos para definir el álgebra de Boole ya que se ha usado otro conjunto de postulados. *El álgebra de Boole es una estructura algebraica definida para un conjunto de elementos B juntamente con dos operadores binarios + y ., de tal forma que se satisfagan los siguientes postulados (Huntington): 1. (a) Conjunto cerrado con respectoal operador +. (b) Conjunto cerrado con respecto al operador .. 2. (a) Un elemento de identidad con respecto a f designado por el 0:rf0:0+x:x. (b) Un elemento de identidad con respecto a . designado por 1: r.1: 1.r: ¡. 3 . ( a ) C o n m u t a t i v o c o n r e s p e c t oa + : x + y : ! * x . (b) Conmutativo con respectoa . i x,y:y.x. e s d i s t r i b u t i v os o b r e . : r + ( y . z ) : ( x * y ) . ( x - t z ) . 5. Para cada elemento ¡ € B, existe un elementor' € B (llamado el comp l e m e n t od e ¡ ) t a l q u e : ( a ) x + x ' : 1 V ft) x.x':0. (b) *
6. Existen al menos dos elementos r, ye B tales que xty. Al comparar el álgebra de Boole con la aritmética y el álgebra ordinaria (el de los núme¡os reales) se notan las siguientes diferencias: 1. Los postulados de Huntington no incluyen la ley asociativa. Sin embargo esta ley es válida para el álgebra de Boole y puede deducirse (para muchos operadores) de otros postulados. 2. La ley distributiva de + sobre ., es decir, r+(y.z):(x*y) . (x -l z ) es válida para el álgebra de Boole pero no para el álgebra ordinaria. 3. EI álgebra de Boole no tiene inversos aditivos o multiplicativos y por tanto no hay operaciones de sustracción o división. 4. El postulado 5 define un operador Ilamado complemenúo el cual no está disponible en el álgebra ordinaria. *Ver por ejemplo Birkoff y'Bartee (4),'Capítulo b. ?9
-\
sEc. 2-2
A X I O M A T I C AD E L A L G E B R AB O O L E A N A 3 9 DEFINICION
5. EI álgebra ordinaria trata con los números reales, Ios cuales constituyen un conjunto infinito de elementos. EI álgebra de Boole trata con los elementos B hasta ahora no definidos pero que se definen a continuación para el álgebra de Boole de dos valores (de mucho interés para el uso ulterior de esta álgebra), B está definido como un conjunto de solamente dos elementos, 0 y 1. El álgebra Boole se asemeja al álgebra ordinaria en algunos aspectos. La escogencia de los símbolos + y . es intencional con el fin de facilitar Ias manipulaciones con álgebra de Boole por parte de personas familiarizadas con el álgebra ordinaria. Aunque no se puede usar algunos conocimientos derivadós del álgebra ordinaria para tratar con álgebra de Boole, el principiante debe ser muy cuidadoso de no sustituir las reglas del álgebra ordinaria donde no sean aplicables. Es muy importante distinguir entre los elementos del conjunto de una estrucfura álgebraica y las variables de un sistema algebraico. Por ejemplo, los elementos del campo de los números reales son números que las variables tales como a, b, c, etc., usadas en el álgebra -i.ni.ur ordinaria son símbolos que se establecen para los números reales. Similarmente en el álgebra de Boole se definen los elementos de un conjunto B y las variables, tales que x, !, z sean simplemente símbolos que representen los elementos. A estas alturas es importante darse cuenta que para tener una álgebra de Boole se debe demostrar: 1. los elementos del conjunto B, 2. las reglas de operación de los dos operadores binarios, y 3. que el conjunto de elementos B, juntamente con los dos operadores, satisfaga los seis postulados de Huntington. Se pueden formular muchas álgebras de Boole dependiendo de la escogencia de los elementos de B y las reglas de operacióni En el trabajo suÉsiguiente, se tratará solamente con una álgebra de Boole bivalente, es deóir, una con dos elementos. EI álgebra'de Boole bivalente tiene aplicaciones en Ia teoría de conjuntos (el álgebra de enseñanza) y en la lógica de proposiciones. El interés en este libro es en la aplicación del álgebra de Boole a los circuitos con compuertas' Algebra booleana bivalente Una álgebra de Boole bivalente se define sobre un conjunto de dos elede Ia mentos B: I 0, 1f , con reglas para los operadores binarios * y (La regla operador. de manera como se muestra en las siguientes tablas postulado 5): para del verificación para el operador complemento es Estas reglas son exactamente las mismas que las operaciones AND, OR y NOT respectivamente y que se han definido en la Tabla 1-6. Se debe demosoVer por ejemplo, Hohn (6) Whitesitt
(7), o Birkhoff y Bartee (4)
j
ñ
r 40
A L G E E R AD E B O O L EY C O M P U E R T A S LOGTCAS
C A P .2
0 0 0 I
0 0 I I
trar que los postuladosHuntington son válidos para el conjunto B: | 0, 1l y para los dos operadoresbinarios definidos anteriormente. r. Et conjunto cercadoes obvio a partir de las tablas ya que er result a d o d e c a d ao p e r a c i ó ne s 1 ó 0 y 1 , 0 € . B . 2. De las tablas se observaque: (a)0+0:0 (b)l.l:l
0+l:l*0=l l'0:0'l:0
lo cual establecelos dos elementosde identidad 0 para f de la manera como se definen en el postulado2.
y 1 para .
3. Las leyes conmutatíuasson obvias de la simetría de las tablas de los operadoresbinarios. 4. (a) La ley distributiua x. (y * z) : (x.y ) * (¡. z ), puede dernostrarse que es verdadera de las tablas del operador,al formar la tabla de verdad de todos los valores posibles de x, y y z. Para cada combinaciónse puede de¡ivar x.(y*e) y demostrar que esevalor es el mismo que (¡.y) + (x.z). rYz
000 001 010 0l I 100 l0l ll0 lll
y+z
x'(y + z)
x'y
x'z
(x.y) + (x. z)
0 I I I 0 I I I
0 0 0 0 0
0 0 0 0 0 0 I I
0 0
0 0 0 0 0 l I I
I
I l
U
0 0 I 0 I
( b ) La ley dístributiua de + sobre . puede demostrarseque es verdadera,mediante una tabla de verdad similar a la descrita anteriormente. 5 . D e Ia tabla de complementosse puede demostrar fácilmente que: (4, f +f':1, y a q u e0 * 0 ' : 0 + 1:1 y 1+ 1':1*0:1 (b) Í.x':0, ya que 0.0':0.1:0 y 1.1,:1.0:0 lo cual veri_ fica el postulado5.
\ s E c .2 - 3
T E O R E M A SB A S I C O SY P R O P I E D A D EDSE L A L G E B R AB O O L E A N A 4 1
6. El postulado 6 se satisface, ya que el álgebra bivalente tiene dos e l e m e n t o sd i s t i n t o s 1 y 0 c o n 1 1 0 . Se ha establecidouna álgebra de Boole bivalente que tiene un conjunto de dos elementos 1 y 0, dos operadores binarios con reglas de operación equivalentes a las operaciones AND y OR y el operador complemento equivalente al operador NOT. Así, el álgebra de Boole ha sido definida de una manera matemática formal y se ha demostrado que es equivalente a la lógica binaria representada heurísticamente en la Sección 1-8. La representación heurística es una ayuda para entender la aplicación del álgebra de Boole a los circuitos tipo compuertas. La representación formal es necesaria para desarrollar los teoremas y propiedades del sistema algebraico. El álgebra de Boole bivalente definida en esta sección, es llamada por los ingenieros "álgebra de conmutación". Para darle énfasis a la similitud que hay entre el álgebra de Boole bivalente y otros sistemas binarios, se Ie ha llamado "lógica binaria" en la Sección 1-8. De aquí en adelante se omitirá el adjetivo bivalente del álgebra de Boole en las discusiones subsiguientes.
2-3
TEOREMAS BASICOS Y PROPIEDADES D E L A L G E B R AB O O L E A N A D u al i d a d
Los postuladosde Huntingtonhan sido listadosen paresy repartidosen parte (a) y parte (b). Una parte puede obtenersede otra si los operadores binarios y los elementos de identidad son intercambiables.Este principio importante del álgebra de Boole se llama el princípio de dualídad. Este último establece que las expresionesalgebraicasdeducidas de los postulados del álgebra de Boole permanecenválidos si se intercambian los operadoresy elementosde identidad. En el álgebrade Boole bivalente, los elementosde identidad y los elementosdel conjunto B son los mismos: 1y 0. EI principio de dualidad tiene muchasaplicaciones.Si se deseauna expresiónalgebraicadual, se intercambia simplementelos operadoresOR y AND y se remplazaunos por cerosy cerospor unos. Teoremas básicos
l
En la Tabla 2-1 se listan los seis teoremasdel álgebra de Boole y cuatro de sus postulados.La notación se simplifica omitiendo el toda vez que no cause confusión. Los teoremasy postuladoslistados son las relaciones más básicasen el álgebrade Boole. Se advierte al lector que debe familiarizarse con ellas tan pronto como pueda. Tanto los teoremascomo los postulados se listan en paresy cada relación es dual con la que está apareada. Los postuladosson axiomas básicos de la extructura algebraicay no necesitan prueba. Los teoremas deben probarsea partir de los postulados. Las pruebas de los teoremas con una variable se presentan a continuación. En la parte derecha se lista el número del postulado que justifica cada paso de la prueba.
i
Tabla
2-l
Postulados y teoremas del álgebra de Boole
Postulado2 (a)x*0=x ( b )x ' l : x Postulado5 (a)x+x':l (b) x'x' = 0 Teorema I (a)x4'x:x (b)x.x = x Teorema 2 (a)x+l:l (b)x'0:0 Teorema3, involución (x')' : x Postulado3, conmutativo(a) x * y : y * x (b) xy : yx Teorema4, asociativo (a) x + (y + z): (x + y)+ z (b) x(yz): (xy)z Postulado4, distributivo (a) x(y i z¡:' xy i xz (b)x+yz:(x+y)(x+z) Teorema 5, DeMorgan (a) (x + y), : xiy, , (rv)' = x' * /' O) Teorema 6, absorción (a) x + A : x (b) x(r + y): x
TEOREMA l(a): ¡ * x: x. x+x:(x*x).1 : (x + x)(-r * x,) :x*xx, :x*0 -x TEOREMA l(b): ¡. r:
del postulado:2(b) 5(a) 4(b) 5(b) 2(a)
.,r.
x-x:xx*0 :xx+xx' : x(x * x') : x. l :x
del postulado:2(a)
50) 4{a) 5(a)
20)
-Nóteseque el teorema1(b) es el dual del teorema1(a) y que cada pa_ so de la prueba en parre (b) es el dual de la parte a;J.-¿;"lq;ier teoreiia dual puede derivarsesimilarmente de la prueba de u.r'pur-.ár."rpondiente. TEOREMA 2(a\: x + 1: 1. x*l:l'(-r+l) : (x + x')(x + l) :x*x'.1 : x'* x' :l TEOREMA 2(b): ¡.0:
del postulado:2(b) 5(a) (b) 2(b) 5(a)
0 por dualidad.
TEOREMA 3. (Í )' : x.. Del postulado5, se tiene ¡ I x, : I y x. x, :0, io cual define el complementóde r. Er c'omplu-""tá áu ,, ., , y también (¡')" Así comoel complementoes único t*at"-"r que (r,),: x. ". 42
s E c .2 - 3
T E O R E M A SB A S I C O SY P R O P I E D A D EDSE L A L G E B R AB O O L E A N A 43
Los teoremas que comprenden dos o tres variables pueden ser probados algebraicamentéde los postuladosy de los teoremasya probados.Tómese por ejemplo el teorema de absorción. TEOREMA 6(a): ¡ i xY: x. x * xy : : : : -
del Postulado2(b) del Postulado4(a) del Postulado3(a) del teorema2(a) del postulado 2(b)
x' I I xY x(l * y) x(Y + l) x. I x
TEOREMA 6(b): ¡(¡ *l') ::r por dualidad' Los teoremas del álgebra de Boole pueden demostrarsepor medio de las tablas de verdad. En estas tablas, ambos lados de la relación se comprueban para arrojar resultados idénticos para todas las combinaciones posibles áe los variables integrantes. La siguiente tabla de verdad verifica el primer teorema de absorción. xy
0 0 I I
0 I 0 I
x+ xy
0 0 0 I
Las pruebas algebraicas de la ley asociativa y del teorema de De Morgan son largas y no se dará una prueba de ellas. Sin embargo, su validez es fácilmente demostrable mediánte las tablas de verdad. Por ejemplo, la tabla de verdad para el p r i m e r t e o r e m a d e D e M o r g a n ( r * J ) ' : ¡ ' y ' s e muestra a continuación:
x+y
(x + v)' I 0 0 0
x'y
I 0 0 0
P r i o r i d a dd e l o P e r a d o r La prioridad del operadorpara la evaluaciónde las expresionesde Boole es (1) él paréntesis,(l) NoT, (3) AND y (4) OR. En otras palabraslas expresiones déntro de un paréntesis deben ser evalUadasantes de otras operaciones. La siguiente óperaciónen orden prioritario es el complemento,luego sigue la AÑn y finálmente la OR. Como ejemplo, considéresela tabla de u".dud del teorema de De Morgan. El lado izquierdo de la expresión es
44
CAP. 2
LOGICAS A L G E B R AD E B O O L EY C O M P U E R T A S
(r-1--r )'. Así, la expresión dentro del paréntesis es evaluada primero y luego se complementa el resultado. El lado derecho de Ia expresión es ¡'-r''. Por tanto. el complemento de r y el complemento de ¡ se evalúan primero y el resultado se somete a una operación AND. Nótese que en la aritmética se tiene en cuenta la misma prioridad (excepto para ei complemento) cuando la multiplicación y la suma se remplazan por AND y OR respectivamente. Diagrama de Venn Una figura útil que puede ser usada para visualizar las relaciones entre las variables del álgebra de Boole es el diagrama de Venn. Este diagrama consiste en un rectángulo tal como el que se muestra en la Figura 2-1, en el cual se dibujan círculos traslapados para cada una de Ias variables. Cada círculo es designado por una variable. Se asignan todos los puntos dentro del círculo como pertenecientes a dichas variables y todos ios puntos por fuera del círculo como no pertenecientes a Ia variable. .Tómese por ejemplo el círculo designado r. Si estamos dentro del círculo, se Ahora bien, y cuando estamos fuera de él se dice que r:0. dice que ¡:1 con dos círculos traslapados se forman cuatro áreas distintas dentro del r e c t á n g u l o : e l á r e a q u e n o p e r t e n e c en i a ¡ n i a y ( x ' y ' ) , e l á r e a d e n t r o d e l círculo y pero por fuera de r (r',r'), el área dentro del círculo y pero por fuera de -v (rJ') y el área dentro de ambos círculos (ry). Los diagramas de Venn se usan para demostrar los postulados del álgebra de Boole y para demostrar la validez de los teoremas. La Figura 2-2, por ejemplo, muestra que el área que pertenece a :r1' está dentro del La Figura 2-3 ilustra la ley distributiva círculo r y por tanto ¡*¡-r':.r. r (y + zl: xy f rz. En este diagrama se tienen tres círculos traslapados para cada una de las variables-r, J'y z. Es posible distinguir ocho áreas diferentes en el diagrama de Venn de tres variables. Para este ejemplo en particular, se demuestra la le¡' distributiva al notar que el área de
Figura
Figura
2-1
2-2
Diagrama de Venn de dos variables
liustración del diagrama de Venn x:
ry + r
.r r--->l'--\ f f a \ t+\ I
.\ 1
:li;tl
l:,
I
\ #\FZ\{ \./ \\l
_/-
.¡ (.r' ¡) Figura2-3IlustracióndeldiagramadeVennparalaleydistributiva intersección entre el círculo f área que pertenece a x)' o rz'
2-4
con el área que contiene y ó 2 es la misma
F U N C I O N E SB O O L E A N A S
es una una variablebinaria puedetomar el valor 0 ó 1. una función de Boole OR y binarios operadores dos formada cán variables binarias, de dado valor un Para igual' y".p.ñ¿" signo el paréntesis -Consid¿resé AÑD, el operadorNOT, el de la función por ejemplo 1. ó p-t"á"'t"t 0 .ruri"út"r,'la función Boole: Ft: xvz' Ft:0' L a f u n c i ó nF , e s i g u a la 1 s i r : 1 y y : 1 y z ' : l ; d e o t r a m a n e r a exuna como representada Boole de función una es Et e;emplo anterio'r por mep.u.iór, algebraica.Una función de Boole puede ser representada lista de 2" dlo d" .rná t"blu de verdad. Para hacerlo se ttecesita una y column^a unabinarias n variables las y ceros de combinacionesde r.ro, a 1 ó 0' igual es la función cuales para las -ártr"'¿o las combin""ion", Como se muestra en la Tabia 2-2 existen ocho posibles combinaciones diferente, para asignar bits en las tres variables. La columna demarcada La Tabla F1 contiene un 0 ó-u.r l para cada uxa de estas combinaciones. !, y -- I x: cuando 1 solamente mlestra que la función i, es igual a F' :0' (Nóteseque la afirmación i ):0. Para cualquierotra'combilnación : Considéresela siguiente función: que 0.) z decir :1 a es equivalenie z' Fz: x * )"2 x : 1 e n l a sú l t i F z : l s i ¡ : 1 ó s i ! : 0 , m i e n t a s - e : 1 ' 8 " l a T a b l a2 - 2 , combinaciónse última y 191'La en las filas 001 mas cuatro filas y ít:Ot para hacer Fr:1. óombinaciones cinco hay u¡i"u también páíu-r: i. A"i, función: la considérese io-o tercer ejemplo, Ft: x'Y'z + x'Yz + xY' Fn es lo Esto se muestra en la Tabl a 2-2 con cuatro unos y cuatro ceros. a continuación: y considera se mismo que F3 45
Tabla
2-2
Tablas de verdad para F, : ry2,, Fz: x * y,z, x'y,z * x,yz * A,, ! Fa: ry,+ x,z
Ft:
Fl
000 001 010 0ll 100 r0l ll0 lll
F2
00 0l 00 00 0l 0l ll 0l
F3
F4
00 ll 00
00 00
cualquier función ^deBoole puede ser representadapor una tabla de verdad. El número de filas en la tabla es de 2" donde n es el número de variables binarias de Ia función. Las combinacio.res de unos y ceros se pueden obtener fácilmente para cada fila de los n,imerosbi.rario. contando desde0 a2" - 1. para cada fira de la tabra, hay un valor para la función igual a 1 ó 0' se formula ahora la pregun_ta: e"f.esio' algebraica íHuv única para una función de Boole^dáa? n" ""upulutrur, ¿Es posibre encontrar dos expresionesalgebraicaspara especificar "t.", la misma función? L.a respuestapara estas preguntas es sí. De hecho, la manipulación del álgebra de Boole se aprica rirayormenteal proble.n" J" éncontrar expre_ siones más simples para ra mlsma función. considéresepor ejernplo la función: Fq: xY'* x'z De la Tabla 2-2 se.encuentraque es idéntica a Fr, ya que ambastienen unos y ceros idénticos para cada "n combinació.tdó'uJor"s de las tres variables binarias. En general, dos funciones de n variables binarias son iguales si ellas tienen el mi.mo uulo. puru todas ras 2^ combinaciones posiblesde las n variables. una función de Boole puede ser trasformada de una expresión algebraica a.un diagrama lógico óompuestoa" oR y NoT. La realización de las cuatro funciónes introducidas "o*p""rt";lñi;, en la anterior discusión se muestra en la FigurT,2.-4.Los diagramas lógicos i""I,tv.., un circuito para cada va.¡iablepresente""n ,u forma de complemento. (El ll-I:::"r rnversor no es necesariosi se cuenta con el complementodé la uuri"bi*) Hay una compuertaAND para cada té¡mino de la y una compuerta oR para combina¡ dos o más términos.-be l;; "*pr".io., ;i"";;;; ouuio que para completar Fo se requieren menos compuertasy "i que F3. como entradas $ v Fr son funciones de Boolg igoui;., es más económicollevar a cabo la.forma F, que la fo¡ma Ir. Paü encontrar circuitos más sencillos, se debe conocercómo manipula"rlas funliones de Boole para-obtenerfunciones iguales pero simplificadas_I,o que constituye la iiejo, fbrma de una expresión de Boole, dependede la áplicación párti"rrür.' ñ., esta sección se considerael criterio de minimizacibn de "q.ripo. 46
f
(a)
(b)
Fr - ,xr-¿
. F3 :x'Y'2. +.r'-): ir)'
(c)
(d) Figura
F2
2-4
F4 -
xr'*
'r'z
Ejecución de las funciones de Boole con compuertas
M a n ip u l a c i ó na l g e b r a i c a cuando una función de :lJn literal es una variable tildada o no tildada. B o o l e s e e j e c u t a c o n c o m p u e r t a s l ó g i c a s , c a d a l i t e r a l realiza o l e t r a dcon e l auna función compuertay cada término seentrada u il.""; ""du def ,rúmeó de literales y el número de tér";á La minimi zación compuerta. menos componentes'No es minos dará como ," ,rltu¿o un circuito con tieunl¡o, simultáneamente.Por lo regular se siempre posible *i";;i;;; el criterio de limitará se momento el Por nen disponiblesotros.'it"'io'' de literales. Posteriormentese discutiminimización a la -l"iÁir".ión 5. EI número de literales en una función rán otros criterios ""'.i-ó"pit"lo manipulacionesalgebraicas' de Boole puede ser minimizado por medio de 47
I 48
A I - G E B R AD E B O O L EY C O M P U E R T A S LOGICAS
C A P ,2
Desafortunadamente'o hay regras específicasa seguir que garanticen una respuestafinal. El único método disponible es el"p.ocedimiento,,tra_ tar y acortar" usando.los.posturados,loi teoremas básicosy cualesquier otros métodos de manipulación que se hagan familiaiescon er uso. Los siguientesejemplosilustran este irocedimiénto. EJEMPI O 2-_t; Simplifiquesela siguiente función de Boole al mínimo número de literáles. l. x * x'y : (x + x,)(x * y) : I . (x + y) : x * y 2. x(x' * y): xx' * ry:0 '- xy : xy 3. x'y'z + x'yz * xy' : x,z(y,+ y) + ry' : x,z * ry, 4. xy * x'z * yz= xy * x,z * yz(x I x,) : xy + x'z * xyz * x,yz : xy(l * z) + x,z(l + y) - xy * x'z 5. (x + y)(x, + z)(y + z): (x + y)(x,* z) por dualidad de la función 4. Las funciones I y 2 son duales entre sí y usan expresiones duales en Ios pasoscoirespondientes.La función B muestra la igualdad de las funciones Fe y Fn tratadas anteriormente. La cuarta dem"uestiaqu. un aumento en el número de lite¡ales, algunas veces,produce ,rr" final más simple. La función b no se hittimiza iii""t"-*i" ""p=r"rión deducirse o".Jo""de de la dual de los pasosusadospara deducir la función 4. C o m p l e m e n t od e u n a f u n c i ó n El complementode la función F es .t" y se obtiene del intercambio de ceros a unos y un.s a ceros en el valor de F. El complemento de una función puede derivarse algehraicamentedel teorema de be Morgan. Este par de teoremasestán listados en la Tabla 2-1 para dos variablés. Los teóremas de De-Morgan pueden extendersea tres o más variables. La forma de tres variablbs del primer teorema de De Morgan se deriva a continuación. Los postuladosy los teoremasson aquellos liÁtados en ta fabü z_f.
(A+B+C)':(A+X)' : A,X, = A' .(B + C)' : A, . (8,C,) = A'B'C'
hágaseB+ C: X del teorema5(a) (De Morgan) sustitúyaseB+ C: X del teorema5(a) (De Morgan) del teorema4(b) (asociativo)
Los teoremas de De- Morgan para cualquier número de variables se parecen al caso de las dos.variabiesy pu"d"rr,a.ri*i." por Justitucionessucesivas similares al método usadó én la dórivaci¿n tiecha anteriormente. Estos teo¡emas pueden generalizarsede la siguiente ;;;;",
\ F O E M A SC A N O N I C AY N O R M A L I Z A D A 4 9
sEc.2-5
+F)':A'B'C'D'-".F' (A+B +C+ D+''' : + B ' + C' + D' + "' +F' (ABCD''' F)' A' La forma generalizada del teorema de De Morgan expresa que el comp_lemento de una función se obtiene intercambiandolos operadoresAND y OR y complementandocada literal. EJDMPLO 2-2: Encuéntrese el complemento de las funciones F1 : x'yz' + x'y'z Y Fz: x(y'z' *yz\' Aplicandoel teoremade De Morgan tantas veces como sea necesariose obtienen los complementosde la siguientemanera: Fi : (x'yz' * x'y'z)' : (x'yz')'(x'y'r)' : (x + y' + z)(x + y + z') y z ) ) ' = x ' + ( y ' t ' + y z ) ': x ' + ( y ' z ' ) ' ' ( y z ) ' Fi:lx(y'z'+ = x' + (y + z)(Y' + z') Un procedimiento más sencillo para derivar el complemento de una función es tomando el dual, de una función y complementandocada literal. Este método se deduce del teorema de De Morgan generalizado.Se debe recordar que el dual de cada función se obtiene intercambiandolos operadoresAND y OR y los unos y ceros. EJEMPL,2.S..EncontrarelcomplementodelafunciónF1 y Fz del Ejemplo 2-2 tomando los d¡*ales y complementando cada literal. I
Ft: x'Yz'+x'Y'2. El dual de F, es (x' * Y * z')(x' * Y' I z). Complemeniandocada literal: (¡ *y' * z)(x *y * z'): FI'
2. Fz: x(Y'z'+Yz).
E l d u a l d e F 2 e sx + ( Y ' * z ' ) ( Y * z ) . cadaliteral: r' + (y ¡ z)(l' t z') : Fí' Complemenlando
2.5
F O R M A SC A N O N l C A Y NORMALIZADA Términosmínimos y términos máximos
una variable binaria puede aparecer en su forma normal (¡) o en Ia forma de complemento(r'). considéreseahora dos variablesbinarias f y y combinadas con la operación AND; como cada variable puede aparecerde cualquier forma, habiá cuatro combinacionesposiblestx'y-', !'1, xl'y ry' Cada úno de estos cuatro términos AND representan una de las diferentes áreas áui¿i"gt"-a de Venn de la Figura 2-{ y se llaman términos mínimos (min' term) áe un producto normalizado. De igual manera, se _puedencambiar n l,"riubl". para formar 2" términos mínimos. Los 2" diferentes térrninos mínimos pueden determinarse por un método similar al mostrado en
Tabla
2-3
Términos mínimos y máximos para tres variables binarias
Términosmínimos x Y z
00 00 0l 0l l0 l0 ll ll
0 I 0 I 0 I 0 I
Término x'y'z' x'yz'
Designación mo ml m2 l7l3
xy'z'
m, m5 m6
xyz
tlt7
Términosmáximos Término
Designación
x+y+z x+y+z' x+y'+z x+y'+z' x'+y+z x'+y+z' x'+y'+z x'+y'+z
Mo Ml M2 M3 M4 Ms M6 M1
la Tabla 2-3 para tres variables.Los númerosbinariosde 0 a z^ -r se listan bajo las n variables.cada término mínimo seo¡iiene áL un termino AND de n variablescon cada variable tildada, si el bit correspondiente al nú_ mero binario es 0 y si no está tirdada a l. un símbolopára cada término mínimo se ilustra en la tabla en la fbrma de m¡, dondej denota,el equiva_ Iente decimal del número binario der término ií.ri.rro correspondiente. De manera similar, las n va¡iables formandoun término oR, con cada variable tildada o no tildada, darán 2" combinacionesposibles llamadas términos máximos (maxterms) de las sumasnormalizados. Los ocho tér_ minos máximos de las tres_variables, conjuntamente con -i¿.-irros la simbología asignada, se listan en ra Tabla 2-3. cuálesquie. i" para n variables pueden determinarsede manera similar. cada término máximo se obtiene de un término oR de n variabres ,r"iia¡le no tirdada si "uáu i¡- üIi". .el.correspondientebit es 0 y tildada .i ;; "o., ;;" cada término máximo es el complementode su cor¡espondiente términá mínimo y viceversa. una función de -Boole puede ser expresadaargebraicamentea partir de una tabla de verdad dada, confoi-u"ao un t¿.iii.ro mír,imo por cada combinación de las variables qu. proá.r"en -Fo. un 1 en la función para luego obtener la oR de todos ros términb.. ejemplo, l, rrrrr"lár,en la Tabla 2-4 se determina expresandolas combinaciones 00r", 100, lrJ. comox,y,z, xy'z',y r y- z respectivamente. como cada uno ¿" mínimos resultaen /, : 1, se tiene: ".t*?rrninos ft:
x'y'z * xy'z'* ryz : m, * mo* m,
De manera similar, se puede fácilmente verificar que: . f z : x ' y z* x y ' z* r y 2 , * x y z : m r * m , i 'Algunos
mui m,
textos definen un término máximo (maxterms) como un término oR de n variables con cada variable no tildada si el bit es I y tildada si es 0. La definición -run"lon., adoptada en este libroes preferible ya que lleva a conve¡sionesmás no¡mal". u.ri." iu. tipo término máximo y término minimo. 50
2-4
Tabla
xy
z
Funciones de tres variables
Funciónft
Función/2
0 I 0 0 I 0 0 I
0 0 0 I 0
0 0 0' t 00 010. I 0l 100 101 I l0 lll
i I
I I
Estos ejemplos demuestran una propiedad importante del álgebra de Boole. óuaiquie. función de Boole puede ser expresadacomo una suma de términos mínimos (por "suma" se quiere decir la suma oR de los términos). Cánsidéreseahora el complementode una función de Boole. Este puede Ieersede una tabla de ueidad formando un término mínimo por cada combinaciónque produce un cero y luego haciendo la función OR de esos términos. El complementode /r se lee así: 'l .fí: *'Y'z' I x'Yz' * x'Yz * xY'z ryz' Si se obtiene el complementode /i se obtiene la función /t: * y * z')(x' 1-y' * z) ft: (x * y * z)(x + y' + z)(x + y' + z')(x' : Mo'Mr'Mt'Ms'Mu De igual manera, es posible leer Ia expresión/2 de la tabla: + + z) f z : G * y * z ) ( x + y + z ' ) ( x* Y ' * z ) \ x ' Y : MoMlM2Ma Estos ejemplos demuestran una segunda propiedad importante del álgebra de Boole: cualquier función de Boole puede expresarsecomo un producto de términqs máximos (por "producto" se implica el producto AND de los términos). El procedimiento para obtener el producto de términos máximos directamente de una tabla de verdad se logra de la siguiente manera: fórmese un término máximo para cada combinación de variables que produzcanun 0 en la función y luegoforme la función AND de todos los términos máximos. A las funciones de Boole expresadascomo una suma de términos mínimos o producto de términos máximos se les dice que están en forma canónica. S u m a d e t é r m i n o sm i n i m o s Se había dicho antes que para n variables binarias, se pueden-obtener 2' términos mínimos diferentes y que cualquier función de Boole puede 5l
52
A L G E B R AD E B O O L EY C O M P U E R T A S LOGICAS
CAP,2
expresarsecomo una suma de términos mínimos. Los términos mínimos cuya suma define la función de Boole son aquellosque dan el 1 de la función en una tabla de verdad. como la función prruá" ser 1 ó 0 para cada térm^ino-mínimoy -ya que hay 2" términos mínimos, se pueden carcular las funciones posiblesque puéden formarse con n variabrés it. ¡r_ gunas veces es convenienteexpresar la función de Boole ""-o en Ia forma d.e suma de términos mínimos. si no está en esta forma, se puede Ilegar a ella expandiendoprimero.la expresióna una suma de términos AND. Luego se inspeccionacada término pára uer si contiene t"d". i; variables. Si le hace falta una o más variabreé,se aplica la función Áñt;;" una expresión tal como x I x', donde r sea una de las variables fartantes. El siguiente ejemplo aclara este procedimiento. EJEMPLO .2-4: Expresa¡ la función de Boole F : A + B, C como suma de términos mínimos. La función tiene tres variables: A, B y c. como el primer término A no tiene las otras dos va¡iables por tanto: A : A(B + B'): AB + AB, Como la expresión carece de una variable: A:AB(C+C,)+AB,(C+C,) = ABC + ABC' + AB'C + AB,C, El segundotérmino B'c carecetambién de una variable: B'C : B'C(A + A'): AB,C + A'B,C Combinando todos los términos se obtendrá: F:
A + B,C
: ABC + ABC' + AB'C + AB'C' + AB'C + A'B'C Pero como AB'c aparecedos veces,y de acuerdo al teorema 1 (¡*¡: ¡), es posible quitar uno de óllos. Rearreglandolos términos en orden ascendentese obtendrá finalmentei F:
A,B,C+ AB,C,+ AB,C + ABC,+ ABC m t + m 4 + m s+ m u * m ,
Es conveniente algunas veces, expresar la función de Boole cuando está compuestade una suma de términos mínimos por medio de ra siguiente forma simplificada: F ( A ,B , C ) : ) ( 1 , 4 , 5 , 6 , 7 ) El símbolo de sumatoria I implica los términos a los cuales se les lplica la función OR. Los térm-iios entre paréntesisson los términos míni-
FORMAS CANONICAY NORMALIZADA 53
s E c .2 - 5
mos de la función. Las letras entre paréntesisa continuación de la F forman la lista de las variablesen el orden tomado cuando el término mínimo se convierteen un término AND. Productode términos máx¡mos Cada una de las 22' funciones de n variables binarias pueden expresarse como un producto de términos máximos. Para expresar las funciones de Boole comb un producto de términos máximos se debeprimero llevar a una forma de términos OR. Esto puede lograrse usando la ley distributiva ¡ * yz-- (x*y)(¡ *z) y si hay una variabler faltante en cada término OR se le aplicarrí la función OR conjuntamente con ff'. Este procedimientose clarifica por medio del siguiente ejemplo: EJEMPLO 2-5: Expresar la función de Boole F:xy*x'z como un producto en la forma de términos máximos. Primero conviértase la función a términos oR usando la ley distributiva: F:
xl I x'z : (xy + x')(xy + z) : (x * x')(y + x')(x + z)(y + z) - (x' t yXx + z)(Y + z)
La función tiene tres variables:x, y y z. A cada término oR le hace falta una variable, Por tanto: x' + y : x' + y * zz' : (x' * y * z)(x' I Y * z') x + z : x * z * yy' : (x I y -l z)(i + y' + z) y + z : y + z * xx' : (x 4 Y + z)(x' + Y + z) Combinando todos los términos y quitando aquellos que aparezcan más de una vez se obtendrá finalmente: F : (x * y * z)(x + y' + zl(x' -r y * zl(x' * y + z'\ : MoMzMqMs una forma convenientede expresaresta función es de la siguiente manera: F(x,y,z): fI(0,2,4,5) El símbolo de producto II denota la aplicación de la función AND a los términos máximos. Los números teptesetttanlos términos máximos de la función. Conversión entre las formas canónicas El complementode una función expresadacomo la suma de términos mínimos es igual a la suma de los términos mínimos faltantes de la función orllinat. E"stoúltimo es debido a que la función original es expresadapor
A L G E B R AD E E O O L EY C O M P U E R T A S LOGICAS
CAP. 2
aquellos términos mínimos que hacen la función igual a r mientras que un complementoes ul 1 para aquellostérminos mínimos en que Ia función es un 0. Como ejemplo considérésela función: F ( A ,B , C ) : X l , 4 , 5 , 6 , 7 ) Esta función tiene un complernentoque puede expresarse así:
t II I t
I I I
i
i
F'(A, B, C) : )(0, 2,3) : mn * m, * m, Ahora si se obtiene el complementode F' por el teorema de De Morgan obtendremosuna F de manéra diferente: F : (mo I m, * mt)' : m[. mL. m\: MoMzM3: fI(0, 2, 3) La última definición se de¡iva de la definición de los términos mínimos y términos máximos que fig'ran en la Tabra 2-3. De i" t"¡tu, .ú;; qr; es válida la siguienterelación: ". ^j:
M¡
Esto es, el término máximo con suscrito j es un complemento de un término mínimo con el mismo suscritoj y vióeversa. , El último ejemplo demuestra Ia óonversiónent¡e una función expresada como una suma de términos mínimos a su equivalente como producto de términos máximos. con- un. arg'umentosimilar se mostrará que la conversiónentre el producto de términos máximos y ü **" de los tér_ minos mínimos es similar. Se estableceahora pro""¿imiento de conversión general. Para hacer la conversión de "" rir-" lanónica a otra, intercámbieselos símboros v II y lístese""u que fal_ I tan en la forma original. Comñotro ejemplo,la función: "qu"iiá.-ntmeros F(*,y,2): II(0,2,4,5) se.expresa como producto de la forma de términos máximos. su conver_ sión a la suma de términos mínimos será: F(r,y,z): )(1,3,6,7) Nótese que para poder encontrar los términos faltantes, se debe tener en cuenta que el número total de términos mínimos y tr;;i;o. máximos es -función. 2n en donde n es el número variable binario en la Formas normalizadas Las dos formas del álgebra de Boole son formas básicas que se obtienen al leer la función de la tabla de verdad. n.tu. io.-u. ,,iuj ,uru-ente son las que tienen el menor número de literales d"tú;-"-i; cada término mínimo o término máximo, debe contener por definiciónl Ldos las variables complementadaso no. otra forma de expresar ras funciones de Boole es la forma normarizado. En esta configuraiión, los términos que forman la función deben con_
I
s E C .2 - 6
LOGICAS 55 OTRAS OPERACIONES
Hay dos tipos de formas tener uno, dos o cualquier número de literales' de sumas' producto y el productos ,roitnufir"¿as: la suma de que contiene térmiBoole de expresión una es prod,ucto's La suma de o más literales cada uno' La nos AND llamados t¿rÁi"ot producto.de uno estostérminos. un ejemplo de denota la apti"áciá" ¿"'ru función oR sun-¿a es: productos de á. tr.tu función eipresada en suma Ft: !' * xy * x'Yz' uno' dos y tres literales Esta expresión tiene tres términos producto de operación oR' una efecto en es respectivamente'Su suma ;J; "^;, r J n p r o d u c t o d . e s u m a s e s u n a e x p r e s i ó n d e B o o l e q u e c o n t i e nnúetérmii"io. Cada término puede tener cualquier nos OR, llamados tirÁ¡'iát ,Át áenota la aplicació1 de 11 función AND a ;;;á;;;; mero de literales. de una expresión en producto de sumas es: ttt-inos. Un "j.-pto ".to* Fz: x(Y'+ z)(x'* Y * z'* w) y cuatro literales cada La expresióntiene tres términos suma de uno, dos palabrasproducto y las de uso El uno. El producto p-roducto ; la simi¡t,ud de la operación AND y el d;id" "pltación-AND. sutna se establece"r'"ü la suma con OR áiitÁ¿t]"" (multipl'iácián) y la similitud de lá operación aritmética (adición). UnafuncióndeBoolepuedeSerexpresadaenunaformanonormalizada.Por ejemPlola función: F 3 : ( A B + c D ) ( , q ' n '+ c ' D ' ) cambiarse a una no es ni surna de productos ni producto de sumas' Puede parentesis: quitar el para la ley distributiva forma normalizadr';;;á; Ft: A'B'CD + ABC'D' 2-6
O T R A S O P E R A C I O N E SL O G I C A S
entre las dos variables cuando los operadoresbinarios AND y oR se colocan y x'y de !+y'respectivamente' t y y, ellas iorman las funciones Poole n variables binarias' é.'"".iubt..ió previarnenteque hay 22' funciones de para dos variables,'i-Z númeio de funcionesde Boole posiblese-s^16' las 16 fun"l' p.ri""t" las funciones AND y OR son solamente dos del total de instrucmuy Sería primarias. do, variables ;ilr";; posibles for-udu. "o., sus,propiedades' investigar e funciones 14 tivo encontrar las otras i;t- i6 f,r.t"iott"s"formadásóon dos variables Las tablas d" ;; ";;á;d la Tabla 2-5. En esta tabla, cada una de las 16 binarias x y !,." ri.f"" po"" una tabla de verdad de una función columnas Fo a F,r-i"prr.."tan las funcionesse desible para las dos u"rüb1"" dadas x y y'Nótese.que que pueden ser asigterminan a partir d; l;. 16 combinaóiott". binarias, símbolooperador' nadas a F. Algunas de las funcionesse muestran con un y Ft represenAND para una pói ej"-plo, F, .upr*enta la tabla de verdad
I
Tabla 2-5 Y
Fo Ft
v
00 0l l0 ll Símbolo operador
0 0 0 0
0 0 0 I
Tablas de verdad para las 16 funciones de dos variables binarias F2
F3
F4
F5
F6
F7
Fs Fs Fto
F,,
F,z F,¡
Ft.
F,,
0 0 I 0
0 0 I I
0 t 0 0
0 I 0 I
0 I I 0
0 I I I
I 0 0 0
I 0 I I
I I 0 0
I I 0 I
I I I 0
I I I I
o
+
ú
f
I
I 0 0 I
I 0 I 0
c
ta la tabla de verdad para la oR. Los símbolos operadorespara estas fun_ cionesson (.) y (*) iespectiva-".ri* Las 16 funciones lisiadas Luu.de verdad pueden ser expresadas algebraicamente.pormedio "*ude expresio.ru. a"- go;lJ]'n.to se puede ver en la primera columna ae la rabiá 2-6. Las expresionesde Boole lis_ tadas están simplificada. -i"iÁJ".r?,...o de rite¡ares. "t Aunque cada función puede .", en t¿rminou de ros operadores de Boole AND, oR v ñot, "rp""."dapara no poder asignar símboros operadores especiales para expresa¡ ";-itü;;"ón las otras funciones. Tales símbolos operadoresse listan t" ."guiráu ¿" r" i"¡l"l_0. si., embargo, "rt "ol-ürru Tabla 2-G Expresionesde Boole para 16 funciones de dos variables
Funcionesde Boole Fo:0 Ft=x! Fz = xy' Ft: * F¿ = x'Y Fs: / F6= xy'+ x'y F 1: x I y Fr: (x + y)' Fg= xy * x'y' Frc: /' Ftt=x1y, F,, : ,, Fn:x'*y Ftq: (ry)' 4s=l
Símbolo operador
x.y
x/v y/, x@y x+y
xIv xoy v' x Cl x' x)l
xlv
Nombre
Nulo AND Inhibición Trasferencia Inhibición Trasferencia OR-exclusiva OR NOR Equivalencia* Complemento Implicación Complemento Implicación NAND Identidad
*Equiualenciaesconocidatambiéncomoigualdad,Ñ.
56
Comentarios
Constantebinaria 0 ryy r pero noy x y pefo no ¡ v r óy perono ambas xóy No-OR r igual ay Noy Siy entonces.r No¡ Si r entoncesy No-AND Constantebinaria 1
sEc.2-6
LOGICAS 57 OTRAS OPERACIONES
oRtodos los símbolos nuevosimostrados, con excepción d9J símbolo de la digitales' los.diseñadores parte de por exclusiva O, no.ott á. uso común su corresponCada una de las funcionesen la Tabla 2-6 se lista con simple. Las forma de función su que explica diente nombre V .ot"""l"tio listadas pueden subdividirse en tres categoias: io n ""io""s 1. Dos funcionesque producen una constante0 ó 1' y tras2. Cuatro funciones con operacionesunarias de complemento ferencia. 3. Diez funciones con operadoresbinarios que definen ocho operaciones diferentesAND, ÓR, NINO, NOR, OR-exclusiva,equivalencia, inhibición e imPlicación. cualquier función puede ser igual a una constante,pero una función ser igual solamente a-1 ó 0. La función complementoprobinaria püede 'complemenio de cada una de las variables. A Ia función que es á"." y.a "f rg";l ; lá váriable de entrada se le ha dado el nombre de trasferencia formanla que de compuertas a través y es trasferida_ d"" t" variable x ó (inhidos binarios, operadores ocho los De valor. su cambiar sin flnción trición e implicación) son usadospor los logistas,perofnuyfara vez se usan en lógica dL computadores.Los óperadoresAND y OR se-han mencionado conjuirtamente con el álgebra de Boole. Las otras cuatro funciones se usan mucho en el diseño de sistemas digitales. La función NOR es el complemento de la función oR y su nornbre es una contracción de not-OR. De manera similar, NAND es el complemento de AND y es una contracción de noü-AND. La OR-exclusiva, abreviado yy XOR ó EbR es similar al OR pero excluye la combinaciónde ambos x variables dos las que es l,cuando función una es igo"l u 1. La equivalencia es'decir, cuando ambas son cero o ambas son 1. La OR-exclu.;;ig""I.., la ¡"nción de equivalencia son complelrentarias entre sí. Esto puede ;i;;; ser v-erificadofácilmente al inspeccionar ia Tabla 2-5. La tabla de verdad pá.u tu OR-exclusiva es Fo y paf la equivalencia-es Fn y estas dos funPor está razón la función de equivalencia iio.r", se complementan "i. es decir oR-exclusiva NOT. "ti.ó NoR-exclusiva, menudo a llama se -ñiárg"bra de Boole tal como se ha definido en la Sección2-2, tiene dos operadore-sbinarios que nosotros hemos llamado AND y OR y el operador unario NOT (complemento). De las definiciones, se ha deducido un número de propiedades dó estos operadoresy se han definido ahora otros op€radores binarios en términos de los primeros. No hay nada especi"l -u:T.." d.t ( este procedimiento. se hubiera podido comenzar con el operador NOK i )' del en términos y NOT por ejemplo, para posteriormentl definir AND, OR álgebra el para introducir razones ob.t"trt", estas son buenas iti-üto.'Nó y "lo-t" de BOOIede la fOrma que se ha hecho. LOs Conceptos"a.nd", "or" 49"lógicalr ideas para expres_ar a día día genie los usa y la son familiares álgebra del doble naturaleza la reflejan Huntington postuiadosie lo. ;Á, haciendo-énfasisen la simetría de * Y ' entre sí'
2-7
C O M P U E R T A SL O G I C A S D I G I T A L E S
como las funcionesde Boole se expresanen términos de operacionesAND, oR y Nor, es más fácil llevar a cabo una función de Boole con esre tipó de compuertas.La posibilidad de construir compuertaspara las otras operaciones lógicas es de interés práctico. Los factoresque van a ser valorizados cuando se considera la construcción de otros iipos de compuertas Iógicas son (1) la factibilidad y economíade producir la compuerra con compuertasfísicas, (2) la posibilidad de expandir Ia compuerta a más de dos entradas, (3) las propiedadesbásicas del operadorbinario tales como conmutatividad y asociatividad y (a) la habilidad de la compuerra para Ilevar a cabo las funcionesde Boole por sí solaso conjuntamentecon otras. De las 16 funciones definidas en la Tabra 2-6, dos son iguales a una constante y las otras cuatro se repiten dos veces.euedan solamentediez funciones para ser consideradascomo candidatas pu.u lógicas. Dos de ellas, la inhibición e implicación no son conmutativas "o.rrp.rertas o a*ciativas y por tanto imprácticas de usar como compuertaslógicas normalizadas;Las ot¡as ocho:complemento,trasferencia,AñD, OR, ñAND, NOR, oR-exclusiva y- equivalenciase usan como compuertasnormalizadár p"rá el diseño digital. Los símbolos gráficos y las tablas de verdad de las ocho compuertas se muestran en la Figura 2-5. Cada compuerta tiene una o dos entradas variables designadascomo r y y y una variable de salida binaria designada como F. Los circuitos AND, oR e inversorfueron definidosen la Figüra 1-6. El circuito inversor invierte el sentido lógico de una variable binaiia y producela función NoT o complemento.El círculo pequeñoa la salida del símbolo gráfico de un inversor implica un complemuntotagi"o. El símbolo triángulo designa para sí solo un circuito sepárador(buffér). un circuito separador produce la función de trasferenoa pero no produce ninguna operaciónlógica particular ya que el valor binario de la salida es iguál al valor binario de la entrada. Este circuito se usa solamentepara amplificación Ce señal de potencia y es equivalentea dos inversoresconectatlos en cascada. La función NAND es el complementode la función AND tal comose indica por el símbolo gráfico que cons.isteen un símbolo gráfico AND seguido de un pequeñocírculo. La función NoR es el complem"ito d" la funciói oR y ylq un símbolo gráfico oR seguidode un pequeñocírculo. Las compuertas NAND y NoR se usan mucho como compueriaslógicas normalizadasy de hecho son más popularesgy9_!ascomp.,eria. AND toR. Ello se debe a que las compuertasNAND y NoR puedenconstruirsefácilmente con transistores y ademásporque las funciones de Boole pueden llevarse a cabo fácilmente con ellas. La compuerta oR-exclusiva tiene un símbolo gráfico similar al de la compuerta oR excepto por una línea curva adicional del lado de la entrada. La equivalenciao compuerta NoR-exclusiva es el complementode la oRexclusiva de la manera como indica un pequeñocírculo áel lado de la salida del símbolo gráfico.
58
Nombre
AND
OR
Función algebraica
Símbolo gráfico
x-----ñ | v -------l-/
i--1-\
F:x*v
'
0 0 0 I
00 0l l0 ll
F:x./
)-F
Tabla de verdad
0'| 0 I
'l F
.Inversor " ->Separador
F
0lt
F:x',
ll0
' --)-.
F:x
x-----ñ.
NAND
I )'-----l-/
F_-F
F:(xy)'
NOR
¡ =-ñ. I , -----1-/
>--F
F:(x+y)'
oR-exclusiv¿
x --\1]-
(xoR)
v-+l-/
x NoR-exclusiva Jf\_. o y---lLJ-
F
F:
ry' I x'/
:x@Y
00 0l l0 ll
I 0 0 0
00 0l l0 ll
0 I
I 0
ri
'
F : ry + x'y' :xoy
equivalencia
Figura 2-5
Compuertas lógicas digitales
59
60
A L G E B R AO E B O O L EY C O M P U E R T A S LOGICAS
CAP.2
E x p a n s i ó na e n t r a d a s m ú l t i p l e s Las compuertasmostradas.en la Figura 2-b a excepcióndel -unainversor y el sepa-radorpueden expandirse más de dos entradas. -binaria " puede expandirsea múltiples entradas "o-puárü si la operaci¿n que repre_ senta es conmutativa y asociativa.Las operacionesAND y oR dehnidasen el álgebra de Boole tienen estas dos própiedades.pa¡a ia función oR se tiene: **y:y+x y (x + y) * z:
conmutativo
, + (y * z): x * y * z
asociativo
lo cual.indi_cgque las compuertasde entrada puedenintercambiarse y que la función OR puedeextendersea tres o más variables. Las funcionesNAND y NoR son conmutativasy sus compuertaspueden expandirse para más de dos entradas si se tiene en cuenta que la operación se modifica un poco. La dificultad es que i".-"pár"a"r"" N¡ñií v NOR no son asociativos,es decir, (r t g J l)-* ll;i-;;, como se ve a continuación: (xly)It:f
(" + y), + ,f,:
( x r y ) 2 , : x z ,+ y z ,
xl}!z):1"
+ (y + ,),1,= x,(t * z): x,y r x,z Para vencer esta dificultad, se define u.na compuerta NoR múltiple (ó NAND) comouna oR complementada(ó AND). e"i, poi J"rirri"io'se tiene: xlyl,z:(xty*z)' xlylz : (ry2)' Los..símbolosgráficos.de las compuertas de tres entradas se muestran en la Figura 2-7. Al esc¡ibir operacionescon NoRv NÁño se debe tener en cuenta el co¡recto rso del paréntesis pu." i-piitrr ""larcada la secuencia adecuadade las compuertas. para demostrar lo anterior considéreseel ci¡-
l . rl y ) I r : ( x * , r , ) z ,
Figura
2-6
Demostración de la no asociatividad
(xtry)l,z+ x(y!z)
del operador NO_O;
I '____ñ. I ___z -----l-./
x--ñ I --{ z ---L_./
(.r r r, *:)
)o_
(a) CompuertaNOR de tres entradas
(.r.r'z)'
p-
(b) CompuertaNAND de tres entradas
A
B C
-F = |(ABC)' ' (DE)'l' ABC + DE
(c) Compuertas NAND en cascada Figura
2-7
Compuertas NOR en cascada y de multi-entrada
y compuertas NAND
debeescribircuito de la Figura 2-7(c).La función de Boole para el circuito SE ASí:
F :I(A B C )'(D E )'f': ABC+ DE Esta muesLa segundaexpresión se obtiene del teorema de De Morgan' por medio productos de suma en expresión una tru q.,1 se puede ,"ilii^, las compuertas de co*prrertas NAND. Posteriormente se tratará sobre y 4-8' 3-6,4-7 Secciones las en NAND v NOn conmutaLas compuertasQR-exclusiva y de equivalencia-son ambas Sin entradas' dos de a más tivas y asociativ". y' prr-aen extánderse comunes son no multientrada de las compuett"i OR-"*clusiva "-¡urÉo de-ior ciicuitos. En efecto, aun una función de desde el punt' O" "i.ü .r..rut*ente con otro tipo de compuertas' Así' -íunciones dos entrad". ," "orr"i.rry" debe modificarse cuando se expande a la definició., a" ""iu. es impar, es decir, es igual oR-exclusiva más de dos variables.La función impar de unos' La funnúmero un tienen á"1."¿a a 1 si las variabler-d" vaen una función por' es decir' es -igual a 1 si las de construcción La ceros' "quivalencia par de "i¿n-¿" riables de entrada tienen un número
F=Yoy@z (a) Usando compuertas de dos entrad¿
--t{-\. ".t ____# ---H-/ z
>-
t' = Y +.1'+ :
(b) Una compue¡tade tres entradas
0 0 0 0
00 0l l0 tl 00 0l l0 ll
0 I I 0 I 0 0 I
(c) Tabla de verdad Figura 2-8
Compuerta OR-exclusiva de tres ent¡adas 6l
A L G E B R AD E E O O L EY C O M P U E R T A S LOGICAS
CAP.2
una función oR-exclusiva de t¡es entradas se muestra en la Figura 2_g. Esto último se realiza normalm".,Ja-'"orr""tando en cascada compuertas de dos entradas como se muestra en (a). Cr¿n.urn".rt., se puede repre_ sentar con una sola compuerta de tres entradas como se irústra Gi . La tabla de verdad en (cj indica q". ü,"iiáá F es igual "; a 1 "ruru,'uni" si solamenteuna entracraes igual a 1 o si todas las entrádas son igual a 1, es decir, cuando el número total de unos de las variables de entrada es impar' una ulterior discusión .ob.e el on-"*r*i;;-i;'"qrivalencia se verán en la Sección4-9. 2-8
F A M I L I A S D E C I R C U I T O SI N T E G R A D O S L O G I C OD I G I T A L E S
El circuito integrado se introdujo en la Sección 1-g, donde se dijo que los circuitos digitales se construíán invariablem"r,t"'* integra_ dos. Después de haber tratado varias compuertas "i.cuitos lógicas digitales en la sección.anterior, se está en posición de presentar las compuertasde cir_ cuitos integradosy de_discuti, ..r. propiedades g"""*1"..-' . Las compuertas digitares de .ir",rito. i"t"l.uáo.- r" clasifican no solamentepor su opu.ación lógica, sino por ra faniiria áe lógicos, específicosa la cual pertenecén. cada familia tiene un "lr"rrito, circuito electró_ nico básico propio, médiante el cual se desarrollan ru.rcio.resy circuitos digitales-más complelos,El circuito beri.o en puerta NAND ó una NoR. Las compuertas cada famiria es o una comelect¡ó.ri"u. ,r.ád"s en la construcción de circuitos básicos-seusan para determinar el nombre de la familia lógica. Hav muchas familias ió;ü;d" circuitos integradosdigitalesque han sido introducidos comercialménte. Aquelras que han alcanzadobuena popularidadse listan a continuación. TTL ECL MOS cMos I:L
Lógica de transistores (transistor-transistor logic) Lógica de acoplamiento de emisor (emitter-coupled logic) Semiconductorde óxido de metal (metal-oxide semiconductor) semiconductorde óxido de metal complementario (complementary metal_oxide semiconductor) Lógica de inyección integrada (integrated_injection logic)
La TTL tiene una lista extensa de funciones digitales y es comúnmente la familia lógica más popular. La ECL .; ;.;-"";-sistemas que re_ "r" qureren operacionesde alta velocidad. Lo. Mós;l;i ur"r, en cir_ cuitos que requieren alta densidad de componentesy la CMOS se usa para_s-lstemas que requierenbajo consumo de poder- " El análisis de ros circuitos ere"t.ár,icos ¡¿Jicos-en cada familia rógica se representaen el Capítulo 13. El lector que está familiarizado con elec_ trónica básica puede róferirse.at capiiut" it con er fin de familiarizarru con estos circuito. ";;;;;;;;, Aquí se limitará la discu_ "iici.¿nicos.
s E C .2 - 8
L O G I C OD I G I T A L E S 6 3 INTEGRADOS F A M I L I A SD E C I R C U I T O S
siónalaspropiedadesgenerales'delasdiferentescompuertasencrrcul. comercialmente' ;;:'i"t" g;"dfs disponibles los trancon l1 qü. puedatt:"t -f1b-tl:udos urtu'áJ"tiá;e ru u Debido dg: fuyiliás se usan principalmente^-nllf sistorescon MOS ; I;il;t;. BCL v 9y9S se usanen las i;milias LSL Las ;;;'t; TTL, funciones d. .o.npnertasMSI v. SSI. Las comLSI y ;;;'ñ;o compuertas un número pequeñode compuer";';; SSI son uq""ff"t'q"e contienen puertas de circuito .r, Ia Sección 6-2) en una pastilla tas o flip_flops (preJe-nl"áu. sSI es el de_circuitosen un componente integrado. El límite'áJ*--.ro por ejemplo' Una n"ttifl" q" t1 tllt'll"s' número de patillas de la pastilla' una' ya cada entradas de dos puede alojar solamente cuatro tornptt"tt"t entradas v una para dos 3 patiila^sexternas: que cada compu"tti ;;t;tit; restantes patillas dos Las patillas' totai de 1.2 para la salida,.p"; á;;;; potencia a los circuitos' de 'u-i]litt'o el para se usan 2-9' Cada circuito SSI se muestran eT la Figura Algunos patillas se nuLas "i,c"iiot pa*till" d9 f,a o 16 pati[as' está encapsrrluao las coney especifican se "'i""'iu at la pastilia nteran a lo largo d; bt*¿5; üáát circuito del áentro áib":udas xiones que pueden hace'se' Lu' "otp'i"it* ya que en la verse ptt"d"tt t'o totut"tt"l integrado son para i"r**áti¿" at l" forma ilustrada en la Figura aparece integrado circuito el realidad t-t.
por la decircuitos integrados TTL. se_distinguen_comúnmente numérica designación t,u s¿óo v z"+oo. "o" nrr*¿ri.u^i'"-t'.orrro ra .e.ie signación numerados están int"g.udo. de la serie ?400 implica que los "ir'Ñár TTL fabricant"ei^ti"""" clrcuitos integrados 7 400,7 40I, Z¿Ozetc.''Ñ*""1 serie la como ¿t"ignu"io""t tuméti"ut tales iilu'*i"' disponibles "o,, n*J"tffi;ra ssl. El ?404viene con cua2-9(a) ilustra dos circuitos TTL marcados v¿6' y terminales io. tro compuertas ÑÁNO de 2 entra¿".. un voltaje la fue.ntedel poder que requieren GND son p"r" r""'p"inf* -a" de 5 voltios para la adecuadaoperaclon' La Figura t" a"1g"a 99-9 la serie 10'000' -gcL. El tipo ECL;;;;;;;" compuertas cuatro El" 10102viene con 2_g(b) muestra ¿"""";r."ii"" ECL pry{e tener dos entradas, que .o-p.r"*u la NoR de 2 entradas. ñót"." oR, (pin 9 del circuito r""ción pu"u-ü una para la función Ñon y Ia otra tres compuertas ORcontiene i0i0? i.,i"gr"ao integrado 10102).iii .ir*iil da Ia üri¿"t á" t"a" compuerta' La otra h;;á"t exclusiva, .n.*tJtui; tres tienen EcL Las compuertas función ¿" NOn-e*"jrr".i.r"'o ó"iualencia. por lo geconectan t" v""' i terminales ot" t'iilil.itt'o-JJn9a"t-1" - 5'2 voltios' de. voltaje un a í" v v* ;'";;;i;t 4000se muestran en la Figura 2-9(c)' Los circuit*'ai{ób'i"-iá-."ri" de cuatro entradas d"t ;;;ÑJl"' ry91 Solamente ." pr't"iut' á"orro¿u' seis circuid";;iil.";' ñtit"tio" en el 4002 ¿"¡ia"?l' dos tienen integrados "tl-o-tg,::ntiene terminales tos separador". &Jfi"r). Ámbos circuitos marcado V" requiere l"tirinat nr sin uso, *ur."ai"Ñ?'(tá conecta "o"e*i¿"i' comúpmente-se g y vss a t5 íoltios un voltaje au .rr*i.riJro d" a tierra.
l
r vcc t4 13
vcc t4
23456
13
7 Tie¡ra
740
34s67
Tierra 7400-Cuatro compuertasNAND de dos entradas CompuertasTTL
vccz 16 t5
vccz tó 15
8l vre
vcct
vcct Vte NC 10102-cuatro compuertasNoR de dos entradas 10107-Tres compuertasoR_exclusiva,/NoR (b) CompuertasECL voo t4
NC 16
13
123456.7
NC 13
12
34567 NC
l/ss
voo
4002-Dos compuertas NOR de 4 entradas
4050-Seis separadores
(c) CompuertasCMOS Figura 2-9
Algunas compuertastípicas en circuitos integradoa
zss
Lógica Positiva Y negativa cada compuerta puede tener uno La señal binaria a la entrada ó salida de d e d o s v a l o r e s , . * . " p t o - A t " a n t e l a t r a n s i c i ó n ' E l dos v a l ovalores r d e u n ade s eseñal ñ a l r eaplos reóoÁá .. oiro'ü;;;b:, senta lógica r v De".ignan asignadasa la lógica' "r dr; tipos -de-señiles dos valores lógicos ;;;";;; de Bóle, un intercambio de alge,ra el e-n bido al principio ¿""i""á".fia"d á"-"""a1 resulárá en una función dual' la asignación de un ""f"t binaria mostrada en la Figura considérese to, áo, ualores de la señal que el. otro ya que tienen que ser diferentes 2_10.un valor debe .;; -;y;. como H (High) y el nivel para poder distinguir"ñ.'Oá"ignl.. .t "l*í alü asignaciónde la lógica. para la bajo como ¿ (l,owl. ñ;;-d*;il;rnativas Valor señal
Valor lógico
Valor señal
Valor lógico
0
(b) Lógica negativa
(a) Lógica Positiva
Figura
tipo de lógica 2-1O Asignación de amplitud de señal v
la lógica l como se muestra en la Escogerel nivel alto H para-representar positiua; el cual se define e"lsistema de lógica Fisura 2-10(a)v -ái""i" Ia ilustrada manera. la 1 de gica ró i-ü;;-r;r;;"tar _en. d"J;*;r^;i nesattua' lósica de "ií"ísistema el ñigri""i_to(b) poT -;ái; áái .""t se define señay negatiuosno-son adecuadosya que ambas Los términos pos¿¿¿uos lo señales las es Ia polaridad de les pueden r", po"iiüt'o-"?g"ti"T'ry; lógicos valores los de l;;i;; ;i;" la asignación que determina el ,*r.;i ielativas.de las señales' amplitudes las a á.-u.rr".do de datos de los circuitos integraLas hojas t¿."iJ". áI-;.;;;il;.;.ión de lógica 1o lógica 0 sino dos definen funciones digitales_no-en.tárminos al usuario Ia oportunidad de usar en término, a" ,,iuei"e.?; t. se le deja ní ta Tabla 2-7 se listan los voltajes las asignacior,". po.iiiá i *t+i"i para tres familias de circuitos integrados de nivel alto (I{) V nl.r"f Éajo-(L) Tabla 2'7
Niveles HyL
Tipo de familia Voltaje de tuente (V) de CI
TTL ECL CMOS
5 Vcc= 5 '2 V¿¿: Voo:3-I0
en las familias de CI lógicos
(V) Nivel alto de.'/oltaje(v) Nivel bajo de voltaje Rango
3,5 2,4- 5 -0,95- -0,7 -0,8 Vpo Voo
TíPico
0,2 0 - 0,4 -1,9- -1,6 -1,8 0 0-0,5 lógica 0 Iógica 1
66
ALGEBRA DEBooLEY coMPUERTAs LoGIcAs
cAP,2
lógicos digitales' En cada familia hay u-n rango de varoresde voltaje que el circuito puede reconocercomo nivel alto o ,i*J-u":ál'ñt u"ro. típico es el que se usa más comúnmente.r," üui"-á" r". iorrr;". de sumi_ nistro como referenciapara "á"-¿. Á_iii.. ""J" ¿" ¡i: TTL tiene valores típicos s,s voltios y L:0,2 vortios. ECL tiene dos valoresnegativose" a: 9¡i ¿: _-i¡;"íriár. ñár.se que pesar a de ser de dos voltajes ,,egutivos"Li" -g. compuertas cMOs pueden usar un uolt"¡e "1,"""."^-i,b.'i", au-.u-inirtro voo en el rango de 3 a 15 voltios con voltaies típicos d;;; id ,,oltios. lár" u"ior", de ra señal CMOS son función ¿el voltaje á.-r,riri'i.rro. en con H : Von y L:0 voltios.
seinffi',-"X;i:l S,f:"ffll"dá"'-;;'j" üri*'*,i ",f ] negativa Después del anterior planteamiento,
se hace necesariojustifica¡ los símbolos lógicos usados p". rárintegrados mostrados en la Figura 2-9' Tómeseoor ejemplo,una"ll;;;". de la. compuertasdel circuito integrado 7400. El diagramá de"b.loiuá ;;h .l-pu".t" se muestra en ra Figura 2-11(b).La tabla de verdad a"l r"b¡.á"te de la compuerta dada en la hoja de especificaciones se muestra en la Figura 2_II(d. Esto especificael
Tabla de ve¡dad en té¡minosdeHyL.
(b) Diagrama de blooue de la compuerta
x---ñ lF_: /______1.
( c ) Tabla de verdad
para la lógica positiva;
H:T,L:0.
(e ) Tabla de verdad de lógica negativa L:r,H:0. Figura
2-11
'
(d) Símbolográficopara la compuertaNAND de lógicapositiva.
( f ) Símbolográficopara ra compuertaNOR de lógicanegativa.
Demostración de lógica positiva y lógica negativa
sEC.2-8
L O G I C OD I G I T A L E S 6 7 F A M I L I A SD E C I R C U I T O SI N T E G R A D O S
con H con un valor típico de 3'5 comportamiento físico de la compuerta v o l t i o s y L d e 0 , 2 v o l t i o s . E s t a c o m p u e r t a f í s i c a p u e d e f u n c i de onarcomo compuertaNOR dependiendo la asiguna ó como NAND compuerta una nación de la Polaridad' lógica positiva cort La tabla de verdad de Ia Figura 2-11(c) asume de verdadde tablas las con verdad lalablá de y L:0. nf .oriilr* H:t EI símNAND' compuerta una la Figura 2-5, se reconoceque se tlqt-t-d" lógica positiva se muestra en bolo gráfico p"r" .,.ru-.omiuerta .NAND de y e. similar a la que se ha adaptadopreviamente' i"^ñiEirr"- z_-111¿¡ lógica positiva a esta compuerAhora, considéreseuna asignación de tábla de verdad mostrada ta física con L:1 ;;:ó.-ñir".uttaáo "."tu que representala función en Ia Figura Z-f1(ei.--Esta tabla se. reconoce NoRapesardeq..",.,,.entradasesténlistadasalrevé s.Elsímbolográfico se muestraen la Figrrra2-11(f)' para una compuerta-Ñon ¿" lógica negativa e.tttada y salida designan un indi' El pequeñotriangulá e";i* ui"-*¡r.s áe indicadór de polaridad en las eneste de cador d,epolaridad,.\l'Or*"".iq la lógica ttág"iiuu se asignáal terminal' Así' tradas y salidas i"di;-ñ;-ia o positiva Iógica de como NAÑD misma compuerta fisica puede funcionar"o completaes diagrama el en dibujado como NOR ae rogiá neiativa. El uno pát".i¿ud que el disenador desea J" i;-i;";:;ñ;til dependient" mente emplear. D e m a n e r a s i m i l a r , e s p o s i b l e d e m o s t r a r o u e . l - anegativa' N o R d e l óLa g i cmisma apositiva ii"i* q"" la NAND ie lógica es la mism" AND y OR o entre las compuertas "ornp,r.irJ relación es válida e,,t'e las compuertas casosi seasume lógica necualquiár n1 oR-exclusiva y la il";ñI"*i". necesarioincluir el triángativa en cualquie, te'mi"ul de entrada o safida es lo l"rgo-del terminal. Algunos diseñadores gulo indicador de p"i;;ili;d " p"t" fi'.ifit"r el diseño de los circuitos digidigitales usan esta i""""""1¿" las compuertasNOR y NAND. En este tales cuando." ururi!*.iu.i"u"i""te recurrirá a otros métodos para haIibro no se usará esia simbología pero se cI presentados v Ñon Nótese oue lg¡ cer diseños positiva' se lógica de gráficos se muestran con sus simbolos 2-9"o-i*J.;ÑiÑ"D en la Figura"or, se hubiera si negativos lólicos .i*¡olos hubieran podido *;;;;;-;;" ""r deseado. negativa y viceversa'es esenLa conversiónde lógica positiva a lógica ceros y ceros a unos en Ias a cialmente una operación que cambia-unos que esta-operación produce a Debido entradas V satidas á.'i" J"-p"erta.todos los termlnales de una polaridad a una función dual, "i ".t"¡¡^de otradaráelmismoresultadoquetomareldualdelafunción'EIresultadode".t""orrro"r.iórr".quetodasrasoperacio nes.ANDseconviertena d.b" olvidar el incluir el indiAd"-á", ;; -;; operacioneson v-ri.L""r.". ne"é i;; símbolos gráficos cuando se asume lógica cádor de polaridad *u"uÉi de polaridad I 9l pequeño triángulo que representa un indicador efectos simitienen pequeño círculo.qrr" tép'""enta una to*ple-"tttación el uno pueden.remplazarse por tanto' lares, pero srgnrrrcadosdiferentes, un es diferente. por el otro, si se tiene en cuenta que su inierpretación
68
ALGEBRADE EooLE Y CoMPUERTASLOGfCAS
cAp. 2
círculo seguidopor un triángulo, tal c.oT9 en la Figura 2-ll(f), representa una complementaciónseguida de un indicador de polaridad gativa. Los dos se cancelan entre sí y pueden quitarse. perode lóeica ne_ si se-quitan ambos, las entradas y salidas de la compuerta representarán polaridades diferentes. Característicasespeciales Las característicasde las familias de cI lógico digitales se comparan analizando el circuito de la compuerta básica"¿e cadá familia. Los parámetros más importantes que son evaluados y comparados son fu.r'orri, -*u.g"r, disipación de poder, de ruido. Se expli_ {ego1a de propagación y cará primero las propiedades de estbs-parámétrosp".u trregousarlos plra compararlas familias lógicasde CI. , l?l-o"f especificael número de cargos normaresque puede accionar la salida de la compuertasin menoscabai"" op"i".i*liJrmal. u.a carga normal se define como la cantidad de corrientó necesitadapara la entrada de.otra compuertaen la misma familia de cI. argu"". u""es se usa el término cargadoen vez de fan-out. Este té¡mino se*deducedel hecho de que la salida de la compuerta suministra una cantidad limitada de corriente por encima de la cual no opera cofrectamentey se dice por este caso que está sobrecargada.La salida de la compuerta generalmente se conecta a las entradas de otras compuertassimilares. cuáu cierta cantidad de potencia de la compuerta de entrada de ""iráj" "or,rrr-" tal -u.,"ru que cada conexión adicional se.agrega a ra carga de la compuerta. ,,Las ,Lglas Je carga" se listan comúnmentepara uná familia de circuitos digitalás nor_ malizados. Estas reglas especificanla máxima cantidaá de cJrga p".Áisible para cada salida de cada circuito. Al excedersela carga máxima especificadase podría causar mal funcionamiento ya que el circuito no puede suministrar el poder demandado.El fan-out es el número máximo de entradas que pueden conectarsea la salida a. rá-compuerta y se expresa con un númer<¡. _ Las capacidadesde fan-out de la compuertadeben considerarsecuando se simplifican las funcionesde Ebole. Se debe tener mucho cuidado de no desarrollar expresionesque resulten en una compuerta con sobrecarga. Los amplificadores no inversores o separadosse ú."" fu* suministrar capacidadadicional de accionamientopara el caso de cargaspesadas. Disipación de potencio es la pot-enciasuministrada necesaria para operar la compucrta. Este parámetro se expresa en milivatios (mw) y representa Ia porencia real designada por lá compuerta. El número quá representa este parámetro no incluye la potenciá suministrada de oira compue-rtao seu que representa la potencia suministrada a la compuerta por la fuente de poder. un cI con óuatro compuertas exigirá de la fuente cuatro veces la potencia disipada por cada óompuerta. En un sistema dado puede haber muchos ciriuitos integrado. y ,rr. potencias deben tenerse en cuenta- El poder total disipado en un sistema es la suma total del poder disipado de todos los CI. . .,Retardo de propagación es el tiempo promedio de demora en la transrclon de programaciónde una señal de la entrada a la salida, cuando las
I i
SEC.2.8
L O G I C OD I G I T A L E S 6 9 F A M I L I A SD E C I R C U I f O SI N T E G R A D O S
toman valor' Las señalesen una compuerta señalesbinarias cambian de salida' la para propag"i." a" las entradas a cierta cantidad de tiempo demora de propaga"tul 9:'11 t";;l; Este intervalo de tiempo se define compuerta.EstaúltimaSeexpresaennanoseconds(ns).UnnseSlgu'al to;t"rt".1;1!l'o,r" digital a las viajan cre las entradas de un circr¡ito " demoras de las de' 'u-u Lu serie de to'opu"tt"t' salidas pasan po' propagación t" ¿"-ora total de """ propagación u t."u¿t de las compuertas "t es 'importante' cada comoperación de del circuito' cu"nál l^ *fotiaád y el. circuito digital ''ni"i-o demora á"-piopug"ción entre las entradas puerta debe tener,ri" p"qrr"na t"tit ¿" debe tener ,r. .tt-ut """ "o*p""ifut t t"Lt"Tt3ff;adas digitales se aplidigitales en ra mayoría de los circuitos To{a1 aquellas compuercan simultan""*""t? a mát de una -compuerta' de entradas externas constas que reciben .ul"""truáas exclusivamenteLas compuertasque reciben del circuito. primer tituyen el primer ;r;i';;l¿gica u¡a salida de una compuertadel de partir a al menos una entrada, y manera el segundo nivel de -t^óq1ca de nivel de lógica, "t- to"tiá"'an en propagay top"'"iot"s' La demora total de similar para los niveles tercero por compuerta Aé*ot" d.epropagacl"l 9:^t" is";i;lu ción del circuito númeel en reducción "t crrcuito'.Así, una el número de niveles lógicosen eI *drr".ió-n de la demora de ,""rrtüJá'onu' como dirá ro de niveles lógicos propagaLa reducción de la demora de la señal y circuitái #;-J;id"s. que- lq.reducción en el más^i*p.it""t" ción en los circuitos podría ser q"t la velocidad de operación número total de compuertas"" "l "uto-át
""^ lr:::;::5:'HlT:Tli'*u',,,'o
de o: ::d:^Tl:gadoa raseñar vortaje a la
indeseable' áigit"t que no cause un cambio entrada de un El considerarse. que debe.r "i""it" ;;tJ; d; salida del circuito. Hay dos tipos sede t" los niveles de voltaje .rr¡¿s (DC) cp ti"'"dJ poi-rt.á"tui"tiá" que puede,ver creado por otras ,trutorio prrt* ñal. El ruido cA ?;ó;"-';i una es el término usado para denotar señales conmutadi;.-A"l; et ,ui¿o haLa normal' una tt¡ut de operación señal indeseablesuperimpuestaa de ambiente un en lá"n"uitl¿ad bilidad de los circuitos para operar "o"exprese El margende ruido ruido es importaniJ';;;;¿h..^aplicaciones. señal dJ ruido que puede ser -¿*iÁu la sa en voltios (V) y representa tolerada Por una compuerta' lógicos Característicasde las familias de Cl E l c i r c u i t o b ¡ í s i c o d e l a f a m i l i a "cuates l ó g i c a se d elistan T T L e tres s l a cen o m p uTabla e r t a N2-8' A NEsta D.Hay d" ta, -la muchas versiones;; Til Los lógicos' CI de familias g".r"rut""-d" ias tabla da tu" "uruJi"ri.t[u. valoreslistadosSontepresentativosco,'baseenlacomparación.Para o ut"ión los valores puedenvariar' familia .""fq"l"t de la familia normalizada fue la primera versión La compue,," fii progresado. ha u *"¿ia" qrre'tu tecnología ;;"r* TTL. S. la deque reducen innovaciones "g.ug"io;e";;;'a; t"" ltti*". La TTL Schottü de asignación de aumento en un mora de propagación pero que '"t"iiá
j
--á
r Tabla
Familia de CI lógico TTL normalizada TTL Schoftky TTL Schottky de baja potencia ECL CMOS
2-8
Características de familias de CI lógicos
Fan-out
Disipaciónde potenciaen (mW)
l0 l0
20 25 50
Demora de propagación(ns)
l0 22
l0
2 25 0,t
l0 2 25
J
Margen de ruido (V)
0,4 0,4 0,4 o9
3 potencia' La versión.TTr Schottky de baja potencia sacrifica alguna
ve_
á'.p""ü;: frt",,"iu.Esraúlrimarienerqmic_o l"J*i::.i-1111"1'.i" demora depropagaci¿; ;;;;' i'rt #triihil.T"H':HÍi:"J:,ilT,?; oe potenciabastanteredücida. Ef ran-outa" r"
uuirion'irr, -;i;;; es I0 pero ra versióJrscnottlv normarizada á. J":" po,"n"i, un fan-outde 20. Bajo ciertas condicionesi".-'"ti"."u.rrio_n", p"i;; i"n., un tán_out de 20. El margen O":_0,4V, conun valortÍpicode lV. 1: Tid;,..L":", delaramiii"
Éór.'".l; ;;;;;",1" Non.Laventaja *o""11,"'#if""3;"* -;; á;; rJpa gación..erg,,ái ,,eis ionesá" Eü'fi :;:X ?"""ii,1,f -d" de0,5ns. Laais[áciond";;l; ;i;-";lT,"ll,ffi ",f:: fJi?:ri.T mente
"
alta y su margen¿. ruiao u";á.'nrto. últimos dos parámeros clesventajaal escoserla familia nbl"or, ."spectoa las démás.pero,son una de su baja demora"d";r"pr;;;iór*i; a pesar icl ,irr"."l"?ir'",r" todas las famirias v. es un-úrti-o verocidadde r"*io para sistemasrápidos. El circuito ¡¿sico-¿e cüóé;;'r.,u"r.o. ^La con er cuai se pueden construir las compuertasxrxo v-ñoñ ventaja especialdel cMos es su
""."::Ll:i"",,,1.,1
" .;: o* io"".,.t¿ii.u, *3;Ím*, " _u,,;es, ""iai" ü"'iffi"::,; "o¡,Tff;;:?, despreciab.le p.o*"áiu rV iJwr. curndo la v, ;;;
señal':t]",i^YoS lo hav. unadisipacián.d" p.i;;;; ai.,i.'rri ;r#T.tilf JT'ri?.*,iilrrii cual el
circuito está 'd; .expues;;.--Ei';ffiero ristado en la tabla es un valor tipico de la disipaciór ;;i";i"'iir¿-i"a en ras compuerrascMos. La mayor desvenrajade las cnros .u^-uiiu ;;;;r" ción' Esto sigrrifica que.no. de propaga_ ".. es práctico usarlas ,rrt"-u". que requieren operacionesde arta velocidad.' "" io.""pur¿-etros--.".á.r"rlrri.* compuerra cMos dependen para ra ¿el uortaii vuo de-1af;;;;;;. poder que se use' La disipación de potenciá ^p.op"gu.iá" ;.;;;;;" el aumenro del votta;e de sumi_ nistro' La demora a. iirii"uv" der voltaie v el -utge., áur.uiao-." esrima "or,'"i en un""-."r" 40iz det valo¡ dól s:t;:il:"tttro REFE RENCIAS t #a':' 70
G'' An Inuestígation of theLawsof Thought.Nuevayork: Doverpub..
PROBLEMAS7I
-2 . S h a n n o n , C . E . , " A S y m b o l i c A n a - l y s i s o f R e l a y a n d S w i t c h i n g C i r c u i t s " ' T r a n s ' if tn" AIEE, vol. 57 (1938),713-23' 3 lndependent.PostulatesfortheAlgebraofLogic''' " .Huntington,E.V.,..setsof5 iiá"t.Árn. Math' Soc', Vol' (1904)'288-309' Algebra' Nueva York: McGraw4. Birkhofl G., y T. C. Bartee, Modern Applied Hill Book Co., 1970. of Modern Algebra'3a' ed' Nueva York: 5. Birkhoff, G., y S. Maclane, A Suruey The Macmillan Co.,1965' e d ' N u e v aY o r k : T h e M a c m i l l a n C o ' ' 6 . H o h n , F . 8 . , A p p l i e dB o o l e a nA l g e h r a2' a ' 1966. ?.Whitesitt,J.E.,BooleanAlgebraanditsApplications,Reading,Mass.:Addi. son-WesleYPub. Co', 1961' S.TheTTLDataBoohforDesignEngineers,DaIIas,Texas:Texaslnstruments Inc., 1976. g.MECLIntegratedCircuitsDataBooh.Phoenix,Ariz.:MotorolaSemiconductor Products,Inc.' 1972' 1 - 0.RCASolídStateDataBookSerjeslCOs/MOsDigitatlntegratedCircuit'. S o m e r u i l l eN , ' J . : R C A S o l i d S t a t eD i v ' ' 1 9 7 4 '
PROBLEMAS básicas (con¡unto cerrado asociativa, conmutativa, ¿Cuál de las seis leyes son cumplidas Por el Par de oPeradoy distributiva) inversa áe identidad, ies bir.,arioslistadosa continuación?
.10
|
2
2-2.Demuestrequeelconjuntodelostreselementosl0'1'2lylosdosoperad o r e s b i n a r i o s + y d e l a m a n e r a d e f i n i d a e n l a t a b l a a n t e r i o r , nde o cHuntington onstlcuál de los postulados tuyen el álgebrJ ¿"' S""it' EtluUtt"u no se cumple. 2-S.Demuestrepormediodetablasdeverdadlavalidezdelossiguientesteoremas del álgebra de Boole'
2-4.
( a t L a s l e Y e sa s o c i a t i v a s ' (b) Los teoremas de De Morgan para tres variables' (c) La ley distributiva de * sobre " de Venn' Repita el Problema 2-3 usando ios diagramas
2-S.simplifiquelassiguientesfuncionesdeBoolealmenornúmerodeliterales. (d) zx + zx'Y @) xy + ry'
(b) (x + Y)(¡ + Y') (c) ryz * x'Y 1 ryz'
(e) (l + B)'(A' + B')' (f) Y(wz'I wz)* ry
72
I
A L G E B RD AE BOOLE Y COMPUERTA S GICAS LO
2-6. Refuzga- las siguientes expresiones de Boole al tado al frente de cada una áe ellas. (a) ABC + A,B,C + A,BC + ABC, + A,B,C,
I I
CAP. 2 número de literales solici_
(b) BC + AC' + AB + BCD (c) [(CD| + A], + A + CD + AB (d) (A + C + DXA + C + D')(A + C' + D)(A + B')
a cinco literales a cuatro literales a tres literales a cuatro literales
Encuentre el complementode las sigui rentes funciones de Boole y redúzcalas al mínimo número de literales. '(a) (BC' + A'D)(AB, + CD,) .(b) B'D + A'BC' + ACD + A'BC (c) I@B)'AI[@B),Bl @)¿n'+ C'D' 2-8.
2-9.
Dadas dos funcionesde Boole F, y Fr: (a) Demuestre^quela función de Boole !: F:*F2, obtenida al aplicar la función OR a las dos funcionÁ contiene i" .uiu J. to¿o, los términos mínimos en F, y F, . ( b ) D e m u e s t r e - q u el a f u n c i ó n d e B o o l e . G : F ¡ F 2 , o b t e n i d aa l aplicar la función AND a las dos funcionesl contiene to. t¿r-i'o. mínimos comunes a ambas Ft ! F, Obtengala tabla de verdad de la siguiente función: F:xl+ry,+y,z
2 10' Ex'rese ulas 2-ll.
funciones de Boole simplificadas del problema 2-6 con compuer_
Dada la función de Boole:
F=x!*x,y,*y,z (a) Expréselacon compuertas AND, OR y NOT. (b) Expreselacon compuertas OR y NOT solamente. (c) Expréselacon compuertas AND y NOT solamente. 2-12' simplifique las funciones ?r J ?, al mínimo número de riterales.
00 00 0l 0t IO t0 tl ll 2-13.
r0 l0 t0 0l 0t 0l 0l 0t
las siguientesfuncionesen suma de términos mínimos y producto 9-*f1.... d . ¡t é r m i n o sm á x i m o s . (a) F(A, B, C, D): D(A,+ B) + B,D O) F(r, x,y, z) - y,z I wxy, + wxz, * w,x,z
I
I
P F O B L E M A S 73
+ C' + D') 'ri'+ B' + CXA! l'XA+ c' + D') (c) F(A,B, C, D) = (A
* t + c + D'XB
+ C) (d) F(A, B, C) = (A' + B)(B' (e) F(r, Y, z) : I (fl F(x, Y, z) - (ry + z)(Y + xz) 2.L4.Conviertalassigrrientesexpresionesalaotraforma: (a) F(x,Y,z) = )(l' 3' 7)
2' 6' 11'13't4) a ,tn, B, c, D):>(0'
(c) F(x, Y, z) : II(0' 3' 6' 7) 2' 3' 4' 6' t2) (d) F(A, B, C' D) : Ír(0' I' I" 'f9t11 normalizada?¿Cuál entre la forma canónica y dif'erencia Ia es 2-15. ¿Cuál ós la forma que se obtrel ;;.t;Cuál de Boole de n variamínimos de una función términos los rodos de , ,a. ;::*a bles es 1' para n : ó' (a) Pruebe la anterior afirmación para una prueba general' (b) Sugiera un procedimiento
iuiJ'" un¿o'1:Hl;ji ¡ ll,"m"l"i:'ff "l:'""1" iJT; ó.Iarormap'"'r''' ""iü
2-|7'Elproductodetodoslostérminos-á*i.o.deunafuncióndeBooleden variables es 0'
:'"':"""111,:"""1g"-i3¡;'Á\-¿l'-r" l;]:ü:n'ilTü,üffi
principioi't'¿i"iir¿iadespuétdt-;;"ütlapárte(b)delProblemaz-ro: igual a su complemento' dual de la oR-exclusiva es 2-1g. Demuestre que el a las funciones binarias la función de, Boole equivalente 2-19. Por sustitución de demuestreque: definidasen la Tabla 2-6
(a)Losoperadoresdeinhibicióneimplicaciónnosonniconmutativosnl
,r, ilJt:il:ilres
v asosonconmutativos y de equivalencia oR_exclusiva
ciativos' (c) El operadorNAND no es asocratrvo' no son distributivos' (d) Los o*'"áot"t NOR y NAND l si Ia madigital c'uyasalida es mayorista:t:l medio de Por 0' compuerta Una :i"tito 2-20' De l. son ¡uriáa,será entradas las voría de "i;i;;;"i" u n a t a b l a d e v e r d a d . E n c u e n3t r e , j ' " ñ " . i Simplifique ¿ ' d e . B o o l elal l función' evadaacabocon de una compue'ta mayotitaria "tit"átt' lisOR-exc!il:" O" 3 entradas z' d" yq'd'".dde,l^a,comPlerta r' de 1'y la-tabla !srifique2-21' Ia lil;"d" las ocho combinaciones tada en Ia rigura 2-8(c)' Eaga. z - - x @ Y @ z ' Y luegoF:A O E v a l ú ee : r " é i
enpastillast^ti:XliltÍ";iXffiilil ; 2'22. ¿¿LEl sSIdeTTL vienemavormente deeste
;::*Sl¡jl'."i'il;;;st-iila Hill'"T l¿nji*:f,*í,US;:.i;' tipo de compuertas? tt-tigoit"t" t";;i;;; si estilo de 2 entradas' (a) Compuertas OR-exclusivas entradas' 3 de (b) ComPuertasAND
{ 74
ALGEERA DE EOOLEY COMPUERTAS LOGICAS
cAP. 2 (c) Compuertas NAND de 4 entradas. (d) Compuertas NOR d" 5;;;d;, (e) Compuertas NAND ,";;;;". 2-23. Demuestreque I nná corrpüerta AND de d" ló;i;;';.üc lógica positiva es una compuerta oR puertas separada
224u";"i;-,,,""#'üiirJiliJllli; cornpue
$j"i,lx..":ñffi:.ñtHtilitt",",""..#fri1
Simplificación de funciones de Boole
3-1
:ffi
E L M E T O D OD E L M A P A
La complejidad de las compuertas lógicas digitales con que se llevan a cabo las f.,.t.iott"t de Boole se relacionan directamente con la complejidad de la expresión algebraica de la cual se desprende la función. Aunque la ,epre.enfación de la tabla de verdad de una función única, puede apare.ui du muchas formas diferentes. Las funciones de Boole pueden ser simplificadas por medios algebraicos de la manera vista en la Sección 2-4' Sin embargo el procedimiento de minimización es un tanto raro ya que carece de ieglas específicas para predecir cada paso sucesivo en el proceso de manipulación. El método del mapa presenta un procedimiento simple y directo para minimizar las funciones de Boole. Este método puede ser iratado no solamente en la forma pictórica de una tabla de verdad, sino como una extensión del diagrama de Venn. El método del mapa, propues(2), se to primero por Veitch (1) y modificado ligeramente por Karnaugh comó el "diagrama de Veitch" o el "mapa de Karnaugh"' "orro"" El mapa es un diagrama, hecho de cuadros. cada cuadro representa un término mínimo. como cualquier función de Boole puede ser expresada como una suma de términos mínimos, se desprende que dicha función, se reconoce gráficamente en el mapa a partir del área encerrada por aquellos cuadros cuyos términos mínimos se incluyen en la función. De hecho, que el mapa presenta un diagrama visual de todas las formas posibles en reconocer Al normalizada. la forma en una función puede .ui "*pt..uda el usuario puede derivar expresiones algebraicas altervarios patrones, ,ru. puü la misma función de las cuales se puede escoger la más simple. Se aiume que la expresión algebraica más simple es cualquiera en una suma de prtductos o producto de sumas que tiene el mínimo número de Iiterales. (Esta expresión no es necesariamente única.)
3-2
M A P A S D E D O S Y T R E SV A R I A B L E S
un mapa de dos variablesse muestraen la Figura 3-1. on Jt hay.cuatro términós mínimos para dos variables, es decir que el mapa consiste en 75
,-r Mapa de*. ,ll]"0*. ",*,1"' cuatro cuadrados, uno para cada término mínimo. El mapa que se dibuja de nuevo en (b) sirve para demostrar la relación entre los cuadrados y las dos variables. Los ceros y unos marcados para cada fila y columna designan los valores r y y respectivamente. Nótese que la r aparece tildada en la fila 0 y no tildada en la fila 1. De manera similar,-l,aparece tildada en la columna 0 y no tildada en la columna 1. Si se marcan los cuadrados cuyos términos mínimos pertenecen a una función dada, el mapa de dos variables se convierte en otro método útil para representar una cualquiera de las 16 funciones de Boole de dos variables. como ejemplo, la función Íy se muestra en la Figura B-2(a). como ry es igual & zl3, S€ coloca un 1 dentro del cuadrado que pertenece a ÍLz. De manera similar, la función rf y se representa en el mapa de la Figura 3-2(b) por medio de tres cuadrados marcados con unos. Estos cuadrados se escogen de los términos minimos de la función: x * y : x'y t xy' * xy : m, I mr*
m,
Los tres cuadrados pudieron haberse determinado de la intersección de la variable ¡ en Ia segunda fila y la variable y en Ia segunda columna, lo cual cubre el área perteneciente a r o y.
(a) .ry Figura
3-2
(b) ¡ * y
Representaciónde las funciones en un mapa
En la Figura 3-3 se ilustra un mapa de tres variables. Hay ocho términos mínimos para las tres va¡iables.EI mapa por tanto consisteen ocho cuadrados.Nótese que los términos mínimos se arreglan, no en secuencia binaria sino en una secuenciasimilar al códigoreflejaáolistado en la Tabla l-4. La característicade esta secuenciaes que solamente un bit cambia de 1 a 0 o de 0 a 1, en la secuenciadel listado. El mapa dibujadoen la parte (b) se marca con los números de cada fila o cada iolumná para mostrar la relación entre los cuadradosde las tres va¡iables. por ejemplo, el cuadrado asignadoa m, correspondea la fila 1 y columna 01. óuando se con76
m
i
0
ma
m
m
I
m-
)
3
m1
m
2
m o. L=-Y-
(a)
/hr
Figura
3-3
Mapa de tres variables
catenan estos dos números darán el número binario 101, cuyo equivalente decimai es 5. Qtra manera de mirar el cuadrado ñs: x!,2 es considerar que está en la fila marcada r y en la columna que petieneceay'z (columna 01). Nótese_que hay cuatro cuadrados donde cada variable ei igual a 1 y cuatro donde cada una es igual a 0. La variable aparece ,,o tildud" aquellos cuatro cuadrados donde sea igual a 1 y tiláada en aquellos que "n sea igual a 0. Por conveniencia, se escribe la variable usando un símbólo de letra que abarca aquellos cuatro cuadrados donde la primera no esté tildada. Para entender la utilidad del mapa en la simplificación de funciones de Boole, se debe reconocer la propiedad básica que tienen los cuadrados adyacentes. cualquier par de cuadrados adyacenles en el mapa difieren por una va¡iable tildada en un cuadrado y no tildada en el otro. por ejemplo, m, y m, están en dós cuadrados adyacentes. La variable y está tildada en m5 y no tildada en m7, mientras que las otras dos uaiiable, ,o., iguales en ambos cuadrados. A partir de los postulados del álgebra de Boole, se desprende que la suma de los términos mínimos en cuadiados adyacentes pueden ser simplificados a un simple término AND consistente en dos literales. Para aclarar lo anterior, considérese la suma de dos cuadraáás adyacentes tales como m5 y m7 i m s - l m ¡ : x J ' ' z+ x y z - x z ( y ' * y ) :
xz
Aquí los dos cuadrados difieren en la variable y, que puede ser removida cuando se forme la suma de los términos mínimos. Así, a cualquier par de té¡minos mínimos en cuadrados adyacentes a los cuales se le aplica la función oR se les causará la remoción de la variable diferente. El siguiente ejemplo explica el procedimiento para minimizar una función de Boóle con un mapa.
EJEMPLO
3-I.. Simplificar la función de Boole: F:
x,yz * x,yz, * ry,z, * ry,2
Primero, se marca un 1 en cada cuadrado cuando sea necesario para representarla función de la manera mostrada en la Figura 3-4' Esto puede lograrsede dos maneras:convirtiendo cada término a un número binario para luego marcar 1 en el cuadrado corres77
)' 'A-
lrt--
1
0
t,
rl¡
t
tr
-_Ll
r'l +
3-1;r'-r'z + xJ-'2:r''\'+ 'x'\'' + r'l'z'+ xJ-'z' Figura 3-4 MapadelEjemplo pondiente u obteniendo Ia coincidencia de las variables en cada iérmino. Por ejemplo, el término x'7,2tiene su correspondiente número binario 011 y representael término mínimo m3 en el cuadrado 011. La segunda forma de reconocer el cuadrado es por coincidenciade las variables x" y y z, las cualesse encuentranen el mapa observandoque f' pertenecea los cuatro cuadradosde la primera fila, y pertenecea los cuatro cuadradosde las dos columnas de la derlcña y z pertenecea los cuatro cuadradosde las dos columnas del medio. El área que pertenecea los tres literales es el cuadradode la primera fila y la tercera columna. De igual manera, los otros tres cuadradosque pertenecena la función F se marcan con un 1 en el mapa. Se representaasí la función en el área que Contiene cuatro cuadrados, cada uno marcado con un 1, de la manera mostrada en la Figura 3-4. El siguiente paso es subdividir el área dada en cuadradosadyacentes.Estos se indican en el mapa por medio de dos rectángulos,cada uno conteniendo dos ,rno.. Ei rectángulo superior derecho representael área encerradawr x'y; el inferior izquierdo el área encerradapor fy'. La suma de estos dos términos dará Ia respuesta: F:
x'y * xy'
Seguidamenteconsidéreselos dos cuadradosmarcados mo y m2 en la Figura 3-3(a)o x'y'z'y x'yz' en la Figura 3-3(b).Estosdostérminosmínimos lambién difieren un ,r.tu variable y y su suma puede ser simplificada a una expresiónde dos literales: x'y'z'+x'yz':x'z' En consecuencia,se puede modificar la definición de los cuadradosadyapara inclúir este y otros casossrmilares. Esto se logra considerany ""ntur do el mapa como un dibújo en una superficiedonde los bordesizquierdo adyacentes' cuadrados para formar sí entre derechoJe tocan EJEMPLO
3-2; Simplificar la función de Boole: F:
x'yz i xy'z'* ryz * ryz'
El mapa de esta función se muestra en Ia Figura 3-5. Hay cuatro marcados con 1, para cada uno de los términos míni",rad.ado. 78
sEc. 3-2
M A P A S D E D O S Y T R E SV A R I A B L E S
mos de la función. Dos cuadrados adyacentes se combinan en la tercera columna para dar un término de dos literales yz. Los dos cuadrados restantes con 1, son adyacentes por la nueva definición y se muestran en dos cuadrados que cuando se combinan darán un término de dos literales xz'. La función simplificada será: yz * xz,
f:
I I
y
va
tl
0
i
0
0
¡
t , -it x) | t
l_1_.1l r
I
+J
Figura 3-5 Mapadel Ejemplo3-2; x'12+ ¡.r''z'+ xJ'z+ r.t'l,: \.2+ xz, Considérese ahora cualquier combinación de cuatro cuadrados adyacentes en el mapa de tres variables. Una combinación como ésta representa la aplicación de la función OR de cuatro términos mínimos adyacentes y que resulta en una expresión de un literal solamente. Por ejemplo, Ia suma de cuatro términos mínimos adyacentes trl6, trL2, lrlq y ffia, se reduce al solo literal z' como se muestra a continuación:
x'y'z'* x'yz'* xy'z'* x!z': x'z'(y'+y) + xz'(y'* y) : x'z' + xz' : z'(x' * xl: z' EJEMPLO F:
i
I
3-3.. Simplificar la función de Boole: A'C + A'B + AB'C + BC
EI mapa para simplificar esta función se muestra en la Figura 3-6. Algunos de los términos de la función tienen menos de tres literales y son representadosen el mapa por más de un cuadrado. Así, para encontrar los cuadrados correspondientesa A'C se forma la coincidenciade A' (primera fila) y C (dos columnas del medio) y se obtienen los cuadrados001 y 011. Nótese que al enmarcar los unos con cuadrados es posible encontrar un uno ya
II
A
0
I
All
t
C
Figura 3 - 6
Mapa del Ejemplo 3-3 A'C + A'B + AB'C + BC : C + A,B
80
CAP. 3
DE BOOLE S I M P L I F I C A C I ODNE F U N C I O N E S
colocado en el término anterior. En este ejemplo, el segundo término A'B tiene unos en los cuadrados011 y 010, pero el cuadrado 011 es común al primer término A' C y solamentecontieneun uno. La función de este ejemplotiene cinco términos mínimos, como se indica por los cinco cuadradosmarcadoscon un 1. Se simplifica combinandocuatro cuadradosdel centro para dar el literal C. El cuadrado restante marcado con 1 en 010 se combina con un cuadrado adyacenteque ya ha sido usado una vez. Esto es permisible y aun deseableya que la combinación de los dos cuadradosda el término A'B mientras que el término mínimo sencillo representado por el cuadradoda el término A'BC'de 3 variables.La función simplificada es: F:C+A,B EJEMPLO
3-4: Simplifiquese la función de Boole: F(r, y, z) : )(0, 2,4,5,6)
Aquí se han dado los términos mínimos por medio de números decimales. Los cuadrados correspondientes se marcan con unos de la manera mostrada en la Figura 3-7. Del mapa se obtiene la función simplificada:
F:z'*ry' v 7
0
J
I
(
' 1 ' , --t-'-T I lr
t
Lr
Figura 3-7 l(x, y, z) : X0, 2,4,5,6) : z' * U'
3-3
M A P A D E C U A T R O V A R I A B L E S\ .
El mapa para las funciones de Boole de cuatro variables binarias se muestra en Ia Figrrra 3-8. En (a) se listan los 16 términos mínimos y los cuadrados asignadosa cada uno. En (b) se redibuja el mapa para demostrar la relación con las cuatro variables. Las columnas y las filas se enumeran en la secuencia del código reflejado con un dígito que cambia de valor entre dos columnas o filas adyacentes. El término mínimo correspondiente a cada cuadrado puede obtenerse por la concatenación del número de la fila con el número de la columna. Así, los números en la tercera fila (11) y la segunda columna (01) una vez concatenados, dan el número binario 1101,equivalentebinario al decimal 13. Por tanto, el cuadradoen la tercera fila y la segunda columna representa el término mínimo m 13.
;
t
) I
0l
t
ml
m"
^z
ma
m5
m1
mo
m
m
t,
12
m8
-t
15
l3
mrl
mg
(a)
^14
n' lo
ll
l0
w'x'y':,' w'x'y'z v)'x' y: w ' x ' \
0 1 tt'xy' a
"t
w'xy'i
II I wxy'a' w-r)'rl I
\9'.xya w'.ryz' w.ry:
I
rrxyl
t ' y ' : wx't'z wf'yz v'.r'yi'
( b.)
Figura 3-8 Mapade cuatrovariables La minimización, por medio del mapa, de una función de Boole de cuatro variables,es similar al método usado para minimizar funcionesde tres variables. Los cuadrados adyacentes se definen como cuadrados cercanos entre sí. Además,se considerael mapa que yace en una superficiecon los bordes superior e inferior y los bordes izquierdo y derecho tocándoseentre sí para formar cuadradosadyacentes.Por ejemplo, fro y m, forman cuadrados adyacentesde la misma forma que m3 y mt. La combinación de cuadradosadyacentes,útil durante el procesode simplificación, se determina fácilmente por inspeccióndel mapa de cuatro variables: Un cuadrado representaun término mínimo, dando un término de cuatro literales. Dos cuadrados adyacentesrepresentanun término de tres literales. Cuatro cuadrados adyacentes representan un término de dos literales. Ocho cuadradosadyacentesrepresentanun término de un literal. Dieciséis cuadradosadyacentesrepresentanla función igual a 1. Ninguna otra combinación de cuadrados pueden simplificar la función. Los siguientes ejemplos muestran el procedimiento usado para simplificar las funciones de Boole de cuatro variables. EJEMPLO
3-5; Simplifiquese la función de Boole:
F(w, x, !, z\ : >(0, l, 2, 4, 5, 6,8,9, 12,13,14) Como la función tiene cuatro variables,se debe usar un mapa de cuatro variables. Los términos mínimos listados en la suma se marcan con unos en el mapa de la Figura 3-9. Ocho cuadrados adyacentes marcados con unos pueden combinarse para formar un término literal y'. Los restantes tres unos a la derecha no pueden combinarseentre sí para dar un término simplificado. Deben combinarse como dos o cuatro cuadrados advacentes. Entre ma81
ü
I
FS=--
r 0l
I
I
1t
tr
t_.1
L'
I
I
Figura 3-9 Mapa del Ejemplo 3-5; F (u, x, z): >(0, 1, 2, 4, 5, 6, 8, 9, t2, t3, 14): y' + w'z' * xz' yor sea el número de cuadrados combinados,
menor será el número
de literales en el término. En este ejemplo,los dos unos superiores a la derechase combinan con los dos unos superioresa la izquierda para dar el término u'z'. Nóteseque es permisibleusar el mismo cuadrado más de una vez. Queda entoncesun cuadrado marcado con 1en la tercerafila y cuarta columna (cuadrado1110).En vez de tomar este cuadrado solo (lo cual dará un término de cuatro Iiterales) se combina con cuadradosya usados para formar una área de cuatro cuadrados. Estos cuadrados comprenden las dos filas del medio y las dos columnas de los extremos para dar el término xz'. La función simplificadaes: F : l , * w , z ,* x z , EJEMPLO F:
3-6: Simplificar la función de Boole:
A'B'C' + B'CD' + A'BCD'+ AB'C'
El área, en el mapa, cubierta por esta función consisteen los cuadrados marcados con unos en la Figura 3-10. Esta función tiene cuatro variables y como se ha expresadoconsiste en tres términos' cada uno con tres literales y un término de cuatro literales. Cada término de tres literales se representaen el mapa por dos cuadrados.Por ejemplo, A'B' C' se representapor los cuadrados 0000 y 0001. La función puede simplificarse en el mapa tomando los unos de las cuatro esquinaspara formar el término 8,D,. Esto es posible porque estos cuatro cuadradosson adyacentescuando el mapa se dibuja en una superficie con los bordes superior e inferior, izquierdo y derecho tocándoseentre sí. Los dos unos de mano izquierda en la fila superior se combinan con los dos unos en la fila inferior para dar el término B'C' . EI 1 restante puede combinarse en una área de dos cuadrados para dar el término A' C'D' . La función simplificadaes:
82
l"
r
D Figura 3-lO
3-4
M a p a d e l E j e m p l o3 - 6 ; A ' B ' C ' + B , C D ' + A , B C D , + A B , C , : B'D, + B,C,+ A,CD,
Los mapas de más de cuatro variables no son simples de usar. El número de cuadrados se hace muy grande y la geometría de combinar cuadrados adyacentes se complica. El número de cuadrados es siempre igual al núrnero de términos mínimos. Para mapas de cinco variables se necesitan 32 cuadrados y para seis variables se necesitan 64 cuadrados. Mapas de siete variables en adelante necesitan muchos cuadrados y son muy imprácticos de usar. En las Figuras 3-11 y 3-12 se muestran los mapas para cinco y seis variables respectivamente. Las columnas y filas se numeran de la misma forma que la secuencia del código reflejado. El término mínimo asignado a cada cuadrado se lee de esos números. De esta manera el cuadrado en la tercera fila (11) y la segunda columna (001) en el mapa para c i n c o v a r i a b l e s s e n u m e r a 1 1 0 0 1y e s e q u i v a l e n t e a l d e c i m a l 2 5 . P o r t a n t o , este cuadrado representa el término mínimo m2r. El símbolo de letra de cada variable se marca abarcando aquellos cuadrados donde el valor del bit correspondiente al número del código reflejado es 1. Por ejemplo, en CDE ll
0
I
3)
2
6
'7
)
rj
I
f
M A P A S D E C I N C O Y S E I S V A R I A B L ES ' /
B
fi
I
I
il'fi
4
;.:l
ü 8
^T t
9
ll
l0
t4
l5
l-t
:'
.u
t2
il
{
ll
24
25
27
26
30
3l
29
28
l0
l6
t7
l9
t8
22
23
2l
20
q
¡.
1? I E F
ü tI
D
I
Figura
3-11
¡ ¡
Mapa de cinco variables
83
I
fr
I
-/¡
frr
DEF A B C 000 000
0
001
8
00r
0l I
010
110 lti
3
2
6
u
t0
l4
,7
1 0 1 100 5
4
l3
l2
I
9
l5
\C
l5
27
26
30
JI
29
i6
010 l6
17
t9
18
22
l.t
2l
20
ll0
48
49
5l
50
54
)f
53
52
lll
)t)
57
59
58
o¿
63
61
60
r 0 1 40
4l
43
/1
46
Á1
45
44
100
)-)
35
34
37
-to
0lt
a1
'c
1Z
38
39
FF Figura 3-12
Mapa de seis variables
el mapa de cinco variables, la variable A es un 1 en las últimas dos filas y B es un 1 en las dos filas del medio. Los números reflejados en las columnas muestran la variable C con un 1 en las cuatro columnas de la extrema derecha, la variable D con un 1 en las cuatro columnas del medio y los unos para la variable E, no adyacentes físicamente,,se dividen en dos partes. La asigrración de las variables en un mapa de seis variables se determina de manera similar. La definición de los cuadrados adyacentes para los mapas de las Figuras 3-11 y 3-12 deben modificarse de nuevo para tener en consideración el hecho de que algunas variables están divididas en dos partes. Debe pensarse que el mapa de cinco variables consiste en dos mapas de cuatro variables y el mapa de seis variables consiste en cuatro mapas de cuatro variables. Cada uno de estos mapas de cuatro variables se reconocen por las líneas dobles en el centr¿ riel mapa; cada uno de ellos conserva la cercanía definida cuando se toma individualmente. Además, la línea doble del centro debe ser considerada como el centro de un libro con cada mitad del mapa como una página. Cuando se cierra el libro, los dos cuadrados adyacentes coinciden uno sobre el otro. En otras palabras, Ia línea doble del centro actúa como un espejo ya que cada cuadrado es adyacente, no solamente con sus cuatro cuadrados vecinos, sino con su imagen de espejo. Por ejemplo, el término mínimo 31 en el mapa de 5 variables es adyacente a los términos mínimos 30, 15, 29,23 y 27. El mismo término mínimo en el mapa de seis variables es adyacente a todos esos términos mínimos más el término mínimo 63. 84
1 Tabla
p
3-l
La relación entre el número de cuadrados adyacentesy el número de literales en el término
Número de cuadrados adyacentes
0 I 2 5
4 5 6
Número de literales de un término en un mapa de n variables
2k
n-2
I 2 4 8 l6 32 g
1
n:3 2 I 0
I 0
n:4
n:5
4 3 2 I 0
5 4 3 2 I 0
n=6
6 5 4 2 I 0
n:7
7 ó 5 4 J
2 I
- Por inspeccióny teniendo en cuenta la nueva definición de cuadrados adyac€ntes, es posible mostrar que cualquier 2h cuadrados adyacentes p a r a f t : O , 1 , 2 , . . . , n , e n u n m a p a d e n v a r i a b l e s r, e p r e s e n t aunn a á r e a para un término de n-& literales. para que la afirmaóión anterior tenga algun significado,n debe ser mayor que fr. cuando n:h el área total d"el mapa se combina para dar una función de identidad. La Tabla B-1 muestra la relación entre el número de cuadradosadyacentesy el número de literales en el término. Por ejemplo, ocho cuadradosadyácentesse combinan en-una área del mapa de cinco variables para dar un término de dos literales.
EJEMPLO 3-Z: Simplificar la función de Boole: F ( A ,B , C ,D , E ) : > ( 0 ,2 , 4 , 6 , 9 ,l l , 1 3 ,1 5 , 1 7 , 2 1 , 2 5 , 2 7 , 2 9 , 3 1 ) El mapa de cinco variables de esta función, se muestra en la Figura 3-13. cada término mínimo se convierte a un número binario equivalente y los unos se marcan en sus cuaclradoscorrespondientes.Es necesario ahora encontrar combinacionesde cuadrados adyacentes que resulten en la mayor área posible. Los cuatro cuad¡ados en el centro del mapa de la mitad áerecha se reflejan a través de la línea doble y se combinan con los cuatro cuadradosen el centro del mapa de la mitad izquierda, para dar -término ocho cuadrados adyacentes permisibles equivalentes al BE. Los dos unos en la fila inferior son el ieflejo entre sí con respecto a la línea del centro. combinándolos con los otros dos cuad¡ados adyacentes,se obtiene el término AD,E. Los cuatro unos e-n la fila superior son todos adyacentes y pueden ser combinados para dar el término A'B'E'. La función simplificada es: F:
BE + AD,E + A,B,E, 85
iF IF
li
\-D E
Figura 3-13 Mapadel EjemploB-7;F(A,B, C, D, E) : > ( 0 , 2 , 4ó, , 9 ,l l , 1 3 ,1 5 ,1 7 , 2 t , 2 5 , 2 t , 2 9 , 3 t ) = B E + A D , E+ A , B , E ,
3-5
S I M P L I F I C A C I ODNE U N P R O D U C T O DE SUMAS
Las funciones de Boore minimizadas, derivadasdel mapa en los ejemplos anteriores fueron expresadasen la forma de suma a" pio¿u"tos. con una pequeñamodificación se puede obtene¡ el producto ¿e'*rnu.. El procedimiento para obtener una función minimizada en producto se desprende-de las propiedades básicas de las funciones * :"q"r de Boole. Los unos colocadosen los cuadradosdel ;ó";pise'ta' ros términos mínimos de la función. Los términos mínimos no incruidos en Ia función denotan el comprementode una funció. ;; i"p."."ntr' en un t mapa por cuadrados no marcados por unos. si au -"ra"., los cuadrados vacíos con ceros y se combi.,utr .n cuadruáo, aátr;;;;r""álidos, se obtiene una expresión simplificada del complementóde la función es decir de F'. .El complementode F' dará de nuevo la función F. Debidoal teorema generalizadode De Morgan el producto así obtenido qr"á, automáticamente en la fornra de producto de sumas. La mejor -"rr"ru-á" mostrar esto es mediante un ejemplo. EJEMPI,-O B-8; Simplificar la siguiente función de Boole en (a) suma de productosy (b) productó de sumas. F(A, B, C, D) : >(0, l. 2, 5, g, 9, l0) Los unos marcados.enel mapa de la Figura B_14represenran *Los to_ dos los términos mínimos de la función. cuadiadosmarcados con ceros representanlos términos mínimos no incluidos en F y por tanto denotan el complementode F. combinando los cuadra_ dos con unos se obtendrá una funció" .i,optin."áu r.r suma de productos: (a) B6
F:
B'D' + B,C, + A,C,D
E
'
I
f
F
CD
/B - !9-- e.l
-lr
0
;l
I'
^\
0
r--+ l0l ._
to-
t-,-]
00
OI
0
$
C
F IE
t lI
:¡j
il
I.
in
I 3.1
i] D
I Figura 3-14
M a p a d e l E j e m p l o3 ' 8 ; F ( A ' B ' C , D \ : >(0, l, 2, 5, 8, 9, l0) : B' D' + B'C' + A'C' D : (A' + B'XIC'+ D')
si se combinan los cuadradosmarcadoscon ceros,como se muestra err el diagrama, se obtiene la siguiente función simplificada de complemento: F,:
AB + CD + BD,
Aplicando el teorema de De Morgan (sacándoleel dual y complementando cada literal de la manera descrita en la Sección 2-4), se obtiene una función simplificada en producto de sumas: (b)
r:(A'+
B')(C'+ D')(B'+ D)
La ejecuciónde las expresionessimplificadas obtenidasen el Ejemplo 3-8 se muestran en la Figura 3-15. La expresiónde la suma de productos se ejecuta en (a) con un grupo de compuertas AND una para cada término ANb. Las salidas de IaJ compuertasAND se conectan a las entradas de una compuertaoR. La misma función se ejecutaen (b) en la forma de producto de sumascon un grupode compuertasOR, una para cadatérmino OR' Las salidas de las compuertasOR se conectana la$ entradas de una compuerta AND sencilla. En cada caso se asume que las variables de entrada il"gutt en forma de complementode tal manera que no se necesitaninversotu"l El patrón de configuración establecido en la Figura 3-15 es la forma general por medio de la cual se ejecuta cualquier función de Boole.Una vez en una de las formas normalizadas las compuertas AND se co"*p.".áda nectan a una compuertaOR en el casode suma de productos;las compuertas OR se conectana una sola compuertaAND en el caso de producto de sumas. Cualquiera de las dos configuracionesforman dos niveles de compuertas. Así, la ejecuciónde una función en la forma normalizada se dice que es una ejecuciónde dos niveles. El Ejemplo 3-8 muestra el procedimientopara obtener la simplificación del producto de sumas cuando la función se expresa originalmente en la suma de términos mínimos de la forma canónica. El procedimiento es válido cuando la función se expresaoriginalmente en el producto de 87
B' D'
A'
B'
,;,
D (a)
F - . . . 8 ' D-' B ' C ': A ' C ' D
Figura 3-15
F - tA'
lhr
I B't t("
t l) ¡t.[]
Dt
Ejecucióncon compuertasde la función del Ejemplo 3-8 Tabla 3-2
Tabla de verdad de la función F
términos máximos de Ia forma canónica. Cónsidéresepor ejemplo Ia tabla de verdad que define la función F en la Tabla 3-2. En suma de términos mínimos esta función se expresaasí: F(*,y,z) : )(1, 3,4,6) Como producto de términos máximos se expresaasí: F(r,y, z): fI(0,2,5,7) En otras palabras los unos de Ia función representanlos términos mínimos y los cerosrepresentanlos términos máximos. El mapa de esta función se dibuja en la Figura 3-16. Se puede simplificar esta función marcando y? I
0
I'
00
0l
0
I
0
f 0
11l
I
I
1
Figura 3-16
88
Mapa de la función de la Tabla 3-2
sEc. 3-6
EJECUCION CON NAND Y NOR
89
primero los unos para cada término mínimo en que la función sea 1. Los cuadradosrestantesse marcan como ceros. Si por otra parte se da inicialmente el producto de términos máximos se puedecomenzarmarcandoceros en aquellos cuadradosque comprendeIa función; los cuadradosrestantes se marcan con unos. Una vez que se hayan marcado los unos y los ceros, la función puede ser simplificada en cualquiera de las dos formas normalizadas. Para la suma de productosse combinan los unos para obtener: F:
x'z * xz'
Para el producto de sumas se combinan los ceros para obtener la función simplificada del complemento: F':
xz * x'z'
lo cual muestraque la función oR-exclusiva es el complementode la función de equivalencia(Sección2-6). Tomando el complementode F'se obtiene la función simplificada en producto de sumas: p : (x,.* z')(x + z) Para colocar una función expresadaen producto de sumas en el mapa, se saca el complementode la función y de ella se buscan los cuadradosque se van a marcar con ceros.Por ejemplo,Ia función: F:
( A ' + B , + C ) ( B+ O )
puede colocarseen el mapa obteniendoprimero su complemento: F,:
ABC,+ B,D,
para luego marcar con ceros los cuadradosque representanlos términos mínimos de F'. Los cuadradosrestantesse marcan con unos. 3-6
E J E C U C I O NC O N N A N D Y N O R
Los circuitos digitales se construyen más frecuentementecon compuertas NAND y NOR que con compuertasAND y OR. Las compuertasNAND y NOR son más fáciles de fabricar con compuertaselectrónicasy son las compuertas básicasusadasen todas las familias de CI lógico digitales. Debido a la importancia de las compuertasNAND y NoR en el diseñode circuitos digitales se han desarrolladoreglasy procedimierrtospara la conversiónde funcionesde Boole en términos de AND, OR y NOT a diagramaslógicos equivalentesen NAND y NoR. El procedimientopara la ejecuciónen dos niveles se presentaen esta sección.La ejecuciónen multiniveles se discutirá en la Sección4-7. Para facilitar ldionversión a lógica NAND v NOR es convenientedefinir otros dos símbolosgráficospara estas compuertas.En la Figura 3-1?(a) se muestran dos símbolosequivalentespara la compuertaNAND. El símbolo AND inversor ha sido definido precisamentey consisteen un símbolo gráfico AND seguidode un pequeñocírculo. En vez de lo anterior es posible
F = (xt,z)' AND-inversor
lnversor-OR
\ a ) Dos símbolosgráficos para la compuerta \A\D
I = ¡ ' r ' : ' = ( . r* t , * z ) '
F=(-r*-l +z)' OR-inversor
AND-inversor (b) Dos símbolosgráficos para la compuerta NOR
J_{
Separador-inversor ',
AND-inversor
OR-inversor
(c) Tres símbolosgráñcospara un inversor figura
representar
3-17
Símbolos gráficos para las compuertas NAND ¡ ). _ -.
una compuerta
NAND
por medio de un símbolo
gra:-:.-., oR pre-
cedido de pequeños círculos en todas las entradas. El símboic, :r..-ersor-oR para la compuerta NAND se deduce a partir del teorema de De \lorgan y de la convención de que pequeños círculos denotan complemen!acron. De manera similar, hay dos símbolos gráficos para 1a compuerta NoR como se muestra en la Figura 3-17(b). El inversor OR es el símirr:,loconvencional. El inversor AND es una alternativa conveniente que urrliza el teorema de De Morgan y la convención de pequeños círculos en Ias entradas que denotan complementación. Una compuerta NAND o NOR de una entrada se comporra como un inversor. Como consecuencia una compuerta inversor puede cet-lnirse de tres maneras diferentes como se muestra en la Figura 3-1?(cr. Los círculos pequeños en todos Ios símbolos de inversor pueden trasferirse al terminal de entrada sin cambiar la lógica de la compuerta. se debe resaltar que los símbolos alternos para las compuertas NAND y NoR deben dibujarse con pequeños triángulos en todas las terminales de entrada en vez de los círculos. un pequeño triángulo es un indicador de la polaridad de Ia lógica negativa (ver Sección 2-8 y Figura 2-11). Con pequeños triángulos en los terminales de entrada, el símboio gráfico denota una polaridad de lógica negativa para las entradas, pero ia salida de la compuerta (un triángulo) debe tener una asignación de lógica positiva. En este libro, se prefiere usar la lógica positiva y emplear pequeños círculos cuando sea necesario con el fin de denotar complementación. Ejecución con NAND La ejecución de una función de Boole con compuertas NAND requieren que la función sea simplificada en la forma de suma de productos. Para ver la 90
f
\q
U
Q
l¡¡ T
I
'd
.oq
F @
h!
\a
uQ
k¡
9l
r.s 92
S I M P L I F I c A c I o ND E L A S F U N c I o N E SD E B o o L E
CAP. 3
relación entre una expresiónde suma de productosy su ejecuciónequivalente en NAND, considérenselos diagramas de lógica áibu;ados ón la Figura 3-18.Todos los tres diagramasson equivalentesy ejecutanla función: F:AB+CD+E La función se ejecuta en la Figura 3-18(a)en la forma de suma de productos con compuertas -o_I v AND. En (b) las compuertasAND se remplazan por compuertas NAND, y la compuerta oR se remplaza por la compuerta NAND con un símboloinversor oR. La variableE por sí sola se complementa y se aplica a la compuertainversor oR del segundonivel. se deüetener en cuenta que un pequeñocírculo denota complementación.Así, dos cí¡culos en la misma línea representandoble complementacióny ambospuedenanularse. El complemento de.E pasa por_unpóqueñocírculo ro cual cbmple-é"iu la va¡iable de una vez más para producir ei valor normal de E. euiianá; io; círculos pequeñosen las compuertas de la Figura B-1g(b)se-p.oduce ei circuito en (a). Así, los dos diagramas ejecutan la misma funóión y son equivalentes. En la Figura 3-18(c),la compuertaNAND de salida se puederedibujar con su símbolo convencional. La compuerta NAND de una sola entrada complementa la variable E. Es posible quitar este inversor y aplicar E, directamente a la entrada de la compuerta NAND de segundonivel. El diagrama en (c) es equivalenteal de (b) el cual es equivalentea su turno al diagrama (a). Las compuertasAND y oR han sido cambiadasa compuertas NAND con una sola variable E. cuando se dibujan los diagramásen lógica NAND son aceptables(b) o (c). El diagramade la figura (ú, sin embargo, representauna relación más directa u I" u*pre.ión d]eBoole'que ejecuta. La ejecución con.NANP,9n la Figura B-1g(c)puede verificarsealge. braicamente.La función NAND que sJ ejecutap,r"d. ser convertida fácilmente a una forma de suma de productos mediante el uso del teorema de De Morgan. P:l(AB)' .(CD)' . 8,), : AB + CD + E De la trasformaciónmostradaen la Figura B-1gse concluyeque la función de Boole puede ejecutarse con dos niveles de compuertas ñAND. La regla para obtener el diagrama de lógica NAND a partii de una función de Boole es de la siguientemanera:
.\
1. simplificar la función de Boole y expresarlaen suma de productos. 2. Dibujar una compuerta NAND por cada término del producto de la función que tenga por lo menos dos literales. Las entradas a cada compuerta NAND son los literales del término. Lo anterior constituye un grupo de compuertas de primer nivel. 3. Dibujar una compuertaNAND en el segundoniver, (usandoel símbolo gráfico de inversor AND o inversor oR con las entradas que provienen del primer nivel de compuertas. 4. un término con un solo literal requiereun inversor en el primer nivel o ser complementado primero y aplicado como entráda a una compuerta NAÑD del segundonivel.
EJECUCION CON NAND Y NOR
sEc. 3-6
93
Antes de aplicarse estas reglas a un ejemplo específico,debe mencionarse que hay una segunda forma de ejecutar una función de Bo
3-9.' Ejecutar la siguiente función con compuerF(t,y, z) : )(0, 6)
El primer paso es simplificar la función en la forma de suma de productos.Esto se logra con el mapa mostradoen la Figrrra3-19(a). Hay solamente dos unos en el mapa y no pueden combinarse.La función simplificada para este ejemplo en suma de productos es: F:
x'y'z' * xyz'
La ejecucióncon NAND con dos niveles se muestra en la Figura 3-19(b). En seguidase trata de simplificar el complementode la función en suma de productos. Esto se hace combinandolos ceros en el mapa: F':x'y+ry'*z Las compuertasNAND con dos niveles, para generarF', se muestran en la Figura 3-19(c). Si se requiere la salida F, es necesario agregar una compuerta NAND de una sola entrada para inverti¡ la función. Esto dará una ejecuciónde tres niveles. Se asume que las variables de entrada se pueden obtener en las formas normales y de complemento.Si sólo se obtienen en una forma será necesario colocar inversores en las entradas, lo cual agregaríaotro nivel a los circuitos. La compuerta NAND de una sola entrada asociadacon la sola variable z puede eleminarseen el caso de que la entrada se cambiea e'. Ejecución con NOR La función NOR es el dual de la función NAND. Por esta raz6n, todos los procedimientosy reglas para la lógica NOR son el dual de los correspondientes procedimientosy reglasdesarrolladaspara la lógica NAND. La ejecución de una función de Boole con compuertas NOR requiere que la función se simplifique en la forma de producto de sumas. Una expresión de producto de sumas especifica un grupo de compuertas OR para la
j'
t'z
"{'
Y00
0l
lt
i0
0
I
0
0
0
0
0
0
F = r' jJ z' * x!.2' F-'= x'.v*,rr" # :
\_YJ
(a) Simplificación del mapa en suma de productos. .X _f
( b ) F = - r ' . r , ' -*- ' . r r ' : ' Figura s-19
{ c ) 1 . ' = ¡ ' . r '* x , l ' * :
Ejecuciónde la función del Ejemplo 3-9 con compuertas \o-y
suma de té¡minos, seguida de una compu_erta AND para generar el producto. La trasfo¡maciónder diagrama o[-'eNo ar Noñ-ño'l re dibuja en la Figura 3-20. Es similar a la irasforÁ""ió" NAND discutida anteriormente exceptoque ahora se usa la expresiónde suma de productos: F:
(A + B)(C+ D)E
r-a-reglapara obtenerel diagrama lógico NoR de una función de Boole puede derivarsede esta trasformáción. EI .i-il;;;;l.ir" .dÁuNexD de tres pasoscon la diferencia.de la expresiónsimplificada .rru. en pro.que ducto de.sumas y los términos de la. NoR de primer niver son los términos de suma. un término "ornp.r"rtas riteralilq"i!r" una NoR de "ort.r.,'.olo n
A
A
B
B
p
C
C F
F
D
f:'
(a)
Figura
94
C D E
(h) 3-2O Tres manerasde ejecutarF:
rcr (A + B)(C + DrE
r'
CON NAND Y NOR EJECUCION
s E c .3 - 6
€er complementaday aplicada una sola entrada, o compuerta inve¡sora,o nivel' áii""t"to""te a la compu;rta NOR de segundo con compuertas NOR pofunción la á; ejecutar una segund" ;":";; de la función para complemento el li:91:l: dría ser el usar f" "" eJecucron para F'- y una "ü.".1¿" niveles dos de ejeiución una á" ."r""r. Esto dará el caso dó necesitarsela salida F normal' á" i*" "n "itJ". P a r a o b t e n e r e l p r o d u c t o d e S u m a s s i m p l i f i c a d o a p a r t i r d eIa unmapa' y luego complementar funes necesariocombinai los ceros en el mapa sumas simplificadas para ción. para obtener ia erpre.ión en producto de el mapa de la función, es necesariocombinar los unos en ;i';;;pl;;ento el prodemuestra y luego complemen; I" funciór,. El siguiente ejemplo cedimientopara una ejecucióncon NOR' EJEMPL|S-10:EjecutarlafuncióndelEjemplo3-9con compuertasNOR. Priesta tunción se dibuja en la Figura 3-19(a). El *;;';; para obtener: mero, se ¿áU"n combinar los ceros en el mapa F':x'yrry'12 de productos' Se Este es el complementode la función en suma en producto simplificada la función complemenü i:i pur" obtener desumasdelamaneranecesariaparalaejecuciónconNoR: F:
(x + y')(x' * y)z'
se muestra en La ejecuciónde dos niveles con compue¡tas.NOR una com. requiere z, literal solo un con término El la Figrrra3-21(a). Esta comprárt" Nón d"'""a sola entrada o compuertainversora. a la z entrada la puerta puede quitarse Para¿plicar directamente nivgl' segundo fntrada de la óompuert-aNOR de partir de la funu"" ."g";á;-?or-u de ejecució.,e. porible a primero combínese caso este Para surnas' ción en práducto de los unos en el mapa con el fin de obtener: F:
x'y'z'* xYz'
v
(¿)F+(x+1t¡1x'+y)z' Figura 3-21
(b)F'= (¡ + -r'+ z) (x' * r" + z) Ejecución con compuertas NOR
t-
Tabla 3-3
Función a Caso simplificar
(a) (b) (c) (d)
F F' F F'
Reglas para la ejecución con NAND v NOR
Forma normal de usar
Número de Ejecutarse niveles con de F
Como derivarla
Sumade productos Combinelos unosen el mapa Suma de productos Combinelos cerosen el mapa Producto de sumas ComplementeF' en (b) Productode sumas ComplementeF en (a)
NAND NAND NOR NOR
2 J
2 J
Esta es la expresiónsimplificada en suma de productos. Se complementa esta función para obtener el complementode Ia función en producto de sumas que es la forma requerida para la ejecución con NOR: F':(xty*z)(.x,*y
*z)
La ejecución de los dos niveles para F' se muestra en la Figura 3 - 2 1 ( b ) . S i s e d e s e a l a s a l i d a F , e s t a puede ser generada con un inversor en el tercer nivel.
La Tabla 3-3 resume los procedimientos para la ejecución con NAND y NoR, no se debe olvidar simplificar la función corr el fin de reducir el núme¡o de compuertas en la ejecución de funciones. Las formas normalizadas obtenidas de los procedimientos de simplificación p<)r mapas se aplican directamente y son muy útiles cuando se está tiabaianáo con lógica NAND o NOR. 3-7
O T R A S E J E C U C I O N E SC O N D O S N I V E L E S
Las clas-esde compuertas más encontradas a menudo en circuitos integrado_s-1o1 las NAND y NoR. Por esta razón,las ejecucionesde lógica Neño y NoR son las más importantes desde er punto de vista práctióo. Algunas compuetas NAND y NoR (pero no todas) permiten la posibilidad dé una conexión entre las salidas de las dos compuertaspara próducir una función lógica específica.Este tipo de lógica se lláma lógica dé cableado.por ejemplo, las compuertas NAND TTL de colector aÉierto, una vez conectadas juntas producen la lógica AND de cableado.(La compuerta TTL de colector abierto se muestra en el Capítulo 18, Figura 1g-11).ia lógica AND cableada ejecutada con dos compuertas NAND ie ilustra en la'Figura B-22(a).La compuerta AND se dibuja con las líneas de entrada atraiesando la compuerta hasta el centro para distinguirla de una compuerta comercial. La compuerta AND cableada no es una compuerta física sino solamente un símbolo_paradesignar la función obtenida de la conexión cablead" qu" ." indica. La función lógica ejecutadapor er circuito de la Figura B-22(a)es: P: (AB)'.(CD)' : (AB + CD)' 96
r¿
¡
F=(AB+CD)'
F=tG+B)(C+D)
,¡ it (a) AND-cableado en compuertas NAND TTL de colector abier¡o
(AND.ORINVERSOR) Figura
!-
(b) OR-cableado en compuertas ECL
( O R . A N DI N V E R S O R ) 3-22
Lógica de cableado
y se llama una función AND-OR inversor (o invertida). De manerasimilar la salida NoR de las compuertasECL puedenunirse tcdas para conformaruna función cableadaoR. La función lógica ejecutada por el circuito de la Figura 3-22(b)es:
r : ( A + B ) ,+ ( C + D ) ,: l ( A + B ) ( C+ D ) 1 , y se llama función (OR-AND) inversor (o invertida). , una compuerta de lógica alambrada no produce una compuerta fisica de segundonivel ya que se trata solamente de una conexión. sin embargo, para propósitos de discusión se consideran los circuitos de la Figura 3-22 como ejecucionesde dos niveles. El primer nivel consisteen compuertas NAND (o NoR) y el segundonivel tiene una compuertasencilla ÁNn (u oR). La conexión cableadadel símbolo gráfico se omitirá en las discusionessubsiguientes. Formas no degeneradas Es instructivo desde el punto de vista teórico encontrar cuantas combinacionesde compuertasde dos niveles son posibles. Se considerancuatro tipos de compuertas:AND, OR, NAND y NOR. Si se asignaun tipo de compuertas para el primer nivel y uno para el segundose encuentra que existen 16 combinacionesposibles de formas de dos niveles. (El mismó tipo de compuerta puede estar en el primer y segundo niveles como en utta é¡ec.rción con NAND-NAND). ocho de estas funcionesse les llama formas degeneradas.Esto puede verse de un circuito con compuertas y en el primer nivel y una compuertaY en el segundonivel. La salida del circuito ei simplemente la función Y de todas las variables de entrada. Las otras ocho formas no degeneradosproducen formas de ejecución en suma de productos o producto de sumas. Las ocho formas no degeneradasson:
AND-OR NAND-NAND NOR.OR OR-AND
OR-AND NOR-NOR NAND-AND AND.OR 97
98
S I M P L I F I C A C I OD NE L A S F U N C I O N E S DE BOOLE
CAP. 3
La primera compuerta de cada una de las formas listadas constituye el primer nivel de la ejecución.La segundacgmpuertade la lista es una sola compuerta colocadaen el segundonivel. Nótese que cualquier par de formas de la lista son duales entre sí. Las formas AND-OR y OR-AND son las dos formas básicasde dos nivelesdiscutidasen la Sección3-5. Las NAND-NAND y NOR-NOR se introdujeron en la Sección3-6. Las cuatro formas restantesse investigan en esta sección. E j e c u c i ó nc o n A N D - O R i n v e r t i d a
¡.'t\sr
La dos formas NAND-AND y AND-NOR son formasequivalentesy pueden ser tratadas conjuntamente.Ambas realizan la función AND-OR invertida de la manera mostrada en la Figura 3-23.La forma AND-NOR se parecea la forma AND-OR con una inversión hecha fror un pequeñocírculo a la salida de la compuertaNOR. Esta ejbcuta la función: F:
(AB + CD + E)'
Usando el símbolo gráfico alterno para la compuerta NOR se obtiene el diagrama de la Figura 3-23(b).Nótese 1ue la sola variable E no es complementada porque el único cambio hecho ps el símbolo gráfico de la compuerta NOR. Se trasladan los círculos del terminal de entrada de las compuertas de segrrndonivel a los terminales de salida de las compuertas del primer nivel. Se necesitasolamenteun inversorpara que la sola variable mantenga el círculo. Otra alternativa es quitar el inversorsiemprey cuandola entrada E esté complementada.El circuito de Ia Figura 3-23(c)es una forma NANDAND, se muestraen la FiguraS-22con el fin de ejecutarla función AND-OR invertida. Una ejecucióncon AND-OR requiereuna expresiónen suma de productos. La ejecucióncon AND-OR invertida es similar exceptopor la inversión (negado).Por tanto, si el complementode una función se simplifica en suma de productos (combinandolos cerosen el mapa), es posibleejecutarF' con la parte AND-OR de la función. Cuando F' pasepor la inversión de salida siemprepresente,se generarála salida F de la función. Un ejemplo de una ejecucióncon AND-OR invertida se mostrará más adelante. E j e c u c i ó nc o n O R - A N D i n v e r t i d a Las formas OR-NAND y NOR-OR realizan la función OR-AND invertida como se muestra en la Figura 3-24.La forma OR-NAND se parecea la forma OR-AND exceptopor la inversión hecha por el círculo en la compuerta NAND. Ella ejecutala función:
F : l ( A + B ) ( C+ D ) E ) ' , Mediante el uso de un símbolográficoalterno para la compuertaNAND se obtiene el diagrama de la Figura 3-24(b).El circuito en (c) se obtiene moviendo los círculos pequeños de las entradas de la compuerta de se-
z z z I Q -1IA v\
é:kffi l\
z.= zY
^z --
O N
u0
z
z (!
¡ ll
,:
;l
v \
r ;!
t{ l1
f
IJ 99 J
I
I
+
z:ia
+
U
+ E
49
z xz ú O $ N
¡r D'
z?
z
too
O T R A SE J E C U C I O N ECSO N D O S N I V E L E S I O I
sEc.3-7
gundo nivel a las salidas de las compuertas de primer nivel. El circuito de [a Figura B-24(c)en una forma NOR-OR se muestra en la Figura 3-22 para ejecutar la función OR-AND invertida. La ejecución OR-AND invertida requiere una expresión en producto de sumas. Si el complemento de la función se simplifica en producto de sumas se puedeejecutarF' con la parte OR-AND de la función. Una vez que F' oase poi ta parte de inversión se obtieneel complementode F'osea F ala salida. Tabla sumarioY ejemPlo La Tabla 3-4 resume los procedimientospara la ejecuciónde funcionesde Boole en cualquiera de las cuatro formas de dos niveles' Debido a la parte de INVERSION, en cada caso es convenienteusar Ia simplificación F' (el complemento)de la función. Cuando se ejecuta F' en una de estas formas ." oLti"tr" el complementode la función en la forma AND-OR u OR-AND. Las cuat¡o formas de dos niveles invierten esta función dando una salida que es el complementode F'. Esta última es la salida normal F. Tabla 3-4 Forma equivalente no degenerada
Ejecución con otras formas de dos niveles
Ejecuta la función
Simplifique F' en
Para obtener una salida de
(b)*
(a,l
AND-NOR NAND-AND
OR-NAND
NOR-OR
AND-OR-INVERTIDA
OR-AND-INVERTIDA
Sumadeproductos combinandolos cerosen el mapa Productodesumas combinandolos unos en el mapa y luego complementando.
F
*La forma (b) requiere una compuerta NAND de una ent¡ada a una NOR (inversor) para el término de un solo literal.
EJEMPLO 3-11: Ejecútese la función de la Figura 319(a) con las cuatro formas de dos niveles listados en la Tabla 3-4. El complemento de la función se simplifica en suma de productos combinando los ceros del mapa:
F':x'y*ry'*z La salida normal de esta función puedeser expresadacomo: F:(x'y*ry'*z)'
AND-NOR
NAND-AND ( a )F = ( - r ' r*, , r r ' ' * : ) '
)' Z
-r
)' z
OR.NAND
NOR-OR
( b ) . r : = [ ( " x1 -. t ' * z ) ( x ' + 1 ' + : ) ) ' Figura
*
!a
ry -*
3-25
Otras ejecuciones de dos niveles
la cual está en la forma AND-OR invertida. Las ejecucionescon AND-NOR y NAND-AND se muestranen la Figura 3-25(a).Nótese que una NAND de una entrada o compuertainversorase necesita para la ejecucióncon NAND-AND, pero no en el casoAND-OR. El inversor puede eliminarse si se aplica una variable de entrada z' en vez d,ez. Las formas OR-AND invertida requierenuna expresiónsimplificada del complemento de las funciones en producto de sumas. Para obteneresta expresiónse debencombinar los unos en el mapa: F:
x'y'z'* ryz
En seguidase toma el complementode la función: F,:(r*y*z)(x,+y,*z) La salida normal F puede ahora expresarseen la forma: F:l(x
* y * z ) ( x '+ y ' + z ) f ,
la cual está en la forma OR-AND invertida. A partir de esta expresión se puedeejecutar la función en las formas OR-NAND y NOROR como se muestra en la Figura 3-25(b). to2
3-8
CONDICIONES DE NO IMPORTA
Los unos y ceros en el mapa significan la combinación de variables que hacen la función igual a 1-ó 0 respect-ivamente. Las'combinaciones se obtienen comúnmente de una tabla de verdad que lista las condiciones bajo las cuales la función es 1. Se asume que la función sea igual a cero bajo cualquier otra condición. Esta suposición no es siempre verdadera ya que hay aplicaciones donde ciertas combinaciones de variables de entrada nunca ocurren. Un código decimal de cuatro bits, por ejemplo, tiene seis combinaciones que no se usan. Cualquier circuito digital que use este código, opera bajo la suposición de que esas combinaciones no usadas nunca ocurren, siempre y cuando el sistema esté trabajando adecuadamente. Como resultado, no importa lo que sea la salida de la función para estas combinaciones de variables ya que se garantiza que nunca ocurrirán. Estas condiciones de no importa pueden usarse en un mapa para lograr una mejor simplificación de la función. Se puede hacer énfasis en que la combinación de no importa no puede ser marcada con un 1 en el mapa ya que ella implica que la función sea I para esa combinación de entrada. De la misma manera colocar un cero requiere que la función sea cero. Pára diferenciar las condiciones de no importa de los unos y ceros se usará una X. Cuando se escogen cuadrados adyacentes, para simplificar la función en el mapa, se asume que la X sea 1 ó 0 según lo que produzca la expresión más simple. Además, no se necesita usar la X si esta no contribuye al cubrimiento de una área mayor. En cada caso, la alternativa depende solamente de la simplificación que se puede lograr.
EJEMPLO
3-12: Simplificar la función de Boole:
F(w, x, y, z) : >( l, 3, 7, I l, 15) y las condicionesde no importa: d(w, x, y, z) : >(0, 2, 5) Los términos mínimos de F son .las combinacionesde variables que hacen la función igual a 1. Los términos mínimos de d son las combinacionesde no importa que se conoce que nunca ocurren. La minimización se muestra en la Figura 3-26.Los términos mínimos de F se marcan con unos y aquellos de d se marcan con una X y los cuadradosrestantes se llenan con ceros. En (a) los unos y las X se combinan de una forma convenientetal que se abarque el mayor número de cuadradosadyacentes.No es necesario incluir todas o algunas de las X sino aquellas que sean útiles para la simplificación de un término. Una combinaciónque da una función mínima incluye una X y deja dos por fuera. Esto dará como resultado una función simplificada en suma de productos. F:
w'z * yz t03
ya
"yi
00
0l
01
X
i-
0
r
0
ll
l0
ñ.t l
-l
X
0(
it
_'J
0
I
0
0
)1 ,f
t
0
I I lr'1
0
0
I
( a ) C o m b i n a n d ou n o s y X Figura
ll
0
F:
8_26
u'z +,,2
00
0l I
X 0
tr
ol
0
loi
0l
io
_f
(b) CombinandocerosyX
I':z(u,
ly)
Ejemplo con condiciones de no importa
En (b), los ceros se combinan con cuarquier X convenientepara simplificar el. complementode ra función. Los mejoresresultados se obtienen si se incluyen las X de la mane¡a mostrada. La función complementadase simplifica para dar: F':z'+wy' complementándola de nuevo se obtiene una función simplificada en producto de sumas: F:z(w,*y) { \
rt
Lu! dos expresionesobtenidas en el . Ejemplo 3-12 dan dos funciones, las cuales se pueden demostrar como algebrui"u**ü iguutur. Este no es siempre el caso cuando intervienen cond*iciones d" iirporta. De hecho, si una X se usa como 1, cuando se combinan los unos "; ;;" 0 cuando se combinan los ceros, las dos funciones resultantes ,ro proáu.irán " respuestas iguales algebraicamente.La selección de la condiiio"'ae no importa qomg 1 en el primer caso y como 0 en el segundo,resurta en expresiones de diferentes términos mínimos y-En'la por tanto en diferentes f'unciones. Esto puede versedel Ejemplo 3-12. solución del mismo la X escogida como 1. no se escogiócomo cero. Ahora, -si en la Figura 3_26(a)." el término u'z'en vez de u'z se obtienede todas rorria. una tunción".iog" minimizada: F:
w'x' I yz
Pero que no es algebraicamente igual a la obtenida en producto de sumas porque la misma X se usa como 1 en la primera minimización y como cero
en la segunda. Este ejemplo demuestra también que una expresión con un mínimo de literales no es necesariamente única. Algunas veces el diseñador se encuentra con una alternativa entre dos términos con un número igual de literales, tal que la escogencia de cualquiera resulta en una expresión minimizada. t04
E L M E T O D OD E L T A B U L A D O
3-9
EI método del mapa para simplificación es conveniente siempre y cuando el número de variables no exceda de cinco o seis. A medida que el número de variables aumenta el número excesivo de cuad¡ados impide una selección razonable de cuadrados adyacentes. La desventaja obvia del mapa es esencialmente el procedimiento de prueba y error que depende de la habilidad del usuario humano para reconocer ciertos patrones. Para funciones de seis o más variables es muy dificil estar seguró que realmente se hizo la mejor selección. El método del tabulado elimina la anterior dificultad. Este se trata de un procedimiento específico paso a paso que se garantiza para producir una expresión de forma normalizada y simplificada. Este se puede aplicar a problemas con muchas variables y tiene la ventaja de ser adecuado para cómputos con máquina. Sin embargo es un poco tedioso para uso humano y propenso a errores debido a un proceso rutinario y monótono. El método del tabulado fue formulado primero por Quine (3) y más tarde mejorado por McCluskey. EI método de simplificación consiste en dos partes. La primera es encontrar mediante una búsqueda muy cohpleta de todos los términos candidatos de inclusión en la función simplificada. Estos términos se llaman primeros-implicados. La segunda opdración es escoger entre los primeros implicados aquellas que dan una expresión con el menor número de litera les.
3-10
DETERMINACIO DN E LOSPRIMEROS IMPLICADOS*
El punto de partida del método del tabulado es la Iista de términos mínimos que especifican la función. La primera operación de tabulado es buscar los primeros implicados para usarlos en el proceso de apareamiento. Este proceso compara cada término mínimo con cada uno de los restantes términos mínimos. Si dos términos mínimos difieren en solamente una variable, esa variable se elimina para encontrar un solo término con un literal menos. Este proceso se repite para cada término mínimo hasta que se complete el proceso completo de búsqueda. El ciclo del proceso de apareamiento se repite para aquellos términos nuevos encontrados. Se continúa con el tercer y subsiguientes ciclos hasta el paso por un ciclo no produzca nuevas eliminaciones de literales. Los términos restantes y todos los términos que no se aparearon durante el proceso, constituyen los primeros implicados. El método del tabulado se ilustra por medio del ejemplo siguiente:
EJEMPLO 3-13: Simplificar la siguiente función de Boole usandoel método del tabulado: F: *
) ( 0 , 1 , 2 , 8 , 1 0 l, l , 1 4 ,1 5 )
Esta sección y la siguiente pueden ser omitidas sin perder continuidad.
105
CAP, 3
SE B O O L E S I M P L I F I C A C I ODNE L A S F U N C I O N E D
/06
Paso 1: Agrupar la representación binaria de los términos mínimos de acuerdo al número de unos contenido de la manera mostrada en la Tabla 3-5 columna (a). Esto se hace agrupando los términos mínimos en cinco secciones separadas por líneas horizontales. La primera sección contiene el número sin unos en é1. La segunda sección contiene aquellos números que tienen soIamente un uno. La tercera, cuarta y quinta sección contienen aquellos números binarios con dos, tres y cuatro unos respectivamente. Los decimales equivalentes de los términos mínimos se colocan a todo lo largo para identificación. Paso 2: Cualquier par de términos mínimos que difieren entre sí solamente por una variable, se pueden combinar y las variables no apareadas eliminar. Dos números de término mínimo caen dentro de esta categoría si ambos tienen el mismo valor de bit en todas las posiciones excepto en una. Los términos mínimos en una sección se comparan con aquellos de Ia siguiente en adelante ya que dos términos que se diferencian en más de un bit no se pueden aparear. El término mínimo de Ia primera sección se compara con cada uno de los tres términos mínimos de la segunda sección. Si hay dos términos iguales en todas las posiciones excepto en una, se marcan a la derecha de ambos términos mínimos
g
I
i*'"tl,l;13:,x11""1-?i"i::?\?$" ffit*'#'";';fi (b) de la tabla. La variable eliminada durante el proceso de apareamiento se remplaza por un guión en su posición original. En
\
Tabla
Determinación de los primeros implicados para el Ejemplo 3-13
3-5
(b)
(a)
(c.)
u'x,y2
wxyz
w xyz
0, 1 o)
00000 - 0
0,2,8,10 0,8,2,10
- 0 - 0 - 0 - 0
0001 0010
0,8
-000
1 0 ,l l , 1 4 ,l 5 1 0 ,1 4 ,1 1 ,l 5
l-ll-l-
1000
2, l0 8, l0
0
0000
r 2
l0 1010
\/
-0 r 0 v l0-0
f
\/ t0,ll
ll t4
l0ll lll0
15 llll
v \/ \/
l0l 10,14 l - l It. 15 r-l 1 4 .l 5 l l l -
0v r v \/
S E C .3 . 1 0
D E T E R M I N A C I ODNE L O S P R I M E R O S I M P L I C A D O SI O 7
este caso mo (0000)se combina con mr (0001)para formar (000-). Esta combinaciónes equivalentea la operaciónalgebraica: mo I m, :
w' x'Y' z' I w' x'Y' z : w' x'l'
El término mínimo ¡n0 se combina con m2 para formar (00-0) y con m8 para formar (-000). El resultado de esta comparación se c o l o c a .e n l a p r i m e r a s e c c i ó n d e l a c o l u m n a ( b ) . L o s t é r m i n o s m í nimos de las secciones dos y tres de la columna (a) se comparan en seguida para producir los términos Iistados en la segunda secc i ó n d e l a c o l u m n a ( b ) . T o d a s l a s o t r a s s e c c i o n e sd e ( a ) s e c o m paran de manera similar y las secciones subsecuentes se forman en (b). Este proceso de comparación dará como resultado cuatro s e c c i o n e sd e ( b ) . Paso 3: Los términos de la columna (b) tienen solamente tres variables. Un l debajo de la variable significa que no es tildada, un 0 significa que es tildada y un guión significa que no se incluye en el término. El proceso de búsqueda y comparación se repite para los términos en la columna (b) para formar los dos términos variables de Ia columna (c). De nuevo. los términos en cada sección necesitan compararse solamente si tienen guiones en la misma posición. Nótese que el término (000-) no se aparea con cualquier otro término. Por consiguiente, este no tendrá marca a su derecha. Los equivalentes decimales se escriben a mano derecha de cada entrada para propósitos de identificación. EI proceso de comparación debe Ilevarse a cabo de nuevo en Ia columna (c) y en Ias columnas subsiguientes siempre y cuando se consiga el apareamiento adecuado. En el ejemplo presente, la operación para en la tercera columna. Paso 4: Los términos no marcados en la tabla forman los primeros implicados. En este ejemplo tenemos el término r¿"¡'y' (000-) en la columna (b) y los términos x'z'(-0-0) y uy (1-1-)en la coIumna (c). Nótese que cada término de Ia columna (c) aparece dos veces en la tabla y cuando el término forme un primer implicado es innecesario usar el mismo término dos veces. La suma de los primeros implicados dará una expresión simplificada de la función. Esto es debido a que cada término marcado en Ia tabla se ha tenido en cuenta para la entrada de un término más sencillo en la columna subsecuente. Así, las entradas no marcadas (primeros-implicados) constituyen los términos dejados para formular la función. Para el ejemplo presente,Ia suma de los primeros implicados dará la función minimizada en suma de productos:
F:w'x'y'*x'z'*wy Vale la pena comparar la anterior respuesta con la obtenida mediante el método del mapa. La Figura 3-27 muestra la simplificación por mapa de esta función. Las combinaciones de los cuadrados advacentes dan los
y
)': 00 00
E
0i
1l
_ll
l0
Lr
'l
0l
t''{
II il
tl
Tl I'o l
L'
I
tr
7
Figura 3-27
Mapa de la función del Ejernplo3-13;tr': w,x,t,,*x,2,+uy
tres primeros implicados de la función. La suma de estostres términos es la expresiónsimplificada en suma de productos. Es importante señalar.gle proposito 9l Ejemplo B-18 fue escogido "d. a para d,ar una función simplificada a partir de una *o*u primerós im_ p\icados. En \a mayoria de los casos \a suma de los primeros impricados no necesariamenteform-anla expresión con el número *írri,,'o de términos. Esto se demuestraen el Ejemptó a-t+. La tediosa manipulación que se debe hacer cuando se usa el método del tabulado se reduce si la cómparaciónse hace con números decimales en vez de binarios. se mostrará áhora un método qu. u." la resta de nú_ meros decimales en v:z de comparar y aparear números binarios. Nótese que cada 1 en un n:mgo binario representa el coeficiente multiplicado por una potencia de 2. cuando dos términos mínimos son iguales tod", las posicionesexcepto en una, el término mínimo con el 1 extra "r, debe ser más grande,_ que el número dei otro térmiho mínimo, en una potencia de 2. Por tanto, dos términos mínimos se pueden cambia¡ si ei nrimero del pri_ 'potencia mer término mínimo difiere. po.r yna de 2 de un segundo número Tay.or de la siguiente sección inferior de la tabla-sliir.tr"rá este proce_ dimiento repitiendoel Ejemplo 3-18. como se muestra en la Tabla 3-6 columna (a), los términos mínimos se arreglan en seccionescomo se hizo anteriormeni; ;;";;t" que se listan solamente los decimalesequivalentesa ros té¡minos ;i;i;"r. El proceso de comparar los términos mínimos es como sigue: inspecciónesetodo par de números decimales en seccionesadyacentesde la tabla. si el número de la sección inferior es mayor que er número de la sección superior por una potenciade 2 (por ejemplo1,2,4, g, 16, etc.) márquese ambosnúmeros para demostrarque han sido usadosy escróalos ." t"'"olr-na (b). Er par de números trasferidos a la colum"" (¡) incluyen u;-;;;;", número en paréntesis que designa la potencia de 2 por la cual difieren los números. úl numero en paréntesisdice la posición der guión en la notación bina_ ria. El resultado de la comparaciónde la colu"mn; ("i ¡; muestra en la columna (b). .. !" comparación,entreseccionesadyacentesen la columna (b) se realiza de manera similar, excepto qu" .oi",'"nte se comparan aquelrostért08
del Ejemplo 3-13 Determinaciónde los primeros-implicados con notación decimal
Tabla 3-6
(b)
(a)
0v
(l) 0,2 (2) \/ 0,8 (8) v 0 ,l
lv 2t/
8v
2, l0 (8)
(c)
0,2, 8, r0 0 , 2 , 8 r, 0
(2,8) (2,8)
1 0 l, r , 1 4 ,l 5 ( 1 , 4 ) 1 0 l, l , 1 4 ,l 5 ( 1 , 4 )
8, l0 (2) l0
10,r l (r) , t0, t4 (4)
ll t4
l l, 15(4) 1 4 ,l 5 ( l )
15v
\
minos con el mismo número en paréntesis.El par de númerosen una sección debe diferir por una potencia de 2 del par de númerosen Ia siguiente sección. Y los números en la sección inmediatamente inferior deben ser mayores para poder lograr la combinación. En la columna (c) escríbase todos los cuatro números decimales, con los dos números en paréntesis como indicadoresde la posición de los guiones.Una comparaciónde las Tablas 3-5 y 3-6 podría ser útil para comprender las derivacionesde la Tabla 3-6. Los primeros implicados son aquellos términos no marcados en Ia tabla. Son los mismos que los encontradosanteriormenteexcepto que están dados en notación decimal. Para convertir la notación decimal a binaria conviértasetodos los números decimalesen el término a binarios y luego colóqueseun guión en aquellas posicionesdesignadaspor los números en paréntesis.Así 0,1 (1) se convierte a binario como 0000,0001; un guión en Ia primera porción de cada número ¡esultará en (000-). De la misma manera, 0, 2, 8, 10 (2, 8) se convierte a la notación binaria 0000, 0010, 1000y 1010,y un guión colocadoen las posiciones2 y 8, dará como resultado (-0-0). EJEMPLO función:
3-14: Determinar los primeros implicados de Ia
F ( w ,x , y , e ) : ) ( 1 , 4 , 6 , 7 , 8 , 9 ,1 0 ,l l ' 1 5 ) Los números de los términos mínimos se agrupan en seccionesde la manera mostrada en la Tabla 3-7 columna (a). El binario equivalente de un término mínimo se incluye con el propósito de contar el número de unos. Los númerosbinarios en la primera sección to9
Tabla
3-7
Determinación de los primeros implicados del Ejemplo 3_14
(a.l
(b)
000t 0r00
r 4
r000
8V
0ll0 l00l l0l0
\/ ^/
6 \/ 9 f l0 \/
0lll r 0 lI
uv
illl
15v
t,9 4,6
(8) (2)
8,9 8, l0
(2) v
6,7 9,lt
(t) (2) \/
1 0 l, r
(r) \/
7. t5
(8)
ll, l5
(4)
(c)
8 , 9 ,1 0 n , (1,2) 8 , 9 , 1 0l ,I ( 1 , 2 )
(r) v
7f
\ Pri meros-i mpl icados
Decimal 1 , 9( g ) 4,6 (2) 6 , 7( t ) 7, 15(8) r l , 1 5( 4 ) 8 , 9 , 1 0 ,I l ( 1 ,2 )
Binario uxYz _U 0l 0l -0 0l l-t tl llt l0
Términos
w'xz' w'xy xyz wyz wx'
tienen sólo un uno, en la segrntia sección dos unos, etc. Los nú_ meros de los términos mínimos se comparan por el método decimal y se -hacenparejas,si el número de Laseccióninferlo. es mayor que aquel de la secciónsuperior.si el número de la seccióninf.erior es.más pequeñoque el la superior no se tiene la pa_ _de reja aunque los dos números difieren por una potencia "n ".r..,fu de 2. La búsqueda minuciosa en la columna (a) aur¿ como resultado ros términos de la columna (b), con todos los término. Ái.ri_o, la columna (a) marcados.Hay soramentedos parejas á"-lZ.-i'o,"., en-la columna (b) las cuales darán el mismo término de dos lite_ rales en la columna (c). Los primeros implicados consisten en todos los términos no marcadosen la tabla. La conversiónde notación binaria a decimal se muestra en la parte i"re.ior á" la tabla. Los primerosimplicadosencontradosson r,y,z, u),x2,, tL,x.y,xyz, wyz y wx'. tto
t: 00
rtx
)' 0l
ll
!_l
00
t; t-
't
0
.I
,J' I'
l0
Ll_l I
I
u''o'o r-'n' Figura t", " !?!i+", 1i.':i.j;:_,1;1,p: La suma de todos los primeros implicados, dará una expresión algebraica válida para la función. Sin embargo esta expresión no es necesariamente la que contiene el mínimo número de términos. Esto puede demostrarse inspeccionando el mapa de Ia función del Ejemplo 3-14. Como se muestra en lf Figura 3-28 Ia función minimizada reconocida es: F:
x'y'z * w'xz' * ryz * wx'
la cual consiste en la suma de cuatro de los seis primeros implicados derivados del Ejemplo 3-14. El procedimiento de tabulado para la selección de los primeros implicados que dan la función minimizada es el tema de la siguiente sección. 3-11
S E L E C C I O ND E L O S P R I M E R O S I M P L I C A D O S
La selección de los primeros implicados que forman Ia función minimizada se hace a partir de una tabla de primeros implicados. En esta tabla, cada primer implicado se representa en una fila y cada término mínimo en una columna. Se colocan cruces en cada fila para mostrar Ia composición de los términos mínimos que constituyen los primeros implicados. Un mínimo grupo de primeros implicados se escoge de manera que abarque todos los iér.tri.tos mínimos de la función. Este procedimiento se ilustra en el Ejemplo 3-15. 3-15: Minimizar la función del Ejemplo 3-14' BJEMPLO primeros implicados para este ejemplo se mueslos de El tabulado tra en la Tabla 3-8. Hay seis filas, una para cada primer implicado (derivado en el Ejemplo 3-14) y nueve columnas que representan cada una un término mínimo de Ia función. Se colocan cruces en cada fila para indicar los términos mínimos contenidos en el primer implicado de esa fila. Por ejemplo, las dos cruces en la primera fila indlcan que los términos mínimos 1 y 9 están contenidos en el p r i m e r i m p l i c a d o x ' y ' 2 . E s a c o n s e j a b l ei n c l u i r e l e q u i v a l e n t e d e c i ttl
Tabla 3-8
Tabla de primeros-implicados del Ejemplo 3-1b
l0
f x'v'z n/w'xz' tp'xy xyz wyz
v wx'
l,9 4,6 6,7 7 t5 I l, l5 8,9,10,11
X X
ll
X X X
X X
X X
mal del primer implicado en cada fila y convenientedar los términos mínimos contenidos en é1. una vlz se hayan marcado todas las cruces se procederáa seleccionarun númeró mínimo de primeros implicados. . La tabla completa de primeros implicados se inspeccionapara obtener columnas que contengan solamente una cruz. En este ejemplo hay cuatro términos mínimos cuyas columnas tienen una sola cruz: 1, 4, 8 y 10. El término mínimo 1 está cubie¡to por el primer implicado x'y.'z;.es .decir,.la seleccióndel primer imp-licado garantizaque el término mínimo l está incluido en la iunción. !_'J'z De manera similar el término mínimo 4 está cubierto por el primer implicado tD'xz'y los términos mínimosg y 10por el prirner implicado wx'' Los primeros implicados que cubren ros términos mínimos con una sola cruz en su columna se llaman primeros implicados esenciqLes-. Para permitir que la expresiónfinal simplificáda contenga todos los términos mínimos no queda otra aliernativa que incluir los primeros implicados esenciáles.Se coloca ,rr,, -u."" en la tabla a continuación de los primeros implicados esenciales para indicar que han sido seleccio.,ádo". . En seguida se observa cada columna cuyo término mínimo está cubie¡to por los primeros implicados eslnciales sereccionados. Po¡ ejemplo, el primer implicaho seleccionado,,y,)-.rr¡r" to, té¡minos mínimos 1 y 9, entonces se coloca ,.rrru,rr"."á en-ia parte inferior de las columnas. De manera similar, el primer, impticado w' xz' c\bre los términos minimos 4 y 6 y,¿¡' cubre g, g, i0 y'11 res_ pectivamente. La inspección de la taúla de pri*eio" i*pti""ao. cubre todos los términos de la función con excepciónde y 7 rs. Estos dos términos mínimos deben ser incruido.'po. la seiección de.uno 9 -í" primeros implicados. En este ejemplo es claro que el primer implicado ryz cubre ambos términos i"i"'i*".1-"r po, t"rrto el seleccionado-Así se ha encontrado er .o"¡"tJ -iíi-o a" primeros implicados cuya suma da la función mlnimizada requerloa:
F:
tt2
x'y'z + w'xz' + wx' + xyz
E
ñ
s E c .3 - 1 2
O B S E R V A C I O N ECSO N C L U Y E N T E SI I 3
F
ff
F
Las expresionessimplificadas deducidas en los ejemplos anteriores estaban expresadasen la forma de suma de productos. El método del tabulado puede adaptarsepara dar una expresión simplificada en producto de sumas. De la misma manera que en el método del mapa se tiene que comenzarcon el complementode la función tomando los ceroscornola lista inicial de términos mínimos. Esta lista contiene aquellos términos mínimos no incluidos en la función original, los cuales son numéricamente iguales a los términos máximos de la función. El procesode tabulación se lleva a cabo con los ce¡os de la función para terminar con una expresión simplificada en suma de productos del complementode la función. Obteniendo de nuevo el complemento se consigue la expresión simplificada en producto de sumas. Una función con condiciones de no importa puede ser simplificada por el método del tabulado despuésde una pequeñamodificación. Los términos de no importa se incluyen en la lista de los términos mínimos cuando los primeros implicados se determinan. Esto permite la deducción de primeros implicados con el mínimo número de literales. Los términos de no importa no se incluyen en la lista de los términos mínimos cuando se prepara la tabla de los primeros implicados ya que los términos de no importa no tienen que estar cubiertos por los primeros implicados seleccionados. 3-12
O B S E R V A C I O N E SC O N C L U Y E N T E S
Se introdujeron dos métodos de simplificación de funciones de Boole en este capítulo. El criterio para la simplificación fue el de minimizar el número de literales en expresiones de suma de productos o productos de sumas. Tanto el método del mapa como el de.tabuladoson tan restringidos en sus alcancesya que son útiles para simplificar solamentefuncionesde Boole expresadasen las formas normalizadas. A pesar de que ello es una desventajade los métodos,no es muy crítica, ya que la mayoría de aplicaciones buscan, más la forma normalizada, que cualquier otra forma. Se ha visto de la Figura 3-15 que la ejecucióncon compuertas,de expresiones en la forma normalizada,consistea lo sumo en dos niveles de compuertas. Las expresionesque no están en la forma normalizada se ejecutan con más de dos niveles. Humphrey (5) muestra una extensión del método del mapa que produce expresionessimplificadas de multiniveles. Se debe reconocer que la secuencia del código reflejado escogidopara Ios mapas no es única. Es posible dibujar un mapa y asignar una secuencia binaria de código reflejadoa las filas y columnas diferentea la secuencia que se ha venido empleando. Siempre y cuando la secuenciabinaria escogidaproduzca el cambio de un solo bit entre cuadradosadyacentes, se producirá un mapa útil y válido. Dos versiones alternas de mapas de tres variables que a menudo se encuentranen la literatura de lógica digital se muestran en la Figura 3-29. Los números de los términos mínimos se escriben en cada cuadrado para referencias. En (a), la asignación de las variables a las filas y columnas es diferente de la que se usa en este libro. En (b) se ha rotado el mapa a
ii,,
f,
r 6
F ii
:' ':i ri ¡i
ir
x 0l Y
i I
zf 1 L
00
0l
ll
0
2
6
I
J
7
00
l0
0
+
0l
5
I
5
lil -v-'l l
'7
J
q_J
I'o 2
v
(b)
(a) Figura
6
Variaciones del mapa de t¡es variables
3-29
la posición vertical. La asignación del número del término mínimo en todos Ios mapas permanece en el orden xyz.Por ejemplo, el cuadrado del término mínimo 6 se encuentra asignando a las variables ordenadas el número binario xyz:110. EI cuadrado para este término mínimo se encuentra en (a) de la columna marcada W : ll y la fila z: 0. EI correspondiente cuadrado en (b) pertenece a la columna marcada con r : 1 y a la fila con yz:10. El proceso de simplificación con estos mapas es exactamente el mismo que el descrito en este capítulo excepto por supuesto por las variaciones de términos mínimos y la asignación de variables. Otras dos versiones del mapa de cuatro variables se muestra en Ia Figura 3-30. El mapa en (a) es muy popular y se usa muy a menudo en la literatura sobre tales temas. De nuevo Ia diferencia es muy pequeña y se manifiesta por el solo intercambio de la asignación de la variable de filas a columnas y viceversa. El mapa en (b) es el diagrama original de Veitch (1), el cual Karnaugh (2) modificó al mostrado en la Figura (a). Los procesos de simplificación no cambian cuando se usan estos mapas en vez de los usados en este libro. Hay también variaciones de los mapas de cinco o seis variables. De todas maneras, cualquier mapa que parezca diferente al usado en este libro o que se llame de manera diferente, debe reconocerAB CD 0 0 0 0t
A
0l
__j_ ll
l0
t2
8
q
5
IJ
9
n
3
7
l5
il
l0
2
o
l4
l0
.{ !----y--..-Y-
t4
t2
i
6
,{ l3
7
9
ll
8
t0
J
\-J
BC (a) Figura
tt4
3-30
5
(b) Variaciones del mapa de cuat¡o variables
0
l
S E C .3 - 1 2
CS O N C L U Y E N T EISI 5 OBSERVACIONE
se simplemente como una variación de la asignación de términos mínimos a los cuadrados del mapa. Como es evidente de los Ejemplos 3-13 y 3-14, el método del tabulado tiene el inconveniente que ocurren errores inevitables al tratar de comparar los números por medio de listas largas. EI método del mapa podría ser preferible, pero para más de cinco variables no se puede estar seguro que se ha encontrado la mejor expresión simplificada. La ventaja real del método del tabulado está en el hecho de que consiste en procedimientos paso a paso que garantizan Ia respuesta. Es más, este procedimiento formal es adecuado para mecanización por computador. Se ha establecido en la Sección 3-9 que el método de tabulado siempre comienza con la lista de términos mínimos de la función. Si la función no está en esta forma, debe convertirse a ella. En la mayoría de Ias aplicaciones, la función que va a ser simplificada proviene de una tabla de verdad, de la cual se puede obtener Ia lista de términos mínimos. De otra manera, la conversión de términos mínimos agrega un trabajo considerable de manipulación al problema. Sin embargo, existe una extensión del método del tabulado para encontrar los primeros implicados de expresiones algebraicas de suma de productos. Ver por ejemplo McCluskey (7). En este capítulo se ha considerado la simplificación de funciones con muchas variables de entrada y una sola variable de salida. Sin embargo algunos circuitos digitales tienen más de una salida. Tales circuitos se describen mediante un conjunto de funciones de Boole, una para cada variable de salida. Un circuito con múltiples salidas puede algunas veces tener términos comunes entre las diferentes funciones que pueden ser utilizadas para formar compuertas comunes durante la ejecución. Esto dará como resultado una ulterior simplificación que no se ha considerado cuando cada función se simplifica separadamente. Existe una extensión del'rnétodo del tabulado para los circuitos de salidas múltiples (6, 7). Sin embargo, este método es muy especializado y bastante tedioso para manipuleo humano. Tiene importancia práctica solamente si se le ofrece al usuario un programa de computador basado en este método. R E F ER E N C I A S 1 . Veitch, E. W., "A Chart Method for Simplifuing Truth Functions". Proc. of the ACM (mayo 1952),127-33. Karnaugh, M., "A Map Method for Synthesisof CombinationalLogic Circuits". Trans. AIEE, Comm. and Electronics,Vol. 72, Parte I (noviembre1953),593-99. Quine, W. V., "The Problemof Simplifying Truth Functions".Am. Math. Month' ly, Vol. 59, No. 8 (octubre1952),521-31. ^ McCluskey, E. J., Jr., "Minimization of BooleanFunctions". BeII System Tech. J., Vol. 35, No. 6 (noviembre1956),1417-44. Humphrey, W. S., Jr., Switching Circuits with Computer Applícations. Nueva York: McGraw-Hill Book Co., 1958,Capítulo 4. 6 . Hill, F. J., y G. R. Peterson,Introduction to Stl)itchingTheory and Logícal Design,2a. ed. Nueva York: John Wiley & Sons,Inc., 1974,Capítulos6 y 7.
F
!16
s r M p L t F t c A c t oDNE F U N c t o N EDs E B o o L E
cAP.3
_!Icplr¡skey,E. J., Jr., Introduction to the Theory of switching circuits. Nueva York: McGraw-Hill Book Co., 1g65,Capítulo 4. {ohav-i, 2., suitching and Finite Automata Theory. Nueva york: McGraw-Hill Book Co., 1970. N a g l e ,H . T . J r . , B . D . c a r r o l , y J . D . I r w i n , A n I n t r o d u c t i o n t o c o m p u t e rL o g i c . EnglewoodCliffs, N.J.: Prentice-Hail,Inc., 1925.
PROBLEMAS obtenga las expresionessimplificadas en suma de productos de las s-iguientes funcionesde Boole; (a) F(x, y, z) : >(2, 3, 6,7) @ ) F ( A , B , C , D ) : > ( 7 , 1 3 ,1 4 ,1 5 ) ( c ) F ( A , B , C , D ) : > ( 4 ,6 , 7 , 1 5 ) ( d ) F ( w ,x , y , z ) : 2 ( 2 , 3 , 1 2 ,1 3 ,1 4 ,1 5 ) 3-2.
obtenga las expresionessimplificadas en suma de productosde tes funcionesde Boole: (a) xy + x'y'z' * x'yz' (b) A'B + BC' + B'C' (c) a'b' I bc * a'bc' (d) xy'z I ryz' * x'yz * ryz obtenga las expresionessimplificadasen suma de productosde las siguientes funcionesde Boole: (a) D(A', + B) + B'(C + AD) ( b ) A B D + A ' , C ' , D '+, A ' B + A ' C D ' + A B ' D ' (c) k'lm' * k'm'n + klm'n' I lmn' ( d ) A ' B ' , C ' , D '+, A C ' D ' + B ' C D ' + A ' B C D + B C ' D (e) x'z * w'ry' + w(x'y + xy')
3 - 4 . Obtenga las expresionessimplificadas en suma de productosde las siguientes funciones de Boole: (a) F(A, B, C, D, ¿/ : >(0, 1,4, 5, 16,t7,21,25,29) (b) BDE + B'C'D + CDE + A'B'CE + A'B'C + B'C'D'E' ( c )A ' B ' C E ' + A ' B ' C ' D ' + B ' D , E , + B , C D , + C D E , + B D E , J-O.
Dada la tabla de verdad:
000 001 010 0ll 100 l0l ll0 ltl
0 I I 0 I
0 0 I
U
0 0 I 0
Il"
' R O B L E M A S| | 7 (a) ExpreseFt I Fz en producto de términos máximos. (b) Obtenga las funcionessimplificadasen suma de productos. (c) Obtenga las funcionessimplificadasen producto de sumas. 3-6.
Obtenga las expresionessimplificadas en producto de sumas: (a) F(x,y, z) : II(0, I, a, 5) @) F(A, B, C, D) : n(0, l, 2, 3, 4, 10, I l) (c) F(w, x, y, z) : II(1, 3, 5, 7, 13,15)
3-7.
Obtenga las expresionessimplificadas en (1) suma de productosy (2) producto de sumas. (a) x'z' * y'z' I yz' + ryz (b) (A + B', + D)(A' + B + DXC + DXC', + D',) ( c ) ( A ' + B ' + D ' ) ( A+ B ' + C ' ) ( A ' + B + D ' ) ( B + C ' + D ' ) ( d ) ( A ' + B ' , + D ) ( A ' + D ' , ) ( A+ B + D ' , ) ( A+ B ' , + C + D ) (e) w'yz' * ow'z' * ow'x * rs'wz* a'ut'y'z'
3-8.
Dibuje la ejecución con compuertas de las funciones de Boole simplificadas, obtenidas en el Problema 3-7 usando las compuertasAND y OR.
3-9.
Simplifique cada una de las siguientes funciones y ejecútelas con compuertas NAND. Dar dos alternativas. (a) 4 : AC' + ACE + ACE, + A,CD, + A,D,E, ( b ) F 2 : @ ' , + D ' , ) ( A ' , +C ' , + D ) ( A + B ' , + C ' , + D ) ( A ' , + B + C ' + D ' )
3-10. Repita el Problema 3-9 para ejecucionescon NOR. 3-11. Ejecute Ias funciones siguientes con compuertas NAND. Asuma que se cuenta con entradas normales y complementadas. (a) BD + BCD + AB' C'D' + A' B'CD' con no más de seiscompuertas,cadauna con tres entradas. (b) (AB + A' B' )(CD' + C'D) con doscompuertasde dosentradas. 3-12. Ejecute las siguientes funciones con compuertas NOR. Asuma que se cuenta con las entradasnormal y complementada. (a)AB'+ C'D'+ A'CD'+ DC'(AB+ A'B')+ DB(AC'+ A'C) b ) A B ' , C D ' , + A ' , B C D ' , +A B ' , C ' , D+ A ' , B C ' , D 3-13. Haga una lista de las formas degeneradasde dos niveles y demuestreque se reducen a una sola operación. Explique cómo las formas degeneradasde dos niveles pueden ser usadas para aumentar el fan-out de las compuertas. 3-14. Ejecute las funciones del Problema 3-9 con las siguientes formas de dos niv e l e s :N O R - O R , N A N D - A N D , O R - N A N D y A N D - N O R . 3-15. Simplifique las funcionesde Boole F en suma de productosusando las condiciones de no importa d; (a) F: y' + x'z' ¿l: yz * rl o ) F : B ' , C ' , D ' , +B C D ' + A B C D ' d: B'CD' + A'BC'D
CAP.3
, i ( t , S i m p l i l i q u ei ¿ rl u u c , ¡ i r rd e B o o l eI i u s a n d ol a . ; c o n d i c i o n e (sl ¿ n o i m p o r t ad e n i l r s u r l a d e 'p r o d u c t o sy ( 2 ) p r o d u c t od e s u m a s : ( a ) F : A ' B ' , ' . - . 4 ' C D+ A ' B C d: A'BC'L,+ACD I AB'D' O) .F : w'(x'y * x'!' + 4t¿) + x'z'(y + w) d: w'x(y'z + yz') + nyz lc) F: ACE + A'CD'E'+ A'C'DE d: DE' + A'D'E + AD'E' (d)F: B'DE'+ A'BE + B'C'E'+ A'BC'D' d: BDE' + CD'E' : l - 1 ; . l l j e c u t . el a s s i g u i e n t e sl u n c i o n e su s a n d ol a s < , , l d i c i o n e sd e n o i m p o r t a . A s u m a q u e s e c u e n t ac o n I r r se n t r a d a sn o r m a l e s ' , s u s t t t m p i e m e n t o s . ( a ) F : A ' B ' C ' + A B ' D + A ' B ' C D ' c o n d o s c o m p u e r t aN s OR a lo sumo. d: ABC+ AB'D' (b) f = U + D)(A'+ B)(,1'+ C') c o n t r e s c o m p u e r t a sN A N D a l o s u m o . c o n c o m p u e r t aN s AND.
(c) f': B'D + B'C + ABCD d:A'BD+AB'C'D'
3-18. Ejecute las siguientes funciones en compuertasNAND y NOR. Use solarnente cuatro compuertas.Solamentese cuenta con las entradas normales. v/xz + tt".vz* .r'yz' * wxy'z : d w-t-z
F:
r j 1 9 . L a s i g u i e n t ee x p r e s i ó nd e B o o l e : BL + B'DE' e s l a v e r s i ó ns i m p l i f i c a d ad e l a f i r n c i ó n : A ' B E + B C D E+ B C ' D ' E + A ' B ' D E ' + B ' C ' D E ' uHay condicionesde no importa? Si es así, ¿cuálesson ellas? il 2(). Dé tres manerasposiblesde expresarlas funciones: F : A'B'D' + AB'CD' + A'BD + ABC'D con ocho o menos literales. jl 21. (lon el uso de mapas, encuentre la f
I I9 PROBLEMAS 3-23. Simplifique la función de Boole del Problema3-3(a)usandoel mapa definido en la Figura 3-30(a).Repita con el mapa de la Figura 3-30(b). 3-24. Simplifique las siguientesfuncionesde Boole por medio del método del tabulado. (;a)F(4, B, C, D, E, F, G): >(20,28,52,60) (b) F(A, B, C, D, E, F, G) : >(20, 28,38,39, 52, 60, r02, 103,127) : > ( 6 , 9 ,1 3 ,1 8 ,1 9 , 2 5 , 2 1 , 2 9 , 4 1 , 4 5 , 5 7 , 6 1 ) ( c ) F ( A ,B , C , D , E , F ) 3-25. Repita el Problema3-6 mediante el uso del métododel tabulado. 3-26. Repita el Problema 3-16(c)y (d) usando el método del tabulado.
i,
i. 3!
Lógica combinacionaI
4-1
INTRODUCCION
Los circuitos lógicos para los sistemas digitales pueden ser combinacionales o secuenciales.Un circuito combinacional consiste en compuertas lógicas cuyas salidas se determinan directamente en cualquier momento de la combinación presentede entradas sin tener en cuenta las entradas anteriores. Un circuito combinacional realiza una operación de procesamiento de información específicacompletamentelógica por medio de un conjunto de funciones de Boole. Los circuitos secuencialesusan elementos de memoria (celdas binarias), Además de compuertas lógicas. Sus salidas son una función de las entradas y del estado de los elementosde la memoria. El estado de Ios elementosde Ia memoria, a su vez es una función de las entradas previas. Como consecuencia,Ias salidas de un circuito secuencial dependen no solamente de las entradas presentes, sino también de las entradas pasadas,y el comportamientodel circuito debe especificarsepor una secuenciade tiempos de las entradas y estados internos. Los circuitos secuencialesse discuten en el Capítulo 6. En el Capítulo 1 se aprendió a reconocerlos númerosy códigosbinarios que representan las cantidades discretas de información. Estas variablei binarias se representan por medio de voltajes eléctricos o por cualquier otra señal. Las señalespueden ser manipuladas por compuertas Iógicásdigitales con el f,rn de ejecutar las funcionesdeseadas.En el Capítulo 2 se lntrodujo el álgebra de Boole como vehículo para expresaralgebraicamente funciones lógicas. En el Capítulo 3 se aprendió a simplificar las funciones de Boole para lograr ejecuciones con compuertas de tipo económico.El propósito de este capítulo es el de usar los conocimientos adquiridos en los Capítulos anteriores y el de formular varios diseños sisfemáticos y procedimientos de análisis de los circuitos combinacionales. La solución de algunos ejemplos típicos dará una recopilaciónútil de funciones elementales importantes para Ia comprensión de computadores digitales y sistemas. Un circuito combinacional consisteen variables de entrada, compuertas lógicas y variables de salida. Las compuertaslógicas aceptan señales 120
n variables de entrada
Figura
I
4-1
Diagrama de bloque de urr-circuito
m variables de salida
combinacion'al
en las entradas y genelan señales en las salidas. Este procesotrasforma información binaria de datos de entrada dados a datos de salida requeridos. Obviamente, los datos de salida y de entrada se representanpor medio de señalesbinarias, es decir, existen dos valores posibles,unorrepresentado lógica 7 y el otro representado lógica 0. En Ia Figura 4-1 se muestra un diagrama de bloque de un circuito combinacional.lLas n va¡iables binarias de entrada vienen de una fuente externa, las rn va¡iables de salida van a un destino externo. En muchas aplicacionesla fuente y el destino son registros acumuladores(Sección 1-7) localizadosen la vecindad de un circuito combinacionalo en algún componenteremoto externo. Por definición, un registro externo no debe influenciar el comportamiento de un circuito combinacionalya que si lo hace el sistema total se convierte en un circuito secuencial. Para n variables de entrada, hay 2" combinacionesposibles de valores de entrada binaria. Para cada combinaciónde entrada posible hay una y sólo una combinaciónde salida posible.Un circuito combinacionalpuede describirsepol m funciones de Boole, una para cada variable de salida' Cada función de salida se expresaen términos de n variablesde entrada. Cada variable de entrada a un circuito combinacional puede tener Una o dos conexiones.Cuando se cuenta solamente con una conexión, se puede representarla variable en Ia forma normal (no tildada) o en Ia forma de cbmplemento (tildada). como una variable en una expresión de Boole puede aparecer tildada- y no tildada es necesariosuministrar un inversoi para óada literal que no se obtenga en el terminal de entrada. Por otra parte, una variable de entrada puede apareceren dos terminales suministrando las formas normales y de complemento a la entrada del circuito. Si este eS el caso, no es necesarioincluir los inversoresa las entradas. EI tipo de celdas binarias usadas en la mayoría de los sistemas digitales son circuitos flip-flops (Capítulo 6) que tiengn salidas nalg Los de la variable binaria acumulada. va"loresnormales y "omple*entados En el trabajo subiiguiente, se asume que cada variable de entrada aparece en dos terminales, suministrando simultáneamente los valores normales y de complemento.Se debe tener en cuenta que un circuito inversor puede producir el complemento de la variable si se cuenta con un solo terminal. 4-2
DE DISEÑO PROCEDIMIENTO
El diseño de circuitos combinacionalescomienza desde el enunciado del problema y termina con el diagrama de circuito lógico, o con un conjunto áe funciones de Boole de los cuales se puede obtener el diagrama lógico fácilmente. El procedimientocubre los siguientespasos: t2l
I22
LOGICACOMEINACIONAL
CAP 4
1. Se enuncia el problema. 2. se determina el número requerido de variabres de entrada v el número requerido de variables de salida. 3. Se le asignan letras a las variables de entrada y salida. 4. se deduce la tabla de verdad que define las relaciones entre las entradas y las salidas. 5. Se obtiene la función de Boole simplificada para cada salida. 6. Se dibuja el diagrama lógico. una tabla de verdad para circuitos combinacionales consiste en columnas de entrada y columnas de salida. Los unos y ceros en las columnas de entrada se obtienen de las 2n combinaciones binarias disponibles para n variables de entrada. Los valores binarios para las salidas se determinan después de un examen del problema enunciado. una salida puede ser igual a 0 ó 1 para cada combinación válida de entrada. sin embargo, las especificaciones podrían indicar que algunas combinaciones de entiada no ocurrirán. Estas combinaciones se convertirán en condiciones de no importa. Las funciones de salida especificadas en la tabla de verdad darán la definición exacta del circuito combinacional. Es importante que las especificaciones enunciadas se interpreten correctamente en la tabla de verdad. Algunas veces el diseñador debe usar su intuición y experiencia para l l e g a r a l a i n t e r p r e t a c i ó n c o r r e c t a . L a s e s p e c i f i c a c i o n e se ñ u n c i a d a s - s o n faÍa vez completas y exactas. Cualquier interpretación errónea que produzca una tabla de verdad incorrecta dará como resultado un ii."Litu combinacional que no cubra las necesidadesestablecidas. Las funciones de Boole de salida de una tabla de verdad se s.mplifican por cualquier método disponible, tal como manipulación algebraica, el método del mapa o el procedimiento del tabulado. Normalmente habrá una variedad de expresiones simplificadas entre los cuales se puede esLoger. Sin embargo, en una aplicación particular, ciertas restricciones, l i m i t a c i o n e s y c r i t e r i o s v i e n e n c o m o g u i a e n e l p r o c e s o d e s e l e c c i ó nd e una expresión algebraica particular. Un método práctico de diseño tendrá que considerar tales condiciones obligatorias como (1) número mínimo de compuertas, (2) número mínimo de entradas a una compuerta, (3) tiempo de propagación mínima de una señal a través del circuito, (4) número minimo de interconexiones y (5) limitaciones de la capacidad de accionamiento de cada compuerta. Como todos estos criterios no pueden satisfacerse simultáneamente y como la importancia de las condiciones obligatorias se dictan para la aplicación particular, es difícil hacer una afirmación general en lo que respecta a una simplificación aceptable. En la mayoría de los casos la simplificación comienza wr lograr un objetir.r, elemental, tal como producir una función de Boole simplificada en la fbrma normalizada y de allí proceder a lograr los otros criterios de comportamiento. En Ia práctica, los diseñadores tienden a ir de las funciones de Boole d una lista de terminales que muestran las interconexiones entre varias
'l
$
** ! i
F
S U M A D O R E IS2 3
S E C ,4 ' 3
compuertas lógicas n,rrmalizadas. En este caso el diseño no debe ir más a l l á d e l a s f u n c i o n e s d e B < r o l es i m p l i f i c a d a s d e s a l i d a . S i n e m b a r g o , e l d i a g r a m a I ó g i c o e s ú t i l p a r a r - i s u a l i z a r l a e j e c u c i ó n d e l a s e x p r e s i o n e sc t . , t r compuertas.
4-:i
SUMADORES
I , o c o r n p u " l t a s i : i i g i t ¿ r l eh' sa c e n u n a v a r i e d a d d e t ¿ t , e a st i e ¡ t t , r t r t l s a m t e n t < l c k . i n f i r r m a c r r l n . ! l r r t r e l a . , l r r n c i o n e s b á s i c a s e n c ( ) n t r a d a se s t á I l I a s d i f i ¡ r('rltes operricionesaritméticas. La operaciórl aritmética más básica es s i ¡ d u d a l a s u m a d e d o s d i g i t o s b i n a r i r - , s .E s t a s i m p l e a d i c i ó n c o n s i ; t e e l l c u a t r o o p e r a c i o n e se l e m e n t a l e sp t l s i b l e sa s i : 0 f U - ( ' , 0 + I ' = 1 . 1 + 0 : 1 r 1 + 1 : 1 0 . L a s p r i m e r a s t r e s o p e r a c i o n e sp r o d u c e n u n a s u ¡ l l ¿ ct u y a l o n g i t u t l e s e n u n 'dt ríigniat or i,ap e r o , e n e l c a s o e n q u e a m b o s s u m a n d o b s e a n i g u a l e s a I c o t t s t s t e e n d o s c i i g i t o s . F l l i r i t l f l ü : : ' i r : ri f i t ' a t i ' i t ' i l n ' ' i¿i suma ''rSde ros ,.:srrltado Se llama bit de qrrrslre (Acarre0). Cuando l')s il¡ltrtu't - - ¡ ¿ ¡ ¡ 1 d c si ' , r l l t i e n e t t m á s
eli;lii,,. slgllrli.,rtir,r;l-.ei i r
ltrraslte
qL
o b t i e n e c l e l a s u m a d e d o s b i t s s e a g r e g a a i s i g u i e r r ti ' i i ¿ : r d e b i t s s t , . l l , r t ' i c a t i y r ; sd e m a y o r o r d e n . U n c i r c u i t o c o m b i n a c i o r t ¿ l q u e r e a l i z a l a s t i , , l , , de dos bits se llama sumodor medio. Aquel que realrza ia suma dt tr':s ¡rlts r tpl,'lu. lll ( d o s b i t s s i g n i f i c a t i v o s m á s e l b i t d e a r r a s t r e ) e s u n . s ü 1 7 ¿ { ¡ c iirot n q r r e s t l l l r i r , i r : i ' i : 'rS, rd o s s e u s ¿ t l l n6mbre del primero se deriva del hecho de r l i o s p a r a h a c e r u n s u m a d o r c o m p l e t o . L o s c l o s c i r c u i t o s s u n i a c l o r e sr l r ) 5 : ) r l l o s p r i m e r o s c i r c u i t o s c o m b i n a c i o n a l e sq u e s e v a n a d i s t . ' ñ a r . Sumador medio i ) t , I a r : x p l i c a c i ó nv e r b a l d e l s u m a d o r m e d i o s e e n c u e l r l r aq u e e s t e t ' i r t r t i i , , ¡ecesita dos entradas binarias y drrs salidas binarias. Las varialtles cle e n t r ¿ r d ad e s i g n a n l o s b i t s d e l o s s u m a n d o s , l a s v a r i a l l l e s d e s a l i d a l t r o c i u cen la suma v el bit dc arrastre. Es necesario especificar dc¡sr'¿triabk's d e s a l i d a p o r q u e e l r e s u l t a d o p u e d e c o n s i s t i r d e d o s d í g i t , r s l ¡ i n ¿ r r i o s .S e ' a s i g n a n a r b i t r a r i a m e n t e l o s s í m b o L r s . I ] ' . 1 a l a s c l l " t ' n i r a d ¿ l s ,\ ' ( p a r a i ¿ r s u m a ) ¡ ' C ( p a r a e l b i t d e a r r a s t r e i p a r ¿ il a s s ¿ r l i d a s ' U n a v e z q u e s e h a y a e s t a b l e c i d oe l n r i m e r r, 1 ' 1 , , 1 ,¡ r o n r l t r e sd e l ¿ t st , , r r i a b l e s d e e n t r a d a y s a l i d a s e e s t á l i s t o p a r a f r r r i ¡ i u i ¿ t il a t a b l ¡ d e r . e r r l . r t i p a r a i d e n t i f i c a r e x a c t a m e n t e l a f ' u n c i ó n d e l s u m a t l ¡ r r n r e d i o . E s t a l ¿ r i , i' de verdad se muestra a c'ontinuación:
(t 0 I I
0 0 0 1
tll bit de arraslr* e:. r) ¿r n(; ser qrte ambas enl r e p r e s e n t ae l b i t n r e n , l s" i g n i f i c a t i v o d e l a s u m a .
u l. l,,i ;,t.id.,
.l
-fl-
)' --L-/ x'
l__ñ -t'
IH
)"
'--ñ tT j'1_/
-
(-l] 1J
-L
(b) J - (r -,-.v)(r' { -y') C: .r)
(a) .l : .r)' : .r') C=xl r
.I
.t
c;" (d) S.(¡f
(c) S-(C*¡'y')'
r)'(.r'*r') ¿-:1-r',',v',)',
C:xy Y
v
n'N =i,*' Figura
4-2
Varias configuracionesdel sumador medio
Las funciones de Boole simplificadas para las dos salidas pueden obtenerse directamente de una tabla de verdad. Las expresionessimplificadas en suma de productosson: S: C:
x,y i ry, xY
El diagrama lógico para esta configuraciónse muestra en Ia Figura 4-2(a) de Ia misma manera que otras cuatro formas para hacer un sumador medio. Todas ellas logran el mismo resultado en cuanto al comportamiento de entrada-salida.Ellas muestran la flexibilidad disponible para el diseñador cuando se configura una función lógica combinacional simple, tal comoésta. La Figura 4-2(a), como se ha enunciadoantes, es Ia configuracióndel sumador medio en suma de productos. La Figura 4-2(b) muestra la configuración en producto de sumas: ,S:(x+y)(x,+y,)
c:ry 124
125 SUMADORES
sEc. 4-3
para obtener la configuraciónde la Figura 4-2(c),se nota que s es la oRde s es el equivalentede ¡ y:' (secexclusivade r y y. El "o-plemento ción 2-6): S':xY+x'Y' pero como c:
xy se obtiene: S:
(C + ,,y')'
En la Figura 4-2(d) se usa la configuracióndel producto de sumas con c derivado como sigue: C:xy:(x,+1,), El sumador medio puedeser configuradocon una OR-exclusivay una comnuerta AND de la manera mostrada en la Figura 4-2(e).Esta forma se usa para ila. i"rá. para demostrar que se necesitan dos sumadoresmedios construir un circuito sumador completo. Sumador comPleto que forma la suma Un sumador completo 'bit. es un circuito combinacional entradas y dos en tres d" entrada. Este consiste aritmética de treÁ y y representan por I salidas. Dos de las variables de entrada denotadas z representa entrada La tercera que aglegan. se los dos bits significativos necesitan Se significativa' previa menos poiición la el bit de arraslre de varía en binarios tres dígitos de aritmética suma porque la dos salidas valor de 0 a-3 y-los binarios 2 ó 3 necesitandos dígitos. Las dos salidas se designanpor lós símbolosS para la suma y C para el bit de arrastre. La variáble binaria S da el valor de la suma del bit menos significativo' La ' variable binaria C da el bit de arrastre de salida. La tabla de verdad del sumador completo es como sigue a continuación:
000 001 010 0ll 100 l0l 110 lll
00 01 0l l0 0l l0 l0 ll
Las ocho filas debajo de las variables de entrada designantodas las combi*.ione. posibles
H H +i PI
n1 t.i
;t'.
I
.{ 0 0
0r
r
0
0
I
f .ll
I .S
.r'r,':
-r'-l:'r .r)':'-
Figura
4-B
,rl,:
C - .rr. I .t.
\:
Mapas Ce un sumador comDleto
es igual a I ó cuando todas las tres entradas sean iguales a uno. La salida c tiene un bit de arrastre de I s,i dos de las tres"entradas son iguales
.. 1 c¡ t.
Los bits de entrada y salida de los circuitos combinacionales tienen dilerentes interpretaciones en los diferentes estados del problema. Físicamente. las señales binarias de los terminales de entraáa se consideran dígitos binarios agregados aritméticamente para formar una suma de dos digitos en los terminales de salida. por otrá parte, Ios mismos valores binarios se consideran variables de las funciones de Boole cuando ."\ u"p."san en Ia tabla de verdad o cuando se ejecutan los circuitos con compuerras lógicas. Es importante tener en cuenta que se dan dos interpretaciones difere'tes a los valores de los bits enconttado. en este circuito. relación lógica de entrada-salida del circuito del sumador c¡mp¡'t. -La puede ser expresada con dos funciones de Boole, una para cada varial,le cle salida. cada función de Boole de salida requiere un rnopu único para str simplificación. cada mapa debe tener ocho cuadrados ya que cada ,,lr,l;i es una función de las tres variables de entrada. Los mapas de la l.'igura { 3 se usan para simplificar las dos funciones de salida. Los unrrs err lor; cuadradosde los mapas para s y c se determinan directamente cle la tabla de 'erdad. L.s cuadrados con unos para la salida s, no combiran en cuadrados adyacentes, para _dar una expresión simplificada en suma de pro. ductos. La sálida c puede simplificárse a una expresión de 6literales. El diagrama lógico para el sumador completo ejecutado en suma de productos se muestra en la Figura 4-4. Esta configuración usa las siguientes expresionesde Rnle. S:
x'y'z * x'yz'* xy'z'* x¡':
C:xy+xz+yz Se pueden desarrollar otras configuraci.nr,s para el sumador comple_ to. La ejecución del producto de suma.s reqrriere .l -i..rr-,,, ¡rirmero de comp u e r t a s q u e l a c o n f i g u r a c i ó n d e l a F i g u r a 4 - ' 1 .c . n e l g r u p ' d e corniiu,,rtas AND y oR intercambiadas. un sumador completo p"óa" configurarse con dos sumadores medios y una compuerta oR, ctmo se muestra e., lu Figu.u 4-5. La salida s del segundo sumador medío es la aplicación de una oRexclusiva de z y la salida del primer sumador medio dando: t26
E
1,ff
F $ Í' t-
ii
il
it
i1
it
ii t:l
i1 *t FI
b &i Figura 4-4
Figura
4-5
Configuraciónde un sumadorcompletoen suma de productos
Configurqción de un sumador completo con tilrs sumadores medios y una codrpuerta OR
S: z O (r Oy) : z'(x/' + x'y) I z(xy' * x'y)' : z'(xt' + x'y) + z(xy + x'y') : xy'z'+ x'yz'* xyz* x'y'z y el bit de arrastrede salida será: C: 4-4
z ( x y ' + x ' y )* x y : x y ' z * x ' y z i x y
SUSTRACTORES
La sustracción de dos númerosbinarios pueden lograrsetomando el complemento del sustraendopara agregarloal minuendo (sección 1-b). Mediante este método, la operaciónde sustracciónse convierteen operación de suma que necesitasumadorescompletospara su ejecuciónen una máquina. Es posibleejecutarla sustraccióncon circuitos lógicosde una manera directa como se hace con lápiz y papel. Mediante este métod
128
LOGTCA coMBtNACtONAL cAP. 4
al siguiente par de bits mayorgs por medio de Ias señaresbinarias que vienen (salida) de un estadl a"gá-y van al (entrada) siguiente estado mayor' De la misma manera que hay sumadores;;Ji*'y completos.Hay sustractoresmediosy completos. S u s t r a c t o rm e d i o un sustractor medio es un circuito combinacional que resta dos bits y produce su diferenc_ia. Este también ti.n, unu salida que especifica si se ha prestado un 1' se designa bi; det mi'ue'do con r y el bit del sustraendo con v. para reariár.x-y "r r" a"¡u lá"r;],Jil t i v a s d e x y y . S i r l y , t e n d r e m á tsr e s p o s i b i l i d a d e s : lagnitudes rela_ O_ó:0, 1_6:1 y "s-r,é 1-1:0. El resultadose llama er bit d"'dl¡;;;;,se tiene 0_1, y se hace necesa¡ioprestar un 1 der siguiente u 1 prestado del estad<¡siguiente.mavor asresa 2 ar b;^á;i'-:;;;;;Hi" "stráo-rnay"i. misma forma que en el sistema decimal un r,ú,o".o pre-stado agrega10 al dígito der mi_ nuendo' Con el minuendoigual a 2laiiferen"i" *L"riJit" 2-I:I. El sustractor medio necesitá ¿o. .uiiáu.. "r,diferencia una salida genera la y se designamediante el símbolo D. la segundasalidi aesignaaacomo B (B viene de Borrow), generala señal bi.raria que informa al siguiente estado que se ha prestado un uno. r," lu¡ia de verdad para las reraciones de de un sustractor medio se puede dérivar de la siguienre ffj;:Í;ir"'ida
00 0l l0 ll
0 I 0 0
L a s a l i d ap r e s t a d aB : : 0 . s i e m p r e y c u a n d o x . 2 y . S e r ál p a r a ¡ : 0 y y : 1 . La salida D es el resultado¿" iu oóurucrón aritméti ca 28 + x _ y. Las funcionesde B-oolepurá la, ao, ,unaá, o.r lur,ru.tor medio se derivan directamentede la tabia de ueraad, D: B:
x,y | ry,. x'y
Es interesantenotar g"g J" lógica para D es exactamentela misma que la lógica para Ia salida S ¿"1 ."riuaoi-.Ai". sustractor completo Un sustractor completo es un circuito combinacional que realizauna resta entre dos bits, tomando en consideracionque se ha prestado un 1 de un estado menos simificativo. Este ci.cuito tieie tres ;";;;á; y dos salidas. Las tres entradas,x, y e denotan J-ir,u".rdo, el sustraendoy el bit de _y arrastre o bit prestado respectivamente. r,". ¿o. *liJ"., ñ'v B, represen-
E S U S T R A C T O R E S1 2 9
SEC.4-4
H lii
s: s.
tan la diferencia y la salida del bit prestadorespectivamente.La tabla de verdad para este circuito es Ia siguiente:
000 001 010 0ll 100 l0l ll0 lll
00 ll lt l0 0l 00 00 ll
i
i
Las ocho filas debajo de las variables de entrada designantodas las combinacionesposiblesde unos y cerosque puedenadoptar las variablesbinarias. Los unos y ceros para las variables de salida se determinan por la resta de x -y - z. Las combinacionesque tienen entrada prestada z:0 se reducena las mismas cuatro condicionesdel sumador medio. Para ¡:0, y:0 y e: 1 es necesarioprestar un 1 del siguiente estado, lo cual hace B : \ y a g r e g a2r a x . Y a q u e 2 - 0 - 1 : l , D : 1 . P a r a¡ : 0 y y z : l 1 . , e sn e c e s a r i op r e s t a rd e n u e v oh a c i e n d oB : l y x:2.Ya que2-1-1:0. D:0. y z : 0 1 , s e t i e n er - y - z : 0 l o P a r ar : I y c u a l h a c eB : 0 y D : 0 . F i n a l m e n t ep a r a¡ : l y y : I , z : 1 s e t i e n eq u ep r e s t a r1 , h a c i e n d B o :ly x:3 p a r a 3 - 1 - 1 : t h a c i e n d oD : I . Las funciones de Bpole simplificadas para las dos salidas del sustractor completo se derivan de los mapas de la Figura 4-6. Las funcionessimplificadas en suma de productosserán: D : x'y'z + x'yz' I ry'z' * xyz B:x'y*x'z*yz De nuevo se nota que la función lógica para la salida D en un sustractor completoes exactamentela misma que la salida S en el sumadorcompleto. Sin embargo,la salida B se parecea la función C en el sumador completo, excepto que la variable de entrada r se complementa.Debido a estas similitudes, es posible convertir un sumador completo a un sustractor
0
0
;
0
t.
r'{ I
l-
-R I r tl L{---++
f I
I
t
tr
¡{l
+ 7. D:
x'y'zl
x'yzl
Figura
7.
xy'z' *
4-6
xyz
B:x'y+x'zrya
Mapas para un sumadsr completo
-I
l3O
LOGICA COMBINACIONAL
C A p .4
completo simplemente complementando la entrada ¡ antes de su aplicación a las compuertas que forman el bit de arrastre de salida.
4.5
C O N V E R S I OENN T R EC O D I G O S
La disponibilidad de una gran variedad de códigospara los mismos elementos discretosde información da como resultado el uso de códigosdiferentes para diferentessistemas digitales. Es necesarioalgunas vecesusar Ia salida de un sistema como entrada de otro. Un circuito de conversión debe colocarseentre los dos sistemas, si cada uno usa diferentescódigos para la misma información. De esta forma un conversorde código un ". circuito que hace compatibles dos sistemas a pesar de que ambo- tengan diferentecódigobinario. Para convertir el código binario A al código binario B, las líneas de entrada deben dar una combinación de bits de los elementos,tal como se especificapor el código A y las líneas de salida debengenerarla correspondiente combinaciónde bits del código B. Un circuito cómbinacionalreáliza e-statrasformación por medio de compuertaslógicas. El procedimiento'de diseño de los conversoresde código se ilustra mediante Ln ejemplo específico de conversiónde BDC a código de exceso3. Las combinacionesde bits del BDC y el exceso3 se listan en la Tabla 1-2 (sección 1-6). como cada código usa cuatro bits para representarun dígito decimal, debe habe¡ cuatro variables de entrada y cuatro variables de salida. Es cpnvenientedesignarlas cuatro variablesbinarias de entrada mediante los símbolosA, B, c y D y las cuatro variables de salida con u,, -r, y, y z. La tabla de verdad que relacionalas variablesde entrada y salida se muestran en la Tabla 4-1. Las combinacionesde bits para las entradas v sus correspondientessalidas se obtienen directamente de la Tabla 1-2. Se nota que cuatro variables binarias pueden tener 16 combinaciones Tabla
4-1
Tabla de verdad para el ejemplo de conversión de códieo
Entrada BDC
0 0 0 0 0 0 0 0 I I
0 0 0 0
00 0l t0 ll 00 0l l0 ll 00 0l
Salida código exceso3
0 0 0 0 0 I
I I I I
ll 00 0l
r0 0 0 0 0 I
tl 00 0l l0 ll 00
I
I
C O D I G O SI 3 I ENTRE CONVERSIO
S E C .4 . 5
!
r
F
de bits de las cuales se listan 10 en la tabla de verdad. Las seis combinaciones de bits no listadas para las variables entrada son las combinaciones de no importa. Como ellas nunca ocurren, se tiene la libertad de asignar un 1 ó un 0, a las variables de salida, de acuerdo a Ia que dé un circuito más simple. Los mapas de Ia Figura 4-7 se dibujan para obtener una función de Boole simplificada para cada salida. Cada uno de los cuatro mapas de la Figura 4-? representa una de las cuatro salidas de este circuito como función de las cuatro variables de entrada. Los unos marcados dentro de los cuadrados, se obtienen de dos términos mínimos que hacen que la salida sea igual a 1. Los unos se obtienen de la tabla de verdad observando las columnas de salida una por una. Por ejemplo, la columna bajo la salida e tiene 5 unos, por tanto, el mapa para z debe tener cinco unos cada uno de los cuales debe ser un cuadrado que corresponde al término mínimo que hace z igual a 1. Las seis combinaciones de no importa se marcan con X. Una posible forma de simplificar las funciones en suma de productos se lista bajo el mapa de cada variable. Se puede obtener un diagrarrra lógico de dos niveles directamente de las expresiones de Boole derivadas de los mapas. Hay otras posibilidades para el diagrama lógico que ejecuta este circuito. Las expresiones obteniCD AB OO 00
ol
-ll
C
'lo-
CD LB
lt
00
I
01
t)
0
r-l
ta
I
II
I
(
^l'
x
^
X
I' l_l
]' ^j ll
L
CD
B
B I
,l
AI
Ir
lll -T
I ^
I t
'\ I
t Figura
= lxl
D B'C - I]'D 4-7
L
CD 00
ll
0l
rl
[.] I
I
D \'-CD iC'D'
D
D'
I
lx
l-r
I
X
^
X
I lB
rl
0l
J'^u ll
I
f-
'l it
^
^
A
I
I
^
f
I
I'
D BC'D'
v¡'-. A
BC
BD
M a p a s p a r a e l c r ¡ n v c ' t s o rd e c t i d i g o d e B D C e x c e s o 3
I32
L o G I c Ac o M B I N A C I o N A L
CAP. 4
das en la Figura 4-T pueden manipularsealgebraicamente con er propósito de usa¡ compuertascomunes pará do. o más salidas. Esta manipuración mostrada a continuación, ilustra la flexibilidad obtenida con los sistemas de múltiples salidas cuando se ejecutan con tres o más niveles de com_ puertas. z: y:
D', CD + C'D' : CD + (C + D\, X: B'C + B'D + BC'D' : B'(C + D) + BC'D' : B'(C + D) + B(C + D), w:A+BC+BD:A+B(C+D) Pl diagrama lógico que configura la expresión anterior se muestra en ra Figura 4-8. En este se_observa que la compuerta oR cuya salida es c+D se ha_usadopara configu.a. pa.cialmente cada una de ias tres salidas. No teniendo en cuenta los inversores de entraar,-ü-"j""rrción en suma de productos requiere siete compuértas AND y tre. colpuáJas oR. La conñguración de la Figura 4-8 requiere cuatro compuertas AND, cuatro com_ puertas oR y un inversor. si están disponibles solamente'las entradas normales, la primera ejecución requerirá inversoresp".u ü, variables B, c -v.D. Mie¡¡tras que la segunda ejecución requiere inversorespara ras variab l e sB y D .
Figura
4-8
Diagrama lógico para el converso¡ de código BDC
a exceso 3
up, h.i ilr
4-6
*i
DE ANALISIS PROCEDIMIENTO
F:
El diseño de los circuitos combinacionalescomienzacon las especificaciones enunciadas de una función requerida y culmina con un conjunto de funciones de Boole de salida o un diagrama lógico. El anólisis de un circuito combinacionales de cierta manera el procesoinverso. Este comienza diagrama lógico dado y culmina con un conjunto,de funcionesde "" una"tabla dJverdad o una explicación verbal de la operacióndel "o" Bool", circuiio. Si el diagrama lógico que se va a analizar se acompañadel nombre de la función, o una explicación de lo que se asumeque logre, entonc-es rt u.tetiri* del problemase ieduce a la verificaciónde la función enunciada' El primer paso en el análisis es asegurarseque.el circuito dado sea combinacionaly no secuencial.El diagrama de un circuito combinacional tiene compuertás lógicas sin caminos de realimentación o elementos de memoria.Ü.t camitto de realimentaciónes una conexiónde la salida de una compuerta a la entrada de una segunda compuerta que forma parte de _la entrada de la primera compuerta. Los caminos de realimentación o elementos de memoria en un circuito digital definen un circuito secuencial en el V á"U"" ser analizados de acuerdo a los procedimientosesbozados Capítulo 6. una vez que se verifique el diagrama Iógico como circuito combinacional, se puede procedera obtener las funcionesde salida y la tabla de ver¿aa. Si-el circuito se acompañade una explicación verbal de esta función, entonces las funciones de Boole o la tabla de verdad son suficientes para la verificación. Si la función del circuito está bajo investigación,entonces es necesariointerpretar la operación del circuito de la tabla de verdad derivada. El éxito de tal investigación se facilita si se tiene experiencia previa y familiaridad con'una gran variedad de circuitos digitales. La haüiU¿"a- de correlacionaruna tabla de vqrdad con una tarea de procesamiento de información es un arte que se adquierecon Ia experiencia. Para obtener las funciones de Bbole de salida de un diagrama lógico, se procedede la siguientemanera: 1. señálesecon símbolosarbitrarios todas las salidas de las compuertas que son fpnción de las variables de entrada. Obténgaselas funciones de Boole para cada compuerta' 2. Márquesb con otros símbolos arbitrarios aquellas compuertas que son una función de las variables de entrada y las compuertasmarcadas anteriormente. Encuéntrese las funciones de Boole para ellas. 3. Repítaseel procesoesbozadoen el paso 2 hasta que se obtengan las salidas del circuito' 4. obténgase las funcionesde Boole de salida en términos de las variableJ de entrada solamente,por sustitución repetida de las funciones definidas anteriormente. El análisis del circuito combinacionalen la Figura 4-9 ilustra el procedimiento propuesto.Se nota que el circuito tiene tres entradasbinarias, 133
':
ri il rf
it ¡i
ii il
I34
LoGIcAcoMBINACIoNAL
CAP. 4
A, B y c y dos salidas binarias, F, y Fz. Las salidas de las diferentes compuertas se marcan con símbolos intermedios. Las salidas de las compuertas que son funciones de las variables de entrada son solamente F2 , Tt y Tz. Las funciones de Boole para estas tres salidas son: Fz:AB+AC+BC Tt:A+B+C TZ: ABC En seguida se consideran las compuertas de salida que son funciones de los símbolos ya definidos: Tt:
FiT,
F': T' + T' La función de Boole de salida F, está ya expresada como una función de las entradas solamente. Para obtener F, comó función de A, B y c se forman una serie de sustituciones como sigue a continuación: Ft :
Tt*
Tr:
F;Tt + ABC : (AB + AC + BC),(A + B + C) + ABC
: ( A ' + B , ) ( A ,+ C , ) ( 8 ,+ C , ) ( A+ B + C ) + A B C : ( A ' + B ' C ' ) ( A B+' A C ' + B C ,+ B , C )+ A B C : A , B C , + A , B , C+ A B , C , + A B C si se quiere continuar con la investigación y determinar la ta¡ea de infbrmación-trasformación lograda po. esie circúito se puede derivar la tabla de verdad directamente de las funciones de Boole y tratar de recoA B C A B
(-
B
C
B C Figura
4-9
Diagrama lógico para el ejemplo de análisis
DO E ANALISTS 135 PROCEDIMIENT
S E C .4 . 6
nocer una operación familiar. Para este ejemplo nótese que el circuito es un sumador completo, con Fr siendo Ia suma de salida y Fz el bit de arrastre de salida. A, B y C son las tres entradas sumadas algebraicamente. La derivación de la tabla de verdad para el circuito es un proceso directo una vez que se reconozcan las funciones de Boole de salida. Para obtener la tabla de verdad directamente del diagrama lógico sin pasar por las derivaciones de Ias funciones de Boole, se procede de la siguiente manera: 1. Determínese el número de variables de entrada del circuito. Para n entradas, fórmese las 2n posibles combinaciones de entrada de unos y ceros listando los números binarios desde 0 hasta 2" - I' 2. Márquese las salidas de las compuertas seleccionadas con símbolos arbitrarios. l li
3. Obténgase la tabla de verdad para las salidas de aquellas compuertas que son una función de las variables de entrada solamente. 4. Procédase a obtener la tabla de verdad para las salidas de aquellas c',mpuertas que son una función de los valores definidos previarrente hasta que se determinen las cclumnas para todas las salidas. Este proceso puede ilustrarse usando el circuito de la Figura 4-9. En Ia Tabla 4-2 se forman las ocho combinaciones posibles para las tres entradas variables. La tabla de verdad para F, se determina directamente de los valores de A, B y C con F, igual a 1 para cualquier combinacic,n que tiene dos o tres entradas iguales a l. La tabla de verdad para Fj es el complemento de Fr. Las tablas de verdad para T1 y ?2 son las funciones OR y AND de las variables de entrada respectivamente. Los valores para T3 se derivan de ?, y Fj: T, es igual a l cuando T'' y F:t son iguales a uno, y a cero de otra manera. Finalmente, F, es igual a 1, para aquellas combinaciones en las cuales T2 o T3 o ambas sean iguales a 1. Por inspección de las combinaciones de la tabla de verdad para A, B, C, Ft y F, de la Tabla 4-2 se muestra que son idénticas a la tabla de verdad del sumador completo dado en la Sección 4-3 para r, y, z, S y C respectivamente. Tabla
4-2
Tabla de verdad para el diagrama lógico de la Figura 4-9
F2
000 00r 010 0tl r00 l0l rt0 lll
0 0 0 I 0 I I I
T3
Tl
0 I
0 0 0
000 0ll 0ll 000 0ll 000 000 r0l
Fl
r I36
LOGICACOMBINACIONAL
CAP. 4
Considéreseahora un circuito combinacionalque tiene combinaciones de entrada de no importa. Cuando se diseña un circuito como este,se marcan las combinacionesde no importa con una X en el mapa y se les asigna un 1 o un 0, segúnsea lo más convenientepara la simplificación de la función de Boole de salida. Cuando se analiza un circuito con combinaciones de no importa se tiene una situación totalmente diferente. Aunque se asume que las combinacionesde entrada de no importa nunca ocurren, el hecho es que si cualquiera de estas combinacionesse aplica a las entradas (intencionalmenteo por error) se tendrá presente una salida binaria. El valor de la salida dependeráde la escogenciade la X durante el diseño. Parte del análisis de tal circuito puede involucrar la.determinación de los valores de salida para las combinacionesde entraia de no importa. como ejemplo,considéreseel conversorde códigode BDC a código de exceso3 diseñado en la Sección 4-b. Las salidas obtenidas cuando Áe aplican las seis combinacionesno usadas del código BDC a las entradas son: Entradas BDC no usadas ABCD
I I
I I I I
I
I 0 0 I I
0 I 0 I 0 I
SaLidas x
0 0 0
0 I I 0 0 I
I 0 I 0 I 0
Estas salidas pueden derivarse por medio del método del análisis de la tabla de verdad esbozado en esta sección. En este caso particular, las salidas pueden obtenerse directamente de los mapas de la Figura 4-7. por inspección de los mapas, se determina cuando las X en los iuadrados de los términos mínimos correspondientes a cada salida, han sido incluidos como unos o ceros. Por ejemplo, el cuadrado del término mínimo m,6 (1010) se ha incluido con los unos para dar salidas w, x y z pero tro paü y. por tanto, las salidas para mro son wxyz:1101 tal como están listadas en la tabla anterior. Se nota que las primeras tres salidas en la tabla no tienen significado en el código de exceso 3 y por lo menos tres salidas corresponden al decimal 5, 6 y 7 respectivamente. Esta coincidencia es totalmónte una función de Ia escogencia de X durante el diseño.
4-7
C I R C U I T O SN A N D D E M U L T I N I V E L
Los circuitos combinacionalesse construyen más frecuentementecon compygflls NAND y NOR en vez de compuertasAND y OR. Las compuertas NAND y NoR son más comunesdesdeel punto de vilta del materiai (trardware) ya que se obtienen en la forma de circuitos integrados. Debido a la importancia de las compuertas NAND y NoR en el áiseño de circuitos combinacionales,es importante poder reconocerla relación que existe entre
I sEc. 4-7
NAND DE MULTINIVEL 137 CIRCUITOS
los circuitos construidos con compuertas AND-OR y sus diagramas NAND o NOR equivalentes. La ejecución de los diagramas lógicos de dos niveles NAND y NOR fue presentada en la Sección 3-6. Aquí se considera el caso más general de los circuitos de multinivel. El procedimientopara obtenercircuitos NAND se presentaen esta seccióny para los circuitos NOR en la siguientesección.
Compuerta universal La compuerta NAND se conocecomo la compuertauniversal ya que cualquier sistema digital se puede configurar con ella. Los circuitos combinacionales y secuencialespueden construirse también con esta compuerta ya que el circuito flip-flop (el elemento de memoria usado más frecuentemente en los circuitos secuenciales)puedeconstruirsea partir de dos compuertas NAND conectadas especialmente como se muestra en la Sección 6-2. Para demostrar que cualquier función de Boole puede configurarsecon compuertas NAND, se necesita no solamente mostrar que las operaciones lógicas AND, OR y NOT puedenser configuradascon compuertasNAND. AND, OR y NOT con compuertasNAND La configuraciónde las operaciones se muestra en la Figura 4-10.La operaciónNOT se obtienede una compuerta NAND de una sola entrada, lo cual constituyeotro símbolopara el inversor. La operación AND requiere dos compuertasNAND. La primera produce la AND invertida y la segundaactúa como un inversor para producir la salida normal. La operación OR se logra mediante una compuerta NAND con inversoresadicionales en cada entrada. Una manera convenientede configurar un circuito combinacionalcon compuertas NAND es obtener las funciones de Boole simplificadas en términos de AND, OR y NOT y convertir las funcioncsa lógicaNAND. La con-
NOT (inversor)
AND
( A ' , B ' ) ' ,A : * u
Figura 4-1O
oR
Configuración del NOT, AND y OR por medio de compue¡tasNAND
ü
I38
LoGIcACoMBINACIoNAL
CAP. 4
versión de expresiones algebraicas de operaciones AND, oR, Nor a operaciones NAND son comúnmente muy complicadas ya que envuelve un gran número de aplicaciones del teorema de De Morgan. La dificultad se elude mediante el uso de manipulaciones de circuitos y reglas sencillas las cuales se esbozan a continuación: Configuraciónde las funciones de BooleMétodo del diagrama de bloque I,a configuración de funciones de Boole con compuertas NAND pueden obtenerse por medio de una técnica de manipulación del diagrama de bloque. Este método requiere que se dibujen otros dos diagramas lógicos antes de obtener el diagrama lógico NAND. sin embargo el procedimiento es muy simple y directo:
¡
A partir de una expresiónalgebraica,dibújeseel diagramalógico con compuertasAND, OR y NOT. Asúmaseque se tienen disponibles las entradas normales y sus compuertas. 2 . Dibújese un segundodiagrama lógico con la lógica NAND equivalente, como se da en Ia Figura 4-10 y sustitúyasepara cada compuerta AND, OR y NOT. Quítese cualquier par de inversores en cascada del diagrama ya que Ia doble inversión no produce una función lógica. euítese los inversoresconectadosa entradas externas simples y compleméntese la variable de entrada correspondiente.El nuevo diagrama lógico obtenido es la configuración con compuertas NAND requerido. Este procedimientose ilustra en la Figura 4-II para la función: F:
A ( B + C D )+ B C '
La ejecuciónAND-OR de esta función se muestra en el diagrama lógico de la Figura 4-11(a).Para cada compuerta AND, se sustituye una compuerta NAND seguidade un inversor; para cada compuertaoR se sustituyen inversoresde salida seguidosde una compuerta NAND. Esta sustitución se desprendedirectamentede Ias equivalenciaslógicas de la Figura 4-10 y se muestra en el diagrama de la Figura 4-11(b).Este diagrama tiene siete inversoresy cinco compuertas NAND de dos entradas con sus respectivos númerosdentro del símbolo de Ia compuerta.El par de inversoresconectados en cascada(de cada recuadro AND a cada iecuadro oR) se eliminan ya que forman doble inversión. EI inversor conectadoa la entrada B se quita y se asigna Ia variable de entrada como B'. El resultadoes el diagrama lógico NAND mostrado en la Figura 4-11(c),con el número dentro de cada símboloidentificando la compuertade la Figura 4-11(b). Este ejemplo demuestraque el número de compuertasNAND necesarias para ejecutar la función de Boole es igual al número de compuertas AND-OR si se cuenta con las entradas normales y su complemento.si se
Í
( D B A R
('' (a) ConfiguraciónAND-OR
C D R
A A B
(' (b) SustituyendofuncionesNAND equivalentes de la Fizura5-8
(c) Configuracióncon NAND Figura 4-ll
C o n f i g u r a c i ód ne I ' : A
( B + ( ' l ) t t B ( ' c o n c o m p u e r t aN s AND
IJJ
(a) ConfiguraciónAND-OR
(b) SustituyendofuncionesNAND equivalentes
(c) ConfiguraciónNAND Figura 4-12
Configuraciónde (A+ B')(CD *E)
con compuertasNAND
cuenta solamente con las entradas normales, se deben usar inversorespara generar las entradas complementadasnecesarias. Un segundo ejemplo de configuración con NAND se muestra en la Figaru 4-12.La función de Boole que se va a ejecutar es: F:(A+B,)(CD+E) La configuraciónAND-OR se muestra en la Figura 4-12(a),y su sustitución con lógica NAND, en la Figura 4-12(b).Se puedenquitar un par de invert40
N A N D D E M U L T I N I V E L' 4 ' CIRCUITOS
sEc. 4-7
soresen cascada.Las tres entradasexternasE, A y B' que van directamente a los inversoresse complementan y se quitan los correspondientesinversores. La config¡ración finál con compuertasNAND está en la Figura 4-12(c). El núméro de compuertas NAND del segundo ejemplo es igual al número de compuertasAÑD-OR más un inversor adicional en la salida (compuerta NANb 5). En general,el número de compuertasNAND necesarias para configurar una función es igual al número de compuertas AND-OR, fxcepto po*ralgun inversor ocasional. Esto es verdad si se cuenta con las y su complementoya que la conversiónhace que se comentrádas-normáles plementen ciertas variables de entrada. El método del diagrama de bloque es algo aburrido de usar ya que requiere el dibujo de dos diagramas lógicos para obteaer la respuesta en el tercero. Con álguna experiénciaes posible reducir la cantidad de trabajo anticipándo.e J los pares de inversores en cascada y a los inversores en las eniradas. Comenzandocon el procedimientoesbozado,no es muy dificil derivar las reglas generalespara la ejecución de funciones de Boole con compuertas NAND directamente de una expresión algebraica. P r o c e d i m i e n t od e a n á l i s i s El procedimiento anterior considera el problema de derivar un diagrama togico NAND de una función de Boole dada. El procesoinverso es el análisiJdel problema que comienza con un diagrama lógico N4ND dado y que culmina con una expresiónde Boole o una tabla de verdad. El análisis de los diagramas lógicoi NAND sigue el mismo procedimientopresentado.en la Secc-ión4-6 pára el análisis de los circuitos combinacionales.La única qul la lógica diferencia -se NAND requiere una aplicación repetida-del teo"t demostrará la deducción de la función de Boole rema de De Morgan. a partir de un dlagrama lógico. Luego se demostrará la deducción de la taÉla de verdad diiectamente del diagrama lógico NAND. Finalmente, se presentará un método para converti¡ u¡r diagrama lógco- NAND a un diagr"*u lógico AND-OR por medio de la manipulación de un diagrama de bloque. Deducciónde la función de Boole a p a r t i r d e l a m a n i p u l a c i ó na l g e b r a i c a El procedimientopara deducir la función de Boole a partir de un diagrama lógíco se esbozaeñ la Sección 4-6. Este procedimiento se demuestra para el diágrama lógico NAND mostrado en la Figura 4-13,el cual es el mismo que d" la Figura 4-11(c). Primero, todas las salidas de las compuertas "q,r"l con símbolos aritméticos. Segundo se derivan de las funciones -"r."tt "" para las salidas de las compuertas que reciben solamente entrade Boole das externas: Tt: (CD\': C' + D' T r : ( B C ' ) ': B ' * C La segunda forma se desprende directamente del teorema de De Morgan y prr"á" a veces ser más conveniente de usar. Tercero, las funciones de
t t Figura
4-13
Ejemplo de análisis
I
Boole de compuertas que tienen entradas de funciones anteriormente derivadas se determinan en .rden consecutivo hasta que la salida se exprese en términos de variables de entradas:
(B'7,)': (B'C'+ B'D')' :(B+CXB+ D):B+CD T ¿ : ( A T r ) :' l A ( B + C D ) j , \:
p: (rrra)': ¡1rcf ¡nó + coll'\, :
BC',+ A(B + CD)
Deducción de la tabla de verdao El procedimiento para obtener I^. tabla de verdad directamente de un diagrama lógico se esbozaen la Sección 4-6. Este procedimiento se demuestra por e! diagrama lógico NAND de la Figura 4-13. primero se listan las cuatro variables de entrada conjuntamente óon las 16 combinaciones de unos v ceros como se muestra en la Tabla 4-8. Segundo se marcan las salida.s de todas las,compuertas con símbolos aritméticos como en la Figura 4-13. Tercero se obtienen las tablas de verdad para las salidas de aquellas compuertas que son función de las variables de entrada solamente. Estas son T, y ( c D ) ' , e n t o n c e ss e m a r c a n c e r o se n a q u e l l a s f i l a s d o n d e a m -T¿.Tt: y D sean iguales a 1y se llena el resto de las filas de ?, con unos. F. 9 También Tr: (BC )' de tal manera que se marcan cerosen uqrr"iru, column a s - d o n d eB : \ y c:0 y se llena el resto de las filas de T, conunos. Seguidamente se procede a obiener la tabla de verdad para las salidas de aquellas compuertas que son función de las salidas deiinidas previamente hasta que se determine la columna para la salida F. Es posiblé, ahora, obtener una expresión algebraica a partir de la tabla de verdad derivada. El mapa mostrado en la Figura 4-r4 se obtiene directamente de la Tabla 4-3 y tiene unos en los cuadrados de aquellos términos mínimos para krs 142
t
{
5
Tabla
4-3
Tabla de verdad para el circuito de la Figura 4-13
f
T2
0000 0001 0010 00ll 0100 0101 0ll0 0lll 1000 l00l l0l0 l0ll ll00 ll0l lll0 llll
T3
T4
0 0 0 I I I I I 0 0 0
l0 l0 l0 l0 ll ll l0 l0 l0 l0 t0 0l 0l 0l 0l 0l
0 I I I
0
l I
AB 00
Il'
0l
I
t
D F:AIJTI.JC,_ACt) Figura 4-14
cuales F será:
es igual
Deducciónde F a partir de la Tabla 4-3
a 1. La expresión
F:
simplificada
que se obtiene
del mapa
A B + A C D + B C ' : A ( B + C D )+ B C '
Esta es la misma expresión de la Figura 4-ll, verificando así la respuesta correcta. Trasformación del diagrama de bloque SU Es conveniente algunas veces convertir un diagrama lógico NAND a de procedimiento para el facilitar AND-OR equivalente diagrala ló_gico
143
{ I44
LOGTCACOMEINACTONAL
CAP. 4
análisis. Al hacer esto, la función de Boole puede derivarse muy fácilmente mediante el uso del teorema de De Morgan. La conversión de diagramas ]ó$co-s se logra a través.del proceso inve-rsour u.uaá pár" la ejecución de los mismos. En la sección 3--6se most¡a¡on ¡o.;ír"bi;*grári.o. alternos para la compuerta NAND. Estos símborosse repitieron en litr'igura ¿-rlp.i conveniencia. Po¡ medio de un conciente uso dL ambos términJs, po.i'blu convertir un diagrama NAND a una forma equivalente AND-oÍt. ". La conve¡siónde un diagrama lógico NAñD ;;;;i;srama AND-OR se logra a través de un cambio de símibros de un ¡ño lr,u"urtido a oR in_ vertido en niveles de^compuertas arternas. El primer;;;i que debe cam_ biarse a un símbolo oR invertido debe ser el último nivJ Estos cambios producen pares de círculos en ra misma línea, t", ya que representan doble complementación. una """r"r'iu"¿.r, eliminarse comp,r"rt" AND u oR de y.ry .ol1 e"t.rgqa pu:{e también quitarse ya que no hace ninguna función lógica. una AND u oR de una sora entrada con u" la entrada o la salida se cambia a un circuito inversor. "ir.rrü"r, ,1-\a
B--------{
c----l_J
*-¡
(a) AND invertido Figura
4-15
ABC i
A---{ é--4_z
)-¿'
- B' - C
, ,nurr'
(b) OR invertido Dos símbolospara una compuerta NAND
Este procedimiento se demuestra en la Figrrra 4-16. El diagrama lógico .N+NP de la Figura 4-16(a) se conviert" .rr,-di"gr"_" .AñO_OR. El sím_ bolo-de-la gompuerta en el último nivel se"cambia a un oR invertido. obser_ vando los diferentes niveles, se encuent-raotra compuerta que requiere un cambio de símbolo como se muestra en la.Figur; a_i6ó" Cualquier par de círculos en la misma línea se eliminan. círcil,os q""lá1, a ent¡adas exter_ nas se eliminan siempre y cuando la variable ¿e'e"traáa correspondiente esté complementada.El diagrama lógico ¡,No-on ;q;;"id" se dibuja en la Figura 4-16(c). 4.8
C I R C U I T O SN O R D E M U L T I N I V E L
La función NoR es el dual de la función NAND. por esta razón todos los procedimientos y reglas para la lógica NoR forma" el-áu"l de los correspondientes procedimientos y regla-sdesarrollaá;-;; ü t¿gi""-ñÁñó. Esta sección enumera varios métodospa-rala co., togica NoR y el análisis mediante el seguimiento dg una"o"irg.ir*io. listi áé-lápi"o. ,rüdo, p"o la lógica NAND. sin_embargono se incluye una m¡ís detallada para prevenir repetición de lo expuestoen la Sección "rpri"".íó" 4-2. Compuerta universal Laconlpuerta NoR es univers¿r.ya que se puede ejecutar cuarquier función de Boole con ella incluyendo el ciicuiio flip-¡of -=J;"d, t"'se""i¿r, o-2. La conversión de AND, oR y NoT a t¡óR ü -o".i." "i t" rig,r,a a--fi'. "r,
I
r
L'
D'
l
B'. A B (a) Diag¡ama lógico NAND
D B' A
B (b) Sustitución de símbolosOR invertido en nivelesalternos
D B A B
( c ) Diagrama lógicoAND-OR Figura
¿---l
t
4-16
Conversiónde un diagramalógico NAND a AND-OR
NOT (inversor)
ffA'
A:
B
(A' -r B')'- AB
OR
AND
B Figura
4-L7
Configuración de NOT' OR Y AND por medio de compuertas NOR t45
146
LOG¡CACOMBINACIONAL CAP 4
La operaciónNoT se obtiene de una compuertaNoR de una sora entrada orro símbolo p"." inversor.^LaoperaciónOR requiere l"^:::::l:ti^tuve dos compuertas NoR. La primera produce "t la oR inu"liia, y la segunda actúa como un inversor para obtener la sarida ;";;;1."i; operación AND por medio de la óomp"e.ta ñoR .on i"rl-r.á.., u^áicior,"re.en cada :il""t# C o n f i g u r a c i ó nd e l a s f u n c i o n e sd e Boole_ Método del diagrama de bloque El procedimiento del diagrama de bloque para configurar f.unciones de concompuertas Noñ --- --¡ 1:t" en la sec_ crón previa para las compuertas "".i-iiut "l;;"ül;i""io?llo"u¿o NANID. 1' Dibújeseel diagrama rógicoAND-OR a partir de una expresiónalge_ braica. Asúmase que se cuenta con las errtiadas normales y su complemento. 2' Dibújese un segundodiagrama lógico_con lógica NoR equivalente, de la maney ,lTdu e" tá figu, a 4_17, sustitirye.rdocada compuer_ ta AND, OR y NOT 3' Elimínese ros pares de inversores en cascadadel -.".r.ilt* diagrama. euítese los inversoresconectadosa entradas .*t"irr", y compleméntesela variable de entrada correspondiente. El procedimientose ilustra en la Figura 4-rg para la función: F:
A(B + cD) + BC'
La ejecuciónAND-oR de ra función se_muestra en el diagrama rógicode la Figura 4-18(a).Por cada-c"-p""ii" óh ." sustituye .rr," NoR seguida de un inverso¡' por cáda com-puerta "o*p.rerta AND ie ,,rJiirryu' inve¡sores en las entradas de una compuerta Nory. rt pa, ae-r;;;;.;.", en cascada de la oR enmarcaday la ANb se elimina. Los cuatro inversores conectadosa ras entradas externas ""-"tá"se remueven y se comprementanlas variables de entrada Er resultado .l aiagram; tári." ñón mostrado en la Figura 4-18(c).El nume19-* ". e.te e¡emptoes igual l"_-o*rtas NOR numerg d:.:l-p.""fras "i adicional AND_OR *á. .r. inve¡so¡ 1-l a la salida (compuertaNoR 6). En general el núme¡o au necesa¡ias para la ejecución de funciones ¿e Boolá "o*p,,,"iü.-ñon es iguar ;,1;;; de compuertas AND-OR exceptopor un inversor o"".ion"l."Lo "i a.,terio. J válido siempre y cuando se cuente con ras entradas normalesy * ya que la misma conversióninduce qu" ." ""-pl"lento ciertas variables. " "o*pr"-".rten P r o c e d i m i e n t od e a n á l i s i s El análisis de los diagramas lógicos NoR sig'e los mismos procedimientos presentadosen la sección 4--6para-el análisis de los circuitos combi_ nacionales.para deducir una función d" Bnrr;-¡;;;^;iü","a lógico se
(. D D
A
u C'
(a) ConfiguraciónAND-OR
Sustituyendolas funcionesNOR equivalentesde la Figura 5-19
^ B, C (c) ConfiguraciónNOR Figura 4-18
C o n f i g u r a c i ód ne F - A ( B + C D ) + B C ' c o n
c o m p u e r t a sN O R
marcan las salidas de varias compuertas con símbolos arbitrarios. Mediante varias sustitucionesse obtiene la variable de salida como función de las vaiiabhs de entrada. Para obtener la tabla de verdad de un diagrama lógico sin primero deducir la función de Boole, se forma una tabla hat47
148
CAP. 4
L O G I C AC O M B I N A C I O N A L
c i e n d o u n a l i s t a d e l a s n v a r i a b l e s c o n 2 ' f i l a s d e u n o s y c e r ose s . Ldeducen atabla compu-ertasNoR de verdad de las ,piiá", de las diferentes de verdad de salida. La función de salida en cadena hasta obtenrri"Lui" ¿r lu forma T : (A+ B', +C)" de tal made una compuertaNOR trpü;, para T se m.arca con un 0 para aquellas combiüiutru ¿. ;;t;^*; ".ia"á las filas se llena con unos. : nacionesen que A:l 6¡: ó ¿ c \.El restode T r a s f o r m a c i ó nd e l d i a g r a m a d e b l o q u e lógico para convertir un diagrama lógico NOR a su equivalente diagrama en la mostrados NOR AND_OR, se usan ior"i-iofor"para las "o-pr*itu* NOR compuerta para una símbolo noimal Fizura 4-1g. La OR i"";id" ". "l convenienle que utiliza el teorema alternativa ;'i;';,Ñó"f;;td;-;;-;;; que convención de pequeños círculos en las entradas á.'b;^Iü'";;-;l; denotan comPlementación' , 4_ _ _ _ _ _ S .
3-J
'o
tA_B+cy
E-
{ a) OR invertida Figura
4-19
a-ñ
--
A'B'c' -\A-B-CI
(b) AND inve¡tida
Dos símbolospara una compuerta NOR
diagramaAND-OR se La conversiónde un diagrama lógico NOR a un l;. .i-bolo. de OR invertida a AND inverI"Jü;; logra ¡xrr medio ¿u "" y en niveles alternos' Los pares de tida comenzando ,rr-"i rifti-o nivel c í r c u l o s p e q u e ñ o s " n r r t t " m i s m a l í n e a s e e l i m i n a n ' s e q u i t a n l a s c círculo ompuer' que tengan un'pequeño tas AND u OR de una .ola entrada a no ser en un lnversor' a t salida o a Ia entrada, en cuyo casose convierten el diag¡ama Figu'7!-?\tld" la en muestra se Este procedimiento para la Elsímbolo lógico NOR en t"l *-"ár*ierte a un diagrami¡,NO-On. observar Al invertida' AND un a ."-ñiu ;;"";;;;;-"" "f',iiti-á "l""liál.u en el nivel 3 y dos en dl los diferentesniveles, se encuentrauna "o-p""*" como se muestra símbolos de cambio un nivel 1. Estas comp-iertas sufren
Los línease remueven. en (b). cualquierp;; il circulosen una misma quitansiemprey cuandosehayan círculosquevan a entradasexternasse La compuerta las variablesde entradacorrespondientes, ;;;;ü*;;lado e n e l n i v e l s s e c o n v i e r t e e n u n a c o m p u ebuscado, rtaAND e u n a s oen l alae n t r a d a sedmuestra tanto se elimina.El diagramalógicoÁÑó-on Figura4-20(c). 4-9
OR EXCLUSIVA LAS FUNCIONES Y DE EOUIVALENCIA
iv"l'-Y:, ivav.deequ ffiHi:" ffitl; La oR-exclus X1 $".1"ff #:"3.t"?. que realt: binarias oPeraciones ;" |e,
xOY:ry'+x'Y xOY:ry*x'Y'
C'
D'
(a) Diag¡ama lógico NOR
C' D'
(b) Sustitución de símbolos AND invertida en niveles internos
B C' (c) Diag¡ama lógico AND-OR Figura
4-2O
Conve¡sión-de un diagrama Iógico NOR a AND-OR
Las dos operaciones son complementos
entre sí. Cada una de ellas es aso-
ciativa y commutativa. Debido a las dos anteriores propiedades, una función de tres o más variables, puede expresarse sin paréntesis de la siguientemanera: (A @B)o c:
A@(B e c) : A @B @ c
Esto implicaúa la posibilidad de usar compuertas OR-exclusiva (o de equivalencia) con tres o más entradas. Sin embargo las compuertas OR-exclusiva de entrada múltiple son antieconómicas desde el punto de vistade los materiales. De hecho, aun la función de dos entradas se construye con otro tipo de compuertas. En la Figura 4-2I(a\, por ejemplo, se muestra la ejecuci-ónde la función OR-exclusiva de dos entradas con compuertasAND, ÓR v NOf . La Figura 4-21(b)la muestra con compuertasNAND. t49
I5O
CAP. 4
L O G I C AC O M B I N A C I O N A L
Solamenteun número limitado de funcionesde Boole se puedenexpresar exclusivamenteen términos de operacionesOR-exclusivaso de equivalencia. Empero, estas funciones resultan a menudo durante el diseño de sistemas digitales. Las dos funciones son particularmente útiles en operacionesaritméticas y en correcciónde detección de errores. Una expresiónen OR-exclusivade n variableses igual a una función de Boole con 2" /2 térmínos mínimos cuyos números binarios equivalentes tengan un número impar de unos. Esto se muestra en el mapa de la Figura 4-22(a) para el caso de cuatro variables. Hay 16 términos mínimos para cuatro variables. La mitad de los términos mínimos tienen un valor numérico con un número impar de unos; la otra mitad tiene un valor numérico con un número par de unos. El valor numérico de un término mínimo se determina a partir de las filas y columnas de los cuadradosque representan el término mínimo. El mapa de la Figura 4-22(a)tiene unos en los cuadradoscuyos términos mínimos tienen un número impar de unos. La función puede expresarseen términos de operación OR-exclusiva con las cuatro variables. Lo anterior se justifica por medio de la siguiente manipulación algebraica:
A@ Boce, +A, ',,(cD, +c,D) 1,,u, :v,iii,1,4,ii,í:i,'
(a) con compuertasAND-OR-NOT
re)
(b) con compuertas NAND Figura
4-21
Configuraciones del OR-exclusrvo
C
0
0
B
B lc
I
l
0l
0l
I I
I
^1
1
I I
ll
I
lu
l
I
D F-AaBfiCeD (4,
Figura
4-22
D F .= A ABOCAD (b)
Mapa para cuatro variables (a) función OR-exclusiva y (b) función de equivalencia
una expresión de equivalencia de n variables es igual a la función de Boole cón 2"/2 términos mínimos cuyos números binarios equivalentes tienen un número par de ceros. Esto se demuestra en el mapa de la Figura 4-22(b) para el caso de cuatro variables. Los cuadrados,con unos representanlos ocho términos mínimos con un número par de cerosy la funcién puede expresarseen términos de operacionesde equivalenciacon las cuatro variables. cuando el número de variables en una función es impar, los términos mínimos con un número de par de ceros son los mismos que los términos con un número impar de unos. Esto se puededemostraren el mapa de tres variables de la Figura 4-23(a).Por tanto, una expresión de OR-exclusiva es igual a una expresión de equivalencia cuando ambas tienen el mismo número impar de variables. Sin embargo,ellas forman los complementos entre sí cuando el número de variables es par de la manera como se muestra en los mapas de la Figura 4-22(a)y (b). Cuando los términos mínimos de una función con un número impar de variables tiene un número par de unos (o por equivalenciaa un número impar de ceros), la función puede expresarsecomo complementode una expresión de OR-exclusiva o de equivalencia.Por ejemplo, la función de trés variables mostrada en el mapa de la Figura 4-23(b)puede expresarse de la siguientemanera: (A@BOC)':A@BOC
( A o B o c ) ' : A o B @c La salida S de un sumador medio y la salida D de un sumador completo (Sección 4-3) puede configurarse con funciones OR-exclusivas ya que óada función consiste en cuatro términos mínimos con valores numéricos que tienen un número impar de unos. La función de OR-exclusiva se usa t5l
A
BC 00
0l
0
I
All
t
Á
BC 00
0
I
All
I
t
C (a)
l:-A@B0c:
L
AaBa,c
(bl F:
A@B'..C :
A rBOC
Figura 4-23 Mapaparafunciones de tresvariables bastante en Ia ejecuciónde operacionesaritméticas digitales debido a que estas últimas se ejecutan por medio de un procesoque requiere una operación de sumas o restas repetitivas Las funciones de OR-exclusiva y de equivalpncia son muy útiles en sistemasque requierencódigosde deteccióny correcciónde errores.Como se trató en la Sección 1-6, un bit de paridad es una forma de detectar errores durante la trasmisión de información binaria. Un bit de paridad es un bit extra incluido con un mensajebinario para hacer el número de unos par o impar. El mensaje,incluyendo el bit de paridad, se trasmite y luego se comprueba en el extremo de recepción los errores. Un error se detecta si la paridad comprobadano correspondea la trasmitida. El circuito que generael bit de paridad en un trasmisor se llama generadorde paridad; el circuito que compruebala paridad en el receptorse llama comprobador de paridad" Como ejemplo, considéreseun mensaje de tres bits para trasmiti¡se con un bit de paridad impar. La Tabla 4-4 muestra la tabla de verdad para el generadorde paridad. Los tres bits x, y y z constituyen el mensajey son las entradas al circuito. El bit de paridad P es la salida. Para una paridad impar, el bit P se generapara hacer el número total de unos impar (P incluido). De la tabla de verdad, se ve que P:1 cuando el número de unos en x, y y z es par. Esto correspondeal mapa de Ia Figura 4-23(b); así, la función P puede expresarsede la siguiente manera: p:x@yOz El diagrama lógico para el generadorde paridad se muestra en la Figura 4-24(a). Este consiste en una compuerta OR-exclusiva de dos entradas y una compuerta de equivalencia de dos entradas. Las dos compuertaspueden ser intercambiadasy aun producir la misma función ya que P es igual a: p:xOy@z El mensajede tres bits y el bit de paridad se trasmiten a su destino donde se aplican a un circuito de observación de paridad. Durante la trasmisión ocurre un error si la paridad de los cuatro bits es impar, ya que la información binaria trasmitida fue originalmente impar. La salida C del comprobador de paridad debe ser un 1 cuando ocurre un error, es 152
Tabla 4-4
Generaciónde paridad impar
Bit de paridad generado P
t
(a) Generadorde ParidadimPar de tres bits Figtra
4-24
(b) Comprobador de paridad imPar de cuatro bits
Diagramas lógicos para la generación y comprobación de la paridad
decir, cuando el número de unos en las cuatro,entradassea par. L,a Tabla a-5 es la tabla de verdad de un circuito comprobadorde paridad impar. De él se observaque la función de C consistede ocho términos mínimos con valores numéricosque tienen un número pal de ceros.Esto corresponde al mapa de la FigurÁ ¡-ZZ(V),de tal manera que la expresiónpuedeser expresadácon operadoresde equivalencia de la siguiente manera: C:
xOYOzOP
El diagrama lógico de un comprobador de paridad se.muestra en la Figura 4-24b1y consiJte en tres compuertas de equivalencia de dos entradas. Vaté la pena anotar que el generadorde paridad puede ejecutarsecon el circuito de ta Figura 4-24(b\ si la entrada P se mantiene permanente0 y1a salida se marca P, la ventaja estriba en el hecho de mente en lógica "circuiios pueden ser usados para generación de paridad y q* u-bor comprobación. Es obvio del presenteejemplo que los circuitos de generacióny comp.obación de pariáad tengan una función de salida que incluye la mitad de los términós mínimos cuyos valores numéricos tengan un número par o impar de unos. En consecuenciaestos se pueden ejecutar con compuertas de equivalenciay de OR-exclusiva' 153
, Tabla
4-5
Comprobación de la paridad impar
Cuatro bits recibidos
Comprobacióndel error-paridad C
00 0t t0 ll
00 0l l0 ll 00 0l l0 ll 00 0l 10 ll
I
0 0 I 0 I I 0 0 I I
0 I 0 0 I
REFERENCIAS Design.EnglewoodCliffs, N. J.: Rhyne, Y. T., Fundamentalsof Digital S)'.stem.s Prentice-Hall. Inc.. 1973. 2 . Peatmán,J. P., The Design of Digítal Sysúems.Nueva York: McGraw-Hill Book Co.,1972. N a g l e ,H . T . J r . , B . D . C a r r o l ,y J . D . I r w i n , A n I n t r o d u c t i o nt o C o m p u t e rL o g i c . E n g l e w o o dC l i f f s , N . J . : P r e n t i c e - H a l l ,I n c . , 1 9 7 5 . H i l l , F . . I . , y G . R . P e t e r s o nI,n t r o d u c t i o nt o S u , i t c h i n gT h e t ¡ n -a n d L o g i c a lD e sign, 2a. ed. Nueva York: John Wiley & Sons,Inc., 1974. Maley, G.4., y J. Earle, The Logíc Design of TransistorDigitaL Computers.Eng l e w o o dC l i f f s , N . J . : P r e n t i c e - H a l l I, n c . , 1 9 6 3 . 6 . F r i e d m a n ,A . D . , y P . R . M e n o n , T h e o r ya n d D e s i g no f S u i t c h i n g C i r c u i t s .W o o d l a n d H i l l s , C a l i f . : C o m p u t e rS c i e n c eP r e s s ,I n c . , 1 9 7 5 .
PROBLEMAS 4-1.
Un circuito combinacional tiene cuatro entradas y una salida. La salida es igual a 1 cuando (1) todas las entradas sean iguales a 1 o (2) ninguna de las entradas sea igual a 1 o (3) un número impar de entradas sea igual a 1.
154
f
I PROBLEMAS I 55
4-2. 4-3.
4-4.
(a) Obtenga Ia tabla de verdad. (b) Encuentre la función de salida simplificada en suma de productos' (c) Encuentre la función de salida simplificada en producto de sumas. (d) Dibuje los dos diagramas lógicos' y geneDiseñe un circuito combinacional que acepte un número de tres bits de entrada' número del al cuadrado igual salida de binario número re un bits para Es necesario multiplicar dos números binarios, cada uno de dos por representados números dos Ios Asuma binarios. en formar su producto at, ao ! ó,, b,, donde el suscrito 0 denote el bit menos significativo' (a) Determine el número de líneas de salida necesarias' (b) Encuentre las expresiones de Boole simplificadas para cada salida. producto) de los dos Repita el Problema 4-3 para formar la suma (en vez del números binarios.
que repreDiseñe un circuito combinacional con cuatro líneas de entrada que generan el senten un dígito decimal en BDC y cuatro líneas de salida complemento de 9 del dígito de entrada' de cuatro bits 4-6. Diseñe un circuito combinacional cuya entrada es un número entrada' de número 2 del de y cuya salida es el complemento por 5 una entrada en dí4-7. Diseñe un crrcuito combinacional que multiplique ser también en BDC. debe La salida gito decimal representada en BDi. líneas de entrada sin las de pueden obtenerse que las salidas Demuestre usar ninguna compuerta lógica' la representaciór 4-8. Diseñe un crrcuito combinacional que detecte un error en lógico de un dígito decimal en BDC. En otras palabras obtenga un diagrama poco combinación una tengan entradas las cuya .alida sea lógica 1 cuando código. en el usual medios y una com4-g. configure un sustractor completo con dos sustractores Duerta oR. sustractor 4-10. Demuestre cómo un sumador completo puede ser conveitido a un inversor' circuito un de completo con Ia adición del códi4-11. Diseñe un crrcuito combinacional que convierta un dígito decimal 4-5.
go8,4,-2,-1aBDC. del código 4-12. Diseñé un circuito combinacional que convierta un dígito decimal 2 , 4 , 2 , 1a l c ó d i g o 8 , 4 , 2 ' l . de cuatro dí4-13. obtenga el diagrama lógico que convierte un número binario gitos a r,,rr.,rrln"ro decimal én BDC. Nótese que se necesitan dos dígitos áecimales ya que los números binarios van de 0 a 15' que 4-14. un decodificador BDC a siete segmentos es un circuito combinacional para la apropiadas genera salidas y las BDC en acepta un número decimal selécción de segmentos en un indicador usado para mostrar el dígito decimal' segLas siete salidas del decodificador (o, b, c, d, e, f, il, seleccionan los P4-14 Figura la en muestra se como indicador el en correspondientes mentos (a). La designación numérica escogida para representar el. número decimal BDC se muestra en la Figura P4-14(b). biseñe el circuito decodificador de a siete segmentos.
H 'l fr
il ii
I56
CAP. 4
LOGICACOMBINACIONAL a
rll s l l,
.l , l.
| | lo ll
-l -l
_l t_ l:
lc
I
_l
t_tll
-t
I_-tt--l _r_l
(b) Designación numérica para el tablero numérico
(a t Designación de segmentos
Figura P4-14
Figura P4-15 4-15. Analice los dos circuitos combinacionalesmostrados en la Figura P4-15. Obtenga las funciones de Boole para las dos salidas y explique Ia operación del circuito. 4-16. Deduzcala tabla de verdad del circuito mostradoen la Figura P4-15. 4-I7. Mediante el uso del diagrama de bloque, convierta el diagrama lógico de la Figura 4-8 a una configuracióncon NAND. 4-18. Repita el Problema 4-I7 para una configuración con NOR. 4-19. Obtenga el diagrama lógico NAND de un sumador completo de las funciones de Boole. C:xl+xz+yz S.:C'(x+y+z)+ry2 4-20. Determine la función de Boole para la salida F del circuito de la Figura P4-20. Obtenga un circuito equivalente con menos compuertas NOR.
A' C
B B Figura
P4-20
4-21. Determine las funciones de Boole de salida de los circuitos en Ia Fizura P4-21. 4-22. Obtenga la tabla de verdad para los circuitos en la Figura P4-21. 4-23. Obtenga el diagrama lógico equivalente AND-OR de la Figura P4-21(a).
(b) Figura
P4-21
157
I58
LoGIcAcoMBINACIoNAL
CAP. 4
4-24. obtenga el diagramalógicoequivalenteAND-oR de la Figura p4-21(b). 4-25. obtenga el diagrama lógico de una función de equivalencia de dos entradas usando(a) compuertasAND, OR y NOT: (b) compuertasNOR y (c) compuer_ tas NAND. 4-26. Demuestreque el circuito en la Figura 4-2L(b)es una oR-exclusiva. 4 - 2 i . D e m u e s t rqeu e I O B O C O D : X0,3,5,6,9,101 , 2 ,l 5 ) . 128' Diseñe un circuito combinacionalque convierta un número de cuatro bits en código reflejado (Tabla 1-4) a un número binario de cuatro bits. Ejecute el circuito con compuertasOR-exclusiva. 1-29. Diseñe un circuito combinacionalpara comprobarla paridad par de cuatro bits. Se requiereuna salida de Iógica 1 cuando los cuatro bits no constituyen una paridad par. 'I 30' Ejecute las cuatro funcionesde Boole listadas usando los tres circuitos sumadoresmedios (Figura 4_2e). D:AO¿OC E: A'BC+ AB'C F: ABC' + (A' + B')C G:ABC 4-31. Ejecute la función de Boole: F:
A B , C D , + A , B C D ,+ A B , C , D + A , B C , D
con compuertasOR-exclusivav AND.
*IF
IC
il
'f
Lógica combinacional con MSI Y LSI
-
4
N .) :!
5-1
INTRODUCCION
E l p r o p ó s i t o d e l a s i m p l i f i c a c i ó n d e l a s f u n c i o n e s d e B o o l e errn s o bcircuito t e n e r u nde a resulte en expresión algebraica ql-r" "uuttao. se configure c o sque determina un circuito de bajo baio costo. stn emoarJo, eL criterio simplificación a"ni'irse si se va a evaluar el éxito de la -iii ;;'; il;;"'áLú. combinacionales circuitos los para diseño de proc.di-iunto i;g;"á;. las compuertas neceen la secci ón 4_2 minimiza el número de p.?r."ira" s a r i a s p a r a e j e c u t u , - u n u f u n c i ó n d a d a . E s t e p r o c e d i m i e n t o c l á que s i c outilice asume función' aquel que, dados do, cir"uiiot qu" tuuti"an ,la misma que cuesta menos' Esto no es menos compuertas et pte^fetible debido a integrados' circuitos usan se .,u".ru.iurnénte cierto cuando C o m o s e i n c l u y e n v a r i a s c o m p u e r t a s l ó g i c a s e n u n a s o l a p a s t ipastilla lla..de la máyoría de lás compuertas de una CI se vuelv" ".onO--i"";;;; u t i l i z a d a a u n q u e a l h a c e r l o s e a u m e n t e e l t o t a l d e c o m p u e r t a s . M á sCI aún ' son entre las . compuert,as ,en muchos algunas de las i"t";;;;;;iones usar tantas interconexiones internas a la pastilla y es más económico de conexiones entre panúmero el minimizar i,.,i".rru. posiblés pu.u Sd"t t i l l a s e x t e r n a s . O o n l o s c i r c u i t o s i n t e g r a d o s ' n o e s l a c a n t i d usado a d d e cyo m uer. elpnúnúmero y tipo de cI tas lo que determl"un .i áo"lo, .ino e"l putá ejecutar una función mero de interconexiones externas necesariu* dada. H a y n u m e r o s a s o c a s i o n e s c u a n d o e l m é t o d o c l á s i c o d e l a S e c c i ó n d4a- 2 p a r a e j e c u t a r. u n a f u n c i ó n no produce el mejor circuito combinacional este en simplificación de da. Además, la tabla áe verdad y el procedimiento nú-"to de variables de entrada es ti método se vuelve -"v1t-pficado, "l obtenido dice si debe ser configufinal excesivame.rt" gru.,Jé. El circuito cuales podrían SSI' 'las. rado con ,rnu .or,"*i¿n aleatoria de compuertas y cableado de interconegrande de cI utilizar un número relativamente u n procedimiento de did e xión. En la mayoría á" to' casos la aplicación para una función combinacional seño alterno prr"d"*ptoautl' un circulto clásico. La diseño de método el seguir al dada aun -e¡o, q.re-el obtenido p o s i b i l i d a d d e u n p , o " " a i , , ' i " ' ' t o d e d i s e ñ o a l t e r n o d e p e n d e d e u n p r o b l e un ma
il;;;;ilii;l
i""g""¡ á"r diseñador.El métodoclásicoconstituve
que se producen resulprocedimiento geneál tal, que si se usa se garantiza t59
I60
L O G I C AC O M B I N A C I O N ACLO N M S I Y L S I
CAP. 5
tados.. sin-embargo, -cuando se amplía el método clásico es aconsejable investigar la posibilidad de un método alterno que sea más eficient" p"r, el problemaparticular entre manos. Lg Rqimerapregunta que debe contestarseantes de pasar por un diseño detallado de un circuito combinacional,es si la función éstá dispo_ nible e¡ una pastilla de cI. La mayoría de circuitos MSI se obtienen comercialmente. Estos circuitos realizan funciones digitales específicas comúnmenteusadas en el diseño de sistemas de compirt"do.r, digit"l".r. Si no se encuentra un componente MSI que produ"ca exactamente la función necesaria,un diseñador recursivo dete poder formular un método para incorporar un MSI en un ci¡cuito. La selecciónde componentesMSI con preferenciasobre las compuertas SSI es extremadamenieimportante ya que invariablemente dará como resultado una reducción considerable de pastillas de CI y de cablesde interconexión. La primera mitad de este capítulo presenta ejemplos de circuitos combinacionalesdiseñados por métodos diferentes á lor pto"edimientos clásicos. Todos los ejemplos demuestran la construcción interna de las funciones MSI existentes. Así se presentan nuevas herramientas de diseñoy al mismo tiempo se familiariza el lector con las funcionesMSI existentes. Es muy importante conocer las funciones MSI existentes no solamente en el diseñode circuitos combinacionales,sino también en el diseño de sistemas de computadoresdigitales más complicados. ocasionalmente se encuentran circuitos MSI y LSI que pueden aplicarse directamente al diseño y ejecución de cualquier ciicuilo combinacional. Cuatro técnicas de diseño de lógica combinacionalmediante MSI y LSI se introducen en la segundamitad de este capítulo. Estas técnicas hacen uso de las propiedadesgeneralesde los decohificadores,multiplexores' memorias de programación (RoM) y arreglos lógicos p.ogru-rúle, (PLU). Estos cuatro componentesde cI tiénen u"n gran"nú-.ro á" aplicaciones. Su uso en la configuraciónde circuito" descritos "o*bittu"ionales aquí es una de las muchas aplicaciones. 5-2
S U M A D O R P A R A L E L OB I N A R I O
EI sumado¡ completo introducido en la sección 4-3 forma la suma de dos bits y un bit de arrastre previo. Dos números binarios de n bits pueden sumarse por medio de este circuito. para demostrar con un ejemplo específico considéresedos númerosbinarios, A:1011 y 8:0011 s:1110' cuando se-agreganun par de bits de u.r sumador completo ".ryu ".r*u el circuito produce un bit de arranque que se usa con el par de bits de una posición más significativa. Esto se muestra en la siguiente tabla: Suscrito i Arrastre de entrada Sumando Sumando Suma Arrastre de salida
Sumador completo de la Figura 4-S
4321 0tl0 10ll 00ll lll0 00ll
ci Ai Bi
^T c,*,
u sEc. 5-2
BINARIO S U M A D O RP A R A L E L O
161
Los bits Se suman con sumadorescompletos, comenzandocon el bit menossignificativo (suscrito) para formar el bit de suma y el bit de arrastre. Las éntradas y las salidas del circuito sumador completo de la Eigura 4-5 se indican a continuación. El arrastre de entrada C' en la posición menossignificativadebeser 0. El valor de C,a¡ €n una posiciónsignificativa dada es el arrastre de salida del sumador completo.Este valor se trasfiere al bit de arrastre de entrada del sumador completo que agrega los bits a una posiciónsignificativa de mayor posición a Ia izquierda. La suma de bits es generadaatí, co*ertrando desde la posición de la extrema derecha y es Jisponible tan pronto como se genereel bit de arrastre previo correspondiente. Lá suma de dos números binarios de n bits, A y B pueden generarse de dos maneras:en serie o en paralelo. El método de la suma en serie usa solamente un circuito sumador completo y un elemento acumulador para conservarel arrastre de salida generado.El par de bits en A y B se trasfiere en serie,uno a la vez a través del solo sumador completopara producir una cadenade bits salida de Ia suma. El bit de arrastre de salida acumulado de un par de bits se usa como bit de arrastre de entrada para el siguiente put d-" bits. El método en paralelo usa n circuitos sumadores cJmpletosy todos los bits de A y B se aplican simultáneamente.El bit de u.rr.tr. de salida de un sumador completo se conecta al arrastre de entrada del sumador completo de la posición siguiente a Ia izquierda' Una vez se hayan generadolos bits de arrastre, los bits de la suma correcta salen por las salidas de suma de los sumadorescompletos' lJn sumador paralelo binario es una función digital que produce una suma aritmética de dos números binarios en paralelo. Este consiste en r"iii"aó.é!,-completos conectadosen cascadacon la salida de arrastre de un sumador completo conectadoal arrastre de entrada del siguiente sumador completo. La Figura 5-1 muestra Ia interconexión de cuatro circuitos sumadores completos (FA) para dar un sumador paralelo binario de cuatro bits. Los rrr*ádo.". de A y los bits sumadores de B se designan por medio de números suscritos de derecha a izquierda con el suscrito 1 denotandoel bit de más bajo orden. Los arrastrés se conectan en cadena a través de los sumadorescompletos.El arrastre de entrada del sumador es C1 y la salida de arrastre es C5. Las salidas S generanlos bits de suma requeridos. Cuando el circuito sumador completo de cuatro bits se encapsuladentro de una pastilla CI tendrá cuatro terminales para un sumando, cuatro terminales para otro sumando, cuatro terminales para los bits de suma y dos terminalés para los arrastresde entrada y salida.* un sumador completo de n bits requieren sumadorescompletos.Puede construirsea partir de las CI sumadorescompletosde 4, 2 y 1 bit conectando en cascadavarias pastillas. La salida de arrastre de una pastilla debe conectarsea la entrada de arrastre de aquella con Ios siguientesbits de mayor orden. Los sumadorescompletosde 4 bits son un ejemplo tipico de una función-MSI. Puedenusarseen muchas aplicacionesque incluyen operaciones aritméticas. Obsérveseque el diseño de este circuito por medio del mé* Un ejemplode un sumadorcompletode cuatro bits es el CI TTL tipo 74%3.
$ ill ll.!
*
s3 Figura
5-1
s2 Sumadores completos de 4 bits
todo clásico necesitaría una tabla de verdad con 2e : 512 gn*,¡edq6, ya que hay nueve-entradas al circuito. Mediante el uso de un método iterativo de colocar en cascada una función ya conocida se puede obtener una configuración simple y bien organizada. La aplicación de esta función MSI al diseño de un circuito combinacional se demuestra con el siguiente ejemplo:
'
EJEMPLO 5-I: Diséñese un conversor de código BDC a e x c e s o3 . Este circuito fue diseñado en Ia Sección 4-5 por medio del método clásico. El circuito obtenido de este diseño se muestra en Ia Figura 4-8 y requiere 11 compuertas. Cuando se ejecuta con compuertas SSI requiere 3 circuitos integrados y 14 conexiones i n t e r n a s ( s i n i n c l u i r l a s c o n e x i o n e s d e e n t r a d a y d e s a l i d a ). L a inspección de las tablas de verdad revela que el código equivalente de exceso 3 puede obtenerse del código BDC mediante la suma del binario 0011. Esta suma puede ejecutarse fácilmente mediante el circuito MSI de sumadores completos de 4 bits mostrado en la Figura 5-2. El dígito BDC se aplica a las entradas A, las entradas B se colocan a 0011 constante. Esto se logra aplicanC t . L a l ó g i c a1 y l a d o l ó g i c a1 a 8 1 y B z y l ó g i c a0 a B j , B t y lógica 0 son señales físicas cuyos valores dependen de la clase de familia de los CI usados. Para los circuitos TTL, lógica 1 equivale a 3,5 voltios y lógica 0 equivale a tierra. Las salidas S del circuito darán el código equivalente de exceso 3 del dígito de entrada en BDC. Esta configuración requiere un CI y 5 conexiones,sin inc l u i r l a s c o n e x i o n e sd e e n t r a d a v s a l i d a .
Propagación del arrastre La suma de dos números binarios en paralelo implica que todos los bits de los sumandos están disponibles para el cálculo al mismo tiempo. Como en cualquier circuito combinacional, la señal debe propagarse por las comt62
No seusa
L5
a.
Entrada BDC
A2
^
^1
Salida de e x c e s o3
¡
Bl B2 B3 D -
Figura
I
5-2
Ll
Convertidor de código de BDC a exceso 3
puertas antes que Ia suma de salida correcta esté disponible en Ios termide irte, ¿" salid;. El tiempo de propagacióntotal es igual al retardo nivede por número el propagaciónde una compuertatípica multiplicando ies'de compuertasen el circuito. El mayor tiempo de propagaciónen un sumador paralelo es el tiempo que se toma el bit de arrastre en propagarse pá, to. ,rr*adore. completoÁ.Cbmo cada bit de la salida de suma depende del valor del arrastre ie entrada, el valor de S, en cualquier estado dado en el sumador, estará en su valor final establesolamentehasta que el bit de arrastre de entrada a este estado se haya propagado.ConsidéreseIa .átidu S, en la Figura b-1. Las entradasA, y Bt alcanzanun valor estala ble tan pronto como las señalesde entrada se apliquen al sumador.Pero que disesté hasta final estable estado a su va no C., arrastre entrada de ponible c3 en su valoi de estado estable.De manera similar, c, tiene que hasta C1' Así, irán la salida Sr y el i, C, t así sucesivamente ;.;;.;; arrastre C, a un valor final de estado estable hasta que se propagueel arrastre a través de todos los estados. El número de niveles de compuertaspara la propagacióndel arrastre puede deducir del circuito del sumador completo. Este circuito es dese ¿ucldo en la Figura 4-5 y redibujado en la Figura 5-3 por conveniencia' Las variables de entrada y salida usan el suscrito i para denotar un estado tipico de un sumador pu.ál"lo. Las señalesen P, y G, llegan a su valor de esiado estable despuéi de la propagaciónpor sus compuertasrespectivas' a todos los sumadorescompletosy depenEstas dos señalesio.t "om,rnei den solamentede los bits de entrada de los sumandos.La señal del arrastre de entrada, C,, se propagaal arrastrede salida, C¡+t a través de una compuerta AND y una óompuerta OR, lo cual constituye dos niveles de comp""riu. Si hay cuatro sumadorescompletos en el sumador paralelo, la niveles de compuertasdesde C1 salida de arrastre Cu tendrá 2X4:8 hasta Cr. El tiempo d" p.oprgución total en el sumador será el tiempo de t63
Figura 5-3 Circuitosumadorcomplet' propagación en un sumador medio, más ocho niveles cie : rpuertas. Para un s.r-aAor paralelo de n bits, hay 2 n niveles de comp.;e:l's para el bit de arrastre por los cuales se debe propagar. El tiempo de propagación del arrastre es un fact,-,:.:rnitante de la velocidad con la cual se suman dos números en paralei, .\unque un sumador paraielo, o un circuito convencional, tengan sier:.pre un valor en sus terminales de salida, las salidas no serán las cor¡ecta. .l no se Ies da a las señale$ el tiempo suficiente para propagarse a tFa\'trs de las compuertas conectadas desde las entradas hasta las salidas. C, mo todas las operaciones aritrnéticas se ejecutan con sumas Sucesivas. el ttempo compiendido durante el proceso de suma es muy crítico. Una sc'iución obvia para reducir el tiempo de demora de propagación del arrastre es la de usar compuertas más rápidas con demoras reducidas a pesar de que los circuitos hsicos tengan un límite de su capacidad.' Otra solucion es Ia de aumentar la complejidad del equipo de tal manera que se reduzca el tiempo de demora del arrastre.Hay otras técnicas para reducir el tiempo de propagación del arrastre en un sumador paralelo. La técnica usada más extensamente emplea el principio de obseruación del arrostre ¡,súerior y se describe a continuación. Considérese el circuito del sumador completo mostrado en Ia Figura 5-3. Si se definen dos variables binaias nuevas: P,:
A,@ B,
G,: A,B, 1a suma de salida y el arrastre puede expresarse como:
S,:4Oq C¡*t:
Gi + PiCi
C, se llama el arrastre generado"y produce un arrastre de salida cuando A, y B, son 1 sin tener en cuenta el arrastre de entrada. ,f se llama el arrastre propagado ya que es el término asociado con la propagación de C , h a s t aC , * 1 . Se escribe la función de Boole para la salida de arrastre de cada estado y se sustituye para cada C, su valor a partir de las ecuaciones previas: t64
Figura
5'4
Diagrama lógico del generador del bit de arrastre [nsterror
Cz:
Gt + PtCl
Ct:
Gz+ P2C2: Gz* Pz(Gt + P,C,) :
Cq:
G t + P 3 C 3 : G t I P 3 G 2+ P 3 P 2 G :+ P 3 P z P t C l
G 2 + P 2 G t+ P z P t C l
en Como las funciones de Boole para cada arrastre de salida se expresan de nivel un con configurada ser debe fun¿ión productos, cada suma de de compuerta; AND seguidas de una compuerta OR (o mediante dos niveles con se configuran Ca NAND). Las tres fiinciones de Boole para C2, Ct Y que el generador del arrastre primario mostrado en la Figura 5-4. Nótese prose C', hecho propagarse; de para y C2 Ca no tiene que esperar u C, paga al mismo tiemPo que C:¿Y C;.* La construcción de un sumador en paralelo de 4 bits con un arrastre posterior se muestra en la Figura 5-5. cada salida de suma requiere dos genera la compuertas OR-exclusivas. La salida de la primera OR-exclusiva P y G se las Todas genera G¡. la variable AND y la compuerta vari;ble 4 propagan a través se Los arrastres compuértas. de .riueies ios generan en *Un AND-OR
generador de arrastre posterior es el CI tipo 74782. Se c-ompone de compuertas : G + PC t. ilnvertida. Tiene también dos salidas para generar Cs
t65
Generador de bit de arrastre posterior
D ^2
Figura
5-5
sumadores completos de 4 bits con bit de arrastre posterior
del generadorde arrastre posterior (similar al de la Figura b-4) y se aplican como entradas a una segunda compuerta oR-exclúsiva. Despué, q,r" las señales P y G se establezcan a sus valores de estado estable, ioao, io, arrastres de salida se generarán después de una demora de dos niveles de compuertas. Así, las salidas s2 hasta sn tienen iguales tiempos de de_ mora de propagación. El circuito de dos niveles pará el arrastré de salida c'' no se demuestra en Ia Figura b-4. Este circulto puede derivarse fácilmente por el método de ecuación sustitución como ie hizo anteriormente (ver Problema 5-4).
5-3
S U M A D O RD E C I M A L
!.u. computadores o calculadoras que realizan operaciones aritméticas directamente en el sistema de números decimales representan números decimales en la forma de binarios codificados. un sumador para tal comt€6
sEc. 5-3
S U M A D O RD E C I M A L 1 6 7
putador debe usar circuitos aritméticos que aceptan números decimales codificados y presentan resultados en el código aceptado. Para suma binaria, fue suficiente considerar un par de bits significativos al tiempo' conjuntamente con el arrastre anterior. Un sumador decimal requiere un mínimo de nueve entradas y cinco salidas, ya que se requieren cuatro bits para codificar cada dígito decimal y el circuito debe tener un arrastre de entrada y uno de salida. Por supuesto,hay una gran variedad de circuitos de suma decimal que dependen del código usado para representar los dígitos decimales. El diseño de un circuito combinacional de nueve entradas y cinco saIidas por el método clásico requiere una tabla de verdad con 2e :512 entradas. La mayoría de las combinaciones de entrada son condiciones de no importa, ya que cada entrada de código binario tiene seis combinaciones que son válidas. Las funciones de Boole simplificadas por el circuito pueden obtenerse por un método de tabulado generado por un computador y el resultado podría ser probablemente una conexión de compuertas formando un patrón irregular. Un procedimiento alterno, es sumar los números con circuitos sumadores completos, teniendo en cuenta el hecho de que no se usan seis combinaciones en cada entrada de 4 bits. La salida debe ser m o d i f i c a d a d e t a l m a n e r a q u e s o l a m e n t e a q u e l l a s c o m b i n a c i o n e sb i n a r i a s , válidas del código decimal, se generen. Sumador BDC C o n s i d é r e s eI a s u m a a r i t m é t i c a d e d o s d í g i t o s d e c i m a l e s e n B D C , c o n u n arrastre posible de un estado anterior. Como cada dígito de entrada no siendo e x c e d ea l á s u m a d e s a l i d a n o p u e d e s e r m a y o r q u e 9 + 9 + 1 : 1 9 , dígitos que dos se aplican suponer Al salida. de el arrastre el 1 en la suma, BDC a un sumador binario de 4 bits, el sumador formará la suma enbina' rio y producirá un resultado que puede variar entre 0 y 19. Estos números d e c i " m a l e ss e l i s t a n e n l a T a b l a 5 - 1 y s e m a r c a n c o n s í m b o l o s K , Z * , Z r , Z¿ y 2,. K es el arrastre y los s\scritos bajo la Ietra Z representan los pÁ* s,' 4, 2 y 1 que deben ser asignados a los cuatro bits en el códig
168
L O G I C AC O M B I N A C I O N A CLO N M S I Y L S I
CAP. 5
Ia suma binaria tiene un arrastre de salida K:1. ciones desde 1010 hasta 1111 que necesitan
Las otras seis combina-
una corrección
tienen
un 1 en
la.posiciónzr. Para distinguirlosdel númerobinario 1000y 1001que también tienen un 1 en la_posiciónzr, se especificará más adólante[ue z, ó zt debentener un 1. La condición para que una correccióny un anastre de salida pueda ser expresadapor *.dio d. u.,u función de Boole: C:
K + Z B Z 4 +Z 8 Z 2
cuando c: l, es necesarioagregar0110a Ia suma binaria y suministrarun arrastre de salida a Ia siguienteetapa. Tabla 5-1
Deducciónde un sumadorBDC
Suma binaria
S u m aB D C
K
z8
z4
z2
zl
0' 0 0 0 0 0 0 0 0 0
0 0
0 0 0 0 I I
0 0 I I 0 0 I I 0 0
0 I 0 I 0 I 0 I 0
0 0 0 0 0 0 I I I I
U
0 0 0 0 0 I I
I
I 0 0 0 0
l0 ll 00 0l
r0 rl 0 0 0 0
0 0 0 0
00 0l t0 ll
I I
,s8 00000 00001 00010 00011 00100 00101 00110 00lll 01000 01001 C
r000 r000 l00l l00l l0l0 l0l0 l0ll l0tl
rl00 1100
s4
s2
Decimal
,sr 0 I
2 A
5 6 7 8 9
0 I 0 I 0 I 0 I 0 I
r0 ll
t2 l3 l4 l5 ló t7 l8 l9
lJn sumador BD.c. es un circuito que agrega dos dígitos BDC en paralelo y produce un dígito suma en BDC. unsrimador gbc dene incluir Ia c o r r e c c i ó n l ó g i c a e n s u c o n s t r u c c i ó n i n t e r n a . p a r a a g r e g a r0 1 1 0 e n l a suma binaria, se usa un segundo sumador binario de 4 bils óo*o ." muesrra en la Figura 5-6. Los dos dígitos decimales, conjuntamente con un arrastre de entrada, se agregan primero en el sumadoi binario de 4 bits superior para producir la suma binaria. cuando el arrastre de salida es igual u no se agrega nada a la suma binaria. cuando es igual a 1 se agrega "u.o, el binario 0110 a la suma binaria por medio del sumadór binario de ? bits lnre_
I
n Salida de arrastre
Sumador binario de 4 bits 28
I
Sumando
Sumando
24
22
! ' ,1 Entrada de arrastre
zl
Bit de arrastre de saiida
Sumador binario de 4 bits
l'igura 5-6 Diagramade bloquede un sumadorBDC sumador binario superior rior. El arrastre de salida generado a partir del ya disponible en el terminal de puede ignorarse porque Ju ü i"ro.-ación arrastre de salida. Cada uno de los suEl sumador BDC puede construirse con tres CI' función MSI y Jas tres compuertas para la lóe]c1 madores de 4 bits u. ""u decorreccióncaben"""""pastillassl.sinembargo,elsumadorBDC de propagación se obtiene en un .i..,-,ito úSt.- Para alcanzar demoras n e c e s a r i o sp a r a c i r c u i t o s l o s i n c l u y e más cortas, un sumador MSI BDC no nececo¡rección para la sumador El circuito io. u.rurtr"s posteriores. puede optimiy circuito este completos sumadores cuatro sita todos los zarsedentro de una Pastilla de CI' decimales necesita Un sumador paralelo decimal que suma n dígitos etapa debe couna de salida á" rrrrrru'doresBDC. El arrastre de orden' mayor de "nectarse etapa "t;;;t siguiente la al arrastre de entrada de *El CI TTL tipo 82583es una sumadorBDC' 169
5 _ 4 C O M P A R A D OD RE M A G N I T U D E S -'., . :--paracron de dos númeroses una operaciónque determina si un nú_ r"cr e: ma-\'orqu€' menor que o igual a otro número. Un comparadord.e '"¿¿n:itrdes un circuito combinaciónal_q-u. .o-pululoL,t-".os, A y B r determinasus magnitudesrerativas.Bi resurtádod; L comparaciónse especificapor medio de tres variables binarias cuando A > B, luá-i"Ji*, A: B, ó A<8. El circuito para comparar dos números de . n bits tiene 22, entradas en la tabla de verdad y se vuerve muy complicado aun pu.u n : 3. por otra parte, como es de sospechar,un circuito comparadortiene cierta cantidad de regularidad. Las funciones digitaies que poseen una reguraridadinhe-
rtntt bi0ndufinidg$u"J"r,J,r"lu.." po-rmediode un procedimiento algo_
iltlltlr0 sit0utt¡tlontrá su¿*,,i"n"lu tl;;[;;;; J ;;;;;;;l;
que especifica un conjunto de pasos, lo"s cuales du' uru solución al p r o b l e m a s i s e s i g u e n . S e i.finito lustrará éste método deduciendo un argoritmo para el diseño de un comparador de magnitud de 4 bits. El algoritmo es una apricación dir:ecta á" ;; p.t"ear-r"nto que usa una persona para comparar-ras magnitudes rerativas^de dos números. con_ "rr.ro sidérese los números A y B cada 4 dígit.s y escríbase los coeficientes de los números en orden significativn "or. dJr""r,áe"t" a" la siguiente manera: A : A,A,A,Ao B : BrB2BrBo donde cada suscrito de letra representa uno de ros dígitos der número. Los dos números son iguales si toáos t,or-pu.", de números significativos son i g u a l e s ,e s d e c i r s i - 4 1 : p: ., ir:"Éj , At: Bt y Ao:.8u. Cuando los números son binarios ros dígitos son 1 ó 0 y ra relación de igualdad para ca_ de bits puede .*pré.u.." lógicamente con una furrción de equiva[X"Tl x, : A,B,+ A'iB,¡
i : 0, 1,2,3
donde x¡:l solamente si el par de bits en la posición l s o n i g u a r e se s d e c i r si ambos son unos o ceros. La igualdad de dos números A y B se indica en un circuito combina_ cional por rrfedio de una variable binaria ae saliaa q;; ;; designa con el símbolo (A: B). Esta variable binaria es igual a 1 si los números de entra_ da A y B son iguales; de lo contra.lo s".á igual a 0. para que exista esta condición de iguardad, todas las ,rarialle. ;:;;ü; ."i'i?rul", a 1. Esto produce una operación AND de todas las va¡iables: (A:B):xrxrxrxo la variable binaria (A -- B) es igual a 1 solamente si todos los pares de dígitos de los dos números son izuáles. Para determinar si A es mlyor o menor.qug_B se inspeccionan las mag_ nitudes relativas de.los pu.".. á" dígitos significativo, clesde la posición significativa más arta. siios "o-"rrr"ndo dostígiñr"" ig""i"r, se compara t70
F itI
I
DECODIFICADORES I71
sEc. 5-5
el siguiente par de dígitos siguientes menos significativos. Esta comparación continúa hasta que se encuentre un par de dígitos desiguales. Si el correspondiente dígito de A es 1 y el de B es 0, se concluye que A > B. Si e l c o r r e s p o n d i e n t ed í g i t o d e A e s 0 y e l d e B e s 1 s e t i e n e q u e A 1 8 . L a c o m p a r a c i ó n s e c u e n c i a l p u e d e e x p r e s a r s el ó g i c a m e n t e p o r l a s d o s s i g u i e n tes funciones de Boole: (A > B):
4Éi
* xrArB'r*
xrxrArB', * x3xrxrAsB',
( A < B ) : A ' z B t I x l A ' r B 2 r x ' r x r A 'r B , * x r x r x r A ' o B o
I
t
il i
los símbolos (A > B) y (A < B) son variables de salida binarias que son ig'trales a 1 cuandoA> B ó A < B respectivamente. La ejecución con compuertas de las tres variables de salida derivadas es más simple de lo que parece ya que tiene cierta cantidad de repetición. Las salidas "desiguales" pueden usar las mismas compuertas que se necesitan para generar una salida "igual". EI diagrama lógico del comparador de magnitud de 4 bits se muestra en Ia Figura 5-i.* Las cuatro ¡ de salida se generan con circuitos de equivalencia (NOR-exclusiva) y se aplican a una compuerta AND para dar la variable binaria de salida (A:B). Las otras dos salidas usan las variables f para generar las f'unciones de Boole listadas a continuación. Esta es una configuración de multinivel y como se puede ver tiene un patrón regular. El procedimiento para obtener circuitos comparadores de magnitud para números binarios de más de cuatro bits debe ser obvio para este ejemplo. EI mismo circuito puede usarse para comparar las magnitudes relativas de dos dígitos BDC.
5-5
DECODIFICADORES
Cantidadesdiscretasde informaciónse presentanen sistemasdigitales con códigos binarios. Un código binario de n bits es capaz de representar hasta 2" elementos dif'erentesde información codilicada. Un decodíficador es un circuito combinacional que convierte Ia información binaria de n líneas de entrada a un máximo de 2n líneas únicas de salida. Si la información decodificada de n bits tiene combinaciones no usadas o de no importa, la salida del decodificador tendrá menos de 2' salidas. Los decodificadores presentados aquí se llaman decodificadores en l í n e a d e n a m . E n d o n d e m 1 2 " . S u p r o p ó s i t oe s g e n e t a r 2 " ( o m e n o s ) términos mínimos de n variables de entrada. EI nombre decodificador se usa conjuntamente con cierto tipo de convertidores de código tal como el decodificadorBDC a siete segmentos (ver Problema 4-l4l' Como ejemplo, considérese el circuito decodificador en línea de 3 a 8 de la Figura 5-8. Las tres entradas se decodifican en ocho salidas y cada salida representa uno de los términos mínimos de las variables de 3 entradas. Los tres inversores generan el complemento de las entradas y cada una de las ocho compuertas AND generan uno de los términos mínimos. Una *El TTL tipo 7485 en un comparador de magnitud de 4 bits. Tiene tres entradas más para conectar los comparadores en cascada (ver Problema 5-14).
i. ¡l
l. I
il
D
ñ
Figura
b-Z
Comparador de magnitudes de 4 bits
aplicación particular de este decodificador sería una conversión binaria a octal. Las variables de entrada podrían representar un número binario y las salidas représentarían los ocho dígitos en el sistema de numeración octal. Sin embargo un decodificador en línea de 3 a 8 puede ser usado para decodificar cualquier código de 3 bits para genera. ocho salidas, unu para cada elemento del código. La operación del decodificador será clasificada más adelante a partir de las relaciones de entrada salida listadas en la Tabla 5-2. obsérvese 172
Do -
Figura
Tabla
b-2
b-8
' r:'
Decodificador en línea de 3 a g
Tabla de ve¡dad del decodificador de línea
de3a8
Entradas xyz
Do
000 001 010 0l I r 00 l0l r l0 I ll
10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001
Dt
D2
D3
D4
Ds
D6
D1
173
I74
L O G I c Ac o M B I N A C I o N A L coN MSI Y LSI
CAP. 5
que las variables de salida son mutuamente exclusivas ya que solamente una de las salidas es igual a 1 en cualquier momento. La línea de salida cuyo valor corresponde a 1 representa el término mínimo equivalente al número binario que se presenta en las líneas de entrada.* EJEMPLO 5-2.. Diseñar un decodificador BDC a decimal. Los elementos de información en este caso son los diez dígitos decimales representados por el código BDC. El código en sí mismo tiene cuatro bits, por tanto, el decodificador debería tener cuatro entradas para aceptar el dígito codificado y las diez salidas para cada uno de los dígitos decimales. Esto dará un decodificador de 4 a l0líneas de BDC a decimal. No es necesario diseñar este decodificador ya que se puede encontrar en la forma de cI como una función MSI. De todas maneras se va a diseñar por dos razones: primero dará un conocimiento de Io que se debe esperar de tal fünción MSI; segundo, esto constituye un buen ejemplo para mostrar las consecuencias prácticas de las condicionesde no imoorta. como el circuito tiene diez saúdas, sería necesario dibuiar diez mapas para simplificar cada una de las funciones de sariáa. Hay seis funciones de no importa que deben considerarse para la simplificación de cada una de las funciones de salida. En vez de dibujar diez mapas, se dibujará solamente un mapa y se escribirán cada una de las variables de salida D,, hasta D". dentro de su cuadrado de término mínimo, de la manera mostrada en la Figura 5-9. Hay seis combinaciones de entrada que nunca ocurren de tal manera que se marcan los cuadrados de ios términos mínimos correspondientes con X. Es responsabilidaddel diseñador decidir cómo tratar las condiciones de no importa. se asume que ha decidido usarlas de tal nanera que se simplifican las funciones al número mínimo de ,l
_]: on
nl
rr
rn
D,,
Dl
D\
D2
ll\
"t,, i. 0t
D4
D\
D1
Db
X
X
X
X
Dr
De
X
X
Y
Figura
5-9
Mapa para simplificar un decodificador BDC a decimal
lEl CI tipo 74138 es un decodificador en línea de 3 a 8. Se construye con compuerras NAND. Las salidas son los compleme¡rtos de los valores mostrados en la Tatla b-2.
II
D E C O D I F I C A D O R E SI 7 5
S E C .5 - 5
literales. D¡ Y Dt no pueden combinarse con ningún térmrno mínimo de no importa. D2 puede combinarse con el término mínimo m r,, de no imPorta Para dar: Dz:
x'Yz'
E 1 cuadrado con D,, puede combinarse con otros tres cuadrados de no importa para dar: Ds:
I
wz
se obUsando los términos de no importa para las otras salidas, m a n e ra los e s t a D e tiene el circuito mostrado en ia Figura 5-10. tárminosdenoimportacausanunareducciónenelnúmerode entradas en Ia mayoría de las compuertas AND' la minimizaun diseñador cuidadoso debería investigar el efecto de d e o p e r a c i ó n normal las l a s c o n d i c i o n e s q u e b a j o p e s a r d e ción anterior. A h ay una falla p a s a r í a s i o c u r r e n . n u n c a i n v á l i d a s ¿ Q u é seis combinacionós que las seis m u e s t r a y ocurren? un análisis del circuito de la Figura 5-10 listadas en s a l i d a s l a s p r o d u c i r á n combinaciones no válidas de entrada d i s e ñ o es buencr y s i e i d e c i d i r l a t a b l a p u e d e m i r a r la Tabla 5-3. El lector o malo.
Do: w'r' )"':' D | : w'x'Y'i Dr: r'Y:,' Dl:x')z
I DB: t ''
I Figura
5-1O
Decodificador BDC a decimal
Tabla
5-3
Tabla parcial de ve¡dad para el circuito de la Fizura 5-10
Entradas wxyz
Do
0 I
0 I 0 I
Dt
D2
D3
Salidas D4 D5 D6
D7
D8
Ds
0010000010 0001000001 0000100010 0000010001 0000001010 0000000101
otra decisión de diseño razonable podría ser el hacer todas las salidas iguales a 0 cuando ocurre una combinación de entrada no válida.* Esto requeriría díez compuertas AND de cuatro entradas. Se deben considerar otras posibilidades pero de todas maneras no se deben tratar las condiciones de no importa indiscriminadamente, sino que se debe tratar de investigar su efecto una vez que el circuito esté en operación. Configuración de circuitos con lógica combinacional un decodificador produce 2" términos mínimos de n variables de entrada. Como cualquier función de Boole puede expresarse en suma de términos mínimos en la forma canónica, se puede usar un decodificador para generar los té¡minos mínimos y una compuerta oR externa para formár la Juma. De esta manera cualquier circuito combinacional con n entradas y m salidas puede configurarse con un decodificador en línea de n a 2n y m com_ puertas OR. El procedimiento para configurar un circuito combinacional por medio r1 codificador y compuertas oR requiere que las funciones de Boole 4", del circuito se expresen en suma de términos mínimos. Esta forma puede obtenerse fácilmente de la tabla de verdad o por expansión de las funciones a su suma de términos mínimos (ver Sección 2-b). Luego se escoge un decodificador que genere todos los términos mínimos de las n variables de ent¡ada. Las entradas a cada compuerta oR se seleccionan de las salidas del decodificador de acuerdo a la lista de términos mínimos en cada función. EJEMPLO 5-J: construir un circuito sumador completo con un decodificador y dos compuertas OR. De la tabla de verdad del sumador completo (sección 4-3) se obtienen las funciones para este circuito combinacional en suma de términos mínimos:
S(",.y,z) : >(1,2, 4, i) C ( * ,y , z , ) : ) ( 3 , 5 ,6 , 7 ) * El CI tipo 7442 es un decodificador BDC a decimal. Las salidas seleccionadas están en el estado de 0 y todas las combinaciones inválidas darán una salida de solo unos.
176
ig iq
'rt
$ rl decofificador
-'
Figura
5-11
3x I
Configuración de un sumador completo a partir de un decodificador
Como hay tres entradas y un total de ocho términos mínimos se necesita un decodificadoren línea de 3 a 8. Su ejecución se muestra en Ia Figura 5-11. El decodificador genera los ocho términos mínimos de x, y, z. La compuerta OR para la salida S forma Ia suma de los términos mínimos 1,2, 4 y 7. La compuerta OR para la salida C forma la suma de los términos mínimos 3, 5, 6 y' 7. Una función con una lista Iarga de términos mínimos requiereuna compuerta OR con un gran número de entradas. Una función F que tiene una lista de ft términos mínimos puede expresarse en fbrma de complemento F con 2" -k términos mínimos. Si ei número de términos mínimos de una función es mayor que 2"/2 entonces F' puede expresarse con menores términos mínimos que los que necesita F. En tal caso, es ventajoso usar una compuerta NOR para sumar los términos mínimos de F'. La salida de un¿ compuerta NOR genera una salida normal F. El método del decodificador se puede usar para eiecutar cualquier circuito combinacional. Sin embargo su realización se debe comparar con otras configuraciones posibles para determinar la mejor solución. En aigunos casos este método podría dar la mejor combinación, especialmente si I o s c i r c u i t o s c o m b i n a c i o n a l e s t i e n e n m u c h a s s a l ñ d a sy s i c a d a f u n c i ó ' d e salida (o su complemento) se expresa con una pequeña cantidad de términos mínimos. Demultiplexores Algunos CI se construyen con compuertas NAND. Como una compuerta NAND produce una operación AND con una salida invertida, es más económico generar los términos mínimos del decodificador en su forma complementada. La mayoría si no todos los CI decodificadores, incluyen una o más entradas de actiuqcídn (enable), para controlar la operación del circuito. Un decodificador en línea de 2 a 4 con una entrada de activación y construido con compuertas NAND se muestra en la Figura 5-12. Todas las salidas son iguales a 1 si la entrada de activación E es 1, no importando los valores de las entradas A v B.Cuando la entrada de activación es igual a 177
( a) Diagrama lógico. Figura
5-12
(b) Tabla de verdad
Un decodificador de línea 2 a 4 con ent¡ada activadora (E)
0, el circuito opera como decodificador con salidas complementadas. La tabla de verdad lista estas condiciones. Las X debajo de A y B son condiciones de no importa. La operación normal del decodificador ocurre solay las salidas se seleccionancuando su estado es 0. mente con E:0 El diagrama de bloque del decodificador se muestra en la Figura 5-13(a). El circuito pequeño en la entrada E indica que el decodificador El pequeño círculo a la salida indica que todas se activa cuando E:0. Ias salidas están complementadas. Un decodificador con una entrada de habilitación puede f'uncionar como demultiplexor. IJn demultipLexor es un circuito que recibe información por una sola línea y trasmite esta información en una de las 2" líneas posibles de salida. La selección de una línea de salida específica se controla por los valores de los bits de n líneas de selección. El decodificador de Ia Figura 5-12 puede funcionar como demultiplexor si la línea E se toma como línea de entrada de datos y las líneas A y B como líneas de selección tal como se muestra en Ia Figura 5-13(b). La sola variable de entrada E
Do decodificador 2x4
Dl
D2
Do demultiplexor
u2
D3
t)-
E Act ivación
Selección (a) Decodificador con activado¡ Figura
178
5-13
Dl
2x4
(b) Demultiplexor
D i a g r a m a s d e b l o q u e para el circuito de la Figura 5-12
I-
:a
,i
I79 DECODIFICADORES
sEc.5-5
tiene un camino a todas las salidas, pero la información de entrada se dirige solamente a una de las líneas de salida de acuerdo al valor binario de l a s d o s l í n e a s d e s e l e c c i ó nA y B . E s t o p u e d e v e r i f i c a r s e d e l a t a b l a d e e s t e circuito mostrada en la Figura 5-12(b), Por ejemplo si la selección de las líneas AB: I0 la salida D2 tendrá el mismo valor que Ia entrada E, mient r a s q u e l a s o t r a s s a l i d a s s e m a n t i e n e n e n 1 . C o m o l a s o p e r a c i o n e sd e c o dificador y demultiplexor se obtienen del mismo circuito, un decodificador con una entrada de activación se Ilama un decodít'icador/demultiplexor. Es la entrada de activación la que hace al circuito un demutiplexor; el decodificador de por sí puede usai-corripüertas AND, NAND y NOR. Los circuitos decodificador,/demultiplexor pueden conectarse conjuntamente para formar un circuito decodificador mayor. La Figura 5-14 muestra dos decodificadores de 3 x 8 con entradas activadoras conectadas para formar un decodificador de 4 x 16. Cuando w :0, el decodificador superior se habilita y el otro se inhabilita. Las salidas del decodificador inferior son todas ceros y las ocho salidas superiores generan los términos se invierten las condiciones de habilim í n i m o s 0 C C 0a 0 1 1 1 . C u a n d o u : 1 tación; el decodificador inferior genera los términos mínimos 1000 a 1111, mientras que las salidas del decodificador superior son todas ceros. Este ejemplo demuestra la utilidad de las entradas activadoras de los CI. En general, Ias líneas activadoras son una característica conveniente para conectar dos o más CI con el propósito de expandir la función digital a una función similar con más entradas y salidas.
Figura
5-14
Un decodificador de 4X16
const¡uido con dos decodificadores de 3x8
Codificadores lJn codificador es una función digital que produce una operación inversa a Ia del decodificador. Un codificador tiene 2" (o menos) líneas de entrada v n líneas de salida. Las líneas de salida generan el código binario para las
I80
L o G I c A c o M B I N A C I o N A Lc o N M S I Y L S I
CAP. 5
2n variables de ent¡ada. Un ejemplo de un codificador se muestra en la Figura 5-1s. El codificador octál a binario consisteu., oÁo entradas,una para cada uno de los ocho dígitos y tres .ariaa, pai"-;;;;;r, er número bi_ nario correspondiente.Este-se-"orrrtruy" con conpuertas oR, cuyas entradas se determinan a partir de la tabla de verdad J"d" ;; tl r"utu b_4. Los bits de salida de bajb orden e rorr-f.i los dígitos octales de ent¡ada son impares' La salida y, l para ros dígitos octales 2,8,6 ó 7. Lasalida ¡ es ": l para los dígitosoctales-4, 5:6 ó z.i.üóteseq;;.t;;"; conectaa ningu_ nl.cgmprerta oR; la salida binaria debe sef sólo"cerosLn este caso. una salida de sólo ceros se obtiene también cuando todas las entradas sean cero' Esta discrepanciapuede resolverseagregando una salida más para indicar el hecho áe que tádas las entradas no son ceros. .El-c"o{ificadoren la Figura 5-15 asume que solamenteuna línea de enj trada puede
ser igual en cualquie-r ;il;;";";;*#f#ilT:ü;i; _1.1 no tienesignificado.. Nótesequ. él circuitotieáeocho;;r;;;.=';"Jili], tene¡ 28 : 2b6
combinaciones de entrada po.ibi;.. s"iá-."t" ocho de es_ tas combinacionestienen significado. Las otras combinaciones vv¡¡rv¡rrqu¡! son condiciones
de no importa.
Los codificado¡es de este tipo (Figura 5-15) no se encuentran en clrya que se pueden construir rácilmente co¡r compuertas oR. El tipo de codificador que se encuentra en la forma d" sru¿" es el codi"i;;;;;l"ficadol de prioridad.* Estos codificadores establecen d" *r-lá"j"-a; entrada -para asegurar que solamente la línea du ru más alta prioridad se codifica. Así, en la Tabla "rrliaal-i" es 5-4, si la prioridad dada a una entrada con un número s'scrito mayor con respecto a un numero suscrito menor, entoncessi ambosDz y Ds son lógica 1-simultáneamente, la salida será 101 porque D". tiene urr" -uyo. prloridad ."bt" b;. por supuesto, la tabla de verdad de .r' codificado"ráe prioridad es diferénte de la Tabla 5-4 (ver Problema5-21).
x:
D¿i Dtl D6rD|
t : D2i_D'* Dul O,
z:
Figura 'Por
5_lb
eiem¡rlo el CI tipo 24149.
Codificador octal a bina¡io
D1lDrl D5l D,
Tabla
5-4
Tabla de verdad de codificador octal a binario
Entradas Do
D2
D3
10000 01000 00100 00010 00001 00000 00000 00000
1 5-6
t
Dl
D4
Ds
0 0 0 0 0 I 0 0
D6
00 00 00 00 00 00 l0 0l
D.l
0 0 0 0
00 0l l0 ll 00 0l l0 ll
MULTIPLEXORES
Multiplexar significa trasmitir una gran cantidad de unidades de informació; por un nú*e.o pequeñode canaleso líneas.IJn.multiplexor digitaL es un circuito combinacional que seleccionainformación binaria de una de muchas líneas de entrada pára dirigirla a una sola línea de salida. La selecciónde una línea de entrada en particular es controlada por un conjunto de líneas de selección. Normalmente hay 2" Iíneas de entrada y n iín"u, de selección cuyas combinacionesde bits determinan cuál entrada se selecciona. un multiplexor de 4 líneasa I línea se muestra en la Figura 5-16.cada una de las cúatro líneas de entrada Io a Ir, se aplican a una entrada de una compuerta AND. Las líneas de selecciónsr Y s6 se decodificanpara seleccionáruna compuerta AND en particular. La tabla de función en la figura lista el camino de entrada a salida para cada comiinación posible de tit* d. las líneasde selección.Cuando esta función MSI se usa en el diseño de un sistema digital ésta se representaen la forma de diagrama de bloque como se muestra en la Figura 5-16(c).Para demostrarla operacióndel circuito' considéreseel caso cuando srso:10' La compuerta AND asociada con la entrada 12 tiene dos de sus entradas iguales a 1 y una tercera entrada conectada a 12. Las otras tres compuertas AND tienen al menos una entrada igual a 0 lo cual hace su salida igual a 0. La salida de la compuerta igual al valor de /2 generando así un camino de la entrada OR es "ñot" ala salida. Un multiplexor se llama también un selector de seleccionada datos ya que seleccionauna de muchas entradas y guía la información binaria a la línea de salida. Las compuertas AND y los inversoresen un multiplexor se asemejana un circuito decodificadory sin embargoellos decodifican las lineas de selección de entrada. En"general, un multiplexor de 2" a I Iínea se construye con un decodificador de n a 2" agregándolé2" líneas de entrada, cada una para cada compuerta AND. Las salidas de las compuertas AND se aplican ,rttu sola compuerta OR para generaruna salida de 1 línea. El tamaño del "multiplexor se Lspecifica por el número 2" de sus líneas de entrada y de la t8l
Entradas
Salida
Y Selección ( c ) Diagrama de bloque
(a) Diagrama lógico Figura
b-16
( b ) Tabla de funcion Un multiplexor en línea de 4 a 1
sola línea de salida, implicando así que contiene n líneas de selección. un multiplexor es a menudo abreviado como MUX. como en los decodificadores, los cI m*ltiplexores pueden tener una entrada de activación para controrar Ia operación de la unidad. cuando la -binario entrada de activación esté en un estado dado, Ias salidas se inha_ bilitan o cuando está en el otro estado (el estado de habilitación) er circuito funciona como un multiplexor normal. La entrada de habilitación o activación (algunas veces llamada strobe) puede ser usada para expandir dos o más cI multiplexores a un murtiplexor digitar co" .r., g."r, número de entradas. En algunos casos se encapsulan dos o más multiplexores dentro de u n c I . L a s e n t r a d a s d e s e l e c c i ó ny a c t i v a c i ó n e n l o s c I d e m ú l t i p l e u n i d a d pueden ser comunes a todos los multiplexores. como ilustración se mues_ tra en la Figura 5-17* un cI multiplexor cuádruplede 2líneas a 1línea. Este tiene cuatro multiplexores cada uno de los cuales puede seleccionar u n a d e d o s l í n e a s d e e n t r a d a . L a s a l i d a y , p u e d e s e r s e l e c c i o n a d ap a r a s - e ri g u a l a A t ó B r . D e m a n e r a s i m i r a r , l a s a i i d a y , p o d r í a t e n e r e r valor d e á . . . ó B ¿ y a s í s u c e s i v a m e n t e .u n a l í n e a d e s e l e c c i á n d e e n t r a d a , s, es suficiente para seleccionaruna de dos líneas en todos los cuatro multiple_ xores. La entrada de control E habilita los multiplexores en el estado 0 y los inhabilita en el estado 1. Aunque ei circuito contiene cuatro multiple_ xores se podría pensar que es un circuito que selecciona una en un pui d" *
Este es similar al circuito integrado tipo 74157.
182
Tabla de lunción
É's lx 00 0l
Salida Y todo 0 s e l e c c i ó nA s e l e c c i ó nE
s ( s e l e c c i ó n)
L (habilita) Figura
5-17
Multiplexores cuádruples en linea de 2 a I
4 líneas de entrada. Como se ve en la tabla de la función, la unidad se las cuatro entradas A tienen Entonces, si S:0 selecciona cuando E:0. una vía hacia las salidas. Por otra parte, si S: I se seleccionan las otras cuatro entradas B. Las salidas serán todas ceros cuando E:1 sin tener en cuenta el valor de S. EI multipl€xor es una función MSI muy útil y' tiene una multitud de aplicaciones. Se usa para conectar dos o más füentes a un solo destintr entre las unidades del computador y es útil para construir un sistema de bus común. Estos y otros usos del multiplexor se discutirán en capítulos posteriores conjuntamente con sus aplicaciones particulares. Aquí se demuestran las propiedades generalesde este elemento y se muestra cóm() puede ser usado para ejecutar una función de Boole. t83
Ejecución de una función de Boole se habría demostradoen la sección anterior que el decodificado,puedJ, ser usado para configurar una función ge-Boore;rol."t" una compuerta , oR externa. un rápido vistazo al multiprexái-á. i'" ir-igrr" 5-16 revera que, es esencialmenteun decodificadorcon una compuerta oR v" ái.p"""ilr;. i;; términos mínimos fuera del decodificad' q;.:;;-; pueden con_.) trolarse con las líneasde entrada. Los términ". "-.iáÉ".." : -i"i-oli;;;;;;i;;ffi se con la función que. se está ejecutando se r.*g." l"liendo sus líneas , de entrada correspondientes,iguátes a 1 y aque¡os términos mínimos no i incluidos en la función se inhaÉilitan al- ú""r'i;; i;"*'a'"."trilñ;ñ a cero' Esto presenta un método para configurar cuarluier función de ¡ Boole de n variabres ñltTire*o, a"'il' u-i]^si., embargo, es _":¡ posiblehacer algo meJor , que :; eso. . si se tiene una función de Boole de n -¡ I variables se toman n de estas variablesy se conectana las ríneasa"..te.ci¿r, áü'.riiiprexor. La varia_ ble restante de la -función se usa p"." tr. entradas del murtiplexor. si A es esta sola variable, las entradas del multipl."..]..'Jg.n pur" ser A ó A' ó | ó 0. Mediante un concienzudouso dé cu"iro'valores para las entradas y conectando ras otras variables "sto, a r", ú;;;;- de selección, se puede configurar cuarquier función ae goole .o; u;-;;ltiple*or. De esta es fgtp" -posible genetát cualquier función de n * 1 variabres con un mul_ tiplexor de 2." a l. Para demostra¡ este procedimientocon un ejemproconcreto,considérese la función de tres vaiiables: F ( A ,B , C ) : X 1 , 3 , 5 , 6 ) La función puede ser configu¡ada con un multiplexor de 4 a ._como se muestra en la Figura 5-1g.Dos de las variabrer aíó." las líneas frii.u'a de selecciónen eseorden, es decir, b s" conects I s1 y c ase. Las entradas del multiplexor son 0,.1, ,l y Á',.-clundo BC : oo rá .rtia" F: 0 ya que Io :0. Por tanto, ambosd¿.irri"á.*ín"iiros mo_: A,B,C, y mn: AB,C,producen una salida 0, ya que la salida es 0 cuando BC: 00 sin tener en cuent a e l v a l o r d e A . ; C u a n d bB C : 0 t , l a s a l i d a¡ = i;" o*1, :,. por tanto, ambostérminos mínimosryt_:^A,B,C ^u: AB,C producenuna salida de 1 i ya que la salida es 1 cuandoBc :0r sin tener en cuentaer varor de A. cuan_ do BC:10 la entrada /, es seleccionada.como A se conectaa esta entrada, la salida será igual á 1,soramentepara el término mínimo ma:ABC,, pero no para el término.mínimorn2:A,BC,, debido qu"¿,: t,'entonces A 0 como r, : 0 se tiene enton"". F: 0. Finalmente " cuandoBC: rl = I se seleccionala entrada r, . como A' se conectaa esta entrada, ra salida será igrral a 1 solamente para el término minimo ,{ : t;e;; no para rnz : ABC. Esta información se sumariza en la Figuru s-rsol,-ücr"l -ra tabla ' " de verdad de la función que se requiere ejecütar. . "" La anterior discusión muestrá por análisis que er multiplexor configura la función requerida. se representará ahora un procedimiento generar para configurar cualquier función de Boole de n vaiiabll.un multi_ plexor de 2"-1 a 1. "o., 184
0
00 Io It r
MUX 4xl
13 J1
001 010 0l.l r 0. 0
v'
s6
l0t l
l0
ltl (a) Configuración del multiplexor
(b) Tabla de verdad
A
(c ) Tabla de configuración Figura 5-18
ConfigurandoF (A, B, C ) : t
(1,3, 5, 6) con un multiplexor
Primero se expresala función en su forma de suma de términos mínimos. Se asume que la secuenciaordenadade variables escogidaspara los términos mínimos es ABCD . . ., donde A es Ia variable de Ia extrema izquierdaen una secuenciaordenadade n variablesy BCD ... son los n-1 variables restantes. Se conectan las n - 1 variables a las líneas de selección del multiplexor con B conectadaa una línea de selecciónde mayor orden, C a la siguiente línea menor de seleccióny así sucesivamentehasta la últinia variable la cual se conecta'a la línea de seleccióri'demás bajo la variableA. Como esta variableestá en la posiorden s6. Considérese ción de más alto orden en una secuenciade variables,será complementada en los términos mínimos o hasta (2"/2) - 1 los cuales comprendenIa primera mitad en Ia lista de los términos mínimos. La segundamitad de los términos mínimos tendrán su variable A sin complementar.Para una función de tres variables,A, B, C se tiene ocho términos mínimos. La variable A se complementaen los términos mínimos0 a 3 y no se complementaen los términosmínimos4a7. Lístese las entradas del multiplexor i bajo ellas los términos mínimos en dos columnas.La primera fila incluye todos los términos mínimos en los cuales A es complementaday la segundafila todos los términos mínimos con A no complementadade la manera mostrada en Ia Figura 5-18(c).Enciérreseen un círculo todos los términos mínimos de Ia función e inspecciónesecada columna separadamente. Si los dos términos mínimos en una columna no están en círculo aplíquése0 a la entrada correspondientedel multiplexor. 185
186
L O G I C AC O M B I N A C I O N ACLO N M S I Y L S I
CAP.5
Si los dos términos mínimos están en un círculo aplíquese 1 a la entrad a c o r r e s p o n d i e n t ed e l m u l t i p l e x o r . S i e l t é r m i n o m í n i m o i n f e r i o r e s t á e n c e r r a d oe n u n c í r c u l o y e l s u p e r i o r n o l o e s t á a p l í q u e s eA a l a e n t r a d a c o r r e s p o n d i e n t ed e l m u l t i p l e x o r . S i e l t é r m i n o m í n i m o s u p e r i o r e s t á e n c e r r a d oe n u n c í r c u l o y e l i n f e r i o r n o l o e s t á a p l í q u e s eA ' a l a e n t r a d a c o r r e s p o n d i e n t ed e l m u l t i p l e x o r . Este procedimiento se desprende de las condiciones establecidas durante el análisis previo. La Figura 5-18(c) muestra la configuración de la función de Boole:
F ( A ,B , C ) : > ( 1 ,3 , 5 ,6 ) de la cual se obtienelas conexiones del multiplexorde la Figura5-18(a). N ó t e s e q u e B d e b e c o n e c t a r s ea s r y C a s , , . No es necesarioescoger la variable de la extrema izquierda de la secuencia ordenada de una lista de variables para las entradas del multiplexor. De hecho, se pueden escogercualquiera de las variables para las entradas del multiplexor si se tiene en cuenta la modificación de la tabla de ejecución. Supóngase que se va a configurar la misma función con un multiplexor, pero usando las variables A y B para la línea de seleccións, y so, y la variable C para las entradas del multiplexor. La variable C se complementa en los términos mínimos pares y no se complementa para los i m p a r e s y a q u e e s I a ú l t i m a v a r i a b l e e n l a s e c u e n c i ad e l a s v a r i a b l e s I i s t a das. El arreglo de las dos filas de términos mínimos en este caso debe ser como se muestra en Ia Figura 5-19(a). Encerrando en un círculo los términos mínimos y usando las reglas establecidas anteriormente se obtienen las conexiones del multiplexor para la configuración de la función como se ve en la Figura 5-19(b). En forma similar, es posible usar cualquier variable de la función en Ias entradas del multiplexor. Se pueden formular varias combinaciones para configurar una función de Boole con multiplexores. De cualquier manera, todas las variables de entrada a excepción de una, se aplican a las líneas de selección. La variable restante o su complemento ó 0 ó 1 se aplican a las entradas del multiplexor. Io /r C, C
Io
It
0
:
12
coot
13
MUX 4xl
r.
4-7d 13
( a ) Tabla de configuración Figura
,
5-19
Jr
Jo
(b) Conexióndel multiplexor
Configuración alterna p a r a F ( 4 , B , ( ' ) :
I
(1,3,5,6)
I I
Ili
1,, ll
t. MLjX
r, r
)
8r I
l1
A,
I,
A
It, /r
Figura
5-20
C o n f i g u r a c i ó nd e F ( A , B , C , D l :
EJEMPLO tiplexor:
I
.f:
\l
.!r,
( 0 . 1 ' ; 1 , 4 '8 , 9 ' 1 5 r
5-4; Ejecutar la siguiente función coll utr mul-
F ( A ,B , C , D ) : > ( 0 ,l , 3 , 4 ,8 , 9 ,1 5 ) Esta es una f'unción de cuatro variables y por tanto se neceslt¿t Se un multiplexor con tres líneas de selección y ocho entradas' e s c o g ea p l i c a r l a s v a r i a b l e s B , C y D a l a s l í n e a s d e s e l e c c i . r " r .L ¿ r pritablá ds configuración es la mostrada en la l'igura 5-20. l,a A ' ¡ ' l a c ( ) n a s o c i a d g s e s t á I l mera mitad de los términos mínimos n rlt é r m i n o s l o s c í r c u l o e n u n S e g u n d am i t a d c o n A . B n c e r r a n d c l \ ' ¿ll ( , s p a r a e n c ( ) l l t r a r r e g l a s l a s y a p l i c a n d o nimos de la función c i r c u i t rr e l o b t i e n e s e m u l t i p l e x o r , d e l p a r a e n t r a d a s l a s lores mostrado. C o m p á r e s e a h g r a e l m é t o d o d e l m u l t i p l e x o r c 1 ¡ t re l m é t o d o d e l c o d i t i cador paia configurar los circuitos combinacio¡ales. El método del decodisólo ficadoi requiere .,na comprrerta OR para cada función de salida, más m í n i m o s ' El se necesitÁ un decodificaáor para generar todos los térmings ull p e r t ) r e q u l e r e método del multiplexor usa unidades de menor tamaño q ue a s u m i r 5 ' s ¡ ¡ ¿ 2 o t t n b l e P o d r i a s a l i d a . multiplexor para cada tunciórl de se I i c l a s s a d e p e q u e ñ a c a n t i d a d u n a c o l l los circuitos combinacionales p u e d a n r e a l i z a r c o n m u l t i p l e x o r e s . L o s c i r c u i t o s c o m b i t l a c i o n a l e sc ( ) n m u del c h a s f ' u n c i g n e sd e s a l i d a p r o b a b l e m e n t e u s a n m e n o s C I c o n e l m e t ¡ c l o decodificador. para lir A u n q u e l o s m u l t i p l e x o r e s y d e c o d i f i c a d o r e ss e p u d i e r a n u s a r que l()s e n c u e n t a t e t r e r s e d e b e c o m b i n a c i o n a l e s , ejecución de los circuiios i n f b r maciti¡ l a p a r a d e c o d i f i c a r p r i n c i p a l m e n t e s e u s a n decodificadores lexorei para fbrmar un camino selecto e¡tre múltiples ü i r r u r i u y , l o s m u l t i p^destino. .Se deberían considerar cuando se diseñan pei¡,entu. y ,r., solo 187
r 188
L O G I c Ac O M B I N A C I O N ACLO N M S I Y L S I
CAP. 5
queños circuitos combinacionales especiales que no se consiguen como funciones MSI. Para los grandes circuitos combinacionales con múltiples entradas y salidas, hay un componente de CI más adecuado y este se presenta en la siguiente sección.
5-7
M E M O R I AD E S O L O L E C T U R A( R O M )
Se vió en la Sección 5-5 que un decodificadorgenera los 2n términos mínimos de las n entradas variables. Colocandolas compuertasOR para sumar los términos mínimos de las funcionesde Boole se podrá generarcualquier circuito combinacional.Una memoria de solo lectura (ROM) que viene de Read Only Memory) es un. elemento que incluye el decodificadory las compuertas OR dentro de una sola cápsula de CI. Las conexionesent¡e las salidas del decodificadory las entradas de las compuertas OR pueden especificarse para cada configuración particular "programando" la ROM. La ROM se usa a menudo para configurar un circuito combinacionalcomplejo en una cápsulade CI y así eliminar Ios cablesde conexión. Una ROM es esencialmenteun dispositivo (o acumulador) de memoria en el cual se almacena un conjunto fijo de información binaria. La información binaria debe especificarsepor el usuario y luego enclavarseen Ia unidad para formar el patrón de interconexiónrequerida.Las ROM vienen con enlacesinternos especialesque pueden esta¡ fusionadoso abiertos. La interconexión deseadapara una aplicación particular requiereque ciertos enlaces estén fusionadospara formar los caminos del circuito necesarios. Una vez que se establezcaun patrón para una ROM, este permaneceráfijo aunque se haga un corte de corriente y luego se restablezca. Un diagrama de bloque de una ROM se muestra en la Figura 5-21. Este consisteen n líneas de entrada y m líneas de salida. Cada combinación de bits de las variables de entrada se llama una direccírín.Cada combinación de bits que sale por las líneas de salida se llama una palabra. EI número de bitr por palabra es igual al número de líneas de salida m.Una dirección es esencialmenteun número binario que denota uno de los términos mínimos de n variables. El número de direccionesdiferentesposibles con n variables de entrada es 2". Una palabra de salida puede ser seleccionadapor una dirección única y como hay 2" direccionesdiferentes n entradas
¡n salidas Figura
6-21
Diagrama de bloque de una ROM
i h'l
M E M O R I AD E S O L O L E C T U R A( R O M )
sEc. 5-7
189
enunaRoM,hay2"palabrasdiferentesquésediceque.estánacumula. salida, en cualquier áu, u" la unidad. iu puiuU.udisponibleen las líneasde a las líneas de aplicada la dirección de valor del aeperiá" momento aado, 2" y el númepalabras ;;1;;d". una ÉOú se caracterízapor el número de la similitud a debido usa se ."-á"-¡it. por palabra m. Esta teiminología que se lectura-escritura de y memoria la fu -á-o.iu de solo lectura ""tr. presentaen la Secci6n7-7. en 32 palabrasde 8 Considéreseu"u iiOü de 32 X 8. La unidad consiste y 32 palabras salida bits cada una. Esto ,ig"ifi"u que hay ocho líneas de puede aplicarcuales las de una distintas almacenadasi' la urridud, cada preque está seleccionada particular palabra .r-u fu. Iíneas de salida. La de líneas partir 4" l^1tcinco sente en las líneas á" .ufiao se determinan a : porque 2s 8 Hay solume'te cinco entradasen una ROM de 32X términ.s o direcciones ""ii"a". 32 y con .l.r"o uuii"bles se puede especificar32 pala-bra,únicaselecciouna hay para entrada de dirección cada mínimos. la palabra se'selecciona 00000, nada. Así, si una Jireccl¿n de entrada es entrada de la dirección si salida. de número 0 y esta up"t."" ." las líneas de salíneas las a y aplica se 31 número palabra es 11111,se seleccionala pueden que lida. Entre ta prim"iu-y'tu tttti-a hay otras 30 direcciones seleccionarotras 30 Palabras' se determina del El número ¿" Jut"¡tut direccionadasen una ROM 2" palapara especificar n Iíneas de entrada hecho de que r" r;;l; bits que de total por núm_ero el bras. una ROM se especificaalgunas veces de 2048bits puede contiene, el cual ,"ia Z" x -. Éo, ejemplo, una ROM significa que la á.g".,irut." .o-o Sii pututtu. de 4-biti cada una. Esto Términos mínimos Direccción de entrada
0 I decodificador
2
5x32
128 enlaces +
Fr
Figura 5-22
f1
13
Const¡ucciónlógica de una ROM de 32x 4
H
:il *l ljl f ¡l Él
190
L O G I C A C O M B I N A C I O N A LC O N M S I Y LSI
CAP, 5
unidad tiene 4 líneas salida y 9 ríneas de entrada para especificar 2 s: 5 1 2 p a l a b r a sE . l n ú.de m e r ot o t a r d e b i t s e n r a u n i d a l e s 5 1 2 X 4 : 2 . 0 4 g . Internamente,la ROM es un circuito combinacio.,ui .u., compuertas AND conectadascomo decodificadory un número de compuertasoR igual al número de salidas de la unidad. La Figur a !-22muestrauna construcción lógica interna de una RoM de g2a¡. Lis cinco u;rñi;; de enrradase de_ codifican en 32 líneas por medio de 32 compuertasAND y 5 inversores. cada salida del decodiiicador.ep.".".,tu uno de los términos mínimos de una función de cinco variabies.óada una de ras 32 direccionesselecciona una y sólo una salida der decodificador.La direcciónes un númer. de 5 bits aplicado a las entradasy er tJrmir.ro mínimo seleccionado por fuera del decodificadores er marcado .on 'u-u.o-á".i-ái'.qriralente. Las 32 salidas del decodificadorestán conectadas "i por medio de errocesa cada compuerta oR. solamente cuatro de estos se muestran en el dia_ grama pero realmentecada compuerta ".riucu. oR tiene á1";tr;;. y cada entrada pasa a través de un enraceque puede estar cortadosi así se desea. La RoM es u-na configuración de dos niveles de suma de términos mínimos. No tiene qrrusu. una configu.u"i¿., "r,-fo.-u Áñó-oR, pero puede ser cualquierotra posibleconfiguraciónde tármino. -í.,i-o* de dos nive_ les. El segundonivel es normarinenf" ,,.,, conexión de rógicacabreada(ver Secc_ión 3-7) para facilitar la fünción de los enlaces. Las RoM tienen muchas aplicacionesimportantes en el diseño de sistemas de computadoresdigitaüs. su uso para ra configuraciónde circuitos combinaciona-reses justamente una de eüs apricaciones. otros usos de las RoM-complejos se'prásentarien otras partes del ribro conjuntamente con aplicacionesparticulares. C o n f i g u r a c i ó nd e l ó g i c a c o m b i n a c r o n a l Del diagrama lógico de-la RoM, es claro que cada salida producera suma de todos los té¡minos mínimos de n variables de urrtruáu.nucuérdeseque una función de Boore puede ser expresada en forma d;-*ini-u, .;rrru de términos mínimos' Al romper,ros enlaces.de aqueilos términos que no se incluyen en la función, cada salida,le-ia RoM puedehacerrepresentarra función de Boole de una de las va.iables de sariáa u,, combina_ cional. Para un circuito combinacionarde "n "ii"uito n .ntruaá. v'.'suriaa. se nece_ sita una ROM de 2. l,^-.La ruptura de los enlaces,é ,"liur" a la progra_ mación de la RoM. El diseñadornecesita.olu-*i"-urpá"ifi.ur una tabla del programa RoM que da la info.mación para los caminos necesariosen la RoM. La programaciónactual ur-u.r pro""dimiento del material (hard_ ware) que sigue las especificaciones ristadas en la tabl; áe programación. Para aclarar er procesoes necesa¡ioun ejemplo específico.La tabla en la. Ficu{g.5-23_(a) un circuito combinacionalcon 9:-uutlud, dos entradas y dos salidas. Las ".p".ifi., frnciones de Boole p".a"" expresarseen suma de términosmínimos:
F , ( A , ,A ) : > ( 1 ,2 , 3 ) Fr(Ar, Ao): >(0, 2)
H ti
*
t; ';
t;
c
'i
z¿
¿C
E a
: F 'i 9a
O-:
óN C,^
(J
t9l
bc
192
L O G I c Ac o M B I N A C I o N A Lc o N M S I Y L S I
CAP. 5
Cuandose configuraun circuito combinacionalpor medio de una ROM, las funciones deben expresarseen suma de términos mínimos o mejor aún por una tabla de verdad. Si la salida de las funcionesse simplifica, se encuentra que el ci¡cuito necesita solamente una compuerta OR y un inversor. obviamente, este es un circuito combinacionalsimple para ser ejecutado con una RoM. La ventaja de las RoM es su uso en circuitos combinacionales complejos.Este ejemplo solamentedemuestrael procedimientoy no debe considerarseen una situación práctica. La ROM que configura el circuito combinacionaldebe tener dos entradas y dos salidas de tal manera que su tamaño deberá ser 4 X 2. La Figura 5-23(b) muestra la construcción interna de una ROM. Es necesario determinar cuál de los ocho enlacesdisponiblesdeben rompersey cuáles deben dejarse sin tocar. Esto puede hacersefácilmente de las funciones de salida listadas en la tabla de verdad. Aquellos términos mínimos que especificanuna salida de 0 no deben tener un camino a la salida a través de una compuerta OR. Así, pera este caso particular la tabla de verdad muestra tres ceros y sus correspondientesenlaces con las compuertas OR que deben quitarse. Es obvio que se debe asumir que un circuito abierto a una compuerta OR se comporta como una entrada de 0. Algunas ROM vienen con un inversor despuésde cada una de las compuertas OR y como consecuenciase especificaque inicialmente tienen todos 0 en sus entradas. El procedimiento de programaciónde tales ROM requiere que se abran los enlaces de los términos mínimos (o direcciones) que especifiquenuna salida de 1 en la tabla de verdad. La salida de la compuerta oR complementa la función una vez más para producir una salida normal. Esto se muestra en la ROM de la Figura b-28(c). El ejemplo anterior demuestrael procedimientogeneralpara ejecutar un circuito combinacionalcon una ROM. A partir del número de entradas y sahdas en el circuito combinacional,se determina primero el tamaño de la ROM requerido.Luego se obtiene la tabla de verdad de programaciónde la ROM; no se necesitaninguna otra manipulación o simplifieación. Los ceros (o unos) en las funcionesde salida de la tabla de verdad especifican directamente aquellos enlaces que deben ser removidos para producir el circuito combinacionalrequeridoen la forma de suma de términos mínimos. En la práctica, cuando se diseña un circuito por medio de una ROM, no es necesariomostrar enlaces de las conexionesde las compuertasinternas dentro de la unidad como se hizo en la Figura 5-23;lo cual fue mostrado para propósitos de demostración solamente. Todo lo que el diseñador tiene que hacer es especificar la ROM (o su número asignado) y dar la tabla de verdad de la ROM como en la Figura 5-23(a).La tabla de verdad da toda la información para programar la ROM. No se necesita un diagrama interno que acompañe la tabla de verdad. EJEMPLO 5-5.' Diseñar un circuito combinacional usando una ROM. El circuito acepta un número de 3 bits y generaun número binario de salida igual al cuadrado del número de entrada. El primer paso es deducir la tabla de verdad para el circuito combinacional. En la mayoría dé los casoses todo lo que se nece-
üH ¡l
Tabla 5-5
I
Tabla de verdad para el circuito del Ejemplo 5-5
ii
:.4
At
Ao
0 0 I I 0 0 I
0 I 0 I 0
I
t
0 0 0 0 I I I I ^2
I
0
^
84
85
0 I 4 9 l6 25 36 49
000000 000001 000100 001001 010000 0ll00l 100100 ll000l
ro
ñl
0 0 0 0
ROM 8x4 F2
Bs B ^
Bo
Bt
82
83
A2 At
Ft
i?
Salidas
Entradas
F3
F4
B3 B2
Bl
(a) Diagramade bloque
00 0l l0 ll 00 0l 10 1l
Ao
Fr
F2 F3 F4
0000 0000 000I 0010 0100 0ll0 l00l ll00
D
(b) Tabla de verdadde la ROM
de la ROM del Ejemplo5-5 Figura 5-24 Configuración verdad más sita. En algunos casosse puede encajar una tabla de I.u.tabla de propiedades p"i" r" ROM usándo ciertas -ttt ;"Ñ; de vertabla la es 5-5 Tabla La uerd"d dél circuito combinacional' entratres las necesitan se aáa p"r" el circuito combinacional. posibles. números los todos para acomodar. ralidas tres il ;l-[ siempre igual a la entrada Ao de tal que la saliáa Éo S. ", "otu que no es necesariogenera-r86 c9n la ROM.ya que es manera es i.ta lrariuble de entrada' Sin embargo' la salida B' ig";i; necesita Se es conocida' que siempre ó, d" t"l manera dos "i"*p* g"""iut sólamente cuatro entradas con una ROM; las otras tener debe 3e obtienen fácilmente' El tamaño mínimo de la ROM ocho tres entradas y cuatro salidas. Las tres entradas especifican La 4. 8X ser debe ROM la p"fu¡ru, de taÍ maneraque el tamaño de tres Las 5-24' Figura la en con ROM se muestra i""fig*".i¿n Las er,traáas especifican ocho palabras con cuatro bits cada una. a igrrales son combinacionales clrcuitos los de ;l;;; d". ,"lidur 193
194
L o c r c Ac o M B t N A c t o N Ac Lo N M S ty L S t
cAp. 5
0 y Au. La tabia de verdad de Ia Figura 5-24 especificatoda Ia información necesaria para programar la RoM y el diagrama de b l o q u e r ¡ ¡ u e s i r e l a s c o n e x i o n e sr e o u e r i d a s . Tipos de ROM Los caminos necesarios en una RoM pueden ser programados de dos maneras diferentes. La primera se llama programación por mascara y la hace e l f a b r i c a n t e d u r a n t e e l ú l t i m o p r o c e s od e f a b r i c a c i ó n d e l a u n i d a á . E l p r o cedimiento para fabricar una RoM requiere que el cliente llene la tábla de verdad según lo que se desea que la RoM satisfaga. La tabla de verdad debe ser entregada en una forma especial suministrada por el fabricante. Muy a menudo, se entrega en cinta de papel o tarjetas perfbradas en el formato especificado en la hoja de datos de una RoM parficular. El fabricante hace Ia máscara correspondiente para que los caminos produzcan unos y ceros de acuerdo a Ia tabla de verdad del cliente. Este procedimiento es muy costoso ya que el vendedor le carga al cliente una tarifa especial por hacerle una RoM con máscara. Por esta razón, Ia programación con máscara es económica solamente si se van a fabricar grandes cantidades del mismo tipo de configuración de ROM. Para pequeñas cantidades, es más económico usar un segundo tipo d e R o M l l a m a d o m e m o r í a p r o g r a m a b L ed e s o l o l e c t u r a o p R o M ( d e p . o g r a mable read-only memory). cuando se ordenan, las unidades pRoM .onti.nen ceros (o unos) en cada bit de las palabras almacenadas. Los enlaces en el PROM se rompen por medio de pulsos de corriente a través de los terminales de salida. un enlace roto define un estado binario y uno no roto representa el otro estado. Esto le permite al usuario programar Ia unidad en su propio laboratorio para lograr la relación deseáda*entre las direcciones de entrada y las palabras almacenadas. Comercialmente se obtienen unidades especiales llamadas programadores de pVoM para facilitar este procedimiento. De todas formas, todos los procedimientos para programar las RoM son procedimientos de los materiales (hardware) aunque se use la palabra programación. EI procedimiento de los materiales para programar RoM o pRoM es irreversible y una vez programados el patrón dado es permanente y no puede alterarse. una vez que se ha establecido un patrón de bits se debe descartar la unidad si se quiere cambiar el patrón de bits. Un tercer tipo d e u n i d a d e s l a l l a m a d a P R O M b o r r a b l e o E p R o M ( d e e r a s a b r ep R o M ) . Las EPROM pueden ser recuperadas a su valor inicial (todos unos o todos ceros) aunque se hayan cambiado previamente. cuando una EpRoM se coloca bajo una luz ultravioleta especial por un periodo dado de tiempo, Ia radiación de onda corta descarga los puentes internos que sirven de contactos. una vez borrada la RoM regresa a su estado inicial para ser reprogramada. Ciertas RoM pueden ser borradas con señales eléctricas en v e z d e l u z u l t r a v i o l e t a y s e l e s l l a m a a l g u n a s v e c e sR O M e l é c t r i c a m e n t e o l t e r a b l eo E A R O M . La función de una RoM puede interpretarse de dos maneras diferentes. La primera interpretación es la de una unidad que configura cualquier circuito combinacional. Desde este punto de vista, cada terminal de sálida
t!? SEC.5-B
A R R E G L OL O G I C OP R O G R A M A B L(EP L A )
195
s e c o n s i d e r a s e p a r a d a m e n t ec o m o u n a s a l i d a d e u n a f ' u n c i ó n d e B o o l e e x presada .n .,,Áu de términos mínimos. La segunda interpretación consifijo hera Ia ROM como una unidad de almacenamiento que tiene un patron e n t r a d as l a s f o r m a , e s t a d e V i s t o p a L a b r a s . l l a m a d a s d e b i t s c a d e n a s de que se e s p e c i f i c a n u n a d í r e c c i ó n p a t a u n a p a l a b r a e s p e c í f i c aa l m a c e n a d a upii.u luego a las salidas. Por ejemplo, la ROM de la Figura 5-24tiene tres líneas de dirección las cuales especificanocho paiabras acumuladas de la manera dada en la tabla de verdad. Cada palabra tiene cuatro bits de Iongitud. Esta es Ia razón por Ia cual se le ha dado a la unidad ei nombre d e " m e m o r i a d e s c , l o I e c t u r a . l l t l p ¡ n t t r i os e u s a c o m u n m e n t e p a r a d e s i g n a r u n a u n i d a d d e a l m a c e n a m i e n t o .L e c t u r o s e u s a p a r a i m p l i c a r q u e e l c o t r tenido de una paiabra especificada por una dirección en una unidad de almacenamiento se localiza en los terminales de salida. Así' una ROM es una unidad de memoria con un patrón fijo de palabra que puede ser leídtr bajo la aplicación de una dirección dada. El patrón de bits en la ROM es permanente y no puede cambiarse durante la operación normal' Las ROM se usan extensamente para ejecutar circuitos combinacionales complejos directamente de sus tablas de verdad. Son muy útiles para convertir á".rtt código binario a otro (tal como ASCII a EBCDIC 9 vice-, versa), para funciones aritméticas como multiplicadores, para mostrar caracteres en un tubo de rayos catódicos, y en cualquier otra aplicación que requiera un gran número de er,tradas ¡,'salidas. Se emplean tambiérl en el dlseño de unidades de control de los sistemas digitales. Como tales, s e u s a n p a r a a l m a c e n a r p a t r o n e s f i j o s d e b i t s q u e r e p r e s e n t e nu n a s e c u e n c i a d e v á r i a b l e s d e c o n t r o l n e c e s a r i o sp a r a h a b i l i t a r l a s d i f e r e n t e s o p e r a ciones en el sistema. Una unidad de control que utiliza una ROM para almacenar infbrmación de control binario se llama una unidad de c'tntrttl m í c r o p r o g r a m a d a .E l C a p í t u l o 1 0 t r a t a r á e s t e t e m a e n m á s d e t a l l e s .
5-8
PLA) L O G I C OP R O G R A M A B L(E ARREGLO
Un circuito combinacional puede tener ocasionalmente condiciones de ntr importa. Cuando se configura con una ROM una condición de no importa se convierte en una dirección de entrada que nunca ocurre. Las paiabras en las direcciones de no importa no necesitan ser programadasy pueden dejarse en su estado original (todos ceros o todos unos). El resultado es qr. no todos los patrones de bits disponibles en la ROM se usan, lo cual se considera como un desperdiciode equipo disponible. Considéresepor ejemplo, un circuito combinacional que convierte utr código de tarjeta de 12 bits a un código alfanumérico interno de 6 bits, corno J" lista en Ia Tabla 1-5. El código de tarjeta de entradas consiste en 1 2 l í n e a s d e s i g n a d a sp o r 0 , 1 , 2 , . . , 9 , 1 1 , 1 2 . E l t a m a ñ o d e I a R O M p a r a c o n f i g u r a r e l ó o n v e r s o r d e c ó d i g o d e b e s e r 4 0 9 6X 6 , y a q u e h a y 1 2 e n t r a d a s y O salidas.Hay solamente 4? entradas válidas para el código de tarjeta y el resto de cómbinaciones son condiciones de no importa. Se usan así iolamente 47 palabras de las 4096 disponibles. Las 4049 palabras restantes no se usan y se desperdician. Para aquellos casos en los cuales el número de condiciones de no importa es excesivo, es más económico usar un segundo tipo de componente
{i
1
ir
1
,f
'::q
;
I96
L O G I C AC O M B I N A C I O N ACLO N M S I Y L S I
CAP. 5
LSI Ilamado arreglo Iógicoprogramabreo pLA (viene d,eprogramabre rogic arrayl. un PLA es similara una RoM en concepto;sin embargo pl,A;lo el produce la decodificacióncompleta de las variáblÁ y no genera todos los términos mínimos como en una RoM. En un pLA, eidecodificador se remplaza mediante un grupo de compuertas AND, cada una de las cuales pueden ser programadaspara generar un término'producto ¿e-las variables de entrada. [,as compuertasAND y oR dentro del pLA se fabrican inicialmen_ te con enlaces entre ellas. Las funciones específicasde Boole se ejecutan en la forma de suma de productos al abrir los enlaces adecuadosy d;ja; ú; conexionesdeseadas. un diagrama de bloque de un pLA se muest¡a en la Figura 5-25. Este consiste en n entradas, rn salidas, ft términos de producto y rn términos de sunra. Los términos de producto constituyen un grupo de á compuertas AND y los términos de suma co-nstituyenun g,upo ae"-'comprr"rtu. oR. Los enlaces se colocan ent¡e todas las entradá, ,, y ,us valores complementados. otro grupo de enlaces en ros inversores de salida p"r-ii" q"e se genere la función de salida o en la forma de AND-oR o ü forma AND-O:R inver_ tida. con el enlace del inve¡sor en su rugar, se "r,puentea dando una configuraciónAND-OR. cuando se rompe elinlace el"l'irr.r"rro. inversor se vuel_ be parte del circuito y la función se configuraen la forma AND-oR inve¡_ tida. EI tamaño del PLA se especificaoor el número de entradas, el número de términos de producto y el número de salidas (el número de términos de suma es igual al número de salidas). Un típico pLA tiene 16 entradas,4g términos producto y 8 salidas.* El número de enlaces programados es 2 ¡ t x k * h x m f r n m i e n t r a sq u e l o sd e l a R O M s o n2 , x;.' La Figura 5-26 muestra una construccióninterna de un pLA específico. Tiene t¡es entradas,tres términos producto y ao. Tal pLA es muy pequeñopara encontrarsecomercialmente;se presenta "utiáus. aquí solamente para propósitode demostración.cada entrada y su tomplemento se conecta por medio de enlacesa las entradas de todas las compueitas-eN¡. Las sali_ {as -de-las compuertas AND se conectan por medio de enlaces a cada entrada de las compuertasoR. se suministran dos enlacesmás con los inversores de sa.lida' Al romper los enlaces seleccionadosy dejar olro. rugar, es posible,ejecutar configuracionesde funcionesde Éoolé ".r de suma en la fbrma oe productos. De la misma fo1la que la ROM, el pLA puede ser programablepor máscara o programablepor el usuario (programaciónde óu,opol. con un & términos producto (compuertas AND)
Figura b-2b *El
CITTL tipo 82S100.
¡n términos suma (compuertas
oR)
Diagrama de bloque del pLA
o
(!
ú o o
N
o
@ .ir !6 \o
a .-/ 6É
;:6o
F¡
O.
qE
)!z :
Tó
tri'6 6 ¡r '= b¡E llI
197
198
L O G T CCAo M B | N A C | O NCAOL NM S ty
LSt
C A p .5
PLA programable por máscara, el cliente debe entregar una tabla de pro_ gramación der pLA al fabricante Est.a tabra.se,r.u io, el fabricante para producir un pLA hecho puru ui-"tl'nte con to. rnrernos requeri_ dos enrre las enrradas v'las.áliá"]. u " . " g r " i r _"; u ; ;-"i ' o . pLA disponible se llama arregto tógryo
iroer"iitt"2n ,t ,o,ip, fi,Te field prosram_ arrav.).nt .pie p""J" ser.programuao " po. tde :i"b^1:-tlqt" -H;;ñil.iu0o.", usuariopor medio oe crerros procedimientosrecomendadás. "i comerciales de materiales (hardwa..l pu.uu.u.-"on¡u.rta-e.,te-"o., ciertos F'LA. Tabla de programadel pLA El uso de un PLA debeser considerado para los circuitoscombinacionales q u e t i e n e nu n g r a n n ú m e r o d e e n t r a J a sy s a r i d a s E . s s u p e r i o ra u n a R o M para circuitos que tienen un gran ^i^rro de condici,onls de no importa. El ejemplo presentadou .oniinuu"io" ¿"-r.r*;;; se programa un PLA' Manténgaseen mente cuando se obse.rve el ejemploque tal circuito sencillo no necesitaun pLA vu ñ su configuraciónpuedeejecutarse más económicamente con compuertasSSI. considéresera tabla d" ;;.;;J'd-el circuito combinacionalmostrado en la Figura E-27(a).Aunque ñóu rá.'i,]""l"rrs en la fbrma de suma de términos mínimos ""u un pLA, "o.,rigu." r". r,i"."i"res en ra forma de suma de productos. cada t¿i,'ino ¿""otrriñ-,ia p.;;;;r';;^ü'u"p.".ron requiere una compuerta AND. como el número.d" pLA es en un finito, es necesariosimplificar-u "o-puu.l".^año r"""i¿" ñi",_" de términos de producto nara poder m-i;i;";"i ";;-;il; r,,i-"ro de compuertas AND usadas.
l":'J:'Ut"¡'ffiT*1$;;
,1,-"ia" productos ."'oüii""".,derosma-
Ft: AB' + AC Fz: AC + BC Hay tres términosde productodistintos AB" AC v BC. El circuiro ri";;-;.;";nrradasen estecircuito cc¡mbinacionar: y dos salidas;asÍ el pLA de la Figura b-26 puede ;";; ;;;g".u. rrs.arse La programación-qe-l pLÁ .ig"iii"u que "rt"-.rr"rliJ ""*¡inacional. se especificanlos caminos en su patrón AND-oR-Nor. una taÉla de programaáe pLA típica se muestra en la Figura 5-27(c).Esta consist" t.". columnas. La primera columna lista los rérminos de producto-;;;¿;i;"-ente. "r, cifica los caminos necesariosentre ras-l.rtradas La ,"g";í; columna espe_ y las compuertasAND. La terceracolumnaesnecificalos caminos -r"-^il"riü" entre las_ compuertás AND y las oR. Bajo cada variable de salüa, una v (verdadero)si ra función debe complementarsecon el i.r,u"rro, de salida. Los términos de,Boole lis_ tados a la izquierda no son parte de la tabra; ;;^i;;;uyen solamente como ¡eferencia. "ll;. Para cada término producto,se marcan las entradascon 1,0, ó - (guión). si la variable en aparece en su forma normal (no i,."a""t" tildada), la va¡iable"11it.-i"g de..entrada ." 1. si apa_ rece complementada(tirdada) "o..".po.rai"rrt" ." ^u.i;;;; r" -u."i un 0. Si la variabreestá ausente "on
A R R E G L OL O G I C OP R O G R A M A B L (EP L A )
sEc. 5-8
199
e n e l t é r m i n o p r o d u c t o s e m a r c a c o n u n g u i ó n . C a d aentradas t é r m i n oyp rlas o d c,muctose entre las asocia con una .o-prrarü AND. Los caminos ru columna llamada entradas.un 1en la puertas AND se Ia correspondienteentrada "!p;^fi;;¡u:o columna de entraoal-s;;;ili"" Ln camino desde producto. un 0 err la término el que forma a la entrada ¿" ru "o*pir"ilu-AND Éa*i'o entre la entrada correspondiente columna de entrada;;;;ift;"; de la compuerta AND' Un guión no especifica complementaday t" "rri."d" los que quedan forman los conexión. Los enlaces adecuadosse rompen.y 5--26-Se asurne que los Figura ü caminos deseadoscomo se muestra "n AND se óomportan como una entrada terminales abiertos ;;1"";";;"erta de 1. L o s c a m i n o s e n t r e l a s c o m p u e r t a s A N D y o R s e e s p e ccon i f i cunos a n b apara jolasco se marcan lumn'rs llamadas sat'idas.Las variables de salida la de f'unción' En el ejemplo aquellos términos pr"J".t" que formulan la Figura 5-27 se tiene: F, : AB, + AC producto 1 y 2 y se marca con un 1 para los términos de tal forma que Ft 'i¿r-i"" que tiene g. producto término Cudu producto con un guión Para el
IJ
,{ \------Y---,
00 00 00 0l l0 1l 00 l1
00 0l l0 ll 00 OI l0 1l
L ¡'1
=AB,+AC B
I
(a) Tabla de verdad
,{
I
\_---r--J C ¡:. -_AC + BC (b) SimplificaciónPormaPa l'érmrno producto I l
AB, AC BC
3
Entradas ABC
10 ll 1l
Salidas F) F,
1 l1 -l
TT
TiC
(c) Tabla de Programa del PLA Figura
5-27
Pasos necesarios en la configuración del PLA
200
L O G I C AC O M B I N A C I O N ACLO N M S I Y L S I
CAP. 5
un 1 en la columna de salida requiere un camino desde la compuerta AND correspondientehasta la compuerta de salida OR. Aquellos marcados con un guión no especificanconexión. Finalmente una salida V (verdadera) indica que el enlace a través del inversor de salida permaneceen su lugar y un c (complemento)indica que el enlace correspondienteestá roto. Los caminos internos del PLA para este circuito se muestran en Ia Figura 5-26. Se asume que un terminal abierto en una compuerta OR se comporta como un 0 y que un corto circuito a través del inversor de salida no daña el circuito. cuando se diseña un sistema digital con un PLA no es necesariomostrar las conexionesde Ia unidad como fue hecho en la Figura b-26.Todo lo que se necesitaes una tabla de programacióndel PLA mediante la cual se puedeprogramarel PLA para dar los caminos adecuados. cuando se configura un circuito combinacionalcon pLA, se debe hacer una investigación cuidadosa para poder reduci¡ el número total de términos producto ya que un PLA podría tener un número finito de términos AND. Esto puedehacersesimplificando cada función al mínimo número de términos. El número de literales en un término no es importante ya que se tienen disponibles todas las variables de entrada. Los valore. ue.áaderosy de complementode la función debensimplificarsepara ver cual se puede expresar con menos términos producto y cual produce términos producto que son comunesa otras funciones. EJEMPLO funciones:
5-6.. Un circuito combinacionalse define nor las Ft(A,B, C) : )(3, 5,6,7). F 2 ( AB, , C ) : ) ( 0 , 2 , 4 , 7 )
configúreseel circuito con un PLA de 3 entradascuatro términos productoy dos salidas. Las dos funciones se multiplican en los mapas de la Figura 5-28. Ambos valores verdaderosy complementosde Ia función se simplifican. Las combinacionesque dan un número mínimo de términos producto son: Fr: (B'C' + A,C, + A,B,), Fz: B'C' + A'C' + ABC Esto produce solamente cuatro términos producto diferentes: B'C' , A' C' , A'B' y ABC. La tabla programadel pLA paraestacombinación se muestra en la Figura 5-28. Nóteseque la salida F, es la salida normal (verdadera)aunquese marque una c bajo ella. Esto es debidoa que Fí se generaantes del inversor de salida. El inversor complementala función para producir F, a la salida. El circuito combinacionalpara este ejemplo es muy pequeñopara una configuraciónpráctica con un PLA. Este se ha presentadoaquí solamente
j,
B
B
I A)' L
o{ L
I
I
I
-_
--_-J
C FI.=8,C,+A,C,+ABC
L
F1=AC+AB+BC B
I U
,{
0
0
0
,tI
0
0
0
0
\____Y_/
-r--/ L
F i = s ' c ' + A ' C ' +A ' B '
Fi=B'C+A,C+ABC
Tabla de prog¡ama de un PLA Términos Entradas productos A B C B,C, A,C, A'8, ABC
I 1 5
4
-00 0-0 00 tll
Sali{as Ft F2 ll ll l-l
CT
ttL
Figura 5-28 Solucióndel Ejemplo5-6 para propósitos de demostración. Un PLA típico comercial tiene más de 10 entradas y cerca de 50 términos producto. La simplificación de las funciones de Boole con tantas variables debe llevarse a cabo por medio del método de tabulado u otro método de simplificación a base de computador. Aquí es donde el programa de computador puede ayudar al diseño complejo de Ios sistemas digitales. El programa del computador debe simplificar cada función del circuito combinacional y su complemento al mínimo número de términos. El programa selecciona el número mínimo de términos diferentes para cubrir todas las funciones en su forma verdadera o de complemento.
5-9
N O T A SC O N C L U Y E N T E S
Este capítulopresentauna variedadde métodosde diseñopara los circuitos combinacionales. También presenta y explica un número de circuitos MSI y LSI que pueden ser usados para diseñar sistemas digitales más
201
202
L O G I c Ac o M B I N A c I o N A LC o N M S I Y L S I
t¿
CAP. 5
complicados. El énfasis aquí fue sobre Ia lógica combinacional MSI y las f ' u n c i c ¡ n e sL S L L a s f u n c i o n e s d e l a l ó g i c a s e c u e n c i a l M S I s e d i s c u t i r á n e n e l c a p í t u l o 7 . E l p r o c e s a d o ry c o n t r o l M S I y l a s f u n c i o n e s L S I s e p r e s e n tarán en los capítulos 9 y 10. Los componentes del microcomputador LSI se iritroducirán en el Capítulo 12. Las funciones MSI presentadas aquí y otras disponibles comercialmente se describen en los libros de especificaciones o catálogos. Los libros d e C I c o n t i e n e n d e s c r i p c i o n e se x a c t a s d e m u c h o s M S I y o t r o s c i r c u i t o s integrados. Algunos de estos libros de datos se listan en las ref'erencias que se darán más adelante. Los circuitos MSI y LSI pueden usarse en una variedad de aplicaciones. Algunas de estas aplicaciones fueron discutidas a lo largo de este capítulo, algunas fueron incluidas en problemas y otros serán encontradas en capítulos siguientes conjuntamente con sus aplicaciones particulares. Los diseñadores recursivos pueden encontrar muchas otras aplicaciones que se ajusten a sus necesidades particulares. Los fabricantes de circuitos integrados publican numerosas notas de aplicación que sugieren la utilización posible de sus productos. Una lista de notas de aplicación puede obtenerse escribiendo a los fabricantes directamente o sólicitándola dir e c t a m e n t e a s u s r e p r e s e n t a n t e sl o c a l e s .
.
A,-
R E F ER E N C I A S t.
Yu.lo'-M. M., computer S-ysfemArchitecture. Englewoodcriffs, N. J.: prenticeHall, Inc., 1976.
z-
M o r r i s , R . L . , y J . R . M i l l e r , e d s . , D e s l g ni n g w i t h r r L Nueva Yo¡k: McGraw-Hill Book Co., 1921.
Integratedcircuits.
3 . Blakeslee,T. R., Digítal Design with standlrd MSI and LSI. Nueva york: John Wiley & Sons, 19?5. A Barna A., y D. I. Porat, Integrated Circuíts in Dígitat Electronics.Nueva york: John Wiley & Sons,1973. 5 . I,.9, s. c., Digital Circuíts and Logic Design, Englewoodcliffs, N. J.: prenticeHall, Inc.,1976. SemiconductorManufacturersData Books (consultar la última edición): (a) The TTL Data Booh for Design Engineers.Dallas, Texas: Texas Instrum e n t s ,I n c . ( b I T h e t r ' a i r c h i l ds e m í c o n d u c t o T r T L D a t a B o o k .M o u n t a i n V i e w , c a l i f . : F a i r child Semiconductor. ( c l D i g i t a t I n t e g r a t e dC i r c u i t s . S a n t a C l a r a , c a l i f . : N a t i o n a l s e m i c o n d u c t o r Corp. ( d ) S i g n e r i c sD i g i t a l , L i n e a r , M O S . S u n n y v a l e ,C a l i f . : S i g n e t i c s . (e) MECL Integrated circuits Data Booh. Phoenix, Ariz.: Motorola semiconducto¡ Products,Inc. ( f ) R C A s o l i d s t a t e D a t a B o o hS e r i e s .s o m e r v i l l e ,N . J . : R C A s o l i d s t a t e D i v .
-t-
t JI
PROBLEMAS 5-1.
Diseñe un convertidor de código de exceso 3 a BDC usando un circuito MSI de sumadores completos de 4 bits.
5-2.
Usando cuatro circuitos MSI, construya un sumador paralelo binario para sumar dos números binarios de 16 bits. Marque todos los arrastres entre ios circuitos MSL
5-3.
Usando 4 compuertas OR-exclusivas y un circuito MSI de sumadores completos de 4 bits, construya un sumador sustractor paralelo. Use una variable de selección de entrada V de tal manera que cuando V:0, el circuito suma y cuando V: t, el circuito resta. (Sugerencia: use la sustracción por complementode 2.)
5-4.
Deduzca la ecuación de dos niveles para el bit de arrastre de salida C, mostrado en el generador de bit de arrastre posterior de la Figura 5-5. (a) Usando el procedimiento de configuración AND-OR invertida descrito en la Sección 3-7, demuestre que el bit de arrastre de salida en el sumador completo puede expresarse como:
5-5.'
C¡+t :
Gi + PiCí : (Ci Pi + GiCi)'
(b) El CI tipo 74182 es un circuito MSI generador de bit de arrastre posterior que genera los bit de arrastre conjuntamente con las compuertas AND-OR invertida. El circuito MSI asume que los terminales de entrada tienen los complementos de G, P y de Cr. Deduzca las funciones de Boole para los bits de arrastre posteriores Cr, C, y C¿ en este CI. (Sugerencia: use el método de ecuación sustitución para derivar los arrastres en términos de C,') 5-6.
(a) Redefina la programación y generación de los arrastres de la siguiente forma: P': A' * B' G¡: A,B, Demuestre que el arrastre de salida y la suma de salida de un sumador completo se convierte en:
C¡*r: GiGi + Pi)': G,+ PiCi E:(P,ci)@c, (b) El diagrama lógico del primer estadodel sumador en paralerode 4 bits como se configura en el CI tipo 74288y se muestra en la Figura pb_6. Identifique los terminales Pj y Gi, como se definieronen (a) y demuestre que el circuito puedeconfigurarun sumadorcompleto. (c) Obtenga los arrastres de salida C., I C, en función de pi, pl, p!, Gí, G;, C;, y C1 en la forma de AND-OR invertida y dibujeel circuito de arrastre posterior de dos niveles para este circuito integrado. fsugerencia: use el método de ecuación-sustituciónde la forma como se hizo en el texto al deducir la Figura 5-4, pero usandola función AND-OR invertida d a d ae n ( a ) p o r C , * , . 1
203
rl
Figura P5-6 Primeraetapade un sumadorparalelo 5-7.!, (a) Asuma que la compuerta oR-exclusiva tiene una demora de propagación de 20 ns y que las compuertasAND y OR tienen una demora de propagación de 10 ns. ¿Cuál es el tiempo total de demora de propagaciónen el sumador de 4 bits de la Figura b-5? (b) Asuma que C5 se propagaen el recuadrode la Figura b-b al mismo tiempo que otros bits de arrastre (ver Problema 5-4).¿Cuál será el tiempo de demora de propagacióndel sumador de 16 bits del Problema 5-2? 5-8. Diseñe un multiplicador binario que multiplique un número de 4 bits B: b3b2btbo por un número de 3 bits A -- ararao para formar el producto C : c 6 c 5 c a cca2 c t c o . E s t o p u e d e l o g r a r s ec o n 1 2 c o m p u e r t a sy d o s s u m a d o res paralelos de 4 bits. Las compuertasAND se usan para formar los productos en pares de bits. Por ejemplo, el producto de o6 y b6 pueden generarse sacando la función AND de o¡ con ó¡. Los productos parciates formados por Ias compuertasAND se suman con los sumadoresparalelos. 5-9., ¿Cuántas entradasde no importa hay en un sumadorBDC?
l.
5-10. Diseñe un circuito combinacionalque genereel complementode 9 del dígito BDC. 5-11. Diseñe una unidad aritmética decimal con dos variables de selección,vt y vo y dos dígitos BDC, A y B. La unidad debe tener cuatro operacionesaritméticas que dependen de los valores de las variables de selección de la manera como se muestraa continuación. Función de salida
00 0l l0 ll
A + 9's complementode B A+B I * lO's complementode B (agreguelaA) A + |
use funciones MSI en el diseño y el complementador de 9 del problema b-10. 5-12. Es necesario diseñar un sumador decimal de dos dígitos representados In un código de exceso 3 (Tabla 1-2). Demuestre que la corrección después de sumar los dos dígitos con un sumador binario de 4 bits es de la siguiente manera:
204
,1, ,
P R O B T E M A S 205
(a) El arrastre de salida es igual al bit de arrastre del sumadorbinario' ( b ) S i e l a r r a s t r ed e s a l i d a : 1 , a g r e g a r0 0 1 1 ' ( c ) S i e l a r r a s t r ed e s a l i d a : 0 , a g r e g a r1 1 0 1 ' Construyae]sumadorcondossumadoresbinariosde4bitsyuninversor. 5 . 1 3 , D i s e ñ e u n c i r c u i t o q u e c o m p a r e d o s n ú m e r o s d e 4 b i t s A y B , p a r a c o nys t a t a r si A: B s i e l l o s s o n i g u a l e s .E l c i r c u i t o t i e n e u n a s a l i d a ¡ ' t a l q u e ¡ : l r:0 siA+ B. de 4 bits similar 5-14. EI circuito integrado74L85 es un comparadorde-nrggnitud internos al de la Figura i-7, exceptoque tiene tres entradasmás y circuitos medio Por P5-14. Figura la en mostrado lógico uqniuuiente que configur"., "1 de mayor de estos circuitos integrados, se pueden comparar los _números en cascaáa.Las salidasA
B y .o.r".iu, los'comparadoies longitud "l menossignificativos.quese conectana bits que contenga etapa una A: B de e t a p aq u e l a s c o r r e s p o n d i e n i eesn t r a d a sA < 8 , A > B y A : B d e l a s . i g u i e n t sigmenos bits los que manipula etapa La significativos. más manipula bits el usa se 5-?. Si Figura Ia en nificativos debe ser có-o el circuito -o.t."áo A
^3
A
Al
Ao C ircuito dela Figura 5-7
B3
A>B
A>B
B2 Bl A=B
Bo AB A=B
I al CI tipo 74L85 lógicamente Figura P5-14 Circuitoequivalente
, 5-15. Modifique el decodificadorde BDC a decimal de la Figura 5-10 para obtener inválida' una salida de sólo ceros cuando ocurra una combinaqión de entrada BDC decodificador un /5-16. Diseñe ün convertidor de código BDC a exceso3 con a decimal Y cuatro comPuertasOR. fun' b-lTY'Un circuito combinacionalse define por medio de las tres siguientes ciones:
t¡
Ft:
x'/' * ryz'
Fz:x'*Y Fr:
xy * x'y,
Diseñe un circuito con un decodificador y compuertas externas. y'o-18. Un circuito combinacional se define por medio de las dos sizuientes funclones:
F,(x,y) : >(0,3) Fr(x,y) : >(1,2, 3) Configure el circuito combinacional por medio del decodificador mostrado en la Figura 5-12 y compuertas NO-y externas. r
5-79. Construya un decodificador de 5x 32 con cuatro decodificadores demultiplexores de 3 x 8 y un decodificador de 2 x 4. Use la construcción de diagrama de bloque de la Figura b-14.
t 5-20. Dibuje el diagrama lógico de un decodificador demultiplexor de 2 a 4 líneas usando solamente compuertas NO-O. 5-21' Especifique la tabla de verdad de un decodificador de prioridad de octal a binario. coloque una salida para indicar que al -.r,o. unu de ras entradas es 1. La tabla puede ser listada con b filas-y algunas de las entradas pueden tener valores de no importa. 5-22. Diseñe un codificador de prioridad de 4 a 2 líneas. Incluya una salida E para indicar que al menos una de las entradas es 1.
¿_-
5-23. Configure la función de Boole del Ejemplo 5-4 con un multiplexor de g x 1 con A' B y l) conectados para seleccionar ias líneas s2, sr y s6 respectivamente. 5-24. Configure el circuito combinacional especificado en el problema 5-1T con un doble multiplexor de 4 a 1 línea, una compuerta o y un inversor. 5-25. Obtenga un multiplexor de 8x I con un doble multiplexor de 4 a 1 línea con entradas de habilitación (enable) separados pu.o .o., Iíneas de selección comunes. Use la construcción por diagrama de bloque. 5-26. configure un circuito sumador completo con multiplexores. 5-27. La RoM de 32 G conjuntamente con ra línea 20 como se muestra " en la Figwa P5-27 convierte un número binario de 6 bits a su correspondiente número BDC de 2 dígitos. por ejemplo, er binario 100001se convierte al BDC 011 0011 (decimal 83). Especifique la tabla de verdad para la ROM. 23 22 2l ABCD 32x6ROM Ft F2 F3 Ft
\___Y-_i
l0r Figura P5-27
206
Fs
L____T____-_J
100
Conversorde binario a decimal
A
PROBLEMAS 2O7 que 5-28. .Pruebe que una ROM de 32 X 8 puede usarse para configurar un circuito : Ao Bo con de entrada 5 bits ! de número de un genere ei cuadrado binario É, : 0. Como en la Figura 5-24(a). Dibuje el diagrama de bloque del circuito y lirt. las primeras y últi*u. entradas de la tabla de verdad de la ROM. 5-29.,7¿Qué tamaño de ROM se usaría para configurar: (a) Un sumador sustractor BDC con una entrada de control para seleccionar entre Ia suma Y la resta? (b) un multiplicador binario que multiplica dos números de 4 bits? (c) unos multiplexores dobles de 4 a 1línea con entradas de selección comunes? / remplaza con una S-gO/ Cada inversor de salida en el PLA de la Figura 5-26 se dos entradas. tiene OR-exclusiva compuerta Cada OR-exclusiva. compuerta y otra entrada se la oR la compuerta una entrada se conecta a Ia salida de Demueso uno' cero a equivalente señal a una enlaces por de medio conecta tre cómo ."leccionu. la salida verdadera,/complemento en esta configuración' que S-gf l Deduzca la tabla de programación del PLA para el circuito.combinacional términos de número el eleva al cuadrado ,r., iú.n".o de 3 bits. Minimice producto. (Ver la Figura 5-24 para la configuración con ROM equivalente') de código de 5-32. Liste la tabla de programación del PLA para el convertidor 4-5' BDC a exceso 3 definido en la Sección
t
á
Lógica secuencial I I t,l
6- 1
I
INTRODUCCION
Los circuitos digitales hasta ahora consideradoshan sido combinacionales, es decir, las salidas en un instante dado de tiempo son enteramente dependientes de las entradas presentes en ese mismo tiempo. Aunque cada sistema digital debe tener circuitos combinacionales,la mayoría de los sistemas encontradosen la práctica incluyen también elementos de memoria, los cuales requieren que el sistema se describa en términos de la lógica secuencial. Un diagrama de bloque de un circuito secuencialse muestra en la Figura 6-1. Este consiste en un circuito combinacionalal cual se le conectan elementosde memoria para formar un camino de realimentación., Los elementosde memoria son capacesde almacenar información binaria dentro de ellos. La información binaria almacenada en los elementos de memoria en un tiempo dado define el estado del circuito secuencial.El circuito secuencial recibe la información binaria de las entradas externas. Estas entradas, conjuntamentecon el presenteestado de los elementos de memoria, determinan el valor binario de los terminales de salida. También determinan la condición de cambio de estado en los elementos de rnemoria. El diagrama de bloque demuestra que las salidas externas en un circuito secuencialson una función no solamente de las entradas externas sino del presente estado de los elementos de memoria. El siguiente estado de los elementos de memoria es también una función de las entradas externas y del estado presente. Así, un circuito secuencial se especifica por medio de una secuencia de tiempo de las entradas, salidas y estadosinternos. Hay dos tipos de circuitos secuenciales.Su clasificación depende del tiempo de sus señales.Un circuito secuencialsincrónico es un sistema cuyo comportamiento puede definirse a partir del conocimiento de sus señales en instantes discretos de tiempo. El comportamiento de un circuito asincróníco depende del orden en que cambien las señales de entrada y puedan ser afectadas en un instante dado de tiempo. Los elementos de memoria comúnmente usados en los circuitos secuencialesasincrónicos son mecanismosretardadoresde tiempo. La capacidad de memoria de los mecanismosretardadoresde tiempo se debe al hecho de que la señal 208
¡
i {
-t
Entradas
Circuito combinacional
Figura
6-1
Diagrama de bloque de un circuito secuencial
gasta un tiempo finito para propagarsea-través del dispositivo. En la práctiietardo de propágacién interna de las compuertas lógicas es de una ;", "t pltt" producir el retardo necesario,de tal manera duración suficientó "o-o de rétardo de tiempo puedan ser despreciables. fisicas il; i;. unidades Ér, los sistemas asincrónicos tipo compuerta, los elementos de memoria de ü¡lisot" 6-1 consisten en compuertas lógicas €uyos retardm de,propagación la memoria reqn"iid". Así, un circuito secuencial asincronico ;;.tlút"" puede tomarse como un ciróuito combinacional con realimentación. Debido a la realimentación entre las compuertaslógicas,un circuito secuencialasinpuede a veces volverse inestable. El problema de inestabilidad im"Jtti"o po"" Á""rtas dificultades al diseñado¡. Por tanto, su uso no es tan común como en los sistemas sincrónicosun sistema lógico secuencial sincrónico, por definición, puede usar señales que afecten"los elementos de memoria solamente en instantes de discreto. Una forma de lograr este propósito es usar pulsos de ;ü;p. duración limitada a través del sistóma de tal manera que la amplitud de un pulso representelógica 1 y otra amplitud de pulso (o la ausencia de un pulso) représente lógica 0. La dificultad con un sistema de pulsos es que iuufq"i"i par de pn-l.or que lleguen de fuentes separadas independientes a las entradas dé la misma compuerta mostrarán retardos no predecibles de tal manera que se separaiátt los pulsos ligeramente, resultando una operaciónno confiable. Los sistemas lógicos secuencialessincrónicos prácticos usan ampli-de las señales binarias' La tudes fijas tales coñro niveles de voltaje para tiempo llamado generadcir sincronización se logra por un dispositivo periódico de pulsos de reloj- Los genera un tren maestro de tiempo "l "rrál de tal manera que los sistema del través se distribuye.r pulsos de reloj-memori" " la llegada del pulso con solamente afectadas rotr ilementos de aplica a las comse pulso reloj de práctica, el la En sincronización. de los cambios que especifican las ieñales con conjuntamente AND ¡pnetta* -iequeriaos AND la compuerta de en los élementos de memoria. Las salidas con que coinciden instantes los en solamente pnLd"n trasmitir señales sincrónicos secuenciales circuitos Los reloj.r pulsos de los de ia llegada q,r" ,íu¡ pulsos dó reloj en las entradas de los elementos de memoria se liaman círcuitos secuencialestemporizados. Los circuitos secuenciales temporizados son el tipo más comúnmente usado. No presentan proble¡¡ur d" inestabilidad y su temporización se divide fácilmente en pasos discretos independientés, cada uno de los cuales se considera separadamente. Los circuitos secuencialesque se discuten en este libro son exclusivamentedel tipo temporizado. 209
2IO
L O G I C AS E C U E N C I A L
CAP. 6
Los elementosde memoria usados en los circuitos secuencialestemporizados se llaman flip-flops. Estos circuitos son celdas binarias cafa_ ces de almacenar un bit de información. un circuito flip-flop tiene áos entradas, una-para el valor normar.y rrqo para el valor cbmplemento del bit almacenado en é1. La informacién binaiiá p""¿" ."to, á ,r., flip flop -tipos en una variedad de formas, hecho éste, que determina diferentes de flip-flops. En la siguiente secciónse examinan varios tipos de flip-flops y se definen sus propiedadeslógicas. 6-2
FLIP-FLOPS
un circuito flip-flop puede mantener un estado binario indefinidamente (siemprey cuando se esté suminist¡ando potencia al circuito) hasta que s,e cambie por una señal.de e¡trada para cambiar estados. La principal diferencia entre varios tipos de flip-fiops es el número de entradas que poseeny la manera en la cual las entradas afectan el estadobinario. ios tipos de flip-flops más comunesse discuten a continuación. Circuitobásicode un flip-flop
ú
se mencionó en las secciones 4-7 y 4-g que un circuito flip-flop puecre construirse con dos compuertas NAND o dos compuertas NoR. Estas construccionesse muestran en los diagramas lógicos de las Fig*. o-i y 6-3. cada circuito forma un frip-flop iá.i"o deicual ,e p,r"ae construir u.nomás complicado.La conexión de acoplamientointercruzado de la salida. de una. un camino de .compuertaa ra entrada de ü otra ."";;i;;; realimentación. Por esta razón, los circuitos se clasifican como circuitos secuencialesasincrónicos.cada frip-flop tiene dos salidas, y Q e, y dos entradas S (seú) y R (res-e.t). Este-tipo de flip-flop ,; iümu fúp_ftop RS acoplado directamenteo bloquead,orSR (sR latctr). La, ietra.,R y s ron las iniciales de los nombres en inglés de las entra¿as-ireset,set). Para analizar la operación del circuito de la Figuru o z se debe recordar que la salida de una compuerta NoR es 0 ; ;;;rq"ier entrada es 1 y que la salida es 1 solamente cuando todas las entradas sean 0. como punto de partida asúmaseque la entrada de puesta ; ;;" (set) es 1 y que la entrada de puesta a cero (reset) sea 0. óo-o la compuerta2 tiene una entrada de 1, su salida Q'debe ser 0, lo cual colocaambas entradas
;-J-1"
:-J-L,
(puesta a
o,
(puesta au
l¡
(a) Diag¡ama lógico Figura
6-2
l0 00 0l 00
l0 l0 01 01 00
( d e s p u édse S : 1 , 8 : 0 ) (después de S: 0, .R: 1)
(b) Tabla de verdad
Circuito flip-flop básico con compuertas NOR
E
I
FL|P-FLoPS 2l I
sEc. 6_2
f q
,
de la compuerta 1a 0 para tener la salida Q como 1. Cuando la entrada de puesta a uno (set) vuelva a 0, las salidas permanecerán iguales ya que la salida Q permanece como 1, dejando una entrada de la compuerta 2 -e n t . E s t o c a u s a q u e I a s a l i d a Q ' p e r m a n e z c a e n 0 l o c u a l c o l o c a a m b a s entradas de la compuerta número 1 en 0 y así la salida Q es 1. De la misma manera es posible demostrar que un 1 en la entrada de puesta a cero (reset) cambia Ia salida Q a 0 y Q'a 1. Cuando la entrada de puesta a cero cambia a 0, las salidas no cambian. cuando se aplica un 1 a ambas entradas de puesta a uno y puesta a cero ambas salidás I y Q' van a 0. Esta condición viola el hecho de que las salidas Q y Q' son complementos entre sí. En operación normal esta condición debe evitarse asegurándose que no se aplica un 1 a ambas entradas simultáneamente. Un flip-flop tiene dos entradas útiles. Cuando Q : 1 y Q' : 0 estará en el estado áe púesta o uno (o estado 1). Cuando Q:0 y Q': 1 estará en el estado de puósta a cero (o estado 0) . Las salidas Q y Q'son complenientos entre sí y se les trata como salidas normales y de complemento respectivamente. El estado binario de un flip-flop se toma como el valor de su salida normal. Bajo operación normal, ambas entradas permanecen en 0 a no ser que el estado del flip-flop haya cambiado. La aplicación de un 1 momentáneo a Ia entrada de puesta a uno causará que el flip-flop vaya a ese estado. La entrada de puesta a uno debe volver a cero antes que se aplique un 1 a la entrada dg. puesta a cero. Un 1 momentáneo aplicado a la entrada de puesta a cero causará que el flip-flop vaya al estado de borrado (o puesta á cero). cuando ambas entradas son inicialmente cero y se aplica un 1a la entrada de puesta. a uno mientras que el flip-flop esté en el estado de puesta a uno o se aplica un 1 a la entrada de puesta a cero mientras que ut ftlp-ftop esté en él estado de borrado, quedarán ias salidas sin cambio. Cuando sl aplica un 1 a ambas entradas de puesta a uno y de puesta a cero, ambas ialidas irán a 0. Este estado es indefinido y se evita normalmente. Si ahora ambas salidas van a 0, el estado del flip-flop es indeterminado y depende de aquella entrada que permanezca por mayor ttempo en 1 antes de hacer Ia transición a 0. El circuito flip-flop básico NAND de Ia Figura 6-3 opera con ambas entradas normalmente en 1 a no ser que el estado del flip-flop tenga que cambiarse. La aplicación de un 0 momentáneo a la entrada de puesta a
'_lr 9
l-JS(puestaauno) ( d e s p u édse S : 1 , f i : 0 ) 0 (después de S: 0, fi: I
:l-J-"*uestaace I
(a) Diagrama lógico
Figura 6-3
(b) Tabla de verdad
Circuito flip-flop básicocon compuertasNAND
1)
l!
212
L O G T C AS E C U E N C I A L
CAP. 6
uno, causaráque Q vaya a 1 y Q' vaya a 0, llevando el flip-flop al estado de puesta a uno. Después que la entrada de puesta a uno vuelva a 1, un 0 momentáneoen la entrada de puesta a cero causará la transición al estado de borrado (clear). Cuando ambas entradas vayan a 0, ambas salidas irán a 1; esta condición se evita en la operación normal de un flip-flop.
I
Flip-flop FS temirorizado
I
El flip-flop básico por sí solo es un circuito secuencialasincrónico.Agregando compubrtas a las entradas del circuito básico, puede hacerseque el flip-f'lop responda a los niveles de entrada durante la ocurrencia del pulso del reloj. El flip-flop RS temporizado mostrado en la Figura 6-a(a) consiste en un flip-flop básico NOR y dos compuertasAND. Las salidas de dos compuertas AND permanecen en cero mientras el pulso del reloj (abreviado en inglés CP) sea 0, independientementede los valores de entrada de S y rt. Cuando el pulso del reloj vaya a 1, la información de las entradas S y .B se permite llegar al flip-flop básico. El estado de puesta a uno se logracon S: 1, R:0 y CP: 1. Para cambiarel estadode puesta a cero (o borrado) las entradasdeben ser S:0, R: I y CP: 1. Con S : 1 y R: I, la ocurrenciade los pulsosde reloj causaráque ambassalidas vayan momentáneamentea 0. Cuando se quite el pulso, el estadodel flipflop será indeterminado, es decir, podría resultar cualquier estado, QQ+I\
o
0 00 0 0l 0 l0 0 ll 00 01 10
C
(Pulsos de reloj)
ll
(a) Diagrama lógico
(c) Tabla ca¡acterística
SR
V
I o1 !
tl
lx
I
w rftfl
*_l--
rlr
-¡ 'l
tr
Q(t+t):s+R,o SR:0
CP (b) Símbolográfrco Figura
6-4
(d) Ecuación característica
Flip-flop .BS temporizado
1
I
J
E
ts hl
sEc. 6-2
I
FLIP-FLOPS213
dependiendode si la entrada de puesta a uno o la de puesta a cero del ftii-¡1op básico, permanezcael mayor tiempo, antes de la transición a 0 al - final del pulso. Ei símÉolográfico del flip-flop RS sincronizadose muestra en la Figor¿ O-¿(¡).Tieñe tres entradl.' S, R y CP. La.entrada CP no se escribe pequeño á""tro deí recuadro debido a que se reconoce fácilmente por un y irianguto. E! triángulo es un símbolo para el indicador.dinámico denota ¿" que el"nip-flop respondea una transición del reloj de entrada a un nivel-alto "i-fr"Efr" o flanco de subida de una senai de un nivelWGTlnario) y dentro del recon marcan se Q', flip-flop Q del (1 binario). Las salidas diferente variable de nombre un lip-nop át puede asignar le Se cuadro. Áu"q"" ," ur.rib" u.t" Q dentro del recuadro.En este caso Ia letra escola variable del ilip-flop se marca por fuera del recuadrov a Io largo ;id;;"t; áe ta tír,ea de salida. El eitadó del flip-flop se determina del valor de su salida normal Q. Si se deseaobtener ei complementode la salida normal, no es necesariousar un inversor ya que el valor complementadose obtiene directamentede la salida Q'. La tabla característicadel flip-flop se muestra en la Figura 6-4(c). Esta tabla resume la operación de1 flip-flop en forma-.detabulado. Q es el estado binario del flip-flop en un tiempo dado (refiriéndose,aI es.tado presente),las columnas S y B dan los valores posiblesde las entradas y 'O pulso de t¿+ 1) !s el estado del flip-flop despuésde la ocurrenciade un (refiriéndoseal siguiente estado). reloj -La ecuación caracierística de un flip-flop se deduce del mapa de la Figura 6-4(d). Esta ecuaciónespecificael valor del siguiente estado como un"a función del presente estado y de las entradas. La ecuación característica es una expresiónalgebraicápara la información binaria de la tabla característica.Lós dos estádos indeterminadosse marcan con una X en la relación el mapa, -0 ya que pueden resultar como 1 o como 0. Sin embargo para especaracteústica parte la ecuación de : como aéUeinctuirse Sn que S y E no puedenser iguales a 1 simultáneamente' -__:ttt""t
P
ii;
ü :i
$ A¡
F Ir
!,]
$ ¿
E tt
H
Ftip-flopD El flip-flop D mostrado en la Figura 6-5 es una modificación del flip-flop BS sincronizado.Las compuertasNAND 1 y 2 forman el flip-flop básico y las compuertas 3 y 4 las modifican para conformar el flip-flop RS- sincronizado. La entrada D va directamente a la entrada S y su complemento se aplica a la entrada R a través de la compuerta5. Mientras que el pulso de rólo¡ de entrada sea un 0, las compuertas 3 y 4 tienen un 1 en sus sálidas, independientemente del valor de las otras entrad_as.-nlto ":!4 -9g acuerdo á ios requisitos de que las dos entradas del flip-flop básico-N{ND (Figura 6-3) permanezcaninicialmente en el nivel de 1. La entrada D se corñpr,r"ba dürante la ocurrencia del pulso de reloj- Si es 1, la salida de la (a no compuerta 3 va a 0, cambiando el flip-flop a!. estado-de puesta a uno a 0, 4 va la compuerta de la salida 0, es Si estado). ya é." esté ;;¡ó"; "tr al estado de borrado. cambiando el flip-flop El flip-flop tipo D recibe su nombre por la ha.bilidad de trasmitir "datos" a un flip-flop. Es básicamente un flip-flop RS con un inversor en
É r:
11
$ tr
l¿ ér
t
ja
E
H
f
(a) Diagrama lógico con compuertas NAND a:
cP (b) Símbolo gráfico
Qr't (c) Tabla caracte¡istica Figura
6-5
Flip-flop
l¡'-'¡1
(d) Ecuación ca¡acterística
D temporizado
la entrada ft. El inversor agregadoreduce el número de entradas de dos a uno' Este tipo de se llama algunas vecesbloqueadorD con com-flip-flop puert.aso flip-flop de bloqueo.La entrada Cp se le da a menudo la desig_ nación variable G (de gate) para indicar que esta entrada habilita el flifrflop de bloqueopara hacer posible que los datos entren al mismo. 6-5(b). La tabla característicase lista en la parte (c) y la ecuació.r;;.á;terística se deriva en la parte (d). La ecüación característica muestra que el siguiente estado del flip-flop es igual a la entrada D y es independiente del valor del presenteeÁtado. F l i p - f l o pJ K un flip-flop JK es un refinamiento del flip-flop -RSya que el estado indeterminado del tipo fis se define en el tipo ix. tá, entradas ./ y K se comportan como las entradas v n para poner a uno o cero (set ó clear) I al flip-flop (nóteseque en el flip-¡leo-¿¡4 la letra J re u.u para la entrada d,epuesta o u,noy la_.letraK para ra entrada d.e puestaa' cero¡. cuando ambas entradas se aplican a J y K simultánea.n"r,i", el flip-flop cambia a su estadode complemento,esto es, si Q : 1 cambiaá q:0 y viceversa. ^ un flip-flop oIl( sincronizadose muestra en la Figüra 6-6(a). La salida Q se aplica con K y cP a.una compuertaAND de tal manera que el flipflop .seponga a cero (clear) dura4te un pulso de reloj ,olamente si e fue 1 previamente.De manera similar la salida e' se aplica con J y cp a una compuertaAND de tal manera que el flip-flop .e p-ong"a uno con un pulso de reloj, solamentesi Q, fue 1 préviamente. como se muestra en la tabra característicaen la Figura 6-6(c), el flip-flop JK se comporta como un flip-flop RS excepto v ¡i ,Lun "rrurráo"r 214
E ia ii & g p
fl
¡!
{
(a) Diagrama lógico
.l
IK
o 000 001 0r0
tl
EH rll
011 100 101
1r0
CP (b) Símbolográfico
111 (c) Tabla característica Figura
I I
I
I
6-6
00
0
I -T o- ltl -l
1l
tr l
l0
l-' t-
K Q ( r+ t ) - t Q ' + K ' Q (d) Ecuación característica
Flip-flop JK temporizado
ambos 1. Cuando J y K sean 1, el pulso de reloj se trasmite a través de una compuerta AND solamente;aquella cuya entrada se conecta a la salida del flip-nop la cual es al presenteigual a 1. Así, si Q: 1, Ia salida de la compuertaAND superior se convertirá en 1 una vez se aplique un pulso y el flip-flop se ponga a cero' Si Q' : 1 la salida de la compuerta de reloj -convieite e.t t y el flip-flop se pone a uno. En cualquier caso, el AND se estadode salida del flip-flop se complementa. Las entradas en el símbolo gráfico para el flip-flop Jl( deben marcarse con una J (debajode Q) y K (debajode Q'). La ecuacióncaracterísticase da en Ia Figura 6-4(d) y se deduce del mapa de la tabla característica. Nótese que debido a Ia conexión de realimentación del flip-flop JI(, causarátransila señal cP que permaneceen 1 (mientrasque J:K:1) ciones repetidás y continuas de las salidas despuésde que las salidas hayan siáo complementadas.Para evitar esta operación indeseable,los prri.o. de reloj deben tener un tiempo de duración que es menor que la á.-otu de propagación a través del flip-flop. g.!" .es-*na restricción, ya que la operación*del circuito dependedel ancñb-dé lós pulsos. Por esta razón los flip-flóps JI{ nunca se construyen como se muestra en la Figura 6-6(a).La restricción del ancho del pulso puedeser eliminada con un maestro esclavo o una construcción activada por flanco de la manera discutida en la siguiente sección. El mismo razonamiento se aplica al flip-flop ? presentado a continuación. 215
(a) Diagrama lógico
tl
5Tr
{i
ll
CP
(b) Símbolográfico
Q ( t+ t ) . - r Q ' + - r ' Q (c) Tabla ca¡acterística
Figura 6-7
(d) Ecuación característica
Flip-flop ? temporizado
. Flip-flop f El flip-flop ? es la versión de una entrada, del flip-flop Jr(. como se muestra en la Figura 6-7(a),el flip-flopJse obtiene de un tipoJK a la cual se le unen las dos entradas. El nombre 7 se deriva de la habilidad del flip-flop de variar ("toggle") o cambiar estado. Independientementedel preiente estado del flip-flop, este asume el estado de complemento cuando ocurre el,pulso de reloj mientras que la entrada ? esté en lógica 1. El símbolo,la tabla característicay la ecuación característicadel flip-flop ? se muestran en la Figura 6-7, partes (b), (c) y (d) respectivamente. Los flip-flops introducidos en esta secciónson los de tipo más común comercialmente.Los procedimientosde análisis y de diseño desarrollados en este capítulo se aplican a cualquier flip-flop sincronizadouna vez que se haya definido su tabla característica. 6-3
D I S P A R OD E L O S F L I P - F L O P S( T R I G G E R I N G )
El estado de un flip-flop se,varía debido a un cambio momentáneoen la señal de entrada. Este cambio momentáneose le llama disparo (trigger) y la transición que lo causa se dice que dispara el flip-flop. Los flip-lops asincrónicos,tales como los circuitos básicos de la Figura 6-2 y 6-8, requieren un disparo de entrada definido por un cambio de niuel de señal. 216
I
D I S P A RDOEL O SF L I P - F L O( T PR S I G G E R I N2G1)7
S E C6. . 3
Este nivel debe regresarsea un valor inicial (0 en el flip-flop a base de NOR y 1 en aquella a base de NAND) antes de aplicarieel segundodisparo. Los flip-flops sincronizadosse disparan por medio de pul.sos.Un pulso comienza a partir de su valor inicial de 0, va momentáneamentea 1 y despuésde un corto período,regresaa su valor inicial 0. El intervalo de tiempo que ocurre desde la aplicación del pulso hasta que ocurra la transición de salida, es un factor crítico que requiere investigación posterior. Como se ve en el diagrama de bloque de la Figura 6-1, un circuito secuencial tiene un camino de realimentaciónentre el circuito combinacional y los elementosde memoria. Este camino puede producir inestabilidad si las salidas de los elementosde memoria (flip-flops) están cambiandomientras que las salidas del circuito combinacionalque van a las entradas de los flip-flops esténsiendosometidasa disparopor el pulso del reloj. El propuede ser prevenido si las salidas de los flip-flops no blema de..tie_,mpo corrlienzana cambiar hasta que el impulso de entrada haya retornadoa 0. Para asegurartal"operación,-un flip-flop debe tener un ietardo de propagación de la señal desdela entrada hasta la salida, en exceso,con respecto a la duración del pulso. Este retardo es comúnmentemuy difícil de controlar si el diseñador dependetotalmente del retardo de propagaciónde las compuertas lógicas. Una forma de asegurar el retardo adecuado es incluir dentro del circuito del flip-flop una unidad de retardo fisico que tenga un retardo igual o mayor que la duración del pulso. Una forma muy buena de resolver el problema de temporización por realimentación es_ hacer el flip-flop sensiblea Ia transicióñ del pulso en vez de la duración del pulso. Un pulso de reloj puede ser positivo o negativo. Una fuente de reloj positiva permaneceen 0 durante el intervalo entre los pulsos y va a 1 durante la ocurrencia de un pulso. El pulso pasa por dos transiciones de señal: de 0 a 1 y el regresode1 a 0. Como se ve en la Figura 6-8, la transición positiva se define comoflanco positiuo y la transición negativa como flanco negatiuo. Esta definición se aplica a los pulsos negativos. Los flip-flops sincronizadosque se introdujeron en la Sección 6-2 se disparan durante el flanco positivo del pulso y el estado de transición comienzatan pronto como el pulso alcanza el nivel de lógica 1. EI nuevo estado del flip-flop puede aparecer en los terminales de salida mientras Pulso positivo
tt tl Flanco positivo
Pulso negativo
tt II Flanco negativo
Figura 6-8
Flanco Flanco negativo positivo
Definición de la t¡ansición de un pulso de reloj
Jii¡'il
218
L O G I c AS E C U E N C I A L
CAP. 6
que el pulso de entrada sea 1 todavía. Si las otras entradas del flip-flop cambian mientras que el pulso sea 1, el flip-flop empezará a responder a esos valores nuevos y puede ocurrir un nuevo estado de salida. Cuando esto pasa, la salida de un flip-flop no puede ser aplicada a las entradas de otro flip-flop cuando ambos sean disparados por el mismo pulso de reloj. Sin embargo, si se puede hacer que el flip-flop responda al flanco positivo (o negativo) de transición solamente, en vez de la duración total del pulso, entonces se puede eliminar el problema de la múltiple transición. Una manera de hacer que el flip-flop responda solamente al pulso de transición es usar un acoplamiento capacitivo. En esta configuración, se inserta un circuito fiC (resistencia-condensador) en Ia entrada de reloj del flip-flop. Este circuito genera un pico en respuesta al cambio momentáneo de la señal de entrada. Un flanco positivo emerge de tal circuito con un pico positivo y un flanco negativo con un pico negativo (spike). La activación de los flancos se logra diseñando el flip-flop para ignorar un pico y dispararse con la ocurrencia del siguiente. otra forma de lograr el disparo de los flancos es el uso de un maestro esclavo o flip-flop de disparo por flancos como se discute a continuación. X
Flip-flop maestro esclavo Un flip-flop maestro esclavo se construye con dos flip-flops separados. un circuito sirve como maestro y el otro como esclavo y el circuito completo se trata como un flip-flop maestro esclauo. EI diagrama lógico de un flip-flop maestro esclavo RS se muestra en Ia Figura G-9. Esta consiste en un flip-flop maestro, un esclavo y un inversor. Cuando el pulso de reloj CP es 0, Ia salida del inversor es 1. Como el pulso de entrada de reloj del esclavo es 1, el flip-flop se habilita y la salida Q es igual a Y mientras que 8' se iguala a {'. El flip-flop maestro se inhabilita debido a que CP:0. cuando el pulso de reloj se convierte en 1, la información en las entradas externas R y s se trasmiten al flip-flop maestro. El flip-flop maestrd sin embargo, se aísla por el intervalo en que el pulso esté en un nivel de 1, ya que la salida del inversor es 0. Cuando el pulso regresa a 0, el flip-flop
FLIP.FLOP MAESTRO ESCLAVO Figura
6-9
Diagra.'.a lógico de un flip-flop maest¡o esclavo
1 Y
CPN
Figura
6-lO
Relaciones de tiempo de un flip-flop maestro esclavo
maestrd se aísla, Io cual previene que las entradas externas lo afecten. El flip-flop esclavo irá al mismo estadoque el maestro. Las ielaciones de tiempo mostradas en la Figura 6-10 ilustran la secuencia de eventos que oculren en un flip-flop maestro esclavo. Asúmase que el flip-flop está en el estado de puesta a cero antes de la ocurrenci; de un pulso, de tal manera que y: 0 y Q : 0. Las condicionesde entrada son S : 1, R : 0 y el siguiente pulso de reloj debe conmutar el flip-flop al estado de puesta a uno con Q: 1' Durante la transación del pui.o d" 0 a 1, el flip-f1opmaestro se pone a uno y conmuta Y a.í. El flipilop esclavono se afecta debido a que su CP es 0: Como el flip-flop maes^tro es un circuito interno, su cambio de estado no se nota en las salidas Q y paregresea 0, la información del maestrose permite -haciendo Q,. Cuando el pulso 'la entrada la salida externa Q: 1' Nótese que sár al esclavo externa S puede cambiarseal mismo tiempo que el pulso va a través de la transición á" utt flanco negativo.Esto se debe a que una vez que CP alcance el 0, el maestrose inhabilita y sus entradas R y 5- no tienen influencia hasta que el siguiente pulso de reloj ocurra. Ento-nces,en un flip-flop maestro esclavo, es posiüle variar la salida y la információn de entrada, con eI mismo pulso de reloj. Se debe tener en cuenta que la entrada S podria venir de la salida de otro flip-flop maestro esclavo que fuera conmutado con el mismo pulso de reloj. El comportamientodel flip-flop maestro esclavoya descrito determina que los cambios de estadoen todos los flip-flops coincide con la transición del flanco negativo del pulso. Sin embargo,algunos flip-flops maestro esclavo de CI cambian los estadosde salida en la transición del flanco positivo de los pulsosde reloj. Esto ocurre en Ios flip-flops que tienen un inversor adicionál entre el terminal CP y la entrada del maestro. Este tipo de flip-flops son disparadoscon pulsos negativos (ver Figura 6-8), tales que el-flanóo negativo del pulso afecta al maestroy el flanco positivo afecta al esclavoy a los terminales de salida. La combinación maestro esclavo puede contruirse para cualquier tipo agregandoun flip-flop ES sincronizadocon un reloj invertido flip-flops de pu." fot*ár un ésclavo. Un ejemplo de un flip-flop JK maestro esclavo construido con compuertas NAND se muestra en la Figura 6-11. Este consiste en dos flip-flops; las compuertas t hasta 4 forman el flip-flop 219
Figura 6-11
Flip-flop JK temporizadomaestro esclavo
maestro y las compuertas5 hasta 8 forman el flip-flop esclavo.La información presenteen las entradasJ y K se trasmitó al flip-flop maestro en el flanco positivo del pulso de reloj y se sostieneallí haita que el flanco negativo del pulso de reloj sucede,despuésdel cual se permite pasar hasta el flip-flop esclavo.El reloj de entrada es normalmente0, lo cual mantiene las salidas de las compuertasr y 2 en el nivel de 1. Esto previenea l¡s entradas J y K de afectar el flip-flop maestro. El flip-flop Lsclavo es del tipo fts temporizadocon el flip-flop maestro que suministia las entradas y el reloj de entrada invertido por la compue.ta 9. cuando el reloj es 0, la salida de la compuertag es 1 de manera que la salida e es igual á y y. Q'es igual a Y'. cuando ocurre el flanco positivo de un pulso dJreloi, el flip-flop maestro se afecta y puede conmutár estados. El flip-flop se aísla durante el tiempo en que el reloj esté en el nivel t,-debido "..iáuo a que la. s.alid-a!e ]a gompuerta 9 suminist¡a un 1 a ambas entradas del flip-fiop básico NAND de las compuertas 7 y 8. cuando el reloj de entrada tég.".L a 0, el flip-flop maestro se aísla de las entradas J y K y el flip-flop va al mismo estadodel flip-flop maestro. ".Jluuo considéreseun sistema digital que contenga muchos frip-flops maestro esclavo, con las salidas de algunos flip-flops conectadosa las entradas de otros. Asúmase que las entradas del pulso áe reloj a todos los flip-flops están sincronizados(ocurren al mismo fiempo). Al comienzode cada pülso_de reloi, algunos de los elementos maestro cambian de estado, iero todos_losflip-flops de salida permanecenen sus valores previos. Después que el pulso de reloj regresea 0, algunas de las salidas cambian de estado, pero ainguno de estos estados nuevos tienen un efecto en cualquiera de los elementos maestro hasta el siguiente pulso de reloj. Así, los estados de los flip-flops en el sistema pueden cambiarsesimultáneamentedurante e I mismo pulso de reloj, aunque las salidas de los flip-flops se conectan a las entradas de otros. Esto es posible porque el nuévo éstado aparece en los terminales de salida solamente despuésque el pulso de reloj haya cambiadoa cero. Por tanto el contenidobinario á" un lip-nop puedótrásferirse al segundo y el contenido del segundo trasferiise ál'primero y ambas trasferenciasocurren durante el misnio'pulso de reloj. 220
J
l
Flip-flop disparado Por flanco Otro tipo de flip-flop que sincroniza los cambios de estado durante una transición de pülso de reloj es el flip-flop disparado por flanco (edggtriggered flip-flop). En este tipo de flip-flop, las transiciones de salida o.,rñ"tt en un nivel específicodel pulso de reloj. Cuando el nivel de entrada del pulso excede este umbral, se cierran las entradas y el flip-flop es por tanlo inactivo a cambios posterioresen las entradas hasta que el pulso de reloj regresea cero y ocurra otro pulso. Algunos flip-flops disparados por flanco causan una transición en el flanco positivo del pulso y otras causatruna transición en el flanco negativo del pulso. El diagrama lógico de un flip-flop tipo D disparado por flanco positivo se muestra en la Figura 6-12. Este consiste en tres flip-flops básicosdel tipo mostrado en la Figura 6-3. Las compuertas ryAND 1 y 2 constituyen u.t flip-flop básico y las compuertas 3 y 4 otro. El tercer flip-flop básico qne las compuertas 5 y 6 suministra las salidas del circuito. "ó*ptende ias entrádas S y R del tercer flip-flop básico deben mantenerseen lógica 1 para que las salidas permanezcanen sus valores estables.Cuando S: 0 y v n: 1, la salida va al estadode puestaa uno con Q: 1' CuartdoS: 1 n: O, la salida va al estadode puesta a cero con Q: 0. .Las salidas S y R se determinan de los estados de los otros dos flip-flops básicos. Estos dos flip-flops básicos responden a las entradas externas D (datos) y a CP (pulso de reloj). '' La operaóióndel circuito se explica en la Figura 6-13 donde las compuertas i-¿ se redibujan para mostrar todas las transiciones posibles. Las salidas s y fi de las compuertas 2 y 3 van a las compuertas5 y 6 como se muestra en la Figura 6-12, para suministrar las salidas actuales del flip-flop. La Figura 6-13(a) muestra los valores binarios de las salidas de lal cuátro compuertascuando CP:O. La entrada D bien podría ser igual
n
$
ff
f
H
H
t¡ :t i *t
i.f :4 ,4 "q
i ir i.i iÉ
lll
iil Figura
6-12
|' ¡;
Flip-flop tipo D disparado por flanco positivo
I.f
221
i.
r,t¡
lÉ ig
H
(a) Con CP:0
J
(b) Con CP:1 Figura 6-lS
Operación de un flip_flop tipo D disparado por flanco
a 0 ó 1. En cualquier caso, un cp de 0 causa que las salidas de las compuertas 2 y 3 vayan a 1, haciendo s: R:1, ro cual constituye ra condición para la salida de estado estabre. cuando D : 0, la compuerta 4 tiene una_salida-de 1 Io que causa que la salida de la compúerta 1 váya a 0. cuando D: 1, la compue¡ta 4 irá a 0, lo cual causará q"e lu sarida de la compuerta 1 vaya a 1. Estas son las dos condiciones posibles cuando con el terminal cP en 0, se habilitan y cambian las salidas del flip-flop sin importar cual es el valor de D. Hev un tiempo definido, llamado el tiempo de establecimiento durante . el cual se debe mantener la entrada D a un valor constante antes de la aplicación del pulso. El tiempo de establecimiento lguut al retardo de propagación a través de las compuertas 4 y 7 ya que". un"cambio en D cau222
t
d'n
I
ü ¡ sEc. 6-3
D I S P A R OD E L O S F L I P - F L O P fSf R I G G E R I N G ) 2 2 3
,. :j
.ir
tI I I I
I
ahora que sa un cambio en las salidas de esas dos compuertas. Asúmase CP que, entrada y la establecimiento de liu-po D no cambia durante cuando D:0 "t si 6-13(b). Figura la en r" áibo¡u se torna 1. Esta situación a 0' Esto CP se convierta en 1, entoncesS permanecerá1 pero-R cambiará Si ahora 6-12)' (en Figura la q;; la salidl del flip-flop Q vaya a 0 ;.";i compuerde la salida la D, hay un cambioLn la entrada ár.".rt" bp:t, i (",tttque D vaya a 1)' ya que una de las entradas iu ¿ p".*"r,"""rá "r, 0. Solamente á; lr'compuerta viene áe R-, la cual se ha mantenido en puede cambiar; 4 Ia compuerta de ia salida 0, reapare"" cuando CP ningún "r, permitiendo no 1, ámbas n V S se convierten en p"i"definido, tiempo ""tá"ce. hay un embargo i"r"¡i" en la salida áel"flip-f1op. Sin por la el cual no puede se-r-cambiado if"-áá" el tiempo leiort"ni*ieito, positivo flanco del transición la de la aplicación áe .nlrr¿" D después propaáel pulró. El tiempo de sostenimientoes igual al- retardo de ;"ii co¡tque se R gación de la compuerta á, ya que-se debe tener seguridad inde1, 4 en compuerta la de vierta en 0 para poder mantenér la salida pendientementedel valor de D. en 1, si D: l cuando cP:1, entoncess cambiaa 0 pero R permanece mienD' en lo cual causaque la salida áel flip-flop Q vaya a 1' Un cambio en 1 por la lr". Cp: 1 no altera S y R porquu la compuerta1 se mantiene prevenir para a 1 y irán S R señal 0 de S. Cuando CP u"yu á "r.o, u-6". que la salida sufra algunoscambios' de En suma,.nutáo-.t pulso del reloj de entradahace una transición D en cambios Los de D se trasfiere a Q' flan"o móvil'positivo, Sin "t-u"to. a afectarán no 1 Q' de cuando CP se -a.,tie'e en un valor estable la salida, embargo,r'u tru.,.i.lln del pulso de flanco negativo no.afectará disparados flip-flops los Entonces, CP:0. Io hará ;;prco ;;;; ",rundo poi nu".ol eliminan cualquier problema de realimentaciónen los circuitos esclavo' I""u".r"iul"s de la misma manera que lo hace el flip-flop maestro consien tenerse deben y dasostenimiento d" Ei;i";pr ".t"bi""imiento deraciónal usar este tipo de flip-flop' Cuando se usan diferentes tipos de flip-flops en el- mismo circuito Ia transi."".r"*i"I, se debe estar seguro que todos los flip-flops hacen negaflanco el positivo o ción al mismo tiempo es decir, durante el flanco a la opuestamente ii"" á"f pulso. Aqriellos flip-flops que se comporten agregánfácilmente pueden cambiarse ira.rrición de polaridad adobtadá, alterno es doles inversoresen los reloies de óntrada. Un procedimiento de un invermedio y negativos positivos pulsos ambos suministrar -(porque se disparan ;;;t t luego aplicar' los púlro. posiiivos a los flip-flops que se flip-flops los a pulsos negativos y loi fl".,"o negativo dura.,te "f viceversa' o positivo, disparan durante el flanco .--{r. E n t r a d a sd i r e c t a s disponiblesen cápsulasde cI vienen algunas veces con enLos flip-flops ^".p""iul".-para puesta a uno o cero del flip-flop de manera asintradas (direct preset) crónica. Estas entira¿u.." Ilaman d.epuesta a Ltnodirecta e| y de puestoo ,rro- áirecta (direct clear). Ellas afectan el flip-flon e.n el necesario que sea sin de la señal de entrada íalor positivo (o "ugutiuol
:
t
Tabla de función Entradas BorradoiReloj
J
XXX .1.00 J0l tl0 +ll Figura
6-14
Flip-flop JK
Salidas K
I
t I
0l No cambio 01 l0 Conmuta
I
I i
con entrada di¡ecta de puesta a cero
pulso de reloj. Estas entradas son útiles para lrevar todos los flip_flops a su estado inicial antes de empezarsu operación temporizáda.por ejemplo, cuando se suministra potencia por primera vez, ,rr, .i.t"-a digital el estado.de los flip-flops es indete¡minado. Br i"L-"pt" i''de puestaa cero llevará a todos los.flip-flops a un estado iniciar de-cÁ ¡, er interruptor de-comienzo (start) empezará la operació" ¿" t.*por^iiado del sistema. El interruptor de puesta a cero debe "limpiur" toái.-iá, nip-rops asin_ crónicamentesin la necesidadde un pulso. Fl símbolo gráfico de un flip-frof,maestro esclavocon una entrada de puesta a cero directa se muestra en la Figura 6-14. La entrada de reloj o cP tiene un círculo debajo del pequeño"triárwlo páru-'i'ai.ar que las salidas cambian durante la transicün negativi del pulso. (La ausencia del pequeño círculo indicaría un flip-flop dt;ñ"d" h"r,.o positivo). La entrada de puesta a cero directa tióne tambiénfr.* pequeño cí¡culo un para indicar que, normalmente, esta entrada debe mantenerseen 1. si la entrada de puesta a cero se mantiene en 0, el flip-flop permanece en cero independientemente de otras entra.das alr priri áá' .eto¡. La " Las l.o.,-.o.,aición tabla especificala operaciónder ci¡cuito. 9:_1_1:ió. de no rmporta que indican que un 0 en la entrada directade puesta a cero in_ habilita todas las entradas. Solamente cuando la entáda de puesta a cero es 1 tendría efecto la transición negativa drl ,;i;i-"n las salidas. Las salidas no cambian si J: X : O. et nipl¡oo se complementa cuando J:K:1Algunos flip-flop. pu"du' i""". "";;";;t"."¡ij., un" entrada directa de puesta u u.,o la cuai po,i" lá salida A a;^A lr, 0) asincróni_ camente. "; cuando las entradas sincrénicas directas están presentes en un flip_ flop maestro esclavo,deben al maestroy al esclavopara poder superponersea las otras "rt". entradas "ore"tadas y al reloj. Una entrada directa de puesta a cero en el flip-fl op JK -a"stro esclavo de la Figura 6-10 se conecta a las entradas de las óompuertas1, 4 y g. una entrada de puesta en el flip-flop D de disparo por flanóo d; i" Fig;^ 1 :ero á-rz ," conecta a las entradasde las compuertas2 y 6. 6-4
I
oo'
A N A L I S I SD E L O S C I R C U I T O S SECUENCIALES T EM P OR I Z A D O S
El -comportamientode los circuitos secuenciares se determina de las en_ tradas, las salidas y ros estados de los flip-flops. Ambas entracrasv el 224
I
& {
I ¡
II l
I :
I l.
t
J
sEc. 6-4
A N A L I S I SD E L O S C I R C U I T O S E C U E N C I A L ETSE M P O R I Z A D O S
225
siguiente estado son una función de las entradas y el presente estado. El análisis de los circuitos secuencialesconsiste en obtener una tabla o un diagrama de la secuenciade tiempo de las entradas, salidas y estados internos. Es posible escribir expresionesde Boole que describan el comportamiento de los circuitos secuenciales.Sin embargo, estas expresiones deben incluir la secuenciade tiempos necesariadirecta o indirectamente. Un diagrama lógico se reconocecomo el circuito del circuito secuencial si este incluye flip-flops. Los flip-flops pueden ser de cualquier tipo y el diagrama lógico puede o no incluir compuertascombinacionales.En ósta sección,se introduce primero un ejemplo de circuito secuencialtemporizado y luego se presentan varios métodos para describir el comportamiento de los circuitos secuenciales.Un ejemplo específicose usará a lo largo de la discusión para ilustrar los diferentesmétodos. U n e j e m p l o d e u n c i r c u ¡ t os e c u e n c i a l Un ejemplo de un circuito secuencialtemporizadose muestra en la Figura 6-1S.Tiene una variable de entrada, una variable de salida y dos flipflops temporizadosRS llamados A y B. Las co4exionesrealimentadasde las salidas de los flip-flops a las entradas de las compuertasno se muestran en el dibujo para facilitar el trazado del mismo. En vez de ello, se reconocenlas conexionespor su letra marcada en cada entrada. Por ejemplo, la entrada marcada ¡' en la compuerta1 designauna entrada del complemento de ¡. La segundamarcada A designauna conexión a la salida normal del flip-flop A. Se asume que hay disparo por flanco negativo en ambos flip-flops y en la fuente que produce la entrada externa ¡. Por tanto, las señalespara .r t----)
l-'
I
r'
B'-_-.1-/
B Figura
l
L
6-15
Ejemplo de un circuito secuencialtemporizado
226
LoGIcA SECUENCIAL
CAP. 6
un estado presente dado .es.tándisponibles durante el tiempo en que se determina un pulso de reloj y el siguiente, en cuyo momento el circuito pasa al siguienteestado. Tabla de estado La secuenciade tiempo de las entradas,salidas y estadosde los flip-flops pueden enumerarseen una tabla de Lá ta¡ta Je estado puru ut "rtodo.* circuito de-la Figura 6-15 se muestra en la Tabla 6-1. Ella consisteen tres seccionesllamadas estudo presente, estado siguiente y ,oluo. El estado pre-sentedesigrralos estadosde los flip-flops antes de iu o"r..run.ia de un pulso .de reloj. El estado siguiente muestra ros estados de los flip-flops despuésde .la aplicación del purso de reloj y la secciái-de salida lista los valores de las variables de sálida durante él presenteestado. Las secciones de estado siguiente y de sarida tienen dos columnur, ,rnu para r : 0 y Ia otra para r: 1. Tabla
6-1
Tabla de estado para el circuito de la Fizura 6_15
Estadosiguiente Estadopresente
x:0
x:l
AB
AB
AB
00 0l l0 ll
00
0l 0l 00 lt
ll
l0 l0
Salida
x:0
0 0 0 0
x:
I
0 0 I
0
La deducción de la tabla de estado comienza a partir de un estado inicial asumido. El estado inicial de la mayoría de lás circuitos secuen_ ciales prácticos se define como el estado .ori .".o. .o toJá. los nrp-flops. Algunos circuitos secuencialestienen un estado inicial diferente i, nos no.tielen ninguno-. "rg,;.En cada caso, el análisis puede comenzara partir de-cualquier estado arbitrario. En este ejemplo, ," derivando la tabla de estadocomenzandocon el estadoiniciai OO. "o*i""ra . cuando el presenteestadoes 00, A : 0 y B: 0. Del diagrama lógico, se gllT"u que con los flip-flops e_ngero j r : 0, ninguna de las .o.rrirr"rtu, AND produce una s_eñalrógica 1. por tánto, ei ,igu"i-"ie u*t"¿o p"ñ;;"¿; sin cambiar. con AB: 00 y ¡ : 1, la compuerta2 produce una señal rógica1 en la entrada S del jlip-lop B^V t".compuerta 3 produceuna señal lógica 1 en la entrada R del flln-flor. cuando un pulso au'r.toj áirp"lu lo. flip-"flops, { se pone a cero y B se pone a uno, pioduciendo a .iñii""t" estado 01. Esta información se lista en la primera'fila de la tabla aá u.tuao. *Los libros de teoría de los circuitos de conmutación llaman a esta tabla tabla de translcidn Ellos reservan el nombre tabla de estado a una tabla con estados internos representados por símbolos arbit¡arios.
I
SEc.6.4
227 TEMPORIZADOS SECUENCIALES DELOSCIRCUITOS ANALISIS
De manera similar, se puede deducir el siguiente estado comenzando a partir de los otros tres estados presentesposibles. En general, el siguiente estadoes una función de las entradas,el estadopresentey el tipo áe flip-flop usado. Con flip-flops RS por ejemplo,se debe recordarque un 1 en la entrada s pone en 1 el flip-flop y un 1 en la entrada R lo pone a cero independientementedel estado anterior. Un 0 en ambas entradas S y fi deja el flip-flop sin cambio, mientras que un 1 en ambas entradas s y R demostraríaun diseño malo y una tabla de estadoindeterminada. Las entradas para Ia sección de salida son más fáciles de deducir. y En este ejemplo,la salida y es igual a 1 solamentecuandox:1, A:I cuando 0, excepto B: 0. Poi tanto, las columnas de salida se marcan con el estado presentees 10 y la entrada r: 1, para la cual y se marca con un 1. La tabla de estado de cualquier circuito secuencialse obtiene por el mismo procedimientousado en el ejemplo. En general,un circuito secuencial con m flip-flops y n variables de entrada tendrá 2- filas, una para cada estado. Lut tócciotte. del siguiente estado y de salida tendrán cada una 2" columnas,una para cada combinaciónde entrada. Las salidas externas para un circuito secuencial pueden venir de compuertas lógicas o eleméntos de memoria. La sección de salida en el estaáo estable es necesariasolamente si hay tres salidas de las compuertas lógicas. Cualquier salida externa tomada directamente de un flipflop se lista en la columna de presenteestado de la tabla de estado. Por tanto la sección de salida de la tabla de eslado puede ser excluida si no hay salidas externasde las compuertaslógicas. D i a g r a m ad e e s t a d o La información disponible en la tabla de estado puede representarsegráficamente en un diagrama de estado. En este diagrama se representaun estado por un círculo y la transición entre estadosse indica por líneas dirigidas que conectan los círculos. El diagrama de estado del circuito seculencialde la Figura 6-15 se muestra en la Figura 6-16. El número binario dentro de cada circuito identifica el estado representadopor el
00
r/1 t/0
-\
ol
l0
o/o
0/0 ll
/0 Figura 6-16
Diagrama de estado para el circuito de la Figura 6-15
I
I
228
LOGTCASECUENCIAL
CAP. 6
circulo. Las líneas dirigidas se marcan con dos números binarios separa_ dos por /. El valor de entrada que causa la transición de estado se marca primero; el número en seguida del símbrl" ,, á" á-i Jato, de la salida durante el presente estado. por ejempro, la línea ¿irigi¿" del estado 00 a 01 marcada r,/0, significa que el óircüito secuencial .r1¿1n el estado pre_ sente 00 mientras que.r y y:0 y que al finalizar el-siguientep"f.á 1. a. reloi, el circuito va al siguiénie estádo 01. una línea dirigida que conecta un círculo a sí mismo, indica que no hay cambio ;; ;J;á". oi ¿iágr"-" de estado suministra la mismá informaóión que la ta¡la ¿e estado y se obtiene di¡ectamentede la Tabla 6_1. No hay diferencia entre una tabla de estado y un diagrama de estado excepto en la fo¡ma de la presentación. La tabla á. es más fácil de deducir a partir de un diágrama de lógica "rt"á. J;á; J Jüsr"-, ; de estado se desprende directamente de la tabra "d" E-i -y;;gr"-a de estado ";;";;.' estado está en una forma {3 ""1. vista pictórica de las transiciones de disponible para interpretación binaria de la operación del circuito. El diagrama de estado s" usa -"r,rráo como la especificación de diseño " inicial de un circuito secuencial. E c u a c i o n e sd e e s t a d o una ecuación de estado (también conocida como una ecuación de aprica_ ción) .e.s.ula expresión algebraica que especificalas condicionespara Ia transición de estado de.un flip-flop. bt lu¿o i"q"Lrd" i""l;;;"""i0í{;.1 ta el estado siguiente d€l flii-flop y el lado a".""rro-""á tr.ci¿n de Boole que especifica las condiciones del presente estado que hacen el siguiente estado igual a 1. una ecuación de estado .i-ilu.'"; f;^" a una ecua_ ción característica,de un ", que especifica excepto las condiciones _flip-flop, del siguiente estado en té¡minor a" ta. variables'de enirada externas y otros valo¡es de los flip-flops. La ecuación de estados.áLriu" directamente de la tabla de estadó..por_ejemplo,la e^cuación_de estadoil"lJh'i3:ii;; A se-deriva por inspecciónde la'Ta'bla 6-1. De f"" .i'oi""ies columnas de estado,se nota que el flip-flop A va al estado -t Ecuatri s ; ; - ; ; "uáces: d " ; . o r cuando e s a r s e ¡:0 v A B : 0 1 ó 1 0ú 1 1 'o . 1 y " a ! r : 1 v AB.:11 algebraicamenteen la ecuaciónde estadáde la siguie.rt"-.rr"rráru, A(t + l):
(A,B + AB, t AB)x, * ABx
El lado derechode la ecuaciónde estadoes una función de Boole para un estadopresente. cuando esta función es ig'al a 1, ü ocurrencia de ros pulsos-de reloj causa que el flip-flop A tóngu lisui";" estado de 1. cuandouna tunción "r a 0, el iutso de?újüi;;;;'queA tengael siguiente estado de,0."*-iry"I izquierdo de la ..";;ió;;;ntifica los flip_ Fr-lado flops por un símbolo de letra r"guido de una il.ig";;ió" en función de tiempo (t + 1), para enfatizar que"este valor ,", ,t"in"áao por el flip_flop, un pulso posterior de la secuencia. La ecuación de estado es una función de Boole con un tiempo incluido' Es aplicable solamente en ros circuitos .""r,,"rr.i"i"s áe reloi, ya que A(t + t) se define para que cambie de valor ü ¿"1 pulso de reloj en instantes discretosde tiempo. ""; ";;;;.,ii"
I
0
I
A1l
l
A ( t - l ) : B x ' + ( B * x ' )A - B x ' - : -( B ' x ) ' A (a) Figura 6-17
it
B(t-l)-A'x-(A'!x)B
(b)
:
A t xi
(Ax')'B
Ecuacionesde estado para los flip-flops A y B
La ecuación de estado de un flip-flop A se simplifica por medio de un mapa como se muestra en la Figura 6-17(a). Con algrrna manipulación algebraica,la función puede expresarsede la siguiente forma: A(t + l): Si se deja que Br':
Bx' + (B'x)'A
S y B'x: R, se obtienela siguienterelación: A(t + l):
, S+ R ' A
la cual es una ecuación característicade un flip-flop RS IFigura 6-4(d)]. Esta relación entre Ia ecuación de estado y las ecuacionescaracterísticas del flip-flop puede justificarse por inspección del diagrama lógico de la Figura 6-1b. En esté se ve que la entrada S del qip-flop A es igual a la función de Boole Bx'y la entrada ft es igual a B'x. Sustituyendo estas funciones en la ecuación característica del flip-flop' dará como resultado la ecuaciónde estado para este circuito secuencial. La ecuaciónde estadopara un flip-flop en un circuito secuencialpuede deducirse de una tabla de estado o de un diagrama lógico. La deducción de una tabla de estado consiste en obtener Ia función de Boole especificando Ias condicionesque hacen el siguiente estado del flip-flop un t. l-u deducción a partir de un diagrama lógico consiste en obtener las funcionesde las entiadas del flip-flop y sustituirlas en Ia ecuación característica de la misma. La derivación de la ecuación de estado del flip-flop B a partir de una tabla de verdad se muestra en el mapa de la Figura 6-17(b).Los l marcados en el mapa son las entradas presentesy las combinacionesde entrada que causanque el fiip-flop vaya al siguienteestadode 1. Estas condiciones se obtienen directamente de la Tabla 6-1. La forma simplificada que se obtiene en el mapa se manipula algebraicamentey la ecuación de estado que se obtiene es:
fl
B(r+t):A'x+(Ax')'B La ecuación de estado puede derivarse directamente a partir del diagrama lógico. De la Figura 6-15 se observaque la señal para Ia entrada S a"etnip-¡óp B se generapor Ia función A'x y la señal para la entrada R 229
:Fi :t¡ j '¡Il
if
23O
LOGICASECUENCIAL
CAP. 6
por la función A¡'. SustituyendoS:A'¡ terística del flip-flop RS dada por:
y R:Ax'
en la ecuacióncarac-
B(/+l):,S+R'.8 se obtiene la ecuación de estado derivada anteriormente. Las ecuaciones de estado de todos los flip-flops, conjuntamente con las funciones de salida, especifican totalmente un circuito secuencial. Ellas representan,algebraicamente,la misma información que representa una tabla de estado en forma tabular y un diagrama de estado representa una forma gráfrca. F u n c i o n e sd e e n t r a d a d e u n f l i p - f l o p El diagrama lógico de un circuito secuencialconsisteen elementosde memoria y compuertas. La clase de flip-flops y la tabla característicaespecifican las propiedadeslógicas de los elementosde memoria. Las interconexionesentre las compuertas forman un circuito combinacional y se pueden expresar algebraicamentecon funciones de Boole. Así, un conocimiento del tipo de flip-flops y una lista de las funciones de Boole del circuito combinacional darán toda la información necesariapara dibujar el diagrama lógico de un circuito secuencial.La parte del circuito combinacional que genera las salidas externas se describealgebraicamentepor las funciones de salidq del circuito. La parte del circuito que genera las entradas de Ios flip-flops se describealgebraicamentepor un conjunto de funciones de Boole llamadas funciones de entrada del flíp-flop o algunas vecesecuocionesde entrada. Se adoptará la convención de usar dos letras para designar una variable de entrada de un flip-flop: la primera designa el nombre de las entradas y la segundael nombre del flip-flop. Como un ejemplo, considérese las siguientesfunciones de entrada de un flip-flop: JA:BC'x*B'Cx' KA:B+y JA y KA designan las variables de Boole. La primera letra en cada una denota la entrada J y K respectivamentedel flip-flop JK. La segunda letra A es el símbolonombre del flip-flop. El lado derechode cada ecuación es una función de Boole para la córrespondientevariable de entrada del flip-flop. La configuraciónde las dos funciones de entrada se muestra en el diagrama lógico de la Figura 6-18. El flip-flop JI( tiene un símbolo de salida A y dos entradas marcadasJ y K.EI circuito combinacionaldibujado en el diagrama es la configrración de una expresiónalgebraicadada por las funciones de entrada. Las salidas del circuito combinacional se designan por JA y KA en las funciones de salida y van a las entradas J y K del flip-flop A. De este ejemplo, se observaque la función de entrada del flip-flop es una expresión algebraicapara un circuito combinacional.La designación de dos letras es el nombre de una variable para una salida de un circuito combinacional. Esta salída se conecta siempre a la entrado (designada por la primera letra) del flip-flop (designadopor la segundaletra).
Hil
ü
J
B C'
Figura 6-18 Configuración de las funciones de entrada de un flip-flop J A : B C ' x ,* B ' C x ' y K A : B ¡ Y
El circuito secuencialde la Figura 6-15 tiene una entrada r, una entrada y y dos flip-flops RS denotadórpo. A y B.El diagrama lógico-pu_ede aüebráicamente con cuatro funciones de entrada del flip..i-..pó."do de salida del circuito como sigue: y función una flop RA: B'x SA: Bx' SB: A'x l:
RB: Ax'
AB'x
Este conjunto de funciones de Boole expecifica totalm^enteel diagrama las r¿gico. Las variables sA y RA especificanel flip-flop RS llamado A; por La B' denotado RS flip-flop_ SB y RB especifican un segundo para las variables Boole ""?i"¡f". de expresiones Las ,"ri"¡r" y denota la salida. parte del circuito combinacionaldel circuito secuencial. ".p".in.á" Las funcionesde entrada del flip-flop constituyen una forma algebraisecuenca convenientepara especificarun diagrama lógico de un circuito de la letra primera la partir de a cial. Ellas impúcan el tipo de flip-flop combinaciocircuito el completamdnte variable de entrada y especifican en ,r"i qrr" maneja et tilp-ftop. El tiempo no se incluye explícitamente pulso del o-peración partir la de a pero comprendidb éstá ecuaciones estas un de reloj. Es conveniente algunas veces especificar a.lgebraicamente de y funciones circuito del salida de cucuito secuencial con funci*ones lógico' diagrama el dibujar de entrada del flip-flop en vez 6.5
R E D U C C I O ND E E S T A D O SY A S I G N A C I O N X
El análisis de los circuitos secuencialescomienza de un diagrama de circuito y culminan en una tabla de estadoo diagrama. El diseño de un ciry culmina en un cuito secuencialpaite de una serie de especificaciones comenzando presentan se diseño de procedimientos Los Iógico. áiug*^" por la Seccién 6-?. Esia sección incluye ciertas propiedadesde los circuiio. ,".,t"rr.iales que pueden ser usados para reducir el número de compuertas y flip-flops durante el diseño.
+
F
ii ;!
.ll
:{
*Esta sección se puede omitir sin perder continuidad'
231
i¡i
,1
;¡ !¿
rf, *i
ü
H 1. -¡l
Reducción de estado Cualquier procedimiento de diseño debe considerar el problema de minimízar el costo del circuito final. Las dos reducciones de costo más obvias son las reducciones en el número de flip-flops y el número de compuertas. Debido a que estos dos ítems son los más obvios, se han estudiado e investigado extensamente. De hecho, una gran porción del objetivo de la teoría de conmutación trata la manera de buscar algoritmos para minimizar el número de flip-flops y compuertas en los circuitos secuenciales. La reducción del número de flip-flops en un circuito secuencial se conoce como lo reducción de estado del problema. Los algoritmos de reducción de estado tratan con los procedimientos para reducir el número de estados en la tabla de estado mientras mantiene los requerimientos de entrada-salida externos sin cambio. Como m flip-flops producen 2^ estados, una reducción en el número de estados podría (o no podría) resultar en una reducción en el número de flip-flops. Un efecto impredecible en la reducción del número de flip-flops es que algunas veces el circuito equivalente (con menos flip-flops) podría requerir más compuertas combinacionales. Se demostrará la necesidad de reducción de estado con un ejemplo. Se comienza con un circuito secuencial cuya especificación se da en el rliagrama de estado de Ia Figura 6-19. En este ejemplo, solamente las secuencias de entrada-salida son importantes; los estados internos se usan solamente para suministrar las secuencias requeridas. Por esta razón, los estados marcados dentro de los círculos se denotan por símbolos de Ietras en vez de sus valores binarios. Esto es en contraste a un contador binario, donde la secuencia de valores binarios de los estados en sí mismos se toman como salidas. Hay un número infinito de secuencias de entrada que puede ser aplicado al circuito; cada uno dará como resultado una secuencia única de salida. Como ejemplo, considérese la secuencia de entrada 01010110100 empezando por el estado inicial o. Cada entrada de 0 ó 1 produce una sa-
Figura 6-19
Diagramade estado
232
¡
sEc. 6-5
REDUCCION O E E S T A D O SY A S I G N A C I O N 2 3 3
lida de 0 ó 1 y causa que el circuito vaya al siguienteestado.De este diagrama de estado, se obtiene la salida y secuencia de estado para una secuenciadada de entrada como sigue: con el circuito en el estado inicial o, una entrada de 0 produce una salida de 0 y el circuito permaneceen el estadoo. Con el estadopresenteo y una entrada de 1, la salida es 0 y el siguiente estado,es b. Con el estado presente b y una entrada de 0, la salida es 0 y el siguiente estado es c. Continuando este proceso,se encontrará que la secuenciacompleta es como sigue: estadoaabcdeJÍCfga entrada0l0l0ll0l00 salida
0
0'0
0
0
I
I
0
I
0
0
En cada columna, se tiene el estado presente,el valor de Ia entrada y el valor de la salida. El siguiente estado se escribe encima de la siguiente columna. Es importante tener en cuenta que en este circuito los estados en sí mismos son de importancia secundariaporque el interés primordial son las secuenciasde salida causadaspor las secuenciasde entrada. Asúmase ahora que se tiene un circuito secuencial cuyo diagrama de estado tiene menos de siete estadosy se deseacompararlo con el circuito cuyo diagrama de estado se da en la Figura 6-19. Si se aplican secuencias de entrada directas a los dos circuitos y ocurren salidas idénticas para todas las secuenciasde entrada, entoncesse dice que los dos circuitos son equivalentes (en lo que se refiere a la entrada-salida)y se pueden remplazar entre sí. El problema de Ia reducción de estado es encontrar maneras de reducir el número de estadosen un circuito secuencial sin alterar las relacionesde entrada-salida. Se procederáa reducir el número de estadosde este ejemplo. Primero, se necesita una tabla de estado; es más convenienteaplicar los procedimientos para la reducción de estadosaquí que en los diagramasde estado. La tabla de estadodel circuito se lista en la Tabla 6-2 y se obtiene directamente del diagrama de estado de la Figura 6-19. Tabla 6-2
Tabla de estado
Estado siguiente Estadopresente
Salida
x:0
x:l
¡:0
x:l
a b c d e
a
b d d
0 0 0
f
c
o
a
0 0 0 0 0 0 0
c a e a
f f Í f
234
LoGIcA SECUENCIAL
CAP. 6
Un algoritmo para la reducción de estado de una tabla de estado especificada completamente se da aquí sin prueba alguna: "Se dice que dos estados son equivalentes si, por cada miembro del conjunto de entradas, ellos dan exactamente la misma salida y envían al circuito al mismo estado o a un estado equivalente. cuando dos estados son equivalentes, uno de ellos puede quitarse sin alterar las relaciones de entrada-salida". se aplicará este algoritmo a Ia Tabla 6-2. observando la tabla de verdad, se escogen los estados presentes que van al estado siguiente y que tienen Ia misma salida para ambas combinaciones de entrada. Los estados g y e son dos de tales estados; ellos van a los estados a y f y tienen las saIidas de 0 y l para ¡:0 y r:l respectivamente.Por tanto, los estados g y e son equivalentes y se puede eliminar uno. El procedimiento para quitar un estado y de remplazarlo por un equivalente se demuestra en Ia Tabla 6-3. La fila con el estado presente g se tacha y el estado g se remplaza por el estado e cad.a vez que apatezca en las siguientes columnas de estado. Tabla 6-3
Reduciendo la tabla de estado
Estadosiguiente Estadopresente
x:0
b c d e
Í g
x:0
x:l
a c a e a
a
Salida x:l
0 0 0 I I I I
b d d
fd ld f f
te a
El estado presente/ tiene ahora las entradas siguientes e y f y las salidas 0 y 1 para ¡:0 y r: 1 respectivamente. Los mismos estadossiguientes y las salidas aparecenen la fila con el estado presente d. por tanto, Ias entradas f y d son equivalentes,el estado / puede quitarse y remplazarsepor d. La tabla reducida final se muestra en la Tabla 6-4. El diagrama de estado para la tabla reducida consiste en solamente cinco estadosy se muestra en la Figura 6-20. Este diagrama de estado satisface las especializacionesoriginadas de entrada-saliday producirá la secuencia de salida requeridapara una secuenciadada de entrada. La siguiente lista deducida del diagrama de estadode la Figura 6-20es para la secuencia de entrada usada previamente.Se nota que resulta la misma secuencia de salida aunque Ia secuenciade estadoes diferente: estado
a
a
b
c
d
e
d
d
e
d
e
entrada
0
I
0
I
0
I
I
0
I
0
0
salida
0
0
0
0
0
I
I
0
I
0
0
D E E S T A D O SY A S I G N A C I O N REDUCCION
sEc. 6-5
235
De hecho, esta secuencia es exactamente la misma que se obtuvo de la Figura 6-19, si se remplaza e por g y d por f . Tabla
6-4
Tabla de estado reducida
a
x:0 a
b 0
d e
e
x:l b d d d d
iü
H
Salida
Estado siguiente Estado presente
T
x:0
x:1
0 0 0 0 0
0 0 0 I I
de estado ¡educido Figura 6-2O Diagrama De cualquier forma, la reducción de siete a cinco estadosno reduceel número de flip-flops. En general, la reducción del número de estados de una tabla de estado se espera que resulte en un circuito con menos equipo. Sin embargo,el hecho de que una tabla de estado haya sido reducida a menos estados no garantiza un ahorro en el número de flip-flops o el número de compuertas. Vale la pena notar que la reducción en el número de estadosde un circuito secuencial es posible si se interesa solamente en las relaciones externas de entrada-salida. Cuando las salidas externas se toman directamente de los flip-flops, las salidas deben ser independientes del número de estados de que se apliquen los algoritmos de reducción de estados. El circuito secuencialde este ejemplo fue reducido de siete a cinco estados. En cada caso, la representación de los estados con componentes fisicos requieren que se usen tres flip-flops, porque m flip-flops pueden representar hasta 2- estados diferentes. Con tres flip-flops, se pueden formular hasta seis estados binarios denotados por los números binarios 000 hasta 111,con cada bit designandoel estadode un flip-flop. Si la tabla de estado de la Tabla 6-2 se usa, se deben asignar valores binarios a los siete estados: el estado restante no se usa. Si se usa la tabla de estado
r
ilt F]
E1 $l
FI
ht
F H t
236
L o G I c AS E C U E N C I A L
CAP. 6
de la Tabla 6-4, solamente cinco estadosnecesitan asignación binaria y quedarían tres estados sin usar. Los estados sin usar se tratan como condicionesde no importa durante el diseño del circuito. Como las combinacionesde no importa por lo general ayudan a obtener una función de Boole más simple, de manera parecida el circuito con cinco estadosnecesitará menos compuertas combinacionalesque aquella con siete estados. De cualquier forma, la reducción de siete a cinco estadosno reduce el número de flip-flops. En general, la reducción del número de estadosde una tabla de estado se esperaque resulte en un circuito con menos equipo. sin embargo, el hecho de que una tabla de estado haya sido reducidá a menos estados no garantiza un ahorro en el número de flip-flops o el número de compuertas. Asignación de estado El costo de Ia parte de circuito combinacionalde un circuito secuencial puede reducirse usando los métodos de simplificación conocidos para los circuitos combinacionales.sin embargo,hay otro factor, conocidocomo el problema de asignaciónde estado,que entra en juego para la minimización de las compuertascombinacionales.Los procedimientosde asignaciónde estado tienen que ver con los métodos pára la asignación de valores binarios o estados de tal forma que se reduce el costo de los circuitos combinacionales que accionan los flip-flops. Esto es particularmente útil cuando se obse¡va un circuito secuenciala partir dé sus terminales externos de entrada-salida. Tal circuito puede seguir una secuencia de estados internos, pero los valores binarios de los estados individuales podrían no tener ninguna consecuenciatodo el tiempo en que el circuito produzca la secuencia seguida de salidas pat" u.rá secuencia dada de entradas. Esto no se aplica a los circuitos cuyas salidas externas se toman directamente de los flip-flops con secuenciasbinarias totalmente especificadas. Las alternativas de asignación de estado binario disponiblespueden ser demost¡adas conjuntamente con el circuito secuencial especifrcado en la Tabla 6-4. Recuérdeseque, en este ejemplo, los valores binarios de los estados son inmateriales durante el tiempo en que su secuencia mantenga las relaciones de entrada-salida adecuadas.Por esta razón, cualquier asignación de número binario es satisfactoria siempre que a cada estado se le asigrre un número. Tres ejemplos de asignacionés binarias posibles se muestran en la Tabla 6-b para los cinco estados de la tabla reducida. La asignación 1 es una asignación binaria directa para la secuencia de estados desde a hasta e. Las otras dos asignacionesse escogen arbitrariamente. De hecho, hgy 140 asignaciones dife.etrter para este circuito (11). La Tabla 6-6 es la tabla de estado reducida con la asignación binaria 1 sustituida por las letras de los cinco estados.* Es obvio que una asignación binaria diferente resultará en una tabla de estado con valorJs binarios diferentes para los estados, mientras que las seleccionesde entrada-salida permanecen iguales. La forma binaria de la tabla de estado se usa para deducir la parte del circuito combinacional del circuito se*Una
tabla de estado con asignación binaria se llama algunas veces tabla de trarwición.
¡
Tabla 6-6
Estado
Asignación t
Asignación2
b d e
6-6
Asigrración3
000 100 010 l0l 0ll
000 010 0ll l0t lll
001 010 0ll 100 l0l
a
Tabla
Tres asignacionesbinarias de estado posibles
Tabla de estado reducido con asignación bina¡ia 1
Salida
Estado siguiente Estado presente
001 0r0 0ll 100 l0l
x:0
001 0ll 001 l0l 001
x:l
010 100 100 100 100
x:0
x:l
0 0 0 0 0
0 0 0 I I
cuencial. La complejidad del circuito combinacional obtenido, depende de la asignacióndel estadobinario escogido.El diseño del circuito secuencial preséntadoen esta sección se completa en el Ejemplo 6-1 de la Sección 6-7. Varios procedimientosse han sugerido para llevar a una asignación binaria particular entre las muchas disponibles. El criterio más común es que lá asignaciónescogidadebe resultar en un circuito combinacional simple para las entradas del flip-flop. Sin embargo, hasta el momento, no hay- procedimientos de asignación de estado que garantice-nun costo mínimo de un circuito combinacional.La asignaciónde estadoes uno de los problemas desafiantes de la teoría de conmutación. El lector interesado puede encontrar mucha literatura completa y creciente de este tópico. Las técnicas para tratar con el problema de asignaciónde estadose salen del objetivo de este libro.
t
6 - 6 T A B L A S D E E X C I T A C I O ND E L O S F L I P - F L O P S Las tablas características para varios flip-flops fueron presentadas en la sección 6-2. una tabla caracteústica define la propiedad lógica del flipflop y caracteriza completamente su operación. Los flip-flops de circ-uito integiado se definen algunas veces por una tabla caracteústica tabulada de manera diferente. Esta segunda forma de las tablas caracteústicas para los flip-flops RS, JK, D y T se muestran en la Tabla 6-7. Ellas repreientan la misma información que las tablas característicasde las Figuras 6-4(c) hasta 6-7(c). La Tabla 6-7(c) define el estado de cada flip-flop como función de sus entradas y su estado previo. Q(t) se refiere al presenteestadoV Q(¿* 1) 237
I
L-
Tabla 6-7
Tablas característicasdel flip-flop
QQ+I)
QU) 0 I
@) JK
(c) D
(d) 7"
al estado siguientedespuésde la ocurrenciade un pulso de reloj. La tabla característicadel flip-flop RS muestra que el siguiente estadoLs igual al presenteestadocuando las entradasS y R son ambas0. Cuando la entrada -E es igual a 1, el siguiente pulso de reloj pone a cero el flip-flop. cuando la entrada s es igual I "l siguiente puljo-de reloj pone a t et rtip-nop. La interrogación para el "siguiente estado cuando ambos s y ft seán iguales a 1 designa simultáneamenteun estado siguiente indeterminado. _ !a tabla del flip-flop JK es la misnia que la del RS cuandá se rernplaza J y K por s y ,B respectivamente,exceptoen el casoindeterminado.iuando J y K son ambos igualesa 1, el estadosiguientees igual al complemento del presenteestado,es decir, Q(r+ 1): e'ú1. nt siguienteestadodel flipflop -D es completamente dependiente de la entrada-D e independiente dLI estado presente.El siguiente estado del flip-flop ? es el mismo que el estado presentesi ?:0 y complernentandosi f : f . La tabla característicaes útil para el análisis y la definición de la operación del flip-flop. Esta especificael estado siguiente cuando las entradas y el estado presente se conocen.Durante p.o."ro de diseño se "l conocepor lo general la transición del presente estado al siguiente y se desea encontrar las condiciones de entiada del flip-flop qu; lu transición requerida. Por esta razón, se necesita .rtrá ta-blu-que"u.r."., liste las entradas necesariaspara un cambio de estadodado. Tal lista se llama una tabla de excitación. ^ _La Tabla 6-8 presentalas tablas de excitación de los cuatro flip-flops. cada tabla consisteen dos columnas,e{r¡ t eG+ 1), y una columnapára cada entrada para mostrar cómo se logra la transíción requerida. Hay cuatro transiciones posibles del presente estado al siguiente. -cuatro Las condiciones de entrada requeridas para cada una de las transiciones se derivan de la información disponible en la tabla característica. El símbolo X en las tablas representala condición de no importa, es decir, no importa que la entrada sea 1 ó 0. 238
l
i
I
I
Tabla
QQ)
6-8
Tablas de excitación de los flip-flops
QQ+I)
QQ)
QQ+I)
0 I 0 I
0 0 I I
0 I 0 I
O) /,K
(a) RS
QQ)
QQ+I)
0 0
0 I 0 I
I
I
(c) D
0 I 0 I
QG)
QQ+I)
0 0 I I
0 I 0 I
0 I I 0
(d) r
Flip-flop FS en la Tabla 6-8(a)' La La tabla de excitación del flip-flop RS se muestra estado 0 en el tiempo Ú' Se desea nip-noP primera fila muestr" "l "l "f de^la ocurrencia del pulso. De Ia tabla cael estado o-áu"Ñ¿, á;j;;i;"; el flip-flop no camracterística, se encuent.a que si S y X son ambos 0, rteben ser 0' Sin embargo' x S entradas v biará estado. Por t";;;;;;úas pulso' qYe resulta dejanel ocurre vq I rl se hace'ñ ,r,t ;;t;;;il permane""uttdo 0 ó 1 ser puede R v Así, 0. 9l flip-flop ;; ;i-hi;-flop en el estado se marca R de por tanto, la entrada debajo estadoo en ¿*1. ;;J;^eI por la condiciónX de no imPorta'en ei estado0 y se deseaque vaya al estado 1' enSi el flip-flop la única forma ".la torr"J. u pur?i, ¿L tá iatta característica, se encueltra. o^g.e f l i p f l o pv a a t e n e r e l s i R : 0 . s : 1 y h a c e r 1 e s a á;ú;;.; Qtr+1) igual y R : 1' 0 S: 1 al estado0 se debe tener u.r. trur,rüiór, d"t es estar en el flip-flop ".luao un en ;;;dt ocurrir La última .""á;;ió" ;; e s t a d o l y p e r m a n e c e r e n e s e m i s m o e s t a d o . C i e r t a m e n t e R dser e b0e ós e1'r 0 S.debe ya que no se requl"t"-p"""t a 0 el flip-flop' Sin embargo estado1; si es 1 se llevará Si es 0, el flip_flop no cambia y permanecéen el elflip.flopalestadolcomo."d"."u.Así,sselistacomounacondición de no importa. E l f l i P - f l o PJ K en la Tabla 6-8(b)' La tabla de excitación para el flip-flop JK se muestra la entrada J t91"..0' y siguiente estado presente Cuando ambos estado cuando ó 1. Similarmente puede 0 sór K i" debepermar,""", .rJól ""t*aá 239
2&
LOGICASECUENCIAL
CAP. 6
el.estado presentey siguiente sean l, la entrada K debe permaneceren 0 mientras que la entrada luede ser 0 ó r. si.l-irip-ñáp ,,rua tener una _J transición del estado O^areitado r, J debe s* i*"i'I r l" o,r. la entr¿.¡la Jpone a I el flip-flop. Sin embargo,la entrada.ipr"J"-.ár 0 ó 1. si K:0, la condiciónJ: l pone a uno et fiip_nopcomo se requiere;si K: ly J:1, el flip-flop se complementa y va ¿ót estado 0 al esta-Jo-i-to.,'o se requiere. De esta manera la entrada K se marca con una condición de no importa para la transición de 0 a 1. para una transición del estado 1 al estado0, se debetener K:1ya que la entradaf pr"" o;iñ;;:h"p. pero, la en_ trada J puedeser 0 ó 1, comoJ:0 no tiene efecto, " y J:l conjuntamente :oT r(: 1 complementael flip-flop con una transición resultante del es_ tado 1 al estado 0. La tabla de excitació.nder flip-flop JK ilustra la ventaja de usar este tipo al diseñar los circuitos secul.,ciar".. ni r,""h; á;;"" tiene tantas condicionesde no importa- indica que los circuitos comb]nacionalespara las funciones de entráda deben ser^más simples debido a que las funcio_ nes de no importa simplifican usualmentela iunción. Flip-flopD La tabla de excitación para u.n fli!-flop tipo D se muestra en ra Tabla 6-8(c). De la tabla. característica,f"ú¡i O_Z(c), * ;;;"qre el siguiente estado es siempre igual a la entrada D i;á¿p;"ai"nl"'a"r estado pre_ s e n t e .P o r t a n t o , D d e b e . s e 0 r s i e { r a 1 ) - "t i e n e t u ; ; ; ; - ó , y 1 s i e(¿+t) "' tiene que ser l, independientementedel valor de Oirll-Flip-ftopf La tabla de excitació" p1rq el flip_flop ? se muestra en la Tabla 6_g(d).De la tabla característica,-Tabrao-?(d),-seencuentra que cuando la entrada T:1 el estadodel flip-flop-." cuando T:0 er estadodel flip-flop permanece sin cambiar."o-pl"-enta, poi tanto cuando el estado del flip-flop debe_permanecer igual, el requerimiento es que T:0. cuando -' el estado del flip-flop debe cómpiu-""tái.", i á"¡" .". iguui u 1".' Otros flip-flops El procedimiento de diseño que se va a describir en este capítulo puede ser usado con cuarquier flip-flop. Es necesarioque ." la tabla característica del flip--flop, "orror." de la cual es posible desarrollar -La una nueva tabla de excitación. iabla a" se ;;;;;es para deter_ minar las tuncionesde ent¡ada der"*"it""ión nip-¡oo, ;;" "." ;;;;ü;; en la sisriente sección. 6-7
PROCEDIMIENTD OE D I S E Ñ O
El diseño de un circuito secuenciartemporizado comienza -lógico a partir de un conjunto de especific-rciones y curmina en un diug.u;á o una lista de funciones de Boole de las cuares se puede obt"u.re.et a'iagrama lógico.
qq
,H
:fi
SEC. 6-7
P R O C E D I M I E N TOOE D I S E Ñ O
241
En contraste con el circuito combinacional,el cual está especificadocompletamente por una tabla de verdad, un circuito secuencialrequiere una iabla de veriad para su especificación.El primer paso en el diseño de los circuitos .e".tettóialeses obtener una tabla de estado o una representatal como un diagrama de estado o ecuacionesde estado' .i¿r, "qrri.rulente sincrónico se hace de flip-flops y compuertas secuencial circuito Un combinacionales.El diseño del circuito consiste en escogerlos flip-flops y luego encontrar una estructura de compuertas combinacional, la cual, tonjuntamente con los flip-flops, produce un circuito que copa las caracteisticas enunciadas.Et ntmero de flip-flops se determina por el número de estadosnecesariosen el circuito. El circuito combinacionalse deriva de la tabla de estado por los métodos presentados en este capítulo. De hecho, una vez que el tipo y número de los flip-flops se determinen, el p.o""ro de diseñó envuelve una trasformación del problema del circuito iecuencial al problema del circuito combinacional. De esta manera Ias técnicas de diseño de los circuitos combinacionalespueden aplicarse' Esta sección presenta un procedimientopara el diseño de los circuitos secuenciales.Áunque su propósito es servir como guía al principiante, este procedimiento púede acortarse con experiencia. Este procedimiento ," ,nirrir.rira medianie una lista de pasosconsecutivosque se recomiendan como sigue: 1. se establece la descripción en palabras del comportamiento del circuito. Esto puede acompañarsepor el diagrama de estado, un diagrama de tiempos, u otra información pertinente' 2. De la información dada del circuito se obtiene la tabla de estado. 3. EI número de estados puede reducirse por los métodos de reducción de estados si el circuito secuencial puede caracterizarsepor las relaciones de entrada-salida independientes del número de estados. 4. Se asignan valores binarios a cada estado si la tabla de estado obtenida en los pasos2 ó 3 contienensímbolosde letras' 5. se determina el número de flip-flops necesariospara asignar una letra a cada una. 6. Se escogeel tipo de flip-flops que se va a usar. ?. A partir de las tablas de estado,se deduce la excitación del circuito y las tablas de salida. 8. usando un mapa o cualquier otro método de simplificación, se deduce las funcionesde salida del circuito y las funcionesde entrada del flip-flop. 9. Se dibuja el diagrama lógico. en palabras del comportamientodel circuito asuLas especificaciones men que ef lector está familiarizado con la terminologíalógica digital. Es .,ece.árioque el diseñadoruse su intuición y experienciapara llegar a- la correcta interpretación de las especificacionesdel circuito, porque las descripcione.ótt palabras pueden ser incompletas e inexactas. Sin em-
;i: -i i; ii
:] j I
242
L O G I C AS E C U E N C I A L
CAP, 6
bg1so,una- vez que se haya establecidotal especificacióny se haya obtenido la tabla de estado, es posible hacer usó del procedimiento formal para diseñar el circuito. La reducción del número de estadosy la asignaciónde valores binarios a los estados fueron discutidos en la secci¿n o-s. En los ejemplos que sisqe-nse^asume que el número de estados y su asignación binaria nocida. como consecuencia,los pasos 3 y i a"t diJe¡o no se conside¡an ". "oen las discusionessubsecuentes. Ya se ha mencionadoantes que el número de flip-flops se determinan por el número de estados. un circuito puede tener estádosbinarios sin usar si el número total de estadoses menor que 2^. Los estadosno usados se toman como condicionesde no importa durante el diseñode la parte del circuito combinacionaldel circuito. El tipo de flip-flop que se va a usar puede incruirse en las especificaciones del diseño o puede dependeren aquello que está disponible al diseñador. Muchos sistemas digitales se construyen totalmente con flip-flops Jrl porque ellos son los más versátiles y disponibles. cuando hay muchas clasesde flip-flops disponibles,es aconsejableusar el flip-flop BS o D para aplicaciones que requieren trasferencia de datos (taies óomo registros de desplazamrento).El tipo T para aplicacionesque incluy"tr "o*plu-u.rtación (tales como contadoresbinarios), y el tipo JK para aplióaciones generales. La información de salida externa se especificaen la sección de salida de la tabla de estado. De ella podemosdeducir las funcionesde salida del circuito. La tabla de excitación del circuito es similar a la de los flipflops individuales, excepto que las condicionesde entrada son dictadas por la información disponible en el presente estado y las columnas del estado siguiente de la tabla de verdad. El método para obtener la tabla de excitación y las funciones simplificadas de enfrada del flip-flop es mejor ilustrarlo con un ejemplo. se desea diseñar un circuito secuencial temporizado cuyo diagrama de estadose da en la Figura G-21.El tipo de flip-flóp usado es el Jr(. El diagrama de estado consiste en cuatro estádos con valores binarios ya asignados.como las líneas designadasse marcan con un solo dígito binario sin una ,/, se concluye que hay una va¡iable de entrada v
Figura
6-21
Diagrama de estado
P R O C E D I M I E N TOOE D I S E Ñ O
sEc.6-7
ninguna variable de salida. (El estado de los flip-flops puede considerarse como las salidas del circuito.) Los dos flip-flops necesariospara representar los cuatro estadosse designancomo A y B. La variable de entrada se designar. La tabla de estado para este circuito, derivada del diagrama de estado, se muestra en la Tabla 6-9. Nótese que no hay sección de salida para obtener la para este circuito. se mostrará ahora el procedimiento_ combinacional. la compuerta y de iabla de excitación la estructura La derivación dé la tabla de excitación se facilitará si se reordenala tabla de estado en forma diferente. Esta forma se muestra en la Tabla 6-10, donde el estado presentey las variables de entrada se reordenanen la fórma de tabla de verdad. El valor del estado siguientepara cada estado presente y las condicionesde entrada se copian de la Tabla 6-9. La tabia de excitación del circuito es una lista de condicionesde entrada del flip-flop que causan las transiciones de estado requeridasy es una función aef tipo de flip-flop usado. Como este ejemplo especificaflip-flops JI(, se necesitancolumnas para las entradasJ y K del flip-flop A (denotadas por JA y KA) y B (denotadaspor JB y KB). Tabla
6-9
Tabla de estado
Estado siguiente Estado presente
00 0l l0 ll
x:0
00 10 l0 ll
x:l
0l 0l ll 00
La tabla de excitación para el flip-flop JK fue derivada en la Tabla 6-8ft). Esta tabla se usa ahora para deducir la tabla de excitación del circuito. Por ejemplo,en la primera fila de la Tabla 6-10se tiene una transición del flip-flsp A de 0 en el presenteestado a 0 en el estadosiguiente. En la Tabla 6-81b)se encuentra que los estados de transición de 0 a 0 Así 0 y X se copian en requierenque la entrada J:0 y la entrada K:x. Ia primera-fila bajo JA y KA, respectivamente.Como la primera fila muestra también la tránsición del flip-flop B de 0 en el presenteestadoa 0 en eI siguiente estado, 0 y X se copian en la primera columna bajo JB y !<4. La ségundafila de la Tabla 6-10 muestra una transición del flip-flopB de O en él presenteestado a 1 en el siguiente estado. De la Tabla 6-8(b) se encuentra que una transición de 0 a 1 requiereque Ia entrada J: t y la entrada K: x. Así 1 y X se copian en la segundafila bajo JB y KB res' pectivamente. Este pio"e"o se continúa para cada fila de la tabla de verdad y para cada flip-flop con las condiciones de entrada especificadas
Tabla 6-10
Tabla de excitación
Entradas de los circuitos combinacionales Estado presente
Entrada
Siguiente estado
0 I 0
r0
0 I 0
l0 ll ll
00 0l l0 0l l0 ll II 00
I
I I
I
I
Entradas de los flip-flops JA
00 00 0l 0l
ü ¡
Salidas del circuito combinacional
JB
KB
OXOX OXIX IXXI OXXO XOOX XOIX XOXO XIXI
en- la Tabla 6-8(b) copiadasen la fila correspondientedel flip-flop particular considerado. . . Hágase una pausa y considéresela información disponible en una tabla de excitación tal como la Tabla 6-10.se sabeque un'circuito secuen_ cial consiste en un número de flip-flops y un circuito combinacional.La Figura 6-22 muestra los dos flip-flbp. iK-tr"""sarios p"r" circuito y un rectángulo_para representarel circuito combinacionál. E,"r claro del diagrama-de -bloqueque las salidas del circuito combinacional vayan a las entradas de- los flip-flops y a las salidas externas (si se especiiica). Las entradas del circuito combinacional son las entradas externas y los va_ lores de estado presentesde los flip-flops. sin embargo,las funciones de Boole que especificanun circuito combinacionalse derivan de una tabla de-verdad que muestra las relacionesde entrada-salidadel circuito. La tabla- de verdad que describe el circuito combinacional es disponible en la tabla de excitación. Las entradas del circuito combinacio.rál,. cifican bajo el presenteestado y las columnas de entrada, las solidos "rp"iel circuito combinacional se especifican bajo las columnas de entrada de los flip-flops. Así, una tabla de excitación trasforma un diagrama de estado a ia tabla de verdad necesariapara el diseño de la parte del circuito combinacionaldel circuito secuenciai. ) l,as funciones de Boole simplificadas para el circuito combinacional pueden ahora derivarse.Las entradas son las variables A, B y r; las salidas son las variablesJA, KA, JB y KB. La información dó la tabla de verdad se trasfiere a los mapas de la Figura 6-23,donde se derivan las cuatro funcionessimplificadas de la entrada de los flip-flops:
I
JA : Bx' JB:x 244
KA: BX KB: AOx
Salidas externas (ninguna)
A' A
Circuito combinacional
B' B
Diagrama de bloque del ci¡cuito secuencial
Figura 6-22 Bx
A 0 I All l,
B
0
-lr--^-T0I
X
x
x
X
X
X
x
X
I
x tA:
KA -- Bx
Bx'
I
v
X
X
x
x
X
X
X
lB:x
Figura 6-23
lj - 1
KB:A@x
Mapas del circuito comhinacional
El diagrama lógico se dibuja en la Figura 6-24y consisteen dos flip-flops, dos compuertas AND, una compuerta de equivalencia y un inversor. Con alguna experiencia,es posible reducir la cantidad de trabajo envuelto en el diseño del circuito combinacional. Por ejemplo, es posible obtener la información para los mapas de la Figura 6-23 directamente de la Tabla 6-9 sin tener que derivar la Tabla 6-10. Esto se hace repasando sistemáticamentecada estado presentey la combinaciónde entrada en la 245
I il
)14 5
Figura
6-24
Diagrama lógico del circuito secuencial
Tabla 6-9 y comparándola con los valores binarios del siguiente estado correspondiente. Las condiciones de entrada necesarias, como se especifican por Ia excitación de los flip-flops en la Tabla 6-8, se determinan entonces. En vez de insertar el 0, 1 ó ¡ así obtenidos en la tabla de excitación, se pueden escribir directamente en el cuadrado apropiado del mapa apropiado. La tabla de excitación de un circuito secuencial con m flip-flops, fr entradas por flip-flop y n entradas externas consiste en m * n columnas para el estado presente y las variables de entrada y hasta 2-+" filas listadas en alguna cuenta binaria conveniente. La siguiente sección de estado tiene m columnas, una para cada flip-flop. Los valores de entrada de los flip-flops se listan en mh columnas, una para cada entrada de cada flip-flop. Si el circuito contiene j salidas, la tabla debe incluir j columnas. La tabla de verdad del circuito combinacional se toma de la tabla de excitación considerando el estado presente m + n y las columnas de entrada como entradas, y los valores de entrada del flip-flop mk+j y las salidas externas como solldos. Diseño con estados no usados Un circuito con m flip-flops puede tener 2- estados. Hay ocasiones cuando un circuito secuencial puede usar menos que este máximo número de estados. Los estados que no se usan en la especificación del circuito secuencial no se listan en la tabla de estado. Cuando se simplifican las funciones de entrada de los flip-flops, los estados sin usar pueden ser tratados como condiciones de no importa. EJEMPLO 6-1.' Completar el diseño del circuito secuencial presentado en la Sección 6-5. Use la tabla de estado reducida con 246
Tabla
Estado presente
Entrada
Tabla de excitación para el Ejemplo 6-1
Estado siguiente ABC
ABC
001 001 010 0r0 0ll 0ll 100 100 l0l l0l
6-11
0 I 0 I 0 t
0 1 0 I
001 0l0Oxl 011 100 001 100 10tx00 100x00 001 100x00
Entradas de flip-flops SA
RA
SA
RB
0
x
0
oxx l 0 0 x I 0
X 0 0
0 0 0
0
I
0
X X X X
Salidas
SC RC
0 0 0 0 0 0 0 I 0 I
XO 0l l0 OX XO 0l l0 OX XO 0l
la asignación 1 tal como se da en Ia Tabla 6-6. El circuito debe usar flip-flops RS. La tabla de estado de la Tabla 6-6 se redibuja en la Tabla 6-11 en la forma conveniente para obtener la tabla de excitación. Las condiciones de entrada del flip-flop se deriva de las columnas del estado presente y del siguiente estado de la tabla de estado. Como se usan los flip-flops RS es necesario referirse a la Tabla 6-8(a) para las condiciones de excitación de este tipo de flip-flop. A los tres flip-flops se les da los nombres de las variables A, B y C. La variable de entrada es r y la variable de salida es y. La tabla de excitación del circuito suministra toda la información necesaria para el diseño. Hay tres estados sin usar en este circuito: los estados binarios 000, 110 y 111. Cuando se incluye una entrada de 0 ó 1 con estos estados no usados se obtienen seis términos mínimos, de no importa: 0, 1, 72, 13, 14 y 15. Estas seis combinaciones binarias no se listan en la tabla de verdad bajo el estado presente y la entrada y se tratan como términos de no importa. La parte del circuito combinacional del circuito secuencial se simplifica por medio de los mapas de Ia Figura 6-25. Hay siete mapas en el diagrama, seis mapas son para simplificar las funciones de entrada para los tres flip-flops RS. El séptimo mapa es para simplificar la salida y. Cada mapa tiene seis X en los cuadrados de los términos mínimos de no importa 0, l, 2, 13, 14 y 15. Los otros términos de no importa en los mapas provienen de las X en las columnas de entrada dr-.I flip-flop de la tabla. Las funciones simplificadas se listan bajo cada mapa. El diagrama lógico obtenido de estas funciones de Boole se dibujan en la Figura 6-26.
:i .t: I l,
i''
Un factor olvidado hasta este momento en el diseño es el estado inic i a l del circuito secuencial. Cuando se le da potencia a un sistema digital 247
t:i
i
C
Cx 00
AB
0t
ll
l0
X
t-;
0l
t^
["
X
L'o
X
el
^
i"
;1
l¿ !_) X
Y
rtl
t4
X
Y
v
Y
I X
A
U
L_J
^
X
X
il| f-T E I A
X
l^
X
SB = A'B'x
RA=Cx
SA=Bx
A
Y
X
-¡ 'l
g
JJ
x
x
x
Y
I
F
I
x
I
A
^
X
^
rl
I
.tc = x'
RB=BC+Bx
x
^
r; Li
¡
A
r_J
.v=Ax Figura 6-25
Mapas para simplificar el circuito secuencialdel Ejemplo 6_1
por primera vez, no se conoce en qué estado se fijará el flip-flop. Es costumbre suministrar una entrada maestra de puesta a uno lmastei:re.set)
cuyo propósito es iniciar los estadosde todos los flip-flops ep el sistema. Típicamente, la maestra de puesta a uno es una senal aplicada a todos Ios flip-flops asincrónicos antes de 'comenzar las operaciónestemporizadas. -En la mayoría de los casos los flip-flops se llevan a 0 por medió de la señal maest¡a de puesta a 0, pero algunos serán puestos a 1. por ejemplo, el circuito de la Figura 6-26puede inicialmente ponersea 0 con un estado ABC:001, ya que el estado000 no es un estadoválido para este circuito. 248
Figura
6-26
Diagrama lógico para el Ejemplo 6-i
¿Pero qué pasa si el circuito no se pone a cero con un estado válido inicial? O lo que es peor, ¿qué pasa si debido a la señal de ruido o cualquier otra razón imprevista, el circuito se encuentra en uno de estos estados inválidos? En este caso es necesario asegurar que el circuito eventualmentevaya a uno de Ios estadosválidos para regresara la operación normal. De otra manera, si el circuito secuencial circula dentro de los estadosinválidos, no habrá manera de llevarlo de nuevo a la secuencia intentada de las transiciones de estado. Aunque se puede asumir que esta condición indeseablesupuestamenteno ocurre, un diseñador cuidadoso puedeprevenir que esta situación nunca ocurra. Se había expresadopreviamente que los estadossin usar en un circuito secuencialpuedenser tratados como condicionesde no importa. Una vez que se diseña el circuito, los m flip-flops en el sistema puedenestar en cualquiera de los 2- estadosposibles. Si algunos de estos estadosse tomaran como condicionesde no im¡rorta, el circuito puede ser investigado para determinar el efecto de estos estadossin usar. EI estado siguiente de los estados inválidos pueden determinarse del análisis del circuito. De todas maneras, es siempre acertado analizar un circuito obtenidn de un diseño, para asegurar que no se cometan errores durante el proceso. 249
I i
i
2fr
L O G I C AS E C U E N C I A L
CAP.6
EJEMPLO 6'2: Analízar el circuito secuencial obtenido en el Ejemplo 6-1 y determinar el efecto de los estados sin usar. Los estadossin usar son 000, 110 y 111. El análisis del circuito se hace por el método esbozado en la Sección 6-4. Los mapas de la Figura 6-25 pueden ayudar también en el análisis. L' que se necesita aquí es comenzar con el diagrama del circuito de la Figura 6-26 y derivar la tabla o el diagrama. si la tabla de estado derivada es idéntica a la Tabla 6-6 (o la parte de ra tabla de estado de la Tabla 6-11), entonces se sabe que el diseño es correcro. En suma, se debe determinar los estados siguientes de los estados sin usar 000, 110y 111. Los mapas de Ia Figura G-2b pueden ayudar a encontrar el siguiente estado de cada una de las entradas sin usar. Tómese, por ejemplo' el estado sin usar 000. si en este circuito, por alguna razón, se encuentra en el presente estado 000, una entrada .r:0 trasferirá a otro (o al mismo) estado siguiente. Se investigará primero el término mínimo ABCx:0000. De los mapas, se ve que este término mínimo no se incluye en ninguna función excepto para SC, es decir, la entrada de puesta a uno del flip_flop C. por t-a1to, los_flip-flops A y B no cambiarán pero el flip_fiop C se pondrá.a 1. como el presente estado es ABC:000, el .igui"trt" estado será ABC:001. Los mapas mostrarán también que el término mínimo ABCx:0001 se incluye en las funciones para SB y RC. Por tanto B se pondrá a uno y c se pondrá comenzando c o n A B C : 0 0 0 y p o n i e n d o a u n o a B , s e o b t i e"n e"u.o. el sizuiente estado ABC:010 ( C y a s e h a p u e s t o a c e r o ) . L a i n v e s t i g a c i ó nd e l mapa para la salida y demuestra que y será paru estos dos ""to términos mínimos. El resultado del procedimiento de análisis se muestra en el diagrama de estado de la Figura 6-27. El circuito opera como se ha diseñado, siempre y cuando esté dentro de los 001, 010, "rtudo. 011, 100 y 101. si alguna vez se encuentra en uno de los estados
Figura
6-27
Diagrama de estado para el circuito de la Fizura 6_26
D l s E Ñ OD E C O N T A D O R E S 2 5 1
sEC. 6-8
inválidos 000, 110 ó 111, irá a alguno de los estados válidos en unc de Ios dos pulsos siguientes. El circuito será así de autocomienzo y autocorrección ya que eventualmente irá a un estado válido a partir del cual continuará operando de acuerdo a lo requerido' Una situación indeseable hubiera ocurrido si el estado siguiente de 110 para r: t hubiera sido 111 y el estado siguiente de 111 para r : 0, 110. Entonces, si el circuito comienza de 110 ó 111, circulará y se mantendrá entre estos dos estados para siempre. Los estados no usados que causan tal comportamiento indeseable deben ser evitados; si se detecta su existencia, el circuito debe ser rediseñado. Esto puede hacerse más fácilmente espec.ificqn{o un estado siguiente válido para cualquier estado sin usar que se haya encontrado circulando entre estados inválidos. 6-8
DISEÑO DE CONTADORES
Un circuito secuencial que pasa por una secuencia preestablecida de estado_sdespués de Ia aplicación de pulsos se llama un contador. Los pulsos de eni.ada, Ilamados pulsos de cuenta, pueden ser pulsos de reloj, o ellos pueden originarse en una fuente externa y pueden ocurrir en inltervalos óstablecidos de tiempo o aleatoriamente. En un contador, Ia secuencia de estados puede seguii una cuenta binaria o cualquier otra secuencia de estados. Los contadores se encuentran en la mayoría de los equipos que contienen lógica digital. Ellos se usan para contar el número de ocurrencias de Un evento y se usan para generar Secuenclas cte tlempo para Cont r o l a r l a s o p e r a c i o n e se n u n s i s t e m a d i g i t a l . De las diferentes secuencias que un contador debe seguir. Ia secuencia binaria directa es la más simple y la más directa. Un contador que s i g u e I a s e . c u e n c i ab i n a r i a s e l l a m a c o n t a d o r b i n o r i o . U n c o n t a d o r d e n -I. bits consiste en n flip-flops y puede contar en binario de 0 hasta 2" Como un ejemplo, el diagrama de estado de un contador de 3 bits se muestra en la Figura 6-28. Como se ve en los diagramas de estado indicados dentro de los círculos, Ias salidas de los flip-flops repiten Ia secuencia de cuenta binaria con un regreso a 000 después de 111. Las líneas dirigidas
Figura
6-28
Diagrama de estado de un contador binario de 3 bits
252
LoGIcA SEcUENCIAL
CAP. 6
entre círculos no se marcan con valores de entrada-salida como en otros diagramas de estado. Recuérdeseque las transiciánes Je estado en dos circuitos secuencialestemporizadosocurren durante un pulso ¿" ,aroj; los. flip-flops permanecenen sus estados pr"r""i".-,i-no o".rrre ningún pulso. Por esta razón,,el pulso de variable cp ;; áirr.." explícita_ .reloj mente como una variabre de/entrada en un diagrama de eltado o tábra de estado.Desdeeste punto-de/vista,el diagrama"d;;t"d;"de un contador no tiene que mostrar valores de entrada"-salida i; l;;go de las líneas dirigidas. La única entrada al circuito es el pulso" de cuenta, y las salidas se especificandirectamente con los estados iresentes J; l;. itip-nops. oi siguiente estado del contador dependeenteramente de su estado presente y la transición de estado o..,rr. cada vez que ocurre el pulso. Debido a esta propiedad, se es.pecificacompletamente un contadoi por medio de una lista de secuencia-de cuenüo, es decir, la ...ua".iáde los estados binarios que se le suceden. La secuenciade cuenta de un contador binario de B estadosse da en Ia Tabla 6-12. El siguiente número en la secuenciarepresenta el siguiente estadoalcanzadopor el circuito despuésde Ia aplica;ió";;ipulso de cuenta. La secuenciade cuenta .e repite ,r.r" u", haya alcanzado el último valor, de tal manera que el estadb 000 es el estaáo .ig;;rrt" despuésde 111. La secuenciade cuenta da toda la informaci¿" p"ru diseñar el circuito. No es necesarioristar los estados.igui".rt", """E."ri" una columna s.eparadaporque se puede leer del número siguiénte .r, ü"r, ...u.ncia. EI diseño de contadoressigue el mismo procedñnientoque--aquel esbozado en la Sección 6-7, exceptoque la tabla de obtenersedii;;; rectamentede la secuenciade cuenta. "*"it".iá" Tabla
6-12
Tabla de excitación para un contado¡ binario de t¡es bits
Secuenciade cuenta A2
Al
0 0 0 0
00 0l l0 ll 00 0l l0 ll
Ao
Entradas del flip-flop TAz
0 0 0 t t
0 0 0 I
TA,
TAo
0 I 0 I 0 I
t
0 I
La Tabla 6-12 es la tabla de excitación para el contador binario de 3 bits. Se les da designaciones de varia¡re. ¿r, ¿, ;";;; los tres flipflops. Los contadoresbinarios se construyen más érió;"rrle-ente con flip_ flops ? (o flip-flops J.If c9n V K unidasi. La excitació"'á"f nip-nop para ! las entradas ? se deriva de ra iabla de excitación der flip-flop T y por inspección de Ia transición de estado de una cuenta dada (estadopresente)
D I S E Ñ OD E C O N T A D O R E S 2 5 3
sEc 6-8
a la siguiente bajo ellqrfestado siguiente). como ilustración, considérese es 001 tas e.rtiadas del i'lip-flfp'pr.u Ia fila 001. El estado presenteaquí Comla secuencia. en cuenta i"t riguiu"te es 01ó, el'cúal es la siguiente TA': hace y-así lo a 0; 0 que va de A2 ir"i""¿lestas dos cuentas' se nota ocucuando cambiar sin permanecer debé A2 porqueel flip-flop ;;;;;0 porque l un con marca se y ?Ar así 1; a de 0 Á' vá reloj. p,rlto de ;;; "; if"p debe ser complementadoe1 el siguiente pulso de reloj. De ma,i nip y .,.ru ,i-ilur A0 va de 1 a 0, indicando que esta puede complementarse, 111 presente estado el con columna así TA6 se marca con un 1, La última AI ." *Ápuru con la pii*"tu cuenta 000 la cual es su estado siguiente. tres los que todos requiere se los ceros, a todos unos los ;;.;t- á" to¿ot flip-flops se comPlementen. Las funcion"r á" é"1tuda de los flip-flops de las tablas de excitación lisse simplifican en los mapas de la Figura 6-29. Las funcionesde Boole del combinacional circuit. parte de la especifican mapa cada i"au. il"¡ un se obtiene contador. Incluyendó estas funciones con los tres flip-flops, 6-30' Figura la en mostrada lógico del contador de la manera ái;ilr; un cont*adorcon n flip-flops puede tener una secuenciabinaria de menos d,e 2" números. Un contador BDC cuenta Ia secuenciabinaria desde 0000 hasta 1001 y regresa a 0000 para repetir la secuencia.otros puede no ser contadorespueden .eg.,ir urru .".uuttcia arbitraria, la cual de diseño procedimiento el fbrmas, la secuenciábinaria iirecta. De todas se excitación de y la tabla lista se cuenta es el mismo. La secuenciade listada cuenta la siguiente presente con cuenta una comparando "úti""" ^11
A-rLI
I
I
I
I
I
I
I
4O
TAt = Ao
TA, =AtAo Figura 6-29
TAo=1
Mapas para un contador binario de 3 bits'
Pulsos de cuenta
Figura
l-3O
Diagrama lógico de un contador binario de 3 bits
2g
L o G I c AS E C U E N C I A L
CAP, 6
bajo ella. Una secuencia de cuenta tabulada siempre asume una cuenta repetida, de tal forma que el estado siguiente de la última ehtrada es la primera cuenta listada.
EJEMPLO 6-J.. Diséñeseun contadorque tenga una secuencia repetida de seis estadoscomo Ia listada én la T"abla6-rg. En esta secuencia,ros flip-flops B y c repiten la cuenta binaria 00, 01, r0 mientras que ei flip-flop A alterna entre los estados 0 y l cada tres cuentas.La secuenciadecuenta paraA, B, C no es binaria-directa y los dos estados011 y.111 no se usan. La es:oC:"gr.ude los_flip-flopsJI( resulta en una tabla de excitación de la Tabla 6-13.Las entradasKB y KC tienen soramente 1v X en Tabla 6-13
Tabla de excitaciónpara el Ejemplo 6-3
Secuencia de cuenta
Entradasdel flip-flop JA
0 0 0
00 0
JB
JC
OXOXIX OXIXXI IXXIOX XOOXIX XOIXXI XIXIOX
ll
l0 00 0l l0
sus columnas, de tal, manera que esas entradas sean siempre l. Las otras funciones de entrada de los flip-flops p""J"" ,i*priri carse usando té¡minos mínimos 3 y T de no i m p o r t a . L a s f u n c i o n e s s i m p l i f i c a d a i s o n": ó - o - " o r r d i " i o r r " .
JA:B
KA: B
JB:C
KB:I
JC:
B,
KC: I
EI diagrama lógico del contador se muestra en la !.igura 6-31(a). como hay dos estadossin usar, se analiza el circuito para determinar su efecto. El diagrama de estado así obtenido se dibuja en la Figura 6_81(b).Si eI circuiro por algur, mllivo va a un estadb inválido, el siguiente purso de cuenta"ro t.u.fi".. u uno de los estados váridos y continúa contando correctamente. fuí, el contador se autoinicia. un contador autocomenzante es aquel que puede comenzar en cualquier estado y alcanzarla secuenciade cuentanorÁal. "u".rtrruÍmenre
(a) Diagrama lógico del contador
(b) Diagrama de estado del contador Figura
6-9
6-31
Solución al Ejemplo 6-3
D I S E Ñ OC O N E C U A C I O N EDSE E S T A D O
Un circuito secuencial puede diseñarse por medio de ecuaciones de estado en vez de una tabla de excitación. Como se muestra en la Sección 6-4, una ecuación de estado es una expresión algebraica que da las condiciones para el siguiente estado como una función del estado presente y las va.iubl". de entrada. Las ecuaciones de estado de un circuito secuencial expresan en Iorma algebraica Ia misma información Ia cual es expresada en forma tabular en la tabla de estado. El método de la ecuación de estado es conveniente cuando el circuito se haya especificado en esta forma de la tabla de estado. Este es el método prlferido cuando se usan los flip-flops D. !l método puede ser algunas veces conveniente de usar con flip-flops JK. La aplicación de este procedimiento en los circuitos con f'lip-f'lops RS o ? es posible pero encierra una 255
256
L o G r c As E c u E N c t A L
cAp. 6
cantidad considerable, de manipulación algebraica. Aqur se mostrará la aplicación de este -método u tá* lir"rrrros secuenciales
p ó JK. El pu"1t.decomienro"""'"uau casoestu
del flip-flop de¡ivado e" tu S""ci;;
ü.
""uu"illu:3:""11,j1?:;
Circuitos secuenciales con flip_flops D La ecuación característica del flip-flop D se deriva en la Figura 6_s(d):
QQ+t):D Esta ecuación estable"",.qu" er siguiente est¿do del flip-flop es igual al valor presentede su sarida ¿ v-ü-i"aependiente a"i áto. del presente estado' Esto sisnifica que ra* enrradu. pa.u el siguienteestadoen Ia ta_ bla de estadosón exactamentelas mismas que ras'entradas,. por tanto, no es necesarioderivar las condiciones de^".,truau--á"r"nip_noppara la t'abla de excitación porque esta información está disponible ya en las columnasdel siguienteestado. por ejemplo,la tabla de excitación -,-Tó*":", de la Tabla 6-10. La sigurente columna de estado para A tiene cuatro unos, de la misma manera que la columna para el sigurente ;hd" d; t. p; ;;.;;", esre circuito co,' flip-flop. D,.se escribe-n tu..*u.innes de estadoy se fbrma la ecua_ crón con ellos a las entrada. D "o.."rpondientes: A(t + r) : DA(A,B, x) : >(2,4,s,6) B ( t + l ) : D B ( A ,B , x ) = > ( 1 , 3 , 5 , 6 ) donde DA y DB son las funcionesde entrada de los flip-flops para los flipB, respectivamente, t il; i,rr,",o., se expresa como la suma de fl:or cuatro 1.t los términos mínimos. Las funcio"u. .i;;i;¡;ias pueden obte^r,u. nerse por medio de dos mapas de tres variables. irrrr"iones simplificadasde entrada al flip_flop son: DA = AB'* Bx, DB:A'x*B,x+ABx, Si hay estadossin usar en el circuito secuencial, deben considerarse 'd;-;; conjuntamente con ras entrada* importa. Los términos mínimos de no i-portu "o-o"o-binaciones a.i- o¡teniáos rr*r.u para sim_ ñ;";" plificar las ecuacionesde estat; ¿ i;; firnciones,i" del flip_flopD. "nirrau EJEM,LO 6'4: Diséñeseun circuito secuencial con cuatro flip-flops A, B, C y D. Los u.lu¿o. siguientesd;C,'¿ y D son iguales a los estadospresentes¿. ¿, ¿ v-ó .".p".ii#Ll"r". El estado sis'iente de A ei iguar a ru ciñ-"*ór"riu;i;i;.-u"iuao. presentes deCyD. A partir del enunciadodel problema, es convenienteescribir primero las ecuacionesde estado para el circuito:
I
I
sEc.6-9
D I S E Ñ OC O N E C U A C I O N E D SE ESTADO
257
A(t+l):COD B(t+r):A C(t+t¡:3 D(t + l):
C
Este circuito especificaun registro de corrímientopor realimentación (feedbackshift register). En este registro, cada flip-flop trasfiere o desplaza su contenido al siguiente flip-flop cuando ocurre un pulso de reloj, pero el siguiente estado del primer flipflop (A en este caso) es alguna función del estado presente de otros flip-flops. Como las ecuacionesde estado son muy simples, el flip-flop más convenientede usar es el tipo D. Las funciones de entrada del flip-flop para este circuito se toman directamente de las ecuacionesde estado, con la siguiente variable de estado remplazadapor la variable de entrada del flipflop: DA:C@D DB: A DC: B DD: C El circuito puede construirse con cuatro flip-flops D ¡' una compuerta OR-exclusiva. E c u a c i o n e sd e e s t a d o c o n f l i p - f l o p sJ K * La ecuación característica para el flip-flop JI( se deriva en la Figura 6-6(d):.
e Q+ t ) : ( J ) e ,+ ( K , ) e Las variables de entrada J y K se encierran en paréntesis, de tal manera que no se confunda los té¡minos AND de la ecuación característica con la convención de dos Ietras las cuales se han usado para representar las variables de entrada de los flip-flops. El circuito secuencial puede derivarse directamente de las ecuaciones de estado sin tener que dibujar la tabla de excitación. Esto se hace por medio de un proceso de apareamiento entre la ecuación de estado para cada flip-flop y la ecuación general característica del flip-flop J1(. El proceso de apareamiento consiste en manipular cada ecuación de estado hasta que esté en la forma de ecuación característica. Una vez que se hace esto, las funciones para las entradas J y K pueden ser extractadas y simplificadas. Esto debe hacerse para cada ecuación de estado listada, y su nombre de variable de flip-flop A, B, C, etc., debe remplazar Ia letra Q en Ia ecuación característica. tEsta parte puede omitirse sin pérdida de continuidad.
258
LoGIcA SECUENCIAL
CAP. 6
Una ecuación de estado dada para e (¿+ 1) puede expresarsecomo función de Q y Q'. A menudo,o Q o Q'o ambasestáríanausentesen la expresión de Boole. Es necesarioentoncesmanipular la expresiónalgebraicamente hasta que Q v Q'se incluyan en las posibilidádesque pueder"t encontrarse. EJEMPLO 6-5; Diseñar un circuito secuencialcon los flipflops JI( para satisfacer las siguientesecuacionesde estado: A(t + l): B(t + l):
A'B'CD + A'B'C + ACD + AC'D' A'C + CD' + A'BC'
C(t+t):3 D(t + l):
D'
Las funciones de entrada del flip-flop A se derivan por este método rearreglandola ecuación de estado y apareándolácon la ecuacióncaracterísticade la siguientemanera: A ( t + t ) : ( B , C D + B , C ) A ,+ ( C D + C , D , ) A : (J)A' + (K')A De ia igualdad de estas dos funciones,se deducen las funciones de entrada del flip-flop A como: J : B,CD + B,C: B,C Y: (CD + C'D')' : CD' + C,D La ecuación de estado para el fl,ip-flop B puede rearreglarse de la siguientemanera: B(t + l) : (A,C + CD,) + (A,C,)B Sin embargo, esta forma no es adecuadapara aparearla con la ecuación característicaporque la variable B, está faltando. Si a la primera cantidad en paréntesisse le aplica la función AND conjuntamentecon (B'*B), la ecuaciónpermaneceigual, pero con la variableB' incluida. Entonces: B(t + t): (A'C + CD,)(B,+ B) + (A,C,)B : (A,C + CD,)B,+ (A,C + CD, + A'C,)B : (J)8, + (K,)B De Ia igualdad de estas dos funciones,se deducen las funciones de entradapara el flip-flop B: J: y:
A,C + CD, ( A ' C + C D , + A , C , ) ,: A C , + A D
REFERENCIAS259
como La ecuación de estadopara el flip-flop C puede manipularse sigue:
C ( r + t ) - - S '- B ( C ' + C ) : B C ' + BC : ( J ) C '+ ( K ' ) C
Las funciones de entrada del flip-flop C son:
J:B K: B' puede ser Finalmente, la ecuación de estado del flip-flop D la siguiente de apareamiento de propósito para el manipulada manera:
D(t+,,_:!r,,r:r,, i ,i rrl
lo cual da la función de entrada: J:K:l y Las tünciones de entrada derivadas pueden acumularse listarseconjuntamente.Laconvencióndedosletrasparadesignarlauu,iabt"deentradadelflip-flop,nousadaenlaanterior derivación, se usa a continuación: JA: JB: JC: JD:
B,C A,C + CD, B I
KA: KB: KC: KD:
CD,+ C,D AC, + AD B' I
alterno paEl procedimiento de diseño introducido aquí es un método secuencial circuito del flip-flop del entrada de ra determinar las trrr"lont. parc usar este procedimiento cuando un JK. flip_¡1oo, se usan ;;^"d" es necede estado o tábla de estado se especifica inicialmente, ái;g;;-" esboprocedimiento por el ,urñ q"" Ias ecuaciones de estado se deriven para enconestado de la ecuación de ,uao u" la Sección 6-4. El método del flip-flop puede extenderse para cubrir trar las funciones dá l"tr"d" de no importa' estados sin usar los cuales se considéran como funciones de una ecuaforma la Los términos mínimos de no importa se escriben en la ecuación de la forma que en estén ción de estado y se -a.,ipulan Éasta J y funciones Las particular considerado' característica para el flii-flop mínimos K en Ia ecuación de estado denó importa se toman como términos de un flipentrada de funciones lu. simplificutt se cuando importa de no flop particular.
R E F ER E N CI A S 1. Marcus, M. P., Suitching N.J.: Prentice-Hall, 1975.
Circuits for Engineer.s, 3a. ed' Englewood Cliffs'
2@
L o G t c As E c u E N c t A L
cAp. 6
2 Mccluskey, E. J.,_Introciuctionto the Theory of ,switching círcuits. Nueva York: McGraw-Hill Book Co., 1965. ' swítching Theory, dos volúmenes.Nueva york: John wiley and s*f i#; .E'' n M', Bosic swítcrting circuít Theory.Nueva york: The Macmilran co., f;;;*r' 5 ' H i l l , F ' J ' v G . R . p e t e r s o n ,I n t r o d . u c t i o n , t o _ s w í t c h i n g T h e o r ya n d L o g í c a rD e _ srgn. Nueva york: John Wiley and Son., fgZ¿. 6' Givone,D. D., Introduction to suitching Circuit Theory. Nuevayork: McGraw_ Hill Book Co., 1920. t suítching and Finite Automata Theorv. Nueva york: McGraw-Hill ff#"¿;l'' 8
l'i',it!?l,Yi#e
LosicatDesig,t of Dígitatcomputers. Nuevayork:Johnwiley
9 Paull, M' c'y s' H. unger,"Minimizing t h e _ N u m b eor f s t a t e s i n I n c o m p l e t e l y specified Sequenriars*itching Fr;;;;;;.;;.'IRE Trans.ár-linr^rro,c compu_ úers,Vol. EC-8, No. 3 (setiemblergSgl, áSO_OO. 1 0 . Hartmanis, J', "on the.state fusignment problem for sequential Machines L,, IRE Trans. on Electroní, Co^putír.r,-ü"i. BC-fo, No. 2 gunio 1961),Ib| -68. 1 1 . Mccluskey, E' J' y S.. H. unger, "A Note on the Number of Internar Assignments for sequential circuits". 1áE Trans. in Etectroniccomputer,vol. EC-g, No. 4 (diciembre1959),439-40.
PROBLEMAS 6-1'
lógicode un flip-flop -RStemporizado concuatrocompuer|;SntirtLtma 6-2' Dibujeel diagramarógicode un flip-flop D temporizado concompuertas AND v NOR. 6-3' Demuestre que el frip-flopD temporizado de la Figura6-5(a)puedesimplifi_ carseen una compuerta. 6-4'
6-5'
considere un flip--flop JK' es decir un flip-flop JK con un inversor entre la entrada externa K' y la entrada interna K. (a) Obtengala tabla característica del flip-flop. (b) Obtengala ecuacióncaracterística. (c) Demuestreque atando las dos entradas externas entre sÍ se forma un flip-flop D. un flip-flop con.entradan1inciq11de puesta a uno, tiene entradasde puesta a.uno v de puesta a cero. Esta difiere ^d" r;flip-¡i;;;;;;;;"".ional en que uno y a cero simultáneamente, et tiip-nop comá resultado ,u pá.,;H""ffi.a (a) Obtenga ," ,ilti...:i1.1.:i.r].1 y ecuación característica de un flip-flop con dominio de puesta a uno (set_dominate). (b) obtenea el diagrama lógico de un flip-flop con dominio de puesta a uno asincrónico.
J
I
I
P R O B L E M A S2 6 1 6-6.
6-7.
obtenga el diagrama lógico de un flip-flop JK maestroesclavocon compuertas AÑD y NOR. Incluya una provisiónpara ponera uno y a ceroel flip-flop asincrónicamente(sin reloj). Este problema investiga la operacióndel flip-flop JK maestroesciavoa través de la transición binaria en las compuertasinternas de la Figura 6-11. Evalúe los valores binarios (0 ó 1) en las salidas de las nueve compuertas cuando las entradas del circuito van a través de la siguientesecuencia:
(a) CP:0, Y:0, Q:0 YJ:K:r. (b) Despuésde que CP vaya a 1 (Ydebe ir a uno; Q permaneceen 0). (c) Despuésde que CP vaya a 0 e inmediatamentedespuésJ iráa 0 (Q debe ir a 1; Y quedasin afectarse). (d) Despuésde que CP vaya a 1 de nuevo (Y debe ir a 0). (e) Despuésde que cP vaya de vuelta a 0 e inmediatamentedespuésde eso K v a y a a 0 ( Q d e b ei r a 0 ) . (f) Todos los pulsos que se sucedenno tienen efecto siemprey cuandoJ y K permanezcanen 0. 6-g. Dibuje el diagrama lógico (mostrandotodas ias compuertasde un flip-flop D maestroesclavo.Use compuertasNAND. 6-9. Conecte un terminal de puesta a cero (clear) asincrónicoo las entradasde Ias compuertas2 y 6 del flip-flop de la Figura 6-12. (a) Demuestreque cuando el terminal de puesta a cero es 0, el flip-flop se de dos valores de las pone a cero y permaneceasí independientemente entradasCP y D. (b) Demuestreque cuando Ia entrada de puesta a cero es 1, no tiene efecto en las operacionesnormalestemporizadas. 6-10. El sumador completode la Figura P6-10recibe dos entradasexternasr y y; Ia tercera entrada z viene de la salida del flip-flop D. El arrastre de salida (carry output) se trasfiere al flip-flop en cada pulso de reloj. La salida externa S dá la suma de x, y y z. Obtenga la tabla de estadoy el diagrama de estadodel circuito secuencial'
Figura P6-10
6-11. Deduzca la tabla de estado y diagrama de estado del circuito secuencial de la Figura P6-11. ¿Cuál es la función del circuito?
262
L O G I C AS E C U E N C I A L
CAP. 6
Figura P6-ll 6-12. un circuito secuencialtiene cuatro flip-flops A, B, c y D y una entrada ¡. Este se describe por medio de las siguie.,tes .c,racio.reri A(t + t):
(CD, + C,D)x + (CD + C,D,)x,
B(t + t¡: 1 C(t+t):B D(t+t):C ( a , obtenga la secuenciade estados cuando r:
e s t a d oA B C D : 0 0 0 1 . ( b ) obtenga la secuenciade estadoscuando r:0 t a d oA B C D : 0 0 0 0 .
r, comenzarrdodesde el comenzandodesdeel es-
6-13. lln circuito secuencialtiene dos flip_flops(A B), dos entradas y y, y una r V salida z. Las funcionesde entrada-aetitip-rtóp yiu. r"".iones de salida del circuito son las sizuientes: JA:xB+y,8, JB: xA, z: xyA * x,y,B
f,q : xy'B' K B : x y '+ A
Obtengael diagrama lógico, la tabla de estado, el diagrama de estado y las ecuacionesde estado. 6-14. Reduzca el número de estados en la siguiente tabla de estado y tabule la tabla de estado reducida.
Estado presente
Estado siguiente
x:0
a
JI
b c d e
dc
f I h
Je 8a dc
lb sh ga
x:l
Salida
x:0
x:l
0 0 0 I .0 I 0 I
0 0 0 0 0 I I 0
PROBLEMAS 263
6 . 1 5 ' C o m e n z a n d o c o n e l e s t a d o o d e l a t a b l a d e e s t a d o e n e l P r o de b ] eentrada ma6-14,en. la secuencia cuentre la secuencia de salida generada con 01110010011. 6-16.RepitaelProblema6.lsusandolatablareducidadelProblema6-14.Dede salida' muestre que se obtiene la misma secuencia 6 - | T . s u b s t i t u y a l a a s i g n a c i ó n b i n a r i a - 2 d e l a T a b l a 6 - S a l o s asignación e s t a d o s e nbinaria l a T a b l3. a de estado binario. Repítalo con la 6_4 y obteng^ l;t?;i; 6-13.obtengalatabladeexcitacióndelflip-flopJK'descritaenelProblema6-4. 6-19.obtengalatabladeexcitacióndeunflip-flopcondominiodepuestaauno (set-dJminate) descrita en el Problema 6-5' y una salida. Ei diagrama de es6-20. un circuito secuencial tiene una entrada p6-20. Diseñe un circuito secuencial con (a) riguru iu tado se muest;;; ifio-¡oo. ?, (b) flip-flops 'RS v (c) flip-flops Jl(' 6 - 2 | . D i s e ñ e e l c i r c u i t o d e u n r e g i s t r o d e 3 b i t s q u e c o n v i e r t e - e l n ia ú mentrada e r o a c u ¡: m u .1' duj cuando lado en .f ,.gi.irl a su valo"r de complemeto Losflip-flopsdelregistrosondeltipofisT'Esteflip-floptienetresentradas: d o s e n t r a d a s t i e n e n c a r a c t e r í s t i c a s R s y u n a t i e n e . c a r a c t e r í s t i c a sentrada T.Las pu* f.á.f"tir el nú"mero de 4 bits cuando una entradas nS *.-"ü" para la conversron' }: 1. Use la entrada ? 6.22.RepitaelEjemplo6.lconIaasignaciónbinariaSdela'|abla6.5.Uselos flip-flops JK. 6-23. Diseñe un contador BDC con flip-flops JK' 0/0 001 0/0 I/1 ll
r00
t/r
0/o 0/0 /
/oto
010/ lt/ 000
Figura P6-20
6.24.Diseñeuncontadorquecuentedígitosdecimalesdeacuerdoalcódigo2'4' 2, 1, (Tabla 1-2)' Use fliP-floPsT' la siguiente secuenciabinaria G-ru. Diseñe los contadoresbinarios que tienen !' JK' repetida. Use fliP-floPs
2il
i
L o G I c AS E C U E N c I A L
CAP 6
(a) 0, 1,2 (b) 0, 1, 2, 3, 4 (c) 0, 1,2,3, 4, b,6 6-26. Diseñe un contador-con la siguiente s e c u e n c i ab i n a r i a : 0 , 1 , l i , 2 , 6 , 4 , 5 , repetición. Use flip_flops r?S. 6-27' Diseñe un contador con la siguiente s e c u e n c i ab i n a r i a : 0 , 1 , J , i , 6 , 1 y tición. Use flip-flops ?. 6 - 2 8 ' D i s e ñ e u n c o n t a d ' r - - c - o nl a s i g u i e n t e s e c u e n c i aL ¡ i n a r i a : 0 , 4 , 2 , ción. Use flip-flops J1(.
i y repe-
1, 6 y repeti-
6-29. Repita el Ejemplo 6-5 usando flip-flops D. 6-30' Verifique el circuito obtenido en el Ejemplo 6-b usando el método de ra tabla de excitación. 6-31' Diseñe el circuito secuencial descrito por medio de las siguientes ecuaciones de estado. Use flip-flops JK.
A(t + l): B(t + l):
xAB+ yA,C+ ry xAC+ y,BC,
C(r+ l):
x'B+ yAB,
6-32' (a) Deduzca las ecuacionescle estado para el circuito secuencialespebificado en la Tabla 6_6,Sección6-5. Liste lo.stérminos a.,"l.rp".ta. (b) Deduzca las funcionesde ent_radade ros flip-frops a partir de ras ecuacronesde estado (v ros términos_deno importa) ,"un¿o ei método ;b.;;;" en el Ejemplo 6-5. Use flip-flops JK.
J
Registros,contad o res y unidad de memoria ¡i"¡i1.,f..',.r .='
7-1
INTRODUCCION
Un circuito secuencial temporizado consiste en un grupo de flip-flops y compuertas combinacionales conectados para formar un camino de realimentación. Los flip-flops Son esenciales porque, en su ausencia, el circuito se reduce a un circuito puramente combinacional (siempre y cuando no haya un camino de realimentación). Un circuito con flip-flops solamente se considera un circuito secuencial aun en la ausencia de compuertas combinacionales. un circuito MSI que tiene celdas de almacenamiento dentro de él es por definición un circuito secuencial. Los circuitos MSI que incluyen flipflops .r otras celdas de almacenamiento se clasifican comúnmente por la función que ellas realizan en vez de por el nombre "circuito secuencial". Estos circuitos MSI se clasifican en una de tres categorías: registros, contadores o memorias de acceso aleatorio. Este capítulo presenta varios registros y contadores obtenibles en la forma de CI y se explica su operación. La organiZación de la memoria de acceso aleatorio se presenta también. IJn registro es un grupo de celdas de almacenamiento binario capaz de retener información binaria. Un grupo de flip-flops constituyen un registro ya que cada flip-flop es una celda binaria que acumula un bit de información. Un registro de n-bits tiene un grupo de n flip-flops y tiene capacidad de acumular cualquier información binaria que contiene n bits. Además de Ios flip-flops, un registro puede tener compuertas combinacionales que ejecutan ciertas tareas de procesamiento de datos. En su definición más general, un registro consiste en un grupo de flip-flops y compuertas -que afectan su transición. El flip-flop retiene información binaria y las compuertas controlan cuándo y cómo se trasfiere la nueva información al registro. Los contadores se introdujeron en la Sección 6-8. Un contador es esencialmente un registro que pasa por una secuencia predeterminada de estados después de la aplicación de pulsos de entrada. Las compuertas en un contador se conectan de tal manera que se produce una secuencia preestablecida cie estados binarios en el registro. Aunque los contado-
\ 266
REGISTRoS , N T A D o R E SY U N I D A DD E M E M o R I A co
CAP 7
res son un tipo especial de registro, es común diferenciarlos dándoles un nombre especial. Una unidad de memoria es una colección de celdas de almacenamiento conjuntamente con los circuitos asociados necesarios para trasferir la infbrmación de entrada y salida. Una memoria de acceso aleatorio (RAM) difiere de una memoria de solo lectura (ROIVI) en que una RAM puede trasferir la información acumulada hacia afuera (lectura) y también es capaz de recibir nueva información para almacenamiento (escritura). Un nombre más adecuado para tal memoria podría ser memoria de Lecturu y escritura. Los registros, los contadores y las memorias se usan externamente en el diseño de sistemas digitales en general y computadores digitales en particular. Los registros pueden usarse también para facilitar el diseño de circuitos secuenciales. Los contadores son útiles para generar variables de tiempo para temporizar y controlar las operaciones en un sistema digital. Las memorias son esenciales para almacenar los programas y los datos en un computador digital. EI conocimiento de las operaciones de estos componentes es indispensable para la comprensión de la organización y diseño de los sistemas digitales.
7-2
REGISTROS
varios tipos de registrosestándisponibles en circuitosMSI. El circuito más simple es aquel que consiste en flip-flops sin ninguna compuerra externa. La Figura 7-1 muestra tal registro construido con cuatro flip-flops tipo D y un pulso de reloj común de entrada. El pulso de reloj de entrada, cP, habilita todos los flip-flops de manera que Ia información disponible al presente en las cuatro entradas pueda ser trasferida al registro de 4 bits.'Las cuatro salidas pueden ser cateadas para obtener Ia información acrrmulada en el registro.
I3 Figura
7-1
Registro de 4 bits
La forma en que los flip-flops de un registro se disparan es de suprema importancia. Si los flip-flops se construyen con compuertas retenedoras tipo D (gated D-type latches) como en la Figura 6-5, la información presente en la entrada (D) de datos se trasfiere a la salida Q cuando el habilitador (cP) es 1. cuando cP va a cero, la información que estaba
t
I
sEc.7-2
267 REGISTROS
presenteen la entrada de datos justamente antes de la transición es reienida en Ia salida Q. En otras palabras los flip-flops son sensiblgt*u lu que.CP: t' á"r*i¿" dei pulso, y el registro"e ttabihta durante el tiempo comúnmente pulso se del la duración á qrr" .urponde Un registro _llama ,"irn"doíi (gated latch), v la enlrada CP se marca con la ;;*p;;;;t uu.iuUt" G (en vez de CF). los retenedoresson útiles para almacenamiento un destino exi""rp"ráf de Ia información binaria que se va a trasferir a que tienen secuenciales circuitos de el diseño terno. No se deben usar en de realimentación. conexiones -en el C;;" ,e e"pliá-"n la Sección6-3, un flip-flop puedeser usado seny sean cuando ¿ire¡o áe circuüOs selue-nciálestemporizadossiempre signipulso. Esto del duración la .rbi;r'a la transiciO"'Oripút.q u., ueZde los flip-flops en ei registro debenser del tipo de.disparopor flanco ii;;"" no es posibledistinguir en un diagrama ;';;;;r;;i"f!t".'N".malmJnte retenedor de compuerta, se dispara por un es flip-flop i¿gü'.;6"d"';" gráficos de las tres son flanco ó es maestro erclávo, porque los símbolos dado a la unidad' nombre partir del ig";i;. La distinción debe hácersea por lo genepulso se.llaman de a duración de flip_flopssensibles ü;;;;p" sensiblesa flip-flops grupo de que un (l;tch), mientras ral-un retenedor siempre puede ser a" p"f.i, se llaman ,n ,"gittro.* Un registro i¡;".i.i¿l el fin con cuidado con hace remplazadopor un ,"tenedor, si el remplazose entradas otras a vayan nunca á" á."gururr. qu" las salidas del retenedor deflip.flopsqueesténactivadasconelmismopulsoderelojcomún.Err que cualquier grupo de iu, ai...,.iones subsiguientes,se asumirá siempre son dibujados ónstituye un registro v que !od9s los flip-flops hip i"ñ sensible es registro el del tipo de disparo por flanco o maestro "."luub. Si (latch)' u-tu arr.u"ión del ptiro' será tratado como un retenedor R e g i s t r oc o n c a r g a e n P a r a l e l o como la La trasferenciade nueva información a un registro se denomina simultáneamense cargan registro del los bits carga del registró. si-!-g!os hace en paralelo.Un q.r" lu carga_se sio pulro de'reloj, ;;;;";" "bpse dice a"t .egi.tto de _la Figura 7-1 cargarátod¿s a la entrada p"fr. "pfi"ado entradas en paralelo. En esta configuración,el pulso de reloj iu. "rruiro debe aislarse del terminal CP si el contenido del registro se debe dejar sin cambio. En otras palabras, Ia entrada CP actúa como una señal de habilitación Ia cual co.ttrola la carga de la nueva información al registro' Cuando CP va a 1, la información de entrada se carga al registro. Si 9P en 0, el contenido del registro no cambia. Nóteseque el gampio p.t-u"".. de estadoen la entrada ocurre en el flanco positivo del pulso. Si el flip-flop cambia de estado en el flanco negativo, habrá un pequeñocírculo debajo del símbolo de triángulo en la entrada CP del flip-flop' La mayoría de Tos sistemas digitales tienen un generadorde pulsos pulde reloj maestro que suministra un tren de pulsos de reloj. Todos los El sistema. el y en registros flip-flops *or ¿. reloj se upii.un a todos los 7 ' 1 1 7 5e s ejemplo el cI tipo 7475es un retenedo¡ de 4 bits, mientras que el cI tipo un registro de 4 bits. *Por
268 REGISTROS. CONTADORES Y UNIDAD DE MEMORIA
CAP.7
generadorde pulsos de reloj maestro actúa como una bomba que suministra un ritmo a todas las partes del sistema. una seiral de control separada decide e.ntoncesqué pulso de reloj específicotendrá un erectoen un registro particular. En tal sistema, los pulios de reloj debenser, con¡untamente con la señal de control, aplicadosá un, .o-pueit, AND pár" qu" ra salida de esta última se aplique al terminal cp d;l ."gi.f.o-r;;trado en la Fi_ gura 7-1. cuando la señal de control es 0, la saliáa de la compuertaAND será 0 y la información almacenadaen el registrop..Áun.cárá sin cambiar. Solamentecuando la señal de control pulso 1, er de reloj p".u.l fo, -u¡t la compuertaAND y llegará al terminal ". cp pára.iru l" nu"uu información s€ cargue al registro. Tal variable de controi se lllma terlÁinaL de control de carga. El colocar una compuerta AND en.el camino de los pulsos de reloj significa que la lógica se ejecuta con pursos de reloj. Ei-ágr"gu, compuertas lógicas produce ¿er prrl.o .retardos_de propagaciónentre ér g"*?"a", maestro y las entradas de reloj de los flip-flops. para "sincronizarcomple_
'{
I
Carga
Figura
7-2
Registro de 4 bits con ca¡ga en paralelo
\
REGISTROS269
sEc. 7-2
tamente un sistema es necesarioaseg¡rarseque todos los pulsos de reloj llegan al mismo tiempo a todas las entradas de todos los flip-flops de-tal ,rruLr".uque todas cambian simultáneamente. Al ejecutar lógica con pulsos de reloj se introducen demoras variables que pueden sacar al sistema de sincronlsmo. Por esta razón, es aconsejable(pero no necesariosiempre y cuando la demorano se tenga en cuenta) aplicar pulsosde reloj directamente a todos los flip-flops y controlar la operacióndel registrocon otras entradas, tales como las entradasS y ft de un flip-flop RS. Un registro de 4 bits con un terminal de control de carga a base de flip-flops ñs .. muestra en la Figura 7-2. El terminal cP del registro reciüe pul.os sincronizadoscontinuos los cuales se aplican a todos los flipflops. El inversor en el camino de CP causa que todos los flip-flops se dispa-
tf f
Carga
}H t.it
ir
ii{ l;1 l5 i
rti-
,li ¡
u
ti l+ lir
Borrado
Figura
7-3
Registro con carga en paralelo con flip-flops D
¡t
$ rli
H
:3
270
R E G I S T R o Sc,o N T A D o R E SY U N I D A D D E M E M o R I A
CAP, 7
ren por el flanco negativo de los pulsos entrantes. El propósito del inversor es reducir la carga del generador de pulsos maestros. Eslo es debido a que el terminal CP se conecta solamente a una compuerta (el inversor) en vez de a las entradas de las cuatro compuertas qne .e hubieran podiáo necesitar si las conexiones se hubieran hecho directamente a loi terminales cie reloj de los flip-flops (marcados con pequeños triángulos). El terminal de borrado (clear) o de puesta u ceio va a un terminal especial en cada flip-flop a través de una compuerta separadora no inversora (noninverting buffer gate). Cuando este terminal va a 0 el flip-flop se borra asincrónicamente. La entrada de puesta a cero se usa p"ru il"rrui al registro a ceros antes de la operación en cadencia. La entredá de puesta a cero debe mantenerse en 1 durante las operaciones normales temporizadas (ver Figura 6-14). El terminal de carga pasa a través de una compuerta separadora (para reducir la carga) y a través de una serie de compuértas ANb va a los-terminales I y s de cada flip-flop. Aunque los pulsos de reloj están presentes continuamente, en el terminal de carga que controla la óperación del registrc. Las dos compuertas AND y el inversor asociado con cada terminal 1 determinan los valores de ^R y s. si el terminal de carga es 0, ambos R y s son cero, y no ocurrirá cambio de estado con ningún pulso de reloj. Así, la señal del terminal de carga es una variable de controi la cual puedl prevenir cualquier cambio de información en el registro siempre qué esté su señal en 0. Cuando el control de carga vaya a l-. las entradas 1, hasta 1., especificarán qué información binaria se carga al registro en el siguiente pulso de reloj. Para cada 1 que sea igual a 1, las entradas del flip-flop c o r r e s p o n d i e n t e ss o n s : 1 , R : 0 . Para cada 1 que sea igual a 0, lás ent r a d a s d e l o s f l i p - f l o p s c o r r e s p o n d i e n t e ss o n S : 0 , n : 1 . Así, el valor de la entrada se trasfiere al registro, si el terminal de carga es 1, el terminal 'Je borrado es 1, y el pulso de reloj pasa de 1 a 0. Este tipo de trasferencia se llama trasferencia de carga en paraLelo porque todos los bits se cargan simultáneamente. Si la compuerta separadora asociada con la entrada de carga se cambia a una compuerta inversor, entonces el registro se carga cuando el terminal de carga es 0 y se inhibe cuando es 1. un registro con-carga paralela puede ser construido con flip-flops D como se muestra en la Figura 7-3. Los terminales de reloj y de borradó son los mismos que antes. cuando el terminal de carga i, lu, entradas 1 s-etrasfieren al registro en el pulso siguiente de reloj. "." Cuando el terminal de carga es 0, las entradas del circr.¡ito se inhiben y ios flip-flops D se cargan con su valor presente, manteniendo así el contenido del iegistro. La conexión de realimentación en cada flip-flop es necesaria cuarráo se usa del tipo D ya que el flip-flops tipo D no tiene una condición de entrada de "no cambio". La entrada D determina el siguiente estado de la salida con cada pulso de reloj. Para dejar la salida sin cambiar, es necesario hacer la entrada D igual a la salida presente Q en cada flip-flop. Configuración con lógica secuencial Se trató en el Capítulo 6 que un circuito secuencial temporizado consiste en un grupo de flip-flops y compuertas combinacionales. Como los resistros
+
Valor de estado siguiente
Registro
C ircuito combinacional Salidas
Figura
7-4
Diagrama de bloque de un circuito secuencial
es convenientealgunas están disponiblesfácilmente como circuitos MSI, secuencial'un diacircuito un registro como parte d.e.un -áá'Utoqrr" veces emplear registro se muestra que u¡ usa de irn circuito secuencial ;;;;" y entradas externas las registro del presente El estado risr;\-a. :;il y los valores. de las salidas determinan el siguienle estaio del registro" el siguiente estado externas. Parte del ci."uito combinaciánal d-etermina estadodel circuidel valor y la otra parte generála. sulidas. El siguiente Si el registro reloj' pulso de un óott to combinacionalse cargaen el registro si el manera' otra de a 1; establecer te dJbe tiene un terminal ¿" li.gu, siguiente el registro no tiene t".-i.,"i á" ."rgu (como en la Figut&'i-'t\, pulso.de reloj' valor del estado será trasferido automáticamenteen cada puede secuencial circuito un La parte de ciicuito combinacionalde 5' capítulo el en discutidos de losrnétodos ser ejecutada por.""rq"i.t" trn arreglológico con o ROM' con Se puedeconstruir;;;;;*p";rtas.SSI registro,es posible reducir-el diseño de un o-ár"rrá¡i" tplnl.-ü.u"ao^un conectadoa un registro' cicuito secuencialal de un circuitó "o-'bittu.ional cuya tabla EJEMPLO 7-I: Diseñar un circuito secuencial de estadose lista en Ia Figura 7-5(a)' 42. una enLa tabla de estado eJpecificados flip-f loPSA r Y de sainformación e y' Ét tiguiente.estado trada r y una ".t.uáa tabla: la iidu ." o"bti.tt" directamentede A,(t + l) : )(4, 6) Ar(t + l) : )(1, 2,5,6) y(Ap Az,x) : )(3, 7) A" At y Los valores de términos mínimos son para las salidas Las entrada' de y variables las presente r, i". ."^i"s son el estado simpliser pueden salida la siguiente v para el il;;io".; "*iráo ficadaspoi medio de maPasPara dar: At(t + l): Aé' A z Q+ l ) :
Az@x
l:Azx EI diagramalógicose muestraen la Figura 7-5(b)' 271
Estado presente
Entra da
At
x
A2
000 001 010 011 100 l0l
Estado siguiente
At
A2
00 0l 0l 00 l0 0l ll 00
ll0 lll
Salrda
v 0 0 0 I
0 0 0 I
(a) Tabla de estado Figura
7-b
Ejemplo de
(b) Diagrama lógico configuración de un circuito secuencial
Tabla de verdad de la ROM Di¡ección
Salidas
r23
123
000 001 010 0ll 100 l0l rl0
000 010 010 001 100 010 rl0 001
lll
I
I
2
2
3
3
Figura 2-6 Circuitosecuencial queusaun registroy una ROM EJEMPLO Z-2: Repítase el Ejemplo T_1 p€ro úsese ahora una ROM y un registro. La ROM puede usarse para configurar el circuito combina_ cional y el registro suministiará los nfo-nops. El número de entradas de la RoM es igual ar número ae nii-rtops más el número de ent¡adas externas. El número de saridas de ia RoM es igual al nilmero de flip-flops más el número de salidas externas. En este caso se tienen tres entradas y tres salidas de ra RoM; de tar forma que su tamaño puede ser de g x 3. La configuración se muestra en la Figura 7-6. La tabla de verdad de la RdM es idéntica a la .,entradas,, tabla de estado."o." especifican:":t_4o presente" y do la dirección de la RoM y él "estado.ig,ri".,tr;y las,,salidas,, que especifican las salidas de la RoM. Los valores del estado si_ g'iente deben ser conectadosde las salidas de la RoM a las en_ tradas del registro.
7-3
R E G I S T R ODSE D E S P L A Z A M I E N T O
Un registro capaz de desplazar su información binaria hacia la izquierda o hacia la derecha se llama registro de desplazamiento. ia confieuración 272
sEc.7-3
R E G I S T R OD SE DESPLAZAMIENTO 273
lógica de un registro de desplazamiento consiste en una cadena de flipflops conectados en cascada, con la salida de un flip-flop conectado a ia entrada del siguiente. Todos los flip-flops reciben un pulso de reloj común el cual causa el deplazamiento de un estado al siguiente. El registro de desplazamiento más sencillo es aquel que usa solamente flip-flops como se muestra en la FiguraT-i.La salida Q de un flip-flop dado, se conecta a la entrada D del flip-flop a la derecha. Cada pulso de reloj desplaza el contenido del registro un bit en posición a Ia derecha. La entrada seríal determina qué va en el flip-flop de la extrema izquierda durante el desplazamiento. La salida seriaL se toma de la salida dei flip-flop de la extrema derecha después de la aplicación de un pulso. Aunque este registro desplace su contenido a la derecha, si se voltea la página se observa que el registro desplaza su contenido a la izquierda. Así un registro de desplazamiento unidireccional puede funcionar como un registro de desplazamiento a Ia derechao a Ia izquierda. El registro en la F'igura 7-7 desplaza un contenido con cada pulso de reloj durante el flanco negativo del pulso de transición. (Esto es indicado por el pequeño círculo asociado con la entrada de reloj en todos los flipflops.) Si se requiere controlar el desplazamiento de tal manera que ocurra solamente con ciertos pulsos pero no con otros, se debe controlar el term i n a l C P d e l r e g i s t r o . S e m o s t r a r á m á s a d e l a n t e , q u e l a s o p e r a c i o n e sd e desplazamiento pueden ser controladas a través de las entradas D de los flip-flops en vez de a través del terminai CP. Si se usa el registro de la Figura 7-7 se puede controlar el desplazamiento por medio de una compuerta AND como se muestra a continuación. Trasferencia en serie Se-,dice que un Si;!e-¡4e digital operq en modo serie cuando la información seJrasfieie.y,g.e ^á"ipu1á-un bit ea cadá iiempo. EI conte"iaó a" un"registro se trasfiere a otro desplazando los bits de un registro al siguiente. La información se trasfiere bit a bit, uno cada vez desplazando los bits del registro fuente hacia el registro de destino. La trasferencia en serie de la información del registro A al registro B se hace con registros de desplazamiento, como se muestra en el diagrama de bloque de la Figura 7-8(a). La salida serial (S0) del registro A va a la entrada serial (SI) del registro B. Para prevenir la pérdida de información almacenada en el registro fuente, al registro A se le hace circular su información conectando la salida serial a su terminal de entrada serial. El conEntrada serial
Salida serial
Figura
7-7
Registro de desplazamientcr
274
R E G I S T R O SC,O N T A D O R E Y S U N I D A DD E M E M O R I A
CAP. 7
tenido inicial del registro B es desplazado hacia afuera a través de su salida serial y se pierde a no ser que se desplace a un tercer registro de desplazamiento. La entrada de control de desplazamiento determina cuándo y cuántas veces se desplazan los registros. Esto se hace por medio de la compuerta AND que permite pasar los pulsos de reloj a Ios terminales CP solamente cuando el control de desplazamiento es 1. Supóngase que los registros de desplazamiento tienen cuatro bits cada uno. La unidad de control que supervisa la trasferencia debe ser designada de tal forma que habilita los registros de desplazamiento por medio de la señal de control, para una duración de tiempo fija igual a cuatro pulsos de reloj. Esto se muestra en el diagrama de tiempo de la Figura 7-8(b). La señal de control de desplazamiento se sincroniza con el reloj y cambia su valor justamente después del flanco negativo del pulso de reloj. Los siguientes cuatro pulsos de reloj encuentran la señal de control de desplazamiento en el estado 1, de tal manera que Ia salida de la compuerta AND conectada a los terminales CP, producen los cuatro pulsos Tr, Tr, Tz y ?r. El cuarto pulso cambia el control de desplazamiento a 0 y los registros d e d e s p l a z a m i e n t os e i n h a b i l i t a n . Asúmase que el contenido binario de A antes del desplazamiento es 1011 y que el de B es 0010. La trasferencia en serie de A a B ocurrirá en
+
L
Reloj Cont¡ol de desplazamiento
(a) Diagrama de bloque I
I
I Cont¡ol de d6plazamiento
*
[LfLfLft Tl
T2
T3
T4
(b) Diagrama de tiempo Figura
7-8
Trasferencia en serie del registro A al registro B
SEC.7-3
R E G I S T R OD SE DESPLAZAMIENT2 O7 9
muestra en la Figura 7-10. El bit de arrastre del sumador completo se trasfiere al flip-flop D. La salida de este flip-flop se usa entonces como arrastre de entrada para el siguiente par de bits significativos. El contenido de los dos registros de desplazamiento se desplaza a la derecha por un período de un tiempo palabra. Los bits de suma de Ia salida S del sumador completo pueden ser trasferidos a un tercer registro de desplazamiento. Desplazando la suma a A mientras que los bits de A se desplazan hacia el exterior, es posible usar un registro para almacenar el sumando y los bits de suma. La entrada serial (SI) del registro B es capaz de recibir un número binario nuevo mientras que los bits de suma se desplazan hacia afuera durante la suma. La operación del sumador en serie es como sigue. Inicialmente, los registros A almacenan el sumando, el registro B almacena el otro sumando y el flip-flop de borrado se lleva a 0. Las salidas seriales (SO) de A y B suministran un par de bits significativos para el sumador completo en r y y.La salida Q de los flip-flops da el arrastre de entrada z. El control de desplazamiento a la derecha habilita ambos registros y el flip-flop del bit de arrastre; de esta manera, en el siguiente pulso de reloj ambos registros se desplazan a la derecha, el bit suma de S entra en el flip-flop de la extrema izquierda de A, y el arrastre de salida se trasfiere al flip-flop Q.Ei control de desplazamiento a Ia derecha habilita los registros por un núme. ro de pulsos de reloj iguales al número de bits en los registros. Para cada pulso de reloj sucesivo, se trasfiere un bit suma nuevo a A, un nuevo bit de arrastre a Q y ambos registros se desplazan una vez a la derecha. Este proceso continúa hasta que el control de desplazamiento a la derecha se
Desplazar de¡echa ap
Figura
7-1O
Sumador en serie
2&
REGISTRoS C,o N T A D o R E S Y U N I D A DD E M E M o R I A
CAP.7
inhabilita. Así, se lleva a cab. la suma pasando cada par de bits coniu.lamente con ei arrastre previo a través de un circuitci sumador compieto sencillo y trasfiriendo ia suma, un bit a ia vez, al registroA. s i e l n ú m e r o n u e v o t i e n e q u e a g r e g a r s ea i c o n t e n i d o d e l r e s i s t r o ;{. este número debe ser trasferido primero en serie al registro É. Repitienclo el proceso u.a vez más se agregará el segundo númeio ar ,úmeri previo en A. comparando el sumador en serie con el sumador en paralelo descritr.r e n . l a s e c c i ó n 5 - 2 , s e n o t a n l a s s i g u i e n t e s d i f ' e r e n c i a s .E l sumador en paralelo debe usar re.gistros con capacidad de carga en pararelo, mientras que el sumador serial usa registroi de desplazam]ento. b-l-,rú.¡".n cie circuitos del sumador completo en er sumadoi en paralelo es igual al númercr de bits en los números binarios, mientras qrr" él sumador en serre requiere soiamente un ci¡cuito sumador completo y un flip-flop para el arrastre. I'')xcluyendo los registros, el sumado. er.rpaialelo es un'circuito combinacional, mientras que el sumador en serie es un circuito secuencial. El circuito secuencial en el sumador serial consiste en un circuito sumador completo y un flip-flop que acumula el arrastre de salida. Esta es una oper.ació.nen serie típica porque ei resurtado de una operaci¿" de un tiempo de bit, puede depender no soramente en las entradai p.".."t.. sino en Ias entradas previas. Para mostrar que las operaciones de un tiempo der bit en los computa. d . o r e se n . s e r i e r e q u i e r e n u n c i r c u i t o s e c u e n c i a l , s e d i s e ñ a r á el sumador se_ rial considerandoel circuito secuencial.
EJEMPLO 7-3.. Diseñar un sumador en serie usando el procedimiento de lógica secuencial. Primero se debe estipular que dos registros de desplazamiento están disponibles para almacenar los números binaiios que se agregan serialmente. Las salidas seriales de ios registros se designan con las variables r y -1. El circuito secuencia"iqu"-." rru u diseñar no incluirá registros de desplazamiento,se colocaran mas tarde para mostrar la unidad completa. El circuito secuenciar adecuado tiene dos entra-das, x y ,- que suministran un par de b.its s^ignificativos, una salida s que"genera los bits ,;-u t ót rtip_ flop Q para almacenar el arrastre. EI estado p..runt, áu"q rrr,ninistra.el valor presente del arrastre. El pulso áe reloi q.r, airpturu el registro habilita el flip-flop e para cargar el arrástre nuevo. Este arrastre es usado con el siguiente par de bits en x y y. La 3!13 de estado que especifica el circuito secuenciar se da en ra Tabla 7-3. El. estado presente de Q es el valor presente del arrastre (car_ ry) El arrastre presente en Q se ugrega conjuntamente con Ias entradas r y y para producir el bit suáa en la salida S. EI siguien_ te estado de Q es equivalente al arrastre de salida. Nótese que las entradas de la tabla de estado son idénticas a ras entradas en la tabla de verdad del sumador completo excepto que el arrastre de entrada (input carry) está ahorá presente en el estado o
&
I
"tabla
Estado presente
7-3
Tabla de excitación para rrn sumador en serie
Entradas
Estado siguiente
Salida
a 0 0 0 0 I I I
I
FJip-flops de entrada JQ
000 010 100 lll 00Ó 0ll i0l lll
0 I
OX
I I
OX IX X1 XO XO XO
0 I
0 0 I
KQ
0x
y el arrastre de salida (output carry) está ahora en el estado siguiente de Q. Si se usa un flip-flop D para Q, se obtiene el mismo circuittl que el de la Figura 7-10 debido a que los requerimientos de la entrada D son los mismos que los valores del siguiente estado. Si se usa un flip-flop JK paru Q, se obtienen los requerimientos de excitación de entrada listados en la Tabla 7-3. Las tres funciones de Boole de interés, son las funciones de entrada del flip-flop para JQ v KQ y la salida S. Estas funciones se especificanen la tabla de excitación y pueden ser simplificadas por medio de los mapas:
Figura
?-11
Segunda forma de un sumador en serie
2Bl
JQ:
,y
KQ:x'y':(x+y)' S:x@y@e como se muestra en la Figuru 7-!r, el circuito consisteen tres compuertasy un flip-flop JK. Los dos registrosde desplazamiento se incluyen también en el diagrama para mostrar el sumador completo en serie. Nóteseque la salida s es una función no solamente de r y y sino también del estadopresentede Q. EI siguienteestado de Q es una función de valores presentesde r y ), que resultan de las salidas en serie de los registrosde desplazamiento. 7-4
C O N T A D O R E SD E R I Z A D O
Los contadoresMSI vienen en dos categorías:contadoresde rizado y contadoressincrónicos.En un contadorde rizado, la transiciónde salida del flip-flop sirve como fuente para disparar los otros flip-flops. En otras palabras las salidas cP de todos los flip-flops (con excepciónde la primeraI se disparan no por los pulsos de entrada sino por la transició. q.te ocurre en los otros flip-flops. En un contador sincrónico, los pulsos de entrada se aplican a todas las entradas CP de todos los flip-flops. El cambio de estado de un flip-flop en particular es dependientedel estado plesente de otros flip-flops. Los contadoresMSI sincrónicosse discuten en la siguiente sección. Aquí se presentan algunos contadorescomunes de rizado MSI v se explica su operación. Contador binario de rizado un contadorbinario de rizado consisteen una conexiónen serie de flipflops complementarios(tipo 7 ó JK), con Ia salida de cada flip-flop "o.r."tado a la entrada cP del siguiente flip-flop de mayor orden. El ?tip-nop que almacena el bit menos significativo recibe los pulsos de cuenta ,1" "t-trada. EI diagrama de un contador de rizado binaiio de 4 bits se muestra err la F-igura7-12. Todas las entradas J y K son iguales a l. El pequeñ,r círculo en la entrada CP indica que el flip-flop se complementaduiante Ia transición del flanco negativoo cuandr¡la salida a la cual está conectada
Figura
282
7-12
Contador binario de rizado de 4 bits
.E Tabla
7-4
Secuencia de cuenta A4
A3
A2
ComplementarAt ComplementarAt ComplementafA, ComplementarA,
f-\^l
0l
A l irá de 1 a 0 y complementa A2 ;
ComplementarA,
0 -'lo C o m p l e m e n t a r A ,
f
Complementar At Complementar At
0lll
^A^l 1000
A . l irá de 1 a 0 y complementaA2
A 2 irá de 1 a 0 y complementa.4,3
0r00 I
Condiciones para complementar los flip-flops
AI
0000 0001 0010 00ll
0
r¡t i1
Secuencia de cuenta para un contador binario de rizado
I
A l irá de 1 a 0 y complementa A,
A I irá de 1 a 0 y complemerti: 1,, ; A 2 i r á d e 1 a 0 y c o m p l e r n e r i i aA 1 : A3 irá de 1 a 0 y complemenra,4,
y así sucesivamente
va de 1 a 0. Para entender la operación de un contador binario, se debe' hacer referencia a la secuenciade cuenta dada en la Tabla 7-4. Es obvio que el bit de más bajo orden A, debe ser complementado con cada pulso de cuenta. Cada vez que A, va de 1 a 0, este complementa Ar. Cada vez q u e 4 2 v a d e 1 a 0 , e s t e c o m p l e m e n t a , 4 3 y a s í s u c e s i v a m e n t e .P o r e j e r n plo. tómese la transición desde la cuenta 0111 hasta 1000.Las flechas en Ia tabla enfatizan las transiciones en este caso. A, se complementa con el pulso de cuenta. Como .41 va de 1 a 0, este dispara 42 y lo complementa. Como resultado, A2 va de 1 a 0, lo cual a su turno complementa A,. A.¡ va de 1 a 0, Io cual complementa Ar. La transición de salida de A.,,.si se conecta al siguiente estado, no dispara el siguiente flip-flop ya que ésta va desde 0 hasta 1. Los flip-flops cambian cada uno a su tiempo en rápida cadencia y la señal se propaga por el contador a manera de rizo. Los contad o r e s d e r i z o s e l l a m a n a l g u n a s v e c e s c o n ¿ o d o r e sa s i n c r ó n i c o s . Un contador binario con una cuenta invertida se llama un contador bínario decreciente. En este contador la cuenta binaria se disminuye en 1 con cada pulso de cuenta de entrada. La cuenta de un contador decreciente de 4 bits comienza con el binario 15 y continúa con las cuentas binarias 7 4 , 1 , 3 ,1 2 , , 0 p a r a p a s a r d e n u e v o a 1 5 . E l c i r c u i r o d e l a F i e u r a T - 1 2f u n c i o n a r á c o m o u n c o n t a d o r b i n a r i o d e c r e c i e n t es i l a s s a l i d a s s e t o m a n d e los terminales complementados Q' de todos los flip-flops. Si sólo están disponibles las salidas normales de los f lip-flops, el circuito debe ser modificado ligeramente de la forma descrita a continuación. Una Iista de una secuencia de cuenta de un contador binario decreciente muestra que el bit de menor orden debe ser complementado con cada pulso de cuenta. Cualquier otro bit en la secuenciaes complementado, si el bit previo de menor orden va de 0 a 1. Por tanto, el diagrama de un contador binario decreciente se ve de la misma forma que el de la Figu283
i: I
2A
REGISTROS C,O N T A D O R E Y S UNIDADDE MEMORIA
CAP. 7
ra 7-r2, teniendo en cuenta que todos los flip-flops se disparan con ei flanco positivo del pulso. (EI pequeñocírculo en la entrada CP debeestar ausente.) Si se usan flip-flops de disparo por flanco negativo, entonces la entrada cP de cada flip-flop debe estar conectadaa Ia salida Q' del flipflop anterior. Entonces cuando Q vaya de 0 a 1, Q, irá de 1 a 0 y se complementará el siguienteflip-flop como se requiere. Contador BDC de rizado un contador decimal sigue una secuenciade diez estadosy regresaa 0 después de Ia cuenta de 9. Tal contador debe tener por Io menos cuatro flipflops para representar cada dígito decimal, como un dígito decimal se representapor medio de un código binario con cuatro bits al menos. La secuenciade estadosen un contador decimal se deduce del código binario usado para representarun dígito decimal. Si se usa BDC, la secuenciade estadoses como se muestra en el diagrama de estado de la Figura ?-18. Esto es similar a un contador binario, excepto que el estado despuésde 1001 (código para el dígito decimal 9) es 0000 (códigopara el dígilo decimal 0).
@-o-@-@-@
ir it
@-@-@-@*@ Figura 7-13 Diagrama de estado de un contador BDCdecimal El diseño para un contador de rizado decimal o para cualquier contador de rizado que no siga la secuenciabinaria no es un procedlmientodirecto. Las herramientasformalesdel diseño lógico puedenservir solamente com-ouna guía. Un producto satisfactoriamenteacabadorequiere la ingenuidad e imaginación del diseñador. El diagrama lógico de un contador de rizado BDC se muestra en la Figura 7-14.* Las cuatro salidas se designanpor el símbolo Q con un suscrito numérico igual a la cargabinaria del bit correspondienteen el código BDq Los flip-flops se disparan en el flanco negativo,es decir, cuando la señal cP va de 1 a 0. Nóteseque la salida de Q' es aplicada a las entradas cP de ambas Qz y Qs y Ia salida de Qz se aplica a la entrada cp de Q+. Las entradasJ y K se conectana una señal permanentede 1 a las salidas de los flip-flops como se muestra en el diagrama. un contador de rizado es un circuito secuencialasincrónicoy no puede ser descrito por ecuacionesde Boole desarrolladaspara desóribir circuitos secuencialestemporizados.Las señales que afectan la transición *Este
circuito es similar al CI tiDo 7490.
+
Figura
7-14
Diagrama lógico de un contador de rizado BCD
del flip-flop dependen del orden en el cual cambian de 1 a 0. La operación para las á.i .o"tua". puede ser explicada por una lista de condiciones diagrama del deducen se condiciones Estas flip-flops. los dl irarrriciones Iógico y del conocimiento de cómo opera un flip-flop Jll. Téngase en cuenta :\ y se pocu"attaola entrada CP va de 1 a 0, el flip-flop se pone a uno si J y s i n c a mbiosiJ: s e d e j a K 1 , s i J : ne a cefo si K:1, se complementa estado de de para transición la las condiciones soi siguientes K--0. Las cada flip-flop: 1. Qr se complementa en el flanco negativo de cada pulso de cuenta. 2. Q2 se complementa si Q, :0 y Q' va de I a 0' Q: se borra si Qt :1YQr vadela0' 3. Qn se complementa cuando Qz va de 1 a 0' 4. Qe se complementa cuando QnQ,r : 11 y Qr va de 1 a 0' Qt se borrasiQ, óQ2 es0YQr vadela0' Para verificar que estas condiciones resultan en Ia secuencia requerida por un contadoi de rizado BDC, es necesario verificar que las transi-
L-rL-n-[
Pulsos de conteo
Ql
n,o o [--l-ln
o IT--'_lo
-r--l
Q4
Or o
o
o
o
o -j--!---qji
I
tg
Figura?-lsDiagramadetiempoparaelcontadordecimaldelaFiguraT-14
285
Qs Qa Q2 Q1
I o 2 dígito Figura
7-16
lo
I
dígito
Qa Q¿ Qz Qt
too dígito
Diagrama de bloque de un contador BDC decimal de 3 décadas
ciones del flip-flop sigan ciertamente una secuencia de estados como se especifica por el diagrama de estado de la Figura ?-13. Otra manera de verificar la operación del contador es deducir el diagrama de tiempo para cada flip-flop de las condiciones listadas anteriormente. Este diagrama se muestra en la Figura 7-15, con los estados binarios listados después de cada pulso de reloj. Q1 cambia de estado después de cada pulso de reloj. Q2 se complementa cada vez gue Qr va de I a 0 durante el tiempo en que Q, :0. Cuando Q¡ se vuelve 1, Q2 permanece en 0. Qn se complementa cada vez eue Qz va de 1 a 0. Q* permanece en puesta a cero durante el tiempo en que Q, ó Q, es 0. Cuando arnbas Qz y Q* se convierten en 1, Q, se complementa cuando Q, vaya de I a 0. Q¡ se pone a cero en Ia siguiente transición de Q, . EI contador BDC de Ia Figura 7-14 es un contador en década, ya que cuenta desde 0 hasta g. Para contar en decimal de 0 hasta 99 se necesitan dos contadores en década. Para contar desde 0 hasta 999 se necesitan tres contadores en década. Los contadores multidécada pueden construirse conectando ios contadores BDC en cascada, uno para cada década. Un contador de tres décadas se muestra en la Figura 7-16. Las entradas de la segunda y tercera décadas vienen de Q* de la década previa. Cuando Qs en una década va¡ra de 1 a 0, esta dispara la cuenta para la década contigua de mayor orden mientras que su propia década va de g a 0. Por ejemplo, Ia cuenta siguiente a 399 será 400. 7.5
CONTADORES SINCRONICOS
Los contadores sincrónicos se distinguen de los contadores de rizado en que los pulsos de reloj se aplican a las entradas o terminales cP de todos los f'lip-flops. El pulso común dispara todos los flip-flops simultáneamente en vez de una a la vez en cadencia como en un contador de rizado. La decisión de cuándo se debe o no complementar un flip-flop se determina de los valores de las entradas J y K en el momento del pulso. Si J:K:0, el f l i p - f l o p p e r m a n e c es i n c a m b i o . S i J : K : I e l f l i p - f l o p s e c o m p l e m e n t a . Un procedimiento de diseño para cualquier tipo de contador sincrónico fue presentadoen la Sección 6-8. El diseño de un contador binario de 3 bits se llevó a cabó en detalle y se ilustra en la Figura 6-30. En esta sección se presentan algunos contadores típicos MSI sincrónicos y se explica su operación. Se debe tener en cuenta que no hay necesidadde diseñar un contador si se puede encontrar en la forma de CI comercial. 286
.l
Contador binario El diseño de contadores binarios sincrónicos es tan simple que no es necesario pasar por un proceso de diseño lógico secuencial riguroso. En un contador binario sincrónico, se complementa el flip-flop en la posición de menor orden con cada pulso. Esto significa que las entradas J y K deben , mantenerse en la lógica 1. un flip-flop en cualquier otra posición se complementa con un pulsq siempre y cuando todos los bits en las posiciones d" tnenot orden sean iguales a 1, porque los bits de menor orden (cuando están dados en 1) cambiarán a 0 en el siguiente pulso de cuenta. La cuenta binaria dice cuando el siguiente bit de mayor orden debe ser complementado. Por ejemplo, si el estado presente de un contador de 4 bits es A ABAI,A:: 0011, la siguiente cuenta será 0100. At se complementa A¡ se siempre. 4, se complementa porque el estado presente de Ar:1. s e comA r n o P e r o p r e s e n t e A 2 A r : 1 1 . d e p o r q u e e l e s t a d o complementa plementa por el estado presentede A|A2A¡:011, Io cual no dará una condición de solo unos. L o s c o n t a d o r e s ' b i n a r i o ss i n c r ó n i c o s t i e n e n u n p a t r ó n r e g u l a r y p u e d e n fácilmente ser construidos con flip-flops conrplementados y compuertas' '1 EI patrón regular puede verse claramente del contador de bits ilustrado están conectaflip-flops los de todos CP en ia FiguruT-ll. Los terminales fuente de pulsos de reloj común. La primera etapa A' tiene J y K áár á igual a"ü1 si el contadbr está habilitado. Las otras entradas J y K son iguales a 1 si todos los bits previos de menor orden son iguales a 1 y se habilita la cuenta. La cadena de compuertas AND generan la lógica necesaria para Ias entradas J y K en cada etapa. El contador puedeexpandirsea cualquier número de etapas; cada etapa contendrá un flip-flop adicional y una compuerta AND que da una salida de 1si todas las salidas de los flip-flops previos son 1. Nótese que los flip-flops se disparan con el flanco negativo del pulso. Esto no es esencial aquí como lo fue en el contador de rizo. El contador podría haberse disparado en el flanco positivo del pulso'
Contador binario creciente-decreciente E n u n c o n t a d o r b i n a r i o s i n c r ó n i c o c r e c i e n t e - d e c r e c i e n t ee l f l i p - f l o p e n l a posición de menor orden se complementa con cada pulso. un flip-flop en iualquier otra posición se complementa con un pulso siempre y cuando todos los bits de menor orden sean iguales a cero. Por ejemplo, si el estad o p r e s e n t e d e u n c o n t a d o r b i n a r i o d e 4 b i t s c r e c i e n t e - d e c r e c i e n t ee s A l A 3 A 2 A t : 1 1 0 0 , l a c u e n t a s i g u i e n t e s e r á 1 0 1 1 .A , s i e m p r e s e c o m p l e menta. A, se complementa porque el estado presente de A, :0. A¡ se complementa porque el estado presente de ArAl :00. Pero Aa no se complementa porque el estado presentede A, A2At:100, el cual no es una condición de soio ceros. U n c o n t a d o r b i n a r i o c r e c i e n t e - d e c r e c i e n t ep u e d e s e r c o n s t r u i d o c o m o se muestra en Ia Figura 7-17, excepto que las entradas de las compuertas AND deben venir de las salidas complementadasde Q' y no de las salidas 287
_i
6.ú
t-
c a
O
r.
¡! !¡
<,J
288
o
@
O
a o o 4
(, @
¡. L b!
6:x < úr ;o j
289
2 9 O R E G I S T R OCSO, N T A D O R Y E SU N I D A DD E M E M O R I A
C A P .7
t l
normales Q de l.s flip-flops previos. Las dos operaciones se pueden combinar en un circuito. un contador binario d" contar hácia arriba o pu, hacia abajo se muest¡a, en la Figura T-1g. Los" ufiip-flops r empleados en este circuito pueden considerarse como flip-flops JK coi los terminales J v K unidos entre sí. cuando la entrada del cóntrol creciente es 1, el circulio cuenta hacia arriba, ya que las entradas ? se determinan a partir de los valores previos de las salidas nori:iales en e. cuando la entráda del control decreciente es 1, el circuito contará hácia abajo, ya que las salidas complementadas Q' determinan los estados de las eniradás ?'. cuando a m b a s s e ñ a l e s c r e c i e n t e y d e c r e c i e n ú es o n 0 , e l r e g i s t r o n o c a m b i a de est a d o p e r o p e r r n a n e c ee n l a m i s m a c u e n t a .
Contador BDC un contador BDC cuenta en binario decimal codificado desde 0000 hasta 1001 y de vuelta a 0000. Debido al regreso a 0 después de la cuenta de g, un contador BDC no tiene un patrón regular como el contador binario directo. Para diseñar el circuito de un contador sincrónico BDC es necesario pasar por un procedimiento de diseño como el discutido en Ia Sección 6-8. L a s e c u e n c i ad e c u e n t a d e u n c o n t a d o r B D C s e d a e n l a T a b l a 7 - 5 . L a excitación para los flip-flops ? se obtienen de la secuencia de cuenta. Una salida y se rnuestra también en la tabra. Esta salida es igual a 1 cuanclo el contador de estado presente es 1001. De esta manera, v'p.,"de habilitar la.cuenta-de -la siguiente década de mayor orden mientias que el mismo pulso cambia la presente década de 1001 a 0000. Las funciones de entrada del flip-flop de la tabla de excitación pueden ser simplificadas por me_diode los mapár. Los estados sin usar pára los términos mínimos 10 a 1b se toman como términos de no importa. Las funciones simplificadas se listan a continuación: TQt:
I
rQz: QáQ' TQq:
QzQt
TQa:
QaQt + QoQrQt
y :
QeQt
El circuito puede dibujarse fácilmente con cuatro flip-flops z, cinco compuertas AND y una compuerta OR. Los contadores sincrónicos BDC pueden conectarse en cascada para lbrmar un contador para los números decimares de cualquier longitud. La c o n e x i ó n e n c a s c a d as e h a c e c o m o e n I a F i g u r a T - 1 6 e x c e p t o q u e l a s a l i d a 1, debe ser conectada a la entrada de cuenta" de la décadá siguiente de mávor orden.
Tabla
7-5
Secuencia de cuenta Qa
Qo
0000 0001 0010 00ll 0100 0l0l 0ll0 0lll 1000 l00l
Qz
Qt
Tabla de excitación para un contador BDC
Entradasdel flip-flop TQa
TQo
0001 00ll 0001 0lll 0001 0011 0001 llll
0001 1001
TQz
Arrastre de salida
TQt
0 0 0 0 0 0 0 0 0 I
Contador binario con carga en paralelo Los contadores usados en los sistemas digitales a menudo requieren una condición de carga en paralelo para trasferir un número binario inicial antes de la operación de conteo. La Figura 7-19 muestra el diagrama lógico de un registro que tiene una característica de carga en palalelo y puede operar también como un contadol.* La entrada de control de carga, cuando es igual a 1, inhabilita la secuencia de cuenta y causa la trasf'erencia de datos 1' hasta 1., a los flip-flops 41 hasta Aa respectivamente. Si la entrada de carga es 0 y la entrada del control de cuenta es 1, el circuito opera como un contador. Los pulsos de reloj causan entonces cambios del estado de los flip-flops de acuerdo a la secuencia de cuenta binaria. Si ambas entradas de control son 0, los pulsos de reloj no cambian el estado del registro. El terminal de salida del arrastre se convierte en 1 si todos los flipflops son iguales a l mientras se habilita Ia entrada de cuenta. Esta es una condición para complementar los flip-flops que almacenan el bit siguiente de mayor orden. Esta salida es útil para expandir el contador a más de cuatro bits. La velocidad del contador se aumenta si se genera el arrastre directamente de las entradas de todos los flip-flops en vez de ir a través de una cadena de compuertas AND. De manera similar, cada flip-flop se asocia con una compuerta AND que recibe todas las salidas de los flipflops anteriores diréctamente para determinar cuándo el flip-flop debe ser complementado. La operación del contador se resume en la Tabla l-6. Las cuatro entradas dé control: borrado, CP, carga y cuenta determinan el siguiente estado de salida. La entrada de borrado es asincrónica y cuando ésta es 0, causará que el contador sea puesto a cero, independientemente de la presencia de los pulsos de reloj de otras entradas. Esto se indica en la *Esto
es similar pero no idéntico al CI tipo 74161.
292 REGISTRO CSO,N T A D O RYE S U N I D A DD E M E M O R I A
C A P ,7
tabla por medio de las entradas X, Ias cuales sirnbolizan las condiciones de no_importa para las otras entradas, bien sea que su valor sea 0 ó 1. La entrada de borrado debe ir al estado de 1 para Las operaciones temporizadas listadas en las siguientes tres entradas en ia tabla. con las eniradas de carga y, cuenta iguales a 0, las salidas no cambian bien sea que se aplique un pulso en el terminal CP o no. ttna entrada.de carga d e 1 - c a u s au n a trasf'erencia de las entradas /1 a 1., al registro durant'e el flarrco posi_ ti.'o de un pulso de entrada. La información de entrada se carga a un regiritro a pesar del valor del terminal de cuenta, porque la entracla de cuenta se inhibe cuando el terminal de carga es 1. Sl ei terrninal de cuenta se mantiene er.r 0, Ia entrada de cuenta controla la operación del contador. l,as salidas cambia' a Ia siguie'te cuenta binaria, en la transición dei flanc'positivo de cada pulso de reloi, pero no ocurre ningún cambio de estadc si la entrada de cuenta es 0. El contador de 4 bits mostrado en la Figura 7-19 puede encapsularse en un ci. Se necesitan dos cI para la construcción clé un contador de g b i t s : - c u a t r o c I p a r a u n c o n t a d o r d e 1 6 b i t s y a s í s u c e s i v a m e n t e .E l a r r a s tre de salida de u;: cI debe ser conectadoal ierminal de cuenta del cI que almacena los cuairo bits siguientes de mayor orden del contador. Los contadores con la característica áe carga en paralelo que tienen un número especifico de bits son muy útiles en el disóño de ioi sistemas digitales. Más tarde se tratarán como registros con carga y característi, cas de incremento. La función de incremento es u.ru op"ru"ión que agrega 1 al contenido presente del registro. Al habilitar el control de cuentá d.-urante el período de un pulso de reloj. er contenido del registro se puede incrementar en 1. un contador con- carga en paralelo puede ser usado para generar cualquier número deseable de secuencias de cuenta. un co'lador de r\ módulos (abreviado en inglés mod N) es un contador que pasa por una secuencia repetida de N cuentas. Por ejemplo, un contadór binarió de 4 bits es un contador de 16 módulcrs(mod-16 counter). Un contador BDC es un conta_ d o r d e 1 0 m ó d u l o s ( m o d - t O c o u n t e r ). E n a l g u n a s a p l i c a c i o n e s , s e p u e d e . no estar interesado ccn ios ly' estados particulare. qúe uru el contaáor de \' ¡nódulos. Si este es el caso, entonce; el contador con carga en paralelo puecte usarse para co;rstruir cualquier cc¡ntador de l/ módulos, siendo ly' c'ralquier valor escogirio. Esto se explica en el siguiente ejemplo. EJEMPLa z-4: construir un contador de 6 módulos usando e l c i r c u i t o M S I e s p e c i f i c a d oe n l a F i g u r a 7 _ l g . La Figura 7-20 muestra cuatro maneras en las cuales un contador con carga en paralelo puede usarse, para generar una se_ cuencia de seis cuentas. En cada caso el contro-l de cuenta se lleva a 1 para habilitar la cuenta por medio de los pulsos en la entrada cP. Se usa también el hecho de que el control de carga inhibe la cuenta y que la operación de borrado es independiente áe otras entradas de control. _ La compuerta AND en la Figura r-2a@) detecta Ia ocurrencia del estado 0101en la salida. cuando el contador está en este esta_ do, la entrada de carga es habilitada y todos los ceros de entrada
il
Figura 7-19 Tabla 7-6
Borrado
Contadorbinario de 4 bits con cargaen paralelo
Tabla de función para el contadorde Ia Figura 7-9
CP
Carga
X X 1
x
t
0 I 0
Conteo
X 0 X I
Función
Borrar a 0 No cambiar Cargar entradas Contar siguienteestadobinario
.-:
i,u :
r¡ r- l ZJJ
i, r T1
kt
294
i
R E G I S T R OC SO , N T A D O R EYS U N I D A DD E M E M O R I A
CAP
7
se cargan al registro. Así, el contador pasa por los estados binarios 0 , 1 , 2 , 3 , 4 y 5 p a r a r e g r e s a rl u e g o a c e r o . E s t o p r o d u c e u n a s e c u e n cia de seis cuentas. La entrada de borrado del registro es asincrónica es decir, que no depende del reloj. En la Figura 7-20(b), la compuerta NAND detecta la cuenta de 0110, pero tan pronto ocurra esta cuenta, el registro se borra. La cuenta 0110 tiene oportunidad de permanecer por algún tiempo porque el registro va inmediatamente a cero. Un pico momentáneo ocurre en la salida 42 cuando la cuenta va de 0101 a 0110 e inmediatamente a 0000. Este pico momentáneo puede.ser indeseable y por ello no se recomienda esta configrración. Si el contador tiene una entrada de borrado sincrónica, es posible borrar el contador con el reloj después cle ocurrir Ia cuen-
ta 0101. En vez de usar las primeras seis cuentas,se puede desear escogerlas últimas seis cuentas desde 10 hasta 1 5 . E n e s t e c a s o es posible tomar ventaja del arrastre de salida para cargar un
A
A3
''¿ Al
A ^ ^A3
Cuenta:
A
Al
I
Cuenta:
Borrado - I
+Carga:
CP
CP
Entradas- 0 Las entradas no tienen efecto ( a ) E s t a d o sb i n a r i o s 0 , 1 , 2 , 3 , 4 , 5
( b ) E s t a d o sb i n a r i o s 0 , 1 , 2 , 3 , 4 , 5 A4 A3
AA
A.
A
Cuenta: Contador de la Fig. 7-19 14
13
12
A1
I
Borrado - I Il
Contador de la Fig. 7-19
CP
t0l0
0011
(c) Estadosbina¡ios10,11,12.13,14,l5 Figura
A)
Al
7-2O
( d ) Estados binarios 3, 4, 5, 6,
Cuatro maneras de confizurar un contador de 6 módulos usando un contador con carga en paralelo
1 0
295 S E C U E N C ID AE ST I E M P O número en el registro. En la Figura i-20(c), el contador conietlza con la cuenta 1010 y continúa hasta 1111. El arrastre de s¡lida generado durante el último estado estable habilita el ct¡ntrt'l de i u r g" É u ,s e l c u a l c a r g a e n t o n c e s l a e n t r a d a q u e s e e s t a b l e c e a 1 0 1 ( ) . p o s i b l e t a m ¡ i ¿ n e s c o g e rc u a l q u i e r c o n t a d o r i n t e r m e d i O d e seis estádos. El conLador de 6 módulos de la Figur¿ l-l{'trd' pasa p o r l a s e c u e n c i ad e c u e n t a 3 , 4 , 5 , 6 , ? y 8 . C u a n d o s e l c ' g r ai a ú l t i m a c u e n t a 1 0 0 0 , l a s a l i d a A * v a a 1 y s e h a b i l i t a e l c r - , t ' t t r odl e c a r g a .E s t o c a r g a a l r e g i s t r o e l v a l o r 0 0 1 1 y l a c u e n t a b i n . r n a c o n tinúa a partir de este estado.
7 - 6 S E C U E N C I ADSE T I E M P O s n u n s i s t e m a d i g i t a l s e p r o d r r c ee n l a u l i i L a s e c u e n c i ad e l a s t . ' p e r a c i o n e e dad de control. L-A."unidadde con_trol que superviza las operactotresen un sistema dieital Cóiiilsti.ia normalmente en señales de tiemp<' que determ i n á " i a s ó c u e n c i a c l e t i e m p o e n l a c u a l s e e j e c u t a n l a s o p e r a c i c , t r e sL' a s s e ó u e . r ó i a ld e t i e m p o e n l a u n i d a d d e c o n t r o l p u e d e n g e n e r a r s ef á c i l m e n t e por medio de co¡t¿dores g registros de desplazamiento.Esta sección demuestra el uso de estas funciones MSI en la generación de señales de tiernpo para la unidad de control. Generación de un tiemPo de Palabra requerida Primero, se muestra un circuito que genera la señal de tienlpo la infbrd e s e r i e e t r L a t r a s f e r e n c i a ';r^o; ;u " i ;ó"n' m o d o d e o p e r a c i ó n " . t . " i i e . e n la Fii l u s t r a d o e j e m p l o u n c o n 7 3 , l a S e c c i ó n fue discutida en generar d e b e s e r i e e n g . c o m p u t a d o r e n u n c o n t r o l d e La unidad g"." r pulsos d e ina señol de tiempo de palabra que permanezca por un número de' La señal iÁuf"^t ul l-,ú-".o'de bits en los iegistros de desplazamiento' que '-tn cuencontador de por medio generada ti"-po de palabra puede ser ta el número requerido de Pulsos. generada Asitmase que una se¡al de tiempo de palabra que va 1 i9t. muestra 7 2 ( a ) F i g u r a debe permanecer por un período de ocho pulsos. La u n c o n t ador de I n i c i a l m e n t e un circuito contador que realiza esta tarea. f l i p f l o p e l p o n d r á a c e r o Q' La c o m i e n z o il bits se borra a 0. Unl señal de y p a l a b r a tamd e d e t i e m p o e l c o n t r o l s u m i n i s t r a salida de este flip-flop f l i p -f'lop p u l s o s , e l o c h o d e c u e n t a u n a d e D e s p u é s e l c ó n t a d o r . bién habilita 7 2 1 ( b )de F i g u r a l a d e ;; ;";; a cero y e va a 0. Ei diagrama rle tiemp. con s i n c r o n i z a s e c o m i e n z o d e s e ñ a l -rri.tru lu op".u.iór, del circuito. La q Y uq r e l o j ' , D e s p u é s d e p u l s o d e u n p e r í o d o d e p o r un el reloj y permanece el C u a n d o r e l o j ' p u l s o s d e l o s c o n t a r a c o m i e n z a contador ." po"!á u 1, p a r a d a " i d e .o¡tudi,. alcanza la cuenta de ? (binario ll1). enviará una señal parada convierse a la entrada de puesta a celo del f'lip-flop. La señal de siguiente l e e r " ,t d e s p u é sd e l a t r a n s i c i ó n p o r t l a n c o n e g a t i v o d e l n t r l s o 7 . E l a y borra también 000 Q. Ahora al estado ¡"-;"ir,j cambia el contadcir ;;il 0 ' N ó tese que p e r m a n e c e e n p a l a b r a d e e l t i e m p o h a b i l i t a s e ei conlador ,pulsosr' p e r í o d o o c h o d e ei control de tiempo de palabra permanecepor ull
296 REGISTRO CSO,N T A D O RYE S U N I D A DD E M E M O R I A
C A P .7
Nótese también que l.a señal de parada eneste circuito puede usarse para comenzar otro contror de cuenta de parabra en otro circuito justamente cuando se usa la señal de comienzo en este circuito. Señales de tiempo Fln.un modo paraielo de operación, un solo pulso de reloj puede especificar el tiempo durante el cuai puede ejecutar lu op".ació.r.-Lu'.il''iaua de control gn u.tt sistema digital que opera en el modo e., pa.ululo-d"b" g".r..ar señal-e1de que permanecen por un solo p.rioao á. pero esras se-tiempo ;"1;;, ñaies de tiempo deben distinguirse entre sÍ. Las señales de tiempo que controlan la secuencia de operaciones en un sistema d-igital pueden ser generadas con un registro de desplazamiento o un contador con un decodificador.un cr¡ntadorhe a n i t L oe . u n . e g i . t r o d e desplazamiento circular con sólo un flip-flop qu. ." porr""u ,.ru en un tiempo particular y todos los demás .e ponótr u ce.o. El solo bit se desplaza de un flip-flop a otro para prodúeir la-secuencia de señales de tiempo. La Fi_ gura 7-22(a) muestra un registro de desplazamiento de ¿-bit. conectados a un contad.r de anillo. El valor inicial del registro e s 1 0 0 0 ,l n proJu"" la variable 7',i. Fll solotit se desplaza a la de'rechu " u a l de pulso reloj y circula de nuevo de z, a 7,,. óada flip-flop está "o" en "uáu cle r, una vez cada cuatro pulsos de reloj y produce una de "l-".tuao las cuatro señales de tiem_ Comienzo
Control del tiempo de palabra
Habilita¡ cuenta
Contador de 3 bits
(a) I)iagrama del ci¡ct¡ito
c" 2 C o mi e n z o J
Pa ¡ada
?
| .-Tiempo de pala[ra
. g prrlsos*l-
(b) f)iag¡ama de tiempo Figura 7-21 Generación de un control de tiempo de palabra para operaciones en serie
sEc.7-6
SECUENCIAD S E fI'MPO 297
po mostradas en la Figura i-22(c). Cada salida se convierte en 1, después de la transición por flanco negativo de un pulso de reloj y permanece en 1 durante el siguiente pulso de reloj. Las señales de tiempo pueden ser generadas también por habilitación continr¡a de un contador de 2 bits que pasa por cuatro estados dif'erentes. El decodificador mostrado en la Figura i-22(b) decodifica los cuatro estados del contador y genera la secuencia requerida de las señales de tiempo. Las señales de tiempo, una vez que se habiliten por el pulso de reloj, suministrarán pulsos de reloj de múltiple fase. Por gjemplo, si I¡, se aplica con CP a una compuerta AND, la salida de la compuerta generalos pulsos de reloj de un cuarto de frecuencia de los pulsos de reloj maestros. Los pulsos de reloj de múltiple fase pueden ser usados para controlar diferentes registros con diferentes estados de tiempo. Para generar 2" señales de tiempo, se necesita o un registro de desplazamiento con 2" flip-flops o un contador de n bits con un codificador de n a 2" líneas. Por ejemplo, 16 señales de tiempo pueden ser generadas con un registro de desplazamiento de 16 bits conectados a un contador de a n i l l o o c o n u n c o n t a d o r d e 4 b i t s y u n d e c o d i f i c a d o rd e 4 a 1 6 l í n e a s . E n e l primer caso, se necesitan 16 flip-flops. En el segundo caso. se necesitan cuatro flip-flops y 16 compuertas AND de 4 entradas para el decodificador. Es posible generar las señales de tiempo con una combinación de registro de desplazamiento y un decodificador. De esta manera. el número de flip-flops es menor que en un contador de anillo y el decodificador requiere solamente compuertas de 2 entradas. Esta combinacion se llama algunas veces un contedor Johnson. Contador Johnson Un contador de anillo de ft-bits circula un solo bit por los flip-flops para suministrar A estados distinguibles. El número de estados pueden doblarse si el registro de desplazamiento se conecta como un contador de anillo de final conmutado (switch-tail ring counter). Un contador de anillo de de final conmutado es un registro de desplazamiento circuiar con la salida complementada del último flip-flop conectado a Ia entrada del primer flipflop. La Figura 7-23(a) muestra tal registro de desplazamiento. La conexión circuiar se hace de la salida complementada del flip-flop del extremo derecho a la entrada del flip-flop del extremo izquierdo. El registro desplaza su contenido una vez a la derecha con cada pulso de reloj y al mismo tiempo, el valor complementado del flip-flop E se trasfiere al flip-flop A. Comenzando de un estado de borrado, el contador de anillo de final conmutado pasa por una secuencia de ocho'estados de la manera Iistada en la Figura 7-23(b). En general un contador de anillo de final conmutado de A-bits pasará a través de una secuencia de 2ft estados. Comenzando en 0, cada operación de desplazamiento inyecta unos por la izquierda hasta que el registro se llene de sólo unos. En las secuencias siguientes, se inyectan ceros por la izquierda hasta que el registro se llene con 0. Un contador Johnson es un contador de anillo de final conmutado de A-bits con 2k compuertas decodificadoras para suministrar salidas para 2É señales de tiempo. Las compuertas decodificadoras no se muestran en
F :
(al Contadorde anillo lvalrlr inicial = 10001
To Tt
T)
T3
Decodificador 2x4
Habilita cuenta (b) Contador y decodificador
a"
a,
l--l
n
tl
T2 -,
( c ) S e c u e n c i a d e c u a t r o s e ñ a l e sd e t i e m p o Figura
298
7-22
Generación de señales de tiempo
1r (a) Contador de anillo de final conmutado de 4 estados
Salidasde flip-floPs Número de la secuencia A B C E
I 2 J
4 5 6 '7 8
C o m p u e r t aA N D r e q u e n d a para la salida
0000 1000 1100 lll0 llll 0l1l 00ll 0001
A'E' AB' BC' CE' AE A'B B'C C'E
requerida (b) Secuencia deconteoy decodificador Johnson contador un de Figura 7'23 Construcción columna de la tabla. Las ! a F i g- .uor*ap "?e-r2t 3 a ;p e r o s e e s p e c i f i c a n e n l a ú l t i m a v e z c o n e c t a d a sa l c i r c u i t o , u n a t a b l a , I a e n AND listadas o.to Como cada compuerta .Iohnson. contador del completa;án la construcción p a r t i c u lar, ias salidas de las e s t a d o d e s e c u e n c i a u n a d u r a n t e t a b l l i t a se e n cadencia' c o m p u e r t a s g e n e r a r á n o c h o s e c u e n c i a sd e t i e m p o final conmutado de de anillo La decodificación de un contador de patlón regular. El un sigue tiempo de k-bits para obtener 2h secuencias de los flipnormales salidas las tomando estado de sólo 0 se decodifica de un padecc'difican se estados otros los Todos extremos. füps de los dos 7 la secuencia ltá-" uáVu.ente de 1, 0 ó 0, 1 en la secuencia. Por ejemplo decodifisalrda y. La. C' B los flip-flops ii".r" ,r. patrón adyácente b, 1 ".t salida normal cada se obtiene entonces toáando el complemento de B ¡' 1a de C, ó B'C. encuenja del circuito en la Figura'i-23(al es que, sr se u n a d e s v e n t a-desconocido, válido no estado pasar un de persistirá en tra en un estado dificultad Esta r'álido. éstado a otro y nunca encontrará un óamino a un no Jer corregida modificando el circuito para er-itar esta condición ;";á; flipdel salida la desconectar es corrección de prócedimiento áeseable. IJn D del flip-flop C, y a cambio habilitar la entrada fl;t C que va u tu ""t.uaa del nip-¡1oo C por medio de la función:* *Esta es la maneraquese haceen el CI tipo'{022' 299
ii
:'
j
t
DC:(A+C)B donde DC es la funci_óndel frip-floppara la entrada D del flip-frop c. Los contadoresJ.ohnsonpuedón ser construidos con cualquier número de secuenciasde tiempo. Er núme.o de frip-fiáp;;;;;;;"s es la mitad del número de señalesdé tiempo. El número d" ;"-;;;;;;s decodificado_ ras es igual al número de señaiesde tiempo y solamente se emplean compuertasde 2 entradas. 7-7
LA UNIDAD DE MEMORIA
Los registros de un computador digital pueden ser clasificados der tipo operacionalo de almacenamiento.un circuito op"rii¡o"ol .rpu, de acu_ mular información binaria en sus flip-flops ". iiene compuerras I combinacionalescapacesde realizar taieas d" pro"..á*iento "a"-á. ae datos. un registrod,ealmacenamientose usa solamentepara el almacenamiento -or.a" tem_ poral de la información binaria. Esta i"ror-".iá" ser alterada cuando se trasfiere.hacia adentro y afuer" á.l ;ñri]'u'" "" unidad de memoria es una colección de registros de almacen";;;¿" conjuntamente con los circuitos asociados necesariospara trasferir información adentro y afuera de los registros.Los registrosde almacenamiento hacia en una unidad de memo¡ia se llaman registrosdé memoria La mayoría de-los registrosen un computadordigitar son registrosde memoria, a los cualesse t¡asfie¡e la információnpara ál-á""r,u-iento y de Ios cuales se obtiene la información necesariapara pro""ru-iento. .t comparativamente se encuen-tranpocos registros'operaci;";i;. en Ia unidad procesadora.cuando se lreva á cabo .I pro.".u'-i;;;il; datos, la información de en la unidad de memoria se trasfiere -los registrosseleccionados gri.merga tos registros operacionalesen l" ;;iJ;d Los resurtados intermedios y finaies que se obtienen en los;;";;;"r". registrosoperacionales se trasfieren de nuevo.a los registrosde memoria selecáonados.De manera similar, la información binaria recibida de los de entrada se almace-naprimero en..los registros de memoria. La "r"-á"Jo. información trasferida a los elementosde salida re tomu de los registrosen la unidad -i"gi.tros de memoria. . .El componenteque forma las celdas Éinarias a" rá. en una unidad de memo¡ia debe tener ciertas propiedadesbásicas, de las cuales las más importantes son: (1) debe tener una propiedad dependientede dos estados para la-representaciónbinaria. (2) d'ebé.., p"q.i.¡o en tamaño. (3) el costo por bit de almacenamientodebe ser lo -¿i ü4o posibre.(4) el tiempo de accesoal registro de memoria ¿eb" .ei ;;;;;üi.-ente rápido. Ejemplosde componentesde unidad de memoriason los núcleosmagnéticos, los cI semicondubtoresy las superficiesmagnéticas de las cintas, tambores y discos. una unidad de memoria almacena información bina¡ia en grupos lram1d9spalabras, cada palabra se armacenaen un registro de memoria. una palabra en la memoria es una entidad de n bits qu."." -u.ven hacia aden_ tro y afuera del almacenamientocomo una unidad'.u"u putuu.a de memoria puede representarun operando,una instrucción, o un gr"p" aa caracteres 3@
\
L A U N I D A DD E M E M O R I A3 0 '
S E C .7 . 7
alfanuméricos o cualquier información codificada binariamente. La comunicación entre una unidad de memoria y lo que la rodea se logra por medio de dos señales de control y dos registros externos. Las señales de control especifican la dirección de la trasferencia requerida, esto es, cuando una paiabra debe ser acumulada en un registro de memoria o cuando una paiabra almacenada previamente debe ser trasferida hacia afuera del registro de memoria. Un registro externo especifica el registro de memoria particular escogido entre los miles disponibles; el otro especifica la configuración de bits particular de la palabra en cuestión. Las señales de control y los registros se muestran en el diagrama de bloque de la Figura 1-21. El regístro de direcciones de memoria especifica la palabra de memoria seleccionada. A cada palabra en Ia memoria se Ie asigna un número de identificación comenzando desde 0 hasta el número máximo de palabras disponible. Para comunicarse con una palabra de memoria específica, su número de localización o dírección se trasfiere al registro de direcciones' Los circuitos internos de la unidad de memoria aceptan esta dirección del registlo y abren los caminos necesarios para seleccionar la palabra busca¿al Un iegistro de dirección con n bits puede especificar hasta 2" palabras de memoria. Las unidades de memoria del computador pueden tener un rango entre 1.024 palabras que necesitan un registro de direcciones de 10 bits, hasta 1.048.576:220 palabras que necesitan un registro de direcciones de 20 bits. Las dos señalcs de control aplicadas a la unidad de memoria se llaman de lectura y escritura. Una señal de escritura especifica una función de trasferencia entrante; una señal de lectura especifica una función de
UNIDAD DE MEMORIA lectu ra n palabras m bits por palabra
Señales de control escntura
Registro separador de memoria
ent¡ada
salida
Información Diagrama de bloque de una unidad Fig.ura 7-24 de memoria mostrando su cornunicación con lo oue Io ¡odea
U N I D A DD E M E M O R I A 3 0 2 R F G I S T R OCSO, N T A D O RYE S
C A P ,7
tr¿rsferencia saliente. Cada una es referenciada por la unidad de memoria. Después de aceptar una de las señales, los circuitos de control interno dentro de la unidad de memoria suministran Ia función deseada. Cierto tipo de unidades de almacenamiento, debido a las características de sus componentes, destruyen la información almacenada en una celda cuando se lea el bit de ella. Este tipo de unidad se dice que es una memoria de lectura destructible en oposición a una memoria no destructible donde la información permanece en la celda después de haberse leído. En cada caso, la información primaria se destruye cuando se escribe Ia nueva información. La secuencia del control interno en una memoria de lectura destructible debe proveer señales de control que puedan causar que la palabra sea restaurada en sus celdas binarias si la aplicación requiere de una función no destructiva. La información trasferida hacia adentro y afuera de los registros en la mernoria y al ambiente externo, se comunica a través de un registro común llamado (buffer register) registro separador de memoria (otros nombres son registro de informacíón y registro de almacenamiento). Cuando Ia unidad de memoria recibe una señal de control de escritura, el control interno interpreta el contenido del registro separador como Ia configuración de bits de la palabra que se va a almacenar en un registro de memoria. Con una señal de control de Lectura, el control interno envía la palabra del registro de memoria al registro separador. En cada caso el contenido del registro de direcciones especifica el registro de memoria particular referenciado para escritura o lectura. Por medio de un ejemplo se puede resumir las características de trasferencia de información de una unidad de memoria. Considérese una unidad de memoria de 1.024 palabras con ocho bits por palabra. Para especificar 1.024 palabras, se necesita una dirección de 10 bits, ya que 2to : I.024. Por tanto, el registro de direcciones debe contener diez flip-flops. El registro separador debe tener ocho flip-flops para almacenar los contenidos de las palabras trasferidas hacia dentro y afüera de Ia memoria. La unidad de memoria tiene 1.024 registros con .I.023. números asignados desde 0 hasta La Figura 7-25 muestra el contenido inicial de tres registros: el regis1r,¡ de direcciones de memoria, (MAR: memory address register) el registro separador de mem,rria (MBR: memory buffer register) y el registro de memoria direccionadc' por MAR. Como el número binario equivalente en l"{AR es el decimal 42, el registro de memoria direccionado por el MAR es uno con un número de dirección 42. L a s e c u e n c i a d e o p e r a c i o n e s n e c e s q r i a sp a r a c o m u n i c a r s e c o n I a u n i dg-{ de memoria para propósitos de traiferir una palabra hacia afuera dirigida al MBR es: 1. Trasferir los bits de dirección de la -palab¡a seleccionada al MAR. 2. Activar la entrada de control de lectura. Ei resultado de la operación de lectura se ilustra en la Figura 7-26(a).La información binaria almacenada hasta ei presente en el registro de memoria 42 se trasfiere al MBR.
D i r e c c i o n e¡s 0-1023
|
I
Unidad de memoria
43 0000101010
42
0-l0lll0
4l
Registro de direcciones de memoria (MAR)
40
10010010 Registroseparadorde memoria(MBR) Figura 7-25 Valoresinicialesde los registros La secuencia de operaciones necesarias para almacenar una nueva palabra a Ia memoria es: 1. Trasferir los bits de dirección de la palabra seleccionada al MAR. 2. Trasferir los bits de datos de la palabra al MBR' 3.-Activar
la entrada de control de e.scr¿tura'
El resultado de Ia operación de escritura se ilustra en Ia Figura 7-26(b)' Los bits de datos ¿ef VtgR se almacenan en el registro de memoria 42. En el ejemplo anterior, se asume una unidad de memoria con Ia propiedad de leciurá no destructiva. Tales memorias pueden ser construidas con CI semiconductores. Ellas retienen la información en el registro de memoria cuando el registro se catea durante el proceso de lectura de manera que no ocurre peraiaa de información. Otro componente usado comúnmente en Ias unidaáes de memoria es el núcleo magnébico. Un núcleo magnético tiene la característica de tener lecturas destructivas, es decir, pierde la información binaria almacenada durante el proceso de Iectura' 'Ejemplos de memorias de semiconductores y de núcleos magnéticos se presentan en la Sección 7-8' Debido a Ia propiedad de lectura destructiva, una memoria de núcleos magnéticos debe tener funciones de control adicionales para reponer la puláb.u al registro de memoria. Una señal de control de lectura aplicada de núcleos magnéticos trasfiere el contenido de la palabra u ,,rru -e-"riu registro externo y al mismo tiempo se borra el registro a un direccionada de memoria. La secuencia de control interno en una rnemoria de núcleos magnéticos suministra entonces señales apropiadas para causar la recuLa trasferencia de inforperáción 'mació" de la palabra en el registro de memoria. una operación de durante magnéticos de una memoria de núcleos enQ
í
"".*-l
O.memoria
I MAR = 42
MBR
i
0ll0lll0
MBR
(a) Operación de lectura Figura
7-26
I
I I
MAR = 42
01r0lll0
r
tinidad oe memorla
10010010
10010010
(b) Operaciónde escritura
Trasfe¡encia de inf<¡rmacióndu¡ante l a s o p e r a c i o n e s de lectura y escritura
Iectura se ilustra en la Figura 7-27. una operación de lectura destructiva trasfiere la palabra seleccionada al MBR pf." áu¡u de merrroria con puros ceros. La operación de memoria nor-ui "r-r"ái.tro requie-re que el conteni_ do de la palabra seleccionada permanezca en la me'moria después de la operación de lectura..por tanto, es necesario pasar p_ ;;" operación de recuperación que escribe el valor del MBR u" ,"ii.lrJ-d" ^"-oria se_ leccionada. Durante la operación de recuperación, "t los contenidos del MAR y el MBR deben permanecer invariables_ una entrada de control de escritura aplicada a una memoria ,le núcleos magnéticos causa una trasferencia de infbrmación comá- se muestra e., la Figura 7-28. Para trasferir la nueva información a un registro seleccionado, 9e de!9 primero borrar la inforrnación anterior borrando todos los bits de la palabra a 0. Después de hacer lo anterior, el conteniáo á"1 n4gn se puede trasferir a la palabra seleccionada. El MAR no debe cambiar durante la operación para-asegurar que la misma parabra ..i"""]""ra; q;-;;"il; borrado es aquella que recibe la nueva información
Unidad de memoria
MAR = 42
MBR
0l10llr0
00000000
0ll0l
I I 0
Cualquier cosa
01t01110
0l
I 10
Inicial Figtra
304
Uniüad de memoria
7-27
Lectura destructiva
l0l
Contenidorestaurado
T¡asferencia de información en una memorla de núcleos magnéticos du¡ante una operación de lectura
Unidad de memoria
MAR = 42
MBR
Figura
0r101110
Unidad de memoria
Unidad de memoria
00000000
r0010
10010010
r0010010
100 i0010
IInni icci ai la l
Palabra de borrado
Palabra de escritura
7-28
010
l'rasferencia de información en una memoria de núcleos magnéticos durante una operacion de escrrrura
una memoria de núcleo magnético requiere dos medios ciclos para leer o escribir. EI tiempo que se toma la memoria para cubrir los doi medios ciclos se llama tiempo de un ciclo de memoria. E l m o d o d e a c c e s od e u n s i s t e m a d e m e m o r i a s e d e t e r m i n a p o r e l t i p o de componentes usados. En una memoria de acceso aleatorio. se debe oensar que los registros están separados en el espacio, con cada registr., n"rjpando un lugar espacial particular en una memoria de núcleos magnéticos. E n u n a m e m o r i a d e a c c e s os e c u e n c i a l , l a i n f o r m a c i ó n a l m a c e n a d a e n a l s ú n medio no es accesibleinmediatamente pero se obtiene solamente en ciertos intervalos de tiempo. Una unidad de cinta magnética es de este tipo. Cada lugar.de la memoria pasa por las cabezasde lectura y escritura a la vez, pero la información se lee solamente cuando se ha logrado la palabra solicitada. El tiempo de acceso de una memoria es el tiempo requerido para seleccionaruna palabra o en la lectura o en la escritura. En una memoria de acceso aleatorio, el tiempo de acceso es siempre el mismo a pesar del l u g a r e n e l e s p a c i o p a r t i c u l a r d e l a p a l a b r a . E n u n a m e m o r i a s e c u e n c i a l ,e l tiempo de acceso depende de la posición de la palabra en el tiempo que se solicita. Si la palabra está justamente emergiendodel almacenamienlo en e l t i e m p o q u e s e s o l i c i t a , e l t i e m p o d e a c c e s oe s j u s t a m e n t e e l t i e m p o n e c e sario para leerla o escribirla. Pero, si la palabra por alprna razón está en l a ú l t i m a p o s i c i ó n , e l t i e m p o d e a c c e s oi n c l u y e t a m b i é n e l t i e m p o r e q u e r i d o para que todas las otras palabras se muevan pasando por los terminales. A s í , e l t i e m p o d e a c c e s oa u n a m e m o r i a s e c u e n c i a l e s v a r i a b l e . L a s u n i d a d e s d e m e m o r i a c u y o s ' c o m p o n e n t e sp i e r d e n i n f o r m a c i ó n a l m a c e n a d a c o n e l t i e m p o o c u a n d o s e c o r t a e l s u m i n i s t r o d e e n e r g í a ,s e d i c e q u e s o n u o L á t i l e s . U n a u n i d a d d e m e m o r i a d e s e m i c o n d u c t o r e se s d e e s t a categoría ya que sus celdas binarias necesitan potencia externa para mantener las señales necesarias. En contraste, una unidad de memoria no volátil, tal como un núcleo magnético o un disco magnético, retiene la información almacenada una vez que se haya cortado el suministro de energía. Esto es debido a\que la infbrmación acumulada en losrcomponentes magnéticos se manifigstan por la dirección de magnetizacion, la cual se retiene cuando se cor*,a la energía. una propiedad no volátil es deseable en los' computadores'digitales po.q.," muchás programas útiles se dejan perma-
'¡. {,, :'. , I
I
;"j
kil
3A6 REGISTRoS , N T A D o R E SY U N I D A DD E M E M o R I A co
CAP. 7
nentemente en la unidad de memoria. cuando se corte el suministro de energía y luego se suministre, los programas almacenados previamente y otra información no se pierden pero continúan acumulados en la memoria. 7-8
EJEMPLOS DE MEMORIA DE ACCESO ALEATORIO
La construcción interna de dos tipos diferentes de memorias de acceso aleatorio se presentan en fbrma de diagramas en esta sección. La primera se construye con flip-flops y compuertas y la segunda con núcleos magnéticos. Para poder incluir toda la unidad de memoria en un diagrama, se debe usar una capacidad de almacenamiento limitado. Por esta razón, Ias unidades de memoria presentadas aquí tienen una pequeña capacidad de 12 bits arreglados en cuatro palabras de tres bits cada una. Las mernorias de acceso aleatorio comerciales pueden tener una capacidad de miles de palabras y cada palabra puede estar en un rango de 8 a 64 bits. La construcción lógica de las unidades de memoria de gran capacidad serían una extensión directa de la configuración mostrada aquí. Memoria de circuito integrado La construcción interna de una memoria de acceso aleatorio de m palabras con n bits por palabra consiste en m X n celdas de almacenamiento binario y la lógica asociada para seleccionar las palabras individuales. La celda de almacenamiento binario es el bloque básico de construcción de una unidad de memoria. La lógica equivalente de una celda binaria que almacena un bit de información se muestra en ia Figura 7-2g. Aunque se muestra que la celda incluye compuertas y un llip-flop, internamente se construye con dos transistores que tienen múltiples entradas. Una celda de almacenamiento binario debe ser muy pequeña para poder comprimir tantas celdas como sea posible en la pequeña área disponible en la pastilla de circuito integrado. La celda binaria tiene tres entradas y una salida. La entrada de selección habilita la celda para lectura o escritura. Las entradas de lecturaT/escritura determinan la operación de Ia celda cuando esta es seleccionada. Un 1 en la entrada de lectura,/escritura fbrma un camino del flip-flop al terminal de salida. La información en el terminal de entrada se trasfiere al flip-flop cuando el control de lectura,/escritura es 0. Nótese que el flip-fiop opera sin pulsos de reloj y que su propósito es almacenar la información de bits en la celda binaria. Las memorias de circuitt¡ inregrado tienen algunas veces una sola línea para el control de lectura y escritura. Un estado binario en la sola Iínea especifica una operación de lectura y el otro estado especifica una operación de escritura. Además, se incluyen una o más líneas de habilitación para suministrar medios de seleccionar el cI y para expandir varias pastillas a una unidad de memoria con un gran número de palatrras. La construcción lógica de un CI RAM se muestra en la t'igura 7-30. Este consiste en 4 palabras de 3 bits cada una para un total de 12 celdas binarias. L o s p e q u e ñ o sr e c u a d r o s m a r c a d o s B C r e p r e s e n t a nu n a c e l d a b i n a r i a , y l a s t r e s e n t r a d a s y u n a s a l i d a e n c a d a B C s o n e s p e c i f i c a d a se n e l d i a e r a m a d e l a F i g u r a 7- 2 9 .
Selección
Salida
Entrada
L ectu ra,/esc rit u ra (a) Diagrama lógico
Selección
Salida
Entrada
Lectura,'' escrttura (b) Diagrama de bloque Figura
7-29
Celda de memoria
Las dos Iíneas de entrada de direcciones pasan px)r un decodificador de interno de 2 a 4 líneas. El decodificador se habilita con una entrada 0 , t o d as e s habilitación de memoria. Cuando la habilitación de memoria memoria palabras en ias y de ninguna las salidas del decodificador son 0 de s e s e l e c c i o n a n . c o n I a h a b i l i t a c i ó n d e m e m o r i a e n l . s e s e l e c c i o n au n a de direcciolÍneas las dos de valor del palabras, dependiendo ias cuatro palabra nes. Ahora, con el control de lectura,/escritura en I. los bits de Ia de terminales los hasta pasarán por las 3 compuertas OR ,.t...io"uda e n t r a d as l a s e n p r o d u c e n 0 salida. Las cóldas binarias no seleccionadas de el control Con salidas' las en ef'ecto y tienen no de las compuertas OR iectura/escritura en 0, la información disponible en las líneas de entrada s e t r a s f i e r e a l a s c e l á a s b i n a r i a s < l e l a p a l a b r a s e i e c c i o n a d a .L a s c e l d a s por sgs b i n a r i a s n o s e l e c c i o n a d a se n l a s o t r a s p a l a b r a s s o n i n a b i l i t a d a s s i n c a m b i a r' Con p e r m a n e c e n p r e v i o s y v a l o r e s e¡tradas de selección sus celdas l a s t o d a s d e c o n t e n i d o 0 , e l e n m e m o r i a d e h a b i l i t a c i ó n ei control de v a l or del d e l i n d e p e n d i e n t e m e n t e s i n c a m b i a r p e r m a n e c e m e m o r i a en Ia control de lectura'/escritura. Un CI RAM se construye internamente con celdas que tienen una c a r a c t e r í s t i c a d e O R a l a m b r a d o . E s t o e l i m i n a l a n e c e s i d a dd e c o m p u e r t a s 307
¡'¡ I i-r:'l
Entrada de datos Palab¡a 0
D1 Entradas de dirección
decodificador
2x4 lJl
Hal¡ilitación de memoria Lectura,, escritura
"ixT?;. Figura
7_3O
Memoria de circuito intesrado
oR en el diagrama. Las líneas de sarida externas pueden fbrmar también liigica alambradapara facilitar Ia conexiónde do.';;;; pastillas de cI para formar una unidad de memoria con un gran número dé palabras. M e m o r i a d e n ú c l e o sm a g n é t i c o s una memoria de núcleos magnéticosusa núcreosmagnéticospara almacenar información binaria. [Jn núcleo magnético ,r" toroide en forma de rosquilla hecho de material magnético. En contraste ", .or--rrn flip-flop de semiconductoresque necesita solamente una cantidad física tal como el voltaje para su operación, un núcleo magnético emplea Jres cantidades 308
H E J E M P L O SD E M E M O R I AD E A C C E S OA L E A T O R I O3 0 9
SEC. 7.8
fisicas: corriente, flujo magnético y voltaje. La señal que excita el núcleo es un pulso de corriánte en utt alambre que pasa a través del núcleo. La információn binaria almacenada se representapor la dirección de| flujo magnético dentro del núcleo. La información binaria de salida se extrae de un alambre que encadenaal núcleo, en la forma de un pulso de t'oltaje. La propiedad fisica que hace un núcleo magnético utilizable para almacenamientobinario es su reversiónde histérisis, mostrada en la Figura ?-31(c).Esta es un gráficode la corrienteversusel flujo magnético1'tiene la forma de una figuia cuadrada.Con cero corriente,un flujo que puede.ser positivo en direcclón (hacia la izquierda) o negativo (hacia Ia derecha) p".-un""" en el ¡úcleo magnetizado.Se usa una dirección, por ejemplo ia magnetizacióna la izquierda, para representarun 1 y Ia contraria para representarun 0. un pulso de corrienteaplicado al alambre que pasa por el núcleo puede cambiar la dirección de magnetización.Como se ve en la Figura 7-31(a)' la corriente en dirección hacia abajo produce el flujo en dirección hacia la derecha, causandoque el núcleo vaya al estado de 0. La Figura i-31Q1 muestra las direccionesde la corriente y el flujo para almacenar un 1. EI cambio que toma el flujo cuando se aplica el pulso de corriente se indica por medio de flechas en el circuito de histéresis. Leer la información binaria almacenadaen el núcleo es mu!' complicado por el hecho de que el flujo no puedeser detectadocuando no está cambiando. Sin embargosi el flujo está cambiandocon respecloal tiempo, este induce un voltaje én el alambre que enlazael núcleo' AsÍ, la lectura puede llevarse a cabo aplicando una corriente en la dirección negativa como se muestra en Ia Figura 7-32. Si el núcleo está en el estado 1. la corriente invierte la dirección de magnetizacíóny el cambio resultante de flujo produce un pulso de voltaje en el alambre sensor.Si el núcieo aún está en el estado 0j la coniente negativa deja al núcleo magnetizadoen la misma dirección, causando una pequeña distorsión del flujo magnético lo- .cual producirá un voltaje ¿e sati¿a muy pequeñoen el alamb¡e sensor.Nótese que esta es una lectura destructiva ya qu€ Ia corriente de lectura regresa .i.-pr" el núcleoal estadode 0. El valor almacenadopreviamentese pierde' La Figura 7-83 muestra la organizaciónde una memoria de núcleos magnéticosque contiene cuatro palabras con tres bits cada una. Compa-
R:
t.'
FIujo
q o*Corriente negativa
Almacenar0 Figura 7-31
Corriente
' Cor¡iente positiva
(b) Almacenar 1
(c) Figura de histéresis
Almacenamientó de un bit en un núcleo magnético
i¿,
310
REGISTRoS , N T A D o R E SY U N I D A DD E M E M o R I A co
CAP, 7
rándola con Ia unidad de memoria de CI de la Figura 7-30, se nota que Ia celda binaria es ahora el núcleo magnético y los álambres que lo encadenan. La excitación del núcleo se logra por medio de un pulso de corriente generadopor un circuito accionador (DR: Driver). La información de salida pasa por un amplificador sensor (sA: Sense Amplifier) cuyas salidas ponen a uno los flip-flops en el registro separador. Cada núcleo está enlazado por tres alambres. El alambre de palabra es excitado por un accionador de palabras y pasa por tres núcleos de una palabra. El álambre de bits es excitado por un accionador de bit y pasa a través de cuatro núcleos en la misma posición de bit. El alambre sensor enlaza los mismos núcleos que el alambre de bits y se aplica a un amplificador sensor que conforma el pulso de voltaje cuando se lee 1 y rechaza la pequeña distorsión cuando se lee 0. Durante una operación de lectura, un pulso de corriente accionador de palabra se aplica a los núcleos de la palabra seleccionada por el decodificador. La corriente de lectura está en la dirección negativa (Figura T-32) y causa que todos los núcleos de la palabra seleccionada vayan al estado de 0 independientemente del estado anterior. Los núcleo. q,ru contienen un I previamente cambian su flujo e inducen un voltaje al alambre sensor. El flujo de los núcleos que contenía un 0 no cambia. El pulso de voltaje en el alambre sensor de los núcleos con un 1 previo se amplifica en el amplificador sensor y pone a uno el flip-flop correspondiente en el registro separador. . - Durante la operación de escritura, el registro separador mantiene la información para ser almacenada en la palabra especiiicada por el registro de direcciones. Se asume que todos los núcleos de Ia palabrá seleccionada están inicialmente borrados, es decir, todos están en el estado de 0 de tal manera que aquellos que necesiten un 1 deben sufrir un cambio de estado. un pulso de corriente se genera simultáneamente en el accionador de palabra por el decodificador y en el accionador de bits cuyo flip-flop del iegistro separador correspondiente contiene un 1. Ambas corrientes están en la dirección positiva, pero su magnitud es solamente la mitad de la necesaria para cambiar el flujo al estado 1. Esta corriente media. en sí misma. es muy pequeña para cambiar la dirección de magnetización. pero la suma de dos medias corrientes es suficiente para ca-Eiar la dirección de magnetización al estado de 1. tln núcleo cambia al estado de 1 solamente ii Voltios
Alambre sensor
Corriente de lectura Figura 7-32
Tiempo Salida de alambre sensor Lectura de un bit de un núcleo magnético
$ i
J
I I
l
H :
=.& orc x@ 6p @o
N
D.R: Accionado¡ SA: Amplificador sensor
Entrada de direcciones
Información de entrada
Registro separador
B1
82
83
lnformación de salida Figura
7-33
Unidad de memoria de núcleos magnéticos
3tl
312
R E G I S T R OC SO , N T A D O R EYS U N I D A DD E M E M O R I A
CAP. 7
hay una coincidencia de dos medias corrientes de un accionador de palabra y un accionador de bits. La dirección de magnetización de un núclecr no cambia si este recibe solamente media corriente de uno de los accionadores. EI resultado es que la magnetización de los núcleos se cambia al estado de 1 solamente si los alambres de palabra y bit se interceptan, esto es, solamente en la palabra seleccionada en la posición de bit en Ia cual el registro separador es un 1. Las operaciones de lectura y escritura descritas anteriormente son incompletas, porque la información almacenada en Ia palabra seleccionada se destruye por el proceso de lectura y la operación de escritura trabaja adecuadamente sólo si los núcleos están borrados inicialmente. Como se menciona en la Sección 7-7 Ia operación de lectura debe estar seguida por otro ciclo que restaura los valores previamente almacenados en los núcleos. Una operación de escritura está precedida por un ciclo que borra los núcleos de la palabra seleccionada. La operación de restauración durante el ciclo de lectura es equivalente a Ia operación de escritura, lo cual, en efecto, escribe la información previamente leída del registro separador de vuelta a la palabra seleccionada. La operación de borrado durante un ciclo de escritura es equivalente a una operación de lectura la cual destruye la información almacenada pero previene la información leída de llegar al registro separador, al inhibir al amplificador sensor. Los ciclos de restauración y borrado se inician normalmente por el control interno de la memoria, de tal manera que la unidad de memoria, parece al mundo exterior, como que tiene una propiedad de lectura no destructiva.
REFERENCIAS
]. The TTL Data Book for Design Engineers.Dallas, Texas: Texas Instruments, Inc., 1976.
Blakeslee,T. R., Dígital Design with Standard MSI and LSI. Nueva York: John Wiley & Sons,1975. 3. Barna A. y D. I. Porat, Integrated Circuits in Digital Electronics. Nueva York: John Wiley & Sons,1973. A
Taub, H. y D. Schilling, Digital Integrated Electronics. Nueva York: McGrawHill Book Co., 1977.
5 . Grinich, V. H.y H. G. Jackson,Introduction to Integrated Electronics. Nueva York: McGraw-Hill Book Co., 1975. 6 . Kostopoulos,G. K., Digital Engineering.Nueva York: McGraw-Hill Book Co., 1975. 7 . Scott, N. R., Electronic Computer Technology.Nueva York: McGraw-Hill Book Co., 1970,Capítulo 10. Kline, R. M., Digital Computer Design. EnglewoodCliffs, N.J.: Prentice-Hall, Inc., 1977,Capítulo 9.
PRO BLEMAS
7-l
El registro de la Figura ?-1 t,rasfiere la información de entrada a los flip-flops cuando la entrada CP pasa por una transición de flanco negativo. Modifique el circuito de tal manera que la información de entrada se trasfiera al registro cuando un pulso de reloj pasa por una transición de flanco negativo, teniendo en cuenta que la entrada de control de carga es igual al binarit¡ 1'
no
El registro de la Figura 7-3 carga las entradas durante una transición negativa de un pulso de reloj. iQué cambios internos son necesarios para que las entradas sean cargadas durante el f'lanco positivo del pulso?
r -t).
verifique el circuito de la Figura ?-5 usando los mapas para simplificar las siguientes ecuaciones de estado.
7-4.
Diseñe el circuito secuencial cuya tabla de estado está dada a continuación usando un registro de 2 bits y compuertas combinacionales.
Estado presente
00 00 0l 0l l0 l0 ll ll
Entrada
0 I
0 I
0 I 0 I
Estado siguiente
00 0l l0 0l 10 ll l0 0l
7-5.
Diseñe un circuito secuencialcuyo diagrama de estado esté dado en la Figura 6-27uslndo un registro de 3 bits y una ROM de 16x 4. 7 -6. El contenidode un registrode desplazamientode 4 bits es inicialmente 1101. El registrose desplazaseis vecesa la derecha,con la entradaen seriesiendo 101101.¿Cuál es el contenido del registro despuésde cada desplazamiento? 7 - 7 . ¿Cuál es la diferenciaentre la trasferenciaen serie y en paralelo?¿Quétipo de registro se usa en cada caso? ? - 8 . EI registro de desplazamientobidireccionalde 4 bits de la Figura 7-9 se encapsuladentro de una pastilla de CI. (a) Dibuje un diagrama de bloque de un CI most¡ando todas las entradas y salidas. (b) Dibuje un diagrama de bloque usando tres CI para producir un registro de desplazamientobidireccionalde 12 bits. EI sumadbr en serie de la Figura 7-10 usa dos registrosde desplazamiento de 4 bits. El registroA retiene el númerobinario 0101y el registroB retiene 0111.El flip-flop del arrastre Q se borra inicialmente. Liste los valoresbinarios en el registroA y el flip-flop Q despuésde cada desplazamiento. ?-10. ¿Qué cambiosson necesariosen el circuito de la Figura 7-11para convertirIo a un circuito que resta el contenidode B al contenidode A ? 7-9.
313
314
CAP. 7
Y SU N I D A DD E M E M O R I A R E G I S T R OC SO , NT;ADORE
?-11. Diseñe un contador en serie; en otras palabras determine el circuito que debe ser inclurdo externamente con el registro de desplazamiento para poder obtener un cr,¡ntador que opera en serie. i-12.
Dibuie el diagrama de un contador de rizado de 4 bits binario usando flipflops que se disparan con el flanco positivo.
7-13. Un flip-flop tiene una demora de 20 ns desde el momento en que su entrada CP va de 1a 0 hasta el momento en que se complementa su salida. ¿Cuál es la demora máxima en un contador binario de rizado de 10 bits que usa estos flip-fl,rps? ¿Cuál es Ia frecuencia máxima con que puede operar el contador confiablemente? ?-14. ¿Cuantos flip-flops deben ser complementados en un contador binario de rizado de 10 bits para alcanzar Ia sigriente cuenta después de 0111111111? 7-15. Dibuje el diagrama de un contador decreciente binario de rizado de 4 bits usando flip-flops que se disparan en (a) transición de flanco positivo y (b) transición de flanco negativo. 7-16. Dibuje un diagrama de tiempo similar a aquel de la Figura 7-15 para el contador binario de rizado de Ia Figura 7-12. 7-17. f)etermine el siguiente estado para cada uno de los seis estados no usados en el contador de rizado BDC de la Figura 7-14. ¿Es el contador autocomenzante? ?-18. El contador de rizado demostrado en la Figura P7-18 usa flip-flops que se disparan en la transición de flanco negativo de la entrada CP. Determine la secuencia de cuenta del contador. ¿Es el contador autocomenzante? 7-19. ¿Qué pasa al contador de la Figura 7-18 si ambas entradas creciente y decreciente son iguales a I al mismo tiempo? Modifique el circuito de tal manera que cuente hacia arriba si ocurre esta condición. ?-20. Verifique ias funciones de entrada del flip-flop del contador BDC sincrónico especificado por ia Tabla 7-5. Dibuje el diagrama lógico del cont¡rdor BDC e incluye una entrada de control de habilitación de cuenta. T 21. Diseñe un contador BDC sincrónico con flip-flops JK. ; -22. Muestre las conexiones externas de cuatro contadores binarios de CI con carga en paralelo (Figura 7-19) para producir un contador binario de 16 bits. Llse un diagrama de bloque para cada CI. 1-23. Construya un contador BDC usando un circuito MSI de la Figura 7-19.
Pulsos de cuenta
Figura
P7-18
Contador de rizadcr
P R OB L E M A S 3 I 5 7-24. Construya un contador de 12 módulos usando el circuito MSI especificado en la Figura 7-19. Dé cuatro alternativas. ?-25. usando los dos circuitos MSI especificados en la Figura 7-19, construya un contador binario que cuente desde 0 hasta el binario 64. ?-26. Usando la variable de parada de Ia Figura ?-21 como señal de comienzo construya un segundo control de tiempo de palabra que permanezca pK)run período de 16 pulsos de reloj. Demuestre que un contador binario de n bits conectado a un decodificador de n a 2" líneas es equivalente a un contador de anillo con 2" flip-flops. Dibuje los diagramas de bloque de ambos circuitos para n:3. ¿cuántas señales de tiempo se generan? ?-28. Incluya una entrada de habilitación para el decodificador de Ia Figura 7-22(b) y conéctela a los pulsos de reloj. Dibuje las señales de tiempo que se generen ahora a las salidas del decodificador.
i-27.
7-2g. Complete el diseño del contador Johnson de la Figura 7-23 mostrando las salidas de las ocho señales de tiempo. T-30. (a) Liste los ocho estados no usados en el contador de anillo de finai conmutado de la Figura ?-23. Determine el siguiente estado para cada estado no usado y *,¡"*ir" que, si el circuito se encuentra en un estado inválido, este no regresa u ,rtt e*tudo válido. (b) Modifique el circuito como se recomienda en el texto y demuestre que (1) el circuito produce la misma secuencia de estados como la listada en la Figura 7-23(b), y (2) el circuito alcanza un estado válido de cualquiera de los estados no válidos. ?-31. Construya un contador Johnson con diez señales de tiempo' i 32. (a) La unidad de memoria de ia Figura 7-24 tiene una capacidad de 8.192 palabras de 32 bits por palabra. ¿Cuántos flip-flops se necesitan para el registro de dirección de memoria y el registro separador de memoria? (b) ¿Cuántas palabras contendrá Ia unidad de memoria si el registro de dirección tiene 15 bits? ?-33. cuando el número de palabras que se van a seleccionar es muy grande, es conveniente usar una celda de almacenamiento binario con dos entradas de selección: una entrada de selección X (horizontal) y una Y (ve¡tical). Ambas X y Y deben ser habilitadas para seieccionar la celda' (a) Dibuje una celda binaria similar a la de la Figura i-29 con las entradas d e s e l e c c i ó nX y Y . (b) Demuestre cómo pueden ser usados dos decodificadores de 4x 16 para seieccionar una palabra en una memoria de 256 paiabras. (a) Dibuje un diagrama de bloque de la memoria de 4x 3 de la Figura 7-30, mostrando todas las entradas y saiidas. (b) Construya una memoria de 8X 3 que usa dos de estas unidades. Use una construcción de diagrarna de bloque. ?-35. Se requiere construir una memoria con 256 palabras, 16 bits por palabra organizada como en la l'igura 7-33. Los núcleos están disponibles en una matriz de 16 filas y 16 columnas. i-34.
(a) ¿Cuántas matrices se necesitan? (b) ¿Cuántos flip-flops hay en los registros de dirección y reparación? (c) ¿Cuántos núcleos reciben corriente durante el ciclo de lectura? (d) ¿Cuántos núcleos reciben al menos media corriente durante un ciclo de escritura?
;i.
Lógica d e trasfe rencia entre registros
8 -1
I N T R O DU C C I O N
Un sistema digital es urt sistema lógico secuencialconstruidocon flip-flops y compuertas.Se ha mostrado en los capítulos anterioresque un circuito secuencialpuede ser especificadopor medio de la tabla de estado. Para especificarun sistema digital extenso,con una tabla de estado,sería muy dificil, si no imposible,porque el número de estadossería demasiadogrande. Para sobreponeresta dificultad, se diseñan invariablemente los sistemas digitales usando una alternativa modular. El sistema se subdivide en subsistemasmodulares, cada uno de los cuales realiza algún trabajo funcional. Los módulos se construyena partir de funcionesdigitales tales como registros,contadores,decodificadores,multiplexores, elementosaritméticos y lógica de control. Los diferentes módulos se interconectan con datos comunesde control para formar un sistema de computador digital. Un'módulo sistema digital típico sería la unidad procesadorade un computador digital. La interconexiónde las funcionesdigitales para formar un módulo sistema digital no puede describirsepor medio de técnicas combinacionales o de secuenciaslógicas. Estas técnicas fueron desarrolladaspara describir un sistema digital a nivel de compuertay flip-flop y no son apropiadas para describir el sistema a nivel de función digital. Para describir un sistema digital en términos de funciones tales como sumadores,decodificadoresy registros,es necesarioemplear una notación matemática de alto nivel. El método de lógica de trasferenciaentre registroscopa esta necesidad. En este método, se seleccionanregistroscomo los componentesprimitivos de un sistema digital en vez de las compuertasy los flip-flops como en la lógica secuencial.En esta forma es posible describir de una manera precisa y concisa el flujo de información y las tareas de procesamiento entre los datos acumuladosen los registros. La lógica de trasferenciade registrosusa un conjunto de expresionesy afirmaciones,las cuales tienen una similitud con las afirmacionesusadas en los lenguajesde programación. Esta notación presenta las herramientasnecesariaspara especificar un conjunto prescrito de interconexionesentre varias funciones digitales. 316
sEc. 8-1
I N T R O D U C C I O3N1 7
Una característicaimportante de presentacióndel método lógico de trasférenciaentre registroses que está relacionadomuy de cerca a la forma en que la genta prefiere especificarlas operacionesdel sistema digital. LoJ componentesbásicos de este método son aquellos que describen un sistema digital a partir del nivel operacional.La operaciónde un sistema digital se describede mejor manera especificando: 1. El conjunto de registrosen el sistema y sus funciones. 2. La información en código binario almacenadaen los registros. 3. Las operacionesrealizadasa partir de la información almacenacia en los registros. 4. Las fun'cionesde control que inician Ia secuenciade operaciones. Estos cuatro componentes forman la base del método de lógica de trasferencia entre registros para describir sistemas digitales. lJn registro como se define en la notación de lógica de trasferenciaentre registros,no solamente implica un registro, parecido al definido en el Capítulo 7, si no que abarca también todos los otros tipos de registros, talés como registros de desplazamiento,contadoresy unidades de memoria. Un contador se consideracomo un registro cuya función es incrementar en 1 la información almacenadaen é1. Una unidad de memoria se considera como una colección de registros de almacenamientodonde se va a almacenar la información. Un flip-flop por si solo se toma como un registro de 1 bit. De hecho,los flip-flops y las compuertasasociadasde cualquier circuito secuencialse llaman registro, al usar este método de designación. La información binario almacenadaen los registrospodría ser números binarios, números decimales binarios codificados,caracteresalfanuméricos,control de información ó cualquier informaciónbinaria codificada. Las operacionesque se realizan mediante los datos almacenadosen los registros, dependedel tipo de datos que se encuentren. Los números se mánipulan con operacionesaritméticas, mientras que el control de informacién se manipula por lo generalcon operacioneslógicastales como activando o borrando bits específicosdel registro. Las operacionesrealizadascon los datos almacenadosen los registros Una microoperaciónes una operaciónelemense llaman microoperacíones. tal que puede ser realizada en paralelo durante un períodode pulso de reloj. El resultado de la operaciónpuede remplazar la información binaria pievia de un registro o puede ser trasferido a otro registro. Ejemplos de microoperacionesson: desplazar,contar, sumar, borrar y cargar. Las funciones digitales introducidas en el Capítulo 7 son registrosque configuran Un contador con carga en paralelo es capaz de realizar microoperaciones. y la carga.Un registro de desplazael incremento de las microoperaciones para microoperacionesde desplazarealizar miento bidireccional es apto MSI combinacionales, Las funciones la izquierda. o a la derecha miento a introducidas en el Capítulo 5 pueden ser usadas en algunas aplicaciones Un sumadorbinario en paralelo es útil para para realizar microoperaciones. iealizar la microoperaciónde suma (add) a partir de los contenidosde los dos registros que retienen números binarios. Una microoperaciónrequiere
3 1 8 L O G I C AD E T R A S F E R E N CEI AN T R ER E G I S T R O S
CAP. 8
solamente un pulso de reloj para su ejecución, si se hace la operación en paralelo. En los computadorer en .e.ie, una microoperación requiere un número de pulsos igual al tiempo de palabra en el sisiema. Este últi-o igual al número de bits en los registros de desplaza.triu.tto que ". trasfieren la información en se¡ie mient."r q.ru la microoper""i¿; ;; ejecuta. . L a s f u n c i o n e s. d e . c o n t r o l q u e i n i c i a n l a s e c u e n c i a d e o p e r a c i o n e sc o n sisten de señales de. tiempo qué le dan secuencia a Ias operáciones una por una. ciertas condiciones que dependen de los resultados'de la, ope.a"ioi". previas pueden determinar también el estado de las funciones de control. una función de control es una variable binaria qu. .., un estado binario inicia una operación y en el otro inhibe la operación. El propósito de este capítulo es introdücir en detalle los componentes del método de lógica de trasferencia entre registros. El capítulo introduce una notación simbólica para representar registros. para operaciones espe_ cíficas en los contenidos de los registros y para especificar funciones de -algunas control. Esta notación simbólica .e llama ieces lenguaje de tras_ ferencia entre registros o lenguaje descriptiui de material dil c'omputador (register-transfer language or computer hardware description language). El. lenguaje de tra.sferencia entre iegistros adoptado aqui pretende ser el más sencillo posible. Debe tenerr" ei sin e-ba.go, que no existe ".,errta, simbología normalizada para el lenguaje de irasferen"iu ?rt." registros y f'uentes diferentes adoptan convenciones diferentes. fJna afirmación en un -renguaje de trasferencia gntre registros consiste de una función de control y ,rna lista de microopericio"".. t,u función de control (la cual puede ser omitida algunas veces) especifica la condición de co_ntrol y secuencia de tiempos paü ejecutar la lista á" -r".ooperaciones...Las microoperaciones especifióan las operaciones etemerrtates que se realizan con Ia infbrmación almacenada e.r lo. registros. Los tipos de mi_ crooperaciones encontradas más a menudo en los- sistemas algitat". pr_,e_ den clasificarse en cuatro categorías: 1. Microoperacio'es d,e trasferencia entre registros que no cambian er contenido de la información cuando la iniormación binaria se mue_ ve de un registroa otro. 2 . L a s m i c r o o p e r a c i o n e sa r i t m é t i c a s r e a l i z a n a r i t m é t i c a con los nú_ meros almacenados en los registros. 3' Las_microoperaciones lógicas realizan operaciones tales como AND y oR con el par de bits individuares aimacenados en los registros. 4' Las microoperaciones de desprazamiento especifican operaciones para ios registros de desplazamiento. Las secciones 8-2 hasta 8-4 definen un conjunto básico de microoper a c i o n e s . S e a s i g n a n _ s í m b o l o se s p e c i a l e sa l a s m l c r o o p e r a c i o n e s en el conjunto y cada símbolo se muestra asociado con los'materiales digitales correspondientes que configuran Ia microoperación establecida. Es impor_ tante tener en cuenta que la notación rógica de trasferencia entre."giri.n, 'se relaciona directarnente con los registros y Ias funciones digitalés que esta define y no pueden separarse delllos.
-n
T R A S F E R E N C IEAN T R ER E G I S T R O S3 1 9
sEc. 8-2
Las microoperaciones ralizadas con la operación almacenada en los registros depende del tipo de datos que residen en los registros' La informaói¿n bittaiia encontrada comúnmente en los registros de los computadores puede clasificarse en tres categorías: digitales 1. Datos numéricos tales como números binario o decimales binarios codificados usados en los cálculos aritméticos. 2. Datos no numéricos tales como caracteres alfanuméricos u otros símbolos binarios codificados usados en aplicaciones especiales. 3. Códigos de instrucciones, direcciones y otra información de control usada para especificar los requerimientos de procesamiento de datos del sistema. Las Secciones 8-5 hasta 8-9 tratan sobre la representación de datos n u m é r i c o s y s u r e l a c i ó n c o n l a s m i c r o o p e r a c i o n e sa r i t m é t i c a s . L a S e c c i ó n 8-10 explica el uso de las microoperaciones lógicas para el procesamiento de datos no numéricos. La representación de los códigos de instrucción y s u m a n i p u l a c i ó n c o n m i c r o o p e r a c i o n e s ,s e p r e s e n t a e n l a s S e c c i o n e s 8 - 1 1 y 8-12. 8-2
TRASFERENCIAENTRE REGISTROS
Los registros de un sistema digital son designados por letras mayúsculas (algunas veces seguidas de números) para denotar la f'unción del registro. Por ejemplo, el registro que retiene una dirección para Ia unidad de memoria se llama comúnmente registro de direcciones de memoria y se designa como MAR (memory address register). Otras designaciones para el registro son A, B, Rl, R2 e IR. Las celdas o flip-flops de un registro de n bits se numeran en secuencia desde t hasta n (o desde 0 hasta n - 1) comenzando desde la izquierda o desde la derecha. La Figura 8-1 muestra cuatro maneras de representar un registro en la forma de diagrama de bloque. La forma más común de representar un registro es por medio de un rectángulo con el nombre del registro dentro de él de la manera mostrada en la Figura 8-1(a). Las celdas individuales pueden ser distinguidas como en (b), cada celda con su respectiva letra y número suscrito. La numeración de las celdas de derecha a izquierda puede ser marcada en la parte superior del rectángulo como en el registro MBR de 12 bits en (c). lln registro de 16
,
n8
A
A.
A.
A3
I
^) A
(b) Se muestran las celdas individuales
(a) Registro A
I6
PCtÍt)
MBR (c) Numeración de celdas Figura
8-1
I
ñl
|
PC(L)
(d) Porcionesde registro
f ) i a g r a m a d e b l o q u e d e los registros
324
L o G I c A D E T R A S F E R E N C IEAN T B ER E G I S T R o S
CAP. 8
bits se divide en dos partes en (d). Los bits 1a 8 se designan por medio de la letra L (viene de low) y los bits 9 a 16 se les asigna la letra H (viene de high). El nombre del registro de 16 bits es PC. El símbolo PC(H) se refiere a las ocho celdas de mayor orden y PC (L\ se refiere a las ocho celdas de menor orden del registro. Los registros pueden especificarse en el Ienguaje de trasferencia entre registros con una afirmación declaratoria. Por ejemplo, los registros de la Figura 8-1 pueden definirse con las afirmaciones declaratorias tales como: DECLARE REGTSTER
A(8), MBR(12), pc(t6)
DECLARE SUBREGISTER
PC(L):
PC(l-8), PC(H) : PC(9-t6)
Sin embargo, en este libro no se usarán proposiciones de declaración para definir los registros; en vez de ello los registros se mostrarán en Ia forma de diagrama de bloque como en la Figura 8-1. Los registros mostrados en un diagrama de bloque pueden convertirse fácilmente en proposiciones de declaración para propósitos de simulación. La trasferencia de información de un registro a otro se designa en forma simbólica por medio del operador de remplazo. La proposicién: A<_B denota la trasferencia del contenido del registro B al registro A. Esta designa un remplazo del contenido de A por lo contenido en B. Por definición, lo contenido en el registro fuente B no cambia después de la trasferencia. Una proposición que especifica una t¡asferencia entre registros implica que los circuitos están conectados entre las salidas del registro fuente hasta las celdas de ent¡ada del registro de destino. Normalmente no se requiere que ocurra esta trasferencia con cada pulso de reloj, sino solamente bajo una condición predeterminada. La condición que determina cuando ocurre la trasferencia se llama función de control. Una función de control es una función de Boole que puede ser igual a 1 ó 0. La función de control se incluye en la proposición como sigue: x'Tr:
A <__ B
La función de control se determina con dos puntos. Esta simboliza las necesidades que la operación de trasferencia puede ejecutar por medio de los materiales, solamente cuando la función de Boole x'Tr:1, es decir, y la variablede tiempo Tt:1. cuando la variable ¡:0 Cada proposición escrita en el lenguaje de trasferencia de registros implica una construcción con materiales para configurar la trasferencia. La Figura 8-2 muestra la configuración para la proposición escrita anteriormente. Las salidas del registro B se conectan a las entradas del registro A, y el número de líneas en esta condición es igual al número de bits en los registros. El registro A debe tener una entrada de control de carga de tal manera que pueda habilitarse cuando la función de bontrol es 1.
'cj il
RegistroB
FiguraS-2Configuraciónconcomponentesdelaproposiciónx,T'..A_B
entrada adiAunque no se muestra, se asume que.el registro A tiene una La función de reloj. de cional que acepta pulro* continuos sincronizados Se asuAND. y compu€rta una inversor de un control se genera por medio tiempo T1 de variable genera la que control de que la unidad *" i"-¡i¿i A' con los mismos pulsos dé reloj que se aplican al registro .u-ri.r".o'iza pulso de de período un activa durante La función ¿, .o.,iroi p.r-u.r""" ocurre y trasferencia la 1) a igual ."lo¡ 1.,rundo la variable de tiempo es d.r.átti" la siguiente transición de un pulso de reloj' lista¡ Los símbolos básicos de la lógica de trasferencia de registros sey los númayúsculas por letras se denotan registros Los 8-1. en la Tabla para dismeros pueden estar coniiguos a las letras. Los suscritos se usan para se usan paréntesis Los tinguir las celdas individuales del registro. de trasferencia una denota flecha Lá aefinir una porción de un registro. función una puntos terminan Dos misma. la de y lu di."""ión l"iá.*u.i¿" Se usa para separar dos o más operaciones que se ejede control y i, "o-u cutan al mismo tiempo. La proposición: Tt: A<-8,
B<-A
de dos denota una operación de intercambio que trasfiere los contenidos es simultánea operación Esta común. reloj pulso de registros durante un de por disparo o esclavo maestro flip-fiops con .ugirt-r los po"ri¡tu en flanco. de Las llaves cuadradas se usan conjuntamente con la trasferencia encey registro el memoria palabra de memoria. La letra M designa una para la memoria' rrado dentro de las llaves Juadradas significa la dirección a continuación' detalle más en Esto se explica de dos Hay ocasiones cuando el registro de destino recibe información propodos Considérese tiempo. fuentes pero evidentemente tro Ll -it-o siciones: Tt:
C<-A
Tsi C<-B A va a ser trasLa primera línea establece que el contenido del registro 71. La segunda t i e m p o d e v a r i a b l e u n a ferido al registro C cuando ocurre pero con un primera que la destino de registro mismo proposición usa el 321
Tabla
8-l
Símbolos básicos de la lógica de trasferencia entre resistros
Símbolo Letras (y numerales) Suscrito Paréntesis( ) Flecha * I)os puntos : Coma , Llaves cuadradas [ ]
Descripción Denota un registro Denota un bit de un registro Denota una porción de un registro Denota una trasferencia de información Termina una función de control Separa dos microoperaciones Especifica una dirección para una trasferencia de memoria
Ejemplos A, MB& R2 A z ,B e PC(H), MBR(OP) A<-B x'Ts: A<_B,B<-A MBR + MIMARI
registro fuente diferente y una variable de tiempo diferente. La conexión de dos registrosfuente al mismo registro de aesiino pu.a" hacersedir€ctamente, pero requiere un circuito multiplexor para "o seleccionar entre dos caminos posibles. EI diagrama de bloque del ii.cuilá qr" configura las dos proposicionesse muestra en la Figura g-8. p".ul.gi.tro. con cuatro bits cada uno, se necesita un multipl"exorde z a t liTeas cuádruple, similar al mostrado previamente en la Éigura b-12 pára seleccio'ar el .e_ gistro-A o el registro B. Cua,ndo Ts: I ie selecciona el registro B, pero cuando Tt: I se seleccionael registroA (porque ?u debe.ei o c,ru.rdo?, es 1). El multiplexor y la entrada de cargá dei registro c se habilita cada vez.que ocurra Tt ó 75. Esto causa una trasferenciade información del registro fuente seleccionadoal registro de destino. Bus de trasferencia A menudo un sistema digitar tiene muchos registrosy se debe proveer de caminos para trasferir información de un registro u otro. considérese por
Habilitar
Multiplexor cuádruple 2xl MUX (Figura5-17)
T. ') Il
Figura 8-3 Uso de un multiplexor para trasferi¡ información de dos fuentes a un solo destino
322
323 N T R ER E G I S T R O S T R A S F E R E N CEI A
sEc. 8-2
it
como ejemplo los requerimientos de trasferencia entre los tres registros rey registro cada datos de líneas seis Hay 8-4. .á -rrertra en ia Figura registro cada Si fuentes. dos entre para selecóionar multiplexó é"1.r. r" y tres multipiexores. áá.,siste de n flip-flop., huy necesidad de 6 n líneas el número de mulaumertta A medida qrru u,r^.rria'el número de registros, restringe la trass e S i i n t e r c o n e x i ó n . d e tipiu*or". y el número de líneas registros, pueden los entre número de caminos el a uno, ferencia a uno donde la ."¿n.it.u considerablemente. Esto se muestra en la Figura E-5' de a través común ,uiiáu y entrada de cada flip-flop se conecta a la línea interruplos Todos interruptor. un circuito electrónico que actúa como un trasferencia' tores están abiertos normalmente hasta que se requiera una interruptolos se cierran por ejemplo, F3 a F, de , Para una trasferencia puede ser extenesquema El requerido' camino el para y formar S] raa S, con n flip-flops, y este requiere n Iíneas comunes. dido - - a io,,.girt.os la información Un grup; de alambres a'través áe Ios cuales se trasfiere b u s . Para la trasl l a m a . s e r e g i s t r o s e n t r e v e z binaria ñlt u ¡it, un bit a la de bits número al igual es bus el en líneas de número paralelo, el rerencia en de sistema al lo. regisiros. La idea de un bus de trasferencia es análoga de vez En otro' para el "" lado i.u.porte""entral usado para llevar gente de un un usa se otro. a lugar un para ir de privado que'cada viajero use traiporte que esté disposistema de bls y los viajeros espelan en fila su turno hasta nible el trasporte. y uu IJn sistema de bus común puede construirse con multiplexores pol pueda seleccionarse registro de destino para que el bus de trasferencia fuenregistro un seleccionan ,"Eaio de un decodiiicador. Lo. multiplexores para l" pu.u el bus y el decodificador selecciona un registro de destino de sistema un de La construcción bus. el desde trasferir la infoimación bits en Ia Los cuatro 8-6. la Figura en dibuja se registros para cuatro bus posición sijnificativa de ios registros pasan a_través de un multi-i.áu multiá. ¿ u 1 líñea para formar una línea de bus. Solamente dos ;i.;;; de significativos para bits dos uno plexores se muestran en el diagrama: rePara orden. mayor de significativos para bits y dos uno *".rol. orden
Figura
8-4
Trasferencia entre tres reglstros
:t
{ .t'{
(¡{ irr
1.1
;
1
Figura
8-5
Trasferencia a través de una línea común
:í:l
Seleccionar
RegistroD
n LINEAS DE BUS LíneaNo.1
Figura 8-6
324
Sistema de bus para cuatro registros
q T R A S F E R E N C IEAN T R ER E G I S T R O S3 2 5
sEc. 8-2
gistros de n bits, se necesitan n multiplexores para producir un bus de n líneas. Las n líneas en el bus se conectan a n entradas de todos los registros. La trasferencia de información de un bus a un registro de destino se logra activando el control de carga de ese registro. El control de carga particular activado se selecciona mediante las salidas del decodificador cuando se habilita. Si el decodificador no se habilita, no se trasferirá ninguna información, aunque los multiplexores coloquen el contenido de un registro fuente en el bus. Para ilustrar lo anterior con un ejemplo particular, considérese Ia siguiente proposición: C<_A La función de control que habilita esta trasferencia debe seleccionar el registro A para el bus y el registro C para el destino. Las entradas de selección de los multiplexores y el decodificador deben ser:
Fuentede selección: 00
(losMUX seleccionan losregistrosA)
: 10 Destinoseleccionado
(el decodificador el registroC) selecciona
Habilitación decodificador: 0
( e l d e c o d i f i c a d o rs e h a b i l i t a )
En el siguientepulso de reloj el contenidode A, localizadosobreel bus, se cargael registro C. Trasferenciade memor¡a La operación de una unidad de memoria fue descrita, en la Sección 7-7.La trasferencia de información a partir de un registro de memoria al exterior se Ilama operación de lectura. La trasferencia de la información nueva a un registro de memoria se llama la operación de escritura. En ambas opera¿iones, el registro de memoria seleccionado se especifica por medio de una dirección. Un registro de memoria o palabra se simboliza por medio de Ia letra M. El registro de memoria particular entre los muchos disponibles en una unidad de memoria se selecciona por medio de la dirección de memoria durante la trasferencia. Es necesario especificar la dirección de M cuando se escriben proposiciones de trasferencias de memorias. En algunas aplicaciones, solamente un registro de direcciones se conecta a los terminales de direcciones de Ia memoria. En otras aplicaciones, las líneas de dirección forman un sistema de bus común, para permitir que muchos registros especifiquen una dirección. Cuando se conecta solamente un registro a Ia dirección de memoria, se sabe que este registro especifica la dirección y que se puede adoptar una convención que simplifica Ia notación. Si la letra M aparece por sí sola en una proposición, designará siempre un registro de memoria selecciorado por la dirección que está al presente en el MAR. De otra rnanera, el registro que especifica Ia dirección (o la dirección en sí) se encerrará entre llaves cuadradas después del símbolo M.
i
l¡
326
L O G I C AD E T R A S F E R E N C IEAN T R ER E G I S T R O S
CAP. 8
considérese una unidad de memoria que tenga un solo registro de direcciones MAR como se muestra en la Figura g-?. El diagrama muestra también un solo registro separador de memoria MBr? usaáo para trasferir datos hacia adentro y afuera de la memoria. Hay dos operaciones de trasferencia de memoria: lectura y escritura. La opéración de lectura es una trasferencia de un registro M de memoria seleccionado al MBR. Esto se designa simbólicamente por medio de la proposición: R:
MBR <- M
R es la función de control que inicia la operación de lectura. Esto causa Ia trasferencia de la información al MBR del registro seleccionado de memoria M especificado por la dirección en el MAR. La operación de escritura es una trasferencia del MBR al registro de memoria ieleccionado M. Esto se designa por medio de la siguiente proposición: W:
-i'iai\ 1'", i ¡), "',1'r
M <- MBR
I4l es la función de control que inicia la operación de escritura. Esta última causa una trasferencia de la información del MBR al registro de memoria M s e l e c c i o n a d op o r l a d i r e c c i ó n p r e s e n t e e n e l M A R . tiempo de acceso de una unidad de memoria debe estar sincronizado I Pt los pulsos maestros de reloj en el sistema que dispara los registros del icon procesador. En rápidas el tiempo de acceso debe ser menor que {1 lnemorias o igual a un período de pulso de reloj. En memorias lentas, podría ,", nul' cesa"rroesperar por un número de pulsos de reloj, para que'se complete la Ltrasterencra. .bjn memorias de núcleos magnéticos, los registros dei proce_ sador deben esperar para que el tiempo dé ciclo áe me*'oria ." .o-pl"t". Para una operación de lectura, el tiempo de ciclo incluye Ia restauración de ia palabra después de la lectura. pára una operaci¿n de escritura, el tiempo de ciclo incluye el borrado de Ia palabra de memoria después dé la lectura. En algunos sistemas, la unidad de memoria recibe direcciones y datos de muchos registros conectados a los buses comunes. Considérese el cu.o dibujado en la Figura 8-8. La dirección a la unidad de memoria viene de un bus de dirección. Se conectan cuatro registros a este bus y cualquiera puede suministrar una dirección. La salida áe la memoria puede ir a cual_ quiera de los cuatro registros, los cuares se seleccionan por medio de un decodificador. La entrada de datos a la memoria viene dei bus de datos. la
Unidad de memoria
Figura
8-7
unidad
de memoria que se comunica con dos registros externos
q S E C .8 - 3
S D E D E S P L A Z A M I E N3T2O7 T M E T I C ALSO. G I C AY M I C R O O P E R A C I OANREIS
cual selecciona uno de los cuatro registros. Una palabra de memoria se especifica en tal sistema por medio del símbolo M seguido por un registro encerrado en llaves cuadradas. EI contenido del registro dentro de las Ilaves cuadradas especifica la dirección de M. La trasferencia de infbrmación del registro 82 a una palabra seleccionada de memoria por la dirección en el registro A1 se simboliza por medio de la proposición:
W : M l A t f < -8 2 E s t a e s u n a o p e l a c i ó n d e e s c r i t u r a , c o n e l r e g i s t r o A 1 e s p e c i f i c a n d ol a d i rección. Las llaves cuadradas después de la letra M dan el registro direccionado usado para seleccionar el registro de memoria M. La proposición no especifica explícitamente Ios buses. Empero, ésta implica las entradas de seiección requeridas por los dos multiplexores que forman los buses de dirección y de datos. La operación de lectura en una memoria con buses puede especificarse de manera similar. La proposición:
R : B 0< - M l A 3 l simboliza una operación de lectura de un registro de memoria cuya dirección está dada por 43. La información binaria que sale de la memoria se trasfiere al registro 80. De nuevo, esta declaración implica las entradas de selección réqueridas por el multiplexor direccionado y las variables de selección Dara el decodificador de destino.
8-3 ,
Y SO , GICAS M I C R O O P E R A C I O NAERSI T M E T I C A L DESPLAZAMIENTO
Las microoperaciones de trasferencia entre registros no cambian el contenido de infórmación binaria, cuando ésta pasa del registro fuente al registro de destino. Todas las demás microoperaciones cambian el contenido de la infbrmación durante la trasferencia. Entre todas las operaciones posibles que pueden existir en un sistema digital, hay un_conjunto básico áel cual iodás Ias demás operaciones pueden obtenerse. En esta sección se define un conjunto de microoperaciones básicas, su notación simbólica y los materiales digitales que las configuran. Se pueden definir otras mitrooperaciones con símbolos adecuados, si es necesario, para amoldarse a una aplicación particular. Microope raciones a ritméticas L a s m i c r o o p e r a c i o n e sa r i t m é t i c a s b á s i c a s s o n : s u m a r , r e s t a r , c o m p l e m e n tar y desplázar. Los desplazamientos aritméticos se explican en la Sección 'Iodas 8-? conjuntamente con el tipo de representación en datos binarios. las demás opelaciones aritméticas pueden obtenerse de una variación o secuencia de estas microoperaciones básicas.
Entradas
Lectura Bus de dirección Esc¡itura
Unidad de memoria
Salidas
Bus de Catos
Selección
Carga
Selecci<ín
Decodificador de destino
Selección
Figura
8-8
Unidad de memoria que se comunica con múltiples registros
La microoperación aritmética se def.ine por la proposición: F<-A-I
B
la-cual especificauna operación de sumo. Esta e s t a b l e c eq u e e l c o n t e n i d o del registro A se va a sumar al contenido del regist.o ¡, vlu .u-u se trasfi.ere al registro i.. para configurar ra proposióión, se ,equie.e., tres re. gistros, A, B y F y la fünción digital que realiza la operación de suma, tal como un sumador en pararelo. Las otras operacio.es aritméticas básicas se listan en la Tabla 8-2. La sustracción aritmética implica Ia disponibili_ dad de un sustractor paralelo binario compuesto de circuit's susrractores cornpletos conectados en cascada. La sustracción se configura a menudo 328
? S E C ,8 - 3
9 S D E D E S P L A Z A M I E N3T2O T M E T I C ALSO. G I C AY M I C R O O P E R A C I OANREIS
por medio de la complementación y suma como se especifica por la siguiente proposición: F<-A+8+l E es el símbolo para el complemento de 1de B. Al agregar1ai complementof c ' de 1, dará el complemento de 2 d,eB. Agregando A al complemento de 2 de \ B, se produ cirá A menos B.'i Las microoperaciones de incremento y decremento se simbolizan por una operación de más uno ó menos uno ejecutadas con los contenidos del registro. Estas microoperaciones se configuran con un contador creciente o decreciente respectivamente. Debe haber una relación directa entre las proposiciones escritas en un lenguaje de trasferencia entre registros y los registros y funciones digitales que se necesitan para su configuración. Para ilustrar esta relación, considérese las dos proposiciones: B
Tzi A<-Al
* |
Ts: A<-A Tabla
8-2
Microoperaciones aritméticas
Designación simbólica
Descripción Contenido de A más B se trasfiere a F Contenido de A menos B se trasfiere a F Se complementa el registro B (complemento de 1)
F<_A + B F<-A _ B B<_E B<-E+l F<-A+E+l A<-A+l A<-A-l
Formar el complemento de 2 del contenido del registro B A más el complemento de 2 de B se trasfiere a F Incrementar el contenido de A en 1 (cuenta creciente) Decrementar el contenido de A en 1 (cuenta decreciente)
RegistroB
¡umaoor paralelo (Fis.5-1)
S uma¡ T2
Ts Figura
8-9
Incrementa¡
RegistroA ( F i e .7 - 1 9 )
Corifiguración para las microoperaciones de suma e incremento
\
f
330 LOGICA DETRASFERENC EINAT R ER E G I S T R o S
C A P .8
La variable de tiempo T2 inicia una operación para sumar el contenido del registro B al contenido presente de A. La variable de tiempo ?, incrementa el registro A. EI incremento puede hacerse fácilmente con un contador y la suma de dos números binarios puede generarse con un sumador en paralelo. La trasferencia de la suma del sumador en paralelo al registro A puede activarse con una entrada de carga al registro. Esto indica que el registro es un contador con capacidad de carga en paralelo. La configuración de las dos declaraciones se muestra en el diagrama de bloque en la Figura 8-9. Un sumador paralelo recibe información de entrada de los r e g i s t r o sA y B . L o s b i t s s u m a d e l s u m a d o r p a r a l e l o s e a p l i c a n a l a s e n t r a das de A y la variable de tiempo T2 carga la suma al registro A. La variable de tiempo ?, incrementa el registro habilitando la entrada de incremento (o entrada de conteo como en la Figura 7-19). Nótese que las operaciones aritméticas de multiplicación y división no están listadas en Ia Tabla 8-2. La operación de multiplicación puede ser *, y representada por el simbolo lu división por un /. Estas dos operaciones son operaciones aritméticas válidas pero no se incluyen en el conjunto básico de microoperaciones. El único lugar donde estas operaciones pueden considerarse como microoperaciones es un sistema digital en donde se configuran por medio de los circuitos combinacionales. En tal caso, las señales que ejecutan estas operaciones se propagan a través de las compuertas, y los resultados de Ia operación pueden ser trasferidos a un registro de destino por medio de un pulso de reloj, tan pronto se propagan las señales de salida a través del circuito combinacional. En Ia mayoría de los computadores, la operación de multiplicación se ejecuta con una secuencia de microoperaciones de suma y desplazamiento. La división se ejecuta con una secuencia de microoperaciones de resta y desplazamiento. Para especificar la configuración de los materiales en tal caso, se requiere una lista de proposiciones que usan microoperaciones básicas de suma, resta y desplazamiento. Microope raciones lógicas Las microoperaciones Iógicas especifican operaciones binarias para una cadena de bits almacenados en los registros. Estas operaciones consideran cada bit en los registros separadamente y lo tratan como una variable binaria. Como ilustración, Ia microoperacióndel OR exclusivo se simboliza por medio de Ia proposición: F<_A@ B Esta especifica una operación lógica que considera cada par de bits en los registros como variables binarias. Si el contenido del registro A es 1010 y el del registro B 1100, Ia información trasferida al registro F es 0110: l0l0
contenidode A
I 100
contenido de B
0l l0
contenido de F .-A O B
q 'q S E C .8 - 3
31 S D E D E S P L A z A M T E t \3r O T M E T I C ALSO, G I C AY M I C R O O P E R A C I OANREIS
Hay 16 operaciones lógicas diferentes posibles que pueden reaiizars¿ con dos variables binarias. Estas operaciones lógicas se listan en la Taoi¿ 2-6. Todas Ias 16 operaciones pueden expresarse en términos de A\D. OR y complemento. Se adoptarán símbolos especiales para estas tres microoperaciones para distinguirlas de los símbolos correspondientes usados para expresar funciones de Boole. El símbolo v se usará para demostrar una microoperación OR y el símbolo A para denotar una microoperación AND. La microoperación complemento es la misma que el complemento de 1 y usa una barra encima de la letra (o letras) que denotan el registro. Usando eqtos--símbo.los, es posible diferenciar entre una micrgoperación lógr_cay una función de control (o"de Boole). Los símbolós para las cuatro microóperaciónes lógicas se sumarizan en Ia Tabla 8-3. Los últimos dos símbolos son para las microoperaciones de desplazamiento expuestas a continuación. Tabla
8-3
Microoperaciones lógicas y de desplazamiento
Designación simbólica
A<_F F<-A\/ B F<_A \B F<_A@B A<-shlA A <-shr A
Descripción Complementatodoslosbits del registroA MicrooperaciónO R lógica MicrooperaciónAND lógica MicrooperaciónOR exclusivaIógica a la izquierda RegistroA de desplazamiento a la derecha RegistroA de desplazamiento
Una razón muy importante para adoptar un símbolo especialpara la microoperaciónOR es diferenciarel símbolo * cuandose usa como un más aritmético en una operaciónlógica OR. Aunque el símbolo * tiene dos significados,"?s pbsible distinguirlos notando cuando ocurren los símbolos. Cuancloeste símbolo se presenta en una microoperación,denota un más aritmético. Cuando ocurre en una función de control (o de Boole) denota una operaciónlógica OR. Por ejemploen Ia declaración: Tr+Tr:
A<-A*B,
C<-D\/F
el { entre Tr y Tz es una operación OR entre dos variables de tiempo de una función de control. EI * entre A y B especificauna microoperación, de suma. La microoperaciónOR se distingue por el símbolo V entre los registrosD y F. Las microoperacioneslógicas pueden configurarsefácilmente con un grupo de compuertas.EI complementode un registro de n bits se obtiene de n compuertasinversoras.La microoperaciónAND se obtiene de un grupo de compuertasAND, cada una de las cuales recibe un par de bits de los dos registrosfuente. Las salidas de las compuertasAND se aplican a las entradas del registro de destino. La microoperaciónOR requiereun grupo de compuertasOR dispuestasde manera similar.
M i c r o o p e r a c i o n e sd e d e s p l a z a m i e n t o Las microoperacionesde desplazamientotrasfieren la información binaria entre registrosen los computadoresen serie. Se usan taÁui¿., ." dores en paralelo para operacionesaritméticas, lógicas "o-puiude control. Los registrospueden trasferirsea la izquierda o a l; de;e;ha.v No hay símbolos convencionalespara las operacionesde desprazamiento.En estó ribro, se adoptan los símbolosconvéncionalespara las operacior,., á" desplazamien_ to. 4n este libro, se adoptanlos símbolosshl y,ar p".u-r"s operaciones de desplazamientoa la izquierda y a la derecha.á.pu.tiuá-r't..^po. .juÁpr,o, A <- shl A,
,B<_ shr .B
son dos-microoperaciones que especificanun desplazamientode 1 bit a la izquierda-del registro A y r bit á Ia derechaa.r'r"gi.l;á-g. Br símborode ser el mismo en ambos lados de Iu fl.""h; ;;-o .r'u operación g:be :t^*l:,: oe lncremento. Mientras los bits. de un registro se desplazan,los flip-frops extremos reciben iiiformación de ra entrad" .ó.-ü-nl-nrp-ñ"p'e*tre-o ettá en la posición de extrema izquiérda áéi"-ie"giltro, "n duünte^ una operación de desplazamientoa la derechá.yen la posición de extrema izquierda durante una operaciónde desplazamientoa la izquierda. La információn t¡asferida a los flip-flops extremosno se especificapor los símbolos siL y rhr. por tan_ to, una proposición de una microoperaciónde desplazamiento debe estar acompañadacon otra microoperaciónque especificael valor de la entrada en serie del bit trasferido al flip-flop .itr.-ó. por ejemplo: A <--shlA,
A, <_An
e-sun desplazamiento-.circular que trasfiere el bit de la extrema izquierda desde An hasta el flip-flop ae ta extrema derecha ¿,.-n. manera similar: .B<- shr B,
An <- E
es una operaciónde desplazamientoa la derecha con el flip-flop de la ex_ trema izquierda A" recibiendoel valor del registro f a" i ¡it. 8-4
P R O P O S I C I O N ECSO N D I C I O N A L E S DE CONTROL
Es ,conveniente algu.nasveces especificar una condición de control por med-iode una proposicióncondicional en vez de una función de control de Boole. una proposiciónde control condicional se simboliza por medio de una proposición de si-entonces-portanto de la siguiente manera: P: sl (condición)entoncesImicrooperación(es)] por tanto I microoperación(es)] La proposición se interpreta de manera que si la condición de control, establecida entre paréntesis despuésde la palabra r;, es u"laua.ru, enton332
!F
l
SEC. 8-4
PROPOSICIONEC S O N D I C I O N A L E SD E C O N T B O ' 3 3 3
t encerrada entre ces se ejecuta la microoperación (o microoperaciones no es verdadera' la condición Si pálabra entonces. paréntesisdespuésde la pc)r tanto. De palabra la. de después listada se ejecuta la microopetu.iótt evento para cuaiquier ocurrir P debe de control función la forma, cualquier qu" ." haga. Si la partepor tanto f.alta,entoncessi la condición no es verei6Cütanada' dadera-rro*se -"'Lilpioposición que de control condicionales más una corrveniencia que claras mas proposiciones de la escritura habilita Esta ,r,a ,receridad. por una reescrita gente. ser Puede por la interpretar de fáciles más son proposiciónconvencionalsin la forma si-entonces-portanto' Como ejemplo, considéreseIa proposiciónde control condicional: ? z : s i ( C : 0 ) e n t o n c e (sF *
1 ) p o r t a n t o( F * 0 r
Se asume que F es un registro de 1 bit (flip-flop) qr¡e puedeser puesto a 1 o borrado. Si el registro C es un registro de 1 bit, Ia afirmacion es equlvalente a las dos proposicionessiguientes: C'Tr: F<- I CTt: F<--0 Nótese que la misma variable de tiempo puedeocurrir en dos tuncionesde La variable C puedeser 0 ó 1; por tanto soiamenteuna control separadas. de las ,oi"rooperu.ionesse ejecutan durante T2 , dependiendodel valor de C. si el registro c tiene más de un bit, la co¡dición c_: 0 significa que todos tos ¡itl ae C debenser 0. Al asumir que el regisuo f' tiene cuatro bits Cr, Cr, Cz y Ca la condición para C:0 puede ser expresadacon una funcióir de Boole: x : CíClCáCl: (C, + c2 + c3 + cl)' La variable r puede ser generadacon una compuerta \oR. usando la definición de r como ." ..Iublu"ió, la proposicióndel control condicional es equivalentea dos ProPosiciones: xTr:
F <- I
x'Tr:
lf<- 0
La variable¡: 1 si C:0 peroes igual a 0 si C I 0' Cuando se escribenproposicionesde control condicional,se debe tener parte en cuenta que la proposiiión establecidadespuésde la palabra sl, es La microoperación. de proposición parte la y de no de la función de cbntrol un con poder configurarse y debe claramente establecerse debe condición circuito combinacional.
.; .l
¡ ,i
.: 'i
.'.'
8-5
DATOS BINARIOS DEL PUNTO FIJO
La información binaria encontrada en los registros representa datos o in.r-ormaciónde control. Los datos son operando-sy otros^elementos discretosde información con los cuales se opera para lograr los resultados requeridos. La información de control es un bit o g*lpo de bits que especifican Ias-operaciones que se van a ejecutar. una u"iaa¿ de info¡mación de con_ trol almacenada en los registros de computador digital se llama instruc_ ción. y es un código binario que especifica las opeia"io.r". que se van a realizar con los datos acumulados. Los códigos dé instrucción y su representación en los registros se presentan en la Sección g-11. Al final de^las siguientes secciones se presentan algunos tipos comunes de datos y su representación.
¡/
Representación del signo y el punto radical Un registro con n flip-flops puedc almacenar un número binario de n bits; cada flip-flop repres_entaun dígito binario. Este representa Ia magnituá del número pero no da información acerca de su signo o la posición de"lpunto binario. El signo se necesita para operacioneÁ aritméiicas yu q.ré ."presenta cuando el número es positivo o negativo. La posición del punto decimal es necesaria para representar enteros, fracciones o números enteros y fraccionarios mezclados. El signo de un número es una cantidad discreta de información que tiene dos valores: más o menos. Estos dos valores pueden ser representados por un código de un bit. La convenció-nqs representar un más cor .r., 0 y u.n menos.con un L Para representaru.t númÁro binario con signo, se necesitan n: k + 1 flip-flops, k de ellos para la magnitud y uno para almacena¡ el signo del número. La representación del punto binario se complica por el hecho de que éste se caracteriza por una posicíón entre los dos flip-flops en el registio. Ha}' dos maneras p-osibles de especificar la posición iel iunto binario en un registro: dándole una posición de punto /ryo o empleando una representación de punto flotante. El método del punto fijo aiume que el prr.,to blrario está siempre fijo en un posición. Las dos posiciones más uJadas son ' L' un punto binario en el extremo izquierdo clel registro para hacer del sumero almacenado una fracción, y (2) un punto binario en el extremo del registro para hacer del número almacenado un entero. En ambos casos el punto binario no es_visible físicamente, pero se asume a partir del hecho de que el número almacenado en el registro se trata .,.r, fracción o como un entero. La representación del punto flotante"ornó usa un segundo registro para aimacenar un número que designa la posición del punlo binario en el primer registro. La representación áel punto flotante ie explica en l a S e c c i ó n8 - 9 . Números binarios con signos cuando un número binario de punto fijo es positivo, el signo se representa como 0 y la magnitud por un número binario positivo. cua-ndo el número es 334
+
I
1 S E LP U N T OF I J O3 3 5 D A T O SB I N A R I OD
sEc.8-5
njgglyg el signo se representa por un 1 y el resto del número puede ser répiásariiado por cualquiera de Las tres maneras siguientes. Estas son: 1. Signo-magnitud. de 1. 2. Signo-complemento de 2. 3. Signo-complemento En la representación de la magnitud del signo, ésta se representa por un número binario positivo. En las otras dos representaciones, el número estará en complemento de 2 ó de 1. Si el número es positivo, las tres representaciones son iguales. Como ejemplo, el número binario 9 se escribe a continuación en tres modalidades. Se asume que se dispone de un registro de 7 bits para almacenar el signo y la magnitud del número.
+9 Signo-magnitud
0 00100r
-9 I 001001
S i g n o - c o m p l e m e n t o d e l0 0 0 1 0 0 1
I ll0ll0
S i g n o - c o m p l e m e n t o d e 20 0 0 1 0 0 1
I ll0lll
Un número positivo en cualquier representacióntiene un 0 en el bit de la extrema izquierda para un más, seguidode un número binario positivo. Un número n"gutino silmpre tiene un 1 en el bit de la extrema izquierdapara un menos, pero los bits de magnitud se representanen forma diferente. En la repreientación de signo-magnitud,estos bits son el número positivo; en la representacióndel complementode 1, estos bits son el compleménto del nümero binario; y en Iá representacióndei complementode 2, el número está en su forrna de complementode 2. La clara representacióndel signo-magnitudde - 9 se obtiene de * 9 (0001001).o^pi"rn".,tando solamente el bit del .signo' La reprresentación de signo-compiementode i de - 9 !" obtiene gomplementandofodos.los de bits de 00g1001(+g), incluyendoel bit del signo- La representación númede 2 del complemento el obteniendo de 2 se logra signo-co¡nplemento ro positivo, íncluyendosu bit de signo. Suma aritmética La razón para usar la représentaciónde signo-complementopara los números tt"gátinot se hará aparente una vez se consideren los diferentes pu.o, p"tá formar la suma de dos números con signo. La representación de signo-magnitud es la que más se usa en los cálculos cotidianos. Por ejemplo, ^det +iS V -3b son representadoscon un signo seguidopor la magninúmeio. Para sumar estas dos funciones' es necesariorestar Ia tud magnitud menor de la magnitud mayor y usar el signo del número mayor -23): - 12' EI corio el signodel resultado,es decir 11-23)a 1-35): - (35
3 3 6 L o G I c AD E T R A S F E R E N C EINAT R ER E G I S T R o S
cAP. 8
proceso de sumar dos núme¡os con signo, cuando los números negativos están representados_9n-la forma de signo-magnitud, requiere que se comparen estos signos. Si los dos signos no son iguales, se óo*pu.án las magnitudes relatir-asde los números y luego se resta el menor-del mayor. ñs necesa¡io determinar tamtlién el signo del resultado. Este es un proceso q u e r e q u r e r e u n a s e c u e n c i a d e d e c i s i o n e sd e c o n t r o l d e l a misma que cir_ cultos que puedan co-mparar, sumar y restar números, cuando ." con materiales digitales. "orrfigu.u compárese ahora el procedimiento anterior con el procedimiento que forma la suma de dos números binarios con signo, los números neg a t i r o - r e s t á n r e p r e s e n t a d o se n l a f o r m a d e c o m p l e".ru.rdo mento de 1ó 2. Estos procedimientos son muy simples y pueden fo¡mularse de la sizuiente ma_ nera: 5u¡no representada por signo-complementr¡ de 2. La suma de dos números binarios con signo y los números negativos representados por sus complementos de 2 se obtienen de Ia suma de dlos números con sus bits de signo incluidos. se descarta el arrastre en el bit más significativo (signo). .\umo representada por sígno-complemento de 1. La suma de dos números bina¡ios con números negativos representados por sus complementos de 1, se obtienen de la suma de dos númeios, con sus bits de signo incluidos. si hay un arrastre del bit más significativo (signo), el resultado se incrementa en 1 y el arrastrJ se descarta. Los ejemplos numéricos para la suma con números negativos, representados por su complemento de 2, se muestran a continuáción. Nóiese que dos números negativos deben estar inicialrhente representad,ospor s, complemento de 2 y que la suma obtenida después de ü adición estará s i e m p r e c o n l a r e p r e s e n t a c i ó na d e c u a d a .
+
6
0 000110 -r+
+
9
+15
0 001001
+
0 00lllr
+3
6
I il1010 F
9
0 001001
0 0 0 0 0 1-1, 9
I Il0lll
9
000110* ,+ ll0lll ¡
9
l Il0lll
3
I llll0l * rt
18
I l0lll0
+6
\
Los dos números de los cuatro ejemplos se suman, con sus bits de signo incluidos. cualquier arrastre del bit de signo se descarta y los resul_
I
4 D A T O S B I N A R I O SD E L P I J \ T O F , ]
sEc S-5
33-
tados negativos se producen automáticamente en la forma de compien:e:.: de 2. Los cuatro ejemplos se repiten a continuación con los números negativos representados por su complemento de 1. El arrastre del bit de signo se regresa y agrega al bit menos significativo (arrastre final lleva final de reinicio).
0001l0 + 001001
+6 +9 +15
l lll00l
6
0 001001
+9
C':
0 00llll
+3
0 00001l
I
0001l0
9
I ll0ll0
9
I l0ll0
9
I I10110
3
I llll00
+6
¡tt \-l -18
t}tt00 I l0l l0l
La ventaja de la representación en la fbrma de signo-complemento de 2 sobre la forma signo-complementode 1(y la forma signo-magnitud) es que la primera contiene solamente un tipo de cero. Las otras dos representacionestienen ambas un cero positivo y un cero negativo. Por ejemplo, agregándo * 9 a - 9 en la representación de complemento de 1, se obtiene:
+9 -9
0 001001
-0
l llllll
I ll0ll0
y e l r e s u l t a d o e s u n c e r o n e g a t i v o , e s d e c i r , el complemento de 0 000000 (ceropositivo). IJn cero con su bit de signo asociado aparecerá en el registro en una de las siguientes formas dependiendo de la representación usada para números negativos:
338
I
L O G I C AD E T R A S F E R E N C IEAN T R ER E G I S T R O S
+0
CAP. 8
-0
En signo-magnitud
0 0000000
l 0000000
En signo-complemento de 1
0 0000000
l illllll
En signo-complemento de 2
0 0000000 ninguna Ambas representaciones de signo-magnitud y complemento de 1 tienen asociadas con ellas la posibilidad de "r.r negativo. La representación del "".o un cero positivo. .signo-complemento de 2 tiene solamente Esto ocurre debido a que el complemento de 2 de 0 000000 ("".n pá.itiro) 0 000000 y puede ser obtenido del complemento de 1 m á s t ( e s d e c i . 1 1 1".1 1 1 1 * 1 ) t e niendo en cuenta que se descarta el arrastre final o lleva final de reinicio. El rango de los números enteros binarios q"" pr"aarr^r". u"orrrodados en un registrode n:&+t u r t e s - r ( 2 É - 1 ) , d o n d e s e r e s e r v a n& b i t s p a r a el. número y un bit para el signo. u.r regisiro s ¡it, lu.a" almacenar números binarios en el rango á" * 127. Sin embargo, como la 12, _ 1) : -+"o" representación de signo complemento de 2 tiene soramente un cero, debe acomodar un número_más que las otras dos represe";¿;;;;r. considérese la representación de los números mayores y menores: Signo complemento de 1
*126:0 llllll0 +127:0 lllllll + 128(imposible)
- 126: I 0000001 -127 : I 0000000 - 128(imposible)
Signo complemento de 2
r 0000010 l 0000001 I 0000000
En la representación .de signo-complementocre 2, es posibre representar - 128 con ocho bits. En general, la representaciónde sig.ro-complemento de 2 puede acomodarnúmeros en er rango + (20- 1) a - 2k, d.ond.e h: n - I y n es el número de bits en el registro. Sustracción aritmética La sustracción de dos números binarios con signo, cuando los números negativosestán en la f913g de complementode i, .i ;;t;imple y puede exponersecomo sigue:.obténgaseel complementode z dél susiro"Á¿b6r_ cluyendoel signo de bit) y súmeseaL minuend,o(incruyenio et bit de sig)o). Este procedimientohace uso der hecho que ;"; ;ñr;;;ón de resta pue_ de cambiarsea una operaciónde suma si!eeliigno ¿et^.ust.aerrdo se cambia. Esto se demuestrapor Ias siguientesrelaciones(B es er sustraendo): (!A)-(-B):(t.q)+(+r) (t¿) - (+ B) : (tA) + (_ B) cambiar un número positivo a un número negativo se hace fácilmente tot"1q9 el complementode 2 (incluyendo el blt a" sig.,oj. Lo contrario es también verdad, por.queel complementodel ar número a su valor original. "o."pi"."É"1á'.Jgr".u
I
¡
S E C .8 - 6
39 S O B R E C A P A C I D3A D
L a s u s t r a c c i ó n c o n n ú m e r o s e n c o m p l e m e n t od e 1 e s s i m i l a r . e r c e D l { ' por el arrastre final o lleva final de reinicio. La sustraccion con signtr-n,-gnitud requiere que solamente el bit signo del sustraendo se complemente. La suma y resta de los números binarios en la representaciónde signomagnitud se demuestra en Ia Sección 10-3. Debido a que el procedimiento más sencillo para sumar ¡' restar números binarios con números negativos lo constituye la forma de signocomplemento de 2, la mayoría de las computadoras adoptan esta representación sobre la forma más familiar de signo-magnitud. La razón por la cual e l c o m p l e m e n t o d e 2 s e e s c o g e ,e n v e z d e l c o m p l e m e n t o d e 1 . e s p a r a e v i t a r el arrastre final o lleva final de reinicio v la ocurrencia de un cero negativo.
8-6
SOBRECAPACIDAD
Crrando dos números con n dígitos cada uno se suman y la suma ocupa n f 1 d í g i t o s , s e d i c e q u e h a y u n d e s b o r d a m i e n t o p o r s o b r e c a p o c i d o d .E s t o es verdadero para los números binarios o números decimales con o sin signo. cuando se hace una suma con lápiz y papel, una sobrecapacidad ,rtt problema ya que no hay limitaciones por el ancho de la página no ". escribir la suma. Una sobrecapacidad es un problema en un computapara dor digital ya que las longitudes de todos los registros, inclul-endo todos los registros de memoria son de longitud finita. Un resultado de n -t I bits no puede acomodarse en un registro de longitud normalizada n. Por esta razón, muchos computadores comprueban Ia ocurrencia de la sobrecapacidad y cuando esto ocurre, ponen a 1 el flip-flop de sobrecapacidad para que el usuario verifique. un sobrecapacidad no puede ocurrir después de una suma si un número es positivo y el otro es negativo ya que agregando un número positivo a un número negativo produce un resultado (positivo o negativo), el cual es menor que el mayor de los dos números originales. Una sobrecapacidad puede ocurrir si los dos números se suman y ambos son positivos o ambos negativos. Cuando se suman dos números representados en signo-magnituá, se puede detectar fácilmente una sobrecapacidad por el arrastre o el número de bits. Cuando se suman dos números representados en signocomplemento de 2, el bit signo se trata como parte del número pero no necesariamente indica una sobrecapacidad. El algoritmo para sumar dos números representados por signo-complemento de 2, como se ha establecido antes, produce un resultado incorrecto cuando sucede una sobrecapacidad. Esto ocurre debido a que una sobrecapacidad de los bits del número cambian siempre el signo del resultado y se causa una respuesta errónea de n bits. Para observar cómo ocurre esto, considérese el siguiente ejemplo: dos números binarios con signo 35 y 40 se almacenan en dos registros de ? bits. La capacidad máxima del r e g i s t r o e s ( 2 8 - 1 ) : G 3y l a c a p a c i d a d m í n i m a e s - 6 t j : * 6 4 . C o m o l a s u ma de los números es ?5, esta excede la capacidad del registro. Esto es valedero si los números son ambos positivos o negativos. Las operaciones en binarios se muestran a continuación conjuntamente con los dos últimos arrastres de la suma:
rf i I
3 4 O L o G I c A D E T R A S F E R E N C IEAN T R ER E G I S T R o S
arrastre: 0
+35 +40
I
0 10001I 0 10r000
CAP. 8
arrastre:
-35 -40
l0
*75
I 0lrl0l I 0l 1000 0 l l0l0l
En amb.s casos, se observa que el resultado de T bits, que debería ser pos i t i ' t ¡ . e s n e g a t i v o o v i c e v e r s a . o b v i a m e n t e , l a r e s p u e s t ab i n a r i a e s i n c o rrecta v el algoritmo para sumar números binarios representados en la to¡ma de complemento de 2, como se ha establecido antes, falla en producir : e s u l t a d o s c o r r e c t o s c u a n d o o c u r r e u n a s o b r e c a p a c i d a d .N ó t e s e q u e s i e l arrastre que se ernana de la posición del bit de signo se toma como el signo del ¡esultado, entonces los 8 bits de la respuesta serán correctos. Lina condición de sobrecapacidad puede ser detectada observando el rrrasire c lo posición del bit del signo y el arrastre de la posición del bit oel signo. Si estas dos categorías no son iguales, se producen condiciones ' i e s ' r b ¡ s c ' ¿ p a c i d a dE. s t o s e i n d i c a e n e l e j e m p l o a n t e r i o r e n e l c u a l s e m u e s I fan explícitamente las dos categorías. El Iector puede tratar varios e,emplos de números qué no producen una sobrecapacidad para observar cue estos dos arrastres se convertirán ambos en 0 ri 1. Si estos se aplican a u n a c o m p u e r t a O R e x c l u s i v a , s e d e t e c t a r á u n a s o b r e c a p a c i d a dc u a n d o i ¿ ls a l i d a d e i a c o m p u e r t a e s 1 . La suma de dos números binarios con signo, cuando se representan Lrs numeros negativos en la forma de signo y complemento de 2, se configi.rracon funciones digitales como se muestra en la Figura 8-10. El registro .f aimacena un sumando con su bit de signo en la posición ,4". EI regist r o B ¿ r l m a c e n ae l o t r o s u m a n d o c o n s u b i t d e s i g n o e n B n . L o s d o s n ú m e r o s s e - q u m a np o r m e d i o d e u n s u m a d o r e n p a r a l e l o d e n b i t s . E l c i r c u i t o sumador completo (FA) en la etapa n (los bits de signo) se muestra explícitamente. El arrastre que va a este sumador completo es C, . El arrastre
Figura
8-lO
Suma de números en signo-complemento de 2
AR DESPLAZAMIENTO S I T M E T I C O3S4 l
sEc.8-7
que sale del sumador €S C,11. La función OR exclusiva de estos do= arrastres se aplica a un flip-flop de sobrecapacidad V. Si despues de ia sun-ra. hav una :''hreV:0, entonces la suma cargada en A es correcta. Si y:1. capacidad y la suma de n bits es incorrecta. El circuito mt'st¡ado en ia F i g u r a 8 - 1 0 p u e d e e s p e c i f i c a r s ep o r m e d i ó d e l a s i g u i e n t e p r . p r 5 ¡ 6 ¡ q ¡ ' T:
V<-C,OC,*t
A<-A+8,
1
.t . l
r
I
.:
¡ I
1
L
Las variables de la declaración se definen en Ia Figura 8-10. \otese que las variables C, y Cn+r no representan registros, ellas representan arrastres del sumador paralelo.
8-7
AS RITMETICOS DESPLAZAMIENTO
Un desplazamiento aritmético es una microoperación que mueve un número binario con signo a la izquierda o a la derecha.Un movimiento aritmético a la izquierda multiplica un número binario con signo por 2. Un movimiento aritmético a la izquierda divide el número por 2. Los desplazamientos aritméticos deben dejar el signo sin cambio al3rno ¡'a que el signo del número permanece igual cuando se multiplica o dir ide por 2. El bit de la extrema izquierda de un registro almacena el bit del signo y los bits restantes almacenan el número. La Figura 8-11 muestra un registro de n bits. El bit A" de la extrema ezquierda mantiene el bit del signo y se designa como A(S). Los bits del número se almacenan en la parte del registro designada por A(N). A1 se refiere al bit menos significativo, An , se iefiere a la posición más significativa de los bits del numero, y A se refiere al registro entero. n
I
n- I AW\
,4(S)l
n Registro A
Bit del Bits del número sigrro Figura
8-ll
Registro que define A para desplazamientos aritméticos
Los números binarios de punto fijo pueden ser representados de tres maneras diferentes. La manera de desplazar el número almacenado en un registro es diferente para cada representación. Considérese primero un desplazamiento aritmético a la derecha que divide el número por 2. Este puede simbolizarse por cualquiera de las siguientes proposiciones :
A(N)<-shrl(N),
An-t+0
A <- shrA, l(S) <- l(S)
parasigno-magnitud
l 2) para signo-complemento de 1 o signo-complemento
En la representación de signo-magnitud, el desplazamiento aritmético a la derecha requiere un movimiento de los bits del n{rmero con un 0 colocado
I
342
L O G I c A D E T R A S F E R E N C IEAN T R ER E G I s T R o S
CAP. 8
en la posición más signiiicativa. Ei bit del signo no se afecta. En la representación de signo-complementode 2 ri de 1. todo el registro se desplaza mientras que el bit del signo permanece inalterado. Estri se debe a que para un número positivo se debe colocar un 0 en la posicirin más significativa y para un número negativo se debe colocar un 1. Los sisuientes eiemolos numéricos ilustran el procedimiento.
Númeropositivo
* 12: 0 0l 100
*6:
0 001l0
Signo-magnitud
- 12: I 0l 100
-6:
I 00110
S i g n o - c o m p l e m e n t od e 1
- 12: I l00i I
-6:
I I l00l
-6:
I I l0l0
Signo-complementode2 -12:
I 10100
En cada caso el desplazamientoaritmético a la derecha del 12 produce un 6 sin alterar el signo. Para números positivos, el resultado es ei mismo en t o d a s l a s t r e s r e p r e s e n t a c i o n e s .u n n ú m e r o e n s i g n o - m a g n i t u d , p o s i t i v o , n e g a t i v o , o c u a n d o e s d e s p l a z a d o ,r e c i b e u n 0 e n l a p o s i c i ó n m á s s i g n i f i c a tiva. La posición más significativa recibe ei bit del signo en las dos repres e n t a c i c i n e sd e s i g n o - c o m p l e m e n t o .E l ú l t i m o c a s o e s l l a m a d o a l g u n a s v e c e s d e s p L a z a m i e n t ac o n e x t e n s i ó n d e s i g n o . considérese ahora el desplazamiento aritmético a ia izquierda que multiplica el número por 2. Este puede simbolizarse por cualquiera de ias s i g u i e n t e s p r o p o s i c i o n e s: A(N) <- shll(N), A < - s h lA ,
A, <-0
A, <- A(S)
A<-shlA, Ar<-0
para signo-magnitud p a r a s i g n o - c o m p l e m e n t od e I para signo-complemento de 2
E n l a r e p r e s e n t a c i ó nd e s i g n o m a g n i t u d , I o s b i t s d e l n ú m e r o s e d e s p l a z a n a la izquierda con un 0 colocado en la posición menos significativa. En ia cle signo-complementode I todo el registro se desplaza v el bit del signo s e c o l o c a e n l a p o s i c i ó n m e n o s s i g n i f i c a t i v a . E I s i g n o - c o m p l e m e n t od e 2 e s . i m i l a r . e x c e p t o q u e u n 0 e s d e s p l a z a d oa l a p o s i c i ó n m e n o s s i g n i f i c a t i v a . C ' o n s i d é r e s ee l n ú m e r o 1 2 d e s p l a z a d o a l a i z q u i e r d a p a r a p r o d u c i r 2 4 : Número positivo
0 0l100
0 11000
Signo-magnitud
l 0l100
I 11000
Signo-complementode1 I 1001I
I 001l1
Signo-complementode2 I 10100
l 01000
un número desplazadoa la izquierda puede causar que ocurra un desbordamiento por sobrecapacidad.LIna sobrecapacidadocurrirá despuésdel desplazamientosi existe la siguiente condición r¿nte.s del desplazarniento: An-l
:
I
A,@An_1:l
para slgno-magnrtuct para signo-complemento de 1 o signo-complemento de 2:
q D A T O SD E C I M A L E S3 4 3
sEc.8-8
En el caso de signo magnitud, se desplazay desapareceun 1 de la posición ocurrirá la sobrecapamás significativá. En el caso de signo-complemento, no es igual al bit más significativo.concidad si el bit de signoA,:A(s), sidéreseel siguiente ejemplo numérico con númerosde signo-complemento de 2: -9: I 0l l0 Valor inicial Valor inicial 9: 0 l00l desplazamiento -2: a la izquierda
I 0010
desplazamiento a la izquierda
1-2: 0 ll0l
El desplazamiento a la izquierda debería producir 18, pero como el signo original se pierde, se obtiene un resultado incorrecto con una inversión de s i g n o . S i e l b i t d e s i g n o d e s p u é sd e l d e s p l a z a m i e n t o n o e s e l m i s m o q u e e l -signo d e s p u é s d e é 1 , o c u r r i r á u n a s o b r e c a p a c i d a d .E l r e s u l t a d o c o bit de rrecto será un número de n + 1 bits, con el bit de la posición (n + 1) conten i e n d o e l s i g n o o r i g i n a l d e l n ú m e r o e l c u a l d e s a p a r e c i ód e s p u é sd e l d e s p l a zamiento.
8-8
D A T O SD E C I M A L E S
La representación de números decimales en los registros es una función del código binario usado para lepresentar un dígito decimal. Un código decimal de 4 bits, por ejemplo, requiere cuatro flip-flops para cada dígito decimal. La representación de * 4385 en BCD requiere al menos i7 flipflops: un flip-flop para el signo y cuatro para cada dígito. Este número se representa en un registro con 25 flip-flops de la siguiente manera:
85
+0043 0000000000
I 0000
I I I 0000
I 0 I
Al representar los números en decimal, se desperdicia una cantidad considerable de espacio de almacenamiento, ya que el número de flip-flops n e c e s a r i o sp a r a a l m a c e n a r u n n ú m e r o d e c i m a l e n c ó d i g o b i n a r i o e s m a y o r que el número de flip-flops necesarios para su representación binaria equiv a l e n t e . T a m b i é n , l o s c i r c u i t o s r e q u e r i d o sp a r a r e a l i z a r a r i t m é t i c a d e c i m a l , son mucho más complejos. Sin embargo, hay algunas ventajas en el uso de la representación decimal, principalmente porque los datos de entrada y salida del computador son generados por personas que siempre usan el sistema decimal. Un computador que usa representación binaria para operaciones aritméticas, requiere conversión de datos de decimal a binario antes de realizar cálculos. Los resultados binarios se deben convertir de nuevo a decimales para Ia salida. Este procedimiento consume tiempo; v a l e I a p e n a u s a r l o e n l a s i t u a c i ó n e n q u e l a s o p e r a c i o n e sa r i t m é t i c a s s e a n enormes, como en el caso de aplicaciones científicas. Algunas aplicaciones, tales como procesamiento de datos de negocios, requieren pequeñas cantidades de cálculos aritméticos. Por esta razón, algunas computadoras
,.j
I
, i
1
I 't
344
L O G I C AD E T R A S F E R E N C IEAN T R ER E G I S T R O S
CAP. 8
realizan cálculos aritméticos directamente con datos decimales (en código binario) para así eliminar la necesidadde conversióna binario y de nueio a decimal. Los sistemasde computadoresde gran escala comúnmentetienen componentes para realizar cálculos aritméticos en representación binaria y decimal. El usuario puede especificar mediante instrucciones programadas,si el computador va a realizar cálculos en datos binarios o decimales.Un sumadordecimal se introdujo en la Secciónb-3. Hay tres maneras de representar números decimales negativos de punto fijo. Ellas son similares a las tres representaciones de un número binario negativo, exceptopor el cambio del radical: 1. Signo-magnitud. 2. Signo-complemento de 9. 3. Signo-complementode 10. un número decimal_positivose representapor un 0 (para el más) seguido por Ia magnitud del número para todas las tres représentaciones. EJ con respecto a Ios números negativos que difieren lal representaciones.El signo de un número negativo se representapor un 1 y lá magnitud del número es positiva en la representaciónde signo-magnitud. En las otras dos representacionesla magnitud se represettlapo. ál complementode g y de 10. El signo de un número decimal se toma argunasvecescomo una cantidad de_4 bits para estar acorde con la repre*sentación de 4 bits de los dígitos. Es costumbre representarun más con cuatro ceros y un menos g, es decir, 1001.En esta forma todos los procon el equivalente PP9 ¿" cedimientos desarrolladospor los números de signo-complementode 2 se aplican también a los números de signo-compleirentoaé ro. La suma se hace agregandotodos los dígitos incluyendo Lt aigito del signo y descartando el arrastre final o ileva finar de reinicio. por e:jemplo, 3Tb (_ 240) + + se hace con la representaciónde signo-complementoaL rb ae la siguientó manera:
o 375 f
9 760 0 135 E_ el segundonúmero representaun menosy 260 es el complementode ] ? 10,de"" Se ^240. .detectauna sobrecapacidad".r "ttu representacióna partir del uR exclusiva de los arrastres que entran y salen de la posición áe los dígitos del signo. Las operacionesaritméticas decimales pueden usar los mismos sím, bolos que las operacionesbinarias siemprey óuandola base de los números se entienda como 10 en vez de 2. La proposición: A<-A+B+l
DATOS DEL PUNTO FLOTANTE345
SEc, 8-9
puede usarsepara expresarla adición del número decimal almacenadoen q.l registro A con el complementode 10 del número decimal en el registro B. B en este casodenota el complementode 9 del número decimal. Los desplazamientosaritméticos son aplicablestambién a los números decimales exceptoque un desplazamientoa la izquierda correspondea la multiplicación por 10 y un desplazamientoa la derecha a una división por 10. El signo-complementode 9 es similar al signo complementode 1 5' la representación sigrro-magnituden ambas representacionesde radicales tienen procedimientos aritméticossimilares. Si la adopción de símbolossimilares para Ias operacionesbinarias y decimales no fueran aceptables,sería necesarioformular símbolosdiferentes para las operacionescon datos decimales.Algunas veces,las operaciones de registro-trasferenciase usan para simular el sistema por medio de un programa de computador.En tal caso los dos tipos de datos pueden especificarsepor declaracionescomo se hace en los lenguajesde programación. 8-9
DATOS DEL PUNTO-FLOTANTE
La representacióndel punto flotante de los númerosnecesitados registros. El primero representaun número con signo de punto fijo y el segundola posición del punto del radical. Por ejemplo, Ia representacióndel número decimal + 6132.789es de la siguiente manera: sisnol
I
punto decimal inicial
_l
signo
E
primer registro (coeficiente)
segundoregistro (exponente)
El primer registro tiene un 0 en la posición del flip-flop más significativo para denotar un más. La magnitud del número se almacena en un código binario de 28 flip-flops, con cada dígito decimal ocupando 4 flip-flops. El número en el primer registro se considera una fracción, de manera que el punto decimal en el primer registro se fija a la izquierda del bit más significativo. El segundo registro contiene el número decimal + 4 (en código binario) para indicar que Ia posición actual del punto decimal es cuatro posiciones, decimales a la izquierda. Esta representación es equivalente al número expresado como una fracción multiplicada por 10 a una potencia dada, es decir, a 6132.789se representa como + .6132789X 10+4. Debido a esta analogía, el contenido del primer registro se llama coeficiente (y algunas veces mantisa o parte fraccionaria) y el contenido del segundo registro se llama exponente (o característica). La posición del punto decimal actual, puede estar por fuera del rango de los dígitos del registro del coeficiente. Por ejemplo, asumiendo una representación de signo-magnitud, el sigrriente contenido:
.. ii:
,;j
346
L o G I C A D E T R A S F E R E N C IEAN T R ER E G I S T R o S
02601000 coeficiente
CAP. 8
E xponente
representa el número + .2601000X 10-a : * .000026010000, Ios cualesproducen cuatro ceros de más a la izquierda. Por otra parte, el siguiente contenido:
t2601000 coeficiente
exponente
representa el número - .2601000X10t2: - 260100000000, lo cual produce cinco ceros de más a la derecha. En estos ejemplos, se asume que el coeficiente es una fracción de punto fijo. Algunos computadores lo asumen como un entero, de manera que el punto decimal inicial en el registro del coeficiente está a la derecha del dígito menos significativo. Otra disposición usada para el exponente es quitar del todo su bit de signo y considerar el exponente como "polarizado". Por ejemplo los números entre 10+4e y 16-;o pueden representarse con un exponente de dos dígitos (sin el bit de signo) y una polarización de 50. El registro del exponente siempre contiene el número E + 50, E es el exponente actual. La sustracción de 50 del contenido del registro dará el exponente deseado. En esta forma, los exponentes positivos se representan en el registro en el rango de números entre 50 a gg. La sustracción de 50 dará los valores positivos desde 00 hasta 49. Los exponentes negativos se representan en el registro en el rango de 00 hasta 49. La sustracción de 50 da los valores negativos en el rango de - 50 a - 1. Un número binario de punto flotante se representa de manera similar con dos registros, uno para almacenar el coeficiente y el otro para el exponente. Por ejemplo el número + 1001.110puede representarse de la siguiente manera:
signo¡- punto binario inicial tt
r t
SIEI]O
0100111000 coeficiente
exponente
El registro del coeficientetiene 10 flip-flops: una para el signo y nueve para la magnitud. Asumiendo que el coeficiente es una fracción de punto fijo, el punto binario actual es cuatro posicionesa la derecha,de manera que el exponentetiene el valor binario -| 4. EI número se representaen binario como .100111000X 10r00 (recuérdeseque 10roo en binario es equivalenteal decimal 2a).
S E C .8 . 9
I l l p u n t o d e c i m a l s e i n t e r p r e t a e n l a r e p r e s e n t a c i ó nd e u n ia siguiente manera: c.rdonde c representa el contenido del registro coeficiente y e el contenido del registro exponente. El radical (base) r y la posición del punto radical en el coeficiente se asumen siempre. Considérese por ejemplo, un computador que asume representación de ettteros para el coeficiente y base 8 para e l e x p o n e n t e .E l n ú m e r o o c t a l + 1 7 . 3 2 : + 1 1 3 2 X 8 ' ' 2 s e v e r á c o m o s i g u e : srgno t
f
srgno
-t
l0r732l Punto octal inicial I coeficiente
exponente
C u a n d o l a r e p r e s e n t a c i ó no c t a l s e c o n v i e r t e a b i n a r i a , e l v a l o r b i n a r i o d e l registro se convierte en:
000llll0ll0l0 coeficiente
1000010 exponente
Un número de punto flotante se dice que es normalizado si la posición más significativa del coeficiente contiene un dígito diferente de cero. De esta forma el coeficiente no tiene ceros por delante y contiene el máximo número posible de dígitos significativos. Considérese por ejemplo un registro coeficiente que puede acomodar cinco dígitos decimales y un signo, El número + .00357X 103 : 3.57 no es normalizado porque tiene dos ceros por adelante y el coeficiente no normalizadr¡ tiene una precisión hasta de tres dígitos significativos. El número puede normalizarse desplazando el coeficiente dos posiciones a ia izquierda y disminuyendo el exponente en 2 para obtener: +.35700X 10t :3.5700, el cual tiene una precisión hasta cinco dígitos significativos. Las operaciones aritméticas con una representación de números de punto flotante son más complicadas que las operaciones aritméticas con números de punto fijo y su ejecución se demora más tiempo y requiere materiales más complejos. Sin embargo, la representación de punto flotante es más conveniente debido a los problemas de graduación envueltos en las operaciones de punto fijo. Muchos computadores tienen una capacidad interna para realizar operaciones aritméticas de punto flotante. Aquellos que- n0 tienen esta facilidad se programan usualmente para operar de este mooo. Sumar o restar dos númert-rs en representación de punto flotante requiere primero una aiineación del punto del radical, ya que ia parte expo-
I
I
3 4 8 L o G I c AD E T R A S F E R E N C EINAT R ER E G I S T R o S
cAP. 8
nencial debe hacerse igual antes de que los coeficientes se sumen o resten. Esta alineación se hace desplazandoun coeficiente mientras que su exponente se ajusta hasta que sea igual al otro exponente. La multiplicación o división de punto flotante no requiere aiineación del punto del radical. El producto puede formarse multiplicando los dos coeficientes y agregando los dos exponentes. La división se logra de la división con los coeficientes y la sustracción del exponente del divisor menos el exponente del dividendo.
8 - 1 O D A T O SN O N U M E R I C O S Los tipos de datos considerados hasta ahora representan números que el computador usa como operandos para las operaciones aritméticas. Sin embargo, un computador no es una máquina que sólo almacena numeros y hace aritmética a alta velocidad. A menudo, un computador manipula símbolos en vez de números. La mayoría de programas escritos para los usuarios de computador están en forma de caracteres, es decir, un conjunto de símbolos que abarcan letras, dígitos y varios caracteres especiaIes. Un computador es capaz de aceptar caracf,eres 1en código binario), almacenarlos en la memoria y realizar operaciones con los caracteres trasferidos a un componente de salida. Un computador puede funcionar como una máquina manipuladora de una cadena de caracteres. Por cadena de caracteres se implica una secuencia finita de caracteres escritos uno después de otro. Los caracteres se representan en los registros del computador por medio de un código binario. En la Tabla 1-5, se listaron 3 códigos de caracter diferentes de uso común. Cada componente del código representa un. carácter y consiste de seis, siete u ocho bits dependiendo del código. El número de caracteres que pueden ser almacenados en un registro depende de la longitud del registro y el número de bits usados en el códigc. Por ejemplo, un computador con una longitud de palabra de 36 bits que usa un código de 6 bits y puede almacenar seis caracteres por palabra. Las cadenas de caracteres se almacenan en la memoria en lugares consecutivos. El primer carácter en la cadena puede ser especificado a partir de la dirección de la primera palabra. El último carácter de la cadena puede encontrarse a partir de la dirección de la última palabra, o por especificación de una cuenta de caracteres, o por una marca especial que designa el final de la cadena de caracteres. La manipulación de caracteres se hace en los registros de la unidad de proceso con cada carácter representando una unidad de información. Otros símbolos diferentes pueden ser almacenados en los registros del computador en forma de código binario. Un código binario puede ser adoptado para representar notas musicales para la producción de música por computador. Códigos binarios especialei rotr nécesarios para representar patrones de lenguaje para un sistema automático de reconocimiento de lenguaje hablado. La representación de caracteres por medio de una matriz de puntos en pantalla CRT (tubo de rayos catódicos) requiere una representación en código binario por cada símbolo que se representa. La información de campo para supervisar la operación de un proceso contro-
I
D A T O S N O N U M E R I C O S3 4 9
sEc.8-10
lado o sistema de distribución de potencia usa información binaria codia cabo ficada predeterminada. El tablero dó ajedrez y las fichas para Ilevar de la representación de forma alguna un juego por computador requiere binario. información en código Las operaciones hechas principalmente con datos numéricos son trasf"."rr"iur, Iógica, desplazamiéntos y decisiones de controi. Las operaciones en algún á. Jru.r".unáu pr."det preparar la información binaria codificada y a las de información dicha y trasferir order, ,eqrrerido por la mémoria permiten y de desplazamiento lógicas operaciones unidades externas. Las de realizar tareas de manipulación de datos para ayudar ,-rrru "upu"idad en el proceso de tomar decisiones. indiLas microoperaciones lógicas son muy útiles para manipular bits un que conforman grupo bits de o un registro viduates almacénados en un pueden cambiar lógicas operaciones Las dadó. símbolo binario-codificado valores de bits uu1o.". de bits, eliminar un grupo de bits, o agregar nuev,os bits de un relos en un registro. Los siguientes ejemplos muestran cómo como de-desplazamiento. gistro se Lanipulan poi lógi"a y microoperaciones mela en prealmacenados que están iógi"a ina funció., de opeündos de moria. tllt o un La microoperación oR puede ser usada para poner a uno un ¡ Boole de + l: I grupo seleccionado de bits en un registro. Las relaciones c o m puerta a u n a r a p l i c a d a binaria i ,'+ 0: r determinan que la variable r ; pero, d e b i n a r i o v a l o r d e l un 1, produ"".,l 1 independientemente bR de ¡' e l v a l o r " o . , n o c a m b i a r á 0 , u n c o n O R c o m p u e r t a cuando se aplica a una con un registro un A, de dado bit OR un compuerta una a aplióar al Así, previo. Consit, ós po.ibte poner a 1el 6lt a, sin tener en cuenta el valor dérese el siguiente ejemplo específico: 0l0l 0101
A
llll
0000
B
llll
0l0t
A<_ A\/B
El operando lógico en B tiene unos en las cuatro posiciones de los bits de preÁu'ár orden. Ñ aplicar a una compuerta OR este valor con el valor pero A de orden mayor bits de 1 los cuatro senie de A, es posible poner a dejando los cualro bits de menor orden sin cambio. Así. Ia microoperación oR puede ser usada para establecer selectivamente los bits de un registro. La operación AND puede ser usada para borrar u1 bi-t o un grupo sey ¡'1 leccionado cle bits de un registro. Las relaciones de Boole ¡.0:0 u n a com0 a v e z a p l i c a d a c o n u n f u n a b i n a r i a : ¡ implican que la variable pe¡; de binario valor del independientemente 0 pioa.,cirá un puerta iXO io, .rruttdo se aplica con un I a una compuerta AND- no cambiará el valor de r. tln bit A¡ dado en el registro A puede ser llevado a 0 si se aplica con un 0 a una compuerta AND. considéreseun operandológico B: 0000 1111. un Cuando este operando se aplica conjuntamente con los contenidos de del orden mayor de bits los cuatro borrará AÑD, registro a una compuerta r"gi.t.o pero dejarán los cuatro bits sin cambiar: ,' j
,:
3Ñ
L o G I c A D E T R A S F E R E N c IE A N T R ER E G I S T R o S
0l0l 0l0l
A
0 0 0 0l l l l
B
0000 0l0l
A <_ A A B
CAP. 8
La microoperación AND puede usarse para borrar selectivamente los bits d e . u n r e g i s t r o . L a o p e r a c i ó n A N D s e l l a m a algunas veces una operación de moscora porque enmascara o remueve todos l o s u n o s d e u n a p o r c i ó n s e l e c cionada de un registro. La operación AND seguida de una operación oR puede usarse para cambiar urr t¡it de un grupo de bits de un valor dado a un valor .,rr"uo d"seado.Esto se hace para enmascarar primero los bits y luego aplicar a una compuerta OR el nyevo valor. Por ejemplo, supóngas" qrre ,r' registro A contiene ocho bits,0110 0101. Para remplazar los cuatro bit. d" *áyo. n._ den por el vaior 1100, se enmascara primero los cuatro bits que no se r e q ui e r e n :
0lr0 0t0l
A
0 0 0 0l l l l
B1
0000m
A<-Af¡Bl
y luego se agrega el nuevo valor:
00000t0l
A
I 1000000 t r 0 00 1 0 1
B2 A<-A\ut Bl
La operación de máscara es una microoperaciónAND ¡, la operaciónde inserción es una microoperación OR. L a - m i c r o o p e r a c i ó n x o R ( o R - e x c l u s i v a ) p u e d e u s a r s ep a r a c o m p l e m e n tar'n bit o un grupo seleccionado de bits de un registro. ias relaciones de Boole¡o 1:x'y ¡ e 0:¡ implicanque lavariábtebinariarpuedeser complementada cuando se aplica con un 1 a una compuerta oR-exclusiva y si es con un 0 permaneceinalterable. Aplicando un .óio bit de un resistro con un I a una compuerta oR-exclusiva es posible complementar él bit s e l e c c i o n a d o .C o n s i d é r e s ee l e j e m p l o n u m é r i c o : I lOt 0l0l llll 0000
A B
00100101
A<-A@B
Los cuatro bits de mayor orden de A se complementan después de la operación oR-exclusiva con el operando B. L; microoperacién oR-exclusiva qy"qe usarse para complementar selectivamente lós bits de un registro. Si el operando B tiene s-olounos, Ia operación oR-exclusiva complenrerrta.¿ t o d o s l o s b i t s d e A . S i e l c o n t e n i d o d e A s e a p l i c a c o n s i g om i s m o a u n a compuerta OR-exclusiva, se borrará el registro ya que ¡ O ¡ : 0:
D A T O SN O N U M E , a t c o s3 5 !
s E c ,8 - 1 0
0l0t 0l0l
A
0 1 0 10 l 0 l 0000 0000
A
I
I \g
.r.
j
A*A@A
E l r a l o r d e l g s b i t s i n d i v i d u a l e s d e u n r e g i s t r r lp u e d e - e r l e t e r m i n a d r ' enmascarando primero todos los bits excepto aquel en cuestión l' luego c o m p r o b a n d o s i e l r e g i s t r o e s i g u a l a 0 . S u p ó n g a s eq u e s e r e q u i e r e d e t e r m i n a r s i e l b i t 4 e n e l r e g i s t r oA e s 0 ó 1 :
l0lx0l0
A
0001000
B
000x000
A<-BAA
EI bit marcado r puede ser 0 ó 1. Cuando todos los demás bits estan enmas'i 4 carados con el operando en B, el registro A conte¡drá sólo cerc's ei bit p e r m a n e c e r á e n b i t 1 . e s t e u n f u e 4 o r i g i n a l m e n t e ¡ i t S i 0 . s i d o hubiera " t c u a t r o s i e l b i t 1. Comprobando si el contenido de A es 0 ó no se determina fue0ó1. Si cada bit del registro debe comprobarse para 0 ó 1, es mas convenlenorden,o te desplazar el registio a la izquierda y trasferir el bit de mavor bit de del flip-ilop el llama se que comúnmente 1 bit de especia"l t"gi"tt" puede comprobarse "" Después de cada dósplazamiento, el arrastre ;;.;;;.". si es 0 ó 1 y se toma una decisión dependiendo del resultado. Las operaciones de desplazamiento son útiles para agrupar o dispersar informlción binaria codificada. Agrupar información binaria tal como palabra' caracteres es una clperación que une dos o más caracteres ell una c a r a c t e r e s almaDispersar es la operación inversa que Separados o_más l a a grupac o n s i d é r e s e en una pulrbr^ a caracteres individuales. .*iaor A SCII' p r i m e r o c o m ( , . c a r a c t e r e s i n t r o d u j e r o n .i¿" ¿" dígitos ÉOC qn" se la Tabla de y obtiene se. 9 5 para dígitos los ,qSCII El código áe caracter"r mayor i-S. Cuáu uno contiene siete bits v se coloca un 0 en la posición de r e gistro a l t r a s f i e r e 5 s e orden como se muestra a continuación. El carácter n i n g ú n uso t i e n e n n o g m a y o r o r d e n d e b i t s al registro B. Los cuatro i, V agruE l " f q u e d e s e n m a s c a r a n . s e m a n e r a d e B D C , para una represenración e l red e s p l a z a r e n A c o n s i s t e r e g i s t r o e l e n B D C d í g i t o s ¿ o s ¿e pá-i*tá posiciones las gi.tro A cuatro ,r""é, u la izquierda (con ceros colocados en el conteniáe bits de menor orden) y luego aplica'do a una compuerta OR do de los registros:
AB
00u 0101
0 0 1 1l 0 0 l : A S C I I9
AND con0000 1111
00000l0l
0000l00l
DesplazarA a la izquierda cuatr0veces
01010000
ASCII 5 :
A<-_A\/ B
0 l 0 l l 0 0 l : B C D5 9
,1
q
,{
I .J
a
:
' ¡i¡
352
L o G I c A D E T R A S F E R E N C IEAN T R ER E G I S T R o S
cAP. 8
una operación de desplazamiento con un 0 colocado en el bit del extremo se considera una microoperación de desplazamiento lógico. La operación binaria disponible en un registro durante operaciones lógicas se llama una palabra lógica. una palabra lógica se inrerprera como una cadena de bits en oposición a una cadena de caracteres o datos numéricos. cada bit en una palabra lógica funciona exactamente de la misma manera que otro bit cualquiera; en otras palabras, la unidad de información de una palabra Iógica es un bit.
8 - 1 1 C O D I G O SD E I N S T R U C C I O N La organización interna de un sistema digital se define por los registros que usa y la secuencia de microoperaciones que realiza con datos almacenados en los registros. En un sistema digital para propósitos especiales, ra secuencia de microoperaciones se fija y el sistema ejecuta Ia misma tarea específica una y otra vez. Un computador digital es un sistema digital para propósitos generales capaz de ejecutar varias operaciones y además, puede recibir instrucciones sobre Ia secuencia específica de operacion". qrr" debe realizar. El usuario de un computador puede controlar el proceso pór medio de un programü, es decir, un conjunto de instrucciones qL" las ".pe"ifican operaciones, operandos y la secuencia en la cual el procesamiento tiene que ocurrir. La tarea de procesamiento de datos puede ser alterada simplernénte especificando un nuevo programa con diferentes instrucciones o especificando las mismas instrucciones con datos diferentes. Los códigos de instrucción, conjuntamente con los datos, se almacenan en la memoria. Ei control lee cada instrucción de Ia memoria y la localiza en el registro de control. Ei control interpreta entonces la instrucción y procede a ejecutarla emitiendo, una secuencia de funciones de'control. Cada compuiador para propósito general tiene su propio repertorio único de instrucciones. La habilidad de almacenar y ejecutar instrucciones, el concepto de programa almacenado, es la propiedad más importante de un óomputádor para propósito general. Lln código de instrucción es un grupo de bits que Ie dice al computador cómo realizar una operación específica. Por lo general se divide en dos partes, cada una conteniendo su propia interpretación particular. La parte inás básica de un código de instrucción es su parte operativa. Er códígo de operación de una instrucción es un grupo de bits que define una operación tal como sumar, restar, multiplicar, desplazar y complementar. El r:onjunto de operaciones de máquina formulados por un computador depende del procedimiento que se intenta Ilevar a cabo. El número total de bperaciones así obtenidas deterrnina'el conjunto de operaciones de máquina. El número de bits requeridos para la parte de operación del código de instrucción es una función del número total de operaciones usadas. Debe consistir de por lo menos n bits para 2" (o menos) operaciones dadas diferentes. El diseñador asigna una combinación de bits (un código) a cada operación. La unidad de control del computador se diseña para aceptar esta configuración de bits en el tiempo adecuado en una secuencia y suministrar las señales de comando adecuadas, a los destinos dete¡minados, para poder ejecutar la operación específica. Como ejemplo específico, con-
I
s E c . 8 -11
353 C O D I G O SD E I N S T R U C C I O N
sidérese un computador que usa 32 operaciones distintas, una de ellas siendo ,r.,u op"ru"ión de suMA. El código de operación puede consistir de cinco bits con una configuración de bits 10010 asignada a la operación de suMA, cuando el código de operación 10010 es detectado por la unidad de control, se aplica una señal de comando a un circuito sumador para sumar dos números. La parte de operación de un código de instrucción especifica la operación qué se va a realizar. Esta operación debe ejecutarse con algunos datos usualmente almacenados en los registros del computador. Un código de instrucción, por tanto, debe especificar no solamente la operación sino también los registros donde los operandos se encuentran de la misma manera que el regiitro donde el resultado se almacena. Estos registros deben especificarsé en un código de instrucción de dos maneras. Se dice que un iegistro se especifica explícitamente si el código de instrucción contiene biís especialei para su identificación. Por ejemplo, una, instrucción puede contenór no solámente una parte de operación sino también una dirección de memoria. Se dice que lrna dirección de memoria especifica explícitamente un registro de memoria. Por otra parte un registro se especifica implícitamenie si éste se incluye como parte de la definición de ia operación, es decir, si el registro está implícito en la parte operativa del código.
l i
I
1
+
;á
ri
ü
$
,N
Formatos de códigos de instrucción El formato de una instrucción usualmente se dibuja en un recuadro rectangular simbolizando los bits de la instrucción a medida que ellos aparecen én la. palabras de la memoria o en un registro de contro,l. Los bits de la instrucción se dividen algunas veces en grupos que subdividen la instrucción en partes. A cada grupo se le crea un nombre simbólico tal como parte del cóáigo de operación o parte de una dirección. Las diferentes partes especifican diferentes funciones para la instrucción y cuando se muestran juntas constituyen un formato de código instrucción. considérese por ejemplo, los tres formatos de código instrucción especificados en la Figura 8-I2. El formato de instrucción en (a) consiste de un código de operación que implica un registro en la unidad procesadora. Se puede usát patu especificar operaciones tales como "borrar el registro del procesador", o "completar un registro", o "trasferir el contenido de un regiÁtro a un segundo registro". El formato de instrucción en (b) tiene un cóáigo de operación seguido de un operando. Este se llama una instrucción de opérando inmediato, porque el operando sigue inmediatamente después dé la parte del código de operación de la instrucción. Se puede operaciones tales como "sumar el operando al con,r.ui puru "tpecifi"u. del registro" o "trasferir el operando al registro procetenidó presente sador", o puede especi?icar cualquier otra operación a ejecutar entre el contenido á" ,r.t registto y un operando dado. El formato de instrucción especificado en la Figura 8-12(c) es similar al de (b) excepto que el ope."ndo debe extraerse de la memoria al lugar especificado por la parte de dirección de la instrucción. En otras palabras, la operación especificada por el código de operación se hace entre un registro procesador y un ope-
$
fl
H
H
g
u 3
i
\
'i
'-i
:á
C ódigo-operacirin
('ódrgooperacion
(a) Implícito
I
Operand"
I
Dirección a"f operanclo
(-ódigo-operacion
Figura
8-12
'Ires
(b) Operandc inmediato
( c ) D i r e c c r ó nd i r e c t a
fbrmatos posibles de instrucción
rando que puede almacenarse en Ia memoria de alguna manera. La direcc i ó n d e e s t e o p e r i ¡ n d oe ' l a m e m o r i a s e i n c l u y e e n r a i n s t r u c c i ó n . Asúmase quc se trene una unidad de memoria con g bits por palabra -v que un código de operación contiene 8 bits. La Iocalización de ios tres códigosde la insrrucción en la memoria se dibuja en la Figura g-13. En Ia dirección 25 se tir:ne una instrucción implícita que ..p".Ifi.u una operación: "trasferir el contenido del registro procesadorr? ál registro pro"".udor 4". Esta operación puede ser simbolizada por la proposición: A<-R En las direccionesde memoria 35 y 36 se tiene una instrucción de ope¡ando inmediato que ocupa dos palabras. La primera palabra en la dirección 35 es el código de operación para la instrucción "tiasfiera el onerando al r e g i s t r o 4 " , s i m b o l i z a q l oc o m o : A.
operando
Iil operando ¡nismo se almacena inmediatamente después del código de lpeiación en la dirección 36. En las direcciones 45 y 4G, hay una instrucción de dirección directa q u e e s p e c i f i c al a o p e r a c i ó n : A -- Mldirecciónl Esta simboliza una operación de trasferencia de memoria de un operando, e l c u a l s e e s p e c i f i c ap o r l a p a r t e d e d i r e c c i ó n d e l a i n s t r u c c i ó n . L a ' s e g u n d á palabra de la instrucción en Ia dirección 46 contiene la dirección y su-valor es el binario 70. Por tanto, el operando a trasferirse al registro A, es el almacenado en la dirección T0 y su valor se muestra co-o él binario 2g. Nótese que la instrucción se almacena en ra memoria en alguna dirección. Esta instrucción tiene una parte de dirección que da Ia dirección del operando. Para evitar la confusión al decir la palabra ..dirección', tantas 354
q Directión -- -
O p e r a ci r , n
Memoria cod-oPer: i
{ii
fiü
4*R
i
cod-oper: 2
0010100
8-13
Operando
A.
MlDirecciónl
operando: 44'
cod-oPer: 3
Figura
A.
0 r 0 0 0 1l 0
dirección - 70
0 0 0 1I 1 0 0
operando: 28'
Representación de Ia memoria de instrucciones
veces, es costumbre referirse a la dirección de memoria como una "localización". Así la instrucción de dirección directa se almacena en las localizaciones 45 y 46. La dirección del operando en la 46 y' el operando está disponible en la 70. De debe tener en clrenta que la colocación de las instrucciones en la memoria como se muestra en la Figura 8-13 es una de las muchas alternat i v a s . S o l a m e n t e l o s c o m p u t a d o r e s m u y p e q u e ñ o st i e n e n p a l a b r a s d e 8 b i t s . Los computadores de gran tamaño pueden tener de 16 a 24 bits por palabra. En la mayoría de los computadores Ia instrucción completa puede agruparSeen una palabra, y en algunos aun, se pueden agrupar dos o más instruccionesen una sola palabra de memoria. Los fbrmatos de instrucción mostrados en la FiSrra 8-12 son tres de los muchos formatos posibles que pueden fbrmularse para computadores d i g i t a l e s . S e p r e s e n t a n a q u í c o m o u n e j e m p l o y n o d e b e n c o n s i d e r a r s ec o mo las únicas posibilidades. Los Capítulos 11 y 12 presentan y analizan otras instrucciones y formatos de códigosde instrucción' En este punto, se debe reconocerla relación entre una operoción y una microoperación de la manera aplicada a un computador digital. Una operación se especifica pol una instrucción almacenada en la memoria de un computador. Es un código binario que dice al computador que realice una o p e r á c i ó n e s p e c í f i c a .L a u n i d a d d e c o n t r o l r e c i b e l a i n s t r u c c i ó n d e I a m e moria e interpreta los bits del código de operación. Esta envía entonces u n a s e c u e n c i a d e f u n c i o n e s d e c o n t r o l p a r a r e a l i z a r m i c r o o p e r a c i o n e se n los registros internos del computador. pár cada instrucción en la memoria, que especificauna operación, el s u e S e n e c e s i l a np a r a l a c o n t r o l e n v í a u n a s e c u e n c i ad e m i c r o o p e r a c i o n e q configuración de los componentes de un código de operación específico.
,r .T I d '7
r !
.-l
t'-
ril
3 5 6 L o G I c A D E T R A S F E R E N C IEAN T R ER E G I S T R o S
CAP. 8
Una operación es especificada por el usuario en la forma de instrucción al computador. LI.a microoperación es una operación elemental que está res_ tringida por los materiales disponibles dentro der computador. Macrooperaciones versus microoperactones Hay ocasiones en que es conveniente expresar una secuencia de microoperaciones en una sola proposición. t'na proposición que requiere una secuencia de microoperaciones para su configuración se liama una macrooperacítin- Una proposición en el método de notación de trasferencia entre registros, que define una. instrucción, es una proposición de macrooperación, aunque las proposiciones de macroop"ru.ü.r de iguar manera pueden usarse en otros casos. El método de trasferencia entre registros puede usarse para definir la operación especificada por una instrucción de computador, ya que todas las instruccioner alguna operación de ".p."ifi.an trasferencia entre registros, para que ésta última sea"ejecutáda por los componentes del computador. Al observar una declaración de trasferencia entre registros aisladamente no se puede decir si é.sta representa una macro o microoperación ya que ambos tipos de proposiciones denotan alguna proposición d^etrasferencia entre registros. La única manera de distinguir^ entre ellas es reconocer a partir del contenido y los componentes internos del sistema en cuestión, si la proposición se ejecuta con una función de control o no. Si la proposición puede ser ejecutada con una función de control sencilla, ésta répresenta una microoperación. Si la ejecución de la proposición por.medió de ^d" los componentes, requiere d.s o más funcior-,". control, .e io*u.á iu proposición como una microoperación. Solamente si se conocen las restric_ ciones de. los componentes del sistema se puede contestar esta pregunta. considérese, por ejemplo, la instrucción de la Figura g-t3 simbolizada por medio de la proposición: A .
operando
Esta proposición es ,na macrooperación porque ésta especifica una instrucción de computador. para ejecutar la instrucción la ünidad de control debe emitir funciones de control para la siguiente secuencia de microone_ raciones: 1. Leer el código de operación de la dirección 35. 2' Trasferir el código de operación al registro de control. 3. El control decodifica el código de operación y los reconoce como una instrucción de operando inmediato, d" -unéra que lea la operación de Ia dirección 86. 4. El operando leído de la memoria se trasfiere al registro A. La microoperación del paso 4 ejecuta la instrucción, pero los pasos 1 a 3 son ¡ecesarios antes de ella para que el control interprete la instrucción en st.
1 !
S E C .8 . 1 2
D I S E Ñ OD E U N C O M P U T A D O S RE N C I L L O3 5 7
La proposición que simboliza la instrucción: A<_R es también una macrooperación porque el control tiene primero que leer el código de operación en la dirección 25 para decodificarlo y reconocerlo. La trasferencia entre registros en sí se ejecuta con una segunda función de control. El rnétodo de trasferencia entre registros es adecuado para describir las operaciones entre los registros en un sistema digital. Se puede usar en diferentes niveles de presentación si se tiene en cuenta que se interpreten las proposiciones adecuadamente. Se puede usar específicamente para Ias siguientes tareas. 1. Definir instrucciones de computador de una manera concisa por medio de proposiciones de macrooperación. 2. Expresar cualquier operación deseada por medio de una proposición de macrooperación sin ninguna relación con una confiSrración específica de componentes. 3. Definir la organización interna de los sistemas digitales por medio de funciones de control y microoperaciones. 4. Diseñar un sistema digital especificando los componentes de los materiales y sus interconexiones. El conjunto de instrucciones para un computador dado puede explicarse en palabras, pero cuando se define con proposiciones de macrooperación, puede establecerse Ia definición precisamente con un mínirno de ambigúedad. El uso de otras proposiciones de macrooperación puede facilitar las especificaciones iniciales de un sistema y las proposiciones pueden usarse para simular el sistema cuando se desea comprobar la operación que se requiere. La organizacíón interna de un sistema digital se describe de mejor manera por medio de un conjunto de funciones de control y microoperaciones. La lista de proposiciones de trasferencia entre registros que describe la organización del sistema, puede usarse para deducir las funciones digitales con las cuales se puede diseñar el sistema. La siguiente sección muestra un ejemplo de cómo el método de trasferencia entre registros se usa en cada una de las cuatro tareas listadas anteriormente. Esto se hace al definir y diseñar un computador muy sencillo.
RE N C I L L O 8 - 1 2 D I S E Ñ OD E U N C O M P U T A D OS El diagrama de bloque de un computador sencillo se muestra en la Figura 8-14. El sistema consiste de una unidad de memoria, siete registros y dos decodificaciones. La unidad de memoria tiene 256 palabras de 8 bits cada una, lo cual constituye poca capacidad para un computador real pero suficiente para demostrar las operaciones básicas encontradas en la mayoría de los computadores. Las instrucciones y los datos se almacenan en Ia unidad de memoria, pero todo el proceso de información se hace en los
3 5 8 L o G I C AD E T R A S F E R E N CE I AN T R ER E G I S T R o S
CAP,8
registros. Los registros se listan en la Tabla 8-4, conjuntamente con una breve descripción de su funcion 5' el nirmero de bits que contienen. El registro de dirección de memrnia MAR, almacena la dirección de l a m e n r o r i a . E l r e g i s t r o s e p a r a d o r d e m e m o r i a M B R a r m a c e n ae l c o n t e n i d o de la palabra de memoria leída o escrita en la memoria. Los registrosA y -R -conregistros del procesador para propósito general. El co'tador del programa PC-, el registro de instrucción IR y el contad o r d e t i e m p o ? n ,s o n p a r t e d e l a u n i d a d d e c o n t r o l . E l 1 n r e c i b e e l c ó d i e o de ,iperación de instrucciones. El decodificador asociado con este resistio s u m i n i s t r a u n a s a l i d a p a r a c a d a c ó d i g o d e o p e r a c i ó ne n c o n t r a d o .A s í - q , : 1 . s i e l c ó d i g o d e o p e r a c i ó ne s e l b i n a r i o 1 , q r : 1 s i e l c r l d i g od e o p e r a c i ó n es el binario 2 y así sucesivamente.Ei contador z se decodifica también para suministrar ocho variables de tiempo, tr hasta t,- (ver Sección l-6). Este contador se incrementa con cada pulso de reloi, pero puede bor r a r s e e n c u a l q u i e r m o m e n t o p a r a c o m e n z a r u n a n u e v a s e c u e n c i ad e s d e 1 , , . El PC pasa por una secuencia de cuenta paso a paso y causa que el c o m p u t a d o r d é l a s i n s t r u c c i o n e s s u c e s i v a sa l m a c e n a d a s p r e v i a m e n t e e n l a m e m o r i a ' R l P C s i e m p r ea l m a c e n a l a d i r e c c i o n d e l a s i z u i e n t ei n s t r u c c i ó ¡ e n i a r n e n l o r i a .P a r a l e e r u n a i n s t r u c c i ó n , e l c o n t e n i d o d e p C s e t r a s f i e r e ttI MA[t v se inicia un ciclo de lectura de menioria. EI PC se incremer]ta en I d e t a l m a n e r a q u e a l m a c e ' n e l a s i g u i e n t e d i r e c c i ó n e n l a s e c r ¡ e n c i ad e r n s t r u c c i u n e s .l . h r c ó d i g o d e o p e r a c i ó n l e í d o d e l a m e m o r i a a l M B R . s e t r a s ,
f "*-l Decodificador de operaciones
I)ecodificador de t iempo
Figura
8- l.l
f
f
f
^l
l
I ) i a g r a m a d e b l o q i l e d e r . r i rc c m p u t a d o r . q i m p l e
l
j
q .
Tabla
8-4
l,ista de registros para un computador sencilio t
Número Símbolo de bits MAR MBR A D
PC IR 7'
Nombre del registro
Función
ó
Registro de di¡ección de memoria
Almacena direccionesde memoria
8 8 8 8 8 3
R e g i s t r o s e p a r a d o rd e m e m o r i a
Almacena contenidos de palabras de memoria
Registro A
Registro procesador
Registro R
Registro procesador
Contador de programa
A l m a c e n al a d i r e c c i o nd e i n s tr u c c i o n
Registro de instrucción
A l m a c e n a c r i d ig o sd e o p e r a ci n n c , ' r r i cr '!rr , r (lenerador de secuencias
Contador de tiempo
Tabla
Código de operación
0000000r 00000010 0000001 I .
8-5
T¡es instrucciones para un computador sencilr ,
Mnemónico
Descripción
Fu n c i ó n
MOV R MoverRaA . 1* R LDI O P R D C a r g a rO P R D . a , A .4 * OPRD LDA ADRS Cargarel operandoespecificado.1 - I1[ADRS] oor ADRS a A
fiere al 1R. Si la parte de dirección de memoria de una instrucción se lee al MBR, esta dirección se trasfiere al MAR para leer el operando. Así, el MAR puede recibir direcciones del PC o del MBR. Las tres instrucciones definidas en la sección previa se especifican d e n u e v o e n l a T a b l a 8 - 5 . C o m o h a y o c h o b i t s e n e l c ó d i g o d e o p e r a c i ó n ,e s posible especificar hasta 256 operaciones dif'erentes.Para simplificar la presentación se considera aquí solamente las tres instrucciones listadas. La mnemotecnia asociada con cada instrucción puede usarse por los programadorespara especificar las instrucciones con nombres simbólicos. La s i g l a M O V ( m o v e ) s e e s t a b l e c ep a r a l a o p e r a c i ó n d e l c o d i g o b i n a r i o c o r r e s pondiente y simboliza una instrucción de "movimienro". El símbolo R por delante de MOV indica que el contenido de R se mueve al registro A. La sigla mnemónica LDI (load inmediate) simboliza una instrucción de c a r g a i n m e d i a t a . E l O P R D e n s e g u i d a d e L D I s e e s t a b l e c ep a r a u n o p e r a n do actual que el programador debe especificar con esta instrucción. LDA (load into A) es una abreviatura para "cargar a A" y ADRS a continuación establece para un número de dirección que el programador debe especificar con esta instrucción. Los valores actuales del OPRD y ADRS c o n j u n t a m e n t e c o n s u c ó d i g o d e o p e r a c i ó n c o r r e s p o n d i e n t es e a l m a c e n a rán en la memoria como en la Fizura 8-13. La Tabla 8-5 da una descripción en palabras para cada instrucción. E s t a d e s c r i p c i ó n e n p a l a b r a s n o e s m u y p r e c i s a . L a s p r o p o s i c i o n e sl i s t a -
L.
3 6 0 L o G I c A D E T R A S F E R E N C IEAN T R ER E G I S T R o S
CAP. 8
das bajo la columna de función dan una definición precisa y concisa de cada instrucción. - un computador con solamente tres instruccionesno es muy útil. Se debe asumir que este computador tiene muchas más instruccionL. ,.r.rqrr" se considerentres de ellas. un programaescrito para el computador,. ulmacena en Ia memoria. Este programa consiste de muchas instrucciones, pero de vez en cuando la instrucción usada será una de las tres listadas. Se consideranahora las operacionesinternas necesariaspara ejecutar Ias instruccionesque están almacenadasen la memoria. Ciclo de envío de instrucciones El con-tadorde progran\aPC debe inicializarse con lo contenido en la primera dirección del programa gJ.ugggaadeen la memoria. cuando .. u.tirru el. interruptor de "comienzo",Tá secueniia del computadorsigue un patrón básico. un código de operacióncuya dirección está en el pC se lee de la memoria-alMBR. El PC se incrementaen l para prepararlapara la siguiente dirección en secuencia.El código de opeiación sé trasfiere del M-BR al I,R donde es decodificadopor el control. bsta secuenciase llama ciclo de enuío de instrucción, ya que ésta saca el código de operaciónde la memoria y lo coloca en un registro de control. Las variatles de tiempo, fu, tt y tz que salen del decodificadorde tiempos se usan como funcionés de control para darle secuenciaa las microopéraciones para leer un código de operación(op-code)y colocarloen el IR: to: MAR <- pC ttt
trasferir dirección del cod. de operación
MBR <- M, pC <- pC * l
tz: IR <--MBR
I e e r e l c o d . d e o p e r a c i ó n ,i n c r e m e n t a r P C transferir el cod. de operación al IR
. Se-asumeque el contador de tiempo ? comienzaa partir del valor 000, el cual produce una variable de tiempo úe que sale dél decodificador.Ei -reloj registro 7 se incrementa-con cada pulso de y automáticamenteproduc.e-l-asiguiente variable de tiempo en la secüencia.Las tres primeras variables de tiempo ejecutan las secuenciasde microoperaciónlas cuales pueden simbolizarsepor medio de la proposiciónde macrooperación: IR <- MIPC),
PC <_PC * |
Esta estableceque la palabra de memoria especificadapor la dirección en el PC se trasfiere al 1,? y luego se incrementá eLpC. La restricción de los componentesen el computadorsencillo es que solamenteeI MAR y el MBR puedencomunicarsecon la memoria. comó eI pc y el IR no pueáencomunicarse directamente con la memoria, la anteriót -a.rooperación debe ejecutarsecon una secuenciade tres microoperaciones.otra restricción de los materiales es que.el PC no puede incrementarsemientras que su valor se use para suministrar la dirección para una lectura de memoria. solamente despuésde que se complete una operación de lectura puede
RE N C I L L O3 6 / D I S E Ñ OD E U N C O M P U T A D O S
S E C .8 - 1 2
incrementarseel PC. Al trasferir el contenidodel PC al MAR, puedeser incrementadoel PC mientras que Ia memoria lee la palabra direccionada por el MAR. El ciclo de envío es común a todas las instrucciones.Las microoperacionesy funcionesde control que precedenal ciclo de enr'íose determinan en Iá secciónde control a partir del código de operacióndecodificado' E s t e e s t á d i s p o n i b l ed e l a s s a l i d a sQ , ,i : L , 2 , g , . . . e n e l d e c o d i f i c a d odre operación. Ejecución de las instrucciones Durante la variable de tiempo ú3, el código de operaciónestá en el .IR y una salida del decodificadorde operaciónes igual a 1. EI control usa las variables g, para determinar las sigfrientesmicrooperacionesen secuencia. La iniirucción MOV R tiene un códigode operaciónque hace qt:1. La ejecuciónde esta instrucción requierela microoperación: 4J{
A <-R,Ie-0
fuí, cuando Qt : I en el tiempo ¿3, el contenido de R se trasñere al registro A y el registro de tiempo ? se borra. Borrado ?, el control regresaa producir la váriable de tiempo ü6 y a¡í comenzarde nuevo el ciclo de enuío, pat" leer el código de operaciónde la sigrrienteinstrucción en secuencia. Recuérdeseque?C se incrementadurante el tiempo fr, de manera que mantiene Ia áirección de la siguiente instrucción en secuencia. : La instrucción LDI OPRD tiene un códigode operaciónque hace92 instrucción esta que ejecutan Fon: 1. Las microoperaciones Qzti
MAR <- PC
trasferir direccióndel operando
¿ztci MBR <- M, PC <- PC * |
Ieerel operandgincrementarPC
eztsi A <- MBR, T <-0
trasferir el operando,pasaral ciclo de envío.
Las tres variables de tiempo que siguen el ciclo de envío mientras QueQz : i i""" el operandode la memoria y lo trasfieren al registroA' Como el operando está en un lugar de la memo¡ia en seguida del código de opgl.i¿n,.u lee de la memo"riaa partir de la dirección especificadapor "!!C. nl operandoleído al MBR se trasfiere entoncesa A. Nótese qu9 ef P.c se incrementa una vez más para prepararlo para la dirección del siguiente códigode operaciónantes de regresaral ciclo de envío' La i.rsfrucción LDA ADRS tiene un código de operaciónque hace q¡ :1. Las microoperacionesnecesariaspara ejecutar esta instrucción se listan a continuación: qttr: MAR <- PC
trasferir la siguientedirecciónde instrucción
(ADRS) incrementarPC Q{q: MBR<-M,PC<-PC * I leer DIRECCION, trasferir dirección del operando Q{s: MAR <- MBR I
{:
362
L O G I C AD E T R A S F E R E N C IEAN T R ER E G I S T R O S
CAP,8
Q{a: MBR <-- M
Ieer el operando
qrtr: A <- MBR, T <*0
t r a s f e r i r e l o p e r a n d oa A , p a s a r a l c i c l o d e e n v í o
La dirección del opefando, simbolizada por ADRS, se coloca en la memoria después del código de operación. comó el pc fué incrementado en f durante el ciclo de envío éste mantiene la dirección donde se almacena , el ADRS. El valor del ADRS se lee de la memoria en el tiempo ú¡. Se incrementa PC durante este tiempo para prepararlo para el ciclá de envío de la siguiente instrucción. En el tiempo i., se trasfiere el valor , der ADRS del M B R a l M A R . c o m o e l A D R S e s p e c i f i c al a d i r e c c i ó n a " i o p . r u n a o , una lectura de memoria durante el tiempo ün causará que el operando se esta_ blezca en el MBR. El operando dei Un;n se t.asfie.e ai ."fi.t.o A y el control regresa al ciclo de envío. Las funciones de,coltqo_l y microoperaciones para un computador sen_ cillo se resumen en la Tabla 8-6. Lai primeru. i... variables de tiempo constituyen el ciclo de envío mediante fas cuales se lee el código de operación hacia el 1R. Las microoperaciones que se ejecutan durante"el tiempo f3 dependen del valo^r del código de operaóión in H"v tres funciones de "r, _control que son funciones áe ú3, p".o q, ó q,"r ó q, p*a" ser igual a 1 durante ts . La microoperación paiticulár ejecitadá" alu.arrte el t"iempo f3, es aquella cuya función de corÍtroi correspbndiente tiene una variable g que es igual a 1. Lo mismo puede decirse delas otras variables de ti";p;. .. Un computador práctico tiene muchas instruccio"e, y cada instrucción requiere un ciclo .de envío para reer un código de ope-ración.Las microoperaciones necesarias pa¡a la ejecución de lás instrucciones particu_ lares se especifican medianle las variabies de tiempo t ;;;1" q, particular, l : 9 t 1 , 2 , 3 , . . . , 2 b 5 , q u e s u c e d ee s t a r e n e l e s t a d o i d ' u r a n t ee s t e t i e m p o . La lista de funciones de control y las microoperacio"Á-pulu un computador práctico deberían ser mayores que las mostradas en la Tabla g-6. obviamente, el simple computador no ,r., elemento práctico, pero usando ", solamente tres instrucciones se pueden demostrar ciaramente las funcio_ Tabla 8-6 Proposiciones de trasferencia entre resrstros para un computador sencillo
ENVIAR
,0. ¡1.
MOVER CARGA INMED.
.2. 4 tlt: Qztt: q2.4, .t2.5.
CARGAA A
q3,3.
Qttc: , t3 . 5 . 4zlai
Qzh:
MAR <_ PC MBR<-M,PC<_PC+l IR <- MBR A<-R,T<-0 MAR <- PC MBR <--M, PC <_ PC + I A <-.MBR, T <_O MAR <_ PC MBR<_M,PC<_PC*I MAR <- MBR MBR<_ M A <_ MBR, T <-.0
RE N C I L L O3 6 3 D I S E Ñ OD E U N C O M P U T A D O S
s[c. 8 12
nes básicas de un computador digital. La extensión de este principio al computador con más instrucciones y más registros de procesador debería ser aparente a partir de este ejemplo. En ei Capítuio 1l se usan los princip i o s p r e s e n t a d o sa q u í p a r a d i s e ñ a r u n c o m p u t a d o r m á s r e a i . Diseño del computador Se había mostrado anteriormente que la lílgica de trasferencia entre regist r o s e s a d e c u a d a p a r a d e f i n i r l a s o p e r a c i o r t e se s p e c i l i c a d a s p o r l a s i n s trucciones del computador. Se ha demostrado justarnente que la lógica de t r a s f ' e r e n c i ae n t r e r e g i s t r o s e s u n m é t o d o c o n v e n i e n t e p a r a e s p e c i f i c a r I a secuencia de funciones internas en un computador digitai. cortjuntamente c o n l a s m i c r o o p e r a c i o n e sq u e e l l a s e i e c u t a n . S e m o s t r a r á a h o r a q u e l a l i s t a d e h r n c i o n e s d e c o n t r o l y m i c r o o p e r a c i o n e sp a r a u n s i s t e m a d i g i t a l e s u n punto de comienzo conveniente para el diseño del sistema. La lista de mic r o o p e r a c i o n e se s p e c i f i c a e l t i p o d e r e g i s t r o s y l a s f u n c i o n e s d i g i t a l e s a s o c i a d a s q u e d e b e n s e r i n c o r p o r a d a s e n e l s i s t e m a . L a l i s t a d e l u n c i o r . r e sd e control especifican las compuertas lógicas requeridas para la unidad de control. Para demostrar este procedimienir¡ se estudiará e1 diseño del c o m p u t a d o r s e n c i l l o a p a r t i r d e l a l i s t a d e p r o p o s i c i o n e sd e t r a s f e r e n c i a entre los registros dados en la Tabla 8-6. E l p r i m e r p a s o e n e l d i s e ñ o e s r e p a s a r l a s p r o p o s i c i o n e sd e t r a s f e r e n c i a e n t r e r e g i s t r o s , l i s t a d a s e n I a T a b l a 8 - 6 y e s c o g e rt o d a s a q u e l l a s p r o p o s i ciones que realizan la misma macrooperación en el mismo registro. Por ejemplo, la microoperación MAR - PC se lista en Ia primera línea con la función de control úe, €n la quinta línea con la función de control Qztz Y en la octava línea con la función de control q3f3. Las tres líneas se combinan en una sola proposición: to + q2t3+ %t3:
MAR <- PC
Qt q3 Figura
8-15
Configuración de tr: MAR'
PC
R e c u é r d e s eq u e u n a f u n c i ó n d e c o n t r o l e s u n a f u n c i ó n d e B o o l e . E l * e n t r e Ias funciones de control denotan una operación de Boole OR, y la secuencia de un operador entre q2 y t3 denota una operación de Boole AND. La anterior proposición combina todas las condiciones de control para la trasferencia de PC hasta MAft. La configuración de los componentes de la proposición ante¡ior se dibuja en la Figura 8-15. La función de control puede ser manipulada como una fun¡ión de Boole para dar:
3&
LoctcA DETRASFERENC ETNAT R ER E G t s r R o s xt = te I Qztt * q{t:
CAP 8
fo * k, + qr)t,
La variable binaria rr se aplica a la entrada de carga derMAR y las salidas del PC se aplican a laJentradas del MAR. cudá;;,:1, eisiguiente pulso de reloj trasfiere el contenido del pc al MAR. Las variables binarias que causan que rr sea 1 vienen de los decodificadores de operación de tiempo de la unidad de control. Hay ocho microoperaciones diferentes listadas en la Tabla g-6. para cada microoperación distinta, se acumularán las funciones de control asociadas y se aplicarán conjuntamente a una compuerta oR. El resultado es como se muestra en la Tabla g-7. Las funcionei de control obtenidas para cada microoperación se forman en una ecuación de la variable binariá r,, !: r, 2, . , 8. Las- ocho variables x pueden ... g"rr".udu. fácilmente con las compuertas AND y OR pero no se úarán aquí. El diseño de un computador senciilo se puede obtener de la información de trasferencia entre registros dada en la Tabl a g-7. El diagrama de bloque diseñado se muestra en ra Figura g-16. Aquí se tienen de nuevo los siete registros, la unidad de memoria y los dos'decodificadores. Además, hay un recuadro marcado "circuito combinacional". El bl,oqrre del circuito combinacional genera las ocho funciones de controi, i rr"rt" rr, de acuerdo a la lista de funciones de control de la tabla. t as'ru"ciones de control habilitan la carga e incrementan las entradas de varios registros. un registro que recibe información de dos fuentes necesita .r., ..'ültiplu*o, pur" seleccionar entre los-dos. Por ejemplo, el MAR recibe información del MBR o del PC' EJ multiplexor asociádo con el MAR trasfi".. del pC c u a n d o s u l í n e a s e l e c c i o n a d a e s u n 1 ( r , : 1 ) p e r o t r a"is f "o"t"nido iere el contenido d'el MBR cuando la línea seleccionada es 0. Esto es debido a que rr :0, cuando xz:1, p€ro 12 inicia la entrada-de carga ¿u¡ uin, du ,nur,"." qrr. el óontenido del MBR pasa por el multiplexor hásta u,qnl. !I contador de tiempo ? se inc¡ementa con cada purso de reroi; .in "t cuando xz : I se borrará y colocará a 0. "-nffi, registros y otras funciones digitares especificadas en la Figura 8-16 pueden ser designadas individualmente por medio de procedimien_ tos combinacionales y de lógica secuencial. si el sistema se construye con circuitos integrados, se pueden encontrar circuitos MSI para todos los registros y funciones digitales. El circuito combinacio""i p".u el control Tabla 8-7 Especificación de los componentes para un computador sencillo
rr:fo+q2t3+q3t3l x2: Q3t5: xt- tt+ q2t4+ %t4: xt: xt + %t6i xs: ezts + q3t7: x6: Q¡t3i x7-x5+x6:. x¿ - t2i
MAR <_ PC MAR <_ MBR PC<-PC+I MBR<- M A <_ MBR A<_R T <-0 IR+- MBR
q
i 1 Incrementar Direcciona¡ Memo¡ia
Cargar
^ "y ó
Ql
Qz Qt
x5
.x1 x2
Circuito combinacional
x7
x3 x4
x5
tl ta
¡o
Incrementar
Figura 8-16
Diseño de un computador sencillo
365
366 LOGICA DETRASFERENC EINAT R ER E G I S T R O S
C A P ,8
puede construirse con compuertas SSI. En un computador de gran tamaño, e-st_a_ _parte se configura eficientemente con un arreglo iógico programablé (PLU),
R E F ER E N C I A S 1 \ 1 a n o . \ { . M . , c a m p u t e r^ 5 v s f e ¡An r c h í t e c t u r e E . n g l e w o o dc l i f f s , N . J . : p r e n t i c e _ H a l l . I n c . .1 9 7 6 . I (-hu. \'., Computerorganízutiortand Microprograrnming.Englewood cliffs, N.J.: P r e n ti c e - H a l l ,I n c . , 1 9 2 2 . ;3 Dietmeyer, D., Logical Desígn ,f DigitaL sy.s/em.s. Boston, Mass.: Allyn y Bacon,1971. + B e l l , c . G y A . N e w e l l , c o m p u t e r s t r u c t u r e s :R e a d i n g sa r t dE , x a m p r e s .N u e v a \-ork:McGraw-HillBookCo.,19?1. ' " . H i l l , F . y G . P e t e r s o nD , i g i t a t s ] ' s t e m s :H a r d w a r eo r g a n i z a t i o na n d D e s i g r tN u e va York: John Wiiey & Sons,1973. 6. Rartee,T. C., I. L. Leb_ow S. Reed,Thertryand Desígnof Di¿]itaL Muchines. lL Nueva York: McGraw-Hill Book Co., 1g62. i. t^9mputer,Special Issueon computer Hardware Description Languages, vol. ?, N o . 1 2 ( d i c i e m b r et,9 T 4 ) . 8. computer, Special Issue on Hardware Description LanguageAppiicati.ns, Vol. 10,No. 16 (junio, 192?).
PROBLEMAS 8-1.
Muestre el diagrama de bloque que ejecuta ia proposición: xT3'. A<-8,
8-2.
t,rn valor constante puede ser trasf'erido a un registro aplicando a cada ent¡ada una señal binaria equivaiente a lógica 1o lógica'0. Muestre la confi_ ¡¡ración de la trasferencia: T:
6 3
BeA
I <-- I l0l0l l0
L-n registro de 8 bits tiene una entrada x. La operación del registro se clesc r i b e . .i m b ó l i c a m e n t e c o m o : P:
As<_x, A,eA,*l
i:1,2,3,...,7
.Cuál es la función del registro? Las celdas se numeran de la derecha a la rzquierda. 8-4.
Muest¡e la configuración de los materiales (elementos) de las siguientes declaraciones. Los registros tienen 4 bits de loneitud. To: A <- R0 T,:
A+Rl
l
362 PROBLEMAS
Tzi Tti
A r- R2 A <- R3
8-5. Sean s1, s,' las variabies de selecciónpara el multiplexor de la Figura "
d,du'las variables de selección para el decodificador de destino. La "variable ean e se usa para habilitar el decodificador' (a) Establezca las trasferencias que ocurren cuando las variables de selec(3) 11100;(4) 01101' ción s1s¡d,d¡e son iguales a: (1) 00010: (2) 01000; siguientes trasferenlas de selección de (b) Dé los valores de las variables c i a s :( 1 ) A ' B : ( 2 ) B ' C ; ( 3 ) D ' A '
8-6
haóiUna unidad de memoria tiene dos entradas de control marcadas como Figura la con conjuntamente (como se explica l¡to, y Lectura/escritura MBR ?-30).'Las entradas de clatos de memoria se conectan a uil registro registro excomo en la Figura 8-?. EI MBR puede recibir información de un lectura. terno EX.R o áe la unidad de memoria después de una operación de DiEl MBR suministra los datos para la operaciór"rde escritura en memoria. que nuesy compuertas multip,lexores usando bloque buje un diagrama de del MBR o la memoria. El sistema debe tener capacidad tren la "onJ*ión para ejecutar las siguientes tres trasferencias: W: M <- MBR R'. MBR <- M E: MBR <- EXR
escribir a la memoria leer de la memoria cargar MBR apartir de EX-R
de ia 8 - 7 . Las siguientes trasferencias de memoria se especifican para el sistema Figura 8-8. (a) MlA2l+
83
(b) 82 + MlA3) Especifique la operación de memoria y determine las variables de selección binarias para los dos multiplexores y el decodificador de destino. y cuatro 8 - 8 . usando los multiplexores cuádrupies de 2 a 1 línea de ia Figura 5-17
proposiciones: inversores, dibujé un diagrama de bloque para configurar las Ti Tzt Tl
8-9.
R2 <- R\ R2 <- R2 R2 <-0
considere un registro A de 4 bits con el bit A., en la posición más significativa. ¿Cuál es lá operación especificada por la siguiente declaración?: AaC: A<-A+l A¿'. A -0 en paMuestre la configuración del sistema usando un contador con carga ralelo.
g-10. Muestre los componentes necesarios para config.rrar las siguientes mlcrooperaciones lógicas:
3 6 8 L o G I c AD E T R A S F E R E N C EINAT R ER E G I S T R o S
CAP. 8
(a) Tr: F<-A ¡\B (b) 7z: G<-C \/ D (c) Ir: E <- E 8-11. ¿Cuál es la diferenciaentre estasdos proposiciones? A*B:
F<-C\/D
C + D: F<-A + B 8-12. Especifiquela trasferenciaen serie dibujada en ia Figura ?-g en forma sim_ bólica. Sea s la función de control de deiplazamiento]Asumaque s se habi lita por un períodode cuatro pulsos. 8-13. Muestre los elementosy.materiales que configuran la siguienteproposición. Incluya las c,rmpuertaslógicas para la función-de controi xl'To*
T, + x'yT2: A <-A + B
8-14. un sistema digital.tiene tres registros: AR, BR y pft. Los tres flip-flops suministran las funcionesde control del sistema. s es un flip-flop'el cual es habilitado por una señal externa para comenzar la operaciónáel sistema; F y R se usan para dar secuenciaa las microoperacio.r...u., cuarto flip-flop, !, se pone a 1 por el sistema digital utta uei se complete la operación.La función del sistema se describe por medio de las siguientes operaciones de trasferencia entre registros: S: PR<-0, ^S+-0, D+-0. F<_l F *0,
si (AR : 0) entonces(ll * 1) por tanto (R .- 1)
R: PR<-PR +.8R, AR<-AR - l,
R + _ 0 , . F + -I
¿Cuál es la funcir'¡nque ejecutael sistema? 8-15. Ejecute las operacionesaritméticas ( * 42)+ ( _ 1g) y ( - 4 2 ) - ( 1 3 )e n b i . nario usando: (a) Representaciónen signo-complemento de 1. (b) Representaciónen signo-complemento de 2. 8-16. Los números binarios listados a continuación tienen un bit de signo en la posición de extrema izquierda y si son.negativos se representan en comple_ mento de 2. Realice las operacionesaritméticas indica'das,usando los aigoritmos de suma y resta enunciados en el texto. compruebe sus resultados haciendola aritmética con númerosdecimares.quiu"tu'.,t...
( a )0 0 l l l 0 + l l m l 0 (b) 0l0l0l + 000011 (c) lll00l + 001010 (d) l0l0n + ll1000
(e) 0l0l0l (0 001010 G) lll00l (h) l0l0l I -
0001II lll00l 001010 l00ll0
I
'1 P B O B L E M A S3 6 9 8-1?. ¿Cuál es el rango de los números que pueden ser acomodados en un registro de 16 bits cuando los números binarios se representan en: (a) Signo-magnitud? (b) Signo-comPlemento de 2? Dé las respuestas en representación decimal equivalente' 8-18. Ejecute las operaciones aritméticas listadas a continuación con números binarios en representación de signo-complemento de 2 y aplicando el algoritmo enunciaflo en el texto. Use ocho bits para acomodar cada numero conjuntamente con su signo:
( l ) ( + 6 5 )+ ( + 7 8 ) ( 2 )( - 6 5 ) + ( - 7 8 ) (3) (+35)+ (+¿10)
(4) (+65)+ (-78) (5) (-65) + (+78) (6) (-35) + (-40)
Inspeccione la respuesta de 8 bits en cada caso y: (a) Determine si hay una sobrecapacidad' (b) Liste los arrastres (carries) que entran o salen de la posicion correspondiente al bit de signo. (c) Determine el signo del resultado (el octavo bit)' (d) Enuncie Ia relación entre (a) y (b). (e) Enuncie la relación entre (a) y (c). 8-19. (a) Muestre que el contenido de un registro de 8 bits que almacena los números * 36 y - 36 en binario y en tres representaciones diferentes, es decir, signo-magnitud, signo-complemento de 1 y signo-c,¡mplemento de 2. (b) Muestre el contenido del registro después de que los números se desplacen aritméticamente una posición a la derecha (en todas las tres representaciones). (c) Repita (b) para un desplazamiento a la izquierda' la 8-20. Dos números en representación de signo-complemento de 2 se suman de manera mostrada ..r lu Figu.u 8-10 y la suma se trasfiere al registro A. Muestre que el desplazamiento aritmético a la derecha simbolizado por: An<- An@ V A < - s h rA , dividida por 2 hubiese o no ocurrido correcta suma la producirá siempre una sobrecapacidad en la suma original' 8-21. Represente + 149 y - 1?8 en BDC usando ia representación-de signo-compleIn".,to du 10. Use un bit para el signo. Sume los dos números BDC, incluyendo el bit de signo e interprete la respuesta obtenida. 8-22. l,os registros para sumar y restar números decimales representados en signocomplJmento de 10 es similar a los algoritmos para los números binarios representados en signo-complemento de 2' (a) Enuncie l6s algoritmos para la adición y sustracción con representación y en signo-complemento de 10. un signo positivo se representa por un 0 significativa' posición más 9 en la un sig r negativo por un
¡l !E
ll
T
,l
3 7 O L o G I c A D E T R A S F E R E N CEI AN T R ER E G I S T R o S
CAP
(b) Aplique los algoritmos para los conjuntos decimales ( - 63g) (Tgb) v + ( 6 3 8 )- ( 1 8 5 r " 8 23. Un número binario de punto flotante cle 36 bits liene 8 bits más el signo para ei exponente. El coeficiente se asume como una fracción normajizáda.-Los núrneros en el r:oeficiente y exponente están en la forma de signo-rnagnitud. ¿cuáles son las mayores y menores can'.idades positivas q.r" p.,".i.n ."1" acomodadas, excluyenclo el cero? 8-24. lln registro de 30 bits almacena un número decimal de punto flotante repres e n t a d o e n B D C . L o s c o e f i c i e n t e so c u p a n 2 1 b i t s d e l r e g i s t r o y s e a s u m e c o mo un entero normalizado. Los números en el coeficiente y exponente se asum e n r e p r e s e n t a d o se n f o r m a d e s i g n o - m a g n i t u d . ¿ , c u á i e s s o n l a s c a n t i d a d e s mayores y menores que ¡rueden ser acomodadas erciuvendo el cer.? 825.
R e p r e s e n t ee l n ú m e r o ( + 3 1 , 5 ) r 0 c o n u n c o e f i c i e n t e e n t e r o n o r m a l i z a d o d e l 3 b i t s y u n e x p o n e n l e c l e? b i t s c o m o : ( a ) L I n n ú m e r o b i n a r i o ( a s r r m ab a s e d e 2 ) . lbi [.]r;número octal bir:a¡io codificado (asuma base de g). ( c i I . r . n ú ¡ n e r o h e x a d e c i r o a i b i n a r i o c o d i f i c a - d oi a s u m a b a s e d e 16).
8 2 6 . E i r e g i s t r o A a l m ¿ r c t ' n al a i n l b r m a c i ó n b i n a r i a 1 l i 1 1 1 0 0 1D . etermine el operand o r 3 ¡ ' l a r n i c r o o p e r a c i o nl ó g i c a q u e s e v a a r e a l i z a r e n t r e A y B p a r a c a m b i a r el valor de A a: (a) 011011i,r1 {bi 1111110i 8-2'i. f)etermine la operación lógica que borrará selectivame¡te los bits del registro A en aquellas posiciones donde hay I en los correspo¡dientes bits áel registro .B. '8-28. [.'n compr.rtadordigital tiene una unidad de memoria con 24 bits por palabra. El conjunto de instrucciones consiste de 190 operaciones diferéntes. Cada inst.rcción se almacena en una palabra de la memoria y consiste de una parre de código de operación y una parte de dirección. (a) ¿Cuántos bits se necesitan para el código de operacirin? (b) ¿cuántos bits se dejan para la parte de dirección de la instrucción? ( c ) ¿ ( r u á n t a s p a l a b r a s p u e d e n a c o m o d a r s ee n l a u n i d a d d e m e m o r i a ? 1d) ccuál es el mayor número bina¡io de punto fijo con signo que puede ser almacenado en una palabra de memoria? 8-29. Especifique un formato de instrucció11 para ur-rcomputador que realice la siguiente operación: A . M f d i r e c c i ó n l* R donde ^R puede ser cualquiera cie los ocho registros posibles en el procesador. 8 - 3 0 . A s u m a q u e l a u n i d a d d e m e m o r i a d e r a F i g u r a g - 1 4 t i e n e 6 5 , 5 3 6p a l a b r a s de 8 bits cada una.
I
P R O B L E M A S3 i I ,s 1,-. (a) ¿,Cuál debería ser el rrúmero de bits rle los cinco primeros registr. tados en ia ]'abia 8-4? (b)¿Cuántaspalabrasdememoriaserequierenparaalmacenarlainstruc. ción: LDA
A/)Ti.S
como se esPecifica en la Tabla 8-5? ia ins( c ) L i s t e l a s e c u e n c i a d e m i c r o o p e r a c i o n e st r e c e s a r i a sp a r a e j e c u t a r temporalmenfe trucción. El registro /i puedá ser usado p¿rra almacenar parte de una dirección' g-31. una instruccron inmediata para un simple computador definida en ia Figura se especifica de 8-14 tiene un código de operación 00000100. La instrucción Ia siguiente manera: I'RI
oPRD
( C a r g a rO P R D a ' ? )
R'
oPRI)
I . i s t e l a s e ¡ u e n t ' i ad e m i c r o o p e r a c i o n e ps a r a e j c (r l t a r e s l a i n s t r t ¡ t ' t ' i o n ' g-32. Repita el diseño del computador sencillo presentado er.r11 Figura 8-12' Remp l a c e l a s i r t s t r u c c i o n e se n i a ' f a b l a 8 - 5 ¡ r o r i a s s i g u i e n t e s i n s t r t r c c i o t l e s : Codigo cleoperación
Mnemónico
F-uncion
Descripción
l'¿ 00000010 00000011
ADI ADA
OPRD SumareloperandoaA AeA AeA ADRS SumarRaA
* n +OPRD +MIADRSI
de componentes 3-33. Dibuie un cliagrama de bloque mostrando la configuracior.r de comiendel sistema especificado en ei Problema 8-14. Incluya una entrada D' (dor]ei flip-fiop para el /¡echo y de salida ¿o para poner a I el flip-flop S una
i
I
Diseño fógico de procesadores
9- 1
INTRODUCCION
una unidad procesadoraes aquelra parte de un sistema digital o un computador digital que configura las operacionesen el sistema. "Está por un número de registrosy de funcionesdigitales que "o,,'p"".lu conforman microoperacionesaritméticas, lógicas, de desplaámiento y trasferencia. La unidad de procesose llama una unidad,centrar de procesoo cpu, se combina con una unidad de control que supervi.á lu ,"",r.rrcia "rrrrráo de microoperaciones.Este capítulo versa sobre ia orgánizacióny diseño de la uni_ dad del procesador._Elsiguiente capítulo trata de ia ló;ic; de diseño de la unidad de control. En el capítulo 11 se demostrarata orlani zacióny diseño de un computadorCPU. El número de registrosde una unidad procesadorava¡ía desdeun registro procesadorhasta 64 registros o más. Álguno. antiguos *En vienen con "o-putadores ulgund casosun sistema -un registro procesadorsolamente. digital puede emplear un registro procesadorsencill]op"., p*po.itos especiales. sin embargo, como los registros y otras funciones drsñ;ñIo",'"".i,; bajo costo cuando se construyen co.t circlitos integrados, todós los tadores recientes emolean un gran número de iegistrás procesador", "o,,,p,ry canalizan la información entre ellos a través de bus."es comunes. una operación puede-_serconfigurada en una unidad de procesocon una microoperaciónsencilla o con una secuenciade microoperáciones. por ejemplo la multiplicación de dos númerosbinarios almacenadosen dos registros puede ser configu¡adacon un circuito combinacionalque realiza la operación por medio de compuertas. Tan pronto como las señáles." propugan a través de las compuertas, el producto estará disponible y puede ser trasferido a- un registro de destino con un pulso de relój sencillo. Alterna_ tivamente, la operaciónde multiplicación puederealizarsecon una secuencia de -microoperaciones.de zuma y desplazamiento.El método escogidopara la configuración determina la cantidad y tipo de componenies de la unidad de proceso. 372
/
i
sEc. 9-2
O R G A N I Z A C I OD N E L P R O C E S A D O R3 7 3
Todos los computadores,exceptolos muy grandesy rápidos.conllgur¿:. las operacione.patticipantes por medio de una secuenciade micrc'rperacionei. De esta manera, el procesadornecesita tener solamente circutto' que configuren las microoperacionesbásicas simples tales como sumar ]' desplararlOtras operaciones,tales como multiplicació¡, división y aritmet*" á" punto flotante, se generanconjuntamentecon la unidad de control. La unidad procesadoraen sí se diseña para configurar microoperaciones ¡,i"i"". del iipo discutido en el Capítulo 8. La unidad de control se diseña que no se incluyen en el conjunpara dar seculncia a las microoperaciones to básico. La función digital que configura las microoperacionescon la información almacenada lo" iegistros del procesadorse llama comúnmenteuní' "tt o ¡,LU. Para realizar una microoperación,el control dad. basícaaritmética canaliza la fuente de información de los registros hasta las entradas del ALU. El ALU recibe la información de los registros y realiza una operación dada de la manera especificadapor el control. El resultado de la operación se trasfiere al registro de destino. Por definición, el ALU es un circuito combinacional;de manera que toda la operaciónde trasferenciaentre registros pueden realizarse duiante el intervalo de un pulso de reloj. Todas l"asoperacionesde trasferencias entre registros, incluyendo la trasferencia entre registros de una unidad procesadoratípica, se realizan en un ALU común: de lo contrario, sería necesario duplicar las funciones digitales para cada registro. Las microoperacionesde desplazamiento se realizan a menudo en una unidad separada.Una unidad de desplazamientose muestra por lo general separada,pero alggnas vecesestá incluida como parte de la unidad enteramente aritmética y lógica. un computador cPU debe manipular no solamente datos sino también códigosde instrucción y direccionesque vienen de la memoria. El registro que almacena y manipula el código de operaciónde instruccionesse considut, .o-o parte de la unidad de control. Los registrosque almacenan direcciones son lncluidos alg¡nas veces como parte de la unidad de procesoy la información de direccionesse procesapor un ALU común. En algunos computadores, los registros que almacenan direcciones son conectadosa un bus separadoy la iniormación de dirección se manipula con funciones digitales separadas. Este capítulo presenta varias alternativas para la organización y diseño de una unidad de proceso.El diseño de una unidad aritmética lógica particular se lleva a cabo para mostrar el proceso de diseño usado en la iormulación e implementación de una función digital común capaz de realizar un gran número de microoperaciones.Otras funciones digitales consideradas y diseñadas en este capítulo son la unidad de desplazamiento y el regisiro procesador para propósitos generales, comúnmente llamado acumulador. 9-2
O R G A N I Z A C I O ND E L P R O C E S A D O R
La parte procesadorade un computador CPU se t¡ata algUnasveces como eI cánql de datos del CPU porque el procesadorformula los canales de trasferencia de datos entre los registros de la unidad. Los diferentes caminos
1
,!:
q
374
D I S E Ñ OL O G I C OD E P R O C E S A D O R E S
CAP. 9
son controlados supuestamentepor medio de compuertas que abren los camlnos necesariosy cierran otros. Una unidad procesadorapuede diseñarse para satisfacerun conjunto de canales de datoi para una áplicación específica. El diseño de ul procesadorpara propósitoÁespecialesfue demostrado en la Sección8-9. La Figura 8-t6 muestrá los diferentescanalesde datos para un procesadormuy limitado. La abertura de los canaleso caminos de datos se logra por medio de decodificadoresy circuitos combinacionales que comprendenla secciónde control de la unidad. En una unidad procesadorabien organizada,Ios canales de datos se forman por medio de busesy otras líneas comunes.Las compuertasde control que formulan los canales de datos son esencialmentemultipleiores y decodificadorescuyas líneas de selecciónespecificanel camino iequerido. El procesode información se hace medianteúna función digital .uyo canal de datos puede ser especificadopor un conjunto de variables "o-ür,de selección comunes.una unidad procesadóraque tiene una organizaciónbien estructurada puede usarse en una gran cántidad de operaciones.si se construye dentro de un circuito integrado,se hará disponiblepara muchos -diferente. usuariosya que para cada uno se puede tener una aplicación En esta sección, se investigan varias alternativás para organizar una unidad procesadorapara propósitos generales.Todas'las organizaciones emplean un ALU común y un registro de desplazamiento.Las diferencias en las organizacionesse manifiestan principalmente en la organizaciónde los registrosy sus canalescomunesal ALU.
Organización del bus cuando se incluye un gran número de registrosen una unidad de proceso es más eficiente conectarlos por medio de buses comunes o arreglailos como_una memoria pequeñaque tiene un tiempo de accesomuy rápido. Los registros se comunican entre sí no solamenle por la trasferenciá directa de datos sino también cuando se realizan varial microoperaciones.En la Figura 9-1 se muestra una organización con bus para crr"tto registros pro^forcesadores.cada registro se conecta a dos multiplexores (MUX) p"ru mar los busesde entradaAy B. Las líneasde selecciónde cada -.ritipl"*o, seleccionanun- registro para el bus particular. Los busesA y B se upli.u., a una unidad lógica aritmética común. La función seleccionád"etr ALU "i determina la operaciónparticular que se va a realizar. Las microoperaciones de desplazamiento se configuran en el registro de desplazamiüto. El resultado de la microoperación pasa a través del bus de saiida S hasta las entradas de todos los registros. El registro de destino que recibe la información del bus de salida se seleccionapor medio de un decodificador. cuando se habilita, este decodificadoractiva una de las entradas de carga del registro para suministrar un canal de trasferencia entre los datos d*el bus S y las entradas del registro de destino seleccionado. El bus de salida s alimenta los terminales para trasfe¡ir datos de un destino externo. una entrada del multiplexor A ó B puede recibir datos de los elementos que lo rodean cuando es necesario trásferir clatos externos a la unidad de proceso.
l
Unidadaritmétrca lógica(ALU)
Registrode desPlazamiento
Selectorde desplazamiento
Salida de datos Figurag-lRegistrosprocesadoresyALUconectadospormediodebusescomunes
375
3 7 6 D I S E Ñ oL o G l c o D E P R o c E S A D o R E S
CAP. 9
La operaciónde los multiplexores, ios busesy el decodificador de destino se explica en la.seccióng-2 conjuntamentectn la Figura g-6. El ALU y el registro de desplazamientose discuten más tarde en este capitulo. ulu unidad procesadora puedetener más a".rrui.o.lgistros. La construcció¡r de un procesadorcon bus organizadocon más rlgistros requiere multiplexores mayores y decodificadoi; de otra forma sería similar a ia organizaciónpresentadaen la Figura 9_1. La unidad de control que supe.visaer sistema de bus procesador dirige el flujo de información a través del ALU seleccio.rando los diferentes componentesde'la unidad. Por ejempropara realizar la microoperación: Rl<_R2+R3 el control debe suministrar variables de selecciónbina¡ias a las siguientes entradasde selección: ., / 1. SelectorMUX A: colocael contenidode R2 en el bus A. 2. selectorMUX B: colocael contenidode R3 en el bus B. 3. selectorde función ALU: generala operaciónaritmétíca At B. 4' selector de desplazamiento:para la trasfe¡enciadirecta de la salida del ALU al bus de salida S (ningun desplazami""lol. 5' Selector de destino del decodificador:trasfiere el contenido del bus SaRl. Las cinco variables selectivasde cont¡ol debenser generadassimultáneamentey deben estar disponiblesdurante un intervaló de pulso de reloj común. La información binaria de los dos regisTrosfuente ." p.opug" a tra_ vés.de las compuertascombinacionalesen lós multiplexores, el^Aiu y el registro de desplazamientohasta el bus de salida y u 1". ent¡adas del re_ gistro de destino durante gn intervalo de pulso de reloi, la información bi_ naria en el bus de salida iitrasfiere al .Ri cuand" *;;;nta el siguiente pulso de reloj. Para lograr-una rápida respuestade tiempo, se construye el ALU con circuitos generadores de-arrastreposteriory et .egistro de desptázamientose configuracon compue¡tascombinacionales. cuando se encapsu-la en un cI, la unidad procesadorase llama algunas vecesregisúroy unidad lógica aritmética o RÁLu (registerand arithmetic logi.c.unit). Algunos fabricanteslo llaman un micriprá""r,odo, de un grupo de.bits..El prefijo micro se refiere a un tamaño fisiá -,ry peq,reno del circuito integrado en el cual se incluye el procesador.El s;"io d,e bits se refiere al hecho de que el procesadot p.t"áu ser expandidl í u.,a unidad de proceso con un gran número de bits usando un grupo de cI. por ejemplo, un microprocesadorde-un grupo de 4 bits contiéne registros AL"u pará v manipular datos de 4 bits. Dos cI de éstol pueden .é, ir.u construir una unidad procesadorade g bits. pára un procesador "o*Éirruau, de 16 6i;, es necesariousar cuat¡o circuitos integradosy coneciarlosen cascada. Ei arrastre de salida de un ALU se conectáal arrastre de entrada del siguiente ALtl de mayor orden y la salida en serie y líneas de entrada de los re-
\
S E C .9 - 2
O R G A N I Z A C IDOENLP R O C E S A D O3 R 77
gistros de desplazamiento se conectan también en cascada. L'n microprocesador de un grupo de bits debe distinguirse de otro tipo de CI llamado mícroprocesador. El primero es una unidad procesadora mientras que el microprocesador se refiere a un computador CPU completo encapsulado en una pastilla de CI. Los microprocesadores y su equipo asociado se discutirán en el Capítulo 12. Memoria "scratchpad" o memoria tapón Los registros de una unidad procesadora pueden ser metidos dentro de una unidad pequeña de memoria. Cuando estos se incluyen en la unidad de proceso, la memoria pequeña se llama memoria tapón o de borrado. El uso de una pequeña memoria es una alternativa muy económica para conectar los registros procesadores a través del sistema de bus. La diferencia entre dos sistemas es la manera en la cual la información se selecciona para la trasferencia al ALU. En el sistema de bus, la trasferencia de información se selecciona por medio de los multiplexores que forman los buses. Por otr¿r parte, un solo registro dentro de un grupo de registros organizados como una pequeña memoria puede ser seleccionado por medio de una dirección de la unidad de memoria. Un registro de memoria puede funcionar justamente como cualquier otro registro procesador ya que su única función es almacenar información binaria para ser procesada en el ALU. Una memoria tapón o de borrado debe distinguirse de la memoria prirrcipal del computador. En contraste con la memoria principal. la cual almacena instrucciones y datos, una pequeña memoria de una unidad de proceso es meramente una alternativa irara conectar un número de registros procesadores por medio de un camino de trasferencia común. La información almacenada en una memoria tapón o de borrado debe venir normalmente de la memoria principal por medio de instrucciones en el programa. Considérese, por ejemplo, una unidad procesadora que emplea ocho registros de 16 bits cada uno. Los registros pueden incluirse dentro de una memoria pequeña de ocho palabras de 16 bits cada una, o un RAM de 8 x 16. Las ocho palabras de memoria pueden designarse como R0 hasta R7, correspondiendo a las direcciones 0 hasta 7 y constituyen los registros para el procesador. [Jna unidad procesadora que usa una memoria tapón o de borrado se muestra en la Figura 9-2. Un registro fuente se selecciona de la memoria y se carga al registro A. Un segundo registro fuente se selecciona de la memoria y se carga al registro B. La selección se hace especificando las direcciones de palabra correspondientes y activando la entrada de lectura de la memoria. La información de A y B se manipula en el ALU y en el registro de desplazamiento. El resultado de la operación se trasfiere a un registro de memoria especificando su dirección de palabra y activando el control de entrada de escritura en memoria. EI multiplexor a la entrada de la memoria puede seleccionar datos de entrada de una fuente externa. Asúmase que la memoria tiene ocho palabras, de manera que una dirección puede especificarse con tres bits. Para realizar la operación:
Rl<--R2+R3
1.
i
378
D I S E Ñ OL O G I C OD E P R O C E S A D O R E S
CAP. 9
el control debe suministrar las variables de selección binarias para realizar la siguiente secuencia de tres microoperaciones:
Tt: A <- M[010]
leerR2 al registroA
Tzi B <- M[011]
leer.R3al registroB
Tt:
MÍ00ll<-AI
B
ejecutaruna operaciónen el ALU y trasferir el resultadoa.R1
La función de control ?, debe suministrar la dirección 010 a Ia memoria y activar las entradas A de lectura y carga. La función de control ?, debe alimentar una dirección 011 a la memoria y activar las entradas B de lectura y corga. La función de control ?3 debe suministrar el código de función al ALU y al registro de desplazamiento para ejecutar la operación de sumo (sin desplazamiento),aplicar una dirección 001 a la memoria, seleccionar la salida del registro de desplazamiento para el MUX y activar la entrada de escrituro de memoria. El símbolo M lxxxl designa una palabra de memoria (o registro) especificada por una dirección dada en el número binario xxx. Entrada de datos
Di¡ección
Memoria tapón o de borrado
Saiida de datos
Carga
Carga
Selección de función
Selección de desplazamiento
Figura
9-2
Unidad de proceso que emplea una memoria tapón
ORGANIZACIOD N E L P R O C E S A D O R3 7 9
sEc. 9-2
La razón de una secuencia de tres microoperaciones en vez de una. como en un procesador con organización de bus, se debe a Ia limitación de la unidad de memoria. Como la unidad de memoria tiene solamente un grupo de terminales de dirección y se va a comunical con dos registros fuente. se necesitan dos vías de acceso a la memoria para leer la información de la fuente. La tercera microoperación es necesaria para direccionar el registro de destino. Si el registro de destino es el mismo que el segundo registro fuente, el control podría activar la entrada de lectura, para extraer la información de la segunda fuente, seguida de una señal de escritura para activar la trasferencia de destino y sin tener que cambiar el valor de la dirección. Algunos procesadores emplean una memoria de 2 puertos para poder vencer la demora causada al leer dos registros fuentes. Una memoria de 2 puertos tiene dos líneas de dirección separadas para seleccionar las palaLras de memoria simultáneamente. De esta manera pueden Ieerse los dos registros fuente al mismo tiempo. Si el registro de destino es igual a uno ds los registros fuente, entonces toda la microoperación puede hacerse durante el período de un pulso de reloj. La órganización de una unidad procesadora con una memoria de 2 puertos se muestra en la Figura 9-3.* La memoria tiene dos grupos de direcciones, una para el puerto A y otra para el puerto B. Los datos de cualquier palabra en la memoria se leen en registro A especificando una direcói¿" ¿. De igual manera cualquier palabra de memoria se lee al registro B especificando utta dirección B. La misma dirección puede ser aplicada a la
DirecciónA Habilitación escritura (WE)
Figura
9-3
Memoria tapón o de borrado ME WE
DirecciónB Habilitar memoria (ME)
Unidad de proceso con una memoria de 2 puertos
*Esta organización es similar
al microprocesador de un grupo de bits, tipo 2901
3&
D I S E Ñ OL O G I C OD E P R O C E S A D O R E S
CAP. 9
dirección A y a la dirección B, en cuyo casoapareceráuna palabra idéntica en ambos registrosA y B. Cuando se habilitan por medio áel terminal habilitador de memo¡ia (ME: memory enable),se puedenescribir nuevosdatos a la palabra especificadapor la dirección B. Así las direccionesde A y B especificandos registrosfuente simultáneamentey la dirección B específica siempre el registro de destino. La Figura 9-B no muestra un camino para datos externos de entrada y salida, pero pueden ser incluidos como en las organizacionesanteriores. Los registrosA y B son, en efecto, retenedoresque aceptan nueva informaciónsiemprey cuandoel pulso de reloj CP esté en el estado1; cuando cP vaya a 0, los retenedoresse inhabilitan y retienen la información que estabaalmacenadacuando CP era un 1. Esto elimina cualquier condición de congestiónque puede ocurrir cuando se está escribiendoia nueva información en la memoria. La entrada del reloj controla las operacionesde lectura y escritura en memoria por medio del terminal de hábilitación de escritura (write enable). Este controla las trasferenciasa los retenedores A y B.La forma de onda de un intervalo de un purso de reloj se muestra en el diagrama. cuando el terminal de reloj es 1, los retenedores Ay B se abren y aceptan la información que viene de la memoria. El terminál wE estátámbién en el estado 1. Este habilita la operaciónde escritura y de lectura en la memoria. Así cuando CP:l las palabrasseleccionadaspor las direcciones A y B se leen de la memoria y se colocanen los registroi A y B respectivamente. La operación en el ALU se realiza con los datos aima."nádo. .r, A y B.cuando el terminal del reloj va a 0, los ¡etenedores se cierrany se retienen los últimos datos introducidos. Si el terminal de ME está tra6ititado cuando wE:0, el resultado de la microoperaciónse escribe en la palabra de memoria definida por la dirección B. Así una microoperación: Rl+-Rl+R2 puede hacersedentro de un período de un pulso de reloj. El registro de memoria Rl debe especificarsecon la dirección B y R2 con la direlción A. R e g i s t r oa c u m u l a d o r Algunas unidades procesadorasseparanun registro de otros y se le llama regi'stroacumulador, abreviadoAC o registroA. El nombre dé este registro se deriva del procesode adición aritmética que se encuentraen los "ñr,p.rtadores digitales. El procesode sumar muchos númerosse lleva a cabo almacenando inicialmente esos números en otros registros procesadoreso en la unidad de memoria del computadory borrandoél ucnrnuludora 0. Los númerosse agreganal acumuladoruno a uno en orden consecutivo.El primer número se agregaa 0 y la suma se trasfiere al acumulador.El ..gurrdo número se agregaa los contenidos del acumulador y la suma formaáa de nuevo remplaza su valor previo. Este procesose continúa hasta que todos los númerosse agregany se forma la suma total. Así, el registro .,acumula" la suma paso a paso haciendo sumas secuencialesentre rin número nuevo y la suma acumuladapreviamente.
O R G A N I Z A C I ODNE L P R O C E S A D O R3 E :
sEc. 9-2
u
i ."t
El registro acumulador en una unidad de procesoes un registro mult,propósito capaz de realizar no solamente la microoperaciónde suma slnc' lambién otras microoperacionesde la misma forma. De hecho, las cc,mpuertas asociadascon un registro acumulador suministran todas las funcionesdigitales encontradasen un ALU. La F.igura9-4 muestra el diagrama de bloque de una unidad procesadora que emplea un registro acumulador. El registro A se distingue de todos los demás registros procesadores.En algunos casostoda la unidad procesadoraes justámente el registro acumulador y el ALU asociado.El iegistro en sí puede funcionar como un registro de desplazamientopara .,rl*irrirttut las microoperacionesde desplazamiento.La entrada B suministra una fuente de información externa. Esta información puedeprovenir de otros registros procesadoreso directamente de la memoria principal del computador.El- registro A suministra la otra fuente de información al ALU poi el terminal A. El resultadode una operaciónse trasfiere de nuevo al registro A y se remplaza su contenido previo. La salida del registro A puedJ ir a un destino externo o a los terminales de entrada de otros regiso unidad de memoria. tros procesadores irara formar la suma de dos números almacenadosen los registros procesadores,es necesario agregarlosen el registro A usando la siguiente secuenciade microinstrucciones: borrar A Tti A <-0 Tz:A<-A*Rl
trasferir Rl a A
Ts: A<-A 1R2
agregarR2aA
Entrada de datos
Selección fuente B
Registros procesadores o unidad de memoria
Salida de datos ,ligura
9-4
ProcessCc¡ con un registro acumulador
D I S E Ñ OL O G I C OD E P R O C E S A D O R E SC A P . 9
El registroA se borra primero. El primer número en ft1 se t¡asfiereal registro A agregandoal actual conteniáo de ceros de A. El segundonúmero en R2 se agregaal valor presente de A. La ,rr,,'" foi*"d;; A debe usarse para otros cálculos o puede ser t¡asferida a su de.ti"o-req.rerido. 9-3
UNIDAD LOGICAARITMETICA
una unidad lógica aritmética (ALU) es una función multioperación digital de lógica combinacional.Esta pn"á" rearizar;; ;";i;; de operaciones aritméticas básicas"yun- conjunio de operacionesrogiüsEr ALU tiene un número de líneas de serecció_n para .utu""iorr"i ;;'ó;;.ión particular de la unidad. Las líneasde selecciónse decodific"; ¡";;;;el ALU de ma_ nera que las & variabres de serecciónpueden hasta 2; ;;;;; cionesdiferentes. ".p."irt"u. La Figura g-5 muestra-eldiagrama de bloque de un ALU de 4 bits. Las cuatro entradas de datos de A sé combinan ü" lur;r;;; entradas de B para generar una operaciónen las salidas F. El terminal de selecciónde modo.s, distingue entre las operaciánesaritméticas y lógicas. Las dos entradas de selección de función sr y so especifican la operaciónaritmética o lógica que se va a generar.Con tres váriables de selicción es posible especificar cuatro operacionesaritméticas (con s, en ,r.,'estado) y cuatro operacioneslógicas-(.cons2 en el otro estado). Los arrastres de entrada y salida tienen significado.otu-"trt..¿rrr"rrt. ,r'u aritmética. El arrastre de entrada en la posición menos sigaificativa "i"rá"i¿" de un ALU se usa muy a menudo como una cuenta variabre de ülección que puededo_ blar el número de operacionesaritméticas. De u.tu -rrrlru, es posible generar cuatro operacionesmás, para un total de ocho ope.acionesarit_ méticas. IJn diseño de un ALU típico se llevará a cabo en tres etapas.primero, será emprendidoel diseño ds la secciónaritméticu. s"gu"ao, debe conside_ rarse el diseño de la sección lógica. Finalmente, d"b";;-;;áificarse la sec_
A4 A3 A2 Ar
84 nr nr-d,
Unidad lógica aritmética
(ALU)
Figura
g-5
Ft
F2
f.l
Diagrama
(Selección de modo)
st s0
(Arrast¡e de salida) Ft
J2
(-. ..D
(Selección de función) (Arrastre de entrada)
de 4 bits
D I S E Ñ OD E U N C I R C U I T OA R I T M E T I C O3 8 3
sEc. 9-4 ción aritmética de manera ticas y lógicas. 9.4
que puedan realizarse ambas operaciones aritme-
D I S E Ñ O D E U N C I R C U I T OA R I T M E T I C O
ElcomponentebásicodelasecciónaritméticadeunALUesunsumador de cirpurri"lo. Ur, .,r-"dár en paralelo se construye con un número "r, ABAB
cin=o
Í'=A+B+l
F=A+B
(b) Sumaconarrastre
(a) Suma
F=A+B+l
F=A+B
(d) Sustracción
(c) A más el comPlemento deldeB AO
Lir
-
u
,{ F=A+1
r-n
(f) Incrementa¡,4
(e) Trasferir A
I
,4 A1l I's
All I's
ci' =o
Cou,
F F ==AA--t l (g) DecrementarA
Figura
9-6
F=A (h) T¡asfe¡i¡A
grupo Operaciones obtenidas mediante el control de un de entradas de un sumador en paralelo
:i 1.
3U
D I S E Ñ OL O G I C OD E P R O C E S A D O R E S
CAP. 9
cuitos sumadorescompletosconectados en cascada(ver sección s-2). controlando la entrada de datos al sumador p"*rl,lá, rs posible obtener diferentes tipos de operacionesaritméticas. "" r," Tis"."-ó-é' -.r".t.a las ope_ racionesaritméticas obtenidas cuando un grupo de entradasa un sumador en paralelo se controlan externamente.El iriá"ro a" bi; er sumadoren paralelo puedetener_cualquier valor. El u.."rtr" á";;;;1" "" c¡n pasa al cir_ cuito sumadorcompretoa-la posiciónáel bit .";;r;ñilativo. El arrastre de.salida ,cou,provienedel círcuito rüuao, completode la posicióndel bit más significativo. La suma aritmética se rogra cuando un grupo de entradas recibe un número binario A, el otro coniunto de entradás recibe un número bina¡io B y el arrastre de entrada se mantiene en 0. Esto se **.tru en la Figura 9-6(a).Haciendo Cr" :1como en la Figura 9_6(b),;; o".i¡f. agregar1a la suma en F. considé¡ese ahora el efectó a" los bits de la entrada B' cuando-c,n 0',la-saridap.áa*" "o-ói"tr.:;J", ¡]il'E; cual es la suma r de A más el complementode 1 de B. Agregando t , ..iu-iu,'a y haciendo Cn : I se obtiene F: A+ B'+ t lá ru .;;; más el comple_ mento de 2 de B- Esta es"""r}.Jáu"" simiür ;E"p";;;l¿"'a" -operación sustracción si se descartael arrastre dó salida. si se colocan sólé;";;;; los terminalesB, se obtiene F: A * 0: A, lo cuar trasfiere la entrada A ala sali¿a F. Agregandoun 1a Ci' comoen la Figura g-6(f), se obtienep:i+1 ro cual es la operaciónde incremento. La condición ilustrada en la Figura g-6(g) colocarátodos los 1 en los terminales B. Esto produce la oper"ación de"'decre^""tá"r:A_1. para mostrar que esta condición e. u.ru operación de decremento,considérese un sumador en paralelo con n circuiios sumadores arrastre de salida es 1_ésterepresenta-"1,;;";;;,;ñ;" completos. cuando el Z, en binario consistede un 1 seguidopo. r, ."ro.. Restando I di í;,^ le obtiene 2n -r, lo cual en binario ,r.r núm"ro de n unos. suma ndo 2, - | a A se obtiene - r : 2 " ". F:A+2" A - 1 . s i s e " u f r i m e e l a r ¡ a s t r ed e s a r i d a2 n s e o b t i e ne F: A-r. Pa¡a thacer una demostración numérico, sea n:8y A:9. Entonces: """-"1"":"r"pro I : 2n:t 2-|: A+2n _l_l
0000 l00l : (9)ro 0000 0000:(256)10 illl
llll:(255)ro
0000 1000:(256+8)r0
Quitando el arrastre de salida 2":2b6, se obtiene g:g- 1. Así, se ha decrementadoA en 1 agregándoleun número binario con sólo unos. ,circuito que contróla la entrada B para suministrar las funciones ilustradas en la Figura g-6 se llaman elemento urr¿iáLÁlcompremento, uno,/cero.Este circuito se ilustra en la Figura g z. iá.-¿"s líneas de se_ lección sr Y so controlan la entrada de cadalerminal ¿- niáiugrama muestra una entrada típica designadapor B, y una rutiáu a"",g.ru¿u por y-. Fn una aplicaciónt1pr1u,hay"n circillo. pu.u i : r, 2, . , n. como se muestra en la tabla de la Figura g-7, cuandoambos,u'r rr, .Lu" igualesa 0, la s a l i d a Y ¿ : 0 , i n d e p e n d i e n t e m e ndt ee l v a l o r d;'É,.'b;;;1" srs.:01 la
D I S E Ñ OD E U N C I R C U I T OA R I T M E T I C O3 8 5
sEc. 9-4
compuerta AND superior genera el valor de B, mientras que la salida de Ia compuerta inferior es 0; de manera que X:8,. Cuando s1s6:10. ia compuerta AND inferior genera el complemento de B, para dar l, : B . C u a n d o s ¡ s o: 1 1 , a m b a s c o m p u e r t a s e s t a r á n a c t i v a s y Y , : B r + B ; : 7 . Un circuito aritmético de 4 bits que realiza ocho operaciones aritméticas se muestra en la Figura 9-8. Los cuatro circuitos sumadores completos (FA) constituyen el sumador en paralelo. El arrastre que va a la primera etapa es el arrastre de entrada, el arrastre de salida de la cuarta etapa es el arrastre de salida. Todos los dem¡is arrastres están conectados internamente de una etapa a la siguiente. Las variables de selección son sr, so y Ci". Las variables sr y so controlan todas las entradas B a los circuitos del sumador completo como en la Figura 9-7. Las entradas A van directamente a las otras entradas de los sumadores completos. Las operaciones aritméticas configuradas en el circuito aritmético se listan en la Tabla 9-1. Los valores de las entradas AND a los circuitos sumadores completos son una función de las variables de selección sr y so. Agregando el valor de Y en cada caso al valor de A más el valor de C¡n, da la operación aritmética en cada entrada. Las ocho operaciones listadas en la tabla se desprenden directamente de los diagramas de función ilustrados en la Figura 9-6. Bi
Figura
Tabla 9-1
Jg
Circuito verdade¡o,/complemento, uno,/cero
Tabla de función para el circuito aritmético de la Figura 9-8
Y iguala
Selector de función J¡
9-7
Sa!ida igual a
Función
Ctt
000 001 010 0ll 100
0 0 B B
0'I
E
F:A F-A+l F:A+B F:A+B+l F:A+E
E
F:A+E+l
Todounos Todo unos
F:A-l F:A
Trasferir A lncrementar A AgregarB a A AgregarBaAmás1 Agregarel complementode 1 deBaA Agregarel complementode 2 d,eB aA DecrementarA Trasferir A
Cou,
Figura
g-8
Diagrama lógico del circuito aritmético
Este ejemplo demuest¡a la factibilidad de construir un circuito aritmético por medio del sumador en paralelo. El circuito combinacional,que debe ser adicionado en cada etapa entre las entradas externas A, y'Bi y las entradas del sumador en paralelo x, y y,, es una función de las'operaciones aritméticas que van a ser configu¡adas.El circuito aritmético áe la Figura 9-8 necesita un ci¡cuito combinacional para cada etapa especificada por las funcionesde Boole: X,: A, Y¡ : B¡ss* Bi s, i:1,2,...,n donde n es el número de bits del circuito aritmético. En cada etapa j, se usan las mismas variables de seleccióncomún sr y so. El circuito-combinacional será dife¡ente si el circuito genera diferenles operacionesaritméticas. 386
Efecto del arrastre de salida El arrastre de salida de un circuito aritmético o ALU tiene un significado especial, principalmente despuésde una operación de sustracción' Para investigar-el efecto de un arrastre de salida, se expandeel circuito aritmético de la Figura 9-8 a n bits de manera que Co't : 1, cuando la salida del circuito es igual o mayor que 2". La Tabla 9-2 lista las condicionespara tener un arrástre de salida en el circuito. La función F : A tendrá siempre el a¡rastre de salida igual a 0. Lo mismo se aplica a la operaciónde incremento F: A{ 1 excepto cuando pasa de una condición de sólo 1, a una condición de sólo 0, en cuyo tiempo se produceun arrastre de salida de 1. Un arrastre de salida de 1 despuésde una operaciónde adición denota una Este indica que la suma es mayor que o igual condición de sobrecapacidad. a 2" y que la suma consistgde n * 1 bits. La-operaciónF: A+B agregael complementode 1de B a A. Recuérdesede la Sección 1-5 que el complementode B puedeexpresarsearitméticamente como 2n - I-8. El resultadoaritmético de la salida será: F:A+2n-l-B:2n+A-B-l S i A > 8 , e n t o n c e (sA - B \ > 0 y F > ( 2 " - 1 ) , d e m a n e r aq r ¡ sC tando el arrastre de salida 2" de este resultado dará:
:1' Qui-
F:(2"-l)-(B-A) el cual es el complementode 1 de B - A.
J¡
Ss
00 001 0r0 0ll 100
Efecto del a¡rast¡e de salida en el circuito aritmético de la Figura 9-8 Cou, :
Función aritmética
I
Comentarios
si
Cin
0
Cqsl €s siempre 0
F:A F:A+l F:A+B F:A+B+l B-r F:A-
(A+B)>2" (A+B)>(2"-r) A>B
l0l
F:A-B
A>B
lr0 lll
F:A-l F:A
A +0
A:2n
¡
''r
rl t,, I
lo cual es una sustraccióncon bit prestado.Nótese que si A< B, entonces (A- B)< 0 y F < (2" - 1) y así co,t :0. Para esta condiciónes más conveniente expresarel resultadoaritmético como:
Selector de función
i
.
F:A-B-l
Tabla g-2
I
- |
Cout:1 y F:0 si A:2" -l Ocurre sobrecapacidad si C.u¡ : 1 Ocurre sobrecapacidad si Cou¿: 1 Si Co,r :0, entonces A < B Y F: complemento de 1 de(B - A) S i C o , r : 0 , e n t o n c e sA < B Y F: complemento de 2 de (B * A) Cuut: 1, excepto cuando A: 0 Cs¡¿es sienpre 1
387
l: :l
388
D I S E Ñ OL O G I C OD E P R O C E S A D O R E S
CAP. 9
condición para el arrastre de salida cuandoF : A+ B + 1 puedededucirse de manera similar. B a t es el símbolopara el complementbde z de B. A¡itméticamente, ésta es una.operaciónqué produce ui número igual a 2" - B. El resultadode la operaciónpuede "*pr"é"..u "o^o, F:A+2-B:2+A_B Si A¡8, entonces \ l - n ¡ > 0 y F 2 2 " , d e m a n e r aq u e C . , u:,1 . R e m o v i e n _ do el arrastre de salida 2' se obtiene: F:A-B l1 ""ll es una_operaciónde sustracción. si a pesar de que A É. ru,utiau ¿-A si B; Á, pero-el circuito genera el complemento de 2 le este T,a operaciónde decrementose obtiene :;;"i2" _I):2^ +A d; tr'"ir-"ro. - 1. El arrastre de salida es s-iempre 1 exceptocuando A:0. sustrayendo - 1 e n c o m p l e m e n tdoe 2 á s 2 " - i ; l 1de O-da-1y cualesun número con sólo unos. La última entrada en la Tabla s-i g"""t;i: (2" - 1) +A + 1 :2" + A. Esta operacióntrasfiereA a F y aa ur,"a.raJre de salida de 1. Diseño de otros circuitos aritméticos El diseño de cualquier circuito aritmético que generaun conjunto de operaciones_básicas puede llevarse a cabo siguiéndJel procedimientoenunciado en el ejemplo previo. Asurniendo q,rJ tod"" las operacionesdel grupo puerien-ser generadaspor medio del sumadot p"r"i"lo, se comienza obteniendo un diagrama de función como en la Figura "n 9-6. Del diagrama de función se obtiene una tabla de función que rela"cionalas entradaé del cir_ cuito .sumador completo a las entradas externas. A partir de la tabla de fi¡nción se obtienen -las compuertas combinacionalesque deben ser agregadas a- cada etapa del sumador completo. Este procedii"i""to se demuestra con el siguienteejemplo. E
C' =0
F = A ++BB
F=A+E +t=¿-g
(a) Especificación de la función
q
¡] J A.
' - l
B¡
Ci¡cuito combinacional
C¡* I (b) Especificación del circuito combinacional
00 0l l0 1l 00 0l l0 ll
00 0l l0 ll 0l 00 ll I0
X ¡ =A ¡ Y¡--B¡es 'm
(c) Tabla de verdady ecuacionessimplificadas Figura 9-9
Deducción de un circuito sumador,/sustractor
EJEMPLD 9-I; Diseñar un circuito sumador,/sustractorcon el una variable de seleccións y dos entradasA y B' Cuando s:0 L oA B e j e c u t a c i r c u i t o e l s : 1 c i r c u i t o r e a l i z aA + B . C u a n d o B. 2 de de mando el complemento La deducóión del circuito aritmético se ilustra en la Figura g-g. El diagrama de función se muestra en la Figura 9-9(a). Para de"suma,se necesita C,. :0' Para la par,t9d9 sustracción la parte -"""etit" el coáplementode B y C'^:1' La tabla de función se t" 9-9(b). Cuando s:0, X, Y Y, de ca.dasumador Figura la iirtu "r, debJn ser iguales a las entradas externas A, Y Bt 19! ""r"pf"t" C u a n d ós : 1 , s e d e b et e n e r X ¡ : A t v Y ¡ : B l ' E I ;;i;;""te. (b) Iio.tt" de salida debe ser igual al valor de s. El diagrama en típietapa una en combinacional circuito posición del muestra la ca del circuito aritmético. La tabla de verdad en (c) se obtiene lisü"á; los ocho valores de las variables de entrada binarias. La r"fiá" X, se hace igual a la entrada A, enocho entradas'-La sau É, pur^ las cuatro entradas cuando s: 0' Esta es isuat Itd;Í "complem"ttto d" B, pata las últimas cuatro entradas lgrif al ". : de Áalida simplificadas para los cirfunciones Lás 1. s .rr"ñdo cuitos combinacionalesson:
X¡: A, Y,:8,@s 389
Cout
Figura g-1O
Ci¡cuito sumado¡/sust¡acto¡ de 4 bits
El diagrama del circuito sumador sustractor de 4 bits se muestra en la Figura 9-10. Cada entrada B, requiereuna compuerta ORexclusiva.La variable de seleccións va a una entrada de cada compuerta y también al arrastre de entrada del sumador en paralelo. El sumador/sustractor de 4 bits . puede ser construido con dos CI. Un CI es el sumadoren paralelo de 4 bits y el otro es un CI de compuertasOR-exclusivascuádruples. 9-5
D I S E Ñ O D E L C I R C U I T OL O G I C O
Las microoperacioneslógicas manipulan los bits de los operandosseparadamentey tratan cada bit como una variable binaria. La Tabla 2-6 lista lG operacioneslógicas que pueden ser realizadas con dos variables binarias. Las 16 operacioneslógicas pueden ser generadasen un circuito y seleccionadas por medio de cuatro líneas de selección.Como todas las operaciones lógicas pueden obtenersepor medio de operacionesAND, OR y NOT (complemento),podría ser más convenienteemplearun circuito lógicojustamente con esasoperaciones.Para tres operacionesse necesitan dos variables de selección. Pero dos líneas de selección pueden seleccionar entre cuatro operacioneslógicas, de manera que se escogetambién la función OR-ex390
q 0
*.
I
MUX
F,= A, t B, Fi=Ai@Bi
F,= A¡8, F ¡ =A i
2
OR XOR AND NOT
3 Selección
(b) Tabla de función
(a) Diagrama lógico Figura
9-ll
Una etapa de un circuito Iógico
clusiva (XOR) para el circuito lógico que va a diseñarseen esta y en la sigriente sección. El método más simple y directo de diseñar un circuito lógico se muestra en la Figura 9-11. El diagrama muestra una etapa típica desigrradapor ¿l suscrito i. El circuito debe repetirsen vecespara un circuito lógico de n bits. Las cuatro compuertasgeneranlas cuatro operacioneslógicas OR, OR-exclusiva,AND y NOT. Las dos variablesde selecciónen el multiplexor seleccionanuna de las compuertasde la salida. La tabla de función lista la lógica de salida generadacomo una función de dos variablesde selección. El circuito lógico puede ser combinadoen el circuito aritmético para producir una unidad lógica aritmética. Las variables de selecciónsr y so pueden hacersecomunesa ambas seccionessiempre y cuando se use una tercera variable de seleccións2 para diferenciar entre los dos. Esta configuración se ilustra en la Figura 9-12. Las salidas de los circuitos lógicos y aritméticos de cada estado pasan por un multiplexor con la variable de seleccións2. Cuando sz : 0 se.seleccionala salida aritmética, pero cuando s, : 1 se seleccionala salida lógica. Aunque los dos circuitos pueden combinarsede esta manera, ésta no es la mejor forma de diseñar un ALU. Un ALU más eficiente puede obtenersesi se investiga la posibilidad de generaroperacioneslógicasde un circuito aritmético ya disponible.Esto puede hacerse inhibiendo todos los arrastres de entrada de los circuitos del sumador completo del sumador en paralelo. Considéresela función de Boole que generala suma de salida de un circuito sumadorcompleto: F¡:X¡O)iOq El arrastre de entrada C, en cada etapa puedehacerseigual a 0 cuando la variable de seleccións2 s€8 igual a 1. El resultado será: F,: X,@ Y, 391
"l
,:1 I
Una etapa de un circuito aritmético
Una etapg de un circuito lógico
Figura
Tabla 9-3
J2
sl
100 l0l ll0 rll
9-12
Combinando circuitos lógicos y aritméticos
operacionesrógicasen una etapa de un circuito aritmético
J0
X,
Y, C,
Ai 0 A¡Bi0 Ai B,' .4i10
0 0
F , : X , @ Y , Operación F¡: F,: Ft: F':
A¡ A,@B, A,OB, A!
'l'rasferir A XOR Equivalencia NOT
Operación requerida OR XOR AND NOT
Esta expresiónes válida debido a la propiedadde la operación oR-exclusi_ va.r o o: ¡. Así, con el arrastre de salida d,ecada etápa igual a 0, los circuitos del sumador completo generanIa operaciónoR-exciusiva. considéreseel circuito aritmético de ia Figura g-g. El valor de r puede seleccionarsepor medio de dos variables aá r.r*"i¿n que sean iguales a 0, 8,, B', o 1. El valor de X, es siempreigual a la entraáa A,. La Tabla 9-3 muestra las cuatro operacioneslógicas obtenidascuando la tercera va_ riable de seleccións2:1. Esta va¡iable de selecció";bliá a que c, sea igual a 0 mientras,gye rr J s' escogenun valor parti"irlu, d" cuatro operacioneslógicas obtenidas por esta configüraciónson x.'i", la irasfe_ rencia, la oR-exclusiva, la equivalenciáy el compleniento.La terceraentra_ da es la operaciónde equivalenciaporque: 4 @ Bi : A,B, + A;Bl : A,O B, La última entrada en la tabla es el NOT u operaciónde complemento va que:
A,@l:Ai 392
q sEc. 9-6
D I S E Ñ OD E U N A U N I D A DL O G I C AA R I T M E T I C A3 9 J
La tabla tiene una columna más la cual contienela lista de las cuarr, operacio_nes lógicas que se van a incluir en el ALU. Dos de estas operacrc,_ nes, la oR-exclusiva y el NoT están disponibles.La preguntaque áebe ser contestadaes de si es posible modificar el circuito árit"m¿tico-demanera que generelas funcioneslógicas oR y AND en vez de las funciones de tras_ ferenciay equivalencia.Este problema se investiga en la siguientesección. 9-6
D I S E Ñ O D E U N A U N I D A D L O G I C AA R I T M E T I C A
En esta secciónse diseña un ALU con ocho operacionesaritméticas y cuatro operacioneslógicas. Las tres variables de selección sz.sr y .s,,seleccionan ocho operacionesdiferentesy el arrastre de entrada c* se ,r.u pu.u seleccionarcuatro operacionesaritméticas adicionales.Con s; :0, las variables sr y so conjuntamente con Cln, seleccionanlas ochos operaciones aritméticas listadas en la Tabla 9-1. Con s, : 1, las variables y ,o ,"leccionanlas cuatro operacioneslógicas oR, oR-exclusiva, AND",y ñor. El diseñode un ALU es un problemade lógica combinacional.Debidoa que la unidad tiene un patrón regular, ésta puede fraccionarseen etapas idénticas conectadasen cascadapor medio de los arrastres. Se puede diseñar una etapa del ALU y luego duplicarla para conseguirel número de etapas requeridas.Hay seis ent¡adas a cada etapa: A,,8,, C¡, s2, s1 y s0. Hay dos salidas de cada etapa: la salida 4 y el alrastre de sálida c,*,. Se puedeformular una tabla de verdad con 64 entradasy simplificar las dos funcionesde salida. Aquí se escogeel uso de un procedimientoalterno que usa la disponibilidadde un sumadorparalelo. Los pasosde que se componeel diseño de un ALU son los siguientes: 1. Diseñar la sección aritmética independientementede la sección lógica. 2. Determinar las operacioneslógicas obtenidas del circuito aritmético en el paso 1, asumiendoque los arrastres de salida de todas las etapasson 0. 3. Modificar el circuito aritmético para obtener las operacioneslógicas requeridas. El tercer paso en el diseño no es un procedimientodirecto y requierecierta cantidad de ingenuidad por parte del diseñador. No hay guru.rtíude que se pueda encontrar una solución o que Ia solución use el -itrno número de compuertas.El ejemplo presentadoaquí demuestrael tipo de pensamiento lógico que-se requierealgunas vecesen el diseño de sistemasdigitales. se debe tener en.cuenta que se disponede varios ALU en óI lados. En un casopráctico, lo que se debe hacer es buscar un ALU"r,"upr,radecuado o unidad procesadoraentre los circuitos integrados que se obtienen comercialmente.Pero, la lógica interna del CI seleccionadodebehaber sido diseñadopor una personafamiliarizada con las técnicas de diseño lógico. _ La solución para el primer paso del diseñose muestra en la Figuia 9-g. La s<¡luciónal segundopaso de diseño es presentadoen la Tabla g-3. La solución para el tercer paso se deducea continuación.
¡ I
1
,
.t
,'.,
i
c
1 1 'I
i
I
394. DISEÑO LOGICO DE PROCESADORES
C A P ,9
De la Tabla 9-3 se observa que si .e: : 1, el arrastre de entrada C, en cada etapa debe ser_0. co1 srso:00 cada etapa así genera la función F, - ,4,. Para cambiar la salida a una operación oR, se dábe cambiar la entrada a cada circuito sumador completo de A, a e j+ 8,. Esto puede lograrse aplicando la función OR a B, y A, cuando s2srso:100. Las otras variables de selección que dan uña sálida indeseable ocurren 9ua¡d9 szsrs':110. La unidad de esta manera genera una salida d: Ai O Bi pero se requiere _generar la operación RñO F¡: AiB,. Se puld" investigar la posibilidgd de aplicar la función oR a cada entiada A, algnna función de Boole K,. La función que se obtiene se usa para X, óuan"o., do srsrso:110: F, : X¡ O l:
(At+ K)@ n; : AíBi+ KiBi+ A,iKi,Bi,
una cuidadosainspección del resultado revela que si la variable K,:8,, obtiene una salida:
se
F,: A,B, + BiBi + AiBiBi' : A,B, Dos términos son iguales a 0 porque BiB,,:0. El resultado obtenido es la operaciónAND que se requiere.La conclusión es que, si A, se aplica con Bj a una función OR cuando s2srs':110, la salida generala óperación AND. El ALU final se muestra en la Figura 9-18.solamente las dos etapasse dibujarr, pero el diagrama puede extenderse fácilmente a más etapas. Las entradas a cada circuito sumado¡ completo se especificanpor medio de las funcionesde Boole:
X¡: A¡ + srsisiB,* srsrs'oBi Y , : s o B*, s r B i Zt: Cuando sz :0,
s'2Ct
las tres funcionesse reducena: X,: A, Y , : s o B+, s r B i Z,:
C,
las cuales son las funcionespara el circuito aritmético de Ia Figura 9-g. Las operacioneslógicas se generancuando sz : 1. para s2srso: 1ó1 ó 111, las funcionesse reducena:
X¡: A, Y,:srB,*srBi
c:0
.q
.!
!
l
,Í .: ': 1
Figura 9-13
Diagrama lógico de una unidad lógica aritmética (ALU)
395
3 9 6 D I S E Ñ OL O G I C OD E P R O C E S A D O R E S
CAP. 9
La. salida d es igual a X¡ @ { y produce las operacionesoR-exclusiva y de complementocomo se especificáen la Tabl" g-g. cada A, con B, se aplican a una función OR cuandos2s1s6 :110, para producir lá operación oR como se ha discutido antes. caaa a, óon Bi sé aplióan a una función oR cuando s2srso:110 para producir una operaciónAND como se ha explicado previamente. _ !". 12 operacionesgeneradasen el ALU se sumarizan en la Tabla 9-4. La función particular se sele-ccionapor medio de s2, sr, so y C,.. Las operacionesaritméticas son idénticas a aquellas listádas para el circuito aritmético. El valor d9 c,. para las cuatro funcioneslógicasno tienen efecto en la operaciónde la unidad y aqueilasentradas." á"r"u' con X de no importa. Tabla 9-4 Tabla de función para el ALU de la Fizu¡a g_13
Selección
9-7
J2
J¡
0 0 0 0 0 0 0 0 I I I I
0 0 0 0
0 0 I I
Salida
0 0 I I 0 0 I I 0 I 0 I
0 I 0 I 0 I 0 I X X X X
F:A F:A+l F:AtB F=A*B*l F:A-B-l F:A-B F:A-l F=A F:AVB F=A@B F:AAB F=f
Función Trasferir A IncrementarA Suma Suma con arrastre Restacon préstamo Sustracción DecrementarA Trasferir A OR OR-exclusiva AND ComplementarA
REGISTRO DE CONDICION
Las_magnitudes relativas de dos núme¡os pueden ser dete¡minadasrestando un número de otro y luego combinando ciertas condiciones de los bits en la diferenciaresultante. Si los dos númerosestán sin signo las condiciones de los bits de algún interés, son el arrastre de salida y un resultado posible de cero. si los dos números incluyen un bit de signo en la posiciónde mayor orden, las condicionesprincipálesde los bits, so-nel signo del resultado, una indicación de cero y una cbndición de sobrecapacidád. Es -conv-eniente algunas vecessuplementarel ALU con un registro de condición donde se almacenan aquellas condicionesde los bits para análisis posterior. El estado de los bits de condición se llama algunas vecescódígo de condición de los bits o bits indicadores La Figura 9-14 muestra un diagrama de bloque de un ALU de g bits con un registro de condición de 4 bits. Los cuatro bits de condición se simbolizan por medio de c, s, z y v. Los bits se ponena uno ó cero comoresultado de una operaciónrealizadaen el ALU.
I
sEc,9-7
REGISTRO D E C O N D I C I O N3 9 7
1 . El bit C se pone a uno si el arrastre de salida del ALU es I y' se pc,ne a cero (borrado)si el arrastre de salida es 0. 2 . El bit S se pone a uno si el bit de mayor orden del resultadoen Ia salida del ALU (bit del signo) es 1y se pone a cero (borrado)si ei bit de mayor orden es 0. .J. El bit Z se pone a uno si la salida del ALU contienesólo cerosy se pone a cero (borrado)de otra manera. Z:1 si el resultado es cero y Z:0 si el resultado es diferente de cero. 4 . El bit V se pone a uno si la OR-exclusivade los arrastres Cs Y Cs es 1y de otra manera se pone a cero (borrado). Esta es la condición de sobrecapacidadcuando los números están en la representación de 2 (ver Sección8-5). Para el ALU de 8bits, de signo-complemento V se pone a uno si el resultadoes mayor que 127o menor que - 128. Los bits de condición pueden comprobarsedespuésde una condición de operaciónpara determinar ciertas relacionesque existen entre los valores de A y B. Si el bit V se pone a uno despuésde la adición de los dos Si Z se númeroscon signo, éste indicará una condición de sobrecapacidad. pone a uno despuésde una operaciónde OR-exclusiva indica que A: B. Esto es así porque ¡ @ r:0 y la OR-exclusivade dos operandosigualesda un resultadode sólo ceros,los cualesponen a uno el bit Z. Un solo bit de A puede comprobarsepara determinar si es 0 ó 1, al enmascarartodos los bits excepto el bit en prueba, para luego comprobar el bit de condícíón Z'
Selección
Registro de condición
CSZV-
Arrast¡e Signo Cero Sobrecapacidad Figura
9-14
Activación
de los bits en un registro de estado
398
D I S E Ñ OL O G I C OD E P R O C E S A D O R E S
CAP. 9
Por ejemplo,sea A: 101¡1100donde ¡ es el bit que se va a comprobar.La operaciónAND de A con B:00010000 producirá un resultado000¡0000.Si ¡ : 0 e l b i t d e c o n d i c i ó ns e p o n ea u n o p e r os i r : 1 e l b i t z s e b o r r ay a q u e el resultadoes cero. La operación de comparación es una sustracción de A menos B, excepto que el resultadode la operaciónno se trasfiere al registro de desiino, pero los bits de condición se afectan. El registro de condición suministra entoncesla información acerca de las magnitudesrelativas de A y B. Los bits de condición que se van a considerar'dependen de si se toman los dos númeroscon signo o sin él en la representaciónde complementode 2. considéresela operaciónA - B hecha con dos númerosbinarios sin signo. Las magnitudes relativas de A y B pueden determinarse de los valorés trasferidosa los bits de condición cl v z. si z: 1 se sabeque A: B ya que A-B:0. S i Z : A s e s a b eq u eA + 8 . D e l a T a b l a9 _ 2s e t i l n e q u e C : 1 s e t i e n e q u e c : 1 s i A > B y c : 0 s i A < 8 . E s t a sc o n d i c i o n eess t á nl i s t a d a s en la Tabla 9-5. La tabla da en su lista otras dos condiciones.para que A s e am a y o rp e r on o i g u a l a B ( A > B ) s e d e b et e n e r c : l y z:0. comoc se pone a uno cuando el resultado es 0, se debe comprobar z para asegurarse que el resultadono es 0. Para que A seameno.queó igual a il(¿.Bi el bit C debeser 0 (paraA
Relación
A>B A>B A
Estadodel bit de condición C:l
y
c:l C=0 C:0oZ:l Z:l Z:0
Z=0
Función de Boole
CZ' C C' C,+ Z Z
z'
I
C 399 DEDESPLAZAMIEf DEUN REGISTRO DISEÑO
SEC.9.8
positivo de manera que A debe ser_mayor que B. Esto es verdad sl n¡- :.:" st io¡.".upu.idad y y:0. Si el resultado se desbordapor sobrecapaciciaci que co¡una 8-5 la Sección en mostrado Fue obtendü un resultadoerróneo. cambia el signo del resultado.Por tanto, si 's : i dición de sobrecapacidad y V-- 1 esto indióa que el resultado deberíahaber sido positivo y por tant(-' A debeser mayor que B. A La Tabla-g-elista las seis relacionesposiblesque puedenexistir entre P a r a q u e A B c a s o ' c a d a V e n d e V f V t o t v a l o r e sc o r r e s p o n d i e n t e s? , S V sea mayor que pero no igual a cero (A> B), el resultadodebeser positivo o Como"u.,resultadode cero dará un signo positivo, se debe áii".u"iu de "e-. ur"goruque el bít z es 0 para excluir la posibilidadde A:8. Para A>-B u* *fi"i"rrte comprobar un signo positivo cuando no ocurre sobrecapacidad reo un signo negativo cuando o"rrrtl una sobrecapacidad.Pan A < B, el que tiene se sultado debe ser negativo. Si el resultado es negativo o cero' A<8. Las funcionei de Boole listadas en la tabla expresanlas condiciones del bit de condición en forma algebraica. (A-B) Bits de condición después de la sustracción de números Tabla 9-6 2 de en signo-comPlemento
Relación
Estado de los bits de condición
Función de Boole
A>B A>B A
Z:0 y (s:0,v:0ó s:l,I/:l) S:O,V:0ó S:l,V:r
z'(som ,soz
S:l,V:0ó
S:0,V:l
s:1, I/:0ós:0,v:lóZ:r
z:r z:0
u
iI
¡
II t'!
I
S@V
(s@v)+z Z Z'
1 I
9-8
DE DESPLAZAMIENTO D I S E Ñ OD E U N R E G I S T R O
La unidad de desplazamientoadjunta a un procesadortrasfiere la salida la Jel ALU al bus dé salida. La unidad de desplazamientopuedetrasferir l" puede desplazar o desplazamiento sin un ilinformación directamente precaución formación a la derechao a la izquieida. Se debe tener alguna vecesno haya tiasferencia del ALU al bus de salida. El para que algunas "Jesplaramientopioduce la microoperaciónde desplazamiento i"girtr'" ¿" comúnmenteno disponibleen un ALU' un circuito ob"io para un registro de desplazamientoes un registro_de pa.álelo. La informacióndel ALU iurga a"rptu"u*iento bidireccional ".t "o., ;;sferida al registro en p-aralelópara luego.desplazarlaa la de;;;á;;; a la izquierda. Ei esta configuraciónse necesitaun pulso de reloj ;*ü pulso " pái" f" trasferenciaai .egist.o de desplazamientoy se necesitaotro pulso necesario al agregados puisos son dos ñstos desplazamiento. ;;; desplazamientoal registro de "i iu." t.u.f"ri,. lu i.rformación del registro de destino.
4@
D I S E N OL O G I C OD E P R O C E S A D O R E S
CAP. 9
La trasferencia de_un registro fuente a un registro de destino puede hacersecon un pulso.de reloj si se configuru ,"gi.tio"aJ'a".ptrzamiento con un circuito combinacional. En un re"gistro "rau á".ptur"-ienio de lógi;; combinacional,las señalesdel ALU al büs a" propug"ra' por las compuertas sin la necesidadde r¡n pulso de reloj. "uriáu'." por tantó ei t'icó prriso de reloj necesarioen el sistema del procesadoreá p"r; ;;;;;, los datos del bus de salida al registrode destino. IJn registrode desplazamientode lógica combinacionalpuede construir_ s: coll multiplexores como se muestra lu Figura g-15. Lls dos variables de selecciónHt ! ilo aplicadas a los "tt cuatro ñultiplexores seleccionanel tipo de operaciónen el registro de desplazamiento.Co" A,/10:00 no se ejecuta_ndesplazamientosy las señales de F van ¿lr""iu-"rte -rrrr" a las líneas de s,. Las dos siguientes variabres de selección causan op"rución de desplazamientoa la derechao-la izquierda. C"u"áo-irn"r':11, los multi_ plexoresseleccionanlas ent¡adas conectadasa 0 y.o-olrru secuencialas salidas de s son también iguales a 0, bloque""¿ó r" trári.r"rr.i" de infor_ mación del ALU al bus de salida. La 'tabia g-z sumaiiz" 1, op..u"ión del registrode desplazamiento. _ El diagrama de la Figura g-15 muestra solamentecuatro estadosdel registro de desplazamiento.Este último por supuestodebe consistir de n estados en un sistema con n líneas en-paralélo. Las entradas 1, e 1. sirven como entradas-deserie para la primera y última durante un desplazamientoa la derechao a la izquierda réspectivame'ie. "táp", ot.u variable de selección puede se: emplead" pltu especificar que irá a I, e 1, durante el desplazamiento.Por ej-emplo,una tercera variable de seletciória, , cuando está en un estado puede selecciona¡ un 0 para la entrada en serie
Salida se¡ial
Salida serial
04 Figura
g-15
13 Registro
de desplazamiento
.t2 de 4 bits
a base de lógica
,Sl combinacional
q Tabla
9-7
Tabla de función para el registro de desplazamiento
Hl
Ho
Operación
0 0 I
0 I 0 I
S <- F ^S<- shr F S <- shl F S<--0
I
Función Trasferir F a S (ningun desplazamientor DesplazarF a la derechahacia S DesplazarF a la izquierda hacia F Trasferir0aS
durante el desplazamiento.Cuando H2 está en el otro estado la información puede circularse conjuntamentecon el valor del bit de condición. De esta manera un arrastre producido durante una operaciónde suma puede desplazarsea la derecha a la posición del bit más significativa de un registro. 9-9
UNIDAD PROCESADORA
Las variables de selecciónen la unidad procesadoracontrola las microoperacionesejecutadasdentro del procesadordurante cualquier pulso de reloj dado. Las variables de seleccióncontrolan los buses,el ALU, el registrode desplazamientoy el registro de destino. Se demostraráahora por medio de un ijemplo cómo las variables de control seleccionanlas microoperaciones en una unidad procesadora.El ejemplo define una unidad procesadoraconjuntamente con todas las variables de selección.Luego se discutirán las alternativas de las variables de control para algunas microoperacionestípicas. Un diagrama de bloque de una unidad procesadorase muestra en la Figura 9-r6(a). Este consiste de siete registros Rl hasta R? y el registro de condición. Las salidas de los siete registrosvan a través de dos multiplexorespara seleccionarlas entradasdel ALU. La entrada de datos de una luente externa se seleccionatambién con los mismos multiplexores.La salida del ALu pasa a través de un Iegistro de desplazamientoy luegova a un grupo de terminales de salida externos.La salida del registro de desplazamiento puede trasferirse a cualquiera de los registros o a un destino externo. Hay 16 variables de selecciónen la unidad y su función se especifica por una palabra de control en la Figura 9-16(b). La palabra de control de 16 bits cuando se aplica a las variables de selecciónen el procesador,especifica una microoperacióndada. La palabra de control se divide en seis campos,con cada campo designadopor una letra. Todos los campos,excepto C¡. tienen un código de tres bits. Los tres bits de A seleccionanun registro fuente para la entrada en la parte izquierdadel ALU. El campoB es el mismo, pe;o seleccionala fuente de información para la entrada derechadel ALU. El campo D seleccionaun registro de destino. El campoF conjuntamente con el bit etr C1, seleccionanuna función en el ALU. El campoH seleccionael tipo de desplazamientoy el registrode desplazamiento. 401
Datos de entrada
registros RlaRT
Selector de destino
Registrode condición
Registro de desplazamiento
Datos de salida (a) Diagrama de bloque
1
e l0 ll12 13 141516 B
D
F
lCr
H
(b) Palabra de control Figura 9-16
Unidad procesadoracon variables de control
Las funciones de todas las variables de selecciónse esDecificanen la Tabla 9-8. El códigobinario de 3 bits listado en la tabla espe;ificael código para cada uno de los cinco camposA, B, D, F y H.El registroseleccionado por A, B y D es aquel cuyo número decimal es equivalenteal númerobinario en el código.Cuando el campoA ó B es 000,el correspondiente multiplexor seleccionala entrada de datos. Cuando D:000, no se seleccionaregistro de destino. Los tres bits en el campo F conjuntamentecon el arrastre de entrada C;a, surluristran las 12 operacionesdel ALU de la maneraespe402
\ ^3 UNIDADPROCESADOR&
sEc. 9-9
para F:A' En cificada en la Tabla 9-4. Nótese que hay dos posibilidades pone a 1 (ver Tabla se caso y otro ,rr ."ro el bit de arrastre C se boria en el
e-2). Tabla g-g
9-16 Funciones de las variables de control para el procesadorde la Figura Función de las variables de selección
Código binario
B
I con
F con C,.: 0
D
Datosentr. Datossal- N i n g . 000 nl RI RI 001 R2 R2 R2 010 R3 R3 R3 I 0l n4 R4 R4 100 R5 R5 R5 l0l R6 Ró n6 l l0 R7 R7 R7 lll
Cn:
I
A+l A+B+1 A-B
A, C <-0 A+B A_B_I A-l AVB A@B AAB
A,C<-l
H No desplazamiento Despl. a la der., /^ : Q Despl. alaizq., It:O 0 al bus de salida Circular a la der. con C Circular a la izq. con C
T
especifica-nlas Las cuatro primeras entradas del código en e-l campo H de sevariable tercera Una 9-?. la Tabla d. opuru"iá"* á. d".pi"ráLi"trto I' ó e I, serie de entradas para las 0 un lección se usa pu," se conveniencia "'p".ificar Por C. ,rn-a..pt"ramiento ci-rála. con el bif de arrastre y a crc como arrastre con á.*ig"á un desplazamientocircular a la derecha right-shift (crc: circular la izquierda como .ir. n"to"ces la declaración with carry; clc: circular left-shift with carry): R<-crcR
I
es una abreviación de la proposición: R +- shr R,
C +- Rt
Rn<- C,
Rsedesplazaa|aderecha,subitme{lgssignificativoR.vaaCyelvalor a.-C uu a la posición del bit más significativo Rn' J" .onirol de 16 bi[s para especificaruna miSe necesita gene",'|'p"Iil;á lá unidad de proceso. La manera más eficiente de de unidad una en "rooñ"tu.lá;;|* tattiot bits es almacenarlas rar palabra. d. almacenadas están donde "orrlrJf;; control d,e memoria que funciona como rnemoria palabras de control se lee todas las palabras de control. La secuencia de a palabra para-iniciar la secuenciadeseada de la memoria de se llama micropro";t;i;;I"bra de microoper".iorr"..-ütt" tip" de or'ganizaciónde control Capítulo10' el i*Áot¡¿i y se discute en más detalle en dada puede ser derivamicrooperación pu1" una "'-";" á"-"""tio1 iálát.á en la Tabla 9-8' La definidas seleccién de da directamente¿e-ür-""tüúr.t microoperaciónde sustracción: Rl<-Rl-
R2
I
I
d
&
DIsEÑoLoGIcoDEPRocEsADoRES
cAP.9
especificaftl para la entrada izquieida del ALU, R2para la entrada dere_ cha del ALU. A - B para,l" op"r""iór, d"iÁLü;;i"*o'T;o;zamiento para el^registrode.desprazamiento Rr paia r";i.;;?;'d;.;i;". v De ra Tabra 9-8 se deriva la palabra de control "r esta operación óuru qu" sea 0010100010101000: A 001
BD
q,H 0 r0 001 0 r 0 r 000 F
Las palabras de control para esta microoperación y algunasotras se listan en la Tabla 9-9. La operaciónde comparar es similar a la microoperaciónde sustracción, exceptoque la diferencia no se tr".n"." ;**;;;'ie ¿e.tirro y sola_ mente los bits de condición se afectan. El "f de destino D campo en este caso debe ser 000. La trasferencia de ,Rau ns una operaciónALU F : A. ryc,ri"re La fuente A es r(x) v el destino D esrói. _nr.¿J,g" á".ii"J.io" B podría ser .oru porqlu el ALU ü;; Este campo se marca con 000 en la ::¡l:T"_t "; tabla por convenienciapero-cuarquier otro códigoá" úil;;dría ser usado. Para trasferir la enrrada de datos á ná,-Já"b";;;;i:000 para se_ leccionar la entrada exte¡na D:110 para I seleccionarel registro de destino' De nuevo el valor de.B-n_o_irnp"_rt" y la función ALU es F:A. para s a c a ¡d a t o sd e R 7 s e h a c eA : 1 1 1 n : g 0 0 ( ó 1 1 1 ) .L a o p e r a c i ó nd e A L U i F: Lcoloca la informaciónde nZal bus de salida. Es necesarioalgrrnasvecesborrar o po.ru. a 1 el bit de arrastre antes de-una -operacióncirculjrr_de despla"amie'to. n.io-pu"áu-¡r.".se con un códigode selecciónde ALU 0000ó'01ri. co' el ñ;.;;;;igo se tiene el bit c bo*ado v con el segundoel bit c *l lu tr"Jr"r"""iá"ñi"-nr, c*0 no carnbia el contenido.áel p".o borrará c y v. Los bits de selección ,registro, A y s se afectan de ifual -"netá.'si ni: o entoncesz se ponea 1, de otra manerase borrará. El bit s se pone a uno con el valor delbii-signo en ^R1. El pulso de reloj, que,disiara el registro de destino trasfiere también los bits de condición dei ALU at.egi.tro'¿e condición.t;.;it, de condición Tabla
g-9
Ejemplos de microoperaciones para un procesador
Palabra de control Microoperación Rl+--Rl-R2 R3-R4 R5 <--fi4 Itó <-.Entrada Salida <- R7 Rl<-¡Rl,C<-0 R3 <- shl R3 Rl<-crcRl R2<-0
F
C¡n
001 0t0 001 010 I 0ll 100 000 010 I r00 000 l0l 000 0 000 000 ll0 000 0 ul 000 000 000 0 00r 000 001 000 0 oil 0ll 0ll t00 0 001 001 001 100 0 000 000 010 000 0
Función 000 Sustrae¡ R2de Rl 000 Comparar RBy R4 000 Trasferir R4 a R5 000 Entrada de datos a g6 000 Salida de datos de.RT 000 Borrar el bit de arrastre C 010 trsspl¿pr a la derechaR3 con.L : 0 l 0 l C i r c u l a r a l a d e r .R l c o n b i t d e á r r a s t r e 0l I Borrar.R2
j! U N I D A DP R O C E S A D O R ^4 O 5
sEc. 9-9
son afectadosdespuésde las operacionesaritméticas. Los bits de condicion C y V se dejan sin cambiar durante una operaciónlógica ya que esosbits no tienen significadopara las operacioneslógicas.En algunosprocesadores es costumbreno cambiar el valor del bit de arrastre C despuésde una operación de incrementoo decremento. si se quiere colocar el contenidode un registroa un registrode desplazamiento sin cambiar el bit de arrastre, se puede usar la operaciónlógica OR con el mismo registroseleccionadopara las entradasA y B del ALU. La operación: R<-R!R no cambia el valor del registroR, sin embargo,colocael contenidode R a las entradas del registro de desplazamientoy no cambio los valoresde los bits decondiciónCyV. Los ejemplos en la Tabla 9-9 discutidos hasta ahora usan el código 000 de selecciónde desplazamientopara el campo H, para indicar una operación de no desplazamiento.Para desplazarlos contenidosde un registro se debe colocar el valor del registro en el registro de desplazamientosin hacerle ningún cambio al ALU. La proposiciónde la microoperaciónde desplazamientoa la izquierda: R3 <- shl R3 especificael código para la selecciónde desplazamientopero no el código para el ALU. El contenidode R3 puedecolocarseen el registrode desplazamiento para especificaruna operaciónOR entre .R3y el registromismo. La informaóión desplazadaregresaa R3 si ft3 se especificacomo el registro de destino. Esto requiereque los camposde selecciónA, B y D tengan el código 011 para R3, que el código de función del ALU sea 1000para la operación oR y que el selector Il de desplazamientosea 010 para el desplazamiento a la izquierda. El desplazamientocircular a la derechacon arrastre del registro R1 se simboliza por medio de la proposición: Rl<-crcRl Esta proposiciónespecificael código del registrode desplazamientopero no el códigopara el ALU. Para colocarel contenidode R3 en los terminales de salida del ALU sin afectar el bit C se usa la operaciónOR como se hizo anteriormente.De esta manera no se afecta el bit C en la operacióndel ALU, pero puedecambiarsedebidoal desplazamientocircular. El último ejemploen la Tabla 9-9 muestra la palabrade control para borrar un registro a 0. Para borrar el registroR2, se hace que el bus de salida contengasólo ceroscon.FI:011. El campode destinoD se haceigual al código del registro R2. Es obvio a partir de estos ejemplos que muchas otras microoperaciones pueden generarseen la unidad procesadora.Una unidad procesadora con un conjunto completo de microoperacioneses un elemento de propósito ge-
406 DISEÑO LOGICO DE PROCESADORES
C A P .9
neral que puede adaptarse a muchas aplicaciones. El método de trasferencia entre registros es una herramienta conveniente para especificar las operaciones en forma simbólica en un sistema digital que emplea una unidad de proceso para propósitos generales" El sistema se define primero con una secuencia de proposiciones de microoperación en el método de notación de trasferencia entre registros o en cualquier otra notación disponible de trasferencia. Una función de control se representa aquí no por una función de Boole sino por una cadena de variables binarias llamadas palabra de control. La palabra de control para cada microoperación se deriva de la tabla de función del procesador. La secuencia de palabras de control para el sistema se almacena en la memoria de control. La salida de la memoria de control se aplica a las variables de selección del procesador. Leyendo consecutivamente las palabras de control de la memoria, es posible darle secuencia a las microoperaciones del procesador. Así, todo el diseño puede hacerse por medio del método de trasferencia entre registros, el cual en este caso particular se refiere al método de la microprogramación. Este método para controlar la unidad procesadora se demuestra en la Sección 10-5.
9 - 1 O D I S E Ñ OD E L A C U M U L A D O R Algunasunidadesprocesadoras distinguenun registrode otrosy lo llaman registro acumulador. La organización de una unidad procesadora con un registro acumulador se muestra en la Figura 9-4. El ALU asociado con el registro puede ser construido como un circuito combinacional del tipo discutido en la Sección 9-5. En esta configuración, el registro acumulador es esencialmente un registro de desplazamiento bidireccional con carga en paralelo el cual es conectado a un AL[I. Debido a la conexión de retroalimentación de la salida del registro a una de las entradas en el ALU el registro acumulador y su lógica asociada, cuando se toman como una sola unidad, constituyen un circuito secuencial. Debido a la anterior propiedad un registro acumulador puede ser designado por técnicas de circuitos secuenciales en vez de usar un ALU de circuito combinacional.
Ci¡cuito combinacional
Variables de control
Ent¡adas de datos Figura
9-17
Diagrama de bloque del acumulador
I
--E D I S E Ñ OD E L A C U M U L A D O R 4 O 7
sEc.9-10
El diagramade bloque de un acumuladorque forma un circuito secuencial se muéstra en la Figurag-17. El registroA y el circuito combinacional asociado constituyen un circuito secuencial. El circuito combinacional .e*plaru al ALU pero no puede separarsedel registro ya que éste es solamenie la parte def circuito combinacionaldel circuito secuencial.EI registro A se irata algunas veces como el registro acumulador y se denota algunas vecespor eI símboloAC. Aquí, el acumuladorse refiere al registroA .,n circulto combinacionalasociado.Las entradas externas al acumu! " iado, son las entradas de datos de B y las variables de control que deterdel registro. El siguiente estadodel registro A minan las microoperaciones presentey de las entradas externas. estado dé un función una es En el Capítulo ? se consideraronvarios registrosque realizan funciones específi""Átul". como la carga en paralelo, las operacionesde desplazamiento y el conteo. El acumulador es similar a estos registrospero es más generálya que éste puede realizar no solamentelas funcionesanteric,", .ino tamLién otras operacionesde procesamientode datos. Un acumulador es un registro de multifunción que por sí mismo puederealizar todas las microopericionesen la unidad procesadora.Las microoperacionesincluidas en un acumulador dependende las operacionesque deben incluirse en el procesadorparticular. Para demostrar el diseño lógico de un registro operaclonalde multipropósito tal como un acumulador se diseña el circuiEl procedimientoenunciadoen esta sección tó con nueve microoperaciones. puede ser usado para extender el registro a otras microoperaciones. para el acumuladorse da en Ia Tabla El conjunto áe microoperaciones pe son generadaspor los circuitos pr hasta 9-10. Las variables de control como funciones de control que consideradas y ser iógi"o. de control deben inician las operacionescorrespondientesde trasferencia entre registros. El registro A es un registro fuente en todas las microoperacioneslistadas. En es*enciaéste representael estado presentedel circuito secuencial.El registro B se usa como un segundo registro fuente para microoperaciones qu"enecesitan dos operandos.El registro B se asume que está conectado al Tabla
Variable de control Pt Pz Ps Pq
Ps Pe Pt Ps Ps
9-lO
Lista de microoperaciones de un acumulador
Microoperación A<_A+ B A <-0 A e-.f A<-A \B A<_A\/ B A<-.A@B A <-shr A A +-sl:JA A<-A*l Si (A : 0) entonces(Z: l)
Nombre Sumar Borrar Cornplementar AND OR OR-exclusiva Desplazara la derecha Desplazara la izquierda Incremento Comprobarel cero
4 O 8 D I S E Ñ OL O G I C OD E P R O C E S A D O R E S
CAP. 9
acumulador y suministra las entradas al circuito secuencial.El registro de destino para todas es siempre el registro A. La ^las-microop"ru"ione. nueva información trasferida a A constituye el .igri.rit. estadodel ci¡cuito secuencial.Las nueve varigbles de controi r" .on"riá"rá.,lam¡ién como ent¡adas al circuito secuencial.Estas variabres son mutuamente v solamente una variabre debe ser h;bili;;il;il#ürre "*.]"v*r", un pulso de reloj. La última entrada en la Tabla 9-10es una declaraciónde control con_ dicional- Esta produce un 1 binario u'u variable de salida z, cuandoel contenido d_elregistro A es 0, es decir, "r, .rrunao lo. liiil¡oo. del registro están borrados. P r o c e d i m i e n t od e d i s e ñ o El acumuladorconsistede n etapasy-n flip_flops Ar, Ar, ..., A, nume_ radas consecutivament. desde'r" ó.i.iiiir-¿'" lu extrema iz_ quierda. Es convenientera "o-"nru.rdo partición ael a"umuíJ;;-;; ; etapassimilares compuesta cada una dg u.l flip_flop denotado ¿,, entrada de da_ tos denotadapor B, y- ra rógica combi.racionar "orno asociadá"na flip-flop. En procedimiento el de diseño que sigue se considerasolamente "o., "r una etapa tí_ pica i teniendo en cusrta qué un a-cumulador d"; bit. ;;;siste de n etapas parai:I,2, . . . , n . C a d a e t a p aA , s e i n t e r . o r r e . t uu . r r - r l u p " a, , vecina a su derechay a ta A,+.r suizqúierd;-i;;;i;;;;;; y taúltima A, ! no tienen vecinasa un y debeprestárserésatenciónispeciar. El _lado regis_ tro se diseñaráusandoflip_flópsdel iipo./f. C a d a v a r i a b l ed e , c o n t r o l ' p ,j : f , 2 , . . . , g inicia una microoperación particular. Para que.la t.r,g" significado .. á.¡" -opera-ciór, ;;; solamenteuna variable de controt ,e r,á¡itiá "".d;; a"ao. como las variables de contror son excluy".rt"r- *rrtrramente, "" ""}"liJ es posibre separai el circuito combinacionalde u'u ót^p" en circuito. Á.rro.i., uno para cada microoperación.Así, el acumulador se d"b" áilidr-;;-;';;pas y cada una se debe secciona¡en aqueilos circuitos_quese necesitanpara la microoperación. De esta manera, se.puede simpliiicar ai."ao conside_ rablemente.una vez que lás dife¡entespiezas "i;;;;;'iu se disenen separadamente, será posible cambiarlai pata obtener una etapa típica del -- acumulador y luegocambiar las etapasen un acumulado¡ "o-pf"tá.--Aql"gar B (pr): a A La microoperaciónde suma se inicia cuando . la variable de control pr es t. Esta párte ael acumulaá- pr"a" usar un sumador en paralelo_compuesto de circuitos ."-"¿or"r-.lir,pleto. como fue hecho con el ALU. El sumadorco-mpletoen cada etapa i aceptarácomo entradas e.l estat presentede A,, la'entrada ¿e áat-J¡, i"r bit de arras_ tre. previo c¡. El bit suma generadoen el sumad;;;;;i"to debeser tras_ al,flip-flop A, v el ariastre au rutiau c,., ;rb;-;;i;.".." ferido, ut arrastre de entrada en la siguienteetapa. La construcción interna de un circuito sumador completo puede ser simplificada si se consideraque ésta opera como parte de un ci¡cuito se_ cuencial. La tabla de estadode rr.r.,r-udo. se considera como un circuito secuencial,se muestra en la""ÁprJt",-"""i¿o g-1& ñl ,"1"; d; fi;: Figirra -".1;Jo-;refente flop A, anterior al pulso de reloj expecifica en el cir"l
sEc.9-10
\
t
O I S E Ñ OO E L A C U M U L A D O R4 O 9
cuito secuencial.El valor de A, despuésde la aplicación de un pulso de reloj especificael siguiente estado. El siguiente estado de A, es una función de sus estadospresentesy entradas B, y C,. El estado presente ) las entradasen la tabla de estadocorrespondena las entradasdel sumado¡ completo.El estadosiguientey la salida C¡a1 corr€spondea las salidas del sumador completo. Pero como éste es un circuito secuencial,A, aparece en ambas columnas de estadopresentey siguiente.El siguiente estado de -{, da el bit suma que debetrasferirseal flip-flop. Las entradas de excitación para el flip-flop JK se listan en las columnas JA, y KA,. Estos valores se obtienen por el método enunciado en la Sección6-7. Las funcionesde entrada del flip-flop y las funcionesde Boole para la salida se simplifican en los mapas de la Figura 9-18. La entrada J del flip-flop A, designadacomo JA, y la entrada K del flip-flop A, designada como KA, no incluyen la variable de control pt. Estas dos ecuaciones deben afectar el flip-flop solamente cuando pt esté habilitada, por tanto debenaplicarsea una función AND con la variable de control pt. La parte del circuito combinacionalasociadacon la microoperaciónde suma puedeser expresadacon tres funcionesde Boole: JA,:
3,6,'r, + BiC¡t,
KA,:
B,C,'p,+ BiC¡t,
C¡*t: AiBi + AiCi+ BiCi Las primeras ecuacionesson idénticas y especificanuna condición para complementarA,. La tercera ecuación genera el arrastre de la siguiente etapa. Estado presente Entradas Ai
Bi
0 0 0 0
00 0l l0 tl 00 0t l0 ll
I I I I
ci
Estado Entradas de siguiente flip-flops Salida JAí KAi
Ai
0
OX IX IX OX XO XI XI XO
I I 0 I 0 I
C¡*t 0 0 0 I
0 I I I
Bi I A ., L {
X
X
w A
X
X
X
x
I I
g--J L,¡
JA¡=B¡C'¡+BiC¡ Figura
9-18
KAí= Bic'i + B'íCi
C¡*1=A,B, + AiCi + Bici
Tabla de excitación para la microoperación de suma
I
4IO
CAP. 9
D I S E Ñ OL O G I C OD E P R O C E S A D O R E S
Borrar (pz't: La variable de control p, borra todos los flip-flops en el registro A. Para causar esta transición en el flip-flop JK se necesita solamenteaplicar la variable de control p2 a la entrada K del flip-flop. La entrada J se asumirá como 0 si nada se aplica a ella. Las funcionesde entrada para la microoperaciónde borrado son: JA,: g KA,: P, Complementar (pa ): La variable de control p, complementa el estadodel registroA. Para causar esta transición en un flip-flop Jl( se necesita aplicar p3 a ambasentradasJ y K: JA¡: PI KA': pt AND (pn): La microoperaciónAND se inicia con la variable de control p. . Esta operación forma la operación lógica AND entre A, y B, y B¡
B¡
Ai JA¡'
O
KAi
B'i
(a) AND Entradas de
lA¡,=3'
KAi'-- O
o) oR B¡
Estado Entradas de Estado presenteEntrada siguiente los flip-flops TAi
OX tX X0 XI
KA¡
I A¡:
Bi
(c) OR-exclusiva Figura
9-19
T a b l a s d e e x c i t a c i ó n para las microoperaciones lógicas
KA¡:3'
I DISEÑO DEL ACUMUi-ADOF ¿: i
sEc. 9-10
t r a s f i e r e e l r e s u l t a d o a A , . L a t a b l a d e e x c i t a c i ó n p a r a e s t a o p € r a c r L ) ns E da en la Figura 9-19(a). La siguiente etapa de A, es l solamente cuancitr B, y el estado presente de A, sea igual a 1. Las funciones de entrada dei flip-flop, las cuales se simplifican en Ios mapas, indican que la entrada /r del flip-flop se habilita con el valor del complemento de .B,. Este resultado puede ser verificado de las condiciones listadas en la tabla de estado. Si B, : I el estado presente y siguiente de A, son iguales de manera que el flip-flop no tiene que sufrir un cambio de estado. Si B, :0, el siguiente estado de A, debe ir a 0 y para lograrlo se habilita la entrada K del flip-flop. Las funciones de entrada para la microoperación AND deben incluir las variables de control que inician esta microoperación: JA,:
g
KA,:
Bipa
OR (p, ): La variable de control p" inicia la operación lógica OR entre A, y B, con el resultado trasferido a A,. La Figura 9-19(b) muestra la deducción de las funciones de entrada del flip-flop para esta operación. Las operaciones simplificadas en Ios mapas indican que la entrada J está habilitada cuando B, : l. Este resultado puede ser verificado a partir de la el estado presente y siguiente de A' son tabla de estado. Cuando B¡:0, iguales. Cuando B¡ : l, la entrada J se habilita y el estado siguiente de A, se convierte en 1. Las funciones de entrada para las microoperaciones OR son:
JA, : B¡tt KA,: g OR-exclusiva (po ): Esta operaciónforma la OR-exclusiva lógica entre A, y B¡ y trasfiere el resultado a 4,. La información pertinente para esta operaciónse muestra en la Figura 9-19(c).Las funcionesde entrada de los flip-flops son: JA, :
B¡t6
KA,:
B¡tu
Desplazamiento a la derecha (pt ): Esta operación desplazael contenido del registro A una posición a la derecha. Esto significa que el valor del flip-flopA¿ar, €l cual está una posición a la izquierda de la etapa i, debe ser trasferido al flip-flop A¡. Esta trasferencia se expresa por medio de las funcionesde entrada; JA,:
A,*tp,
KA,:
Ai*tpt
D e s p l a z a m i e n t o a l a i z q u i e r d a ( p ¡ ¡) : E s t a o p e r a c i ó n d e s p i a z a e l registro A una posición a la izquierda. Para este caso el valor de A, r , el
4 12
D I S E Ñ OL O G I C OD E P R O C E S A O O R E S
CAP. 9
cual está una posición a la derecha de la etapa i, debe ser trasferido a Ai. Esta trasferencia se expresa por medio de las funciones de entrada: JA, : A,-rps KA':
A"-tPa
rncremento (ps ): Esta operación incrementa el contenido del registro A en uno; en otras palabras, el registro se comporta como un contaáor binario asincrónico con pe habilitando la cuenta. un contador sincrónico de 3 bits se muestra en la Figurag-20. Este es similar al contador de la Figura 7-17 de la Seccién 7-5 donde se discute en detalle la operación de los contadores binarios sincrónicos. Del diagrama, se observa que cada etapa se complementa cuando un arrastre de entrada E,:1. Cada etapa genera también un arrastre de salida 8,11 para la siguiente etapa de la izquierda. La primera etapa es una excepción ya que ésta se complementa con ét ttauilitador de cuenta pn. Las funciones de Boole de uná etapa típica pueden ser expresadas de la siguiente manera:
JA,: E, KA,: E, E,*r: E,A,
i:1,2,...,n
Et:Ps
E I arrastre de entrada E, a la etapa, se usa para complementar el flip-flop A
cada etapa genera un arrastre para la siguiente, aplicando la función
Et: ps L---
----J
Figura
g-2O
Contador binario sinc¡ónico de 3 bits
T D E LA C U M U L A O O4A1 3 DISEÑO
S E C .9 . 1 O
AND al arrastre de entrada y a A¡. El arrastre de entrada que va a la primera etapa es E1 y debe ser igual a la variable de control pe la cuai habilita la cuenta. del cero (z)z La variable z es una salida del acumucomprobación lador usaáo para indicar un contenido de cero en el registro A' Esta salida es igual al blnario 1 cuando todos los flip-flopl se hayan borrado. cuando ,rr, ñip-flop se borra, su salida complementada Q' es igual a 1. La Figura 9-21 -uu.[ru lás primeras tres etapas del acumulador para comprobar un conteCudu etapa genera una variable z¡¡y &l aplicar la función nido de "".oi. AND a la salida complementada de A¡ Y a una variable-de entrada z,.I)e esta manera una cadena de compuertas AND a lo largo de todas las etapas indicará si todos los flip-flops están borrados. Las funciones de Boole para una etapa típica pueden ser expresadas de la siguiente manera:
-
¿i+l
-- .-i ^ ^t '
zt:
I
Zr+l:
Z
i:1,2,..,,n
La variable Z se convierteen 1 si Ia señal de salida de la última etapa2,. t es 1. Una etapa del acumulador Una etapa típica del acumulador consistede todos los circuitos que fueron individuales. Las variables de control deducidáspara las microoperaciones p1 hasta pn rotr excluyenles mutuamente de manera que los circuitos Iópuedenser combinadoscon una operaciónOR. Com!i.or "or.l.pondientes Éinandotodas las funcionesde entrada para las entradasJ y K del flip-flop
Etapa 3 Cadena de compuertas AND Figura 9-21 de ceros en el registro
para comprobar el contenido
Fz Borrra¡ P3 Complementar
% AND Ps oR Po OR-exclusiva
" ¡| | P.t Desplazamiento a la derecha
PB Desplazamiento a la izquierda
Incremento
Figura g-22
Una etapa tipica del acumulador
D l s E Ñ oD E ' ,i -c l - \ t u * : l ' :
s E c .9 - 1 O
:' '
de entracia cle B'" '¿ A, se produce un conjunto compuesto de funciones para un estado tíPico: JA,: KA, :
B,Cipr* B,'C¡tr+p3+ B,ps-f B'pu+ A'*tPt *A'-''p'+ B,C,'p, + BiC¿t, * Pz * pt + BiPq * B,pot A''*tPt
E'
+ A:-tPs * Ei Cadaetapaenelacumuladordebegenerartambiénlosarrastresparala siguiente etaPa: C+r: AiBi+ AiC¡+ BiCi
E,*r: E,A, zr*r: z,A', se muestra El diagrama lógico de una etapa típica.de un.ac.umulador de Boole funciones las de directa la configúracián en la Figurag-22. n-r1u que incluye "" Iistadas anteriormente.El diagrama es un circuito compuestoLos diferenmicrooperación' los circuitos indirriáualesasocádos con cada lu. entradasJ y K del tes circuitos se combinan con dos compuertasoR er-t flip-flop A'. de control p1 hasta cada etapa del acumulador tiene ocho entradas La variable de posibles' ps eue indican unu a" Ias ocho microoperaciones la operapara h^abilitar etapa primera control p" se apliá ,álu-"rrtu a la en el entradas seis olras háy 8,, enlrada la ción de incrementou-ir*¿. de enlas B que suministran circuito. B, es el bi; áe datos de los termi'áles a previa etapa Ia de .la tradas al acumulador. c¡ es el arrast-rede entrada que está una posición a la deflip-flop del salida iá de vienl A,,, derecha. r e c h a y A , l l v i e n e a " t n i p - n o p q u ' u t t á u n a p o s i c i ó n ayl a i zse q uusa i e r para d a ' { ltortj z¡ el arrastre ae errtruJapurá tu bpétu.ión de incremento -e. cero. El circuito tiene cuatro salidas: A, mar la cadena pu* d"i"""ión áe urru*tre para la siguiente etapa, E'*1 u.--iu-rulidu a"inii iiáp,-ó;;' "1 etapa y. z¡aI €s para la sies el arrastre de incremento para Ia siguiente para la detección de cero. cadena pára formar"la u ru iñ;i;;a;, g"r""ü"t"|"
i
1 I { I
1
1 t
1
{
1
Acumulador comPleto U n a c u m u l a d o r c o m p l e t o c o n n b i t s r e q u i e r e n e s t a d o s cla o nFigura ectado sencas9-22' mostrado en cada con cada etáfí^"á"t."i""ao el ciicuito aplicadasa cada etaTodas las variabll! de control exceptopn deben_ser estar conectadasen deben etapa y salidat-"'-t"ti" pa. Las otras entradas i".*¿u para formar un acumuladorcompleto' ----r completose acumulador La interconexiónentre etapaspara fot-ar un bloque Cada 9.23. Figura la ilustra en el acum,,t,ao, de 4 bits mostradoen g-zzde Ia número nt Figura la de circuito en el diagr"*",;;;;.;ta-ei p a r t e s u p e r i < l r c l e c a d a b l o q u e r e p r e s e n t a i a p o s i c i ó n d e b i t epi n e l a l:: cumula) ;;;ii"" ocho variablés cle control pr l]:tu dor. Todos io. nro-qrres otra-qseis ent,radasy cuatro salidas en cada ;;il";--Je-.eloj del cp. Las
I l
o o !
f l sv .oi !4
ü
i r58e 'rv\r{\
N,3 NV\IQ
i-
o
NU\QJ
,s"
d
rv Í\ )kr. ] \
-É -
ú
\J\ta
q"*.(r.{ao{ N
s l b
I
N l ) \ f ¡ J
b¡
l\
oco
<ü
ú<.9
416
) R O B L E M A S4 / 7
bloque son idénticas a aquellasde una etapa típica, exceptoque el suscrito i se remplazarrl el númeroparticular en cada bloque. El circuito tiene cuatro entradasB. La cadenade detecciónde cero se obtiene conectandolas variables z en cascada,con el primer bloque que recibe una constantebinaria 1. La última etapa en esta cadenaproduce la variable de detecciónde cero Z. Los arrastresde la suma aritmética se conectan en cascadacomo en los circuitos del sumador completo.La entrada en serie para la operaciónde desplazamientoa la izquierda,va a la entrada A6 la cual correspondea A,-t en la primera etapa. La entrada en serie para la operaciónde desplazamientoa la derecha,va a la entrada A, la cual correspondea A,+t en la cuarta y última etapa. La operaciónde incrementose habilita con la variable de control Pg €n la primera etapa. Los otros bloquesreciben el incrementode arrastre de la etapa previa. El número total de terminales en un acumuladorde 4 bits es 25 incluyendo los terminales para las salidas A. Agregandodos terminales más para la fuente de poder el circuito se puedeencapsulardentro de un CI que tenga27 ó 28 patillas. El número de terminalespara las variablesde control puedenreducirsede 9 a 4 si se agregaun decodificadoren el CI. En tal caso, la cuenta de las patillas del CI puedenser reducidasa 22 y el acumulador sin agregarpatillas externas. puede ser extendido a 16 microoperaciones REFERENCIAS Englewood Cliffs,N.J.: Prentice1. Mano,M. M., ComputerSystemArchítecture. Hall. Inc..1976. Dallas,Texas:TexasInstruments, 2. The TTL Data Bookfor DesignEngíneers. I¡c., 1976. Famíly Data Booh.Sunnyvale,Calif.: Ad3. The Am2N0BipolarMícroprocessor Inc.. 1976. vancedMicro Devices. 4 . Sobel,H. 5., Introduction to Digital ComputerDesign.Reading,Mass.:Addison-
WesleyPublishing Co., 1970. 5 . Kline, R. M., Digítal ComputerDesign.EnglewoodCliffs, N.J.: Prentice-Hall,Inc., 1977. o . Chirlian, P. M., Analysisand Design of Digital Círcuits and Computer Systems. Champaign,Ill.: Matrix Publishing, Inc., 1976.
PROBLEMAS Modifique la unidad procesadorade la Figura 9-1 de manera que el registro de destino seleccionadosea siempre el mismo registroque se seleccionacon el bus A. ¿Cómoafectaesto al númerode multiplexoresy al númerode líneas de selecciónusados? 9-2. Un procesadorcon un bus organizado como en la Figura 9-1 consiste de 15 registros.¿Cuántaslíneasde selecciónhay en cada multiplexor y en el decodificador de destino? 9-3. Asuma que cada registroen la Figura 9-1 es de 8 bits de largo. Dibuje un diagrama de bloque detallado para el recuadro marcado MUX que seleccionael 9-1.
4IB
D I S E Ñ OL O G I C OD E P R O C E 5 A D O R E S
CAP. 9
registro para el bus A" Muestre que Ia selección puede hacerse con ocho multiplexores c¡e4 a 1 iínea. 9-4.
9-5.
9-6.
9-7'
una unidad procesadora emplea una memoria tapón como en la Figura 9-2. El procesador consiste de 64 registros de ocho bits cada uno. (a) ¿Cuál es el tamaño de la memoria tapón? (scratchpad memory)
(b) ¿Cuántaslíneasse necesitanpara la dirección? (c) ¿Cuántaslíneashay para los datos de entrada? (d) ¿Cuál es el tamaño del MUX que seleccionaentre la entrada de datos y la salida del registrode desplazamiento? Muestre un diagrama de bloque detallado para la unidad procesadorade Ia Figura 9-4 cuando las entradasB vienen de: (a) Ocho registros procesadoresque forman un sistema de bus. (b) Una unidad de memoria con direccionesy registrosseparadores. El ALU de 4 bits de la Figura 9-5 se incluye dentro de un cI. Muestre las conexiones entre tres cI para conformar un ALU de 12 bits. Asigrre los arrastres de entr¿:day salida en el ALU de 12 bits. El CI TTL ti¡xr 7487es un elemento de 4 bits verdadero,/complemento,ceto/ uno. Una etapa de este CI se muestraen la Figura P9-?. Bi
Figura
Pg-?
Circuito verdadero,/complemento, uno/cero
(a) Deduzca las f'unciones de Boole para las salidas { como función de las entradas ,B,, s, y s¡ " (b) Dibuje la tal¡ia de verdad para el circuito. ( c ) Dibuje una r..ablade función (similar a aquella mostrada en Ia Figura 9-z) y verifique la operación del circuito. j-.q'
Modifique el circuito aritmético de la Figura 9-8 incluyendo una tercera variable de selección s2. Cuando sz : 1 el circuito modificado es idéntico al circuito original. Cuando s¿ :0, todas las entradas A a los sumadores completos son inhibidas y se colocan ceros de remplazo. (a) Dibuje el diagrama lógico de una etapa del circuito modificado. (bt Haga un análisis similar a aquel de la Figura 9-6 para determinar las ocho operaciones cuando s: :0. (c ) Liste las nuevas funciones de salida en forma de tabla.
9-9.
Dete¡mine las operaciones aritméticas obtenidas en ocho bloques de la Figura 9-6, sr en cada caso la entradaA se cambia aF(complementó de¿).
9-10. Diseñe un ci¡cuito aritmético con una variable de selección s y dos entradas de datos a y B. cuando s : 0, el circuito realízala operación de suma F : A+ B. Cuando s:1, el circuito realiza la operación de incremento F:A* 1.
T P R O B L E M A4 S' I9 p r o d u c eu n a d i f e r e n c i ac o r r e c t as i 9 - 1 1 . L a s u s t r a c c i ó nb i n a r i a d i r e c t a F : A - B A < B ? D e t e r m i n el a r e l a c i ó ne n t r e e l s i A > 8 . ¿ C u á lp o á r i " s e r e l r e s u l t a d o en Ia posiciónmás significati'a' préstamo y de bit F el en obteniJo resultaáo g-12. Diseñe un circuito aritmético con dos variablesde selecciónst Y so que generalassigulentesoperacionesaritméticas.Dibujeeldiagramaiógicodeuna etapa tíPica. sl
Crn: I
Ctr:o
S6
F:A+B+l F:A+l
F=A+B F:A F:E F:A+E
0 0 I I
F: E+r +l r:l+E
g-13. Diseñe un circuito aritmético con dos variables de seleccións1 ! s¡ Qu€ lógico de ru. .leul."i.s operacionesaritméticas. Dibuje el diagrama ;;;;; una etapa flplca'
F:A+l F:A-B F:B-A F:A+B+l
F:A F:A-B-l F:B-A-l F:A+B
0 0 I I
I
C¡:
Cr': o
s0
Jl
g-14. Las siguientes relacionesde la operación oR-exclusiva fueron usadaspara derivai ias operacioneslógicasde la Tabla 9-3' (a)xO0:x (b)xOl=x' (c)xOY':xOY Pruebe que estas relacionesson válidas' g-15. Deduzcaun circuito combinacionalmínimo que generetodas las 16 funciones lu Tublu 2-5. Use cuatro ,ráriablesde selección.Sugerencia: ló;i;;. listadas ".r normales del UJe ur multiplexoi áe 4 x 1 invertido, es decir, use las entradas lógica. para la unidad selección de líneas las c-omo multiplexor con la variable 9-16. Modifique el circuito aritmético de la Figura 9! en u¡ AlU al circuito arit: idéntico es ¡'l'U 0' sz ' Cuando s2 modo de selecciónde "t de acuerdoa la lógicas funciones ALU generaias mético. Cua.tdo rr:1,'el siguientetabla: S2
sl
S6
0 I 0 I
Salida
Función
F:AAB F:A@B F:AVB F__A-
AND XOR OR NOT
4 2 O D I S E Ñ oL o G l c o D E P R o c E S A D o R E S
CAP. 9
9-17. una unidad lógica aritmética es similar a la mostradaen la Figura g-18, ex_ cepto que las entradasa cada circuito sumadorcompletoestánte u.,ru.ho las siguientesfuncionesde Boole: " X,: A,B¡ + (s2s\s[)'A,+ s2s1si_B¡ Y, : ssB,+ s,Bi(s2s,si)' 21 : s2C¡ Determinelas 12 funcionesdel ALU. 9-18. La operaciónrealizadaen un ALU es F: A+B @ más el complementode 1 d e8 ) . (a) Determineel valor de salida F cuandoA:8. Permita que esta conclición pongaa uno un bit de condiciónE. (b) Determine,que l a - . c o n d i c i óC n o u t : l . p e r m i t a q u e e s t a c o n d i c i ó np o n g aa uno el bit de condición C. (c) Deduzcauna tabla para las seis relacioneslistadas en la Tabla 9-5 en términos de las condicionesde los bits de condición E y c definidos ante_ riormente. 9-19. [-Ina unidad de proceso.tieneun registro de condición de diez bits, uno para cada una de las condicioneslistadas en las Tablas g-s s-0. (Las condicio_ v nes.iguales y desigualesson comunesa ambas tablas.)"Dibuje un diagrama lógico mostrando las compuertasque van de las salida. á.iÁt u a los diez bits del registro de condición 9-20' Dos númerosco1 signo-¡eagreganen un ALU y su suma se trasfierear registro R. Los bits de :ondición s (signo)y v (sobrecap..r¿rJise afectanduranpruebe te, la trasferencia. que la suma puede dividirse ahora por 2 de acuerdo a Ia proposlclon:
R<-shrR,
r R , < - S@ /
donde R, es el bit de signo (posición extrema izquierda) del registro r?. 9-21. Agregueotro multiplexor al registro de desplazamientode la Figura 9-1b con dos líneas de selecciónseparadasGr y Go. Este multiplexor se usa para especificar la entrada en serie .fr durante la operación de desplazamiento a Ia derechade la siguiente manera: Gl
Go
0 I 0 I
Función Colocar ceros a 1. Hacer un desplazamiento ci¡cular Hacer un desplazamiento circular con arrastre Coloque el valor de S O Vpara el desplazamiento aritmético (ver Problema 9-20)
Muestre la conexión del multiplexor entie el registro de condición y el desplamiento. 9-22. El selector de desplazamiento I/ deñnido para el procesador de la Figura 9-16 tiene tres variables Hr, H, y fr6. Las dos últimas variables de selócción se
E PROBLEMAS421 usan para el registro de desplazamiento especificado en la Tabla 9-7. Diseñe el circuito asociado con la variable de selección H2 . 9-23. Especifique la palabra de control que puede ser aplicada al procesador de la Figura 9-16 para configurar las siguientes microoperaciones:
(a) R2<-Rl+ I (b) R3 <- R4 + R5 (c) R6 <-R6 (d)R7<-R7 - I
( e )R l < - s h r R l (l) R2 <- clc R2 (g) R3 <- R4 O R5 (h) Ró <- R7
9-24. Es necesario calcular el valor promedio de cuatro números binarios sin signo almacenados en los registros R1, R2, R3 y fi4 del procesador definido en la Figura 9-16. El valor promedio se debe alrnacenar en el registro 85. Los otros dos registros en el procesador pueden usarse para resultados intermedios. Se debe tener cuidado de no causar sobrecapacidad. (a) Dé Ia lista de la secuencia de microoperaciones en forma simbólica. (b) Liste las palabras de control binarias correspondientes. 9-25. La siguiente secuencia de microoperaciones se realiza en el acumulador definido en la Sección 9-10. ptt
A*
ps:
A<-A*l
pi
A<-A*
P{
A-l
ps;
AeA
F
B
* |
(a) Determine el contenido de A después de cada microoperación si inicialmente A : 1101 y la entrada B: 0110. (b) Repita (a) con las condicionesiniciales A:0110 y B:1101. ( c ) R e p i t a ( a ) c o n l a s c o n d i c i o n e s i n i c i a l e s A : 0 1 1 0y B : 0 1 1 0 . (d) Pruebe que la anterior secuencia de microoperaciones realiza (A-B) si A >.B, o el complementode 2 de (B-A) si A <8. 9-26. Usando flip-flops JI( diseñe una etapa típica de un registro A que realiza la microoperación de sustracción : pio: A<-A-B Use los circuitos sumadores completos (Sección 4-4) con bits de préstamo de entrada y salida K, y K,+ t. 9-27. Usando flip-flops JI( diseñe una etapa típica de un registro que realice Ias siguientes microoperaciones lógicas : pfii
A<-A\/B
NOR
pnt
A<-A¡\B
NAND
ptti
A +- AO B
Equivalencia
4 2 2 D I s E Ñ oL o G l c o D E P R o C E S A D o R E S
CAP. 9
9-28. Deduzca las operaciones de Boole de una etapa típica de una microoperación de decremento: pt¿i A<-A-l
9-29. Usando flip-flops tipo ? diseñe un registro de 4 bits que ejecute la microoperación de complemento de 2: P:
A<-f
+l
Del resultado obtenido, muestre que, una etapa típica puede ser expresada por las siguientes funciones de Boole:
7-4,: p¿
i:1,2,3,...,n
E¡*t: Ai + Ei Et:0 9-30. Un acumulador de 4 bits realiza 15 microoperaciones con variables de control Pt a Ptr . El circuito se encapsulaen un CI con sólo cuatro terminales disponibles para seleccionar la microoperación. Diseñe un circuito (dentro del Ci) que se deba agregar entre los cuatro terminaies y las 15 variables de control. Incluya una condición de no operación.
T Diseño de lógica d e control
10-1
INTRODUCCION
Muchas instalaciones El procesodel diseño lógico es Yna,tarea compleja'automatizado para computador rle desarrollan varias t¿.niü. de diseño para el sistelas especificaciones embargo Sin .r proceso¿"-áir"no. iJil"t las tareas para lograr álgorítmicos procedimientos áe *á--V lf áé.urrollo y rei"q,rátiA"" de procesamiento de datos no pueden ser automatizados humano' q.rie.".t un razonamientomental del diseñador =---L;parte de -"vá.-á".áno y creatividad del diseño es el establecimien¿. direño y la iormulación de algoritmos y procesamientos t" d;;ú;liuo, una cantidad p"* f"gr- lo, objfiiuos"enunciados. Esta taréa requiere parte. del.disenador'Un algoe ingenuidadpor considerabl. a. algo"*puriuncia ,llÁo-"" rr' pro."dl*iento para óbtutt"t una solución al problema.Un una con el para configurar ritmo diseñodo ,r., pro"ódi-iento -problema puede comenno "" diseñado algoritmo dei pi"ru auau de equipo. Él desa.tollo qrr" diseñadoresté segurodé dos cosas'Primero, el problema ;;;úú "i cJmpletamente' Segundo'^sedebe asumir untra -".to. dtbe par"o-ptenderse inicial del equipopára conformarel procedimiento'A u'u busca equipo de "onfigoración disponibilidad la -se li.-¿"f eriunciado dei ptoble*i v ¿" medianteun una solución y se foi."i un algoritmo. El algoritmo se-enuncia finito de pasosde procedimientosbien definidos' almacena "tt-..o La informacién binariá encontradaen un sistema digital se por datos puede ser constituida y en un procesadoro ,ági.l.or de memoria información de discretos elementos o información de control. Los datos son La información de control suminispor microoperaciones. !,,";;;ipulan la secuencia de microoperaciones' para especificar ira señales de mandos es un procesopara deducir los digital .irtema áe'un i,u tJgi"" de diseno datos á" pto"-tu-ientos y de circuitos dicircuitos digitales q""-.*li""n gitales que iuministran señalesde control' sincró_niLa temporir".ián á.1oáos los registrosen un sistema digital maestros'Los pul'qos de.reloj de generador un de por medio co se controla en el sistema, p"rro. a" reloj se upii.un a todos*los flip-flops y los registros pulsos conLos control' de i""i"V""a" tos nip-hops y registros-en-láunidad que el registro no.ser a registro un *tñ¡iá" e"l estado de tinuos de reloj que controlan binarias, "o variábles Las control. ¡" ," i,Áiiit" por l" ;;;i 423
424
D I S E Ñ OD E L O G I C AD E C O N T R O L
cAP. 10
las variables de seleccióny las entradas de habilitación de lo,sregistros, se generanen la unidad de control. Las salidas de la unidad de conirol se_ leccionan y habilitan la parte del procesadorde datos del sistema y también determinan el siguienteestadode la unidad de control en sí miima. La relación entre -la unidad de control y el procesadorde datos en un s_istemadigital se muestra en la Figura tO-t. Lá parte del procesadorde datos puede ser una. ulida_d procesadora de propósito general, o puede consistir de registros individuales y funciones áigiiales aJociadai. Ef control inicia todas las microoperacionesen el pro"cesamiento de datos. La lógica de control que generalas señalespara dar secuenciaa ras microoperacionesen un circuito secuencialcuyoJ estadosinternos indican las fün_ ciones de control del sistema. En un tiempo dado, el esiado de control secuencial inicia un conjunto de microoperacionespreseleccionadas. El control.secuencialpasa siguiente estadoo inicia otras microoperaciones -el dependiendode las condicionespresentesy otras entradas. Así, ;l circuito digital que actúa como la lógicá de control suministra una secuencia de tiempo-de_señalespara iniciar las microoperacionesen la farte del procesador de datos del sistema. El diseño de un sistema digital que requiereuna secuenciade control co;nienza de tiempo. Se -conla suposiciónde ta disponibilidad d" diseña cada variable en la secuenciapor medio de un ""ri"bi". estadoy luegose for_ diagrama de estadoo una representación equival"ni. p"r" ta tranTa. .un sición entre estados.Paralelamente con el desarróllo ár- i" ,""u"ncia de control se hace una lista. de microoperacionesque se u".r- iniciar, para cada estado de control. si el sistema es muy complicadopara " un diagrama de.estado,puede ser convenienteespecificarenteü-".,t"-J sistema por er método de trasferenciaentre registios por medio de las funciones de con_ trol y las proposicionesde microóperaciánes. La secuenciade control y las relacionesde t¡asferenciaentre registros pueden deducirsedirectamentede la especificación p"i"lru. en del proble_ ma. Sin_embargo es conveniente algunas veces usar una representación intermedia para describir la .""rr".r"1" necesariade operaciones del siste_ ma. Dos representaciones, útires en el diseño a" .iri"Á", ------ que necesitan control, son los diagramasde tiempo y los flujog.u-u.. Entradas externas
Datos de ent¡ada
Lógica de control
P¡ocesador de datos Condiciones del status
Salida de datos Figura
1O-l
Interacción entre el cont¡ol y el procesador de datos
l
sEc.10-1
I N T R O D U C C I O4N2 5
Un diagrama de tiempo clarifica la secuenciade tiempo y otras relaciones entre las diferentesseñalesde control del sistema. En un circuito secuencialcon reloj, Ios pulsos de reloj sincronizan todas las operaciones incluyendo las señalesde transición en las variables de control. En un sistema asincrónicouna señal de transición en una variable de control puede causarun cambio a otra variable de control. Un diagramade tiempo es muy útil en un control asincrónico ya que provee una representaciónilustrativa de los cambios requeridosy las transiciones de todas las variables de control. Un flujograma es una manera convenientede especificarla secuencia de pasosde procedimientoy formas de decisión para un algoritmo. Un flujograma para un algoritmo diseñado usaría normalmente los nombres de las variablesde los registrosdefinidosen la configuracióninicial del equipo. Este traslada un algoritmo de su enunciadoen palabras a un diagrama de flujo de información que enumera la secuenciade operacionesde trasferencia entre registros conjuntamente con las condicionesnecesariaspara su ejecución. Un flujograma es un diagrama que consiste de bloques conectadospor medio de líneas directas. Dentro de los bloques se especificanlos pasos procedimentalespara configurar el algoritmo. Las líneas directas entre bloques indican el camino que se va a tomar de un paso procedimentalal siguiente. Se usan dos tipos mayores de bloques: un bloque rectangular indica un bloque de función dentro del cual se listan Ias microoperaciones. Un bloque en forma de diamante es un bloque de decisióndentro del cual se lista una condición actual dada. Un bloque de decisióntiene dos o más caminos alternos y el camino que se toma dependedel valor de la condición de estadoespecificadadentro del bloque. Un flujogramaes muy similar a un diagramade estado.Cada bloque de función en el flujograma es equivalentea un estadoen un diagrama de estado. El bloque de decisiónen el flujogramaes equivalentea la información binaria escrita por conducto de las líneas dirigidas que conectandos estados en un diagrama de estado. Como consecuencia,es convenientealgunas veces expresar un algoritmo por medio de un flujograma del cual se puede deducir el diagramade estadode control. En este capítulo se presentan cuatro configuracionesposibles para una unidad de control. Las diferentes configuracionesse presentan en forma de diagrama de bloque para darle énfasisa las diferenciasen organización.Se demuestran entonces varios procedimientos disponibles para el diseño de control lógico analizandoejemplosespecíficos. El diseño de la lógica de control no puede separarsedel desarrollodel algoritmo para resolver un problema de diseño. Sin embargo,la lógica de control se relaciona directamente a la parte del procesadorde datos del sistema que éste controla. Como consecuencia,los ejemplospresentadosen este capítulo comienzan con el desarrollo de un algoritmo para configurar el problema dado. La parte del procesamientode datos del sistema se deduce entoncesdel algoritmo enunciado. Solamentehasta que se haga lo anterior se puedeprocedera mostrar el diseño del control que da secuenciaal procesadorde datos de acuerdo a los pasos especificadospor el algoritmo.
1 O - 2 O R G A N I Z A C I O ND E L C O N T R O L una vez que se haya establecidola secuenciade control se puede diseñar el sistemasecuencialque configuralas operacionesde control. Como el control es un circuito secuencial,éste se puede diseñar por el procedimiento lógico secuencialenunciadoen el capítulo 6. sin embargo,este método es poco práctico en Ia mayoría de los casosdebido al gran ñúmero de estados que el circuito de control puede tener. Los métodosde diseñoque usan estados y tablas de excitación pueden usarse en teoría, pero en la práctica son engorrososy dificiles de manejar. Además, los circuitos de control obtenidos por este método requieren por lo general un número excesivode flipflops y compuertas,lo cual implica el uso de compuertassSI. Este tipo de configuraciónes ineficiente con respectoal número de CI que se usan y al número de alambres que deben ser interconectados.El principal objetivo del diseñode lógica de control debeser el desarrollode un circuito que configure la secuenciade control deseadade una manera lógica y directa. El esfuerzode minimizar el número de circuitos tenderíaa producir una configuración irregular, lo cual haría dificil para cualquier personadiferente al diseñador,el reconocimientode la secuenciade eventospor los cualespasa el control. Como consecuenciapodría ser dificil dar servicio y mantener el equipocuando está en operación. Debido a las razonescitadas anteriormente los diseñadorescon experiencia lógica usan métodospara el diseño de lógica de control que pueden ser consideradoscomo una extensión del método lógico secuencialclásico combinado con el método de trasferenciaentre registros.En esta sección se considerancuatro métodosde organizaciónde control. 1. Método de un flip-flop por estado. 2. Método del registrode secuenciay el decodificador. 3. Control PLA. 4. Control del microprograma. Los primeros dos métodos resultan en un circuito que debe .rsa, ci.cuitos SSI v MSI para la configuración.Los diferentescircuitos se interconectan con alambres para formar una ¡ed circuito de control. una unidad de control configuradacon elementos sSI y MSI se denota como un control a base de materiales interconectados.Si se necesitanalteraciones o modificaciones,los circuitos se deben alambrar de nuevo para cumplir con Ias nuevas especificaciones. Esto es en contraste al pLA o controi de microprogramael cual usa un elementoLSI tal como un arreglo lógico programableo una memoria de solamentelectura. cualquier alteracióno modificación en el microprogramade control puede lograisefácilmente sin cambiar de alambrado removiendola RoM de s,t baie y colocandootra RoM programada para copar las nuevas especificaciones. se explica ahora en términos generalescada método. Las seccionessubsiguientesde este capítulo tratan con ejemplosespecíficosque demuestran el diseño detallado de las unidadesde cóntrbl de lós cuatro *étodo.. 426
--' I I
r
t
Método de un flip-flop por estado Este método usa un flip-flop por estado en el circuito secuencial de control. Solamente se pone a uno un flip-flop en un tiempo dado, Ios demás se ponen a cero. Se hace programar un solo bit de un flip-flop a otro bajo el control de la lógica de decisión. En tal arreglo cada flip-flop representa un estado y se activa solamente cuando el bit de control se trasfiere a éste. Es obvio que este método no usa un número mínimo de flip-flops para el circuito secuencial. De hecho, éste usa un número máximo de flip-flops. Por ejemplo un circuito secuencial con 12 estados requiere un mínimo de Aun por medio de este método el circuatro flip-flops porque 23 <12(21. cuito de control usa 12 flip-flops para cada estado. La ventaja de un flip-flop por método de estado es la simplicidad con la cual se diseña. Este tipo de controlador puede diseñarse por inspección a partir de un diagrama de estado que describe la secuencia de control. A primera vista, parece que este método aumentará ei costo del sistema ya que se necesita un mayor número de flip-flops, pero, este método ofrece otras ventajas que no son aparentes a primera vista. Por ejemplo, éste ofrece un ahorro de esfuerzos en el diseño, un aumento en la simplicidad operacional y una disminución potencial en los circuitos combinacionales requeridos para configurar el circuito secuencial completo. La Figura 10-2 muestra Ia configuración de una lógica de control secuencial de cuatro estados, que usa cuatro flip-flops tipo D: un flip-flop por En cualquier intervalo de tiempo dado entre dos I,2,3. estado 7,, i:0, pulsos de reloj solamente un flip-flop es igual a 1, el resto será igual a 0. La transición del estado presente al siguiente es una función del presente f que es 1 y de ciertas condiciones de entrada. El siguiente estado se manifiesta cuando el flip-flop anterior se borra y el nuevo se pone a uno. Cada una de las salidas del flip-flop se conecta a la sección de procesamiento de datos del sistema digital para iniciar ciertas microoperaciones. Las otras salidas de control mostradas en el diaglama son una función de las 7 y de las entradas externas. Estas salidas pueden también iniciar microoperaciones. Si el circuito de control no necesita entradas externas para su cadencia, el circuito se reduce a un circuito de desplazamiento simple con un solo bit que se desplaza de una posición a la siguiente. Si la secuencia de control debe repetilse una y otra vez, el control se reduce a un contador de anillo. [Jn contador de aníllo es un registro de desplazamiento con la salida del último flip-flop conectado a la entrada del primer flip-flop. En un contador de anillo el solo bit se desplaza continuamente de una posición a la siguiente de una manera circular. Por esta razón el método de un flip-flop por est a d o s e l l a m a a l g u n a s v e c e su n c o n t r o l a d o r d e l c o n t a d o r d e a n i L l o . Registro de secuencia y método del decodificador Este método usa un registro para darle secuencia a los estados de control. El registro se decodifica para suministrar una salida por cada estado. El circuito tendrá 2" estados y el decodificador 2n salidas, p ra n flip-flops 427
Otras salidas de control
Condiciones de entrada exte¡nas
Lógica de decisión
Figura
1O_2 Lógica de cont¡ol con un flip_flop por estado
en el registro de secuencia.por un registro de 4 bits puede estar en cualquiera de los 16 estados._ejemplo, ún decodificad"or de ¿x iO tendrá 16 sali_ d.as,unl para cada estadodel registro. Tanto.i *gi.trá'd-Jsecuencia como el decodificadorson componentesMSI. La Figura 10-3 muestra la configuraciónde una lógica de control secuencial de cuatro estados.El registro de secuencia tie-ne-dosflit fl;p, ; el decodificadorestablece ."gi._ .salidas separadaspu." tro. La transición al siguiente "ud,á""rir¿o ".r'"r es una estaáo en el registr" ,*,rencia funcion del estadopresentey de las condicionesá" como las salidas del decodificadoiestán de alguna ¡";;;;irp."ibl"., ""tiu¿u-e*ternas. u, conve_ nrente usarlas como variables de estado presente en vez de usar directa_ mente las salidas de los flip-flops. otras salidu, q.r" ,or,-irr.r"io., del estado presente ¡' de las entradas ex-tern¿spueden inüiar microoperacionesen adición a las salidasdel decodificador. si el circuito de control de la Figura 10-3 no necesitaentradas exter_ nas, el registro de secuenciase reduJe a un contador que continuamente 428
I Otras salidas de control
Lógica de decisión
Registro de secuencia
Estado presente
Figura
1O-3
Lógica de control con registro de secuencia y decodificador
hace secuenciaspor los cuatro estados.Por esta razón, el método es llacontador. Este método y el de mado algunasve¿esun método d.ecodificador contador de anillo se explicaron en el Capítulo ? y conjuntamenteen la Figura 7-22. Control del PLA El arreglo lógico programablefue introducido en la Sección 5-8. Se había mostrad-o ái"trá sJcción que el PLA es un componenteLSI que puede cualquier circuito combinacionalcomplejo-El controi del PLA cánfigurar".r es eséncialmentósimilar al registro de secuenciay al método del decodificador excepto que todos los circuitos combinacionalesse configuran con un PLA, incluyóndo el decodificadory la lógica de decisión.Bs posible reducir el'númeró de CI y el número de alambresde interconexión,usandoun PLA para el circuito combinacional. LL Figura 10-4 muestra la configuraciónde un controlador PLA. Un registro de*secuenciaexterno estableceel estado presentedel circuito de co*ntrol.Las salidas PLA determinan cuáles microoperacionesdeben iniciarse dependiendode las condicionesde entrada externas y del eslado presente del'registro secuencial.Al mismo tiempo, otras salidas del PLA determinan el estado siguiente del registro de secuencia. El registro de secuenciaes externo al PLA si la unidad configurasolamente ciróuitos combinacionales.Sin embargohay algunosPLA disponibles que incluyen no solamentecompuertassino flip-flops dentro de la unidad' Éste tipo"de PLA puedeconfiguiar un circuito secuencialespecificandolas uniones que deben conectarsea los flip-flops de la misma manera que se especificaronlas uniones de las compuertas. 429
I Condicir¡nes de entrada externas
Figura
lO-4
Iniciar mic¡ooperaciones
Lógica de control pLA
Control del microprograma El propósito de.'Ia unidad de control es iniciar una serie de pasos secuencia_ les de microopefaciones. Durante cualquier tiernpo dado se deben iniciar ciertas operaciones mientras que otras p"r-urr"""., latentes. Así, las variables de cont¡ol en un tiempo dado pueden ser representadas por una cadena de 1 ó 0 llamada parabra de coitror. como tÁles, clichas parabras de control pueden ser programadas para iniciar las diferentes componentes en el sistema de una manera organizada. {Jna unidad de control .,rur i a b l e s d e c o n t r o l s e a l m a c e n a n e n u n a m e m o r i a , s e l l a m a n u n i d a".ryu. d de cont.roLmicroprogramada. cada palabra de contror de memoria se llama microinstrucción y una secuencia de microinstrucciones se Ilama mlcroprogramo. corno poco se necesitan las alteraciones der microprograÁ., tu mlmária de control puede ser una RoM. El uso del microprog*.ná comprende la ubicación de todas las variables de control en palabris de la RdM para usarlas por medio de las unidades de control a tiavés de operaciones sucesivas de lecturas. El contenido de la palabra en la RoM en una dirección dada especifica las microoperaciones del sistema. LIn desarrollo más avanzado, conocido como mic¡oprogramaci ón diná-:lco permite cargar inicialmente un microp¡ograma a pártii de una consola ie computador o de una memoria auxiliai tál como un disco magnético. Las unidades de cont¡ol que usan microprogramación dinámica e"mplean ' - ; r . a. r e m o r í a de control en la cual se puede eicribír (wcM: writablé coni:o1 memory). Este tipo de memoria puede se. usada para escribir (o camel 1r-ar microprograma)-pero se usa mayormente para lectura. una RoM, un PLA o un wcM cuando se usan en,rna unidad de control se los trata cómo m e m t ) r . adi e c ' o n t r o l . _ La Figura 10-.5ilustra la configuración general de la unidad de control de microprograma. La memoria de control se asume como una ROM dentro de la cual se almacena permanentemente toda la información de control. El registro de control de las direcciones de ^e-o.ia-L.pu"ifi"u la palabra de control leída de la memoria de control. se debe t".r".'"r, .rrenta que una RoM opera como un circuito combinacional con el valor de la dirección co_ 430
Generador de la dirección siguiente
Controldel registrode direcciones
Memoria de control (ROM)
Lnformación de la siguiente dirección
Figura l0-5
Lógicade controldel microprograma
m o e n t r a d a y l a p a l a b r a c o r r e s p o n d i e n t e c o m o s a l i d a . E l c o n t e n i d o d e lque a en los alambres de salida por el tiempo p..-ur,""" ;;1"ú;;;peóificaia neceNo se de la di.ección pur*u.tece en el registro de dirección. ;f ;ü, palabra Una aleatorio. acceso áe memoria una en como sita señal de lectura
al registro 1eqT3dor,,si el registro de á"" ,ái. ¿. la RoM i"¡. trurrurirse esté aún en uso' Si direccionescambia *i.rirár- qte la palabia de ROM y una palabra de dirección en cambio pueden ocurrir simultáneamenteun separador' nOn¿ no es necesarioun registro --representauna mrcrolnsia putabra leída de una memoria de control para microoperaciones más o trucción. La microiittt""ti¿" especificauna la operaciones' las ejecuten. qt" t" los componentesdei sistema' Una vez de la siguiente.dirección.l,a ubicación unidad de control d;;;á.;.;-inar '"t-lu siguiente-ensecuenciao podría podríu la siguiente Ini".oinrtt,tcción necelu *"*otiu de control. Por esta razón es ser ubicada en otrol;;;;;; generación la para c-ontrolar sario usar algunos¡ilr" de la microinstrucción La siguiente dirección de Ia dirección para la siguiente microinstru..iótt. de entrada externas. condiciones las de ii""ió" .", i"Á¡i¿";;; ñ"* la siguiente dirección es comMientras se ejecutari^ru.Ái.tooperaciones, siguiénte dirección v luego trasferida putada en et circui;;;;;.;;e;t.de,t, de direccionespara (con el siguiente p"i.|-á. reloj) al_regi-tro de control del generador detallada La ionstrucción leer la siguiente -r.ioi".lr"."ién. particular' á" f" tidi"nte dirección dependede la aplicación -esp^ecíficos del diseño de sobre'ejemplos ;;;" .ápñ-1i EI resto a. el método demuestra 10-3 ".t. El;;i;.r,"jemplo.en la Sección lógica de control. con ejemplo mismo el presenta y lá Sección.10-4 de un flip_flop p", ejemplopara segundo un "i"áá usa 10-6 Sección L; un control ,-rri.roprüriiuá". y la Secy de-codificador demostrar .l *¿toij á.i r"gittto de secuencia 9l 10-5 v Secciones Las ejemplocon un PLA' ción 10-7.o'riguruii;;gdil detalle. más en 10_gconsideranel'r"átáá?,A" .o'trol del microprograma \ 1o-3coNTRoLDECoMPoNENTESALAMBRADoS-EJEMPLoI E s t e e j e m p l o d e m u e s t r a e l d e s a r r o l l o d e u n a l g o r i t m o d e d idiseño s e ñ o .para Secomien. lospasosdel ,i ioi t" proposicióndel problemay se prqce{gcon cinco se lleva a cabo en obtener la lógica de co.,tiol del sistemá. El diseño pasoscorisecutivos. 431
432
O I S E Ñ OD E L O G I C AD E C O N T R O L
cAP. 10
l. Se enunciael problema. 2. Se asumeuna configuracióninicial
del equipo. 3. Se forrnula el algoritmo. 4. Se especificala parte del procesador de datos. 5. Se diseñala lógica de control. una configuración inicial del equipo es necesariapara poder formular el algoritmo diseñadoen términos áeimétodo de trasferenciaentre registros. El algoritmo se formura por medio á"ih":"g."-;ü;rilin"" r" secuencia de microoperaciones del sistema.u;; u"r. qu"_." tónga ia lista de microope_ raciones se pueden escogerfunciones aigiiare, . para su confi_ guración' En esencia, erto suministra ti pa.t" """L".iá. de datos del ;;;;;;;;.a sistema. El cont¡ol se diseña entoncespara darle ,."ulrr"i" a las microope_ racio_nesrequeridasen el procesadorde datos. La lógica de control deducida en Lsta sección es un control de compo_ nentes alambrad.s por el método de un flip-flop poi-uJ"ao. El sistema digital presentadoaquí se usa de en'la .i$;u'te sec"ion para demostrar un ejemplodel control microprogramado. "rr"uo E n u n c i a d od e l p r o b l e m a En la secciónt-u.^:1nuncia,un.algoritmo para la adicióny sustracciónde los números binarios de.punto fijo"cuando l;;;;,o;;;;lugatirros están en la forma de signo-complémentoá. t.-iil;;áur"*" áüiri"Jl con rnateriales la adición v sustracción áe "o'ng,rrar drJ de punto fijo representadosen forma de signo-magnitud.";;;;-ü;iio. S" p""¿"lsJr aritmética com_
*ilT:f"
siemprey cuandJer ,"s-uli"aofinai;;t
;;
formade signo_
La suma de dos números almacenados en -los registrosde longitud finita podría resultar en una suma que excede r" rrel registro de almacenaje en un bit. El nit ." dr¡e que "upá"iá"á Er -'ircuito debe venir crc,nun flip-flop "*it"-pu* utmac""ri"-;;;';;*."capacidad. '" por sobrecapacidad. J¡ii J" desbordamien_ C o n f i g u r a c i ó nd e l e q u i p o Los dos números binarios con signo al ser sumadoso restadoscontienen n bits. Las magnitudesde los contienenu: r--l-a¡ts y se alma_ "riile.os cenan.en ros resistrosA y B. Los bits de sig"o se en los flip_ flops A. ,r'8.. ia Figura 1o-6;;rtta "l-u"i'u' los registros y el equipo asociado. El ALU realiza las opéraciones aritméllcas y el registroE de 1 bit sirve como nto sobrecapácidad. El ;;;.r*;" salida der ALU se rrasfiereal E. l:o^9: se asume que los dos número! y sus signos tt"r, tiasferidos a sus y que el resuttádo-¿" ü "i¿á á.ia airpo'ible en fgt:l::.I:specrivos ros reglstrosA ]' 4.. Las dos señales "p"iá"ij"el de entrada especifican las operacionesde suma (go) y resta (q"). "., "orrt.ol La variable de salida ¡ indica
I
,f Signo
Magnitud
Sobrecapacidad
q" (Sumar)
tr
q. (Restar) r (Qperación terminada)
parael sumador-sustracto¡ Figura lO-6 Configuración del registro
l
tt, I
t
el final de la operación.La lógica de control se comunica con los circuitos que la rodean a través de las variables de entrada y salida. El control reconoce la señal de entrada eo ó e" y suministra la operación requerida. Una vez finalizada la operación, el control informa a los circuitos exteriores con la salida r que la suma o diferencia está en los registrosA y A" y el está en E. bit de sobrecapacidad Deduccióndel algoritmo La representaciónde números por medio de signo-magnitudes familiar debido a que se usa para los cálculos aritméticos a lápiz y papel. El procedimiento de sumar o restar dos números binarios con signo a lápiz y papel es muy simple y directo. Una revisión de este procedimientopodría ser útil para deducir el algoritmo diseñado. Se designala magnitud de dos númerosA y B. Cuando los númerosse suman o restan algebraicamentese encuentra que hay ocho condiciones diferentes para considerar,dependiendodel signo de los números y de la operaciónrealizada.Las ocho condicionespuedenexpresarseen forma compacta de la siguientemanera: (*¿)n(ta) Si la operaciónaritmética especificadaes la sustracción,se cambia el signo de B y se suma. Esto se hace evidente a partir de las relaciones:
(t¿)-(+a¡:?.s)+(-B) (tA)- (-B): (*,¿)+ (+¡) Lo cual.reduce el número de condiciones posibles a cuatro, a saber:
(tl)
+ (t¡)
y el Cuandolos signosde A y B soniguales,se agreganlas dosmagnitudes signodel resultadoes el mismoque el sigro común.Cuandolos signosde 43s
434
D I S E Ñ OD E L O G I C AD E C O N T R O L
CAP, 10
A y B no son iguales,se resta el número más pequeñodel mayor y el signo del resultadoes el signo del número mayor. Esto es evidentea partir de las siguientesrelaciones : SiA>.8
(+A)+ (+B):
+(A+ B) +(A - B) : -(B - A) -(A-B):+(B-A)
(+A) + (-B) : (-A)+(+r¡: (-A)+ (-B):
sil
a:
-(A+ B)
El flujograma de la Figura 10-7 muestra cómo se puede configurar una sustracción y una adición con signo magaitud con el equipo de la Figura 10-6. Se inicia una operación con la entrada q, o la entrada eo.La entrada q" inicia una operación de sustracción de manera que se complementa el signo de B. La entrada qo inicia una operación de suma y el signo de B se deja sin cambiar. El siguiente paso es comparar los dos signos. El bloque de decisión demarcado con A" : B" simboliza esta decisión. Si los signos son iguales se sigr,repor el camino demarcado por el símbolo : ; de otra manera se toma¡á el camino marcado por el símbolo + . El contenido de A se suma al contenido de B y la suma se trasfiere a A en el caso de símbolos iguaies. El valor del arrastre final en este caso es una sobrecapacidad de manera que se hace el flip-flop E igual al arrastre de salida C",, . EI circuito irá a su estado inicial 3,'la salida ¡ se convierte en 1. EI signo del resultado en este caso es el mismo que el signo original A, de manera que el bit de signo se deja sin cambiar. Las dos magnitudes se restan si los signos no son iguales. La sustracción de las magnitudes se hace agregando A al complemento de 2 de B. No debe ocurrir sobrecapacidad si los dos números se sustraen de manera que E se lleva a 0. Un 1 en E indica que A>By el número en A es el resultado correcto. El signo del resultado es igual de nuevo al valor original de 4'. fln 0 en E indica que A <8. Para este caso es necesario formar el complemento de 2 del valor en A y el complemento del signo en ,4,. El complemento de 2 de A puede hacerse con una microoperaciónA*Á* 1. Sin erirbargo se requiere usar el ALU del Capítulo 9 y este ALU no tiene la operación de complemento de 2. Por esta razón el complemento de 2 se obtiene de las operaciones de complemento e incremento que están disponibles en el ALI-I. Especificación del procesador de datos El flujograma del algoritmo lista todas las microoperaciones para la parte del procesador de datos del sistema. Las operaciones entre A y B pueden hacerse con el ALU. Las operaciones con A", B" y E deben ser iniciadas con variables de control separadas. La Figura 10-8(a) muestra el procesador de datos con las variables de control requeridas. como se había men-
,]
T
A-A+E
+l
'F * C ' o u t
Figura
lO-7
Flujograma para la adición y sustracción en signo-magnitud
cionado antes el ALU viene del Capítulo 9 donde se especifica su tabla de función en la Tabla 9-4. Este ALU tiene cuatro variables de selección de la manera que se ilustra en el diagrama. La variable L carga Ia salida del ALU comal registro A y también el arrastre de salida a E. Las variables -t-,z y ¿¿) plementan B" y A, y borran E respectivamente. El diagrama de bloque de la lógica de control se muestra en la Figura 10-8(b). El control recibe cinco entradas: dos de Ios componentes externos y tres del procesador de datos. Para simplificar el diseño se define una nueva variable S: S:lrOB, 435
I
'_-€
(Tabla 9-4) ALU
,*E
L (Carga)
(a) Registrosprocesadores de datosy ALU
,t (Estado inicial) s2 (Selección demodo) s1 s0 ., -
LóBica . de control
(Selecciónde función)
C¡ (Arrastre de entrada) L (CargarAyEdelALU) y (ComplementarB") z (ComplementarA,) p (Borra¡ E)
-
(b) Diag¡amade bloque del control Figura
Esta 'ariable da er
l0-g
Diagrama de bloque del sistema
de,ra com.paración entre dos bits -.onde signo. La fi.lr'^1dg esigual
lffii:"r'r'o,*"r1*1"""
El control .r-i':'::l1mbos
a t si losdos,ic";.-;;
positivoso negativos
isuul".y
".
cionat,;úi;;il;Ji:i:iülÍ"T,:iiiü#,.1:Tüi:iJJ"ffi de selecciórs'¡' s'' ,"r.,,,i;1ff; y c,.' iu.-oi.-"..",r"t"o fo saridas;;, en el procesadár dl aátár .áLJi" 4?6
"üJitt",
los registros en el diagr"-u. au.,queno se
T sEc. 10-3
C O N T R O LD E C O M P O N E N T EASL A M B R A D O S - E J E M P L O1
437
muestra en el diagrama, Ias salidas de la lógica de control deben estar conectadas a las coirespondientesentradas en el procesadorde datos. Ahora que se ha especificadóel procesadorse puede diseñar la lógica de control del sistema.
Diagrama de estado de control El diseño de un control con materiales interconectadoses un problema de lógica secuencial.Como tal, podría ser convenienteformular el diagramade eslado del control secuencial. Los recuadros de control en el flujograma pueden ser consideradoscomo estadosdel circuito secuencialy los recuadros de decisión como condicionesdel siguienteestado.Las microoperacio.r", qr" deben ser ejecutadas en un estado dado se especifican dentro del ,..rr"d.o de función. Las condicionespara la transición del siguienteestado se especificandentro del recuadrode decisión o en las líneasque se conectan ütre dos recuadros de función. Aunque se puede formular esta relación entre un flujograma y el diagrama de estado, la conversión entre una forma y otra nó és únicá. En consecuencia,diferentes diseñadoresproducirán diferentes diagramas de estado para el mismo flujograma y cada cual puede ser una correctarepresentacióndel sistema. Se comienzaaiignando un estado incial ?6 al controlador secuencial. Se determina luego lá transición a otros estadosTr, Tz, Tz Y así sucesivamente. Para cadá estado se determinan las microoperacionesque deben iniciar el circuito de control. Este procedimientoproduce el diagrama de estado para el controlador conjuntamente con una lista de operacionesde trasferencia entre registros, las cuales deben ser iniciadas mientras que el circuito de control esté en todos y cada uno de los estados. El diagrama de control y las correspondientesoperacionesde trasferencia entre registros se deducen en la Figura 10-9. La información para este diseño se toma directamentedel flujograma de la Figura 10-7y las variables definidas en el diagrama de bloque de la Figura 10-8. El estado de control inicial es ?o. Mientras que el control esté en ese estado la variable ¡ se debehacer igual a 1. Esta variable es 0 en todos los demásestados' Durante el tiempo en que Qo y Q, sean 0, el control permaneceráen su estado inicial. Si q" se convierte en 1 el control realizará una operaciónde sustracción al pasar al estado ?1. En este estado el bit de signo B, se complementa. El control pasa al estado T2 para sumar los dos números. Si q, -Else convierte en 1 el control irá directamenteal estado Tz . .iguiette estado despuésde T2 dependede los valores relativos de los bits dé signo, los cuales se determinan a partir de la variable S. Si los símbolos fuerán iguales, S será 0 y el control pa.saráal estado ?3. En este estado, las dos mágnitudes se suman y se pone a uno el bit de sobrecapacidad. Úna vez que ie haga lo anterior el control pasaráa su estado inicial. si los signos són diferentes, s es 1 y el control pasará del estado ?2 al estado ?4. En este estado las dos magnitudes se sustraén obteniendo el complementode 2 de B. El arrastre final se trasfiere a E durante la sustracción y el control pasaráal estado ?u.
Qo=0
qa Qs S=0 S= I E
Sumar Restar Signosiguales Signosdiferentes Arrast¡e de salida
I
(a) Diagrama de estado
Salidas de control J2
Jt
Jo C,
L
Io: Estado inicial ,r = I
100
000000
Tr:B,*8,
000
000100
Tr: nada
000
000000
T3:A+A +B,f -C.,,,
000
101000
To:A+A +8+1,6-Cu,,
001
0t1000
15:I,+0
000
000001
Tu:A-A
0ll
10t000
Tj.A+A+1..4r-,1,
000
0ll0l0
.t,
z
^
(b) Secuenciade t¡asferenciasdel resist¡o
Figura
438
1o-g
Diagrama del estado de cont¡ol y secuencia de microoperaciones
I sEc.10-3
C O N T R O LD E C O M P O N E N T EASL A M B R A D O S - E J E M P L O1 4 3 9
Se debe tener en cuenta que el arrastre final del ALU se trasfiere a E con un pulso de reloj. Esto sucedecon el mismo pulso de reloj que causaque el control vaya del estado Ta al Tr. Aunque se muestre la operación: E <- Cou, que conjuntamentecon la variable ?, esta operaciónno s€ ejecuta hasta 1a operación,el coná".rrr" el pulso de reloj. Una vez que este pulso-ejec-ute trol se encontraráen él estado ?r. Por tanto el valor de E pata el ar-rastre final, no debe constatarsesino hasta que el control alcance el estado ?t ' El valor de E se constata para determinar las magnitudesrelativas de A y B. Si E : 1, esto indicará que A > B. Para'estecasoE debeborrarsepara así completarla operación.si E: 0, estoindicará que A < B. El.control irá a los estaáosTo y T¡ para complementarA y A,. Nótese que _Ese borra mientras que ei éo.ttioi esté en él estado ?u. Esto se hace con E igual a 1 ó 0 ya que tiatar cle borrar un flip-flop que esté en 0 Io dejará de todas maneras ü O. S" debe notar también que E se borra con el pulso de reloj que causa que el control se salga del estado ?u. Se debe tener en cuenta que despejar É y trasferir el contiol al estado To ó T6 se hace con un pulso de reloj común sin problema. El valor original de E en el tiempo ?, determina el siguiente utt"do aunque este flip-flop se borre mientras que el pulso de reloj por una transición de flanco. pase ' Óebe ser manifiesto con este ejemploque la interpretaciónde un flujograma podría resultar en un diagrama de estado diferente para la misma iógi"u áe control. Esto es aceptablesiempre y cuando las restriccionesde loJ materiales se tomen en consideracióny el sistema funcione de acuerdo a las especificaciones.Por ejemplo, en vez de comprobar E en el ti-empo?5 se hubiéra podido escogereL comprobar Co,t en el tiempo ?1 . Si Co', es 1, el control pasaráal estado ?, parrr despejarE. si éste es 0, el control puede ir directamenteal estado ?0, s n considerarel estado ?u ett este caso. D i s e ñ o d e l c o n t r o l a b a s e d e c o m p o n e n t e sa l a m b r a d o s Las salidas de control son función de los estadosde control y se listan en la Figura 10-9(b).Estas salidas se definen en el diagrama de bloque de la Figura 10-8(b).Los valores para las variables de seleccióndel ALU se deteiminan a partir de la Tabla 9-4. La variable L (cargarA) debeser igual a 1 cada vez que la salida del ALU se trasfiera al registroA. De otra manera l, es 0 y las salidas del ALU no tendrían efecto sobre el registro. Para diseñar el óontrol de este sistema se necesitadiseñar el diagrama de estadode la Figura 10-9(a)y dotarlo de las salidas de control como se especificanen la Figura 10-9(b). El control puede diseñarseusando un procedimientoclásico lógico secuencial. Este procedimientorequiereuna tabla de estadocon ocho estados, cuatro entradasy nueve salidas. El circuito secuencialque se va a deducir de cada estado no será fácil de obtenel debido a la gran cantidad de variables. El circuito obtenido, usando este método, puedetener un número mínimo de compuertas, pero tendrá un patrón irreg¡lar y será muy dificil de analizar e.t el ca.o de que ocurra una falla. Estas dificultades son eliminadas si se diseña el control por el método de un flip-flop por estado.
44O
DISEÑO DE LOGICA DECONTROL
C A P .1 0
[Jna organización del control que use un flip-flop por estado tiene la característica conveniente de que el circuito p.rede deducirse directamente del diagrama de estado por inspección. No ie necesitan tablas de estado o excitación si se usan flip-flops D. Recuérdese que ei siguiente estado de un flip-flop n es una función de la entrada D y és independiente del estado presente. como el método requiere un flip-fiop po. .ud" estado, se escogen ocho flip-flops D y se marcan sus salidas Tu, Tr, Tr, . , Tr. Lu rr_ dición p€ra poner a ulo un flip-flop dado se especiiica-en el.diagrama" ode estado. Por ejemplo, el flip-flop 7, se pone u u.rb con el siguientJpulso de reloj si Tt:t ó si I. : I y qo: 1. Esta condición puede áefinirse con la función de Boole: DT2:
q o T o+ T ,
donde D?2 designa la entrada D del flip-flop ?2. De hecho, la condición para.poner a 1 flip-flop se obtiene de la condición especificada por las líneas de dirección que van.a un estado de flip-flop dado y que a.u ue, se aplican conjuntamente con el estado previo def lip-¡oo u función AND. si tuy ""u todas las más de una lí'ea de dirección que va a un éstado, condiciones {9ben aplicarse a una función oR. usando este pto"edi-ie.rto para otros flip-flops, se obtienen las funciones de entrada dadas en la Tabla 10-1. Inicialmente, el flip-flop ?o se pone a uno y las demás se bor¡an. F)n un tiempo dado solamente una entráda D estará en el estado 1 mientras que las demás se mantienen en o. El siguiente pulso de reloj pone a uno el flip-flop cuya entrada D es 1 y borra toi demás. rot si al presente To:1, entonces si e. y q " : 0 , l a e n t r a d a D d e ?"¡"-fió .i,"i¿ f y el siguien_ _ 0 te pulso dejará el flip-flop ?o en el estado 1. si durarite el intervalo entre los dos puls-osq" .e convierte en 1, ra entrad a D de ?e cambiará a o pero la entrada D * f, será l,.de manera que el siguiente"p.ri.o po.a.a a uno Tt -y a cero ?0. Las funciones de entiada a"f nip-nolp-ro., -ut.,"mente excluy-entesy solamente un flip-flop puede ponerse u ,"o'un tiempo dado y los demás se borran porque sus entiada, D son "" ceros. Se necesita especificar las salidas de control corlo una función de los estados de los flip-flops. Esto se hace con las entradas de Boole dadas en la Tabla 10-1. Estas funciones de Boole se obtienen por inspección de la FiTabia
l0-l
Funciones de Booie para control
Funcionesde entrada de flip-flops Funcionesde Boolepara el control de salida D T 6 = q ' " q ! T s +T 3 + E T s + T j DT,: q,Ts DTl: q"Ts* T1 DT_.: 5'7.DTa: ST2 DT5: Ta DTu: ¿'7t DT1: T5
x:To sz: To si:TotTu so: T, + Tu Cin: T4 + T.r L=Tt+7|4+76+77 /:Tt z:Tt w:Ts
I
I
ttt
sEc. 10-4
C O N T R O LD E L M I C R O P R O G R A M A 4 4 1
gura 10-9(b). Por ejemplo la salida I debe ser l durante los estados ?3, Tr,7,., ó ?r. Estas variables son disponibles en las salidas de los flip-flops. Lo que se necesita aquí es una compuerta OR de 4 entradas para generar el control de salida ,L El circuito para la lógica de control no se dibuja pero se puede obtener fácilmente de las funciones de Boole en la Tabla 10-1. Este circuito puede ser construido con ocho flip-flops D, siete compuertas AND, seis compuertas OR y cuatro inversores. Nótese que cinco salidas de control se toman directamente de las salidas de los flip-flops.
1O-4 CONTROD L EL MICROPROGRAMA En un microprograma de control, las variables de control que inician microoperaciones se alrnacenan en la memoria. La memoria de control es comúnmente una ROM ya que la secuencia de control es permanente y no necesita alteración. Las variables de control almacenadas en la memoria son leídas una a una para iniciar la secuencia de microoperaciones del sistema. Las palabras almacenadas en la memoria de control son microinstrucciones y cada una de ellas especifica una o más microoperaciones para los componentes en el sistema. [Jna vez que se ejecutan estas microoperaciones, la unidad de control debe determinar la siguiente dirección. Por tanto, unos pocos bits de la microinstrucción se usan para controlar la generación de la dirección para la siguiente microinstrucción. Así una microinstrucción contiene bits para iniciar microoperaciones y bits para determinar Ia siguiente dirección para la memoria de control en sí misma Además de la memoria de control, una unidad de control de microprograma debe incluir circuitos especiales para seleccionar la siguiente dirección como se especifica por la microinstrucción. Estos circuitos y la configuración de los bits de microinstrucción almacenados en la memoria varían de una unidad a otra. En vez de profundizar en todas las posibilidades encontradas en las diferentes situaciones se escoge aquí introducir el concepto de microprograma por medio de un ejemplo simple. La lógica de control que se va a diseñar es para el sumador-sustractor de signo-magnitud desarrollado en Ia sección anterior. El control a base de componentes conectados, diseñado en la Sección 10-3 será remplazado por un control de microprograma que se va a diseñar a continuación. Téngase en cuenta sin embargo que el sistema digital considerado aquí es muy pequeño para un controlador de microprograma y en la práctica un control a base de componentes conectados debe ser más eficiente. La organización del control de microprograma es más eficiente en sistemas mayores y complicados. Un estado en la memoria de control se representa por la dirección de una microinstrucción. Una dirección para la memoria de control especifica una palabra de control dentro de una microinstrucción. El control que se desea diseñar se especifica en la Figura 10-9. Como hay ocho estados en el control se escogeuna memoria de control con ocho palabras que tienen las direcciones 0 hasta 7. La dirección de Ia memoria de control corresponde al número suscrito bajo las ? en el diagrama de estado.
I 442
D I S E Ñ OD E L O G I C AD E C O N T R O L
cAP.10
La inspección del diagrama de estado revela que la secuencia de direcciones en el control del microprograma debe tener 1as siguientes cualidades: 1. Provisión para la carga de una dirección externa como resultado de la ocurrencia de las señalesexternas eo y e". 2. Provisión para la sucesión consecutiva de direcciones. 3. Provisión para escoger entre dos direcciones como una función de los valores presentes de las variables de condición S y E. Cada mic¡oinstrucción debe contener un número de bits para especificar l a m a n e r a e n q u e s e s e l e c c i o n al a n u e v a d i r e c c i ó n . Configuración de los materiales La organización de la unidad de control del microprograma se muestra en la Figura 10-10. La memoria de control es una RoM de g palabras por 14 bits. Los primeros nueve bits de una palabra de microinstrucción conlienen las variables de control que inician las microoperaciones. Los últimos cinco bits suministran información para seleccionar la siguiente dirección. El registro de direcciones de control (CAR: Control Address Register) almacena la dirección de la memoria de control. Este registro recibé un valor de entrada cuando se habilita su control de carga; dá otra manera se incrementa en 1. Un CAft es esencialmente un contador con capacidad de carga en paralelo. Los bits 10, 11 y 12 de una microinstrucción contienen una dirección para el CAR. Los bits 13 y 14 seleccionan una entrada para un multiplexor. El bit 1 suministra la condición de estado inicial denotada por la váriabie r y también habilita una dirección externa cuando e, o eo es igual a 1. se estipula que cuando ¡: 1 el campo de dirección de la microinstrucción debe ser igual a 000. Entonces si q" : 1, la dirección 001 está presente en las entradas del CAR, pero si eo: l,la dirección 010 se aplica al CAfi. Si ambas .1. y Qo son cero, la dirección cero de Ios bits 10, 11 y 12 es aplicada a las entradas del CAfi. De esta manera la memoria de control se mantiene en la di¡ección cero hasta que una variable externa se habilite. E l m u l t i p l e x o r ( M U X ) t i e n e c u a t r o e n t r a d a s q u e s e s e l e c c i o n a nc o n l o s ¡i¡s 13 -v 14 de la microinstrucción. Las funciones de los bits seleccionadas p - r e l m u l t i p l e x o r s e t a b u l a n e n l a F i g u r a 1 0 - 1 0 .S i l o s b i t s 1 3 y 1 4 s o n 0 0 , s e s e l e c c i o n au n a e n t r a d a d e m u l t i p l e x o r q u e e s i g u a l a 0 . L a s a l i d a d e l m u l tipleror es 0 ¡'la entrada de incremento al CAft se habilita. Esta confizurac i ó n i n c ¡ e m e n t a e l c A R p a r a e s c o g e rl a s i g u i e n t e d i r e c c i ó n e n s e c u e ' n c i a . u n a s a l i d a d e I e s s e l e c c i o n a d ap o r e l m u l t i p l e x o r c u a n d o l o s b i t s 1 3 y 1 4 son iguales a 01. La salida del multiplexor es 1y la entrada externa se carg a a l c Á f t . L a v a r i a b l e d e c o n d i c i ó n s e s s e l e c c i o n a d ac u a n d o l o s bits 18 v 14 son iguales a 10. Si s : 1, la salida del multiplexor es 1 y los bits de di-cAr? rección de la microinstrucción son cargadosal (si seiiene r:0). si s : 0 , l a s a l i d a d e l m u l t i p l e x o r e s 0 y s e i n c r e m e n t a e l c A R . c o n l o s b i t s 1 3y 1 4 i g u a l e s a 1 1 r e s e i e c c i o n al a v a r i a b l e d e c o n d i c i ó n E y e l c a m p o d e d i r e c ción se carga al cA,? si E: r; pero el cAR se incrementa si B: 0. Así. el
i
I
II
___-\
4
5 6
':1 \
7 8 9
b! 'o
['o
l" l.12
Selección
I [14
6
O
Figura
f ',
Función de seleccióndel MUX
Bits de ROM 14 13 00 0l l0 ll
I
Dirección
Incrementarel CAR Cargar la entrada al CAR Cargar las entradasal CAR si S : 1, incrementarel CA^Rsi S : 0 Cargarlas entradasal CAR si B: 1, incrementarel CA.Rsi E: 0 10-10
Diagrama cie bloque de control del microprograma
443
4t't
D I S E Ñ OD E L O G I C AD E C O N T R O L
cAP. 10
multiplexor permite al_control escogerentre dos direccionesdependiendo del valor del bit de condiciónseleccionado. El microprograma Una vez que se establecela configuraciónde la unidad de control del microprograma la tarea del diseñadores generarel microcódigopara la memoria de control. Fl,stageneraciónde código se llama microprográmacióny es un procesoque determina la configuraciónde bits para cadá una de lás palabras en la memoria de control. Para apreciur eite proceso,se deduciiá el microprogramapara el ejemplodel sumador-sustractor.La memoria de control tiene ocho palabrasy cada palabra contiene 14 bits. para microprogramar la memoria de cont¡ol se debe determinar los valoresde los ¡its ae"las ocho palabras. El método de trasferenciaentre registrospuede ser adoptadopara desarrollar un microprograma.La secuenciade microoperaciónpuedé ser especificada con declaracionesde trasferenciaentre régistros.ño hay necesidad de listar las funcionesde control con las variabiósde Boole yu qrr" este caso, las variables de control son las palabrasde control almacenadas "., en la memoria de control. En vez de una función de control, se especifica una dirección con cada proposiciónde trasfe¡enciaentre registros.La dirección asociadacon cada proposición simbólica correspondéa la dirección donde la microinst¡ucción es almacenadaen la memória. La secuenciade una dirección a la siguientepuedeser indicada por medio de proposiciones de control condicionales.Este tipo de proposiciónespuede usp""ifi"u. u'a dirección a la cual va el control depenáietrdod" las condicionesestablecidas. Así, en vez de pensar en términos de 1 ó 0 que debenser agregadosa cada microinstrucción,es más convenientepensar en términos dé simbolos en el método de trasferenciaentre registros.una vez que se ha establecido el microprogramasimbólico, es posible trasladar las proposicionesde trasferenciaentre registroso su forma binaria equivalente. El microprogramase da en forma simbólica en la Tabla 10-2.Las ocho direccionesde la RoM se listan en la primera columna.La microinstrucción Tabla
Dirección deROM
lO-2
Microprograma
simbólico para la memo¡ia de control
Microinstrucción
Comentarios
1 2 3
x : 1 , s i ( q " : 1 ) e n t o n c e s( v a a 1 ) , s i ( q , : 1) Cargar0 o direcciónexterna entonces (va a2), si (q, Aq, : g¡ entonces (va a 0) B, <- B-, g" : 1, comenzarsustracción If (S : l) entonces (va a 4) e " : l , c o m e n z asr u m a A<-A*B,E<-Couuvaa0 Sumar magnitudesy regreso
4 5
A<-A*E+t,¿*Co,,, Si (¿: 1) entonves (va a 0). E .-0
6
A<-A-
7
A+A*1,A,+A-,,vaaO
0
Sustraermagnitudes Operaciónfinalizadasi E: E: 0, complementarA Terminado, regresara la dirección0
1
"l sEc.10-4
C O N T R O LD E L M I C R O P R O G R A M A 4 5
simbólica en la que debe ser almacenada en cada dirección se da en forma proposiciones las para clarificar se usan Los comentarios .="*f,á; .;irr-ru. estado inial equivalente o e" La direcciótt de trasferencia entre tegistros. d e los valod e p e n d e d i r e c c i ó n s i g u i e n t e x : L . L a s a l i d a cial y produce una control de proposiciones ,".- áu'fu, variables externas e" y eo. Las tres o después ua de proposición condicional en esta microinstrucción-usan una que si la-conáe la palabraentonces. Su significado-se interpreta de manera de la palabra después escrita la dirección a dición se satisface el control*va en ia dirección ,o-o. n"i, si arnbos Q, y Qo son cero el control permanece control va a la qo el 1, son Si q, o pu.u' repetir lu -iótoi"ttrucción. ""ro dirección 1 ó 2 resPectivamente. Las proposiciónes de control condicional en las otras microinstrucciones a sin una conusan las"u"riubl"r de condición s y E.La proposición de ua indi' dirección la dición adjunta, especifica una alteinativa incondicional a cero dirección la a va que el control .uá". pot ejemplo, va a cero significa proposición una n9 presente' pi después de ó¡ecuta. la microinsirucción \av de ua a en lá microinstrucción, esto implica que la siguiente microinstrucción se toma de la siguiente dirección de Ia secuencia. También, si la condi¿".p"¿s de una proposición si no se satisface, el control va a Ia siguien"i¿" te dirección en la secuencia. Las microinstrucciones asociadas con las ocho direcciones se deducen Las midirectamente de las especificaciones de control de la Figura 10-9' la Figura en listadas aquellas a idénticas son listadas croinstrucciones de 10-9(b). La proposición de control condicional especifica la secuencia Nó10-9(a)' Figura la de estado direcciones como se da en el diagrama de ? en tese que cada número de dirección es igual al número suscrito hajo las conde control proposiciones que las obvio ser Debe estado. de el diágrama de esdicionál presentan una manera diferente de especificar el diagrama puede ser tado. Esto muestra que el método de trasferencia entre registros usado para especificar un circuito secuencial' Ei microprograma en la Tabla 10-2 se hubiera podido deducir directapara especimente del flulogiama de la Figura 10-7. Este flujograma se usa Aunque diseñar. iica. et algoriimo para el sistéma que se está tratando de pasos intermuchos parece necesitar el microprograma desarrollado aqui propósitos de la para así hecho q,ru fue ,rr"dio., ." d"ebeterrer en cuenta "tto no.hay microprograma del el concepto que entiendase .rpti.u.i¿". Una vez un micro,"rdi prru .ro poder especificar el algoritmo directamente como vez que Una estado. progr";u simbélico, sin la necesidad.del diagrama de datos y de proc_esador para el equipo ie üu e.tablecido la configuración del por de medio algoritmo el puede désairoilar se el control del micráprog."l-u un microprograma. el La desifnación simbólica es un método conveniente para desarrollar ésta Pero y de una manera que la gente pueda leer entender. .rrl.-projr"ira memoria de no es la manera como el microprograma e. almacenado en la porque ésta binario a traducirse control. El microprograma simbótióo debe los bits dividiendo hace se L,a traducción es la forma como va i lu -"^o.ia. A.quí compo.s. llamadas partes funcionales sus en de cada microinstrucción la palabra se tienen tres partes funcionales, los bits t hasta 9 especifican :niciar las microoperaciones. Los bits 10 hasta 12 especifide control para
Tabla
l0-3
Microprograma
binario para la memoria cre control
Salidasde ROM f)irección de ROM
x
t2 0 0 0 0
00 0l IO ll 00 0l l0 ll
Ju
.rl
Jo
C,n
3
4
5
6
0 0 0 I 0 0
r 0 0 0 000000100 0 0 0 0 0 0 0l 0 010 0 0 0 0 0l I I 000011010
Ly
z
tr
8
9
l0 lt
0 00
0
0 00 100 100 0 00 100
0 0 0 i 0
000 010 r00 000 l0l 000
t
Se lección
lll
000
t2
13 t4 0l 0l l0 0l 0l il 0l 0l
can un campo de dirección y los bits 13 y 14 seleccionanuna entrada del multiplexor. Por cada microlnstru."ión qu. se rista en forma simbólica se deben escogerlos bits adecuados;; i;r camposde microinstruccióncorrespondientes. La forma binaria equivalentedel microprograma se da en la Tabla 10-8. I-as direccionespara ra memoria á" .o"ttol RoM ,u lirtr" en binario. Er contenido de cada palabra de RoM se da tambl¿"-;;;i;"rio. Esta tabra constituye la tabra de verdad necesariapara programar ra RoM. Los primerosocho bits en cada paiabra RoM dan la palabra de contror que inicia las microoperacion-es a" bit se toman directamentede la Figura 10_9(bi. ".p""irifuáár.'E;;;;;r".J. iá* ,:ttt_o. en cada patabra de las proposiciánu,áu co.,t.or "i;";Li;; condicionalen el prog.ama .13#f:J"ducen En la di¡ección000,se tiene 01 parail qampode serecciónEsto permite que una direcciónex^terna r" .".gué c¡n;i;;;;';",gual a 1. De orra nranerala dirección000se trasfieie a]"lcAR. o" ü ai*"ür,",1,r1, campode selecciónde la microinstrucción.* or J. Jr."*i¿" es"l010.A par_ v tir de la tabla en la Figura 10-10,se e.r-cue.rtru "t "u.rrpo que el pulso del reloi que inic i a i a m i c r o i n s t r u c c i ó r _ 8 " : - 8 , ' ( y uq . r uy : 1 ) también oe direcciónar cAR- La'siguilntu .tii"roin.trucción t r a s f i e r ee l c a m p o que sare de la RoM sera aquella almacenadaen la dirección 010. EL ;";ü;eieccionado en la iirrec:ion 001 podría^habe¡seescogidocomo 00. Esto hubiera ---^ causadoun rflL.remento en el CAr?para luegoiia la direcciónOfO. La inspecciónde los .u*po.".de selección .n to. úit, 13y 14 muestraque cuandoesosdosbits seaniguálesa 01, er campo de direcciónestá en la nueva dirección.cuando estosdosbits sean10, se selecciona la variabrede con_ dición s -r'cuandosean 11 la variable¿. Én ,iili-o. áo, casos,la si_ guiente dirección es aquella especificada -sien el".to. campo de dirección si el bit de condiciónseleccion"doe. isurr u l. el bit de condiciónseleccionado es igual a 0, la sizuiente direJción es la siguiente en ."",r".,.iu ya que el CAft se incrementa. 46
= 1O-5
CONTROL DE LA UNIDAD PROCESADORA
La configuración con rnateriales de Ia unidad de control del microprograma usada en la sección anterior es adecuada para el ejemplo particular considerado. En una situación práctica, la organización de los materiales de una unidad de control del microprograma debe tener una configuración de propósito general para adaptarse a una gran cantidad de situaciones. Una unidad de control de microprograma debe tener una memoria de control suficiente como para almacenar microinstrucciones. Se debe hacer provisión para incluir todas las variables de control posibles en el sistema y no solamente para controlar un ALU. El multiplexor y los bits seleccionados deben incluir todos Ios demás bits de condición posibles que se quieran comprobar en el sistema. Se debe tener una provisión para aceptar una dirección externa para iniciar muchas operaciones en vez de dos operaciones solamente tales como suma y sustracción. La principal ventaja del control del microprograma es el hecho que una que se ha establecido la configuración de los materiales no debe haber vez necesidad de cambios posteriores de las conexiones entre los componentes. Si se quiere establecer una secuencia de control diferente para el sistema, todo lo que se necesita es especificar un conjunto diferente de microinstrucciones para la memoria de control. La configuración con los materiales no debe cámbiar para las diferentes operaciones; el único cambio debe ser el microprograma que reside en la memoria de control. Para demostrar la propiedad general de la organización del microprograma se expandirá la configuración de los componentes para incluir el control de toda una unidad de proceso. Una unidad plocesadora de propósito general se introdujo en la Sección 9-9. Al referirse a la Figura 9-16, se nota que la unidad procesadora tiene siete registros, un ALU, un registro de desplazamiento y un registro de condición. Se selecciona una microoperación con una palabra de control de 16 bits. Los bits para una palabra de control dada pueden ser formulados del código binario que se Iista en la Tabla 9-8. Una organización del microprograma para controlar la unidad procesadora se muestra en la Figura 10-11. Esta tiene una memoria de control de 64 palabras, con 26 bits por palabra. Para seleccionar 64 palabras se nec e s i t a u n a d i r e c c i ó n d e 6 b i t s . P a r a s e l e c c i o n a r8 b i t s d e c o n d i c i ó n s e n e c e sitan 3 líneas de selección para el multiplexor. Un bit de la microinstrucción s e l e c c i o n ae n t r e u n a d i r e c c i ó n e x t e r n a y e l c a m p o d e d i r e c c i ó n d e l a m i c r o instrucción. Sumando los 16 bits para seleccionar la microoperación en el procesador se requiere un total de 26 bits por cada microinstrucción. La unidad procesadora se incluye en el diagrama para mostrar sus conexiones a la unidad de control del microprograma. Los primeros 16 bits seleccionan la siguiente dirección para el control del registro de direcciones. Los bits de condición del procesador se aplican a las entradas del multiplexor. Se usan los dos valores normal y de complemento excepto pala el bit de sobrecapacidad V. La entrada 0 del MUX 2 se conecta a una constante binaria la cual es siempre 1. La entrada de calga al CAr? se habilita, cuando esta entrada es seleccionada por medio de los bits 18, 19 y 20 en la microinstrucción. Esto causa una trasferencia de información desde Ia sa447
I I a Campo de dirección
pq :v !';:*
Di¡ección externa
u!; o.;!
!
c ¿ " ¡E
Memo¡ia de control 64Y.26
o9 vo
l6 17 l8 t0 t1 26
t¡l
M U X]
Selección
0t23156.
ICC,ZZ'SS'V
Bits de Unidadprocesadora condición
(Figura9-16
v
T a b l a9 - 8 )
Salida Figura
lO-11
Cont¡ol del microprograma para la unidad procesadora
lida del MIJX r ar cAR. La entrada ar cAR es una función del bit 1T de la microinstrucción.si el bit 1? es 1, el crn,u"iu. ái direcciónde ra microinstrucción.si el bit 1? es cero*.u.gu "uñ"áu externa una dirección ar CAR. La dirección exte¡na es con.el propósitá ¿ó ini"iu. ur,;^;;;" secuencia de microinst¡uccionesque pueden espiclnca.s€por los componentesexternos. El bit de condición (o su ,ut"""iof;á, ilñ, Uit. ta, tg, 20 "ompl"áe.,io) de la microinstrucción puede .". iguui'u 1 ó 0. La dirección de entrada se cargaal cAr? si el bit seleccionado-es 1, pero er cAR." i.,"."-".,ta si el bit seleccionadoes 0. Para construir microprogramascorrectos es necesarioespecificarexactamente cómo el bit de condición es afectado po, .uJu LiJ.ooperación e., el procesador.Los bits S (signo) y Z- (cero) esián afectadospor todas las 448
-5 sEc.10-5
C O N T R O LD E L A U N I D A D P R O C E S A D O R A 4 9
operaciones.Los bits C (arrastre)y V (sobrecapacidad) no cumbian después de las siguientesoperacionesdel ALU: 1. Las cuatro operacionesOR, AND, OR-exclusivay complemento. 2. Las operacionesde incrementoy decremento. Para las demásoperaciones, el bit de arrastre del ALU va al bit C del registro de condición. El bit C se afecta también despuésde un desplazamiento circular con operaciónde arrastre. Ejemplode microprograma Se puede demostrar por medio de un ejemplo, cómo se escribe un microprograma para configurar una microoperación. Una microoperación inicia una secuencia de microinstrucciones en Ia memoria de control. Esta secuencia constituye una rutina de microprograma para ejecutar la macrooperación especificada. Una macrooperación se inicia por una dirección externa que aporta la primera dirección en la memoria de control para la rutina de microinstrucción. La rutina se termina con una microinstrucción que carga una nueva dirección externa para comenzar a ejecutar la siguiente macrooperación. La macrooperación que se desea configurar cuenta el número de unos almacenados actualmente en el registro procesador R1 y alista el registro procesador R2 con ese número. Por ejemplo, si 111: 00110101, la rutina del microprograma cuenta los cuatro unos almacenados en el registro y coloca en el registro R2 el número binario 100. Aunque el microprograma puede deducirse directamente del enunciado del problema, sería conveniente construir un flujograma que muestre Ia secuencia de microoperaciones y vías de decisión. El flujograma para el microprográma se muestra en la Figura 10-12. Se asume que la rutina del microprograma comienza en la dirección 8. El registro R2 y el bit C (arrastre) se Ilevan primero a 0. Se examina entonces el contenido de R1. Si éste es 0 esto significa que no hay unos almacenados en él; de esta manera la rutina del microprograma finaliza con R2 igual a 0. Si el contenido de R1 no es 0, ello indica que hay algunos unos almacenados en é1. El registro R1 conjuntamente con el arrastre se desplaza de manera circular cuantas veces sea necesario hasta que se trasfiera un 1 a C. Por cada 1 que se detecta en C, se incrementa el registro R2 y luego se comprueba si /?1 es igual a 0. Esté círculo se repite hasta que se hayan contado todos los unos de R1. Nótese que el valor de C es siempre 0 cuando se circula con 1o contenido en R1. La rutina del microprograma en forma simbólica se presenta en Ia Tabla 10-4. La rutina comienza en la dirección 8 borrando el registro R2. La microinstrucción de la dirección 9 borra el bit C y pone a uno el bit Z si el registro El contiene sólo ceros. Esto se hace trasfiriendo el contenido de R1 así mismo a través del ALU. La microinstrucción en la dirección 10 comprueba los, valores del bit Z. Si éste es 1, es un ind-icio de que el registro R 1 contiene sólo ceros y la rutina se termina aceptando una nueva dirección externa para comenzar a ejecutar otra macrooperación. Si Z no es igual a
Comienzo (di¡ección 8)
ircular R1 con arrastre
Rl+R2+l
Figura 10-12 Flujogramapara contarel númerode unosen el registro-81 1el control continúa con Ia dirección 11. El desplazamientocircular a la derecha con arrastre (crc) coloca el bit menos significativo de Rl en c. Luego se verifica el valor de C. Si éste es cero el control regresa a la dirección 11 para circular de nuevo hasta que c se convierta en 1. cuando c:1 el control pasa a la dirección 13 para incrementar R2 y luego regresará a la dirección 9 para comprobar el contenido de ft1 para cada uno de los estados cero. El microprograma binario se da en la Tabla 10-b. Los 16 bits para la palabra de control que seleccionan las microoperaciones del procesador-se deducen de la Tabla 9-8. De hecho, la mayoría de las palabras de control listadas fueron explicadas en la sección 9-9 conjuntamente con la Tabla 9-9. Los bits selectores del multiplexor seleccionan las entradas de los dos multiplexores. El bit 17 es 0 en la dirección 10 para seleccionar una di¡ección externa. En los demás casos es 1 para seleccionar el campo de dirección de la microinstrucción. cuando los bits 18, 1g y 20 son 000 la siguiente dirección se determina directamente del campo de direcciones. Cuando estos bits son 011, éstos seleccionan el bit Z para el MUX 2. Si Z: 1 se 4fr
u Tabla
lo-4
Microprograma
Dirección de ROM
8 9 t0 ll
t2 l3
simbólico para contar el núme¡o de unos en Rl
Comentarios
Microinstrucción R2+-0 Rl<-Rl.c<-0 Si (Z:1) entonces (va a la direcciÓnexterna) Rl<-crcRl Si (C : 0) entonces(va a 11) R 2 < - R 2* l , v a a 9
Tabla
1O-5
Microprograma
Borrar el contador ¡rl2 Borrar C, ponera 1 los bits de condición Acabarsi R1 : 0 Circular ft1a Ia derechacon arrastre Circular de nuevosi C :-0 furastre: 1, incrementarR2
binario para contar el número de unos en /?1
Contenidodel ROM Dirección Selectorde microoPeraciÓn ABDFH de ROM l6
001000 000 001001001 001010001 00101I 001 001100001 0 0 1 l 0 l 010
000 000 001 001 001 000
010 001 000 001 000 010
0000 0ll 0000 000 1000 000 1000 l0l 1000 000 0001 000
Campo de dirección
Selector de MUX
20
17 00 00 0l 00 010 00
0 0 I 0 0
2l
26
001001 001010 000000 001100 00101I 001001
trasfiereuna direcciónexternaal CAR' Si Z:0 se incrementael CARy la siguiente dirección será la siguiente en la secuencia.La microinstrucción ei complementodelbit de arrastreo C'. Si C: urr"ludir"..ión 12 selecciona de dirección(binario1011)setrasfiereal CAR' el campo C':1y 0, entonces Si C : 1, entoncesC' : 0 y el CAR se incrementapara dar 13para la siguiente dirección. El lector familiarizado con la programaciónde máquina o lenguajeensamblado para un computador, se dará cuenta que escribir programases muy similár a escribir programasde lenguajede máquina para un computador. fuí, el concepto d" *ic.optograma es un procedimiento sistemático para disólar la unidad de contról de un sistema digital. Una vez que se haya establecidoel formato de la microinstrucción, se hace el diseño esc¡iLiendo un microprograma,el cual es similar a escribir un programapara un computador. Poi esia razón, el método del microprogramase refiere algunas vece; como firmware para distinguirlo del método de los materiales (hardware o llamado también control de componentesconectados)y el concepto de softwarelo cual constituye un métodode programación' 451
1 O - 6 C O N T R OA L B A S ED E C O M P O N E N T E S C O N E C T A D O S - E J E M P L2O El ejemplopresentadoen esta seccióndernuestrael desarrollode un segundo algoritmo aritmético y de un método diferente para diseñar la lógicá de control. como en el ejemploanterior, se desarrollaprimero el algoritiro, diseñado conjuntamente con la configuración de los materiales, pira la parte procesadoradel sistema. Despuésde que se haga esto se formulan las especificacionesde la lógica de control dól sistemi. La organizacióndel control escogidapara este ejemploes el método del registro de secuenciay del decodificador.En la siguieniesecciónse diseña la lógica de control por medio de un FLA. Este ejEmplodemuestrala relación directa que existe entre el registro de secuenciay el Á¿to¿o del decodificador y su correspondienteconiiguraciónde contról pLAE n u n c i a d od e l p r o b l e m a se deseadiseñar un circuito aritmético que multiplique dos números binarios de_pu¡to fijo representadosen la forma signt-magnitud. El producto obtenido de la rnultiplicación de dos númerosii".ii* ."vas magnitudes consisten-deá bits, podría tener hasta 2ft bits. El signo áe cada*número ocupaun bit adicional. . La multiplicación de dos númerosbinarios de punto fijo representados en la forma signo-magnitudse hace con rápiz y papét meaüte sumas sucesivas.y desplazamientos.Este proceso.u ilrr.l.á áu ,rrru *"¡o, -"r,"ra con un ejemplo numérico. sea la multiplicación de los dos ,r,i-"ro, binarios 10111y 10011:
23
10111
multiplicando
l9
10011
multiplicador
10111 10111 00000 + 00000 10111 437
I l0l l0l0t
producto
- Este procesoconsisteen obse¡varsucesivamentelos bits del multiplicador con el bit menos significativo en primer lugar. si el bit del multiplicador es 1 se copia el multiplicando; de lo contiario se copian sólo ceros. Los núme¡os escritos en líneas sucesivas se desplazan ,.n" posición a la izquierda del número previo. Finalmente, r" ag.eg"n los númerosy su suma forma el producto. 452
f SEC. 10.6
SO N E C T A D O S - E J E M P L2O C O N T R O LA B A S E D E C O M P O N E N T EC
453
El signo del producto se determina de los signos del multiplicando y multiplicador. Si son iguales el signo del producto será más. Si son diferentes el signo del producto será menos. Cuando el proceso anterior se hace en una máquina digital es conveniente cambiar un poco el proceso. Primero, en vez de tener circuitos digitales que almacenen y sumen simultáneamente tantos números binarios como unos haya en el multiplicador, es conveniente tener circuitos para Ia suma de dos números binarios únicamente y sucesivamente acumular los productos parciales en el registro. Segundo, en vez de desplazar el multiplicando a la izquierda, el producto parcial se desplaza a la derecha lo cual da como resultado el colocar al producto parcial y al multiplicando en las posiciones relativas requeridas. Tercero, cuando el bit correspondiente del multiplicador es 0, no hay necesidad de agregar ceros al producto parcial ya que no se alterará su valor. El ejemplo numérico previo se repite aquí para clarificar el proceso de multiplicación propuesto: multiplicando: multiplicador:
l0lll l00l I
1er.bit multiplicador: 1, copiar el multiplicando desplazamiento a la derecha para obtener el primer producto parcial 2o. bit multiplicador: 1, copiar el multiplicando
l0lll
agregar el multiplicando al producto parcial previo desplazamiento a la derecha para obtener el segundo producto parcial 3er. bit multiplicador: 0, desplazamiento a la derecha para obtener el tercer producto parcial 4o. bit multiplicador:0, desplazamientoa la derech¿, para obtener el cuarto producto parcial 5o. bit rnultiplicador: 1, copiar el multiplicando agregar el multiplicando al producto parcial previo desplazamiento a la derecha para obtener el 5o. producto parcial : producto final
0 1 0 1II l0lll
l000l0l 1000101 0l000lci 001000101 l0lll l l0l l0l0l 0l l0l10101
C o n f i g u r a c i ó nd e l e q u i p o La configuracióndel registropara el multiplicador binario se muestra en la Figura 10-13.El multiplicando se almacenaen el registroB, el multiplicador se almacenaen el registro Q y el productoparcial se forma en el registroA. El signo del multiplicando está en 8., el signo del multiplicador está en Q, y el signo del producto se forma en 4.. El flip-flop E almacenael arrastre de salida despuésde la adición de B y A. Los dos númerosque se van a multiplicar consistende n bits. Uno de estosbits contieneel signo y los restantes k: n - 1 contienen Ia magnitud del número. El contadorP se prepa-
Mult i p l i c a n d o
tr
RegistroB
fplluur,iori-0, I cador I t
t ""-"""o I
RegistroA
q, (Multiplicar)
Producto Figura
1O-13 Registrospara el multiplicador bina¡io
ra con una cuenta o número binario
igual al número de bits en la magnitud
del multiplicador. Este contador se decrementadespuésde la formaclón de cada nuevo producto parcial. Cuando el contenidodel contador llegue a cero, el producto estará formado en los registrosA v Q y se ruspettderáel proceso. La lógica de control permaneceen su estadoinicial hasta que la variable q,, se convierta en 1. El control realizará entoncesla mu^ltiplicación. -si La suma de A y B forma un productoparcial que se trasfierea ¿. hay un arrastre producto de la suma, se trasfiere a E. El producto parcial en A y el multiplicador en Q son ambos desplazadosa la áerechu.únu u", qu" .L haya realizadoel desplazamientoa la derechade A y e, se trasfiere un bit del producto parcial a Q mientras que se desplazattIo.-tit. de una posie ción a la derecha.De esta manera el bit de la extrema derechaáel registro Q, designadocomo Q,, almacenasiempreer bit del multiplicador,ef cual debeser inspeccionadoen seguida. D e r i v a c i ó nd e l a l g o r i t m o El flujograma del multiplicador binario se muestra en la Figura 10-14.Inicialmente-el multiplicando_está B y el multiplicador erie. sus signos _en correspondientes están en B, y 8". El procesodó multiplicación se in-=icia cuandoe^:r.Se comparanlos dos símbolospor medio de una compuerta oR-exclusiva. Si los dos signosson igualesla operacióncon la oR-exclusiva produce un 0 el cual se trasfiere a A,, para dár un más para el producto. Si los signosson diferentesse trasfiere un 1 a A", para dár un signo negativo para el producto.Los registrosA y E se borran y el contadorde secuóncia P se lleva a un númerobinario A, el cual es igual al númerode bits en el multiplicador. En seguida se cae en un bucle que continúa formando los productos parciales. Se compruebael bit multiplicador en e, y si se encueñtraigual a 1 se agregael multiplicando en B al productoparcial presenteen A. Cualquier arrastre de la adición se trasfierea E. El productóparcial en A se deja sin cambiar si Qr :0. se incrementael contadorp independientemente dll 4g
{
Estado inicial
A"-B-qO^
¡ 1- 0 , E - 0 P-k
A-A+.B,Cuur+ÉP-P-l
AQ-shrEAQ,E+0
Figura
lO-14
Flujograma para un multiplicador binario
valor de Q1. Los registrosA, Qy E de desplazanuna vezala derechapara obtenerel nuevoproductoparcial. Esta operaciónde desplazamientose simboliza en el flujogramaen forma compactapor medio de la proposición: AQ * shrEAQ, E <*0 EAQ es un registro compuesto,hecho de los registrosE, A y Q. Si se usan símbolosindividuales para los registros,se puededescribir la operaciónde desplazamientopor medio de las siguientesmicrooperaciones: I <--shr A, Q.<- shr Q, A¡ <- E, Q* - A¡, E <- 0 Ambos registrosA V Q se desplazana la derecha.La posiciónde la extrema izquierda de A designadacomo 4,, recibe el arrastre de E. El bit de la extrema izquierda de Q ó Qo recibe el bit que está en la posiciónde la extrema derecha de A en A1 y se borra E. Se trata entoncesde un desplazamiento largo del registro compuestoEAQ con un 0 colocadoen la posición de la extrema izquierda localizadaen E. 455
456
DISEÑO DE LOGICA DECONTROL
C A P .1 0
El valor del contador P se comprueba después de la formación de cada producto parcial. Si P no es cero, se repite el proceso y se forma un nuevo producto parcial. El proceso finaliza después dól produlto parcial A cuando P:0. Nótese que el producto parcial formado A r" desplazaa Q bit a " . , El prodücto final estará bit para eventualmerte remplazar el multiplicador. disponibie en A y Q con A conteniendo loi bits más significativos y e los menos significativos. El signo del producto estará en A"".
Especificaciones del control El algoritmo diseñado -dado en el flujograma puede especificarse más precisamente por medio del diagrama de estado y una lista de operaciones de trasferencia entre registros. Se ha hecho mención previamente al hecho de que la conversión del flujograma al diagrama de esiado no es única. El flujograma debe considerarse como una formulación preliminar del algoritmo. El diagrama de c
qr. Multiplicar P, = lstP=0 e,=Osif+O
Pr=0 (a) Diagrama de estado Tr. Tt:
Estado inicial úQs,A+0.¿ lr-8, '-Cou, QtT2: A*A+B,f T.: P-P-1 Tt -40-shrEAQ.t-+0-
-0.1,-k
(b) Secuencia de trasferencias del registro
Figura lO-15 Diagrama de estado de control y secuencia de microoperaciones del multiplicador
d
E SEC. 1O-6
C O N T R O LA B A S E D E C O M P O N E N T EC SO N E C T A D O S - E J E M P L2O
457
de lo contrario A se deia sin cambiar. Las dos funciones de control en el tiempo ?, son: QtTz: A<-A+B,E-Co,, Tz: P<-P-l La segunda proposición se ejecuta siempre, cuando Tz :1,. La primera proposición se ejecutaen el tiempo ?2 solamentesi Q, - 1. Así, sepuede incluir una variable de condición (Q, en este caso) con una variable de tiempo para formar una función de control. Nótese que es conveniente decrementar P en el estado 7r, de manera que su nuevo valor se pueda comprobar en el estado ?¡. El control pasará a ?,3 después de ?2. En el estado ?3 el registro compuesto EAQ se desplaza a la derecha y el contenido de P se comprueba para buscar ceros. La variable binaria P. es 1 si el registro P contiene sólo ceros, de lo contrario P. es cero. Si P. : 1 se termina la operación y el control pasa al estado inicial. Si ¿ - 0 el control pasa al estado 7'2 para formar el nuevo producto parcial. Nótese que P se refiere al contenido del registro mientras que P. es la variable binaria. Especificación del procesador de datos La parte del procesador de datos del sistema puede derivarse de la lista de microoperaciones de la Figura 10-15(b). Un diagrama de bloque del procesador de datos se muestra en la Figura 10-16. Un sumador en paralelo se agrega entre los registros A y B para formar la suma, la cual es trasferida al registro A. El signo del producto se forma mediante una compuerta ORexclusiva y la variable binaria P. se genera con una compuerta NOR. Las salidas de la lógica de control inician las microoperaciones para el procesador de datos. La variable T, carga el signo del producto a A. y el número h a P y borra los registros A y E'. La variable ?2 decrementa el registro P y si Qr :1se generala variable,L, la cual carga la suma del sumador en paralelo a A y E. La variable ?3 desplaza A V Q a la derecha y borra E. La variable ?o no tiene efecto sobre el procesador de datos ya que solamente indica que el sistema está en su estado inicial. Las entradas a la lógica de control son las señales externas q- y las dos condicionesde status P, y Qr. Las salidas son Tr, Tr, L y Tr. Aunque no se muestran en el diagrama, estas salidas deben estar conectadas a las correspondientes entradas en el procesador de datos. La compuerta AND que genera la variable .L se muestra separadamente, aunque ésta sea parte de la lógica de control.
Diseñodel circuitode control La lógica de control para el multiplicador binario se especifica en el diagrama de estado de la Figura 10-15. El diagrama de estado tiene cuatro estados y dos entradas. Se necesitan dos flip-flops y un decodificador de 2 x 4
D I S E Ñ OD E L O G I C AD E C O N T R O I
cAP. 10
para configurarlo por medio del registro de secuencia y el método dei decodificador. Aunque éste es un ejemplo sencillo, el procedimiento enunciado a continuación se aplica a situaciones más complicadas de la misma forma. Se comienza con la tabla de excitación del circuito secuencialdado en l a F i g u r a 1 0 - 1 7 ( a ) .L a p a r t e d e I a t a b l a d e e s t a d o s e o b t i e n e d i r e c t a m e n t e del diagrama de estado. Las condiciones de entrada de los flip-flops son para dos flip-flops Jl( demarcadas G, y Gr. Nótese que la tabla de excitación tiene entradas.de no importa en la mayoría de las ent¡adas. Nótese también que un estado presente se lista más de una vez si éste tiene dos o más condiciones de estado siguiente. Las variables To hasta T3 se listan conjuntamente con las variables binarias para identificación. Las excitaciones de entrada a los flip-flops se obtienen directamente a partir de Ia tabla de excitación del flip-flopJIl como se muestra en la Tabla G-8(b). EI circuito secuencial puede ser diseñado de la tabla de excitación por medio de un procedimiento clásico. Este ejemplo tiene un pequeño número de estados y entradas; en la mayoría de aplicaciones de lógica de control, el número de estados y entradas es mucho ma!'or. La aplicación del método clásico requiere un cantidad excesiva de trabajo para obtener las funciones de entradas simplificadas para los flip-flops. El diseño puede ser simplificado si se tiene en consideración el hecho de que las salidas del decodificador están disponibles para ser usados en el diseño. En vez de usar las salidas de los flip-flops como condiciones de estado presente, se podría usar Ias salidas del decodificador para entregar esta información. Si las salidas del d e c o d i f i c a d o rs e d e s i g n a n p o r m e d i o d e l a s v a r i a b l e s T o , 7 , , ? 2 , T3 estas variables pueden ser usadas para suministrar las condiciones de estado presente del circuito. Se podría decidir el obtener estas funciones directamente de la tabla de excitación, en vez de usar los mapas para la simplificación de las funciones de entrada de los flip-flops. Aunque puede que no se logre un circuito minimizado, el posible desperdicio de algrnas compuertas se recompensa con el tiempo ahorrado. Por ejemplo, de la tabla de excitación se nota que la entrada J de G2 (designada como JG2 en la tabla) debe recibir un 1 binario solamente cuando la salida presente del decodificador es Tr. La entrada K de G¿ debe recibir un l-cuando la salida del decodificad-or es T3 siempre y cuando P, : l. Estas observaciones pueden escribirse en forma algebraica como: JGr:
7
KG,:
T'P,
En todos los demás casos, ambas entradas J y K de G2 recibirán un 0 y el estado del flip-flop no cambiará. Esto es acepta[le porque todas las demás entradas debajo de JG¿ y KG¿ tienen ceros o X de no importa. De manera similar, es posible derivar las funciones de entrada del flipflop para Gr por imposición a partir de la tabla de excitación. Las funciones de entrada así obtenidas son: JGr-
Toq^* T,
KGr:
1
! SEC. 10.6
SO N E C T A D O S - E J E M P L2O C O N T R O LA B A S E D E C O M P O N E N T EC
459
La raz6n para que KG1 sea siempre 1 es que todas las entradas en Ia tabla para esta variable de entrada son 1 ó X. No se puede estar seguro de que las funciones hayan sido simplificadas de la mejor manera posible cuando se derivan las funciones de entrada por inspecciones, partiendo de la tabla de excitación. Por esta razón se debería analizar siempre el circuito para asegurar que las ecuaciones derivadas producen en efecto las dos transiciones de estado requeridas de la manera especificada en la tabla de estado. El diagrama lógico de la lógica de control se dibuja en la Figura 10-17 (c). Este consiste de dos flip-flops G, y G¿ y un decodificador. Las salidas del decodificador se usan para obtener el siguiente estado del circuito de acuerdo a las funciones de Boole listadas en la Figura 10-17(b). Las salidas del controlador deben estar conectadas a la parte del procesador de datos del sistema de la manera mostrada en la Fizura 10-16.
?, (Decrementar) ?r (Carga)
?r (Borrar) I (Cargarsuma)
Borrar
derecha) 13 (D.esplazamiento
Lógica de control
Figura
1O-16
Q 1 T 2= L
Procesado¡ de datos para un multiplicador binario
Estado presente G2
to Tl
T2 T3 T3
00 00 0l l0 ll ll
Gl
Entradas Q^
P,
Estado siguiente G2
OX IX XX XX XO XI
Gl
00 0l l0 ll l0 00
Entradas del flip-flop JGz
OX OX IX XO XO XI
KGz
JGt
KGt
OX IX XI IX XI XI
(a) Tabla de excitación
JG2: JG1 :
T1
KG2:
T3P"
Tuq^ * T2
KGr:
1
(b) Funciones de entrada del flip-flop
T¡
rl
T2 T
L
(c) Diagrama lógico Figura 1O-17 Diseño del control para el multiplicador binario
4@
1O-7
CONTROL DEL PLA
se ha visto de los dos ejemplos presentados en este capítulo que el crs.r de un ci¡cuito de control es esencialmente un problema de diseño de ic'g'c a s e c u e n c i a l . E n l a S e c c i ó n 7 - 2 s e m o s t r ó q u e u n c i r c u i t o s e c u e n c i a lp u e d e ser construido mediante un registro conectado a un circuito combinacional' En Ia Sección 5-8 se investigó el arreglo lógico programable y se demostró que puede usarse para configurar cualquier circuito combinacional. Es poslble ento.rces disóñar un circuito de control con un registro conectado a El un PLA simplemente remplazando el circuito combinacional con el PLA' del el estado que determina registro opera como un régistro de secuencia y del co"ntrol. Ot pt ¡, ," p.ogruioa para suministrar Ias salidas de control registro' al para secuencia dar estado siguiente El diseño de una unidad de control con un PLA es muy similar al diseño que usa Ios métodos de registro de secuencia y decodificador. De hecho, u--bo. métodos es el mismo. La diferencia de el registro de secuenciu "t que se configura la parte lógica combinacional en forma los rñétodos es la el decodificador y otros circuiesencialménte remplazá PLA El del control. tos lógicos de decisión necesarios para la configuración d_elos componentes' deL " o r g a n i z a c i ó n i n t e r n a d e t É t A s e p r e s e n t ó - e n l - a , s e c c i ó n5 - 8 . S e del programa del la tabla óbtener cómo mostró también en dicha sección para sección dicha repasar que conveniente sería lector PLA. Se advierte al PLA' asegurar que se entiende ef significado de Ia tabla de programa del pln a las acuerdo de son "programados" Los* caminos internos dentro aet programa' especificacionesdadas en la tabla de Bl diseño de un control PLA requiele que se obtenga la tabla de estado del circuito. El método del PLA debe usarse si Ia tabla de estado contiene muchas entradas de no importa, de lo contrario es más ventajoso usar una ROM en vez de un PLA. La tabla de estado da esencialmente toda Ia iniormación requerida para obtener la tabla de programa del PLA (o la tabla de verdad de la ROM).
Tabla
Estado presente G2
Gl
OOOXX OOIXX OIXXX IOXXO IOXXI IIXOX IIXIX
1O-6
Tabla de estado para el ci¡cuito de control
Entradas 4^
P" Qt
Estado siguiente
Salidas ToTtT2LT3
G2
Gl
0 0
010000 110000 001000 100100 l00ll0 0 0 0 0
0 0
001 001 461
462
D , S E \ OD E L O G I C D A EC O N T R O L
C A P .1 0
Para cie¡'iostrar el procedimiento con un ejemplo, considérese el circui_ to de c,,nrroi para el multiplicador binario prur".riJ;;;-l" sección previa. L a s e s p e c r f i c a c i o n e s . d e . c o n t r opl a r a e l * r i t l p r^obti".," i.uáoi úi.rurio se dan en la
A¡rartir de estainformaciónr" ru lu¡lu Ltryl: l0.P; la lacra -tu-b.¡il estadopresentese determinaa partir de los de esradode flip_ftoo. 1'G- Las variables de entrada para er circuito a" s o n q , , , p , ""y Q,. El siguiente estado.dq ""ntr"l
G, -v.C, puede ser una función de una de las e.ntradas o puerle-ser independ"ir"t" a" cualquier entrada. Si una variáo^e de entrada no influye en él estado siguiente, se marca con una X de no jmporta' Si ei siguiente estado es una función a" particular, el estado presente se repite en la tabla y a los "*".rtrada ,isu-i;es se les asignan diferentes valores binarios. La tabla lista también ".t"io, todas las salidas de control como una función del estado presente y de las condiciones de entrada. Nótese que la entrada Qr no afecia al siguiente estado sino soramente de-
termina el valor de la salida .L cuando tá satiáa-if lsuur u r. El diagrama de bloque del control pLA se *"Átru". .'., tu rigu.a 10_1g (a). El PLA se conectaál registro de secuenciacon dos flip_flopsGt y G¿. Las entradas al PLA son loJvarores del estadopresente der registro de secuenciay las tres ent¡adasexternas.Las salidas'd;i piA;eneran el estado siguientepara el registro de secuenciay ias variables á"-üriau de control. El estadopresente_delregistro de secuénciu, con las condi_ cionesde entrada determinan en un tiempo dado-los "o.r¡.r.1";;;;" valoresde salida y del el registro de seculncia. El sisui".,1" p,rr.o de reloj i:*i:",:: lnlcla las "j:ig:::* mlcrooperaciones especificadaspor las salidás y trasfiere el esta_ do siguiente a.l rbgistro a" ruóu"t nuevo estado de ";.-E;í;,;-rrr-1." control y posiblesvalores de entrada "i diferentes.Ci;l iin actria como la parte de lógica combinacionalde ,rr, ;;;;;"lluru las sa^lidasde contror y los valores del siguiente "ir",ritá á"i,"!irt.o ".,t."gar de secuen_ cra. ".t"J" un PLA se especificapor medio der número de entradas,el número de términos de prrducto y el número de salidas. prr;;rt"-;;; .. tienen cinco entradas v siete salidas. El número ae -- t¿rÁi"o, ;;;ár; es una fünción riel circuito que se deseaconfigurar. La tabla de orogramadel pLA se puedeobtener directamentea partir de la tabla de eitaáo ri" procedimientosde simplificación. """u.ia-;i;f La tabla de programader pLA .n iu rigu.a 10-1g(b)especificasiete té¡mi_ nos producto, uno para cada fila en la Jabla d, ;t;J;:;os terminares de entrada y salida se marcan con números y ras variables aplicadas a esas terminales numeradasse indican en el diág;";;-;ü;. Los comenta_ rios no constituyenparte.de la tabra pero se incl.ry"n purá De acuerdoa las reglasestableciáasen la ""laraciones. secci¿n'á-gJna conexiónpa_ ra un camino de pl,A.se indica por medio a" guiá; ijll" ta tabla. Las X en la tabla de es!a!9 designanlus co"dicio"".'¿. "" ,,o'i*pirta y no implipLA. can conexiónpara el Los 0 en las corumna, a. ."liáu'i"dican también no conexionesa las compuertasoR dentro del pLA. Lu de ra ta_ bla de estadoa una tablá de program" á!r pie;;*-.,"rolu, *u"rrión L". X de las columnasde entrada y los 0 é" iá. col.r*r,as de saridá r" guiones a y las demás entradaspermaneceniguales. Nótese ñ lá,"á-uu., ar pLA son las mismas que las del presente"estado ""tradas y tu, la tabla de es_ ".,trua;;;
{
..----'
I
(a) Diagrama de bioque
Entradas t2345
Término del producto I 2 4 5 6 7
0000010l l0 l0 ll-0 I l*l
|
0 I
-l lll ll l-
23
Salidas 4 5 6 7
Comentarios
lI - I
To: l, To: l, Tt:l Tz:r, Tz:1. Tt: l, Tt: I'
I I
I I I
4^:0 q^: I Qt:0 L:1. P,:0 P,: I
Qt:l
(b) Tabla del programa PLA Figura
1O-18
Control del PLA para un multiplicador binario
tado. Las salidas del PLA son las mismas que las del siguiente estado y las salidas de la tabla de estado. El procedimiento para diseñar la lógica de control con un PLA debe ser evidente a partir de este ejemplo. De las especificaciones del sistema se obtiene primero la tabla de cstado para el controlador. El número de estados determina el número de flip-flops para el registro de secuencia. El PLA se conecta al registro de secuencia y a las variables de entrada y salida. La tabla del programa del PLA se obtiene directamente de Ia tabla de estado. La unidad PLA en un control PLA puede visualizarse como una memoria de control que almacena información de control para el sistema. Las salidas del registro de secuencia conjuntamente con las entradas externas, podrían considerarse como una dirección para tal memoria de control. Las salidas suministran una palabra de control para el procesador de datos y la información del estado siguiente especifica un valor parcial para la siguiente dirección en Ia memoria de control. Desde este punto de vista un control PLA puede clasificarse como una unidad de control de microprograma con el PLA remplazando la ROM para la memoria de control. Sin embar-
4&
DISEÑO DE LOGICA DECONTROL
cAP. 10
go, la organrzación de los dos métodos es diferente aunque hay una cierta cantidad de similitud entre el pLA y los métodos de control del microprograma. Los ejemplos ce controi introducidos en este capítulo demuestran cuatro métodos de diseño de lógica de control. Estos ná deberian considerarse Ios únicos métodos posibles. un diseñador recursivo ¿eue ,e. capaz de formular una configuración de co_ntrolpara adaptarse a una aplicatión pu.li cular._Esta configuración puede de una combinación de métodos "o.rrirti. o puede constituir una organización de cont¡ol diferente de los qrre .e hu., presentado aquí. El diseño de ia lógica de control para un computador digital sigue del Tfmo procedimiento que se enuncia én este capítulo. El papel del control del microprograma en la organización de un computador de propósito general se presenta en la siguiente sección. El capít'Jáii-p.".""ta un diseño detallado de un computador digital y muestra cómo configurar su unidad de control por medio del método de cónexión a" .o*po"á"ll'., método del PLA y el método del microprograma. "l
1O-8 SECUENCIADO DR ELMICROPROGRAMA una unidad de control de.microprogramadebe visualizarse como compuesta-de dos partes: la memoriade cóntiol que almacenalas microinstrucciones y los circuitos asociadosque controlan ia generació; d" ia srguientedirec_ c.ión._ La parte de generaciónde dirección ,é llu*u ulgu.rug, ue"es secuencia_ dor de microprograma vista de que da la secuencii-Jul". microinstruc_ 9n cionesen la memoria de control. un secuenciadorde microprograma puede construi¡secon circuitos MSI para adaptarsea una aplicación particuür. Sin-embargo,de la misma -utre.u que se encuentrandisponibles en cI las unidadesprocesadoras para propósitósgenerales,se encuéntranlos cI para los secuenciadorespatu propósito. gen"er"l", uá""rruá;, p"." la construc_ ción de las unidadesde c-ontroldel riicroprograma.para garantizar un amplio rango.de aceptabilidad un secuenciadorde cI debe suministrar una organizacióninterna que pueda adaptarsea un amplio ,u"go-Jr-"Jri.""i"l
nes.* un secuenciador de microprograma unido a la memoria de control inspecciona ciertos bits de la microinstrucción, de los cuales se determina la srguiente dirección para el control de la memo¡ia. un secuenciador típico pre_ senta ias siguientes características de secuencimiento de direcciones: 1. lncrementa la dirección presente para la memoria de control. 2' Se ramifica a una di¡ección como se especifica en el campo de dirección de Ia microinstrucción.
3. se ramifica a una dirección dada, si el bit de condición especificado es igual a l. *Algunos s e c u e n c i a d o r e sc o m e r c i a l e s s o n C I t i p o g X 0 2 ( S i g n e t i c s ) 940g (Fai¡child) y 2910 ( A d v a n c e d M i c ¡ o D e v i c e sr .
sEc. 10-8
S E C U E N C I A D ODRE L M I C R O P R O G R A M A
465
4. Trasfiere el control a una nueva dirección de la maneraespecificada por una fuente externa. 5 . Tiene la facilidad para hacer subrutinas con llamadasy ¡etornos. En la mayoría de los casos se leen las microinstrucciones de la memoria de control en sucesión. Este tipo de secuencia puede lograrse fácilmente incrementando el registro de dirección de la memoria de control. En algunos formatos de microinstrucción, cada microinstrucción contiene un cámpo de dirección aún para direcciones secuenciales. Esto elimina Ia necesidád de incrementar el registro de dirección de la memoria de control porque el campo de dirección disponible en cada microinstrucción especifica la dirección de la siguiente microinstrucción. En cada caso, se debe dejar la alternativa de ramificarse a una dirección que esté por fuera de la secuencia normal. El control debe trasferirse de vez en cuando a una microinstrucción no secuencial, de manera que el secuenciador debe suministrar la capacidad de ramificarse a cualquiera de las dos direcciones dependiendo áe si el bit de condición es 0 ó 1. La manera más sencilla de lograr lo anterior es ramificándose a la dirección especificada por el campo de dirección de la microinstrucción si el bit de condición especificado es igual a 1 o si no pasar a la siguiente dirección en secuencia si el bit de condición es igual a 0. Esta configu¡ación requiere la capacidad de incrementar el registro de dirección. El secuenciador trasfiere una nueva dirección para que la memoria de control comience a ejecutar la nueva microoperación. La dirección externa trasfiere el control a la primera microinstrucción en una rutina de microprograma que ejecuta la macrooperación especificada. Las subrutinos son programas usados por otras rutinas para lograr una tarea dada. Las subrutinas pueden llamarse desde cualquier pu.rto dentro del cuerpo principal del microprograma. Frecuentemente muchos microprogramas contienen secciones idénticas de código. Las microinstrucciones pueden conservarse usando subrutinas que usan secciones comunes de microcódigo. Los microprogramas q.r" .,run subrutinas deben tener una provisión para almacenar direcciones de retorno durante una llamada de iubrutina y restaurar la dirección durante una subrutina de retorno. Esto puede lograrse colocando la dirección de retorno en un registro esppcial y luego ramificarse al comienzo de la subrutina. Este registrá especiáüpuede entonces convertirse en la fuente dej dirección para alistar el registro de dirección para el regreso a la subrutina principal. La mejor maneia de organízar un archivo de registro que almacene direcciones para llamadas de subrutinas y que regrese, es usar una pila (LIFO) último en entrar primero en salir. La organízación de la pila y su uso en las llamadas de subrutina y regreso se explica en mayor detalle en la Sección 12-5. El diagrama de bloque de un secuenciador de microprograma se muestra en la Figura 10-19. Este consiste de un multiplexor que selecciona una dirección de cuatro fuentes y la dirige al registro de dirección de control. La salida del cAR suministra la dirección para la memoria de control. El contenido del cA¡R se incrementa y aplica al multiplexor y al archivo de registro de la pila. El registro seleccionado de la pila se determina por me-
a
Di¡ección externa (EXA)
"0
I
Di¡ección de bifurcación (BRA)
I
3
MUX J0
Registrode direcciónde control ( CA,R)
Registro indicadorde la pila (SP) f'l
Incremento
Dirección de salida
Tabla de función 12ItIoT
X O X O X I 0ll0 0lll
J¡
O X I X O X
rlr0 llll
Jg
Operación
Comentarios
0 I 0 0 I 0 I
CAR <_ EXA CIR <- SR CAR <--CAR + I CAR <_ CAR + I CAR <_ BRA CAR <_ CAR + I CAR <- ARI, SR <_ CAR + I
Trasferir la dirección externa T¡asferir de la pila de registro Inc¡ementar dirección lncrementar dirección Trasferir dirección de bifurcación Incrementar dirección Bifurcar a Ia subrutina
Figura 1O-19 Organizaciónde un secuenciadorde microprogramatípico
dio del registro indicador de la pila (stack pointer). Las entradas 10,.fr e 12 especifican la operación para el secuenciador y la entrada ? es el punto de prueba para el bit de condición. Ei registro de dirección puede llevarse a cero para iniciar el sistema y los pulsos de reloj sincronizan la carga a los registros. La tabla de función listada en el diagrama especifica la operación del secuenciador. Las entradas Iy e I¡ determinan las variables de selección para el multiplexor. Una dirección externa (EXA) se trasfiere al CAR cuando .1110:00. La trasferencia del registro de Ia pila (S.R) ocurre cuando 466
o o
sEc.10-8
S E C U E N C I A D OO RE L M I C R O P R O G R A M A
467
ItIo:Ol y el CAR se incrementacuando ItIo:1O. Las entradas T e I, y Se marcan con entradas no-tienen efeCtodurante estas tres operaCiones X de no importa. Cuando hlo:11, el secuenciadorejecuta una operación de ramificación condicional dependientedel valor del bit de prueba en ?. Si 12 es también igual a 1, la operaciónes una llamada condicional a la subrutina. En cadicaso, el cA,R se incrementa si el bit de prueba ? es 0. La dirección de ramificación (BnA) se trasfiere al cAR si ?:1. Así, con ItIo :11, el secuenciadorse ramifica al BRA si el bit de condición en ? es igull a I o incrementael CAft si el bit de condiciónes cero.La direcciónde rámificación normalmente viene del campo de la dirección de la microinstrucción. La llamada de subrutina condicional (Ir:1) es similar a la ramificacióncondicional(.fz:0),exceptoquelaprimerauselapilaylaúltimano. La dirección almacenadaen la pila durante una llamada de subrutina se toma del dispositivo de incremento. Este es la siguiente dirección en secuencia y es llamada la di.recciónde regreso.La dirección de regresose trasfiere de nuevo al CAR con una operación de regreso a la subrutina ( / 1 / o: 9 1 ¡ ' La operacióndel registrode la pila y el indicador de pila (stack pointer) será entendidade mejor manera despuésde leer la Sección12-5.Un registro pila (o memoria) es similar a la unidad de memoriaexceptoque la direcciól para la pila se determina a partir del valor en el registro del indicador de pit" (.t""t pointer register).El accesoa la pila está en la secuenciade úllimo en entiar primero en salir y se controla incrementandoo decrementando el indicador de la pila. Inicialmente el indicador de pila se borra y se dice qve apunta a la dirección 0 en la pila. La escrituro o la trasferenciade información a la pila se llama insercíón (push). Esto consistede escribir la información de óntrada en la pila en la dirección especificadapor el indicador de pila para luego incrementar el registro del indicador de pila. De esta manera se trasfiere información a la pila y el indicador de pila indica el siguientelugar libre en la pila. La lectura o la trasferenciade información haciá afuera de Ia pila se llama socar (pop). Esta consistede decrementar primero el registrodel indicador de pila y luego leer el contenidodel regislro (o palabra) especificadopor el nuevo valor del indicador de pila. Una llamada de subrutina se ejecutacuandoI2I1I¡:111 y ?:1. Esta causa una operaciónde socar de la pila (push-stack)y una ramificación a la dirección especificadapor el BRA. Esto se configura almacenandoprimero el valor incrementadodel CAR a la pila. Cuando el pulso de reloj CP pasa a través de una transición de flanco positivo, la direcciónBRA se tras?iereal CAR y se inhibe la entrada de lectura a la pila. El registrodel indicador de la pila se incrementa posteriormentecuando CP pasepor su transición de flanco negativo. Esto se ilustra en la Figrrra 10-20(a). El regresode la subrutina se ejecuta cuando ItIo:01. Este causauna operaciónde sacarde la pila y una ramificación a la dirección almacenada en la cima de la pila. Esto se configura decrementandoprimero el registro indicador de la pila en la transición del flanco negativodel CP. EI valor en la pila, dado por la dirección contenida al presenteen el indicador de pila. se lee y trasfiereal CAR en la transición del flanco positivo del CP. Esto se ilustra en la Figura 10-20(b).Nóteseque el cAB se disparadurante el flan-
Escribi¡ CAR + en la pila
'll CAR+BRA
(a) Sub¡utina de llamado (insertara la pila) /r1,1o?:
t I SP+JP- |
Leer de Y""1:" lraappi lraa
5P€SP+\ ffll
t I C A R- , ! R
( b ) R e g r e s od e l a s u b r u t i n a ( s a c a r d e l a p i l a ) I,1o : 01 l'igura
1o-20
operaciones de la pila en el secuenciado¡ de microprograma
co positivo y sP durante ei flanco negativo de un pulso de reloj. El indicado¡ de la pila (sP) se incrementa deipués de la tiasferenciaál cafi y ,. decrementaantes de trasferirseal CAR^. O r g a n i z a c i ó nd e l C p U m i c r o p r o g r a m a d o un computadordigital consistede una unidad procesadora central (cpu), una unidad de memoria y un dispositivo de entiada-salida. El cpu p,r"dó ser clasificadoen dos seccionesfuncionalesi"ie.uctil; dife¡entes.una es la,secciónde procesoy ra otra es la secciónde control. una unidad procesadoraes un dispositivo para construir la sección del procesador -útil del cPU. El secuenciador_ del *i"rop.og.uma es un elemento conveniente para construir un control der-microprogramapara el cpu. Se va a desarroliar ahora un comnutador cpu para irostrar la utilidad del secuenciador ciemicroprogramadefinido en la irigura 10-19. . Lin diagrama de.bloquede un c"omputadormicroprogramadose muestra en la Figura 10-21.consisre de una unidad d. ;;;;;ü áos unidadespro_ c'esadorasun secuenciador.demicroprograma,una memoria de contráf y ','ariasfuncionesdigitales Es.ta configuraciónpued. computadorsencillo que fue diseñadoen la secci¿" "".y "á-parada con el s:g clyo aiagramade b;4ue se da en la Figura g-16. La unidad de memoria almacena las instruccionesy datos suministrados por el usuario a_travésde un dispositivo de entradá. El procesadorde datos manipula los datos y el procesaáorde direccio.r", ,rrurripuralas direcciones recibidas de la mémoria. Los dos procesadores pueden combinarse en una unidad, pero alg'nas veces es convenient. *"pu.".t* ;;;;;;;; suministrar un bus dife¡entepara la dirección de la memoria. una instruc468
T
Procesador de direcciones
Dirección
Contador de programa
Unidad de memoria
Registro de dirección de memoria
Registrode instrucción
I
Bttl4:I
Secuenciador del microprograma (Figura 10-19)
condrcron L
Memoria de control (ROM)
-Selector de secuencta I -Selector MUX SL BRA -Dirección debifurcación -Control de memoria MC -selector del Procesador PS -CamPo de datos DF
Figura
lO-21
Organización del computador microprogramado
469
47O
D I S E Ñ OO E L O G I C AD E C O N T R O L
cAP.10
ción extraída de la memoria durante un ciclo de entrega o envío (fetch) pasa al registrode instrucción. Los bits del códigoinstruc-ciónen el registrá de instrucción especificanuna macrooperaciónpara la memoria de control" A menudo se necesitauna trasformacióttde código para convertir los bits del código de operaciónde una instrucción a la dirección de comienzopara la memoria de control. Este códigode trasformaciónconstituye una función de planimetría y puedeser config'rada con una RoM o un pLA. El concepto de planimetría presentaflexibilidad para agregarinstrucciorr", o -r"-instruccionespara la memoria de contrbl cu"ndJ se presentela necesidad. La dirección generadapor la función planimétrico de trasformacióndel código se aplica a la entrada de la dirección externa (EXA) del secuenciador. La unidad de control del microprogramaconsistedel secuenciadorde la Figura 10-19,una memoria de contról para almacenar microinstrucciones, un multiplexor y un registro canalizador(pipeline register).El multiplexor..selecciqna uno de los muchosbits de y lo áplica a la entra"o.ráióió., da (p¡ueba) ? del secuenciado¡.una de las entradas del multiplexor es siempre 1 para presentar una operaciónde información incondicional. El registro canalizadorno es siempre necesarioya que las salidas de la memoria de control van directamentea las entradu. áu control de varias unidades en el cPU. El registrocanalizador,sin embargo,incrementala velocidad de la operaciónde go-ntrgl.Este permite que se góne.ela siguientedirección y que cambie la salida de la memoria de contro[ mientras {ue la palabra de control corriente en el registro canalizador inicia las micóoperaiiones da_ das por la presentemicroinstrucción. - un posible formato de microinstrucción para la memoria de control se ilustra dentro del registro canalizador. El cámpo I consistede tres bits y suministra la información de entrada al secuenciador.El campo S.L selecciona el bit de condiciónpara el multiplexor. El campoB¡tA es el campode dirección de la microinstrucción que suministra uná dirección de bifurcación (BfiA) al secuenciador.Estos tres camposde la microinstrucciónpresentan información al secuenciadorpara dele¡minar la siguiente direcóión para la memoria de control. El secuenciadorgenerala siiuiente dirección y la memoria de control lee la siguiente micróinstrucción"mientrasque se Ylyan ejecutando las microoperacionespresentesen las otras unidadés del CPU. Los otros tres camposen la microinstrucciónson para controlar las microoperacionesen la -unidad del procesadory de memoria. El campo de la memoria de control (MC) controla al procesádorde direccionesy lás opera9lol9s-d9lectura y escrituraen la unidád de memoria.El campoáe seleáción (PS) del procesadorcontrola las operacionesen la unidad dei procesador de datos. El último campo es el campo de datos (DF) usado para introducir constantesal microprocesador. El procedimientopara introducir datosal sistema a partir de la memoria de control es una téónica frecuentementeusada en muchos sistemas de microoperación.Las salidas del campo de datos pueden usarsepara preparar regisfros de control e introducir datos en los régis_ tros-del procesador.Por ejemplo, se puede agregaruna constante del de dat-osal_registro procesadorpara lncrementar su contenido por un""ripo val'or específico.otro uso del campo de datos es poner un contado¡ de secuenciaa un valor constante. El contador de secuenciase usa para contar el número
\! REFERENCIAS 471
(loop), como se requiere de vecesque se pasa por un bucle de microprogfmq .tt iu tniitta de multiplicación o división' usualmenie --Ú"u vez que la configuraciónde los materialesdel cPU microprogramael-disónadorlo puedeusar para constTir una cualquiera ¿o .. se formula ".tu¡I.r."n, de las muchas .o"fig"rá"io.re* de computadoi posibles. Primero microproel y se escribe luego para computador el iu inrt*".ión estabücida puede cambiar el microprogramaen la Se de control. para la ,rr"rrroii" !iu*" de control si se desea un computador diferente con un conjunto ;;;;tiu los materiales si diferente de instrucciones. No se t-te.".lt"tt cambios en se hace soque ya cambio el computador, ."r"¡iu" las especificacionesdel ROM presente quitar la implica Esto ROM. lamenteen Ia memoii" á".o"t.ol J. .n Uu." para cambiarla por otra con un microprograma-diferente' se muesLa construcciónde un cPU a partir de componentesLSI como de insel conjunto pará definir tra en la Figura tO-Zl, presenta la libertad emsin en cuenta, tener debe Se computador. i-"aiorr"" d"eun .i.i"*u de completo CPU un contienen disponibles bargo, que los .ir.,ri-t*-ltriegrados En dentro de una .ofu .áp."f* ñste tipo de CPU se llama microp,rocesodo.r' pedido se bajo hecho *ñláptocesador en vez de un CPU el caso de usar microprocedel fijas "" instrucciones debe estar de acuerdo con el conjunto de CPU ya listo, En olrar palabo". ,' microprocesador_es .uáo, lTr microprograCPU Un "r.ogido. computador. de initrucciones fijo de u,' c-on"junto la formulación permite que "o" flexible unidad una pediao es bajo mado hecho microproceLos particular. áu i""t."..ionel adecuadaspara una aplicación sadoresse discuten en el Capítulo 12'
REFERENCIAS 1 . Mano, M. M., Computer SystemArchitecture. EnglewoodCliffs, N. J.: PrenticeHall, Inc., 1976. 2 . Rhyne,Y . "I ., Fundamentalsof Digital SysúemsDesign.EnglewoodCliffs, N' J.: Prentice-Hall,Inc., 1973. J. chu, Y., computer organizationand Microprogramrning.Englewoodcliffs, N. J.: Prentice-Hall, Inc., 1972. 4 . Mick, J. R. y J. Brick, MicroprogrammingHandbooh.Sunnyvale,calif.: Advance Micro Devices,Inc., 1977. 5 . Bípolar Mícrocornputer conr,ponentsData Booft. Dallas, Texas: Texas Instruments, Tnc., L977. NuevaYork: 6 . Agrawala,A. K.y T. G. Rauscher,Foundationsof Mícroprogramrning. 1976. Academic Press. 7 . SigneticsField PrograrnmableLogic Array: An Application Manual. Sunnyvale, Calif.: SigneticsCorp., 1977. 8. Clare, C. R., DeslgningLogíc Systems lJsíng State Machines. Nueva York: Mc' Graw-Hill Book Co., 1973. Architecture", Comp¿fer,Vol. 11. 9. Alexandridis,N. A., "Bit-sliced Microprocessor N o . 6 , ( j u n i o 1 9 7 8 )p, á g s . 5 6 - 8 0 .
PROBLEMAS 10-1. (a) Muestre que el control del contadorde anillo de la Figura T-22(a) es un caso especial de un flip-flop por cada control de estado dibujado en la Figura 10-2.Indique cómo el r''ltimo puede reducirseal primero. (bj Muestre qu"e el contadory el control del decodificadorde la Figuü 7-22(b).. ,rn."ro especial de un registro de secuenciay control de decoáificador'cámose dibuja en la Figura 10-3.Indique cómo el úrtimo puede reducirseal piirn..o. 10-2. ¿Cuál es Ia diferenciaentre un control de conexionesde materialesy el contro-l del microprograma?¿cuáles son las ventajasy desventajasde cada mé_ todo? 10-3. El sistemasumador-sustractor diseñadoen la sección 10-3usa un ALU. Re_ dibuje el diagrama de bloque de la Figura r0-g sin usar un ALU. En vez de ello use el circuito sumadorsustractorde la Figura 9-10y un registro con las característicasde complementar,incrementary cargar. Revise las salidas de control de la Figura 10-9(b). 10-4' Repaseel flujograma de la Figura 10-? para buscar si podría resultar un cero negativoal final del cómputo.un ceronegativoocurre.i ¿: o y A" : 1. 10-5. Diseñe un sistema digital q_uesume y reste dos númerosbinarios de punto fijo representados en la forma de signo-complemento de 2. Incluya una indicación de sobrecapacidad. 10-6' Reviseel diagramade estadode control de la Figura 10-9para constatarsi el valor de cou,se compruebaen el tiempo T, en riz a..o-f-bur el valor de E en el tiempo ?u. 10-7' El número de estadospara el control de la Figura 10-9puede reducirse si la variable s se usa conjuntamente con q, y a, para d-eterminarel estado siguientedespuésdel estadoinicial. ramtl¿n, ér ..gi.tro a p".a" ser comple_ mentadodurante el estadomismo en que E se borra'si E,seincluye." t" jrr.,ción de control para la operación de cómplemento. Demuestreque un sistéma sumador sustractor puede ser configuradócon seis estadosJe control. 10-8' Derive las funcionesde_entradapara los flip-flops 8,, A" y E de la Figura 10-8(a).Use flip-flops Jl(. 10-9. Diseñeel control esp_ecificado por el diagramade estadode la Figura 10-1b(a) por el método de u¡ flip-flop por estado.liurr¡e el diagrama lógicoisando .oo,puertas y cuatro flip-flops D. 10-10.obtengalista para el microprograma binario de la Tabla 10-3, ]na se,eun_da usando00 para los bits de RoM 18 y 14 ."du".r., que se incrementaincondi_ cionalmenteel CAR. 10-11.Diseñe el circuito de entrada de la Figura 10-10remplazando las compuertas AND asociadascon eo y e" con un multiplexor dual de i i .on entrada de habilitación. " ro-L2.La unidad de control de microprogramade ta Figura 10-10 conjuntamente con el procesadorde datos asociado de la Figura tó-s(a), * ;;" para sumar y restar dos númerosbinarios en representu.ló., d. ,ig";-.or";l;mento de 2. Los bits de signo residen-enla posición del bit a. tu."*i.r"á-ilq"i.ra" de los re_ gistros A y B. como los signos.seincluyen con A y g, no hay-necesidadde A" y B" y la variable s. En cambio, p"t-it".u qu. s ..á el flij-flop que almace'na el arrastre C, que^va en la posición del bit de signo, áá l" *"rr"ra que .O almacenaal arrastre c¿+r: c.u, que sale de ta posiclln'¿.l ilrt de signo'.su472
I
s PROBLEMAS
473
ponga que las variables y y z usan las dos señales de control que ponen a uno el flip-flop de sobrecapacidad V. Si ocurre una sobrecapacidad, V es ó u ".ró a uno con ia variable del control y. Si no ocurre una sobrecapa.cidad, puesta se borra V con la variable de control z. (a) Escriba el microprograma en la forma simbólica. (b) Liste la tabla de verdad de la ROM en binario. 10-13.Dé una microiñstrucción en forma binaria para la memoria de control de Ia Figura 10-11 que mantenga el sistema en un bucle de no operación siempre que ia dirección externa sea igual a la dirección donde se localiza la microinstrucción en la memoria. Los valores que van al registro de condición no son importantes. 10-14. Escriba un microprograma en la forrna simbólica para el sistema de la Figura el signo del número almacenado en el registro R1. El nú10-11que en lá presentación de signo-complemento de 2. Si el número es posi''-'eroeitá "ortrp.rróbu tivo, se divide por 2. Si es negativo se multiplica por 2. Si ocurre una sobrecapacidad, R1 se lleva a 0. sin siglo alma10-15. Escriba un microprograma que compare dos números binarios se borra entonmenor número el cenados en R1 y nz."nt registro que contiene Use el sistema registros. ambos se borran igoui"., números.on ces. Si los dos de microprograma de la Figura 10-11' números bina10-16. -- - - El procesador de Ia Figura 9-16 se usa para multiplicar dos y producto rios'sin signo. El multipiicando está en 81, el multiplicador en R3 el número al igual binario número un almacena R4 y Eiíegistro se forma .., Rz R3. de bits en el multiplicadoi. Describa el algoritmo en la forma de flujograma. d. 10-17. Liste el contenido de los registros E, A, Q y P (Figura 10-16) después- 9199 pulso de reloj durante el pro-cesode multiplicación de las dos magnitudes 10111 (multiplicando) y 10011 (multiplicador)' Ia variable Qr 10-18. El diagrama de estado de control de la Figura ro-15(a) no-usa se usa como .o-o ünu condición de transición de estado. En vez de ello, Qr el parte de la función de control en la lista de registros de trasferencia. Diseñe de el diagrama en condición control de manera Que Qr aparezca como una que pala estado y que se elimine de la lista de funciones de control. Muestre estados. cinco este caso.l di"g."tn" de estado debe tener al menos en e.l 10-19. Determine el tiempo que se toma procesar la operación de muitiplicac^ión tiene k sistema digital desc.iio en Ia Figura 10-15. Asuma que el registro Q bits y que él intervalo entre dos pulsos de reloj es ú segundos' ? y un de10-20. Diseñe la lógica de control de la Figura i0-16 usando dos flip-flops codificador. con carga en 10-21. Cambie el registro P de la Figura 10-16 a un contado¡ creciente el valor inicial es P. registro el ¿,Cuál paralelo. La éntrada ?, no incrementa que debe cargarse a P en el tiemPo ?1 ? base r 10-22. pruebe que la multiplicación de dos números de n dígitos en cualquier que declaesta Muest¡e longitud. de dígitos 2n de más no poroducto de da un diseración implica que no puede ocurrir sobrecapacidad en el multiplicador 10-6. ñado en la Sección registro de 10-23. Diseñe el control especificado en la Figura 10-9 por el método de Gt' Gz G3, JK, flip-flops los tres I secuencia y decodificador. Use secuen10-24.Diseñe el control especificado en la Figura 10-9 usando un registro de PLA' programa del de cia y un PLA. Liste la tabla
Multiplicador
l"-l l-;l
Producto Qn
Lógica de control
P+P+B A+A-l
Figura PIO-25 Multiplicaciónpor sumassucesivas 10-25.La configuracióndel registroy el flujogramadei sistemadigital que multiplica dos números binarios sin signo por el método de la adición repetida se muestra en la Figura P10-25. (a) Convénzaseusted mismo que el sistemamultiplica el contenidode A y B y coloca el producto en el registro P. (b) SeaA:0100 y B:0011. Pasandopor los pasosdel flujograma,demuestre que el sistemaregresaa su estadoincial, con el registroP conteniendoel producto 1100. (c) Dibuje un diagrama de estado para el control y liste las trasferenciasde registro que van a ejecutarseen cada estado de control. (d) Dibuje el diagrama de bloque de Ia parte del procesadorde datos. (e) Diseñe el control por el método de un flip-flop por estado. 10-26.Las siguientes operaciones de trasferencia entre registros especifican un control del tipo de cuatro estados de registro de secuenciay decodificador. G es un registro de secuenciade 2 bits y 7,,, Tt, Tt I ?3 son las salidas del decodificador. xT6: !To: zT¡: T 1* T 2 * 7 3 :
G<-G+l G <- l0 G<-ll GeG+l
(a) Dibuje el diagramade estadodel control. (b) Diseñe el registro de secuenciacon flip-flops Jl(. 474
I
-l!
x=0
Figura PIO-27 Diagramade estadode controlpara el Problema10-27 10-2?.una unidad de control tiene dos entradasx y y y ocho estados.El diagrama de estado de control se muestra en la Figura Pl0-27. (a) Diseñeel control usando8 flip-flops D. (b) Diseñe el control usandoun registro,un decodificadory un PLA' 10-28.El diagrama de estado de una unidad de control sC muestra en la Figura P10-28. Tiene cuatro estadosy dos entradas f y y. Diseñe el control por el método de registro de secuenciay decodificadorcon los dos flip-flops JK, G2 Y Gr. (a) Use las salidas del decodificador como condicionesde estadospresentes. (b) Use las salidas de los flip-flops como condiciones de estadospresentes. compare los dos resultados y comente las ventajas y desventajasen cada caso. 10-29.El registro canalizador de la Figura 10-21tiene una salida adicional demarcada P pa.racontrolar la polaridad de la entrada 7 en el secuenciador.Cuando por SL se aplica a la entrada P:0 el valor del bit de condiciónseleccionado se aplica T. Cuando P:1, el complementodel bit de condiciónseleccionado aT.
x=l.v--l
Figura PfO-28 Diagrama de estado de control para el Problema 10-28
475
476
D I S E Ñ OD E L O G I C AD E C O N T R O L ( a I ¿Qué se logra por medio del control de polaridad p r (b) Diseñe el circuito que debe ser c<¡locadoentre el multiplexor seleccionado por S.L y la entrada de prueba 2,.
10-30. El computador microprogramado de la Figura 10-21 tiene un registro de cont r o l d e d i r e c c i ó n ( c A R ) d e n t r o d e l s e c u e n c i a d o ry el.egistro canarizador IPLRI en la salida de la memoria de contror. La velócidad d"eoperación puede meJorarsesi se usa solamente un registro. compare tu u"rociaua a. op"ü.ion comparando las demoras de propagación enco.,trad;.;;;J" se usa el sistema: ( a ) Un CAr?sin un PlR. ( b ) Un PLR sin un CAr?.
:
*¡ ffi
Diseño de comPutadores
11-1
INTRODUCCION
geEste capítulo presenta un computador digital pequeño para propósitos su con para culminar funcionales nerales a partir de sus especificaciones fiser útil. Su de lejos muy pequeño, está es diseño. Aunque el computádor eleccomerciales sistemas con se compara cuando limitaáa -.ry nalidad u. trónicos de prócesamiento de datos, aunque incluye especificaciones funciopara nales suficiéntes para demostrar el proceso de diseño. Es adecuado puede ser un producto terminado y el construir en el laboratorio con CI digitales'' procesar datos sistema útil capaz de Ei computador consiste de una unidad procesadora central, una unidad de memoria y una unidad teleimpresora de entrada-salida. El diseño lógico de la unidad procesadora centrai será derivado aquí. Las otras dos unidades se asumen como elementos disponibles con características externas conocidas. Bl diseño de los materiales de un computador digital'puede derivarse y diseño en tres fases interrelacionadas: diseño del sistema, diseño lógico propiey del circuito. El diseño del sistema versa sobre las especificaciones de un establecimiento el incluye áud". g"nurales del sistema. Esta tarea instrucciones las de formulación Ia diseño, y de objetivó de diseño filosofia y Ia investigación de su factibilidad económica. Las espeáái por el diseña"oáp"tador, cificaciües de iá estructura del computador son traducidas El disistema' del materiales los de áor t¿gi.o para lograr la configuración circuitos diferentes los de lo. seño áel óircuito- especifica "o-pottentes de poiJgi."., .itcuitos de memoria, equipo electromecánico y suministro es enormeteicia.'El diseño de la parte de los materiales del computador (software) el cual mente influenciado po. el sistema de programación parte integral del ,rormalmente se desairolla al tiempo y constituye una sistema de comPutador total. debe El diseño áel computador digital es una tarea complicada. No se capítulo' solo en un del diseño aspectos lós todos de cubrimiento ..puo. el *Las instrucciones para el computador son un subconjunto de las instrucciones en cl computador PDP-8. 477
478
D I S E Ñ OD E C O M P U T A D O R E S
c A P . 11
Aquí interesael sistemay el diseño rógico de un computador digital pequeño cuyas especificaciones se formulan á" u.r" *u"ao'urultraria"para'poder estableceruna configuraciónmínima para una máquina muy pequeña, aunque-práctica.El procedimientoenunciadoen este ápit"lo p"éd"'.", riiit en el diseño lógico de sistemasmás complicados. El procesodel diseñose divide en seis fases: 1' 2' 3. 4. 5. 6.
!, descomposición.delcomputador digital en registrosque especifican la configuraciór,g".,"rál del sisteáa La especificaciónde las instruccionesdel computador. La formulación de los circuitos de tiempo y de control. La lista de operacionesde trasferencia entre registros necesaria para ejecutar todas las instruccionesde computadir. El diseñode la seccióndel computado¡. El diseñode la seccióndel control.
El proceso de diseño se lleva a cabo por medio de las listas tabuladas que sumarizan las especificacionesy op""""ione" en for-u La sección del procesadorse define por *óaió del diagram;ñbd; "o-p""t". que consiste de registros y multiplexores. Se asume que el l*ecto¡tiene iniormación suficient-emra remplazar los bloques en el dlagrama con circuitos MSI. La sección de control se diseña para cada uno dü los tres métodos enunciados en el Capítulo 10. 11.2
C O N F I G U R A C I O ND E L S I S T E M A
La configuracióndel computadorse muestra en la Figura 11-1.cada broque representaun registro, ercepto por la unidad de merioria, el gerre.^do;áei reloj-maestroy la lógica de confrol. Esta configuración se'suponeque satis_ face la estructura del sistema final. En una sit"uacionpra"ii.u, el diseñador comienza con una configuración tentativa de un ,irt"rri" i" modifica cons_ v tantemente durante el proceso de diseño. El nombre a" f"¿u registro se escribedentro del bloque, conjuntamentecon la designación simbórica en paréntesis. El generadordel reloj maestro es una f'uente de pulsos de reloj común, por lo generalun oscilador,el cual genera un tren periódicode pulsos.A es_ tos pulsos se les da mayor capacidad por medio dé y se dis_ tribuyen por todo el sistema. óada pulso debe lregar";pú¡i.adores á"a" nip-flop y registro,al mismo tiempo. El llevar ros reiardos u tu ,.rñ*u " rrr" p"u¿" necesitarse indirectamente de manera que la diferencia en retardos de trasmisión es unifo¡me por todas partes. La frecuencia de ro. p"i* función de la velocidadcon la cual opera el sistema.Se asume ""*irrru de 1 una frecuencia megaciclo, la cual da un pulso cada milisegundo. Esta f¡ecuenciade pulso se escogepara tener un número redondo y evitar problemas de los ¡eta.dos áe propagaciónen los ci¡cuitos. La unidad de mem_oria tiene una capacidadde 4.096palabrasde 16 bits cada una. Esta capacidades suficientementelarga p"ru L., procesosignifi_
T
Unidad de memoria 4.096 palabras 16bits,/palabra Registrode direcciónde memoria(MAR)
Registro separador de memoria (B)
E E
Registroacumulado¡ (A)
I Registrode | l' e - -n t r a d a ( N ) l
Generador de pulsos de reloj maestros Figura
l1-l
| Registrode I l."lj94j
Diagrama de bloque del computador digital
Tabla 1l-l
Lista de registros para el computador
Designación simbólica Nombre'
Número de bits
Función
I E F S G
16 Registroprocesador 16 Retieneel contenidode la Palabra de memoria la dirección de la siguiente Retiene 12 Contador de Programa instrucción Registrode dirección de memoria 12 Retiene la dirección de la palabra de memoria el códigode operacióncorriente Retiene 4 Registrode tnstrucción del acumulador Extensión 1 Flip-floP de extensión y ejecutaciclos búsqueda Controla 1 búsqueda de Flip-flop 1 Detieney comienzael comPutador Flip-floP de comienzo-Parada 2 Entrega señalesde tiemPo Registrode secuencia
N
Registrode entrada
9
U
Registrode salida
I
A B PC MAR
Registroacumulador Registro seParadorde memoria
Retieneinformación del dispositivo de entrada Retieneinformación del dispositivo de salida 479
4ffi
D I S E Ñ OD E C O M P U T A D O R E S
I a C A P . 11
cativo. Se puede usar un tamaño menor si se desea construir un computador en el laboratorio bajo restricciones económicas. Son necesarios doce bits de una instrucción para especificar la dirección de un operando, el cual deja cuatro bits para la parte de la instrucción. El tiempo de acceso de la memona se asume que 9s menor que 1 milisegundo de manera que la pala_ bra puede leerse o escribirse durante el intervaio entre dos pulsos de reloj. La parte del computador digital que se va a diseña. ," d"..o-pon" subunidades de registro. Los siguientes parágrafos explican por qué "i cada registro es necesario y qué función realiza. Una lista de registros y una bre'e descripción de s ',s func-ionesse presenta en la Tabla 1l-1. Lo; registros que alrnacenan palabras de memoria son de 16 bits de longitud. Aq"uellos que alrnacenan una dirección son de 12 bits de longitud. "otro. ."gl.r.o, tie'nen un número diferente de bits, dependiendo de sü función. Registro de dirección de memoria y regtstro separador de memoria El registro de dirección de nremoria, MAR, se usa para direccionar lugares de_memoriaespecíficos.Er MAR se carga del contador del programa (p-c) cuando una instrucción se va a leer de lá memoria y de los 12 bits -".roá significativos del registro B, cuando un operando r. rru a leer de la memo¡ia.. El registro separador de memoria B aimacena la palabra leída o escrita e.r ia m,emoria. La parte de operación de una palabra de instrucción colocada en ,8, se trasfiere al registro I y la parte de Ia dirección se deja en el registro B para ser trasf'erida al MAR. una palabra de operando óolocada en e1 registro B se hace accesible para op".u"ión con el ."gi.t.o A. La palabra que va a ser almacenada en Iá memoria debe r". al ,egiri;b antes de iniciar una operaeiónde escritura. "urgldu Contador de programa EI. contador de programa PC almacena la dirección de la siguiente instruc_ cron para ser leída de la memoria. Este registro pasa por.riu r"..,".rcia de conteo paso a paso y causa que el computador lea instrucciones sucesivas alr¡acenadas previamente en la memoria. cuando el p.ograma llama una t¡asferencia a otro lugar con el fin de evitar la siguienie i"nstrucción en se_ r-:ut'ncia.se modifica el PC al mismo tiempo, causa-ndoque el programa continúe a partir de un lugar de memoria que está fuera de la secuencia de co.rteo. Para leer una instrucción, el contenido del pc se trasfiere al MAR y. se inicia la operación de lectura. Ei contador del programa se incrementa siempre en 1 mientras que la operación de escritura de"memoria lee la instrucción presente. Por tanto, la dirección de la siguiente inst¡ucción, mayor una unidad qu9 !a que está siendo ejecutada un u:l pro""sador, está siempre disponible en el PC. Registro acumulador EI registro acumulador A es un regisircr procesador que opera con datos previamente almacenados en la mem,lria. Este registro se usa para ejecutar
i
l
'El S E C 1. 1 - 2
DIEOLS CONFIGURAC NI S T E M4A8 7
la mayoría de instruccionesy para aceptar datos del dispositivode entrada o trasierir datos al dispositivo de salida. El registroA conjuntamentecon computador' el registroB componenel cuerpode la unidad procesadora.del más reincluyen datos procesadores de sistemas Aunque la mayoría de los gistrós para la unidad procesadora,se ha escogidoincluir solamente un ácumuládor,para no complicar el diseño. Es posible configurar solamente la operaciór,á. r,r*u con un simple acumulador con elementoaritmético. Otrás operacionesaritméticas tales como sustracción,multiplicación y división pueden ser configuradascon una secuencia de instrucciones que forman una subrutina. Registro de instrucción El registro de instrucción 1 retiene los bits del código de operaciónde la instrucción corriente. Este registro tiene solamente cuatro bits ya que el código de operaciónde las instruccioneses de cuatro bits de longitud' Los bits tel cóáigo de operaciónse trasfieren al registro / a partir del registro B, mientras que la párte de dirección de la instrucción se deja en B. La parte aet código de operaciónse debe sacar del registro B ya que una lectura de un operándode la memoria al registro destruirá la instrucción retenida previamente.La parte de operaciónde la instrucción es necesariapara que ól control determinequé se le va a hacer al operandoque se ha leído. R e g i s t r od e s e c u e n c i a El registro de secuenciaG es un contadorque producelas señalesde tiempo puta él computador.El registro G es decodificadopara suministrar cuatro variablesde tiempo para la unidad de control. Las variablesde tiempo conjuntamente con otrai variables de control, producen las-funcionesde condel computador' irol que inician todas las microoperaciones Flip-flopsE,FVS cada uno de estosflip-flops se consideranun registrode un bit. El flip-flop E es una extensión áet régistro A. Se usa durante las operacionesde desplazamiento, recibe el arraitre final durante la suma y ademáses un flipilop qu. puede simplificar las operacionesde procesamientode datos del compütadbr.El flip--flopF distingue entre los ciclos de búsqueda(fetch) v de eJecución.Cuando F es 0, la palabra leída de la memoria se trata como una instrucción. Cuando F es 1, la palabra se trata como un operando.S es un flip-flop de parada e inicio que puedeborrarsepor medio del control del programa-ymanejarsemanualmente.Cuando S es 1, el computadortrabaja de acu"táo u una secuenciadeterminadapor el programaalmacenado lu tn"-oria. cuando s es 0, el computadordetienesu operación. "n R e g i s t r o sd e e n t r a d a Y s a l i d a El dispcsitivo de entrada-salida (I,zO) no se muestra en el diagrama de bloque de Ia Figura 11-1.Se asume como una unidad de teleimpre3oracon
482
D I S E Ñ OD E C O M P U T A D O R E S
cAP. 1 1
un teclado y un impresor. La teleimpresoraenvía y recibe información en serie. Cada paquetede información tiene ocho bits de un códigoalfanumérico. La información en serie de un teclado se desplazaal registrode entrada. La información en serie de un impresor se almacena en el registro de salida. Estos dos registrosse comunican con la teleimpresoraen seiie y con el registroacumuladoren paralelo. El registrode entrada N consistede nuevebits. Los bits 1 a g almacenan información de entrada alfanumérica; el bit 9 es un bit de control llamado indícador de entrada (flas). El bit indicador se pone a uno cuando está disponible un nuevo caracter de un dispositivo de entrada y se pone a cero cuando el caracter es aceptadopor el computador.El bit indicádor es necesariopara sincronizar la baja velocidada la cual operael dispositivo de entrada comparadacon la gran velocidad de los circuitos del computador. El procesode trasferenciade información es como sigue. Inicialmente se borra el bit indicador en Nn . Cuando se oprime una tecla del teclado,el código de 8 bits se desplazaal registro de entrada (N, -Ns). una vez que se termine la operaciónde desplazamiento,el bit indicador en Nn se pone a 1. EI computadorcompruebael bit indicador; si éste es 1, el óoaigb ae caracter del registro N se trasfiere en paralelo al registroA y el bit indicador se borra. una vez se haya borrado el registro indicador, se puede desplazar el nuevocaracteral registroN al oprimir otra tecla. El registro de salida u trabaja de manera similar pero la dirección del flujo de información se invierte. Inicialmente, el indicádor de salida en u. se pone a 1. El computadorcompruebael bit indicador; si éste es l, un código de caracter del registro A se trasfiere en paralelo al registro de salida (ur.* ue) y el bit indicador un se borra a 0. El dispositivode salida acepta la información codificadae imprime el caracter correspondiente;cuanáo se complete la operaciónse pone a 1 el bit indicador. El computadorno carga un nuevo caracter al registro de salida, cuando el indicador es 0, porque esta condición indica que el dispositivo de salida está en procesode imprimir el caracterprevio. 11-3
I N S T R U C C I O N ED SE C O M P U T A D O R
El número de instruccionesdisponiblesen un computadory su eficiencia en resolverel problemaentre manos,es una buena indicación de lo bien que el diseñador del sistema previó la aplicación que se requeríade la máquina. Los sistemas de cómputo mediano y de gran escala,pueden tener cienios de instrucciones, mientras que la mayoría de computadorespequeñoslimitan la lista a menos de 100. Las instrucciones se deben escogeicon cuidado para imprimir las característicassuficientes del sistema con el fin de resolver un amplio rango de problemas de procesamientode datos. Los requerimientos mínimos de tal lista deben incluir una capacidad para almacenar y cargar palabras de la memoria, un conjunto suficiente de operacionesaritméticas y lógicas, algunas propiedades de modificación de direcciones, bifurcación incondicional, bifurcación bajo condiciones de prueba, propiedades de manipulación de registro e instrucciones I/O. Lá lista áe i.r"trucciones escogidaspara el computador pretende ser la mínima requerida para un procesadorde datos práctico pero restringido.
xf Magnitud (números negativos en complemento de 2)
Signo l6
IJ
l4
t2
l-l
10
ll
9
8
7
6
5
A
7
f)
5
A
3
2
3
2
i
(a) Operandoaritmético Palabra lógica
l6
t5
l3
l4
12
t0
ll
8
9
(b) Operandológico Caracter
Caracter
(c) Datos entrada,/saltda Datosde entrada,/salida Figura ll-2
Formatosde datos
La formulación del conjunto de instrucciones para el computador va mano a mano con la formuláción de los formatos para datos y palabras de instrucciones. Una palabra de -memoria consiste de 16 bits. Una palabra pu9de representar una unidad de datos o una instrucción. Los formatos de palabias de datos se muestran en la Figura 11-2. Los datos para las operaciones aritméticas se representan por un número binario de 15 bits con un signo en la posición del bit décimo sexto. Se asume que los números están en su-equivalente de complemento de 2. Las operaciones lógicas se realizan Dirección
Operación l6
l5
t4
l3
l2
10
ll
9
8
7
6
)
^
2
(a) Instrucción de referencia de memoria Tipo de operación de registro o prueba
Código0110
t6
l5
t4
l-l
r2
t0
ll
9
8
7
6
5
4
3
2
(b) Instrucción de referenciade registro Tipo de operación de entrada-salida o prueba
Código0111 l6
15
l4
13 l2
ull0
9
8
7
6
5
^
J
(c) Instrucción de entrada,/salida Figura
l1-3
Fo¡matos de instrucción
483
I
4U
D I S E Ñ OD E C O M P U T A D O R E S
c A P . 11
con bits individuales de la palabra, con el bit 16 tratado como cualquier otro bit. cuando el computador se comunica con un dispositivo vó, la información trasferida se considera compuesta de caracterés alfanuméricos de 8 bits. Dos de estos caracteres pueden acomodarse en una palabra de computador. Los formatos de palabras de instrucción se muestran en la Figura 11-3. I a parte operativa de la instrucción contiene cuatro bits; el significado de los i2 bits restantes depende del código de operación encontrado. una instrucción d,e referencia de memorio usa los 12 bits restantes para especificar una instrucción. una instrucción de referencia de registro implica ü.ra operación o prueba con el registro A o el E. No se necesita un operando de la memoria; por tanto, los 12 bits menos significativos son usados para especificar la operación o la prueba que se va a ejecutar. una instrucción de referencia de registro se reconoce por el código 0110 en la parte de operación. Similarmente una instrucción de entrada-salida no necésita una referencia para la memoria y se reconoce por el cédigo de operación 0111. Los 12 bits restantes se usan para especificar el dispositivo particular y el tipo de operación o prueba realizada. Solamente cuatro bits de la instrucción están disponibles para el código de operación. Parecería que el computador está resiringido á un máximo de 16 operaciones diferentes. Sin embargo, como las instrucciones de referencia de registro y de entrada-salida usan los 12 bits restantes como parte del gódigo de operación, el número total de instrucciones puede e*"édut de 16. De hecho, el número total de instrucciones escogido para el computador es 22. De las 16 diferentes operaciones que pueden ser formuladas con cuatro bits. solamente ocho pueden ser utilizadas por el computador, porque el bit de la extrema izquierda de todas las instrucciones (bit 16) es si-empre 0. Esto deja abierta la posibilidad de agregar nuevas instrucciones y aumentar la capacidad del computador, si se desea. Las seis instrucciones de referencia de memoria para el computador se listan en la Tabla 11-2. El diseño simbólico es una pulub.u de tres letras y Tabla
Código hexaSímbolo decimal
*¡n
AND ADD STO $Z
0 m* lm 2m 3m
BSB BUN
4m 5m
l1-2
Instrucciones de referencia de memoria
Descripción
Función
AND aA A<-A ¡\M* Sumara A A <- A + M, E <- A¡rastre Almacenaren A MeA Incrementary omitir si M<-M + l,si(M+ l:0)entonces es cero (PC +- PC + l) Bifurcar a una subrutina M<-PC+5000,PC<-m*l Bifurcar incondicionalmenteP C < - m
es la parte de dirección de la instrucción. M es la palabra de memoria direccionada oor m
-|{
S E C .1 1 . 3
INSTRUCCION DE S COMPUTADO R5 48
representa una abreviación que va a ser usada por programadores !'usuarios cuando se escriben programas simbólicos para el computador. EI código hexadecimal listado es un número hexadecimal equivalente al código binario adoptado por el código de operación. Una instrucción de referencia de memoria usa un dígito hexadecimal (4 bits) para el código de operación; los tres dígitos hexadecimales restantes (12 bits) de la instrucción representan una dirección designada por la letra m. Cada instrucción tiene una breve descripción en palabras y se especifica más precisamente en Ia columna de función con una proposición de macrooperación. Una clarificación de cada instrucción se da a continuación, conjuntamente con una explicación de su uso.
AND de .4 Esta es una operaciónlógica que ejecutauna operaciónAND a los paresde bits correspondientes en A, con la palabra M de memoria especificadapor la parte de dirección de la instrucción. El resultadode la operaciónse deja en el registroA, remplazandosu contenidoanterior. Cualquier computador debe tener un conjunto básico de operacioneslógicaspara el manipuleo de los datos no numéricos.Las operacioneslógicasmás comunesque se encuentran en las instruccionesdel computadorson el AND el OR, el OR-exclusivo y el complemento.Aquí se usa solamenteel AND y el complemento.Este último se incluye como instrucción de referenciade registro.Estas dos operacioneslógicasconstituyen un conjunto mínimo del cual se puedenderivar todas las demásoperacioneslógicasporque el AND y el complementojuntos, forman la operaciónNAND. En la Sección4-7 se observóque ésta es una operaciónuniversal de la cual se puede obtener cualquier otra operación lógica. SUMAR a /
(ADD)
Esta instrucción agregael contenido de Ia palabra M de memoria, especificada por la parte de dirección de la instrucción al contenido presentedel registro A. La suma se hace asumiendoque los números negativosestén en su forma de complementode 2. Esto requiereque el bit de signo se agregue de la misma forma que se agregantodos los demásbits. El arrastre de salida provenientede la posición del bit de signo se trasfiere al flip-flop E. Esta instrucción, conjuntamente con las instrucciones de referencia de registro, es suficiente para escribir programas para configurar todas las demás operacionesaritméticas. La sustracción se logra complementando e incrementandoel sustraendo.La multiplicación se logra sumandoy desplazando. El incremento y desplazamientoson instruccionesde referencia de registro. La instrucción ADD (sumar) debe ser usada para cargar una palabra de la memoria al registroA. Esto se hace borrandoel registroA con la instrucción CLA de referenciade registro (definidaen la Tabla 11-3).La palabra requeridase descargade Ia memoria agregándoleal registroA previamente borrado.
ALMACENARen ,4 (STORE) Esta instrucción almacenael contenidodel registroA en la palabra de memoria especificadapor la dirección de instruóción. Las tres instrucciones de referenciade memoria se usan para manipular los datos, entre la palabra d9 memoria y el registro A. Lás tres instruccionessiguientesson instrucciones de control que causan un cambio en la secue".rcia normal del programa. lncrementary omitir en caso de cero flSZ) La instrucción de incrementar y omitir es útil para la modificación de di_ rección y para contar el número de vecesque se ejecutaun bucre de programa..un número negativoalmacenadopreviamentóen la memoria en la direcciónrn se lee por medio de la instruCciónISZ. Este númeroseincrementa en 1 y se almacenade nuevo a la memoria.La instrucción siguientees omitida si despuésde ser incrementadael número llega a cero.Áí, final del bucle de programa,se coloca una instrucción ISZ seguidade una "l instrucción de bifurcación que incondicionalment" í"yu al comienzodel IBUN) bucle del programa.Si el número almacenadono llega á cero, el programa regresade nuevo a ejecutar el bucle. si éste llega a"cero, la siguient"e instrucción (BUN) es omitida y el programa continúa ejecutandoinstrucciones despuésdel bucle del programa. B i f u r c a c i ó ni n c o n d i c i o n a l( B U N ) Esta instrucción trasfiere el control incondicionalmentea la instrucción en el lugar especificadopor la parte m de la dirección. Recuérdeseque el contador del programa retiene la dirección de la siguiente instrucción que se va a leer y ejecutar.Normalmenteel pc se increrirentapara dar la dirección de la siguiente instrucción en secuencia.El progr"rrrudo.tiene la prerrogativa de especificarcualquier otra instruccién luera de la secuencia usando la instrucción BUN. Esta instrucción le dice al computador que tome la parte m de la dirección y la trasfiera ar pc. La dirección de la siguiente instrucción que se va a ejecutarestará ahora en el pc y es aquella que antes era la parte de la dirección de la instrucción BUN La instrucción BUN está listada con las instruccionesde referencia de memoria porque necesitauna parte m de dirección. sin embargo,no necesita una referenciade la memoria para tener accesoa una pálabra de memoria (designada -porel símboloM), como se requierepor otras instruccionesde referenciade memoria. B i f u r c a ra l a s u b r u t i n a( B S B ) Esta instrucción es útil para la bifurcación a la parte de una subrutina de programa. cuando se ejecuta, ésta almacena la dirección de la siguiente inst¡ucciónen secuencia, la cual estáalmacenadaal presenteen el p? lllamad,adirección de retorno), en la palabra de memoria especificadapor la parte de dirección de la instrucción. También almacenael códigod" lp".u486
E I N S T R U C C I O N EDSE C O M P U T A D O R4 8 7
SEC. 11-3
ción del BUN (hexadecimal5) en el mismo lugar de la memoria.El contenido de la parte m de la dirección más 1 se trasfiere al PC para comenzarIa ejecución del programa de la. subrutina en esta parte específica. Una vez se haya ejecut"ao-¡" subrutina, el control se trasfiere al programade llamado 'poi medio de uná instrucción BUN colocadaal final de la subrutina. El procesode bifurcación a la subrutina y el regresoal programade llamado sé muestra en la Figura 11-4por medio de un ejemplonumérico específico. El programade llamado está ahora en Ia posición32. El programade subrutina comienzaen la posición 65. La instrucción BSB causa una trasferenciaa la subrutina y lá última instrucción en la rutina causauna bifurcación de regresohaciala posición33 en el programade llamado. El ejemplo numérico ttt l" Figuta 11-4muestra una instrucción BSB en la posición32 con una parte m dó la dirección igual al binario 64. Mientras que se ejt:cuta esta instrucción el PC almacena la dirección de la siguiente i:':.::ii'.ilcioi:r en secuencia,la cual es 33. La instrucción BSB realiza la macrooperación (ver Tabla 11-2): M<-PC+5000. PC<-m*l El contenidodel PC más el hexadecimal5000(códigopara el BUN) son trasferidosa la posición64. Esta trasferenciaproduceuna instrucción BUN 33. La parte de la dirección de la instrucción se incrementay se coloca en el PC- El PC almacenael binario equivalentea 65 de manera que el computador comienzaa ejecutar la subrutina en esta posición.La última instrucción en la subrutina es BUN 64. Cuando esta instrucción se ejecute, el control se trasfiere a la instrucción en la posición 64. Pero en la posición 64, hay una instrucción que se bifurca de regresoa la dirección 33. La diMemoria
Dirección
(dec) I
+ JI
0 1 0 0 00000l 000000 BSB64
33
m=64 m+l=65
0l0l
000000I 0000I
B U N3 3
It
Subrutina
I ) 0l0l Figura
11-4
00000I 000000 BUN 64
Demostración de una instrucción de bifurcación a la subruttna
488
D I S E Ñ OD E C O M P U T A D O R E S
cAP. 11
rección almacenadaen la posición 64 por la instrucción BSB tendrá la dirección de regresopropia, no importando dónde ;;;tl";.trucción BsB localizada.De esta mane.a, ."gr".o u ta su¡ruii.rá-.. .iÁp.e a una posición un lugar mavor.que la "l posic"iónde la instiu";¿;B's-ñ. Nótese que el númerode la dirección de la inst¡ucción BUN r"""li"r¿"áf rinal de la sub_ rutina debe ser siempre igual al número de ra direcciJ" a""a" se almacena temporalmentela dirección de regreso,el cual .. o¿ ""-".ü'"uro. Instruccionesde refere,nciade registro Las 12 instrucciones referenciade registro para el computadorse listan -de en la Tabla 11-8. cada instrucción á" ,;?;-rl.,i.il;;;c*;;5 ri".," un código de operación0110 (hexadecimal€) V contiene un solo 1 en uno de los 12 bits restantesde la instrucción. eÁtá. lnstrucciones se especificancon cua_ tro dígitos hexadecimalp^s, los cuales representan todos los 16 bits de una palabra de instrucción. Las p.imera, .iéte irr.truc"ione.-r"alizan una operación sobre los registros 'q y o y se explic"" p;;-;;-;;i*-. r,". siguientes cuatro instrucciones de om.isión iskip) s€ usan para control del programa condiciona-dopor ciertos bits ¿e'cor,áici¿n. paü siguiente ins_ trucción el PC se incrementa en 1 de nuevo. ",,,i;i;-l; El primer incrementoocurre cuandose lee la instrucción actual. De esta -rn.ü la siguienteinstrucción leída de la memoria está dos posicionesmás arriba de la posición de la presenteinstrucción(omisión). Los bits de condición para ras instrucciones de omisión son el bit de signo en A, el cual está en ei,nip-flop Ata la condicián-áu.".o paraA ó E. ! si la c.ndición de sratus -de'ig.,ado';iá pru.;;t;;-;; ;;;¿" la siguiente instrucción en secuencia; de otia ma.reru a partir de la siguiente instruccián en r..u"".iá, "i_ "o,,'p.ri"¿", """tinúa debido a que er pc no se incre_ menta. Tabla
11-3
Instrucciones de referencia de ¡egist¡o
Código hexaSímbolo decimal Descripción CLA 6800 CLE 6400 CMA 6200 CME 6100 S H R 6080 SHL ó040 INC 6020 SPA 6010 SNA 6008 SZA ó004 SZE 6m.2 HLT 6001
Borrar A Borrar E ComplementarA Complementar,E Desplazara la derechaAy E Desplazara la izquierdaAy E IncrementarA Omitir conA positivo Omitir conA negativo Omitir conA cero Omitir con E cero Detenerel computador
Función A <-0 E <-0 A <-.4 E<--E I <--sh¡ A, A6<- E, E <- A1 I < - s h lA , A 1 < - E , E < - A 6 A<-A*l :0)entonces (pC<- pC + l) !l(Ar6
:1) entonces (PC<-PC + t) 9ifÁ,o li ft:0) entonces(pC <--pC + t) S-it¿: 0) entonces(pC <- pC + l) s<--0
E SINCRONIZACION DE TIEMPO Y CONTROL 489
s E c . 11 - 4
La instrucción de detención (halt) se colocapor lo generaial ñnal ie un programasi se deseadetener el computador.Su ejecuciónborra el t-Irpflop de parada y comienzo para evitar operacionesposteriores. l n s t r u c c i o n e sd e e n t r a d a - s a l i d a El computador tiene cuatro instruccionesde entrada-salidaque se listan en la Tabla 11-4. Estas instruccionestienen un código de operación0111 (hexadecimal7) y cada una contiene un 1 en solamenteuno de los 12 bits restantesde la palabra de instrucción. Las instruccionesde entrada-salida se especificancon cuatro dígitos hexadecimalescomenzandocon 7. Tabla
Código hexaSímbolodecimal SKI INP SKO OUT
7800 7400 7200 7100
11-4
Instrucciones de entrada-salida
Descripción
Función
Omitir con el indicador de entrada Si (No : l) entonces (PC <- PC + l ) Introducir aA A t - a + N 1- s , N e < - 0 Omitir con el indicador de salida Si (Un : l) entonces(PC <- PC + SacardeA Ut-a+ A1-s,Ue<-0
r)
La instrucción INP trasfiere el caracter de entrada de l/ hasta A y borra también el indicador de entrada en Ns. La instrucción OUT trasfiere un código de caracter de 8 bits desdeA hasta el registro de entrada y también borra el indicador de salida en [/s . Las dos instrucciones de y cauomisión compruebanlos indicadoresde condición correspondientes La insindicador es 1. instrucción si el bit san una omisión de la siguiente se BUN no La instrucción que instrucción BUN. se omite es una trucción omite si el bit indicador es 0; ésta causa una bifurcación de regresoa la instrucción de omisión para comprobar de nuevo el indicador. Si el bit indicador es 1 se omite la instrucción BUN y se ejecuta Ia operaciónde entrada o salida. Así, el computadorpermaneceen un bucle de dos instrucciones (omisión en indicación y bifurcación de regresoa la instrucción anterior) hasta que el bit indicador sea puestoa uno mediante un dispositivo externo. La siguiente instrucción en secuenciadebe ser una instrucción de entrada o salida. 1'I-4
D E T I E M P OY C O N T R O L SINCRONIZACION
Todas las operacionesdel computadorestán sincronizadaspor un generador de tiempo maestro cuyos pulsos de reloj se aplican a todos los flip-flops del sistema. Además,está disponible cierto número de variables de tiempo en la unidad de control para darle secuenciaa la operaciónen el orden adecuado. Esas variables de tiempo se designan como ü6, tt, tz y t3 y se muestran en la Figura 11-5.Los pulsos de reloj ocurren una vez cada microsegundo(¡¿s).Cada variable de tiempo es de 1¡^rsde duración y ocurre una vez cada 4 ¡rs. Se asume que el disparo de los flip-flops ocurre
490
D I S E Ñ OD E C O M P U T A D O R E S
c A P . 11
durante el flanco negativode los pulsosde reloj. Se puedecontrolar el pulso de reloj específicoque dispara el registro, aplicando una de las variables de tiempo al terminal de entrada de habilitación de un registro dado. Las variables de tiempo se repiten continuamente de manera que f6 aparezca despuésde ü3. Cuatro variables de tiempo son suficientespara la ejecución de cualquier instrucción en el computadorque consideramosaquí. En otras situacionespodría ser necesarioemplear un número diferente de variables de tiempo. Se asumeque el tiempo de accesode memoria es menor que 1 ¡rs. Una operaciónde lectura o escritura de memoria puedeiniciarse con una de las variablesde tiempo cuandoésta se ponga alta. La operaciónde memoriase completaráen el momento en que llegue el pulso siguientede reloj. El computador digital opera con pasos discretos controladospor las señalesde tiempo. Una instrucción és leída de la memoria y ejecutadaen Ios registrospor medio de una secuenciade microoperaciones.Cuando el control recibe una instrucción, éste genera las funciones de control adecuadaspara las microoperaciones requeridas.En Ia Figura 11-6se muestra un diagrama de bloque de la lógica de control. Una instrucción que se lee de la memoria se coloca en el registro B separadorde la memoria. La instrucción tiene un código de operaciónde 4 bits, designadopor el símbolo OP. Si ésta es una instrucción de referenciade memoria tendrá una parte de dirección designadapor el símboloAD. El código de operaciónse trasfiere siempre al registro de instrucción /. El código de operaciónen .I se decodificaen ocho salidas eo - et, siendo el número suscrito igual al código hexadecimalpara la operación.El registroG es un contadorde 2 bits que cuenta continuamentelos pulsos de reloj, durante el tiempo en que el flipflop S, de comienzo-parada, esté puestoa uno. Las salidas del registroG se decodificanen cuatro variables de tiempo to - te. El flip-flop F distingue entre los ciclos de búsqueday de ejecución. Otras condicionesde status son necesariaspara determinar Ia secuenciade control. Las salidas de los circuitos de lógica de control indican todas las microoperacionespara el computador.El diagramade bloquede la lógicade control esútil para visualizar la unidad de control del computador,cuando se derivan las operaciones de trasferenciaentre registrosdurante el procesode diseñode la lógica. La red de lógica de control es un circuito combinacionalque consiste de una conexión aleatoria de compuertas.Su configuraciónconstituye un control de elementosinterconectados.Se verá en la Sección11-7que la parte de control del computadorpuedeconfigurarsecon arregloslógicosprogramables. La configuracióndel PLA remplaza la red lógica de control, como también los decodificadoresde operacióny sincronízación.En la Sección 11-7se muestra que el control puede ser configuradoparcialmentecon una unidad de microprograma.La configuraciónde control del microprograma y los registros remplazaráIa red de lógica de control, Ios dos decodificadores
Iv G. 1 1 - 5 E J E C U C I ODNE I N S T R U C C I O N E S Hasta el momento se ha considerado el diseño del sistema del computador. Se ha especificado Ia configuración del registro, el conjunto de instruccio-
qF 's
->l i r¿s >l Pulsosde reloj (CP)
t,
Figura
1l-5
Señales de tiempo del computador
16
13
BQP) I
rl BIAD)
Funciones de contro para rnrclar microoperaciones
:codificad de tiempo
Otras condiciones de status
Figura
l1-6
Diagrama de bloque de la lógica de control
491
492
D I S E Ñ OD E C O M P U T A D O R E S
c A P . 11
nes del computador, una secuencia de tiempo y la configuración de la unid a d d e c o n r r o l . E n e s t a s e c c i ó n , s e c o m i e n z á c ó n l a f a s e " d ed i s e ñ o d e l c o m putador. El primer paso es especificar las microoperaciones conjuntamente con las funciones de control necesarias para ejecutar cada instrucción de máquina. Las operaciones de trasferencia entre registros describen de una forma concisa el proceso de trasferencia de información dentro de los registros del computador. cada proposición de la descripción consiste de uná función de control, segui_dade una coma, seguida de una o más microoperaciones con notación simbólica. La función de control es una función de Boole cuvas variables son las señales de tiempo to - tt, la operación decodificada Q - Q; y ciertas condiciones de los bits de condición. Las microoperaciones son especificadas de acuerdo con la notación simbólica definida en el método de trasferencia entre registros. una vez que se active el interruptor de comienzo, la secuencia del computador sigue un patrón básico. Una instrucción cuya dirección está en el PC se lee de la memoria. su parte de operación se trasfiere al registro I y el PC se incrementa en 1 para prepara.la para la dirección de la "siguientl instrucción. Si la instrucción es del tipo róferencia de memoria, poJría ser necesario accesar de nuevo la memoria para leer el operando. Asíj las palabras leídas de la memoria al registro B pueden ser lnstrucciones o datos. Elflip-flop F se usa para distinguir entre los dos. cuando F:0, la palabra leída de la memoria,se interpreta como una instrucción y." hi""'que el c o m p u t a d o r e s t á e n e l c i c l o d e b ú s q u e d ad e l a i n s t r u c c i ó n . ó u a n d o F : 1 , l a palabra leída de la memoria se toma como un operando y se dice que el cómputador está en el ciclo de ejecución. Ciclo de búsqueda (fetch) una instrucción se lee de la memoria durante el ciclo de búsqueda. Las relaciones de trasferencia entre registros que especifican este proceso son: F'to: F',tr: F'tr:
MAR <- PC B <- M, PC <- PC + | I <--B(OP)
cuando F-0, las señales de tiempo to, tt y ü2 inician una secuenciade operaciones que trasfieren el contenido del PC al MAR, inician una Iectura de memoria, incrementan el PC y trasfieren el código de operación de la instrucción al registro 1. Todas las microoperaciones se ejecutan cuando la función de control es de lógica 1 y cuando ocurre un pulsó de reloj. Las microoperaciones en los registros y la trasferencia de la palabra de memoria a B son ejecutadas durante el flanco negativo del pulsó de reloj. Esto ocurre justamente antes del momento en que la variable de tiempo especificada va a cero. El código de operación en el registro 1 se decodifica en el tiempo úr. E l s i g u i e - n t ep a l o d e p e n d ed e l v a l o r d " q , , l : 0 , 1 , . . , 7 , q u e p r o d u c áu n ' 1 a la salida del decodificador. Si la salida decodificada es una instrucción de
SEC.
'I
E J E C U C I O ND E I N S T R U C C I O \ E S 4 9 3
1-5
referencia de memoria, se puede necesitar un operando. Si no. se puecie e'ecutar la instrucción durante el tiempo ú3. La instrucción BUN y las instrucciones de referencia de registros e instrucciones de entrada-salida no necesitan un segundo acceso de la nremoria. El computador tiene que pasar a un ciclo de ejecución para accesar de nuevo la memoria, cuando se encuentra con un código de operación 0, 1, 2, 3, ó 4. Esta condición se detecta a partir del decodificador de operación, el cual causa una trasferencia al ciclo de ejecución, poniendo F a 1: F'(qo * Qt * ez * qt * qo)tt:
F<- I
Las operaciones comunes de trasferencia entre registros durante el ciclo de búsqueda se listan en la Tabla 11-5. Tabla
ll-5
Operaciones de trasferencia entre registros durante el ciclo de búsqueda
MAR e PC Trasferirla direcciónde instrucción F'to: B <- M, PC <- PC * I Leer la instrucción, incrementar PC F'lt'. Trasferir código de operación r <- B(oP) F'tz'. Ir a ejecutar ciclo q)t3: q3 + + <* F | + F'(qo et Qz Bifu rcar incondicionalmente (BUN) <* B(AD) PC 4stt'. de referenciade registros Instrucción 11-8 Ver Tabla Qot{ q7t 3.
Ver Tabla 11-9
Instrucciónde entrada-salida
Las instrucciones BUN tienen un código de operación 5 y su correspondiente salida del decodificador de operación €s gs. Esta instrucción no necesita un operando de la memoria, aunque esté listado como una instrucción de referencia de memoria. Esta especifica que la siguiente instrucción se tome de Ia posición dada por la parte m de la dirección. La parte de dirección de la instrucción está en B(AD) en el tiempo ú3 del ciclo de búsqueda. La instrucción puede ejecutarse durante el ciclo de búsqueda en ese tiempo: Qst{ PC <- B(AD) No hay necesidad de incluir F en Ia función de control porque el único tiempo en Que Q; puede ser 1 es durante el ciclo de búsqueda. La microoperaq,ru ejéóula la instrucción especifica una trasferencia de los bits t has"iOn ta 12 del registro B al PC. La siguiente variable de tiempo después de f3 es siempre ü¡. Como F permanece en 0 para esta instrucción, el computador t"g.eiu al comienzo del ciclo de búsqueda para leer la instrucción dada por el PC. Las instrucciones de referencia de registros son reconocidas a partir de la salida del decodificador qo y las instrucciones de entrada-salida de qt. Como estas instrucciones requieren solamente una microoperación más para su ejecución, ellas se pueden determinar en el tiempo ú3 durante el ciclo de búsqueda.Este hecho se indica en la Tabla 11-5. Las microoperaciones específicas se listan en tablas posteriores.
Ciclo de ejecución El flip-flop F es igual a 1 du¡ante el ciclo de ejecución. Las cuatro variables de tiempo que ocurren durante el ciclo realizan las microoperaciones para ejecutar una de las instrucciones de referencia de memoria. La instrucción q u e s e v a a e j e c u t a r s e e s p e c i f i c ap o r m e d i o d e l a v a r i a b l e q , , i : 0 , r , 2 , 8 , 4 disponible para el decodificador de operación. La parte de dirección ¿ó la instrucción estará en los bits 1 a 12 del registro B, simbolizado B(AD), al final del ciclo de búsqueda. Esta dirección Je trasfiere al MAR al comienzo del ciclo de ejecución para servir como la dirección de memoria para la palabra de memoria subsecuente: Fto:
MAR <- B(AD)
Las instrucciones que necesitan un operando de Ia memoria son el AND ( g o ) , A D D ( q , ) e I S Z ( q 3 ) . L a s o t r a s d o s i n s t r u c c i o n e sS T O ( q z ) y BSB (qn) almacenan un valor en la memoria y son ejecutadas du¡ante iá siguiente operación de lectura de memoria: F(qo + qt * qz)tt: B <- M La instrucción decodificada particular se ejecuta con las variables de tiemw tz y f3. En el tiempo f3 se borra el flip-flop F para que el computador regreseal ciclo de búsqueda: Ftr:
F<_ 0
La siguiente variable de tiempo después de ú3 es üe. pero como ahora F es igual a 0, por tanto la siguiente función de control es F,ún. Esta es la primera función de control en el ciclo de búsqueda. Así, después de ejecutar la instrucción corriente, el control regresa siómpre al clclo ie btsquéaa para leer la siguiente instrucción cuya di.ección eitá en el pC. Las operaciones comunes realizadas durante el ciclo de ejecución se listan en lá Tabla 11-6. Las cinco instrucciones de referencia de memoria y sus correspondientes operaciones de registro se listan en la Tabla 11-?. Estas instrucciones son ejecutadas cuando F:1 y con las variables de tiempo t2 y ts, La operación decodificada q, determina la instrucción particular que só ejecuta. Tabla
1l-6
Operaciones comunes para el ciclo de ejecución
Fts: F(qo+qr*qr)tr: F(t2 + t):
MAR <- B(AD) B<_M Ver Tabla 11-7
Ft3:.
F <-0
Trasferir parte de Ia dirección Leer el operando Ejecutar la instrucción de referencia de memoria Regresaral ciclo de búsqueda
,
Tabla
AND ADD STO ISZ
BSB
Fqot3l FqJ3'. Fqzt2i Fq2t3: F%t2i Fqlt3: Fq3B"t3:. Fq4tz: Fq4t3:
1l-?
Ejecutar las inst¡ucciones de referencia de memona
MicrooperaciónAND A<-A ¡\B Microoperaciónde suma A <- A + B, E <- Arrastre Trasferir A a B B<--A Almacenaren Ia memoria M<_B lncrementar Ia Palabrade memoria B<-B+l Almacenar de nuevoen la memoria M<-B Omitir si B. : 1 (B: 0) PC<.PC+I de regreso, B(AD) <- PC, B(OP) <--0101, Trasferir a la dirección al PC Ia dirección trasferir PC <- MAR de regreso, la dirección Almacenar M<-B,PC<-PC+I incrementarla direcciónen el PC
variablesde tiempo Las instruccionesAND y ADD se ejecutancon las El operandode f3, áüneü€ pueden t.rru, t".-u"riables t2 como--remplazo' tv' La operatiempo de la memoria ha sido liasferido a B con lá variable B y A' registros los entre ahora .i¿l .or.".porrdie.rte puJe ejecutarse de A a la contenido del trasferencia una La instrucción SiO espécifica con Ia MAR fueron trasferidas al putu¡* áe memoriu y la opeB a primero ",ry".'direcciones variable de tiempo ro. ñf contenido de A se trasfiere esmemoria de palabra la B a ración de escritura tiasfiete el contenido de pecificadaPor MAR: Fq2tzi
B <--A
Fqrtr:
M <- B
La instrucción ISZ se ejecuta con las siguientes microoperaciones: Fqrtr:
B<-B*
Fqrtr:
M <- B
I
FqrB"tr: PC <- PC + |
B,:lifB:0
el tiempo úr (ver La palabra de la posición M fue colocadaen B durante y t2 el nuevo valor Tabla 11-6). El registro B se incrementa en el tiempo este tiempo el MAR se almacena una ur" *ár r" la memoria. Durante todo de M. Recuérdese no cambia, ¿. -"r,.ru Ñe especificasiempre la dirección esté localicuando in"r"*.ntada puede -D;t" ñ" ;;; ñlabra de ,rr"iiorü'"o "". donde se procesador registro a un ser trasferida zada en la memoria. almacese incrementado número que el el conteo. Mientras p""á" el PC pata incrementa se 0' es B; si ":..rtar en valor su t;;;;"b; na en la memoria, B" usada en la última causar una omisió.r-a-"rrtt" instrucción. La variable y igual al binario 1 si el es de detecciónde cero proposiciónes una "uiififu registro B contiene un número de solo ceros' en el La instruccl¿r,gSf ;. la instrucción disponiblemás.complicada sigue: U.ra formu po.iUf" de ejecutar esla instrucción es como "o-prrt"áot. 495
Fqotr: B(AD) <_ pC, B(Op)<__ 0101,pC <_MAR Fqotr: M <_ B, pC <__ pC + | La dirección de regresodisponibre en el-pc se trasfiere a la parte de direc_
cióndel registro'J
." i."rñ;;;;r; partedel código 1 "ódiq;óióü'e'uxl de operación del mismo reg-istro. Recuérdese.que el registro de dirección MAR contiene
la p1{e de i" ¿ir"".l?" de la iJrt.*"i¿i iesignada wr m. La trasferenciadei MAR ar pc;;i;; ae la t.asie*""i"'a" m al pc. Todo io anterior se hace duranle u de tiempo tr. Ladirección de regresose almacenaen la memoria "".*üil e' Li tiempo ¿r. eí pcre incrementa esre tiempo de manera.quela instrucción en q.ru.u l"u^aiür,t" el siguiente ciclo de búsquedaestaráé" U p".l"i¿" m * 1.. Instruccionesde referencia entre registros Las microoperaciones de registro que ejecutan las instrucciones de referen_ cia de registrosse ristan en"ra Tabra tl-g. se reconocen en el terminal de salida go del á*"¿in."ao.E.tu. i".ñ";i;;es a" of".";tó" ; son ejecutadas durante el tiemp<,ú, der i,i.r" au ¡,iJqu"-au.p". ." define una nueva variable r: eatz y se usa ",í"i""r*Jiu en io.r^asr"r r"""i""uJ'L de referenciaentre registror. Íil ."rto ¿"'r"J rr.,"ior".-a";;;; "o.,tror se determinan a partir de uno de sus bits en et regi.iio B; ;i;;i;;;;; resto de ra ins_ trucción permanecearmacenado .""Áá tlempo. por ejemplo,ra instrucción cLA tiene el código.tt"r"a.".i-ár o'gdd, .uar correspondeal códigobinario 01i0 10000000 0000..-Ercódigoae "l opeiación.u d."oiiii"l'"-pu.ti. del regis_ 1t es igual a qu. El bir 12"en b;l; :.: J;;ii; o,ru la función o. .f::ro-l_,queejecuta esta instru""iZ., "l-rláIt,o : Las prlmerassiete instrucciones ". ,e6tsB1z rBtz. de refeiencia-entre'iegistros ejecutan las operacionesde borrado, ;"roi;;;;il;;",T incremento en el registro A ó E. Las sig'ienñ;;;;; "";;ü;";;"; ir,rt.,i""ron;";;; insrruccionesde Tabla 11-g
CLA CLE CMA CME SHR SHL INC SPA SNA SZA SZE HLT
Ejecución de ras instrucciones de referenciaentre registros
r : Qatt rB12: A <-0 rB1¡: ,g<-0 18¡6: A<_ArBe: E<_E TB¿: I <--slr¡A, A6 <- E, E <__ A, rB7: I < - s h lA , A 1 < _E , E < _A ¡ 6 rBu: A<-A*l rB5Aiu: P C < - . P C + I rBaA16: P C < _ P C + I rB3A,: P C < _ P C + 1 rB2E,: P C < - P C + I rBy: S+-0
Borrar A Borrar E ComplementarA ComplementarE Desplazara la derechaA v E Desplazara la izquierdaA v E IncrementarA Incrementar pC si A espositivo IncrementarPC si A es negativo Incrementar pC si A es cero IncrementarpC si E escero Borra el flip-flop de comienzoy parada
E SEC, 11-6
D I S E Ñ O D E L O S R E G I S T R O SD E C O M P L T - I ) C =
J:-
o m i s i ó n e j e c u t a d a ss o l a m e n t e s i s e s a t i s f a c e n l a s c o n d i c i o n e s c S ' . & r , , - r i . c : : La omisión de una instrucción se logra incrementando de nuevo P(' ace=--. del incremento que se hace en el tiempo üt (ver Tabla 11-5). Ei e.i¿ü, del bit de condición para la omisión se convierte en parte de la funcron ce c o n t r o l . A s í , e l a c u m u l a d o r e s p o s i t i v o s i 4 1 o : 0 y n e g a t i v os i A r , , : 1 . E . símbolo A, es una variable binaria igual a 1 cuando el registro A contiene sólo ceros. E' es igual a 1 cuando el flip-flop E contiene 0. La instrucción de parada (halt) borra el flip-flop de comienzo y parada S y detiene la secuencia de tiempo. El registro de secuencia G para de contar mientras que su valor sea 0. Esto causa que el computador esté latente con fe siempre a la salida del decodificador de tiempo. Como F es.también 0, la función de control F'úo es la única que se produce mientras que el computador esté inactivo. Esta función de control trasfiere el contenido del PC al MAR continuamente (ver Tabla 11-5). Esta trasferencia continua se puede tolerar cuando el computador hace una parada latente. Si esto es indeseable se pueden quitar los pulsos de reloj de| MAR y de la misma manera prevenir que esta trasferencia ocurra cuando S: 0. El computador puede recomenzar cuando se active el interruptor de "comienzo", el cual pone a 1 el flip-flop S. Esto causa que los pulsos de reloj alcancen la secuencia del registro G y comiencen a producir Ias otras variables de tiempo. Instruccionesde entrada-salida Las microoperaciones de trasferencia entre registros que ejecutan las cuatro instrucciones de entrada-salida se listan en la Tabla 11-9. Estas instrucciones son reconocidas en el terminal de salida qt del decodificador de operación y se ejecutan durante el tiempo ú3. Se define una nueva variable p: ez ¿3 y se usa en todas las funciones de control de entrada-salida. Las funciones de control para estas instrucciones contienen un solo bit del registro B, el cual es parte de la definición del código de instrucción. Las dos instrucciones de omisión dependen del estado de las condiciones de los bits indicadores N" y Ug. Tabla
SKI INP SKO OUT
11-6
P : 4tlt pBeNs: pBti pBrcUe: pBs:
1l-9
Ejecución de las instrucciones de entrada-salida
PC<-.PC+I A t - a < - N ¡ - s ,N 9 < - - 0 PC<_PC+I U t - a + A ¡ - s ,U e < - 0
lncrementarPC si el indicadorde No : 1 AlimentarA, borrar indicador InprementarPC si el indicadorde salidaU,, : I Extraer de A, borrar indicador
DE COMPUTADOR D I S E Ñ OD E L O S R E G I S T R O S
El diseño de un sistema digital sincrónicosigueun procedimientoprescrito. A partir del conocimientode las necesidades del sistemase formula una red de control y se obtiene una lista de operacionesde trasferenciaentre registros del sistema. Una vez que se haya derivado esa lista, el resto del
498
cAP l 1
DtsEño DE CoMPUTADORES
diseño es directo. Algunas instalapionesutilizan técnicas de automatización para el diseño de computadorparalraducir las proposicionesde trasferencia entre registrosa un diagrama de circuitos compuestode circuitos integrados. La Sección 11-5 especificalas proposicionesde trasferenciaentre registros para el computadoren cinco tablas separadas.Las entradas en las tablas consisten de funciones de control y microoperaciones.La lista de funciones de control presenta las funciones de Boole para las compuertas da una indicación en la red lógica de control. La lista de microoperaciones para que Aunque estas registros escogerse el computador. deben del tipo de tablas son suficientespara completar el diseño lógico del sistema, podría ser convenienteredistribuir la información en las tablas de una maireramás convenientedurante el procesode configuraciónactual. O p e r a c i o n e sd e r e g i s t r o Para determinar el tipo de terminal de control que se debe tener en cada que afecten caregistro es necesarioobtener una lista de microoperaciones da registro separadamente.Esto puede lograrserepasandolas tablas de Ia Sección 11-5y escogiendoaquellas proposicionesque cambien el contenido de un registro en particular. Esto se aplica también a las operacionesde Iectura y escritura en la unidad de memoria. Por ejemplo,una operaciónde iectura de memoria se simboliza con la microoperación: B<_M La proposiciónindica también que el contenido del registro B cambiará el valor. Esta proposiciónse encuentra dos veces en la lista de microoperaciones.En la Tabla 11-5,se encuentracon la función de control F'ü1 y en la Tabla 11-6con la función de control F(qo + Qt*es)¿r. Como ambasfuncionesdé control producenla misma operación,se puedencombinarcon una OR para dar la proposieión: R : F'tt + F(qo,* q, * q.r)tr: B <- M El símbolofi se usa por convenienciapara desigrrarla operaciónde lectura con una sola variable de control de Boole. El símboloigual despuésde R designa su igualdad con las funcionesde control listadas. Este procesose repite para la operación de escritura en memoria y para todos los registros del computador. El resultado es como se muestra en la Tabla 11-10.A cada función de control listada en ia tabla se le a-.ignaun nombre de variable de control. Las variables de una sola letra no son necesarias, pero ayudan a acortar las expresionesalgebraicasdel control de entrada de los registros. En la mayoría de los casosse asigna a la variable de control una letra subíndice idéntica a la letra mayúscula reservadapara simbolizar el registro correspondiente.Las variables de control comunes al mismo registro se distinguen por subíndices numéricos diferentes. La Tabla 11-10se deriva directamentede las Tablas 11-5a 11-9.El registro al cual perteneceuna microoperaciónse reconocepor la presencia de
SE C O V P r ' : : ^ : D I S E Ñ OD E L O S R E G I S T R OO
s E c . 11 - 6
un símbolo en el lado izquierdo de la flecha. Para reconocer las rc.c¡:.-;'.. raciones que pertenecen al registro A se repasan las operaciones ilstaca-' en las Tablas 11-5 hasta 11-9 y se escogen las que tienen una A como re$:tro de destino. Las microoperaciones para los otros registros se obtienen de manera similar. Si la microoperación ocurre más de una vez' las funciones de control correspondientes se aplican a una OR para producil la función de control compuesta. Las operaciones ;para el flip-flop E deben separarse de las operaciones para el tegist.o A, aúnque ellas se habían listado conjuntamente en las tañlas anteiiores. La operación de desplazamiento circular a la derecha' por ejemplo, se enuncia en la Tabla 11-8 como: rBs: I <- shrA, Arc<- E, E <- A, Nótese que r es una variable igual a Qats Y rB, se le asigna una variable de control or. En la Tabla 11-10 bajo el registro A se tiene: q5 :
rB8:. ,4 <- shr A, A6<- E
el cual es parte de la operación de desplazamiento que cambia el contenido de A. Debajo del flip-flop E se tiene: a, - rBr:
E <- Ay
lo cual muestra Ia parte de la operación de desplazamiento que cambia el flip-flop E. Así, la variable au de control del desplazamiento a la derecha, desplaia el contenido de A a la derecha y coloca el valor de E en el bit de la extiema izquierda de A. Trasfiere también el bit de la extrema derecha de AaE. La secuencia del registro G no tiene ningunas microoperaciones listadas en las tablas previas. Este registro se muestra en la Figura 11-6 como un contador cuyos pulsos de reloj se habilitan por medio del flip-flop s de comienzo y parada. Esto se incluye en la Tabla 11-10 con Ia proposición: S:
G<-G+l
Diseño del computador La lista de microoperaciones dadas en la Tabla 11-10 suministra la información necesaria para diseñar los registros del computador. Las operaciones que Se van a realizar en cada registro se demuestran claramente en las proposiciones listadas. Por ejemplo, el contador del programa PC tiene tres microoperaciones: ctt
PC<-PC+l
czt
PC <- B(AD)
bzi
PC <- MAR
Tabla
l1-lO
Memoria de control R-F'tt+F(qo * q1* q)t¡ Il=F(qz+ q t * q+)t{ ReerstroA at : Fqo!3: a2: Fq1t3: a^ = rBp; ar: rBPi a, : rBgi au: rB7: a1 : 186: as : pBli Registro B b¡: Fq2t2: b2 = Fq3tr: b3 = Fqol2: Registro PC ct : F'tt
+(q$, * q)Ft, +@ya\a+ B4Arc + B3A, + B2E')r +(BnNe * BrcU)p: c2: qst3: b3 = Fq4t2: Registro MAR dt : F'to: d, = Fls: Registro I it : F'tz: Flip-flop E e 1: r B ¡ r : e2: rBe: a2 : Fq1t3: a5 : rBs: a6: rB7: Flip-flop F F'(qo* qt* qz i: + % + q)t3i fr: Ft3: Flip-flop S s¡ : r-B¡: Registro G .S: Registro Li u, = PBe: Registro N as: pBn:
Microoperaciones pa¡a los registros
Be-M M<--B
Leer de memoria Escribir en memoria
A<--A ¡\B A<_A } B A <-0
AND Sumar Borrar
A<-r I <- shrA, A6<- E I <-shlA,A1<- E A<-A*l lr-¡{r-¡
Complementar Desplazamientoa la derecha Desplazamientoa la izquierdr Incremento Trasferencia
B+-A B<-B+l B(AD) <- PC, B(Op) +- 0i0l
Trasferencia Incremento Trasferencia
PC<-PC+I PC <- B(AD) PC <-_MAR
Incremento Trasferencia Trasferencia
MAR <_ PC MAR <- B(AD)
Trasferencia Trasferencia
r <- B(oP)
Trasferencia
E <-0 -E <--arrastre E+-A1 E <- A¡6
Borrar Complementar Trasferencia Desplazamientoa la derech Desplazamiento a la izquie:
F<-l F <-0
Ponera 1 Borrar
s <-0
Borrar
G < - - G+ I
Contar
Ur-ae A1-s,U9<-0
Trasferir
.Ay'e <_ 0
Borrar
E.- E
F s E c . 11 - 6
D E L C O M P U T A D O R5 O l D I S E Ñ OD E L O S R E G I S T R O S
Este registro debe tener condicionesde incrementoy trasferencia.Se puede configurar por medio de un contldor con carga en paralelo del tipo mostrado en Ia Figura 7-19.Como el PC recibeinformaciónde entrada de dos fuentes, éste requiereun multiplexor para seleccionarentre dos entradas,como se explica en asocio con la Figura 8-3. Los otros registros se diseñan de manerasimilar. El diagrama de bloque que muestra los tipos de registros necesarios para el computadorse da en la Figura 17-7.La unidad de memoria se incluye también para mostrar su conexión al procesador.La lógica de control presentatodas las variables de control de los registros.El diseño de la lógica de control se discute en la siguientesección.Las variables de control que .e generanen la unidad de control son aplicadasa los registrosde la manera que se indica en el diagrama. Además de los registros,el procesador usa cuatro multiplexores para seleccionar de dos o más fuentes. Todos los registros y multiplexores son funciones MSI dispohibles en circuitos integrados normales. Los tres flip-flops E y F y S y su correspondientelógica combinacionaldebe diseñarsecon compuertasSSI y con flip-flops. Todos los registros en el computador excepto el registro A requieren terminales de entrada de control de carga, incremento o de carga e incremento juntos. Se puede escogerel uso de un contador MSI con carga en paralelo para todos los registros.De esta manera se podría tener un inventario de un circuito integrado normal para los registros.Un componente comercial posiblees el CI tipo 74161.Este circuito MSI contieneun contador de 4 bits con una carga en paralelo y un terminal de entrada de borrado asincrónico. Los terminales de entrada de borrado de los registros pueden conectarsea un interruptor de puesta a cero maestro en el computador para borrar todos los registros asincrónicos antes de las operacionescon reloj. Los registrosde 12 bits, el PC y el MAR necesitantres CI y el registroB de 16 bits-, cuatro CI. Los registros I y G pueden configurarse con un solo CI cada uno. El contador de 4 bits de CI puede convertirsea un contador de 2 bits para G por el métodoenunciadoen la Sección7-5 en asociocon la Figura 7 -20. El registro A es el más complicado porque realiza todas las tareas de p.o""r"-iunto del computador. Este registro es un registro acumulador del iipo diseñado en Ia Sécción 9-10 y puede usar la configuraciónmostrada etr l" Figota 9-22. Puede configurarsetambién con un registro de desplazamiento bidireccional con la carga en paralelo como se muestra en la Figura ?-g, conjuntamentecon un ALU del tipo discutido en la sección 9-6. una mejor fórma sería usar un circuito acumulador MSI tal como el CI tipo 745281.Cuando se configuracon un ALU o acumuladorde CI, la unidad de control debe generar las variables de control correspondientespara seleccionar las microoperacionesrequeridas en el ALU. Estas serán diferentes de las funciones áe control definidas por la unidad de control en este diseño. El registro de entrada N y el registro de salida U pueden ser parte de Ia interconexión normal de una teleimpresora. Los circuitos integrados que hacen interconexión con una unidad teleimpresora están disponibles coasincrónimercialmente y se les llaman a menudo trasmisores-receptores cos uniuersales (universal asynchronous receiver-transmitters abreviado
Btse
0l s MUX
B tt-rc
Registro 1 Salidas de cont¡ol
Cargar
ul-
Figura
ll-7
Diagrama de bloque detallado der comnutador
UART). Tal circuito integrado incluye un circuito de entrada y de salida dentro de la unidad conjuntamente con dos indicadores necesariospara sincronizarla trasferencia. Tres de los multiplexores de la Figura 11-7seleccionanentre dos fuentes de entrada. El terminal de entradá número 1 del MUX se selecciona cuando el terminal de entrada de selecciónmarcado.or, ,r.r" s es 1. cuando s:0 se selecciona el terminal de entradanúmero0 del MUi. El multiplexor asociadocon el registro B tiene tres fuentes de entrada. Las variables de selección sr y so determinan la entrada seleccionada. cuando ambas líneas de selecciónson 0, la entrada seleccionadaproviene pc. La señal ¿ul -ür-anece i? de lectura de memoria hace so:1 *i""i."r'q""-1 en 0 , 502
:l
s E c . 11 - 7
D I S E Ñ OD E L C O N T R O T5 O 3
(porqueb,:0 cuandoR:1). La entradanúmerol del MUX se seleccrr-'na ' '' ,nedilnte la entrada que proviene de la unidad de memoria, cuando r sr. selección produce la b1 control 01. De manera similar la variable de A' registro del contenido del : 10 la cual causala selección EI computador entero mostrado en la Figura 11-? p-uedeencapsularse dentro de un solo cI para formar un microcomputador.un microcomputadel dor de CI típico l-rorllrálrrr".rtetiene característicasnuevas en la sección la parte de maJor pequeñT más p.o"""udor, pero i.,cÑ" ,rrru memoria !? interno diseño El ROM. tipo del comúnmente es memoria de un compuiador del *i.ro"o*putador requiere que la lógica del computador-se á" l" "ap.nla ,rn conjunto dé funcioneJ de Boole que espccifican todas las J"fi.ru "on y flip-flops en el sistema. Las funciones de Boole que configupresentado "o*p""rtu, ran cada registro erii sistema pueden deducirsepor el método funciones de términos en g-ro registros los de para diseñ-o el en Ia Secci¿n de Boole. 11-7
D I S E Ñ OD E L C O N T R O L
para los La unidad de control del computadorgeneralas variablesde control y la diferentes control ."gi.tro, y unidad d" -"rno.iu . Hay i+ variables de el En control' de funciones como 11-10 mayoríade ellas se listan en la Tabia conde lógica la de diseño para el métodos capítulo to se presentarontres alamb.ráo., el contr-olPLA y el control del trol: el control "o-po"entes de control del computador puede ser diseñada l,u-rrrriiad -i"rop.og.u-". """ usandb cualquierade estostres métodos' C o n t r o l c o n c o m p o n e n t e sa l a m b r a d o s LaorganizacióndecontrolpresentadaenlaFigurall-16esesencialmente del registro ,rrru o".g^nlración con componentesalambrados por el ^método casoes un este en G secuencia de á" ,u"rr""rr"iay decodificadór.El registro control de estados cuatro entrega tiempo de y ui d""oáificador operade para código el usa se "o.r1uaá, d_ec9{i.fi,cador ."gundo pái"-.i ,iit"rrru. Un gecontrol de ción almacenadoen-el-.-"gi*tto/. El bloque de la red-delógica nera todas las funcionesde control para el computado¡'compleLa configuru.iá" a" ¡" red de lógica de contiol en la Figura 11-6 configuración Esta alambrados. componentes ta el diseño del control con las 24 funciones consiste de las .o-p,r".t". combinacionales que genelan listadas como Boole de funciones Las 11-10. Tabla la e'n listadas de control las cuales se de Boole funciones de cont.oi especificanlas ecuacionesde aquí dibujará se no circuito Este deducir el circuito combinacional. ñ$ variables las que definen Boole de funciones 24 las i"ro prr"d, obtenersede á e c o n t r o lR , W , a l h a s t aa s , b r , b r , b r , c r , c 2 , d r , d , ' í " e " € z ' f t ' f z ' sr Y ur. Control por PLA y El control por PLA es similar al método de registrode secuencia decodifidentro configuran se combinacionales circuitos que los todos excepto cador,
fu4
D I S E Ñ oD E c o M P U T A D o R E S
cAP 11
del PLA. Los dos decodificadoresse incluyen dentro -nirrri^".o de la configuración del PLA -\'a que ellos son circuitos combinácionales. de salidas de control es 24. El número total de terminales de entrada pLA es también 24. un PLA de 24 entradasv 24 salidaspgequ en de cI comercial. Por esta iazón,la unidad de "ocontiof ".tuiairponible "¿pr.,lá á-Jbedistribuirse de tal m_anera que pueda configurarsecon un número mínimo de pLA. cI L na forma de repartir el control es de acuer¿ou tus lublas de función presentadasen la sección 11-5.Las proposicionesde trasferenciaentre re_ gistrosde esta secciónse listan en lás Tablas 11-bhaJa 1l-g. El control PLA repartido de acuerdoa estas tablas se muestra en la Figura 11-g.Es_ ta configuraciónremplaza el control de los componentesalambrados de la F i g u r a1 1 - 6 . La Figura 11-8 muestra tres pLA y dos registros para la unidad de control. Los dos decodificadores no son necesariosaquí yá q.r. se configuran dentro del PLA. Nótese qu€ no hay conexionesde üs .utüa. a" .rurlquiul PLA a las entradasdel registro de secuenciaG. una conexión de realimen_ tación no es necesariaporque el registro G es un y el siguiente "orrtuJo. 11ado se predetermina a partir dJ la secuenciade cuenta continua. El .PLA 1 configura las variabiesde control listadas iu-iu-¡tu 11-b(ciclo Je búsqueda)y la Tabla 11-6 (operacionescomunespara "" el ciclo de ejecución). Estas variablesde control dependende las variaÉles¿" til-po G, el código de operaciónde ry el control áel ciclo en F. El pi,li;;"¡ig".u las funciones de control listadas en la Tabla 11-7 (ejecuciónde las instrucciones de refe_ rencia de memoria). Estas funcionesdé control tienen las mismas variables de.entrada que en el pLA l con ra adición de ra variá¡te'¡irraria 8.. Recuérdeseque B. es una variable binaria igual a 1 cuanJo el registroB contiene sólo ceros. El tercer PLA genera las funciones de control de referencia entre registros y de entrada-salidalistadas en las Tablas rr-á v iig. Estas funciones de control tienen dos variablescomunes: r:
eatz
p : htz
para las operacionesde referenciaentre registros. para las operacionesde entrada_salida.
Estas dos variables comunesson generadasen el pLA 1 y se aplican como entradasal PLA 3. Las otras entrádasal tercer pLA provienen -' del registro B (bits l-t2) y de otras condicionesdel bit de condiclón. La variable de control c1 incrementa el contador á" p.ogr"-a. Esta variable de control se genera en todos los tres pLA. L;; ires salidas de_ ben combinarsecon una compuertaexterna oR para p.oJ,r"i. una sola salida. Esta.sa.lida.se aplica al tórminal de entrada de incrementodel pc. La derivación de las tabras de programapara los tres pLA completa el diseño del control. La tabla de p.ogi"-", aet ÉL^q r p""a. obt..r".." a partir de las funcionesde control rist;da; en las Tablas ri-s v ri-0. Estas funciones se repiten de nuevo en la Tabla 11-11por conve.riencia. Algunas de las funcioneshan sido simplificadas para ser ágregadasen la iabla de programa. Por ejemplo la variable de control de lec'tuü n r"" ri.tJa originalmen_ te como:
-Tt R:
F'tt+ F(qo+ qr* qr)t,
Las variables de salida decodificadrrsgo, gr y ez son una función de las variablesen el registroI y puedenser simplificádasde la siguientemanera: 4o t Qt * Qt: I;I;Ií + 4I;It + IíI2I.:
IíIt + I:I;
c.omoel PLA acepta las variables.I en vez de las variablesq es más conve_ niente usar la función de dos términos en vez de una de tres términos. La variable de control /r se simplifica de una manera similar. Las otras varia_
/.- lI
dl
Bl
a3
L' l>
cl
to
el
\)
R
Btz
A4
F
¡r
Arc
Grl
fl
"z
4)
C2
E
Q1
u9
fz
,'9
PLA 3 Tablas 11-8 11-9
e2 as a6 4.1 sl
p
a.l
L 'I-t PLA 2 It F G2
^ "' bl
rabla tt-7
w b2
Gt
b3
Bz
cl
Figura l1-8
Control PLA para computador
tu5
Tabla
1l-11
Funciones de control para el pLA
dt : F'to: cr : F'ti R: F'tt + F(IíIt + Illi)tr: it : F'tz: "ft: F'(I!+ IiI)t': cz: qst3i dz: Fto:
MAR <_ PC PC<.PC+I B<_M r <- B(oP) /fl<_
I
PC <- B(AD) MAR <- B(AD) F<- 0 Registrode referencia Entrada-salida
F4:
ft:
t
r : q6t3: P : 4ttt:
bles de Boole necesitan una traducción de la designación f a un estado en el registro de secuencia G y de la designación q ai código de operación correspondiente en el registro 1. L a t a b l a d e p r o g r a m a p a r a e l P L A I s e d a e n l a T a b l a 1 1 - 1 2 .E l p L A t i e ne 6 entradas, 12 términos producto y 10 salidas. Las entradas para G, y G ' , s o n 0 0 , 0 1 , 1 0 y 1 1 y c o r r e s p o n d e na l a s v a r i a b l e s d e t i e m p o t ¡ . t ¡ , t 2 , )' t¡ respectivamente. La entrada para 1, , I.¿ e 1, es un número binarió igual al valor del suscrito i en q, a no ser que se simplifique la función. Nótese que el registro 1 tiene- cuatro bits pero 1o no se usa ya que siempre es 0. El procedimiento para obtener una tabla de program, pt,R a partir de un conjunto de funciones de Boole se explica en la Selción b_g. La tabla de programa para el PLA 2 puede derivarse de manera simi. lar. pero no se incluye aquí. El tercer pLA requiere 12 términos AND y una compuerta oR de 6 entradas (para generar la variable de control c, ). Esta Tabla 1l-12 Entradas Termino del 13 12 ItFG2Gl Pr o d uc t o
r-00 j-00 30110 400-10 5-01 6001 7-0001 8l0l-l 9-10 lo-ll ll I I 12 lll-l
Tabla de programapara el pLA 1 Salidas
dtctRir.fic2d2hrp 0 I I I 0
l_I
F'to F',tt FIiIll FIáritl F'tz F'Iát3
;l -
ll-l
I I
0
_
I
I I 0 I I I
F'r;rít3 -l
.r5,3 Fto Ftt
-l -l
4ott 4ttz
D l s E Ñ o D E L C O N T R O Lf i 7
sEc. 11-7
parte del control puede configurarse más económicamente con compuertas 'SSl o con un arreglo de compuertas programables a voluntad (FPGA, fieldprogrammable gate array). El FPGA es similar al FPLA field-programmable logic array) en concepto, excepto que contiene solamente compuertas AND programables. Un FPGA típico tiene 9 compuertas AND o (NAND) 16 entradas comunes.* Se requieren dos circuitos integraq,re "o-parten para remplazar el PLA B en Ia Figura 11-8. En Ia compuerta OR dos FpGA externa puede combinarse con otras líneas que generan la variable c1. Control del microprograma La organización de la unidad de control para el computador es más adecuada paia el control del PLA que para el control del microprograma' principal-".rt" por la forma como fueron formuladas originalmente las instrucciones de refeiencia entre registros. La configuración del control del microprograma que se va a desariollar aquí, configura las funciones de control para el ciclo de búsqueda y las instrucciones de referencia de memoria. Las operaciones de referencia de registro de entrada-salida pueden configurarse más eficientemente con un conirol de componentes interconectados o un control PLA. El control del microprograma no necesita los registros I, G y F. El código de operación está en B(OP) y al final del ciclo de búsqueda puede ser usado para especificar una dirección de macrooperación para la memoria de conirol sin necesidad de un registro 1. Las variables de tiempo geneladas en el registro de secuencia G pueden ser remplazadas por una secuencia de pulsos d"e reloj que leen microinstrucciones consecutivas de la memoria de control. La traslerencia del ciclo de búsqueda al ciclo de ejecución puede hacerse en la memoria de control por medio de una microinstrucción de bifurcación, la cual trasfiere el control al siguiente ciclo sin usar el flip-flop F. La configuración del control de microprograma que se va a desarrollar aquí remplaáa todo el control de componentes interconectados de la Figura 1 1 - 6 ( e x c e p t op o r e l r e g i s t r o B ) ' Repasandólas Tablas 11-5, 11-6 y 11-7 se nota que todas las microinstrucciones pueden secuenciarse incrementando la dirección de la memoria de control, excepto cuando se va a ejecutar una instrucción de referencia de memoria particular o para regresar al ciclo de búsqueda. Un rutina particular de instrucción dé referencia de memoria puede ser accesible con una dirección de macrooperación externa. Si se comienza el ciclo de búsqueda a partir de la direccién 0, es posible bifurcarlo al ciclo de envío borrando el registro de dirección de la memoria de control CAR. Por tanto, la parte de secuéncia de dirección del control del microprograma necesita solamente tres operaciones: 1. Incrementar el CAR para leer Ia siguiente microinstrucción en secuencia. 2. Borrar el CAR para iniciar el ciclo de búsqueda' *El
CI tipo 82S103 de Signetics.
5O8 DrsEÑo DE COMPUTADORES
c A P . 11
3. Entregar Ia trasformaciónde bits del B(OP) a una dirección externa del CAR (control memory addressregister). Un control de microprogramapara el computadorse muestra en la Figura i1-9. La memoria de control ROM tiene 32 palabrasde 7 bits cada una. Los primeros cuatro bits se codifican para producir 16 combinacionesde bits, cada uno para cada función de control. Aunque el computadortiene 24 funcionesde control 16 son suficientespara generar aquellas funciones de control asociadascon el ciclo de búsqueday las instruccionesde referencia de memoria. En vez de usar 16 bits de ROM para especificar16 salidas, se escogeusar solamente4 bits y decodificarlosmediante un decodificador de 4 a 16 líneas para producir hasta 16 variables de salida distinguibles. Este esquemaahorra bits de ROM pero requierede un decodificadorexterno. Este limita también Ia capacidadde las microinstruccionesporquesolamente se puede especificaruna función de control en cualquier microinstrucción dada. La parte de secuenciamientode direccionesde la unidad de microprograma no requiereun multiplexor para seleccionarlas condicionesdel bit de condición. Hay solamenteun bit de condición que se debe considerary se mostrará más adelante cómo puede incluirse en un circuito externo. No hay necesidadpara un campo de dirección en la microinstrucción porque no se presentan necesidadesde bifurcación excepto para el regresoal comienzo del ciclo de búsquedao Ia trasferenciaa un registro de dirección. Los últimos tres bits de la microinstrucción determinan la siguientedirección. El bit 7 incrementael control del registrode dirección. El bit 6 borra el CAR, lo cual causa un regresoal ciclo de búsqueda.El bit 5 carga una dirección externa al CAR. La dirección de entrada debe contener 5 bits porqueel ROM tiene 32:25 palabras.Tres de estosbits vienen de la parte del registro B que retiene el código de operación.Los últimos dos bits son siempre iguales a 11. Esta es una trasformaciónde código de los bits del códigode operaciónde la instrucción a una dirección externa de la memoria
[ncrementar
Cargar entrada Figura
ll-9
Unidad de control del microprog¡ama para el computador
D I S E Ñ OD E L C O N T R O L
s E c . 11 - 7
de conlrol. Esta trasformacióncausa que la instrucción AND, cuyo código de operaciónes 000, cambie a una dirección del CAR ig.ral a 00011.La instrucción ADD se trasforma de 001 a 00111y así sucesivamentehasta una instrucción de entrada-salidacuyo código de operaciónes 111 y cuya trasformación de dirección es 11111.El bit más significativo en B(OP) no se usa porque es siempre 0. La unidad de control del microprograma,mostrada en la Figura 11-9, es muy simple y requieresolamentetres circuitos MSI. Debido a su simplirequierecircidad no ut'*rry flexible y como se muestra subsecuentemente de control' la unidad cuitos adicionaiesputu uttu configuracióncompleta de de las y ejecución de búsqueda para de el ciclo Las microinstrucciones 11-6y 11-5, Tablas las en se listan de memoria instruccionesde referencia que ya y necesarias no son F ,I para los registros microoperaciones 11-7.Las y sus funciones esos registrot .to se usan. Las microoperacionesrestantes de cont"rolcodificadasse listan en la Tabla 11-13.Los primeros cuatro bits de una palabra ROM en la memoria de control producen 16 combinaciones y cada combinación especificauna microoperación.Las combinacionesde y sólo uno. tto inicia una microoperación.Las otras 14 combinaáóIo ""to. se decodificanpara entregar variables de control para las microopeciones racioneslistadas. La salida del decodificador14 inicia la operaciónde escritura en memoriaM *B y también especificaun control condicionalpara incrementar el PC dependiendode la variable Bz.La razón para repetir esen una microinstrucción se clarificará más tarde. tas dos microoperaciones Nótese que la rtri".oopur"ciónde escritura de memoria se inicia con la salida 11 dei decodificadór y la variable de control que incrernenta el PC está disponible de la salida 2 del decodificador. Tabla
Bits de ROM |
2 3 4
0000 0001 0010 0011 0100 0l0l l0 0l l l 0l 1000 l00l l0l0 I l0l I100 1l0l I I l0 llll
codificación de losbits de RoM
l1-13
Salidadel
Función
decodificadordecontrol
0 I 2 4 5 6 7 8 9 l0 ll t2 IJ
t4 l5
para las microoperaciones
dl C1
n C2 d2
r p A¡ A2 bl
W b2 b3
,:,
Microoperación
Ninguna MAR <_ PC PC<--PC+I B<_M PC <- B(AD) MAR <- B(AD) Operaciónde referenciaentre registros Operaciónde entrada-salida A<.A ¡\B A <- A + B, E <--arrastre B <-.4 M<_B B<-B+l B(AD) <--PC, B(OP) <- 0101,PC <- MAR M <- B,si(8, : l)entonces(PC +- PC + l) Ninguna
I
Tabla
11-14
Instruccion Direc-
ción del ROM
Tabla de ve¡dad del ROM para el control del microprograma
S a l i d a sd e l R O M 234
56
Designaciónsimbólica M ic rooperaciones
Sizuiente dirección
r 000 l 00001 0 0 r r 0 00010 0 0
001 001 100
MAR <_ PC B<-M PC<_PC+I
CAR <- CAR + I CAR <_ CAR + I CAR <-228(OP)+ 3
.{\D
0001l 00100 00101 001l0
0l0l 001l 1000 0000
001 001 010 010
MAR <- B(AD) B<-M A<-A \B Ninguna
CAR <_ CAR + I CAR <_ CAR + I CAR <--O C A R< - O
\L \TA
00lll 0l0l 01000 0 0 1 l 01001 l 0 0 l 01010 0000
001 001 010 010
MAR +- B(AD) B<_M A <- A + B, E <- arrastre Ninguna
CAR <_ CAR + I CAR <- CAR + I C A R< - O C A R< _ O
0 l 0 iI 0l100 0 ll 0 l 0lll0
001 001 010 010
MAR <- B(AD) B<_A M<--B Ninguna
CAR <- CAR + I CAR <- CAR + I C A R< - O CAR <_ O
0lllt 10000 r000t r0010
00 00 00
CAR <- CAR + 1 MAR <- B(AD) CAR <_ CAR + I B<_M CAR <_ CAR + 1 BeB+l M <- B,si (8. : l) enton- C A R < - O ces (PC <- PC + l)
t00lI 10r00 l0l0l l0ll0
00 00 00
MAR <- B(AD) B(AD) <- PC, PC <-MAR M<_B PC<-PC+I
CAR <_ CAR + I CAR <_ CAR + I CAR <- CAR + I CAR <_ O
0100 0000 0000 0000
010 010 010 010
PC <- B(AD) Ninguna Ninguna Ninguna
CAR <_O CAR <--O C A R< _ O CAR <_O
il 100 0 0 0 0 il l0l 0000 nll0 0000
010 010 010 010
Operaciónde registro Ninguna Ninguna Ninguna
C A R< - O C A R< - O CAR <--O C A R+ - 0
Operaciónde ent¡ada-salida
C A R< _ O
B U S Q L ' E D A 0ün0
0l0l l0l0 l0r 0000
I
i I
BUN
R E G I S T R O l 1 0 lr
r/o
510
5 1I D E LC O N T R O L DISEÑO
S E C .1 1 - 7
la Tabla 1l-1-1' El microprograma para la memoria de control se da en 32 palabras Hay RoM. el Este es también ta ta¡tá de verdad para programar en la taes¡recifican palabra se d" ñOM; la dirección y contenido-de cáda microinstruclas que muestran rutinas nueve üfu. f,u tabla se subdivide en para ciones que pertenecen al ciclo de búsqueda y las microinstrucciones la de columna La ;j;;;;"r= ;"áu ,rrru de las instrucciones de computador. y la simbólica forma en ierig.u"ió., simbólila presenta el microprograma secuencia de direcciones para el CAR' mtcrooperaEl ciclo de búsqueda comienza con la dirección 0. Las tres del contenido el trasfieren búsqueda de rutina tu ciones consecutiva*'." pc ul MAR,leen la instrucción al registio B e incrementan el PC. En la a 1. El mismo puláir"c"i¿r, 2 (0010) el bit 5 de Ia microinitrucción es igual la microoperación: ejecuta so de reloj que incrementa el PC también CAR <-228(OP) + 3 bits se desplaB(OP) contiene los tres bits del código de operación. Estos 3 (11) se y por el.binario 22 (multiplicando ) ,ur, ¿o¡t"-ente a la izquierda en el recibida La dirección pará el CAR. dirección agrega para formar una y el control la tabla cAR trasfiere el control a una de las rutinas listadas en de esta configuración La específica. instrucción la ejecutando .""1i".1" 11-9' Figura trasformación de código se ilustra en la ^- , para cada instrucEsta configuración asigna cuatro palábras de ROM ISZ tiene instrucción la ejemplo, Por I,/O. ción, excepto para iÁ i"J."l.ión instrucesta que ejecuta de operación 011. El comienzo de la rutina .i cuatro L a s 0 1 1 1 1 ' el binario . i ¿"¿Aigo ., uri¿ en lá dirección 4X 3+ 3: 15 la cual es y No 18. 17 16, 15, direcciones las palabras RoM para esta rutina están en contiene dirección porque esta 19 la dirección !" p,r"¿" usar lá pulubru de para la rutina BSB' Como no hay capacidad de fu ñri-"tu -i.tol".l.ucción se puede bifurcar a una bifurcación en esta unidad áe microprograma, no p"r"¡*deRoMnousada;portantocadarutinadebecompletarsecon c u a t r o m i c r o i n s t r u c c i o n e so m e n o s ' La diLa rutina AND puede configurarse con tres microinstrucciones. la med e s e l e e o p e r a n d o e l M A R , a l t r a s f i e r e rección de la instru""ió.r.. moriaaByseuj"""tulamicrooperaciónANDentrelosregistrosAyB.La (00101) tiene el bit 6 igual a 1' última microinstrucción en la d^irección 5 para coque el CAfi se borre y el control regresea la dirección 0 ñ.io microinstrucciones "u".u dos primeras Las menzar de nuevo el ciclo de búsqueda. que el cAft se inde Ia rutina AND tienen el bit r iguat a 1, lo cual causa 6 no se usa' Esta la dirección en rutina está de palabra cremente. La última ya que se debe especificar_a-lgopara la tabla ;"1;b;" no puede dejarse vacía p^alabraes no especiá" ,r".dua d^elROM. La mejor ,''u.r"ra de ocupar esta y el C-AR con el bit 6' De bo.tut 4 hasta t en loá bits ñ"u, *i"roop.ru"io.,., se encuentra en Ia control de y memoria la falta esta maneru, ai oarrr.a una regresará al ciclo y dirección 6 no se ejecutará ninguna operación el control de búsqueda. La insLas rutinas de ADD y STO necesitan tres microinstrucciones' La rutina. en la disponibles palabras trucción BSB usa todas Ias cuatro T J n a i n s t r u c c i ón m i c r o i n s t r u c c i ó n . u n a s o l a m e n t e instrucción BUN necesita
512 OISEÑO DECOMPUTADORES
c A P . 11
de referencia de registro inicia una variable de control r, la cual puedeser usaoa conJuntamente con un bit en el registro B para iniciar una de las operaclones especificadas. Lo mismo se aplica a la instrucción (I,/O) de entrada-salida.
La rutina ISZ necesitacuatro microoperaciones y una operacióncondicionai dependientedel.valor d9 Esta impone problemaya que solaun 4,. mente.havcuatro parabrasde Rofuf disponiblesp";";;;;-;tina y la confi_ ¡r.rracióndel microprogramano tiene racilidad ;";;;Ja, ú" estadoder bit de condición. Este probremapuede resorverse-i.;iú;;;" "t microope_ dos racionesy una microinstruccióny comprobando el bif á" con una compuerta AND externa. para co*pe.r.u, esta "o"¿i"i¿n configuración no ortodoxa se agregaun circuito externo ré ilustra en la Fifrrra 11_10.El decodi_ "o-o de salidas pá.u licador RoM tiene dos terminales l, Jp"L"i¿" de escritura de memoria M * B: uno en la salida 11 y el otro en la sarida 14. Esas dos salidas se aplican y.ra compuerta oR-externa ? una salida ;;;";J;;gar común. El terminal de salida 14 der decodificadó,." r,uúitita durante la cuarta microinstrucciónde la rutina ISZ. Esta."ii¿","-"piica a una com_ puerta AND externa con el bit de condición B. p;;;;;;¿r-.i, ru función de control de incrementodel pc. La salida 2 del décodifi.uáo, tam_ bién un incrementodel pc. Algunas ae-tasoperaciones "rpecifica en ras instrucciones de referenciaentre registro y dé entraáa-salida especificaniguarmenteesta operación.Las tres salidas deben aplicarse a una compue¡taoR para con_ formar una sola salida para incremu.,t". .t pc. Las r y p del deco_ dificador del ROM se usan conjuntamente con otras";;1;;i;; condicionesdel bit de condición para generar las variábles de contror restantespara el computa_ dor' Esas variables de control pr"d".r .", generadas .or, .-, configuración externa de componenteso con un pLA taf como se i;Ji";;" el diagrama. Inc¡ementa¡ el PC
6 Decodificador , ROM
Operaciónde registro
Control de componentes rnte¡conectados
Operación de ent¡ada-sali
Figura
Po PLA 3 de la Figura 11-8
11-lO
Operaciones de registro y ent¡ada-salid¿
C i r c u i t o s a d i c i o n a l e s p a r a un cont¡ol de microprograma
1 1 - 8 C O N S O L AD E L C O M P U T A D O R Cualquier computadortiene un panel de control o consola con lnt,erruptores y lámparas para permitir comunicación manual y
visual entre el operador
-l S E C .1 1 . 8
/3 C O N S O LD A E LC O M P U T A D O5R
y el computador. Esta comunicación es necesaria para comenzar la operación del computador (bcntstrapping) y para propósitos de mantenimiento. Para completar se enumera un conjunto de funciones de la consola útiles para el computador aunque no se muestren los circuitos necesarios para configurar estas funciones. Las lámparas indican al operador la condición de los registros del computador. La salida normal de un flip-flop conectado a una lámpara indicadora causará que la lámpara alumbre cuando el flip-flop se pone a 1 y se apague cuando el flip-flop se borra. Los registros cuyas salidas van a ser o b s e r v a d a se n l a c o n s o l a d e l c o m p u t a d o r s o n : A , B , P C , M A R , 1 , E , F y S . Cuando se muestra el número total del flip-flop se encuentra que es necesario 63 lámparas indicadoras. Un conjunto de interruptores y sus funciones para la consola pueden incluir lo siguiente: 1. Dieciséis interruptores de "palabra" para establecer manualmente los bits de una palabra. 2. Un interruptor de "comienzo" para preparar el flip-flop S. La señal de este interruptor borra el flip-flop F, Nn, Us V el registro G. 3. El interruptor de "parada" para borrar el flip-flop S. Para asegurar que se complete esta instrucción la señal que viene del interruptor se aplica conjuntamente con la función de Boole (F* qs I qa * qz * qt)tz a una compuerta AND antes de que se aplique para el borrado de Ia compuerta S. 4. Un interruptor de "cargar dirección" para trasferir una dirección al registro PC. Cuando se activa este interruptor, el contenido de los 12 interruptores de "palabra" se trasfieren al PC. 5. Un interruptor de "depósito" para almacenar manualmente palabras en la memoria. Cuando se activa este interruptor, el contenido del PC se trasfiere al MAR y se inicia el ciclo de memoria. Después de 1 ¡rs, el contenido de los 16 interruptores de "palabra" se trafieren al registro B y se incrementa el PC en 1. 6. Un interruptor de "exposición" para examinar el contenido de la palabra en la memoria. Cuando se activa este interruptor, el contenido del PC se trasfiere al MAR, se inicia un ciclo de memoria y se incrementa el PC en 1. El contenido de la palabra de memoria especificado por la dirección en el PC, está en el registro B y puede verse en las correspondientes lámparas indicadoras. Para asegurarse que el computador no esté funcionando cuando la energía se aplica, el flip-flop S debe tener un círculo especial que lo force a una posición de borrado inmediatamente después de aplicar energía a la máquina.
IAS REFR E ENC 1. Mano, M. M., Computer System Architecture. Englewood CIiffs, N.J.: PrenticeHall. Inc.. 1976.
514
D I S E Ñ OD E C O M P U T A D O R E S
c A P . 11
2 . Small ComputerHandboofr.Maynard, Mass.: Digital Equipment Corp., 1973. I
B o o t h ,T . H . , D i g í t a l N e t w o r k sa n d C o m p u t e rS y s t e m sN . u e v a Y o r k :J o h n W i l e y & S o n s .I n c . . 1 9 7 1 . H i l l , F . J . y G . R . P e t e r s o nD, i g i t a l S y s ú e m .H and Design. s :a r d w a r eO r g a n i z a t i o n \ueva York: John Wiley & Sons,Inc., 1973.
I
Bell, C. G., J. Grasony A. Newell, Designing Computersand Digital Sysúems. \{aynard, Mass.: Digital Press,1972. Kline, R. M., Digítal ComputerDesign.EnglewoodCliffs, N.J.: Prentice-Hall,Inc., 79i7. Soucek, 8., Minícomputers in Data Processingand Simulafion. Nueva York: J o h n W i l l e y & S o n s ,I n c . , 1 9 7 2 .
PROBLEMAS 11-1. Repas. ,^ ,.rnjunto de instrucciones del computador diseñado en este capítulo (Tablas 11-2, 11-3 y 11-4) y haga la lista de las instrucciones útiles para: (a) trasferencias entre la memoria y el acumulador; (b) trasferencias entre la entrada-salida v el acumulador: (c ) manipulaciones aritméticas; (d) operaciones lógicas; (e) operaciones de desplazamiento; (f) decisiones de control basadas en condiciones de estado; (g) subrutina de bifurcación y regreso. ll-2.
Dé una lista de instrucciones para que el computador ponga a uno el flip-flop E.
11-3. (a) Haga una lista de la secuencia de instrucciones para que el computador ejecute un desplazamiento aritmético a la derecha de un número almacenado en el acumulador. El número está en la representación de signo complemento de 2. (b) Repita lo anterior para un desplazamiento aritmético a la izquierda. Indique cómo se detecta una sobrecapacidad. 11-1. Muestre que la lista de instrucciones obtenidas en el Problema 11-1(d) constituye un conjunto suficiente para configurar todas las 16 operaciones lógicas listadas en la Tabla 2-6. 11-5. (a) Escriba una secuencia de tres instrucciones que se almacenen en los lugares de memoria l, 2 y 3. Ellas deben constatar si hay un caracter en un dispositivo de entrada y si es así, trasferirlo al acumulador. (b) Escriba una secuencia de tres instrucciones que se almacenen en los lugares de memoria 5, 6 y 7. Ellos deben constatar si el dispositivo de salida está desocupado y si es así, trasferir un caracter del acumulador. 11-6. El computador descrito en este capítulo no tiene una indicación de sobrecapacidad después de sumar dos números con siglo. Asuma que los dos números agregados con la instrucción ADD están en la representación de signo complemento de 2. Describa un algoritmo en forma de flujograma para un programa de computador que sume dos números y detecte una sobrecapacidad. ll-7.
El programa siguiente es una lista de instrucciones en código hexadecimal. El computador ejecuta las instrucciones comenzando por Ia posición hexadecimal 100.
516
D I S E Ñ OD E C O M P U T A D O R E S
cAP. t 1
Código Simbolo
hexadecimal
ORA XRA S\['P
8m 9m Am
SUB BSA
Bm Cm
BPA BN,d BZA
Dm Em Fm
Descripción OR con A OR-exclusiva con A IntercambiarA con la memoria RestarA de la memoria Bifurcar y conservar la dirección en A Bifurcar con A positivo Bifurcar con A negativo Bifurcar si A es cero
Función A<_A\/ M A<_A6M A<_M,M<_A A<-.M _ A A<-PC,PC<-m
si (l si (r si (r
> 0)entonces(PC <--m) ( 0)entonces(PC <- m) : 0)entonces(PC<--m)
11-13.El computad,.,rdiseñadoen este capítulo usa un flip-flop F para distinguir entre los cicl{)s de búsqueday ejecución. Este flip-flop no se necesita si ef registro de secuenciaG es un contador de 3 bits y su decodificadorentregaocho señales de tiempo, üo hasta ¿7. El registro G puede borrarse ran pronlo como se complete la ejecución de la instrucción. (Esta es la forma como fue diseñadoel control en el computadorsencillo de la Seccióng-12.) (a) Revise las Tablas 11-5,11-6y 11-zpara estar de acuerdocon este nuevo esquemade control. (b) Determine el tiempo de ejecuciónde cada instrucciónincluvendoel tiempo de búsquedade la instrucción. 11-14.Haga una lista de las proposicionesde trasferencia entre registros para Ia ejecución de las instruccionesque se listan a continuación.Asuma que el computador no tiene un flip-flop F, pero que el registro de secuenciaG tiene 16 variables de tiem¡n fo hasta úr". El registro G debe borrarse cuando se completela ejecuciónde la instrucción. El ciclo de búsquedapara el computador es ahora: toi
PC <_ MAR
tti
B<_M,PC<_PC+1
tzi
r <- B(oP)
cada una de las siguientesinstruccionescomienzanel ciclo de ejecucióna partir de la variable de tiempo t3. La última proposiciónincluye la microoperaciónG.- 0.
Código Símbolo hexadecimal
SBA ADM BEA
8 m 9 m A m
Descripción
Función
SubstraerdeA A<_A _ M Agregara la memoria M <- A + M (A no cambia) Bifurcar si A es igual S i ( A : M ) e n t o n c e s( P C * m ) (A no cambia)
P R O B L E M A5S17 11-15.Compare las proposicionesde trasferencia entre registros del registro A listadas en Ia Tabla 11-10con el acumuladordiseñadoen la Sección9-10.Diseñe una etapa típica del registro A para el computador usando el procedimiento esbozadoen la Sección9-10.Incluya el circuito para la variableA, de detección de cero. 11-16.Dibuje las compuertaslógicas que generanlas funcionesde control ot hasta a, para el registroA (Tabla 11-10). 11-17.Comenzandopor Ia proposiciónde trasferenciaentre registrosdada en la Tabla 11-10para el flip-flop E derive las funcionesde entrada de Boole para E. Use un flip-flop JK. 11-18.Una manera de simplificar un circuito cuandose usa el método de trasferencia entre registros es usar los caminos comunes mientras se desarrolla la lista de proposiciones.Para ilustrar con un ejemplo particular considereel multiplexor para la entrada del PC en la Figura 11-7.Este multiplexor no seríanecesariosi se puederemplazarla proposición: PC <- MAR por la proposición: Fqat2; PC <- B(AD) en la instrucción BSB de la Tabla 11-7.Explique por qué puedehacerseesto y cómo resulta en la eliminación del multiplexor del diagramade bloque del computador. 11-19.Un contado¡de 4 bits con carga en paralelo se encapsulaen un circuito integrado. ¿Cuántos CI se necesitan para construir los siguientesregistrosde computador:PC, MAR, Iy G? 11-20.Diseñe el registro G del computadorusandoun contadorde 4 bits con carga en paralelodel tipo mostradoen la Figura 7-19. 11-21.Dé una lista de la tabla del programadel PLA 2 de la Figura 11-8. 11-22.Cambie la instrucción AND del computadora una instrucción OR y modifique el microprogramade la Tabla 11-14para que esté acorde.Asignela microoperaciónOR a la salida 15 del decodificadoren Ia Tabla 11-13. 11-23.Cambie la instrucción BSB del computadora la instrucción BSA definida en el Problema 11-12.Modifique el microprogramade la Tabla 11-14para estar acordecon ese cambio.La codificaciónde los bits de ROM en la Tabla 11-13 puedennecesitarun cambio también. 11-24.Diseñeuna unidad de control de microprogramapara un computadorque configure el ciclo de búsqueda y ejecución de las instrucciones de referencia de memoria listadas en Ia Tabla 11-2y el Problema 11-12.Incluya dos salidas para la referencia de registros y las operacionesde entrada-salida,
Diseño del sistema del microcomputador
12-1
"'ffi T**-
TNTRODUCCTON
Un sistema digital se define por los registrosque contiene y las operaciones que hace con la información binaria almacenadaen ellos. Una vez que se ha especificadoun sistema digital, el papel del diseñadores desarrollar los materialesque configuran la secuenciarequeridade operaciones.El número de microoperaciones diferentesde un sistema dado es finito. La complejidad para el diseño es una secuenciade operacionespara lograr Ia tarea necesariade procesamientode datos. Esta abarca la formulación de las funciones de control o el desarrollodel microprograma.Una tercera alternativa es usar un microcomputadorpara configurarel sistema digital. Con un microcomputador,la secuenciade operacionespuede formularsecon un conjunto de instruccionesque constituyen un programa. Un sistema digital puedeser construidopor medio de los circuitos MSI tales como registros,decodificadores,ALU, memoria y multiplexores. Tal sistema hecho a Ia medida tiene la ventaja que se ajusta a las necesidades de una aplicación particular. Sin embargo,un sistema digital construido con circuitos MSI podría requerir un gran número de circuitos integrados. Sin embargo,cualquier modificación que pueda necesitarse,una vez haya sido construido el sistema, se debe lograr por medio de cambios de alambrado entre los componentesAlgunos sistemas digitales son adecuadospara el diseño del LSI con componentestales como la unidad de proceso,el secuenciadordel microprogramay la unidad de memoria. Estos sistemaspuedenser microprogramados para adecuarsea especificaciones requeridas.El método del microprograma opera a nivel de trasferencia entre registros y debe especificar cada microoperaciónen el sistema. La organízacióndel LSI microprogramado usa menos CI que la configuracióncon MSI. El número de CI puede reducirseaún más si el sistema digital es adecuado para ser construido con componentesLSI del microcomputador.Estos componentespueden ser clasificadospor funcionesde la siguiente manera: 1. Un microprocesador, el cual es una unidad central de proceso(CPU) encapsulado en una pastilla LSI. 518
l
sEc.12-1
T N T R O O U C C T O N5 / 9
2. La memoria de acceso aleqtorio (RAM) y la rnemoria de sólo lect:t.c (ROM) o circuitos integrados que pueden combinarse para formar cualquier tamaño de memoria necesaria para una aplicación. ll. Las unidades programables de interconexión cuya función es interconectar entre el CPU o la memoria una amplia variedad de dispositivos de entrada y salida. El usuario puede interconectar esos componentes LSI para formar un sistema de microcomputador que se ajuste a las necesidades del diseño y que reduzca drásticamente el número de CI. Un microprocesador combinado con los módulos de memoria y de interconexión se llama microcomputador. La palabra micro se usa para indicar el pequeño tamaño fisico de los componentes integrantes. La segunda parte de la palabra en microprocesador y microcomputador es lo que realmente los diferencia. Procesador se usa para indicar aquella sección del sistema, la cual ejecuta las funciones básicas para realizar instrucciones y procesar datos de la manera especificada por el programa. Esta parte se llama usualmente el CPU. El término microcomputador se usa para indicar un sistema de computador de pequeño tamaño consistente de tres unidades básicas: CPU, memoria e interconexión de entrada-salida. El microprocesador se encapsula comúnmente en un CI y se llama pastilla de microprocesador. Un microcomputador se refiere, en la mayoría de los casos, a una interconexión con componentes LSI. Por otra parte, algunas pastillas microprocesadoras incluyen dentro de la cápsula no solamente el CPU sino una parte de la memoria. Tal componente LSI se llama algunas veces microcomputador de una cápsula. Un microcomputador puede ser usado como un computador para propósitos generales de bajo costo, para proporcionar capacidades similares a aquellas de cualquier otro sistema de computador. Aunque ésta es una aplicación importante, no es la que se quiere enfatizar. En muchas aplicaciones, el microcomputador se usa como un sistema general para propósitos especiales para proporcionar las operaciones de trasferencia entre registros del sistema. Este tiene la ventaja que pocas cápsulas LSI remplazan una gran cantidad de circuitos MSI que serían necesarias para generar estas operaciones. Otra ventaja es que las operaciones de trasferencia entre registros para el sistema pueden especificarse con un programa. El programa de una aplicación para propósitos especiales es inalterable y por esta razón puede ser almacenado en una memoria de sólo lectura. Una vez que un programa fijo reside en una ROM no hay diferencia de comportamiento entre un sistema digital y el diseño con base en los materiales para un cliente. La característica más importante del microcomputador es que un sistema digital para propósito especial, de aplicación única, puede ser diseñado para escribir un programa para un computador digital para propósitos generales. La ejecución de los programas fijos e inalterables causa que el microcomputador se comporte de una manera preestablecida, justamente como se comportaría un sistema digital correspondiente basado en MSI. Este método de diseño digital no era económicamente factible de configurar, antes del desarrollo de los componentes de microcomputador pequeños 1' de bajo costo.
5 2 O D I S E Ñ OD E L S I S T E M AD E L M I C R O C O M P U T A D O R
cAP.12
EI programa almacenado en la parte de la ROM de un sistema de microcomputador es un programa de computador que no necesita alteraciones. Como la RAM es una memoria volátil, al cortar el suministro de potencia ¡' activarlo de nuevo, se destruye la info¡mación binaria almacenada en ella. La ROM es una memoria no volátil y el programa almacenado en ella está disponible cada vez que se le suministre potencia. Por esta razón, la parte de ROM de un sistema de microcomputador se llama también la memoria de programa. En este punto se debe distinguir entre un microprograma y un microcomputador. Aunque ambos usen la palabra micro, el primero se deriva del concepto de las microoperaciones mientras que el segundo se refiere al tamaño pequeño de los componentes. Ambos usan una ROM para almacenar un programa que especifica las operaciones en el sistema. Un microprograma almacenado en la memoria de control configura la unidad de control en el CPU. Las instrucciones almacenadas en un microcomputador pueden ser consideradas como macrooperaciones para el CPU en vez de microinstrucciones para los registros de proceso. Además, el microprograma con palabras se refiere a la forma como se ha configurado la unidad de control. Un microcomputador es un computador de tamaño pequeño cuyo CPLI puede o no tener una unidad de control de microprograma. El microcomputador de bajo costo y pequeño tamaño ha cambiado la di¡ección del diseño lógico digital. En vez de realizar un grupo de operaciones de trasferencia entre registros por funciones de control o un microprograma, se realizan funciones lógicas especificando un conjunto de instrucciones, las cuales se almacenan en una ROM y se ejecutan en el CPU microprocesador. Este método de diseño puede ser clasificado como un método Lógicoprogramable ya que las operaciones secuenciales son especificadas con un programa almacenado en la memoria. El microprocesador es un componente central en un sistema de microcomputador. La cantidad y tipo de memoria en el sistema, Io mismo que la naturaleza de las unidades de interfase de I/O que se usan son una función de Ia aplicación particular. El programa fijo que reside en la ROM de un sistema de microcomputador particular es también dependiente de una a p l i c a ci ó n e s p e c í f i c a . El diseño de un sistema de microcomputador puede ser dividido en dos partes: diseño de materiales y diseño de programación. El diseño de los materiales consiste en la conexión de los componentes fisicos para producir un sistema digital completo. El diseño de la programación trata del desarrollo de los programas para una aplicación particular. Escribir programas para un microcomputador es esencialmente igual que hacerlo para cualquier otro computador. La única diferencia es que ei programado¡ de microcomputador debe estar familiarizado con la configuración de los materiales y debe tener en cuenta los problemas asociados con la aplicación particular. Escribir programas para un computador establecido para propósitos generales incluye por lo general procedimientos de cómputo que requieren muy pocos conocimientos de la construcción de los materiales del computador en sí, en caso de que los haya. Este capítulo abarca los aspectos dg los materiales de los microcomputadores sin tener en consideración los problemas de programación. Escribir
a O R G A N I Z A C I OD NE L M I C R O C O M P U T A D O R
sEc. 12-2
programas para un microcomputador es similar a escribir un microprograma para la memoria de control, excepto que se debe usar el conjunto de instrucciones para el microprocesador comercial seleccionado. El estudio del diseño de los materiales es un tema que por sí solo podría llenar todo un volumen. En este capítulo se definen primero varios componentes de un sistema de microcomputador y la forma como se comunican entre sí. La organización del microprocesador típico se presenta entonces y sus operaciones internas y externas se explican. Algunas características importantes comunes a todos los microprocesadores son discutidas. Se muestra entonces la organización de Ia sección de memoria y se explican varios tipos de unidades de interconexión usados comúnmente en el diseño de sistemas de microcomputadores.
1 2 - 2 O R G A N I Z A C I ODNE L M I C R O C O M P U T A D O R Un sistema típico de microcomputador consiste de un microprocesador más memoria y una interconexión I/O. Los diferentes componentes que forman el sistema están enlazados por medio de buses que trasfieren instrucciones, datos, direcciones e información de control entre los componentes de CI' La Figura 12-1 muestra el diagrama de bloque de un sistema de microcomputaáor. Típicamente el microcomputador tiene un solo microprocesador. Si
Microprocesador
Líneas Bus de direcciones de control Figura
12-1
Bus liO
Bus de datos
Diagrama de bloque del sistema de microcomputador
522
D I S E Ñ OO E L S I S T E M AD E L M I C R O C O M P U T A D O R
cAP.12
se incluyen varios procesadores, se tiene entonces un sistema multiprocesador. el cual es una posibilidad válida. Un número de cápsulas RAM y ROM son combinadas para formar un tamaño dado de memoria. Las unidades de interconexión se comunican con dispositivos externos a través del bus I,'O. En un tiempo dado el microprocesador selecciona una de las unidades por medio del bus de direcciones. Los datos se trasfieren de la unidad seleccionada al microprocesador vía el bus de datos. La información de control se trasfiere usualmente por medio de líneas individuales, cada una especificando una función de control particular. El propósito del microprocesador es suministrar un cPU que interprete códigos de instrucción recibidos de la memoria y ejecutar operaciones aritméticas, lógicas y de control basadas en datos almacenados en registros internos, palabras de memoria o unidades de interconexión. EI microprocesador contiene un número de registros, una unidad lógica aritmética, una unidad de tiempo y una lógica de control. Externamente, éste entrega un sistema de buses para trasferir instrucciones, datos e información de control hacia los módulos conectados con é1. Las operaciones internas de un microprocesador típico y las funciones de las líneas de control se describen en la Sección 12-3. La memoria de acceso aleatorio es una memoria del tipo de lectura-escritura y consiste de varios CI conectados entre sí. La RAM se usa para almacenar datos, parámetros variables y resultados intermedios que necesitan renovación y que están sujetos a cambio. La ROM consiste de un número de CI y se usa para almacenar programas y tablas constantes que no están sujetas a cambio una vez que se haya terminado la producción del sistema del microcomputador. El método de conectar pastillas de memoria al microprocesador se describe en la Sección 12-6' Las unidades de interconexión presentan los caminos necesarios para trasferir información entre el microprocesador y los dispositivos externos de entrada y salida conectados al bus l/O. El microprocesador recibe información de condiciones y datos de los dispositivos externos por medio de la interconexión. Este responde enviando información de control y datos para los dispositivos externos por medio de la interconexión. Esta comunicación se especifica por medio de instrucciones programadas que dirigen Ios datos por medio del bus en el sistema del microcomputador. Los diferentes módulos de interconexión disponibles en los microcomputadores y su operación se presentan en la Sección 12-7. La comunicación entre las compuertas LSI en el microprocesador se lleva a cabo vía el bus de direcciones y el de datos. El bus de direcciones es unidireccional desde el microprocesador a otras unidades. La información binaria que el microprocesador coloca en el bus de direcciones especifica una palabra de memoria particular en la RAM o ROM. El bus de direcciones uia para seleccionar una de las diferentes unidades interconectadas al "e sistema o a un registro particular de una unidad de interconexión. Una palabra de memoria y un registro de interconexión pueden distinguirse asignando una dirección diferente a cada uno. De manera alterna, una señal de control puede usarse para especificar si la dirección en el bus es para una palabra áe -emotiá o para un registro de interconexión. El número de líneas disponible en el bus de direcciones determina el tamaño máximo de memo-
-l
sÉc. 12-2
I \
I
. f
523 ORGANIZACIONDELMICROCOMPUTAOOR
ria que puede ser acomodadoen el sistema. Para n líneas, el bus de drreccionéepuede especificarhasta 2" palabras de memoria. La capacidadtrp:ca de ún bus de direccionesde un microprocesadores 16, para tener una capacidadmáxima de memoria de 216:65.536 palabras.La cantidad de memória empleadaen un sistema de microcomputador dependede la aplicación particulai y a menudo es menor que la máxima disponible en el bus de direcciones. El bus de datos trasfiere los datos del microprocesa$ora la memoria o interconexióny viceversa,la cual es seleccionadapor el bus <1e_direcciones. El bus de áatos es bidireccional, lo cual significa que la información binaria puede fluir en cualquier dirección. Un bus de datos bidireccional se usa para ahorrar patillas en un circuito integrado. Si la unidad no usara un 6us bidireccional sería necesariocolocarle terminales de entrada y salida, separadosen la cápsula del circuito integrado.El número de líneas ' en el bus de datos del mióroprocesadorvaría entre 4 y 16 siendo 8 líneas el más común. trasu, grupo separadode buses de datos y de dir-eccioneses la vía de este de La ventaja ferencia .o-úr, encontrada en los microprocesadores. la palabra en una p,t"d" esquema es que el microprocesador .seleccionar microproAlgrnos tiempo. mismo al datos palábra de la memoria v trásferir un bus tomún el cual es multiplexado en tiempo, para traspuede ""*udor"r-usan ferir direccioneso datos. Por ejemplo, una baria de 16 líneas comunes palabra de una de seguida bits 16 usarse para trasferir una dirección de eseste de ventaja La memoria. la en escrita datos de 16 bits que va a ser quema es que se necesitan menos patillas y aún- así los datos pueden ser uso de 16 bits áe longitud. La desventaja estriba en el tiempo perdido en el para reexterno secuencialdel bus común y la necesidadde un retenedor microprocesadores tener la dirección de la memoria. Algunos _c-omparten solamentepu.t" d"t bus del sistema eñtre datos y direcciones.un bus de y 16 líneas puede usar 8 líneas bidireccionales para trasferencia de datos bus el 16 líneas iu." tt".f.rencia de direcciones.Esto requiere compartir de datos iu q"" la dirección se divide entre las 8 líneas del bus de datos y las 8 líneasrestantesdisponibles. como la que se muestra en En vez de usar la cápsulamicroprocesadora estebloquecon una cápremplaza se aplicaciones algunas en 12-1, la Figura sula microcoáputadora. Típicamente una cápsula microcomputadoracontiene un CPU con 64 palabias de RAM y 1.024palabrasde ROM, todo encapsuladoen el circuiio integrado.Tiene ademásalgunascaracterísticasde interconexión. Si el sistema digital que se va a diseñar no requiere más memoria o característicasde interconexión adicionales,entoncesel sistema microcomputadorpuede construirse con una sola cápsula,componente microcomputadora.De esta manera, esta cápsula puede usarse como un .olnpo.r"ni" de bajo costo y escasotamaño para una aplicación independiente. La mayoríá de las cápsulasmicrocomputadoraspueden ser.expandidas con RO-M externa, RÁM y característicasde interconexión para subDroducir una aplicación de control más poderosa.En las discusiones pero C-PU, ;lg,riente., la memoria y la interconexión estarán separadosdel inpuede ser interconexión debe tenerseen cuenta que algo de memoria e CPU' que el contiene CI de cluido dentro de la cápsula
5 2 4 D r s E ñ oD E Ls t s r E M AD E LM t c R o c o M p u r A D o R
cAP.12
Para facilitar el desarrollo de los sistemas digitales para propósitos espccialespor medio de un microcomputador, muchás fuenies ofiecón una unidad microprocesadoracompleta en un solo tablero impreso. El micropmcesador,un grupo de CI ROM, RAM y de interconexiónconjuntamente ccn otras cápsulasMSI y SSI, necesariaspara la construcciónde la unidad de mic¡ocomputador,se montan en un solo tablero impreso.Los terminales de los CI se conectanpor medio de alambresimpresospara formar una unidad microcomputadoracompleta. Al usuario se le da accesoa la interconexión de los dispositivos l/O por medio de los contactos del conector del tablero. El conector tiene otros contactos para acomodar todos los busesde información y permitir expansiónexterna de memoria y de interconexiónal tablero. La expansiónde memoria e interconexiónse encuentran disponibles en tableros impresosya fabricados. Separadordel bus
\
El sistema de buses de un microprocesadorse configura comúnmente por medio de separadoresdel bus (bus buffer) construidos con compuertas de tres estados.Una compuertade tres estadoses un circuito digital que tiene tres condicionesa la salida. Dos de las entradas son señalesequivalentes al binario 1 ó 0, como en las compuertasconvencionales.El tercer estado se llama el estadode alta impedancia.Este último se comporta como si la salida estuviera inhabilitada o "flotara", lo cual significa que no puede afectar ni ser afectadopor alguna señal externa en el terminal. El circuito electrónicode una compuertade tres estadosse explica en la Sección13-5 conjuntamentecon la Figura 13-16. El símbolo gráfico de una compuerta separadora de tres estados se muestra en la Figura I2-2. Esta tiene una entrada normal y una entrada de control que determina el estadode la salida. Cuando la entrada de,control es igual al binario 1, la compuerta se comporta como un separadorconvencional con la salida igual a la entrada normal. Cuando el terminal de control es 0 se inhabilita la salida y la compuertapasa al estadode alta impedancia, sin tener en cuenta el valor de la entrada normal. El estadode alta impedancia le imprime a la compuerta de tres estados una característica no disponible en otras compuertas.Debido a esta característicase puede conectar un gran número de compuertas de tres estados a alambres para formar un bus común de líneas sin causar efectosde carga. Sin embargo,en un tiempo dado no puede estar más de una compuerta en estado activo. Las compuertas conectadas deben ser controladas de manera que sola-
Entrada no¡mal A
Y:AsiC:1 Y sehabilitacuandoC : 0
Entrada de cont¡ol C Figura
l2-2
Símbolo gráfico para una compuerta separadorade t¡es estados
ORGANIZACIONDEL MICROCOMPUTADOA 525
sEc. 12-2
!'
mienmente una compuerta de tres estados tenga acces-oal bus de líneas impedancia. alta de estado el en estén compuertas que otrás las tras de bus para ú., bus bidireccional puede construirse con separadores bidirecciobus línea del controlar la direcciól á"f nir:" de información' Una líneas de dos tiene control de i; ng"iá fZ-g. El bus nal se muestra de para trasferencia la y "" so entrada de p"ru t"-ti"r?át""cia *ñó*-;, estatres de separadores dos los controlan selección salida. Esas líneas áe se el separadorinferior se habilita y el supe-rior dos. Cuandos¡:1;;;:0 para vía una forma Esto inhabilita al pasar a un estado dL alta impedancia. sude Lntrada-prwerriettes del bus para pasar por el separador ild;;", superior : separador y el 0' s, 1 s, Cuando perior y pasar trrago Esto forma "t-.i.tema. í"-fr"¡iflt" y el inferior pasa a un estado de alta impedanciapasan por que y purá lo. datos dé salida provenientes del sistema ,"" puede inhabus de línea La "i" superlo*.Ñu"1" bus de líneas. la compuerta sepa"f ambos a coloca lo cual ambos, bilitarse haciendot,-t .t, igual a cero trasferencia cualquier prevenir para radores en estado d"""it" impedancia o entrada a tiavés del bus de líneas' Esta condide información de el bus común para ""lidu ción debe existir cuando una fuente externa esté usando selecciónpueden de líneas dos comunicarsecon algún otro componente.Las al bus del esconectados externos ser usadas p"r^ irrrár-a, u lo" *ódnlo. tiempo' de dado momento un en ;;d" ;; ef cuaf está el bus bidireccional bus de microun de carga de la capacidad En la mayoría de los casos de reducido número un p.r"d" soportar á""ir, p-"..áao, e."li*itáái "" unidades de Cuando eI bus se conecta a un gran número i"rg".-".t"rnas. del microprocesadordebe ser reforzadacon d" -d"l Ia capaciáaá ""rg" "*iEirru., bus los cuales se pueden encontrar en la forma separadores de entrada y "*t"..ro. de cI. Además, cualquier componente qu" iiette terminales microcompu."fiJ" ."pu."ao., debó estar conectadoal sistema de bus del poder.aislar el compopara externos bus de separadores de ;;il;p.i-edio de micronente cuando no se L*iá .o*,r.ticando con el bus. Así, un sistema entre el externos bus de .rece*ita-rnu' u -u""¿o separadores ;;;p";"¡"r LSI componentes y ciertos entre t St microprocesadory ;;;";p.nentes y el sistemade bus común. Controlde salida
Línea del bus bidireccional
Control de entrada Bus habilitado (alta imPedancia)
Control s i de bus .r0
Figura
l2-3
Separador de bus bidi¡eccional
1 2 - 3 O R G A N I Z A C I ODNE L M I C R O P R O C E S A D O R Para garantizar un amp.lio.rango de aceptabilidad,un microprocesador debe tener una organizaciéninterna adecuadapu." .rn" gu-u amplia de aplicaciones.Las organizacionesde los microprócesadores-comerciáles difieren entre sí, pero ellas tienen la propiedad común de una unidad procesadora central. como tal, ellas son capacesde interpretar códigosd.elnstrucción recibidosde la memoria y de realizar tareas de procesam"iento de datos es_ pecificadospor un programa. Ellas respondená los comandosde control externos y generan señales de control para ser usadas por módulos ext ernos. Conjunto típico de señales de control La operación adecuadade un microprocesadorrequiere que se presenten ciertas señaiesde cont¡ol y tiempo para lograr funcioneséspecíficasy que otras señalesde E:ontrolsean medidaspara determina¡ el estadodel micro_ procesador.un conjunto típico de líneasde control disponiblesen la mayoría-de los microprocesadores se muestra en la Figuruiz-q. para compleiar el diagrama se muestra también el bus de datos,ll bus de direccionesy el terminal de entrada de la fuente de poder a la unidad. Las necesidadeide potencia de un microprocesadorparticular se especificanpor el nivel de v'ltaje y consumo de poder que debe suministrar.L puru op"i", el cI. El terminal de entrada del reloj es usado pot microcomputador para generarpulsos de reloj de multifase y produciisecuencias "i de tiempo y lo.rtrol para las funciones Aigunos microprocesadoresrequieren un -internas. generadorexterno de pulsos de reloj para producir los pulsos. En este caso Bus de datos
Fuente de poder Ent¡ada del reioj
Salida del reloj
Poner a ce¡o Petición de interrupción
Microprocesador
Petición de bus
Reconocimientode interrupción Bus garantizado Lectura Escritu¡a
Bus de dirección Figura
526
12-4
Señalesde control en un microprocesador
sEc. 12-3
O R G A N I Z A C I O N D E L M I C R O P R O C E S A D5O2F7
ei reloj de salida lo produce el generador de reloj en vez del microprocesad"r en sí. Algunas unidades generan el pulso de reloj dentro de sí, pero requieren un .ii.tul externo o circuito para controlar la frecuencia del reloj' Lc'' pulsos de reloj son usados por los módulos externos para sincronizar sus óperaciones con las operaciones del microprocesador. El terminal de puesta a cero o reset se usa para reposlcronar o rnlcrar el microprocesador áespués de haber activado la potencia o en cualquier momentó en que el usuario quiera comenzar el proceso desde el principio. El efecto de la señal de puesta a cero es iniciar el microprocesador, forzando una dirección dada al contador del programa. El programa comienza la ejecución con la primera instrucción en esa dirección. La manera más simple de iniciar una puesta a cero es borrar el contador del programa y comenzar el programa deide la dirección cero. Alg¡nos microprocesadores responden a la señal de puesta a cero trasfiriendo el contenido de un lugar de memoria específico al óontador del programa. El diseñador debe almacenar Ia dirección de comienzo del programa en el lugar de memoria adoptado' La requisición de interrrupción (interrupt) al microprocesador, vierl típicamente de un módulo de interconexión para informar al microprocesadár que esté listo para trasferir la información. Cuando el rnicroprocesador recib-euna requisición de interrupción, suspende la ejecución del programa corriente y se bifurca a un programa que sirve de módulo de interconexión. Al completar la rutina de servicio, el computador regresa al programa previo. La facilidad de interrupción se incluye para producir un cambio en la secuencia del programa como resultado de las condiciones externas. El concepto de interrupción y el método de responder a una requisición de interrupción se discute en la Sección 12-5. El terminal de entrada de bus-request (requisición del bus) es una requisición al microprocesador para suspender su operación y llevar todos los É.,.", u su estado de mayor impedancia. Una vez reconocida la requisición, el microprocesador responde habilitando la línea de salida de control de garantía de bus (bus-granted). Así, cuando un dispositivo externo desea Irasferir la información directamente a la memoria, éste solicita que el microprocesador abandone el control del bus común' Una vez que el bus sea intrabititado por el microprocesador el dispositivo que originó la requisición toma control sobre el bui de direcciones y datos para conducir las trasferencias de memoria sin Ia intervención del procesador. Esta característica se llama acceso directo de mernoria y se discute en la Sección 12-8. Lectura y escritura son líneas de control que informan el componente seleccionado por el bus de direcciones de la dirección de la trasferencia esperada en el bus de datos. La línea de lectura informa a la unidad seleccionada que el bus de datos está en el modo de entrada y que el procesador aceptaiá datos del bus de datos. La línea de escritura indica que el procesad-or está en el modo de salida y que los datos válidos están disponibles en el bus de datos. Cuando los buses están inhabilitados, las dos líneas de control estarán en el estado de alta impedancia; así, la unidad externa que controla los buses puede especificar las operaciones de lectura y escritura. Existen otras posibilidades para el control de los buses. El bus de direcciones puede sei controlado con una línea adicional para indicar si la dirección é* pa.u una palabra de memoria o para una unidad de intercone-
528
D I S E Ñ OD E L S I S T E M AD E L M I C R O C O M P U T A D O R
CAP.12
xión. otra posibilidad es combinar las líneas de control de rectura y escri_ tura en una línea que se denomina R/w. cuando f i;ái;u lectura y cuando es 0 indica escritura. "*1ulí.r"u una segunda línea de"*control es necesaria para indicar cuándo una dirección váriáa está en el bus de di¡ecciones de mane¡a que los componentes.externos respondan a ra línea R,/w solamente cuando se solicita trrru dirección váliáa, "o., Las señales de control enumeradas. en la Fisu; 12-4 constituyen un conjunto mínimo de funciones de control pa.a ;;;;rñrocerador. La ma_ yoría de los microprocesadores tienen características de control adicionales para funciones especiales. uniaades diferentes pueden usar nombres numéricos diferentes para funciones de control idénticos y no necesaria_ mente los nombres usados aquí.
E j e m p l od e C p U Para apreciarlas ta¡easrealizadas.por un microprocesador, puedeser instructivo investigarla organización internade una tlpi ca.La Figura 12-5muestra el diagrama de bloque de una unidad""iaáJ procesadoracentral
encerrada dentro de u.na.cápsulamicroprocesadora:' E;;;;;u-ente cuenta con un bus de datos bidireccionar,un bus ¿e ¿irecciones-]-rrr, ,r.i-uro de rí_ neas,decontrol. Aquí se muestran soramente las líneasdá control asociadas con la t¡asferenciaen el bus. El bus d*.aato,,";;;;g""-il medio del sím_ bolo DBUS y consistede ocho tí"ear.ia información conlenida en las ocho líneas se.llama byte u octeto, el cual constituye un nombre para denotar una palabra de 8 bits. El bus de direccionesdesi-gnado poi-J-*i*bolo ABUS, consistede 16 líneas para especificar2t6 i.ó2;i dire"cio.,e. frl .:64K'(i: sibles. Así, el micropr-ocesadores d" ,rrru unidad de "upu, memoria de G4K bytes. "orou.ri.u.."-*í Internamente, el microprocesadortiene seis registros procesadoresdemarcados B hasta G, un régistro acumulador fi, la letra A y un registro temporal registros son de g!q"!c"qáá bit"s á" ro'"gitra y pueden .7Estos acumular un byte. El ALU opu.u-"o.rlos datos y T y el resultado de_la operación se trasfiere a A o a "r-u""""aos en ¿ través de un bus interno a cualquiera de los seis re,gistrosprocesador".. nil";;.;; le con¿ición re_ tiene el bit de condiciónde una operacióntal como rinal del ALU, el valor del bit de signo y la indicación de resurtado "l""rr"rt* nr código de operación de una instrucción se trasfiere al registro "..ál ¿"-ir,.trrr".ión (.IR), donde se decodifica para determinar la secuencia de microoperacionesnecesaria para ejecutar la instrucción. El_tempori zador y contror supervisa todas las operacionesinternas en el CPU y las líneas de cont¡ol externas en el microprocesador.
al microprocesado¡ 8080,/85 exceptoque los registrosF y G se llaman "r;.}iffi%'j:t *El
registro de condición fue discutido en la Sección 9_2.
I ,
Bus de datos bidireccional (DBUS)
t
+ 8il
I
Separadores de datos
Bus internode 8 bits
Multiplexor i(eg
temporal (7')
Registro de instrucción (/R )
Reg rstro de cor L d i c i ó n
B
C
D
E
c Decodificador de instrucción
A U
Contado¡ de programa (PC )
ú e
Indicador de pila (SP) Registro de di¡ección (4fi )
Registro acumulado¡ (A)
Temporizador
L---->
+H+
J
control
9
16
8
Separadores de direcciones
Otras Iíneas de cont¡ol
Figura
12-5
WR
RD
(escri- (lectura) tura)
(ABUS) Busdedirección
Diagrama de bloque del microprocesador
Los separadoresde direccionesreciben la información de tres fuentes: (SP)-y el contador del programa (PC), el indicador de pila o stack pointer de de memoria dirección la el registrode direci"iones(AR). El PC mantiene de c-ada después y incrementa se programa la iñstrucción corriente del búsquedade instrucción. El ÁR .u usa para almacenamientotemporal de las áireccionesque se leen de la memoria. Las funcionesde estosdos registros serán clarificadas cuando se describan las secuenciasde operaciones del cPU. SP se usa conjuntamentecon una pila de memofia,ysu función se en la Sección ri-5. El bus de direccionespuederecibir información Se puedenformar "-pfi* de direccionamientode un par de legistros procesadores. tres pares para conformar una dirección de 16 bits. Estos se demarcancon los simbolós de registros combinadosBC, DE y FG. Cada registro procesador contiene 8 bits y cuando se combina con el adyacente,conforma un par de registrosde 16 bits. Es convenientealgunas vecesdividir los tres 529
5 3 O D I S E Ñ OD E L S I S T E M AD E L M I C R O C O M P U T A D O R
cAP. 12
registrosde 16 bits PC, SP y Aft en dos partes. El símbolo11 designalos 8 bits de mayor orden y el símbolo,L los g bit. d" menor orden. Así PC (,L) se refierea los bits 1a 8 del PC y pC (ll) se refierea los bits 9 a 16. C i c l od e m e m o r i a La unidad de memoriaconsistede RAM y RoM. Esta se conectaal microprocesadorpor medio de los buses de direccionesy datos y el control de lectura y escritura. Esta se muestra esquemáticamenteen la Figura 12-6. un ciclo de memoria se define como el tiempo que se requierepara tener accesoa la memoria con el objeto de leer o escribir un byte. de direcciónABIIS\ Bus de datos (DBUS ) Microprocesador
Lectura (.RD )
Memo¡ia (RAM o ROM)
Escritura ( WB ) (para la RAM solamente Figura
12-6
Comunicación ent¡e el microprocesador y la memorla
En el ciclo de lectura, el microprocesador colocauna direcciónen ABUS y habilita la línea de control RD. La memoria respondeleyendoel byte y colocándoloen el DBUS. El microprocesadoraceptáel byte y lo trasfiereá un registro externo. Para expresar el ciclo de lectura simbólicamentese asume que la dirección viene del AR y el byte de datos se trasfiere al registroA: ABUS <- AR, RD <- I
dirección en el bus para lectura
DBUS <--MIABUS]
l a m e m o r i a l e ee l b y t e
A <- DBUS, RD <- 0
el byte se trasfiere a A
Primero, el microprocesadorcoloca la dirección de memoria en el ABUS e informa a la memoria que hay una dirección válida disponiblepara lectura. La memoria respond_e RD leyendoel byte en la dirección daáa por ABus 7l y colocándolaen DBUS. El microprocesadortrasfiere entoncesei byte del DBUS a A. Al mismo tiempo la señal de control .RD se inhabilita indicando el final de la trasferenciade memoria. - Las tres operacioneslistadas anteriormentepueden combinarseen una sola proposición:
A < - M IARI Esta es la operación de lectura que trasfiere el byte de memoria direccionad<rpcrr el AR al registro A.
\ sEc. 12-3
O H G A N I Z A C I ODNE L M I C R O P R O C E S A D O R
3Jt
En el ciclo de escrítura, el microprocesadorcoloca una dirección en ABUS y un byte de datos en DBUS. Al mismo tiempo se trabilita Ia línea WR. L; memória respondea WR escribiendoel byte del DBtlS en un lugar de memoria especificádopor la dirección en ABUS. Este procesopuedeser explicadosimbólicamente: ABUS <_AR, DBUS <- A, WR <- I M I A B U S ] + - -D B U S , W R < - 0 al bYte Este proceso establece que el contenido- del registro A se trasfiera esta posible escribir es de mámoria en la dirección dada por AR' De nuevo operación con una proposición compuesta:
MIAR) <-A Las trasferencias de memoria al microprocesador deben estar acordes señales dd con ciertas relaciones de tiempo que deben existir entre las son espetiempo de relaciones Estas buses. Ios de y la información control las unidades en que incluyen tiempo de onda de por formas cificadas -se con las especificaciones del producto. El intervalo de tiempo .á-po"""i"s interna del de un ciclo de memoria es una función de la frecuencia de reloj que el micrr¡vez Una memoria. la de acceso y de el tiempo -i"-pto""rador un inde dentro respuesta una espera éste dirección, la envía prt."-rfi"r interdel ie.valo dado de tiempo. una memoria capaz de responder dentro por el ciclo directamente uuto ¿. tiempo del procesador puede ser controlada de memoria del microProcesador. podúa toSi el micropro".üdo. se comunica con una memoria lenta, de tiempo intervalo que el Rerm-imemoria la de el acceso tiempo mar más .i¡tu- putu pod., ,rru. memorias lentas el microprocesador debe ser capaz de demorar la trasferencia hasta que se complete el acceso de la memoria. Una iot*u es expandir el período del reloj del microprocesador es reduciendo la frecuenciá del reloj p".u q.t" se ajuste al tiempo de acceso de la memoria. Álg.rno. microprocesádor"r uien"tt con un terminal de control especial, llamído ,"ady, (listo) para permitir que la memoria coloque su propio tiempo (listo) de ciclo dé memoria-. Si él microprocesador no recibe la señal ready estado de esen un entrará Ia dirección, enviai de después áe la memoria, (listo) esté en el esready de que línea Ia en el tiempo duranté tiart¡, iiri pasa i"do O. Cuando se complete-el accéso de la memoria, la línea de ready trasferencia para una lista está que la memoria ai estado 1 para indicar específica. Secuenciamiento del microprocesador La secuencia y control en el microprocesador determina la secuencia de trasferencias a través de los buses internos y externos, el ALU y los registros procesadores. Durante el ciclo de búsqueda, el corttrol lee un código de operáción de la memoria y Io deposita en un registro de instrucción. La instrucción se clei:odifica y se traslada a actividades de procesamiento espe-
532
D I S E Ñ OD E L S I S T E M AD E L M I C R O C O M P U T A D O R
cAP.12
cíficas. Las referencias posteriores a la memoria dependen del código de operación decodificado.Asúmase que todos los códigos de operación consisten de ocho bits y se almacenanen un byte de metoria. Las operadores son también de un byte de longitud porque el bus de datos es de bcho bits de longitud. una dirección se especificacbn dos bytes o 16 bits. considérese ahora tres instruccionesde suma con rongitudesdiferentesde formato. r. sumar B o A. Esta es una instrucción para sumar el contenido del registro B al contenido presentedel acumulador. Toda la información necesariapara especificarla instrucción está contenida dentro de un código de operaciónde un byte. 2. sumar eI operandoinmediato o A. Esta es una instrucción que suma un operandoal contenido presentedel acumulador. El byte aet operandose colocaen ia memoriasiguiendoel byte del códigod" op"ración. Esta instrucción ocupa dos bytes de memoria. 3. sumar eL operandoespecificadopor una dirección o A. Esta es una instrucción que suma un byte almacenadoen alguna parte de la memoria al co¡rtenidopresente del acumulador. La dirección del operandose coloca en la memoria siguiendo el byte del código de operación.Esta instrucción ocupa tres bytes de memoria,yu qrrl"1", direccionesen sí mismas ocupan dos bytes. _ El formato y la funcit'rnde las tres instruccionesse sumarizan en la Tabla 12-1.cada instrucc;ióntiene al menosun byte para el códigode operación. La unidad de control se diseñapara reconoce.el número dé bytes^en una instrucción particular del código de operacióndecodificadodel primer byte. La representaciónde memoria de las tres instruccionesse ilustra en la Figura l2-7. La primera instrucción se asumeubicada en el lugar g1 con un código de operaciónde 8 bits asignadosarbitrariamente. Las otras dos instruccionesocupan dos o tres bytes respectivamente.La dirección de la primera instrucción es 260 y se determina del número binario de 16 bits en los lugares85 y 86: (0000000100000100)2: (260)¡s EI operandopara esta instrucción se muestra localizadoen la memoria en el lugar 260. En una aplicación típica, las tres instruccionesresidirán norTabla
l2-l
I¡strucción SumarB y A Sumar el operando en turno y A Sumar el operando especificado por una dirección y A
Tres instrucciones típicas de un microprocesador
Byte I Código de operación Código de operación Código de operaciórr
Byte 2
Byte 3
Función
A<_A* B Operando
A?A +byte2
Mitad de Mitad de A<- A +M [dirección mayor menor orden de orden de a dirección a dirección
't
Contenido binario de la memoria
Dirección decimal --1 8I
lnstrucción de 1 byte Instrucción de 2 bytes {
faz
10000000 Op-code para agregar B a A l0 Op-code para agregar el operando en turno I 10001 Operando
183 laq Instrucciónde 3 bVtesI
I
Op-code para sumar el byte de memoria y A
85
I
Mitad de mayor orden de la dirección
1 8 6 00000I 00 8',l
yA
Mitad de menor orden de Ia dirección
0 1 0 1 0 1 0 1S i g u i e n t e o p - c o d e
o 2 6 0ol o o o r r rOperando Figural2-?Representacióndelamemoriadetresinstruccrones
malmente en la ROM, mientras que el operandoen el lugar 260 estaráen la RAM. Este operandodebe residir en Ia RAM porque debe asumirseque su a cambio durante el cálculo. De otra forma si el valor del valor está sujeto "cambia, no habrá necesidadde asociarlocon una dirección. operandono Refiriéndosea la Figura 12-5para los nombresde los registrosy buses, para se puede hacer una lista de la secuenciade operacionesnecesarias programa contiene del que contador el asume se procesarcada instrucción. inicialmente81. Sumar B o A: IR <--MlPCf, PC <- PC + 1
leer el código de oPeración
T<_B
trasferir B a T
A<_A*T
sumar T a A
La primera línea representael ciclo de búsquedapara-leere1códigode ope*"i¿" al registro de sustracción. La operacióndecodificadaespecificaun regist.o proósador; de manera que el cbntenido de B se trasfiere a T y la ofrración de suma se realiza en el ALU. Nóteseque el PC se ha incrementado y contieneahora el número 82. ia instrucción de un byte se ejecuta con un ciclo de memoria porque todos los operandosresiden en los registros del procesador.-Si un operando resideen lá memoria,es necesarioacclsar la memoriapara leer el operando. 533
534
D I S E Ñ OD E L S I S T E M AD E L M I C R O C O M P U T A D O R
cAP. 12
Sumar el operandoinmediato a A: IR <- M[PC], PC <- PC + 1
leer el código de operacrón
T <- M[PC]. PC <- PC + |
leer el operando
A<-A * T
sumar el operando a A
La primera línea representa el ciclo de búsqueda una vez más. El PC se in. crementa para que contenga la dirección 83. En esta dirección se lee el ope rando de la memoria y se coloca en ? para ejecutar la suma en el ALtl. si la instrucción contiene la dirección del operando, el microprocesador debe pasar por cuatro ciclos de memoria para ejecutar Ia instrucción. Sumar a A el operando especificado por una dirección:
IR <- M[PC], PC <--PC + |
Ieer el código de operación
AR\H) <- MIPC\, PC <- PC + | leer el primer byte de la dirección AR(L) <- MlPCl, PC <- PC + |
leer el segundo byte de la dirección
T <- MIAR]
leer el operando
A<_A*T
sumar el operando a A
La parte de la dirección de la instrucción se almacena temporalmente en el registro de dirección (AR). La dirección de 16 bits formada en el AB se usa entonces para leer el operando. No se requiere un gran número de ciclos de memoria en los microprocesadores porque consumen gran cantidad de tiempo de proceso. Este es uno de los factores limitantes de la velocidad de los microprocesadores de 8 bits con direcciones de 16 bits. El número de accesos a la memoria puede ser reducido si se usa el bus de datos de 16 bits. Los microprocesadores de 16 bits requieren menos referencias a la memoria comparados con los microprocesadores de 8 bits. Aunque se ha escogido describir la operación de un microprocesador de 8 bits, la operación con un bus de datos de 16 bits podría ser similar, tomando en consideración las diferencias en longitudes de las palabras usadas por los registros del procesador y las palabras de memoria.
12-4
INSTRUCCIONES Y MODOS DE DIRECCIONAMIENTO
La estructura lógica de los microprocesadores se describeen los manuales de referenciasuministradospor el fabricante.un manual para un microprocesadorparticular describe la organizacióninterna en el CPU, la función de todos los terminales de entrada y salida y los registrosprocesadores disponibles desdeel punto de vista del usuario. El manual describetodas las instruccionesdisponiblesen el computadory explica sus funciones.Demues-
I sEc. 12-4
I N S T R U C C I O N EYS M O D O S D E D I R E C C I O N A M I E \ - :
tra también cómo los bits de condición son afectadospor cada instrucc. :. El código interno para cada instrucción se lista en binario, octal ¡'he¡ac¿cimal. En la mayoría de los casosse adopta un código equivalenteoctai hexadecimal porque estos códigos necesitan menos dígitos que la representación binariá. Cuando se escribeun programapara un computadorse asigna a cada instrucción un nombre simbólico para identificarlo. Los nombres simbólicos y códigos asignadosa las instruccionesusadas en un microprocesadorson diferentes de los nombres y códigos usados en un microprocésadordiferente aun para instruccionessimilares. Por esta razón, el usuario debe estudiar y recordar el conjunto de instrucciones y sus nombressimbólicos cada vez que se usa un microprocesadordiferente. Aunque el grupo de instrucciones de diferentes microprocesadoresdifieren de uno a o[.o, hay ciertas instruccionesque realizan operacionesbásicas y que son incluidas en todos los microprocesadores.
Conjunto básico de ¡nstruccionesde un microprocesador Las instrucciones del microprocesadorpueden clasificarse en tres tipos diferentes. 1. Instruccionesde trasferenciaque mueven datos entre registros,palabras de memoria y registrosde interconexiónsin cambiar el contenido de la información binaria. 2. Instrucciones de operación que realizan operacionescon los datos almacenadosen los registroso palabrasde memoria. 3. Instruccionesde control usadospara probar el estado de las codificacionesen los registrosy causarun cambio en la secuenciadel programa dependiendode los resultados. El conjunto de instruccionesde un microprocesadorparticular especifica las operacionesde trasferencia entre registros y decisionesde control que están presentesen el sistema del microcomputador.Un programa específico para un microcomputadores equivalente a especificarla secuencia de operacionespara un sistema digital particular que sea config¡rado por el microcomputador. son Las instrucciones de tipo trasferencia en los microprocesadores (move) mouimienüo de instrucción por nombres. Una diferentes indicadas causa una trasferenciade datos desdela fuente hasta su destino. La fuente o el destino puede ser un registroprocesadoro un lugar de memoria' Las instruccionesde carga (load) y almacenar (store) son similares en la instrucción de movimiento excepto que se refieren normalmente a trasferencias a la memoria y al acumuladory viceversa.La instrucción de intercambio (exchange)cambia la información entre dos registroso entre un registro y una palabra de memoria. Las instruccionesde insertar (push) y sacar (pop) trasfieren datos entre los registros procesadoresy la pila de memoria.-Las instruccionesde entrada y salida trasfieren datos entre los registros procesadoresy los registros de interconexión.
5 3 6 D t s E ñ oD E Ls t s r E M Ao E L M t c R o c o M p u r A D o R
cAP.12
Las instrucciones de ripo operativo ejecutan operacionesaritméticas y. dc desplazamientoentre los registrosprócesadores o palabras de memoria- Ellas ponen a coro, a uno o complementanlos bits de condición o bits indicadores.Las instruccionesde opeiacióntípicasson sumar,restar,AND, oR, complementary poner a uno .l bit de arrastre. La mayoría de las instruccionesde tipo operativocambian también los bits de condiciónen el registrode condición del procesador. Las instrucciones -de tipo control rienen caracte¡ísticaspara tomar decisionesy cambiar el camino tomado por el programa cuandó se ejec"ia en el computador.Las instruccionesse almacen"n.r, lugaresde memoria consecutivosy se ejecutanuna detrás de otra en secuenciá.el programador agregauna instrucción de control cada vez que el control debe-seitrasferido a una instrucción que esté fuera de Ia secuencianormal. Las instrucciones de control pueden ser condicionaleso incondicionales.Una instrucción de control condicional causa una bifurcación de la secuenciade programa normal solamente cuando se detecta una condición de estado ..p.óín.*. Una inst¡ucción de control incondicional causauna bifurcación incóndicional. La bifurcación de la secuenciadel programanormal se logra cambiando el contador del programa de manera que ?rte .ontenga la dirección de la instrucción que esté próxima a ejecutarse. . Hay tres tipos de instruccionesde contror ¡' cada tipo puedeser condicionalo incondicional: 1. Instruccionesde salto o bifurcación. 2. Instruccionesde llamado y regresoa Ia subrutina. 3. Instruccionesde omisión. T,aspalabrassaltar o bifurcar se usan igualmentepara implicar lo mismo y algunas vecesse usan para denotar modos diferentesde áireccionamiento. Estas instruccionesestán asociadascon una dirección que especificadónde se debe hacer el salto o la bifurcación. Las instruccionesde subrutina de llamado y de regresose explicarán en la siguientesecciónconjuntamente con la pila de memoria.una instrucción de sálto ,r omisión (skip) es la que evita la siguiente instrucción en secuencia.Al colocar una inslrucción de bifurcación incondicional enseguidade una instrucción de omisión o salto, es posible hacer una bifurcación a uno de dos lugaresposibles,dependiendo del-valor especificadode la condición del bit dé status.
l n s t r u c c i o n e sp a r a e l m i c r o p r o c e s a d o r El número de instrucciones diferentes en un microprocesadorparticular puede variar entre 50 y 250. Estas instrucciones deLen ser estudiadasv memorizadaspor el usuario quien escribelos programaspara el microcomputador. Una lista parcial de instruccionesfoimuladas para el microprocesador de la Figura 12-5se presentaen la Tabla 12-2.Eslas instruccionesse
Tabla l2-2
Códigc hexadecimal
78 3E 7E
Lista parcial de instruccionespara el microprocesador
Símbolo de la instrucción
Descripción
¡ uncron
0l
MOV MVI MOV MOV LDA STA LXI
A,B A,D8 A, FG FG, A ADI6 AD16 FG, DI6
Mover B haciaA Mover el operandoinmediatoa A Mover haciaA con registroindirecto MoverA con registroindirecto CargarA directamente AlmacenarA directamente Cargar el par de registros inmediatamente
A<_B A<_DE A <- MIFGI MIFGI<- A A <- MlADlíl M \ A D 1 6 l < -A FG + D16
80 C6 86 90 AO BO 04 05 03 OB 2F 07 OF 37
ADD ADI ADD SUB ANA ORA INR DCR INX DCX CMA RLC RRC STC
B D8 FG B B B B B BC BC
Sumar B a A Sumarel operandoinmediatoa A Sumar a A con registroindirecto SustraerI deA AND B yA ORBvA IncrementarB Decrementa¡B Incrementarel par de registrosBC Decrementarel par de registrosBC ComplementarA RotarA a la izquierdacon arrastre RotarA a la derechacon arrastre Ponera i el bit de arrastre
A<-A 1B A<_A+D8 A<-A+MlFGl A+-A - B AeA \B A<-A\/ B B<-B+l B<-B-l BC<_BC+I BC<_BC_I
c3 DA
JMP ADIó JC ADI6
C2
JNZ
CD
CALL ADI6
c9 76
RET HLT
11
3A ?')
ADI6
A<-r A<-clcA A<-crcA c<- I
Saltar incondicionalmente Saltar si existearrastre
P C < _A D I 6 S i ( C : 1 )e n t o n c e s (PC <- ADr6) Saltar si existevalor diferentea cero S i ( Z : 0 ) e n t o n c e s (PC + ADt6) Llamar subrutina PiIa <- PC, P C < _A D I 6 pC <- pila Regresode la subrutina Detenerel procesador
'A : registroacumulador;B: registroB; FG :par de registrosF y G; fif :par de registrosB y C; D8: operandode datos de 8 bits (1 byte); D16- operandode datos dc 16 b i t s ( 2 b y t e s ) ; 4 D 1 6 : d i r e c c i ó nd e 1 6 b i t s ( 2 b y t e s ) .
5 3 8 D I S E Ñ OD E L S I S T E M AO E L M I C R O C O M P U T A D O R
CAP, 12
dividen en tres seccionespara dar ejemplos de instruccionesdel tipo de trasferencia,operacióny control. El código hexadecimal listado en la tabla es un número de 2 dígitos equivalenteal código de operaciónde 8 bits asignadoa la instrucción. (La representaciónde 4 bits equivalentepara los 16 dígitos hexadecimalesestá dada en la Tabla 1-1.) El nombre simbólico de cada instrucción es una designaciónde 2 a 4 letras seguidasde uno o dos símbolosde un registro,un operandoo una dirección de memoria. La columna de descripciónexplica la instrucción en palabrasy la columna de función define la instrucción precisamentecon una proposiciónde trasferenciaentre registros.Nótese que las instrucciones de computador especifican macrooperacionespara él mismo y pueden ser simbolizados con proposicionesapropiadas por el método de trasferencia entre registros. Sin embargo, por razonesprácticas, las instrucciones de computador se escriben con símbolos específicoscomo en la segunda columna de la tabla. Estos símbolos especialesson asignadospor el fabricante del computador y tienden a ser diferentes en los diferentes computadores. Las primeras cuatro instruccionesde la Tabla 12-2 son instrucciones de movimiento y trasferencia de información de una fuente a un destino dado. Las siguientesson instruccionesde carga y almacenajeque logran un objetivo similar. Un número representativode instruccionesdel tipo operativo se listan en la segundaparte de la tabla. En la última secciónse da la lista de varias instruccionesde control. La instrucción de mover con registro indirecto: MOV
A, FG
simboliza la operación de trasferencia entre registros A *MlFGl. Esta trasfiere al registroA el byte de memoria, cuya dirección está en el par de registrosFG. Esta es llamada instrucción indirecta de registro ya que el par de registrosFG especificanla dirección del operandoen vez del operando en sí. La instrucción de carga inmediata: LXI
FG, DI6
simboliza la operaciónde trasferenciaentre registrosFG *D 16 dondeD16 es un número de 2 bytes que puederepresentaruna dirección. Esta instrucción puede ser usada para trasferir una dirección al par de registrosFG. Cuando se usa de esta manera el par de registrosFG constituyen un contador de datos o un indicador que señala una dirección de memoria donde se almacena el operando.FG puedeser incrementadocon la instrucción de incrementodel par de registros: INX
FG
la cual simbolizala operaciónde trasferenciaentre registrosFG*FG*7. De esta manera, el contador de datos o indicador puede ser incrementado para indicar las direccionesconsecutivasen la memoria donde el programador almacenauna tabla de bytes de datos consecutivos.
t sEc. 12-4
I N S T R U C C I O N EYS M O D O S D E D I R E C C I O N A M I E N T O 539
Las instrucciones de operación contienen las operacionescomunes aritméticas, lógicas y de desplazamiento.Nótese que hay más instrucciones del mismo tipo que puede.t ser formuladas si se especifica uno de los cinco registro. p.o""üdores C, D, E, F o G en vez del registro específic-o B. Simil'armente, una instrucción que especifica un par de registros P|9de .ei á.rplicada usándo uno cualquieia de los tres pares de registros posibles BE, DE o FG. Las últimas seis instruccionesen Ia tabla son instruccionesde control' Las instrucciones de salto y llamado necesitan una dirección de 16 bits simbolizada AD76. Las diretciones de regresoo paro son instruccionesde un byte. Aquellas que incluyen el símbolo AD76 o D16 son instrucciones de trls bytes y uqrr-ella.qrr" rr.un el símbolo D8 son instrucciones de dos bytes. Todas ias demás son instrucciones de un byte especifiqueno no un registro. La mejor manera de apreciar un conjunto de instrucciones de un comprrt"áát es escribir programas que realicen tareas de procesamiento de datos significativos. Lot ptogtamas escritos para el sistema de microcommicroprogramas putadoriequieren el mismo razonamientológico al escribir_ 10. Capítulo del el ejemplo vio en se puru ,r.r sisiema digital como Modos de direccionamiento El código de operaciónde una instrucción especificala operaciónque va a ,e, e¡e"itada despuésde haberse leído de la memoria y colocadoen la unidad áe control aét CpU. La unidad de control debe saberdónde encontrar al operandocon el cual se va a ejecutar la operación. Los operandospueden estar localizadosen los registrosde procesoen palabras de memoria o en los registros de interconexión. La forma como son determinados los operandos dúrante la ejecución del programa se determina a partir del modo de direccionamientode la instruóción. En computadoresgrandes'el modo de direccionamientode una instrucción se especificacon un código binario de la misma forma como se especificael códigode operación.En los microprccesadoresde 8 bits, el primer byte de una instrucción es un código binario combinado que especifica la operación y el modo de la instrucción' Una vez colocadoéste byte en el registrode instrucción, durante el ciclo de búsqueda es interpretado por el control para determinar no solamente la opeüción que debé ser ejecutadasino también la forma como se van a localizar los operandos. En la Tabla 12-1se puedeencontrarun ejemplode tres modosde direccionamientopara la misma operación.La tabla define tres tipos de modos puede de direccionamientopara la instrucción sumar a A. La operación específico referirse a un registro, u.r operando inmediato o a un operando " si ésta se especificade-mododiferente.un para una direccién de'memoria, iot"p"tuao. puede usar una gran variedad de modos de direccionamiento pur" lu misma operaciónpara emplear diferentesmanerasde localizar operandos. Para el usuario sin experiencia,la variedad de modos de direccionamiento en algunos computadorespuedeparecerexcesivamentecomplicada. Sin embargó,la disponibilidad de diferentesesquemasde programación
5 4 O D I S E Ñ OD E L S I S T E M AD E L M I C R O C O M P U T A D O R
cAP. 12
dan al programador con experiencia la flexibilidad de escribir programas que son más eficientes con respecto al número de instrucciones y tiempo de ejecución. Se han discutido algunos modos de direccionamiento en los ejemplos anteriores y se sumarizan aquí como referencia. Modo implícito: En este modo se especifica el operando implícitamente en la definición de la instrucción. Las instrucciones de este tipo son instrucciones de 1 byte. Por ejemplo, la instrucción "complementar el acumulador" es una instrucción en modo implicado porque el operando en el registro acumulador está implícito en la definición de la instrucción. Modo de registro: En este modo los operandos están en los registros que residen dentro del CPU. Las instrucciones del modo de registro son instrucciones de 1 byte y puede ser ejecutadas dentro del cPU sin necesidad de hacer referencia a las memorias para los operandos. Modo indirecto de registro: En este modo la instrucción especifica un registro o un par de registros en el procesador cuyo contenido da la dirección del operando en la memoria. Este modo usa instrucciones de 1 byte aunque el operando esté en la memoria. Antes de usar una instrucción de modo indirecto de registro, el programador debe asegurarse que la dirección del operando se coloque en el registro procesador con una instrucción previa de tipo trasferencia. una referencia al registro es equivalente a eÁpecificar una dirección de memoria. Modo inmediato: En este modo el operando se especifica en la dirección en sí. En un microprocesador de 8 bits se coloca el operando en la memoria inmediatamente después del byte del código de operación. Una instrucción de modo inmediato que tiene un operando de 8 bits es una instrucción de 2 bytes. una con un operando de 1G bits es una instrucción de 3 bytes. Modo de direccionamiento directo: En este modo el operando reside en Ia memoria y su dirección está dada directamente en Ia parte de dirección de la instrucción. Una instrucción directa consiste de tres bytes en un microprocesador de 8 bits con direcciones de 16 bits. En computadores con palabras de memoria mayores, la parte de dirección se combina con la operacióir y los bits del código de modo para unir toda la instrucción en una palabra de memoria. La mayoría de las instrucciones de modo directo asumen que los otros operandos residen en los registros procesadores. Si hay más de un operando que resida en la memoria, la instrucción debe incluir direcciones adicionales para especificar sus posiciones. Algunos microprocesadores de 8 bits con direcciones de 16 bits tienen modos de direccionamiento directo que requieren solamente un byte para especificar una dirección. Tales microprocesadores dividen los 216 bytes de mernoria en bloques llamados páginas. A cada página se le asigna usuai-
! SEC.12.4
I N S T R U C C I O NY E SM O D O SD E D I R E C C I O N A M I E N T C Y '
mente 256 bytes de espaciode memoria consecutiva.Una página en ia ¡iemoria se especificaco; Ios ocho bits de mayor orden de una dirección. Los 8 bits de méno¡ orden dan el byte dentro de la página. Así, una memoria cie 64K puede dividirse en 256 páginas de 256 bytes cada una. La primera pagirru r" llama página 0 y la riltima página 255. Por medio del esquem" 4" p-ldirecto de difirru. u. posibietesarrollar algunas variacionesen el modo reccionamiento. Direccionamiento de la página cero: Este es similar al modo de direccionamientodirecto excepto que Ia parte de la dirección de la instrucción contiene solamente1 byte. Esta es una inst¡ucción de 2 bytes con un .ugo"Jo byte especificandolos ocho bits de menor orden de la memoria de diieccionei. LoJ ocho bits de mayor orden de la dirección se asumen como ceros.Esto restringe el rango de las direccionesa los 256 bytes menoresde memoria (0-255)los cualesdefinen Ia página0. Direccionamiento de página presente: Este modo asume que el operandoreside en la memoria dentro de la misma página de memoria que lá instrucción que la usa. Como el contador del programa retiene siempre la dirección de ia siguiente instrucción, sus ocho bits de mayor orden contienen también el número de página presente.Este modo de direccionamiento usa instruccionesde 2 byleJ con una parte de dirección de 8 bits. La dirección del operandot" obti"tte del número de página encadenadocon la putll ¿" dirección de la instrucción. La dirección de 16 bits del operando se calcula a partir de: PC(N + AD\ dondePC (H) denota los ocho bits de mayor orden del PC y ADS los 8 bits de dirección de la instrucción. El resultadoes una dirección de 16 bits con el PC (Il) dando los primeros8 bits y ADS los 8 bits restantes' Direccionamiento relativo: Este es similar al modo de direccionamiento de página presenieexceptode que no es sensiblea los límites de las páginas. Una instiucción de modo relativo es una instrucción de 2 bytes co" el segundobyte que especificaun número con signo en el rango entre - 128 y + tZl. E.stose lográ representandoel número en la forma de signo compiementode 2. La dirección de 16 bits del operandose calcula aglegando el contenidode 16 bits disponiblesal presenteen el contadordel proglama a la dirección de 8 bits con signo en la instrucción. Si esta última se denota comoAD8 el cómputode la direcciónpuedesimbolizarsecomo: PC + AD8 Esto requiereque el operando(o el lugar donde Ia instrucción relativa de - 128bytes separadode.la bifurcación traifiere el control) esté enire I27 y dirección de la siguienteinstrucción. Los límites de la páginano tienen ninen el modo relativo porque todos los 16 bits del contador gonu "o.rr"".r".r.iu en el cálculo. programa se usan del
g2
DISEÑODEI- SISTEMA DEL MICROCOMPUTADOR
cAP.12
La parte de la dirección de una instrucción sq.usa por la unidad de control en el cPU para obtenerel operandoa partir áe la memoria. Algunas veces esta dirección es la del operando,pero otras es una dirección"de la cual se calcula la del operando.Los computadoresusan otros modosde direccionamientopara calcular la dirección de un operando.para distinguir entre las dif'erentesdireccionesque intervi".r"n el cálculo, se debeáistinguir entre las direccionesdadas en la instrucción ".r y la dirección actual usadapor el control cuando se ejecuta la instrucción. La dirección del ope_ rando o la di¡ección donde se bifurque el control en respuestaa un salto, una bifurcación o una instrucción dé llamado, se denomina dirección efec_ f¿¿'o.En la instrucción de modo directo, la dirección efectiva es igual á la parte de dirección de la instrucción. En el modo relativo la direcc"ión efectiva se ca.lculaa partir del valor en el pc más la parte de la dirección de la instrucción. El cálculo de la dirección efectiva para los últimos cuatro modosde direccionamientodiscutidos anteriormentese listan en la Tabla 12-3.En la tab.lase da la lista de otros cinco modos de direccionamientoencontrados comúnmente en los microprocesadores(y en computadoresde gran tamaño). El símbolo AD16 denota una dirección de 2 Lytes y ADg áenota una direcc_ión de 1byte. PC es el contador del programiv xR es un registroíndice. Xx es un registro del cPU usado '''n"ho. computadorespaia alma"n cenar direcciones.La dirección almacenada en Xft púede ser referenciada con una instrucción de modo indicado. Una inst¡ucóió.r .e coloca inicialmente en el Xrt por medio de una instrucción del tipo trasferencia.El cálculo de la dirección efectiva en cada modo se especificaen la tabla con una expresiónde cómputo del registro.La dirección efectiva de cómputo se usa para accesarla memoria a fin de leer un operandoo convertirseén la dirección de bifurcación en una instrucción dei tipo de control. Los otros modos de direccionamientolistados en la tabla se explican a continuación.
Tabla
12-3
Cálculo de la dirección efectiva para varios modos de di¡eccionamiento
Modo de di reccionamiento
Dirección efectiva
Directo Página cero Páginapresente
AD 16 AD8 PC(H) + AD\
Comentarios
Parte de la direcciónde 16bits de la instrucción Parte de la direcciónde 8 bits de la instrucción Los 8 bits de mayor orden del PC encadenados enADS Relativo PC + AD8 Contenidodel PC másAD8 con signo Indexado XR + ADI6 Contenidodel Xr? más AD 16 Registrobase XR + AD8 Contenidode Xr? másAD 8 Indirecto M\AD16l Direcciónalmacenadaen el lugar dadopor AD 16 Indirecto-indexado MIXR + ADS\ Direcciónalmacenadaen el lugar (XR + ADg) Indexado-indirecto MÍADS) + XR Direcciónalmacenadaen el lugarADg más el contenidode X/i
P I L A .S U B R U T I N A SE I N T E R R U P C I O N
sEc.12-5
gs
Direccionamiento indexado: Las instrucciones en este modo contienen 3 bytes con los últimos dos conformando una dirección de 16 bits. La parte d-eIa dirección de la instrucción se agregaal valor presentealmaádo en el registro índice para obtener la dirección efectiva. El registro ""t índice se incrementa a menudo o se decrementapara facilitar la ejecución de los bucles del programa y tener acceso a tablas de datos almacenados en la memoria. Direccionamiento de registro base: Este es similar al modo de direccionamientoindexado, excepto que la parte de dirección de la instrucción consiste de un número de bits que es menor que el número de bits requeridos,para una dirección completa. La dirección efectiva se calcula agregandoei contenido de un registro índice a la dirección parcial en Ia iñstrucción. El registro usado en el modo se llama a menudo registrobase en vez de registrJíndice. El registro base retiene una dirección base y la dirección truncada en la instrucción especificaun desplazamientocon respecto a la direcciónbase. Direccionamiento indirecto: En este modo la parte de la dirección instrucción especificala dirección donde se almacena la dirección la de efectiva. El control Íee la parte de la dirección de la instrucción y la usa para direccionar la memoriá con el fin de leer la dirección efectiva.La memoria debe ser accesadade nuevo para leer el operandosi la instrucción es ü>\ \\¡n
sp:*.,ss
fu áiti".ié"
. R s \r is=t.rsqoii:o
&c tis
ca
--ta- {rlqeoión
efeotirr a eq
de bifurcación la cual es trasferida al PC '
de direccioDireccionamiento indirecto indexado: Este es un modo se instrucción la de dirección parte de que la e;;"pt" namiento indirectol donde dirección la ;i .o"t""i¿J á"i i"gittlt" índice para d€terminar ;;;ñ sJ --aimacenala dirección efectiva en la memoria' üi"-procesadores específicos emplean varios modos de direccionade direcciomiento, pero muy ,ur"-urrt. una unidád tiene todos los modos para un microprogramas poder escribir Para aquí. namiento enumerados y disponibles instrucciones de tipo el necesarió es computador "ono""tusados direccionamiento de ertur total*ente familiarizado con los. modos en el microprocesador. 12.5
P I L A , S U B R U T I N A SE I N T E R R U P C I O N
Una característica útil incluida en la mayoría de los computadores es una pifu ¿" memoria llamada también lista de último en entrar primero en salir que acumula inforii.ifOl. Una pila es un dispositivode almacenamiento sea el primer ítem último de almacenado que ítem ei manera tal de mación recuperado.La operación de la pila se compara a menudo con una pila de bandejas.La última bandeja en la pila es la primera que se quita. una pila es muy útil para una serie de aplicacionesy su organización conlleva característicasespecialesque facilitan muchas tareas de procesamiento de datos. Por ejémplo, una pila se usa en algunas calculadoras
il4
D I S E Ñ OD E L S I S T E M AD E L M I C R O C O M P U T A D O R
cAP.12
electrónicasy computadorespara facilitar la evaluación de las expresiones aritméticas. su uso.en el mióroprocesadorestá ¡iri;iil;i-.u ,o"yoría para el manejo de subrutinase interrupciones.nn.rtu,.?.i¿;., explica la ope_ ¡ación de una pila y se ábricacionesencon_ -restringeia discusión tradas en microprocesadores. " "qr"iü, Pila de memoria una pila de memoria es esencialmenteuna parte de la unidad de memoria accesadapor una d.irecciónque siempre se incrementa o decrementadespués del accesode la memoti" pJ t"gi.tro que almacena la direcció; pa; la pila se ltama indicador de..!apita (,í?) deÉiao; q;;;;";tor indica siempre al ítem superior de la pila. Las áos operacion* d"-1"'¡l".on Ia inser_ ción y desecho de los ítems. La operación de inserció"-.i ltu,oá ;;;;;;, v se pu.ede.pensarcomo el résulrado d; r;ñJ;;,rn"i,rruo írem sobre fryúl la parte superior de ia nila. r.a operaciónde desecio se llaÁa sacor (pop) y puedepensarse.u--1:l resurtadóde quitar o sacar il.- ¿. -u".i"íuá "" i! nila salga. sin embargonada.seempuja o ." ru"" ar de memoria. Estas operacionesse simuran incrementandoo ¿uar"*"rrándo ""u'piru er registro del indicador de la pila. se debe tene¡ en cuentaque una pila debe ser colocada dent¡o del microprocesadorsin necesidadde referirsea la memorlu. e, ál casose constlyve.la pila con regisrrosy se re llama pira de ,ii¡itiol. ni-tama¡o de una pila de registrosse limita por el número de ,"si.t-, q"l éite contiene.una pila de memoria pue.d:ctecet y o"rput to¿o ei..p".iá J"-iru-o.i" si es necesario.se explicará la organizacíónde la pila á."*i""¿" que ésta reside en la memoria. La misma órganización se aplica a la -.¡-*utu" pila de registros, excepto que las operacionesde invención y áerechá .. dentro del microprocesado¡ sin hacer referenciaa la memoria. La F'igura12-8muestra una porción de una unidad de memoria organi_ zada como.unapila. El registro indicado¡ a" fu pifulspl-ui_"""rr" un nú_ rner. binario cuyo valor es igual a la dirección ¿"r ii"i" q"e*Lstaal presente en la parte superior de la pira. Tres ítems son armacerrádo.ar presenteen Memoria Inserta¡:
.tP €.tp + I ItlSPl + trggg
r- Dirección Y m*4 m*3
Sacar: DBUS * MíSP\ Sp-Sp- I
Indicador do pila (SP)
m*2 m*l m
Figura
l2-8
Operacionesde la pila de memoria
s E c .1 2 - 5
P I L A "S U B R U T I N A SE I N T E R R U P C I O N i l S
la pila:-A, B y C en direccionesconsecutivas m, rn+ly m+2 respectivamente. El ítem C en la dirección rn +2 está en la parte superiorde lá pila de manera que SP contengaahora m + 2. Para quitar el ítem superiorse saca parte de la pila leyendo el item de la direcci6n m * 2 y decrementandosp. El ítem B pasaráahora a la cima de la pila debido a que el sp contiene la dirección m + l. Para insertar un nuevo ítem se empuja la pila aumentando el sP y escribiendoun nuevo ítem en la parte superior dé la pila. Nótese que el ítem c ha sido leído pero no ha sido fisicamente removido. Esto no importa en lo que respectaa la operación de la pila porque cuando se empuja la pila se escribeun nuevo ítem en la cima de lá piia independientemente de lo que estabaanteriormente. La posición del indicador de pila en un microprocesadorpuede encontrarse en el diagrama de bloque de la Figura l2-5. El sP puedeespecificar una direcciónpara Ia memoriapor medio del bus de direccionamiento-. ABUS. Los datos trasferidos a la pila de memoria y al microprocesadorpasan a través del bus de datos DBUS. Para escribir proposicionesde traslerencia entre registros significativos para las operacionesde la pila, se asume que los datos se trasfieren de y al registro A. La operaciónde insertar A se define por las proposiciones: ^lP +--SP * I
MlsPl +-A el sP se incrementa para que se indique al siguiente lugar vacío de la pila. El contenidodel registroA se colt¡caen DBUS, el contenidode sp se en ABLls y se inicia la operaciónde wR (escritura).Esto inserta el "oloca contenido de A en la cumbre de la pila y el SP indica eselugar. La operación de sacor de A se define por medio de las proposiciones:
A <- MlsP) .SP<_SP _ I El contenidodel SP se colocaen ABUS y se inicia una operaciónde 8D (lectura). La memoria lee la palabra es una direccióndada y la colocaen DBUS. El microprocesadoracepta la palabra del DBUS y la trasfiere al registro A. El SP se decrementapara que indique el byte de una dirección inferior, el cual estará en la cima de la pila. Las dos operacionesde insertar y sacar de la pila son (1) un accesoa la memoria por medio del SP y (2) la actualizacióndel SP. Dependiendode la organización de la pila se determina cuál de las dos operacionesse hace primero y si el SP se actualiza por medio del incrementoo del decremento. En la Figura 12-8la pila crecepr aum.entode la dirección de memoria. La pila puede hacersecrecer disminuyendo las direccionesde memoria como se muestra en la Figura 12-9.En tal casoel SP se decrementapara la operación de insertar datos a la pila y se incrementa para sacar datos. Una pila puede ser organizada de manera que el SP indique el siguiente lugar uacío por encima de la pila. En este caso la secuenciade operacionesde actualización del SP y accesode memoria deben ser intercambiadas. Esta última configuración fue demostradaen la Figura 10-20para la pila de registros definida en la Figura 10-19.
546
D I S E Ñ o D E L S I S T E M AD E L M I C R O C O M P U T A D O R
cAP. 12
El indicador de Ia pila se carga con un valor inicial por medio de una instrucción det tipo trasferencia.Este valor inicial debe ser la dirección de la base de una pila asigrradaen la memoria. De aquí en adelante,el SP se incrementa o decrementaautomáticamenteen cada operaciónde insertar o sacar datos de Ia pila. La ventaja de una pila de memoria es que el procesador puede referirsea ella sin tener que especificaruna dirección ya que la dirección está siempre disponible y actualizada automáticamenteen el indicador de la pila. Así, un procesadorpuede hacer referenciaa una pila de memoria sin especificaruna dirección. Por esta razón, las instrucciones que incluyen operacionesde pila se llaman de dirección ceroo instrucciones implícitas. Subrutinas Una subrutina es una secuenciaque contiene en sí instruccionespara ejecutaq una tarea dada. Durante la ejecución normal del programa, puede ser llam'6{a la subrut.ina para ejecutar su función muchas vecesen varios puntos del programaprincipal. Cada vez que se llame una subrutina, se ejecuta una bifurcación o salto al comienzode la subrutina para comenzara ejecutar un conjunto de instrucciones.Una vez se haya ejecutadula subrutina se hace una bifurcación o salto de regresoal programaprincipal. Debido a que la bifurcación de una subrutina y el regresoal programa principal es una operación común, todos los procesadorescontienen instrucciones eSpecialespara facilitar la entrada a la subrutina y el regreso. La instrucción que trasfiere el control a la subrutina es conocidacon diferentes nombres. Los nombres más comunes usados son subruüina de subrutina de salto y subrutína de bifurcación.Una instrucción de ttrOmado, subrutina de llamado consiste de un código de operación conjuntamente con la dirección que especificael comienzode la subrutina. La instrucción se ejecuta mediante el logro de dos tareas: (1) El control se trasfiere al comienzode la subrutina. (2) La dirección de la siguienteinstrucción en el programa de llamado se almacena en un lugar temporal de manera que la subrutina conozcaa dónde regresar.La última instrucción de cada subrutina, comúnmente llarnada regresode la subrutina tras{tere el control a Ia instrucción en el programa de llamado cuya dirección fue almacenadaoriginalmenteen un lugar temporal. usan Ia pila para almacenar la dirección de reLos microprocesadores greso cuando se manipulan las subrutinas. Esto se logra insertando la dirección de regresoa la pila cada vez que se llama una subrutina. La instrucción de regresode la subrutina se logra al sacar de la pila la dirección de regreso que se leerá y se trasferirá al control del programa en esta dirección. La Figura 12-9 demuestra,por ejemplo, el procesode las llamadas de subrutina y regresoen un microprocesadorde 8 bits. Se muestran tres partes separadasde la memoria: el programa principal, un programa de subrutina y una pila de memoria. El computadorejecutaahora el programaprincipal con el PC indicando la instrucción en el lugar 3500.El programade subrutina comienzaen el lugar 2673y la parte superiorde la pila se especi-
--q sEc. 12-5
P I L A ,S U B R U T I N A SE I N T E R R U P C I O N
g7
fica por el SP en la dirección 7803. Esto se muestra en la Figura 12-9(a) con todas las direccionesconformadascon valores hexadecimales.La instrucción de llamado de subrutina, tiene asociada con ella, una dirección de dos bytes y cada byte ocupa un lugar de memoria. La última instrucción de la subrutina en el lugar 2686tiene un código de operaciónde la instrucción de regresode la subrutina. La cima de la pila contieneahora un byte (designadopor el hexadecimal46), pero esto no es tan importante para la discusiónpresente. La ejecuciónde la instrucción de la subrutina de llamado en el programa principal se lleva a cabo de la siguiente manera: (1) La dirección asociada con la instrucción (2673)se trasfiere al PC. (2) La dirección de regreso al programa princrpal (3503)se inserta a la pila. El resultado de estas dos operacionesse muestran en la Figura 12-9(b).El PC indica el lugar 2673,el cual es Ia direcdión de la primera instrucción en la subrutina. La dirección de regreso3503se inserta a la pila y ocupa dos bytes de memoria. El computadorcontinúa ahora la ejecuciónde las instruccionesen el programa de subrutina ya que el PC indica la primera instrucción de la subrutina. Cuando la última instrucción de la subrutina es alcanzadaen la dirección 2686,el computador ejecuta una instrucción de subrutina de regreso sacandolos dos bytes superioresde la pila y colocándolosen el PC. La situación se ilustra ahora en la Figura 12-9(c).El PC tiene ahora la dirección 3503y continúa la ejecucióndel programaprincipal y el SP regresaa una posicióninicial. El microprocesadormostrado en la Figura l2-5 ejecuta la instrucción de llamado de subrutina pasandopor cinco ciclos de memoria y seis operacionesinternas: IR <- MIPCf , PC <- PC + |
leer código de operación
AR(H) <- MlPCl, PC <- PC + |
leer el primer byte de la dirección
AR(L)<- MlPCl, PC <- PC + |
leer el segundobyte de Ia dirección
sP<-sP- l, M[sP]<-PC(H)
insertar el primer byte de Ia dirección de regreso
sP<-sP- l, M [sP]<-PC(L)
insertar el segundo byte de la dirección de regreso
PC +- AR
bifurcar a la dirección de la subrutina
La instrucción de regreso de la subrutina se ejecuta con tres ciclos de memoria y la actualización del PC y el SP:
IR <- MlPCl, PC <- PC + |
leer el código de operacrón
PC(L) +- MlSPl, SP <- SP + I
sacar el segundo byte de la dirección
PC(H) <- MISPI, SP <- SP * r
sacar el primer byte de la dirección
ONo €€ao€ rrrr
€ r
I
¿
v)
r
€
r
cl
al
9
vo AE f¡l
Qa ac!
L
a L
q r
a
cd o
: ó 'a
€ l,
;
C h
q
vt
6
o
o
6
m
o m
6 m
a
ct
-/
d oo OL
h ó
r, -,
o
X;
oE
.9í ' t9s ¡t Ea c¡
:€ b3 t¡l
No
l6 I
D¡
€
r
al
O I
o
I
L
g8
a
U)
.J2
b¡
----r
sEc.12-5
P I L A ,S U B R U T I N A SE I N T E R R U P C I O N g g
La ventaja de usar .una pila para-almacenarla dirección de regresoes que al llamar la subrutina, la dirección de regreso." i".urtu hacia la pila automáticamentey el programadorno tiene qüe tratá. á reco.dar la di¡ección donde se almacena Ia dirección de regreso.si se llama otra subrutina por medio de una subrutina corriente, se inserta la nueva dirección de ¡e_ greso,ala pila y así sucesivamente.La instrucción de."gt".o de la subrutina hace sacar automáticamentede la pila p;r; ra di¡ección de regresodel último programa que ra ilamó. fui, la "bt";; .;úr;;i"" que existe es siemprela última subrutina que fue llamada. Interru pción El conceptode interrupción de programase usa para manipular una variedad de problemasque surgen a-raiá de la secueri.i" J"ip."grama normal. La interrupción del programa se refie¡e a la trasferencia de control de un programa que está trabajando corrientementea otro programa de servicio como resultadode una señal de control generadaexternañente. una de ras entradas de control en er_microp.o""ruJo,de la Figura-ii-¿ ," denomina interrupción (interrupt). cada móduro de inter"o.r"*rá.r u. de interrumpir la operación normal de los microprocesadores.u^i.ri.tru.rdo "up"" una señal en su terminal de entrada de control. La interrup"io' pu"a. ser una requisición de servicio o un reconocimientodel serviciá realizado anteriormente por la interconexión. que está proce-considéresepor ejemplo, el caso del-m_icrocomputador sando un gran volumen de datos, parte de los cualás serán enviadosa una impresora. El microprocesadorp*r-uduenviar un byte á"-¿uto, dentro de varios intervalos de pulso.de reloi, pero ello le podiía to-". al impresor el equivalentede muchospj]so1de ieró¡ del proceüd;;,;;;;-primir actual_ -nt mente el caracter especificadopor bytl de datos. p.o""r"dor podría entoncespermanecer "i .latentg en esperade qg9 el impresor pueda u"eptu, el siguiente byte de datos. si hay ü.,u de interrupción disponi_ ble,.el microprocesadorpuede ""puóidad üyte Je J"t"r"ll""go continuar "tr.riu, "" realizando otras tareas de procesamiento de datos. cuando"el út;;;; esté dispuestoa acepf'arel siguiente byte ¿e aato. ¿J" p""au hacer una peticiór de -interrupción por medio de ia entra¿" Jui .oniror de interiuy ción. cuando el microprocesadorreconozcala interrupciJ", ¿rt" suspende el programa que está trabajando-al.presentey se bifurca o salta a un pro_ grama de.servicio que erviará el siguiente ¡yte ae datos. una vez q"; ." haya enviado el byte impresor, él p.o"".ádo. ."g.".u ul p.ogruma que ,al fue interrumpido mientras que se está imprimiendo e"r caracter. El procedimientode interrupción es en principio muy similar a un lla_ mado de subrutina, excepto qué l" bifurcaáión in¿iráJu por una señal externa en vez de una instrucción en el progr"*". "r Cor"o ln ta subrutina de llamado, una interrupció' almacena lá ai."."".i¿" au'r"ug."uoen la pila. una instrucción de Ilamado de subrutina contiene la dirección ción de la sub¡utinu. gr el,procedimientode i"t"r..rp"ioirl"tu de bifurca_ air"""ión de bifurcación para la rutina dé servicio álbu ,u. r;;--i;;;;áa p.r, los materiales (circuitos). La forma como un ni.ropro"-"."á;;;.ü" la dirección
I I ¡¡
I
ü t
,ü
5 5 o D I S E Ñ oD E LS I S T E M A D E LM I C R O C O M P U T A O O R
C A P .1 2
de bifurcación en respuesta a una petición de interrupción varía de una unidad a otra. En principio hay dos métodos de lograr esto. El uno es llamado interrupción uectoríal y el otro interrupción no uectorial. En una interrupción no vectorial, la dirección de bifurcación es un lugar fijo en la memoria o se almacena en un lugar fijo en la memoria. El ciclo de interrupción almacena la dirección de regreso del PC a la pila y luego prepara al PC ala dirección de bifurcación predeterminada. En una interrupción vectorial, Ia fuente de interrupción en sí misma suministra la información de bifurcación al microprocesador. Esta información, trasferida por medio de la barra de datos se denominará uector de interrupción- El ciclo de interrupción almacena primero la dirección de regreso, contenida en el PC, dentro de la pila. Si el vector de interrupción es una dirección, el microprocesador lo acepta de la barra de datos y lo trasfiere ai PC. En algunos microprocesadores se asume que el vector de interrupción es una instrucción de llamado de subrutina. El microprocesador acepta Ia instrucción proveniente del bus de datos y la coloca en el registro de instrucción para proceder a ejecutarla. El regreso de la rutina de servicio al programa interrumpido original es similar a un regreso de subrutina. La pila se hace sacar la dirección de regreso almacenada previamente allí para trasferirla al PC. Un microprocesador puede tener líneas de entrada de interrupción sencillas o múltiples. Si hay más fuentes de interrupción que terminales de entrada de interrupción en el microprocesador se procede a conectar a una compuerta OR dos o más fuentes para formar una línea común para el microprocesador. Una señal de interrupción al microprocesador puede originarse en cualquier momento durante la ejecución del programa. Para asegurarse que no hay perdida de información, el microprocesador reconoce la interrupción solamente después de que la ejecución de la instrucción corriente se haya completado y si el estado del procesador la garantiza. La Figura 12-10 muestra una configuración de interrupción vectorial posibie. El diagrama muestra cuatro fuentes conectadas a una OR para conformar una entrada simple de petición de interrupción. El microprocesador tiene dentro de sí un flip-flop de habilitación de interrupción (IEN) que puede ser puesto a uno o cero con instrucciones del programa. Cuando IEl/ se pone a cero o se borra se desecha la petición de interrupción. Si IEN se pone a uno y el microprocesador está al final de la ejecución de una instrucción, el microprocesador reconoce la interrupción habilitando IN?ACK. La f'uente de interrupción responde a INTACK colocando un vector de interrupción en DBUS. El flip-flop IEN controlado por programa permite al programador decidir si puede usar la facilidad de interrupción o no. Si hay una instrucción para borrar el flip-flop /EN dentro del programa, significa que el programador no quiere que el programa se interrumpa. (IEl/ se borra con la señal de puesta a cero). Una instrucción para poner a uno lEN indica que la facilidad de interrupción será usada mientras que el programa esté en marcha. Algunos microprocesadores usan un bit de interrupción enmascarado en el registro de condición en vez de un flip-flop .IEly' separado. Asúmase que el vector de interrupción suministrado al bus de datos es una dirección de 8 bits. El microprocesador responde a una requisición de interrupción haciendo las siguientes operaciones:
Fuentede interrupción
Microprocesador
Final de inst¡ucción de ejecución
(I\TACA') errupclo
Reconocimiento de interrupción
Habilitación de interrupción
Vector de interrupción
I.\TACK Figura
l2-1O
Configuración
de la interrupción
vectorial
sP<-- sP + l, MIÍP]<- pc(H)
empujar el primer byte de la dirección de regreso
.sP<- sP + l, M[.sP] <- PC(L)
empujar el seg'ndo byte de la dirección de regreso
INTACK <- 1
habilitar el reconocimiento de interrupción
PC(H)<-0, PC(L)<- DBUS
trasferir la dirección vector al pC
IEN <_O
inhabilitar interrupcionesposteriores
De esta manera la fuente de interrupción puedeespecificarcualquier dirección vector entre 0 y 255 para servir como dirección de bifurcación a una rutina de servicio. IEN se borra para inhabilitar interrupcionesposteriores. EI programador puede poner a uno lEN en el programa de áonde es adecuadohabilitar interrupcionesposteriores. El regresode una interrupción es similar al regresode un subrutina. se sacan valores de la pila y la dirección de regresose trasfiere al pc. I n t e r r up c i ó n p r i o r i t a r i a En la anterior discusión,se ha tratado un método para generaruna dirección vector de una rutina de servicio para interrup;ión. si t solamente una fuente capaz de solicitar servicio se conocela fuente de la"yinterrupción y el programa de se¡vicio puede empezarinmediatamentela rutina de servicio. A menudo, se les permite a muchos dispositivosoriginar peticiones 551
552
D I S E Ñ o D E L S I S T E M AD E L M I C R O C O M P U T A D O R
cAP. 12
de interrupción y la primera tarea de una rutina de interrupción es identificar la fuente de la interrupción. Hay también la posibilidad de que varias fuentessoliciten el servicio de petición simultáneamente.En este caso, el programade servicio debe decidir cuál fuente va a servir primero. El método más común de manipular múltiples interrupcioneses comenzar la rutina de servicio haciendoun sondeode las interconexionesa fin de identificar aquella que ha generadola requisición. La rutina de servicio prueba cada fuente en secuenciapara buscar si Ia señal de interrupción está activada. Una vez se haya identificado una interrupción se descartan las demás interrupcioneshasta que se haya completadouna rutina de servicio para una fuente particular. lJna interrupcíón prioritaria es un sistema de interrupción que establece una prioridad sobre varias fuentes para determinar cuál condición se va a setuir primero, cuando llegan dos o más requisicionessimultáneamente. El establecer la prioridad de las interrupciones simultáneas se puede lograr mediante la programacióno por conformaciónde los materiaies. Por el método de la programaciónhay solamenteuna dirección vector para todas las interrupciones.El programa de servicio comienzaen la dirección vector y sondealas fuentes de interrupción en secuencia.El orden en el cual se prueban las fuentes determina Ia prioridad de cada petición de interrupción. La fuente de mayor prioridad se prueba primero y si su señal de iñterrupción está activada el control se bifurca a otra rutina de servicio para esta fuente. De lo contrario, se prueba la siguientefuente en prioridad y así sucesivamente.Así, la rutina de servicio inicial para todas las interrupcionesconsiste de un programa que prueba las fuentes de interrupción en secuenciay que se bifurca a una de las muchas rutinas de servióio. La rutina de servicio particular alcanzadapertenecea la fuente de mayor prioridad dentro de todas las fuentes que pueden interrumpir el procesador. Las técnicas de programaciónpueden, en teoría, manipular cualquier número de fuentes de interrupción o cualquier nivel de prioridad sofisticada. En la práctica, si hay muchas fuentes de requisición de interrupción, el tiempo rlquerido para sondearlaspuedeexcederal tiempo disponiblepata setui. el dlspositivol/O, con el fin de buscar la interrupción apropiada. En esta situación, una unidad externa de interrupción prioritaria conformada con materialespuede usarsepara aligerar el proceso. Una unidad de interrupción prioritaria conformadacon materialesfunciona como una encargadade todo en un conjunto con sistema de interrupción. Esta acepta peticionesde interrupción de muchas fuentes,determina cuál de las requisicionesentrantes es la de mayor prioridad y envía una interrupción al procesadorbasada en esta determinación.Para mejorar la velocidad de la operación,cada fuente de interrupción tiene una dirección vector propia para accesardirectamentea su propia rutina de servicio' De esta manera, no se necesita sondeo debido a que todas las decisiones se establecenen la unidad de interrupción prioritaria conformadacon materiales. El circuito que configura la función de prioridad conformadacon materiales es un codífícadorde prioridad. La lógica de este codificadores tal que si llegan dos o más niveles de entrada al mismo tiempo, entoncesIa
sEc. 12-5
p PtILLA A,,S U B R U T I| N A SE I| N T E R R U P C ITOONN 5 5 :
entrada que tenga la mayor prioridad será la primera. La salida de un codificador de prioridad genera una dirección parcial para que el vector de interrupción suministre la dirección de bifurcación. La tabla de verdad de un codificadorde prioridad de cuatro entradasse da en la Tabla l2-4. Las { "n. la tabla designanlas condicionesde no importa. La entrada .Ie tiene la prioridad mayor; de manera que dependiendoder valor de las otias entradas, cuando esta entrada es 1 la salida genera la direcciórrry:00. rr tiene el siguiente nivel de prioridad. La salida es 01 si It : I y sl se tiene 1o:0, independientementede los valoresde las otras dos entradas de menor prioridad. La dirección parcial para 12 se generasolamentesi las entradas de mayor prioridad son 0 y así sucesivamentede manera decreciente en la gama de prioridades.Los niveles de prioridad dicen si las entradas de menor nivel generansus propias direccionesparciales solamentesi todas las entradasde mayor orden no están solicitando servicio.Una petición de interrupción R es generadapor el microprocesador solamentecuandouna o más entradas solicitan una interrupción. Si todas las entradas son cero, la salida B se convierteen 0 y la dirección parcial no serásignificativa porque no será usadapor el microprocesador.Comúnmenteun microprocesádo. no tiene más de cuatro fuentesde interrupción. Un codificadordé prioridad con ocho entradas,por ejemplo,generaráuna dirección parcial de ires bits. -. L?.dirección parcial que sale del codificadorse nrá p".u conformar la dirección vector para cada fuente de interrupción. po¡ ejemplo,la dirección vector entregada al bus de datos despuésde un ¡econocimiento de interrupción puedeser de la siguienteforma:
: I
000xy000 donde r y y son los bits de entrada del codificadorde prioridad. Los bits particulares ry trasferidospertenecerána Ia fuente de interrupción de mayor prioridad. Mediante este procedimiento el codificador de prioridad puede.especificaruna de cuatro direccionesde bifurcación posibles.Cada dirección vector especificala dirección de comienzode una rutina de servicio de 8 bytes en los 32 bytes inferioresde Ia memoria.
Tabla l2-4
Entrada (Fuentede interrupción) Io I
0 0 0 0
Il
I2
XXX IXX 0lx 001 000
I3
Tabla de verdad del codificador de prioridad
Salidas (Dirección parcial) xy
00 0t l0 ll XX
(Peticiónde interrupción) R I I I I
0
i
t-
O R G A N I Z A C I O ND E L A M E M O R I A
12-6
debe comunicarsecon las memoriasRAM y ROM para Un microprocesador Ieer 1' escribir información binaria tal como instrucciones,datos y direcciones. El tamaño de la memoria adjunta al microprocesadordependedel número de inst¡uccionesy bytes de datos, necesariospara una aplicación particular. Un microprocesadorpuede tener un bus de direccionescon 16 líneas para acomodar64K bytes de memoria. En muchas aplicaciones,la cantidad de memoria necesariapuede ser menor que 64K bytes. Las pastillas RAM y ROM vienen en una gran variedadde tamañosy las pastillas individuales deben interconectarsepara formar el tamaño deseadode memoria. PastillasRAM y ROM Una pastilla RAM es más adecuadapara comunicarsecon el microprocesador si tiene una o más entradas de control para seleccionary habilitar la unidad bajo pedido. Una característicaconvenientees un bus de datos bidireccional para evitar el agregar separadoresdel bus externos entre la RAM y el bus de datos. El diagramade bloquede una pastilla RAM adecuada para las aplicacionesde microcomputadorse muestra en la Figur{12-11. La capacidadde la memoria es 128palabrasde 8 bits cada una. Esta requiere una dirección de 7 bits y un bus de datos bidireccional de 8 bits. Las entradas de lectura y escritura especificanla operaciónde memoria y los dos terminales de entrada de control para la selección de pastillas (CS)
Selector1 de pastilla
csl
Selecto¡2 de pastilla
ast ll8 x 8 RAM
Dn
Lectu¡a
Bus de datosde 8 bits
WR
Escritu¡a
AD7
Di¡ecciónde 7 bits
( a ) Diagrama de bloque
CSI
0
CS2
0xx IXX 000 001 0lx IXX
RD
WR
Función de memoria
Inhibir Inhibir lnhibir Esc¡ibi¡ Lee¡ Inhibir
Estadodel bus de datos Alta impedancia Alta impedancia Alta impedancia Introducir datosal RAM Saca¡datosde la RAM Alta impedancia
ft) Tabla de función Figura l2-11
5g
Pastilla RAM típica
sEc. 12-6 son para habilitar
la pastilia
cuando ésta es selecccionada ¡rcr e'
para de-más de una entrada de control ^f"a'ciil;; microprocesador'La áitp""i¡ifiaad de direcciones' l;á"""dificación de las líneas seleccionarla pastilla el microcomputador'Las entradas de t"t;;.;;;irr"t cuando se usan "" vecesen una sola línea denominalectura y escritura .. .oilul.,un algunas_ ü"pastilla' los dos estadosbinarios de esta da R/W. Cuando .. ';i;;;i;;; las dos operacionesde lectura v escritura' i;;;'";;.ifican r2-1r(b) especificala operaLa tabra de tunJi"o'n"iriu¿uen Ia Figura solamentecuando operación ,n ción de la pastilla nlil.- L^ unidad "rtí s e g u n d av a r i a b l ed e s e l a d e e n c i m a "^uu.rr.olocada c s z : u . i,-tucs1:1y está habilitada cuando ésta es 0. si las Iección indica o,r. ""i."¿" no se habilitan o si éstas son habilientradas de seieccró" a" i"- p"stilla la memoria se inhibe y su y tadas pero las entradas de léctura escritura' impedancia'Cuando CS1:1 y bus de datos estaru .n un estadode alta en un modo de lectura o escritura' e-SZ:0 se puede .oio.u. la memoria almacenaun byte del bus de datos cuando wR está h";;lir"d".-la memoria de la dirección. cuandp en el lugar especitrcadopor las líneas á" ""ttuau se colocaen el seleccionado .ont.rriao Jettyte se habirita tu.r,,r"jJ:ñd.l de la memoria operación la y wR bus de datos. I_". ..iui". a. nb "o.rt.ótu" con el bus de daasociados ¡"t á.t de la misma forma ;;;1".-*p"iadores tos bidireccional. de una manera similar' Una pastilla RO\f se Lr¡ganizaexternamente puede !. pu.a. tlet totatttente,el bus de datos Sin embargocomc, pastilla una bloqu^e-de """"'nófj =uitdu Et Jiugtu,Ina.de solamenteser un ;;t''Jt es r:.. Para"el mismo tamaño de pastilla i;.::;-il ;;; muestra se ROM exbinarias porquelas celdas posibletener mas b;;.;; liólr que de RAM i" ü n¡u' Por esta razón el t'put¡-q"á Eenos -tí" l"-us en Ia RO\l ocupan RAM tiene nOff ¿e ;iU byies' mientras que la diagrama especihca solamente128b¡'te= uno cualROM especifican Las nuevelineasde ci'recc:onen Ia pastilla de terminales entrada quierade los srz utie=-".-",t"udo^t "t' !llu' lgdot y eg':0 Ra¡aqueoperela unide selecciónde pa*iilia ieoe:' ser CS 1: 1 impedanel bus cie ciatosestará en un estadode alta dad. De lo a que debido .j. escritura o lectura .o,-,rtotde ,,".".iJ"J;;; cia. No huy"o.,t.".io. medianpastilla la habilita se cuando la unidad puede Ieer s..,ia..e:'re'A..r. telasdosentradasdese'ecc:o:l'áP8r€ceenelbusdedatoselbyteseleccionadopor las lÍneasde ci::eccion' :.911T":t"
Selector 1 de Pa.stilla Selector 2 de Pastilia
de datos de 8 bits
Dirección de 9 bits
Figura
l2-12
Pastrlla RO\1 tiPtca
M a p a d e d i r e c c i o n e sd e m e m o r i a El diseñadorde un sistema de microcomputadordebe calcular la cantidad clememoria necesariapara una aplicación particular y asignarlaa la RAM se eso a la ROM. La interünexión entre la memoria y el microprocesador y tipo el necesaria tablece entoncesde acuerdo al tamaño de la memoria memoria de la direccionamiento ár p"rtiir". RAM y RoM disponibles.El que especifiquela dirección ;;.á; ser establecido po, medio 9-" "lu tabla mapa de direcciones llamada tabla pastilla. La a cada á. -"*o.iu asignada de direcciones espacio del ilustrativa ,"pr"tenta"ión una es memoria de asignadopara cada pastilla en el sis-tema. para demostrariocon un ejemplo,asúmaseque el sistema microcomputador necesitabl2bytes de RAM t 512 bytes de ROM. Las pastillas RA!! y ROM que se van a usar se esplcifican en las Figuras 12-71y 12-12.El Lupá ¿. dirección de memoria para esta config'ración se muestra en la f"üt" 12-5.La columna de componenteespecificasi se usa una pastilla nÁU o ROM. La columna de dlrección héxadecimalasigna un rango de ái]"."io"". equivalenteshexadecimalespara cada pastilla. Las líneas del bus de direccionesse listan en la tercerá columna. Aunque haya 16 líneas en el bus de direcciones,la tabla muestra solamente 10 líneas porque las otras 6 no Seusan en este ejemploy se asumencomo cero' Las pequeñasr ¡"¡"-f"" líneas del bus de áireócionesdesignanaquellas.líneasque deben sei conectadasa las entradasde direccionesde cada pastilla. Las pastillas RAM ti".r.n 128 bytes y necesitan7 líneas de dirección. La pastilla ROM tiene b12 bytes y tr"."rltu 9 líneas de direccién. La r se asigna siempre a las líneas ael ¡us de menor orden: líneas t hasta ? para la RAM y líneas 1 h;á o para la RoM. Es necesariodistinguir ahora_entrecuatro pastillas RAM asignandoa cada una direccionesdiferentes.Para este ejemplo particular sJ e.coge¡ las líneas del bus 8 y 9 para representarcuatro condipar ciones binarias diferentes.Nótese que se puede escogercualquier otro claramente muestra tabla La propósito. para este de líneas de bus sin usar, q.re la. 9 líneas del bus á" -rr,or orden constituyen un espacio de memoria tu R{IVÍ igual a n :|L2bytes. La distinción entre Ia direcciónde la RAM "n y la ROM .é hu"" con otra iínea de bus. Para este propósito se escogela linea 10. cuando la línea 10 es 0, el microprocesadorseleccionauna RAM y cuando la línea es 1 éste seleccionala ROM. Tabla l2-5
Mapa de dirección de memoria para el microcomputador
Bus de dirección Dirección Componente
RAM RAM RAM RAM ROM 556
I 2 3 4
hexadecimal
0000-007F 0080-00FF 0100-017F 0180-0lFF 0200-03FF
10987654321
0 0 0 0 I
x x 00 0lxxxx l0xxxx llxxxx xxxxxx
x
x
xx xx xx xx xx
x x x x
sEc. 12-6
oRGAN|ZAC|ON DE LA MEMORTA
557
La dirección hexadecimal equivalente para cada pastilla se obtiene ^bus mediante la información contenida en Ia asignacióndel de direcciones, Las líneas del bus de direccionesse subdividen en dqs grupos de cuatro bits cada uno, de manera que cada grupo puedu .". ."p.:"sentado con un dígito hexadecimal. El primer dígito h-exádecimal repiesenta las líneas 1.s-t0 v es siempre cero. El siguiente dígito hexadecünal ,eprrserrta las líneas 9-12 pero las líneas 17 y 12 son siempre 0. El rango de direcciones hexadecimalespara cada componentese determina p".u lu. r asociadas con éste. Estas r representanun número binario qu-epuede variar entre todos cerosy todos unos. C o n e x i ó nd e l a m e m o r i a a l m i c r o p r o c e s a d o r Las pastillas RAM y RoM son conectadasal microprocesadora través de busesy de direcciones.Las líneas de menor orden en el bus de direcciones seleccionanel byte dentro de las pastillas y otras líneas dentro del bus de direccionesseleccionanuna pastilla particular por medio de las entradas de selecciónde las mismas. La conexiónde las pastillas de memoria al microprocesadorse muestra en la Figura 12-13.Esta configuraciónda una capacidadde memoria de 512bytes de RAM y 512bytes de RoM. Esta configura el mapa de memoria de la Tabla 12-5.cada RAM recibe los T bits de menor orden del bus de direccionespara seleccionaruno de los 12g bytes pasables.La pastilla RAM específicamenteseleccionadase determina a partir de las líneas8 y 9 del bus de direcciones.Esto se hace por medio de un decodificadorde 2x4 cuyas salidas van a las entradar ósl en cada pastilla de RAM. Así, cuando las líneasde dirección 8 y 9 son igualesa 00, se seleccionala primera pastilla RAM. Cuando 01, se seleccionala segunda pastilla y así sucesivamente.Las salidas RD y wR del micropro"".ádo. son aplicadasa las entradasde cada pastilla RAM. La selecciónentre la RAM y la RoM se logra por medio de la línea de bus 10. Las RAM son seleccionadascuando el "¡it en esta línea o v ru, RoM cuando este bit es 1. La otra entrada de selecciónde pastilla ". én la RoM se conectaa la línea de control RD paru que se habiliie la pastilla RoM solamentedurante la operaciónde lectura.^Las líneas del bus 1-g se aplican a las direccionesde entrada de la RoM sin pasar por el decodifigqdgs.Flste asigna las di¡ecciones0-511a la RAM y stz 1023a la RoM. El bus de datos de la RoM tiene solamentecapacidadde " salida mientras que el bus de datos conectadosa la RAM p.reá" trasferir información en ambasdirecciones. _ El ejemplo mostrado es una indicación de la complejidad que puede existir entre las pastillas de memoria y el microp.o."."do.. Entre'mrís pastillas se.conecten se requieren más decodificadoiesexternos para selecciona¡ las pastillas. El diseñador debe establecerun mapa de memoria que asigae direcciones a las diferentes pastillas de las cuales se determinun i". conexionesnecesarias.Como los microprocesadores se comunican también con unidades de interconexión es necesariode la misma manera asignar direccionesa cada interconexión. La comunicaciónentre el microproc"esador y la interconexiónse discute en la siguientesección.
F
Microprocesador
Busdedirecciones
ló-l I
l0
9
8
7_t
RD WR
Decodificador
3210 cil
csi Ku
lrR"R^
R-t
i
uaros
h,R AD7
csl cs: ¡tu
lt!"nDatos IAM ;
WR ADl
csl CTJ
RD l,f; ! o"t*
hJR
AD7
csl cS2 RD WR
128x8 ¡u¿o. RAM 4
AD7
cst CN 1
5 1 2x 8
nou I eos I
) Figura
558
12-13
Conexión de la memoria al microprocesador
NE E N T R A D A - S A L I D A 1 2 - 7 I N T E R C O N E X I OD Una pastilla de interconexiónes un componenteLSI que provee el enlace de interconexión entre un microprocesadory un dispositivo I,/O. Cuando está en el modo de salida de datos, la interconexiónrecibe información binaria del bus de datos al ritmo y modo de trasferencia del microprocesador y la trasmite a un dispositivo externo al ritmo y modo de trasferenciadel dispositivo.La interconexiónse comporta de manera similar en el modo de entrada de datos, exceptoque la dirección de trasferenciaestá en la dirección opuesta.Una interconexiónconsistede un número de registros,lógica de seleccióny circuitos de control que configuran las trasferenciasrequeridas. La lógica de interconexiónse incluye a menudo dentro de una pastilla RAM o ROM para proporcionarun componenteLSI que incluya condiciones de memoria e interconexióndentro de una pastilla de CI. La mayoría de los componentesLSI pueden ser programadospara acomodar una variedad de combinacionesde modosde operación.El microprocesador, por medio de instrucciones de programa, trasfiere un byte a un registro de control dentro de la unidad de interconexión.Esta información de control coloca la interconexión en uno de los modos posibles disponibles para un dispositivo particular, al cual está unida. Cambiando el byte de control es posible cambiar las característicasde la interconexión.Por esta razón las unidadesde interconexiónLSI se llaman a menudoprogramables. Las instruccionesque trasfieren la información de control a una interconexión programable son incluidas en un programa de microcomputador y puedeniniciar la interconexiónpara un motio particular de operación. Los fabricantes de microprocesadorescomplementan sus productos con un conjunto de pastillas de interconexiónadecuadaspara la comunicación entre el microprocesadory una variedad de dispositivos de entrada y salida normalizados.Los componentesde interconexiónse diseñanusualmenparticular sin ningute para operar con un bus del sistema microprocesador na lógica adicional diferente de la decodificaciónde direcciones.Hay una variedad de componentesde interconexión de uso comercial y cada uno puede ser clasificado en una de las cuatro categorías: 1 . Una interconexión periférica en paralelo trasfiere datos entre el microprocesadory el dispositivo periférico.
2 . Una interconexión de comunicaciónen seríe convierte los datos en paralelo del microprocesadora datos en serie para la trasmisión y convierte los datos en serie entrantes a datos en paralelo para ser recibidos por el microprocesador. ó . Una interconexión dedicada especial es construida para comunicarse con un dispositivo particular de entrada y salida o puede ser programada para operar con un dispositivo particular. 4 . Una interconexiónde accesodirecto de memoria (DMA) se usa para trasferir datos directamente entre un dispositivo externo y la memoria. Los separadoresdel bus en el microprocesadorson inhabili559
5 6 0 D t s E ñ o D E L S T S T E M AD € L M T C R O C O M P U T A D O R
cAP. 12
lados y pasan al estado de alta impedancia durante la trasferencia
D MA .
Las unidades de interconexión comercialespueden tener nombres diferentesque los que aquí se listan. Más aún, las característicasinternas y externas varían considerablemente de una unidad comerciala otra" En está sección, se discuten las característicascomunes de los componentesde interconexióny se explican en términos geDeraleslos diferentesmodos de trasferenciaque tienen. La trasferenciade accesoa la memoria se discute en la siguientesección. C o m u n i c a c i ó nc o n e l m i c r o p r o c e s a d o r Los grandescomputadoresusan muy a menudobusesseparadosen el cpu para comunicarsecon la memoria y la interconexiónl/O.lJn bus I,/O de los grandes computadoresconsiste de un bus de datos y uno de direcciones similar al bus que se comunica con la memoria. El bus de datos I/o trasfiere los datc¡ a los dispositivos exte¡nos y viceversay el bus de direcciones I/O st usa para seleccionar un dispositívo I/O particular a través de su interconexión. El número de líneas de direccionesen un bus I,/o es menor que un bus de memoria porque hay un menor número de unidades I/O paru seleccionarque palabras en un sistema de memoria. un microprocesadortiene un límite para el número de terminales que pueden ser acomodadosdentro de una pástilla de CI. No hay suficienies patillas en una pastilla de microprocesadores para suministrar busesseparados para comunicarseseparadamentecon la memoria y el l/O.Invaria_ blemente todos los microprocesadoresusan un sistema de bus común para seleccionarpalabras.de.memoria y unidades de interconexión. Si una pastilla de interconexióntiene un número de registros,cada uno se seleccíona por medio de sus prop,as direcciones de la misma manera que se selecciona una palabra de memoria. El bus del microprocesador no distingue entre un registro de interconexión y una palabra áe -emoria. Es responsabilidad del usuario, por medio de instruccionesdel programa,especificarla dirección apropiada que seleccioneuno u otro. Háy áos *a.tetas de asignar las direccionespara seleccionarlos registros de memoria e interconexión.un método es el llamado I/O con mapa de memoria y el otro es el llamado I/O aislado. En el método I,/o con mapa de memoria, el microprocesadortrata el registro de interconexióncomo parte del sistema de memoria. La dirección originada para los registros de interconexión no puede ser usada para palabras de memoria,reduciendoasí el espaciode memoria disponible.En una organizaciónl/o con mapa de memoria no hay instrucciónesde entrada y salida-porque el microprocesadorpuede manipular los datos l/o qie ¡esiden en los registros de interconexión con las mismas instruccion"* qu" se usan para manipular los lugaresde memoria. Cada interconexiónse órganiza como un conjunto de registros que responden a los comandos de lectura y escritura en el espaciode direóción nbrmal del microprocesador. Típicamente se reserva un segmento del espacio de direcciones total para los registros de interconexión pero en general pueden estar localizados en
sEc. 12-7
I N T E R C O N E X I ODNE E N T R A D A - S A L I D A
561
cualquier dirección, siempre y cuando no haya una palabra de rnemoria que correspondaa esa dirección" La organización de los I,/o con rnapa de memo¡ia es conveniente para sistemasque no necesitenespaciodisponible de memoria de las líneas del bus de direcciones.un microprocesadorcon un bus de datos de 16 bits, que requiereuna memoria menor que 32K puedeusar otras 32K direcciones disponiblesdel bus para accesarlos registrosde la interconexión.Una configuración específica para un I/O con mapa de memoria puede configurarse modificando ligeramentelas conexionesde dirección mostradasen la Figura 12-13.La línea de dirección 11 del diagrama no se usa para accesar la memoria. Se dejará ahora que esta línea distinga entre la memoria y la interconexión,de manera que cuando el bit de la línea sea 1, el bus de direccionesseleccioneuna memoria de palabra y cuando el bit sea 0 seleccione un registro de interconexión. Para lograr esta nueva condición se debe aplicar a una compuertaAND cada línea que va al CS 1 en las RAM y ROM de la Figura 12-13con el bit de la línea 11 de dirección.Las entradasde selección de pastilla de todas las unidadesde interconexióndebenestar condicionadasal valor del complementode la línea 11, adem¡ísde la dirección asigrrada. con la organizacióndel l/o aislado, el microprocesadorespecificaen sí mismo cuando la dirección en el bus de direccioneses para una palabra de memoria o para un registro de interconexión. Esto se hace por medio de una o dos líneasde control adicionalesque se fabricarrcon el microprocesador. Por ejemplo, un microprocesadorpuede tener una línea de control de salida marcada M/Io. cuando Milo:1 esto significa que la dirección del bus de direccioneses para una palabra de memoria. Cuándo M/IO:0, la dirección es para un registrode interconexión.Esta línea de control debe ser conectadaa las entradas de selecciónde RAM, ROM y de las pastillas de interconexión,de la misma manera que la línea 11 del bus fue conectada en el ejemplo previo para el caso del l/O con mapa de memoria. En la organización l/O aislada, el microprocesadordebe entregar instruccionesde entrada y salida diferentesy cada una de ellas debe asociarse con una dirección. Cuando el microprocesador busca y decodificael código de operaciónde una instrucción de entrada y salida, éste lee la dirección asociadacon la instrucción y la colocaen el bus de direcciones.Al mismo tiempo hace la línea de control M / IO igual a 0 para informar a los componentesexternos que esta dirección es para una interconexión y no para la memoria. Asi, durante un ciclo de búsquedao un ciclo de ejecución de referenciade memoria, el microprocesadorhabilita el control de lectura o escritura y lleva la línea M/IO a 1. Durante la ejecuciónde una instrucción de entrada o salida, el microprocesadorhabilita el control de lectura o escrituray lleva la línea M /IO a 0. El método I,/O separado, aísla la memoria y las direcciones l/O de maneraque no se afecteel espaciode memoria por la asignaciónde la dirección de la interconexión. Debido a este aislamiento, todo el espacio de direccionesdisponiblepor el bus de direcciones,no es afectadopor el direccionamiento de la interconexión, como en el método de I,/O con mapa de memoria.
I n t e r c o n e x i ó np e r i f é r i c a e n p a r a l e l o una interconexión periférica en paralelo es un componenteLSI que presenta un camino para trasferir información binaria en paralelo éntré el microprocesadory el di,qpositivoperiférico. una pastilla de interconexión contiene normalmente dos o más puertos I/O qúe se comunican con uno o más dispositivosexternosy una interconexiónsencilla para comunicarse con el sistema del bus del microprocesador.El diagrama'debloque ar rrrr" rnte¡conexiónperiférica típica_en paralelo .. -rr".t." en la Figr.rral2-r4. Este consistede dos puertos. cada puerto tiene dos registros,un bus I/o de 8 bits y un pa( de l(neas denorninadas üe entoce. Li operación a\macenada en el registro de control especificael modo de operació" det p""rlá. El puerto del registro de datos se usa para trasferir dátos al bus dé datos y al bus I/ O y viceversa. La interconexiónse comunica con el microprocesador a través del bus de datos, el selector de pastilla y el control de lectura,/escritura.se debe agregarun circuito externo (usualmenteuna compuertaAND) para detectar -la dirección asignadaa la interconexión. EstL circuito habilita Ia en_ trada de selecciónde la pastilla cuando se seleccionala interconexiónpor medio del bus de direcciones.Las dos entradas de selección del registro r?s 1 y RS 2 se conectanusualmentea las líneas de menor orden del b"usde Bus de datos
Registrode datospuerto;1
Líneas de enlace Selector de pastilla y control de lecturaT/ escritura
RI) h,R lnterrupción < Puesta a cero
Líneas de enlace
Registro seleccionado
XX 00 0l l0 ll
Figura l2-14 562
Ninguno - El bus de datosen alta impedancia Registrode datospuertoA Registrode control puertoA Registrode datospuertoB Registrode control puerto B
Diagrama de bloque de la inte¡conexión
periférica en paralelo
S E C .1 2 - 7
I N T E R C O N E X IDOENE N T R A D A - S A L I D A 5 6 3
direcciones. Estas dos entradas seleccionan uno de los cuatro registros en Ia interconexión, como se explica en la tabla que acompaña el diagrama. El contenido del registro selector se traslada al microprocesador por medio del bus de datos cuando se habilita la entrada RD. El microproceiador carga un byte al registro seleccionado por medio del bus de datos cuando se habilita la entrada wR. La salida de interrupción se usa para interrumpir al microprocesador y la entrada de reposición es para pone. a cero la interconexión una vez que se suministre potencia. El microprocesador inicia cada puerto trasfiriendo un byte a su registro de control. Al cargar los bits adecuados a un registro de control en la iniciación del sistema, el programa puede definir el modo de operación del puerto. Las características del puerto dependen de las unidades comerciales usadas. En la mayoría de los casos, cada puerto puede ser llevado a un modo de entrada o salida. Esto se hace al trasferir los bits en el registro de control que especifican la dirección de trasferencia en los separadores del bus que accionan el bus I,/O bidireccional. En adición, el puerto puede hacerse funcionar en una variedad de modos de operación. Los tres modos de operación encontrados en la mayoría de las pastillas de interconexión son: 1. Trasferencia directa sin línea de enlace. 2. Trasferencia con enlace. 3. Trasferencia con enlace usando interrupción. Una interconexión se lleva al modo de trasferencia directa cuando el dispositivo conectado al bus l/o está siempre listo para trasferir información. Las líneas de enlace no se usan en este modo y algunas pastillas de interconexión tienen un modo de programación para convertir estas líneas en líneas de trasferencia de datos. La trasferencia directa puede operar en un modo de entrada o salida. En el modo de entrada una ope.ación de lectura trasfiere el contenido del bus l/O aI bus de datos del microprocesador. En el modo de salida, una operación de escritura trasfiere el óontenido del bus de datos al registro de datos del puerto seleccionado. El byte recibido se aplica entonces al bus l/o. Las trasferencias de entradá o salida directas son útiles solamente si los datos valederos pueden residir en el bus I,/O por un tiempo largo, comparado con el tiempo de ejecución de la instrucción en el microprocesador. Si los datos I,/o pueden ser valederos por un corto tiempo, la interconexión debe operar en el modo de enlace. Las líneas de enlace son usadas para controlar la trasferencia entre dos dispositivos que operan asincrónicamente entre sí, es decir cuando no comparten un reloj común. El enlace es un proceso usado comúnmente y no está restringido para hacer interconexión con pastillas solamente. Dos líneas de enlace, conectadas entre un dispositivo fuente y uno de destino, controlan las trasferencias informándose entre sí de la condición de la trasferencia por medio del bus común. El dispositivo fuente informa el destino por medio de una de las líneas de enlace cuando se tiene información valedera en el bus. EI dispositivo de destino responde inhabilitando la segunda línea de enlace cuando ha sido aceptada la información del bus. La Fizuru
5&
D I S E Ñ OD E L S I S T E M AD E L M I C R O C O M P U T A D O R
CAP. 12
12-l-1muestra dos líneas de enlace en cada puerto. una es una línea de salida ¡' la otra de entrada. Es costumbrereferirsea estas líneas con símbolos. pero los símbolos adoptadosson siempre distintos en las diferentes unidadescomerciales.Debido a la variedad de símbolosusadospara designa¡ esas líneas, se prefiere no adoptar un símbolo sobreotro sino referirs-e a las dos líneas como la línea de enlace de salida o entrada. La línea de enlace de entrada pondría a uno un bit en el registro de control dentro de la interconexión.Este bit será llamado indicador,teniendoen cuenta que el registro que retiene el bit indicador (el registro de control en este caso) puede ser leído por el microprocesadorpara comprobarla condición de la trasferencia.El bit indicador se bo¡ra automáticamenteen la interconexión despuésde una operaciónde lectura o escritura asociadacon el correspondiente registrode datos. La secuenciade enlace detallada para una pastilla comercial de interconexiónse especificacon el diagrama de tiempo que acompañalas especificaciones dei producto. Debido a la varied"á ¿é procedímientosque se encuentranen la práctica, sería mejor explicar el rnétodode enlace en tér_ minos generales,sin preferenciapor un método específico.La trasferencia con enlace dependede si el puerto está en el modó de entrada o salida de información. E' el modo de enl¿cede salida, el microprocesadorescribeun byte en el registro de datos del puerto de interconexión.La interconexiónhábilita la línea de enlacede salida para informar al dispositivoexternoque un byte valedero-está disponible en el bus I,/o. cuándo el dispositivo externo aceptael byte del bus l/O, éstehabilita la línea de enlacede entrada. Ello pone a uno el bit indicador en el registro de control. El microprocesador lee el registroque contiene el bit indicador para determinar si la trasfe¡encia fue completa. si es así, el microprocesadór puedeescribir un nuevo byte al registro de datos del puerto de lnterconexión. Al escribir datos en un puerto dado se borra automáticamenteel bit indicador asociadocon la trasferencia de salida. El procesopuede repetirsepara dar salida al siguiente byte. En el modo de enlace-de.entrada,el dispositivoexterno colocaun byte en el bus r/o y habilita la línea de enlace áe la entrada de interconexián. La interconexióntrasfiere el byte a su registro de datos y pone a uno un bit indicador en el registro de control. El- microprocesadárlee el registro que contiene el bit indicador para determinar si ie requiereuna trasferen_ cia de entrada. Si se pone a uno el bit indicador, el ,rri".opro.".ador lee el byte del registro de datos del puerto y borra el bit indicador. La interconexión informa entoncesal dispositivo conectadoal bus r/o a través de la línea de enlace de salida, que el nuevo byte puedeser acáptado.una vez que el dispositivo de salida ha sido informádo áu q,r" la intérconexiónestá lista, puede iniciar la trasferenciadel siguientelyte nauititando de nuevo el enlacede entrada. En el método de enlace anteriormente descrito, el microprocesador dgpe ]eei periódicamenteel registro de control para comprobai Ia condición del bit indicador. si hay un número de puertósconectádosal microprocesador,sería necesariohacerlesun muestréoen sucesiónpara determinar aquellos que requierenuna trasferencia.Esta es una op"r*"iór, que consu-
l
sEc. 12-7
I N T E R C O N E X I ODNE E N T R A D A - S A L I D A
565
me tiempo-y que puede ser evitada si se inicia la interconexiónpara que opere en el modo de interrupción. La salida de interrupción mosirada en la Figura 12-14se usa.entoncespara solicitar una interiupción del microprocesador.La mayoría de unidades comercialespresentur .r.ru línea de interrupción separada.paracada puerto en la interconexión. cada vez que se pone a uno un indicador en el puerto, la petición de inte¡conexiónque peqteneceal puerto se habilita automáticamentepara informar al micro_ programadorque se va a inicia¡ la trasferencia.El microprocesador responde a la señal de interrupción _delpuerto que solicitó la acción y trasiiere el byte de datos al registrode datoJdel puerto de intercone*iOny-uiceversa. I n t e r c o n e x i ó nd e c o m u n i c a c i ó ne n s e r i e un dispositivo I,,'o puedetrasferir la información binaria en paralelo o en serie. En la trasmisión en paralelo, cada bit de información usa una línea separadade manera que los n bits de un ítem pueden ser trasmitidos simultáneamente. Por ejemplo, un dispositivo perúérico paralelo puede trasmitir una palabra de 16 bits, todos al tiempo, a travéé de dos iuses de g bits de la interconexiónperiférica.en paralélo. En la trasmisión en serie, los bits de una palabra son trasmitidoÁ en secuencia,bit a bit a través dé una sola línea. La trasmisión en paralelo es más rápida pero requieremuchas líneas. Esta se usa para diitancias cortas y donde la veiocidad es importante. La trasmisión en serie es lenta pero menoscostosaya que solamente requiere una sola línea. La información binaria trasmitida desde terminales remotosa través de cables telefónicosu otro medio de comunicación e9 d-eltipo serie porque sería muy costososuscribir o renrar un gran númerode líneas.Ejemplosde terminalés de comunicaciónson los teletfros, los terminales de cirr v los disposiiitor a" cómputo ,L-ot". La información binaria en ierie trasmitida a un terminal consistede caracteres de códigos binarios. Los caracteres pueden representar información alfanuméricao caracteresde control. Los caracteres'alfanuméricos son trasmitidos como un te-xto e incluyen las letras del alfabeto, los dígitos decimales y un número dc símbolos gráficos tales como el punto, et áris y ta 'de coma. Los caracteresde control se usan para la distribución la impre_ sión o para especificarel formato der mensajetrasmitido. El númerode bits asigrradosa cada código de caracteres pueáe estar entre cinco y ocho dependiendodel terminal. El diagrama de bloque de una interconexiónde comunicaciónen serie se muestra en la Figura 72-15.Este funciona como un trasmisor o como receptor y puede ser programado para operar er una variedad de modos de trasmisión. La interconexiónse inicia para un modo de trasferenciaen serie particulq por medio-deun byte de control, el cual se cargaa su registro de control. El registro de trasmisión acepta un byte de datoJ del micóprocesador a través del bus de datos. Este byte se trasfiere a un registró de des.pl_azamiento para una trasmisión en .eiie. La parte de recepcióInrecibe la.información de se¡ie en otro registro de desplazámientoy cuando se acumula un byte de dat-oscompleto, éste se traifiere al registro receptor. EI *para microprocesadorpuede seleccionar el registro receptor leer el byte
Registro de d e s p l a z amlento
Trasmisión
Registro de control
RD l1/R
Selector de pastilla y control de lectura e sc r l t u r a
Puesta a cero
Registro seleccionado Ninguno Registrotrasmisor Registrode controi Registro receptor Registrode condición
Figura 12-15 Diagrama de bloque tipico de una interconexión de comunicaciónen serie
por medio del bus de datos. Los bits del registro de condición se usan para poner a uno los indicadores de entrada y salida y para detectar ciertos errores que pueden ocurrir durante la trasmisión. El microprocesador puede leer ei registro de condición para constatar el estado de los bits indicadores y para determinar si cualquier error puede ocurrir. Las líneas de selección de pastilla y de lectura,/escritura' se comunican con el microprocesador. El terminal de entrada de selección de pastilla (CS) se usa para seleccionarla interconexión. El selector de registro (,RS) se asocia con los controles RD y WIi. Dos registros aceptan información durante una operación de escritura y los otros dos suministran información durante Ia operación de lectura. El registro seleccionado es entonces una función de la condición de RD y WR como se muestra en la tabla que acompaña el diagrama. El trasmisor y receptor tiene una entrada de reloj para sincronizar la razón de los bits al cual se trasfiere la información en serie. La línea de datos de trasmisión se conecta a un receptor remoto y Ia línea de datos recibidos vienen de un trasmisor remoto. Si el reloj está conectado al terminal remoto, se dice que la trasmisign es sincrónico. Si el reloj no está compartido con el terminal remoto se dice que la trasmisión es asíncrónica. 566
SEC. 12-7
I N T E R C O N E X I ODNE E N T R A D A - S A L I D A
567
En el modo serial sincrónicode trasmisióner trasmisorremotoy local .y el receptorcompa.rtenel reloj Los bits.""^"""i"a"s desdeel tras_ misor a intervaloó iff{: "o-,in. g," ,1"-_r" ¿"turlir"¿;';;;;i rirmo de los pur_ sos de reloj' como er receptor. comparte ¡r1 ryloj "o-ir., con el trasmisor, éste acepta los bits al mismo ritmo ier ."i"j. E;'l;i.á]-,.i0" asincrónica. las dos partes no un reloj común. Los pulsos de reloj .comparten del trasmisor de interconexión t.a.t t"""pio.-úon que especificara rata de trasfeiencia alimentadi;^;i ,;-" del reloj iocal del t..Áirriá" remoto al cual está conectadala i"tu.""l."l?". "á_rrni.u"ión un probremacomún asociado u.ru trasmisión en serie trata crela demarcaciónde caracteresen una"o.r cade'a ;";t-";;""'fir.. El trasmisor y receptor pueden.estarprogramados lara reconocerel núme¡o de bits en cada caracte¡ en el t".*i"uit.-olJ]p".o'urrece allí el problema de detectar el primer bit en .cadacaract"t-á" manera que una cuenta pueda comen_
siguiente cu.a"te.. r.f i;.{{;.r" ilj caracteres estén áL:.*n:.ff,Í serie, depende A" ,i aet.asfe.el_ ciaessincrónico o::fi;1;ill"en "t--oao En la trasmisión en serie sinc¡ónica,
un caracter d,econtroL d,ecomuni_ caci ón, I lamadocaractera", ¡n r rli il, Á;:'.; ;":Ll':::"":. ::
tedesincro"i,u"láo enrre el
t*..i.". ? iir:;lT::nilf,";..illáf",i; códigoAscrr de 7 bits se-il;iTti b'd;-;;;;;;;";ü, en ra posición mássignificativa, uri;";a; ;;";';i'código de 8 birs 00010110.cuando "t "".u.t.r*.i;;ó;;." el t.asmiso;;;;i;;"" -ilr"*"
a enviar.u.u"t.l". de 8 bits éste envía varios caracteres envía el mensajeactual. La ca_ -sincrónicás dena continua inicial a" úii.'"""práau er receptores analizadapor el oo. caracter sincrónico. E_notras putáb.u., compruebalos últimos.ocho bits .con ggda o,rr"o J" reloi, el recéptor ,""iüia*. si ?.tir^"á ll.,"uurdu., con los bits del caracter .::1":::i-.i";""d;l acepra un bit más, rechazael bit anterior de mavor orden .o-prrr"bu v d. ;;;;; iá. íirr-T- ocho bits reci_ bidos por un cáracter a. éi".i"íir]ill p.ro se repite a".pro. de cada pulso de reloj v bir recibid".il;;";;;.;;;""",c.a urr caracter de sincronismo. una vez que se hava detect"a?, rr sincronismo,el receptorha_ brá demarcadoun caracter.o" "rracter,de uqui-un adelante er receptorcuenta cada ocho.bits y los aceptaco_mo un .oio Comúnm"rrl"r receptorcom_ pru€ba dos caracteresde "u*"t"r. sincronismo
ter¿..i,,..o i;o.li,l l:t o" ri" ir .;il."rcarac ::i:::.i,Ti"il':l ff.li,:T;
""*rrJo'J cleuna señalde ruido en ra línea. sln trur-i.or está inactivoy no tiene enviar,ésteenvíauna cadenacon_ 'El. ".uu.go, tinua de caracteresT:*l_;;l;;j;;üg de sincroni.-o.
receptor reconocetodos los teres de sincronismo como una carac_ condición p"." .i""rá"llár"u línea y pasa a un estado ratente sincrónico. E;;;; eitado, tu. ¿o. .r'idades mantie_ nen sincronismomientras no se esté co-rr.ri"undo ningún mensaje. El procedimientonormar antes descrito indica que el trasmisor en una interconexión de comunicaci¿. .i""r¿"lca se ha diseñadopara racte¡esde sincronismo-al enviar catru.-irión y tam|ién cuando hay caracteresdisoonibl". a"i'-j"iápii"".u¿or. no "o,'i""ro-J"'lu El recepr,oren una interco_ nexión de comunicaciónsincr¿nica'Je"be. en caracteresy debe poder identificar demarcarocho bits consecutivos cierto* como et caracrer de sincronir;;. tales "¿Jiñ'á"""u.u"r"r"s ¿;;;do el recepi;-. ;";;";"" ros ca¡acre_
5 6 8 D I s E Ñ oD E LS I S T E M A D E LM I c R o c o M P U T A D o R
cAP.12
res de sincronismo,se usan éstospara mantenerel sincronismocon el trasmisor, pero los caracteresde sincronismono se envían al microprocesador. El procedimientonormal para demarcar caracteresdurantJ la trasmisión asincrónicaes enviar al menos dos bits adicionalescon cada caracter. Estos bits adicionalesson llamadosbits de parada y d.ecomienzo.por ejemplo, una unidad de teletipo usa un código de caratter de g bits pero envía 11 bits por cada caracte¡ trasmitido. El primer bit es el bit de iomienzo. Este está seguidopor los 8 bits del caracter y luegopor los dos bits de parada. La convenciónen este terminál es que petmatteóeen el estado1 cuando no se trasmiten caracteres.El primer bit ós siempre0 y representael bit de comienzopara indicar el principio de un caractei. El ieceptor puededetectar el bit de comienzocuando la línea va de 1 a 0. un reloj en ei receptor conocela raz6n de trasferenciay el número de bits del caracter que se esperan. Despuésde que se reciban los 8 bits de caracteres,el receptorcomprueba los dos bits que están siempreen el estado1. La longitud de tiempo que la línea permaneceen el estado de 1 (parada)dependede la cantidád de tiempo requeridopara que el terminal seiesincronióe.un teletipo requiere dos bits de parada. otros terminales usan justamente un bit áe paiada y algunos uno y medio tiempo de bit para el períodode parada. Lá línea permaneceen el estado t hasta que se trasmita otro carácter. La Figura 12-16muestra los 11 bits del caracter típico del teletipo. Despuésde que los dos bits de parada han sido trasmitidos, la línea pnedeir a ó, indicando
Bit de ' + 8 b i t s d e i n f o ¡ m a c i ó¡nr r+r v r r u q L r u r r comlenzo Figura
12-16
o L:.^ + ,"'uo, de parada
T¡asmisión asincrónica en serie de un caracter
un bit de parada para un nuevo caracter. La línea permaneceráen el estado 1 si no sigue otro caracter inmediatamente. El procedimientonormal antes descrito indica que el trasmisor en una interconexión de comunicación asincrónica agregaios bits de comienzoy parada antes de la trasmisión en serie. El reCep[ordebe reconocerlos bits de comienzo y parada para demarcar el caractór. El receptor puede aislar los bits de información para trasferir al microprocesador. Los procedimientos de demarcación normalizados son incorporadoscon una interconexiónde comunicaciónen serie.La interconexióndé comunicación en serie puede ser solamenteasincrónica,sólo sincrónica o ambas cosas.
C o m p o n e n t e sd e i n t e r c o n e x i ó nú n i c o s Además de los-componentesde interconexión que trasfieren información en paralelo o en serie, se puede encontrar en uso comercial otras pastillas de
sEC. 12-8
A C C E S OD T R E C T O DE MEMORTA 569
interconexiónque-son dedicadas a ra aplicación de interconexiónparticu_ lar. Atsunas de ellas r" li;;;;;olltj,,uaci¿n, Controlador de disco floppy Interconexióndel tablero y el teclado Controlador de prioridad de inte¡rupción Temporizadorde intervalo Interconexiónperiférica universal El controladorde disco-flo-ppyes una da para controlar un pequeñ_oa'isp"sitiuo -pastilra de interconexióndiseña¿" en disco mas_ nético llamado discofioppy. ili;;;;;;nexión "r*á"r*-i"r,to de rableroy tecladoes adecuá_ da para hacer un ¡arriib"¿e r""-r"riri, á"-r"l.rrpt".J."our" detectar un accionamiento v para accionar ;;ú1.*" á";;;;;;i;;iii nr-¿rica o arfa_ numérica. El controlador de prioriáua "" d";;;;;"]ári'i".irita el manejo intgl¡pción para establecer prioridad; !e.-la t;il;r,iir", un vector de rnterrupción para el. microprocesado¡. u" ¿;;ór;;;il; intervalo es un contador programable que pued" rli pr"purado para contar un intervalo
v,paral"tuiru-pit-ir ,,,i".opro."r"áor-"u"ndo 9r9*.:11*ry er conrador arcanzauna cuenta preestablecida. una interconexié¡rperiféric-a;niversal es un componenteLSI que ac_ túa como un procesador'r/o...1ü'"1 .irr;;ópü]ñ;;. su propiopro_ cesador,la lógica de control, R4M ; nOU v L ;ñ";;.sos se parecea una pastilla microprocesadora. su n:ncio' es manipurar ras operaciones de los dispositivos,I7o ¿JiJ; que ver con los procedimientos de "" "r,
i ¡¡
;:f¿:,t""; ll,f,f,,::**a
Í
a I
almacenad;;t" partedeRoM ai lu i'tur"á..,.ii.
I
vo spa rticur"*. "i:,ii,:l :': r:H""ÍlJ::l.#: I;,* 3H¿i,1,1: sl.,y_:* "'
es supervisadopor er program? que se-ejecuta;; ;1";;"procesador. En esencia,ésta es .r.ta configuraciónde Jo, p.o""r"dores con el sistema cpu y el dispositivo de interco"nexii" esclavooperandoen pararelo. ""iuJr.ur 1 2 - 8 A C C E S OD I R E C T O DE MEMORIA
La trasferenciade datos. .entre un dispositivo de almacenamientomasivo, tal como el disco magnético o cinta mlgnética y el sistema de memoria limita a menudo -. u"to"iá"J ¿"r"mic.op.ocesador.Desconectandose -ru er procesadordurante tal l-de¡ando que er dispositivo periférico _trasferencia maneje la trasferenciadirectame"té á ü memoria mejorarÍara velocidad de la trasferenciay se i.aría el ;il"-";s eficiente. Esta técnica de trasferencia se llama DM¡ (accesodi.;;;'á" memoria). Durante la trasferen_ cia DMA el procesadorestará i;;;;; i" -".,"." que no tenga contror del bus del sistema. un controlador DMA "iara acciona io.' uu."". mane¡ar la trasferenciadirecramenteenrre.el dispositi"; lu *.rnori". ;;;:;;'| El microprocesadorse puede hacei que quede inactivo de muchas maneras. El método más común tr"¡iiitui lo. br;r;;i;;;. una señai de ".
I
;
I
$
lt
n
570
D I S E Ñ OD E L S I S T E M AD E L M I C R O C O M P U T A D O R
CAP. 12
control especial. La Figura 12-17 muestra clos señales de control usadas para la trasferencia DMA. EI terminal de entrada de requisíción de bus (Br? ) en el estado 1, es una petición al microprocesador para habilitar sus buses. El microprocesador termina la ejecución de su instrucción presente ¡' luego coloca sus buses, incluyendo la línea RD (lectura) y WR (escritura) en un estado de alta impedancia. Cuando esto se hace, el procesador coloca la salida de bus garantizado (BG) en el estado 1. Durante el tiempo en que BG : I el microprocesador estará inactivo y su bus inhabilitado. El procesador regresa a su operación normal después de que la línea BR regrese a 0 haciendo regresar su línea BG a 0 e inhabilitando los buses. La línea de requisición de buses se denomina algunas veces comando de retención y la garantía de bus como un reconocimiento de retención (hold acknowledge). Tan pronto como BG: 1, el controlador DMA puede tomar el control del sistema de buses para comunicarse directamente con la memoria. La trasferencia puede hacerse para todo un bloque de palabras de memoria, suspendiendo la operación del procesador hasta que sea trasferido todo t'{ bloque. La trasferencia puede hacerse palabra a palabra entre ejecuciones de instrucciones del microprocesador. Tal trasferencia se llama toma de ciclo (cycle stealing). El procesador solamente demora su operación por un ciclo de memoria para permitir la trasferencia I/O directa de memoria para tomarse un ciclo de memoria.
Microprocesador
AB US
Requisición de bus
DB US RD
Garantía de bus
Figura
Alta impedancia (inhabilitado) siBG: I
I4JR
12-17
Señales de control para la t¡asferencia DMA
El controlador DMA necesita los circuitos usuales de una interconexión para comunicarsecon el microprocesador.Además necesitaun registro de direcciones,un registro contador de bytes y un grupo de líneas de direcciones.El registro y líneas de direccionesse usan para comunicación directa con el sistema RAM. El registro contador de palabrasespecificael número de palabras que van a ser trasferidas.La trasferenciade datos se hace comúnmenteen forma directa entre el dispositivo periférico y la memoria bajo control del DMA. La Figura 12-18muestra el diagramade bloque de un controladorDMA típico. La unidad comunica con el microprocesadorvía el bus de datos y Iíneasde control. Los registrosen el DMA son seleccionados para el microprocesadorpor medio de unas líneas de direcciones,habilitando CS (selección de pastilla) y RS (selecciónde registro).Las líneasRD y WR en el DMA son bidireccionales. CuandoBG :0, el microprocesador se comunica con el registro DMA a través de la barra de datos para leer o escribir en los
Bus de ciireccirin
Separadores del bus de di¡ección
Registro de dirección
Registro de cuenta de bytes
WR Lógica de controi
BR
Registrode control
BG
Requisición DMA
Puesta a cero
Reconocimiento DMA
lnterrupción
Lectura z"esc¡itura
Figura
l2-18
Diagrama de bloque del controlado¡ DMA
registros DMA. cuando BG : l, el DMA puede comunicarse directamente con la memoria especificando una dirección en el bus de direcciones y activando su control RD o wR. El DMA se comunica con un dispositivo periférico externo y a través de las lí'eas de requisición y reconocimiento. El controlador del DMA incluye tres iegistros: un registro de dirección, un registro contador de bytes y un registro de control. El registro de direcciones contiene 16 bits que especifican ra posición deseada én la memoria. Los bits de la dirección pasan a través cle un separador de buses y van a parar al bus de direcciones,. El registro de direcciorres ,e incrementa después de cada trasferencia de byte DMA" El registro ctxrtador cle bytes ut-'a""ra el .número de bytes que se van a trasférir. Este registro se decrementa después de la trasferencia de cada byte y se compruebán internamente los ceros. El regist,ro de control especifica el mc¡do de trasferencia, bien sea hacia la memoria (escritura) o hacia afüera cle ella (lectura). Todos los registros en el DMA actúan para el microprocesador como una interconexión Iz'o' Así, el procesador puede leer o escribir en ios registros DMA bajo el programa de control, vía el bus de datos. E i D M A s e i n i c i a p r i r n e r o p o r e l m i c r o p r o c e s a d o r .D e s p u é s d e e l l o e l DM-A -comienza y continúa la trasferencia de datos entre la memoria y la unidad periférica hasta que se trasfiera un bloque completo. El procesá de inicio es esencialmente un programa que consiste ds instruccio.es I,..(J r t r u ei n c l u y e n l a d i r e c c i o n D M A ¡ r a r a s e l e c c i o n a r l < l sr e g i s t r o s p a r t i c u i a r e s . 571
572
D I S E Ñ OD E t S T S T E M AD E L M I C R O C O M P U T A D O R
CAP. 12
El microprocesadorinicia el DMA enviando la siguienteinformación a través del bus de datos: 1. La dirección de comienzodel bloque de memoria dondelos datos están disponibles(para lectura) o donde los datos están almacenados (para escritura). 2. La cuenta de byte, la cual es el númerode bytes en er bloque de memoria. 3. Los bits de control para especificaruna trasferenciade lectura o escritura. 4. Un bit de control para iniciar el DMA. La dirección de comienzose almacena en el registro de direccionesDMA. La cuenta de byte, se almacena en el registro áe cuenta de bytes DMA y los bits de control son almacenadosen el registrode control dei DMA. un; vez qr¡e se inicie el DMA, el microprocesadordetiene la comunicacióncon el DMA a.no ser que reciba una señal de interrupción o si éste quiere comprobar cuántos bytes han sido trasferidos. La posición del controlador DMA entre otros componentesen un sistema de microcomputadorse ilustra en la Figura 12-1g.El microprocesador se comunica con el controladorDMA por medio del bus de datos y direcciones como con la unidad de interconexión.El DMA tiene sus propia, direcciones las cuales activan las líneas CS y BS. El microproce.udo,inicia el DMA medianteel bus de datos.IJna vez que el DMA r""lb" el bit de control para iniciar, puede comenzar la trasf'erenciaentre el dispositivo periférico y el sistemaRAM. . Quald_oel dispositivoperiféricoenvía una requisiciónal DMA, el controlador DMA activa su línea BR para informar ai procesadorla liberación del bus de buses.El microprocesadorrespondecon .u línea BG informando al DMA que sus busesestán inhabilitados.El DMA colocaentoncesel valor corriente de su registro de direccionesen el bus de direcciones,inicia la señal BD o wR y envía un reconocimientoDMA al dispositivoperiférico. El dispositivo periférico coloca entoncesun byte en el bus de datos (para escritura) o recibe un byte del bus de datos (para lectura). Así, el DMA controla la operaciónde lectura y escritura y *u-ini.tra la dirección para ia memoria. La unidad periférica puede comunicarseentoncescon el !AN{ por medio del bus de datos para lá trasferenciadirecta entre dos unidadesmie.tras que el procesadorse inhabilita normalmente. Para cada byte que se trasfiere el DMA incrementa su registro de direccionesy decrementasu registrode cuenta de byte. si el regisiro de cuenta de byte no llega a cero, el DMA compruebala línea de réquisiciónque viene del periférico. Para un periférico de alta velocidad, esta línea será activada una vez se haya completadola trasferenciaprevia. se inicia entonc-esuna segundatrasferencia el procesocontinúá hasta que se haya -y trasferidotodo el bloque. si la velocidad del periférico -"rror, la línea áe requisición DMA puede presentarseun poco tarde. En". este caso, el DMA remueve la línea de requisición de bus áe manera que el microprocesador pueda continuar la eiecución del programa. cuando el periférico requiere una trasferencia,ei DMA solicita los busesde nuevo.
Microprocesador
Interrupción BG BR D
WR
Direcciones Datos
RD
llR
Di¡ecciones Datos
Control de lectura Control de escritura
Bus de direcciones
RD CS
WR
Direc- Datos ciones RequisiciónDMA
RS BR
BG
Controlado¡DMA
Dispositivo periférico
I
Lectu¡a ,/escritura
t
I l ¡ t
Figura 12-19
TrasferenciaDMA en un sistema de microcomputador
try ,¡ ; I
si el registro contador de bytes llega a cero, el DMA detiene cualquier trasferenciaposterior y remueve la requisición de bus. Este informa también al microprocesadorde la determinaciónpor medio de una requisición de interrupción. cuando el microprocesadorresponde a la inteirupción DMA, lee el contenido del registro de cuenta de byte. El valor de cero de este registro indica que todos los bytes fueron trasferidos sucesivamente. El microprocesadorpuede leer este registro en cualquier otro momento y comprobarel núme¡o de bytes ya trasferidos. a7?
574
D I S E Ñ oD E L S I S T E M AD E L M I c R o c o M F U T A D o R
CAP, 12
L-n controlador DIVIA puede tener más de un canal. En este caso. cada canal trene un par de señales de contror de requisición/reconair"i;;;; L)\lA,r se conectan a dispositivos periféricos sepárado*.úau canal tiene rarn'r.ien su registro de dirección propio y registró de cuenta de byte dentro cier D\1A. una prioridad entre los cánalLs puede ser establecida áe manera que los canales con mayor prioridad sean se¡vidos antes que los canares .i',n menor prioridad. La trasferencia I)IVIA es muy útil en muchas aplicaciones clel sistema ire mlcrocomputador. Esta se usa para una trasferencia rápida de informa_ r i L ) n e n i r e l o s d i s c o s f l o p p y o l o s c a s s e t t e sd e c i n t a m a g n e i i c a y el sistema RAM' Es útil además para comunicación con los sisterias te¡minales interactivos, que tienerr pantallas cRT o con pantallas de televisión usadas para juegos de video. Típicamente una imagen de lo mostrado en la pantalü se -renovada retiene en una memoria que puede ser bajo el control d'el procesador. El contenido de la puede ser trasfeiiclo a la pantalü perió-memoria dicamente por medio de la trasfereñcia DMA. _ una aplicacién potencial para el DMA, es en un sistema rnultiprocesador que forma una red de dos o más procesadores. La comunicación entre procesadores puede mantenerse con una memoria compartida qrra prr"á" ser accesada por todos los procesadores.El DMA ., ,r., -étodo conveniente para trasferir informacién entre la memoria común y los diferentes procesadores de la red.
R E F ER E N C I A S i' Peatman,J- 8., Microcomputer-BasedDesign. Nueva york: McGraw-Hill Book C o . ,1 9 7 7 . 2. Klingman, 8.K., MicroprocessorsysúemsDesign.Englewoodcliffs, N.J.: prent i c e - H a l l .I n c . . 1 9 7 ? . 3. Hillburn, J. L. y P. N. Julich, Microcomputers/Microprocessors: Hard.wore, software,and Applications.Englewoodcliffs, N.J.: prentice-Hall. Inc.. 19?6. 4. soucek, 8., Microprocessorsand Mícracomputers.Nueva york: John wiley. c Sons,1976. 5. osborn, A., An Introduction to Microcomputers,volume I: Basic concepts.py¡rkeley, Calif.: Adam Osbornand Associatés,19?6. Éi. osborn, A., An Introductíon to Microcomputersvolume 2: some Rear products. Berkeley,Calif.: Adam Osbornand Associates,lg1?. 7. McGlynn, D. R., MicroprocessorsTechnorogy,Architecture and, Apprícation-,. Nueva York: John Wiley & Sons,Inc., 1926. 8. Intel 3()80Microcomputer sysferns IJser'sManuol. santa clara, calif.: Intel Corp., 1975. 9 . wakerly, J. F., "MicroprocessorInput/output A¡chitecture',. computer, yol. 1 0 ,N o . 2 ( f e b r e r o1, 9 ? ? )p, á g s . 2 6 - 3 3 . 1 0 . cosley, J.y s.vasa, "Block rransfer with DMA AugmentsMicroprocessor Efficiency". ComputerDesign,Vol. 16, No. I (enero,tgiil, p¿gs.St_Ab.
{
1
PROBLEMAS papel presta cada l2-1. ¿cuál es la diferenciaentre una RAM y una ROM? ¿Qué microcomputador? ,tttu an un sistema bidirecl2-2. ¿Porqué es el bus de datos en ia mayoría de los microprocesadores unidireccional? es direcciones de que bus el cional mientras se catalogantípicamentecomo de 4, 8 ó i6 bits. ¿Qué microprocesadores Los 12-3. significa el número de bits? tiene 16 líneasy su bus de rJireccio12-4. un bus de datos de un microprocesador que puede nes contiene fZ líneas.¿Cuál es la máxima capacidadde memoria en pueden almacenal se byles al microprocesador? ¿cuántos ser conectada la memoria? y un microcomputador? ¿cuál 12-5. ¿cuál es la diferenciaentre un microprocesadc¡r pastilla y es la diferenciaentre un microcomputadorde una sola pastilla una mic roprocesadora? con termi12-6. considereun componenteLSI de 8 bits (memoriao interconexión) de buses separador y ningún separados y salida nales de datos áá entrada los cómo muestre t¡iestado, de extérnos ."p".udores .rrro. I;sando interno. bus a un conectados ser deben terminalesde entrada v üti¿" del componente de datos bidireccional. de 16 bits tiene un solo bus de 16 bits, el cual está com12-?. Un microprocesador una dirección de 16 bits o una palabra de datos de 16 para trasferir partido debe estar tit.. n"ptlqrr" po. qué un retenedor de dirección externa o registro Formumemoria' la de direcciones de y las entradas entre el microprocesador entre el mile un conjuntoposiblede señalesde control para la comunicación ..opro...ádo. y' lu *u,',oria. Haga una lista de la secuenciade trasferencias put" uttu lectura o escritura de memoria' c (arras12-8. ¿Qué contendránel registro acumuladorA y los bits d€ condición despuésde cada u'a de las siz (""roi y v (sobrecapacidad) tre), s (sig:no), (?2)ro' guientesinstrucciones?Él valor inicial del registroA en cada casoes operación de una después se af'ectan condición de bits los que todts L,r-u a r i t m é t i c ao l ó g i c a ' ( a ) S U M A R e l o ¡ r e r a n d ion m e d i a t o( C 6 ) , 0 ' ( b ) S U M A R e l o p e r a n d oi n m e d i a t o( 1 E ) ' o ' (c) Aplicar una función AND al operandoinmediato (8D)'n' (d) Aplique una función OR-exclusivadel acumuladora sí mismo' de la se12-9. Especifique el número de bytes en cada instrucción y haga la lista instrucciones las siguientes que ejecuta cuéncia de trasferencia def registro de la Tabla 12-2. (a) STA ADl6 AlmacenarA directamente M \ A D I 6 l < - A A<-A+MfFGl (b) ADD FG Sumar con un registro indirectamente A+-A-B (c) SUB B SustraerB de A A+-A*l (d) rNR A IncrementarA *AI)16i (e) JC ADl6 B i f u r c a c i ó ns i h a y a r r a s t r e S i ( C : 1 ) e n t o n c e s( P C 12,10.Repasela lista de instnrccionesde la Tabla 12-2e indique si las instruccrc' nes ocupan uno, dos o tres bYtes' 575
5 7 6 o I S E Ñ oD E LS I S T E M A D E LM I c R o c o M P U T A D o R
cAP.12
12-11.La primera instrucción listada en Ia Tabla L2-2es una instrucción de movimiento que trasfiere el contenido de B a A. ¿cuántas instruccionesequiva_ lentes hay para trasferir el contenidodel regiJtroRl a R2 dondeRt o.R2 es uno de los registros_ A, B, C, D, E, F o G? El registro fuente puede ser el mismo que el registro de destino. 12-12.La Tabla 12-1 lista tres instrucciones de sumar a A con diferentes modos de direccionamiento. Expanda la tabla para que ésta incluya ios siguientes mo_ dos de direccionamiento: (a) Direccionamientode página cero. (b) Direccionamientorelativo. (c) Direccionamientoindexado. Haga la secuencia de las operacionesnecesariaspara procesar cada instrucción. I2-13.ql códigode operaciónde una instrucción se almacenaen el lugar de memoria (7128)r6'El siguientebyte de memoria contiene (FB),0. ¿Dónde debe estar almacenadoel operandoen la memoriasi la instrucción'iieie el modosiguiente de direccionamiento? (a) Direccionamientode página cero. (b) Direccionamientode página presente. (c) Direccionamientorelativo. 12-14.Haga una lista de trasl'erenciasde memoria necesariaspara procesar una instrucción en modo de direccionamientoindirecto cuando la instrucción es un tipo de control (por ejemplo,salto incondicional). ¿cuántos ciclos de memo_ ria son necesarios? 1l-ii. ñgunos microprocesadores vienen con una pila registro interno (capacidad \\nr\lrilr\ üer\tru üe \e past\\\a üe\ mrcroprocé*"do..btros conrienen un registro indicador de pila con accesoa la memoriapara la pila. Discuta las ventajas y desventajasde cada configuración. 12-16.Si usted está familiarizado con una calculadoraelectrónicaque usa una pila para evaluar expresionesaritméticas, explique cómo opera el mecanismo de la pila cuandose calcula Ia expresión3 X 4 + b X 6. 12-17'Una dirección de regresode subrutina puedeser almacenadaen un registro índice en vez de una pila. Discuta las ventajas y desventajasde esta óonfiguración. r2-18, La parte superior de la pila contiene 5A y el siguiente byte hacia abajo de la pila es 14 (todos los númerosestán en hexadecimal). El indicador de pila contiene 3456. Una subrutina de llamado al lugar de instrucción 67AE (trós bytes) está localizadaen la dirección de memoria 013F. ¿Cuálesson Ios contenidos del PC, SP y la pila: (a) (b) (c) (d)
Antes de que la instrucción de llamado sea ejecutada? Despuésde que la instrucción de llamado sea ejecutada? Despuésdel regresode la subrutina? Después del segundo regreso de la instrucción de la subrutina seguida de aquella en (c)?
12-19.¿cómo podría darse una secuenciaa un programa que necesita dos pilas de memoria mantenidas a través del prngrama con un microprocesadorque tiene solamente un indicador de pila?
PROBLEMAS 577
\
12-20.¿Cuál es Ia diferencia fundamental entre el llamado de subrutina y una requisición de interrupción? ¿Es posible usar una pila de memoria común para ambos? 12-21.Un microprocesadorresponde a una requisición de interrupción insertando a la pila no solamente [a dirección de regresosino también el contenido del regis[ro procesadorque puede ser afectado mientras se atiende la interrupción. (a) Haga una lista de aquellos registros de Ia Figura 12-5 cuyos contenidos deben ser insertados hacia la pila. (b) ¿Cuántos ciclos de memoria se tomarían ahora para ejecutar una requisición de interrupción? 12-22.Obtenga el circuito del codificador de prioridad de cuatro entradas cuya tabla de verdad se especificaen la Tabla 12-4' 12-23.Derive la tabla de verdad de un codificador de prioridad de 8 entradas. r y y de 12-24.Especifiquelas cuatro direccionesvector (en hexadecimal)_cuando la Tabla 12-4son los bits 4 y 5 del byte de menor orden. Todos los demásbits del byte son 0. El byte de mayor orden es siempre FF. lZ-25.@) iCuántas pastillas RAM de 128X8 son necesariaspara configurar una memoria con capacidad de 2.0'A bytes? (b) ' ' ¿Cuántas líneas del bus de direcciones pueden ser usadas para accesar ).0¿A by¡gs de memoria? ¿Cuántas de estas líneas serán comunesa todas las pastillas? (c) ¿Cuántas líneas deben ser decodificadaspara la selección de pastilla? Especifique el tamaño de los decodificadores. 12-26.un microprocesadorusa pastillas RAM de una capacidadde 1.024x 1. (a) ¿Cuántas pastillas son necesariasy cómo podrían conectarsesus líneas de direccionespara conformar una capacidad de memoria de 1.024bytes? (b) ¿Cuántas pastillas son necesariaspara conformar una capacidad de memoria de 16K bytes? 12-27.tJnapastilla ROM de 1.024X 8 bits tiene cuatro entradas de seleccióny opera .or, ú.r" fuente de poder de 5 voltios. ¿Cuántas patillas son necesariaspara una pastilla de CI? Dibuje un diagrama de bloque y asigne nombres a los terminales de entrada y salida de la ROM. 12-28.Expanda el sistema de memoria de la Figura 12-13a 4.096 bytes de RAM y ¿.090bytes de RoM. Haga la lista del mapa de direccionesde memoria e indique qué tamaño de decodificadoresson necesarios. l2-zg.Vn microprocesadorusa una pastilla RAM de 25q_X8 y pastillas ROM de i.OZ¿x A.tst sisie-a á" -i.tofro"esador necesita 2K bytes de RAM, 4K bytes de ROM y cuatro unidades áe interconexión, cada una de cuatro registroa. Se usa una configuracíónl/O con mapa de memona.A los dos bits de mapara la RoM vor or¿e" del bus-dedireccionesse les asigna 00 para la RAM, 01 y l0 para los registros de interconexión. (a) ¿Cuántaspastillas RAM y ROM son necesarias? (b) Dibuje un mapa de direcciones de memoria para el sistema' (c) Dé un rango de direccionesen hexadecimalpara la RAM, ROM y la intercone¡ión.
'J
F
5 7 8 D I S E Ñ OD E L S I S ' T E M AD E ¡ - M . ICROCOMPUTADOF
cAP.12
12-30. t,n microprocesador de 8 bits tiene un bus de direcciones de 16 bits. Las primeras 15 líneas de ia dirección son usadas para seleccionar un banco de memoria de 32K bytes. Los bits de mayor orden de la dirección se usan para seieccionar un registro que recibe el contenido del br¡s de datos. Explique cómo se puede usar esta configiración para extender la capacidad de memoria del sistema a 8 bancos de 3K bytes cada una para un total de 256K bytes de memoria 12-i11,La interconexión de ia Fizura 12-14 se conecta a un t¡us de di¡ecciones de un microprocesador. Ei registro de datos del puerto A es seleccionado con una dirección hexadecimal XXXC, donde las X pueden ser cualquier número. (a) ¿Cómo deberían ser conectadas las líneas de direcciones al terminal de entrada (CS) de selección de pastiiia? (b) ¿Cuáles son las direcciones hexadecimales que seleccionan los otros dos registros en la intercc¡nexión? 12-32.¿Cuál es la diferencia entre trasferencia directa y una trasferencia con enIace en una rnterconexión periférica en paralelo? l2-33. ¿Cuál es la dif'erencia errtre una trasferencia en serie sincrónica y asincrónica de inforr..racirinen líneas de comunicación de larga distancia? 12-34. Considere ia posrbilidad de conectar un número de microprocesadores a un grupo de buses de datos y direcciones comunes. ¿Cómo se puede establecer una trasferencia de información ordenada entre los microprocesadores y la memoria común?
Circuitos integrad os d igitaIes
¡. ';l;at' :l ';
:ri-i:
:
1 3 -1
TNTRODUCCTON
Fl circuito integrado (cI) fue introducido en la Sección 1-9, y las diferentes familias digitales fueron discutidas en la sección 2-g. Este capítulopre_ senta los circuitos electrónicosbásicosen cada familia-iogica aigitat it v analiza su operacióneléct¡ica. se asume un conocimiento básico de elec_ trónica. Las familias lógicas digitales de cI son consideradas aquí como: RTL
Lógica de transistor y resistencia
DTL
Lógica de transistoresy diodos
12L
Lógica de inyección integrada
TTL
Lógica de transistor y transistor
ECL
Lógica de emisor acoplado
MOS
Semiconductor de óxido de metal
CMOS
Semiconductorde óxido de metal complementado
Los dos primeros, RTL y DTL, tienen soramente significadohistórico, ya que se usan muy raramente en nuevos diseños.La RTL fue la p.ime.a familia comercialque fuera usada extensamente.se incluye aquí, porquerepresentaun punto de partida útil para explicar las operácio'esbásióasde las compuert¿r_s digitales. Los circuitos DTi han .iá" i"-pi"zados gradual_ mentepor TTL. De hecho,la TTL esuna modificació" a" iu'"á*puerta DTL. La operaciónde la compuertaTTL serámás fácil ¿" despuésde ha_ ber discutidola compueltaDTL. Las características ""iu"á"i d; iii;ECL y cMos fueron presentadasen la sección 2-g. Esas familias tienen un gran nume_ ro de circuitos MSI y LSI. I'L y MoS se usan principalmenre para construir funcionesLSI. El circuito básicode cada faqi-li_alógica digital de cles una compuerra NAND o NoR. Este circuito es el bloqu! principal de const"rr"ción dei cual 579
5N
CIRCUITOS INTEGRADOS DIGITALES
cAP. 13
se puedenobtener funcionesmás complejas.Un retenedor,RS se construye con dos compuertasNAND o dos NoR conectadascola a cola. un flip-flop maestro-esclavo se obtiene de la interconexiónde cerca de diez compuertas basicas.un registro se obtiene de la interconexiónde flip-flops y compuertas básicas.cada familia lógica de cI tiene disponible un catálogodi los gmpos de circuitos integradosque contienen varias funcioneslógicas digitaies. Las diferenciasen las funciones lógicas disponiblesde cada familia iógica, no son tan acentuadasen las funcionesque logran, como en las ca¡acterísticasespecíficasde la compuertabásica de la cual se ha construido la función. Las compuertasNAND y NoR se definen normalmentepor las funciones de Boole que configuran en términos de las variablesbinarias. Cuando se analizan como circuitos electrónicos,es más convenienteinvestigar sus relacionesde entrada-salidaen términos de dos niveles de voltaje: un nivel olto (H) y un nivel bajo (L), (ver Figura 2-10).Las variablesbinarias toman Ios valores 1 y 0. cuando se adopta la lógica positiva, se asigna el valor de I al nivel de voltaje alto y el binario 0 al nivelde voltaje bajo. Apartir de la tabla de verdad de una compuerta NAND de lógica positiva, ." d"dn"" ., comportamientoen términos de niveles altos y bajos, como se estableceen la Figura 13-1. El comportamientocorrespondientede la compuerta NoR se estableceen la misma figura. Estas proposicionesdeben sei recordadas, )'a que se usarán durante el análisis de todas las compuertasen este capítulo. Las diferentes familias lógicas digitales son usualmente evaluadas comparandolas característicasde la compuertabásica en cada familia. Las característicasmás importantes fueron discutidas en la Sección2-g. Estas se listan aquí como referencia. Entradas Salidas
xy LL LH HL HH
H H H L
Entradas Salidas
Compuerta NAND (a) Si cualquier ent¡adaestábaja (L) su salidaseráalta (H). (b) Si ¿odoslas entradasestánaltas (H) la salidaestarábaja (L).
,-l-L' Compuerta NOR
xy
(a) Si cualquierentradaesalta (H) Ia salida esbaja (L).
LL
(b) Si ¿od¿slas entradasson bajas (L), la salidaesalta (H).
LH HL HH
L L L
'-ñ-' v-1-/
Figura 13-l Condicionesde entrada y salida para las compuertas NAND y NOR de lógica positiva
sEc. 13-2
CARACTERISTICA DSE L T R A N S I S T O R BIPOLAR 581
l. tr'an-out o capacidad de carga, especifica er número de cargas normales que pueden accionarse co.t ia salida de la compuertaiin menoscabo de su operación normal. una carga normal se define como Ia corriente que fluye en la entrada de ,r.ru de la mis"o-p.rerta ma familia. 2. Di'sipación de potencio es la-potencia consumida por una compuerta, la cual debe ser suministrada por la fuente de poder. 3. Retardo de propagación es el tiempo de retardo de transición promedio para que la señal se propague de la entrada a la salida, cuando las señales cambian en valor. 4. Margen de ruido es el límite del voltaje de ruido que puede estar presente sin menoscabo de la operación adecuada dei circuito. El transistor de juntura bipolar (BJT), es el transistor familiar de juntura npn o pnp. En contraste, el transistor de efecto de campo (FETi, se dice que es unipolar. La operación del transistor polar depen¿l aer flujo de dos tipos de portadores: electrones y huecos. un iransistór unipolar depende del flujo de un tipo de portador mayoritario que pueden ser electrones (canal n) o huecos cinco familias lógicas listadas previamente, RTL, lcg1al¡rl._Las_primeras DTL, TTL, ECL e I2L, usan transistores üipolares. Las últimas dos familias lógicas Mos y cMos usan un tipo de transistor unipolar llamado transistor de efecto de campo semiconductor de óxido de metal, abreviado MoSFET o Mos como apóstrof'e.Se comenzará describiendo las características del t¡ansistor bipolar y las compuertas básicas usaclas familias lógicas bipolares. Se explicará la operación del transistor 9l^lT MOS en asocio con sus dos familias lógicas.
13-2 CARACTERISTICD AS EL T R A N S I S T OB RI P O L A R Esta sección está dedicadaal repasodel transistor bipolar, como se aplica a circuitos digitales. Esta información se usará para ét unílirir del ciicuito básico en las cinco familias lógicas bipolares.Los transistoresbipolares puedenser del tipo g.r-"?pl o pnp.Además, éllos están construidos nio o material de silicón semiconductor.Los transistorescI, sin "o' son hechoscon silicón y son comúnmentedel tipo npn. "-Tu.go, Los datos básicosnecesariospara el análisis de tos circuitos digitales, pueden ser obtenidos por inspección de las curvas típicas características del transistor de silicón npn de emisor común, mostraáoen la Figura ts-i. El circuito en (a) es un simple inversor con dos resistenciasy un transistor. La corriente marcada r. fluye a través de Ia resistenciaR" y el colector del transistor. La corriente 1, fluye a través de la resisiencia R, y la base del transistor. El emisor se conectaa tierra y su corriente Ir ! I, * Io' El suministro de voltaje está entre vrc y- tieira. La entrada está en-treV, y tierra. y la salida entre V, y tierra. se asume una dirección positiva para las corrientesde la manera indicada. Esas son las direccionesen las cualesfluye la corriente normalmen-
t I
I I
Í
t It il
(a) Circuito inve¡sor
tc (mA.¡ 0,6
l'c ('
0,5
R;
u,4
0.:i It : fi,ZmA V'.r,(V) (b) Caracteristica rle labase de t.ransistor Figura
1l)-2
(c ¡ üaracterística delcolector del transislor
(l:rracteristir:as ciel t¡ansistor de siiicón npn
te en un transistor npn. Las corrientes de colector y base,I" e 1, son positivas cuando fluyen ar transistor. La corriente deí .I, es positrva c*ando fluye fuera del t¡ansistor, cre la manera ;;*; "-r.o, .r" inelica pr.rria fleciia e' el terminal clel er'isor" El sírnbolo v;." signid;a ia cuiaa de volta-ie dei colector al emisor y es.siempre positiva. corresp.ndientemente, \'",, es la caída de voltaje-en la ju'tu.á base emisor- ñsta juntura se polariza directarncnte cuando vnr, *u positivo. s. p"i"riá inversamente cuando lr'r, es negatrvo. La característica gráfica base emisor se muestra en la Figura rB-2(b). Esta es-una gráfica de v"r, versus 1,,. si el voltaje bure es menilr que 0,6 v'- se-diceque el transistor está en corte y n o f l u y e"-i.o. corriente de base. c'uando la juntura base emisor está polariáda ¿ire"t"*errte con un voltaje mayor que 0,6 v, ei transistor condu u fo' ,"*;u"ru a subir m'y rápido, mie-ntras eue "u través der J i",D) .v¡¿ cambia muy poco. El voltaje transistor de conducción " raras veces éxóede 0,g V. Las características gráficas coiector emisr-¡r,conjuntamente con la linea de carga se muestran en la Figura 13-2(c).cuanclo ü;, * " " o r q u e ( ) , 6v . el transistor está en corte cotr 1, : 0 y fluye una " r Aespreciable en "o."¡""t" 582
sEc. r 3-2
CARACTERISTICA DS EL TRANSISTOR BIPOLAR 583
el colector. El circuito colector emisor se comporta entoncescomo un clrcuito abierto. En la región actíua, el voltaje de colector V", puede estar entre 0,8 V y V... La corriente de colector I" en esta región puede ser calculada para ser aproximadamenteigual a l"hrr, donde h., es un parámetro del transistor llamado la gananciade corríentedc. La corriente de colector máxima no dependede Iu, sino del circuito externo conectadoal colector. Esto es debido a que Vc¿ es siempre positivo y su menor valor posible es 0 V. Por ejemplo,en el inversor mostrado,se obtiene el máximo 1,' haciendo Vrr: 0 para obtener I¿ : Vsg/R¿. Se ha establecidoque 4:hr¿Ia en la región activa. EI ¡Ltrámetro ho" varia ampliamente sobre el rango de operacióndel transistor, ;*;¡1¡sg aún útil de usar un valor promedio para propósitos de ar¡ái:¡r's-fl,rr un rango de operacióntípico, hp, es alrededor de 50, pero bajo tieria:; condiciones podría bajar hasta 20. Se debe tener en cuenta que la cc¡"¡'ientede base 1, puede aumentarsea cualquier valor deseable,pero en Ia corriente de colector 1. está limitada por parámetros de circuitos externos. Cq.,mo consecuencia.se puede llegar a una situación donde herl" es mayor que Ic. Si esta condiciónexiste, se dice que el transistorestá en la región de saturacíón. fuí, Ia condición para saturación se determina a partir de la relación:
t,>ü
1."
donde 1.. es Ia máxima corriente de colector que fluye durante la saturación. l.o no es exactamente cero en Ia región de saturación, pero normalmente está cerca de 0,2 V. Los datos básicos necesarios para analizar circuitos digitales de transistores bipolares son listados en la Tabla 13-1. En la región de corte, Vo. es menor que 0,6 Y, V", se considera un circuito abierto y ambas corrientes son despreciables. En la región activa, V'u" está cerca de 0,7 V, V(.E puede variar en un rango grande e 1. puede calcularse como función de .Iu. En la región de saturación, Vru a duras penas cambia pero Vr" cae a 0,2 V. La corriente de base debe ser lo suficientemente grande para satisfacer la desigualdad listada. Para simplificar el análisis, se asume que Vrn, : 0 , ? V s i e l t r a n s i s t o r e s t á c o n d u c i e n d o ,b i e n s e a e n l a r e g i ó n a c t i v a o d e saturación. Tabla
Región Corte Activa Saturación *Se
13-1
Parámet¡os típicos de un transistor de silicón npn
Vae(Y)'
< 0,6 o6-o7 0,7- 0.8
vcs (Y) Circuitoabierto > 0,8 0,2
Relación corriente
Is: lr-Q I¿ = hpsls Ia > Ics/hFE
asume que Bo, es 0,7 V si el transistor está conduciendo en la región acriva ,r de saturación.
5U
CIRCUITOS INTEGRADOD S IGITALES
cAP. 13
El análisis de los circuitos digitales puedetomarse usandoun procedimiento prescrito: para que cada transistor en el circuito determine si su v' es menor que 0,6 v. si es así, el transistor está en corte y el circuito colector emisor se consideraun circuito abierto. Si vr" es mayor que 0,6 V, el transistor puede estar en Ia región activa o de sáturación. caicúlese la corriente de base,asumiendoeue Vr, :0,2 V. Luego calcule el valor máximo posible de la corriente de colector 1.., asumiendoV", : 0,2 V. Estos cálculos estarán en términos de los voltajes aplicadosy los valores de las resistencias.Entonces,si la corriente de base es lo suficientementegrande para que Iu 21", /h¡r, se deduce que el transistor está en la región de saturación con v.u : o,2 v. sin embargo,si ]a coniente de basees menoÍ y la relación anterior no se satisface, el transisto¡ está en la región activa y se recalcula la corriente de colector 1" usando la ecuación I":hrrl;. Para demostrar lo anterior con un ejemplo, considéreseel circuito ilversor de la Figura 13-2(a)con los siguientesparámetros: Rc:
I kQ
Vcc : 5 V (voltajede suministro) H : 5V (voltajedealto nivel)
Rs:22kQ h", : 50
L : 0,2V (voltajede bajo nivel)
Con el voltaje de entrada V,: L:0,2 V, se tiene que Vr, < 0,6 V y el transistor está en corte. El circuito emisor colector se comporta como un circu_ito abierto;de maneraque el voltajede salida V":5 V=Ii. . C_onel voltaje de entrada V, : H: 5 V, se deduceeue V¡, > 0,6 V. Asu_ miendoque Vr, :0,7 se calcula la coniente de base: ,^ -D
V' - V"":
!--o-7
Rs
zrd:
o'195 mA
La corrientemáxima de colector,asumiendoVc¿:0,2 V es: , L- _D- V r r - V r r - 5 - o 2 Rc ffi:4'8mA Se compruebaentoncesla saturación:
: ," , 0,1e5
E: #:
o,oe6mA
y-se encuentra que la inecuaciónse satisfaceya que 0,195> 0,096.se concluye que el transistorestá saturadoy que el voltaje de salida v.:v"": 0,2 V: ¿. Así el circuito se comportacomo un inversor. El procedimientodescrito anteriormenteserá usado de manera extensa durante el análisis de los circuitos en las siguientessecciones.Esto se hará por medio del análisis cualitativo, es decir, sin escribir las ecuaciones numéri-cas-específicas.El análisis cuantitativo y los cálculos específicos serán dejadoscomo ejerciciosen la sección de pioblemas, al finai de este capítulo.
SEC. l3-3
C | R C U I T O SR T L y D T L
Sgs
Hay ocasionesdonde no solamente fos t¡ansistores,sino también ros diodos se usan r?:^:,^._r"_-". U" aiüo J;¡;'."";""struye de un ¡iqi;;lq;. transistor con el"" colector conectaáo a l" ¡".", en la Figura 13-3(a)'El símbolousadoputu "oÁ;;";;;;.a se muest¡a en la Fig'ra rB-3(b).El diodo se comporta esenciaiment. "i-áioao il;;;;;ü;"'"-i'.o. de un rransistor. La característicagrrfi;;--;.t*da ""-" ¡; e-n la Figura 1B_B(c), es similar a la característicade un i.""rirt".. ée*pued" qu" el dio_ do está inactivo v no condu"i.;a; .;;d" ;, "o""i;i;;;;r,"", ;;i;; ¿" l"ii"¡" de polarización directa, vr, es menor que 0,6 v. cuando er diodo conduce,ra corriente I, fluve en la dirección most¡aa" r" ñig"*-iáládi,'] u, o"r*".,""" ce¡ca de 0,7 V' Se debe agregar.,"" "" tÁi"."ncra exte¡na para limitar la corriente en el diodo .que."o""a".é, vu-lu. su voltaje permanecebastante constantecomo fracción de voltio.
ID (mA)
(a) T¡ansistor adaptadopara usa¡secomodiodo
-
ID
lo-+{-o +,,
vD(v) 2
vD
{
(b) Símbolográficodel diodo Figura
lB-3
l
(c) Ca¡acte¡ísticadel diodo
Símbolo del diodo de silicón y características
13-3
C I R C U I T O SR T L Y D T L Compuerta básica RTL
El circuito brísicode.rafamiria lógicadigital RTL es la compuertaNoR mostrada en la Figura 13-4. cada se asocia con una resistenciay un transistor. Los colec.toresde los"""tr"ártransistoresestán conectadosa la salida. Los niveles de voltaje para el .it""iio .o" 0,2 v para el niver bajo y de 1 a 3,6V para el nivel alto.El análisis de la compuertaRTL es muy simprey sigueel procedimiento esbosadoen la sección anterior. sic,ruiq,,,i". ur,í.u¿'u-á" lu compuerta RTL es alta. el correspondientetransistor se lleva a satu¡ación.Esto cau_ sa que la salida sea baja independientemente de la entrada de los otros transistores. si todas las entrádas están ur;á., ó,2 v',^'ál*i.u.r.i.tor esta_ rá en corte, poreue VBE<0,6 V. Esto que la salida del circuito sea alta hasta u"lrcá.." ai".raror d"i ;I"t".j"""rrr" de suminis tro vr". Esto confirma las condicionesesrablecidasen lá f-i-ñá rB_l para la compiuertaNOR. No_ teseque el margende ruido para ra a" I"n"l'ü"¡"'"Jóru - o,r: 0.4 \-. "ñtr"¿u
:
¡
I
vr, = 3,6Y
Y=(A+B+Ct'
Figura 13-4
CompuertaNOR básica RTL
La capacidadde carga (fan-out) de la compuertaRTL está limitada al valor del voltaje de salida cuando está alto. A medidaque la salida estécargada con las entradas de otras compuertas,se consumemás corriente por la carga. Esta corriente debe fluir a través de Ia resistenciade 640 o. Un cálculo simple (ver Problema 13-1) demostrarási h¡" cae a 20, el voltaje de salida caeráa 1 V más o menoscuando la capacidadde carga es 5. Cualquier voltaje por debajode 1 V en la salida, pudiera no accionarel siguiente transistor en saturación como se requiere.La disipación de potencia de Ia compuerta RTL es cerca de 12 mW y el retardo de propagaciónpromedia 25 ns. C o m p u e r t a s b á s i c a sD T L El circuito b¿ísrco en la familia lógica DTL es la compuertaNAND mostrada en Ia Figura 13-5. Cada entrada'está asociadacon un diodo. Los diodos y la resistencia de 5 kQ forman una compuerta AND. El transistor sirve
5ka Pnt
Figura 13-5
586
D)
CompuertaNAND básica DTL
S E C1. 3 - 3
CI|RRCCUUI TI O C T SO S R T T ; E D gr r. ,
como amplificadorde cor¡ientemientras que invierte la señal digitai. Los dos nivelesson 0,2 v para el nivel bajo y entre 4 y b v para er ni'ei aito. El análisisde la compuertaDTi debeestar ¿" a las condicio_ nes listadas en la Figurg i3-1 para la compuertaNAND. ""ri".Á Si cuarquier compuerta de entrada está baja, e.r 0,2 v, el corresp""Ji""t"áiodo conduceIa cor¡iente a través de !'i. y la resistenciade 5 K o de entrada. El voltaje en el punto P es igual a1 voltaje de entrada d,e0,2v -e. u"u caídade dio_ do de 0,? V. para un total de 0,é v. para que el transistor comiencea conducir, el voltaje en el punto p debe .ob."paru, r; p";;;;;l de una caída Vuo en Q1más dos caídasen los diodos Dt-y D2, ó fr¡¡:1,8 V. Comoel voltaje en P se mantiene en v po. el di,odoáe e.rtradaque conduce,el _0,g transistorestaráen corte y el voltaje de salida estaráaltá, en b v. si todas ias entradasde las compuertasson altas, el transistor se lleva a la región de saturacjg"- ELvoltaje de p es atro.u rguaf u v", ,.a, las dos caídasa través de ros_ diodosD 1 y ti 2, ó 0,7x B : 2,1vl como todas las entra_ das estánaltas en s V y :2,iY,los diodos¿e á"traJu re-polarizaninver_ Y" samentey dejan de conducir. La corriente de base es iguaf a la diferencia de co-rrientesque fluyen en las dos resistenciasde 5;i; y para llevar el transistora saturación(ver problema tt-t.'b"" es suficiente el transistor saturado,la salida caea v,., de 0.2 v, lo cual es un niver ba¡o pa.a la compuerta. I,a disipaciónde,poderde-una compuertaDTL es cercade 12 mwy el retardo de propagaciónpromedia 30 ns. El margen d" .rrido u. cerca de 1 V y la capacidadde cargaes tan alta y cercanaa g como seaposible. La capacidad de carga de la compuertaDTL está limitadu po, tu áiriente máxima que puedefluir en el colector del t¡ansistor saturadb (ver problema 13_B). I-a capacidadde cargade la compuertaDTL puede ser aumentadacambiando uno de los diodosen el circuifo basepor un transistor como se muest¡a en la Figura 13-6.rl:l transistor el se mantieneen la regiónactiva cuando el transistor de salida e2 se satura. como el circuito modificado puede suplir una cantidad de corriente "o.rr"".r""rr"ia, de base mayor al tran-
\'= (AItC)'
f
t l
¿: I
¡l
Figura
l3-6
Compuerta modificade DTL
¡ IJ I
588 CIRCUITOS INTEGRADOD S IGITALES
CAP. 13
sistor de salida. El transistor de salida puede soportar una cantidad mayor de corriente del colector antes de ir a saturación.Parte de la corriente de colector viene de los diodos conductoresen las compuertasde carga cuando Q2 está saturado.Así, un aumento de la corriente saturada perm"i-.ible de c-olectorpermite ser conectadacon más carga a la salida, ü cual aumenta la capacidadde carga (fan_out)de la compu"erta. L ó g i c a d e h i g h - t h r e s h o l-dH T L Hay ocasionescuando los circuitos digitales debenoperar en un ambiente que produce señalesde ruido muy altás. para operar en tales circunstancias, hay una clase-de_ compuerta,tipo DTL, ¿i.po"i¡ü q"e poseeun umbral alto de inmunidad al.ruido. Es,t9'tipode compuerta,e'llu*u compuerta lógica de umbral atto (high-threshold-loli"l tfff lj La compuertaHTL se muestra en lu Figr.^ ís-r. comparándola con la compuerta DTL modificada_dela Figura 13-6, se nota que el suministro de voltaje se ha elevadoa 15 V y que.J.rru,rr, áiodo z"nei (z) en vez de un diodo normal. El diodo Zene. iiene la característicade mantener un voltaje constantede G,9V cuandose polariza inversamente. Para que la salid-ade e2 conduzca,el emisor de 1 debe ilevarse a un e potencial de una caída v"" más el voltaje fijo del zeier de 6,9 v, para un total de 7,5 V. El nivel bajo para la compuertapermanece en 0,2 Vj pero el nivel alto es cerca de lb V. con la entraha d,eti,z v, la basede en 0,9 V y Q2 está en corte. La señal de ruido debe ser -uvoiq"" e1'éstá T,b v para cambiar el estado de Q2. con todas las entradas en 15 V, el transistor de salida Q2 se satura. La señal de ruido debe ser -uvo. qrr" i,b v (en ra dirección negativa) para desactivar el transistor. Así, ei margen de ruido de la compuertaHTL es cerca de ?,5 v para ambosnivelesde voltaje.
/<'c = 15 v
+
Figura
13-7
Compueria high-threshold_logic (HTL)
,13-4
L O G I C AD E I N Y E C C I OINN T E G R A D (AI ' L )
La lógica de inyección integrada es la farnilia lógica digital más reciente para ser introducida comercialmente. Su principal ventaja es la densidad alta de compactación de las compuertas que se puede lograr de una área dada de una pastiila semiconductora. Esto permite colocar más circuitos en una pastilla para formar una función digital compleja. Como consecuencia, esta familia se usa principalmente para funciones LSI. No es disponible en cápsulas SSI que contienen compuertas individuales. La compuerta básica I2L es similar en operación a una compuerta RTL con varias diferencias mayores: (1) La resistencia de base usáda en Ia compuerta RTL se remplaza completamente en la compuerta I2L. (2t La ¡esistencia de colector usada en la compuerta RTL se remplaza por un transistor pnp que actúa como una carga para la compuerta IrL. (3) Los transistores I2L usan múltiples colectores en vez de los transistores individuales usados en RTL. El diagrama esquemático de la compuerta básica I2L se muestra en la Figura 13-8. Tiene un transistor npn, Q 1, con colectores múltiples para las salidas. El circuito base tiene un transistor pnp, ?1, conectado al-voltaje de suministro vuu. De la misma manera que otras familias lógicas, la compuerta lógica básica I2L no puede ser analizada cuando está sola. se deben mostrar sus interconexiones a otras compuertas para que tenga algún sentido. La Figura 13-9 muestra la interacción de la compuerta básica formada por Ql y Tr con otras compuertas en la entrada y la salida. se puede ver que un colector de Q2 suministra la entrada a la compuerta básica. El transistor 71 en la compuerta básica actúa como una carga que inyecta corriente al colector de Q2. Uno de los colectores de Ql actúa como una salida de la compuerta básica y se conecta a la base de QB. El transistor ?3, conectado a la base de Q3, actúa como una carga para inyectar corriente al colector de Q 1 en la compuerta básica. La compuerta básica actúa aquí como un inversor y su circuito equivalente se muestra en la Figura 13--g(b) . El usar colectores múltiples y un transistor pnp en vez de uná resistencia de carga, resulta un método más eficiente de construcción, -mái ya que reducen el área de la pastilla necesaria para reducir el empaque de circuitos. El V " s: 7 , 5 Y
Salidas Entrada
I'igura
l3-8
Compuerta básica I2L
1
589
I {
F
l'eB
T
73_^ ,-t = (b) Circuito equivalente
(a) CompuertainversorQ 1 Figura 13-9 Conexiónde otras c o m p u e r t a s a l a s e n t r a d a s y salidas de una compuertabásica I J L
(ArB)'=A'B'
( A + B ' ) '= A ' B
(a) Diagrama lógico Corriente de inyección
(b) Diagrama del circuito Figura
590
l3-lo
Conexiones típicas entre compuertas I2L
(TTL) 591 DETRANSISTOR.TRANSISTOR LOGICA
SEC,13-5
a la base de una comtransistor PnP, a pesar de que se muestra conectado todas las demás compara colector carga de ñ puerta dada, actúa ;;;; puertasque se conectana estabase' a otras compuertasconforLa compue"" Oi.i." I2 L cuando se conecta en el diagramadel circuito ma una función r¿gil"'icin. nrto ,u demuestra circuito confiSrra' es qy" 9i mostradoen la Figuru i¡-fO' La función lógica 13-10(a),la cual Figura la en gráficós dibujada con símbolosde compuerta Esto se inversor' y un NOR muestra la interconexión de áo' "o"'pt"rtas en muestra se qr, q2 y Q3, como complementacon t....o-prertas I21,, para también muestran se la Figura i3-10(b).^;".-;;;";istores Ae sailda están conectadospara forde Q2 Q1ve.qrr.*l-."L"l""i""tores completar por el transistorQ2' "l coÁptementada e. mar una función \óIi. L" eotrada.a una segundafunpara.formar juntós conectan se de Q3 v Q1 Los colecto¡s,s corriente de inyección ción NOR. La base de cada transistor ttptt."óib.-.la emisoresdel trany 1'2.Los *ultipi"."1 de los transistorespü¿.."f.clot facilitar la conspara pnp sistor npn .. .on..iu'.,1 i" ¡ur. del tránsistor trucción. (TTL) 1 3 - 5 L O G I C AD E T R A N S I S T O R - T R A N S I S T O R ligera mejora de la compuerta La compuertaoriginal básica TTL fue una tt agregaronmejoras adip.rgcluió TTI' DTL. A medida q".-ü^-t"t"ofosíu r"."iri" ló[ica se convirtió en el tipo más cionaleshasta tal il;"";;;".ti" Iiay muchas.versiones(o series) usadopara el diseñode sistemasdigitales. y cáracterísticasde cinco versiode compuertu, ¡¿.iJuJ'C'ii- i;. nJmbres con su retardo de propaganes aparece''e,' la-Tablu t3-2, conjuntam-ente velocidad-potenciaes producto El ¿e dirlpaii¿" a"'potencia. ;tó"; ñ;;". laé compuertasbásicas. Este es un parámetro importánte para comparar y la disipación de potencia medida un producto ¿.f ."i"ráo-á"-propugu.ión parámetroes-unacifra deseable' en picojoules(pJ). Ú" u"to' balo pa'a este dado puede lograrsesin disiDorqueindica q.,. * retardo d. p.opugucián pacón de potenciaexcesivao viceversa' normalizada fue Ia primera versión en la familia La compue.tulii TTL.Estacompuertabásicafueconstruidacondiferentesvaloresderesist e n c i a s p a r a p r o d u c i r c o m p u e r t a s c o n b a j a d i s i p a c i ó n o m á s a l t agrandevelocidad. saturada depende El retardo ¿u p.op"?u.ió"-á; una familia lógica tiempo de y constantes mente de dos f""ú;a; ;i;mpo de almacenamiento
Nombre
TTL TTL TTL TTL TTL
normalizada bajo poder alta velocidad SchottkY SchottkYbajo Poder
Disipaciónde
Abreviatura
(ns)
potencia (mW)
TTL LTTL HTTL STTL
l0
LSTTL *
JJ
6 J
9,5
l0 I 22 l9 2
I
r J
Tabla 13-2 VersionesTTL y sus característici'
propagación
.i
jli
Producto velocidad( p J )I i a (p'J potencla
100 JJ
r32 )I
19
t tI i
¡
5 9 2 C I R C U I T O ISN T E G R A D ODSI GT A L E S
cAP. 13
, R C . R e d u c i e n d oe i t i e m p o d e a i m a c e n a m i e n t o s e a u m e n t a e l r e t a r d o d e p r o pagación. Reduciendo los val{-¡resde ia resistencia en el circuito, se reducen las c,onstanrtes de tierrqo R(' s .r ¿-tlr\e\ña e\ retards deqropaqariórr. Psr s u p u e s t o , s e s a c r i f i c a u n a c i r s . p a c : ' , ni e p o t e n c i a a l t a y a q u e l a s r e s i s t e n cias bajas requieren mas corriÉn:t oe .a t'uente de ¡roder. La velocidad de la compuerta es inversamente prL,D_:(-:,::al al retardo de propagación. En la compuerta TTL cie bar¿ ¡:ercia los valores de las resistencias son mayores que en la compuena l ::::alizada para reducir la disipación de potencia, pero se aumenta e.:¿:-'-:.:, cie propagación.En Ia compuerta T T L d e a l t a v e l o c i d a d , l o s v a l o r e ¡ i = . - r s r e s i s t e n c i a ss e d i s m i n u y e n p a r a reducir el retardo de propagacion. x: :. aumenta la disipación de potenc i a . L a T T L S c h o t t k y e s I a ú l t i m a n e i , : a e ¡ r l a t e c n o l o g í aq u e e l i m i n a e l t i e m p o d e a l m a c e n a m i e n t o d e l o s r r a : . : . s t L J r e se v i t a n d o q u e v a y a n a s a t u ración. Esta versión aumenta la ve.:c^caci de operación sin un aumento excesivo en la disipación de potencia La'e¡sión TTL Schottky de baja potencia sacrifica un poco de velociciai para reducir la disipación de potencia. Es más o menos igual a la TTI- :r,,,:'nalizadaen retardo de propagación, pero tiene solamente un quinr.-, ce ci:stpación de potencia. Tiene el mejor producto de velocidad-potencia ]' comrI consecuencia, se convirtió en la versión más popular para diseños nue\',,s. Todas las versiones TTL están disp,nib,es en paquetes SSI y en formas más complejas como funciones \lSI I LSI. Las diferencias en las versiones TTL no están en las funciones drgltales que ellas conforman, sino en los valores de las resistencias y el tipo de rransistores que usan su compuerta básica. En cualquier caso-las compuertas TTL en todas las versiones vienen en tres tipos diferentes de configuraciones de salida. 1. Salida de colector abierto. 2. Salida de poste totémico. 3. Salida de tres estados (o triestado). Estos tres tipos de salidas serán considerados en asocio con la descripción del circuito de la compuerta básica TTL. Compuerta con salida de colector abierto La compuerta básica TTL mostrada.en la Figura 13-11 es un circuito modificado de la compuerta DTL. Los emisores múltiples en el transistor Q1 están conectados a las salidas. Estos emisores se comportan la mayoría del tiempo como los diodos de entrada en la compuerta DTL ya que ellos forman una juntura pn con su base común. La juntura base colector de Q 1 actúa como otro diodo de juntura pn correspondiente a D 1 en la compuerta DTL (ver Figura 13-5). El transistor Q2 remplaza al segundo diodo D2, en la compuerta DTL. La salida de la compuerta TTL se toma del colector abierto de Q3. una resistencia conectada a v"" debe agregarse externamente al paquete de cI para que la salida "hale" hacia el nivel alto de voltaje, cuando Q3 está en corte; la salida actúa como circuito abierto. La razón para no colocar la resistencia internamente, será discutida posteriormente.
B
Figura lB-ll
CompuertaTTL de colectorabierto
Los dos niveles de voltaje de la compuertaTTL son 0,2 "J. v para er nivel bajo y de 2,4 a b V para el nivel alto. El circuito b;i;; .r'u compuerra NAND. si cualquiei entrada es baja, la corresponñ;;; base emif,r't.rra sor en Q1 está polarizadadirectameníe.Fl.lvoltáj";i;l;" de Q1 es igual al voltaje de entrada de 0,2 v más una caída v,"n aá o,l üJ o,g V. para que Q3 comiencea conducir, el camino desdeor üá".t"-ol'a"ná.onrepone¡se al potencial de caídaen.n diodo en la juntura pn d,ebasecolectorde e1y dos caídas v.Q.gó Sx0,6: r,a V. Cá-o L-t;.. á" !;t, se mantiene en 0,9 v por"1Qt la señalde entrada, la Áaridadel transisio. ,,oel p.r"ae conducir y se pone en corte. El nivel de salida estará alto si una resistenciaexterna se conecta entre la salida y V"" (o un circuito abie¡to si no se usa la resistencia). si todas las entradasson artas,ambos e2v eB conduceny se saturan. El voltaje de basede el es igual a la caídaa" íori"¡ultr""¿. de la juntura pn de basecolecto¡_más dos caídasV"".en ezv e5,;;; o menos0,Zx 3:2,r v. como todas ras saridasrorrllt . v -ávJ*. or"l,¿ v, las junturas de base emisor de^Q1están todas polarizadas i"""iul".,te. Cuando el transistor de salida 19-satura (contando q"" art" ii""" un camino de QB corriente),el voltaje de salida será menor que 0,2 V. Esto confirma las con_ dicionesde la operaciónNAND. En el análisis anterior, dice que la juntura de base colector de -se actúa como-una juntura de diodo pn. Esto es verdaderoen la condicióne1 de estadoestable. Sin embargo,durante la transición de corte, e1 no exhibe reaccióndel t¡ansistor resultante de una reducción ,i-i"tu.ao de propa_ gación. cuando todas las entradas están "., altas v urru ¿" las entradas se lleva a un nivel bajo, ambos ""u"aoa conducir. eiv es empiezan En este momento, la juntura de corectoide e1 se polariza i.ru".rr-"rte y er emisor se polariza directamente,de manera qru transistor el^.,rá -o-"ntáneamente a la región activa. La corriente de colector "l de ei"i""" de la basede Q2 y quita rápidamenteel excesode ca.ga almace.,aáaen e2 durante un
¡; j I
I
i
I 1
"i I
I t
I
5 9 4 . c I R C U I T o SI N T E G R A D o SD I G I T A L E S
cAP. 13
estado de saturación previo. Esto causa una reducción en el tipo de almacenamiento del circuito comparado con la entrada tipo DTL. El resultado es una reducción del tiempo de desactivación de la compuerta. La compuerta TTL de colector abierto operará sin una resistencia externa cuando se conecta a las entradas de otras compuertas TTL, aunque esto no se recomiende, debido a la inmunidad al bajo ruido que se encuent¡a. Sin una resistenciaexterna, la salida de la compuerta será un circuito abierto cuando Q3 esté en corte. Un circuito abierto a una entrada de una compuerta TTL se comporta como si tuviera una entrada de nivel alto (pero una pequeña cantidad de ruido puede cambiar esto a un nivel bajo). cuando Q3 conduce, su colector tendrá un camino de corriente entregado por la entrada de la compuerta de carga a través de v." , ia resistencia de 4 k e y la juntura baseemisor polarizada inversamente. Las compuertas de colector abierto se usan en tres aplicaciones principales: accionamiento de una lámpara o relevo, conformaciónde lógica alambrada y para Ia construcción de un sistema de base común. una salida de colector abierto puede accionar una lámpara a través de una resistencia Iimitada. cuando ia salida es baja, el transistor saturado e3 forma un camino para la corriente que prende la lámpara. Cuando Ia salida del transistor está inactiva, la lámpara se apaga porque no hay un camino para la corriente. si las salidas de varias cornpuertasTTL de colector abierto se conectan juntas con una sola resistencia externa, se constituye una AND lógica alambrada. ll,ecuérdeseque la función AND de lógica positiva da un nivel alto si todas ias variables son altas, de lo contrario la función es baja. Con salidas de compuertas de colector abierto conectadas entre sí, la salida común es alta solamente cuando todos los transistores de salida estén en c o r t e ( o a l t o ) . S i u n t r a n s i s t o r d e s a l i d a c o n d u c e ,é s t e o b l i g a i a s a l i d a a u n estado bajo. La lógica alamb¡ada realizada con compuertas TTL de colector abierto, se dibuja en la Figura 13-12. La forma física en (a) muestra cómo deben ser conectadas las salidas a Llna resistencia común. El símbolo gráfico para tal c r ¡ n e x i ó n - q ed e m u e s t r a e n ( b ) . L a f u n c i ó n A N D f b r m a d a a l c o n e c t a r l a s d o s e n ' ; r a d a sj u r r t a s s e l l a m a f u n c i ó n A N D a l a m b r a d a . L a c o m p u e r t a A N D s e tir'i--ujacon iíneas que van desde el centro de la compuerta para distinguiri:l ile una compuerta convencional. La compuerta AND alambrada no es una c()mpuerta física, sino solamente un símbolo para designar la función obtenrda de Ia conexión que se indica. La función de Boole que se obtiene del circuito de la Figura 13-12es la operación AND de las salidas de las dos compuertas NAND: Y : (AB)' .(CD)' : (AB + CD), Se prefiere Ia segunda expresión ya que muestra una operación que se trata c o m ú n m e r . r t ec o m o u n a f u n c i ó n A N D - O R - I N V E R T ( v e r S e c c i ó n 3 - 7 ) . Las compuertas de colector abierto se conectan conjunrament,e para formar un bus común. En cualquier momento, todas las salidas de Ia óompuerta se conectan al bus excepto una que debe mantenerse en su estado alto. La compuerta seleccionada ¡,ue..de ser elegida en su estado alto o bajo,
ñ ( D { a ) C o n e x i ó nf i s i c a
( b ) Símbolo gráfico de la lógica alambrada
F i g u r a 1 3 - 1 2 A N D a l a m b r a d a d e dos cornpuertas de colector abie¡to (ca), \' : (AB - ('t) )'
dependiendo de si se quiere trasmitir un 1 ó 0 al bus. Los circuitos de con_ trol deben ser usados para seleccionar la compuerta particular que acciona el bus en un momento dado. La Figura 13-13 muestra la conexión de cuatro fuentes conectadas a una línea de bus común. cada una de las cuat¡o entradas acciona un inversor de colector abierto y las salidas de los inversores se conectan juntas para formar una sola línea de bus. La figura muestra que tres de las entrad a s s o n _ 0 ,l o c u a l p r o d u c e u n 1 , o u n n i v ó l a l t o e n e l b u s . L a c u a r t a entrada, 1.,, puede trasmitir ahora información por medio de la línea de bus común vcc
J
t
I :
i
I& f
Figura 13-13 Compuertas de colector abierto que forman una Irrea de l,us r'omun 5v5
STEGRADO 5 9 6 C I R C U I T OI N DS IGITALES
C A P .1 3
al inversor 5. Recué¡deseque una operación AND se realiza con lógica alambrada. Si 4 : 1, la salida de la compuerta 4 es 0 y la operación AND alambrada produceun 0. si 14:0, la salida de la compuerta 4 es 1y la operación A\D alambrada produce un 1. Así, si todas las demás salidas se mantienen en i -r' la compuerta seleccionada puede trasmitir su valo¡ a través del bus. El valor t¡asmitido es el complemento de 1r, pero el inversor b en el extremc, de recepción puede invertir fácilmente ia señal de nuevo y hacer y : I¿. Salida tipo poste totémico La impedancia de salida de una compuerta es normalmente resistiva más una carga capacitiva. La carga capacitiva consiste de la capacidad del transistor de salida, la capacidad de las compuertas de carga y cualquier otra capacidad perdida del alambre. cuando la salida cambia del estado bajo al alto, el transistor de salida de la compuerta va de saturación a corte y la capacidad de carga total, C, se carga exponencialmente desde el nivel de voltaje bajo hasta el alto, con una constante de tiempo igual a RC. para la compuerta de colector abierto, -R es una resistencia externa marcada RI,. Para un valor de operación típico de C:15 pF y B.:4 kO, el retardo de propagación de una compuerta TTL de colector abierto durante el tiempo de desactivación, es 35 ns. Con un circuito de arranque actiuo que remplace la resistencia ,t¡. de arranque pasiuo, el retardo de propagáción se reduce a 10 ns. Esta configuración, mostrada en la Figuru i3-14,-se llama una salida tip poste totémico porque el transistor Qa eÁtá "encima" de e3. La compuerta TTL con la salida de poste totémico es igual a ra compuerta de colector abierto, excepto por el transistor de salida Q+ y el diodó D r. cuando la salida Y está en el estado bajo, Q2 y QB son llevados a saturación como en la compuerta de colector abierio. El voltaje en el colector de Q 2 e s l ' r " ( Q 3 ) + V I E ( Q 2 ) ó 0 , 7+ 0 , 2 : 0 , 9 V. La salida Y: VcE(Qg)
vrr=5Y
Figura 13-14 CompuertaTTL con salida tipo poste totémico
sEc.13-5
RL L O G I C AD E T R A N S I S T O R . T R A N S I S T (O- N
53:
:0,2 V. El transistor Q4 está en corte porque su basedebeestar a una caldav"" más una caídaen un diodo ó 2x0,6:1,2 v, para empezar.aconducit. ó"o-o el colector de Q2 se conecta a la base de Q4, el voltaje de este último es solamente 0,9 V en vez de 1,2 V requeridosy por tanto Q4 está en corte. La razón para colocarun diodo en el circuito, es suministrar una caída de voltaje di un diodo en el camino de salida y asegurarseque Q4 esté en corte con Q3 saturado. Cuando lá salida cambia al estadoalto porqueuna de las entradascae al estadobajo, los transistoresQ2 v Q3 se ponen en corte.-Sin embargo,l1 baja debidoa que el voltaje a través del salida p".*án"." momentáneamónte pronto como consensadorde carga -Q4no puedecambiar instantáneamente'Tan a Vcc PoI conectada está porque su base cónduce Q2 esté en corte, medio de la resistenciade 1,6 [ f¿. l,a corriente necesariapara cargar el condensadorde carga,causaque Q4 se sature momentáneamente,el voltaje de salida se incrementa con una constante de tiempo BC. Pero R en este caso es igual a 130 0, más la resistenciade saturación de Q4, más la resistenciatel diodo para un total de 150 0. Este valor de R es mucho más pequeñoque la resiitencia pasiva de arranqueusada en.un circuito de coi""ior abierto. Como corr.".rrett"ia,la transición de un nivel bajo a un nivel alto es mucho más rápida. A medida que la carga capacitiva se acumula, el voltaje de salida aula coriiente en ?¿ disminuye, llevando el transistor a la región menta y-A"í, .r, contraste con otros transistores,Q4 está en la región actiu-a activa. cuando está en la condición de estadoestable.El valor final del voltaje de salida es entonces5 V, menos una caída V¿" en Q4, menos la caída en el diodo Dlo sea,3,6v. El transistor Q3 va al corte muy rápidamente,pero durante el tiempo de transición inicial, ambos Q3 V Qa conduceny se induce un pico de corriente desde la fuente de poder. Este pico de corriente genera tüido u.t el sistema de distribución del suministro de potencia' Óuando el cambio de estado es frecuente, el pico de corriente transiente aumenta la necesidad de corriente de la fuente de poder y la disipación de potencia promediodel circuito aumentaLa cánexión de lógica alambrada no se permite con circuitos de salida de poste totémico. Cuando dos circuitos de poste totémico se conectanjuntos, con la salida de una compuertaalta y la salida de la segundabaja, la cantidad excesivade corripnte exigida puede producir suficiente calor para dañar los transistoresdel circuito (ver Problema 13-7).Algunas compuertas TTL son construidas para soportar la cantidad de corriente que fluye bajo esta condición. En cualquier caso, la corriente de colector en la compulrta baja, puede ser lo suficientemente alta para desplazar al transistor y producir una salida de voltaje en la conexiónalambraá la región "óti.'" 0,8 V, lo cual no es una señal binaria válida para la compuerta da mayor que TTL. Compuerta TTL SchottkY Como se ha mencionadoanteriormente,una reducciónen el tiempo de almacenamiento resulta en una reducción del retardo de propagación. Esto se debe a que el tiempo necesariopara que el transistor pase a saturación,
{\:
I!
F
D ISG I T A L E S I NST E G R A D O 598 CIRCUITO
C A P '1 3
retarda el cambio del transistor de la condición de conducción al corte. La saturación puede ser eliminada colocando un diodo Schottky entre la base ¡' ei colector de cada transistor saturado en el circuito. El diodo Schottky se torma por la juntura de un metal y un semiconductor, en contraste con un diodo convencional, el cual está formado por la juntura de un material :emiconductor tipo n y tipo p. EI voltaje a través del diodo Schottky concluctor es solamente 0,4 V, en comparación a 0,? V en un diodo convencional. La presencia de un diodo Schottky entre Ia base y el colector, previene al transistor de ir a saturación. El transistor resultante es llamado transistr¡r >thottky. EI uso del transistor Schottky en un TTL, disminuye el retardo :srrsrr-¡u-ih¡\lrS-utrñr-rr;r¡¡ái;rr>rifrs¡x>-l-errtra.
La compuertaTTL Schottky se muestra en la Figura 1B-1b.Nóteseel símbolo especialusado para los transistoresy diodos Schottky. El diagrama muestra todos los transistores como del tipo Schottky excepto Q4. Se hace una excepción de Q4 porque no se satura sino que permaneceen la región activa. Nótese también que los valores de las resistenciashan sido reducidospara disminuir más el retardo de propagación. Además de unos transistores Schottky y resistenciasde menor valor, el circuito de la Figura 13-15incluye otras modificacionesno disponibles en la compuerta normalizada de la Figura 13-14.Dos transistoresnuevos, Q5 v Q6 han sido agregadosy los diodos Schottky se colocanentre el terminal de entrada y tierra. No hay un diodo en el circuito de poste totémico. Sin embargo,la nueva combinación de Qb y Q4 aún producen las caídas vrr, necesariaspara prevenir Q4 de conducir cuando la salida está baia.
Figura 13-15
CompuertaTTL Schottky
SEC 13-5
--L O G I C AD E T R A N S I S T O R - T R A N S I S T O R
5-:':
\
Esta combinacióncomprendeun seguidorde emisor doble llamadopc' lL;lington. Este par produceuna gananciade corriente alta y una reslstenci¿ e*t'remadam".rt"ü"¡u. Esto es exactamentelo que se necesita durante e, ."-¡iá bajo a alto de la salida, resultando en un aumento del retardo de propagación. ' Lás diodosen cada entrada mostradosen el circuito, ayudan a eliminar cualquier zumbido que pueda ocurrir en las líneas de entrada. Bajo conditransientesdl iniercepción, las líneas de señal apareceninductivas; ¿;;; esto conjuntamente con la óapacitanciaparásita, puede causar oscilación á" .e¡alér o zumbidos.Cuandó la salida de la compuertacambia de un esiaao atto al bajo, la forma de onda del zumbido en la entrada, puede causar .rirr"l", por debajo de tierra, en el rango de 2- 3 v dependiendode la longitud de ü lítt"u. Los diodos conectadosa tierra ayudan a eliminar este zumbi-do,yu que conducentan pronto como el voltaje negativo excedaa 0,4 v' Cuatráoei nivel negativo .ó li-itu, también el zumbido positivo se reduce. La característicade-losdiodoslimitadores,al limitar los efectosde la línea, ha sido muy útil ya que todas las versionesde compuertasTTL los usan. La resiátenclaaef emisor de Q2 en Ia Figura 13-14,ha sido remplazada en la Figura 13-15por un circuito que consistede un transistor Q6 y dos resistenclas.El efecio de este circuito es reducir los picos de corriente,discutidos previamenteal activarlo. EI análisis de este circuito, que ayuda-a reducir !l ti"-po de propagaciónde la compuerta,es un poco complicado para ser presentadoen esta breve discusiónf Compuerta de tres estados como se ha mencionadoantes, las dos salidas de las compuertasTTL con estructuras de poste totémico, no pueden ser conectadascomo en las salidas de colector abierto. Hay sin embargo,una clase especialde compuerta tipo poste totémico que peimite la conexión alambrada de las salidas con el prlpósito de formár un sistema de bus común. Cuando una compuerta ff l á" salida tipo postetotémico tiene estapropiedad,se le llama compuerta de fres estados(o triestado). una compuertade tres estadostiene tres estadosde salida: (1) un estado de bajo nivel cuando el transistor inferior del poste totémico está conduciendo y el superior está en corte; (2) un estadode nivel alto cuando el transistor"superiórdel poste totémico está conduciendoy el inferior está en corte y (3) un tercer estado en que ambostransistoresdel poste totémico esténlnactivos o en corte. El tercer estadopresentaun circuito abierto o un estado de alta impedancia, el cual permite una conexión alámbrica directa de muchas salidas a una línea común. Las compuertasde tres estados eliminan la necesidadde las compuertasde colector abierto en la configuracióndel bus. ia Figura 13-1G(a)muestra el símbolo gráfico de una compuertaseparadora de tres estados.Cuando la entrada de control C e; alta, la compuerta se habilita y se comporta como un separadornormal con una salida igual al valor binario de entiada. Cuando la entrada de control es baja, la salida es un circuito abierto que presentauna impedanciaalta (el tercer estador independientementedei nalor de la entrada A. Algunas compuertasde tres
¡ ¡
I
W
CIRCUITOS I N T E G R A D OD SIGITALES
cAP. 13
estadosproducen un estado de alta impedancia cuando la línea de
control es alta. Estq se muestrasimbólicamente en Ia Figura--rg-rot¡1. -inversor 'eÍ .qq"i ., tienendoscírculospequeños, uxo parala salidadel y otropara
indicar que la compuertase habilita cuando C está baja. EI diagrama del circuito del inversor de tres estadosse muestra en Ia Figura 13-16(c).Los transistoresQ6, Q7 y Q8, asociadoscon la entrada de control forman un circuito similar a la compuertade colector abierto. Los transistoresQl- Q5, asociadoscon la entrada de datos forman un circuito TTL de poste totér4ico. Los dos circuitos se conectan juntos por medio del diodo D1. Como en'el circuito de colector abierto, el transistor Q8 se pone en corte cuando la entrada de control en C está en el estadode bajo nivel. Esto previeneal diodo D 1 de conducir y también al emisoren Q 1 conectado a Q8 que no tiene camino de conducción.Bajo esta condición,el transistor Q8 no tiene efectoen la operaciónde la compuertay la salida de Y depende solamentede la entrada de datos en A. Cuando la entrada de control es alta, el transistor Q8 conducey la corriente que fluye de V", a través del diodo D 1 causa que el transistor Q8 se sature. El voltaje en la base de Q5 es igual ahora al voltaje a través del transistor saturado Q8 más la paída de voltaje en un diodo o 0,9 V. Este voltaje desactiva Q5 y Q4, ya que es menor que dos caídas yBr. Al mismo tiempo, la entrada baja de uno de los emisoresde Q 1, fuerza al transistor Q3 (y Q2) a ponerseen corte. Así se inactivan ambos Q3 V Qa en el poste totémico y la salida del circuito se comporta como un circuito abierto con una impedancia muy a\ta d,esa\id,a. Un bus de tres estados se conforma alambrando varias salidas de tres estadosjuntas. En cualquier momento dado, solamenteuna entrada de contro\ se habi\ita mientras que \as otras sa\idas están en eI estado de alta irnpeüancia. Laúnic,a camluelta que no esté en el estado de alta impedancia, puód. trasmitir informaciónbinaria a lo largo de} bus comün. Se debetener extremo cuidado, que todas las compuertas excepto una, estén en eI tercer estado; de lo contrario se tend¡ía una condición indeseableque tiene dos salidas activas tipo poste totémico conectadasjuntas. Una característica importante de la mayoría de compuertas de tres estados,es que el retardo de habilitación de la salida es mayor que el retardo de inhabilitación de salida. Si un circuito de control habilita una compuertae inhabilita otra al mismo tiempo, la compuertainhabilitada se habilitar la otra compuercoloóaen un estadode alta impedanciaantes de -cbmpuertas estén activas al que ambas de ta. Esto elimina la situación mismo tiempo. Hay uná pequeñacorriente de fuga asociadacon la condición de alta impedancia ett una compuerta de tres estados. Er4pero, esta corriente es tan pequeñaque se pueden conectar hasta 100 salidas de tres estadospara formar una línea de bus común. 13-6
L O G I C AD E E M I S O R A C O P L A D O( E C L )
La lógica de emisor acoplado(ECL) es una familia lógica digital no saturada. Como los transistoresno se saturan, es posible lograr un retardo de propagaciónde 2 ns y aún por debajo de 1 ns. Esta familia lógica tiene el
A c¿
r\ 1> 4 t-
l':AsiC:Alto l'altaimpedancia A si C: Bajo C-
(a ) Compuertaseparadora de tres estados
f\ 1>o-vn
I':A siC:B¿r_ Y a l r ai m p e d ¿ : ; . ¡ si C: Alto
(b) Compuertainversorade tres estados
Entrada de datos
; ¡ ¡tI
1:
Entrada de control t ¡l i:
(c ) Diagramadel circuitopa¡ael inversor de tres estadosde (b) Figura l3-16
CompuertaTTL de tres estados
a1-J I
ffi2
I N T E G R A D o SD I G I T A L E S CIRCUITOS
cAP. 13
menor retardo de propagación que cualquier otra familia y se usa principatmente en sistemas que requieren una velocidad alta de operación. Su inmunidad al ruido y disipación de potencia, sin embargo, son los peores de todas las familias lógicas disponibles. un circuito básico típico de la familia ECL se muestra en la Figura 13-1i. Las salidas entregan ambas funciones oR y NoR. cada entrada esta conectada a la base del transistor. Los dos niveles de voltaje son -0,8 \- para un estado alto y cerca de - 1,8 V para un estado bajo. El circuito consiste de un amplificador diferencial, una red polarizada compensada por temperatura y voltaje y una salida de seguidor de emisor. Las salidas del emisor requieren una resistencia de desangre para que fluya la corriente. Esto se obtiene mediante la resistencia de entrada -R¡ de otra compuerta similar o de una resistencia externa conectada a una fuente negativa de r oitaje. El circuito polarizado interno compensado por temperatura y voltaje, entrega un voltaje de referencia al amplificador diferencial. El voltaje de polarización V¡¡ se establece en - 1,3 V, el cual es el punto intermedio de Ia variación lógica de la señal. Los diodos en el divisor de voltaje conjuntamente con Q6, conforman un circuito que mantiene un valor constante \',," a pesar de los cambios de temperatura o suministro de potencia. Cualquiera de las entradas de la fuente de poder se pueden usar como tierra. Sin embargo, el uso del nodo V". como tierra y V¿" como - b,2 Y, da como resultado una mayor inmunidad al ruido. Si cualquier entrada en la compuerta ECL está alta, el transistor correspondiente conduce y Q5 se pone en corte. Una entrada de -0,8 V causa que el transisto¡ conduzca y coloque - 1,6 V en los emisores de todos los transistores (la caída Vu, en los transistores ECL es 0,8 V). Como VBa: 1,3 V el voltaje de base de Q5 es solamente 0,3 V más positivo que su emisor. Q5 está en corte porque su voltaje Vr" necesita al menos 0,6 V para comenzar a conducir. La corriente en la resistencia R"2 fluye hacia la base de Q8 (siempre que se tenga una resistencia de carga). Esta corriente es tan pequeña que solamente ocurre una caída de voltaje despreciable a través de R,.r. La salida OR de la compuerta está a una caída V", por debajo de tierra o -0,8 V, lo cual constituye el estado alto. La corriente fluye a trar'és de R,.r y el transistor que conduce causa una caída de cerca de 1 \- por debajo del nivel de tierra (ver Problema 13-9). La salida NOR está a una caida Vu" por debajo de este nivel, o sea en - 1,8 V, lo que const i t u y - e e l e s t a d od e n i v e l b a j o . Si todas las entradas están en nivel bajo, todos los transistores de salida se ponen en corte y Q5 conduce. El voltaje en el nodo de emisor común está a una caída V¡¡; por debajo d,e V"" ó -2,1 V. Como la base de cada entrada está en el nivel bajo de - 1,8 v, cada juntura de base emisor tiene solamente 0,3 V y todos los transistores se ponen en corte..R,.2 consume corriente a través de Q5 dando como resultado una caída de voltaje de cerca de 1 V, haciendo que la salida OR esté a una caida V", por debajo de este valor en - 1,8 V, o sea el nivel bajo. La corriente en .R. , es despreciable y la salida NOR estará a una caida Vu" por debajo de tierra en -0,8 V, o s e a e l n i v e l a l t o . E s t o v e r i f i c a l a s o p e r a c i o n e sO R y N O R d e l c i r c u i t o .
6 EH ñv
.t
3z
TO ' ót 9 - !
:!
^
ú.9 o i
a |
i
5 € E: E i I c<)EEi31
6'¡ I
r¡
j
R:
:
I t v\ rr
O
¡-
^¡r h¡
!
¿ 603
t
II I t
(A+B)'+(c+D)'= l(A+BXC+D)\'
(/4+ B)' NoR I ---I-.qoR B---l_/-U+B\
(A+B)(C+D)
(a) Compuertaaislada Figura 13-18
(b) Combinaciónalambradade doscompuertas Símbolosgráficosde las compuertasECL
El retardo de propagaciónde la compuertaECL es 2 ns y Ia disipación de potencia es 25 mw. Esto da un producto velocidad-poderde 50, el cual es áproximadamenteel mismo que el TTL Schottky. El margende ruido es .e.cá de 0,3 V y no es tan bueno como el de la compuertaTTL. Es posible una alta capacidadde carga en Ia compuertaECL, debido a la impedancia alta de entiada del amplificador diferencial y la impedanciabaja de salida del seguidorde emisor. Debido a la extrema velocidad de las señales,los alambies externos actúan como Iíneas de trasmisión. Con excepción de alambres cortos de pocos centímetros,las salidas ECL deben usal cables coaxialescon un acabadoresistivo para reducir las deflexionesde Ia línea. El símbolográficopara la compuertaECL se muestra en la Figuta 13-18 rar. Hay dos salidasdiiponibles:una para la función NoR y la otra para la función OR. Las salidas de dos o más compuertasECL, puedenser conectadas conjuntamentepara formar lógica alambrada. Como se ve en Ia Figura 13-18(b),una conexiónalambradaexterna de dos salidas NOR produce una función OR alambrada.tlna conexiónalambradainterna de dos salidas oR se usa en algunas cI ECL para producir una AND alambrada (algunas vecesIlamada lógica dot-AND). Esta propiedadpuedeutilizarse cuando las compuertasECL se usan para formar las funciones OR-AND-INVERT y OR-AND. 13-7
DE OXIDO DE METAL (MOS) SEMICONDUCTOR
El transistor de efectode campo (FET) es un transistor unipolar' ya que su operacióndependedel flujo de un solo tipo de portador. Hay dos tipos de tiansistores áe efecto de campo: el transistor de juntura de efecto de camde óxido de metal (MOS). El primerose usa po (JFET) y el semiconductor y en circuitos digitales. Los transistores el último lineales ón circuitos MOS puedenser fabricadosen menor área que los transistoresbipolares. Lá estructura básica de un transistor MOS se muestra en la Figura 13-19.El MOS de canal p consistede un substrato ligeramenteinyectado con material de silicón de tipo n. Dos regionesse inyectan fuertementepor difusión con impurezastipo p para formar la fuente y el drenaje.La región entre las dos seccionesde tipo p sirven comocanal. La puerta es una placa metálica separadapor el canal mediante un dieléctrico aislado de dióxido 604
SEC. 13-7
SEMIC CO ON ND DUUCCTTOO DRR E OXIDO OD E M E T A LL{ M O S )) f f i !
de silicón. Un voltaje negativo (con respectoal substrato) en la puerta causaun gampoeléctrico inducido en el canal, lo cual atrae ios portuJo.". de tipo p del substraro.A medj{a que aumenta la magnit,rá ¿"t ;rlr.J;-;;. gativo en Ia puerta; la regióJrdebajode ella acumula ñás portadores po.rtivos, aumenta la conductividad y la corriente fluye de la fuente al drenaje, siemprey cuando haya una diferencia de voltaje entre esosdos terminatés. . H"I cu-atrotipos básicosde estructuras Mos. El canal puede .., aui tipo p ó n dependiendode si los portadores en su mayoría deban ser huecos o electrones.El modo.de-operaciónpuede ser por o empobrecimiento (depletion),dependienAó¿et estado aef "n.iqrru.i*iento calal- con cero voltaje de puerta. si el canal al comienzoestá ligeramenteinyeci"do impurezás tipo p (canal difundido), el canal de conlucción se produce con "o' un voltaje cero de puerta y el dispositivo se dice que opera en el modo d,eempobreíi-míento. En este modo.la co*iente fluye a no ser que el .""u1 cido por un campo aplicado a la puerta. s_ila regián por debajo "rt¿.lip"üi.de t" se deja sin cargainicialmente, el canal debeserit aucido po, ár ."-pó f,reÁ á. t" puerta antes de que la corrientefluya. Así, la corrientedei canal es árrrique_ cida por el voltaje de la puerta y tai dispoÁitivose dice que áp.r" el modo de enriquecimíento. "n La fuente es el terminal a través del cual la mayoría de los portadores entran la barra. El drenajees el terminal a través dei cual la maybríade los portadoresdejan la barra. En un Mos de canal p, el terminal fúente se co_ necta al substrato y el voltaje negativo se aplióa al terminal de drenaje. cuando e,l_v-oltaje de puerta e*ta pó. encima del voltaje-áe u*bral v, k;;ca de -2 V), no fluye corriente en el canar y el camino del drenaju lu fuente es como un circuito abierto. cuando el voltaje de puerta es suficien" temente negativo por debajo de vr, se forma un cattai y los portadores tipo p fluyen de la fuente al drenaje. Los portadorestipo son positivos y i correspondena un flujo de corriente positivo desdela ruente al i.en"¡e.- " En el Mos de canal n, el terminal fuente está conectadoal substrato y se aplica un voltaje positivo al terminal de drenaje. cuando el volúje á; la puerta está-pordebajodel voltaje de umbral v, (cercade 2 V), ,,o ituy. corriente en el canal. cuando el voltaje de puerta es suficientementepoiitivo sobre lr pa'' formar el, canal, lós poriadores de tipo n fruyen áe Ia puerta al drenaje. Los portadorestipo N son negativos,ios cualós corresponden a un flujo de corriente positño de drenajá a fuente. El voltaje umbral puedevariar entre 1 y 4 V dependiendodel iroceso particular usado. puerta ( - )
susbstratotipo n (a) canal p Figura
pue¡ta ( * )
substrato tipo p (b) canal n
13-19
Estructura básica de un transistor MOS
S IGITALES 6 0 6 C I R C U I T O SI N T E G R A D O D
C A P . J3
Los simbolos gráficos de los transistores MoS se muestran en Ia Figura 13-20. El símbolo aceptado para el tipo de empobrecimiento es aquel con líneas interrumpidas entre la fuente y el drenaje. En este símbolo, el substrato puede ser identificado y se muestra conectado a la fuente. Se usará un srmbolo alterno que no incluye el substrato; en este símbolo, se coloca la ilecha en el terminal fuente para mostrar la dirección del flujo de corriente : '::.¿, (desde la fuente al drenaje en el canal p y desde el drenaje a la :jente en el canal n). Debido a la construcción simétrica de la fuente y el drenaje, el transis: -,r \los puede ser operado como un dispositivo bilateral. Aunque se opera :-.rrmalmente, de manera que los portadores fluyen de fuente al drenaje, hay c.rcunstancias en que es conveniente permitir un flujo de portadores del orenajea la fuente (ver Problema 13-12). una ventaja del dispositivo Mos es que puede ser usado no solamente como un transistor sino como una resistencia. Una resistencia se obtiene dei Mos polarizando permanentemente el terminal de puerta para conducción. La relación del voltaje fuente drenaje a la co¡riente del canal determina el valor de la resistencia. Diferentes valores de resistencias pueden ser construidas durante la fabricación, fijando la longitud y un"h.,ru del canal del dispositivo MOS. Los tres circuitos lógicos que usan dispositivos MoS se muestran en la Figura 13-21. Para un MoS de canal n, el voltaje de suministro vro es positivo (cerca de 5 V) para permitir que la corriente positiva fluya deÍ drenaje a la fuente. Los dos niveles de voltaje son una función del voltaje de umbral vr . El nivel bajo es cualquier valor entre cero y vr y el nivei alto varía entre v, y vro. Las puertas de canal n usan comúnmente lógica positiva. Los circuitos Mos de canal p usan voltaje negativo paru vr,,, para permitir que fluya Ia corriente positiva cesde Ia fuente al drénaje. iós dos niveles de voltaje son ambos negativos por encima y debajo del voltaje de umbral v, . Las compuertas de ánal p ,r."., gunrrulrrr..rté lógica positi va. EI circuito inversor mostrado en la Figura 13-2i(a) usa dos dispositivos Mos. Ql actúa como la resistencia de carga y Q2 como un dispositivo acti.vo. La resistencia de carga Mos tiene su puerta conectad.a a vrru manteniéndola así en su estado de conducción. Cuando el voltaje de entrada está bajo (por debajo de Vr), Q2 se pone en corte. Como QL está siempre conduciendo, el voltaje de salida está cerca de vrr. cuando el voltaje de entrada es alto (cerca d" vr), Q2 conduce. La corriente fluye desde vr,, a través de la resistencia de carga Q1 y luego Q2. La geometría de dos diJdrenaje
PuertaJ
¡)
rJ
F+t substrato
"l
rl
r, --l I
puerta --l ' h , ! J
*l
substrato
13-20
r; ---.] |
I fuente
(a) canal p Figura
I)
I
r---1
.S
fuente
drenaje
*i ,t
(b) canal n Simbolos para transistores MOS
I
I
>'
+
s >-
Z a
(, é T
II
ó
,' ¿ .l!
G
AR
S >
7!
v I I
tc--
| |
¡4
.¡.-r
It tTt lT T
¿
:
Z': 5U
rl
J-
Ll
|rl ¡.or ñ I F á
Q
óó
!
\q
ffi7
@8
c I R c U I T o S I N T E G R A D o SD I G I T A L E S
cAP. 13
positivos Mos debe ser tal que la resistencia de e2, cuando está conduciendo.es mucho menor que la resistenciade el puiu *""tuner ra sarida y a un_r'oltaje por debajode V,. La compuerta NAND mostrada en la Figura 13-21(b) usa transistores emisores' Las entradas A y B deben r", u*i". dt;;á." que todos los transistoresconduzcany.causenque la.salida .u po"g"'"it". enrrada estaja, el tra.nsisto.rco.respo.rdientl.;-ñ;;';n..corte si cualquier y la sarida será alta. De nuevo, la resistencia en serie r¡.maaa p"; lo. ,ú.p".i;i;;; \1oS _a_ctivos, debe ser me_norque la correspondientea la resistencia de carga Mos. La compuertaNoR, mostrada .n r" rigui"*tá-zt(.), usa tran_ sisto¡es en paralelo. si entrada_es atia, -son co*espon_ _c-ualquier diente co.nducey la salida "-r-li""ri.tor bajas, b"¡". si todas tas e.,tra¿a. todos "r en corte y la ios transistoresactivos estarán sarida ".tu.¿ "1t". 13-8
M O S C O M P L E M E N T A D O( C M O S )
Los circuitos Mos complementadosobtienen ventaja del hecho de que ambos dispositivosde n y p puedenser fabricadosen el mismo substra:-ar3l to. Los circuitos cMos cór,iiáte' de ambos tip".-a. iispositivos MoS interconectadospara fo¡mar funciones lógicas. El circuito básico es el inversor' que consiste de un transistor de ca'al tipo p y un transistor de canal tipo n, como se muestra en la Figural}_22(a). El terminal de la fuente del dispositivo de canal p está en vo, y er terminal de la fuente del dispositivo de canal n está a tierra. pi"uálo, i;-t;;-il.de estar entre f 3 v f 18 v. Los dos niveles de voltaje son 0 ü pa#.iiiuur bajo y vro para el nivel alto. Para comprenderla operacióndel inversor,.se debe repasarel comportamiento del transisto¡ MOS de la seccionprevla: I . El Mos de canal n conducecuando su voltaje de puerta a fuente es
positivo.
2 . El MOS de canal p conducecuando su voltaje de puerta a fuente es negativo. 3' cualquier tipo de dispositivo se pone en corte cuando su voltaje de puerta a fuente es céro. considere ahora la operacióndel inversor. cuando su entrada es baja ambas puertas están en potencial cero. La entrada r.t¿-, -voo con respecto a la fuente del di.spositivode canar p y; ó ü ;;-i"Jp".to a ra fuente del dispositivo de canar n. Er resulJuáoei que el dispositiio a" canal p se active y el dispositjvg d.ecanar n.se-ponga en corte. Bajo estascondiciones hay un camino de baja impedanciadesdJ v' hasia l";iü" y un camino de impedancia muv alta desde la.aliaa halsia tieria.-por'ianto el voltaje de salida .e acer"á al nivel ;ttr y,*;üo condicione.-.,á.-ales -y-l, de carga. cuando la entrada es a.lta, ambas'pu*itá. están en vr; situación se invierte: el disnositivode.canar p *u pn"" en corte y er de canar n conduce. El resultadoe. gu* la salida ." al nivel bajo de 0 V. ó;i;;
voo
I
l*o -l
'"-1_., rF" a -
Y=A'
:
( a ) Inversor
v = (AB), Y=(A+B)'
(b) CompuertaNAND Figura 13-22
(c) CompuertaNOR C i r c u i t o sl ó g i c o sC M O S
En cada caso un transistor está conduciendornientras q\re el otro está en corte. Debido a que un transistor siemprese pone en cort;, la disipación de potencia dc del circuito cMos es extremadamentebaja, del oráen de 10 nw. El mayor drenajede potenciaocurrecuandoel circuito cMoS cambia ce es:adLa l:s-.car:\f OS se especificausualmentepara una sola operaciónde surc:::::::'-i:. -:. :¿:e., de 5 - 15 \-, pero algtrnoscircuitospuedenoperara 3 \''- ¿ -: ¡ . - p € : ¿ r, o s C \ l O S c o n g r a n d e sv a l o r e sd e s u m i n i s t r od e v o l t a j e r : : i - : r" ' - : : - ¿ : . - : i i s i p a c i ó n d e p o t e n c i a .E l t i e m p o d e r e t a r d od e propa:ac.-:.i-s:-.--.:ie -.'e. margende ruido mejoracon el aumentode voltaje oe sj-":::s::: de pr,¡s¡q1¿.El retardo de propagacióndel inversores cerca de 25 ns. El margen de ruido es usualmentecerca del 40%del valor del voltaje de suministro Voo. Las ventajas del CMOS, disipaciónbaja de potencia, excelenteinmunidad al ruido, alta densidadde empaguey un amplio rango de voltajes de suministro, Io hacen un fiierte contendoÍ como norma popular para una familia de circuito digital. Otras dos compuertasbásicasCMOS son mostradasen la Figura 13-22. Una compuerta NAND de dos entradas consiste de dos unidades tipo p en paralelo y dos unidadestipo n en serie, como se muestra en la Figura 13-22
I t í
t i !
t
fi I
6IO
C I R C U I T O SI N T E G R A D O SD I G I T A L E S
cAP.13
(br. Si todas las entradas están altas, ambos transistores de canal p están en corte v ambos transistores de canal n en conducción. La salida tiene una rmpedancia baja- con respecto a tierra y produce un estado bajo. Si c ' a l q u i e r e n t r a d a e s b a j a , e l t r a n s i s t o r a s o c i á d ód e c a n a l n s e p o n e en cor_ te'el t r a n s i s t o r a s o c i a d od e c a n a l p c o n d u c e .L a s a l i d a s e a c o p l a & y o , ' pasa al estado alto. Las compuertas NAND de múltiples entradas pJeoen lbrmarse colocando números iguales de transisto.r. d. tipo p y tiio n en paralelo y serie respectivamente en un arreglo similar al mostrado en la Figura t3-22(b). una compuerta NoR de dos entradas, consiste de dos unidades de tipo n en paralelo y dos unidades-de tipo p en serie, como se muestra en la Figura l:)'-22(c).cuando todas las entradas están bajas, ambas unidades"de canal p están en conducción y ambas unidades de canal n en corte. La sa_ iida se acopla I V,,,, y pasa al estado alto. Si la entrada es alta, el transrstor asociado de canal p se pone en corte y el de tipo n se activa. Esto conecta la salida a tierra causandortna .alidá de baio nivel.
R E F ER E N C I A S Taub, H. y D. Schilling, Digitar Integrated Erectronics.Nueva york: McGrawHill BookCo., 1977.
') G , r i n i c h v, . H . y H . G . J a c k s o nI,n t r o d u c t i o nt o I n t e g r a t e dc i r c u i t s .N u e v ay o r k :
1.
McGraw-Hill Book Co., 1975. Morris, R. L. y J. R. Miller, Eds., Designing with rrL Integrafec circurüs. Nueva York: McGraw-Hill Book Co., 19?1. Garret, L. S., "Integrated-circuit Digital Logic Famiries". IEEE spectrum (octubre, noviembre,diciembre.lg70). De Falcq_J. A., "cornparison and uses of rrl, circuits". computer Design(feb r e r o .1 9 7 2 ) .
Rlrcrd'w. R. Jr., MEC_L system Design Handború. phoenix, Ariz.: Motorola SemiconductorProducrs lnc., Ig72. Data Booh Ser¿esSSI)-2058: COS /MOS DigitaL Integrated.Circutts, Somervi_ l l e . N . J . : R C A S o l i d S t a t e D i v i s i o n .1 9 7 4 .
PROBLEMAS 13-1. (a) Determine el voltaje de salida de nivel alto de la compuerta RTL para una capacidad de carga de b. (b) Determine el voltaje de entrada mínimo ."q.ru_ rido para llevar un transistor RTL a saturación cuando hrc:20. (c) De los resultados en (a) y (b), determine el margen de ruido d" iu" RTL cuando la entrada es alta y la capacidad de carga 5. "o-prrerta l3-2. Demuestre que el transistor de salida de la compuerta DTL de la Figura 13_5 pasa a saturación cuando todas las entradas están altas. Asuma qu" hrr:29. l3-3. conecte la salida y de la compuerta DTL mostrada en la Figura 13_5a N entradas de otras compuertas similares. Asuma que el transist-or de salida está saturado y que su corriente de base es 0,44 mA. Asuma h,, _ZO.
P R O B L E M , A S6 1 1 (a) Calcule la corriente en la resistenciade 2 ko. (b) Calcule Ia corriente que viene de cada entrada conectada a Ia compuerta. (c ) Calcule Ia corriente de colector total en el transistor de salida como una función de -\'. r d , Encuentre el valor de N que mantenga el transistor en saturación. ' e , .fiual es la capacidad de carga de la compuerta? 1 j l - 1 . D : ¡ :irtr ia interconexión de compuertas I2L para formar un decodificador Cr{.:¡ra c. -. -^ -n-
que todas las entradas de Ia compuerta TTL l:l-11están en el estadoalto de 3 V.
de colector abierto de la
te:mine los voltajes en la base, colector y emisor de todos los transisi:=.ne
e l m í n i m o h o , . d e Q 2 q u e a s e g u r eq u e e l t r a n s i s t o r s e s a t u r a . : -.¿ -a corrientede basede Q3. :-: que el hou mínimo de Q3 es 6,18. ¿Cuál es la corriente máxima :,:¿de ser tolerada en el colector para asegurar la saturación de Q3? -.. es el valor mínimo de 8,. que puede ser tolerado para asegurar Ia ::acion de Q3? .¿ndo los transistores de salida actuales de dos compuertas TTL
de
r, r abierto, demuestre(por medio de una tabla de verdad) que cuando )nectados conjuntamente a una resistencia externa ! V,,", la coner..-:, c¿bieada produce una función AND. (b) Pruebe que los dos inversores - T L oe colector abierto cuando se conectan juntos producen una función NOR. =-: 'r conectados para formar una lógica alambrada. Para visualizar por qué ::i r: prohibido, conecte dos de tales circuitos y deje que la salida de una . ::püerta esté en el estado alto y Ia salida de la otra compuerta en el estado -:Demuestre que la corriente de carga (la cual es la suma de las corrien-.". :. :==¿ ', colector del transistor saturado Q4 de la Figura 13-14) es cerca :: - - a =pare este valor con la corriente de carga recomendada en el
-
-'
_\
: . : = : - i : : - - : : t - . : . J . : i : ! , n e s .h a g a u n a l i s t a d e l o s t r a n s i s t o r e s q u e e s t á n :- . *i : : - : . . - _ : : ¿ . : a n c o n d u c i e n d oe n l a c o m p u e r t a T T L d e t r e s e s t a : - : . . . f ¡ - : " - ' - 1 6 r c ' . ( P a r a Q l V Q O s e r i a n e c e s a r i ol i s t a r ) o s e s t a d o s ::r.:r: t:rr::.:i l¿ .as ,iunturasde base emisor y base colector). : : .!
-- -3:. l I -.:.: !
ud¡luv
' !
is ra-la ¡ .-1es baja. =. ¡ara ¡ .{ esalta. Yb
drlo.
4,Cuai es el estado de la salida en cada caso? l3-9.
Calcule la corriente de emisor /, a través de r?, en la compuerta ECL de la Figura 13-17 cuando: (a) Al menos una salida está alta en - 0,8 V. (b) Todas las entradas están bajas en - 1,8 V. Asuma ahora que Ic: In. Calcule la caída de voltaje a través de Ia resistencia de colector y en cada caso y demuestre que se requiere cerca de 1 V.
13-10. Calcule el margen de ruido de la compuerta ECL.
612
C I R C U I T O SI N T E G R A D O D S IGITALES
cAP. 13
13-11'usando las salidas NoR de dos.compuertas ECL, demuestreque cuando se conectanjuntas a una resistenciaexterna y a un voltaje negativo de sumi_ nistro, la conexiónalambradaproduceuna fúnción OR. 13-12.EI transistor MoS es bilateral, es decir que la corriente puede fluir de la fuente al drenajeo viceversa.usando esta propiedad, derivá un circuito que configure Ia función de Boole: Y=(AB+CD+AED+CEB), usandoseis transistoresMOS. 13-13'Demuestre el circuito de la compuerta NAND de cuatro entradas usando t r a n s i s r o r e sc M o s . ( b ) R e p i t a r o a n t e r i o rp " . " un"."-;;;;" NoR de cuatro entradas.
Apéndice
R E S P U E S T AAS P R O B L E M AS SE L E C C I O N A D O S C ap í t u l o 1 0, t,2, 10,I l, 12,20,2r,22,100,l0l, 102,I10,nt, n2, t20,tzl, t22,2n,20t. l-:
(a) 1313,1022t0 @) 223,n3t4.s2 (c) 1304, 336313 ( d )3 3 1 , 1 3 7 0 6
I -3. l-4.
( 1 0 0 0 2 l . l l l.l. . \ ; ( 3 3 2 2 . 2()5o0; 5 . 3 .3.3. ) r ; ( 3 1 2 . 4 )( rF;A . 8 ) ¡ 6 . I 100.0001; l00lI100010000; 1010100001.001 I I; I I I I l00lI10.
l-5.
2,53125;46,3L25; I17,75; 109,825.
l-ó.
decímal 225,225 215,75 403,9843 10.949,8125
l-7.
(a) 73,375
binarío I I 1 0 0 0 0 1 . 0 0t 1 0 I0 l I I l0l0l I l.l l0 ll00l00ll.llllll l 0 l 0 l 0 l l 0 0 0 l 0 J .l 0 t
o ct a L 341.t6314 327.6 623.77 25305.64
hexadecimal 81.399 D7.C l93.FC 2AC5.D
i
ti'
o) 151
';:
(c) 78,5 (d) 580 (e) 0,62037
.i
:{ I
,
(D 35 (e) 8,333 (h) 260 l-8.
\ rit
C o m p l e m e n t o d e l0: 1 0 1 0 1 01;0 0 0 1 1 11;1 1 1 1 1 0 ;1 1 1 1 1: 1 1 1 1 . Complementode 2: 0101011;1001000;1111111;10000:00000. 613
614 APENDICE l-9.
Complementodeg : 86420;90099;09909;89999;99999. Complementode 10: 86421;90100;09910;90000:00000.
I - 1 0 . ( 1 75 ) n . l-14. (a) Seistablas posibles. @) Cuatro tablas posibles. l-li.
( a ) 1 0 0 00 l l 0 0 0 1 00 0 0 0 (b) lon l00l 0t0l 00ll ( c ) l l l 0 l l m 0 0 1 00 0 0 0 (d) l0000ll 0l0ll00
I - 1 7 . 0 0 0 00 , 0 0 10 , 0 1 0 0, 0 1l , 0 t 0 0 ,0 1 0 1 0, 1 1 0 0, l l l , l O u , 1 1 0 0 l,l 0 l , l l l 0 . r - 1 8 . 0 0 0 0 10, 1 1 1 00, 1 1 0 10, 1 0 1 10, 1 0 0 0l,0 l l 0 , l 0 t 0 l , l 0 0 l l , 1 0 0 0 0l l, l l l . 1 - 2 0 0 0 0 ,0 0 1 ,0 1 0 ,1 0 1 ,1 i 0 , 1 1 1 .r e p r e s e n t a n d0o, I , 2 , 8 , 4 , 5 , r e s p e c t i v a m e n t e . l - 2 1 . D o sb i t s p o r c l a s e c, u a t r ob i t s p o r n ú m e r o ,J : 1 0 1 1 , , : 1101. e: 1100K t-23. (a) 000000000000000100100lll (b) 0m0 000000000010 l00l 0l0l ( c ) l l l 0 0 l l l i l 1 0 1 0 0 0i l l l 0 l 0 l 1-24. (a) 59? en BCD b\ ZASen exceso3 (c) No válido para el código242I d.ela Tabla 1-2 (d) FG en alfanumérico 1-25. 00100000001 + 1000001 l0l0 : l0l000l l0l l. . C . l-26. L: (A + B)
C a p í t u l o2 2-1. conjunto cerrado,asociativa,conmutativa,distributiva; la identidad para f e s 2 ; l a i d e n t i d a dp a r a . e s0 ; n o h a y i n v e r s o s . 2'2.
Todoslos postuladosse satisfacenexceptoel postulado5; no hay complemento.
2-5.
(a) " (b) x \c) y (d) z(x + y)
(e)o (f) ¡("t + n) 2-6.
(a) A'B' + B(A + C) (b) BC + AC'
l
.; PROBLEMA SS E L E C C I O N A D6O/ S R E S P U E S TAA S (c)A+CD (d\ A + B,CD 2-7.
(a) I b) B'D', + A(D + BC',) (c) I (d) (A' + B) (C + D)
r eRs y N O T ' 2 - l l . ( b ) . F: ( - r ' + - r " ) ' + ( x + y ) ' + ( y * z ' ) ' t i e n es o l a m e n t e o p e r a d o O ( c ) F : Í ( ' t - ) ' ' ( r ' y ' ) ' ' ( y ' z ) ' l ' t i e n e s o l a m e n t eo p e r a d o r eAs N D y N O ' l ' . 2 - 1 2 . ( a ) ? ' r: A ' ( 8 " + C ' ) (b)rz:A+BC:Tíl 2 - 1 3 . ( a ) ) ( 1 , 3 , 5 , 7 , 9 ,l l , 1 3 , 1 5 ) : ¡ 1 9 , 2 , 4 , 6 , 8 ,l 0 ' 1 2 '1 4 ) (b) >(1, 3, 5, 9, 12, 13,l4): II(0, 2, 4, 6,7, 8, 10, I I, 15) (c) X0, l, 2, 8, 10, 12, 13, 14, 15) : ¡13, 4, 5, 6, 7, 9, ll) (d) >(0, 1, 3, 7) : rI(2, 4, s, 6) ( e ) > ( 0 , l , 2 , 3 , 4 , 5 , 6 , 7 ) , n i n g ú nt é r m i n o m á x i m o (0 >(3, 5. 6, 7) : lI(0, 1,2, 4) 2-14. (a) n(0, 2,4, 5,6) o ) n ( 1 , 3 , 4 , 5 , 7 , 8 , 9 , 1 0 ,1 2 ,1 5 ) (c) )(1, 2,4, 5) ( d ) > ( 5 ,7 , 8 , 9 , 1 0 ,l l , 1 3 ,1 4 ,1 5 ) 2-18. F -- x @y : x'y + r/'; (dual de F) : (x' + y)(x + y') : ü * x'y' : p'. 2-20. F:
xl * xz * yz. r I
Capítulo 3 3-1.
(a) y @) ABD + ABC + BCD (c) BCD + A'BD' (d) wx * w'x'y
3-2.
(a) ry + x'z'
b) c'+ A'B (c) a' + bc (d)ry+xz+yz 3-3. (a)D+B'C b) BD + B'D' + A'B or BD * B'D' + A'D' (c) ln' * k'm'n (d) B'D', + A',BD + ABC', (e) xy' * x'z I wx'y
i I
'
6I 6
I
A P E N DI c E
3-4. ( a ) A ' B ' D ' + B ' C ' D ' + A D ¡ E (bI DE + A'B'C + B'C'E' (cI BDE,+ B,CD,+ B,D,E, + A,B,D, + CDE,
3-_(
ta) Ft: n(0,3,5,6); Fr: n(0, 1,2,4) (b) Fr : x'y'z I x'yz'+ ry'z'+ xyz; F2: ry + xz * yz (c) F, : (x + y + z)(x + y' + z,)(x, + y + z,)(x, + y, t z\; F2:Q+y)(x+z)(y+z)
_.-6
(a) v o) (B + C',)(A+ B)(A + C + D) (c) (w + z')(x' + z')
t
3-7
(a) z' + xy : (x + z')(y + z') @) C'D + A'B'CD'+ ABCD':(A + B,+ D)(A,+ B+ D)(C+ D) (C,+ D,\ ( c ) A ' , C ' , +A D ' , + B ' , D ' , : ( A ' + D ' ) ( C ' + D ' ) ( A+ B ' + C ' ) ( d ) B ' D ' , + A ' , C D ' , +A ' B D : ( A ' + B ' ) ( B+ D ' ) ( B ' + C + D ) (e) w'z' * aw'x * a'wz : Q:' + w')(w' + z)(w + x * z,)(a I w * z,)
3-8.
(a) ¡
v
L,
z'
) z'
3 - 9 . ( a )F , : A + D ' E ' + C D ' : ( A , D + A , C , E ) , o) rz: A,B' + C'D' + B'C' : (BD + BC + AC)' 3-ll. (a)r:
BD + D'(AB'C'+ A,B,C)
3-12. (a) (A' + B' + C')(A+ B' + C + D,)(A + B + C, + D,) (b) (c + D)(c, + D,)(A + B)(A' + B') 3-13. AND-AND --+AND, AND-NAND -+ NAND, NOR-NAND --+OR, NOR-AND--; NOR, OR-OR - OR, OR-NOR -+ NOR, NAND-NOR -+ AND, NAND-OR --+NAND. 3-15. (a)r: ( b )F :
I CD'+ B'D'+ ABC'D
3-ló. (a)r: A'C + B'D'; A'(C + D'XB' + C) (b) x'z' * w'z; (w' + z')(x' + z) ( c ) A C + C E ' + A ' C ' D ; ( A ' + C ) ( C+ D ) ( A + C , + D , ) o r A C * C D ' + A ' C ' E ; ( A ' + C ) ( C+ E ) ( A + C , + E , ) (d) A'B + B',E'; (A' + B')(B + E') 3-17. (a) B'(A + C' + D') (b) A'D + ABC' (c) B'D + B'C + CD
I I j
R E S P U E S TA A SP R O B L E M A S SELECCIONADO 6S 17 3 - 1 8 . F : ¡ ' - \ + r z ( n e c e s i t ac u a t r o NAND); F:
(x,_tz)(x*y)(necesita cuatroNORr. 3-19. d- ABC,DE+AB,CDE,+ ABCD,E. 3-20. B'D'(A' + C) +,BD(A, +_C,);IB, + D '( A , + C , ) l I B + D , ( A , + C ) l ;
[D' + B(A,+ c,)]tD+ n,fÁ;i c)i¡.
3'21. Í.g : x'yz' * w,y,z * rvry,z,. 3-24. (a) r= A,CEF,G, O) F: ABCDEFG + A,CEF,G, + BC,D,EF (c) ¡': A'B'c,DEF' + A'BC'D'E + cE'F + A'BD'EF Capítulo 4
+1. Entradas: a, b, c, d. Salidas:
+2.
Entradas: Salidas:
+3.
Salidas:
U.
Salidas:
+5. +6.
Entradas: Salidas: Entradas: Salidas:
+7.
Entradas: Salidas:
F = abc + abd + bcd + acd * a,b,c, 4 a,c'd, + a,b,d, * b'c'.d';F = fI(3, 5, 6, 9, 10,12) (no puedeser simplificada sucesivamente). 4 3 ,A 2 ,A t . 8 6 t oB r ; B , = / A t ; B z : 0 ; \ = A i A 2 ;B o : A { A 2 A , 3 + ALA); 85 = A3(A1+ A); 86 = AzAz. w, x,L z; w : asarb¡br;x = ag,obt + arb¡b,s / = aúobi * asa1b1+ a6b,sb1 * a(rafts;2 : asbo. x,y, z; ¡ - a¡br * apsbs * búsas; y : aia:sb,+ aib¡b,s+ a,raob\bo + arbib,6+ a¡a,sbi* apsbú, 2 : a s b ' o +a o b o . A, B, c. D. t p , x , ! , z i t o : A , B , C , ;x _ B C , + B,C;y _ C; z : D,. A, B, C. D. FoFtF2Fr;Ft : D; Fz: CD, + C,D; \ - (C + D) B' + BC,D,; Fa = (B + C + D)A, + AB,C:,D,. F8F4F2Ft. ,sss4s2sr LeL¿LzLr; l0t
lc= 4:.Se:
S¿=4. +8.
Entradas: Salidas:
4-ll. Entradas: Salidas:
,:
.{ t;
,+
,t
't
É,
t¡
¡ I
t
i ft rl ll
100
0;Lr= Lt:
.i
FiSr:
F z iS z= l t r ¿ i
A, B, C, D. F=AB+AC. A, B, C,D. w , x , y , z iw : A B + A C , D , ; : x B,C + B,D + BC,D,: y:CD'+C'D;z=D.
ü
6 18 A P E N D I C E +12. Entradas: A, B, C,D. Salidas: w,x,y,z;w: A;x: A'C + BCD+ A'B + A'D Y : A C ' D ' + A ' C ' D + A C D + A ' C D ' O fY : A C ' D ' + B'C'D + ACD + B'CD':Z : D. 4 - 1 3 . E n t r a d a s : w ,x , y , z . Salidas: E ABCD; E:
w x + w y ;A : w x ' y ' ;
lor loo B : w,x + xy; C : w,y + wry,; D : z. 4-14. Entradas: A, B, C, D (tableroen blanco para combinacionesde bits de entrada inválidos). Salidas: a: A'C + A'BD + B'C'D'+ AB'C' b: A'B' + A'C'D' + A'CD+ AB'C' c: A'B + A'D + B'C'D'+ AB'C' d: A'CD' + A'B'C + B'C'D' + AB'C' + A'BC'D e: A'CD'+ B'C'D' f : A,BC,+ A,C,D,+ A,BD,+ AB,C, s: A'CD' + A'B'C + A'BC' + AB'C' (Total de 21 compuertasNAND) 4-15. Circuito sumadorcomoleto. 4-16. Circuito sumadorcompleto. 4-19.
+20.
F = ABC'+
A'B + B' : A'+
B'+
C ' ( d o s c o m p u e r t a sN O R ) .
4-21. (a) Sumador completo, I'1 es la suma, F, es el bit de arrastre.
O) r:
A'B'C' + A'BC+ AB'C + ABC' ,
4-28. Variablesde entrada:A, B, C, D, variablesde salida: w, x, y, z. w : A, x : A@ B,y : r@ C,z : y O D. 4-29. C:
x O y @ z @ P ( t r e sc o m p u e r t a sO R - e x c l u s i v a s ) .
\E-\R,\a\\\\\R,\\\\A$.\\\alatt\\\\\\\
l)
t.,
(;
- - l
:3 -
- -e Figura 5-2 exceptoque 8:
1101.
- , = : r a O R - e x c l u s i v a s e u s a p a r a l i r r m a r e l c o m p l e m e n t od e 1 d e R
''
: r - - ' . e n td o e 2 s e o b t i e n e a g r e g a r - r dIo
V ¿ r la r r a s t r e d e e n t r a d a .
- P r G t + P 4 P r G 2+ P 4 P 3 P 2 G+t P 4 p 1 p ) p t C t . ( J : . P .* G ; C ; P ; + G i C ; G í P í + C i G ; G í C í ) ' P.+ GiP;+
G\C:Pí+ G;G;G;C',t)',
i-
:
: : . . . : r ¡ ..:r . , f r , . r : , - r r i s a l i d a S .: \ , . \ ' r , , \ r , . \ ,
- .:... las diez compuertas AND requieren cuatro entradas ,,quivalentesa - :r:'nlinos mínimos desde¡n,, hasta m,,. . j ' r . . ; . - - ): : ( 0 , l , 6 ) . . : - , , : . , I. ; ) : : ( 4 , 5 ) ( u s e c o m p u e r t a s \ O R t l,6,7): F, + mr. i ' . , \ . . f. : ) : : ( 0 , l - n t r a d a s : I ) \ )I ) | D . )D , ; s a l i d a s : . r , . r ' , E . I ) r i o r i d a d d a d a a l a e n t r a d a c o t t É r : - . u m e r od e s u s c r i t o m a y o r . '. :
:,:
Dt + Dt. ! : D1 + D1D), E:
D o - { -D l + D 2 + D . ' .
1 , ,h a s t a I t : C ' , 1 , C ' , 0 ,C ' , C ' , 0 , C
1 9 i a ) 1 0 2 4x 5 ( b ) 2 5 6) <8 tct 1024x 2
620 A P E N D I C E
C ap í t u l o 6 6-4.
0 0 0 0
6-5.
0 0 I I 0 0 I
0 I 0 I 0 I 0
I
t
.tD 0 0 0 0
6-7.
Q( + r): JQ' + K'Q
0J
0 0 I ¡ 0 0 I I
0 0 I I 0
,l
I
0 I
Q0+t):s+R'0 0 I 0 I 0 I 0 I
0 0 I I 0 I I
,]
Salidadelacompuerta:2 3 4 5 6 7 (a) I l0l I 00 0 I l0 I r0 (c) l l0 0 rl (d) 001 ll (e) l0l 00 (f) l0l l0 l0l 00
o)
g
9
I I 0 0 I 0 0 I 0 I I
CP:l CP:0
6-r0. 00/0 oI/ 1 t0/1 \z -r
n/0
:v
\,
o0/ |
tt/l 01/o t 0/ 0 Entradas::y Salida: s
6-l l. Un contadorcon una secuenciarepetida:00, 01, 10. 6-12. ¡ : 1; la secuenciabinaria es: 1, g, 4, 2, g, 12,6, 1I,5, 10, 1g, t4, IE,7, B. ¡ : 0 ; l a s e c u e n c ib a i n a r i ae s :0 , g , 1 2 , 1 4 , 7 , 1 1 ,1 8 ,6 , J , g , 4 , 1 0 , 5 , 2 , 1 .
\ .D
+
:, 6-13.
.¡i
P.S. AB
00 0l l0 ll
r/:00 AB 0 I I 0 0 I 0 I
0 0 I I
0 I 0 0
I
I 0 I
I 0 0 0
0 I I
I
i
Salida :
Estadosiguiente xY:01 x/: l0 xY:ll AB AB AB
4 :01
ry:u I I
I 0 0
0 0 0 0
0 I 0 I
A(t + D:xB t v'B'A'+ yA + x'A; B(t + l):
D':
10
0r
0 0
0l
l
0l
ol
t
I
xA'B'* x'A'B+ yA'B
6-14.
a
fb
b d
da ga
I c
fb gd
b c e d g h I C h a 6-15. Estado: a l I I l00l00l Entrada: 0 l l 0 l 0 Salidas: 0 1 0 0 0 1 I ó-16. Estado: Entrada: Salidas: 6-18.
J
K',
00 0l l0 ll 6 -1 9 .
afbabdgdggda I l00l00l 0l 010001I
I
QQ)
QQ+I)
QQ+I)
00 0l l0 ll
QQ) 0 I I
QQ+I) 0 I 0 I
0 QQ) Q'Q) I
SDR
QQ) QQ + I)
0 0 I I
:
l0l0
0 I 0 I
JK'
OX IX XO XI
SDR
0x IX 0l x o \ cuulqui.." I x)
6-20. (a) TA: A + B'x; TB: A + BC'x + BCx' * B'C'x': TC=Ax*Cx*A'B'C'x'
I
622 APENDICE (b)Sl : SC : ( c )J A = JC :
A'B'x; M: A; SB: A * C,x,; RB: BC,x* Cx,. A,B,x, + Ax; RC : A,x B,x,KA: l;JB: A + C,x,,KB: C,x * Cx,; A,B,x, + Ax, KC : x; y : A,x
6-21. (A :23, B :22, C^=2t,? : Z); TA : (D + C + B)x; rB: @ + C)x; TC: Dx; ró: O. 6-22. JA : x, I(A : x,;JB : Ax,,KB : l;JC : Bx + Ax,KC = Bx,. 6 ' 2 3 . J _ Q - aQ : pzQo .Iet: e^,e: Jez: eáet Jet: I KQt: Qt Keo:b,tj, iór: Ket = | e, [¡ 6 _ 2 4 .1 2 4 2 1 1 . :, A : B C D + A , B ; T B : CD + A,BiTC : D + A,B; LA B C DI, TD: t. 6-25. (a) J¿ : B, KA : t; JB : A,, KB : I (b)JA : BC,JB : C,JC : A, M:t,KB:C,KC:l (c) t¿ : BC,JB : C,JC : B, + A, KA:B,KB:A+C,KC:I 6-26. SA : BC,
SB : B,C
SC: A,
RA: BC
RB: AB RC: B : 6-27. TA A @B; TB: B O C; TC : AC + A,B,C, 6 - 2 8 .J A : B ' JB:A+C JC:A,B KA: I KB: I KC: I 6-29. DA : A,B,C + ACD + AC,D, DC : B DB: A,C + CD,+ A,B DD: D, 6-31.JA: yC + ry JB: xAC JC: x'B + yAB, KA : x' + y,B, KB : A,C + x,C + yC, K C : A ' B ' + xB * y,B, 6-32. (a) A(t + l) : AB,C,x, + A,BC,x + A,BCx + AB'C'x + AB,Cx. B(t + l): A'BC'x'* A,B,Cx. C(t+ l): A'B,Cx,+ A'BC,x,+A,BCx,+ AB,C,x,+AB,Cx,. d(A, B, C, x) ::(0, l, t2, 13,14,15)(términos de no importa).
Capítulo 7 7-1. 7-2'
Use una compuertaNAND externa. (a) cambie er inversor asociado con cp en una compuertaseparadora,o (b) use flip-flops que se disparen en el flanco negativo.
7-4. A(t + t): AB' + Bx';B(t + l): x. , 0 0 0|,0 0 ; 7-9. I :0010,00011 e: l. l. t. n
I
623 S R E S P U E S T A SP R O B L E M ASELECOof.TAoOS
7-10. D = ¡O y @ Q;JQ : x'y;KQ: G' + y)' 7 - 1 3 . 2 0 0n s r5 M H z . l-i4. Diez flip-flops seráncomplementados. lll0 -> llll -+ 0000 Autocomenzante
7 - 1 1 . l 0 l 0 + 1 0 l l - - +0 1 0 0 1100+ 1l0l ----,
)
tl 7-18 000+ 001+ 010--+0l l*+100 | ¡
No autocomenzante
lOl-J zl l0r zl I1., 7-21.JQt: KQt -- l. JQz: KQz: QtQ;' JQq: KQ¿: QtQz. J Q a : Q t Q z Q ¿K; Q a : Q r
7-30. (a) Estados no usados (en decimal): Estado siguiente (en decimal): ó)2--+9--+4--+8 l0-+13-+6--+ll-+5-->0
2 4 5 6 9 l0 ll 13 5 6 9 l0 2n413 8 es un estado válido 0 es un estado válido
7-32. (a) t3,32 @) 32,768 7-35. (a) l6 o) 8, 16 (c) ló (d) 16 + 255k donde A es el número de 1 en la palabra a ser almacenada'
Capítulo8
I
a la derechaconentradaen serier y controlde 8-3. Un registrode desplazamiento desplazamiento P.
8-5.
(a) (l) 8 <- A; (2)A <- B; (3) C <- D; (4) BUS<- B (3)001l0 (2) 10010; (b) (l) 01000; operación
8-'l (a) (b) 8-9.
escritura lectura
direcciónMUX
datosMUX
l0 II
lt
decodificador de destino
t0
Un contador de modo 9 que cuenta los estados binarios desde 0 |rasta 8.
8 - 1 2 . S : A < - s h r l , . Be s h r B , B n < - A p A n r - A y 8-14. PR forma el producto de B,R y A.R mediante sumas sucesivas del contenido de BR un número de veces igual número en AR. La multiplicación comienza cuando S se convierte en 1 v termina con D: 1.
: :
624 APENDICE 8-16. (a) 000000 (b) 0l1000 (24) 1c.¡000011(3) (d) t00olt (_29) (e) 001I l0 (14)
(0 0r000r(17) ( e )l 0 l l l l ( - 1 7 ) (h) 000101 (5) 6-lE
(l) (a) Sobrecapacidad porque la suma es mayor que 127
O)cs:l,cr:s (c) El signo es negativo (d) Sobrecapacidadporque Cs O Cr: ¡ (e) Sobrecapacidadpor inversión de signo 8-23. (1 - 2-26¡ 'a 2zss y 2-2s6. y E - : 4 . ( 1 0 5- l ) x l g e e 19*rs. 8-25.
coeficiente (a)
0 llllll000000
o)
0 0lnlllm000
(c)
0 000llllll000
8 - 2 6 .( a ) A < - - A @ B @)A<-A\/B
con con
exponente
0001I l 000010 00000r B:l0ll0l00 B:00100100
8-21. A <- A /y E. 8-28. (a) 8
o) ló (c) ó5,536 (d) 8,388,607 6-31. Q¿tl MAR<- pC Qctc: i{BR. <- M, pC <_ pC + | Qqts: R <- MBR, T <-0
Capítulo9
i--
/
9-2.
Cuatro líneas de selecciónpara cada uno.
9-4.
(a) 64 x 8 RAM (b) ó (c) 8 (d) 8 multiplexoresde 2X 1 cada uno.
o
llllll0l
R E S P U E S T AAS P R O B L E M A SS E L E C C I O N A D O S 625
9-7.
lc)
I
9-8
r . r ,j r c n = m 0 0 0 0 C , 10 0 1 0 0 0 1 I F=0000 00ql
9 - 9 . ' a ) F = B + ,4 ,it F = B + f + | l C l f =i + A- t rd) F =A + B (e) F = f
B
8+l
0100 0l0l E
E+t
llll
0000.
B más el complementode 1 de B Bmáselcomplementode2deB complementode I de (A + B) menosuno complemento de 1 de (A + B ) complemento de 1 de A
(0 F : F + l (c)F = A - - l
complemento de 2 de A
(h) F :
complemento de 1 de A
A-
0l l0 0l I L
complemento de 1 de A menos uno
9-10. X¡ : A¡i Y¡ : s'B¡i Ci, : s. 9-l l.
¡:
complementode 2 de (B - A) y el arrastreocurre si A < B.
9-12. X¡: A,(s\ + ro); Y¡ : B,s'rs's + Bisr. 9 - 1 3 . X ¡ : A ¡ ( s l+ s o )+ A i s p ' ¡ ;Y , : B , s 1 + 8 i s i s 6 . 9-16. Let x:
s2s\sí¡,y: s2s¡si. X¡: x'A¡ + AiBi * yB,; Y¡: 4ro + Bitry'; Z, : s'2C,.
9'17. Lo mismo que la Tabla 9-4 con las variablesde selecciónoR v AND intercambiadas. 9-18.(a) E:1siF:todosl (b)C:lsíA.>B (c)A>8siC:l A>BsiC: I o E:l A
A <8siC:0 A:8siE: I A+AsiE:0
R6 <- crc R6 R5 <- R5 + R6 R5 e- crc R5
9-26. JA¡ : M¡ = B¡Kiprc+ Bi K¡trc;{,*r : A; Bi + A;Ki + BiKi. donde K, es el arrastre de entrada y K,+r el arrastre de salida. 9-27. JA¡ : B¡'p1¡* pn * Bipn; KA¡: p' * B¡t¡2+ Bip1. 9 - 2 8 . J A , : K A , : E i i E i + t : E i A i ;E t - p u .
Capitulo 10 l0-4'
r]n ceronegativoocurrirá despuésdel cárculode ( -A) + ( + B) si A: B. Esto p u e d ee v i t a r s eb o r r a n d oA " s i A : 0 c u a n d oA > B .
l0-8.
JB,: y3":
y; JA": KA": z; JE :
f0 - 9 .
L C o u rK; E : L C [ u r + w .
D T o : q ^ T o+ P , T 3 ;D T 1 : Q ^ T o iD T 2 : T , + p l T r ; D T 3 : l0- 12. (a) 0 Lo mismoque la Tabla 10-2 I A < - A + E * l . S e C n ,E * C , * , , i r a 3 2 A < _ A + B , S < _ c - nE, < _ C n + t 3 S i ( E : 1 ) e n t o n c e s( i r a 6 ) 4 S i ( S : 1 ) e n t o n c e s( i r a Z ) 5 V . 0 ,i r a 0 6 S i ( S : 1 ) e n t o n c e s( i r a 5 ) 7 V*1,ira0
z2.
l0-13. Una microinstruccióncon 26 ceros. Rl<_Rl,c<__0 Si (S : 1) entonces(ir a 4) .Rl<-crcRl,iraS Rl<-shlfil Rl+-Rl S i ( S : 1 ) e n t o n c e s( i r a g ) Rle-O La siguienterutina comienzaaouí
1 0 - 1 4 .I 2 3 4 5 6 7 8
-
1 0 - 1 9 .2 t ( l + k ) . 10-20. TGt : Q^ + T[; TG2: T1 * p,73. l 0 - 2 1 . C o m p l e m e n t do e 2 d e A . 10-22. (r'-
l ) ( r , - l ) < ( r r ^ - l ) p a r a r > -2 .
10-23. JG1 : q,Ts + S'Z:2* Ta * T6; KG, : 1 JG2: q"Ts+ Tt+ E'75: KG2: ST2+ T3+ T1 JG, : 57¡ KG3: ETs + Tj 1 0 - 2 5 T o : - r : 1 , s i( g . : 1 ) e n t o n c e(si r a ? 1 ) d e l o c o n t r a r i o ( i r a ?6) Tti P<-0, ir a I, Tt: Si (¿ : 0) entonces(ir a ?e ) de lo contrario(ir a ?¡ ) T z : P e . p * B , A < _A_ _ l , : - a T 2 l A - 2 6 . ( b ) J G t : ( x + z ) T o+ T 2 ;K G , : 1 JG. : (y + z)76 .r Ti KG2: T3 Capítuto 11 ll-3.
(a) CLE SPA CME SHR 626
(b) CLE SHL s o b r e c a p a c i d a dE , s¡iA 6
I
527 R E S P U E S T AAS P R O B L E M A SS E L E C C I O N A D O S (b)
I u g ar
I l-5
I : 3
lugar
SKO BL\ 5 OUT
5
SKI BU\I INP
1
ll-6
O c u r r e u n a s o b r e c a p a c i d a ds i l o s s i g n o s d e los dos númerosson igrales pel ei srgno del resulcado es diferente'
l1-7.
( b ) \ ' a l o r d e A - - ( 0 0 1l ) 1 6: ( 1 7 ) r o
I1-8. {\D BU\
II-9. cLA cLE cMA sHR sNA
I A PC .\,1.4R B 022 083 B8F2 A832 0 083 021 5083 A937 5 E I 0 I I I
A 0000 A937 56C8 D49B A937
B 6800 6400 62W 6080 6008
PC 022 022 022 022 023
ll-10. ll ¡rs. I l-l l.
(a) Fqtt2: '4 + A * B, E + arrastre Fqrt3E:.4e4*l (c) Debe detectar el cero positivo y negativo
ll-12.
ORA SWP
B +- M Fqstt: Fqstt: A+-Af Fq6t;. BeM Fqrct2i A+8, Fqrct3 M <- B
l1-13. (b) Instrucción: Tiempo(¡rs):
AND 6
B BeA
ADD 6
BSA BPA STO 5
B<-M, A<-r A<-A+l A<.A18 A * PC. PC* B(AD) Qottl qtrA\utr: PC <- B(AD)
Fqrtf. FqtJ2'. Fq1/3:
SUB
ISZ 7
BSB 5
Br-rN REG r/O 444
I l-14. SBA puede hacerse de diferentes maneras: (a) use el procedimiento definido en el Problerna 9-25; (b) cambie A y B, luego complemente y sume; (c) forme el complemento de 2 en B como en el Problema 9-29' ADM ¡gts: MAR <- B(AD) Qgla: B <- M ?stsi A <-- B, B <- A Qstti A<-A*B 4sttt A <- B, B <- A Qstz: M <- B, G <- 0 ll-17. JE: ez* Ca2* Aro5* A1uau. KE : et + e2+ C'a2 * A\a5 * A\6a6.
a
frr
628 APENDICE i l-19. Un total de 12CI.
Capítulo 12 l2-3.
La anchura del bus de datos.
l2-4.
4.096palabras,8.192bytes.
l2-8.ACSZV (a)381000 \,@)900101
\(.)oooolo (d)0000r0 12-9.
(a) 1R <- MIPCI, PC <- PC + | O) IR <- MlPCl, PC <- PC + 1 AR(H) <- MlPCl, PC e PC + | T <- MIFGI AR(L)<-- M[PC], PC <- PC + 1 A <- A * T MIAR] <- A (c) 1R <- MlPCl, PC <- PC + | (d) 1R <* MlPCl, PC <- PC + | T<--B A<-A+l A<-A+T+l (e) 1R +--MIPC| PC <- PC + | S i ( C : 0 ) e n t o n c e s( P C - P C r 2 , i r a b ú s q u e d a ) AR(H)<- M[PC], PC+ PC + 1 AR(L) <- MÍPC), PC e PC + | PC <-.AR
t2-n.
49.
12-12. (b) Relativo:Instrucciónde dosbytes, A <- MIFC + AD8]. IR <- MlPCl, PC e PC + | AR(L) +- MlPCl, PC <- PC + | Si AR (8) : 0 entoncesAR (H \ * todos 1 AR<. PC + AR T <- MIARI A+-AlT l2-r3. (a) 00Fn (b) TIFB;(c)7r25 1 2 - 1 4 .C i n c o c i c l o sd e m e m o r i a . 12-18.
PC (a) 0l3F a) 67AE (c) 0142 (d) r45A
SP
Pila
3,{56 5A, 14 3A'58 42,0t,5A, 14 3456 5A, 14 3A54
12-21. (a) PC, A, B, C, D, E, F, G, registro de condición. (b) Diez ciclos de memoria.
l
r R E S F U E S T A SP R O B L E M ASSE L E C C I O N A D O 6 2S9 1 2 - 2 2 .x :
Ióli:.r: I{i+
I o l j : R : 1 0 + 1 r+ 1 2 + I 1 . .
1 2 - 2 4 . F F m . F F 0 8 .F F l 0 . F F l 8 . t2-25. (a) l6 (b) ll,7 ( c )4 , 4 x 1 6 t2-26. (a) 8 (b) 128pastillas de 16 gruposde 8 pastillas cada uno. Los gruposson selec. cionadoscon un decodificadorde 4 x 16. 12-27. 24 terminales. 12-28. 32 pastillas RAM con un decodificadorde 5 x 82. ocho pastillas RoM con un decodificadorde 3 x 8. use la línea 13 para 032. Rango de direcciones:0000OFFF para la RAM; 1000- 1FFF para la ROM. 12-29. (a) 8, 4 (c) RAM: 0000-07FF; ROM: 4000-4FFF; interconexión: 8000- 800F
C a p í t u l o1 3 13.1. (a) 1,05V (b) 0,82V (c) 0,23V l3-2.
Is :0,44 mA, Ics : 2,4 mA
l3-3.
(a) 2,4mA ft) 0,82mA @) 2,a+ 0,82N (d) 7,8 (e) 7
r3-5.
(b) 3,53 (c) 2,585mA (d) 16 mA (e) 300 O
l3-9.
(a) 4,62mA (b) 4 mA
l 3 - 1 0 . 0 . 3v .
l'a
Ind ice
Acceso aleatorio. 306 Acceso directo de memoria. 56g A c c e s os e c u e n c i a l , 3 0 5 Acumulador, 380-406 Adición,6 con signo complemento de 1, 536_3? con signo complemento de 2, 3;16 con slgno magnitud, 432-41 en serie,278-82 paralela, 160-61 Adición decimal, 345 Agrupar, 351 A l a m b r e s e n s o r .3 1 0 Algebra de Boole, 36, 4l de dos valores, 39 definición, 36-39 postulados, 42 prioridad
simplificación, 46-48
Ii
;{ .1 i
teoremas,41-42 Algoritmo, 170,423 Algoritmo diseñado, 423 Al macenamiento binario, 27 ALU, 373-77,382-83 diseño del, 391-96 A m p l i f i c a d o r s e n s o r ,3 1 0 A\D, 27 A\D alambrado. 97. 594 A\D-OR.INVERTIDA, 98 Aritmética binaria, 4 Arrastre,123 A¡¡astre de entrada, 384 A¡rastre de salida. 382. 387-88 bit de condición del, 397-98 Arrastre ñnal. 13 A¡rast re posterior, 164-65 generador de, 165 Arreglo lógico programable, 195 con lógica de control, 429,461-64 programable en el campo, 198 tabla de programación del, 198-201 ASC III. 21-22.s67 Asigrración de estado, 236 Base del número,5 Base del transistor, 581 BDC. 17
630
Bifurcación.486.536 a la sub¡utina, 486 condicional,S36 incondicional.486.b36 Binario,2 Bipolar,58l BIT, 16 Bit de arrastre,397-98 Bit de comienzo,568 Bit de parada,568 Bit de paridad, 19 r Bit de signo,396-9? Bit indicador.996.564 BJT,581 Bloqueador,267 tipo D, 214 tipo SR, 210 Bloqueadorcon compuerta,214 Borrado,2l I Borrado del Bit, 350 Bus,323-24 bidireccional,525 para el microprocesador, 522-23 Bus de datos,522-23 Bus de direcciones,522-23 Bus de tres estados,599 Bus direccional,525 Bus I/ O,522-23 Byte,528
7
Cadena de caracteres, 348 Calculadora,3 Caminode datos,373 gatillado del, 374 Campo,37 Capacidadde carga,581 CápsulaROM,554-55 Catacter,2l Caracter de sincronismo,567 Característica,345 Caracte¡ísticadel diodo.585 Cargaen paralelo, 270,276,2gl Celdabinaria.23 Ceronegativo,16,33?
ct,62
Ciclo de búsqueda,360-492 Ciclo {e ejecución,361-494 Ciclo de escritura.303.531
t
l
-_-..--.-.-"..--<_
,\O¡CE
Ciclo de lectura. 302.530 Ciclo de memoria.305.530 toma del, 571 C ircuito aritmético. 383 diseñodel, 3&{-86,388-89 Ci¡cuito combinacional,120-21 análisis del. 133-35 o l s e n ol.z l - I Z Z Circuito de conmutación,28 Circuito dig¡tal,584 Circuito lógico,390 diseñodel, 390-93 C i ¡ c u i t oM S I , i 6 0 - 2 0 1 Ci¡cuito NAND de multinivel, 136 C i r c u i t oN O R . 9 4 - 9 6 análisis del 146-49 multinivel. 144-46 Circuito NOR de multinivel, 144 C ircuito secuencial.208.225 análisis,224-30 asincrónico,208 con temporización, 209-224 diseñodel, 240-46 'sincrónico, 208 Circuitos integradosdigitales,62, 579 Circuitos LSI, 160-201 Ci¡cuitosNAND,90-94 análisis,141-46 multinivel, 136-40 Ci¡cuitos secuencialestemporizados,2W' 224 cMos,62,579,608 circuitoslógicos,609 , Codificadorde prioridad, 180,552 Códigobinario, 16 Códigocargado,18 Códigocondicional,396 Códigode excesotres, 17 Códigode instrucción, 352 Códigode operación,352,532 Códi go de tarjeta, 21-22 Códigog¡ay, 20 Códigohexadecimal,485,538 Códigoreflejado,20 Códigos,16-22 Códigosalfanuméricos,20-21 ASC II,22 códigode tarjeta, 22 E B C D I C , 2 2" Códigosbinarios, 16-22 alfanuméricos,20-22 decimal,17 Códigosde detecciónde errores,19 Códigosdecimales,17-18 Coeficiente,345 Coincidencia,S6 Colector,582 Comandode retención,570 Comparador,170 Compa¡adorde magnitud, 120,205 Comparar,398-404 Complemento,38-56 de una función, 48-49 Complementode bit, 350 11-12 Complementos, sustraccióncon. 12-15 LSI,518 Componentes Comprobarparidad, 153
631
Compuerta, 29-30 Compuerta AND, 29 Compuerta de colector abierto, 592-96 bus común de la, 595 lógica alambrada de la, 594 Compuerta de poste totémico, 596 Compuerta de tres estados, 599-600 Compuerta NAND,59 símbolos gráficos, 90 Compuerta NOR,59 símbolos gráficos, 90 Compuerta OR, !9 Compuerta separadora, 58-6 I Compuerta separadora de bus, 524-25 Compuerta universal, 139-144 Compuertas de circuito integrado, 63-64 Compue¡tas lógicas, 529-58 Compuertas lógicas digitales, 58, 59 Computador,2-3 diseño del, 357 -ffi, 477 -503 Computador análogo, 2 Computador digital, 2-3, 478-489 Condiciones de no importa, 103 Configuración de las funciones de Boole, 45-46 con AND-OR-INVERT, 95-101 con NAND,90-94 con NOR,94-98 con OR-AND-INVERT, 98-101 producto de sumas, 86-89 suma de productos, 86 Configuración de dos niveles,87, 96-98 Conjunto cerrado, 40 Consola de computador, 512 Constante de tiempo, 591 Contador, 251 auto comenzante, 254 BDC.284.290 binario, 282-287 diseño del, 251-55 Johnson,297 N. módulo- 292 rizado.282 sincrónico, 286 Contador asincrónico, 283 Contado¡ autocomenzante, 254 Contador BDC, 284-290 Contador bina rio, 251, 282, 287 con carga en paralelo, 291 Contador creciente decreciente. 283. 287 Contador de anillo, 297 final conmutado, 297 Contador de datos, 538 Contado¡ de N módulos, 292 Contador de rizado, 282 Contador del programa, 359 Contador Johnson, 297 Contador sincrónico, 286 Control conectado o alambrado. 426 diseño del. 439-458. 503 ejempio det,431-452 Cont¡ol condicional, 332 Control del microprograma, 426, 430, 441 del computador,SCT-12 del CPU,468-71 del o¡ocesador. 447-49 ejemplo, ¡t41-46
\l
6.12 tNDtcE (lrrntrol del Pl,A, 126,429,461 e j e m p l o , 4 6 1 - 6 4 ,5 0 3 - 0 7 Control del procesador, 447 Controlador del contado¡ de anillo, 42? Conversión binaria a decimal, 206 Conversión de basede números, 7-9 Conversión entre códigos, 130-162 C o r r e c c i ó nB D C , 1 6 7 Corriente.58l ( l P ( ¿ ' e rP u l s o s d e r e l o j ) C P L i , 3 7 2 ,5 2 8 Cristal, 527 Cuadrados adyacentes,77-81 Datos decimales,343 I)atos no numéricos. 348 Decimal codificado ón binario, 18 Decodificador,171 BDC a decimal, 174-75 BDC a siete segmentos,155 con entrada de activadora, 178 c o n f i g ' u r a c i ó n ,1 7 6 I J e c o d i f i c a d o rr d e m u l t i p l e x o r , 1 7 8 lJecremento, 329 U e m U l t l p l e X o r ,1 / i D e s p l a z a m i e n t o a r i t m é t i c o , 3 41 Desplazamiento circular, 403 Dragrama de estado,227 Diagrama de estadode control, 437-39 Diagrama de secuencia de tiempo, 30, 424 Diagramade Veitch, 75-114 Diagrama de Venn, 44 Diodo, 584 Dip,31 D i r e c c i ó n ,3 0 1 Dirección de bifurcación, 469 D r r e c c i ó nd e m e m o r i a , 3 0 1 Dirección de retorno, 467,547 Di rección directa, 354-55, 540 l)irección efectiva, 542 Di ¡eccionamiento indexado, 543 Direccionamiento indirecto, 543 Di reccionamiento relativo, 541 Disco Fioppy,569 D i s e ñ od e l c i r c u i t o , 4 7 7 D i s e ñ o d e l s i s t e m a ,4 7 7 D i s e ñ o l ó g i c o ,4 7 7 Diseño iógico de control, 423 D i s e ñ o l ó g i c o d e l p r o c e s a d o r ,3 7 2 Disipación de potencia, 68, 581 Disparo.2l6 D i s p a r , ,d e l o s f l i p f l o p s , 2 1 6 Disposit ivo de entrada, 3 D i s p o s i t i v od e s a l i d a , 3 Drenaje. 605 DTL,5;9 compuerta básica,586 compuerta modificada, 587 Ilualidad,4l EAROM, 188 EBCDIC, 21-22 ECL,62,579 compuerta básica de, 600 Ecuación de estado,228 diseño de, 225
Ecuaciones de entrada, 230 Electrónica, 579 Elemento de identidad, 36 Elemento verdadero,/complemento, uno,/cero, 385 Emisor,581 Enlace,562 traslerencia con, 56ll-64 Entrada de carga, 2?0 Entrada directa de puesta a cero,223 Entrada en serie,273 EPROM, I88 Equivalencia, 56-59 Escritura, 301 E s c r i t u r a d e m e m o r i a ,3 0 : t Estad<¡, 20fl F l s t a d od e a l t a i m p e d a n c i a , 5 2 5 , 5 7 0 Estado de esp€ra,53l Estado inválido, 249 Estado no usado, 246 Estado presente,226 Estado siguiente, 226 Exponente, 346 FA {r cr Sumadorcompleto¡ F a m i l i a s l o g i c a sd e C I , 6 2 , 5 8 9 característicasde, 69-70 niveles de voltaie. 6b Fet F l a n c c r n e g a t i v o , 2 7 7- 1 8 F l a n c o p o s i t i v o ,2 1 7 - 1 8 FIip-flop,210 circuito básico del, 2lC ecuación característica, 214 tabla caracteristica, 214 temporizado, 212 acopladodirectamente, 210 entradas directas del, 223 tipo D, 213 de disparo por flanco,22I tabla de excitación, 237-39 fünciones de entrada, 230 tipo JK, 214 maestro esclavo,218 tipo RS, 212-13 disparo del, 216 tipo T, 216 Flip-flop D, 213 disparo por flanco, 221 F I ip-fl op disparado por flanco, 221 -23 Flip-flop JK,2l4 maestro esclavo,218 F l i p - f l o p : n a e s t r o e s c l a v o ,9 1 8 - 2 0 Flip-flop RS, 212-13 Flip-flop T, 216 F lip-fl op tempo rizado, 212 Flujograma, 425 Flujo magnético,309 Formas canónicas,49-54 conveisión entre, 53-54 Fo¡mas no degeneradas, 9?-98 Formas normalizadas, 54-55 Formato de datos, 483 Formato de instrucción, 353, 483, 532 FPLA, 198 Fuente, 605
INDTCE 633 F u n c i ó n d e B o o l e .{ ¡ ' 1 9 c o m p l e m e n t od e . 1 S ' 1 9 confiS'uración.16-1i simPlilia , cllrl {;'li. ;i t a b l a c l e\ c r d . r d . - l Í i F u n c i ó n d e c o n t r o l . 3 1 8 .3 2 0 ¡ ¡ ¡ 1 ¡ l i ¡ i 1 , ¡ 1 ¿; ¡1|:.3 2 F u r . r c i o tp. ia r . t i i . 1 ¡ 1 F u n c i o t r d e p l a n i m e t r í a ,4 7 0 F u n c i o n e sd e ' n t r a d a , 2 l l 0 F u n c i o n e sd e e q u i v a l e n c i a ,l ' 1 8 - 5 : l F u n c i o n e sL S I : a c c e s od i r e c t o d e m e m o r i a , 5 6 9 - 7 ' 1 arreglo Iógico programable' 195-98 en serie. i n t e r c ¡ r n e x i odne c o m u l r i c a c i o n ;-r6á-68 interconexiirn de entrada l- salida, á 5 9 - 6 0 ,5 6 9 i n t e r c o n e x i ó np e r i l é r i c ae n p a r a l e l o , á62-6ó m e m o r i a d e a c c e s oa l e a t o r i o , 3 0 0 - 3 1 2 ' 55'1-55 m e m o r i a d e s o l o l e c t u r a , l f l 8 - 9 5 .5 5 5 - 5 6 microcomputador, 521-24 m i c r o p r o c e s a d o r ,5 2 6 - 3 0 m i c r o p r o c q s a d o rd e u n g r u p o d e b i t s , ; ] 7 7 ,: 1 7 9 receptor. trasmisor, asincrono, 501 s e c u e r i c i a d o rd e l m i c r o p r o g r a m a , 4 6 4 - 6 8 u n i d a , l p r o c e s a d o r a ,2 6 8 - 7 7 ,4 0 1 - 0 6 u n i d a C p r o c e s a d o r ac e n t r a l , 4 6 8 - 7 1 , 4 9 9 - i ; 0 3 ,5 2 8 - 3 0 F u n c i o n e sM S I : acumulador,'106-17 codificador, i77-80 c o d i f i c a d o r d e P r i o r i d a d , 1 8 0 ,5 5 2 comparador de magnitrrd, 170-71 c o n t a d o r , J o h n s o n ,2 9 7 c o n t a d o r e s ,2 8 2 - 9 2 decodificador, lTl-?2 d e m u l t i p l e x o r e s ,1 7 7 - 7 8 g e n e r a d o rd e a r r a s t r e p o s t e r i o r , 1 6 4 - 6 5 m e m o r i a d e a c c e s oa l e a t o r i o , 3 0 0 - 3 1 2 , 554-55 m e m o r i a d e s o l o l e c t u r a , 1 8 8 - 9 5 ,5 5 4 - 5 5 multiplexor, 181-83 r e g i s tr u , 2 6 5- ? o registro de desplazamiento, 399-401, 272-78 s e p a r a d o rd e b u s , 5 2 4 - 2 5 sümador BDC, 167-69 sumador binario, 161-62 u n i d a d a r i t m é t i c a l ó g i c a , 3 9 2 - 9 3 ,3 9 3 - 9 4 Ganancia de corriente DC' 583 Garantía de bus, 570 Gene¡ador de paridad, 153 Cenerador de reloj, 478 Habilitación de interrupción, Habilitación de memoria, 308 Habilitar (o activar), 177,182 HTL,508 I,,,O AISLADO, I' L,62, 589 compuerta básica de, 589
551
[- L (cr-¡nt.l interconexión de. 59() I O aislado de, 560-61 Implicación.56-57 Implícito, 3ó{. 5.1t) h r c r e m e n t o ,l l 2 9 I n d i c a c i ó n d e c e r o . ; l 9 t i - 9 7 ,4 0 8 Indicador, 538 Indicador de pila, 5.1i1-44 Indicador de polaridad, 66 I n d i c a d o rd i n á m i c o , 2 1 3 Inlbrmación binaria, 317 Inlormación discreta, 1 Inhibición,56-57 Instrucción de movimiento, 535 I n s t r u c c i < i n d e o m i s i ó n , 1 U 9 ,5 3 6 Instrucción de salto, 536 I n s t r u c c i o n e s d e c o m p u t a d o r , 3 5 3 ,4 8 2 ,5 3 ? tipos de. 1135 Instrucciones de entrada-salida, 484-488 Instrucciones de referenciade memoria, '183-84 Instrucciones de relerenóiade registros, 483, 48¡l Instrucciones de tipo de control, 535 Instrucciones de tipo operativo, 5ll5 Instrucciones de tipo trasferencia, 5llir Integración a escala mediana, 32 I n t e g r a c i ó n a g r a n e s c a l a ,3 2 Integración en pequeña escala,32 Interconexión de entrada y salida, 559-69 Interconexión en serie,565 Interconexión periférica, 562 Interconexión periférica en paralelo, 562 I n t e r c o n e x i ó n p r o g r a m a b l e , 5 1 9 ,5 5 9 Interrupcrón,549 prioridad de la, 551 Interrupción vector, 550 Inverso, 37 Inversor, 39 L e c t u r a , 3 0 l , 3 2 6 - 2 7 ,5 2 6 , 5 3 0 Lectura de memoria, 304 Lectura destrt¡ctiva, 303 L e n g u á j e d e r e g i s t r o s ,3 1 8 Ley asociativa, 36 Ley conmutativa, 37 Ley distributiva, 37 Libro de datos, 201-02 Lifo, 465 Literal, 97 L ó g i c a a l a m b r a d a , 5 9 4 ,6 0 4 Lógica binaria, 26-27 definición de, 27 Lógica combinacional, 120 c o n d e c o d i f i c a d o r e s ,1 7 6 - 7 7 con MSIy LSI, 159 con multiplexores, 184-85 con PLA, 198-201 con ROM, 190-93 Lógica de diodos y transistor (uer DTL) Lógica de emisor acoplado (uer E CL ) L ó g i c a d e i n y e c c i ó n i n t e g r a d a ( ¿ ' e ¡I r L ) L ó g i c a d e r e g i s t r o s ,3 1 6 L ó g i c a d e r e Á i s t e n c i ay t r a n s i s t o r ( u e r R T L ) Lógica de transistor-transistor, (uer TTL) Lógica de umbral alto, 588
-1'
I 634
INDICE
Lógica negativa,64-66 simbolos gráficos, 66 Lógica positiva, 64-66 Lógica secuencial,208 ' configuración,270-72 de cont¡ol, 426 sistemadigital, 316 LSI, 32 Lleva final de reinicio, 14
!i
&
r+ *, * .' li
M (uerPalabrá de memoria) Macrooperación,356 Macrooperaciones lógicas,318-330 Manipulación algebraica,47-48 Mantisa,345 Mapa de direccionesde memoria,556 Mapa de Karnaugh, 75 Mar,302 Margende ruido,69,581 Máscara,350 MBR,302 Memoria: accesoaleatorio,305 accesosecuencial, 305 circuito integrado,306-08 2 puertas,379 lectura solamente,188-95 núcleosmagnéticos, 308-312 pila de, 544 tafin,377 tiempo de acceso,305 volátil, 305 Memo¡ia de circuito integrado,306-08 Memo¡iade control,430 que sepuedeesc¡ibir, 430 Memoria de dospuertos,379-80 Memoriade núcieosmagnéticos, 303,308-312 llf emoriade sólolectu¡a,188 con lógicacombinacional,190-94 en lógicade control, 430,443,469, 508 tabla de verdad.193 tipos de. 194-95 Nfemoiiadei programa,520 Memoriatapón.377 Memoriavolátil, 30s Métodoclásico,160 Métodode McClusky-Quine,105 Métododel mapa,75 versionesalternas,113,114 Métododel tabulado,105 Microcomoutador, 521-24 Mic¡oinstiucción.430 campode. ,1.15 Microoperaci¡in.317 aritméti.ta.327 desplazarpiento, 332 lógica,330 trasferenciaentreregistros,319 Microoperación aritmética,318-329 Microoperación 318, de desplazamiento, 332 aritmética,341 lógica,352 Macrooperaciones lógicas,318-330 Microprocesaclor, 526 comnnicaciónI i O, 560-61
Microprocesador(cont.) conexiónde memoria,557-58 instruccioned,S34-39 organizacióndel, 528-30 secuenciamiento del, 531-34 señalesde cont¡ol, 526-28 Microprocesadorde un grupode bits, 3?6-79 Microprograma, 430,444,449 Microprogramasimbólico,444 Minuendo,6 Modo de empobrecimiento,605 Modo de enriquecimiento,605 Modo de registro,540 Modo inmediato,540 Modosde di¡eccionamiento,539 de páginace¡o,541 de páginapresente,541 directo, 540 implicado,540 indexado,543 indirecto,543 inmediato, 540 registrode, 540 registrobase,543 registroindirecto,549 relativo,541 MOS.62.579 compuertabásica,606-08 (uer CMOS) MOS complementado MSI,32 Multiplexor, 181 configuracióncon, 184-85 Multiplexor digital, 181 M u l t i p l i c a c i ó n , 64, 5 2 Multiplicaciónbinaria,452 Multiplicador,6, 453 Multiplicando,6, 453 Multiprocesador, 522,574 MUX (uerMultiplexor) NAND.56-60-61 NOR,56-60 N O R e x c l u s i v o5. 6 - 5 9 Normalización.347 NOT,27 Notasde aplicación, Númeropolarizado Númerosbinarios,4-6 complementode, 1 complementode.2 conversiónde,7-9 Númerol decimales.4 conversióna binario,7-9 complementode 9, 12 complementode 10,1l Númeroshexadecimales, 5-6 conversióna binario,10 Númerosoctales,6 conversióna binario,9 conversióna decimal,8-9 Operación,355 Operaciones de registro,498 Operaciones lógicas,55-57 Operadorbinario,36 Operadorde remplazo,320 oR,54 O R . A N D - I N V E R T I D O .9 8
)
tNDtcE 635 OR+¡cius:r':. i64i confrg;:ac:r:..1.1r3 É . . 1 : . c : o n e^- + { .i - i : O r g a : r l z : c : o n c i em e m o r l a . ó 5 4 O r g a n l z a c : o nd e l b u s . 3 i + O r g a n : z a c: o : , d e i c o n t r o l , 4 2 6 - 3 1 O r g a n r z a c : o n d e l p r o c e s a d o r ,B ? 3 Página cero,5.ll . Págrna presente,541 Palabra.188,300 P a l a b r a d e c o n t r o l , 4 0 1 .4 3 0 Palab¡a de memoria. SiF Palabra lógica,352' lógica negativa, 64-66 lógica positiva, 64-66 Pan!_alla de siete segmentos, 155 Par Darlinston. Sgf Par de registros. 529 Pastilla.3l Pastilla de hilera doble. g1 Pastilla de microcomputador, 5lg l'astllla plana, 31 Pastilla RAM, Sb4-55 P i l a . 4 6 5 .5 4 4 Pila de memoria. 544 Pila de registro.46b Pila inseriada, 467.549-46 PLA, 195 Polaridad lóeica.65 Poner a cero.'52? Poner a uno el bit P. 34g Postulado. 36 Postulados de Hunt ington, 3g .l'restar. 127 Primerós implicados, 105 e s e n c i a l e s .l l 2 Prioridad del operador.43 P ¡ o c e s a d o rd e d a t o s , 4 2 4 Producto de sumas. bS-86 Producto de términos máximo\, b3 Producto normalizado. 50 Producto velocidad potencia, 591 P¡om. 194
F*ll;r8:#
arrastre, 162
Puesta a cero, 210 Pulsos de reloi, 20g Punto fiio. 334 Punto flótante, 34b normalizado, 347 Punto radical, 334 Radical. b R a í z b a s e ,5 Ralu, 376 Ram.519 R a m d e C I , 3 0 6 .5 b s R e c o n o c i m i e n t od e i n l e r r u p c i ó n . 5 2 7 ,5 5 0 _ 5 1 ¡reoucclon oe estado.231 R e g i ó na c t i v a , 5 8 2 Región de satu¡ación. 5g3 Registro,23-24,266 ^ .concarga en paralelo, 267 K e g r s tr o a c u m u l a d o r . 3 8 0 - 4 9 0 d i s e ñ od e l , 4 0 6 - 1 7 R e g i s t r o b a s e .5 4 3
Registro base (conf. ) di¡eccionamiento del, 548 r Registro canalizador. 4?0 Registro de almacenamiento, 300 Registro de condición. 396 Registro de desp^la-zamiento(s h i ft er r, 374-7á orseno del. 3gg Registrode desplazamiento (shifter register), 272 bidi¡eccional, 2?6-7g ^ .concarga en paralelo,276_7g Hegistro de dirección. B0l Registro de dirección de control, 442 Registro de direcciones de memória, g0¡. ¿g0 ¡(eglstro de instrucción, 359,491 íeglst¡o cle memoria, 800, 925 Registro de salida, .f{it -g2 Registro indice. b42 Registro indirecto, bg8. bSg Registro secuenciador.'427 -- .ejemplo de control, 452_60 Keglstro separador de memoria. 903, 4g0 Keg¡stro acumulador, 380, 480 diseño del. 406-17 Registros de ent¡ada, 481-g2 R e g r e s od e l a s u b r u t i n a , 5 4 6 - 4 9 Reloi. 526 Reloj'maestro, 2Og.478 Representaciónde signo R e q u i s i c i ó n d e . i n t ' e r r u p c i ó n .5 2 2 - b S O ñequtslclon del bus. 570 R e s i s t e n c i a .5 8 1 R e t a r d o . d ep r o p a g a c i ó n , 6 8 , 5 g l Keverslon de hlstéresls.309 Rom programable, 1g4 Rom (uer Memoria de sólo lectura) RTL,579 compuerta básica de, 5g5 Sac.ar de Ia pila, 468.544-46 Sallda en serie, 273 Secuenciade tiempo. 2gb S e c u e n c i ad e t i e m p o y c o n t r o l , 4 8 9 - g 0 secuenclado¡.466 Secuenciador del microprograma. 464 S e g u l c t o rd e e m i s o r . 6 0 0 Selección de memoria, 306 S e l e c c i o nd e p a s t i l l a . 5 5 4 Selector de dátos, 18i lemiconductor de óxido de metal (uer MO S ) Señal binaria, 28-29 Señal de alto nivel. 63. 580 Señal de bajo nivel, 63,580 Señalde listo,531 S e ñ a l e s d e t i e m p o . 2 9 6 .4 9 I Separadorde bus. 524-25 Signo complemento de 1. 335 Signo complemento de 2. 33b Signo complemento de g, 331 Signo complemento de 1ó,344 S i g n o m a g n i t u d , 4 3 2 - 4 1 .3 3 b S i s t e m ad i g i t a l . l - 2 S o b r e c a p a c i d a d ,3 3 9 bit de condición. 396-97 Sondeo. 552 SSI,32 Subrutina de llamado. b46-4g
j
i'' 1l I'
636
Ir
't
INDICE
Suma aritmética, 335-3E Suma binaria, 336 Suma de productos,55-86 Suma de términos mínimos,51 Sumaen se¡ie.'278 Suma normalizada,S0 Sumador, BDC,167 binario, 160 complementode 2, 340 completo,125-27 decimal, 166 en serie.279 medio, 123-24 paralelo.161 signo magnitud,432-41 SumadorBDC, 167-69 Sumadorbinario. 161 Sumador'compleío;126 Sumadordecimal, 166 Sumadormedio, 123 Sumadorparalelo, 160-61 con arrastre poste¡ior, 1&5-66 Sumadorsustractor,388-90,432-41 Sumando,6 Sust¡acción,6,387 con sigrrocomplementode 2, con signomagnitud, Sustractor,l2? completo,128 medio, 128 Sustractorcompleto,128 Sust¡actol medio,128 Sustraendo,6 Tabla de estado.226 Tabla 'fabla de estadode control, 499-461 'Iabla de excitación,237-39 de verdad,27-28-43 Tabla del programadel PLA, 198-2 faDlerode clrcultosrmpresos,524 I elermpreso¡a.481 TeletiDo.568 Tmrema de De Morgan.42-45-49 Término del producto. ' i96 T é r m i n om á i i m o , 5 0 T é r m i n om í n i m o , 5 0 Tiempode acceso, 305 Tiempo de bit, 276 Tipo de circuito inregrado: 10102 64 1010; 64 2901 379 2910 464 4002 64 4002 64 4022 299 7400 64 7404 64 7442 176 267 74i5 7485 r7l 74185 205 7487 418 7490 284 74138 174 ;.1148 180
Tipo de circuito integrado(cont.):' 74157 r82 74161 nr 74175 267 74182 165 74194 276 745281 501 74283 161 8080,/95 528 8X02 464 82583 169 825100 196 9408 4U Toma de ciclo,5?0 Trasferencia,56-57 Trasferenciade bus,392 Trasferenciade memoria,325 TrasferenciaDMA, 559,5?1-74 Trasferencia en paralelo, 26?-68 Trasferenciaen ierie, 273 Trasferencia entre registros, 24-26,.B1g TrasferenciaI,/O directa, 563 Trasfbrmaciónde código,'469, 5I I Transisto¡,581 caracteristicas,53l ci¡cuito del, 582-85 Transistor de juntura, 581 Transistor M O S, 605-607 Transistor Schottky, 598 T¡asmisión asincrónica,567-68 Trasmisiónsincrónica,566 Tri estado,599 "tTL,62,579,591 colectorabierto,592 Schottky, 70,597 serie1400,63 normalizada,70,591 tres estados,599 postetotémico, 600 TTL Schottky,70,592,598 UART,5O2 Un flip-flop por estad,o,427-29 ejemplo,439-41 Unidad a¡itméticalógica,(uerALU) Unidad de control,503-512 llnidad de memoria,300-306 ejemplos,306-312 Unidad multiplicadora,452-460 Unidadprocesadora, 401 controlde,447 Unidad procesadora central,372, 528 Unipolar,581 Varidble binaria,2T Variablede Boole,38 Variablede tiempo,358 VLSI,32 Voltaje,582 \¡oltajeumbral,605 X O I t ( r ' e rO R - E x c l u s i v o )