963

Fundamentos de Logica Digital Con Diseno VHDL - Brown

Embed Size (px)

Citation preview

  • En esta obra se ensean las tcnicas bsicas de diseo de circuitos lgicos, con especial atencin en la sntesis de los circuitos y la implementacin de los circuitos en chips reales. Los conceptos fundamentales se ilustran mediante ejemplos sencillos, fciles de entender. Adems, se aplica un enfoque modular para mostrar cmo se disean los circuitos ms grandes. VHDL se usa para demostrar cmo se defi nen en un lenguaje de descripcin de hardware los bloques constructores bsicos y los sistemas ms grandes, con lo que se producen diseos que pueden implementarse con modernas herramientas de software de diseo asistido por computadora (CAD).

    La exposicin basada en VHDL es de suma utilidad, ya que permite que el lector se in-volucre rpidamente con los diseos reales. Por aadidura, el libro puede usarse con cualquier sistema CAD para diseo e implementacin de circuitos lgicos. Asimismo, para que el usuario obtenga modernas herramientas CAD, se incluye un disco compacto que contiene Quartus II, de Altera, un programa CAD que permite que los diseos escritos en VHDL se traduzcan de ma-nera automtica en arreglos de compuertas de campos programables (FPGA) y en dispositivos lgicos programables complejos (CPLD). El usuario ser capaz de:

    Ingresar un diseo en el sistema CAD

    Compilar el diseo en un dispositivo especfi co

    Simular la funcionalidad y la sincronizacin del circuito resultante

    Implementar el diseo en dispositivos reales (en las instalaciones del laboratorio escolar)VHDL es un lenguaje complejo, de modo que su introduccin en el texto es gradual. Cada

    caracterstica se presenta conforme se vuelve pertinente para el anlisis de los circuitos. A fi n de ensear a los estudiantes el uso del programa Quartus II, en el libro se incluyen tres tutoriales, adems de una exposicin de todo el fl ujo CAD. Esta herramienta se presenta en el CD en el idioma ingls.

  • FUNDAMENTOS DE

    LGICA DIGITAL CON DISEO VHDL

  • FUNDAMENTOS DEDE

    LGICA DIGITAL CON DISEO VHDL

    SEGUNDA EDICIN

    Stephen Brown y Zvonko VranesicDepartamento de Ingeniera Elctrica y Computacin

    University of Toronto

    TraduccinLorena Peralta RosalesVctor Campos Olgun

    Traductores profesionales

    Revisin tcnicaJorge Valeriano Assem

    Coordinador de la carrera de Ingeniera en ComputacinUniversidad Nacional Autnoma de Mxico

    Felipe Antonio Trujillo FernndezProfesor del Departamento de Ingenieras

    Universidad Iberoamericana, Campus Santa Fe

    MXICO BOGOT BUENOS AIRES CARACAS GUATEMALA LISBOAMADRID NUEVA YORK SAN JUAN SANTIAGO

    AUCKLAND LONDRES MILN MONTREAL NUEVA DELHISAN FRANCISCO SINGAPUR ST. LOUIS SIDNEY TORONTO

  • Director Higher Education:Director Higher Education: Miguel ngel Toledo CastellanosMiguel ngel Toledo CastellanosDirector editorial: Ricardo A. del Bosque AlaynEditor sponsor: Pablo Eduardo Roig VzquezEditora de desarrollo: Paula Montao GonzlezSupervisor de produccin: Zeferino Garca Garca

    Fundamentos de lgica digital con diseo VHDLSegunda edicin

    Prohibida la reproduccin total o parcial de esta obra,por cualquier medio, sin la autorizacin escrita del editor.

    DERECHOS RESERVADOS 2006 respecto a la primera edicin en espaol porMcGRAW-HILL/INTERAMERICANA EDITORES, S.A. DE C.V.A Subsidiary of The McGraw-Hill Companies, Inc.l

    Edifi cio Punta Santa FeProlongacin Paseo de la Reforma 1015, Torre APiso 17, Colonia Desarrollo Santa Fe,Delegacin lvaro ObregnC.P. 01376, Mxico, D. F.Miembro de la Cmara Nacional de la Industria Editorial Mexicana, Reg. Nm. 736

    ISBN 970-10-5609-4

    Traducido de la segunda edicin de: FUNDAMENTALS OF DIGITAL LOGIC WITH VHDL DESIGNCopyright MMV by The McGraw-Hill Companies, Inc. All rights reserved.Previous edition 2000.ISBN 0-07-246085-7

    1234567890 09875432106

    Impreso en Mxico Printed in Mxico

  • Para Susan y Anne

  • ACERCA DE LOS AUTORES

    vii

    Stephen Brown obtuvo la licenciatura en ingeniera elctrica por la Universidad de New Bruns-wick, Canad, y la maestra y el doctorado en ingeniera elctrica por la Universidad de Toronto. En 1992 se uni al cuerpo acadmico de esta ltima institucin, donde ahora es profesor asocia-do del Departamento de Ingeniera Elctrica y de Cmputo. Tambin es director de desarrollo de software en el Altera Toronto Technology Center.

    Sus intereses de investigacin incluyen la tecnologa VLSI de campos programables y la ar-quitectura de computadoras. En 1992 obtuvo el premio doctoral del Canadian Natural Sciencesand Engineering Research Council por la mejor tesis de doctorado en Canad.

    Gan cuatro premios por excelencia en la enseanza de cursos de ingeniera elctrica, inge-niera de cmputo y ciencias computacionales. Es coautor de otros dos libros: Fundamentals of Digital Logic with Verilog Design y Field-Programmable Gate Arrays.

    Zvonko Vranesic obtuvo la licenciatura, la maestra y el doctorado, todos en ingeniera elc-trica, por la Universidad de Toronto. De 1963 a 1965 trabaj como ingeniero de diseo en laNorthern Electric Co. Ltd., en Bramalea, Ontario. En 1968 se uni al cuerpo acadmico dela Universidad de Toronto, donde ahora es profesor de los departamentos de Ingeniera Elctricay Cmputo, y de Ciencias Computacionales. Durante el ao acadmico 1978-1979 fue profesor husped en la Universidad de Cambridge, Inglaterra, y durante 1984-1985 estuvo en la Universi-dad de Pars, 6. De 1995 a 2000 fungi como jefe de la Divisin de Ciencias de Ingeniera en la Universidad de Toronto. Tambin particip en investigacin y el desarrollo en la Altera Toronto Technology Center.

    Sus actuales intereses de investigacin abarcan arquitectura de computadoras, tecnologaVLSI de campos programables y sistemas de lgica multivaluada.

    Es coautor de otros cuatro libros: Computed Organization, 5a. ed.; Fundamentals of Digital Logic with Verilog Design; Microcomputer Structures y Field-Programmable Gate Arrays. En 1990 recibi la Wighton Fellowship por sus innovadores e inconfundibles aportes en la ense-anza de laboratorio de estudiantes de licenciatura. En 2004 recibi el Faculty Teaching Award de la Facultad de Ciencias Aplicadas e Ingeniera por la Universidad de Toronto.

    Ha representado a Canad en varias competencias de ajedrez. Posee el ttulo de maestro internacional.

  • PREFACIO

    Este libro est diseado para un curso de introduccin al diseo de lgica digital, que es un cursobsico en la mayor parte de los programas de ingeniera elctrica y cmputo. Un buen diseador de circuitos lgicos digitales debe entender a cabalidad los conceptos bsicos y manejar condestreza las herramientas de diseo asistido por computadora (CAD). Por tanto, el propsito deesta obra es ofrecer el equilibrio deseable entre la enseanza de los conceptos bsicos y la aplica-cin prctica con herramientas CAD. Para facilitar el proceso de aprendizaje, el software CADnecesario se incluye como parte integral del libro.

    Son dos las metas principales de este texto: (1) ensear a los estudiantes los conceptos fun-damentales del diseo digital manual clsico y (2) ilustrar claramente cmo se disean hoy en dalos circuitos digitales mediante herramientas CAD. Aun cuando los diseadores modernos ya nosiguen las tcnicas manuales, salvo en raras circunstancias, nuestra motivacin para ensearlasestriba en que los estudiantes pueden obtener nociones ms bien intuitivas de cmo funcionanlos circuitos digitales. Adems, las tcnicas manuales ilustran bien los tipos de manipulacionesque las herramientas CAD realizan, con lo que se brinda a los estudiantes los conocimientos su-fi cientes para que aprecien los benefi cios ofrecidos por la automatizacin del diseo. A lo largodel libro se exponen conceptos bsicos por medio de tcnicas manuales y mtodos modernos ba-sados en herramientas CAD. Tras establecer los conceptos fundamentales, se brindan ejemplosms complejos, apoyados en las herramientas CAD. Por ende, el nfasis se centra en los mtodosmodernos de diseo a fi n de ilustrar cmo se realiza actualmente el diseo digital.

    TECNOLOGA Y APOYO CAD

    En el libro analizamos las modernas tecnologas de implementacin de circuitos digitales. Po-nemos el acento en los dispositivos lgicos programables (PLD), que son, por dos razones, latecnologa ms apropiada para usar en un libro de texto. La primera es que los PLD se usan mu-cho en la prctica y estn disponibles para casi todos los tipos de diseos de circuitos digitales.De hecho, en algn punto de su carrera los estudiantes tienen ms probabilidad de involucrarse endiseos basados en PLD que en cualquier otra tecnologa. La segunda razn: los circuitos seimplementan en PLD mediante programacin del usuario fi nal. Por tanto, es posible ofrecer alos estudiantes la oportunidad de implementar en el laboratorio y en chips reales los ejemplos dediseo expuestos en el libro. Tambin pueden simular el comportamiento de sus circuitos disea-dos en sus propias computadoras. Como dispositivos destino de los diseos hemos usado los dostipos ms populares de PLD: dispositivos lgicos programables complejos (CPLD) y arreglos decompuertas de campos programables (FPGA).

    Nuestro soporte en CAD se basa en el programa Quartus II, de Altera, que ofrece la traduc-cin automtica de un diseo en CPLD y FPGA de Altera, que se encuentran entre los PLD msampliamente usados en la industria. Las caractersticas de Quartus II particularmente atractivaspara los propsitos de este texto son: Se trata de un producto comercial. La versin que se incluye en el libro soporta todas las ca-

    ractersticas principales del producto. Los estudiantes sern capaces de ingresar fcilmente

    viii

  • ixPREFACIO

    un diseo en el sistema, compilarlo en un dispositivo elegido (la eleccin del dispositivo puede cambiarse en cualquier momento), simular la funcionalidad y la sincronizacin deta-llada del circuito resultante y, si la escuela posee instalaciones de laboratorio, implementar los diseos en dispositivos reales.

    Ofrece el ingreso del diseo usando lenguajes de descripcin de hardware (HDL) o captura esquemtica. En el libro se hace nfasis en el diseo basado en HDL, pues es el mtodode diseo ms efi ciente en la prctica. En los ejemplos se describe con detalle el lenguaje deVHDL segn el estndar del IEEE y se le usa de manera extensa. El sistema CAD incluido con el libro tiene un compilador de VHDL que permite al estudiante crear automticamentecircuitos a partir de cdigo de VHDL e implementarlos en chips reales.

    Un diseo puede dirigirse de manera automtica a varios tipos de dispositivos, lo que per-mite ilustrar las formas en las que la arquitectura del dispositivo blanco afectan el circuito de un diseador.

    Puede usarse en la mayor parte de las computadoras populares. La versin de Quartus II ofrecida con el libro se ejecuta en computadoras que usan Microsoft Windows NT, 2000 o XP. Sin embargo, mediante el programa universitario de Altera, el software tambin est disponible para otras mquinas, como las estaciones de trabajo SUN y HP.Con cada copia de esta obra se incluye un disco compacto de Quartus II. El uso del software

    est totalmente integrado en el libro, de modo que los estudiantes pueden probar, de primera mano, todos los ejemplos de diseo. Para ensearles a utilizar este software, en el libro se inclu-yen tres tutoriales que avanzan progresivamente.

    MBITO DEL LIBROEn el captulo 1 se presenta una introduccin general al proceso de diseo de sistemas digitales. Se abordan los pasos principales de l y se explica cmo usar las herramientas CAD para auto-matizar una buena parte de las tareas requeridas.

    En el captulo 2 se introducen los aspectos bsicos de los circuitos lgicos y se muestracmo usar el lgebra booleana para representarlos. Tambin se ofrece al lector un primer vistazode VHDL como ejemplo de un lenguaje de descripcin de hardware que sirve para especifi car los circuitos lgicos.

    Los aspectos electrnicos de los circuitos digitales se presentan en el captulo 3, donde semuestra cmo se construyen las compuertas bsicas mediante transistores. Asimismo se pre-sentan varios factores que infl uyen en el desempeo del circuito. El nfasis se centra en las tecnologas ms recientes, con acento especial en la tecnologa CMOS y los dispositivos lgicos programables.

    En el captulo 4 se aborda la sntesis de los circuitos combinacionales. Se abarcan todoslos aspectos del proceso de sntesis, que comienza con un diseo inicial y desarrolla los pasosde optimacin necesarios para generar el circuito fi nal buscado. Se muestra cmo utilizar lasherramientas CAD para este propsito.

    El captulo 5 se centra en los circuitos que realizan operaciones aritmticas. Se parte de laexplicacin de cmo se representan los nmeros en los sistemas digitales y luego se muestra la manera de manipularlos por medio de circuitos lgicos. En este captulo se ilustra cmousar VHDL para especifi car la funcionalidad deseada y el modo en que las herramientas CADproporcionan un mecanismo para desarrollar los circuitos buscados. Elegimos introducir las representaciones de los nmeros en este punto, en vez de al comienzo del libro, para hacer la

  • x PREFACIO

    explicacin ms signifi cativa e interesante, pues inmediatamente pueden ofrecerse ejemplos decmo procesar la informacin numrica con circuitos reales.

    En el captulo 6 se presentan los circuitos combinacionales que sirven como bloques cons-tructores. En l se incluyen circuitos codifi cadores, decodifi cadores y multiplexores, circuitosmuy prcticos para ilustrar la aplicacin de muchos constructores de VHDL, al tiempo que brin-dan al lector la oportunidad de descubrir caractersticas ms avanzadas de ese lenguaje.

    Los elementos de almacenamiento se presentan en el captulo 7. Se explica el uso de los fl ip-fl ops para realizar estructuras regulares, como registros de corrimiento y contadores. Se incluyendiseos especifi cados con VHDL de tales estructuras. En el captulo tambin se muestra cmodisear circuitos ms grandes, entre ellos un procesador simple.

    En el captulo 8 se tratan con detalles los circuitos secuenciales sncronos (mquinas deestado fi nito); se explica su comportamiento y se desarrollan tcnicas de diseo prctico tantomanual como automatizado.

    Los circuitos secuenciales asncronos se abordan en el captulo 9. Si bien la exposicin noes exhaustiva, ofrece una buena indicacin de las caractersticas principales de esos circuitos.Aun cuando los circuitos asncronos no se usan mucho en la prctica, es preciso estudiarlos,pues son un excelente vehculo para conocer mejor el funcionamiento de los circuitos digitalesen general: ilustran las consecuencias de los retrasos de propagacin y las condiciones de carreraque pueden ser inherentes en la estructura de un circuito.

    En el captulo 10 se presenta una explicacin de varios confl ictos prcticos que surgen duranteel diseo de los sistemas reales. Se destacan los problemas que se encuentran con ms frecuencia en la prctica, al tiempo que se indica cmo superarlos. Los ejemplos de circuitos ms grandesilustran un enfoque jerrquico en el diseo de los sistemas digitales. Se presenta un cdigo deVHDL completo de tales circuitos.

    En el captulo 11 se introduce el tema de las pruebas. Un diseador de circuitos lgicos hade estar consciente de la necesidad de probar los circuitos y debe conocer al menos los aspectosms bsicos de ello.

    En el captulo 12 se presenta el fl ujo completo del diseo asistido por computadora que eldiseador experimenta cuando disea, implementa y pone a prueba un circuito digital.

    En el apndice A se ofrece un resumen completo de las caractersticas de VHDL. Aunque eluso de este lenguaje se integra a lo largo de la obra, en este apndice se proporciona una referen-cia prctica que el lector puede consultar de vez en vez al escribir un cdigo de VHDL.

    Los apndices B, C y D contienen una secuencia de tutoriales acerca de las herramientasCAD de Quartus II. Este material es adecuado para el autoestudio; muestra al estudiante, paso apaso, cmo usar el software CAD incluido con el libro.

    En el apndice E se brinda informacin detallada de los dispositivos empleados en losejemplos del texto.

    QU SE PUEDE CUBRIR EN UN CURSOTodo el material del libro puede cubrirse en dos cursos de un trimestre cada uno. Una buenacobertura del material ms importante puede lograrse en un curso de un solo semestre, o inclusoen uno de un trimestre. Esto slo es posible si el instructor no emplea demasiado tiempo en laenseanza de las complejidades de VHDL y las herramientas CAD. Para poner en prctica este en -foque, el material de VHDL se organiz en un estilo modular que conduce al autoestudio. Laexperiencia de los autores en la enseanza a diferentes tipos de estudiantes en la Universidad de

  • xiPREFACIO

    Toronto demuestra que el instructor puede emplear de dos a tres horas de clase de VHDL, y cen-trarse principalmente en la especifi cacin de los circuitos secuenciales. Los ejemplos de VHDL dados en el libro son autoexplicativos, y los estudiantes pueden comprenderlos sin problemas.Ms an, no es necesario que el instructor ensee cmo usar las herramientas CAD, pues lostutoriales de Quartus II presentados en los apndices B, C y D son adecuados para ello.

    El libro tambin es adecuado para un curso de diseo lgico que no incluya VHDL. Sin em-bargo, cierto conocimiento de ese lenguaje, incluso en un nivel rudimentario, ser provechoso para los estudiantes, y es una gran preparacin para un empleo como ingeniero de diseo.

    Curso de un semestre

    Un punto de partida natural para las clases es el captulo 2. El material del captulo 1 es una introduccin general que sirve como motivacin de por qu los circuitos lgicos son importantese interesantes; los estudiantes pueden leer y comprender este material con facilidad.

    En las clases debe cubrirse el material siguiente:

    Captulo 2: todas las secciones. Captulo 3: secciones 3.1 a 3.7. Adems, es til cubrir las secciones 3.8 y 3.9 si los

    estudiantes tienen algn conocimiento bsico de circuitos elctricos. Captulo 4: secciones 4.1 a 4.7 y seccin 4.12. Captulo 5: secciones 5.1 a 5.5. Captulo 6: todas las secciones. Captulo 7: todas las secciones. Captulo 8: secciones 8.1 a 8.9.

    Si el tiempo lo permite, tambin sera muy til cubrir las secciones 9.1 a 9.3 y la seccin 9.6 del captulo 9, as como uno o dos ejemplos del captulo 10.

    Curso de un trimestre

    En un curso de un trimestre puede cubrirse el material siguiente:

    Captulo 2: todas las secciones. Captulo 3: secciones 3.1 a la 3.3. Captulo 4: secciones 4.1 a la 4.5 y la seccin 4.12. Captulo 5: secciones 5.1 a la 5.3 y la seccin 5.5. Captulo 6: todas las secciones. Captulo 7: secciones 7.1 a la 7.10 y la seccin 7.13. Captulo 8: secciones 8.1 a la 8.5.

    UN ENFOQUE MS TRADICIONAL

    En el material de los captulos 2 y 4 se expone el lgebra booleana, los circuitos lgicos combi-nacionales y las tcnicas bsicas de minimizacin. En el captulo 2 se ofrece la explicacin ini-

  • xii PREFACIO

    cial de estos temas empleando nicamente compuertas AND, OR, NOT, NAND y NOR. Luego,en el captulo 3 se abordan los detalles de la tecnologa de implementacin, antes de proceder con las tcnicas de sntesis y otros tipos de compuertas en el captulo 4. El material de este cap-tulo se aprecia mejor si los estudiantes entienden las razones tecnolgicas para la existencia delas compuertas NAND, NOR y XOR, y los diversos dispositivos lgicos programables.

    Un instructor que favorezca un enfoque ms tradicional puede cubrir los captulos 2 y 4 ensucesin. Para comprender el uso de las compuertas NAND, NOR y XOR slo se precisa que selas defi na funcionalmente.

    VHDL

    VHDL es un lenguaje complejo, y algunos instructores lo consideran demasiado difcil de com-prender para los estudiantes de primeros ciclos. Hemos tenido en cuenta este confl icto y he-mos procurado resolverlo. No es necesario explicar todo el VHDL. En el libro se presentansus constructores importantes, tiles para el diseo y la sntesis de circuitos lgicos. Se omitenmuchos otros constructores, como los que slo tienen signifi cado cuando el lenguaje se usa conpropsitos de simulacin. El material de VHDL se introduce gradualmente, y las caractersticasms avanzadas slo se presentan donde su empleo puede demostrarse en el diseo de circuitosrelevantes.

    En el libro se incluyen ms de 150 ejemplos de cdigo de VHDL, con los que se ilustracmo usar ese lenguaje para describir un amplio repertorio de circuitos lgicos, desde los queslo contienen unas cuantas compuertas hasta los que representan sistemas digitales como unprocesador simple.

    PROBLEMAS RESUELTOS

    En cada captulo se incluyen ejemplos de problemas resueltos, los cuales muestran cmo resol-ver los tpicos problemas de tarea en casa.

    PROBLEMAS DE TAREA

    El libro proporciona ms de 400 problemas de tarea; en la parte fi nal se ofrecen las respuestas aalgunos de ellos. Las soluciones de todos los problemas estn a disposicin de los instructoresen el Manual de soluciones que acompaa a la obra.

    LABORATORIO

    El libro puede usarse para un curso que no incluya ejercicios de laboratorio, en cuyo caso losestudiantes pueden adquirir til experiencia prctica al simular la operacin de sus circuitos di-seados empleando las herramientas CAD incluidas en el libro. Si hay un laboratorio disponible,entonces varios de los ejemplos de diseo presentados se adecuan bien para realizar experimen-tos. En la pgina en Internet de los autores estn disponibles experimentos adicionales.

  • xiiiPREFACIO

    AGRADECIMIENTOS

    Queremos expresar nuestro agradecimiento a las personas que nos ayudaron durante la prepa-racin del libro. Kelly Chan ayud con la preparacin tcnica del manuscrito. Dan Vranesic produjo una cantidad sustancial de grfi cos e imgenes. l y Deshanand Singh tambin ayuda-ron con la preparacin del manual de soluciones. Tom Czajkowski auxili en la comprobacin de las respuestas a algunos problemas. Los siguientes revisores hicieron crticas constructivas y realizaron numerosas sugerencias para mejorar el texto: William Barnes, New Jersey Institute of Technology; Thomas Bradicich, North Carolina State University; James Clark, McGill Uni-versity; Stephen DeWeerth, Georgia Institute of Technology; Clay Gloster, Jr., North Carolina State University (Raleigh); Carl Hamacher, Queens University; Vincent Heuring, University of Colorado; Yu Hen Hu, University of Wisconsin; Wei-Ming Lin, University of Texas (Austin); Wayne Loucks, University of Waterloo; Chris Myers, University of Utah; Vojin Oklobdzija, University of California (Davis); James Palmer, Rochester Institute of Technology; Gandhi Puv-vada, University of Southern California; Teodoro Robles, Milwaukee School of Engineering; Tatyana Roziner, Boston University; Rob Rutenbar, Carnegie Mellon University; Eric Schwartz, University of Florida; Wen-Tsong Shiue, Oregon State University; Charles Silio, Jr., University of Maryland; Scott Smith, University of Missouri (Rolla); Arun Somani, Iowa State University; Bernard Svihel, University of Texas (Arlington); y Zeljko Zilic, McGill University.

    Agradecemos a Altera Corporation el proporcionar el sistema Quartus II, en especial a ChrisBalough, Misha Burich, Joe Hanson, Mike Phipps y Tim Southgate. El apoyo del personal de McGraw-Hill fue ejemplar. Verdaderamente apreciamos la ayuda de Dawn Bercier, Melinda Bilecki, Kay Brimeyer, Michaela Graham, Betsy Jones, Kara Kudronowicz, Carlise Paulson, Eric Weber y Michelle Whitaker.

    Stephen Brown y Zvonko Vranesic

  • C a p t u l o 1CONCEPTOS DE DISEO 11.1 Hardware digital 2

    1.1.1 Chips estndar 41.1.2 Dispositivos lgicos

    programables 41.1.3 Chips diseados a la medida 5

    1.2 El proceso de diseo 61.3 Diseo de hardware digital 8

    1.3.1 Ciclo de diseo bsico 81.3.2 Estructura de una computadora 91.3.3 Diseo de una unidad de hardware

    digital 121.4 Diseo de circuitos lgicos en este

    libro 161.5 Teora y prctica 16

    Bibliografa 17

    C a p t u l o 2INTRODUCCIN A LOS CIRCUITOS LGICOS 19

    2.1 Variables y funciones 202.2 Inversin 232.3 Tablas de verdad 242.4 Compuertas lgicas y circuitos 25

    2.4.1 Anlisis de una red lgica 272.5 lgebra booleana 29

    2.5.1 Los diagramas de Venn 332.5.2 Notacin y terminologa 352.5.3 Precedencia de las operaciones 37

    2.6 La sntesis con compuertas AND, OR yNOT 372.6.1 Formas de productos de sumas y sumas

    de productos 392.7 Circuitos lgicos NAND y NOR 452.8 Ejemplos de diseo 50

    2.8.1 Control de luz de tres vas 502.8.2 Circuito multiplexor 51

    2.9 Introduccin a las herramientasCAD 542.9.1 Ingreso del diseo 542.9.2 Sntesis 562.9.3 Simulacin funcional 57

    2.9.4 Diseo fsico 57 2.9.5 Simulacin de tiempo 57 2.9.6 Confi guracin de chip 582.10 Introduccin a VHDL 58 2.10.1 Representacin de seales digitales en

    VHDL 60 2.10.2 Cmo escribir cdigo sencillo en VHDL 60 2.10.3 Cmo no escribir cdigo de VHDL 622.11 Comentarios fi nales 632.12 Ejemplos de problemas resueltos 64 Problemas 67 Bibliografa 72

    C a p t u l o 3TECNOLOGA DE IMPLEMENTACIN 733.1 Interruptores de transicin 753.2 Compuertas lgicas NMOS 783.3 Compuertas lgicas CMOS 81 3.3.1 Velocidad de los circuitos de compuerta

    lgica 873.4 Sistema de lgica negativa 873.5 Chips estndar 91 3.5.1 Chips estndar de la serie 7400 913.6 Dispositivos lgicos programables 94 3.6.1 Arreglo lgico programable (PLA) 94 3.6.2 Lgica de arreglo programable 97 3.6.3 Programacin de PLA y PAL 99 3.6.4 Dispositivos lgicos programables

    complejos (CPLD) 101 3.6.5 Arreglos de compuertas de campos

    programables 105 3.6.6 Uso de herramientas CAD para implementar

    circuitos en CPLD y FPGA 110 3.6.7 Aplicaciones de los CPLD y FPGA 1103.7 Chips diseados a la medida, celdas estndar

    y arreglos de compuertas 1103.8 Aspectos prcticos 114 3.8.1 Fabricacin y comportamiento de los

    MOSFET 114 3.8.2 MOSFET con resistencia de encendido

    (on-resistance) 117 3.8.3 Niveles de voltaje en compuertas lgicas 118 3.8.4 Margen de ruido 119 3.8.5 Operacin dinmica de las compuertas

    lgicas 121

    CONTENIDO

    xiv

  • xv

    3.8.6 Disipacin de potencia en las compuertaslgicas 124

    3.8.7 Paso de 1 y 0 mediante interruptores detransistor 126

    3.8.8 Factores de carga de entrada y de salidaen las compuertas lgicas 128

    3.9 Compuertas de transmisin 134 3.9.1 Compuertas OR exclusiva 135 3.9.2 Circuito multiplexor 1363.10 Detalles de implementacin para SPLD, CPLD

    y FPGA 136 3.10.1 Implementacin en FPGA 1423.11 Comentarios fi nales 1453.12 Ejemplos de problemas resueltos 145 Problemas 153 Bibliografa 162

    C a p t u l o 4IMPLEMENTACIN OPTIMIZADA DE FUNCIONES LGICAS 163

    4.1 Mapa de Karnaugh 1644.2 Estrategia de minimizacin 172 4.2.1 Terminologa 173 4.2.2 Procedimiento de minimizacin 1754.3 Minimizacin de formas de producto de

    sumas 1784.4 Funciones especifi cadas de manera

    incompleta 1804.5 Circuitos de salida mltiple 1824.6 Sntesis multinivel 185 4.6.1 Factorizacin 186 4.6.2 Descomposicin funcional 190 4.6.3 Circuitos NAND y NOR multinivel 1954.7 Anlisis de circuitos multinivel 1964.8 Representacin cbica 203 4.8.1 Cubos e hipercubos 2034.9 Un mtodo tabular para minimizacin 207 4.9.1 Generacin de implicantes primos 208 4.9.2 Determinacin de una cobertura

    mnima 209 4.9.3 Resumen del mtodo tabular 2154.10 Una tcnica cbica de minimizacin 216 4.10.1 Determinacin de los implicantes primos

    esenciales 218 4.10.2 Procedimiento completo para hallar una

    cobertura mnima 2204.11 Consideraciones prcticas 2234.12 Ejemplos de circuitos sintetizados a partir de

    cdigo de VHDL 224

    4.13 Comentarios fi nales 2284.14 Ejemplos de problemas resueltos 229

    Problemas 237Bibliografa 242

    C a p t u l o 5REPRESENTACIN DE NMEROS Y CIRCUITOS ARITMTICOS 245

    5.1 Representacin numrica posicional 2465.1.1 Enteros sin signo 2465.1.2 Conversin entre sistemas decimal

    y binario 2475.1.3 Representaciones octal y hexadecimal

    2485.2 Suma de nmeros sin signo 250

    5.2.1 Sumador completo descompuesto 2545.2.2 Sumador con acarreo en cascada 2545.2.3 Ejemplo de diseo 255

    5.3 Nmeros con signo 2565.3.1 Nmeros negativos 2565.3.2 Suma y resta 2605.3.3 Unidad sumadora y restadora 2645.3.4 Esquema de complemento a la base

    (raz) 2655.3.5 Desbordamiento aritmtico 2695.3.6 Problemas de rendimiento 270

    5.4 Sumadores veloces 2715.4.1 Sumador con acarreo de adelanto

    2715.5 Diseo de circuitos aritmticos con el uso

    de herramientas CAD 2785.5.1 Diseo de circuitos aritmticos con el uso

    de captura esquemtica 2785.5.2 Diseo de circuitos aritmticos con

    VHDL 2815.5.3 Representacin de nmeros en cdigo

    de VHDL 2845.5.4 Instrucciones de asignacin aritmtica

    2855.6 Multiplicacin 289

    5.6.1 Arreglo multiplicador para nmerossin signo 291

    5.6.2 Multiplicacin de nmeroscon signo 292

    5.7 Otras representaciones numricas 2935.7.1 Nmeros con punto fi jo 2935.7.2 Nmeros con punto fl otante 2955.7.3 Representacin decimal codifi cado

    en binario 297

    CONTENIDO

  • xvi

    5.8 Cdigo de caracteres ASCII 3015.9 Ejemplos de problemas resueltos 304

    Problemas 310Bibliografa 314

    C a p t u l o 6BLOQUES CONSTRUCTORES DE CIRCUITOS COMBINACIONALES 315

    6.1 Multiplexores 3166.1.1 Sntesis de funciones lgicas mediante

    multiplexores 3216.1.2 Sntesis de multiplexores mediante la

    expansin de Shannon 3246.2 Decodifi cadores 329

    6.2.1 Demultiplexores 3336.3 Codifi cadores 335

    6.3.1 Codifi cadores binarios 3356.3.2 Codifi cadores de prioridad 336

    6.4 Convertidores de cdigo 3376.5 Circuitos de comparacin aritmtica 3386.6 VHDL para circuitos combinacionales 339

    6.6.1 Instrucciones de asignacin 3396.6.2 Asignacin de seal seleccionada 3406.6.3 Asignacin de seal condicional 3406.6.4 Instrucciones de generacin 3486.6.5 Instrucciones de asignacin concurrente

    y secuencial 3506.6.6 Instruccin PROCESS 3506.6.7 Instruccin CASE 3566.6.8 Operadores de VHDL 359

    6.7 Comentarios fi nales 3636.8 Ejemplos de problemas resueltos 364

    Problemas 372Bibliografa 377

    C a p t u l o 7FLIP-FLOPS, REGISTROS,CONTADORES Y UNPROCESADOR SIMPLE 379

    7.1 El latch bsico 3817.2 Latch SR asncrono 383

    7.2.1 Latch SR asncrono con compuertasNAND 385

    7.3 Latch D asncrono 3867.3.1 Efectos de los retrasos de propagacin

    388

    7.4 Flip-fl ops D maestro-esclavo y disparado por fl anco 389

    7.4.1 Flip-fl op D maestro-esclavo 389 7.4.2 Flip-fl op D disparado por fl anco 389 7.4.3 Flip-fl ops D con Clear y Preset 3937.5 Flip-fl op T 394 7.5.1 Flip-fl ops confi gurables 3977.6 Flip-fl op JK 3977.7 Resumen de terminologa 3987.8 Registros 399 7.8.1 Registro de corrimiento 399 7.8.2 Registro de corrimiento con acceso

    en paralelo 4007.9 Contadores 400 7.9.1 Contadores asncronos 401 7.9.2 Contadores sncronos 404 7.9.3 Contadores con carga en paralelo 4087.10 Reset sncrono 4087.11 Otros tipos de contadores 412 7.11.1 Contador BCD 412 7.11.2 Contador en anillo 413 7.11.3 Contador Johnson 415 7.11.4 Comentarios sobre el diseo

    del contador 4157.12 Uso de elementos de almacenamiento con

    herramientas CAD 416 7.12.1 Inclusin de elementos de almacenamiento

    en esquemas 416 7.12.2 Uso de constructores de VHDL para

    elementos de almacenamiento 4177.13 Uso de registros y contadores con herramientas

    CAD 423 7.13.1 Inclusin de registros y contadores en

    esquemas 423 7.13.2 Registros y contadores en cdigo de

    VHDL 426 7.13.3 Uso de instrucciones secuenciales de

    VHDL para registros y contadores 4277.14 Ejemplos de diseo 435 7.14.1 Estructura de bus 435 7.14.2 Procesador simple 449 7.14.3 Contador de tiempo de reaccin 460 7.14.4 Cdigo de nivel de transferencia de

    registros (RTL) 4667.15 Comentarios fi nales 4667.16 Ejemplos de problemas resueltos 467 Problemas 471 Bibliografa 477

    CONTENIDO

  • xvii

    C a p t u l o 8CIRCUITOS SNCRONOS SECUENCIALES 479

    8.1 Pasos bsicos de diseo 481 8.1.1 Diagrama de estado 481 8.1.2 Tabla de estado 483 8.1.3 Asignacin de estados 483

    8.1.4 Eleccin de fl ip-fl ops y derivacin de las expresiones de estado siguiente y desalida 485

    8.1.5 Diagrama de tiempo 486 8.1.6 Resumen de los pasos de diseo 4888.2 El problema de la asignacin de estados 491 8.2.1 Codifi cacin de 1 activo 4948.3 Modelo de estado tipo Mealy 4968.4 Diseo de mquinas de estado fi nito con

    herramientas CAD 501 8.4.1 Cdigo de VHDL para FSM tipo Moore 502 8.4.2 Sntesis del cdigo de VHDL 504 8.4.3 Simulacin y prueba del circuito 506 8.4.4 Un estilo alterno de cdigo de VHDL 507 8.4.5 Resumen de los pasos de diseo cuando se

    usan herramientas CAD 507 8.4.6 Especifi cacin de la asignacin de estados

    en el cdigo de VHDL 509 8.4.7 Especifi cacin de FSM tipo Mealy con

    VHDL 5118.5 Ejemplo de sumador serial 513 8.5.1 FSM tipo Mealy para sumador serial 514 8.5.2 FSM tipo Moore para el sumador serial 516 8.5.3 Cdigo de VHDL para el sumador serial 5188.6 Minimizacin de estados 522 8.6.1 Procedimiento de minimizacin por

    particin 524 8.6.2 FSM especifi cadas de manera incompleta

    5318.7 Diseo de un contador utilizando el enfoque del

    circuito secuencial 533 8.7.1 Diagrama de estado y tabla de estado para

    un contador mdulo 8 533 8.7.2 Asignacin de estados 534 8.7.3 Implementacin utilizando fl ip-fl ops D

    535 8.7.4 Implementacin utilizando fl ip-fl ops JK

    536 8.7.5 Ejemplo. Un contador diferente 5418.8 FSM como un circuito rbitro 543 8.8.1 Implementacin del circuito rbitro 547

    8.8.2 Minimizacin de los retrasos de salida parauna FSM 550

    8.8.3 Resumen 5518.9 Anlisis de los circuitos secuenciales

    sncronos 5518.10 Cartas de la mquina algortmica de estados

    (cartas ASM) 5558.11 Modelo formal para circuitos secuenciales 5598.12 Comentarios fi nales 5608.13 Ejemplos de problemas resueltos 561

    Problemas 570Bibliografa 574

    C a p t u l o 9CIRCUITOS SECUENCIALES ASNCRONOS 577

    9.1 Comportamiento asncrono 5789.2 Anlisis de los circuitos asncronos 5829.3 Sntesis de los circuitos asncronos 5909.4 Reduccin de estados 6039.5 Asignacin de estados 618

    9.5.1 Diagrama de transicin 6219.5.2 Cmo aprovechar las combinaciones de

    estado siguiente sin especifi car 6249.5.3 Asignacin de estados usando variables

    de estado adicionales 6289.5.4 Asignacin de estados con codifi cacin de

    1 activo 6339.6 Riesgos 634

    9.6.1 Riesgos estticos 6359.6.2 Riesgos dinmicos 6399.6.3 Relevancia de los riesgos 640

    9.7 Un ejemplo de diseo completo 6429.7.1 El controlador de la mquina

    expendedora 6429.8 Comentarios fi nales 6479.9 Ejemplos de problemas resueltos 649

    Problemas 657Bibliografa 661

    C a p t u l o 10DISEO DE SISTEMAS DIGITALES 663

    10.1 Circuitos de bloque de construccin 66410.1.1 Flip-fl ops y registros con entradas enable 664

    CONTENIDO

  • xviii

    10.1.2 Registros de corrimiento con entradasenable 666

    10.1.3 Memoria esttica de acceso aleatorio(SRAM) 668

    10.1.4 Bloques SRAM en PLD 67310.2 Ejemplos de diseo 673

    10.2.1 Un circuito de conteo de bits 67310.2.2 Informacin de sincronizacin esbozada

    en la carta ASM 67510.2.3 Multiplicador de corrimiento y suma 67710.2.4 Divisor 68610.2.5 Media aritmtica 69610.2.6 Operacin de ordenacin 702

    10.3 Sincronizacin del reloj 71310.3.1 Desviacin del reloj 71310.3.2 Parmetros de sincronizacin de los

    fl ip-fl ops 71410.3.3 Entradas asncronas a los fl ip-fl ops 71710.3.4 Eliminacin de rebotes en interruptores 718

    10.4 Comentarios fi nales 718Problemas 720Bibliografa 724

    C a p t u l o 11PRUEBA DE LOS CIRCUITOS LGICOS 725

    11.1 Modelo de fallas 72611.1.1 Modelo de atascamiento (stuck-at) 72611.1.2 Fallas individuales y mltiples 72711.1.3 Circuitos CMOS 727

    11.2 Complejidad de un conjunto de pruebas 72711.3 Sensibilizacin de trayectorias 729

    11.3.1 Deteccin de una falla especfi ca 73111.4 Circuitos con la estructura de rbol 73311.5 Pruebas aleatorias 73411.6 Pruebas de circuitos secuenciales 737

    11.6.1 Diseo para la aplicacin de pruebas 73711.7 Prueba automatizada integrada 741

    11.7.1 Observador de bloques lgicos integrado745

    11.7.2 Anlisis de fi rmas 74711.7.3 Boundary Scan 748

    11.8 Tarjetas de circuitos impresos 74811.8.1 Pruebas de las PCB 75011.8.2 Instrumentacin 751

    11.9 Comentarios fi nales 752Problemas 752Bibliografa 755

    C a p t u l o 12HERRAMIENTAS DE DISEO ASISTIDOPOR COMPUTADORA 75712.1 Sntesis 758 12.1.1 Generacin de la lista de redes 758 12.1.2 Optimacin de compuertas 758 12.1.3 Mapeo de tecnologa 76012.2 Diseo fsico 764 12.2.1 Colocacin 767 12.2.2 Enrutamiento 768 12.2.3 Anlisis de tiempo esttico 76912.3 Comentarios fi nales 771 Bibliografa 771

    A p n d i c e AAREFERENCIA DE VHDL 773A.1 Documentacin en el cdigo de VHDL 774A.2 Objetos de datos 774 A.2.1 Nombres de objetos de datos 774 A.2.2 Valores y nmeros del objeto

    de datos 774 A.2.3 Objetos de datos SIGNAL 775 A.2.4 Tipos BIT y BIT_VECTOR 775 A.2.5 Tipos STD_LOGIC y

    STD_LOGIC_VECTOR 776 A.2.6 Tipos STD_ULOGIC 776 A.2.7 Tipos SIGNED y UNSIGNED 777 A.2.8 Tipo INTEGER 778 A.2.9 Tipo BOOLEAN 778 A.2.10 Tipo ENUMERATION 778 A.2.11 Objetos de datos CONSTANT 779 A.2.12 Objetos de datos VARIABLE 779 A.2.13 Conversin de tipos 779 A.2.14 Arreglos 780A.3 Operadores 781A.4 Entidad de diseo de VHDL 781 A.4.1 Declaracin ENTITY 782 A.4.2 Arquitectura 782A.5 Paquete 784A.6 Uso de subcircuitos 785 A.6.1 Declaracin de un componente

    en un paquete 787A.7 Instrucciones de asignacin concurrente 788 A.7.1 Asignacin de seal simple 789 A.7.2 Asignacin de los valores de seal

    por medio de OTHERS 790

    CONTENIDO

  • xix

    A.7.3 Asignacin de seal seleccionada 791 A.7.4 Asignacin de seal condicional 792 A.7.5 Instruccin GENERATE 793A.8 Defi nicin de una entidad con GENERIC 793A.9 Instrucciones de asignacin secuenciales 794 A.9.1 Instruccin PROCESS 794 A.9.2 Instruccin IF 796 A.9.3 Instruccin CASE 796 A.9.4 Instrucciones LOOP 797 A.9.5 Uso de un proceso para un circuito

    combinacional 797 A.9.6 Orden de las instrucciones 799 A.9.7 Uso de una variable en un proceso 800A.10 Circuitos secuenciales 805 A.10.1 Un latch D asncrono 805 A.10.2 Flip-fl op D 806 A.10.3 Uso de una instruccin WAIT UNTIL 807 A.10.4 Un fl ip-fl op con reset asncrono 808t A.10.5 Reset sncrono 808t A.10.6 Registros 808 A.10.7 Registros de corrimiento 811 A.10.8 Contadores 813 A.10.9 Uso de subcircuitos con parmetros

    GENERIC 813 A.10.10 Una mquina de estado fi nito tipo

    Moore 816 A.10.11 Una mquina de estado fi nito tipo

    Mealy 818A.11 Errores comunes en el cdigo de VHDL 821A.12 Comentarios fi nales 824 Bibliografa 825

    A p n d i c e BATUTORIAL 1 USO DEL SOFTWARE CAD QUARTUS II 827B.1 Introduccin 827 B.1.1 Primeros pasos 828B.2 Cmo empezar un proyecto nuevo 830B.3 Ingreso del diseo utilizando la captura

    esquemtica 832 B.3.1 Uso del editor de bloques 832 B.3.2 La sntesis de un circuito a partir

    del esquema 840 B.3.3 Simulacin del circuito diseado 842B.4 Ingreso del diseo con VHDL 846 B.4.1 Creacin de otro proyecto 848 B.4.2 Uso del editor de texto 848 B.4.3 Sntesis de un circuito a partir del cdigo

    de VHDL 850 B.4.4 Ejecucin de la simulacin funcional 850

    B.4.5 Cmo usar Quartus II para corregir errorescdigo de VHDL 850

    B.5 Combinacin de mtodos de ingreso del diseo 851B.5.1 Uso de un ingreso esquemtico en nivel

    alto 851B.5.2 Uso de VHDL en el nivel alto 854

    B.6 Ventanas de Quartus II 856B.7 Comentarios fi nales 858

    A p n d i c e CATUTORIAL 2 IMPLEMENTACIN DE CIRCUITOS EN DISPOSITIVOS DE ALTERA 859

    C.1 Implementacin de un circuito en un CPLDMAX 7000 859C.1.1 Seleccin de un chip 860C.1.2 Compilacin del proyecto 861C.1.3 Realizacin de la simulacin

    de tiempo 862C.1.4 Uso del editor de pines (Floorplan Editor) 863rr

    C.2 Implementacin de un circuito en un FPGACyclone 864

    C.3 Implementacin de un sumador con Quartus II 866C.3.1 El cdigo del sumador de acarreo

    en cascada 867C.3.2 Simulacin del circuito 868C.3.3 Simulacin de tiempo 871C.3.4 Implementacin en un chip CPLD 874

    C.4 Uso de un mdulo LPM 876C.5 Diseo de una mquina de estado fi nito 881

    C.5.1 Implementacin en un CPLD 882C.5.2 Implementacin en un FPGA 886

    C.6 Comentarios fi nales 887

    A p n d i c e DATUTORIAL 3 IMPLEMENTACIN FSICA EN UN PLD 889

    D.1 Asignaciones de pines 889D.1.1 Anlisis de las asignaciones de pines

    con el editor de pines 892D.1.2 Recompilacin del proyecto con

    asignaciones de pines 892D.1.3 Cmo cambiar las asignaciones de pines

    con Floorplan Editor 894D.2 Descarga de un circuito en un dispositivo 895D.3 Comentarios fi nales 897

    CONTENIDO

  • xx

    A p n d i c e EADISPOSITIVOS COMERCIALES 899

    E.1 PLD simples 899E.1.1 El dispositivo PAL 22V10 899

    E.2 PLD complejos 901E.2.1 MAX 7000 de Altera 902

    E.3 Arreglos de compuerta programablespor campo 904E.3.1 FLEX 10K de Altera 904E.3.2 XC4000 de Xilinx 907E.3.3 APEX 20K de Altera 909E.3.4 Stratix de Altera 909

    E.3.5 Cyclone de Altera 911 E.3.6 Stratix II de Altera 911 E.3.7 Virtex de Xilinx 912 E.3.8 Virtex-II y Virtex-II Pro de Xilinx 912 E.3.9 Spartan-3 de Xilinx 913E.4 Lgica de transistor a transistor 914 E.4.1 Familias de circuitos TTL 914 Bibliografa 916

    RESPUESTAS 917

    NDICE 933

    CONTENIDO

  • 11.1 HARDWARE DIGITAL

    captulo

    1CONCEPTOS DE DISEO

    OBJETIVOS DEL CAPTULO

    En este captulo se estudian los temas siguientes:

    Los componentes de hardware digital Panorama de la tecnologa de los circuitos integrados El proceso de diseo del hardware digital

    1

  • 2 CAPTULO 1 CONCEPTOS DE DISEO

    Este libro trata acerca de circuitos lgicos a partir de los que se construyen las computadoras. La comprensincabal de este tema es indispensable para los ingenieros elctricos y en computacin de la actualidad. Los circuitoslgicos son los componentes principales de las computadoras, adems de que se emplean en muchas otras apli-caciones. Se encuentran en productos de uso comn, como relojes digitales, diversos aparatos electrodomsticos,reproductores de discos compactos (CD) y juegos electrnicos, as como en sistemas grandes, por ejemplo, losequipos para redes de telefona y televisin.

    A lo largo de la obra se presentan al lector los diversos temas inherentes al diseo de los circuitos lgicos.Se explican las ideas clave con ejemplos simples y se muestra cmo derivar circuitos complejos a partir de loselementales. La teora clsica aplicada en el diseo de los circuitos lgicos se cubre con gran profundidad a fi nde ofrecer al lector una comprensin intuitiva de la naturaleza de tales circuitos. Por aadidura, en cada captulose ilustra la forma actual de disear circuitos lgicos por medio de modernas herramientas de software de diseoasistido por computadora (CAD, computer aided design). El mtodo CAD adoptado en la obra se basa en VHDL,el lenguaje de diseo estndar en la industria. En el captulo 2 se explica el diseo con VHDL, y su empleo juntocon las herramientas CAD es parte integral de cada captulo.

    Los circuitos lgicos se implementan electrnicamente mediante transistores en un chip de circuito integrado.La tecnologa moderna permite fabricar chips que contienen decenas de millones de transistores, como en el casode los procesadores de computadora. Los bloques bsicos de tales circuitos son fciles de entender, pero no haynada simple en torno a un circuito que contiene decenas de millones de transistores. La complejidad que conllevael gran tamao de los circuitos lgicos puede manejarse bien slo si se aplican tcnicas de diseo sumamente or-ganizadas. En el presente captulo se estudian estas tcnicas, pero primero se describe de modo breve la tecnologade hardware utilizada para construir circuitos lgicos.

    Los circuitos lgicos se usan para construir hardware de computadora, as como otros tipos de pro-ductos, que se clasifi can en trminos generales como hardware digital. La razn del nombre digitalser clara ms adelante en el libro: procede de la forma en la que se representa la informacin enlas computadoras: como seales electrnicas que corresponden a dgitos de informacin.

    La tecnologa empleada para construir hardware digital evolucion en forma sorprendentedurante las ltimas cuatro dcadas. Hasta el decenio de 1960 los circuitos lgicos se construancon componentes voluminosos, como transistores y resistores que venan como partes indivi-duales. El advenimiento de los circuitos integrados hizo posible colocar varios transistores y, por tanto, un circuito entero en un solo chip. Aunque al principio estos circuitos slo tenan unoscuantos transistores, conforme la tecnologa mejor se volvieron ms grandes. Los chips de cir-cuitos integrados se fabrican sobre una oblea de silicio como la que se muestra en la fi gura 1.1.La oblea se corta para producir los chips individuales, que luego se colocan en el interior de untipo especial de paquete de chip. Hacia 1970 fue posible implementar todos los circuitos necesa-rios para elaborar un microprocesador en un solo chip. Aunque los primeros microprocesadorestenan modestas capacidades computacionales para los estndares de la actualidad, abrieron lapuerta a la revolucin del procesamiento al proporcionar los medios para la construccin decomputadoras personales asequibles a la gente comn. Hace aproximadamente 30 aos Gor-don Moore, gerente de Intel Corporation, observ que la tecnologa de los circuitos integradosprogresaba a un ritmo sorprendente y cada 1.5 a 2 aos duplicaba el nmero de transistores quepodan colocarse en un chip. Este fenmeno, conocido de manera informal como ley de Moore,an se presenta hoy en da. Por ende, si a principios del decenio de 1990 los microprocesadores

    1.1 HARDWARE DIGITAL

  • 31.1 HARDWARE DIGITAL

    podan fabricarse con unos cuantos millones de transistores, hacia fi nales de ese decenio fue po-sible manufacturar chips que contenan ms de 10 millones de transistores. Los chips actuales pueden tener algunos cientos de millones de transistores.

    Cabe esperar que la ley de Moore se cumpla durante por lo menos los 10 aos siguientes. La SIA (Semiconductor Industry Association), un consorcio de fabricantes de circuitos integrados, publica una estimacin de cmo espera que evolucione la tecnologa. Conocida como la Gua SIA [1], en ella se predice el tamao mnimo de un transistor que puede fabricarse en un chip decircuito integrado. El tamao de un transistor se mide con un parmetro denominado longitud de compuerta, que se analiza en el captulo 3. La tabla 1.1 muestra un ejemplo de la Gua SIA. En el 2004, la mnima longitud de compuerta posible que poda fabricarse con confi abilidad era de 90 nm. En la primera fi la de la tabla se indica que para el 2012 se espera que la longitud de

    Figura 1.1 Oblea de silicio (cortesa de Altera Corp.).

    Tabla 1.1 Muestra de la Gua SIA.

    Ao

    1999 2001 2004 2006 2009 2012

    Longitud de 0.14 m 0.12 m 90 nm 65 nm 50 nm 35 nmcompuerta de transistor

    Transistores 14 millones 16 millones 24 millones 40 millones 64 millones 100 millones

    por cm2

    Tamao de chip 800 mm2 850 mm2 900 mm2 1 000 mm2 1 100 mm2 1 300 mm2

  • 4 CAPTULO 1 CONCEPTOS DE DISEO

    compuerta mnima se reduzca de manera constante hasta alrededor de 35 nm. El tamao de untransistor determina cuntos de ellos pueden colocarse en cierta rea del chip; en la actualidad esa cifra alcanza un mximo cercano a 30 millones de transistores por centmetro cuadrado. Seestima que este nmero alcanzar los 100 millones para el 2012. Se considera que el tamao delchip ms grande ser de aproximadamente 1 300 mm2 para ese entonces; por ende, podra ha-ber chips hasta con mil trescientos millones de transistores! No hay duda de que esta tecnologatendr un gran impacto en todos los aspectos de la vida de las personas.

    El diseador de hardware digital podra enfrentar el diseo de circuitos lgicos que puedanimplementarse en un solo chip o, ms probablemente, el diseo de circuitos que incluyan varioschips colocados sobre una tarjeta de circuito impreso (PCB, printed circuit board)dd . Con frecuen-cia, parte de los circuitos lgicos puede hallarse en chips que son fcilmente adquiribles. Estasituacin simplifi ca la tarea de diseo y acorta el tiempo necesario para desarrollar el productofi nal. Antes de explicar el proceso de diseo con ms detalle es preciso presentar los diferentestipos de chips de circuitos integrados que pueden usarse.

    Una gran variedad de chips cumple diversas funciones tiles en el diseo de hardware di-gital. Van desde los ms simples, con poca funcionalidad, hasta los extremadamente complejos.Por ejemplo, un producto de hardware digital puede requerir un microprocesador para realizar ciertas operaciones aritmticas, chips de memoria que provean capacidad de almacenamiento ychips de conexin que permitan enlazar sin problema los dispositivos de entrada y salida. Tales chipsestn disponibles en el mercado con diversos proveedores.

    Para el grueso de los productos de hardware digital tambin es necesario disear y construir algunos circuitos lgicos desde el principio. Para implementar estos circuitos es posible usar trestipos principales de chips: los chips estndar, los dispositivos lgicos programables y los chipsa la medida. Todos ellos se analizan a continuacin.

    1.1.1 CHIPS ESTNDAR

    Ya hay muchos chips que forman algunos circuitos lgicos usados comnmente; nos referiremosa ellos como chips estndar, ya que cumplen un estndar con el que se est de acuerdo en trmi-nos de funcionalidad y confi guracin fsica. Cada chip estndar contiene una pequea cantidad de circuitos (casi siempre menos de 100 transistores) y efecta una funcin simple. Para cons-truir un circuito lgico el diseador elige los chips que llevan a cabo las funciones necesarias yluego defi ne cmo deben interconectarse para formar un circuito lgico ms grande.

    Los chips estndar fueron populares para construir circuitos lgicos hasta principios de ladcada de 1980. Sin embargo, a medida que la tecnologa de circuitos integrados mejor, sevolvi inefi ciente usar espacio valioso en las PCB para chips con menor funcionalidad. Otroinconveniente de los chips estndar es que su funcionalidad es fi ja y no puede cambiarse.

    1.1.2 DISPOSITIVOS LGICOS PROGRAMABLES

    En contraste con los chips estndar, cuyas funciones son fi jas, es posible construir chips concircuitos que el usuario puede confi gurar para usarlos en una amplia variedad de circuitos l-gicos. Estos chips tienen una estructura muy general e incluyen una serie de interruptores pro-gramables que permiten confi gurar sus circuitos internos en muchas formas. El diseador puede

  • 51.1 HARDWARE DIGITAL

    implementar cualesquiera funciones que necesite para una aplicacin particular eligiendo la con-fi guracin apropiada de los interruptores. El usuario fi nal programa los interruptores, en lugar de que se confi guren cuando se fabrica el chip. Este tipo de chips se conoce como dispositivos lgicos programables (PLD, programmable logic devices) y se estudian en el captulo 3.

    La mayor parte de los PLD puede programarse en repetidas ocasiones, lo que constituye una ventaja, pues un diseador que desarrolle el prototipo de un producto puede programar un PLD para cumplir cierta funcin y, ms tarde, cuando el hardware prototipo se ponga a prueba, efec-tuar correcciones mediante la reprogramacin del PLD. La reprogramacin puede ser necesaria, por ejemplo, si el diseo de una funcin no est muy apegado a lo que se quera o si se precisanfunciones nuevas que no se consideraron en el diseo original.

    Los PLD estn disponibles en diversos tamaos. Sirven para formar circuitos lgicos mu-cho ms grandes de lo que un chip estndar puede realizar. Gracias a su tamao y a que pueden ajustarse para satisfacer los requisitos de una aplicacin especfi ca, se usan mucho en la actuali-dad. Uno de los tipos de PLD ms modernos se conoce como arreglo de compuertas de campos programables (FPGA, fi eld-programmable gate array). Ahora existen FPGA que contienen ms de 500 millones de transistores [2, 3]. En la fi gura 1.2 se muestra la fotografa de un chip FPGA, el cual consta de un gran nmero de pequeos elementos de circuito lgico que pueden conec-tarse en conjunto mediante los interruptores programables. Los elementos del circuito lgico se ordenan en una estructura bidimensional regular.

    1.1.3 CHIPS DISEADOS A LA MEDIDA

    Los PLD estn disponibles como componentes comerciales que pueden adquirirse con diferen-tes proveedores. Como son programables, se usan para implementar la mayora de los circuitoslgicos que se encuentran en el hardware digital. Sin embargo, tienen el inconveniente de quelos interruptores programables ocupan una buena parte del rea del chip y limitan la rapidez deoperacin de los circuitos implementados. Por ende, en algunos casos los PLD no satisfacen losobjetivos de desempeo o costo deseados. En tales situaciones es posible disear un chip desde

    Figura 1.2 Chip con arreglo de compuerta de campos progra-mables (cortesa de Altera Corp.).

  • 6 CAPTULO 1 CONCEPTOS DE DISEO

    cero; primero se disean los circuitos lgicos que deben incluirse en el chip y luego se eligeuna tecnologa apropiada para implementarlo. Por ltimo, el chip lo fabrica una compaa quetiene las instalaciones para su elaboracin. Este enfoque se conoce como diseo a la medida ocasi a la medida y tales chips se denominan chips a la medida o casi a la medida. La intencines que esos chips se utilicen en aplicaciones especfi cas, por lo que a veces reciben el nombrede circuitos integrados especfi cos para una aplicacin (ASIC, application-specifi c integrated circuits).

    La ventaja principal de un chip a la medida es que es posible optimar su diseo para que cumpla una tarea concreta, lo que suele desembocar en un mejor desempeo. Puede incluirseuna cantidad ms grande de circuitos lgicos en un chip a la medida de lo que sera posible enotros tipos de chips. El costo de producir tales chips es elevado, pero si se utilizan en un productoque se venda en grandes cantidades, entonces el costo por chip, amortizado sobre el nmero totalde chips fabricados, tal vez sea menor que el costo total de los chips comerciales que se necesi-taran para implementar la misma funcin. Ms an, si puede emplearse un solo chip en vez de muchos de ellos para lograr la misma meta, entonces se requiere un rea menor en una PCB que albergue los chips en el producto fi nal. Ello resulta en una ulterior reduccin del costo.

    Una desventaja del enfoque del diseo a la medida es que la fabricacin de un chip sueleconsumir una cantidad considerable de tiempo, del orden de meses. En contraste, si en su lugar es posible usar un PLD, entonces el usuario fi nal puede programar los chips y no hay demorasen la fabricacin.

    1.2 EL PROCESO DE DISEO

    La disponibilidad de herramientas basadas en computadoras infl uy enormemente en el procesode diseo en numerosos entornos. Por ejemplo, el enfoque global del diseo de un automvil es similar al de un mueble o una computadora. Hay que seguir ciertos pasos en el ciclo de desarro-llo si el producto fi nal ha de satisfacer los objetivos establecidos. A continuacin se presenta unciclo de desarrollo tpico en los trminos ms generales; luego nos centraremos en los aspectosparticulares propios del diseo de circuitos lgicos.

    El diagrama de fl ujo de la fi gura 1.3 bosqueja un proceso de desarrollo tpico. Supngase que se trata de desarrollar un producto que satisfaga ciertas expectativas. Los requisitos ms obvios son que el producto tiene que funcionar de manera adecuada, ha de satisfacer un nivel de desempeo esperado y su costo no debe exceder cierto lmite.

    El proceso empieza con la defi nicin de las especifi caciones del producto. Se identifi can sus caractersticas esenciales y se establece un mtodo aceptable para evaluarlas una vez im-plementadas en el producto fi nal. Las especifi caciones han de ser lo sufi cientemente concretaspara garantizar que el producto desarrollado satisfar las expectativas generales, pero no inne-cesariamente restrictivas (es decir, no deben impedir opciones de diseo que puedan conducir aventajas imprevistas).

    A partir de un conjunto completo de especifi caciones es necesario defi nir la estructura ge-neral de un diseo inicial del producto. Este paso es difcil de automatizar. Suele realizarlo un diseador humano porque no existe una estrategia obvia para desarrollar la estructura global de un producto: se requiere considerable experiencia e intuicin en el diseo.

  • 7L

    Producto solicitado

    Definicin de especificaciones

    Diseo inicial

    Simulacin

    Diseo correcto?

    Rediseo

    Implementacin del prototipo

    Pruebas

    Satisface las especificaciones?

    Producto terminado

    Errores menores?

    Realizacin de correcciones

    No

    S

    No

    S

    S

    No

    Figura 1.3 El proceso de desarrollo.

    1.2 LLEL PROCESO DE DISEO

  • 8 CAPTULO 1 CONCEPTOS DE DISEO

    Despus de establecer la estructura general, se usan herramientas CAD para afi nar los de-talles. Hay muchos tipos de herramientas CAD, que van desde las que ayudan con el diseode las partes individuales del sistema hasta las que permiten representar en una computadorala estructura global del producto completo. Una vez concluido el diseo inicial los resultadosse confrontan con las especifi caciones originales. Tradicionalmente, antes de la llegada de lasherramientas CAD, este paso implicaba la construccin de un modelo fsico del producto di-seado, que por lo general inclua slo las partes principales. Hoy en da rara vez es necesariohacer eso. Las herramientas CAD permiten a los diseadores simular el comportamiento deproductos increblemente complejos y tales simulaciones se usan para determinar si el diseoobtenido satisface las especifi caciones requeridas. Si se encuentran errores, entonces se realizanlos cambios adecuados y se repite la verifi cacin del nuevo diseo mediante simulacin. Aunquealgunos errores de diseo pueden escapar de la deteccin mediante la simulacin, casi todos losproblemas se descubren de esta forma, salvo los ms sutiles.

    Cuando la simulacin indica que el diseo es correcto se construye un prototipo fsico com-pleto del producto. El prototipo se pone a prueba de manera rigurosa para comprobar su confor-midad con las especifi caciones. Cualesquiera errores revelados en las pruebas han de corregirse.Los errores pueden ser menores y con frecuencia es posible eliminarlos con pequeas enmiendasdirectas en el prototipo del producto. En caso de grandes errores es preciso redisear el productoy repetir los pasos antes explicados. Cuando el prototipo pasa todas las pruebas, el producto sejuzga bien diseado y puede irse a produccin.

    1.3 DISEO DE HARDWARE DIGITAL

    La explicacin previa del proceso de desarrollo es relevante en trminos generales. Los pasosesbozados en la fi gura 1.3 se aplican por completo en el desarrollo de hardware digital. Antesde analizar toda la secuencia de pasos en este entorno de desarrollo hay que hacer hincapi en lanaturaleza iterativa del proceso de diseo.

    1.3.1 CICLO DE DISEO BSICO

    Cualquier proceso de diseo comprende una secuencia bsica de tareas (fi gura 1.4) que se efec-tan en varias situaciones. Si se supone que se tiene un concepto primario acerca de lo que hayque lograr en el proceso de diseo, el primer paso consiste en generar un diseo inicial. Este pasorequiere mucho esfuerzo manual porque el grueso de los diseos tiene ciertas metas especfi casque slo se alcanzan por medio del conocimiento, las habilidades y la intuicin del diseador. Elsiguiente paso es la simulacin del diseo a mano. Se dispone de excelentes herramientas CADpara auxiliar en esta etapa. Para que la simulacin tenga xito es preciso tener adecuadas condi-ciones de entrada que puedan aplicarse al diseo que se simula y ms tarde al producto fi nal quese someter a pruebas. Al aplicar estas condiciones de entrada el simulador intenta comprobar que el producto diseado se desempear como se requiere segn las especifi caciones del pro-ducto original. Si la simulacin revela algunos errores hay que cambiar el diseo a fi n de supe-rarlos. La versin rediseada se simula de nuevo para determinar si los errores desaparecieron.Este ciclo se repite hasta que la simulacin indica un buen diseo. Un diseador prudente dedicaesfuerzos considerables a remediar los errores durante la simulacin porque stos suelen ser

  • 9mucho ms difciles de corregir si se descubren tarde en el proceso de diseo. Aun as, algunosde ellos no se detectan durante la simulacin, por lo que hay que enfrentarlos en etapas posterio-res del ciclo de desarrollo.

    1.3.2 ESTRUCTURA DE UNA COMPUTADORA

    Para entender la funcin de los circuitos lgicos en los sistemas digitales considrese la estructu-ra de una computadora tpica como la que se ilustra en la fi gura 1.5a. El gabinete contiene variastarjetas de circuito impreso (PCB), una fuente de poder y unidades de almacenamiento (no semuestran en la fi gura), como un disco duro y unidades de DVD o CD-ROM. Todas las unidadesse conectan a una PCB principal, llamada tarjeta madre. Como se indica en la parte inferior dela fi gura, la tarjeta madre contiene varios chips de circuitos integrados y provee ranuras paraconectar otras PCB, como tarjetas de audio, video y red.

    En la fi gura 1.5b se observa la estructura de un chip de circuito integrado, el cual comprendevarios subcircuitos, que se interconectan para construir el circuito completo. Ejemplos de subcir-cuitos son los que realizan operaciones aritmticas, almacenan datos o controlan el fl ujo de s-tos. Cada uno de dichos subcircuitos es un circuito lgico. Como se muestra a mitad de la fi gura,

    Figura 1.4 Ciclo de diseo bsico.

    1.3 DISEO DE LLLHARDWARE DIGITAL

    Diseo exitoso

    Diseo correcto?

    Simulacin

    Diseo inicial

    Concepto de diseo

    Rediseo

    S

    No

  • 10 CAPTULO 1 CONCEPTOS DE DISEO

    Circuitos integrados, conectores y componentes

    Tarjetas de circuitos impresos

    Fuente de poder

    Computadora

    Tarjeta madre

    Tarjeta madre

    Figura 1.5 Sistema de hardware digital (parte a).

  • 11

    Figura 1.5 Sistema de hardware digital (parte b).

    1.3 DISEO DE LLHARDWARE DIGITAL

  • 12 CAPTULO 1 CONCEPTOS DE DISEO

    un circuito lgico comprende una red de compuertas lgicas conectadas. Cada compuerta lgicarealiza una funcin muy simple, y las operaciones ms complejas las efectan las compuertasconectadas en conjunto. Las compuertas lgicas se construyen con transistores, que a su vez seimplementan mediante la fabricacin de varias capas de material sobre un chip de silicio.

    Esta obra se ocupa principalmente de la parte central de la fi gura 1.5b: el diseo de circuitoslgicos. Se explica cmo disear circuitos que desempean funciones importantes, como sumar,restar o multiplicar nmeros, llevar conteos, almacenar datos y controlar el procesamiento de lainformacin. Tambin se muestra la forma de especifi car el comportamiento de tales circuitos,cmo se disean para lograr costos mnimos o mxima rapidez de operacin, y la manera en quese prueban para garantizar el funcionamiento correcto. Asimismo se explica brevemente cmooperan los transistores y cmo se construyen sobre los chips de silicio.

    1.3.3 DISEO DE UNA UNIDAD DE HARDWARE DIGITAL

    Como se muestra en la fi gura 1.5, los productos de hardware digital llevan una o ms PCB quecontienen muchos chips y otros componentes. El desarrollo de tales productos comienza con ladefi nicin de la estructura global. Luego se eligen los chips de circuitos integrados que se re-quieren y se disea la PCB que los alberga y conecta. Si los chips seleccionados incluyen PLD ochips a la medida, entonces estos chips deben disearse antes de emprender el diseo en el nivelde la PCB. Puesto que la complejidad de los circuitos implementados en chips individuales y enlas tarjetas de circuito es muy elevada, resulta esencial utilizar buenas herramientas CAD.

    En la fi gura 1.6 se muestra una fotografa de una PCB. La PCB es parte de un gran sistema decmputo diseado en la Universidad de Toronto. Esta computadora, llamada NUMAchine [4, 5],es un multiprocesador, lo que signifi ca que contiene muchos procesadores que pueden usarsejuntos para encarar una tarea en particular. La PCB de la fi gura contiene un chip procesador yvarios chips de memoria y apoyo. Se necesitan complejos circuitos lgicos para interconectar elprocesador y el resto del sistema. Para implementar tales circuitos lgicos se usan varios PLD.

    A fi n de ilustrar el ciclo de desarrollo completo con ms detalle, se considerarn los pasosnecesarios para producir una unidad de hardware digital que puede implementarse sobre unaPCB. Este hardware podra verse como un circuito lgico muy complejo que realiza las funcio-nes defi nidas en las especifi caciones del producto. En la fi gura 1.7 se muestra el fl ujo de diseo,si se supone que se tiene un concepto de diseo que defi ne el comportamiento esperado y lascaractersticas de este gran circuito.

    Una forma ordenada de lidiar con la complejidad inherente es dividir el circuito en bloquesms pequeos y luego disear cada uno de ellos por separado. El enfoque consistente en ladivisin de una gran tarea en partes ms pequeas y manejables recibe el nombre de enfoquedivide y vencers. El diseo de cada bloque sigue el procedimiento descrito en la fi gura 1.4. Sedefi nen los circuitos en cada bloque y luego se eligen los chips necesarios para implementarlos.Se simula la operacin de estos circuitos y se hacen las correcciones necesarias.

    Una vez que se tiene el diseo correcto de todos los bloques, se defi ne su interconexin, conla que efectivamente se les combina en un solo bloque. Ahora es necesario simular este circuitocompleto y corregir los errores. Segn los errores hallados, puede ser necesario regresar a pasos pre-vios, como indican las trayectorias A, B y C del diagrama de fl ujo. Es factible que algunoserrores se deban a conexiones incorrectas entre los bloques, por lo que habr que redefi nirlassiguiendo la trayectoria C. Tal vez algunos bloques no se disearon correctamente, por lo que

  • 13

    habr que seguir la trayectoria B y redisear los bloques errneos. Otra posibilidad es que el mismsimo primer paso de dividir en bloques el gran circuito global no se realizara bien, en cuyo caso se sigue la trayectoria A. Esto puede ocurrir, por ejemplo, si ninguno de los bloques implementa cierta funcionalidad necesaria en el circuito completo.

    La conclusin correcta de la simulacin funcional indica que el circuito diseado cumplir bien todas sus funciones. El siguiente paso es decidir cmo materializar este circuito en unaPCB. Hay que determinar la ubicacin fsica de cada chip en la tarjeta, as como defi nir el esque-ma de cableado necesario para conectar los chips. Este paso recibe el nombre de diseo fsicode la PCB. Para llevarlo a cabo automticamente se recibe un enorme apoyo de las herramientas CAD.

    Una vez establecidas tanto la ubicacin de los chips como las conexiones de cables en la PCB, es deseable ver cmo este esquema fsico afectar el desempeo del circuito en la tarjeta terminada. Resulta razonable suponer que si la simulacin funcional previa indic que todas las funciones se realizarn correctamente, entonces las herramientas CAD usadas en el paso de diseo fsico garantizarn que el comportamiento funcional requerido no se corromper con la colocacin de los chips en la tarjeta ni con su conexin mediante los cables para formar el

    Figura 1.6 Tarjeta de circuito impreso.

    1.3 DISEO DE LLHARDWARE DIGITAL

  • 14 CAPTULO 1 CONCEPTOS DE DISEO

    Definicin de interconexiones entre los bloques

    Simulacin funcional del sistema completo

    Correcto?

    Distribucin fsica

    Simulacin oportuna

    Correcto?

    Implementacin

    No

    S

    No

    S

    Diseo de un bloque Diseo de un bloque

    Divisin

    Concepto de diseoA

    B

    C

    D

    Figura 1.7 Flujo de diseo para circuitos lgicos.

  • 15

    circuito fi nal. Sin embargo, aun cuando el comportamiento funcional sea correcto, el circuito podra operar ms lentamente de lo deseado y, por tanto, conducir a un desempeo inadecuado. Esta defi ciencia se presenta porque el cableado fsico en la PCB implica trazas metlicas que presentan resistencia y capacitancia a las seales elctricas, por lo que pueden tener un efecto signifi cativo en la rapidez de operacin. Para distinguir entre la simulacin que slo considera la funcionalidad del circuito y la que tambin tiene en cuenta el comportamiento oportuno se emplean los trminos simulacin funcional y l simulacin oportuna. Una simulacin oportuna puede revelar problemas potenciales de desempeo, que luego pueden corregirse mediante las herramientas CAD para realizar cambios en el diseo fsico de la PCB.

    Tras completar el proceso de diseo el circuito diseado est listo para la implementacin fsica. En la fi gura 1.8 se indican los pasos necesarios para implementar una tarjeta prototipo. Se construye y prueba una primera versin de la tarjeta. La mayor parte de los errores menores que se detectan puede corregirse haciendo cambios directamente en la tarjeta prototipo, lo que qui-zs implique cambios en el cableado o quiz la reprogramacin de ciertos PLD. Los problemas ms grandes precisan un rediseo ms sustancial. Segn la naturaleza del problema, es posible que el diseador deba regresar a alguno de los puntos A, B, C o D en el proceso de diseo de la fi gura 1.7.

    Figura 1.8 Conclusin del desarrollo de una PCB.

    Implementacin

    PCB terminada

    Construccin del prototipo

    Pruebas

    Correcto?

    Modificacin del prototipo

    No

    S

    Errores mnimos?

    S

    Ir a A, B, C o D en la figura 1.7

    No

    1.3 DISEO DE LLHARDWARE DIGITAL

  • 16 CAPTULO 1 CONCEPTOS DE DISEO

    Hemos descrito el proceso de desarrollo en el que el circuito fi nal se implementa usandomuchos chips sobre una PCB. El material expuesto en el libro se aplica de manera directa a estetipo de problema de diseo. Sin embargo, por razones prcticas, los ejemplos de diseo presen-tados son relativamente pequeos y pueden materializarse en un solo circuito integrado, ya seaun chip diseado a la medida o un PLD. Todos los pasos de la fi gura 1.7 tambin son relevantesen este caso, si se tiene en cuenta que los bloques de circuito que se disearn tienen una escalams pequea.

    1.4 DISEO DE CIRCUITOS LGICOS EN ESTE LIBRO

    En la presente obra se usan extensivamente los PLD para ilustrar muchos aspectos del diseode circuitos lgicos. Se seleccion esta tecnologa porque se utiliza mucho en los productos dehardware digital reales y porque el usuario puede programar los chips. La tecnologa PLD es en particular adecuada para propsitos educativos, ya que muchos lectores tienen acceso a insta-laciones para programar PLD, lo que les permite implementar realmente los circuitos muestra. Para ilustrar aspectos de diseo prctico, en la obra se emplean dos tipos de PLD, que son losdos tipos de dispositivos ms usados en los productos actuales de hardware digital. Uno de ellosse conoce como dispositivos lgicos programables complejos (CPLD, complex programmable logic devices) y el otro como arreglo de compuertas de campos programables (FPGA, fi eld-pro-grammable gate array). Estos chips se estudian en el captulo 3.

    Para obtener experiencia prctica y comprender mejor los circuitos lgicos se aconseja al lector implementar los ejemplos de este libro con herramientas CAD. La mayor parte de losgrandes proveedores de sistemas CAD ofrece sus herramientas mediante programas universi-tarios para uso educativo. Algunos ejemplos son Altera, Cadence, Mentor Graphics, Synopsys, Synplicity y Xilinx. Con esta obra se pueden usar igualmente bien los sistemas CAD que cual-quiera de estas compaas ofrezca. Para quienes todava no tienen acceso a las herramientasCAD, el disco compacto adjunto a la obra incluye el sistema Quartus II CAD de Altera. Este software de actualidad soporta todas las fases del ciclo de diseo, es poderoso, sencillo de usar y se instala fcilmente en una computadora personal. En los apndices B, C y D se presenta unasecuencia de tutoriales paso a paso para ilustrar el uso de las herramientas CAD en conjunto con el libro.

    Con fi nes educativos, algunos fabricantes de PLD ofrecen tarjetas de laboratorio para eldesarrollo de circuitos impresos que incluyen uno o ms chips PLD y una interfaz a una compu-tadora personal. Cuando se disea un circuito lgico con las herramientas CAD, el circuito se puede descargar al PLD de la tarjeta. Luego pueden aplicarse entradas al PLD mediante simplesrinterruptores, y examinarse las salidas generadas. Dichas tarjetas de laboratorio se describen enlas pginas en Internet de los proveedores de PLD.

    1.5 TEORA Y PRCTICA

    El diseo moderno de circuitos lgicos depende enormemente de las herramientas CAD, pero la disciplina del diseo lgico evolucion mucho antes que las herramientas CAD se inventaran. Esta cronologa es muy obvia debido a que las primeras computadoras se construyeron con cir-cuitos lgicos y, para ser honestos, no haba computadoras en las que se pudiera disearlas.

  • 17

    Para estudiar los circuitos lgicos se han creado varias tcnicas de diseo manual. El lgebrabooleana, que se aborda en el captulo 2, se adopt como un medio matemtico para representar-los. Tambin se construy una gran cantidad de teora, que muestra cmo tratar ciertos aspec-tos del diseo. Para tener xito, el diseador debe aplicar este conocimiento en la prctica.

    Las herramientas CAD no slo permiten disear circuitos complejos si no tambin simpli-fi can el trabajo de diseo. Realizan muchas tareas de manera automtica, lo que sugiere que losdiseadores actuales no necesitan comprender los conceptos tericos aplicados en las tareas que las herramientas CAD llevan a cabo. Entonces una pregunta obvia sera: por qu uno tiene que estudiar la teora que ya no se necesita para el diseo manual? Por qu no simplemente seaprende a usar las herramientas CAD?

    Hay tres grandes razones para aprender la teora. Primera, aunque las herramientas CADdesempean las tareas automticas de optimacin de un circuito lgico para satisfacer objetivosde diseo en particular, el diseador debe dar la descripcin original del circuito lgico. Si es-pecifi ca un circuito que inherentemente tiene propiedades incorrectas, el circuito fi nal tambinser de mala calidad. Segunda, las reglas y teoremas algebraicos para el diseo y el manejo decircuitos lgicos se implementan directamente en las herramientas CAD actuales. No es posibleque un usuario de tales herramientas comprenda lo que hacen si no tiene la teora implcita enello. Tercera, las herramientas CAD ofrecen muchos pasos de procesamiento adicionales a losque un usuario puede recurrir cuando trabaja en un diseo. El diseador elige qu opciones usar al examinar el circuito resultante que producen las herramientas CAD y decide si satisfacenlos objetivos requeridos. La nica forma en que puede saber si aplica o no una opcin en ciertasituacin es saber qu harn las herramientas CAD si invoca esa opcin; de nuevo, esto implicaque el diseador debe conocer la teora implcita. En este libro se estudiar la teora de circuitoslgicos clsica porque no es posible convertirse en un buen diseador de circuitos lgicos sincomprender los conceptos fundamentales.

    Como nota fi nal, hay otra buena razn para aprender parte de la teora de los circuitos lgi-cos incluso si no se requiriese para las herramientas CAD. Dicho simplemente, es interesante yun reto intelectual. En el mundo moderno, desbordante de maquinaria automtica ultramoderna,resulta tentador apoyarse en las herramientas como un sustituto de las ideas. Sin embargo, enel diseo de circuitos lgicos, como en cualquier tipo de proceso de diseo, las herramientasbasadas en computadoras no suplen la intuicin ni la innovacin. Las herramientas basadas encomputadoras pueden producir buenos diseos de hardware digital slo cuando las emplea undiseador que comprende a cabalidad la naturaleza de los circuitos lgicos.

    BIBLIOGRAFA

    1. Semiconductor Industry Association, National Technology Roadmap for Semiconduc-tors, http://www.semichips.org/

    2. Altera Corporation, Stratix II Field Programmable Gate Arrays,http://www.altera.com

    3. Xilinx Corporation, Virtex-II Field Programmable Gate Arrays,http://www.xilinx.com

    ALLBIBLIOGRAFA

  • 18 CAPTULO 1 CONCEPTOS DE DISEO

    4. S. Brown, N. Manjikian, Z. Vranesic, S. Caranci, A. Grbic, R. Grindley, M. Gusat, K. Lo-veless, Z. Zilic y S. Srbljic, Experience in Designing a Large-Scale Multiprocessor UsingField-Programmable Devices and Advanced CAD Tools, 33rd IEEE Design AutomationConference, Las Vegas, junio de 1996.

    5. A. Grbic, S. Brown, S. Caranci, R. Grindley, M. Gusat, G. Lemieux, K. Loveless, N. Man-jikian, S. Srbljic, M. Stumm, Z. Vranesic y Z. Zilic, The Design and Implementation of the NUMAchine Multiprocessor, IEEE Design Automation Conference, San Francisco,junio de 1998.

  • 192.1 VARIABLES Y FUNCIONES

    captulo

    2INTRODUCCIN A LOS CIRCUITOS LGICOS

    OBJETIVOS DEL CAPTULO

    En este captulo se estudian los temas siguientes:

    Las funciones y los circuitos lgicos El lgebra booleana para manejar las funciones lgicas Las compuertas lgicas y la sntesis de circuitos simples Las herramientas CAD y el lenguaje VHDL de descripcin de hardware

    19

  • 20 CAPTULO 2 INTRODUCCIN A LOS CIRCUITOS LGICOS

    Los circuitos lgicos se estudian principalmente porque se usan en las computadoras digitales. Sin embargo, tam-bin constituyen la base de muchos otros sistemas digitales en los que la realizacin de operaciones aritmticascon nmeros no reviste especial inters. Por ejemplo, en mltiples aplicaciones de control las acciones estn deter-minadas por algunas operaciones lgicas sencillas sobre la informacin que entra, sin necesidad de hacer muchosclculos numricos.

    Los circuitos lgicos realizan operaciones con seales digitales y casi siempre se implementan como circuitoselectrnicos donde los valores de la seal se restringen a algunos valores discretos. En los circuitos lgicos bina-rios slo hay dos valores, 0 y 1. En los circuitos lgicos decimales hay 10 valores, de 0 a 9. Puesto que el valor decada seal se representa naturalmente con un dgito, estos circuitos lgicos reciben el nombre de circuitos digita-les. En contraste, existen los circuitos analgicos en los que las seales pueden adquirir una gama discontinua devalores entre un nivel mnimo y uno mximo.

    En esta obra se estudian los circuitos binarios, los cuales dominan en la tecnologa digital. Esperamos brindar al lector una exposicin comprensible de su funcionamiento, de cmo se representan en notacin matemtica ycmo se disean mediante modernas tcnicas de diseo automatizado. Empezaremos con la defi nicin de ciertosconceptos bsicos relativos a los circuitos lgicos binarios.

    Los circuitos binarios predominan en los sistemas digitales gracias a su simplicidad, que resultade restringir las seales para que adopten slo dos valores posibles. El elemento binario mssencillo es un interruptor de dos estados. Si una variable de entrada x controla un interruptor,entonces se dice que ste se abre si x 0 y se cierra si x 1, como se ilustra en la fi gura 2.1a.Usaremos el smbolo grfi co de la fi gura 2.1b para representar este tipo de interruptores en losdiagramas que siguen. Ntese que la entrada de control x se muestra explcitamente en el smbo-lo. En el captulo 3 se explica cmo implementar estos interruptores con transistores.

    Considrese una aplicacin simple de un interruptor, donde ste enciende o apaga una pe-quea bombilla. Esta accin se logra con el circuito de la fi gura 2.2a. Una batera proporcionala fuente de poder. La bombilla brilla cuando pasa la corriente necesaria por su fi lamento, quees una resistencia elctrica. La corriente fl uye cuando el interruptor se cierra; es decir, cuando

    2.1 VARIABLES Y FUNCIONES

    Figura 2.1 Interruptor binario.

    a) Dos estados de un interruptor

    b) Smbolo de un interruptor

  • 212.1 VARIABLES Y FUNCIONES

    x 1. En este ejemplo la entrada que ocasiona el cambio en el comportamiento del circuito esel control x del interruptor. La salida se defi ne como el estado (o condicin) de la luz, que sedenotar con la letra L. Si la luz se enciende, diremos que L 1; si se apaga, que L 0. Conesta convencin es posible describir el estado de la luz como funcin de la variable de entrada x.Puesto que L 1 si x 1 y L 0 si x 0 puede decirse que

    L(x(( ) x

    Esta sencilla expresin lgica describe la salida como funcin de la entrada. Se dice que L(x(( ) xes una funcin lgica y que x es una variable de entrada.

    El circuito de la fi gura 2.2a se halla en una linterna ordinaria, donde el interruptor es undispositivo mecnico sencillo. En un circuito electrnico el interruptor se implementa comoun transistor y la luz puede ser un diodo emisor de luz (LED, light-emitting diode). Un circuitoelectrnico recibe la energa de una fuente de cierto voltaje, tal vez 5 voltios. Un lado de la fuentese conecta a tierra, como muestra la fi gura 2.2b. La conexin a tierra tambin puede usarse comola trayectoria de regreso para la corriente, a fi n de cerrar el circuito, lo que se logra conectandoun lado de la luz a tierra, como se indica en la fi gura. Desde luego la luz tambin puede conec-tarse con un cable directamente al lado aterrizado de la fuente de poder, como se advierte en lafi gura 2.2a.

    Considrese ahora la posibilidad de usar dos interruptores para controlar el estado de la luz.Sean x

    1y x

    2 sus entradas de control. Los interruptores pueden conectarse en serie o en paralelo,

    como se muestra en la fi gura 2.3. Si se usa conexin en serie la luz se encender slo si ambosinterruptores estn cerrados. Si uno est abierto, la luz estar apagada. Este comportamientopuede describirse con la expresin

    L(x((1, x

    2) x

    1 x

    2

    donde L 1 si x1

    1 y x2

    1,

    L 0 de otro modo.

    Figura 2.2 Bombilla controlada mediante un interruptor.

    S

    x

    b) bb Uso de una conexin a tierra como trayectoria de regreso

    a) a Conexin simple a una batera

    Batera Bombilla

    BombillaxSuministro de energa

    S

  • 22 CAPTULO 2 INTRODUCCIN A LOS CIRCUITOS LGICOS

    El smbolo es el operador AND, y se dice que el circuito de la fi gura 2.3a implementa lafuncin lgica AND.

    En la fi gura 2.3b se presenta la conexin en paralelo de dos interruptores. En este caso laluz se encender si cualquiera de los interruptores, x

    1 o x

    2, se cierra, o si ambos se cierran. La luz

    se apagar slo si los dos interruptores estn abiertos. Este comportamiento puede expresarsecomo

    L(x((1, x

    2) x

    1 x

    2

    donde L 1 si x1

    1 o x2

    1 o si x1

    x2

    1,

    L 0 si x1

    x2

    0.

    El smbolo es el operador OR y se dice que el circuito de la fi gura 2.3b implementa la funcin lgica OR.

    En las expresiones anteriores para AND y OR, la salida L(x((1, x

    2) es una funcin lgica con

    variables de entrada x1

    y x2. Las funciones AND y OR son dos de las funciones lgicas ms im-

    portantes. Junto con algunas otras funciones simples se usan como los bloques fundamentalesde la implementacin de todos los circuitos lgicos. En la fi gura 2.4 se muestra cmo usar tresinterruptores para controlar la luz de forma ms compleja. Esta conexin serie-paralelo de inte-rruptores realiza la funcin lgica

    L(x((1, x

    2, x

    3) (x((

    1 x

    2) x

    3

    La luz se enciende si x3

    1 y, al mismo tiempo, al menos una de las entradas x1 o x

    2 es

    igual a 1.

    a) La funcin lgica AND (conexin en serie)

    S

    x1Fuente de energa

    Fuente de energa

    S

    x2

    S

    x1

    S

    x2

    b) La funcin lgica OR (conexin en paralelo)

    Luz

    Luz

    Figura 2.3 Dos funciones bsicas.

  • 23

    Hasta el momento hemos supuesto que cierta accin positiva, como encender la luz, tiene lugar cuando se cierra un interruptor. Es igualmente interesante y til considerar la posibilidad deque suceda una accin positiva cuando se abre un interruptor. Supngase que conectamos la luzcomo se muestra en la fi gura 2.5. En este caso el interruptor se conecta en paralelo con la luz, enlugar de en serie. En consecuencia un interruptor cerrado ocasionar un cortocircuito y evitar que la corriente pase por l. Ntese que hemos incluido en este circuito un resistor adicionalpara garantizar que el interruptor cerrado no causar un cortocircuito en la fuente de energa. La luz se encender cuando el interruptor se abra. Formalmente, este comportamiento funcional seexpresa como

    L(x(( ) x

    donde L 1 si x 0,

    L 0 si x 1.

    El valor de esta funcin es el inverso del valor de la variable de entrada. En lugar de utilizar la palabra inverso, es ms comn usar el trmino complemento. Por tanto se dice que L(x(( ) es un complemento de x en este ejemplo. Otro trmino empleado con frecuencia para la misma opera-cin es operacin NOT. Diversas notaciones se usan para indicar el complemento. En la expre-TTsin precedente se coloca una barra sobre la x. Quiz esta notacin sea la mejor desde un ngulo visual. Sin embargo, cuando se requieren complementos en las expresiones que se escriben con

    Figura 2.4 Conexin serie-paralelo.

    2.2 INVERSIN

    Sx LuzFuente deenerga

    R

    Un circuito inversor.

    2.2 INVERSIN

  • 24 CAPTULO 2 INTRODUCCIN A LOS CIRCUITOS LGICOS

    el teclado de una computadora, lo que a menudo sucede cuando se emplean herramientas CAD,resulta imprctico usar barras superiores. En su lugar se coloca un apstrofe despus de la varia-ble, o el signo de exclamacin (!), o el tilde (~), o la palabra NOT frente a la variable para denotar la complementacin. Por ende, las expresiones que siguen son equivalentes:

    x = x = !x = x = NOT x

    La operacin complemento puede aplicarse a una sola variable o a operaciones ms com-plejas. Por ejemplo, si

    f (x1, x2) = x1 + x2

    entonces el complemento de f esf

    f (x1, x2) = x1 + x2

    Esta expresin produce el valor lgico 1 slo cuando ni x1

    ni x2 son iguales a 1; es decir: cuando

    x1

    x2

    0. De nuevo las notaciones que siguen son equivalentes:

    x1 + x2 = (x1 + x2) = !(x1 + x2) = (x1 + x2) = NOT (x1 + x2)

    Hemos presentado las tres operaciones lgicas ms bsicas AND, OR y complemento rela-cionndolas con circuitos sencillos construidos con interruptores. Este enfoque confi ere a talesoperaciones cierto signifi cado fff sico. Las mismas operaciones tambin pueden defi nirse enforma de tabla, llamada tabla de verdad, como se muestra en la fi gura 2.6. Las primeras dos co-lumnas (a la izquierda de la lnea vertical doble) proporcionan las cuatro posibles combinacionesde valores lgicos que las variables x

    1 y x

    2pueden tener. La siguiente columna defi ne la opera-

    cin AND para cada combinacin de valores de x1 y x

    2, y la ltima columna defi ne la operacin

    OR. Puesto que con frecuencia es necesario hacer referencia a combinaciones de valores lgi-cos aplicados a algunas variables, se adoptar un trmino ms corto, valoracin, para denotar tal combinacin de valores lgicos.

    2.3 TABLAS DE VERDAD

    Figura 2.6 Tabla de verdad para las operaciones AND y OR.

    x1 x2 x1 x2 x1 x2

    0 0 0 00 1 0 11 0 0 11 1 1 1

    AND OR

  • 25

    Las tablas de verdad son un auxiliar til para describir informacin relacionada con funcio-nes lgicas. En este libro se utilizan para defi nir funciones especfi cas y demostrar la validez de ciertas relaciones funcionales. Las tablas de verdad pequeas son fff ciles de manejar. Sin embar-go, crecen exponencialmente en tamao con el nmero de variables. Una tabla de verdad de tresvariables de entrada tiene ocho fi las porque hay ocho posibles valoraciones para esas variables. La fi gura 2.7 proporciona una tabla semejante, que defi ne las funciones AND y OR para tresentradas. Para cuatro variables de entrada, la tabla de verdad tiene 16 fi las, etc. En general, paran variables de entrada, la tabla de verdad tiene 2n fi las.

    Las operaciones AND y OR pueden extenderse a n varia