You are on page 1of 867
ANALISIS Y DISENO DE Circuitos LOGIcos DIGITALES VicTOR P. NELSON H. TROY NAGLE at Bitt D. CARROLL = J. DAVID IRWIN ANALISIS Y DISENO DE Circuitos Locicos DIGITALES Vieror P. Netson ¢ A. TROY Nacte Bit DL Carrou © J. DAVID IRWIN ene ene Rc cs ae Rec acUee ce Pe ere ene MR en Re fener Secret ene) Seen oho e rss Mee re a ene Bice reese eteen ieee ant nn ep Pee eee Secrest pe nieces netice eee Parmeter meen ces user et Tc ee ee ai ea crea ke RCM moe Pee ere creer toe sme mua ont retreat mer ri enc one ine eno Peon tac ns Sevan ent eee OR Cn Naan ce ene net cee en cece nce Sa ccc digitales Demers tiers ere ered Se ee ero et Ce me Cee? su investigacién en las-dreas de anqaitectnra y diseno de compatadoras, computacion tolecante de fallas: Pease cu Tare at aeee emeret a iten uaesscr nema agen en e Pree Reread eens em octet ne abe Ce ee Compusing: An Inroduction. Ne eet Nt et em aoe Re een Pere ORS ano et investigador de ingenieria biomédica en Ja University of North Carofina at Chapel Hill. EE Dr. N. RTS mene nme aerate ro ala) Investigaciones en fis areas de disefio para la verificabilidad. snicrosensores bioiedicos instrumentation médica. Fue electy presidente del IEEE pars 1994, Me ec Rena a em aoe Rec ere te ea ey fe ihgenieria ew li University of Texas at Arlington. Sus intereses de investigacion se centran en las 1s de computaci6n tolerante de Fillas, diseno de sistemas digitiles. arquitectora de computaitorss ¥ Peseta Reson Rad ee mes Me Sue ei nec se acca ee ee cane Ree ree eres ercee a eT ee Cer et ec a oh ane eee ec Ree etree Mate tile a aaa ee Oe n(n ia ees ene Toe Optra eae ere escent en Cc OU cca ae aaa Pe Reena Leino) Edueacion VMN Analisis y diseno de circuitos ldgicos digitales Analisis y diseno de circuitos ldgicos digitales Primera edicion Victor P. Nelson Traduceién: ‘Auburn University Men C, Oscar Alfredo Palmas Velasco Facultad de Ciencias, UNAM H. Troy Nagle + North Carolina State University Revisor técnico Bill D. Carroll Carlos Hendndez Pérez University of Texas-Arlington Ingeniero Mecdnico Eleeiricista UNAM J. David Irwin ‘Auburn University Pearson ducacion MEXICO + ARGENTRVA * BRASIL + COLOMBIA + COSTA RICA + CHILE ESPANA + GUATEMALA + PERU + PUERTO RICO + VENEZUELA EDICION EN INGLES: Acquisition Editor: Don Fowley Production Editor: Joe Seordato Copy Editor: Bill Thomas Designer: Amy Rosen Cover Designer: Warren Fischbach Buyer: Bill Scazzer NELSON: ANALISIS ¥ DISENO DE CIRCUITOS LOGICOS DIGITALES 1/Eit Traducido del inglés de la obra: DIGITAL LOGIC CIRCUIT ANALYSIS AND DESIGN All rights reserved, Autorized translation from engtish language edition published by Prentice Hall tne. A Simon & Schuster Company. Todos los derechos reservados, Traduecién autorizada de la edicin en inglés publicada por Prentice Hall Inc. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying recording or by any information storage retrieval system, without permission in writing from the publisher. Prohibida la reproduccién total o parcial de esta obra, por cualquier medio 6 método sin autorizacion por escrito del editor. Derechos reservados © 1996 respecto ala primera edicidn en espanol publicada por Prentice Hall ae an 382" 0 ac in ac ‘Newetpa on Jute. Eon co Meno. ISBN 968-880-706-0 Miembro de la Cémara Nacional de la Industria Editorial, Reg. Nim. (S24 (Original english language edition published by Prentice Hall Inc. Copyright © MCMXCVI XEN arse All Rights Reserved ISBN 0-13-463894-8 Impreso en México/printed in Mexico B® Prefacio ® OIntroduccién 01 0.2 0.3 04 B® 1 Sistemas numéricos y cédigos 1 Historia de la computacion 0.1.1 Los inicios: Computadoras mecénicas 0.1.2 Primeras computadoras electronicas 0.1.3 Las primeras cuatro generaciones de computadoras 0.1.4 — Laquinta generacién y mas allt Sistemas digitales 0.2.1 Sistemas digitales y analégicos 0.2.2 Jerarquia de disefio de un sistema digital Organizacién de una computadora digital de programa almacenado 0.3.1 Instrueciones de la computadora 0.3.2 Representacién de la informacién en las computadoras 0.3.3. Hardware de computadora 0.3.4 Software de computadora Resumen Sistemas numéricos 1.1.1 Notacién posicional 1.2 Sistemas numéricos de uso comin Xvi ane aes 20 2 2 2 vi Contenido 12 Aritmética 22 12.1 Aritmética binaria 23 12.2 Aritmética octal 27 1.2.3 Aritmética hexadecimal 28 1.3 Conversiones de base 30 13 Métodos de conversién 31 1.3.2 Algoritmos generales de conversion 35 1.3.3 Conversion entre Ia base A y Ia base B cuando B=A* 36 1.4 Representacién de nuimeros con signo_ 37 1.4.1 Nimeros con magnitud y 38 14.2 temas numéricos complementarios 38 1.5 Cédigos de computadora 55 1.5.1 Cédigos numéricos 55 1.5.2 Cédigos de caracteres y otros eédigos 61 ‘ 15.3 COdigos para deteccién y correccién de errores 65 4.6 Resumen — 73 @® 2 Métodos algebraicos para el andlisis y sintesis de circuitos légicos 78 2.1 Fundamentos del algebra booleana 79 2.11 Postulados bisicos 9 2.1.2 Diagramas de Venn para los postulados [2] 80 2.1.3 Duslidad 81 2.1.4 — Teoremas fundamentales del algebra booleana 84 2.2 Funciones de conmutacién ci 22.1 Tablas de verdad 93 2.2.2 Formas algebraicas de las funciones de conmutacién 94 22.3 Deduccién de formas canénicas 101 2.2.4 — Funciones con especificacién incompleta 103 23 24 25 2.6 27 28 Contenido vil Circuitos de conmutacién 231 Compuertas légicas electrénicas 232 Componentes funcionales basicos Andiisis de circuitos combinatorios 2.4.1 Método algebraico 24.2 Anilisis de diagramas de tiempos Sintesis de circuitos légicos combinatorios 25.1 Redes AND-OR y NAND 2.5.2. Redes OR-AND y NOR 25.3 Circuitos de dos niveles 2.5.4 Cireuitos AND-OR-Inversor 25.5 Factorizacion Aplicaciones Disefio de circuitos légicos asistido por computadora 271 El cielo de diseito 272 Modelads de un circuit 2.73 2.74 digital ntas de captura esis de disetio y herr: Resumen B® 3 Simplificacion de las funciones de conmutacion 34 3.2 3.3 Objetivos de la simplificacion Caracter icas de los métodos de minimizacion Mapas de Karnaugh 3.3.1 Relacién com los diagramas de Venn y las tablas de verdad 3.3.2 Mapas K de cuatro o mis variables 104 10s 108 120 120 123 128 128 130 131 133 134 136 140 140 140 148 152 165 172 173 174 175 176 177 vill, Contenido 34 35 3.6 37 38 39 3.10 34 1 Trazo de funciones en forma canénica sobre el mapa K Simplificacién de las funciones de conmutacién mediante los mapas K 3.5.1 Criterios para la simplificacién de funciones mediante mapas K 35.2 — Terminologia general para la minimizacion de una funcién de conmutacién 353 Algoritmos para la deduccién de formas SOP minimales a partir de mapas K Forma POS mediante mapas K 3.6.1 Terminologia general para las formas POS 3.6.2 Algoritmos para la deduceién de formas POS sminimales a partir de mapas K Funciones con especificacién incompleta Uso de mapas K para eliminar riesgos de tiempo Método de minimizacién tabular de Quine-McCluskey 3.9.1 Procedimiento de cubierta 3.9.2- Funciones con especificacién incompleta 3.9.3 Sistemas con miiltiples salidas Algoritmo de Petrick Minimizacién de funciones de conmutacién asistida por computadora 3ALI — Representacién ciibiea de las funciones de conmutacion 3.11.2 Método: primos 3.113 Wdentificacién de implies ebraicos para determinar implicantes tes primos esenciales 3.11.4 Cémo completar una cubierta minima 3.11.5 Otros algoritmos de ntinimizacién 3.12 Resumen 179 185 187 187 197 197 197 203 206 2 215 28 220 225 227 228 230 231 234 235 Contenido ix @® 4 Légica combinatoria modular 44 42 43 44 45 46 AT 48 49 Disefio modular descendente Decodificadores 42.1 Estructura de circuitos decodificadores 4.2.2 Implantacién de funciones légicas mediante decodificadores 42.3 Entradas para control de activacion 424 Decodificadores MSI estindar 42.5 Aplicaciones de ios decodificadores Codificadores 43.1 Estructuras de un circuito codificador 43.2 Codificadores MSI estindar Multipt s/selectores de datos 44.1 Estructuras de cireuitos multiplexores 4.4.2 Multiplexores MSI estindar 443 Al jones de los multiplexores Demultiplexores/distribuidores de datos Elementos de aritmética binaria 4.6.1 Circuitos sumadores binarios basicos 4.6.2. Médulos de sumador binario MSI 4.6.3 Unidades sumadoras de alta velocidad 4.6.4 Circuitos de resta binaria 46.5 Deteccidn de un desbordamiento aritmético Comparadores Ejemplo de disefo: Una unidad aritmética-logica de computadora Disefio de sistemas modulares asistido por computadora 4.9.1 Biblioteeas de diseio 49.2 Trazo de esquemas jerirquicos 242 243 245 246 247 249 252 253 259 260 264 268 268 270 277 280 283 283 285 289 294 295 302 2 312 314 x Contenido 4.10 Simulacién de sistemas jerarquicos 4.11 Resumen B® 5 Disefo de un circuito combinatorio con dispositivos logicos programables 51 5.2 5.3 5.4 55 Dispositivos légicos semiadaptados Circuitos de arreglos logicos Operacién de diodos en circuitos digitales Arreglos logicos AND y OR Arreglos AND-OR de dos niveles Arreglos AND y OR programables mediante campos 5.2.5 — Opciones de polaridad de salida 5.2.6 Pines bidireecionales y lineas de retroalimentacion 5.2.7 Dispositivos comerciales Arreglos légicos programables mediante campos 5.3.1 Estructuras de circuitos FPLA 5.3.2 Realizacién de funciones légicas con FPLA Memoria programable exclusiva para lectura 5.4.1 Estructuras de circuitos PROM 5.4.2 — Realizacién de funciones légicas con PROM 543 Tablas de busqueda 5.4.4 Aplicaciones generales de Ia memoria exclusiva para lectura 54.5 — Teenologias de memorias exclusivas para lectura Logica de arreglos programables 5.5.1 Estrueturas de circuitos PAL 5.5.2 Realizacidn de funciones légicas con PAL, 5.5.3 Opciones de salida y retroalimentacién de PAL 317 319 328 329 330 330 332 333 338 341 343 345 347 347 347 350 350 352 358 360 362 362 363 366 5.6 Herramientas de disefio asistido por computadora 57 para el diseno PLD 5.6.1 Representacién de disefio con PDL, 5.6.2 Procesamiento de un archivo de disefio PDL Resumen B® 6 Introduccion a los dispositivos secuenciales 61 6.2 63 64 6.5 66 6.7 6.8 Modelos para circuitos secuenciales 6.1.1 Representacién de diagrama de bloques 6.1.2 Tablas y diagramas de estados Dispositivos de memoria Latches 63.1 Lateh set-reset 6.3.2 Latch SR con compuertas 63.3 Latch con retardo Flip-flops 6.4.1 Flip-flops SR maestro-esclavo 6.4.2 Flip-flops D maestro-esclayo 643 Flip-flops JK maestro-esclavo 64.4 — Flip-flops D disparados por transicién 64.5 Flip-flops JK disparados por transicién 64.6 Flip-flops 6.4.7 Resumen de latches y flip-flops Otros dispositivos de memoria Circuitos de tiempo 6.6.1 One-shots 6.6.2 El médulo temporizador 555 Creacién rapida de prototipos de circuitos secuenciales Resumen Contenido xi 371 373 378 380 382 383 383 385 387 389 389 396 398 403 404 406 407 409 413 415 417 418 418 418 418 421 xii Contenido @® 7 Logica secuencial modular 432 7.1 Registros de corrimiento 433 7.1.1 Um registro de corrimiento genérico 34 7.1.2 Modulos estindar TTL de registro de corrimiento 436 7.2 Ejemplos de disefio con registros 448 7.2.1 Unidad sumadora serial 448 7.22 Acumuladores seriales 449 7.2.3 Acumuladores paralelos 449 7.3 Contadores 449 731 Contadores binaries sincronos 4st 7.3.2 Contadores binarios asincronos 455 7.3.3 Contadores hacia abajo 460 73.4 Contadores hacia arriba/hacia abajo 461 7.4 Contadores médulo N 464 7.4.1 Contadores BCD siacronos 464 7.4.2 Contadores BCD asincronos 467 74,3 Contadores médulo 6 y médulo 12 an 74.4 Contadores médulo N con reset asincrono 475 7.4.5 Contadores médulo N con reset sinerona any 7.5 Registros de corrimiento como contadores 477 7.5.1 — Contadores de anillo 478 7.8.2 — Contadores de anillo trenzado 483 7.6 Contadores de secuencia multiple 489 7.7 Multiplicadores de razén fraccionaria digital 490 7.7.1 Médulos TTL 492 7.1.2 Multiplicadores de razén fraccionaria len cascada 496 7.8 Resumen 496 Contenido xili ® 8 Anilisis y sintesis de circuitos secuenciales sincronos 64 8.2 8.3 8.6 Modelos de circuitos secuenciales sincronos 8 Modelo de Mealy 8.1.2 Modelo de Moore Analisis de un circuito secuencial 8.2.1 Anilisis de los diagramas de estados de un circuito secuencial 82.2 Andtisis de los diagramas légicos de un cireuito secuencial 823 Resumen Sintesis de un circuito secuencial sincrono 83.1 Procedimiento de sintesis 8.3.2 Tablas de entrada de un flip-flop 8.3.3 Método de ia ecuacién de aplicacién pai los flip-flops JK 8.3.4 Ejemplos de disefio 8.3.5 ramas de maquina de estado algoritmico 8.3.6 Método de disefio de una maquina de estados finitos one-hot Circuitos con especificacién incompleta. 84.1 Asignacién de estados y realizacién de cireuitos Disefio asistido por computadora de circuitos secuenciales 85.1 Captura y sintesis det disefio 8.5.2 Anilisis y yerificacién del disefio Resumen B® 9 Simplificacién de circuitos secuenciales 4 9.2 Estados redundantes 91.1 Equivalencia de estados 9.1.2 Equivalencia y relaciones de compatibilidad Reduccién de estados en circuitos con especificacion completa 9.2.1 Inspeecién 502 503 504 50S 507 507 508 517 519 520 522 524 526 553 555 558 558 559 565 576 577 $79 579 579 xiv Contenido 9.3 94 95 9.22 Particién 9.2.3 Tabla de implicacién Reduccién de estados en circuitos con especificacion incompieta 93.1 Compat 932 — Procedimiento de minimizacién lidad de estudos Métodos para una asignacién optima de estados 94,1 Asignaciones de estados tnicas 9.4.2 — Criterios para Ia asignacién de estados 943 Particién 9.44 Asignaciones éptimas de estados Resumen B® 10 Circuitos secuenciales asincronos 10.1 10.2 10.3 10.4 10.5 10.6 Tipos de circuitos asincronos Anlisis de circuitos asincronos de modo pulso Sintesis de circuitos de modo pulso 103.1 Procedimiento de disefto para cireuitos de modo pulso Anilisis de circuit 10.4.1 Introduccion 10.4.2 Representaciones tabulares 10.4.3 Procedimiento de andlisis de modo fundamental Sintesis de circuitos de modo fundamental 105.1 Procedimiento de sintesis Introduccion a las competencias, ciclos y riesgos 10.6.1 Competencias y ciclos 10.6.2 Cémo evitar condiciones de competencia 10.6.3 Asignaciones de estados Jibres de competencia 10.6.4 Riesgos 10.65 Andlisis ‘581 584 589 594 602 614 619 620 624 625 632 632 641 645 648 659 660 663 664 671 673 10.7 Contenido xv Resumen B® 11 Circuitos secuenciales con dispositivos légicos programables WA 11.2 11.3 114 11.5 11.6 Dispositivos logicos programables con registros {L1.1 Secuenciadores légicos programables mediante campos 11.1.2 PALcon registro 11.1.3 PLD con macroceldas logicas programables Arreglos programables de compuertas 11.2.1 Arreglos de celdas légicas 11.2.2) FPGA ACT Disefo de circuitos secuenciales y seleccién de dispositivos PLD Ejemplos de disefio de PLD Disefo asistido por computadora de PLD secuenciales 1LS.1 Representacién del diseflo de un cireuito sceuencial mediante PDL 11.5.2 Procesamiento de un archivo de disefio en PDL Resumen B® 12 Verificacion de circuitos ldgicos y disefo verificable 124 12.2 12.3 Verificacion de circuitos lagicos digi Modelos de fallas Verificacion de un circuito l6gico coml i 123.1 Generacién de pruebas 12.3.2. Fallas no verificables 12.3.3 Redes com varias salidas 12.3.4 Conjuntos de pruebas para deteccién de fallas 12.3.5. Localizacién y diagnéstico de fallas 12.3.6 Verificacidn aleatoria 673 686 687 691 696 700 702 705 m3 715 717 723 m3 ns 733 738 739 740 741 751 752 787 758 xvi Contenido 12.4 Verificaci6n de circuitos logicos secuenciales 12.5 Disefo para la verificabilidad 12.5.1 Diseiio de una ruta de rastreo 12.6 Autoverificacién integrada 12.6.1 Generacién seudoaleatoria de vectores de prueba 12.6.2 Analisis de identificaciones 12.6.3 Observador integrado de bloque légicn 12,7 Rastreo de frontera en el nivel de sistema y de tarjeta 12.8 Resumen ® 13 Ejemplos de disefo 13.1. Maquina tragamonedas electrénica 13.1.1 Definicién del problema 13.1.2 Necesidades del sistema y plan de solucion 13.1.3 Diseiio légico 13.2 Sistema de entrada automatica sin llave 13.2.1 Definicién del problema 13.2.2 Necesidades del sistema 13.2.3 Disefio légico 13.3 Controlador de trafico de un carril 13.3.1 Necesidades del sistema 13.3.2 Disefio légico 13.4 Caja registradora de una tienda de abarrotes 13.4.1 Necesidades del sistema 13.4.2 Diseiio légico B® indice 760 763 164 768 769 77 715 781 788 789 789 790 792 801 801 803 805 810 813 815 821 823 824 832 @® Lanecesidad de este libro Este texto tiene su origen en una obra anterior, Am Introduction to Computer Logie (1974), de Nagle, Carroll e Irwin, texto ampliamente adoptado que abarca Jos fundamentos del andlisis y sintesis de los circuitos légicos secuenciales y combinatorios, La obra original fue apreciada por su claridad y su eficacia en la enseflanza, y a pesar de los répidos cambios que hubo en el campo a fines de la década de 1970 y principios de la de 1980, el libro fue utilizado durante ‘muehos afios después de su fecha de publicacién inicial lo que pone de manifiesto cl importante hecho de que en la mayor parte del periodo transcurrido desde la publicaci6n de ese libro, el punto de vista educativo general de los cursos introductorios al diseflo digital evolucion6 lentamente, al tiempo que los principales cambios tecnolbgicos eran adoptados con rapidez por la industria iCémo han cambiado las cosas! En fechas recientes, la proliferacién astronémica de las aplicaciones de los circuitos digitale y el fenomenal aumento en Ia complejidad de dichos circuitos han impulsado cambios significativos en los métodos y herramientas utilizados en el disefto digital. Los chips de circuitos integrados a gran escala (VLSI) contienen ahora, por to general, millones de transistores; los métodos de disefto asistido por computadora (CAD), las celdas estindar, los dispositivos légicos programables y los arreglos de compuertas han permitido el ripido paso del concepto al circuito terminado, con un énfasis, ‘cada vez mayor en los disetos modiulares jerarquicos que utilizan bibliotecas de | Red [> Slidas Noica >| combinatoria Memoria Figura 0.5. Circuito tégico socuencial Niveles de transistores y de diseiio fisico Los circtitos logicos combinatorios y secuenciales definen por completo el comportamiento légico de un sistema digital. En diltima instancia, cada compuerta légica se debe realizar con un circuito de transistores en un nivel mas bajo, que a su vez se realizan combinando diversos semiconductores y otros materiales. Las tecnologfas utilizadas para construir compuertas y otros elementos I6gicos han evolucionado desde los dispositivos mecénicos, los relevadores, los bulbos ¥ los transistores discretos hasta llegar a los circuitos integrados. La figura 0.6 ilustra varios de estos dispositivos. Las computadoras modernas y los sistemas digitales de aplicaci6n especificase construyen por lo general mediante circuitos integrados ordenados a modo de realizar los registros y los circuitos de control necesarios para implantar el conjunto de instrucciones de la computadora o las funciones del sistema, Un circuito integrado (Cl) contiene varios elementos lagicos. Et nimero de compuertas © equivalentes de compuertas por Ci determina la escala de integracién. La integracién a pequeita escala (SSI) se refiere a los Cl con | a 10 compuertas, la integracién a escala media (MSI) corresponde a los CI de 10a 100 compuertas, la integracién a gran escala (LSI) de 100 a 10.000 compuertas, y Ia integracién 2 muy gran escala (VLSI) a los CI con mas de 100 000 com- puertas. No ¢5 un objetivo de este texto considerar el disefto a nivel de transistores y anivel fisico de las compuertas I6gicas. Sin embargo, es importante tener un conocimiento basico de las diversas propiedades eléctricas y fisicas de los diferentes circuitos de compuertas para poder evaluar la operacién logica, el desemperio, el costo y otros parimetros del disefio de un sistema digital Tecnologias electréni Se han desarrollado numerosas familias de tecnologias electrénicas para proporcionar ciertas caracteristicas, como velocidad, consumo de energia, densidad de empacado, funcionalidad y costo, preferidas por el disefiador del hardware, Por lo general, es imposible proporcionar todas tas caracteristicas deseadas en una familia, Por tanto, existe una biisqueda permanente de mejoras en las tecnologlas ya probadas o de nuevas tecnologias. Las tablas 0.2 y 0.3 ‘enumeran las tecnologias mas importantes utilizadas desde los inicios de la era de los transistores y sus caracteristicas correspondientes. Elempacado de compuertas légicas y otros elementos légicos ha cambiado dde manera significativacon los afos. Los primeros elementos logicos electronicos se construfan por lo general con grandes bulbos, resistencias y condensadores discretos, montados en un chasis de aluminio, ¢ interconectados con alambre de Seccién 0.2 Sistemas digitales 9 TABLA 02 . TECNOLOGIAS ELECTRONICAS IMPORTANTES. Tecnologia Tipe de dispositive Logica resisiortransistor (RTL) Unién bipolar Logica diodo-transistor (DVL) Unidn bipotar Logica transistortransistor (TTL) Union bipolar Logica emisor-acoplado (ECL) Unidn bipotar ‘Semiconductor von éxida de metal postive (MOS) MOSFET ‘Semiconductor con éxida de metal negativo (nMCS) MOSFET ‘Semiconductor con éxide de metal complementario (CMOS) MOSFET Arseniuro de galio (GaAs) MESFET TABLA 0.3 CARACTERISTICAS DE LAS FAMILIAS DE TECNOLOGIA ELECTRONICA, — RIL Alto Baja Discreto DIL Alto Baja Disereto, SSI TTL Medio Media SSI, MSI ECL Alto Ala SSI, MSI, LSI pMos MSI, LSE ‘nMOS cmos Gaas cobre, Los avances en 's tecnologia de los bulbos redujeron el tamaiio, y las tarjetas de circuitos impresos reemptazaron a los alambres de cobre. Mas adelante, los transistores discretos reemplazaron a los bulbos, pero las resistencias, los condensadores y las tarjetas de circulies impresos continuaron en uso, aunque sus tamafios fueron mas reducidos. El suigimiento del circuito integrado a principios de la década de 1960 produjo una reduccién adicional en el tamafio de las tarjetas de circuitos impresos y otros elementos pasivos. Los circuitos integrados pueden fabricarse en formas estandar, semiadaptada y adaptada. Los Ci esténdar proporcionan los componentes necesarios para construir sistemas para la mayor parte de las aplicaciones, Sin embargo. algunas aplicaciones podrion requerir cireuitos semiadaptados 0 adaptados para cumplir con requisitos de funciones especiales, bajo costo o menot tamano, Los cireuitos adaptados se fabrican de acuerdo con las necesidades precisas de un cliente, Por otro lado, los circuitos semiadaptados se programan para satisfacer 'as necesidades de un cliente. El término circuitos integrados especificas para una aplicacién (ASIC) se utiliza con frecuencia para describir 10s dispositivos semiadaptados. 10 Capitulo 0 Introduccién 0 Figura 0.6 Fotogratias de haraware de computadoras, (8] Bba¢o:; (b) relevadores; (c) bulbos: (2) transistores; (e) citcuitos intagrados @ pequona escala; (f) crcultos integrados a meciana scala; (g) circulto integrado a gran escala, Secoion 0.2 Sistemas digitales W Oo Figura 0.6 (Continuacién). (h) vista intama de un chip de circuito integrado (MC74450) (cortesia de conductor Products. ine.: (i) wsta externa de un dispositive légico programable en forma (cortesia de Xilinx); (j) vista intema de un dispositivo logico programable el (cortesta ce Xiling); (k) un citcuto integrado a muy grande escala en un empaque plano con una raticula de pines para entrada/saliéa (cortesia de Xilinx); (I) modulo do vatios chips, el cual contione twos chips: un mieroprocesador, una memoria exclusiva para lectura programable en forma electronica Yun eircuito itegrado de aplicacién especitica (cortesia de Texas Instruments} 12 Capitulo 0 Introduccién ® 0.3 Organizacion de una computadora digital de programa almacenado Ahora que ya conocemos los elementos basicos utilizados para la construccién de circuitos légicos digitales, analizaremos la organizacién de una computadora digital. Una computadora digital es un sistema cuyos elementos funcionales son ‘una unidad aritmética l6gica (UAL), unidades de control, unidades de memoria © almacenamiento y equipo de entrada/salida (EIS). La interaccién de estos ‘elementos se muestra en la figura 0.7, Cada sistema de cémputo tiene un conjunto original de instrucciones, llamadas instrucciones de maquina, que especifican ‘operaciones a realizar con los datos por la UAL y otras interacciones entre la UAL, lamemoria y os dispositivos de E/S. Los elementos de memoria contienen Jos datos mas una lista de instrucciones de maquina llamada programa. Unidad central de procesaminto (CPU) Dispositivos Unidad ispositiv aritmética Kigica Memoria — (UAL) x Figura 0.7 Organizacién de alto nivel de una compitadora digital. Launidad de control coordina todas las operaciones de la UAL, la memoria y los dispositivos de FS, realizando un ciclaje continuo con un conjunto ‘operaciones que recuperan las instrucciones de la memoria para ejecutarlas. ciclo de insiruceién de una computadora digital sencilla, que se ilustra en la figura 0.8, incluye los siguientes pasos baisicos: 1, Recuperar de la memoria la siguiente instruccién del programa actual y Hlevarla a la unidad de control. 2. Decodificar Ia instruccién; es decir, determinar la instruceién de maquina que debe ejecutarse. 3. Recuperar los operandos necesarios para la instruccién desde la memoria 0 desde los dispositivos de entrada. 4, Realizar la operacién indicada por la instruceién. 5. Guardar en memoria los resultados generados por la operacién, o enviar los resultados a un dispositive de salida, Seccién 0.3 Organizacién de una computadora digital de programa almacenado 13. Las instrucciones se recuperan de la memoria en orden secuencial, a menos que se encuentre un tipo especial de instruceién, llamado indistintamente ramificacién, salto, brinco 0 transferencia. Las insirucciones de ramificacién permiten escribir programas con ciclos y toma de decisiones. Figura 0.8 Ciclo de instruccién de una computadora do programa almacenado, 0.3.1 Instrucciones de la computadora Cuando la unidad de control de una computadora digital recupera una instruccién desde la memoria para su ejecucién, se pueden tener varios tipos de operaciones. 1. Las insirucciones aritméticas hacen que os datos binarios se sumen, resten, multipliquen 0 dividan segun lo especificado por el programador de la computadora en el programa, 2. Se dispone de operaciones de prueba y comparacién que determinan ia relacidn (mayor que, menor que, igual a v otras) entre dos elementos de datos binarios. 3. Las insirucciones de ramificacién ade salto se pueden utilizar paraalterar la naturaleza secuencial de la ejecucién de! programa, con base en los resultados de una prueba o comparacién. Este tipo de funcién afiade una gran flexibilidad a los programas. Se incluyen tas insirucciones de enirada y salide para leet mensajes que Hlegan a la computadora, escribir mensajes desde la computadora y controlar dispositivos periféricos s, Las eperaciones ldgieas y de corrimiento permiten a la computadora traducit € interpretar todos los diferentes eédigos que usa. Estas insteueciones permiten e| manejo de bits bajo el contro! del programa. ‘Todas las instrucciones de cualquier computadora digital pueden agruparse cen una de estas cinco categorias, 0.3.2 Representacién de la informacion en las computadoras Hemos analizado brevemente las instruceiones y datos almacenados en fa unidad ‘de memoria de la computadora digital, pero no hemos meneionado la forma de ‘estos elementos, Por jo general, ta informacin de un sistema de eomputo se puede dividir en tres categorias: datos numéricos, datos no naméricos y cédigos de instrueciones. Representacién de datos numéricos Los ndimeros se guardan en la memoria de la computadora con el sistema de ‘numeracin binario (base 2), Los nimeros binarios se escriben con los dos digitos binarios (bits) 1 y 0. En cambio, nosotros utilizamos 10 digitos decimales al escribir tos numeros decimales. 14 Capitulo 0 Introduccién Por ejemplo, 129 en decimal significa | x 10°+2x 10! + 9x |0':es decir, la posicidn de cada digito representa una potencia ponderada de 10. Observe ue fos 10 digitos van de 0a 10 - | = 9. Cada digito de un numero binario, como 1101, se representa mediante una potencia ponderada de 2, como 1x2! + 1x2? +02! +1 42°, Para convertirel numero binario a decimal, esta suma ponderada se determina como (1101), = 1x8 +1x4+0x24 1x1 =(13),, es decir, el rimero uno-uno-cero-uno en binario es equivalente al 13 en decimal, Estas reglas de conyersidn entre niimeros decimales y binarios se analizan con detalle en el eapitulo 1. Los datos en forma de nimeros binarios se guardan en registros de ta computadora y se representan como sigu lol1ooo1t Este es un registro de 10 bits, que podria residir en la unidad aritmética 0 en ta memoria. En esta diltima, tos datos de un registro son una palabra (en este ejemplo, la longitud de la palabra es de 10 bits). Los patrones de unos y ceros son la tinica informacidn que puede guardarse en los registros o memoria de una computadora. La asignacién de un significado a los patrones de bits es una codificacién, y los cédigos para datos que se utilizan en la mayor parte de las computadoras s6lo son variantes del esquema binario ponderado que hemos presentado. Cédigos no numéricos (entrada/salida) Aungue (a computadora utiliza datos binarios, los usuarios prefieren ta representacién de datos alfybeticos y numéricos como, por ejemplo, registros de ventas, listas de nombres 0 calificaciones de exémenes. El eonjunto de simbolos alfanumericos permitidos por muchas computadoras es su conjunto de caracteres y tiene un cOdigo especial parevido al binario, llamado Cédigo Esudndar Americano para Inercambio de Informacion (ASCII), En este c6dizo, los caracteres alfanuméricos y otros caracteres especiales (puntuacién, operadores algebraicos y otros) se codifican con 8 bits cada uno; en el capitulo | aparece tuna lista parcial de este e6digo. Suponga que queremos enviar a la computadora digital e! mensaje “ADD |" (sumar 1), Este mensaje tiene cineo earacteres, donde el cuarto es un espacio o blanco. En el cédigo ASCH, nuestro mensaje se convierte en Codigo ASCH A ‘01000001 D 01000100 D 01000100 00100000) ' 00110001 Después de enviar nuestro mensaje a la computadora, un programa en la memoria de ésta lo acepta y acta de manera acorde. Seccién 0.3. Organizacion de una computadora digital de programa almacenado 15 Cédigos de instrueciones Las instrucciones de la computadora residen en la memoria principal y, por tanto, por definicién, también se representan mediante patrones de unos y ceros. Por lo general, las instrucciones se descomponen en subcampos codificados individualmente, Estos subeampos son el e6digo de operacién (op code) y la direccidn de memoria, El cédigo de operacién especifica la funcién que debe ejeeutarse. 0.3.3 Hardware de computadora Examinemos ahora con més detalle fa interaccién de los componentes de la computadora de la figura 0.7. Los programas se guardan en Ie memoria de Ja computadora, como hemas visto. Sin embargo, la unidad de control inserta los progeamas en la memoria aaxiliada por el equipo de entrada/salida (E/S) 0 dispasitivos periféricas. Por lo general, los programas se proporcionan a la computadora mediante dispositivas periféricos de almacenamiento magnético 1 Optica. Después, la computadora recupera las instrucciones del programa desde ta memoria y las ejecuta. Los datas que utilizara un programa se transfieren de! mismo modo a la memoria desde los teclados, digitalizadores, discos magnéticos ¥ olt0s dispositives periféricos. Unidad de control La unidad de contro! sigue ta lista de instrucciones guardada y dirige las actividades de la unidad aritmética y de los dispositivos de E/S hasta que el programa termina su ejecucion. Cada unidad realiza su tarea bajo la influencia sincronizadora de la unidad de control. Unidad aritmética logica Las unidades aritmética logicas (UAL) son circuitos logicos combinatorios o secuenciales que realizan diversas operaciones sobre los datos, segiin lo indicado por launidad de control, Cada UAL se caracteriza porel tipo de datos que puede manejar y por el conjunto de operaciones que puede realizar sobre tales datos. La mayor pane de las UAL pueden operar con enteros de varios tamafos y también puede incluir operaciones para manipular nimeros de punto fijo, nuimeros de punto flotante y diversos datos no numéricos, Entre las operaciones de UAL tipicas estén: * Aritméticas: suma, resta, multiplicacién y division, + Légicas: AND, OR, OR exclusivo, complemento (definiremos estas ‘operaciones cuando analicemos los circuitos Kigicos combinatorios en el capitulo 2), + Cortimiento y rotacion de datos. + Conversion de datos de un tipo a otro. Por to general, los circuitos de la unidad de control y de la UAL se construyen con dispositivos semiconductores en varios esquemas de empaque. Los modelos de la segunda generacién tienen transistores, resistencias, diodos, etc., montados en tarjetas de circuitos impresos, mientras que los modetos de la 16 Capitulo 0 Introduccion tercera generaci6n utilizan circuitos integrados a pequeiia escala en tarjetas de circuitos, Las maquinas de la cuarta generacién utilizan cireuitos integrados a gran eseala y a muy grande escala. Unidades de memoria Las unidades de memoria de la computadora se vlesifican como memoria primaria si la unidad de control tiene acceso directo a ellas; de otro modo, se élasifican como memoria secundaria. Las unidades de memoria primatia en las computadoras digitales actuales se construyen con elementos semiconductores de alta velocidad llamados RAM (memoria de acceso aleatorio) y ROM (memoria exclusiva para lectura). Casi todos los sistemas construidos antes de 1980, algunos de los cuales todavia estan ‘en operacién, utilizaron arreglos de nicleos magnéticos como elementos de memoria primaria. Unos cuantos sistemas especializados, en especial los de vehiculos espaciales, utitizaron alambre chapeado como reemplazo del niicleo ‘magnético en aplicaciones en las que se requeria mayor resistencia la radiacién, Las unidades de memoria estén divididas en celdas \lamadas palabras, y cada celda se identifica por su lugar fisico, o direccién de memoria. El coneepio de direccién de memoria para una celda de memoria es equivalente a una direccién de correo para un buzdn, Por ejemplo, cada ofieina de correo tiene filas de buzones, donde cada uno se identifica con una posicién numerada nica. De manera similar, cada eelda de memoria reside en una posicién numerada tunica, donde e! ndimero es la direceién de memoria. Las unidades de memoria se pueden caracterizar segin sus tiempos de zecero y de ciclo; el siompo de acceso a la memoria se puede definir como el in- tervalo de tiempo necesario para extraer (leer) una palabra de la memoria, y et tiempo de cielo de memoria se puede definic como el intervalo minimo de tiempo necesario entre dos operaciones sucesivas de la memoria. El tiempo de acceso de una memoria determina la rapidez con que la CPU puede obtener la informa- cién, mientras que el tiempo de ciclo determina la velocidad con que se pueden hacer accesos sucesivos a la memoria. Los dispositivos de memoria secundaria se uilizan para el almacenamiento en masa de programas y datos, ¢ incluyen ciertos dispositivos magnéticos giratorios, como los discos Nexibles o duros, las cintas magnéticas, las memorias de burbuja magnética, los dispositivos épticos como los CD-ROM (discos compactes exclusives para lectura) y una gran variedad de dispositivos. En ccontraste con la memoria primaria, no hay un acceso directo ata informacién en los dispositivos de memoria secundaria, sino que un controlador especial busca cn ef dispositive cl bloque de informacién que contiene el etemento deseado. ‘Cuando to encuentra, por lo general se transfiere todo el bloque a la memoria primaria, donde el acceso a los elementos deseados se realiza de una manera ‘mas conveniente, Equipo de entrada/salida La computadora puede enviar datos hacia diversos tipos de periférieos, cominmente los discos magnéticos o las impresoras laser. Tambien se dispone de pantaiias de tubo de rayos catédicos (CRT) y de cristal liquido (LCD) para presentar los resultados de tos calculos de un programa. Los convertidores analégico a digital y digital a analdgico, los graficadores, los dispositivos de Jectura y almacenamiento magnético y las impresoras laser y de inyeccién de tinta son los equipos de entrada/salida de uso mas comin, Seccién 0.3. Organizacién de una computadora digital de programa aimacenado 17 0.3.4 Software de computadora El software consiste en los programas y datos almacenados en a memoria de la computaclora. El software determina la forma de utilizar el hardware de la compu tadora y se puede clasificar de manera amplia como programas de aplicacion 0 programas de sistema, Programas de aplicacin La programacidn de la computadora digital es e! proceso de diseno de una lista de instruceiones para fa computadora, de modo que ésta pueda realizar de manera eficiente una tarea espeeifica. Las instrucciones de una computadora digital deben codificarse en patrones de unos y ceros antes de que ésta las pueda interpretar. Si todos los programas debieran eseribirse en esta forma, las computadoras digitales tendrian un usa muy limitado. Los pairones de unos y ceros son las instrucciones de lenguaje de maquina, y muy pocos programadores han intentado escribir programas de esta manera Con frecuencia se utiliza una representacién simbolica det lenguaje de maquina de una computadora, llamada lenguaje de ensumblador, para el desarrollo de los programas. Esto ocurre en particular con las microcomputadoras pequeas de los aparatos de cocina, juegos electronicos y equipo automotriz. EL Jenguaje de ensamblador permite a un programador especificar las operaciones por realizar sobre los datos almacenados en los registros y memoria internas de lun procesador sin empantanarse en los patrones de unos y ceros, Sin embargo, la mayoria de los programadores prefiere utilizar lenguajes simbélicos de alto nivel, mas razonables, para programar sus problemas. Con tenguajes de alto nivel como C, Pascal, Ada o FORTRAN, el programador dlispone de una amplia gama de instrucciones que puede comprender con facilidad y utilizar con eficiencia, de modo que tas instrucciones de cada lenguaje se Aajustan a tipos especificos de problemas. Es dificil incorporar toda la lexibitidad del lenguaje de mAquina en los lenguajes de aito nivel, pero se ha mantenido en tuna proporcién significativa, sobre todo en C. Programas de sistema Los programas de sistema ineluyen todo el software incluido en un sistema de ‘cémputo para ayudar a los programadores en el proceso de desarrollo y ejecucién de programas de aplicacién, Por ejemplo, cuando un lenguaje simbalico, ya sea de ensamblador 0 de alto nivel, se utiliza para escribir un programa, éste debe traducirse al lenguaje de maquina antes de que la computadora pueda ejecutarlo, Surge ta pregunta de quién debe realizar esta laboriosa traduccién. El traductor més eficiente no €5 ef programador, sino la propia computador digital, Cualquier trabajo realizado por una computadora esta bajo el control de tn programa; por tanto, ¢! progranta que traduce los lenguajes de alto nivel al Tenguaje de miguina tiene un nombre especial, el compilador. Este proceso de traduceién se ilustra en ta figura 0.9. De manera andloga, el programa que traduce el lenguaje de ensamblador al lenguaje de méquina es un ensamblador, Los compiladores y los ensambladores son ejemplos tipicos de programas de sistema, aligual que los editores de textos que se utilizan para escribir y alterar enunciados de programa. 18 Capitulo 0 Introduccién Figura 0.9 Traduccisn de programas de computadora a lenguaje de maquina. Ahora, veamos la manera en que podria operar una computadora digital Un programa especial llamado siitema operativo controla las tareas rutinarias necesarias para pasar de un programa de usuario al siguiente. Este programa especial pertenece a una categoria de programas llamada software de sistemas. En particular, analizaremos tres sistemas operativos diferentes: para un Unico usuario, para procesamiento por lotes y de tiempo compartido, Si una maquina es operada por cada usuario que ejecuta un programa, ta computadora se dedica a este programa y nadie mas puede uilizarla en tanto el usuario actual no haya terminado. La computadora depende entonces de la intervencién humana durante e! tiempo entre programas, y podria pasar mucho tiempo inactiva. Este sistema operativo es conveniente para el usuario si la computadora esté disponible cuando el usuario la necesita, ya que, siel individuo est “en la maquina”, puede modificar y volver a ejecutar programas o ejecutar varios programas sucesivos antes de dejar la maquina para otro usuario. Los sistemas MS-DOS y Macintosh son ejemplos de sistemas operativos de usuario linico. En los sistemas operativos de procesamiento por lotes se elimina la mayor parte del tiempo de inactividad de Ia computadora, al designar a un operador que retine todos los programas de usuario y los alimenta a la computadora en forma continua. El programa del sistema operativo reside en Ia unidad de memoria, y las localidades de memoria que utiliza estin protegidas de los usuarios. Asi, aunque se reduce el tiempo de inactividad, el espacio de almacenamiento de memoria disponible para el usuario también se reduce. ‘Ademés, el usuario debe esperar a que el operador devuelva su programa, lo que siempre es una fuente de irritacion y enfrentamiento. Un sistema operative més avanzado, llamado de tempo compartido, permite que varios usuarios ejecuten sus programas casi en forma simulténen. Los ejemplos comunes son el sistema operativo UNIX, utilizado en una amplia variedad de computadoras personales, estaciones de trabajo y méquinas de mayor tamano, y el sistema operativo VMS, empleado en computadoras de la Digital Equipment Corporation. Las terminales remotas, integradas por dispositivos de centrada/salida limitados, estan conectadas a la computadora digital, y cada terminal es asignada a un tinico usuario, Los usuarios son relativamente lentos, mientras que la computadora es muy ripida. Esta diferencia de velocidades permite a la computadora ir de un usuario a otro, compartiendo el tiempo, de ‘modo que puede convencer a cada usuario de que tiene toda la maquina s6lo para él. Aunque este sistema operativo parece muy atractivo, tiene sus ™® 0.4 Resumen REFERENCIAS BIBLIOGRAFICAS Seccién 0.4 Resumen 18 desventajas, la primera de las cuales es el casto. Ademis, el programa de sistema de tiempo compartido es complejo y de eran tamano, lo que significa que utiliza ‘mucho espacio de memoria y tiempo de cémputo. Conio todos los programas de usuario se guardan en la ntemoria de manera simultinea, la porcién de memoria, disponible para cada individuo es limitada, Por tanto, el tiempo compartido requiere el nimero maximo de elementos de memoria que una computadora particular pueda proporcionar. En este capitulo introductorio hemos ofrecido una motivacion para estudiar ¢l material posterior. Hemos explicado en forma breve lo que es una computadora, como esta organizada, qué cédigos utiliza, como puede programarse. ¥ qué hardware la compone. El material del resto de los capitulos es nevesario para cuialquicr disefio o implantacin de hardware para computadoras digitales otros sistemas digitales complejos. El lector puede recurrira [1,2, 3. 4}como lecturas adicionales. 1, J. PLHavts, Computer Architecture and Organization, soyunda edicion, Nu York: McGraw Book Co,, 1988, 2. D, A. Parraeson ¥ J. L. Mewxessy, Computer Organization & Design. The Hardware/Sofiware Inerface. San Mateo, CA: Morgan Kaufinatin Publ 1993, 3. DA. Hones v HG. Jackson, Analisis ond Design of Digital Integrated ‘Circuits, segunda edicidn, Nueva York: McGraw-Hill Book Co.. 1988, 4. J.P. Waxenty, Digital Design Principles and Practices. segunda edicion Englewood Cliffs, NJ: Prentice Hall, 1994, La funcién principal de las compuradoras y otros Sistemas digitales es la de procesar informacién. Por tamo, es necesario contar con métodos y sistemas para representar la informacién en formas que se puedan ‘manipniar y almacenar uilizando equipo elecirénico 0 de carro tipo. En este captiuto analizaremos los sistemas numéricos y los cédigos que se ultilizan con frecuencia en las compuiaxtoras los sistemas digitale’: Los temas inchuyen (os sistenias numéricos ‘binario, octal y hexadecimal y su aritmética; tas téenicas de conversion de base: las métados para representar miimeros negativos, como los de magnitud y signo, complemento a dos y complementa a uno: las cédigos numéricas para niimeras de punio Sijo y flotante; los cédigas de caracteres, incluidos el decimal cadificada en binario y ef ASCH: las eésdigos Gray y de exceso: y Jos eddigos para deteccién y correceién de errores. Los capitulas posteriores del libro tratan el andlisis y diseno de hardware para procesar informacién representada en las formas aqui descritas. Sistemas numéricos y codigos @® 1.1 Sistemas numéricos Un sistema numérico consta de un conjunto ordenado de simbolos, llamado digitas, con relaciones definidas para la summa (+), resta (~), multipligaeion (%) y divisin (=). La base (r) del sistema numérico es ef nimero total de digitos permitidosen dicho sistema, Los sistemas numéricos de uso comiin en el diseno de sistemas digitales y la programacién de computadoras incluyen el decimal (r= 10), el binario (r= 2), el octal (r= 8) y el hexadecimal (r = 16). Cuaiquier indimero en un sistema dado puede tener una parte entera y una parte fraccionaria, que se separan mediante un punto (.). En algunos casos, puede faltar la parte entera o la parte fraccionaria, Ahora, examinaremos las notaciones posicional y polinomual de un nimero. 1.1.1 Notacion posicional Suponga que pide a su baneo local un préstamo por ciento veimitrés dolares y treinta y cinco centavos. El cheque que le dan indica la cantidad como $123.35, Alescribir este numero, se ha utilizado la notacidn posicional. Ell cheque puede cobrarse con un billete de cien dolares, dos billetes de diez délares, tres billetes de un dolar. tres monedas de diez centavos y cinco monedas de un centavo. Por tanto, fa posicién de cada digito indica su peso o significado relativo. En general, un niimero positivo N se puede escribir en notacién posicional como, N 4.0, 8,0, 8,8), ay donde unto que separa fos digitos enteros y fraccionarios r= base del sistema numérico que se esta utilizando = niumero de digitos enteros a la izquierda del punto m = nimero de digitos traccionarios a Ia derecha del punto a, = digito entero f cuando n=1 5 420 4, = digito fraceionario f cuando =| 21> ~m 4, = digito mas significativo a |= digito menos significative 21 22 Capitulo 1 Sistemas numéricos y cédigos Figura 1.1. Un registro de é bits. ® 1.2 Aritmética Observe que el intervalo de valores para los digitos a,es*—I > a,> 0. Con esta notacién, la cantidad del préstamo baneario podria eseribirse $(123.35),.. Los paréntesis ¥ el subindiee que denota la base pueden eliminarse sin perder informacion siempre que la base se conozea por el contexto o se espeeitique de otra forma, Notacién polinomial Podemos escribir la cantidad del préstamo de (123.35),, délares en forma polinomial como N=) 4 10042« 10+3%14340.145% 001 = Dx 10+ 2x 10! 4 32 10843 10+ Sx 10° Observe que cada digito esti en una posicién ponderada y que el peso de cada posicidn es una potencia de Ia base, 10. En general, cualquier nimero N con base r se puede escribir como un polinomio de ta forma wil Ler (12) donde cada simbolo se define como en Ia ecuacién 1.1, Pata el préstamo del banco, r= 10,4, = 1,0, =2, 4, a= Sy a,=0, para /23 y para 1.1.2 Sistemas numéricos de uso comtin Los sistemas numéricos decimal, binario, octal y hexadecimal son importantes para el estudio de fos sistemas digitales. La tabla 1.1 resume las caracteristicas fundamentales de eada sistema e ilustra un intervalo limitado de enteros positives ‘en cada uno. Todos los niimeros de Ja tabla 1.1 esian escritos en notacién posicional. Por lo general, los sistemas digitales se construyen con dispositivos de dos estados (apagado o encendido). Por tanto, el sistema numérico binario es ideal para representar niimeros en sistemas digitales, ya que solo se necesitan dos digites,4y |, Hamados bits. Un bit puede cuardarse en un dispositive de almace- namiento de dos estados conocide como /arch. Los niimeros binarios de longitud ‘nse pueden guardar en un dispositive de m bits de longitud, llamado regisira, construido con n latches. Un registro de 8 bits que contiene et namero binario 10011010 se muestra en la figura 1.1 Todos los nifios aprenden los rudimentos de la aritética memorizando las tables de suma y multiplicacién en base 10 que aparecen en las tablas 1.2ay b, respec tivamente, La resta se quede realizar utilizando la tabla de ta suma al revés. De ‘manera andloga, la division utiliza 1a muiplicacién y la resta mediante prucba ¥y error para obtener el cociente. El fundamento de la aritmética en cualquier base es el conocimiento de tablas de suma y multiplicacion en Ia base dada. Dadas estas tablas, las operaciones aritméticas son similares para todas las bases, Een el resto de esta seccidn presentaremos la aritmética en las sistemas numéricos binario, octal y hexadecimal. Esempco 1.1 Seccién 1.2 Aritmética 23 TABLA 1.1 SISTEMAS NUMERICOS IMPORTANTES. Nombre Decimal Binarlo Octal Hexadecimal Base 0 2 16 Digitos — 0.4. ot Su Primeros 0 0 0 0 diceisiete 1 1 It 1 positivos 2 10 2 2 enteros 3 " 3 3 4 100 4 4 8 101 s 5 6 0) 6 6 1 ut 7 7 8 tooo 10 8 9 1001 " 9 1 wo n ‘ " ton B B 2 1100 a © B Ho Is D 4 110 16 B 15 ait 7 F 16 10000 20 10 1.2.1 Aritmética binaria Suma Las tablas 1.3ay b muestran las tablas de suma y multiplicacion, respeetivamente, para el sistema numérico binario, Las tablas son muy pequefias ya que solo hay dos digitos, 0 bits, en el sistema. En consccuencia, la aritmética binaria es muy sencilla, Observe que la suma I+! produce un bit de suma de 0 y un bit de acarreo de 1. El acarreo debe sumarse a la siguiente columna de bits para realizar Ja suma en el patron normal, de derecha a izquierda, Daremos dos ejemplos de suma binaria a continuacién. ‘Sumar los dos numeros binarios (111101), y (10111),. arrraia Acarreas 1 1 1 0 0 1 Sumando + {0 1 1 1 Sumando 10 1 0 1 0 0 Suma 24 Capitulo 1 Sistemas numéricos y cédigos TABLA 1.2 (a) TABLA DE SUMA DECIMAL: (b) TABLA DE MULTIPLICACION DECIMAL. #jyo 123 4 3 6 e 9 ojo t 2 3 4 5 6 so r]io2 3 4 $ 6 7 9 0 2/2 3 4 8 6 7 8 9 WU as 4 5 6 7 8 9 HoH 2 4]4 5 6 7 8 9 WO oN 12 2B s|s 6 7 8 9 © Hn 2 3 14} solo 7 8 9 MH HR Bb os Jr}, 8 9 mu oR Bo 6 sfs 9 @ 2 2B MW Is 6 7 oto u eB Bo is 6 17 8 | 0 H 2 3 4 5 6 7 8 6 ) TABLA 1.3. (a) TABLA DE SUMA BINARIA; (b) TABLA DE MULTIPLIGACION BINARIA. f+ [o 7 xfo 4 ojo 4 olo o tia ijo4 @ o En el ejemplo 1.1 hay dos columnas que tienen dos bits |y un bit de acarreo 1 lo que debe sumarse, Esta sunna de tres unos puede vetse mds ficilmente como lelel= (++i = (00), #01, =n Evempto 1.2 Evempto 1.3 Seccién 1.2 Aritmética 25 Asi, los bits de suma y de acarreo son ambos 1. Cuando hay que sumar una gran lista de niimeros binarios, los eélculos se realizan faeilmente si sumamos los niimeros por pares, como se demuestra en et siguiente ejemplo. ‘Sumar los cuatro nimeros (101101),, (110101), (001101), y (010001),.. jporag Pro rot gor ry +orooo! 1 por \ tortor oorirot +i toro +oroo001 rrooo0r1d ortito preravs L. 1100010 + OF tios— rooo00000 Sin embargo, podemos optar por sumar en forma directa para evitar los pasos intermedios necesarios en el método anterior. El método directo se ilustra en cl siguiente ejemplo, Repetir el ejemplo anterior sumando toda una columna ala vez. 10 10 10 10 4 10 Acarreos 1 0 1 1 ot 1 1 0 1 0 8 oo 1 1 oO 8 o 1 oo oF 1 0 0 0 0 6 0 © Suma Observe que la suma de los digitos en la primera columna es 1+ 1+1+1= (100),. Esto produce un digito de suma igual a 0 en esa columna y un acarreo de 10 en la siguiente columna a la izquierda, Resta La resta se puede visualizar como el inverso de la suma. Las reglas para la resia binaria se derivan directamente de la tabla de suma binaria (tabla 1.3a) y son 1-021 I=1=0 26 Capitulo 1 EJempto 1.4 Evempto 1.5 Sistemas numéricos y cédigos 0-0 tomando prestado 1, 0 10 ‘La tltima regla muestra que si se resta un bit 1 de un bit 0, hay que tomar prestado un | de fa siguiente columna mas significativa. Los préstamos: se propagan hacia la izquierda de columna en columna, como se ilustra a continuacion. Restar (10111), a (1001101),,. 6 5 4 3 2 1 Column 10 Préstamos 040 10 0 9 8 Préstamos 1 6 O FY YF Oo 4 Minuendo - yoo eh ‘Sustraendo ror 0 F F O Diferencia En este ejemplo, el primer préstamo aparece en fa columna 1. El préstamo se toma de la columna 2, lo que produce 10 en la columna | y 0 en la columna2. El Q-de Ia columna 2 necesita ahora un préstamo de la columna 3. No se necesitan otros préstamos hasta fa columna 4, En este caso, no hay un | en la columna S que pueda prestar; pos tanto, debemos primero tomar prestado ef | de ta columna 6, lo que produce 0 en la columma 6 y 10 en Ia columna 5. Ahora, la columna 4 toma prestado 1 de la columna 5, lo que dejs | en la columna $(10~1=1)y 10 en Ia columna 4. Esta serie de préstamos se muestra arriba de los términos del minuendo. Multiplicacién y division La multiplicacién binaria se realiza en forma similar a la multiplicacién decimal, ‘excepto que las operaciones de multiplicacién binaria son mucho mas sencillas, ‘como s¢ puede ver en la tabla |.3b. No obstante, se debe tener mucho cuidado al sumar los productos parciales; como se ilustra en el siguiente ejemplo, Multiplicar (10111), por (1010),. 1 0 f 1 1 Multipticande x 10 1 0 Multiplicador 0 0 000 1 yi 4 oo 6 0 Oo 10 4 4 rol 1 0 0 1 TF ® Producto Observe que hay un producto parcial por cada bit del multiplicador, Este procedimiento puede realizarse eon mayor eficiencia si s6lo recorremos una ‘columna @ la izquierda, en vez de anotar un producto parcial con ceros para un bit O del multiplicador. Este ejemplo nos sirve para ver lo sencillo de este procedimiento. Evempco 1.6 Evempto 1.7 Evempco 1.8 Evempto 1 Secci6n 1.2 Aritmética 27 La divisin binaria se realiza utilizando el mismo procedimiznto de prucba y error de Ia divisién decimal. Sin embargo, la divisién binaria es mas sencilla pues s6lo hay que intentar con dos valores. Se restan del dividendo copias de los términos del divisor, de lo cual se obtienen residuos intermedios positivos. El siguiente ejemplo ilustra la divisi6n binaria, Dividir (1110111), entre (1001),.. LL 0 1 Cociente Divisor 1 0 0 1/7 1 1 0 1 7 1 Dividendo 10 1 4 1.2.2 Aritmética octal Las tablas de la suma y la multiplicacién para el sistema de numeracién octal aparecen en a tabla 1.4. Con la ayuda de estas tablas, la aritmética octal se puede realizar utilizando el mismo procedimiento que en los sistemas decimal y binario, como se ilustra en los siguientes cuatro ejemplos, Calcular (4163), + (7520),. 1 1 Acarreos 4 1 6 3 Sumando: + 7 3 2 ‘Sumando 1 3 7 0 3 Suma Calcular (6204), ~ (5173),. 1 10 Prestado 6 2 6 4 Minuendo 5 1 7 3 Sustraendo 1 0 1 1 Diferencia Catcular (4167), (2503),. 4 1 6 7 Multiplicando x 2 5 0 3 Muhtiplicador t 4 s 4 5 Productos parciales 2 5 L 2 3 o 10 3 5 6 r 3 TT Oo S “4S Producto 28 Capitulo 1 Sistemas numéricos y cédigos TABLA 1.4 (a) TABLA DE SUMA OCTAL; (b) TABLA DE MULTIPLICAGION OCTAL a ojo 1 2 3 4 § 6 7 yfio2 3 4 5s 6 7 2/2 3 4 5 6 7 o© UN 3 3 4 3 6 7 10 12 a[4 5 6 7 wo nN 2 s|s 6 7 © u 2 3 1 6Je 7 wo n 2B B wos 7/7 0 0 PR B wos 6 (a) SS apo o 0 0 0 0 0 © 1 o 1 2 3 4 5 6 7 2 o 2 4 6 10 R 4 16 ja }o 3 6 un Ww 7 2 2 s]o 4 0 4% 20 2» 30 3 s/o s 2 7 mw mH we 4 je |o 6 4 2 3 % 32 |}7]o0 7 6 2% 3% 0 2 61 w Evempto 1.10 Caleular (4163), + (25),. 14 7 Cociente 2 5 4 J 6 3 Dividendo 2 3 1 4 6 12 4 2 2 3 2 2 3 0 Residuo 1.2.3 Aritmética hexadecimal Las tablas de ta suma y la multiplicacién hexadecimales son mas complejas que las de los sistemas numéricos estudiados anteriormente, y aparecen en la tabla 1.5. De cualquier manera, al igual que en los otcos sistemas numéricos, el Seccién 1.2 Aritmética 29 TABLA 1.5 TABLAS DE SUNA Y MULTIPLICACION HEXADEGIMAL (a) TABLA DE SUMA HEXADECIMAL (b) TABLA DE MULTIPLICACION HEXADECIMAL 7]® 123 45 6 7 8 9A BD CD EF F ofo i 2 3 4 s 6 7 8 9 A B GC D EF F t]a 2 3 4 $ 6 7 8 9 A B CD EF F 2/2 3 4 5s 6 7 8 9 A 6 € BD E F WwW It a]3 4 5 6 7 & 9 #4 B CD EE F WH NH RB 4]4 5 6 7 8 9 A BC DE F MO HN Bo s|s 6 7 8 9 A BC DE F 1 MH 2 B14 6]6 7 8 9 A #8 © DE FO HW OR 1 mos 7/7 8 9 A BC De F OH 2 B os 16 8]8 9 A 8B CD £ F MH 2 1 MW Is 6 17 9/9 4 8 C DE F HH BB 1 1S 1% 17 18 ala @ ¢€ DE F oO HM 2 3 1s 6 17 Boo BiB C DE F 1 No 8 4 1S 16 1 Ie 19 1A cle bp & F DH 2B MW 1S 16 17 18 19 1A 1B DID £ F WM 1 18 1S WH 17 18 19 1A 1B Ie E]E F wW WW 2 1 MM IS 6 IT 18 19 IA IR IC ID FL F 10 i 12 13 4 1S 6 17 We 9 TA 1B IC DE a xJo ' 2 3 4 5 6 7 8 9 A 8 CD E F ojo 0 0 0 0 0 09 0 0 0 09 oO 0 0 0 O t}o 4 2 3 4 S 6 7 8 9 A B C DE F 2/0 2 4 6 & A C £ 1 12 1 1 WB IA 1c 18 3/0 3 6 9 C F 2 IS 18 1B 1E Mm 2m 27 2A QD a]o0 4 8 C 0 M WW IC 2 2% ® IC WM MW IC s|0 SoA F 14 19 IE 23 28 2 2 7 RC 4H 46 4B 6]0 6 C 12 IK If 2% 2A 30 3% 3C 4 48 4E 54 SA 7/0 7 £ IS IC 23 24 31 RAF 46 4D $4 SB G2 60 8|0 8 10 18 % 2% % 38 40 48 50 58 a 68 7 78 9/0 9 12 1B % 2D % 3F 48 SI SA 63 6C 75 TE 87 A|O A 4 16 2% 3 3C 4 50 SA 6S 6E 1 82 BC 9% B|O B 1 2 2C 37 42 4D 58 63 GE 79 84 RF OA AS clo C 18 2m 3% 3C 4k St 60 OC 78 BS 9 9C AB BA D/O D 1A 7 M 41 4F SB 68 75 82 BF 9C AD BE C3 E]0 £ IC 24 3% 4 St 62 70 TE 8C 9A AR RG C4 M2 FiO Ff 1E 2D 3C_48 SA 69 78 87 9% AS BS C3 D2 EL oy 30 Capitulo 1 Sistemas numéricos y cédigos Evempto 1.11 Evempto 112 Evempto 1.13 Evempco 1.14 conocimiento de estas tablas permite realizar la aritmética hexadecimal con procedimientos bien conocidos. Los siguientes cuatro ejemplos ilustran la aritmética hexadecimal. Caleular (2458), + (71D0),,. 1 Acarreos 4 5 8 Sumando +71 D0 Sumando 9° C2 8 Suma Caleular (9F1),, ~ (4436),,. Bou Préstamos 9 F x B Minuendo 44 3 6 _Sustraendo 3 4 £& 5 Diferencia Calcular (5C2A),, x (710), foe 2 & x 7 1 Do 4 “AE 2 2 0 Productos parciates 5 ¢ 2 4 28 5 2 6 2 8 F 9 6 CG 2 © Producto Caleular (27FCA),, + (3E),¢ 4 5 1 Cociente Divisor 3 £ [2 7 FC 4d Dividendo 2 € T 3 ¢ 13 6 — 6 4 3. £ 2 C Residuo ® 1.3 Conversiones de base Con frecuencia, los usuarios y disefladores de computadoras y otros sistemas. digitales tienen necesidad de convertir un nimero dado en base 4 a su equivalente en base B, En esta seccién presentamos ¢ ilustramos los algoritmos para realizar conversiones de base. Evempco 1.15 Evemrto 1.16 Evempco 1.17 Seccién 1.8 Conversiones de base 31 1.3.1 Métodos de conversion Sustitucién de una serie La representacién polinomial de un ndmero dado por Ia ecuacién 1.2 es la base del método de conversién por sustitucion de wna serie. La ecuacién puede expandirse como sigue: Neat tap tay tot ae a3) Un niimero en base 4 puede convertirse en un namero en base B en dos pasos. L fe forma Ia representacién en serie del nimero en base 4 en el formato de ta ecuacién 1.3. 2. Se evalda la serie utilizando la aritmética de base B. Los siguientes cuatro ejemplos ilustran este procedimiento. Convertir (10100), a base 10. Realizamos esta conversion sustituyendo cada digito de acuerdo con su peso. Si contamos de derecha a izquierda en (10100),, vemos que el digito del extremo derecho, 0, tiene un peso de 2°, el siguiente digito, 2', y asi sucesivamente. Al sustituir estos valores en la ecuacién 1.3 y evaluar la serie con aritmética de base 10 obtenemos Nae P4ox Pe lx 2 40x 2 40x 2" (16), 40+ yy #040 2D o Convertir (274), a base 10. N=2x 847x844 x8" 128))9 + (56), + Dy = (188), Convertir (1101.01), a base 8. La parte entera del numero se convierte como en los ejemplos anteriores, Con los digitos que estin a la derecha del punto binario, contamos de izquierda a derechia. El primer digito a la derecha del punto binario, 0, tiene un peso de 2', cl siguiente digito, 1, tiene un peso de 2" y el tercer digito, I, tiene un peso de 2°, Al sustituir en la ecuacidn 1.3 obtenemos Te Be PHO MH Lx MOK TE LPH 1D? 1), Fy HOF MDG +04 (2 + De = 115.3), N 32 Capitulo’ Sistemas numéricos y cddigos Evempco 1,18 Convertir (AF3.15),, a base 10. N=Ax 16+ F x 16143 x 1641 x 16 +5 x 167 = 10,y % 2569 + 15yq ¥ 16,9 +319 X Ty Hip ¥ 0.062549 + 5), * 0.00390625, 4 = 25605 + 240 jy +3, + 0.9625 ,9 + 0.01953125 5 = (2803.08203125),, En los ejemplos anteriores, observe que los céleulos fueron mis sencillos para las conversiones de base 4 a base B cuando A < &. Ahora describicemos algunos métodos de conversién en donde es cierto lo contrario. El método de conversi6n de divisidn emre la base se puede utilizar para convertit un entero en base 4 al entero equivalente cn base 8. Para comprender el método, ~N>—2". Todos 10s niimeros negativos en el sistema numérico de complement a dos tienen un bit de signo igual a 1. La tabla 1.6 muestra los cédigos del sistema numérico de complemento a dos para n= 5, 44 Capitulo 1 Sistemas numéricos y codigos EJempto 1.39 Evempvo 1.40 Eyempco 1.41 Los siguientes ejemplos ilustran la codificacién de los nimeros positives y negativos en el sistema numérico de complemento a das. Se aconseja al lector verificar los datos de complemento ados de la tabla 1.6 después de estudiar los ejemplos. Dado (N), = de +(N), en el para n=8, 1100101),, determinar las representaciones tema numérico de complemento a dos, Por inspeceidn, +N), = (0, HLOOION a9, De laecuacién 1.8, py =p xen), [0. 1100101}, * — (0. 100101), = (100000000), 0, 1100101), = (1.011011), Por sus bits de signo, vemos que (0,1 100101),,,, representa un valor positivo y (1,001 1011),,,, ¢5 si negativo, En este ejemplo y los posteriores, utilizaremos. ‘una coma para facilitar la identificacion de\ bit de signo. Determinar las representaciones en el sistema numérico de complemento a dos de +(110101), para n= 8. Por inspeccién, +(110101), = (011010105... De wecuaci6n 1.8, =(H10101) = [10101 * — (10101), = (1000410000), ~ (110101); 1.100101 Ds. Determinar la codificacién en el sistema numérico de complemento a dos de -(13),, para 7 Comenzamos con ta conversién de (13),, de decimal a binario. +4(13),,= +1101), = (0,0001101),., Después caiculamos e! complemento a dos de (0,0001101),,,, para representar ~(13),9: (13),) = ©, 0001101),,,, = (0.001101), = 2* ~ (0, 0001101), = (1. 11001N,,,, Evemp.o 1.42 Seccién 1.4 Representacién de niimeros con signo 45 Determinar el numero decimal representado por N=(1,1111010), 4° Por bit de-signo, vemos que N ¢s un niimero negativo. Asi, determinamos la magnitud de (el valor positive correspondiente) calculando su complemento see N=. 1010), (1.110101; 2 — (1, LLL1010),) = ~(0, 00001 10),, =~), 10 donde (0,0000110),.., = +(6),.. Por tanto, (1,1111010),,., representa a ~(6),,. Consideremos ahora algunos ejemplos de la aritmética con nimetos de ‘complemento a una base. Aritmética de complemento a una base ‘Muchas computadoras digitales utilizan un sistema numérico de complemento ‘2.una base a fin de minimizar la eantidad de circuitos necesarios para realizar la aritmética de enteros, Por ejemplo, podemos realizar la operacién A ~ B calculando 4 + (~), donde (~8) esta representado por el complemento a dos de 8. Por tanto, la computadora s6lo necesita un sumador binario y algunos circuitos complementarios para la suma y la resta, Este punto de vista es conveniente para cl andlisis de la aritmética de complemento a una base y por ello lo utilizaremos en los parrafos siguientes. Como en una computadora la aritmetica se realiza principalmente en binaric, centraremos nuestro andlisis en la aritmetica de complement a dos. Antes de iniciar un anilisis profndo, consideremos una fundamental de la representacion de numeros en la maquina, Las maquinas del tipo de las computadoras digitales operan con sistemas de niimeros finitos impuestos por el niimero de bits que se pueden utilizar en la representacion de cantidades numéricas. El nimero de bits disponibles en la unidad aritmética de la computadora limita el intervalo numérico que se puede representar en la maquina. B! sistema no puede manejar nimeros fuera de este intervalo. Las ‘mquinas que utilizan el sistema numérico de complement a dos (2ens) pueden representar enteros en el intervalo 2"! -1 0 N <2", decimos que se presenta una condicién de deshordamiento. En estos casos, el niimero de m bits ‘ado por Ia operacion no serd una representacion valida del resultado, Las ‘computadoras digitales vigilan sus operaciones aritméticas al realizar aritmética 46 Capitulo 1 Sistemas numéricos y cédigos Evemrco 1.43 de complemento a dos y generan una sefial de advertencia cuando se presenta uun desbordamiento, a fin de que los nimeros no validos no sean considerados ‘como resuitados correctos. Ahora consideraremos tres casos para ilustrar la aritmeética en el sistema numérico de complemento a dos: A = 8 +C,A=B-CyA=-B-C. Describiremos cada caso en general y después Io aclararemos con ejemplos apropiados. Para todos los casos, suponga que B > 0 y Cz 0. Los resultados se pueden generalizar ficilmente para inciuir valores negativos de B y C. Caso 1. Calcular 4 = B + C, Como B y Cson no negativos, A también sera no negativo, y esto simplemente se convierte en (),=(@),+(O, ‘Como los tres niimeros son positivos, no tenemos que utilizar e! complemento a dos, Latinica dificultad que puede surgir en este caso es cuando A> 2"! ~ 1, es decir, cuanda se presenta un desbordamiento. Es facil detectar tal condicién, ya que ¢1 bit de signo de A sera incorrecto. Para mostrar esto, consideremos ta suma de los dos méximos nimeros positivos de m bits representables. OSA C, entonces B C20, lo que hace 4 2 2", El término 2 representa wn bit de acarreo y se puede descartar, conservando (BC), (un sumador binario de m its generaré un acarteo para cualquier suma A > 2*). Por tanto, (4),=(B), +1Cl,|_ acarreo descartado Si B 2-1 Si Boe 1 0 bse No 0 1 Boe No =B-€ 1 1 =(B+O> 2 No 1 0 =(B+O)<-2" si * By C son niimeros positivos, La aritmética de complemento a una base se puede utilizar con cualquier base no solo con los nimeros binarios. Para ilustrar este hecho, los siguientes dos ejemplos usaran Ia aritmética de complemento a 10 con ntimeros de tres digitos. ‘Sumar +(75),, y -(21),, utilizando aritmética de complemento a 10 con tres digitos. En primer lugar, determinamos los cédigos de complemento a 10 de los dos ndmeros mediante la ecuaciGn 1.7: Oy 20, 52 Capitulo 1 Sistemas numéricos y cédigos Evemp.o 1.52 Después realizamos ¢l célculo como (75),, + (-(21),,). Al sumar los dos cédigos de 3 digitos, obtenemos o75 979 0 Acarreo Al descartar el digito de avarreo, el resultado €s (0,54),,., = (54),., que es el resultado conecto. Sumar +(24),, ¥-(75), De nuevo, comenzamos por determinar los cédigos de complemento a diez para Jos dos ntmeros, por medio de Ia ecuaci6n 1.7: 2g = O20 ane ~(75)y = (9 Al sumac los dos eddigos de tres digitos obtenemos 024 +925 9 4 6 Ef resultado es (9,46),,.,. doride el 9 indica que este niimero representa un valor negativo. El lector debe verificar que (9,46),,., ¢s la representacion correcta del resultado deseado, -(54),,, en un sistema numérico de complemento a diez. Sistemas numéricos con complemento disminuido a una base El complemento dismintuido a una base (NJ, , de un niimero (N), se define como IM= =), -1 (10) donde n es el nimero de digitos de (¥), El complemento a uno es wn caso particular del complemento disminuido a una base para los nameros binarios (r = 2) y est4 dado por IM,,=2-(,-1 aay donde » es el niimero de bits de (N),. Podemos determinar el complemento a uno de un nlimero binario dado en forma directa a partir de la ecuacién 1,11, como se muestra en los siguientes ejemplos, El lector debe verificar los datos de! complemento a uno de la tabla 1,6 despads de estudiar estos ejemplos. Evempco't.53 Esempto 1.54 Evempco 1.55 Seccién 1.4 Representacion de nimeros con signo 53 Determinar el complemento a uno de (01100101),. De la ecuacién 1.11, IMI, * — (1100101), = 1 = (100000000), — (0100101), ~ (00000001), = (10011011), — (00000001) = (10011010), Determinar el complemento a uno de (11010100). De la ecu 2* — (11010100), — (00000001), = (100090000), — (11080100), — (00000001). = (00101100), ~ (00000001), = (00101011), Determinar el complemento a nueve de (40960)... De la eouacidn 1.10, IN ]jg_ = 10° — 40960) — (1001), = (100000), — (40960),,, ~ (00001), (590440), ~ (00001) jg = (5903%,,. ‘Aunque siempre podemos determinar el complemento a uno de un niimero mediante la definicién dada en la ecuacién 1.11, hay métodos mas sencillos. Los ejemplos anteriores sugieren el siguiente algoritmo para el eélculo de IN], ,dado (¥),, y lo presentamos sin demostracion. Algoritmo 1.6 Determinar (NJ, , dado (N), rm Remplacamos cada digito a de (N), por r ~ | =a, Observe que sir=2, basta con complementar cada bit individual de (¥) ey Al comparar las ecuaciones 1,7 y 1.10, vemios que la relacién entre el ‘compiemento a una base y cl complemento disminuido a una base de un namero (N)res ja siguiente. 1M], = IM, +t (iy 54 Capitulo 1 Sistemas numéricos y codigos Evempto 1.56 EJempLo 1.57 Evempto 1.58 Evempto 1:59 Ahora debe quedar claro que el algoritmo 1.5 para calcular el complemento a tuna base es consecuencia del algoritmo 1.6. Podemos formular sistemas numéricos que utilicen el complemento disminuido a una base para representar los nimeros negativos de una manera similar a [a que usamos con el complemento a una base. Sin embargo, no haremos esto aquf; nos limitaremos a ilustrar fa aritmética, Aritmética de complemento disminuido auna base En {os siguientes ejemplos ilustramos las principales caracteristicas de la aritmética de complemento disminuido a una base. Los tres primeros ejemplos se centran en la swma de complemento a uno con diversas combinaciones de operandos positivos y negativos, Los nimeros wtilizados en estos ejemplos se tomaron de la tabla 1.6, ‘Sumar +(1001), y (0100). Representamos el nfimero positive como 01001 y el negativo con el complemento auno de 00100, que es 11011. Portanto, 00100 + 11011 = 100100, Observe que Este no es el resultado correcto. Sin embargo, obtenemos el resultado correcto si cl acarreo de salida del bit mas significativo se suma a la posieién de bit menos significativa; es decir, 00100 + 1 = 00101, Este procedimiento se conoce como acarreo final circular y es un paso de correccién necesario en la aritmética de complemento disminuido, Sumar 4(1001), y -(1111),. Representamas el ndmero positive como 01001 y el negativo como 10000. Esto Produce 01001 + 10000 = 11001. Observe que en este caso cl acarreo final circular es 0 y, por tanto, no afecta el resultado, Sumar -(1001), y -(0011),, Sirepresentamos ambos nimeros con su complementoa uno, obtenemos 10110 +11100= 110010, El paso de acarreo final circular produce el resultado correeto, es decir, 10010 +1 = 10011, Los siguientes dos ejemplos ilustran la aritmética de complemento a nueve, ‘Sumar +(75),, ¥ (21), El complemento a nueve de 021 es 978. Por tanto, fa operacién es 075 +978 = 1053, que es el resultado correcio después del procedimiento de acarreo final circular: 053 + 1 = 054, Seccién 1.5 Cédigos de computadora 55 Esempco.1.60 ‘Sumar +(21),, ¥ (75), El célculo es 021 +924 = 945, que es ei resultado correcto, pues el acarreo final circular es 0, B® 1.5 Cédigos de computadora Un eddigo es un uso sistematico y de preferencia estandarizado de un conjunto dado de simbolos para representar informacién. En la vida cotidiana aparecen varias formas sencillas de cdigos. Por ejemplo, al acercarnos a un seméaforo, se sobreentiende que la luz roja significa alto, que Ie luz verde significa siga y «que la seftal Ambar significa precaucién. En otras palabras, et cédigo es Luzroja; Alto Luz mbar: Precaucién Luz verde: Siga Otro cédigo conocido es el que se usa en el beisbol, Cuando un umpire levanta sus brazos con dos dedos en la mano derecha y tres dedos en la mano izquierda, se sobreentiende que la cuenta de! bateador es dos strikes y tres bolas. Estos dos sencillos ejemplos ilustran Ia idea de los cédigos y sin duds que el lector podra imaginar mas ejemplos. Las computadoras y otros sistemas digitales utilizan cédigos mas complejos. parae! procesamiento, almacenamiento e intercambio de informacion de diversos. tipos. Tres tipos importantes de cédigos para computadora son el numérico, el de caracteres, y el de deteccidn y correccién de errores. A continuacién analizare- ‘mos brevemente algunos cédigos importantes de cada una de estas categorias. 1.5.1 Cédigos numéricos Los cédigos numéricos sirven para representar nimeros con fines de proce- samien‘o, y/o de almacenamiento, Los nimeros de punto fijo y de punto flotante son ejemplos de estos cédigos. Niimeros de punto fijo Los mimeros de punto fijo se utilizan para representar ya sea enteros con sigito © bien fracciones con signo. En ambos casos se usan los sistemas de magnitud y signo, de complementoa dos o de complementoa uno para representar los valores con signo. Los enteros de punto fijo tienen un punto binario implicito ala derecha el bit menos significative, como se muestra en la figura 3a, y las fracciones de punto fo tienen el punto binario implicito entre el bit de signo yy el bit de magnitud mas significativo, como se muestra en la figura 1.3b. 56 Capitulo 1 Sistemas numéricos y cédigos Evempco 1.61 Evempto 1.62 Bi hese ‘rata racine ef iy2 a-3][a-2]« en © Figura 1.3 Representaciones de nimeros de punt tio. (a) Entero de punto ti. (6) Fraccién de punto fo Dar dos posibles interpretaciones de! numero de punto fijo de 8 bits 01101010, usando el sistema de complemento a dos. Como el bit de signo es 0, el ntimero representa el entero positivo 1101010. si el punto binario se coloca como en Ia figura 1.3a, 0 bien la fraccién positive 0.101010 si el punto binario se coloca como en la figura 1.3b, Dar dos posibles interpretaciones del ntimero de punto fijo de 8 bits 11101010, usando el sistema de complemento a dos. El bitde signo es 1; por tanto, el nimero representa -0010110. obien -0.00101 10, segiin sea la convencién utilizada para colocar el punto binario. : Representaciones con exceso 0 sesgadas Una representacién con exceso ~K de un cédigo C se forma sumando el valor K a cada palabra de cédigo de C. Las representaciones con exceso sc utilizan menudo para representar los exponentes de los niimeros de punto Notante, de modo que el valor minimo del exponente se represente mediante ceros. Observe ‘aue los nmeros con exceso -2" no son sino los némeros de complemento a dos, jcon el bit de signo invertido! La representacion con exceso 8 de la tabla 1.8 se obtiene al sumar (1000), al cédigo de 4 bits de complemento a dos. Observe que el resultado es que el humero mfnimo (8) se representa con 0000, y el maximo (+7), con 1111 Seccion 1.5 Cédigos de computadora 87 TABLA 1.8 CODIGO CON EXCESO 8 Decimal | Complementoados | Exceso 8 4 oun i) +6 onto i110 +5 o1or Hoi 4 0100 1100 +3 oon 101 42 010 1010 +1 001 1001 0 0000 1000 1 tut oun 2 10 ove 3 Hon O10! 4 Ho 0100 S ol OIL 4 Iolo 10 7 oot 001 8 1000 0000 Nimeros de punto flotante Los nimeros de punto flotante tienen una forma similar a los nimeros escritos en notacién cientifica, En general, la forma de punto flotante de un mimero.N se eseribe como N=Mxrt (3) donde M, a mantisa 0 significando, es un niimero de punto fijo que contiene los digitos significativos de Ny E, el exponente 0 caracteristica, es un entero de punto fijo, En el caso general, dado un nimero de punto fijo N, donde Nata, 0, 4.), entonces, en forma de punto flotante, 0), xP Nes6a,, Al deducir ta representacién de un nimero de punto flotante, fa mantisa y la caracteristica se codifican por Separado, La base es implicita y no se incluye en la representacién. Lamantisa M muchas veces se codifica con magnitud y signo, porto general como una fraccion, y se puede escribir como M= (Sip, 4B Jou aia) donde (.,,, ...@_,), representa la magnitud de My S,,indica el signo dei numero. $,, 52 elige por Io general de modo que M= (DE KC, @, y entonces 5, = 0 indica un nixmero positive, mientras que namero negativo. 58 Capitulo 1 Sistemas numéricos y cédigos Con frecuencia, el exponente £ se codifica en complemento a dos con exceso ~K. El complemento a dos con exceso ~K de un exponente se forma sumando un sesgo de K al valor entero en compiemento a dos de! exponente. En el caso de los nimeros binarios de punto flotante (para os que la base es 1=2), Kes, por le general, 2~', donde ¢ es el nimero de bits del exponente. Por tanto, el N a 2 sl us ' 2 ° - ° DEL. Evempco 1.66 Evemp.o 1.67 e6digo. El cédigo Gray es uno de los tipos mas comunes de cédigos ciclicos y tiene Ia caracteristica de que las palabras de cédigo para dos numeros consecutivos difieren sélo en un bit. Es decir, ladistancia entre las dos palabras de c6digo es 1, En general, a distancia entre dos palabras de codigo binario es igual al nimero de bits en que difieren las dos palabras. Detinir un eédigo Gray para coditicar los ntimeros decimales de 0 a 15. Se necesitan cuatro bits para representar todos los nimeros, y podemos construir el cédigo necesario asignando al bit ‘de la palabra de cédigo el valor 0 si los bits je i+ | del namero binario correspondiente son iguales, y 1 en caso contrario, E! bit mas significativo del ntimero siempre se debe comparar con 0 al utilizar esta técnica. El e6digo resultante aparece en la tabla 1.12. Lamecesidad de observar o medir la posici6n de un eje circular ocurre en muchas aplicaciones. Esto se puede realizar montando un circulo conductor codificado ‘en el eje y dotectando en forma eléctrica la posicién del disco, ,Cémo codificar cel disco de modo que no s¢ lean indicaciones de posicién incorrectas cuando los sensores se muevan de un sector del disco al otro? Podemos obtener el resultado deseado si los sectores del disco se codifiean en un e6digo Gray, puesto que sélo cambiard un bit de posicidn en el eddigo si los sensores se mueven de un sector a! siguiente, La figura 1.5 ilustra la solucion, 64 Capitulo 1 Sistemas numéricos y cédigos TABLA 1.12 CODIGO GRAY PARA LOS NUMEROS DECIMALES DE 0A 15, Binario Gray | 0 0000 9000) 1 0001 000 2 010 oor s 001! 0010 4 0100 O10 3 010) ou 6 0110 101 1 ont 0100 8 1000 1100 9 tops hot 10 1010 an " ou 110 12 1100 1010 8 not ton ls 110 1001 1s uy 1000 Figura 1.5 Disco con cédigo Gray Evempco 1.68 Seccién 1.5 Cédigus de computadora 65 1.5.3 Cédigos para deteccién y correccién de errores Un error en un dato binario se define como un valor incorrecto en uno o més bits. Un error simple es un valor incorrecto en un solo bit, mientras que un error amiltiple se refiere a 1a existencia de uno 0 mas bits incorrectos. Los errores pueden deberse a fallas del hardware, interferencia extema (ryido) u otros eventos no deseados. La informacién se puede codificar mediante cédigos especiales ‘que permitan la deteccién ¢ incluso la correccién de ciertas clases de errores. A continuacion ilustramos algunos cédigos sencillos de deteccin y correccin de cerrores, Seré util establecer algunas definiciones y notaciones antes de presentar cddigos especificos. Sean /'y J palabras de informacién binaria de m bits. El ‘peso de 1, w(0), se define como el niimero de bits de J iguales a |. La distancia centre Jy J, dU, J), es igual al niimero de posiciones de bit en que difieren /y J Determinar los pesos de ly Jy la distancia entre ellos si /= (01101100) y J=(11000100), Si contamos los bits | en cada nimero, tenemos que WN =4y Wi) =3 A continuacion, comparamos los dos niimeros bit por bit, observando que difieren de la manera siguiente: 1 0 ft t t Los niimeros difieren en posiciones de tres bits. Por tanto, dl, D=3 Propiedades generales de los codigos de deteccién y correccin de errores Si le distancia enire dos palabras de cédigo de un cédigo C es mayor o igual que d,,,, se dice que el cddigo tiene distancia minima d.... Las propiedades de deteccidn y correccién de errores de un e6digo quedan determinadas en parte por su distancia minima, Esto se ilustra en la figura 1.6, donde los puntos encerrados en un circulo representan palabras de cédigo validas y los no ence- rrados representan palabras que tienen errores. Unimos dos puntos si las palabras correspondientes differen en exactamente una posicién. Para un d,., dado, al menos se necesitan d_, errores para transformar una palabra de cddigo valida, en otra. Si hay menos de d,, errores, entonces se obtiene una palabra que no es del codigo y se puede defectar, Si la palabra que no es del codigo esta mas “cerca” de un codige vilido que de otro, se puede deducir la palabra de codigo original, y asf corregirse el error. En general, un eddigo permite corregir terrores y detectar serrores adicio- rales si y sélo si se cumple la siguiente desigualdad. 2t+st+1 Sd, (1.25) 66 Capitulo 1 Sistemas numéricos y codigos ‘Un andlisis de ta ecuacién 1.25 muestra que un eddigo con deteccién de errores simples (s= 1, = 0) requiere una distancia minima de 2; un cddigo con correccin de errores simples (s 1) requiere una distancia minima de 3, y un cédigo con correccién de errores simplesy deteccibn de errores dobles (s= 1= 1) require tuna distancia minima de 4, La figura 1.6 ilustra estas y otras combinaciones. Palabes con error | ratsorace cig aan Ys a Lo Figura 1.6 Relacion entre la distancia minima entre palabras de cédigo y ta capacidad para detectar y corregir ertores de bit. (Las palabras unides difiran ‘exaciamente en una posicion de bit, (a) Doteccidn de errores simples (SED), {b) Correccion de errores simpies (SEC) 0 correccion de errores dables (DED). {e) (SEC y DED) 0 TED. (d) DEC (SEC y 26D), 0 4ED. Cédigos de paridad sencillos Los cédigos de paridad se forman a partir de un cédigo C, concatenando (|) un bit de paridad, P, con cada palabra de cédigo de C, La figura 1.7 ilustra et ‘concepto. En un cddigo de paridad impar, el bit de paridad se especifica como 00 1 demodo que w(P|) sea impar. El bit de paridad de un cédigo de paridad par se selecciona de modo que w(P | C) sea par. La figura 1.8 muestra la forma en que se utiliza la codificacian con paridad en una cinta magnética de nueve pistas , Bits de tnformacién t Weep Figura 1.7 Informaciin cositicada con paridad. Evempco 1.69 Evempto 1.70 Seccién 1.5 Cédigos de computadora 67 1011000 0 n ° t rn Pista de pariad a Figura 1.8 Coditicacion con paridad en cinta magnetica. Concatenar un bit de paridad con el cédigo ASCII de los caracteres 0, X, = y BEL para obtener un édigo con paridad impar. Caricter_ | Cédigo ASCI_| Cédigo con paridad impar 0 0110000 10110000 x 1011000 01011000 = o1t1100 10111100 BEL 000111 00000111 Codificar el mensaje CATCH 22 en cédigo ASCII con paridad par y agrupar la palabra codificada en segmentos de 16 bits. Segmento 1: (11000011 01000001) cq) Segmento2: (11010100 1100001) 4sen Segmento3: (011001000 10100000) 4se4} Segmento 4: Observe que este mensaje se puiede guardar en cuatro palabras de memoria de una computadora de 16 bits como Palabra X 1100001 10100000) Palabra + 1: 110101001 1000011 Palabra.¥ +2: 0100100010100000 Palabra X +3: 10110010101 10010 68 Capitulo 1 Sistemas numéricos y codigos La deteceién de errores en informacién codificada con paridad se realiza ‘con facilidad, veriGicando que una palabra de codigo tenga la paridad correcta. Por ejemplo, si la paridad de una palabra de cédigo con paridad impar es en realidad par, entonces ha ocutrido un error detectable. Es facil construir circuitos gicos para detectar la paridad, como veremos en secciones posteriores del texto. Los cédigos de paridad son eédigos con distancia minima igual a 2 y por tanto pueden servir para detectar errores simples. De hecho, sirven para detectar cualquier niimero impar de errores, pues tales errores eambiardn ta paridad de la palabra de e6digo. Por otro lado, los errores en un niimero par de bits no cambian la paridad y, por tanto, no se pueden detectar mediante tun e6digo de paridad. Codigo dos de cinco El cédiga dos de cinco es un cédigo para deteccién de errores que tiene exactamente 2 bits iguales a | y3 bits iguales a0 en cada palabra de cédigo, yes representative de los cédigos mde n. Ladeteccidn de errores se realiza contando 1 niimero de unos de tna palabra de eédigo. Se nota un error cuando el niimero de unos no €s exactamente igual a 2. Esto implica que los e6digos dos de cinco permiten fa deteecién de errores simples y también de errores maltiples en bi adyacentes, La tabla 1.13 presenta un eddigo dos de cinco para los digitos decimales. Cédigos de Hamming En 1950, Richard Hamming publicé la deseripcién de una clase de cédigos para cortecciin de errores que han tenido amplio uso. Los eédigas de Hamming se pueden ver como una extensién de los eédigos de paridad simple, en cl sentido de que se utilizan varios bits de paridad 0 bits de verificactin, Cada bit de verificacién se define sobre un subconjunto de los bits de informacién de una palabra. Los subconjuntos se traslapan de modo que cada bit de informacion esta en al menos dos subconjuntos. Los ¢édigos para correccién de errores TABLA 1.13 CODIGOS DOS DE CINCO PARA LOS DIGITOS DECIMALES. Cédigo dos de cinco. ‘oni tor oncor Ho onto oni lonto ani00 row 9 11000) Seccién 1.5 Cédigos de computadora 69 simples (SEG) permiten la deteccion y correccién de cualquier error en un dinico bit. Los cédigos para correceién de errores simples y detsccién de errores dobles (SEC/DED) permiten detectar pero no corregir errores dobles, ademas de detectar ¥ corregir los errores simples. Las propiedades de deteecién y correccién de errores de un cédigo de Hamming estan determinadas por el niimero de bits de verificacién utilizados y {a forma como los bits de verificacién se definen en relacién con tos bits de informacién, La distancia minima d,,, ¢5 igual al peso de la palabra de eédigo ‘no nula con peso minimo, én otras palabras, d.,, es igual al numero de unos de {a palabra de cédigo con menos unos. No es un objetivo de este libro analizar con detalle et disefio de los codigos de Hamming. Sin embargo, utilizaremos los dos eédigos de Hamming que aparecen en la tabla 1.14 para ilustrar las Propiedades de estos codigos. Ademas, presentaremos un método para el dise‘io de codigos de Hamming SEC sencillos, Cédigo de Hamming 1, El codigo permite corregir errores simples pero no deteciar errores dobles, pues su distancia minima es 3. Esto se puede ver con claridad cn ¢! siguiente andlisis. Un error simple en el bit extremo izquierdo de la palabra de eédigo 0100110 produce ta palabra errénea 1100110, La tabla 1.15 muestra la diferencia y Ia distancia entre cada palabra de c6digo valida y la palabra errénea, Observe que slo la palabra de cédigo donde ha ocurrido el error tiene una distancia 1 con respecto a la palabra errénea. Esto significa que ningiin error simple en cualquier otra palabra de cédigo podria haber producido 1a palabra TABLA 1.14 DOS CODIGOS DE HAMMING PARA PALABRAS DE INFORMACION DE CUATRO BITS 0011011 010101 00101101 0011120 0110110 0100110 100110 101101 1010101 110011 ‘01100011 0111000 01111000 1000111 10000111 1001100 10011100 to10010 10101010 1011001 10110001 1100001 11001001 1101010 11010010 1110100 11100700 mun wnt 70 Capitulo 1 Sistemas numéricos y c6digos, errénea, Por tanto, la deteccidn de la palabra errénea 110010 equivale a corregit el error, pues el Gnico error simple posible que puede producir el patrén es un error en el bit exiremo izquierdo de ta palabra de e6digo 0100110, El andlisis anterior también sugiere un procedimiento de detecei6n y correccién de errores. Es decir, podriamos determinar la diferencia entre una palabra de datos y cada palabra de cédigo vilida posible, Una distancia de 0 indicaria una concordancia valida, una distancia de 1 indicaria wn ecvor simple en Ia palabra de cédigo correspondiente, en !a posicién que corresponde al bit | de la diferencia, y una distancia mayor o igual que 2 respecto a todas las palabras dde cbdigo indicaria un error multiple. Aunque este procedimiento funciona en teoria, no seria practico para eédigos eon un gran niimero de palabras de cédigo Mis adelante analizaremos algunos méiodos practicos. ‘Nuestro anilisis tambien revela que varias palabras de eddigo tienen una distancia 2 con respecto a la palabra erronea. Por tanto, un error doble en cualquiera de estas palabras produciris {a misma palabra errinea que el error simple (examine fa figura 1.6). Esto implica que, en general, js errores dobles ‘no se pueden detectar con este cédigo. La correccién de errores simples aunadla a la deteccién de errores dobles requiere un eSdigo con una distancia minima de 4, Los bits de verificacién del eédigo se definen de modo que den tna paridad par con un subconjunto de los bits de informacién, come sigue: TABLA 1.15 EFECTOS DE LOS ERRORES SOBRE LAS PALABRAS DE CODIGO de eddigo ‘000000 TOOHO t1o0110 4 0001011 Hoon, Howtos st 010101 1OL0 | Hijoor 5 OOLILO 1100110 1111000 4 100110 a I ovunio Hoon hoowoit a ono 100110 HOWE 4 11000, hoa Hon 5 1ooort) Hawi 100001 2 Tot L00 FOOL w1ai0 3 In10010 Hoorto ono100 3 lon tant Foor, oni 1100001 Hogi 0001 11 Holt Hoon 00 T 100 1101 Hono oni tint thoi 011001 Seccidn 1.5 Cédigos de computadora 71 Esta relacién se puede especificar de manera conveniente mediante una mattiz conocida como mairiz generatriz, 0 matriz G, como se muestra a continuacién, Cada colurna de la matriz G corresponde a un bit dé la palabra de eédigo, segtin se indica, LOOK 11IT [1000 m% my my -]0100110]_]0100 pm py ms firs G=l/oororotl=|a010p pe pe | ooo1o0nt loool py, pe py Hh hy he % La codificacién de una palabra de informacién i para obtener una palabra de cédigo ¢ se puede expresar en términos de la matriz generatriz G como sigue. emi (2n La decodificacion de una palabra de eédigo se puede expresar de manera conveniente en términos de una matriz H conocida como masriz de verificacién de paridad. La matriz H se puede deducir de la matriz G como sigue, para el c6digo anterior. Py Py Py Py 100 br 1oroo H=| Pa Pn Py Pp OL O}=]1 101010 Py Pas Pry Py O01 rorroot (tay Una n-tupla ¢ es una palabra de e6digo generada por G si y solo si He" =0 (1.29) Sea d una palabra de datos correspondiente a una palabra de eédigo c, que hha sido corrompida por un patron de error e, Entonces d=ere (130) decodificacién comienza con el edlculo del sindrome s de d para determinar si existe un error. Si no hay error, la decodificacién concluye al ‘liminarse los bits de verificacion, dejando s6lo los bits de informacién originales. Si se encuentra un error corregible, se corrige antes de eliminar los bits de verificacién. Si se encuentra un error no corregible, el proceso termina con una seflal de error que indica la situacién. El sindrome de d se calcula como sigue, utilizando #7: saa! an = He +e" = Hel + He a4 He! =Hel 32) Los sindromes para la matriz # dada en Ia ecuacién 1.28 apareven en la tabla 1.16, Observe que el patron de cada sindrome es igual al patron de la columna de Ia matriz H que corresponde al bit errnco. Cédigo de Hamming 2. La distancia minima es 4, ya que ninguna palabra de cédigo no nula tiene un peso menor que 4. Por tanto, el cédigo tiene las 72 Capitulo 1 Sistemas numéricos y cédigos TABLA 1.16 SINDROMES Y PATRONES DE ERROR []Patron'de error | Sindrome =| Significado |) 0v00000 000 Sin err ooo00et oot Enor ene, 000010 010 Enor ene, oooo100 100 Erroren ¢, 001000 on Brior en 0010000 101 Enor en, a1o0000 110 Error en f, 1000000 i Error en i, propiedades de correceién de errores simples y deteccién de errores dobles. Las matrices generatriz y de verificacién de paridad son las siguientes: 10000411] ._ | o1o0r110 ©= | oororios (1.33) 00011011 ‘01111000 41100100 “=| toroo10 34) 10110001 Observe que cada columna de la matriz H de Ia ecuacién 1.34 tiene un nnimero impar de unos. Tales cédigos de Hamming se tlaman cédigos con columnas de peso impor y tienen varias propiedades deseables, inciuidas la correecién de errores simples, 'a deteccién de errores dobles y la deteccién de otros errores multiples. Ademas, permiten el uso de circuitos de codificacion y decodificacién relativamente econdmicos y répidos. Es por esto que, los cédigos con columnas de peso impar se utilizan con frecuencia en Ia prictica. La forma més facil de disefiar un cédigo de Hamming es especificando la matriz., Para cualquier entero positivo m > 3, existe un cédigo SEC (mm,k) con las siguientes propiedades: © Longitud de eddigo: w= 2" — 1 © Numero de bits de informacion: & = 2"- m—1 + Nimero de bits de verificacion: n — k= m * Distancia minima: d= 3 La matriz H para tal e6digo es wna matriz.n x m formada por todas las m-tuplas binarias distintas de cero como columnas. La matriz de la ecuacién 1.28 es un ejemplo de tales matrices, con m = 3. Observe que podemos determinar las demas matrices H para m=3 reordenando las eohimnas, Evempto 1.71 @® 1.6 Resumen Seccién 1.6 Resumen 73 Obtenemos un cédigo de Hamming (15,11) cuando m= 4. Una posible smatriz H para tal e6digo es la siguiente: TLLL011 10001000 TL101 1301 100100 1101 10100110010 TOI! 10011010001 H= 135) Podemos eliminar /columnas arbitrarias de una matriz H de un codigo de Hamming para obtener oiro eédigo de Hamming con las siguientes propiedades: * Longitud de eédigo: -I-1 + Niimero de bits de informacié mm — 11 ‘# Niimero de bits de verificacién: » —&=m + Distancia minima: d,,, 23 Estas propiedades eonduces a la posibilidad de discRtar eédigos con mejores propiedades de deteccidn y correccion de errores y longitudes de eédigo mas tiles, Disefar un cédigo de Hamming para codificar cinco bits de informacién (k= 5). Se necesitan cuatro bits de verificacién (m = 4), ya que param =3,4=2!—3-1 =4.<5. Sin embargo, para m= 4, k= 2*—4— 1 = 11> 5, Pero podemos obtener un cédigo (9,5) eliminando seis columnas de la matriz: H de un cédigo (15,11). ‘Ateliminar seis columinas de la ecuacién 1.35 obtenerios 11101000" 441010100 a 4 = trovioo10 We 101110001 La matriz. generatriz. correspondiente es HOO0OLI EE 10001110 6 = | enioo1101 aay (OO101011 ooo 10111} Esto concluye nuestro estudio de los eédigos de deteccién y correccién de errores. Los lectores que escen aprender més acerca de estos eédigos pueden consultar {a referencia bibliogratica [8). Hemos completado nuestra introduccion alos sistemas numéricos y los cédigos de computadoras. FI lector debe estar ahora familiarizado con los sistemas numéricos decimal, octal ¥ hexadecimal y podra convertir los nlimeros, de cualquiera de estas bases a cualquier otra. Ademas, el lector debera ya entender las operaciones aritméticas en todas as bases y Ia forma en que pueden 74 Capitulo 1 Sistemas numéricos y cédigos REFERENCIAS BIBLIOGRAFICAS PROBLEMAS representarse los niimeros negativos en las computadoras. También, deberé haber adquirido cierta familiaridad con tos ntimeros de punto fijo y de punto flotante, y comprenderé en general los cédigos de caracteres decimal codificado en binario (BCD) y ASCII. Ast mismo, presentamos los codigos Gray y de exceso 0 sesga- dos. Por iltimo, el lector debera haber adquirido un conocimiento general de los cédigos de deteccién y correccién de errores simples. Puede lograr una compren- sion més detallada de estos temas consultando la bibliografia. 1. M.Y. Hsiao, "A Class of Optimal Minimum Odd-Weight-Column SEC-DED Codes, “/BM Journal of Research and Development, Vol. 14, No. 4, pags. 395-401, julio 1970. 2. K. Hwano, Computer Arithmetic. Nueva York: Wiley, 1979. 3. D.E.Knunt, Semiriumerical Algorithms. Reading, MA: Addison-Wesley, 1969. 4, S. Lin ¥ DJ, Costeus0, Error Control Coding: Fundamentals and Applications, Englewood Cliffs, Nb: Prentice Hall, 1983. 5. W.W. Peterson y BJ. Wetvon, Jx., Error-correcting Codes, 2a. edicién ‘Cambridge, MA: MIT Press, 1972, 6.1.F, Waxeriy, Microcomputer Architecture and Programming. Nueva York: Wiley, 1981. 7.8, Waser ¥ M.J. FLYNN, Introduction to Arithmetic for Digital Systems. Nueva York: Holt, Rinehart, and Winston, 1982. 8. JEEE Sranoaro For Binary Froarine-point Axstusenic, ANSVIEEE Std. 754- 1985. Institute of Electrical and Electronic Engineers, 345 East 47th St., Nueva York, NY, agosto 1985. 9. Iseart, Koren, Computer Arithmetic Algorithms. Englewood Cliffs, NJ: Prentice Hall 1993. 1.1 Caleule A +B, 4—B, Ax By A~ B para las siguientes parejas de nimeros binarios. (a) 10101, 1011 () 1101011, 1010, (by 1011010, 101111 (1010101, 101010 (©) 101.1911 fe) 10000, 1001 (a) 10110110, 01011011 hy 101.0101, 110.11 1.2 Caleule A+B, A~B, Ax By A * B para las siguientes parejas de nimeros octales. (a) 372, 156 (©) 1000.77 (b) 704, 230 (a) 423, 651 1.3 Caleule A+ B, A~B, Ax By A ~ B para las siguientes parejas de nimeros hexadecimales, (a) 2CF3, 28 (©) 945,17 (b)_FFFF, 1000 (a) 372,156 14 18 7 19 Seccin 1.6 Resumen 75 Convierta los siguientes nuimeros decimales a nimeros binarios, octales y hexadecimales. (a) 07 (a) 065 ) ois 17425 (©) 0375 (2808 Convierta los siguientes ndmeros binarios a ndmeros octales, hexadecimales y decimales utilizando el método de conversion mas adecuado, @ 1101 «@) go1101 tb) 101110 fe) 1010111 (©) 0.101 () 10110110.001 Convierta los siguientes nimeros octales a nimeros binarios, hexadecimales y decimales utilizando el método de conversién més adecuado. (a) 65 (@) 2000 () 371 eon (©) 24051 m7 Convierta los siguientes nimeros hexadecimales a nimeros binarios, octales y decimales utilizando el método de conversién mas adecuado. (a) 4e (a) 2000 (b) ape te) 2014 [e) FRAT () 3D65E Determine el complemento a dos de los siguientes nimetos binarios, suponiendo n= 8. (a) 101010 @ uit (b) 101011 (©) 10000000 to «11000 Determine ¢! complemento a uno de los siguientes numeros binarios, suponiendo n= 8. (10101 (@) 10000000 (b) 1010011 (©) 100001 eo w ont 1.10 Calcule 4 + B, A — B, A + By ~A ~ B para las siguientes parejas de niimeros, suponiendo un sistema numérico de complemento a dos y n= 8. Verifique sus resultados mediante aritmética decimal. Explique los resultados extrafios. (a) 1010101, 1010 fe) 111oi010, 101111 (hd j 101011, OLO1010 (1) 10000000, 08111111 Repita e1 problema 1.10 para los siguientes nimeros, utilizando un sistema numérico de complemento a uno. (@ 101011, 1101 (© 1010101, 0101010 (by 10111010, 11010 td) 10000000, ONT 76 Capitulo 1 Sistemas numéricos y cédigos Laz M3 Ltd 115 1.16 Lay 1.18 120 121 122 Muestre Ja forma en que una computadora de 16 bits con un sistema numérico de complemento a dos realizaria los siguientes célculos. (2) (16850), + (2825),, = (2) (6) (16850), ~ (2825). = (2), (5 (2825). ~ (16850), = () (d) ~(2925)j9 ~ (16850),y = (2) Codifique los siguientes nimeros en los eddigos BCD y exceso 3. ta) 38 fe) 94708 () 1950 (a) 625 Codifique las siguientes cadenas en c6digo ASCII. Represente las cadenas codificadas mediante nimeros hexadecimales, (ay 1980 tc), COMPUTER ENG (by A=b+C (@) ‘The End FRING Defina un cédigo de cuatro bits para la representacién de digitos decimaies, con la propiedad de que las palabras de e6digo para cualesquiera dos digitos cya diferencia sea uno difieran s6lo en una posicién de bit, y que esto también se cumpla para los digitos 0 y 9. {Cuantos errores de bit se pueden detectar en un eédigo dos de cinco? {Cudntos errores, si acaso, se pueden corregir en un cédigo dos de cinco? Demuestre sus respuestas en forma matemitica. Examine el disco con cédigo Gray de la figura 1.5. Suponga que los indicadores sefialan lo siguiente: A esta desactivado, B esti activado, C std activado y D esté parpadeando, Localice la posicion del disco segin Jos nameros de sector. Se grabardn los siguientes mensajes de ocho bits en la cinta magnética de nueve pistas de Ia figura 1.7, Determine el bit de paridad para que cada ‘mensaje tenga paridad impar, (a) PIOL11010 fe) 10011001 (by P01 11000, a polo! 1010 Sea 10111001 una palabra errénea obtenida mediante el c6gigo de Hamming 2. Determine la palabra de cédigo correcta, calculando la diferencia y la distancia entre fa palabra errénea y cada palabra de cédigo valida. Desarrolle una tabla de sindromes para el cédigo de Hamming 2 que considere el caso libre de errores, exclusivamente errores simples ¥ exclusivamente errores dobles. {Existe una caracterizacién sencilla de los sindromes de errores dobles? 2Existen patrones de error con tres 0 mas errores detectables por el ebdigo? Utilice Ia tabla de sindromes desarrollada en el problema 1.20 para decodificar las siguientes palabras, fa) 10010111 fe) totii0 thy 10011011 (6) 01011000 (e) oo1tit10 fe) 11100001 4a) 0080111 «hy 01101000 Desarrolle las matrices generatriz y de verificaciin de paridad para el cédigo ‘SEC de Hamming, codificando patabras de informacién con una longitud de 6 bits. Seccién 1.6 Resumen 77 1.23 Codifique todas las palabras de informacién para un c6digo definide por la siguiente matriz de verificacién de paridad. Observe que los cédigos con una matriz de verificacién de paridad en la forma de la ecuaci6n |.28 se llaman cédigos separables, puesto que los bits de informacion se pueden separar como bloque de los bits de verificacién. El cédigo que resulta de la siguiente matriz no es separable, pues los bits de informacién y los de verificacién estin mezclados. 11110007 =| L100110 wot 1.24 ,Qué propiedades de deteccién y correccién de errores tiene el c6digo definido en el problema 1.23? Elabore una tabla de sindromes para este cédigo. Describa las caracteristicas interesantes de los sindromes. 1.25 Deseriba las ventajas y desventajas de los cédigos separables que tienen la forma representada por Ia matrizde la ecuacidn 1.28, en comparacién con los cédigos no separables de Ia forma representada por la matriz del problema 1.23. En este captiulo presentamos las herramientas mateméticas basicas para el diseRo tégico de compuiadoras y las concepios matematicas subyacentes. £1 material no s6lo es en st un tema importante, sino que también proporctona la base para los conceptos avanzados {que se analizarén en seceiones posteriores det texto, El material de este capitulo pretende ser independieme de los elementos de circuito especificos ilizados para consiruir circuitos digitales, En los siguientes capitulos analizaremos ta aplicacién de estas herramientas mateméticas a diversos tipos de elementos de cireuitos. : Métodos algebraicos para el andlisis y sintesis de circuitos logicos ® 2.1 Fundamentos del algebra booleana Las herramientas de andlisis y sintesis presentadas en este capitulo se basan en los conceptos fundamentales de! algebra booleana y, por tanto, analizaremos ahora este tema, En 1849, George Boole presenté una formulacién alzebraica de los procesos del pensamiento y el razonamiento gico [1]. Esta formulacién se conoce como algebra booleana, que resumiremos a continuacién. 2.1.1 Postulados basicos La descripcién basica de la formulacién de! élgebra booleana se basa en conceptos de la teoria de conjuntos, donde se define formalmente un digebra booleana ‘como un conjunto matemético distributivo y complementado [2]. Resumiremos aqui esta definicién mediante un conjunto de postulados que sintetiza los ‘elementos y propiedades basicos de un algebra booleana, Postulado 1, Definicién. Un digebra booleana es un sistema algebraico cerrado formado por un conjunto K de dos 0 més elementos y los dos operadores + y +5 de manera altemnativa, para cada a y 6 un conjunto K, a+ b pertenece a K y a+ b pertenece a K (+ se Hama OR y * se llama AND). Postulado 2. _Existenciade loselementos1y0 En cl conjunto cexisten los elementos | (tuno) y 0 (cero), tinicos, tales que para toda a en K (@) a+0= () a+ 1 =a, donde 0 es el elemento neutro para la operacién +y 1 es el elemento neutro para Ja operacion *, Postulado 3. Conmutatlvidad de las operaciones + y+ Para toda a ybenk (a) a+b=b+a, (b) at b=bea. Evemrco 2.1 JEMPLO 2.2 Capitulo 2 Métodos algebraicos para el andlisis y sintesis de circuitos Isgicos Poslulado 4, Asociatividad de las operaciones +y+ Para toda a, bycenk (@) at te)=(ath)+0, (b) a> (b+c)= (a> 6) re. Postulado 5. _Distributividad de + sobre + y de~ sobre + Para toda a, bycenk @) a+ (b+ c)=(atd)(a+0), (b) a+ (b+0)= (ab) + (are), Postulado 6. Existenciadel complemento Paratoda aen K existe un tinico elemento amado a (complemento de a) en K tal que @) a+a=1, (b) a+7=0. Con este conjunto de premisas, podemos desarrollar otras relaciones itiles, que llamaremos teoremas. Para simplificar la notacién en el resto del texto, suprimiremos el punto (+) al indicar la operacion «. atbec=(atb)*(ate) at be=(at bate) Antes de desarroltar los teoremas, éXaminemos los postulados con detalle para entender exactamente lo que signiican. 2.1.2 Diagramas de Venn para los postulados [2] Podemos representar los postulados de manera grfica en forma de diagramas de Venn. Esta descripcién gritiea es posible, ya que el dlgebra de conjuntos es tun algebra booleana en la que los conjuntes son los elementos del algebra, la operacién de interseccién corresponde a * y It operacién de unién corresponde a+. En el diagramade Venn. los conjuntos se muestran como contornos cerrados, es decir, circulos, cuadrados, elipses, ete. (Los diagramas de Venn para los conjuntos a, , a+b y a+ baparecen en la figura2.\, Oteas notaciones frecuentes paraatbesavboauby paraa+b,ab.aaboarb. Podemos utilizar los diagramas de Venn para ilustrar los postulados. Elegimos como ejemplo el postulado 5. Utilizar el diagrama de Venn para ilustrar el postulado 5. Del andlisis de Ia figura 2.2, es evidente que e! conjunto a + be y el conjunto (a + bXa + e) son dos tepresentaciones de la misma érea sombreada y, por tanto, a+ be es igual a(u+ bXa+c). Evempto 2.3 Seccién 2.1 Fundamentos del algebra booleana 81 a 6 El conjunto « esta sombreado. El conjunto # asta sombreado, a b El conjunto a b esta sombreado. Elconjunto a+b esta sombreado. Figura 2.1. Ejemplos de diagramas de Venn Es interesante examinar algunas facetas del postulado 6. Este postulado se refiere al complemento de a, Sia es el conjunto sombreado de fa figura 2.3, el, comptemento de a, %, €8 el drea fuera de a en cl conjunto universal. En otras palabras, a y ason mutuamente excluyentes y se encuentran dentro del conjunto universal. Como son mutwamente excluyentes, no tienen un area comiin y. por tanto, su interseccién es el conjunta vacio: a* a=0. La unién de a y aes por de- finicién el conjunto universal: a + « Ademés, como el conjunto universal 1 contiene a todos los demas “conjuntos, su complemento debe ser el conjunto vacio, 0. Par tanto, T=0 y 0 El diagrama de Venn es una herramienta muy itil no sélo para visualizar los postulados ya presentados, sino tambicn Jos teoremas importantes del algebra booleana que describimos a continuacién 2.1.3 Dualidad El principio de dualidad es un concepto muy importante en el Algebra booleana, En pocas palabras. cl principio de dualidad establece que, si una expresion es valida en el algebra booleana, entonces su expresién dual también es valida, Determinamos la expresién dual remplazando todos los operadores + por +, todos los operadores + por +, todos los unos por ceros y todos los ceros por unos. Determinar la expresién dual de a+ (be) = (a+ bXa +e) 82 Capitulo 2 Métodos algebraicos para el anélisis y sintesis de circuitos légicos El conjunto a+ 6 esta sombreado.. bn El Conjunto 2+ ¢ asta sombreado. Se ¢ El conjunto (a + bya-+ ¢) asta somoreado, Figura 2.2 Diagramas de Vern para ol postulago 5. Seccién 2.1 Fundamentos del digebra booleana 83. Conjunto vacio 0 Seta Conjuntoz" Conjunto aa Conjunto a +a Figura 2.3 Diagramas de Venn quo lustran el postulado 6. ‘Al cambiar todos los operadores + por = y viceversa, obtenemos la expresion dual ab +0) =ab +ac Al obtener e/ dual, no debemos alterar la posicién de los paréntesis existentes. Observe que las dos expresiones del dltimo ejemplo son las partes (@) y (b) del postulado 5. De hecho, presentamos los postulados 2 a 6 como expresiones duales. Utilizaremos ampliamente el principio de dualidad al demostrar los teore- mas del algebra booleana. De hecho, una vez que hayamos utilizado los 84 Capitulo2 Métodos algebraicos para el analisis y sintesis de circuitos l6gicos postulados y los teoremas demostrados anteriormente para demostrar la validez de una expresi6n, podremos usar Ia dualidad para demostrar la validez de la cexpresion dual. 2.1.4 Teoremas fundamentales del algebra booleana Ahora enunciaremos algunos teoremas utiles del algebra booleana. En estos teoremas, las letras @, 4, ¢,...representan los elementos de un digebra booleana. El primer teorema describe la idempotencia y se expresa como sigue. Teorema 1. Idempotencia (@) ataza, (b) ara=a. Demostracién. Podemos demostrar la parte (a) o (b) de este teorema, Supongamos que queremos demostrar la parte (a): ata=(atayl [P2(b)] Slatuya+a) — [Pota)] +a tPs(a)} +o {PoC =a 1P2(a)] Indicamos a la derecha los postulados que justifican wn paso en particular, Hay que recordar que podemos utilizar de manera indistinta las expresiones de lados opuestos de una igualdad; por ejemplo, el teorema I dice que podemos intercambiar {a} por {a* a} y viceversa EI siguiente teorema enfatiza las propiedades de los elementos tinicos | y0. Teorema 2. Elementos neutros para los operadores + y + (@atizt. (o) a+ 0=0. Demostracién, De nuevo, demostraremos la parte (a) del teorema atls@+n (P2¢b)] ath (P3(b)| ° =(a+ aa) |POCad] ata-t IPStan] a+a 1P2(b)) 1 soca ‘Como la parte (a) de este teorema es vélida, el principio de dualidad implica que la parte (b) también es valida. Teorema 3. Involucion a Evempto 2.4 Evempto 2.5 Evempto 2.6 Seccién 2.1 Fundamentos del algebra booleana 85. Demostracién. Porel postulado 5,a*a=0ya+a=|. Portanto, wes et complemento de a, y también aes el complemento de @ Como el complemento de wes tinico, se sigue que T= a, Ahora utilizaremos el material anterior para resumir todas las propiedades de los elementos dnicos 1 y 0 en la tabla 2.1. Las propiedades * (AND) de | y 0 nos recuerdan las propiedades fundamentales de la multiplicacion en las matematicas ordinarias; sin embargo, las propiedades + (OR) hacen ver de inmediato que no estamos tratando con las matemiticas que hemos estudiado con anterioridad, y no podemos suponer ninguna de las propiedades maternaticas ‘usuales para su uso en el algebra booleana, Solo debemos utilizar los postulados ¥ teoremas que estamos desarrollando, pues trabajamos en un sistema comple- tamente nuevo y diferente, Enel siguiente teorema establecemos la propiedad de absorcion del algebra booleana, La absorciGn no tiene contraparte en el algebra “ordinaria”, Teorema 4. Absorclén (@) at+ab=a. (b) ala 4) =a. Demostracién. Demostraremos ta parte (a). atab=a:l4ah — [P%Xb)] Sully [PS] (b+) [PRbIT 1 (Tal P2ibi} Podemos visualizar ficilmente el teorema 4 con un diagrama de Venn, Los siguientes ejemplos ilustran el uso de este teorema. (V+ ++ ZN [TAA)] [14] ABC+B=B [T4(a)) TABLA 2.1_PROPIEDADES DE LOS ELEMENTOS 0 Y 1 ee f oR ‘ADN. ‘COMPLEMENTO wos 86 Capitulo 2 Métodos algebraicos para el andlisis y sintesis de circuitos logicos Los siguientes tres teoremas son similares a la absorcién en el sentido de que pueden servir para eliminar elementos adicionales de una expresin booleana, Teorema 5. (a) a+ab=a+h, (b) a+ 6) = ab. Demostracién. 1a parte (a) del teorema se demuestra como sigue: a+ab=(a+aa+b) — [PS] =(a+b) [P6«a)] =(a+b)-I [P30b)) =(a+b) [P2(b)] Los siguientes ejemplos ilustran el use del teorema 5 para simplificar las expresiones booleanas. Evempvo 2.7 B+ABCD=B+ACD — [TSia)) Evemp.o 2.8 FX+Y4+2)=7N4Z) (TSO) Esempto 2.9 (X4YAFHFZ=+ NZ (TSKb)) Evempto 2.10 AB+(AR)CD=AR+CH (TS) Teorema 6, (a) ab + ab =a. (b) (a+ bya + B= a. Demostracién. La parte (a) del teorema se demuestra como sigue: ab+ab=ath +b) [PS(b)] a [Po«a)] (P20) Los siguientes ejemplos ilustran el uso del tearema 6 para simplificar expresiones booleanas. Evempto 2.11 es ABC+ABC=AC — [TO{a)] Evempto 2.12 (AD+B+CKAD+ (BFC) =AD — (TO(b)) Seccién 2.1. Funciones de algebra booleana 87 Evewpco 2.13 Simplificar i + ¥+ 7+ AW Xe Foz (WHR 4 V4 ZW 4K 4 ¥ +2). WA4 WER +Y+ZWEX+Y+Z) — (THD)] = (WHERE IDWHR +) [F6(b)) W+ ky [T6(b)) Teorema 7. (@) a6 + abe= ab + ac. (b) + ba+F + e)=(a+ bXa+e). Demostractin, La parte (a) del teorema se demuestra como sigue’ ah +abe = aib+be) — [PSibi) =abte (TS) =ab+ae — [PS(b)} Los siguientes ejemplos ilustran ef uso del teorema 7 para simplificar las expresiones boofeanas. EJempLo 2.14 AV+ATOH +E) say t+ D (TT) EvempLo 2.15 (EF FG +P G+ HET (TID) Esempto 2.16 = ak eee 2 (A+ B+ CMB + O(A4 B)=(A+ BB+ CMAS B) [TIDY] =BB+C) {T6¢b) =B (rb Evempro 2.17 wet may + weve + fmiytwxy ture (TQ) = w+ wy + wre (T6¢a} e+ wrt (re¢ay} = (rst En los siguientes capitulos veremos que estos teoremas forman la base de algunos métodos estindar y automatizados por computadora para simpliffcar expresiones booleanas. Al trabajar con Algebra boateana, con frecuencia necesitamos determinar el complemento de tuna expresién booleana. El siguiente teorema proporciona la base para esta operacion. 88 Capitulo2 Métodos algebraicos para el analisis y sintesis de circuitos logicos Teorema 8, Teorema de OeMorgan (a) a> b (o) a b= ath Demostracién, Demostremos la parte (a): Si X= a+b, entonces X- L.SiX+Y=0yX+ 4+ 5). Por et postulado 6, X’ | entonees ¥=.X, ya que el complemento de. es tinico. OyxeX= Por tanto, sca ¥=ab'y calculemos + Vy X ¥: X-¥ = (a+ baby dahya +b) = (ibra + ahi = wah) + (aby (aah + athhy Ob + ath h) =b- 044-0 o+0 0 (thy + ab (hay 4 ab tla sab) + (a+b) beh + (b+ by =a+ib+hy =att Por tante, por la unicidad de X, ¥ [P3ib)) IPSibil Pid)! pavbo) [Poih). P30 {P3¢b). Povo) eo {Prat (paca) {Paci Isto) |P3ral (pac)| IP) [Peta] rr)! en consecuencia ab=ato Podemos generalizar el teorema 8 coma sigue, @aphen ee @) a Satb+ La regla para complementar una expresin es utilizar la relacién (a) 0 (b), reemplazanda cada operador + (OR) por un operador * (AND) y viceversa, y reemplazando cada variable por su complemento. Debemos tener cuidadv: al aplicar el teorema de DeMorgan, hay que respetar la precedencia de los operadores: tiene precedencia sobre +. EI siguien~ te ejemplo ilustra este punto importante. Esempto 2.18 Evempto 2:19 Esempto 2.20 EJempio 2.21 Seccién 2.1 Funciones de algebra booleana 89. aFbe-ateo abo =a-b+a Observe que: 7+ Fe 44-5 +E Los siguientes ejemplos ilustran el uso del teorema de DeMorgan, Complementar la expresion a (6 + 2(x +2), y simplificar el resultado de modo que los tnicos términos complementados sean variables individuales. GO+RRFa) =G+GFURFH) — (TR) =atbGa ta IT8(a)} [T8«)} IT8@)) m3) (Tia) Repetir el ejemplo 2.20 para la expresion a(b + 6) + ab, abo ra = abpactab (PSO) (Total {T8(a)} [789] Como ilustra este iltimo ejemplo, con frecuencia podemos simplificar el ‘proceso de complementar una expresidn reduciéndola antes de aplicar el teorema de DeMorgan. Af, el eorema de DeMorgan presenta la técnica general para complementar ‘expresiones booleanas. Sera de especial utilidad en la manipulacién de expre- siones booleanas a fin de darles formatos adecuados para su realizacién con tipos especificos de compuertas logicas. 90 Capitulo2 Métodos algebraicos para el analisis y sintesis de circuitos logicos Evempto 2.22 Evempto 2.23 Evempto 2.24 El dltimo teorema fundamental del algebra booleana que consideraremos es el teorema de consenso. Teorema 9. Consenso (a) ah + de + he = ub Hae Wb) (GF DMG Heb He) = (a HME Fe), Demostracién, De aqui en adelante, wtilizaremos los postulados 3 y 4 sin indicarlo de manera explicita ub + ac + he =ab + ae +1 >be {P2¢b)] = ab +e + (a + abc [P6«a)| 1b + Ge +abe + abe IPS«b)] = (ab + abe) + (ae + Geb) ih + fie [rata La clave para utilizar este teorema es un elemento y su complemento, encontrar los términas asocindos y eliminar el término incluido (el términa de ~consenso”), el cual esta compuesto de los términos asociados. E| teorema de consenso es util para reducir expresiones booleanas y para desartollar expresiones en los diversos algoritmos de minimizacion automatizads que describiremos mas adelante, AB+ACD+ BCD=AR+ACD — [T9Ha)} @FPME+ EMD += hat ba +e) [TIb)| ABC +AD+ BD4+CD=ABC4(A+ B)D4CD [PSD] =ABC4ABD+CD [780b)) ABC + ABD 179%) ABC + (A+ BD IT8«ch)) =ABC+.4D+ BD [Ps] En cada uno de los ejemplos anteriores, complemento son fa ¢lave para reducir la expresion. Es importante sefialar que es facil demostrar los teoremas presentados por medio de diagramas de Venn, Por tanta, aconsejamos a los lectores utilizar esta imagen grafica como ayuda para recordar los teoremas importantes, La tabla 2.2 resume los postulados y teoremus bisicos det algebra booleana, Mas adelante presentaremos el teorema 10, incluido en esta tabla, mi to © expresion y su Seccién 2.2 Funciones de conmutacién 91 TABLA 22 POSTULADOS Y TEOREMAS DEL ALGEBRA BOOLEANA Expresion| Dual PXa):a+0 P26) PHa)iatb=b+e Pb) sab = ba PAayiatbeer= (athe — PAB): athe) = (abre PSka)iathe=(a+b\a+c) — PS(h):alb-+e) = ab tac Pola): @ PO) ad =0 Ti(a):a+a THO)sa-a=a THa)ia+1 72):8-0=0 13: =a Tala) ia + ab Tb) > ala +h) = 0 T5(a):a +b T5(b): ala +b) =ab T6(a): ab + ab T6(6): (a + ba +B) =a 71a): ab + abe = ab + ae TIb): (a + bila +b+0) =(a+bha+c) T 8a): a+b = ab Tab) 9a) ab+actbe=ab+ac — THA): (tbat OH) = (athlete) TOK): flay tps sore) HL eee I AES Osa. oct) THO): Fer. Roose) bs, + AO ays ooo DMR, + FU Agee ee ® 2.2 Funciones de conmutacién Hemos enunciado tos postulados y teoremas del dlgebra booleana en forma general, sin especificar los elementos del conjunto K. Por tanto, los resultados son validos para cualquier algebra booleana. En el siguiente andlisis, nos centraremos en el Algebra booleana en la que K={0, 1}. Esta formulacién se conoce como digebra de conmusacion, El concepto de funcién es bien conocido para los que estan familiasizados con él dlgebra ordinaria. Las funciones de conmutacion representan el concepto correspondiente para el élgebra de conmutacién y se pueden definir como sigue. ‘Sean X;, Xs, ... %, imbolos Hamados variables, cada uno de los cuales representa el elemento 0 0 I de un algebra de conmutacién (se dice que 0.0 1 es el valor de Ja variable) y sea,/(X, Xs,» Aa) una funcién de conmutacion de X,, X> La funcién ftiene el valor 0 0 1 segin el conjunto de valores asignado a XX» Como hay n variables y cada variable tiene dos posibles valores, hay 2 maneras de asignar estos valores a las n variables. Ademés, existen dos valores posibles para la funcion f(x), x2, .... &,): Por tanto, hay 2"'diferentes funciones de conmutacién de n variables. Si n= 0, fas dos funciones de conmutacion de cero variables son fr=0 fi=l 92 Capitulo 2 Métodos algebraicos para el andlisis y sintesis de circuitos l6gicos Si m= 1, las cuatro funciones de la variable 4 son fy=0. Deduciremos ahora las 16 funciones de dos variables 4 y B. Definamos /(4, B) como sigue: f(A. B) = iAB+iAB+i AB +iAB donde (= (és; adopta tos valores binarios 0000, 0001, 0010, .., 1111. Las 16 funciones resultantes son: f(A. B) = AB+ AB = f(A, B) = AB f(A. B)= AB+ AB4AB=A4B AB+AB=A AB4+AB+AB=A+B JiylA. B) = AB + ful B) = AB+AB+AB+AB=1 Al evaluareada una de estas funciones para cada combinacién de A y B, podemos resumir la informacién anterior en forma de tabla, como en Ja tabla 2.3. TABLA 2.3 _DIECISEIS FUNCIONES DE DOS VARIABLES AB 00 or 10 ut Podemos describir una funcién de conmutacién mediante una expresion de conmutacién como sigue: S(A, B.C) = AB+ AC+AC Seccién 2.2 Funciones de conmutacién 93, Sid=1y8=C=0, el valor de la funcién fes 1. lo que verificamos como sigue: £1.00) =1-04T-041-0 =1-040-041-1 [13] =04041-1 (720)] =1 [P2Ca)1 =I {P2¢b)1 Podemos calcular otros valores de manera similar; por cjemplo, si y C=0, podemos ver que f=0. 2.2.1 Tablas de verdad Podemos representar una funcién de conmutacién mediante varias expresiones de conmutacién diferentes, pero equivalentes, Si evaluamos una funcién de cconmutacién para todas las posibles combinaciones de entradas y presentamos os resultados como una tabla, obtenemos una representacion nica de la funcion Namada tabla de verdad. Por ejemplo, podemos utilizar las tablas de verdad, como las tablas 2.4a, by ¢, para mostrar las operaciones bisicas OR, AND y de complemento, utilizadas en el digebra de conmutacién, considerando cada una como una funcién de conmutacién y exhibiendo todas las posibles combinaciones de los elementos. Si evaluamos Ia funcién f(4, B, C) = AB + AC + AT para todas las combinaciones de entradas posibles y las presentamos en forma de tabla, cobtenemos Ia tabla de verdad que se muestra como tabla 2.Sa. Al reemplazar cada 0 de la tabla 2.5a por F (falso) y cada 1 por 7 (verdadero) obtenemos una forma altemativa de la tabla de verdad, que se muestra en la tabla 2.55 y que TABLA 2.4 TABLAS DE VERDAD PARA LAS FUNCIONES OR, AND Y NOT. Kab) = 0h TABLA 25 TABLAS DE VERDAD PARA fA. By AB+ ACH AC ABC | SABC) _ABC | fia, B.C FFF] FE FFT r FTE F r rv - r r FIT TEE TET TE Ter @ @) 94 Capitulo 2 Métodos algebraicos para el andlisis y sintesis de circuitos I6gicos Abc | demuestra a correspondencia uno a uno que existe entre el Algebra de conmutacién y ¢l calculo funcional de verdad (41. ‘También podemos utilizar la tabla de verdad como un medio conveniente para evaluar las funciones de conmutacién. Por ejemplo, consideremos nuestra funcién anterior f(A, B,C) =AB+ AC + AE Podemos obtener cada término de la tabla de verdad, uno a la vez, como sigue: | fc |assic| ¢ AC | ABSA) 4AC | fA AC) 000 ot 010 ot 100 101 10 mt 1.0=0 |o+0=0 | 0 Hist |o+t=t \ 1.0=0 |o+0=0 0 Vet=1]o+r 1 0-0=0 |0+0 1 0-120 |0+0=0 0 140=1 1 140-1 ' 2.2.2 Formas algebraicas de las funciones de conmutacién Hasta ahora hemos visto varias formas diferentes de las funciones de conmuta- ccién, ineluidas las expresiones algebraicas, las tablas de verdad y los diagramas de Venn, Ahora definiremos otras formas especfficas de las funciones que demostrarén ser muy utiles. Formas SOP y POS Las funciones de conmutacién en la forma de suma de productos (SOP) se construyen al sumar (OR) términos producto (AND), donde cada 1érmino producto se forma mediante el AND de varias variables complementadas o sin complementar, cada une de las cuales ¢s una literal. Un ejemplo de forma SOP de una funcién de cuatro variables es f(A, B,C, D) = ABC + BD + ACD Las funciones de eonmutacién en Ia forma de producto de sumas (POS) se construyen al considerar el producto (AND) de términos suma (OR), donde cada término suma se obtiene mediante el OR de varias lterales, Un ejemplo de ta forma POS de una funcién de cuatro variables es (A, B.C, D) = (A+ B4 CK B+ C+ DVA+ E+ D) Formas canénicas Las formas canénicas de las funciones de conmutacidn son ciertas formas SOP y POS con caracteristicas especiales. Como hemos visto, podemos representar ‘una funeién de conmutacién mediante expresiones de conmutacidn diferentes pero equivalentes, En cambio, las formas canénicas SOP y POS son tinicas para cada funcién. Mintérminos. Parana funcién de n variables, si un término producto contiene ‘cada una de las n variables exactamente una vez, ya sea en forma complementada © no complementada, el término producto es un mintérmino, Si una funcién Seccion 2.2 Funciones de conmutacion 95 representa como una suma sélo de mintérminos, decimos que la funcidn tiene la forma de suma cundnica de productos (SOP eanénica). Por ejemplo, L(A. 8,0) es la forma SOP candnica de la funcién f(4, B, C), con cuatro mintérmines. Para simplificar la escritura de Ia forma candnica SOP, con freevencia se usa una notacion especial. en ta que cada mintérmino se representa mediante un cédigo binario de m bits. Cada bit representa una de las variables del mintérimino como sigue: ARC + ABC + ABC + ABC (2b Variabte no complementada: | Variable complementada: 0 Las variables se enumeran en ¢! mismo orden en cada mintérmino. Lo importante de esta niotacién es que. para que un mintérmino valga |, cada variable ne complementada del mintérmino debe valer | y cada variable complementada debe valer 0. Con este cédigo, podemos escribir los mintérminas f_(4. B.C) en una de las siguientes formas equivalentes: Namero de interno Mindeming | mintéemino Age Asc| ol age} iit Eseribimos cada mintérmino en forma abreyiada como m,. donde / € ho nh, ni iy el entero decimal igual al codigo binario correspondiente para el mintérmino. Asi. podemoy escribir /.(4. B, C)en forma compacta como Fag(A, B,C) = my + my + mg + ms Podemos simplificar atin mas si escribimos ta fancién en forma de lista de mintérminos como sigue: FAL B.C) = Y3m(2.3.6.79 Las tres ecuaciones (2.1), (2.2) y (23) ilustran tres formas diferentes. pero equivalentes, de representar ta forma canénica SOP para fy(4. 6. ©) #t orden de las variables en la novacidn funcional de las ecuaciones (2.2) y (2.3) €s muy importante, ya que determina ef orden de los bits en los ntimeros de! mintérmino, Pademos demostrar este hecho facilmente, camhiando la elacion de orden de las variables en la funcion fA, B.C) a f.(B. C, A) como sigue: J B.C. A) = J) m2. 3.6.7) my tomy + my + my CA + BCA + BCA + BCA = ABC + ABC + ABC + ABC ea 96 Capitulo2 Métodos algebraicos para el analisis y sintesis de circuitos légicos Observe que Ja ecuacidn (2.4) no es idéntica a 1a (2.1), aunque las Tistas de mintérminos sean iguales. Continuamos trabajando con la ecuacidn (2.4) para obtener J,.A. B.C) = J,(B, CA) = ABC+ABC+ABC+ ABC wm =m, tm +m +m, = Doma, 3.5.7) (25) Las ecuaciones (2.4) y (2.5) son iguales; la diferencia en las listas de mintérminos refleja el orden de las variables en la notacién funcional, Podemos dedueitfécilmente la tabla de verdad para fo(, B, C) a partir de ‘su forma SOP candénica: rym | Salidas ABC ABC | 5,64.8.0) Un andlisis cuidadoso de la tabla muestra que cada fila se numera segén su cédigo decimal, y que los tinicos unos que aparecen en la tabla son los de las filas que corresponden a miatérminos m, Por tanto, en general, podemos eliminar todos los pasos intermedios y sdlo escribir 1a tabla de verdad directamente a partir de la lista de mintérminos, como se muestra a continuacion para la funcin f (4, B, Cy: Complement TIA B.0) =¥m00, 1.4.5) 7 =m, i =m ° ° 1 em, i om, ° 0 Ademas, podemos ver que la tabla de verdad para f(A. 8. C) tiene unos en tas filas 0, 1, 4 y 5, Por tanto, f,(A. B.C) = J m02, 3,6,7) AA, BO = Ym. 1,4.5) Evempto 2.25 Seccién 2.2 Funciones de conmutacin 97 Observe que todos los mintérminos compuestos por tres variables (que suman 2= 8) estén en la lista de mintérminos para f, (4, B, C) 0 la lista para J, (4, B, ). En general, cada uno de los 2* mintérminos den variables siempre aparecerd en la forma SOP canénica para f(x, 4X) 01a de F(X). Dada Ia funcién S\A,B,Q,2) = ABOZ + ABQZ + ABOZ + ABOZ, expresar las funciones /(4, B, 0, Z)y F(A, B, Q, Z) en forma de lista de mintérminos. F(A, BQ, ABQ? + ABQZ + ABOQ7Z + ABOZ + my + my + my Lm.1,.5.7 F(A. B, Q, Z) contendra los 12 (2'~ 4) mintérminos restantes. La lista de ‘mintérmvinos para esta funcién es FIA. B.Q.2) =m, +m, +m, +m +mg +m, Emig tomy tims Ms HM Mig = Yom. 3.4,5.8.9, 10, 11.12, 13.14.15) Debemos recordar de! algebra de conmutacién que Fes, Sin embargo, como AI Fate tgeneeety SX kye ee) + Flay entoneces Qo En otras palabras. tz suma (OR) de todos los mintérmings de n variables (iy one Mgr,) @8 igual a 1. Por diltimo, es importante obsetvar que. si bien AB+AB=1 (PoC) y AB+AYB=1 (77) son expresiones vilidas, AB+ ABI. Un error comin de los estudiantes del algebra de conmutacién es igualar la expresién ancerior a 1. Maxtérminos. ‘Si un término suma de una funcién de n variables contiene cada luna de fas variables exactamente una vez en forma complementada 0 10 complementada, el término suma es un maxtérmino, Si representamos una 98 Capitulo 2 Metodos algebraicos para el andlisis y sintesis de circuitos légicos funci6n como producto de términos suma, cada uno de los cuales es un maxtérmino, decimos que la funcién tiene la forma eandnica de producto de sums (POS canénica). Por ejemplo, FIA B.C) = (AE BACKAF BY OVAL BEOWAS BEC) (27) ¢s la forma POS candnica de una funcién f,(4, B, C), que tiene cuatro maxtérminos, Adoptamos una notacién especial para los maxté , como hicimos con los mintérminos, con ta diferencia de que el eddigo se intercambia como sigue Variable no complementada: 0 Variable complementads: 1 Lo importante de esta notacién es que, para que un maxtérmino valza 0. toda variable no complementads del maxtérmine debe valer 0 y toda variable complementada debe valer 1. Ast. podemos representar los maxtérminos de Sold. BC) €omo sigue: Codigo del | _Listade Mastérming | mastering | eintermine AtB+C AB+E M, A+B+O M, AL B+O M, Eseribimos cada maxtérmino en forma abreviada como Mf, donde /es el entero decimal del cOdigo binario correspondiente para ¢] maxtérmino, Asi, J,{A, B.C) = MyM, MMs ex) =P] Mw.t4sy a» La ttima forma es la forma de lista dle maxtérminas. Las ecuaciones (2.7).(2.8) y (2.9) son formas POS eandnicas equivalentes para f, (4, B, C). Como en el «aso de las ecuaciones (2.2) y (2.3), el orden de las variables en las ccuaciones (2.8) y 2.9) es muy importante. La tabla de verdad para f,(4, 8, C) es My, M, My M, Satidas AsBeC AtBee Aswec Ateee| (ako 0 1 1 1 1 1 1 1 Cada fila de la tabla se numera segiin ¢l eddizo decimal, como to hicimos con Jos mintérminos. Observe que los tinicos ceros de la tabla aparecen en los renglones i correspondientes a los maxtérminos , Por tanto, como hicimos Evempto 2.26 Seccién 2.2 Funciones de conmutacion 99 con los mintérminos, podemos generar la tabla de verdad mediante una inspeceiGn directa de la lista de maxtérminos, Al comparar las tablas de verdad para f(A, B.C)y f(A, B,C) vemos que Sal B.C) = Ym (2.3, 6.71 f(A. BO) T]™00.1.4.5) (2.10) Por tanto, las funciones f(4, B,C) y f,(4, B, C) son iguales y la ecuacién (2.10) muestra fas formas SOP y POS candnicas para fu(d, B, ©). Dada fa funcién st4, B, C)= At B+ Q(A+B+ OA+B+OA+8+O, construir la tabla de verdad y expresar a funcién con maxtérminos y con mintérminos. (A. B.C)=(A4+ B+ CAF BFE) (A+ B+ OV A+B4+E) = MMMM, [] 0.3.5.7) Los maxtérminos colocan ceros en las filas 1, 3, Sy 7 de la tabla de verdad. Nam, de fila Entradas) Satidas ws | are | fac) = TT M.3.5.7) =m, “”, “Mm, e-e-e-e+ “4M, De la tabla de verdad para /(4, B, C), observamos que J(A, B.C) = Ym, 2, 4.6) Por tanto, F(A, B.C) = mi3.5.7) m+ My + Mg + my wT Ww =ABC+ ABC + ABC 4 ABC En conseeuencia, SIAL B.D 100 Capitulo 2 Métodos algebraicos para el analisis y sintesis de circuitos logicos =(AFB4 CAF B+ OF B+ OU4 84H ot oir vo 7 = MMMM, []ma.3.8.7 Por tanto, hemos demostrado de manera algebraic que StA, B,C) = Tas 3,7) = Lm, 2, 4,6 fo que es obvio si examinamos la tabla de verdad. Al manejar funciones, queda clara una relacion entre los mintérminos m, y los maxtérminos M4, Por ejemplo, para wna funcion #(4, B, C) tenemos que 01 01 (cOdigo de! mintérmino) (cédigo del maxtérmino) y viceversa. Esto ocurre en el caso general; es decir, ri, = M, 40) =m (2.12) ings son complementarios entre si. Mm Por tanto, los mintérminos y maxtérmi Evewpto 2.27 Dada la funcién /(4, 6, ©) del ejemplo 2.26, determinar Ia relacién entre tos maxtétminos para la funcién y su complemento. La tabla de verdad es: Num, de fla|intradas| Salidas | _ Sali FAB) | FAB.) =[]M0.2.4,6) SM, 1 0 “M, 1 0 ~M, 1 o =M, ! ‘Como los renglones 0, 2,4 y 6 tienen cefos, 'a forma candnica de J(4, B, C)es F(A, BC) = T] M0.2.4.6) : por tanto, F(A, B.C) =] MU,3,5.7)

You might also like