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 siguientemanera: 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 un y 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' ysigno ".p.ñ¿" 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 a mlestra que la función i, es igual 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 001 en las filas 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 que F3 mismo 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 suma á. tr.tu función eipresada en 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 "pltación-AND. d;id" ; la simi¡t,ud de la operación AND y el 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 se las funciones desible para las dos u"rüb1"" dadas x y y'Nótese.que pueden ser asigque terminan a partir d; l;. 16 combinaóiott". binarias, operador' símbolo un nadas a F. Algunas de las funcionesse muestran con y represenFt AND para una verdad pói ej"-plo, F, .upr*enta la tabla de 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 püede ser igual solamente a-1 ó 0. La función complementoprobinaria '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 ,"ilii^, tru q.,1 se puede las compuertas de co*prrertas NAND. Posteriormente se tratará sobre y 4-8' 3-6,4-7 Secciones las en NOn NAND v 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. decir, es igual más de dos variables.La función oR-exclusiva es impar, es impar de unos' La funa 1 si las variabler-d" á"1."¿a tienen un número 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' los tran;;:'i"t" g;"dfs disponibles con 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 com;;;'ñ;o LSI y 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 una 3 patiila^sexternas: dos para entradas v que cada compu"tti ;;t;tit; restantes patillas totai de 1.2patillas' Las dos para la salida,.p"; á;;;; circuitos' a los potencia se usan para el 'u-i]litt'o de 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 del circuito áentro áib":udas xiones que pueden hace'se' Lu' "otp'i"it* t'o ptt"d"tt verseya que en la totut"tt"l integrado son para i"r**áti¿" at l" forma ilustrada en la Figura realidad el circuito integrado aparece 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 con El" 10102viene 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á "o"e*i¿"i' g a t5 íoltios y vss comúpmente-seconecta un voltaje au .rr*i.riJro d" a tierra. l r vcc t4 13 vcc t4 23456 13 7 Tie¡ra 740<t-Seisinverso¡es 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 sistema "ií"íel define ñigri""i_to(b) poT -;ái; áái .""t se 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 de lalablá y L:0. nf .oriilr* H:t EI símNAND' compuerta una tlqt-t-d" la Figura 2-5, se reconoceque se 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 " las demoras de serie de to'opu"tt"t' Lu 'u-u de' salidas pasan po' t" ¿"-ora total de propagación """ propagación u t."u¿t de las compuertas "t comde operaciónes 'importante' cada del circuito' cu"nál l^ *fotiaád digital circuito y el. ''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 por similar para los niveles tercero 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' son l. De ¡uriáa,será entradas las de voría "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;' compuertas? de tipo tt-tigoit"t" si t";;i;;; 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 ü 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')<B'+ 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<llecon compuertas NAND. Recuérdeseque si se combinan los cerosen un mapa, se obtiene la expresiónsimplificada del complementode la función en suma de productos. El complementode la función puede ejecutarsecon dos niveles de compuertas NAND usando las reglas establecidasanteriormente. Si se desea una salida normal. debe ser necesariocolocar una NAND de una entrada o compuerta inversor para generar el valor verdaderode Ia variable de salida. Hay ocasionescuando el diseñadorquiere generarel complemento de la función para las cuales este método es más aconsejable. EJEMPLO tas NAND: 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" ;":";; para el complemento de la función "" li:91:l: dría ser el usar f" "ü.".1¿" de dos niveles para F'- y una eJecucron 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 cominversora. prárt" Nón d"'""a sola entrada o compuerta 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' de ción en práducto 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 El tabulado de los primeros implicados para este ejemplo se muestra 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<rrma más simple en suma de productos de la l'unciórt F : f g, donde / y g estén dados por: -f : wry' + y'z + w'yz' + x'),2' g : (v, + x + y' + z')(x' * y' + z)(w' + y + z') S u g e r e n c i c tV : e¡ el Problema 2-8(b). : l - 2 2 . S i m p l i f i q u e l a f ' u n c i r j nd e B t x ¡ l e d e l P r o b l e m a S - 2 ( a ) u s a n d o e l m a p a d e f i n i d o en ia l'igura il-29(a). Repita el ejercicio con el mapa de la Figura 3-29(b). 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 <le unos y ceros que pueden tener esas variables' Los d" las variables-de salidá se determinan por la suma aritméV ""o. ""ro, tica de los bits de entrada. Cuando todos los bits de entrada sean ceros' la salida es cero. La salida S es igual a 1 cuando solamenteuna entrada 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<i,cada bit de sustraendo del número se resta de su correspondientebit significativo del minuendopara formar el bit de Ia diferencia.Si eL bit del minuendo es menor que el bit del sustraendo,se presta un 1 de Ia siguiente posición significativa. EI hecho de que se ha prestadoun 1 debe llevarse 127 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ítase el 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 ló_gico equivalente diagrala 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 ;;"";;;;;-"" en el nivel 3 y dos en dl "f',iiti-á "l""liál.u 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 4-5. del códi4-11. Diseñe un crrcuito combinacional que convierta un dígito decimal 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 mentos correspondientes en el indicador como se muestra en la Figura (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' .,u".ru.iurnénte cierto cuando se usan circuitos 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ño de 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 multiplicando propagaciónde una compuertatípica 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 u C, Ca no tiene que esperar 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<r La primera óolumna en Ia tabla Iista las sumas binarias a medida blC. que aparec;n en las salidas de un sumador binarío de 4 bits. La suma de salida de dos dígítos decimales debe representarse en BDC y debe aparecer en la forma listada en la segunda columna de la tabla. El problema es encontrar una regla simple por medio de la cual el número binario en la primera columna puede convertirse a la correcta representación de dígitos BDC del número en la segunda columna. Al examinar el contenido de la tabla, es aparente que cuando la suma binaria sea ig¡al o menor que 1001, el correspondiente número BDC es idéntico y por tanto no se necesita conversión. Cuando el número binarir,r e s m a y o r q u e 1 0 0 1 s e o b t i e n e u n a r e p r e s e n t a c i ó nB D C n o v á l i d a . L a s u m a d e l b i n a r i o 6 ( 0 1 1 0 )a I a s u m a b i n a r i a I o c o n v i e r t e a l a r e p r e s e n t a c i ó nB D C correcta y también produce el arrastre de salida requerido. El circuito lógico que detecta Ia corrección necesaria puede derivarse de las entradas de la tabla. Es obvio que se necesita una corrección cuando 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 procedimiento un 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: 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 (A > B): 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 ¿ Q u é i n v á l i d a s 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 ;il;;";";;*#f#ilT:ü;i; _1.1en cualquie-r 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 condi- ciones 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 de ;;1;;d". una ÉOú se caracterízapor el número 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 veces bras. una ROM se especificaalgunas 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 q u e s e a l m a c e n a d a especifican una dírección pata una palabra específica t r e s 5 2 4 t i e n e F i g u r a l a d e l a R O M upii.u luego a las salidas. Por ejemplo, l a d e a c u m u l a d a s p a i a b r a s o c h o e s p e c i f i c a n líneas de dirección las cuales 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"., de mayor "1 de estos circuitos integrados, se pueden comparar los _números en cascaáa.Las salidasA<B' A> 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 entradasA <B y las a 0 B un A: entrada a la 1 un debe-aplicar cl74L85,se bits menos significativos.usando i ,q, n á" .r ci qie r.rariprrlalos cuatro ?4L85,obtengaun circuito para y un cI 5-7 Figura la de un circuito .o*o .i circuito' comparar dos números de 8-bits. Justifique la operación del ^3 A<B 12 Al Ao C ircuito dela Figura 5-7 B3 A>B A>B B2 Bl A=B Bo A<B A>B 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 propagarse a-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 amplipara las señales binarias' La tudes fijas tales coñro niveles de voltaje -de 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 (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 hay un ""tá"ce. 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 cambio lo cual causaque la salida áel flip-flop Q vaya a 1' Un 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 u-6". señal 0 de S. Cuando CP u"yu á "r.o, 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 Q' 1 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 que comporten se ii"" á"f pulso. Aqriellos flip-flops 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 flip-flon e.n e| el y de puestoo ,rro- áirecta (direct clear). Ellas afectan necesarioel 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 vez entrada del flip-flop en 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 áiug*^" Iógico.Los procedimientosde diseño se presentan comenzando 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 v R 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 R : 0 . s i e l f l i p - f l o pv a a t e n e r á ; ú ; ; . ; Q t r + 1 ) i g u a l a 1 e s h a c e rs : 1 y : 1 al estado0 se debe tener S: 0 y R 1' 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 circuito secuencialsincrónico se hace de flip-flops y compuertas 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 l porque 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 1.t los cuatro 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 no de 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 _llama Un registro ,"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 L a -rri.tru lu op".u.iór, del circuito. 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 c o n t a d o r ." 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 recuperáción de la palabra en el registro de memoria. La trasferencia de infor'mació" de una memoria de núcleos magnéticos durante una operación de 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 Inni 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 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 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. 7-5. 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 l í n e a s tipiu*or". y el número de 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. - - a io,,.girt.os dido 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 lnemorias {1 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 , GICAS M I C R O O P E R A C I O NAERSI T M E T I C A LSO 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 "n la posición de extrema izquiérda áéi"-ie"giltro, 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_ cluyendo el 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ígitosdel 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 valor io, .rruttdo se aplica con un I a una compuerta AND- no cambiará el 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 obtiene y 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 "r, de _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 por un un sig r negativo ¡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 <te bioque de un ALU (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" t 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 hacer 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 E F:A F-A+l F:A+B F:A+B+l F:A+E E F:A+E+l 0 0 B B 0'I 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<B entonces (A-.8) <0 y F<2'para que Cout:0. El resultado a r i t m é t i c op a r a e s t a condición puedeser expresadocomó: F:2-(B-A) lo.cual .es el conplementode 2 de B-A. Así, la salida de la sustracción aritmética es correctasiemprey cuandoA > É. 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 parte de"suma,se necesita C,. :0' Para la par,t9d9 sustracción la -"""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ñode 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. El bit Z se pone a uno si la salida del ALU contienesólo cerosy se .J. 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<B) o el bit Z debeser 1 (párae: n¡. La Tabla g_5lis_ ta también las funcionesde Boole que debeniatisfacersepara cada una de las seis relaciones. . Algunos computadoresconsideranel bit c como el bit de préstamodespués.deun_aoperaciónde sustracciónde A-8. un bit de préitamo no ocurre si A zB pero un bit extra debe serprestadocuandoe ia. La condición para el bit de préstamo es el complementodel arrastre de salida obtenido cuando se hace la sustracción,tomando el complementode 2 de B. por esta razón un procesadorque considerael bit c como el bit de préstamodespués de una sustracción, complementaráel bit c despuésde la sustracción u operaciónde ccimparar,ión y denotará este bit comó préstamo. considéreseahora la operaciónA - B hecha dor númerosbinarios c:onsigno cuando los núrnerosnegativos están en "on la forma de complemento de_2. Las magnitudes relativas de A y B pueden ser determinadásde dos valores trasferidosa los bits de condición 2, s y v. si z: I se conoceque A : 8 , c u a n d oz : 0 s e t i e n e q u e A + 8 . s i s : 0 , e l s i g r r od e l r e s u l t a d oe s Tabla 9-5 Bits de condición despuésde la sust¡acción de los números sin signo (A - B) Relación A>B A>B A<B A<B A:B A+n 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 <B A<B A:B A+B 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 Por "'p".ificar 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 r 0 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ódigodel 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 <l 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 normales del ".r 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 disponibilidad "onfigoración 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 Los maestros' co se controla por medio de un generadorde pul'qosde.reloj sistema, el en y registros los p"rro. a" reloj se upii.un a todos*los flip-flops Los pulsos coni""i"V""a" tos nip-hops y registros-en-láunidad de control' que el registro no.ser a registro un de *tñ¡iá" e"l estado 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ñodel 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ña la 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: -(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 asociada con 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<lntrol de estado, conjuntamente con su lista de mlcroope-. raciones, es más preciso ya que toma en consideración las restricciones de los componentes del sistema. La secuencia de control de las operaciones se define en la Figura 10-1b. El control tiene cuatro estados y las operaciones de trasferencia entre registros de cada estado se listan a continuación del diagrama de estado. El control permanece en un estado inicial ?,, hasta eu€ go, se convierta en 1. Pasará luego al estado ?¡ para inicializar los registroi ¿,, n y p y forma-rel signo del producto. El control pasa luego allstado r,.E"..i" r.tado se decrementa el registro P y el contenido áe B se agrega a A si e, : 1, 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 bina-- - - El procesador de Ia Figura 9-16 se usa para multiplicar dos 10-16. 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 da un poroducto de no más de 2n dígitos de longitud. Muest¡e que esta decladiseració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 siguienteinstrucció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