Principios de Diseño Digital (UDO)

340

description

guia de circuitos digitales universidad de oriente

Transcript of Principios de Diseño Digital (UDO)

Page 1: Principios de Diseño Digital (UDO)

Universidad de OrienteNú leo de AnzoáteguiEs uela de Ingeniería y Cien ias Apli adasDepartamento de Ele tri idad

Prin ipios de Diseño DigitalTrabajo presentado por elProf. Luis Parraguez omo requisito par ial para as ender a la ategoría de:Profesor Agregado

Puerto La Cruz, O tubre del 2001.

Page 2: Principios de Diseño Digital (UDO)

2

Page 3: Principios de Diseño Digital (UDO)

Prin ipios de Diseño DigitalLuis Parraguez118 de o tubre de 2001

1Este do umento es mantenido por su autor. Por favor, envíe sus omentarios sobreerrores u otras observa iones a parraguez�anz.udo.edu.ve.

Page 4: Principios de Diseño Digital (UDO)

2

Page 5: Principios de Diseño Digital (UDO)

Introdu iónA er a de este Do umentoEste do umento persigue servir omo guía de trabajo para los estudiantes de laasignatura Introdu ión a los Cir uitos Lógi os, del Departamento de Ele tri idad,de la Es uela de Ingeniería y Cien ias Apli adas, del Nú leo de Anzoátegui, de laUniversidad de Oriente, así omo para ualquier persona que lo desee o ne esite.Puede ser opiado y distribuido de ualquier manera, sin ningún osto(ex epto a aso los inherentes a la reprodu ión), y sin soli itar autoriza iónalguna. El ono imiento es Universal y nadie tiene el dere ho de apropiárselo,al menos eso es lo que reo. Sólo pido que se me noti�que de su utiliza ión,así omo ríti as y sugeren ias, a las dire iones de orreo ele tróni o siguientes:parraguez�anz.udo.edu.ve y parrague�tel el.net.ve.Ha sido elaborado, enteramente, empleando herramientas informáti as de libreutiliza ión, algunas de ellas de ódigo abierto:Linux Mandrake 7.2 on kernel 2.2.17-21 de Mandrakesoft.LYX 1.1.5�x1 de Matthias Ettri h y LYX Team.TKGate 1.6g de Je�ery Hansen.Ele tri 6.00 de Steven Rubin.ver Stru tural Verilog Compiler v1.2.100 de Tonny Bybelliverilog I arus Verilog Compiler v.0.5-0 de Caden e In .wave Gtkwave Analyser v1.2.99 de Udi Finkelstein.GIMP 1.1.25 de Spen er Kimball y Peter Mattis.KIllustrator 1.0 de KO� e Team.X�g 3.2 3 de Supoj Sutanthavibul, Brian Smith, Paul King y otros.i

Page 6: Principios de Diseño Digital (UDO)

ii XPaint 2.6.0 de Torsten Martinsen, Greg Roelofs y David Koblas.gv 3.5.8 de Johannes Plass y Timothy Theisen.psutils de Angus Duggan.Dia v 0.86 de Alexander Larsson.En este trabajo se ha pretendido dar un nuevo enfoque, te nológi amente mása tualizado, on respe to a la manera tradi ional omo se ha venido impartiendoel urso, desde ha e aproximadamente una dé ada. Una primera aproxima ión deeste esfuerzo se en uentra en el trabajo del Prof. Néstor Millán , quién realizóun importante aporte al introdu ir las Redes de Petri omo herramienta de análisisy diseño de sistemas digitales. Nuestra visión persigue in orporar herramientas dela te nología de punta de los últimos diez años, omo lo es el fuerte impulso delos lenguajes de programa ión de hardware para enfrentar sistemas grandes y omplejos, al enfatizar más en el omportamiento de di hos sistemas que en suestru tura ir uital.Aunque se preserva, sobre todo en los primeros apítulos, la �losofía lási autilizada en la literatura de estos temas, lo que evidentemente onstituye una basesólida, se han modi� ado, y hasta omitido, partes que se adaptan mejor a ursosde ele tróni a, para reforzar aspe tos más novedosos aportados por las últimastenden ias en el ámbito ientí� o y te nológi o.A lo largo de este do umento se en ontrará on una gran variedad y tiposde �guras y grá� os. La alidad �nal de estos es muy variada. Algunos de losprogramas utilizados para generarlos no están orientados al pro esamiento deimagenes, de tal manera que la salida grá� a que propor ionan no es altamentere�nada. Pido dis ulpas si no son de su absoluto agrado, pero se han dejado en suforma original ya que indudablemente propor ionan informa ión de gran utilidad.Un omentario �nal sobre el "problema" del inglés. Indudablemente, en ellenguaje té ni o las imposi iones idiomáti as na en junto a la rea ión y ontrolte nológi o. Aunque hubiese deseado ser más puro en el manejo de nuestro idioma,desafortunadamente la falta de una tradu ión dire ta y on eptualmente pre isade mu hos términos ingleses, obliga a su uso en estado original. El aso ontrariotambién existe, varios términos han sido tradu idos de múltiples maneras. Algunasde estas tradu iones, en mi on epto, son muy buenas y otras extremadamentemalas. Evidentemente esto le ha puesto una dinámi a interesante al desarrollo dellenguaje, que debe ser apaz de permitir que sus usuarios parti ipen en su propiaelabora ión y modi� a ión. La Real A ademia Española de la Lengua promueverevisiones periódi as, en las uales se a eptan nuevas palabras o se modi� an otras,ajustándose a este desarrollo (por ejemplo, omputador o omputadora, según su

Page 7: Principios de Diseño Digital (UDO)

iii"sexo", o la propuesta de Gar ía Márquez de eliminar los a entos, son aportes delsiglo pasado). De esta manera, en este trabajo se usan indistintamente manejadoro driver ( on preferen ia el término español), de odi� ador o des odi� ador (aún uando el orre to lingüísti amente sea el segundo), y mu hos otros que tendráoportunidad de revisar.Organiza ión del Do umentoEl trabajo está dividido en on e apítulos: Sistemas Numéri os, CódigosBinarios, Álgebra de Boole y Cir uitos Digitales, Diseño Elé tri o de Compuertas,Minimiza ión de las fun iones de Boole, Cir uitos Se uen iales y Elementosde Memoriza ión, Componentes de Memoriza ión, Cir uitos Combina ionales on MSI y LSI, Cir uitos Se uen iales on MSI y LSI, Máquinas de EstadoAlgorítmi as e Introdu ión a los Lenguajes de Des rip ión de Hardware.Para un urso semestral, algunos apítulos, o partes de ellos, pueden ser ompletamente omitidos de a uerdo al riterio del instru tor (o del le tor),sin perder signi� ativamente los aspe tos esen iales que se desean desta ardel diseño y análisis de Sistemas Digitales. Por ejemplo, el apítulo DiseñoElé tri o de Compuertas puede omitirse por ompleto si la orienta ión del ursoes ha ia la forma ión bási a de Arquite tura de Computadores, en su aspe tode omportamiento; sin embargo, este apítulo debe estudiarse, y hasta resultasigni� ativamente pobre, si el objetivo es preparar en los problemas aso iados alfun ionamiento ele tróni o de los sistemas digitales (transi iones, propaga ión deseñales, alimenta ión, disipa ión de poten ia, et .).

Page 8: Principios de Diseño Digital (UDO)

iv

Page 9: Principios de Diseño Digital (UDO)

Agrade imientosLa do umenta ión es, a menudo, un ejer i io de sintoniza ión ole tiva. Ungrupo de manos y erebros han ontribuido a olo ar algo en este depósito quehoy tiene ante sus ojos.Primero, debemos agrade er a los que estuvieron antes que nosotros. Ellos nosabrieron la bre ha por la ual transitamos.De igual manera, a Betty y Patri ia, por el amor y la pa ien ia que mehan tenido, por las innumerables, tardes, no hes, �nes de semanas y va a ionessa ri� adas.A los alumnos de los ursos de Introdu ión a los Cir uitos Digitales que hanusado el material de manera ríti a.Finalmente a Julio Martínez, quién ha servido de Preparador Ad Honorem( ualidad muy difí il de en ontrar en estos tiempos) de los últimos tres ursos deIntrodu ión a los Cir uitos Digitales. Por su interés en estos temas maravillosos,y valiosa alidad humana e intele tual.

v

Page 10: Principios de Diseño Digital (UDO)

vi

Page 11: Principios de Diseño Digital (UDO)

Índi e general1. Sistemas Numéri os. 11.1. Sistemas Numéri os Posi ionales. . . . . . . . . . . . . . . . . . . 11.2. Números Binarios (Base 2). . . . . . . . . . . . . . . . . . . . . . 21.3. Números O tales (Base 8). . . . . . . . . . . . . . . . . . . . . . . 21.4. Números Hexade imales (Base 16). . . . . . . . . . . . . . . . . . 31.5. Conversión entre Sistemas Numéri os. . . . . . . . . . . . . . . . . 41.5.1. Conversión de enteros. . . . . . . . . . . . . . . . . . . . . 41.5.2. Conversión de fra iones. . . . . . . . . . . . . . . . . . . . 51.5.2.1. Conversión de fra iones de imales a binarias. . . 51.5.2.2. Conversión de fra iones binarias a de imales . . 81.6. Adi ión y Substra ión de Números Enteros Positivos. . . . . . . . 91.6.1. Adi ión y Substra ión de Números De imales. . . . . . . 91.6.2. Adi ión y Substra ión de Números Binarios. . . . . . . . 111.7. Representa ión de números negativos. . . . . . . . . . . . . . . . . 121.7.1. Representa ión en Signo - Magnitud. . . . . . . . . . . . . 131.7.2. Representa ión en Signo - Magnitud de números de imales. 131.7.3. Representa ión en Signo - Magnitud de números binarios. . 131.7.4. Representa ión en Complementos. . . . . . . . . . . . . . . 131.7.4.1. EL omplemento de r. . . . . . . . . . . . . . . . 141.7.4.2. EL omplemento de 10 para números de imales. . 141.7.4.3. EL omplemento de 2 para números binarios . . . 161.7.4.4. EL omplemento de r - 1. . . . . . . . . . . . . . 161.7.4.5. EL omplemento de 9 (base redu ida) paranúmeros de imales. . . . . . . . . . . . . . . . . . 171.7.4.6. EL omplemento de 1 (base redu ida) paranúmeros binarios . . . . . . . . . . . . . . . . . . 191.8. Representa ión de números de punto �otante. . . . . . . . . . . . 212. Códigos Binarios. 232.1. Códigos De imales. . . . . . . . . . . . . . . . . . . . . . . . . . . 232.1.1. Códigos De imales Posi ionales. . . . . . . . . . . . . . . . 242.1.1.1. Códigos De imales Posi ionales No Simétri os. . 24vii

Page 12: Principios de Diseño Digital (UDO)

viii ÍNDICE GENERAL2.1.1.2. Códigos De imales Posi ionales Simétri os. . . . . 242.1.2. Códigos De imales No Posi ionales. . . . . . . . . . . . . . 252.1.2.1. Códigos De imales No Posi ionales de Distan iaUnitaria. . . . . . . . . . . . . . . . . . . . . . . 252.1.2.2. Códigos De imales No Posi ionales Re�ejados. . . 262.1.3. Otros Códigos De imales. . . . . . . . . . . . . . . . . . . 272.1.3.1. Código Ex eso 3. . . . . . . . . . . . . . . . . . . 272.1.3.2. Código 1 de 10. . . . . . . . . . . . . . . . . . . . 272.2. Código Gray. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.3. Códigos Alfanuméri os. . . . . . . . . . . . . . . . . . . . . . . . . 292.3.1. Código ASCII. . . . . . . . . . . . . . . . . . . . . . . . . 302.4. Códigos de Dete ión y Corre ión de Errores. . . . . . . . . . . . 322.4.1. Cubos N y Distan ia del Código. . . . . . . . . . . . . . . 322.4.2. Códigos de Dete ión de Errores. . . . . . . . . . . . . . . 332.4.2.1. Paridad . . . . . . . . . . . . . . . . . . . . . . . 342.4.2.2. Código de orre ión de error simple y dete iónde error múltiple. . . . . . . . . . . . . . . . . . . 373. Álgebra de Boole y Cir uitos Digitales. 393.1. Lógi a Binaria. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.2. Fun iones de la Verdad. . . . . . . . . . . . . . . . . . . . . . . . 413.2.1. Cone tivos Binarios. . . . . . . . . . . . . . . . . . . . . . 413.2.2. Evalua ión de las fun iones de verdad. . . . . . . . . . . . 433.3. Postulados de Huntington. . . . . . . . . . . . . . . . . . . . . . . 443.4. Axiomas del álgebra de Boole. . . . . . . . . . . . . . . . . . . . . 453.5. Teoremas bási os y propiedades del álgebra de Boole. . . . . . . . 453.5.1. Teoremas de una sola variable. . . . . . . . . . . . . . . . . 453.5.2. Teoremas de dos y tres variables. . . . . . . . . . . . . . . 473.5.3. Teoremas generalizados de n variables. . . . . . . . . . . . 483.6. Fun iones, variables y expresiones. . . . . . . . . . . . . . . . . . . 483.7. Forma Canóni a de Fun iones Combinatorias . . . . . . . . . . . . 503.8. Cir uitos Lógi os. . . . . . . . . . . . . . . . . . . . . . . . . . . . 533.8.1. Análisis de Cir uitos Lógi os Combina ionales. . . . . . . . 553.8.2. Síntesis de Cir uitos Lógi os Combina ionales. . . . . . . . 573.8.3. Manipula ión de ir uitos. . . . . . . . . . . . . . . . . . . 594. Diseño Elé tri o de Compuertas 654.1. Lógi a de Resisten ia y Transistor (RTL) . . . . . . . . . . . . . . 654.1.1. El BJT omo Inversor Lógi o . . . . . . . . . . . . . . . . 654.1.2. Diseño de un Inversor Lógi o usando BJT . . . . . . . . . 664.1.3. El Fan out . . . . . . . . . . . . . . . . . . . . . . . . . . . 674.1.4. Tiempo de Transi ión . . . . . . . . . . . . . . . . . . . . 704.1.5. Retraso de Propaga ión . . . . . . . . . . . . . . . . . . . 72

Page 13: Principios de Diseño Digital (UDO)

ÍNDICE GENERAL ix4.1.6. Otras ompuertas RTL . . . . . . . . . . . . . . . . . . . . 724.1.7. El Fan in . . . . . . . . . . . . . . . . . . . . . . . . . . . 744.2. Diodos y Lógi a de Resisten ias y Diodos (RDL) . . . . . . . . . . 744.3. Lógi a de Diodos y Transistores (DTL) . . . . . . . . . . . . . . . 774.4. Lógi a de Transistor - Transistor (TTL) . . . . . . . . . . . . . . 784.4.1. Inversor TTL . . . . . . . . . . . . . . . . . . . . . . . . . 794.4.2. NAND TTL . . . . . . . . . . . . . . . . . . . . . . . . . . 804.4.3. Niveles lógi os . . . . . . . . . . . . . . . . . . . . . . . . . 824.4.4. Entradas que no se usan . . . . . . . . . . . . . . . . . . . 824.4.5. Entrada de Disparador de S hmitt . . . . . . . . . . . . . 834.4.6. Salidas TTL . . . . . . . . . . . . . . . . . . . . . . . . . . 854.4.6.1. Totem Pole . . . . . . . . . . . . . . . . . . . . . 854.4.6.2. Cole tor abierto. . . . . . . . . . . . . . . . . . . 854.4.6.3. Alta Impedan ia (ter er estado) . . . . . . . . . . 854.4.7. Otras familias TTL . . . . . . . . . . . . . . . . . . . . . . 884.5. Lógi a CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 894.5.1. El inversor CMOS . . . . . . . . . . . . . . . . . . . . . . 894.5.2. NAND CMOS . . . . . . . . . . . . . . . . . . . . . . . . . 904.5.3. Inversor CMOS Triestado . . . . . . . . . . . . . . . . . . 914.6. Otras Familias Lógi as . . . . . . . . . . . . . . . . . . . . . . . . 924.6.1. ECL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 924.6.2. PMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 924.6.3. NMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 924.6.4. E2CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . 924.7. Cir uitos Integrados de Apli a iones Espe í� as . . . . . . . . . . 925. Minimiza ión de las fun iones de Boole. 935.1. Mapas de Veit h - Karnaugh. . . . . . . . . . . . . . . . . . . . . 935.1.1. Mapas de 4, 5 y 6 variables. . . . . . . . . . . . . . . . . . 945.2. Simpli� a ión de las fun iones booleanas en los mapas k. . . . . . 985.2.1. Cobertura mínima. . . . . . . . . . . . . . . . . . . . . . . 985.3. Minimiza ión tabular de fun iones booleanas. . . . . . . . . . . . 1015.3.1. El método de Quine - M Cluskey . . . . . . . . . . . . . . 1015.3.1.1. Sele ión de un onjunto óptimo de impli antesprimos . . . . . . . . . . . . . . . . . . . . . . . . 1035.4. Realiza ión de algunos Códigos Espe iales* . . . . . . . . . . . . . 1045.4.1. Código Gray . . . . . . . . . . . . . . . . . . . . . . . . . . 1045.4.2. Código Hamming* . . . . . . . . . . . . . . . . . . . . . . 1066. Cir uitos Se uen iales y Elementos de Memoriza ión 1136.1. Introdu ión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1136.2. Cerrojo (Lat h) SR . . . . . . . . . . . . . . . . . . . . . . . . . . 1186.3. Lat h SR sin ronizado . . . . . . . . . . . . . . . . . . . . . . . . 121

Page 14: Principios de Diseño Digital (UDO)

x ÍNDICE GENERAL6.4. Lat h JK Sin ronizado . . . . . . . . . . . . . . . . . . . . . . . . 1216.5. Lat h D Sin ronizado . . . . . . . . . . . . . . . . . . . . . . . . . 1236.6. Biestables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1246.6.1. Cerrojos Maestro / Es lavo . . . . . . . . . . . . . . . . . 1256.6.2. Biestables disparados por �an o . . . . . . . . . . . . . . . 1256.6.2.1. Biestable on dete tor de �an o . . . . . . . . . . 1266.6.2.2. Biestable de tres errojos . . . . . . . . . . . . . 1276.6.3. Biestable Maestro / Es lavo . . . . . . . . . . . . . . . . . 1296.7. Tipos de Biestables . . . . . . . . . . . . . . . . . . . . . . . . . . 1296.8. Análisis de la Lógi a Se uen ial . . . . . . . . . . . . . . . . . . . 1306.9. Modelo de Máquinas de Estados Finitos . . . . . . . . . . . . . . 1356.10. Captura del Modelo FSM . . . . . . . . . . . . . . . . . . . . . . 1386.11. Minimiza ión de Estados . . . . . . . . . . . . . . . . . . . . . . . 1386.12. Codi� a ión de Estados . . . . . . . . . . . . . . . . . . . . . . . 1456.12.1. Mínimo Cambio de Bits. . . . . . . . . . . . . . . . . . . . 1456.12.2. Prioridad en adya en ia. . . . . . . . . . . . . . . . . . . . 1486.12.3. Un bit por estado . . . . . . . . . . . . . . . . . . . . . . . 1516.13. E ua iones de Estado Futuro y Salidas . . . . . . . . . . . . . . . 1516.13.1. Biestable tipo D . . . . . . . . . . . . . . . . . . . . . . . . 1536.13.2. Biestable tipo T . . . . . . . . . . . . . . . . . . . . . . . . 1566.13.3. Biestable tipo SR . . . . . . . . . . . . . . . . . . . . . . . 1596.13.4. Biestable tipo JK . . . . . . . . . . . . . . . . . . . . . . . 1626.14. Optimiza ión y Temporiza ión . . . . . . . . . . . . . . . . . . . . 1656.15. FSM in ompletamente espe i� ada . . . . . . . . . . . . . . . . . 1666.16. Conversión Mealy - Moore . . . . . . . . . . . . . . . . . . . . . . 1666.16.1. Conversión de Mealy a Moore. . . . . . . . . . . . . . . . . 1686.16.2. Conversión de Moore a Mealy . . . . . . . . . . . . . . . . 1707. Componentes de Memoriza ión 1737.1. Registros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1737.2. Registro de Desplazamiento . . . . . . . . . . . . . . . . . . . . . 1767.3. Contadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1777.3.1. Contador Asin róni o . . . . . . . . . . . . . . . . . . . . . 1777.3.2. Contador Asin róni o As endente . . . . . . . . . . . . . . 1777.3.3. Contador Sin róni o . . . . . . . . . . . . . . . . . . . . . 1797.3.4. Contador Sin róni o Des endente . . . . . . . . . . . . . . 1817.3.5. Contador Sin róni o As endente - Des endente . . . . . . 1827.3.6. Contador Sin róni o As endente - Des endente on CargaParalela . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1827.3.7. Contador BCD y Otros . . . . . . . . . . . . . . . . . . . . 1827.4. Ban o de Registros . . . . . . . . . . . . . . . . . . . . . . . . . . 1857.5. Memorias de A eso Aleatorio . . . . . . . . . . . . . . . . . . . . 1877.6. Otras Estru turas de Alma enamiento . . . . . . . . . . . . . . . 188

Page 15: Principios de Diseño Digital (UDO)

ÍNDICE GENERAL xi7.6.1. Pilas de Inser ión / Extra ión . . . . . . . . . . . . . . . 1887.6.2. Colas: Primero en Entrar, Primero en Salir . . . . . . . . . 1898. Cir uitos Combina ionales on MSI y LSI. 1918.1. Sumadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1948.2. De odi� adores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1978.3. Multiplexores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2048.4. Comparadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2098.5. ROM (Memoria de sólo Le tura). . . . . . . . . . . . . . . . . . . 2148.6. PLD (Dispositivo Lógi o Programable). . . . . . . . . . . . . . . . 2228.7. ASIC (Cir uitos integrados de Apli a iones Espe í� as). . . . . . 2298.8. SOC (System On Chip). . . . . . . . . . . . . . . . . . . . . . . . 2309. Cir uitos Se uen iales on MSI y LSI. 2319.1. Cir uitos Se uen iales on Registros y Lógi a ombinatoria MSI-LSI.23210.Máquinas de Estado Algorítmi as (ASM). 24310.1. Introdu ión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24310.2. Nota ión de Transferen ia entre Registros (RTN) . . . . . . . . . 24310.3. Pro esos Iterativos Unidimensionales . . . . . . . . . . . . . . . . 24510.3.1. Informa ión distribuida en el espa io y en el tiempo . . . . 24510.4. Máquinas de Estado Algorítmi o . . . . . . . . . . . . . . . . . . 24911.Introdu ión a los Lenguajes de Des rip ión de Hardware(HDL). 26711.1. Introdu ión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26711.2. Lenguajes de Des rip ión de Hardware (HDL) . . . . . . . . . . . 27011.3. Un po o de historia . . . . . . . . . . . . . . . . . . . . . . . . . . 27111.4. ¾Porqué Verilog? . . . . . . . . . . . . . . . . . . . . . . . . . . . 27211.5. Modelado y Simula ión . . . . . . . . . . . . . . . . . . . . . . . . 27311.6. Re�namiento en el ontrol del tiempo . . . . . . . . . . . . . . . . 27911.6.1. Una introdu ión a los on eptos de temporizado y retardos 27911.6.1.1. Retardos . . . . . . . . . . . . . . . . . . . . . . 27911.7. Algunos ejemplos de lógi a ombinatoria. . . . . . . . . . . . . . . 28311.7.1. Multiplexor 2 a 1 . . . . . . . . . . . . . . . . . . . . . . . 28311.7.1.1. Modelado y simula ión a nivel de ompuertas . . 28311.7.1.2. Modelado y simula ión a nivel del omportamiento 28511.7.1.3. Modelado y simula ión a nivel fun ional . . . . . 28911.7.2. Multiplexor de múltiples salidas . . . . . . . . . . . . . . . 29011.7.3. Sumador ompleto de 4 bits . . . . . . . . . . . . . . . . . 29211.8. Modelado y Simula ión de la Lógi a Se uen ial. . . . . . . . . . . 29311.8.1. El biestable tipo D. . . . . . . . . . . . . . . . . . . . . . . 29311.8.2. Registro multifun ional de 8 bits. . . . . . . . . . . . . . . 296

Page 16: Principios de Diseño Digital (UDO)

xii ÍNDICE GENERAL11.8.3. Máquina Se uen ial Rudimentaria. . . . . . . . . . . . . . 29811.8.4. Máquina Se uen ial Algorítmi a. . . . . . . . . . . . . . . 302

Page 17: Principios de Diseño Digital (UDO)

Índi e de �guras2.1. Códigos De imales . . . . . . . . . . . . . . . . . . . . . . . . . . 232.2. Representa ión Geométri a de Códigos Binarios. . . . . . . . . . . 322.3. Sub ubo 2 de un Cubo 3 . . . . . . . . . . . . . . . . . . . . . . . 343.1. Cir uito de Alumbrado . . . . . . . . . . . . . . . . . . . . . . . . 403.2. Cir uito de Alumbrado on Interruptores en serie . . . . . . . . . 403.3. Cir uito de Alumbrado on Interruptores en paralelo . . . . . . . 403.4. Cir uito de Alumbrado on Interruptores en serie y paralelo . . . 413.5. Diagrama de Venn del Teorema de Cobertura . . . . . . . . . . . 473.6. Símbolos tradi ionales para la representa ión de fun iones lógi as 533.7. Diagrama esquemáti o para la fun ión F(x;y) = x � y + x � y � z . . 543.8. Diagrama de tiempos para la fun ión F(x;y) = x � y + x � y � z . . 543.9. Diagrama esquemáti o de ejemplo . . . . . . . . . . . . . . . . . . 563.10. Diagrama esquemáti o equivalente al de la �gura 3.9 . . . . . . . 563.11. Apli a ión grá� a del Teorema de Involu ión . . . . . . . . . . . . 573.12. Apli a ión grá� a del Teorema de De Morgan . . . . . . . . . . . 573.13. Esquemáti o de los ir uitos de Alarma . . . . . . . . . . . . . . . 603.14. Diagrama de tiempo de los ir uitos de Alarma . . . . . . . . . . 603.15. Diagrama equivalentes para un Inversor . . . . . . . . . . . . . . . 613.16. Alarma sólo on ompuertas NAND . . . . . . . . . . . . . . . . . 623.17. Alarma sólo on ompuertas NAND (Pro edimiento Grá� o) . . . 634.1. Transistor BJT en on�gura ión de emisor omún . . . . . . . . . 654.2. Transistor BJT a tuando omo inversor lógi o . . . . . . . . . . . 664.3. Comportamiento dinámi o de un transistor BJT omo Inversor . 684.4. Dos inversores en serie . . . . . . . . . . . . . . . . . . . . . . . . 684.5. Representa ión de una señal digital . . . . . . . . . . . . . . . . . 714.6. Tiempos de Propaga ión . . . . . . . . . . . . . . . . . . . . . . . 734.7. Compuerta NOR. . . . . . . . . . . . . . . . . . . . . . . . . . . . 734.8. Seguidor BJT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744.9. Diagrama de tiempos del seguidor RDL. . . . . . . . . . . . . . . 764.10. Compuerta AND RDL. . . . . . . . . . . . . . . . . . . . . . . . . 764.11. Compuerta NAND DTL. . . . . . . . . . . . . . . . . . . . . . . . 774.12. Compuerta NAND DTL (modi� ada). . . . . . . . . . . . . . . . 78xiii

Page 18: Principios de Diseño Digital (UDO)

xiv ÍNDICE DE FIGURAS4.13. Compuerta NAND DTL (�nal). . . . . . . . . . . . . . . . . . . . 784.14. Inversor TTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794.15. Compuerta NAND TTL. . . . . . . . . . . . . . . . . . . . . . . . 804.16. Niveles Lógi os TTL. . . . . . . . . . . . . . . . . . . . . . . . . . 824.17. Entradas no usadas. . . . . . . . . . . . . . . . . . . . . . . . . . 844.18. Fun ión de Transferen ia de un Disparador de S hmitt . . . . . . 844.19. Respuesta temporal de un Disparador de S hmitt. . . . . . . . . . 864.20. Inversor TTL de Cole tor Abierto. . . . . . . . . . . . . . . . . . 874.21. Apli a ión de una salida ole tor abierto. . . . . . . . . . . . . . . 874.22. Inversor TTL on salida de alta impedan ia. . . . . . . . . . . . . 884.23. Inversor CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904.24. NAND CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904.25. Inversor CMOS triestado . . . . . . . . . . . . . . . . . . . . . . . 915.1. Mapa K de in o variables . . . . . . . . . . . . . . . . . . . . . . 965.2. Mapa K de seis variables . . . . . . . . . . . . . . . . . . . . . . . 975.3. Mapa K para fun ión de ejemplo de minimiza ión . . . . . . . . . 995.4. Mapa K para la fun ión �(1; 3; 4; 5; 10; 12; 13) . . . . . . . . . . . 1005.5. Mapa K para la fun ión �(4; 5; 6; 9; 11; 13; 14; 15) . . . . . . . . . 1015.6. Mapa K redu ido para la fun ión �(4; 5; 6; 9; 11; 13; 14; 15) . . . . 1025.7. Codi� a ión de dos elementos on distan ias mínimas: 1, 2 y 3 . . 1076.1. Cerraduras Combinatoria y Se uen ial . . . . . . . . . . . . . . . 1146.2. Diagrama de Flujo para la a tiva ión de una erradura se uen ial. 1156.3. Diagrama de Estados para la erradura se uen ial. . . . . . . . . . 1166.4. Diagramas de Estado: (a) Con En lavamiento / Sin Solapamiento.(b) Sin En lavamiento / Sin Solapamiento. ( ) Con En lavamiento/ Con Solapamiento. (d) Sin En lavamiento / Con Solapamiento. 1176.5. Cerrojo SR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1186.6. Diagrama de Estados de un Cerrojo SR. . . . . . . . . . . . . . . 1196.7. Diagrama de Tiempos de un errojo SR. . . . . . . . . . . . . . . 1206.8. Cerrojo SR sin ronizado. . . . . . . . . . . . . . . . . . . . . . . . 1216.9. Cerrojo JK sin ronizado. . . . . . . . . . . . . . . . . . . . . . . . 1226.10. Diagrama de Estados de un errojo JK. . . . . . . . . . . . . . . . 1226.11. Cerrojo D sin ronizado. . . . . . . . . . . . . . . . . . . . . . . . 1236.12. Diagrama de Estados de un errojo D. . . . . . . . . . . . . . . . 1246.13. Cerrojo Maestro / Es lavo. . . . . . . . . . . . . . . . . . . . . . . 1256.14. Biestable (�ip - �op) D, on "dete tor de �an o". . . . . . . . . . 1266.15. Diagrama de Tiempos de un Biestable, tipo D, disparado por �an odelantero, usando un "dete tor de �an o". . . . . . . . . . . . . . 1276.16. Biestable disparado por �an o, de tres errojos. . . . . . . . . . . 1286.17. Cerrojo y biestable, tipo D. . . . . . . . . . . . . . . . . . . . . . . 1286.18. Cerrojo y biestable, tipo D, on entradas de puesta a 1 y 0. . . . . 128

Page 19: Principios de Diseño Digital (UDO)

ÍNDICE DE FIGURAS xv6.19. Biestable maestro / es lavo. . . . . . . . . . . . . . . . . . . . . . 1296.20. Tipos de biestables: Esquemáti os, Diagramas de Estado, Tablasde Transi ión y E ua iones de Estado Futuro. . . . . . . . . . . . 1316.21. Diagrama esquemáti o de un ir uito se uen ial. . . . . . . . . . . 1326.22. E ua iones de Ex ita ión y Salida del ir uito se uen ial. . . . . . 1336.23. Diagrama de Estados del ir uito se uen ial. . . . . . . . . . . . . 1356.24. Máquinas Mealy y Moore. . . . . . . . . . . . . . . . . . . . . . . 1366.25. Diagramas de Estado Moore y Mealy para el re ono edor dese uen ia 1001, on en lavamiento y sin solapamiento. . . . . . . 1376.26. Diagrama de Estados del Contador as endente / des endentemódulo 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1396.27. Diagramas de Estados equivalentes. . . . . . . . . . . . . . . . . . 1406.28. Diagrama de Estados para odi� a ión. . . . . . . . . . . . . . . . 1476.29. Estados odi� ados on op ión 1 de la Tabla 6.18. . . . . . . . . . 1476.30. Estados odi� ados on op ión 2 de la Tabla 6.18. . . . . . . . . . 1486.31. Codi� a ión de Estados por el riterio de prioridad en adya en ia. 1506.32. Codi� a ión de estados on el riterio de prioridad en adya en ia, onsiderando el estado ini ial omo 000. . . . . . . . . . . . . . . 1506.33. Diagrama de Estados para la erradura se uen ial. Máquina Moore on en lavamiento y sin solapamiento. . . . . . . . . . . . . . . . 1526.34. Cir uito re ono edor de la se uen ia 1001, on biestables tipo D. . 1556.35. Diagrama de tiempos del dete tor de se uen ia 1001, onen lavamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1676.36. Diagrama de Estados on orre ión de estados (Completamenteespe i� ado). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1686.37. Diagrama de Estados de una Máquina Mealy . . . . . . . . . . . . 1696.38. Diagrama Moore equivalente . . . . . . . . . . . . . . . . . . . . . 1697.1. Registro de o ho bits . . . . . . . . . . . . . . . . . . . . . . . . . 1737.2. Registro on ontrol para Set y Reset. . . . . . . . . . . . . . . . 1747.3. Registro on arga paralela . . . . . . . . . . . . . . . . . . . . . . 1757.4. Módulo Bási o de un registro on arga paralela . . . . . . . . . . 1757.5. Registro de Desplazamiento . . . . . . . . . . . . . . . . . . . . . 1767.6. Registro General . . . . . . . . . . . . . . . . . . . . . . . . . . . 1767.7. Contador Asin róni o . . . . . . . . . . . . . . . . . . . . . . . . . 1787.8. Diagrama de tiempos del ontador asin róni o . . . . . . . . . . . 1787.9. Contador Asin róni o As endente . . . . . . . . . . . . . . . . . . 1797.10. Contador Sin róni o As endente . . . . . . . . . . . . . . . . . . . 1807.11. Contador Sin róni o Des endente . . . . . . . . . . . . . . . . . . 1817.12. Contador Sin róni o As endente / Des endente . . . . . . . . . . 1837.13. Contador Sin róni o As endente / Des endente on arga paralela 1847.14. Contador Sin róni o BCD . . . . . . . . . . . . . . . . . . . . . . 1857.15. Ban o de Registros . . . . . . . . . . . . . . . . . . . . . . . . . . 186

Page 20: Principios de Diseño Digital (UDO)

xvi ÍNDICE DE FIGURAS8.1. Cir uito e implementa ión en el ámbito de integrados . . . . . . . 1928.2. Cir uito desarrollado on ompuertas NAND. . . . . . . . . . . . 1938.3. Sumador in ompleto (semi-sumador) . . . . . . . . . . . . . . . . 1948.4. Sumador ompleto . . . . . . . . . . . . . . . . . . . . . . . . . . 1968.5. Sumador ompleto de 4 bits . . . . . . . . . . . . . . . . . . . . . 1978.6. Sumador. Diagrama de tiempos . . . . . . . . . . . . . . . . . . . 1988.7. Sumador. Opera ión par ial en t0 . . . . . . . . . . . . . . . . . . 1988.8. Sumador. Opera ión par ial en t1 . . . . . . . . . . . . . . . . . . 1998.9. Sumador. Opera ión par ial en t2 . . . . . . . . . . . . . . . . . . 1998.10. Sumador. Opera ión par ial en t3 . . . . . . . . . . . . . . . . . . 2008.11. Sumador. Opera ión par ial en t4 . . . . . . . . . . . . . . . . . . 2008.12. De odi� ador 2 a 4 . . . . . . . . . . . . . . . . . . . . . . . . . . 2018.13. De odi� ador 3 a 8 . . . . . . . . . . . . . . . . . . . . . . . . . . 2048.14. Multiplexor 4 a 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 2058.15. Multipli ador por 3 . . . . . . . . . . . . . . . . . . . . . . . . . . 2078.16. Multiplexor 8 a 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 2098.17. Comparador simple de n bits . . . . . . . . . . . . . . . . . . . . 2108.18. Comparador de 4 bits, generando F = A > B . . . . . . . . . . . 2118.19. Comparador de 4 bits, generando F = A > B, on a arreo desdelos bits menos signi� ativos . . . . . . . . . . . . . . . . . . . . . 2128.20. Estru tura de una ROM . . . . . . . . . . . . . . . . . . . . . . . 2148.21. Estru tura de una FPAL . . . . . . . . . . . . . . . . . . . . . . . 2228.22. Estru tura de una AND y fusibles de programa ión . . . . . . . . 2238.23. Estru tura de una ROM . . . . . . . . . . . . . . . . . . . . . . . 2248.24. Estru tura de una PAL . . . . . . . . . . . . . . . . . . . . . . . . 2258.25. Estru tura ompleta de una FPAL . . . . . . . . . . . . . . . . . 2268.26. Estru tura para la denomina ión de una PAL . . . . . . . . . . . 2278.27. Ambiente CAE para Diseño Digital . . . . . . . . . . . . . . . . . 2299.1. Diagramas de Estado, para una máquina Moore, del re ono edorde se uen ia 1001: (a) Con En lavamiento / Sin Solapamiento. (b)Sin En lavamiento / Sin Solapamiento. ( ) Con En lavamiento /Con Solapamiento. (d) Sin En lavamiento / Con Solapamiento. . 2329.2. Re ono edor de Se uen ia 1001. Diseño Clási o. . . . . . . . . . . 2359.3. Re ono edor de Se uen ia 1001. Diseño on De odi� ador y Registro.2369.4. Re ono edor de Se uen ia 1001. Diseño on Multiplexor Redu ido. 2389.5. Diagramas de Estado, para una máquina Moore, del re ono edorde se uen ia 1001, on En lavamiento, sin Solapamiento y on orre ión de estado. . . . . . . . . . . . . . . . . . . . . . . . . . 2399.6. Re ono edor de Se uen ia 1001. Diseño on PROM. . . . . . . . . 2409.7. Re ono edor de Se uen ia 1001. Diseño on FPAL. . . . . . . . . 24110.1. Sumador binario on distribu ión en el espa io . . . . . . . . . . . 245

Page 21: Principios de Diseño Digital (UDO)

ÍNDICE DE FIGURAS xvii10.2. Pro eso de Suma . . . . . . . . . . . . . . . . . . . . . . . . . . . 24610.3. Diagrama de Estados de un sumador serial de 1 bit. . . . . . . . . 24610.4. Diagrama de Estados de un sumador serial de 1 bit on entrada dereposi ión y habilita ión. . . . . . . . . . . . . . . . . . . . . . . . 24710.5. Sumador serial de 1 bit on entrada de reposi ión. . . . . . . . . . 24810.6. Diagrama de Bloques de una ASM . . . . . . . . . . . . . . . . . 25010.7. Elementos de un Diagrama ASM . . . . . . . . . . . . . . . . . . 25010.8. Ejemplo de un Diagrama ASM . . . . . . . . . . . . . . . . . . . 25110.9. Cir uito del ejemplo de un Diagrama ASM . . . . . . . . . . . . . 25310.10.Pro esador de Datos de un Sumador Serial de n bits . . . . . . . 25410.11.Diagrama ASM para el Sumador Serial de n bits . . . . . . . . . . 25610.12.Diagrama esquemáti o del Sumador Serial de n bits . . . . . . . . 25810.13.Diagrama del Pro esador de Datos del Multipli ador por sumassu esivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26010.14.Diagrama ASM para el Multipli ador Serial de n bits . . . . . . . 26310.15.Diagrama del Pro esador de Datos y Control del Multipli ador porsumas su esivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26511.1. Diagrama Cir uital . . . . . . . . . . . . . . . . . . . . . . . . . . 26711.2. Diagrama Cir uital . . . . . . . . . . . . . . . . . . . . . . . . . . 26811.3. Diagrama Cir uital de un omparador de 4 bits . . . . . . . . . . 26911.4. Diagrama Cir uital de una ompuerta AND . . . . . . . . . . . . 27411.5. Compuerta AND on "instrumentos" de simula ión. . . . . . . . . 27511.6. Corrida de Simula ión de una ompuerta AND . . . . . . . . . . . 27511.7. Corrida de Simula ión de una ompuerta AND, on Verilog . . . . 27911.8. Simula ión de una ompuerta AND, on retardo . . . . . . . . . . 28311.9. Diagrama Esquemáti o de un multiplexor 2 a 1 on entrada dehabilita ión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28411.10.Visualiza ión de la simula ión para un mux 2 a 1. . . . . . . . . . 28511.11.Visualiza ión de la simula ión para un mux 2 a 1, modelado a niveldel omportamiento . . . . . . . . . . . . . . . . . . . . . . . . . . 28711.12.Visualiza ión de la simula ión para un mux 2 a 1, modelado a niveldel omportamiento on asigna ión ondi ional . . . . . . . . . . . 28811.13.Visualiza ión de la simula ión para un mux 2 a 1, modelado a niveldel omportamiento (estru tura ase) . . . . . . . . . . . . . . . . 28911.14.Visualiza ión de la simula ión para un mux 2 a 1, modelado a nivelfun ional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29011.15.Simula ión para un uádruple multiplexor 2 a 1 . . . . . . . . . . 29211.16.Simula ión para un sumador de 4 bits . . . . . . . . . . . . . . . . 29411.17.Biestable tipo D . . . . . . . . . . . . . . . . . . . . . . . . . . . 29511.18.Simula ión para un biestable tipo D . . . . . . . . . . . . . . . . . 29611.19.Simula ión para un Registro Multifun ional . . . . . . . . . . . . 29911.20.Diagrama de Estados para re ono edor de se uen ia 1001. . . . . 300

Page 22: Principios de Diseño Digital (UDO)

xviii ÍNDICE DE FIGURAS11.21.Simula ión para un Re ono edor de se uen ia (1001 ). . . . . . . . 30311.22.Diagrama de bloques de un multipli ador por sumas su esivas. . . 30511.23.Diagrama ASM del Pro esador de Control. . . . . . . . . . . . . . 30611.24.Simula ión para el Multipli ador . . . . . . . . . . . . . . . . . . . 311

Page 23: Principios de Diseño Digital (UDO)

Índi e de uadros1.1. Digitos O tales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2. Digitos Hexade imales . . . . . . . . . . . . . . . . . . . . . . . . 31.3. Ejemplo de Conversión de Bases. . . . . . . . . . . . . . . . . . . 51.4. Conversión de algunas Fra iones. . . . . . . . . . . . . . . . . . . 61.5. Conversión de Fra iones (De imales a Binarias). . . . . . . . . . 71.6. Tabla de Sumas De imales. . . . . . . . . . . . . . . . . . . . . . . 101.7. Tabla de Restas De imales. . . . . . . . . . . . . . . . . . . . . . 111.8. Tabla de Sumas Binarias. . . . . . . . . . . . . . . . . . . . . . . 121.9. Tabla de Restas Binarias. . . . . . . . . . . . . . . . . . . . . . . 121.10. Ejemplo de Complementos a 10. . . . . . . . . . . . . . . . . . . . 141.11. Ejemplo de Complementos a 2. . . . . . . . . . . . . . . . . . . . 161.12. Ejemplo de Complementos a 9. . . . . . . . . . . . . . . . . . . . 171.13. Ejemplo de Complementos a 1. . . . . . . . . . . . . . . . . . . . 191.14. Resumen de Complementos. . . . . . . . . . . . . . . . . . . . . . 202.1. Códigos De imales Posi ionales No Simétri os . . . . . . . . . . . 242.2. Códigos De imales Posi ionales No Simétri os . . . . . . . . . . . 252.3. Código De imal Ex eso 3 . . . . . . . . . . . . . . . . . . . . . . . 282.4. Código De imal Uno de Diez . . . . . . . . . . . . . . . . . . . . . 282.5. Código Gray de dos bits . . . . . . . . . . . . . . . . . . . . . . . 292.6. Constru ión de un Código Gray de dos bits . . . . . . . . . . . . 292.7. Constru ión de un Código Gray de 3 bits . . . . . . . . . . . . . 292.8. Código ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.9. Distan ias del Código NBCD . . . . . . . . . . . . . . . . . . . . 332.10. Paridad para el Código NBCD . . . . . . . . . . . . . . . . . . . . 352.11. Distan ias del Código NBCD on Paridad Par . . . . . . . . . . . 362.12. Código de Distan ia Mínima 3 para dígitos De imales . . . . . . . 372.13. Distan ias Mínimas, errores orregibles y dete tables . . . . . . . 383.1. Cone tivos Binarios . . . . . . . . . . . . . . . . . . . . . . . . . . 423.2. Evalua ión de la fun ión Z = A �B ) C . . . . . . . . . . . . . . 433.3. Evalua ión de una fun ión Tautológi a (Z = A �B ) B) . . . . . 443.4. Axiomas del Álgebra de Boole . . . . . . . . . . . . . . . . . . . . 453.5. Teoremas de una sola variable . . . . . . . . . . . . . . . . . . . . 46xix

Page 24: Principios de Diseño Digital (UDO)

xx ÍNDICE DE CUADROS3.6. Teoremas de dos variables . . . . . . . . . . . . . . . . . . . . . . 473.7. Teoremas generalizados de n variables . . . . . . . . . . . . . . . 493.8. Términos mínimos y máximos para dos variables . . . . . . . . . . 513.9. Términos mínimos y máximos para tres variables . . . . . . . . . 523.10. Tabla de Verdad para la fun ión F(x;y) = x � y + x � y � z . . . . . 553.11. Fun ión NAND on B = A . . . . . . . . . . . . . . . . . . . . . . 614.1. Tabla de datos para el Signeti s TTL Hex Inverter . . . . . . . . . 704.2. Opera ión de la Compuerta AND RDL . . . . . . . . . . . . . . . 754.3. Tabla de Opera ión de una ompuerta NAND CMOS . . . . . . . 915.1. Mapa K de dos variables . . . . . . . . . . . . . . . . . . . . . . . 945.2. Mapa K de tres variables . . . . . . . . . . . . . . . . . . . . . . . 945.3. Otros mapas K de tres variables . . . . . . . . . . . . . . . . . . . 955.4. Mapa K de uatro variables . . . . . . . . . . . . . . . . . . . . . 955.5. Mapa K de in o variables . . . . . . . . . . . . . . . . . . . . . . 965.6. Mapa K de seis variables . . . . . . . . . . . . . . . . . . . . . . . 975.7. Método de Quine - M Kluskey . . . . . . . . . . . . . . . . . . . . 1035.8. Sele ión de un onjunto de Impli antes Primos . . . . . . . . . . 1035.9. Código Gray de 3 bits . . . . . . . . . . . . . . . . . . . . . . . . 1055.10. Códigos de Hamming para 1, 2, 3 y 4 bits . . . . . . . . . . . . . 1096.1. Tabla de Verdad para una erradura ombinatoria on a tiva iónen 1001. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1146.2. Tabla de Transi ión de los uatro sistemas anteriores frente a unase uen ia de datos de entrada. . . . . . . . . . . . . . . . . . . . . 1186.3. Tabla de Opera ión de un Cerrojo SR. . . . . . . . . . . . . . . . 1196.4. Tabla de Opera ión de un Cerrojo JK sin ronizado. . . . . . . . . 1226.5. Tabla de Opera ión de un Cerrojo D sin ronizado. . . . . . . . . 1236.6. Tabla de Ex ita ión del ir uito se uen ial. . . . . . . . . . . . . . 1336.7. Tabla de Salida del ir uito se uen ial. . . . . . . . . . . . . . . . 1336.8. Tabla de Transi ión y E ua ión de Estado Futuro del biestable JK. 1346.9. Tabla de Transi iones del ir uito se uen ial. . . . . . . . . . . . . 1346.10. Tabla de Estados Futuros del ir uito se uen ial. . . . . . . . . . . 1356.11. Tabla de Estados Futuros / Salidas para el Diagramas de Estadosuperior de la �gura 6.27. . . . . . . . . . . . . . . . . . . . . . . 1416.12. Tabla de Estados Futuros / Salidas para el Diagramas de Estadoinferior de la �gura 6.27. . . . . . . . . . . . . . . . . . . . . . . . 1416.13. Se uen ia de estados y salidas, de dos sistemas, para una misma ombina ión de entradas. . . . . . . . . . . . . . . . . . . . . . . . 1416.14. Forma ión de grupos para estable er lases de equivalen ias. . . . 1436.15. Forma ión de nuevos grupos para estable er lases de equivalen ias. 143

Page 25: Principios de Diseño Digital (UDO)

ÍNDICE DE CUADROS xxi6.16. Tablas de Estados Futuros / Salidas equivalente a la de la Tabla6.11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1446.17. Tablas on apli a ión del método de Elimina ión de Filas. . . . . 1456.18. Diferentes posibilidades de odi� ar un grupo de 4 estados usando2 bits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1466.19. Tabla de Estados Futuros y Salida para la máquina Moore onen lavamiento y sin solapamiento. . . . . . . . . . . . . . . . . . . 1536.20. Tabla de Transi ión y E ua ión de Estado Futuro para el bit 2 dela máquina Moore on en lavamiento y sin solapamiento. . . . . . 1546.21. Tabla de Transi ión y E ua ión de Estado Futuro para el bit 1 dela máquina Moore on en lavamiento y sin solapamiento. . . . . . 1546.22. Tabla de Transi ión y E ua ión de Estado Futuro para el bit 0 dela máquina Moore on en lavamiento y sin solapamiento. . . . . . 1566.23. Tabla de Transi ión y Requerimientos de Ex ita ión para lamáquina Moore on en lavamiento y sin solapamiento. . . . . . . 1576.24. Tabla de requerimientos de ex ita ión para T2. . . . . . . . . . . . 1586.25. Tabla de requerimientos de ex ita ión para T1. . . . . . . . . . . . 1586.26. Tabla de requerimientos de ex ita ión para T0. . . . . . . . . . . . 1586.27. Tabla de Transi ión y Requerimientos de Ex ita ión para lamáquina Moore on en lavamiento y sin solapamiento. . . . . . . 1606.28. Tabla de requerimientos de ex ita ión para el biestable 2 (SR). . 1616.29. Tabla de requerimientos de ex ita ión para el biestable 1 (SR). . 1616.30. Tabla de requerimientos de ex ita ión para el biestable 0 (SR). . 1626.31. Tabla de Transi ión y Requerimientos de Ex ita ión para lamáquina Moore on en lavamiento y sin solapamiento. . . . . . . 1636.32. Tabla de requerimientos de ex ita ión para el biestable 2 (JK ). . 1646.33. Tabla de requerimientos de ex ita ión para el biestable 1 (JK ). . 1646.34. Tabla de requerimientos de ex ita ión para el biestable 0 (JK ). . 1656.35. Tabla de Transi iones . . . . . . . . . . . . . . . . . . . . . . . . . 1706.36. Tabla de Estados . . . . . . . . . . . . . . . . . . . . . . . . . . . 1717.1. Opera ión del Registro General . . . . . . . . . . . . . . . . . . . 1777.2. Tabla de estados para un ontador sin róni o as endente de uatrobits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1807.3. Pila . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1897.4. Pila . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1908.1. Tabla para un sumador de números de 2 bits . . . . . . . . . . . . 1968.2. De odi� ador 2 a 4 . . . . . . . . . . . . . . . . . . . . . . . . . . 2028.3. ROMs Comer iales . . . . . . . . . . . . . . . . . . . . . . . . . . 2168.4. Ar hivo de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 2198.5. PAL. Dispositivos omúnes . . . . . . . . . . . . . . . . . . . . . . 227

Page 26: Principios de Diseño Digital (UDO)

xxii ÍNDICE DE CUADROS9.1. Programa ión de PAL. . . . . . . . . . . . . . . . . . . . . . . . . 24010.1. Nota ión de Transferen ia entre Registros . . . . . . . . . . . . . 24410.2. Tabla de estados para el sumador serial de 1 bit . . . . . . . . . . 24610.3. Tabla de estados para el sumador serial de 1 bit on entrada dereposi ión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24711.2. Retardos de Transi ión . . . . . . . . . . . . . . . . . . . . . . . . 280

Page 27: Principios de Diseño Digital (UDO)

Capítulo 1Sistemas Numéri os.1.1. Sistemas Numéri os Posi ionales.En estos sistemas, un número es representado por una adena de dígitos, endonde ada posi ión para un dígito tiene asignado un peso. El valor del númeroes la suma ponderada de ada uno de los dígitos.1234 = 1 � 1000 + 2 � 100 + 3 � 10 + 4 � 1 = 1 � 103 + 2 � 102 + 3 � 101 + 4 � 100Cada peso es una poten ia de 10 orrespondiente a la posi ión del dígito. Eneste aso, nos estamos re�riendo al Sistema De imal, uyo número base es 10. Elpunto de imal, relativo al sistema en base 10, permite utilizar poten ias de 10positivas y negativas.1234;567 = 1 � 103 + 2 � 102 + 3 � 101 + 4 � 100 + 5 � 10�1 + 6 � 10�2 + 7 � 10�3En general, un Sistema Numéri o Posi ional puede tener omo base ualquierentero r, y un dígito en posi ión i tendrá un peso ri . De esta forma, podemosexpresar ualquier número de n dígitos enteros y p dígitos fra ionarios omoan�1an�2 � � �a1a0:a�1a�2 � � �a�py su valor orresponderá a V = Pn�1k=�p ak � bkdonde ada dígitoai ( oe� iente de la expresión) orresponde a un entero en el onjunto{0, 1, ..., r-1}.En el trabajo de Carl Boyer titulado "Una Historia de las Matemáti as" (NewYork; Wiley, 1968, pág. 3), nos relata que en un estudio de la tribus indígenasde Améri a sobre el uso de Sistemas Numéri o, se en ontraba una distribu ión1

Page 28: Principios de Diseño Digital (UDO)

2aproximada de : 33% Sistema De imal, 33% Sistema quinario (base 5), 23%Sistema Binario (base 2), 10% Sistema Vigésimal (base 20) y 1% Sistema Ternario(base 3). Por otra parte, también indi a, que el Sistema De imal, el sistema demayor uso hoy, se basa en el Sistema Hindú y fue introdu ido posteriormenteen Arabia por el matemáti o y astrónomo árabe Mohammed ibn - Musa al -Khowarizmi, responsable del error ampliamente difundido que nuestro sistemanuméri o es de origen árabe (Números Arábi os). El término algoritmo provienedel nombre de este matemáti o.1.2. Números Binarios (Base 2).Los números de imales (base 10) son importantes debido a que son los de usodiario en todas nuestras a tividades. No obstante, en un ir uito ele tróni o es muysen illo distinguir el valor de una señal entre solo dos ondi iones : en endido /apagado, argado / des argado, nivel alto / nivel bajo, et . De esta forma, la basebinaria es normalmente la que se utiliza en Sistemas Digitales Ele tróni os parala representa ión de números, ara teres, omandos y otro tipo de informa ión.La forma general de un número binario se representa omobn�1bn�2 � � � b1b0:b�1b�2 � � � b�py su valor es V = Pn�1k=�p bk � 2ken donde ada dígito orresponde a un elemento del onjunto {0, 1} y se le ono e on la sigla inglesa de bit (binary digit).Normalmente, la adena de dígitos que representa a un número en una basediferente a 10 se a ompaña on un su�jo que indi a la base, a menos que esta sedesprenda laramente del ontexto. Por ejemplo,1010;012 = 1�23+0�22+1�21+0�20+0�2�1+1�2�2 = 8+2+0;25 = 10;25101.3. Números O tales (Base 8).El sistema Numéri o O tal, aunque hoy de uso po o fre uente en el área de losSistemas Digitales y Computa ión, representa un guarismo de manera mu ho más ómoda que el Sistema Binario, al trabajar on 8 dígitos (0..7), en lugar de dos.Debido a que 8 es una poten ia exa ta de 2 (23 = 8), una adena de tres bits, queposee omo máximo o ho ombina iones, resulta tener una representa ión úni aen el Sistema O tal omo se desprende del uadro 1.1.

Page 29: Principios de Diseño Digital (UDO)

1.4. NÚMEROS HEXADECIMALES (BASE 16). 3Cuadro 1.1: Digitos O talesBinario O tal000 0001 1010 2011 3100 4101 5110 6111 7De esta forma resulta muy sen illo realizar la onversión de un número debinario a o tal. Basta on tomar los bits en grupos de a tres, omenzando desdela posi ión menos signi� ativa o desde el punto binario, y asignarle dire tamente a ada grupo su orrespondiente valor o tal, omo se observa en el ejemplo siguiente10101100111002 = 010 101 100 111 0002 = 2547081.4. Números Hexade imales (Base 16).El Sistema Numéri o Hexade imal representa un guarismo de manera mu homás ómoda que el Sistema Binario y que el O tal, al trabajar on 16 dígitos(0..9, A..F ), en lugar de los dos u o ho anteriores. Igualmente, debido a que 16es una poten ia exa ta de 2 (24 = 16), una adena de uatro bits que posee omo máximo die iséis ombina iones, resulta tener una representa ión úni a enel Sistema Hexade imal omo se desprende del uadro 1.2.Cuadro 1.2: Digitos Hexade imalesBinario Hexade imal Binario Hexade imal0000 0 1000 80001 1 1001 90010 2 1010 A0011 3 1011 B0100 4 1100 C0101 5 1101 D0110 6 1110 E0111 7 1111 F

Page 30: Principios de Diseño Digital (UDO)

4 De esta forma resulta muy sen illo realizar la onversión de un númerode binario a Hexade imal. Basta on tomar los bits en grupos de a uatro, omenzando desde la posi ión menos signi� ativa o desde el punto binario, yasignarle dire tamente a ada grupo su valor Hexade imal ade uado, omo seobserva en el ejemplo siguiente10101100111002 = 0010 1011 0011 10002 = 2B38161.5. Conversión entre Sistemas Numéri os.La onversión de un número entre dos raí es, en general no se puedeha er simplemente on substitu ión, omo en el aso Binario - O tal óBinario - Hexade imal. Normalmente se requieren algunas opera iones aritméti asadi ionales.1.5.1. Conversión de enteros.En las se iones anteriores hemos usado una expresión aritméti a pararepresentar el valor de imal de un número en ualquier base rV = Pn�1k=�p ak � rkPrimero tomaremos sólo la parte entera (desde k = 0)V = Pn�1k=0 ak � rkexpresión que la podemos expandir omo sigueV = an�1rn�1 + an�2rn�2 + :::+ a1r + a0= (an�1rn�2 + an�2rn�3 + :::+ a1)r + a0Debido a que el primer miembro es divisible por r, el uo iente de dividir Ventre r será Q = an�1rn�2 + an�2rn�3 + ::: + a1y tendremos un resto de a0. Hemos obtenido a0 y la formula resultado aún ontienela misma estru tura que la original. Enton es, su esivas divisiones por r nos darána1; :::; an�1. Ejempli�quemos el pro edimiento realizando la onversión de 123410a bases 2, 8 y 16, omo se apre ia en el uadro 1.3.De esta forma, 123410 = 10011010102 = 23228 = 4D216

Page 31: Principios de Diseño Digital (UDO)

1.5. CONVERSIÓN ENTRE SISTEMAS NUMÉRICOS. 5Cuadro 1.3: Ejemplo de Conversión de Bases.De imal a Binario De imal a O tal De imal a Hexade imalOpera ión Residuo Opera ión Residuo Opera ión Residuo1234� 2 = 617 0 1234� 8 = 154 2 1234� 16 = 77 2617� 2 = 308 1 154� 8 = 19 2 77� 16 = 4 D308� 2 = 154 0 19� 8 = 2 3 4� 16 = 0 4154� 2 = 77 0 2� 8 = 0 277� 2 = 38 138� 2 = 19 019� 2 = 9 19� 2 = 4 14� 2 = 2 02� 2 = 1 01� 2 = 0 11.5.2. Conversión de fra iones.1.5.2.1. Conversión de fra iones de imales a binarias.Algunas fra iones de imales pueden ser onvertidas exa tamente a suequivalente en otra base, omo se muestra en el uadro 1.4.El aso parti ular de la onversión entre base 10 y 2 nos permite rear unatabla un po o más detallada ( omo se apre ia en el uadro 1.5).Una fra ión de imal F que no sea exa tamente equivalente a 1=2n puede ser onvertida a una representa ión equivalente en base 2, asumiendo que F será iguala una suma de fra iones binarias omo las listadas en el uadro 1.5. Por ejemplo,0;75 = 0;5 + 0;25= 1=2 + 1=4= 1=21 + 1=22= 1 � 2�1 + 1 � 2�2= 0;12 + 0;012= 0;1120;375 = 0;25 + 0;125 = 1=4 + 1=8 = 1=22 + 1=23 = 1 � 2�2 + 1 � 2�3= 0;012 + 0;0012= 0;0112Sin embargo, no todas las fra iones de imales tienen una representa iónexa ta en base 2 y el grado de pre isión dependerá de la antidad de bits utilizadosen su representa ión binaria. Por ejemplo,

Page 32: Principios de Diseño Digital (UDO)

6Cuadro1.4:ConversióndealgunasFra iones.

Fra ión De imal Fra ión Binaria Fra ión O tal Fra ión Hexade imal1=16 = 0;0625 1=24 = 2�4 = 0;0001 4=82 = 4 � 8�2 = 0;04 1=161 = 16�1 = 0;11=256 = 0;00390625 1=28 = 2�8 = 0;00000001 2=83 = 2 � 8�3 = 0;002 8=162 = 8 � 16�2 = 0;081=512 = 0;000244140625 1=29 = 2�9 = 0;000000001 1=83 = 8�3 = 0;001 1=163 = 16�3 = 0;001

Page 33: Principios de Diseño Digital (UDO)

1.5. CONVERSIÓN ENTRE SISTEMAS NUMÉRICOS. 7Cuadro 1.5: Conversión de Fra iones (De imales a Binarias).Fra ión De imal Fra ión Binaria1=2 = 0;5 1=21 = 2�1 = 0;11=4 = 0;25 1=22 = 2�2 = 0;011=8 = 0;125 1=23 = 2�3 = 0;0011=16 = 0;0625 1=24 = 2�4 = 0;00011=32 = 0;0625 1=25 = 2�5 = 0;000011=64 = 0;0625 1=26 = 2�6 = 0;0000011=128 = 0;0625 1=27 = 2�7 = 0;00000011=256 = 0;0625 1=28 = 2�8 = 0;000000011=512 = 0;0625 1=29 = 2�9 = 0;0000000011=1024 = 0;0625 1=210 = 2�10 = 0;000000010;66 = 0;5 + 0;125 + 0;03125 + :::= 1=2 + 1=8 + 1=32 + :::= 1=21 + 1=23 + 1=25 + :::= 1 � 2�1 + 1 � 2�3 + 1 � 2�5 + :::= 0;1 + 0;001 + 0;00001 + :::= 0;10101:::2Por otra parte, ya que un entero de imal puede ser onvertido a su equivalentebinario por un pro eso de divisiones su esivas entre 2, es razonable pensar que unafra ión de imal pueda ser onvertida a su equivalente binaria por un pro eso demultipli a iones su esivas por 2. En efe to, uando este pro eso último, al an euna fra ión de imal ero, en algún punto, la fra ión de imal original posee unarepresenta ión exa ta en base 2. Ilustraremos este pro eso onvirtiendo 0.375 a suequivalente binario,0;375 � 2 = 0;7500;750 � 2 = 1;500 ; en la pr�oxima opera i�on s�olo la parte fra ionaria:0;500 � 2 = 1;000 ; pro eso finalizado al al anzar una fra i�on ero:Así, 0;37510 = 0;0112 .Si el pro eso de onversión de imal a binario no resulta en una fra ión de imal ero en algún punto, la fra ión de imal original no tiene una representa ión exa taen base 2, omo se apre ia en el ejemplo siguiente,

Page 34: Principios de Diseño Digital (UDO)

8 0;66 � 2 = 1;320;32 � 2 = 0;640;64 � 2 = 1;280;28 � 2 = 0;560;56 � 2 = 1;120;12 � 2 = 0;240;24 � 2 = 0;480;48 � 2 = :::Así, 0;6610 = 0;1010100:::2 .Lo anteriormente des rito, lo podemos expresar de manera algebrai a omosigue. Sea F una fra ión de imal y asumamos que posee una representa iónbinaria, enton es F = b�12�1 + b�22�2 + b�32�3 + b�42�4 + ::::Si multipli amos ambos lados de la e ua ión por 2, obtenemos2F = b�1 + b�22�1 + b�32�2 + b�42�3 + :::: = b�1 + F1donde b�1 es el primer dígito de la parte fra ionaria y F1 es una nueva fra iónde imal. F1 = b�22�1 + b�32�2 + b�42�3 + ::::Debido a que F < 1, se desprende que 2F = b�1 + F1 < 2, de donde b�1 solopuede tomar los valores 0 ó 1 y la fra ión F1 es menor que 1 (F1 < 1).El pro eso se repite, para aislar ada bi , hasta que Fi se haga ero, o losu� ientemente er ana a ero, dependiendo del grado de pre isión requerido.1.5.2.2. Conversión de fra iones binarias a de imales .Una fra ión binaria puede ser onvertida a su equivalente de imal formandola suma de los produ tos obtenidos al multipli ar ada oe� iente por la respe tivapoten ia negativa de dos. Para ilustrar onvertiremos la fra ión binaria 0;01120;0112 = 0 � 2�1 + 1 � 2�2 + 1 � 2�3 = 0 + 0;25 + 0;125 = 0;37510

Page 35: Principios de Diseño Digital (UDO)

1.6. ADICIÓN Y SUBSTRACCIÓN DE NÚMEROS ENTEROS POSITIVOS.91.6. Adi ión y Substra ión de Números EnterosPositivos.La habilidad para desarrollar las opera iones de adi ión y substra ión (así omo también, las de multipli a ión y división), que hemos adquirido desde laes uela bási a, nos han llevado, generalmente, a olvidar el signi� ado de las reglasinvolu radas en estos pro esos, así omo los me anismos de apli a ión (re ordemoslas tablas de opera iones). Haremos men ión a estas últimas en el sistema de imal,para luego, por analogía, estable er las reglas para operar en bases diferentes a10.1.6.1. Adi ión y Substra ión de Números De imales.Dos enteros de imales A y B , de n+1 y m+1 dígitos respe tivamente, puedenser sumados es ribiendoA +B = [an10n + an�110n�1 + :::+ a1101 + a0100℄ +[bm10m + bm�110m�1 + :::+ b1101 + b0100℄sa ando fa tores omunes, y suponiendo que n >m , arribamos �nalmente a:A+B = an10n + an�110n�1 + :::+ (am + bm)10m +(am�1 + bm�1)10m�1 + :::+ (a1 + b1)101 + (a0 + b0)100Es importante notar que si la suma ai + bi, para ualquier poten ia, es mayoro igual a 10, enton es el ex eso es sumado de manera unitaria en la poten ia másalta siguiente.Por ejemplo, sea A = 357 y B = 61, enton es la suma es obtenida omo sigueA+B = 357 + 61= [3 � 102 + 5 � 101 + 7 � 100℄ + [6 � 101 + 1 � 100℄= 3 � 102 + (5 + 6)101 + (7 + 1)100= 3 � 102 + (11)101 + (8)100= 3 � 102 + (10 + 1)101 + 8 � 100= 3 � 102 + (10 � 101 + 1 � 101) + 8 � 100= 3 � 102 + 1 � 102 + 1 � 101 + 8 � 100= (3 + 1)102 + 1 � 101 + 8 � 100= 4 � 102 + 1 � 101 + 8 � 100= 400 + 10 + 8= 418

Page 36: Principios de Diseño Digital (UDO)

10 Cuadro 1.6: Tabla de Sumas De imales.+ 0 1 2 3 4 5 6 7 8 90 0 1 2 3 4 5 6 7 8 91 1 2 3 4 5 6 7 8 9 102 2 3 4 5 6 7 8 9 10 113 3 4 5 6 7 8 9 10 11 124 4 5 6 7 8 9 10 11 12 135 5 6 7 8 9 10 11 12 13 146 6 7 8 9 10 11 12 13 14 157 7 8 9 10 11 12 13 14 15 168 8 9 10 11 12 13 14 15 16 179 9 10 11 12 13 14 15 16 17 18*Se han resaltado los asos donde se produ e a arreo a la posi ión inmediatasuperior.A lo largo del pro eso anterior hemos he ho uso de la tabla de suma paranúmeros de imales, omo la que se muestra en el uadro 1.6.Por otra parte, la opera ión aritméti a de substra ión de dos números enterospositivos en base 10 también es fá il de realizar es ribiendoA�B = [an10n + an�110n�1 + :::+ a1101 + a0100℄�[bm10m + bm�110m�1 + :::+ b1101 + b0100℄sa ando fa tores omunes, y suponiendo que n >m , arribamos �nalmente aA�B = an10n + an�110n�1 + :::+ (am � bm)10m + (am�1 � bm�1)10m�1 + :::+(a1 � b1)101 + (a0 � b0)100Es importante notar que si en la resta ai � bi , para ualquier poten ia, bi esmayor que ai , enton es es ne esario "pedir prestado" a la poten ia inmediatasuperior una unidad de esta, por onsiguiente disminuyéndola en uno. En este aso la resta se transforma en 10 + ai � bi .Por ejemplo, usando los mismos valores numéri os que para el aso de la suma,desarrollemos

Page 37: Principios de Diseño Digital (UDO)

1.6. ADICIÓN Y SUBSTRACCIÓN DE NÚMEROS ENTEROS POSITIVOS.11A� B = 357� 61= [3 � 102 + 5 � 101 + 7 � 100℄� [6 � 101 + 1 � 100℄= 3 � 102 + (5� 6)101 + (7� 1)100= (3� 1)102 + (10 + 5� 6)101 + (6)100= 2 � 102 + 9 � 101 + 6 � 100= 200 + 90 + 6= 296A lo largo del pro eso anterior hemos he ho uso de la tabla de resta paranúmeros de imales, omo la que se muestra en el uadro 1.7. Donde se hanresaltado los asos donde se produ e "un presto" a la posi ión inmediata inferior.Cuadro 1.7: Tabla de Restas De imales.+ 0 1 2 3 4 5 6 7 8 90 0 10-1 10-2 10-3 10-4 10-5 10-6 10-7 10-8 10-91 1 0 10+1-2 10+1-3 10+1-4 10+1-5 10+1-6 10+1-7 10+1-8 10+1-92 2 1 0 10+2-3 10+2-4 10+2-5 10+2-6 10+2-7 10+2-8 10+2-93 3 2 1 0 10+3-4 10+3-5 10+3-6 10+3-7 10+3-8 10+3-94 4 3 2 1 0 10+4-5 10+4-6 10+4-7 10+4-8 10+4-95 5 4 3 2 1 0 10+5-6 10+5-7 10+5-8 10+5-96 6 5 4 3 2 1 0 10+6-7 10+6-8 10+6-97 7 6 5 4 3 2 1 0 10+7-8 10+7-98 8 7 6 5 4 3 2 1 0 10+8-99 9 8 7 6 5 4 3 2 1 01.6.2. Adi ión y Substra ión de Números Binarios.Estas opera iones aritméti as usan las mismas té ni as que hemos ono idodesde la Es uela Bási a, on la úni a diferen ia que ambian las tablas orrespondientes de opera ión.En el uadro 1.8 se ha representado la tabla para la suma, tomando en uentatodas las posibles ombina iones de dos números binarios x e y, de un bit adauno, generando el resultado s y su a arreo .Utili emos la tabla de suma para realizar un problema de ejemplo. En ontrarel resultado de la suma binaria entre 1110 y 1011A arreo 1 1 1x 1 1 1 0y 1 0 1 1Resultado 1 1 0 0 1

Page 38: Principios de Diseño Digital (UDO)

12 Cuadro 1.8: Tabla de Sumas Binarias.x+yx y s0 0 0 00 1 0 11 0 0 11 1 1 0De igual manera podemos onstruir una tabla para la resta o substra ión(1.9), tomando en uenta todas las posibles ombina iones de dos números binariosx e y, de un bit ada uno, generando el resultado r y su préstamo b.Cuadro 1.9: Tabla de Restas Binarias.x-yx y r b0 0 0 00 1 1 11 0 1 01 1 0 0Repitamos el ejemplo anterior pero on la opera ión de resta,Préstamo 10 10Cambio 0 0x 1 1 1 0y 1 0 1 1Resultado 0 0 1 11.7. Representa ión de números negativos.Hasta el momento sólo hemos tratado on números positivos, pero en ela onte er diario, en las diferentes fa etas en que parti ipan los sistemas digitales,nos en ontramos on la ne esidad de operar on ifras negativas. En términosgenerales nos referiremos a dos formas de tratar on números negativos : (1)Representa ión en Signo - Magnitud (empleada omúnmente en las opera ionesmanuales), y (2) Representa ión en omplementos.

Page 39: Principios de Diseño Digital (UDO)

1.7. REPRESENTACIÓN DE NÚMEROS NEGATIVOS. 131.7.1. Representa ión en Signo - Magnitud.En la representa ión Signo - Magnitud, un número onsiste de una adenade dígitos que expresa su magnitud y un símbolo adi ional (generalmenteante ediendo a la adena magnitud) que indi a si este es positivo o negativo.1.7.2. Representa ión en Signo - Magnitud de númerosde imales.En el sistema de imal los símbolos adi ionales que se anteponen a la magnitudson + (para ifras positivas) y - (para ifras negativas ). De esta manera, podemosinterpretar laramente +95, -134, 104, et ., donde se a epta que la ausen ia designo indi a que se trata de magnitudes positivas. Obviamente, existen dos posiblesrepresenta iones para el ero, +0 y -0, pero ambos tienen el mismo valor.1.7.3. Representa ión en Signo - Magnitud de númerosbinarios.El modo Signo - Magnitud se emplea en números binarios usando un bit extrapara representar el signo, tradi ionalmente el más signi� ativo de la adena debits. Un ero representa ifras positivas, y un uno las negativas. Así, podemosexpresar 010101012 = 8510 110101012 = �8510011111112 = 12710 111111112 = �12710000000002 = 010 100000002 = �010La representa ión en Signo - Magnitud permite expresar ifras entre �2n�1�1hasta +2n�1 � 1, on dos símbolos para el ero.Supongamos que deseamos onstruir un sistema digital para la opera ión sumaen Signo - Magnitud. El ir uito debe examinar el signo de los sumandos paradeterminar que ha er on las magnitudes. Si ambos son iguales, enton es lasmagnitudes se suman y se onserva el signo para el resultado. Pero, si los signosson diferentes, enton es debe restar la antidad menor de la mayor y onservar elsigno de esta última. Todo esto supone, aunque aún no lo hemos examinado, una ir uitería relativamente ompleja. No obstante, una vez onstruido el sumador,la realiza ión del restador es bastante simple, ne esitándose solamente ambiar elsigno del sustraendo y usar el sumador original.1.7.4. Representa ión en Complementos.Los omplementos se utilizan en sistemas digitales para simpli� ar la opera iónde substra ión y para algunas otras opera iones de manipula ión lógi a, omo

Page 40: Principios de Diseño Digital (UDO)

14veremos a ontinua ión. Para ada sistema se utilizan dos tipos de omplementos:(a) El omplemento de r ; y (b) el omplemento de r-1. En el aso del sistemabinario nos referiremos a los omplementos de 2 y 1, y para el sistema de imal alos omplementos de 10 y 9 respe tivamente.Obtener el omplemento de un número, para un ser humano, es normalmentemás ompli ado que examinar signos y omparar magnitudes; pero las opera ionesde suma y resta se realizan, en la representa ión de omplementos, de una manera asi dire ta.1.7.4.1. EL omplemento de r.El omplemento de r, también ono ido omo omplemento a la base, para unnúmero positivo N de m dígitos en su parte entera, se de�ne omoN = ( rm �N ;rN 6= 00 ;rN = 0Es interesante notar que el omplemento del omplemento devuelve el númerooriginal (N ) = (rm �N) = rm � (rm �N) = rm � rm +N = N1.7.4.2. EL omplemento de 10 para números de imales.Como se de�nía en el párrafo anterior, podemos expresar los siguientesejemplos para el sistema de imal (1.12)Cuadro 1.10: Ejemplo de Complementos a 10.Número Complemento Opera ión3 7 101 � 3 = 728 72 102 � 28 = 7212345 87655 105 � 12345 = 876550.2156 0.7844 100 � 0;2156 = 0;784437.841 62.159 102 � 37;841 = 62;159Volvamos al problema de substraer dos números de imales A y B. La diferen iaD obtenida de restar B desde A es notada omo D = A - B, la ual puede serexpresada omo una suma D = A + (-B). Si en lugar de trabajar on el signo yla magnitud de B empleamos su omplemento a la base, podemos estable er lasrela iones siguientes

Page 41: Principios de Diseño Digital (UDO)

1.7. REPRESENTACIÓN DE NÚMEROS NEGATIVOS. 15D� = A +B = A + (10m � B)= 10m + A� B= 10m +DEsta expresión presenta las siguientes parti ularidades :Si A � B , es de ir D es positivo o ero, enton es D� será mayor o igual que10m (exa tamente 10m +D) on lo ual tendrá m+1 dígitos. La diferen iabus ada D = D� � 10m se obtendrá al eliminar el término 10m , que no esotra osa que el dígito de a arreo generado.Si A < B , es de ir D es negativo, enton es D� será menor que 10m(exa tamente 10m�D) on lo ual tendrá m dígitos. La diferen ia bus ada�D = D� � 10m (que por de�ni ión es el omplemento D = 10m �D�) seobtendrá al omplementar nuevamente el resultado.Podemos resumir lo anterior on las siguiente senten ia: si la suma de un número on el omplemento a la base de otro (para bus ar la diferen ia) genera un a arreo,enton es este se des arta y el resultado es positivo. Por el ontrario, si no existea arreo, enton es el resultado es negativo y está en omplemento a la base.Ilustremos on algunos ejemplos:a) 357 357-161 161 = 839 +839196 1196 ) 196b) 161 161-357 357 = 643 +643-196 804 ) D < 0 D = �804 = �196 ) 4.28 4.28-1.37 1;37 = 8;63 +8.632.91 12.91 ) 2.91d) 1.37 1.37-4.28 4;28 = 5;72 +5.72-2.91 7.09 ) D < 0 D = �7;09 = �2;91

Page 42: Principios de Diseño Digital (UDO)

161.7.4.3. EL omplemento de 2 para números binarios .La expresión de�nida en 1.7.4.1 apli a para ualquier base numéri a. De estaforma, en el sistema binario podemos expresar la nota ión de omplemento a 2 deigual manera a la utilizada para la base de imal.Cuadro 1.11: Ejemplo de Complementos a 2.Número Complemento Opera ión11 01 22 � 3 = 110 = 012101 011 23 � 5 = 310 = 011210101 01011 25 � 21 = 1110 = 0101120.101 0.011 20 � 0;625 = 0;37510 = 0;011210.001 01.111 22 � 2;125 = 1;875 = 01;1112De idénti a forma, el uso del omplemento a la base nos permite en ontrar ladiferen ia entre dos números binarios, apli ando los mismos riterios ya expuestos.a) 101 101-010 010 = 110 +110011 1011 ) 011b) 1110.101 1110.101-1001.111 1001;111 = 0110;001 +0110.0010100.110 10100.110 ) 0100.110 ) 010 010-101 101 = 011 +011-011 101 ) D < 0 D = �101 = �011d) 1001.111 1001.111-1110.101 1110;101 = 0001;011 +0001.011-0100.110 1011.010 ) D < 0D = �1011;010 D = �0100;1101.7.4.4. EL omplemento de r - 1.El omplemento de r� 1 para un número positivo N de m dígitos en su parteentera y p dígitos en su parte fra ionaria, se de�ne omo

Page 43: Principios de Diseño Digital (UDO)

1.7. REPRESENTACIÓN DE NÚMEROS NEGATIVOS. 17N �1 = ( rm � rp �N ;rN 6= 00 ;rN = 0reordenando la expresión para valores de N distintos de 0N �1 = rm �N � rp= N � rpEsta expresión es muy importante, ya que nos indi a que el omplemento ala base se obtiene mediante el omplemento a la base redu ida (r � 1) menosel oe� iente (rp) , que representa a la parte fra ionaria. Obviamente, si p = 0enton es N �1 = rm �N � r0= rm �N � 1= N � 1Nuevamente, el omplemento del omplemento devuelve el número original(N �1) �1 = (rm�rp�N) �1 = rm�rp�(rm�rp�N) = rm�rm+rp�rp+N = N1.7.4.5. EL omplemento de 9 (base redu ida) para númerosde imales.Como se de�nía en el párrafo anterior, podemos desarrollar los ejemplossiguientes, en omplemento a nueve, para el sistema de imal ( uadro 1.12)Cuadro 1.12: Ejemplo de Complementos a 9.Número Complemento Opera ión3 6 101 � 100 � 3 = 628 71 102 � 100 � 28 = 7112345 87654 105 � 100 � 12345 = 876540.2156 0.7843 100 � 104 � 0;2156 = 0;784337.841 62.158 102 � 103 � 37;841 = 62;158Un análisis más detallado de los ejemplos nos permitirá on luir que el omplemento a 9 puede obtenerse al omplementar a 9 individualmente ada unode los dígitos de número, eliminando de esta forma el ál ulo de la expresión. Aúnmás, el omplemento a 10 se puede obtener a partir del omplemento a nueveagregándole la expresión r�p. Por ejemplo, para en ontrar el omplemento a 10de 12345.2156, pro edemos de la siguiente forma

Page 44: Principios de Diseño Digital (UDO)

18 12345.215687654.7843 Complemento a nueve de ada dígito (independientemente)0.0001 Agregando r�p = 10�4 = 0;000187654.7844 Complemento a 10Volvamos al problema de substraer dos números de imales A y B. La diferen iaD obtenida de restar B desde A sabemos que es notada omo D = A � B =A+ (�B). Empleemos ahora el omplemento a la base redu ida para (-B). AsíD�� = A+B �1= A+ (10m � 10�p � B)= 10m � 10�p + A�B= 10m � 10�p +DEsta expresión presenta las siguientes parti ularidades :Si D � 10�p , es de ir D es positivo o ero, enton es D�� será mayor o igualque 10m on lo ual tendrá m+1 dígitos enteros. La diferen ia bus adaD = D�� � 10m + 10�p se obtendrá eliminando de D��el a arreo generado(término 10m) y sumando el término 10�p .Si A < B , es de ir D es negativo, enton es D�� será menor que 10m, on lo ual tendrá m dígitos. La diferen ia bus ada �D = D�� � 10m + 10�p (quepor de�ni ión es el omplemento a la base redu ida D = 10m � 10�p +D�)se obtendrá al omplementar nuevamente el resultado.Podemos resumir lo anterior on las siguiente senten ia : si la suma de unnúmero on el omplemento a la base redu ida de otro (para bus ar la diferen ia)genera un a arreo, enton es este se des arta, se le suma 10�p y el resultado espositivo. Por el ontrario, si no existe a arreo, enton es el resultado es negativo yestá en omplemento a la base redu ida.Ilustremos on algunos ejemplos:a) 357 357-161 161 �1 = 838 +838196 p = 0) 10�p = 1 1195 ) 195+1=196b) 161 161-357 357 �1 = 642 +642-196 803 ) D < 0 D = �803 �1 = �196

Page 45: Principios de Diseño Digital (UDO)

1.7. REPRESENTACIÓN DE NÚMEROS NEGATIVOS. 19 ) 4.28 4.28-1.37 1;37 �1 = 8;62 +8.622.91 p = 2) 10�p = 0;01 12.90 ) 2.90+0.01=2.91d) 1.37 1.37-4.28 4;28 �1 = 5;71 +5.71-2.91 7.08 ) D < 0 D = �7;08 �1 = �2;911.7.4.6. EL omplemento de 1 (base redu ida) para números binarios.La expresión de�nida en 1.7.4.4 apli a para ualquier base numéri a. De estaforma, en el sistema binario podemos expresar la nota ión de omplemento a 1(1.13) de igual manera a la utilizada para la base de imal ( uando omplementaa 9).En lugar de apli ar la fórmula, omo analizamos anteriormente, bus amos el omplemento a uno de ada dígito binario. Podemos, enton es ambiar unos por eros y eros por uno, obteniendo de manera dire ta el omplemento a uno de ualquier número binario (½ uidado on los números sin parte entera!).Cuadro 1.13: Ejemplo de Complementos a 1.Número Complemento Opera ión11 00 22 � 20 � 3 = 010 = 02101 010 23 � 20 � 5 = 210 = 010210101 01010 25 � 20 � 21 = 1010 = 0101020.101 0.010 20 � 2�3 � 0;625 = 0;2510 = 0;010210.001 01.110 22 � 2�2 � 2;125 = 1;75 = 01;1102De idénti a forma, el uso del omplemento a la base nos permite en ontrar ladiferen ia entre dos números binarios, apli ando los mismos riterios ya expuestos.a) 101 101-010 010 �1 = 101 +101011 p = 0) 2�p = 1 1010 ) 010+1=011b) 1110.101 1110.101-1001.111 1001;111 �1 = 0110;000 +0110.0000100.110 p = 3) 2�p = 0;001 10100.101 ) 0100.101+0.01=0100.110

Page 46: Principios de Diseño Digital (UDO)

20 ) 010 010-101 101 �1 = 010 +010-011 100 ) D < 0 D = �100 �1 = �011d) 1001.111 1001.111-1110.101 1110;101 �1 = 0001;011 +0001.011-0100.110 1011.010 ) D < 0D = �1011;010 �1D = �0100;110Es interesante notar que en nota ión de omplementos a 1 para númerosbinarios existen dos representa iones para el ero, situa ión que no o urre en omplemento a 2. Sin embargo, en este último aso, el rango para los enterospositivos di�ere del rango para los enteros negativos, omo se apre ia en el uadro1.14. Cuadro 1.14: Resumen de Complementos.De imal BinarioSig.Mag. C10 C9 Sig.Mag. C2 C17 7 7 0111 0111 01116 6 6 0110 0110 01105 5 5 0101 0101 01014 4 4 0100 0100 01003 3 3 0011 0011 00112 2 2 0010 0010 00101 1 1 0001 0001 0001+0 0 0 0000 0000 0000-0 0 9 1000 1111-1 9 8 1001 1111 1110-2 8 7 1010 1110 1101-3 7 6 1011 1101 1100-4 6 5 1100 1100 1011-5 5 4 1101 1011 1010-6 4 3 1110 1010 1001-7 3 2 1111 1001 1000-8 2 1 1000

Page 47: Principios de Diseño Digital (UDO)

1.8. REPRESENTACIÓN DE NÚMEROS DE PUNTO FLOTANTE. 211.8. Representa ión de números de punto �otante.Números extremadamente grandes o pequeños pueden ser representados de unamanera ompa ta llamada nota ión de punto �otante, históri amente ono ida omo nota ión ientí� a. La idea que se persigue es alma enar la informa ión enpo os dígitos (po o espa io) y fa ilitar las opera iones que se reali en on ella. Entérminos generales, un número N , en punto �otante, se expresa omoN = a(be)donde b es la base del sistema, a (denominada mantisa) es ualquier número enbase b , y e es un exponente. Si el oe� iente a es una fra ión apropiada F, talque 1=b � jF j < 1 , enton es se di e que F (be) es un número de punto �otantenormalizado.Las reglas para operar dos números de punto �otante N1 = a1be1 y N2 = a2be2, donde e1 � e2 , son :Suma: N1 +N2 = a1be1 + a2be2 = (a1 + a2be2�e1)be1Resta: N1 �N2 = a1be1 � a2be2 = (a1 � a2be2�e1)be1Multipli a ión: N1 �N2 = a1be1 � a2be2 = (a1 � a2)be2+e1División: N1=N2 = a1be1=a2be2 = (a1=a2)be2�e1Examinemos algunos ejemplos, tanto en el sistema de imal omo binario :a) A = 243;5 = 0;2435 � 103 B = 18;53 = 0;1853 � 102A+B = 0;2435 � 103 + 0;1853 � 102= (0;2435 + 0;1853 � 102�3) � 103= (0;2435 + 0;01853 � 10�1) � 103= (0;2435 + 0;01853) � 103= 0;26203 � 103A�B = 0;2435 � 103 � 0;1853 � 102= (0;2435� 0;1853 � 102�3) � 103= (0;2435� 0;01853 � 10�1) � 103= (0;2435� 0;01853) � 103= 0;22497 � 103A �B = 0;2435 � 103 � 0;1853 � 102= (0;2435 � 0;1853) � 103+2= (0;4512055) � 105= 0;4512055 � 105

Page 48: Principios de Diseño Digital (UDO)

22 A=B = 0;2435 � 103=0;1853 � 102= (0;2435=0;1853) � 103�2= (1;314085267134) � 101= 0;1314085267134 � 102b) A = 101;112 = 0;10111(23) B = 10;0112 = 0;10011(e2)A+B = 0;10111(23) + 0;10011(22)= [0;10111 + 0;10011(22�3)℄(23)= [0;10111 + 0;10011(2�1)℄(23)= (0;10111 + 0;010011)(23)= 1;000001(23)= 0;1000001 � 24A� B = 0;10111(23)� 0;10011(22)= [0;10111� 0;10011(22�3)℄(23)= [0;10111� 0;10011(2�1)℄(23)= [0;10111� 0;010011℄(23)= 0;011011(23)= 0;11011 � 22A �B = 0;10111(23) � 0;10011(22)= [0;10111 � 0;10011℄(23+2)= [0;0110110101℄(25)= 0;110110101 � 24A=B = 0;10111(23)=0;10011(22)= [0;10111=0;10011℄(23�2)= [1;00110101111001:::℄(21)= 0;100110101111001::: � 22Retornaremos sobre estos tópi os, de forma mas detallada, uando estemosdesarrollando unidades aritméti o lógi as y pro esadores de datos.

Page 49: Principios de Diseño Digital (UDO)

Capítulo 2Códigos Binarios.Toda la informa ión que el hombre maneja mediante máquinas digitales,espe ialmente en las omputadoras omo expresión de la té ni a digital máselaborada que se ha desarrollado, requiere ser onvertida en alguna forma binaria,que es la que emplean los sistemas digitales on el propósito de alma enarla,pro esarla y/o transmitirla. Este pro eso de onversión re ibe el nombre deCodi� a ión. Varios ódigos son utilizados en la a tualidad, los uales se puedenagrupar en uatro tipos bási os : De imales, Gray, Alfanuméri os y de Dete ióny Corre ión de Errores .2.1. Códigos De imales.Los ódigos de imales son utilizados para representar los dígitos de imales (del0 al 9 ), y se atalogan en Posi ionales y No Posi ionales. A su vez los CódigosDe imales Posi ionales se dividen en : Simétri os y No Simétri os. Por su parte,los Códigos De imales No Posi ionales se dividen en : Re�ejados y de Distan iaUnitaria.No Simetricos Reflejados Distancia Unitaria

Posicionales No Posicionales

Codigos Decimales

Simetricos Figura 2.1: Códigos De imales23

Page 50: Principios de Diseño Digital (UDO)

242.1.1. Códigos De imales Posi ionales.Los Códigos De imales Posi ionales poseen la propiedad por la ual el dígitode imal odi� ado es la suma de los pesos de las posi iones para las uales estápresente un uno binario.2.1.1.1. Códigos De imales Posi ionales No Simétri os.El Código De imal Posi ional No Simétri o más usado es el 8421 NBCD(Natural Binary Coded De imal), mejor ono ido omo BCD (De imal Codi� adoen Binario). En este se utilizan uatro dígitos binarios para odi� ar un dígitode imal. El peso de ada uno binario que aparez a en el ódigo, depende de laposi ión que o upe, y orresponderá a 8, 4, 2 ó 1, omo lo indi a su nombreoriginal. De esta forma 1001BCD = 1 � 8 + 0 � 4 + 0 � 2 + 1 � 1 = 910. En el uadro2.1 se muestra este ódigo, así omo otros de esta misma ategoría. (Es importanteha er notar que , en algunos de estos ódigos, existe más de una representa iónpara ada dígito de imal, lo ual bajo algunas ondi iones, que examinaremos másadelante, no resulta ade uado).Cuadro 2.1: Códigos De imales Posi ionales No Simétri osNBDCDe imal 8421 7421 5421 53110 0000 0000 0000 00001 0001 0001 0001 0001 00102 0010 0010 0010 00113 0011 0011 0011 01004 0100 0100 0100 0101 01105 0101 0101 0101 1000 0111 10006 0110 0110 0110 1001 1001 10107 0111 0111 1000 0111 1010 10118 1000 1001 1011 11009 1001 1010 1100 1101 11102.1.1.2. Códigos De imales Posi ionales Simétri os.Estos ódigos poseen una línea de simetría entre los in o primeros y in oúltimos elementos del ódigo. Esto signi� a que, un ódigo bajo la línea de simetríaes el omplemento a uno del ódigo en la posi ión orrespondiente sobre la líneade simetría.Conse uentemente, los ódigos de imales posi ionales simétri os sonauto omplementarios. En otras palabras, el omplemento aritméti o (9 - X ) de

Page 51: Principios de Diseño Digital (UDO)

2.1. CÓDIGOS DECIMALES. 25Cuadro 2.2: Códigos De imales Posi ionales No Simétri osDe imal 631(-1) 2421 84(-2)(-1)0 0000 0011 0000 00001 0010 0001 01112 0101 0010 1000 01103 0100 0111 0011 1001 01014 0110 0100 1010 01005 1001 1011 0101 10116 1011 1000 1100 0110 10107 1010 1101 0111 10018 1101 1110 10009 1111 1100 1111 1111una palabra ódigo X es el mismo omplemento a uno de X, omo se muestra enel ejemplo siguiente X X = 9�XDe imal 631(-1) 631(-1) De imal2 0101 1010 78 1101 0010 12.1.2. Códigos De imales No Posi ionales.Los Códigos De imales No Posi ionales re iben su denomina ión del he ho deque los unos binarios no representan el peso equivalente a su posi ión. De estamanera, el valor representado obede e a otras reglas, in luso a una designa iónarbitraria por parte del diseñador.2.1.2.1. Códigos De imales No Posi ionales de Distan ia Unitaria.En los Códigos De imales No Posi ionales de Distan ia Unitaria, dos palabras ódigos su esivas di�eren solamente en un bit (adya entes); in luso los ódigos querepresentan al ero y al nueve deben ser también adya entes.Estos ódigos pueden ser onstruidos utilizando el pro edimiento siguiente:1. Construya un mapa on las 16 posibles ombina iones binarias de uatrobits.2. Cada elda del mapa debe ser adya ente a todas sus ve inas (su ódigo varíasolo en un bit).

Page 52: Principios de Diseño Digital (UDO)

263. Las eldas de la primera olumna deben ser adya entes a las de la última olumna.4. Las eldas de la primera �la deben ser adya entes a las de la última �la.5. A partir de ualquier punto de la matriz, siga un amino que ubra 10 eldas,de tal manera de no usar más de una vez ninguna elda, y de que la última elda del amino sea adya ente a la elda de ini io.0000 ! 0001 ! 0011 0010#0100 0101 0111 0110" #1100 1101 1111 1110" #1000 1001 1011 10100 1 2 3 4 5 6 7 8 90000 0001 0011 0111 1111 1011 1001 1000 1100 01000000 0001 0011 0010# "0100 ! 0101 0111 0110# "1100 1101 1111 ! 11101000 1001 1011 10100 1 2 3 4 5 6 7 8 91111 1110 0110 0010 0011 0001 0000 0100 0101 11012.1.2.2. Códigos De imales No Posi ionales Re�ejados.Un Código De imal No Posi ional Re�ejado, onsiste en pares de palabras ódigos, en la ual : (1) ada par de miembros o upan posi iones orrespondientespor en ima y debajo de una línea media y (2) di�eren en un bit. Estos ódigos(de n bits) pueden ser generados siguiendo el pro edimiento siguiente:1. Es riba la misma se uen ia de n - 1 bits por en ima y debajo de una líneahorizontal.2. A ada grupo de tres bits agréguele en ualquier posi ión (pero siempre enla misma) un ero a los que están sobre la línea y un uno a los que estánpor debajo.

Page 53: Principios de Diseño Digital (UDO)

2.1. CÓDIGOS DECIMALES. 273. Asígnele a estos nuevos grupos de n bits los dígitos de imales del eroal nueve, omenzando en el extremo superior izquierdo y avanzando en elsentido de la mane illas del reloj.Por ejemplo :1. 000 001 100 101 110000 001 100 101 1102. 0000 0001 0100 0101 01101000 1001 1100 1101 11103. 0 1 2 3 40000 0001 0100 0101 01101000 1001 1100 1101 11109 8 7 6 52.1.3. Otros Códigos De imales.Hasta el momento hemos desarrollado algunos ódigos de imales on algunasistematiza ión. Sin embargo, el númeroM de es oger diferentes maneras tomandom términos de un onjunto de n términos, está dado por el oe� iente binomialM = nm ! = n!m!(n�m)!Determinemos uantos ódigos de imales diferentes pueden estable erse on 4bits; en otras palabras tomaremos 10 términos (los dígitos de imales) de entre las16 posibilidades que brindan los 4 bits (desde 0000 hasta 1111):M = 1610 ! = 16!10!(16� 10)! = 80082.1.3.1. Código Ex eso 3.Este ódigo posee una rela ión matemáti a on el ódigo BCD. Cada palabradel ódigo es la orrespondiente BCD a la ual se le ha sumado 00112 .2.1.3.2. Código 1 de 10.Algunos ódigos de imales utilizan más de uatro bits (imaginemos uanto re ería ahora el valor del oe� iente binomial). La idea, obviamente no es ompli ar las osas, sino bus ar me anismos de simpli� a ión para algunos tiposde opera iones.

Page 54: Principios de Diseño Digital (UDO)

28 Cuadro 2.3: Código De imal Ex eso 3De imal NBCD E30 0000 00111 0001 01002 0010 01013 0011 01104 0100 01115 0101 10006 0110 10017 0111 10108 1000 10119 1001 1100El ódigo 1 de 10 tiene un solo bit a tivo, de un máximo de 10 posibles, pararepresentar a ada dígito de imal. Esto fa ilita algunos tipos de opera iones lógi as(no así matemáti as), uando lo que se bus a saber es " ual" y no " uanto".Cuadro 2.4: Código De imal Uno de DiezDe imal NBCD Uno de Diez0 0000 00000000011 0001 00000000102 0010 00000001003 0011 00000010004 0100 00000100005 0101 00001000006 0110 00010000007 0111 00100000008 1000 01000000009 1001 10000000002.2. Código Gray.El Código Gray es un ódigo re�ejado de distan ia unitaria; es de ir, adapalabra ódigo adya ente di�ere solo en un bit y ada par de miembros di�eren,también, en un bit. El uadro 2.5 muestra un Código Gray de 2 bitsUn ódigo gray de n bits puede ser generado a partir desde un ódigo Grayde n-1 bits, usando el pro edimiento siguiente :

Page 55: Principios de Diseño Digital (UDO)

2.3. CÓDIGOS ALFANUMÉRICOS. 29Cuadro 2.5: Código Gray de dos bitsDe imal Gray0 001 012 113 101. Duplique el ódigo Gray de n-1 bits.2. Tra e una línea debajo de la última palabra ódigo, y re�eje sobre aquellatodas las palabras ódigo.3. Pre�je las palabras de la parte superior on eros, y las de la parte inferior on unos.Cuadro 2.6: Constru ión de un Código Gray de dos bits1 bit Dupli ando Re�ejando Pre�jando Gray 2 bits0 0 0 00 001 1 1 01 011 11 110 10 10Cuadro 2.7: Constru ión de un Código Gray de 3 bitsGray 2 bits Dupli ando Re�ejando Pre�jando Gray 3 bits00 00 00 000 00001 01 01 001 00111 11 11 011 01110 10 10 010 01010 110 11011 111 11101 101 10100 100 1002.3. Códigos Alfanuméri os.Los ódigos alfanuméri os son utilizados para representar letras del alfabeto,dígitos numéri os, símbolos grá� os y ara teres espe iales (normalmente

Page 56: Principios de Diseño Digital (UDO)

30elementos de proto olos de sistemas de omuni a iones y ontrol digital dedispositivos).Los dos ódigos mas difundidos son el ASCII de 8 bits (originalmenteespe i� ado para 7 bits) y el EBCDIC de 8 bits ( ada vez de menos utiliza ión).2.3.1. Código ASCII.El ódigo más importante y de mayor difusión en la a tualidad es, sinduda, el ódigo ASCII (Ameri an Standar Code for Information Inter hange ),normalizado bajo la denomina ión ASCII-ANSI X3.4-1977 R 1983. Existen, sinembargo, otros ódigos entre los que podemos men ionar el ISO 646 (7-bit CodeChara ter Set for Information Pro essing) y el CCITT Alphabet No.-5, que sonvirtualmente idénti os al ASCII.En la prá ti a ada omputadora emplea algunos de estos ódigos. Unaex ep ión notable la onstituye IBM quien desarrolló su propio ódigo, el ExtendedBinary Coded De imal Inter hange Code (EBCDIC ), el ual desgra iadamente esin ompatible on los men ionados anteriormente. Paradóji amente, IBM utilizaASCII en su línea de PC's.El ódigo ASCII fue diseñado para trabajar on dispositivos que intera tuandire tamente on el hombre. De esta manera, el ódigo además de poseer unarepresenta ión de los ara teres alfanuméri os debe poseer elementos de ontrolque permitan ejer itar alguna suerte de gobierno sobre tales dispositivos.De igual manera, ASCII tiene la inten ión de servir omo un alfabeto úni ointerna ional; enton es se reserva ierto espa io para las parti ularidades de adaidioma, tales omo signos de puntua ión y mar adores dia ríti os.Finalmente, ASCII pretende ser un estándar del vo abulario de omputa ión,por lo tanto umple on los requerimientos para a omodar programasdesarrollados en diferentes lenguajes (FORTRAN, BASIC, C, PASCAL, et .).Aunque la extensión del ódigo es ambigua en el do umento X3.4, podemosde ir que el ódigo ASCII natural es de 7 bits permitiendo odi� ar 128 ara teres.Existe un o tavo bit "op ional" que en prin ipio fue usado para la veri� a ión deparidad (tema sobre el que hablaremos más adelante). Sin embargo, la existen iadel o tavo bit permite odi� ar 128 ara teres adi ionales, que se emplean parapersoni� ar los distintos idiomas y/o odi� ar te las "espe iales" de los PC's. Eneste sentido se habla de ASCII Extendido.

Page 57: Principios de Diseño Digital (UDO)

2.3.CÓDIGOSALFANUMÉRICOS.31

Cuadro2.8:CódigoASCII

0 1 2 3 4 5 6 7 8 9 A B C D E F0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US2 SP ! � # $ % & ' ( ) * + , - . /3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?4 � A B C D E F G H I J K L M N O5 P Q R S T U V W X Y Z [ \ ℄ � _6 ` a b d e f g h i j k l m n o7 p q r s t u v w x y z { | } � DEL

Page 58: Principios de Diseño Digital (UDO)

322.4. Códigos de Dete ión y Corre ión deErrores.Un error en un sistema digital es la modi� a ión involuntaria de la informa ión,y es motivada generalmente por fallas de tipo físi o, las uales a su vez produ endeterioros permanentes y/o temporales en el sistema. Por ejemplo, des argasatmosféri as pueden produ ir errores temporales en la opera ión de un sistema;en ambio, un nivel ex esivo de voltaje en la fuente de alimenta ión puedenprodu ir una falla permanente en algún omponente del sistema, determinandouna anomalía permanente.2.4.1. Cubos N y Distan ia del Código.Antes de analizar el tema en profundidad, intentaremos mostrar una forma derepresenta ión geométri a del arreglo de una adena de dígitos binarios, la ualnos servirá de base para algunos planteamientos posteriores.En general un arreglo de n dígitos binarios pueden ser mostrados omo una�gura de un espa io n dimensional, que dan origen a 2n vérti es ( ada uno orrespondiendo a una ombina ión de la adena binaria) de un objeto geométri ollamado ubo-n. Los lados del objeto son dibujados de tal manera que los vérti esque lo de�nen tienen una representa ión binaria que solo di�ere en un bit, omose apre ia en la �gura 2.2.0 1

00 01

10 11

000 001

010 011

111

101

110

100

Cubo 1 Cubo 2 Cubo 3

Figura 2.2: Representa ión Geométri a de Códigos Binarios.Para valores pequeños de n es posible visualizar fá ilmente la onstru iónde iertos ódigos y problemas de minimiza ión (que serán onsideradosposteriormente en este urso). Por ejemplo, un Código de Gray se resuelveen ontrando un amino a través de los lados de un Cubo n, el ual pase solouna vez por ada vérti e (asegurando sólo una representa ión), y que, además, losvérti es ini ial y �nal sean adya entes.

Page 59: Principios de Diseño Digital (UDO)

2.4. CÓDIGOS DE DETECCIÓN Y CORRECCIÓN DE ERRORES. 33Por otra parte, los ubos permiten una interpreta ión del on epto de distan iamínima. La distan ia entre dos adenas de n dígitos binarios es el número deposi iones binarias en las uales ellos di�eren. En términos del Cubo n, es lalongitud mínima en lados que separan a dos vérti es ualesquiera. Por ejemplo, las adena binarias 010 y 100 tienen una distan ia 2, ya que dos posi iones di�eren ensu valor; en otras palabras, se deben re orrer dos aristas, de un Cubo-3, para salirdel vérti e 010 y arribar al vérti e 100, independientemente del amino elegido.La idea de distan ia mínima es la distan ia más pequeña que existe entre doselementos del ódigo. Por ejemplo, el Código BCD tiene distan ia mínima 1, yaque esta es la menor distan ia entre dos elementos ualquiera del ódigo, aún uando existen distan ias mayores, omo se desprende del uadro 2.9.Cuadro 2.9: Distan ias del Código NBCDDe imal 0000 0001 0010 0011 0100 0101 0110 0111 1000 10010000 1 1 2 1 2 2 3 1 20001 1 2 1 2 1 3 2 2 10010 1 2 1 2 3 1 2 2 30011 2 1 1 3 2 2 1 3 20100 1 2 2 3 1 1 2 2 30101 2 1 3 2 1 2 1 3 20110 2 3 1 2 1 2 1 3 40111 3 2 2 1 2 1 1 4 31000 1 2 2 3 2 3 3 4 11001 2 1 3 2 3 2 4 3 1Finalmente, un Cubo n da origen a un Sub ubo m, en donde este último esun sub onjunto de 2m vérti es en los uales n-m bits tienen el mismo valor para ada vérti e. Por ejemplo, los vérti es 001, 011, 111 y 101 forman un Sub ubo 2del Cubo 3 (Figura 2.3). Este sub ubo puede ser distinguido on la expresión xx1,donde "x" indi a un bit parti ular del sub ubo uyo valor no importa para sudetermina ión; es de ir, ualquier vérti e uyo último bit sea 1 es un vérti e delsub ubo.2.4.2. Códigos de Dete ión de Errores.Re ordemos que una adena de n bits usada para representar un ódigo puedeal anzar ombina iones que no sean utilizadas (palabras no ódigos). Por ejemplo,usamos una adena de uatro bits para generar BCD, pero este usa sólo diez

Page 60: Principios de Diseño Digital (UDO)

34000 001

010 011

111

101

110

100

Cubo 3 y Sub-Cubo 2

Figura 2.3: Sub ubo 2 de un Cubo 3palabra ódigos (0000, 0001, ..., 1001), permitiendo la existen ia de seis palabrasno ódigo (1010, 1011, ..., 111). Así, un sistema digital que opera utilizandoBCD, puede dete tar la o urren ia de un error siempre que re iba una palabrano ódigo. Si el dato original era 0010 y el sistema dete tó 1010, obviamente ao urrido un error produ to simplemente de que 1010 no es una palabra ódigo.Desafortunadamente, sólo on esta informa ión podemos dete tar la o urren iadel error, pero no orregirlo. Tomemos omo ejemplo 0010 y pensemos que sóloun bit estará errado; enton es, tenemos las siguientes posibilidades:Posible error en el bit:4 3 2 11010 0110 0000 0011No Código Código Código Códigode donde no podemos asegurar que el ódigo transmitido haya sido: 0010 (2), 0110(6), 0000 (0) ó 0011 (3).Podemos inferir de este planteamiento que la propiedad de dete ión de unerror impli a uando mínimo el uso de bits adi ionales a los mínimos requeridospara la representa ión de los datos, para forzar la existen ia de palabras no ódigos. No obstante este riterio no es su� iente. Veamos, el sistema digital hadete tado 0000 (una palabra ódigo en BCD), pero el dato original era ualquierade los siguientes (1000, 0100, 0010, 0001). Gran problema. El sistema piensa quetodo está orre to y ontinua su opera ión on un dato equivo ado. La situa ión espeor uando se presentan dos o más errores simultáneos, aunque su probabilidadde o urren ia es notablemente menor.2.4.2.1. ParidadEl método más simple para la dete ión de un error es agregar, al ódigooriginal, un bit adi ional para forzar que la antidad de unos transmitidos en

Page 61: Principios de Diseño Digital (UDO)

2.4. CÓDIGOS DE DETECCIÓN Y CORRECCIÓN DE ERRORES. 35 ada palabra ódigo siempre sea una rela ión ono ida (número par o impar deunos), omo se apre ia en el uadro 2.10.Cuadro 2.10: Paridad para el Código NBCDBCD P. Par P. impar0000 0000 0 0000 10001 0001 1 0001 00010 0010 1 0010 00011 0011 0 0011 10100 0100 1 0100 00101 0101 0 0101 10110 0110 0 0110 10111 0111 1 0111 01000 1000 1 1000 01001 1001 0 1001 1Ahora es posible dete tar la o urren ia de ualquier error de un solo bit, sinposibilidades de onfusión, ya que omo la distan ia mínima es 2, omo se apre iaen el uadro 2.11, un error en un solo bit desplazará la palabra ódigo a unano- ódigo. En términos más generales, podemos dete tar la o urren ia de ualquier antidad impar de errores; no así de una antidad par de errores que indu eal sistema a pensar que todo está orre to. Visto esto desde un punto de vistageométri o nos indi a que el ódigo es un sub onjunto de vérti es de un Cubo 5(para el aso de la tabla), donde ada vérti e que representa a una palabra ódigono es adya ente a otro vérti e ódigo.Tomemos omo ejemplo 0010, on paridad par (00101), y pensemos que sóloun bit estará errado; enton es, tenemos las siguientes posibilidades:Posible error en el bit:5 4 3 2 110101 01101 00001 00111 00100No Código No Código No Código No Código No Códigode donde no abe ninguna duda que se ha produ ido un error, ya que ualquierpalabra obtenida no orresponde a ninguna del ódigo (ver uadro 2.10, donde severi� a que las palabras válidas deben poseer un número par de unos).

Page 62: Principios de Diseño Digital (UDO)

36Cuadro2.11:Distan iasdelCódigoNBCD onParidadPar

De imal 0000 0 0001 1 0010 1 0011 0 0100 1 0101 0 0110 0 0111 1 1000 1 1001 00000 0 2 2 2 2 2 2 4 2 20001 1 2 2 2 2 2 4 2 2 20010 1 2 2 2 2 4 2 2 2 40011 0 2 2 2 4 2 2 2 4 20100 1 2 2 2 4 2 2 2 2 40101 0 2 2 4 2 2 2 2 4 20110 0 2 4 2 2 2 2 2 4 40111 1 4 2 2 2 2 2 2 4 41000 1 2 2 2 4 2 4 4 4 21001 0 2 2 4 2 4 2 4 4 2

Page 63: Principios de Diseño Digital (UDO)

2.4. CÓDIGOS DE DETECCIÓN Y CORRECCIÓN DE ERRORES. 372.4.2.2. Código de orre ión de error simple y dete ión de errormúltiple.Como sabemos, la utiliza ión de un ódigo on distan ia mínima 2 nos permitedete tar un error simple en una adena de bits. Si agregamos algunos bitsadi ionales a ada palabra ódigo, de tal manera de aumentar la distan ia mínimaa 3, deberíamos esperar la posibilidad de dete tar errores dobles, omo de he homostraremos.Tomemos, a manera de ejemplo, el aso del ódigo BCD, al ual le agregaremostres bits, pro urando que se genere otra palabra ódigo on una distan ia mínima3, omo se muestra en el uadro 2.12. Existirán, al menos, dos palabra no ódigosentre ada par de palabras ódigos.Cuadro 2.12: Código de Distan ia Mínima 3 para dígitos De imalesDe imal BCD D.P. par0 0000 00000001 0001 00001112 0010 00110013 0011 00111104 0100 01010105 0101 01011016 0110 01100117 0111 01101008 1000 10010119 1001 1001100Supongamos, geométri amente hablando, que nos en ontramos en un vérti e ódigo del nuevo Cubo re ién formado, y que transmitimos este. Si admitimos quese ha produ ido un error de 2 bits ualesquiera, nos habremos desplazado por doslados del ubo, quedando en un vérti e no ódigo, pero posiblemente adya ente auno ódigo. No podremos pre isar el dato originalmente transmitido porque desde ualquier vérti e no ódigo existe mas de un vérti e ódigo on distan ia 2, pero silo habremos dete tado. Por ejemplo, transmitimos la palabra ódigo 0000000, perore ibimos 0000011 (palabra no ódigo), habremos dete to el doble error, pero su orre ión es imposible pues podríamos pensar que el ódigo original era 0000111.Por otro lado, si ambiamos la estrategia de análisis y admitimos que sólo seha produ ido un error, enton es seremos apa es de orregirlo on este ódigode distan ia mínima 3. Para el mismo aso del ejemplo anterior, en dondetransmitíamos 0000000 las palabras no ódigo posibles de formar on un solo

Page 64: Principios de Diseño Digital (UDO)

38bit errado son: 0000001, 0000010, 0000100, 0001000, 0010000, 0100000 y 1000000.De esta manera, independientemente del bit equivo ado, un error en un sólo bitsiempre produ irá una palabra no ódigo on distan ia 1 a la palabra ódigooriginalmente transmitida, y on una distan ia mayor que 1 on respe to a ualquier otra palabra ódigo. Enton es dedu imos, que un ódigo on distan iamínima 3 nos permite realizar la orre ión de un bit erróneo.En general, podemos resumir nuestra on lusión on la siguiente expresióndm = 2 � + d+ 1donde, dm es la distan ia mínima, representa en número máximo de bits orregibles y d representa un número adi ional de bits dete tables on error (sinposibilidad de orre ión). Con esta expresión podemos onstruir una tabla, omose muestra en el uadro 2.13.Cuadro 2.13: Distan ias Mínimas, errores orregibles y dete tablesdm 1 2 3 4 5 6 7 8 0 0 0 1 0 1 0 1 2 0 1 2 0 1 2 0 1 2 3d 0 1 2 1 3 2 4 2 0 5 3 1 6 4 2 7 5 2 1Aún nos queda un problema pendiente : ¾Cómo onstruir, de una manera onsistente y e� iente, ódigos de distan ia mínima m?. Responderemos a estomás adelante uando nos re�ramos al Código de Hamming, después que hayamosdesarrollado algunas herramientas algebrai as mínimas que nos permitan operar on omodidad y sen illez en este mundo de unos y eros.

Page 65: Principios de Diseño Digital (UDO)

Capítulo 3Álgebra de Boole y Cir uitosDigitales.3.1. Lógi a Binaria.En 1938 C. E. Shannon, de los Laboratorios Bell, en su trabajo "ASymboli Analysis of Relay and Swit hing Cir uits", introdujo un estudio sobreel Álgebra de Boole de dos valores (binaria), mediante la ual podía expli ar elfun ionamiento de los ir uitos de onmuta ión elé tri os biestables. Antes deplantear los lineamientos bási os de este trabajo, debemos resaltar su basamentoen lo que hoy ono emos omo Álgebra de Boole, on eptos difundidos por GeorgeBoole en 1854 en su publi a ión "An investigation of the Laws of Thought", donderealiza un tratamiento sistemáti o de la Lógi a Formal.La Lógi a Binaria trata on variables que solo pueden tomar uno de dos valoresposibles y on opera iones entre las variables uyo resultado también puede tomaruno de esos valores. Estos valores, a que ha emos referen ia pueden expresarse omo: verdadero y falso, si y no, en endido y apagado, 1 y 0, errado y abierto,et . De esta manera, la Lógi a Binaria nos permite el análisis y diseño de ir uitosde onmuta ión, tal omo lo representa la des rip ión fun ional del ir uito de las�guras 3.1, 3.2, 3.3 y 3.4.En las �guras:3.1: L prende SI Y SOLO SI S ierra.3.2: L prende SI Y SOLO SI S1 ierra Y S2 ierra.3.3: L prende SI Y SOLO SI S1 ierra O S2 ierra (o ambos ierran).3.4: L prende SI Y SOLO SI S1 ierra Y ( S2 ierra O S3 ierra).39

Page 66: Principios de Diseño Digital (UDO)

40L

S

V−

+

Figura 3.1: Cir uito de AlumbradoL

S1

V

S2

+

Figura 3.2: Cir uito de Alumbrado on Interruptores en serieS2

S1

VL

+

Figura 3.3: Cir uito de Alumbrado on Interruptores en paralelo

Page 67: Principios de Diseño Digital (UDO)

3.2. FUNCIONES DE LA VERDAD. 41V

L

S3

S2S1

+

Figura 3.4: Cir uito de Alumbrado on Interruptores en serie y paraleloToda senten ia a la ual le podemos aso iar un grado de verdad (Verdadera oFalsa), le daremos el nombre de proposi ión binaria , y serán denotadas por unao más letras seguida(s), op ionalmente, por números. De esta forma, por ejemplo,L prende seráA, S1 ierra B , S2 ierra C , et . Estas proposi iones binarias estánenlazadas por one tivos binarios, que unen a dos proposi iones y se denotan onun símbolo, formando una proposi ión ompuesta úni a on su respe tivo gradode verdad. En nuestro ejemplo anterior en ontramos los one tivos Y (^ ó �) ,SI Y SOLO SI (,) y O (_ ó +). Así, el último aso (�gura 3.4) puede serrepresentado omo L = S1�(S2+S3), expresión ono ida omo e ua ión fun ionalde verdad o fun ión de verdad.3.2. Fun iones de la Verdad.En el punto anterior hemos observado omo el ál ulo fun ional de verdadpermite expresar proposi iones, que son las espe i� a iones bási as en ualquierdiseño, de una manera ompa ta y sin ambigüedades, apropiada para el manejomatemáti o de ellas. Estudiaremos, ahora, los 16 one tivos binarios posibles, orrespondientes a las 16 formas en que pueden apare er los valores verdadero yfalso, en el aso de dos variables proposi ionales.3.2.1. Cone tivos Binarios.El uadro 3.1 muestra los 16 one tivos binarios bási os.Fun iones :1. F0 = 0 ; Nula, onstante binaria 02. F1 = a � b ; AND, onjun ión lógi a3. F2 = a=b ; Inhibi ión, a pero no b

Page 68: Principios de Diseño Digital (UDO)

42 Cuadro 3.1: Cone tivos Binarios0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15ab 0 * / a / b � + # , b ( a ) " 1FF F F F F F F F F V V V V V V V VFV F F F F V V V V F F F F V V V VVF F F V V F F V V F F V V F F V VVV F V F V F V F V F V F V F V F V4. F3 = a ; Transferen ia de a5. F4 = b=a ; Inhibi ión, b pero no a6. F5 = b ; Transferen ia de b7. F6 = a� b ; OR ex lusivo, disyun ión ex lusiva, a ó b, pero no ambas8. F7 = a + b ; OR, disyun ión in luyente, a ó b, ó ambas9. F8 = a # b = a + b ; NOR, No OR, omplemento de OR10. F9 = a, b ; Equivalen ia, a es equivalente a b11. F10 = b ; Complemento de b (NOT), nega ión de b12. F11 = a( b ; Impli a ión, si b enton es a13. F12 = a ; Complemento de a (NOT), nega ión de a14. F13 = a) b ; Impli a ión, si a enton es b15. F14 = a " b = a � b ; NAND, No AND, omplemento de AND16. F15 = 1 ; Identidad, onstante binaria 1Nos detendremos, un momento, en los valores de verdad del one tivo si ...enton es, que a primera vista pare en po o naturales. Repitamos la tabla sólopara ese one tivo: ab a) bFF VFV VVF FVV V

Page 69: Principios de Diseño Digital (UDO)

3.2. FUNCIONES DE LA VERDAD. 43Si el ante edente de una proposi ión ompuesta es verdadero, podemosesperar que el onse uente también lo sea. Por otra parte, si el ante edente esfalso, el onse uente también debe serlo. La sorpresa ini ial radi a en que algoFalso implique algo Verdadero. Trataremos de a larar on el ejemplo siguiente.Anali emos la proposi ión ompuesta (2 > x > 1) ) (x > 0). Si el valor de xestá efe tivamente entre 1 y 2 (intervalo errado, mayor que uno y menor que2) ambas proposi iones son verdaderas. De esta forma V ) V es verdadero. Siel valor de x es, digamos, �1 ambas proposi iones son falsas, enton es F ) Fes también verdadero. Pero si el valor de x está entre 0 y 1 (por ejemplo 0.5), laprimera proposi ión es Falsa pero la segunda es Verdadera, de donde se desprendeel valor verdadero de la proposi ión ompuesta. En Lógi a el onse uente puedeser de naturaleza ompletamente diferente al ante edente.Por otra parte, observemos la diferen ia entre OR in lusivo (+) y OR ex lusivo(�). En el aso de �gura 3.3, la lámpara L en iende si S1 o S1, o ambos, están errados (L = S1 + S2). El uso del one tivo O es de manera in luyente. Sinembargo, en la proposi ión ompuesta "Ana viaja ahora a Europa o Améri a delSur", el uso del one tivo O es ex lusivo ya que no puede viajar a dos lugaresdiferentes simultáneamente.3.2.2. Evalua ión de las fun iones de verdad.El valor de verdad de una e ua ión fun ional, de proposi iones unidas por másde un one tivo, puede obtenerse de la evalua ión par ial de ada one tivo sobredos proposi iones, arreglando ada paso en una Tabla de Verdad. Por ejemplo,evaluaremos la expresión Z = A �B ) C, omo se muestra en el uadro 3.2.Cuadro 3.2: Evalua ión de la fun ión Z = A �B ) CA B C B A �B A �B ) CF F F V F VF F V V F VF V F F F VF V V F F VV F F V V FV F V V V VV V F F F VV V V F F VSi la evalua ión resulta verdadera para todas las ombina iones de las variablesinvolu radas, hablamos de Tautología, omo para el ejemplo del uadro 3.3.

Page 70: Principios de Diseño Digital (UDO)

44 Cuadro 3.3: Evalua ión de una fun ión Tautológi a (Z = A �B ) B)A B C B A �B A �B ) BF F F V F VF F V V F VF V F F F VF V V F F VV F F V V VV F V V V VV V F F F VV V V F F V3.3. Postulados de Huntington.En 1904 E. V. Huntington propuso una de�ni ión formal del álgebra de Boole,que posteriormente fue adaptada por C. E. Shannon, en 1938, para el onjunto B(binario).1. B es un onjunto errado:a) on respe to al operador +, 8(a; b) 2 B : (a+ b) 2 Bb) on respe to al operador *, 8(a; b) 2 B : (a � b) 2 B2. Existe un elemento de identidad o neutro :a) on respe to a + designado por el 0 . 9 0 2 B = 8a 2 B : (a + 0) = ab) on respe to a * designado por el 1 . 9 1 2 B = 8a 2 B : (a � 1) = a3. B es onmutativo :a) on respe to a +, 8(a; b) 2 B : (a+ b) = (b+ a)b) on respe to a *, 8(a; b) 2 B : (a � b) = (b � a)4. En B :a) * es distributivo on respe to a +. 8(a; b; ) 2 B : a� (b+ ) = (a� b)+(a � )b) + es distributivo on respe to a *. 8(a; b; ) 2 B : a + (b � ) = (a +b) � (a+ )11Esto no es ierto en el álgebra ordinaria.

Page 71: Principios de Diseño Digital (UDO)

3.4. AXIOMAS DEL ÁLGEBRA DE BOOLE. 455. Para ada elemento a en B existe un omplemento a de�nido por :a) a + a = 1b) a � a = 06. Existen al menos dos elementos (a, b) en B tal que a 6= b3.4. Axiomas del álgebra de Boole.Los axiomas o postulados de un sistema matemáti o son un onjunto dereglas mínimas, que asumimos siempre verdaderas, y por tanto no requierendemostra ión, sobre las uales se onstruye el uerpo de teoremas que ompletanla estru tura algebrai a. De esta manera, y omo onse uen ia, prin ipalmente,de los postulados de Huntington, de�niremos un grupo de axiomas, los uales semuestran en el uadro 3.4.Cuadro 3.4: Axiomas del Álgebra de BooleA1 x = 0 ; si x 6= 1 A�1 x = 1 ; si x 6= 0A2 si x = 0 ; enton es x = 1 A�2 si x = 1 ; enton es x = 0A3 0 � 0 = 0 A�3 1 + 1 = 1A4 1 � 1 = 1 A�4 0 + 0 = 0A5 0 � 1 = 1 � 0 = 0 A�5 1 + 0 = 0 + 1 = 13.5. Teoremas bási os y propiedades del álgebrade Boole.Durante el análisis o síntesis de ir uitos lógi os, a menudo es ribimosexpresiones algebrai as que representan el omportamiento o las ara terísti asdeseadas del ir uito. Los teoremas del álgebra de Boole son estamentos, ono idos omo siempre verdaderos, que permiten manipular las expresiones algebrai aspara obtener análisis más simples, o una síntesis mas e� iente del ir uito orrespondiente.3.5.1. Teoremas de una sola variable.El uadro 3.5 muestra los teoremas del álgebra de swit hes que envuelven unasola variable (x ).La mayoría de los teoremas en el álgebra de swit hes son ex esivamentesimples, y omo las variables pueden tomar solo dos valores (0 ó 1), estos pueden

Page 72: Principios de Diseño Digital (UDO)

46 Cuadro 3.5: Teoremas de una sola variableIdentidad T1 x+ 0 = x T �1 x � 1 = xFrontera T2 x+ 1 = 1 T �2 x � 0 = 0Idempoten ia T3 x+ x = x T �3 x � x = xInvolu ión T4 (x) = x T �4Complemento T5 x+ x = 1 T �5 x � x = 0demostrarse por medio de indu ión perfe ta. Es de ir se substituye la variablepor ada valor posible y se veri� a su verdad.Demostra ión del Teorema de Identidad T1:x+ 0 = ( 0 + 0 = 0 ; uando x = 0 por A41 + 0 = 1 ; uando x = 1 por A5 )) x+ 0 = x ; 8x 2 BDemostra ión del Teorema de Frontera T2:x + 1 = ( 0 + 1 = 1 ; uando x = 0 por A51 + 1 = 1 ; uando x = 1 por A3 )) x+ 1 = 1 ; 8x 2 BDemostra ión del Teorema de Idempoten ia T3:x + 1 = ( 0 + 0 = 0 ; uando x = 0 por A41 + 1 = 1 ; uando x = 1 por A3 )) x + x = x ; 8x 2 BDemostra ión del Teorema de Involu ión T4 :(x) = y ha iendo x = y(x) = y = ( 1 ; uando y = 0) x = 1 por A20 ; uando y = 1) x = 0 por A2 )) (x) = x ; 8x 2 BDemostra ión del Teorema de Complemento T5 :x + x = ( 0 + 1 = 1 ; uando x = 0 por A51 + 0 = 1 ; uando x = 1 por A5 )) x+ x = 1 ; 8x 2 B

Page 73: Principios de Diseño Digital (UDO)

3.5. TEOREMAS BÁSICOS Y PROPIEDADES DEL ÁLGEBRA DE BOOLE.47Cuadro 3.6: Teoremas de dos variablesCobertura o Absor ión T6 x + (x � y) = x T �6 x � (x+ y) = xElimina ión T7 x + (x � y) = x+ y T �7 x � (x+ y) = x � yDe Morgan T8 (x + y) = x � y T �8 (x � y) = x + y3.5.2. Teoremas de dos y tres variables.El uadro 3.6 muestra algunos de los teoremas que envuelven más de unavariable.Realizando una analogía on la teoría de onjuntos, íntimamente ligada alálgebra de swit hes, en donde se representa a la disyun ión lógi a (OR) on launión de onjuntos (S), y a la onjun ión lógi a (AND) on la interse ión de onjuntos (T), podemos emplear los diagramas de Venn para demostrar la validezde los teoremas. Así, x+(x � y) = x puede expresarse omo xS(xT y) = x, omose apre ia en la �gura 3.5.x

y

x yU

Figura 3.5: Diagrama de Venn del Teorema de CoberturaLa indu ión perfe ta también es un buen amino para la demostra ión delos teoremas. No obstante, en esta oportunidad, introdu iremos la rigurosidadmatemáti a, de las substitu iones algebrai as, donde se utilizan los axiomas yotros teoremas ya probados para veri� ar la validez de un teorema nuevo.Teorema de Cobertura T6:

Page 74: Principios de Diseño Digital (UDO)

48x + (x � y) = (x + 1) + (x � y) ; de a uerdo al teorema de Identidad T1= x � (1 + y) ; de a uerdo al postulado 4a (Dist: de � sobre+)= x � 1 ; de a uerdo al teorema de Frontera T2= x ; de a uerdo al teorema de Identidad T �1Teorema de Elimina ión T7:x + (x � y) = (x + x) � (x + y) ; de a uerdo al postulado 4b (Dist: de + sobre�)= 1 � (x + y) ; de a uerdo al teorema del Complemento T5= x + y ; de a uerdo al teorema del Identidad T �1Aunque el Teorema de Frontera (T2) lo hemos demostrado por indu ión ompleta, haremos un ejer i io algebrai o para su demostra ión:x+ 1 = x+ (x + x) ; de a uerdo al teorema del Complemento T5= (x+ x) + x ; de a uerdo al postulado deAso iatividad= x+ x ; de a uerdo al teorema de Idempoten ia T3= 1 ; de a uerdo al teorema del Complemento T �53.5.3. Teoremas generalizados de n variables.Algunos teoremas son sus eptibles de ser expandidos para un número arbitrariode variables omo se muestra en el uadro 3.7.Cualquier teorema o identidad del álgebra de swit hes permane e en sumismo grado de verdad apli ando el prin ipio de dualidad que estable e que seinter ambien simultáneamente: eros on unos, y + on * ; tal omo se ha venidoestable iendo el todas los uadros.3.6. Fun iones, variables y expresiones.En álgebra de Boole las expresiones pueden estar formadas por una ombina ión de onstantes lógi as y variables, unidas mediante símbolos ono idos omo one tores u operadores binarios, de una forma similar al álgebra estándar.En el álgebra de swit hes (sub onjunto de dos elementos del álgebraBooleana) una variable x puede tener uno de solo dos posibles valores (0ó 1).Una expresión Boolena F está formada por la ombina ión de onstanteslógi as (0 y 1) y variables (x, y, ...) one tadas por los operadores [+ (OR),* (AND) y ~(NOT)℄. Por ejemplo, F = xy + xy forman una expresión.

Page 75: Principios de Diseño Digital (UDO)

3.6.FUNCIONES,VARIABLESYEXPRESIONES.49

Cuadro3.7:Teoremasgeneralizadosdenvariables

Idempoten ia T9 x+ x+ :::+ x = x T �9 x � x � ::: � x = xDe Morgan T10 F(x1;x2;:::xn;+) = F(x1;x2;:::xn;�) T �10 F(x1;x2;:::xn;�) = F(x1;x2;:::xn;+)Expansión T11 F(x1;x2;:::;xn) = x1 � F(1;x2;:::;xn) + x1 � F(0;x2;:::;xn) T �11 F(x1;x2;:::;xn) = [x1 + F(0;x2;:::;xn)℄ � [x1 + F(1;x2;:::;xn)

Page 76: Principios de Diseño Digital (UDO)

50 Una n-upla es de la forma (x0; x1; :::; xn�1), donde el orden es importante.Un produ to artesiano de n onjuntos Ai (i=1::n) , onsiste de las n-uplas(x0; x1; :::; xn�1), donde xi 2 Ai .S xS = f(0; 0); (0; 1); (1; 0); (1; 1)g = f(x; y)gS xS xS = f(0; 0; 0); (0; 0; 1); (0; 1; 0); (0; 1; 1); (1; 0; 0);(1; 0; 1); (1; 1; 0); (1; 1; 1)g = f(x; y; z)gUna fun ión ombinatoria F : Sn ! S, donde S = f0; 1g onsiste de :� Un onjunto no va ío Sn llamado el dominio de la fun ión.� Un onjunto no va ío S llamado el rango de la fun ión.� Una regla que asigna uno y solo un elemento de S a ada elemento deSn, y vi eversa.Una fun ión de dos variables F (x; y) es aquella que "mapea" ada elementodel dominio S xS a solo un elemento del rango S.La fun ión F (x; y) = 0 � x � y + 1 � x � y + 1 � x � y + 1 � x � y tiene el mapasiguiente: (x; y) ! F(0; 0) ! 0(0; 1) ! 1(1; 0) ! 1(1; 1) ! 1S xS ! SEste mapa posee una tabla de verdad que lista ada ombina ión de lostérminos produ tos y su orrespondiente valor de F :(x; y) ! Fx y ! 0x y ! 1x y ! 1x y ! 13.7. Forma Canóni a de Fun iones CombinatoriasAntes de a ometer la manipula ión algebrai a de fun iones lógi as,pro ederemos a realizar algunas de�ni iones :

Page 77: Principios de Diseño Digital (UDO)

3.7. FORMA CANÓNICA DE FUNCIONES COMBINATORIAS 51El término literal ha e referen ia a la apari ión de una variable, noimportando si está o no negada, en una expresión lógi a. De esta manera, xy x son dos literales diferentes que se re�eren a la misma variable.Un término produ to es un literal aislado o un produ to lógi o de dos omás variables. (Ejemplos: x, x � y, x � y � z).Un término produ to, dentro de una fun ión de n variables, que ontengan literales de distintas variables, se ono e omo término mínimo omintérmino. (Ejemplos para 3 variables xyz : x � y � z, x � y � z, x � y � z).Un término suma es un literal aislado o una suma lógi a de dos o másvariables. (Ejemplos: x, x+ y, x + y + z)Un término suma, dentro de una fun ión de n variables, que ontengan literales de distintas variables, se ono e omo término máximo omaxtérmino. (Ejemplos para 3 variables xyz : x+y+z, x+y+z, x+y+z).Una expresión de suma de produ tos es la suma lógi a de términosprodu tos x+ (x � y) + (x � y � z)Una expresión de produ to de sumas es el produ to lógi o de términossumas x � (x+ y) � (x+ y + z)Un término normal es un produ to lógi o, o una suma lógi a, dondeuna variable apare e sólo una vez. De esta forma, ualquier mintérminoo maxtérmino son términos normales.Observemos la representa ión de mintérminos y maxtérminos, para dos variables(x, y) y tres variables (x, y, z ) en los uadros 3.8 y 3.9, respe tivamente.Cuadro 3.8: Términos mínimos y máximos para dos variablesx y Mintérmino Maxtérmino0 0 0 m0 = x � y M0 = x+ y1 0 1 m1 = x � y M1 = x+ y2 1 0 m2 = x � y M2 = x+ y3 1 1 m3 = x � y M3 = x+ yPodemos observar que un mintérmino es un término produ to uyo valor es1 sólo en una �la de la tabla de verdad. De igual forma, un maxtérmino es untérmino suma uyo valor es 0 sólo en una �la de la tabla de verdad.

Page 78: Principios de Diseño Digital (UDO)

52 Cuadro 3.9: Términos mínimos y máximos para tres variablesx y z Mintérmino Maxtérmino0 0 0 0 m0 = x � y � z M0 = x+ y + z1 0 0 1 m1 = x � y � z M1 = x+ y + z2 0 1 0 m2 = x � y � y M2 = x+ y + z3 0 1 1 m3 = x � y � z M3 = x+ y + z4 1 0 0 m4 = x � y � z M4 = x+ y + z5 1 0 1 m5 = x � y � z M5 = x+ y + z6 1 1 0 m6 = x � y � y M6 = x+ y + z7 1 1 1 m7 = x � y � z M7 = x+ y + zAdemás, el (o los) ero(s) de la representa ión binaria del número delmintérmino nos indi a(rán) ual(es) literal(es) está(n) omplementada(s); porejemplo, en m3 = x � y � z (011) está omplementada x. En el aso de losmaxtérminos, los eros de la representa ión binaria del número indi arán ualesvariables no están omplementadas; por ejemplo, para M3 = x + y + z (011) noestá omplementada x.Por otra parte, podemos demostrar, utilizando los teoremas de De Morgan yde Involu ión que mi = Mi ; de igual manera, mi = Mii . Por ejemplo, tomemosel mintérmino 3 para tres variablesm3 = x � y � zm3 = x � y � z= x + y + z= x + y + z= M3Basado en la orresponden ia entre la Tabla de Verdad de una fun ión y losmintérminos, se puede rear fá ilmente una representa ión algebrai a de ella, ovi eversa. Si esta representa ión algebrai a está onstituida por los mintérminos orrespondientes se habla de una suma anóni a . Por ejemplo, la expresiónF(x;y) = (x � y) + (x � y) es una suma anóni a, ya que está formada sólo pormintérminos. De igual manera, esta fun ión puede ser representada por una listade mintérminos F(x;y) = P(1; 2), expresión que podemos sintetizar omo "la sumade los mintérminos 1 y 2". Se apre ia de inmediato, que la fun ión valdrá 1 adavez que las variables de entrada tengan una ombina ión que represente a adamintérmino de la lista.Como se ha men ionado anteriormente, por dualidad podemos estable er queun produ to anóni o estará formado por el produ to de los maxtérminos

Page 79: Principios de Diseño Digital (UDO)

3.8. CIRCUITOS LÓGICOS. 53 orrespondientes a las ombina iones de entrada para los uales la fun ión produ eun 0 de salida. Para el ejemplo anterior, F(x;y) = (x + y) � (x + y), y la lista demaxtérminos será F(x;y) = Q(0; 3).3.8. Cir uitos Lógi os.Aunque el desarrollo te nológi o ha permitido la realiza ión físi a de omplejasfun iones digitales, la fabri a ión de omponentes que sean apa es de umplir onlos one tivos binarios bási os se limitan a: AND, OR, XOR, NOT, NAND, NORy 1 (seguidor o "bu�er"). Eventualmente, es posible en ontrar o muy fá il derealizar, NXOR.La simbología tradi ionalmente empleada para representar las fun ioneslógi as desde un esquemáti o es la que se muestra en la �gura 3.6.2A

A

B

A

B

A

B

A

B

A

B

A

B

A + B

A + B

A A A

A * B A + B

A * B A + B

SEGUIDORNOT

AND OR XOR

NOXORNAND NORFigura 3.6: Símbolos tradi ionales para la representa ión de fun iones lógi asEstos ir uitos, ono idos omo ompuertas, trabajan on dos niveles devoltaje para representar los valores binarios. Con estos símbolos bási os, así omo on una tabla de verdad, se puede expresar ualquier fun ión lógi a. Veamos, amanera de ejemplo, la fun ión F(x;y) = x�y+x�y�z, en la �gura 3.7, el diagramade tiempos en la �gura 3.8, y su tabla de verdad en el uadro 3.10.Un observador meti uloso se habrá dado uenta que la expresión de F no esuna suma anóni a. Podría preguntarse, enton es, ¾Cómo se afe taría el ir uito2Esta se ha onvertido en la simbología de fa to. Aunque IEEE ha estandarizado otrasrepresenta iones, son po as las empresas e institu iones que las utilizan.

Page 80: Principios de Diseño Digital (UDO)

54

Figura 3.7: Diagrama esquemáti o para la fun ión F(x;y) = x � y + x � y � z

Figura 3.8: Diagrama de tiempos para la fun ión F(x;y) = x � y + x � y � z

Page 81: Principios de Diseño Digital (UDO)

3.8. CIRCUITOS LÓGICOS. 55Cuadro 3.10: Tabla de Verdad para la fun ión F(x;y) = x � y + x � y � zx y z x y x � y x � y � z x � y + x � y � z0 0 0 1 1 0 0 00 0 1 1 1 0 1 10 1 0 1 0 0 0 00 1 1 1 0 0 0 01 0 0 0 1 0 0 01 0 1 0 1 0 0 01 1 0 0 0 1 0 11 1 1 0 0 1 0 1mostrado y su diagrama de tiempos, si usáramos la lista de mintérminos omoexpresión de la fun ión?. Responderemos a esto en las se iones siguientes.3.8.1. Análisis de Cir uitos Lógi os Combina ionales.El análisis de un ir uito lógi o bási o debe omenzar en el ir uito mismo o enuna representa ión esquemáti a del mismo, que utili e los símbolos previamentedes ritos para ada una de las ompuertas. A partir de este punto, tenemos engeneral dos op iones para en ontrar una des rip ión formal del ir uito:1. Construir una tabla de verdad, evaluando el omportamiento del ir uitopara todas las posibles ombina iones de las variables de entrada.2. En ontrar la expresión algebrai a de la fun ión ir uital, asignándole un one tor a ada ompuerta y agrupando los términos de manera apropiada.La di� ultad, en ambos asos, radi ará esen ialmente en el tamaño del ir uito yen la antidad de variables lógi as involu radas.A manera de ejemplo, analizaremos el ir uito de la �gura 3.9.El pro edimiento es sen illo. Se debe omenzar en las entradas y desplazarseha ia la(s) salida(s), indi ando, en ada ompuerta, la expresión algebrai a querepresenta. Al �nalizar, en la última ompuerta, se ha obtenido la expresión paratoda la fun ión lógi a. En este momento y de ser ne esario, mediante la apli a iónde los teoremas y axiomas del álgebra de Boole bivalente, se puede en ontrar unaexpresión redu ida o equivalente para el ir uito.F = ABE + C +D= (A+B) � E + C +D ; por el teorema deDeMorgan= AE +BE + C +D ; porDistributividad de � sobre+= AE +BE + CD ; por el teorema deDeMorgan

Page 82: Principios de Diseño Digital (UDO)

56AA

BA * B A * B * E

A * B * E

C + D

E

C

D

D

C + D+

Figura 3.9: Diagrama esquemáti o de ejemploexpresión que orresponde a una suma no anóni a de produ tos, la que ahorapodemos esquematizar omo se muestra en la �gura 3.10.A

E

FB

D

CFigura 3.10: Diagrama esquemáti o equivalente al de la �gura 3.9A primera vista no se ha obtenido gran osa, ya que estamos usando el mismonúmero de ompuertas. Sin embargo podemos men ionar, entre otras osas:1. Se ha logrado un ir uito on menor profundidad lógi a (el número de ompuertas que una señal debe atravesar para produ ir un ambio en lasalida del ir uito), al pasar a 3 niveles en lugar de uatro. Esto redundaráen una respuesta más rápida ( omo veremos en el apitulo siguiente); y2. Se emplean solo tres tipos de ompuertas, en lugar de in o, lo quenormalmente indi a la utiliza ión de menos ir uitos integrados ( osa quetambién detallaremos más adelante).A menudo, es posible apli ar los teoremas de De Morgan y de Involu ióndire tamente sobre la representa ión esquemáti a, sin ne esidad de re urrir almanejo algebrai o de las expresiones. El teorema de Involu ión estable e que lanega ión de la nega ión restable e la variable a su ondi ión ini ial; de esta forma,

Page 83: Principios de Diseño Digital (UDO)

3.8. CIRCUITOS LÓGICOS. 57la presen ia de dos inversores en serie (o un número par de ellos), es lógi amente(no elé tri amente) equivalente a la elimina ión de ellos, o a su reemplazo por unseguidor, omo se apre ia en la �gura 3.11.AA A

A

A A

= A

AA

A

A AFigura 3.11: Apli a ión grá� a del Teorema de Involu iónPor otra parte, el teorema de De Morgan estable e que la nega ión del produ tológi o de las variables, es igual a la suma lógi a de las variables negadas (A �B =A+B). Sabemos que el produ to lógi o está implantado por una ompuerta AND,y la nega ión del produ to por una NAND. Enton es, una ompuerta NANDpuede ser substituida por una OR (suma lógi a), uyas entradas estén negadas omo se muestra en la �gura 3.12. Por dualidad, una ompuerta NOR, puede sersubstituida por una AND on sus entradas invertidas.A

B

FA

BF

B

AF

A

B

FB

A FA

BFFigura 3.12: Apli a ión grá� a del Teorema de De Morgan3.8.2. Síntesis de Cir uitos Lógi os Combina ionales.La búsqueda de solu ión a un problema, en ualquier área de ono imiento,normalmente sigue el ono ido Pro edimiento para la Resolu ión de

Page 84: Principios de Diseño Digital (UDO)

58Problemas o PSP por sus siglas en inglés (Problem Solving Pro edure). Este onsta, en general, de uatro pasos :1. Planteamiento del Problema. Se estable e el punto a resolver,normalmente, mediante una des rip ión en palabras.2. Con eptualiza ión. Traslada la des rip ión del problema a un modelo on eptual, normalmente matemáti o.3. Solu ión y Simpli� a ión. Estable e una solu ión para el modelo on eptual, usando las herramientas apropiadas al modelo. De ser posible,realiza una simpli� a ión, eliminando informa ión redundante o po osigni� ativa.4. Realiza ión. La solu ión al problema original es realizada o implantada,trasladando los resultados del paso anterior al área de apli a ión espe í� a.Alternativamente, o omo una etapa previa, la solu ión puede ser simulada,empleando la te nología ade uada.La apli a ión del álgebra de "swit hes" para el diseño de ir uitoslógi os puede ser ilustrado on la resolu ión del siguiente problema:Diseño de un Sistema de Alarma:1. Planteamiento del Problema. Diseñe un ir uito lógi o ombinatorio quea tive una alarma si una puerta o una ventana es abierta durante las horasde la no he.2. Con eptualiza ión. La a tiva ión de la alarma F (fun ión que bus amos)depende de tres variables lógi as binarias independientes : Puerta (P),Ventana (V ) y Hora (H ). Como se trata de variables binarias (o forzadasa tener una representa ión binaria), ada una de ellas podrá tener solo dosvalores posibles : P = ( 0 ; PuertaCerrada1 ; PuertaAbiertaV = ( 0 ; V entanaCerrada1 ; V entanaAbiertaH = ( 0 ; HorasDiurnas1 ; HorasNo turnasLa opera ión del ir uito de alarma puede ser des rita por una tablafun ional, que tiene su equivalente en una tabla de verdad.

Page 85: Principios de Diseño Digital (UDO)

3.8. CIRCUITOS LÓGICOS. 59Tabla Fun ional Tabla de VerdadHora Puerta Ventana Alarma H P V FDiurna Cerrada Cerrada Ina tiva 0 0 0 0Diurna Cerrada Abierta Ina tiva 0 0 1 0Diurna Abierta Cerrada Ina tiva 0 1 0 0Diurna Abierta Abierta Ina tiva 0 1 1 0No turna Cerrada Cerrada Ina tiva 1 0 0 0No turna Cerrada Abierta A tiva 1 0 1 1No turna Abierta Cerrada A tiva 1 1 0 1No turna Abierta Abierta A tiva 1 1 1 1De donde, F = P(5; 6; 7) = HPV +HPV +HPV .Un método más intuitivo y nada formal, onsiste en tratar de obtener unaexpresión algebrai a dire tamente desde el planteamiento del problema.Esto requiere una utiliza ión pre isa, y sin ningún tipo de ambigüedades,del lenguaje, osa desgra iadamente muy difí il de en ontrar hoy, aún enlos medios universitarios, que se ara terizan por un pobre, sino deplorable,manejo del idioma. Así, volviendo a nuestro problema, la alarma sonará (F )si y sólo si es de no he (N ) y esté abierta una ventana (V ) o esté abiertauna puerta (P). Esto nos ondu e a una expresión F = N � (V + P ).3. Solu ión y Simpli� a ión. Apli ando los teoremas y axiomas del Álgebraa la forma anóni a de F obtenida anteriormente, podemosF = HPV +HPV +HPV= HPV +HPV +HPV +HPV ; por Idempoten ia= HPV +HPV +HPV +HPV ; por Conmutatividad= HV (P + P ) +HP (V + V ) ; por Distributividad= HV (1) +HP (1) ; por Complemento= HV +HP ; por Identidad= H(V + P ) ; por Distributividad4. Realiza ión. La realiza ión la haremos mediante un diagrama lógi o(esquemáti o en la �gura 3.13) y una orrida de simula ión, la ual nosbrindará un diagrama de tiempos (�gura 3.14) del omportamiento de adavariable de entrada y de la salida.3.8.3. Manipula ión de ir uitos.Hasta el momento la forma de expresar las fun iones ombinatorias han sidoSuma De Produ tos (SDP) o Produ tos De Suma (PDS ), los uales utilizan

Page 86: Principios de Diseño Digital (UDO)

60

Figura 3.13: Esquemáti o de los ir uitos de Alarma

Figura 3.14: Diagrama de tiempo de los ir uitos de Alarma

Page 87: Principios de Diseño Digital (UDO)

3.8. CIRCUITOS LÓGICOS. 61 ompuertas AND, OR y NOT. Sin embargo, en la mayoría de las familias lógi as,las ompuertas NAND y NOR son más rápidas y, por tanto, es preferible suutiliza ión. Además, el empleo de un menor tipo de ompuertas normalmenteprodu e un ahorro onsiderable en los ostos de fabri a ión de un ir uito, omoveremos más adelante.En primer lugar, indi aremos que ualquier inversor puede substituirse poruna ompuerta NAND o NOR. Re ordemos la fun ión NAND (F14) del uadro3.1, donde ahora haremos B = A.Cuadro 3.11: Fun ión NAND on B = AF14AB "FF VFF VVV FVV FSe apre ia laramente que la salida es siempre el inverso del valor de A. Estaasevera ión pude también ser demostrada algebrai amente: A �B = A � A = A ,por el teorema de Idempoten ia.Una mejor op ión, desde el punto de vista elé tri o (lo justi� aremos másadelante), es ha er B = 1 uando se quiera realizar un inversor on ompuertasNAND : A �B = A � 1 = A, por el teorema de Identidad ó por el Postulado 2b(elemento neutro para *).La �gura 3.15 muestra una representa ión equivalente de inversores.A AA

AA

1AFigura 3.15: Diagrama equivalentes para un InversorRetomemos en este punto, los teoremas de De Morgan y el de Involu ión, que umplen un rol fundamental. Usemos, para ejempli� ar, el problema de la alarma;a saber

Page 88: Principios de Diseño Digital (UDO)

62 F = HPV +HPV +HPV= (HPV +HPV +HPV ) ; por Involu i�on= (HPV ) � (HPV ) � (HPV ) ; por DeMorganLa primera expresión es una suma de produ tos, pero la última es la inversiónde un produ to de produ tos invertidos. No nos intimidemos por el juego depalabras, la primera expresión utiliza ompuertas AND, OR y NOT, y la ter erasolo utiliza ompuertas NAND (si los posibles inversores son también substituidospor estas). El resultado se muestra en la �gura 3.16.P

V

H

P

V

H

A A

Figura 3.16: Alarma sólo on ompuertas NANDEste resultado también puede ser obtenido de forma grá� a, omo ya vimosen las �guras 3.11 y 3.12.De igual manera, por dualidad, un ir uito que orresponde a unarepresenta ión de produ to de sumas, puede implantarse sólo on ompuertasNOR.

Page 89: Principios de Diseño Digital (UDO)

3.8. CIRCUITOS LÓGICOS. 63

P

V

H

P

V

H

A

A

P

V

H

P

V

H

A

A

Figura 3.17: Alarma sólo on ompuertas NAND (Pro edimiento Grá� o)

Page 90: Principios de Diseño Digital (UDO)

64

Page 91: Principios de Diseño Digital (UDO)

Capítulo 4Diseño Elé tri o de CompuertasMu hos dispositivos físi os diferentes, me áni os y elé tri os, han sidoutilizados para onstruir ompuertas digitales (relés, válvulas hidráuli as, tubos deva ío, sensores de nivel, et .). En esta se ión nos entraremos en la utiliza ión desemi ondu tores omo elementos bási os de la te nología digital moderna. Aunquevarias de estas te nologías están a tualmente des ontinuadas, hemos onsideradointeresante men ionarlas, aunque sea de manera breve, para expli ar de unamanera sen illa los on eptos laves del diseño ele tróni o de ompuertas digitales.4.1. Lógi a de Resisten ia y Transistor (RTL)4.1.1. El BJT omo Inversor Lógi oLa �gura 4.1 muestra un transistor npn en on�gura ión de emisor omún.V1

Vcc

VsR1

R2

Figura 4.1: Transistor BJT en on�gura ión de emisor omúnPodemos, enton es, plantear las e ua iones de malla:V1 = R1 � ib + Vbe ) ib = V1 � VbeR1 (4.1)V = R2 � i + V e = R2 � �ib + V e ) V e = V �R2�ib (4.2)65

Page 92: Principios de Diseño Digital (UDO)

66substituyendo (4.1) en (4.2) obtenemos:V e = V � �R2V1 � V beR1 (4.3)Para que exista orriente de base, V1 debe ser mayor que Vbe , siendo este últimonormalmente 0,6V para los transistores de sili io. Así, si el voltaje de entradaV1 es Bajo (V1 < Vbe), enton es el diodo base-emisor no al anza a polarizar epositivamente y no existe orriente de base ib, on lo ual no existe orriente de ole tor i , llevando el transistor a la ondi ión de orte. De esta manera el voltajede salida Vs = V e es Alto on un valor de V , o muy er ano a este si onsideramosla pequeña orriente de fuga en todo transistor real.Por el ontrario, Cuando el voltaje de entrada V1 es Alto, ir ula una orrientede base ib uyo valor dependerá, además del voltaje de entrada, de R1 y la aídade tensión base-emisor. Existirá, enton es, una orriente de ole tor i � ��ib. Sinembargo, si � � (V1� Vbe) �R2=R1 es mayor que V , enton es la e ua ión 4.3 dejade ser ierta ya que en el transistor el voltaje ole tor-emisor V e nun a puede sermenor que ero (no puede generar un poten ial negativo); en un transistor realeste voltaje nun a puede ser menor a V e(sat) (generalmente 0,2V ). Obviamente yano nos en ontramos en la zona lineal de trabajo del transistor, sino en la zona desatura ión. De esta manera el voltaje de salida Vs es Bajo on un valor de V e(sat),o muy er ano a este. Hemos obtenido un inversor de la familia RTL (ResistorTransistor Logi ), omo se apre ia en la �gura 4.2R1

R2

Vcc

Vs=Vcc R1

R2

Vcc

Vce_sat=0

Vcc0 Figura 4.2: Transistor BJT a tuando omo inversor lógi o4.1.2. Diseño de un Inversor Lógi o usando BJTAunque el diseño de este tipo de ir uitos orresponde a un urso deele tróni a, intentaremos un ál ulo on la �nalidad de posteriormente estudiar lainter onexión de estos tipos de dispositivos, uestión que si es relevante para losingenieros de diseño digital. En primer lugar �jaremos el voltaje de alimenta iónV en 5.0V, ya que este es un estándar industrial para la familia TTL y una parteimportante de la familia CMOS (que estudiaremos más adelante). El nivel lógi o

Page 93: Principios de Diseño Digital (UDO)

4.1. LÓGICA DE RESISTENCIA Y TRANSISTOR (RTL) 67Bajo debe ser inferior a 0.6V para garantizar que el transistor entre en la zonade orte; así lo �jaremos en entre 0V y 0.5V. El nivel lógi o Alto es un po o más�exible debido a que la ondi ión de satura ión la lograremos uando V � V esea menor o igual a � � (V1 � Vbe) � R2=R1; así, lo �jaremos entre 2.0V y 5.0Vofre iendo una banda de seguridad (zona de transi ión) de 1.5V para distinguir laramente un Alto de un Bajo.Por otra parte, uando el transistor esté saturado, la orriente de ole torestará limitada solo por R2. Debemos, pues, disponer de un valor razonablementealto para limitar la orriente de ole tor, a �n de evitar daños en el omponentey/o pérdidas ex esivas por disipa ión de poten ia. Sin embargo, la resisten iainterna de orte (Roff ) de un transistor no es in�nita, y puede ser del orden dealgunas de enas de K. Así, un transistor ortado, on R2 en el mismo orden demagnitud que Roff , produ irá un voltaje bajo por el orden de V =2, lo ual esina eptable por estar en la banda de transi ión. Es ogeremos, enton es, R2 = 2k,lo que produ irá una orriente de ole tor máxima de 2;4mA, razonable para lamayoría de las familias lógi as, on un voltaje Alto er ano a V , y un voltajeBajo próximo a V e(sat).Finalmente, ono ido el � del transistor podemos aproximarnos a la orrientede base ne esaria para llevarlo a satura ión. Si el dispositivo estuviera trabajandoen la zona lineal, enton es ib = i =�. Pero realmente estamos en la zona desatura ión, por tanto esta orriente de base debe ser mayor que la obtenida porla expresión anterior. De esta forma planteamos,i =� < ib = (V1ALTOmin � Vbe)=R1 ) R1 < � � (V1ALTOmin � Vbe)=i donde V1ALTOmin es el mínimo valor de V1 para ser onsiderado una entradaalta, que produz a la ondi ión de satura ión. Asumiendo un � de 100, R1 <100 � (2;0V � 0;6V )=2;4mA = 58:3K. Así, tomamos R1 = 20K, llegando a unInversor, uyo omportamiento dinámi o podemos apre iar en la �gura 4.3.4.1.3. El Fan outEn la �gura 4.4 la salida de nuestro ir uito inversor ha sido argada on laentrada de otro ir uito del mismo tipo. Desde el punto de vista de la lógi a ir uital esto representa dos inversores puestos en serie, lo que orresponde alteorema de Involu ión. Bien, uando la entrada A está alta, el transistor Q1 estásaturado y el voltaje en B es bajo. El voltaje del punto B es la entrada de Q2, portanto este último está en orte, y la salida, en el punto C, es alta. Por el ontrario, uando la entrada A está baja, el transistor Q1 está ortado y el voltaje en B esalto, por tanto Q2 está saturado, y la salida en el punto C, es baja.

Page 94: Principios de Diseño Digital (UDO)

68

Figura 4.3: Comportamiento dinámi o de un transistor BJT omo Inversor20k

2kC20k

2k

Vcc

A

B

Q2Q1Figura 4.4: Dos inversores en serie

Page 95: Principios de Diseño Digital (UDO)

4.1. LÓGICA DE RESISTENCIA Y TRANSISTOR (RTL) 69El análisis ualitativo está de a uerdo a nuestros estudios previos.Consideremos, ahora, un examen uantitativo para observar el omportamientodel ir uito. Cuando VA está bajo, digamos 0V, laramente Q1 está ortado (paralo ual onsideraremos una ROFF bastante alta). De esta forma no hay orrientea través de Q1, pero se forma una malla entre V , la resisten ia de ole tor deQ1 (2k), la resisten ia de base de Q2 (20k), la unión base - emisor de Q2 y tierra.V = I � (2k + 20k) + V beQ2I = V � V beQ222k= 5V � 0;6V22k = 0;2mADe esta forma, en la resisten ia de ole tor de Q1 se produ irá una aída detensión 0.4V (2k*0.2mA). El voltaje en el punto B será VB = V �0;4V = 4;6V .Este resultado es orre to, pues esperamos un voltaje alto entre 2.0V y 5.0V.Sin embargo, si argamos el mismo ir uito on n inversores, enton es adauno de los inversores requerirá 0.2mA. De esta manera, la aída de tensión enla resisten ia de ole tor de Q1 será n � 2k � 0;2mA = n � 0;4V , y el voltaje enel punto B : VB = V � n � 0;4V . Naturalmente llegará un momento en que VBserá menor al voltaje mínimo para una ondi ión de alto (2.0V ) y el ir uito,aunque ele tróni amente opere, desde el punto de vista de la lógi a estará enuna ondi ión de error. Este número n , que representa la antidad máxima de ompuertas on que se puede argar la salida de un ir uito lógi o (o la antidadmáxima de ompuertas que un ir uito lógi o puede manejar), se ono e omo�fan out�. En nuestro aso,5V � n � 0;4V � 2;0V ) n � 5� 20;4de donde on luimos que n < 7.Afortunadamente los diseñadores digitales no requieren ha er estos ál ulos yaque el fabri ante de ir uitos lógi os propor iona el fan out dire tamente o, en sudefe to, suministra las espe i� a iones elé tri as para las ara terísti as externasde las entradas y salidas de los elementos lógi os. Por ejemplo, tomaremos partede las espe i� a iones del ir uito TTL 04 (Hex Inverter) del Manual de Datosde Signeti s (Cuadro 4.1):Con estos datos podemos determinar on pre isión ual es la arga máximaa que podemos someter una ompuerta, así omo el número de elementos quepuede manejar de su misma familia, o de ualquier otra. Por ejemplo, un

Page 96: Principios de Diseño Digital (UDO)

70 Cuadro 4.1: Tabla de datos para el Signeti s TTL Hex InverterPines 74 74H 74S 74LSEntradas iIH(uA) 40 50 50 20iIL(mA) -1.6 -2.0 -2.0 -0.36Salidas iOH(uA) -400 -500 -1000 -400iOL(mA) 16 20 20 8iIH = Corriente de entrada on voltaje altoiIL = Corriente de entrada on voltaje bajoiOH = Corriente de salida on voltaje altoiOL = Corriente de salida on voltaje alto ir uito integrado 74LS04 puede manejar hasta 20 ompuertas de su mismotipo (400uA=20uA = 20 ; 8mA=0;36mA = 22;22), pero si se arga on 7404,enton es solo podrá manejar hasta 5, de manera on�able (400uA=40uA = 10 ;8mA=1;6mA = 5).4.1.4. Tiempo de Transi iónLa antidad de tiempo que la salida de un ir uito lógi o tarda para ambiar deun estado a otro, es de ir pasar de alto a bajo o vi eversa, se ono e omo tiempode transi ión. En sistemas digitales a ostumbramos a idealizar el omportamientode las señales representándolas por pulsos "perfe tos". Sin embargo, ninguna señalfísi a real puede ambiar de un estado a otro en tiempo ero; en otras palabras,físi amente no existen dis ontinuidades que permitan a una señal presentar dosvalores diferentes en un mismo instante de tiempo. Una mejor aproxima ión a larealidad, la ual es ampliamente usada en los manuales de fabri antes, onsiste enasignarle una rampa de subida al �an o delantero del pulso, un nivel onstante altiempo de permanen ia, y una rampa de bajada al �an o posterior. Ahora la señaltoma ierto tiempo, ono ido omo tiempo de subida (tr), para pasar de bajo aalto, y otro tiempo normalmente diferente, llamado tiempo de bajada (tf), para ambiar de alto a bajo (ver �gura 4.5).Aún esta aproxima ión, siendo normalmente buena, no es exa ta. Las ratas de ambio en las transi iones no son onstantes debido a apa itan ias parásitas que,aunque muy pequeñas, apare en inevitablemente en: la unión de semi ondu tores,el ableado interno que une los semi ondu tores a los pines del dispositivo, lalongitud y disposi ión del ableado externo de onexión y otros fenómenos fueradel al an e de este trabajo. De esta manera, la forma real de una señal de salidade un dispositivo lógi o, en los �an os de subida y de bajada, se orresponden alas de arga y des arga de un ondensador en un ir uito RC. En este aso, los

Page 97: Principios de Diseño Digital (UDO)

4.1. LÓGICA DE RESISTENCIA Y TRANSISTOR (RTL) 71

Figura 4.5: Representa ión de una señal digital

Page 98: Principios de Diseño Digital (UDO)

72tiempos de subida y de bajada se miden on respe to a los niveles límites queindi an la validez de un estado.4.1.5. Retraso de Propaga iónEl omportamiento dinámi o ompleto de un elemento lógi o, además de lostiempos de subida y bajada de una señal, tiene que ver on el tiempo que toma undispositivo en al anzar una salida estable uando la entrada sufre un ambio. Estetiempo es ono ido omo retraso de propaga ión (tp). Este retraso de propaga iónestá aso iado on el amino elé tri o que sigue la señal desde la entrada hastala salida del dispositivo; es de ir, la antidad de elementos integrados que estánaso iados a un omportamiento determinado, y que sufren modi� a iones que nopueden o urrir en tiempo ero. Digamos, a manera de ejemplo, que un aminoelé tri o de una ompuerta está formado por varios transistores, enton es adauno de estos tomará alguna antidad de tiempo para operar los ambios que laex ita ión indi a (además de los tiempos de subida y bajada, están los tiempos dealma enamiento, ne esarios para sa ar un transistor de satura ión).De esta manera, en ontramos dos omponentes para los retardos depropaga ión: (1) el tiempo entre un ambio en la entrada y la salida orrespondiente, uando la salida esta ambiando de alto a bajo (tpHL); y (2)el tiempo entre un ambio en la entrada y la salida orrespondiente, uando lasalida esta ambiando de bajo a alto (tpLH). Usualmente los fabri antes espe i� anlos retrasos de propaga ión en rela ión on el punto medio de la transi ión, así omo la dura ión mínima del pulso (tW(min)), omo se apre ia en la �gura 4.6.4.1.6. Otras ompuertas RTLLa �gura 4.7 muestra una ompuerta NOR, de dos entradas, uyo omportamiento des ribiremos a ontinua ión.Con ambas entradas en nivel Bajo, los dos transistores estarán ortados; deesta forma en punto F tendrá un nivel alto. Al pasar ualquier entrada, o ambas, aAlto, el transistor orrespondiente se saturará, llevando el punto F a un nivel bajo.Este omportamiento des ribe a una ompuerta NOR: ualquier bajo produ e unalto.Es interesante notar que el número de entradas de la ompuerta depende dela antidad de transistores que one temos en paralelo. La pregunta obvia es:¾Cuantas entradas omo máximo podemos realmente agregar?.

Page 99: Principios de Diseño Digital (UDO)

4.1. LÓGICA DE RESISTENCIA Y TRANSISTOR (RTL) 73

Figura 4.6: Tiempos de Propaga iónF

Vcc

R1 R2

R3

A

B Figura 4.7: Compuerta NOR.

Page 100: Principios de Diseño Digital (UDO)

744.1.7. El Fan inCuando diseñamos un inversor lógi o en base a un transistor estable íamos quela resisten ia de orte de un transistor (Roff ) podía ser tan baja omo algunasde enas de K. Si olo amos n transistores, para formar una ompuerta NORde n entradas, y analizamos en momento uando todos estén ortados, tendremosun ir uito equivalente de n resisten ias de orte (Roff ) en paralelo, y todas estasen serie on la resisten ia de pull-up. El paralelo de las n resisten ias de orteprodu irá, en algún momento, un valor en una magnitud er ana a la resisten iade pull-up, formando un divisor resistivo que produ irá una aída de tensiónsigni� ante (por debajo del límite inferior para un nivel alto), uando esperábamosque esto no o urriera.Se de�ne, enton es, omo fan in el número máximo de entradas que una ompuerta pueda tener, sin alterar la opera ión lógi a del ir uito para ualquier ombina ión de entradas.4.2. Diodos y Lógi a de Resisten ias y Diodos(RDL)Ya hemos visto omo un transistor puede ser usado para realizar opera ioneslógi as. En este momento, examinaremos las posibilidades de los diodos de serexplotados omo elementos de ir uitos lógi os.Sabemos, desde nuestros estudios de ele tróni a, que el diodo es un dispositivosemi ondu tor uya ara terísti a de transferen ia ideal presenta dos estados biende�nidos en uanto a la ir ula ión de orriente. Cuando el dispositivo se polarizadire tamente, y el voltaje apli ado ex ede un punto de umbral (0.6V para diodosde sili io y 0.2V para diodos de germanio), la ir ula ión de orriente es máxima.Por el ontrario, si se polariza inversamente, o el voltaje apli ado no al anza elpunto de umbral, la ir ula ión de orriente es nula. Este omportamiento binariopuede ser aprove hado para la onstru ión de fun iones lógi as, omo veremos a ontinua ión.Vcc

R

A

FFigura 4.8: Seguidor BJT

Page 101: Principios de Diseño Digital (UDO)

4.2. DIODOS Y LÓGICA DE RESISTENCIAS Y DIODOS (RDL) 75En el ir uito de la �gura 4.8, si el punto de entrada A está one tado a unvoltaje igual a Gnd (bajo), enton es los diodos están dire tamente polarizados y ondu en; el voltaje en la salida F será igual a la aída de tensión en el diodo(0.6V si utilizamos un diodo de sili io) y por tanto tendrá un nivel lógi o Bajo;en este último aso, la orriente estará limitada por la resisten ia R.Obviamente, debemos modi� ar los limites para lo ual onsideraremos unnivel lógi o bajo (re ordemos que en RTL de�níamos Bajo entre 0.0V y 0.5v).Para esta familia el límite superior para la banda de Bajo debe estar por en imade los 0.6V, a menos que usemos entradas negativas lo ual signi� a la presen iade dos tipos de fuentes de alimenta ión y un in remento signi� ativo en los ostosde fabri a ión y opera ión. De esta manera �jaremos el nivel Bajo entre 0.0V y1.0V; para onservar el margen de seguridad en 1.5V, onsideraremos Alto entre2.5V y 5.0V.Si regresamos a la �gura 4.8 y omenzamos a in rementar linealmente elvoltaje en el punto A, enton es el voltaje en el punto F también se in rementarálinealmente manteniéndose por en ima de A, hasta que el voltaje de entrada estémuy er ano a V , donde perderemos la linealidad por entrar en el odo de la urva de transferen ia del diodo, la orriente disminuirá rápidamente hasta eroy el punto F al anzará a V , po o antes que A llegue a V .Bien, ahora agreguemos a nuestro ir uito original un segundo diodo (�gura4.10). En este aso si ambas entradas A y B están en un nivel Bajo, ambosdiodos ondu en y el punto F estará Bajo on una tensión entre 0;6V y VA +0;6V (ó VB + 0;6V , dependiendo ual de ellos sea más bajo). Si el punto A se onserva Bajo y B se pasa a Alto, enton es F permane erá en Bajo, debido a quedB quedará inversamente polarizado y no ondu irá. Igual razonamiento apli ará uando B esté en Bajo y A en Alto. Finalmente, uando ambas entradas esténAltas, enton es F estará Alta debido a que los diodos tienden a dejar de ondu ir.Esta opera ión lógi a la podemos resumir en una tabla ( uadro 4.2), para on luir que el omportamiento equivale a una fun ión AND.Cuadro 4.2: Opera ión de la Compuerta AND RDLVA VB VFBajo Bajo BajoBajo Alto BajoAlto Bajo BajoAlto Alto Alto

Page 102: Principios de Diseño Digital (UDO)

76

Figura 4.9: Diagrama de tiempos del seguidor RDL.dB

dA

Vcc

R

A

F

BFigura 4.10: Compuerta AND RDL.

Page 103: Principios de Diseño Digital (UDO)

4.3. LÓGICA DE DIODOS Y TRANSISTORES (DTL) 77Aún no hemos hablado del valor de R. Si se ha planteado que orrientes por elorden de algunos miliamperios son su� ientes para las familias lógi as, podemospensar, enton es, que on un valor de algunos kilo-ohms estaremos en un rangoade uado.4.3. Lógi a de Diodos y Transistores (DTL)Si unimos la ompuerta AND (RDL) on el inversor (RTL), obtendremos unanueva ompuerta NAND de la denominada familia DTL (�gura 4.11).dB

dA

R

A

C

B

Vcc

F

Figura 4.11: Compuerta NAND DTL.Sin embargo, deberemos realizar algunas pequeñas modi� a iones para queesta pueda operar apropiadamente. De a uerdo a nuestras de�ni iones de voltajebajo para la familia RDL, este podía llegar hasta 1.0V. Así si A y B estánbajos, podemos esperar, perfe tamente, 1.0V en el punto C. Este nivel de tensiónno es un bajo lógi o para la familia RTL, enviando el transistor a satura ión, uando debería estar en orte. De esta forma, se a ostumbra olo ar un diodo(normalmente los fabri antes usan dos), entre la salida de la ompuerta AND y laentrada de la ompuerta NOT, que produz an una aída de tensión que garanti eel estado de orte del transistor (�gura 4.12).La in orpora ión de estos diodos, para mejorar la respuesta a un nivel bajo,empeora la respuesta a un nivel alto. Cuando A y B están en un nivel alto, losdiodos de entrada no ondu en, quedando una malla a la entrada del transistor, uya e ua ión es, en el mejor de los asos:V = 1K � I + V d+ V d+ 20K � I + V be) I = ib = V � 2V d� V be21K

Page 104: Principios de Diseño Digital (UDO)

78dB

dA

R

A

B

Vcc

C FD

Figura 4.12: Compuerta NAND DTL (modi� ada).mu ho menor que la expresión que garantizaba la satura ión, uandoestudiábamos el inversor. Enton es, se realiza la segunda modi� a ión al ir uito(4.13), olo ando la resisten ia de entrada al inversor en paralelo on la unión base- emisor para garantizar la orriente de base ne esaria que sature al transistor paraun nivel alto a la salida de la AND.dB

dA

R

A

B

Vcc

C FD

1k 2k

20kFigura 4.13: Compuerta NAND DTL (�nal).4.4. Lógi a de Transistor - Transistor (TTL)Esta es la familia lógi a más popular y de mayor utiliza ión, tanto en laindustria omo en edu a ión, aunque ha sido des ontinuada por la mayoría delos fabri antes para dar paso a nuevas te nologías. Está formada por una seriede subfamilias que le propor ionan diferentes ara terísti as tanto en velo idad, onsumo de energía, inmunidad al ruido, et . El orazón de estos omponenteslo forman transistores multi-emisor, que reemplazan a los diodos on fun ioneslógi as de la familia DTL.

Page 105: Principios de Diseño Digital (UDO)

4.4. LÓGICA DE TRANSISTOR - TRANSISTOR (TTL) 794.4.1. Inversor TTLLa �gura 4.14 muestra un inversor de la familia TTL estándar, la que onstituye la estru tura bási a omún a todos las ompuertas y subfamilias TTL.Vcc

R14k

A

D2

Q2

1.6kR2

Q3

Q4

R3130

R41k

Q1

F

Figura 4.14: Inversor TTLPodemos expli ar su fun ionamiento, omo si se separaran, ada transistoren un bloque fun ional. El este ir uito, Q1 es el transistor de a oplamiento deentrada y D1 es el diodo de �ja ión de entrada (� lamp�), que minimiza los efe tosde rizados negativos en la entrada, impidiendo que una entrada baje de los -0.6V.Es importante notar que el �ujo de orriente se realiza de base a emisor uandolas entradas están bajas, y de base a ole tor uando las entradas están altas.Q2 a túa omo un separador de fase (phase sliptter), propor ionando lainversión y ampli� a ión en el ir uito.Q3 a túa omo un manejador (driver) de los niveles bajos de salida y Q4 loha e omo un manejador de los niveles altos.Anali emos la forma de operar un po o más en detalle. Supongamos que elpunto A está en un estado alto. De esta manera, no ir ula orriente desde labase de Q1 ha ia ningún emisor. Sin embargo la unión base - ole tor quedadire tamente polarizada por el poten ial que propor iona la fuente a través deR1. Así �uye orriente desde V , pasando por R1, la unión base - ole tor deQ1, ha ia la base de Q2, de forma que Q2 está en ondu ión. La orriente enel emisor de Q2, formada por la orriente de ole tor más la orriente de basede Q2, se rami� a a través de R4 ha ia tierra y por la base de Q3. Enton es Q3está también en ondu ión y la salida F es igual al voltaje ole tor - emisor ensatura ión de Q3 (menor o igual a 0.2v). Con Q2 y Q3 saturados el voltaje en la

Page 106: Principios de Diseño Digital (UDO)

80base de Q4 es de 0.8V (0.6V de Vbe Q3 más 0.2 V e(sat) de Q2 ), que resultaninsu� ientes para ha erlo entrar en ondu ión (para que Q4 entre en ondu iónse requieren una tensión mayor o igual a V e de Q2 más Vd del diodo D1, másVbe de Q4 ; es de ir, omo mínimo 1.4V); por tanto, Q4 está ortado. En estas ondi iones, la orriente de ole tor de Q2 proviene desde la arga y se di e quela salida está "a eptando" orriente (sinking urrent).Supongamos, ahora, que el punto A está en un estado bajo. De esta manera,la unión base - emisor de Q1 está dire tamente polarizada, �uyendo orrientedesde V , pasando por R1, la unión base - emisor de Q1, ha ia el dispositivo quemaneja la entrada TTL (el ual debe re ibirla), y �nalmente a tierra. Como Q1está saturado, el voltaje en la base de Q2 es 0.2V más grande que el voltaje denivel bajo apli ado a la entrada. Debido a que el límite superior para un nivel bajoTTL es de 0.8V, en aso extremo la base de Q2 tendrá 1.0V. Sin embargo, paraque este transistor y Q3 entren en ondu ión se requieren omo mínimo 1.2V(las dos aídas base - emisor). Así Q2 y Q3 están ortados. De esta forma, alestar Q2 ortado, la base de Q4 es forzada a alto a través de R2, y Q4 se satura.El punto F estará a un nivel alto, pero mu ho más bajo que V (exa tamenteV menos la aída en R3, menos V e(sat) de Q4, menos la aída Vd del diodoD1 ). En estas ondi iones, la orriente de salida �uye desde la fuente, pasandopor R3, Q4, D1 y por la arga ha ia tierra. Se habla enton es de que la salidaestá suministrando orriente (sour e urrent).4.4.2. NAND TTLLa �gura 4.15 muestra una ompuerta NAND de la familia TTL estándar.Vcc

R14k

A

BD3D2

Q1Q2

1.6kR2

Q3

Q4

R3130

R41k F

Figura 4.15: Compuerta NAND TTL.

Page 107: Principios de Diseño Digital (UDO)

4.4. LÓGICA DE TRANSISTOR - TRANSISTOR (TTL) 81Al igual que en el aso del Inversor, podemos expli ar su fun ionamiento, omosi se separaran, ada transistor en un bloque fun ional. El transistor Q1, junto aR1, forma una ompuerta AND, donde los diodos lási os han sido reemplazadospor los emisores múltiples. Es importante notar que el �ujo de orriente se realizade base a emisor uando las entradas están bajas, y de base a ole tor uandolas entradas están altas. Los diodos D2 y D3 (llamados de �ja ión o " lamp")minimizan los efe tos de rizados negativos en la entrada, impidiendo que unaentrada baje de los -0.6V.Q2 a túa omo un separador de fase (phase sliptter), propor ionando lainversión y ampli� a ión en el ir uito.Q3 a túa omo un manejador (driver) de los niveles bajos de salida y Q4 loha e omo un manejador de los niveles altos.Anali emos la forma de operar un po o más en detalle. Supongamos los puntosA y B en un estado alto. De esta manera, no ir ula orriente desde la base deQ1 ha ia ningún emisor. Sin embargo la unión base - ole tor queda dire tamentepolarizada por el poten ial que propor iona la fuente a través de R1. Así �uye orriente desde V , pasando por R1, la unión base - ole tor de Q1, ha ia la basede Q2, de forma que Q2 está en ondu ión. La orriente en el emisor de Q2,formada por la orriente de ole tor más la orriente de base de Q2, se rami� aa través de R4 ha ia tierra y por la base de Q3. Enton es Q3 está también en ondu ión y la salida F es igual al voltaje ole tor - emisor en satura ión de Q3(menor o igual a 0.2v). Con Q2 y Q3 saturados el voltaje en la base de Q4 es de0.8V (0.6V de Vbe Q3 más 0.2 V e(sat) de Q2 ), que resultan insu� ientes paraha erlo entrar en ondu ión (para que Q4 entre en ondu ión se requieren unatensión mayor o igual a V e de Q2 más Vd del diodo D1, más Vbe de Q4 ; esde ir, omo mínimo 1.4V); por tanto, Q4 está ortado. En estas ondi iones, la orriente de ole tor de Q2 proviene desde la arga y se di e que la salida está"a eptando" orriente (sinking urrent).Supongamos, ahora, los puntos A y B (o al menos uno de ellos) en un estadobajo. De esta manera, la unión base - emisor de Q1 está dire tamente polarizada,�uyendo orriente desde V , pasando por R1, la unión base - emisor de Q1, ha iael dispositivo que maneja la entrada TTL (el ual debe re ibirla), y �nalmente atierra. Como Q1 está saturado, el voltaje en la base de Q2 es 0.2V más grande queel voltaje de nivel bajo apli ado a la(s) entrada(s). Debido a que el límite superiorpara un nivel bajo TTL es de 0.8V, en aso extremo la base de Q2 tendrá 1.0V.Sin embargo, para que este transistor y Q3 entren en ondu ión se requieren omo mínimo 1.2V (las dos aídas base - emisor). Así Q2 y Q3 están ortados.De esta forma, al estar Q2 ortado, la base de Q4 es forzada a alto a través de

Page 108: Principios de Diseño Digital (UDO)

82R2, y Q4 se satura. El punto F estará a un nivel alto, pero mu ho más bajo queV (exa tamente V menos la aída en R3, menos V e(sat) de Q4, menos la aída Vd del diodo D1 ). En estas ondi iones, la orriente de salida �uye desdela fuente, pasando por R3, Q4, D1 y por la arga ha ia tierra. Se habla enton esde que la salida está suministrando orriente (sour e urrent).4.4.3. Niveles lógi osSe de�nen para esta familia, además de la región normal de separa ión entrebajo y alto, dos bandas estre has omo margen de ruido para los estados altos ybajos (�gura 4.16). Esto da origen a los siguientes parámetros:TRANSICION

ALTO

BAJO

MARGEN

MARGEN

Gnd

VOLmax

VILmax

VIHmin

VOHmin

Vcc

Figura 4.16: Niveles Lógi os TTL.VOHmin (2.4V): Voltaje mínimo de salida en el estado alto.VIHmin (2.0V): Voltaje mínimo de entrada en el estado alto.VILmax (0.8V): Voltaje máximo de entrada en el estado bajo.VOLmax (0.4V): Voltaje máximo de salida en el estado bajo.Estos parámetros, más onservativos, garantizan una mejor inter onexión entre ompuertas TTL.4.4.4. Entradas que no se usanEn algunas o asiones algunas entradas de una ompuerta no son utilizadas, dea uerdo a las ne esidades del diseño y a la existen ia de ompuertas. Por ejemplo,usted ne esita usar una NAND de tres entradas, pero se disponen en alma én ompuertas on uatro entradas. ¾Qué ha er on esas entradas no ne esarias desdeel punto de vista lógi o, ono idos omo entradas �otantes?.

Page 109: Principios de Diseño Digital (UDO)

4.4. LÓGICA DE TRANSISTOR - TRANSISTOR (TTL) 83Probablemente la primera inten ión sea no ha er nada, es de ir, dejarla�otando. Visto así, en una ompuerta NAND TTL no podrá ir ular orrientea través de ese emisor por no ofre er un amino elé tri o, enton es está entrada�otando orresponde lógi amente a una entrada alta (la ual polariza inversamentela unión base - emisor impidiendo la ir ula ión de orriente). Sin embargo, y sinánimo de entrar en detalles que orresponden al ampo de la ele tróni a y los ir uitos de pulsos, ualquier ruido produ ido en el ir uito, tal omo el que segenera uando las ompuertas están ambiando de estado, será per ibido por eltransistor on entradas �otantes, que al no tener referen ia elé tri a espe í� a,se omportará, en algunas ondi iones, omo si tuviera una señal lógi a baja. Deesta forma, las entradas no usadas de una ompuerta TTL deben one tarse auna fuente del nivel ade uado para que no inter�era on la opera ión normal deldispositivo. En el aso de ompuerta AND y NAND a un nivel alto, y en el asode ompuertas OR y NOR a un nivel bajo.Obviamente, un ex elente nivel bajo es una onexión dire ta a tierra (Gnd). Noobstante, en el aso de un nivel alto, una onexión dire ta a V , aunque fun ione,no es re omendable, ya que un transiente, digamos del 10% de V puede dañar la ompuerta. En su lugar, la onexión es realizada a V a través de una resisten ialimitadora en el rango de 1k a 5k.Alternativamente, el álgebra de Boole nos propor iona otra posibilidad. Sire ordamos el teorema de Idempoten ia (x � x = x ó x + x = x), enton espodremos one tar las entradas no usadas on ualquiera entrada que manejeuna señal lógi a. No obstante, esto impli a ompartir energía entre ompuertas,disminuyendo la posibilidad de onexiones a otros módulos al usar parte del fanout de la ompuerta alimentadora.Existen otras posibles solu iones, omo el uso de inversores o seguidores segúnse ameriten, pero esto, naturalmente, in rementa el osto del ir uito.4.4.5. Entrada de Disparador de S hmittLa urva ara terísti a de una ompuerta normal, a tuando omo inversora es omo se muestra en la �gura 4.18 (línea punteada). Sobre la misma �gura se hatrazado la urva ara terísti a de un disparador de S hmitt. En ella se apre ia laramente dos umbrales de transi ión (VT+ y VT�) y una zona, omprendidaentre estos, denominada histéresis. Cuando el voltaje de entrada (VE) omienza aaumentar a partir de ero, la salida se mantiene onstante a un nivel alto hastaque la entrada no al an e VT+. En este momento, la salida ambia brus amentea un nivel bajo y permane e onstante en él hasta que el voltaje de entrada seamáximo (V ). Por el ontrario, uando el voltaje de entrada (VE) omienza a

Page 110: Principios de Diseño Digital (UDO)

84Vcc

A

B

FA

B

F

A

B F

Figura 4.17: Entradas no usadas.disminuir, la salida se mantiene onstante a un nivel bajo hasta que la entradano al an e VT�. En este momento, la salida ambia brus amente a un nivel altoy permane e onstante en él hasta que el voltaje de entrada sea mínimo (Gnd).5.0

4.0

3.4

2.0

1.0

0.2

1.7 3.0 4.0 5.0

V E

SV

0.90.6

V T+T−V

Figura 4.18: Fun ión de Transferen ia de un Disparador de S hmitt

Page 111: Principios de Diseño Digital (UDO)

4.4. LÓGICA DE TRANSISTOR - TRANSISTOR (TTL) 85Las entradas de Disparador de S hmitt tienen mayor inmunidad al ruidoy son espe ialmente útiles en apli a iones donde se emplean elementos ele tro- me áni os omo entradas (relés, interruptores, te lados, et . ), así omo on onexiones físi amente largas ( ables, buses, et . ), donde se presentan re�exionese indu iones ele tromagnéti as.La �gura 4.19 muestra la respuesta de una ompuerta normal y una ondisparador de S hmitt, ante una entrada on ruido.4.4.6. Salidas TTLLas ompuertas TTL, des ritas anteriormente, poseen una disposi ión omúnpara la salida ono ida omo totem-pole.4.4.6.1. Totem PoleBajo esta denomina ión se agrupan las ompuertas que presenta su salida enun arreglo de tres transistores: el separador de fase, el manejador de niveles bajosy el manejador de niveles altos. La opera ión de estos arreglos ya ha sido expli adaen los apartados anteriores.4.4.6.2. Cole tor abierto.El nombre de este tipo de salida deriva del he ho de que no poseeninternamente: la resisten ia de polariza ión ni el manejador de niveles altos,quedando el ole tor de Q3 sin onexión (�gura 4.20).Para obtener los niveles lógi os ade uados debe one tarse externamente unaresisten ia (pull-up), u otro tipo de arga elé tri a, entre el ole tor de Q3 y lafuente de alimenta ión.Con este tipo de arreglo se logran dos ara terísti as de opera ión importantes:1) Limitar la orriente a un valor deseado; y 2) Alimentar la salida on un niveldistinto a V (�gura 4.21).4.4.6.3. Alta Impedan ia (ter er estado)La salida de Alta Impedan ia o triestado presenta tres estados de opera ión:alta, baja y ter er estado o des one tada. Poseen una entrada de ontrol adi ionalque sele iona entre una opera ión normal (salidas alta o baja) y el estado dealta impedan ia. La �gura , muestra un inversor TTL de alta impedan ia on lossímbolos aso iados.

Page 112: Principios de Diseño Digital (UDO)

86

Figura 4.19: Respuesta temporal de un Disparador de S hmitt.

Page 113: Principios de Diseño Digital (UDO)

4.4. LÓGICA DE TRANSISTOR - TRANSISTOR (TTL) 87Vcc

R14k

A

D2

Q2

1.6kR2

Q3

R41k

Q1

F

Figura 4.20: Inversor TTL de Cole tor Abierto.Vcc

R14k

A

D2

Q2

1.6kR2

Q3

R41k

Q1

F

Vdd

Figura 4.21: Apli a ión de una salida ole tor abierto.

Page 114: Principios de Diseño Digital (UDO)

88Vcc

R14k

A

D2

Q2

Q3

Q4

R3130

F

Q1

R21.6k

1k

R4

Q5

D3E

E=0 E=0 E=1

A=0 A=1 A=X F=ZF=0F=1

Figura 4.22: Inversor TTL on salida de alta impedan ia.Cuando la entrada de habilita ión (E ) está en nivel bajo, Q5 no ondu e yel ir uito fun iona en la on�gura ión totem-pole normal. Cuando la entrada dehabilita ión (E ) está en nivel alto,Q5 ondu e, luego en el segundo emisor deQ1 seprodu e un nivel bajo, ha iendo que Q2 y Q3 se bloqueen y el diodo D3 se polari edire tamente, ha iendo que Q4 también se bloquee. Como ambos transistores deltotem-pole quedan ortados, la salida está � ompletamente� des one tada del restodel ir uito interno (a no ser por la pequeñas orrientes de fuga), y el punto F dela salida queda elé tri amente aislado (��otando�).4.4.7. Otras familias TTLLa familias TTL está formada, además, por otras sub-familias que poseen ara terísti as de opera ión parti ulares:TTL de bajo onsumo (54L / 74L): La serie 54L/74L se ara teriza por elbajo onsumo de energía (alrededor de 1mW ), por lo ual sus resisten iasinternas son de un tamaño onsiderablemente mayor a los de la serie normal,donde el onsumo promedio de energía es de 10mW. Este ahorro de energíase onsigue en desmedro de la velo idad de propaga ión de las ompuertas(33ns), volviendo estos ir uitos onsiderablemente más lentos que la serienormal (10ns).TTL S hottky (54S / 74S): La serie 54S/74S se ara teriza por tener unarápida respuesta de onmuta ión, es de ir bajo tiempo de propaga ión

Page 115: Principios de Diseño Digital (UDO)

4.5. LÓGICA CMOS 89(alrededor de 3ns), en ompara ión on la serie normal (10ns), debido aque los diodos y transistores que se in orporan son del tipo S hottky. Estamejora en la velo idad de respuesta se onsigue en desmedro del onsumode energía (19mW ), en ompara ión on la serie normal (10mW ).TTL S hottky de bajo onsumo (54LS / 74LS): La serie 54LS/74LS se ara teriza por al anzar una suerte de ompromiso entre la velo idad derespuesta y el onsumo de energía. Su onstru ión bási a, a partir deuna ompuerta S hottky, es eliminar el transistor multiemisor de entraday ambiarlo por diodos S hottky. De esta manera se logran tiempos depropaga ión del orden de los 10ns y onsumos de poten ia de 2mW.TTL S hottky Avanzada (54AS / 74AS): La serie 54AS/74AS son versioneste nológi amente avanzadas de la serie S. La disipa ión de poten ia típi aes de 8.5mW y un retardo de propaga ión de 1ns. Existe una versión deesta serie que se designa por F (Fast).TTL S hottky Avanzada de bajo onsumo (54ALS / 74ALS): La serie54ALS/74ALS son versiones te nológi amente avanzadas de la serie LS. Ladisipa ión de poten ia típi a es de 1mW y un retardo de propaga ión de4ns.4.5. Lógi a CMOSLa familia lógi a CMOS (Complementary Metal-Oxide Semi ondu tor) basasu diseño estru tural en la utiliza ión de transistores semi ondu tores de efe tode ampo de oxido de sili io (MOSFET ). El término omplementario se debe a lapresen ia de dos tipos de transistores simultáneamente: los tipo N y los tipo P.4.5.1. El inversor CMOSLa �gura 4.23 muestra un inversor de la familia CMOS, formado por dosMOSFET : uno de anal N y otro de anal P.Cuando se apli a una entrada de nivel alto el MOSFET de anal p (Q1) no ondu e, y el MOSFET de anal n (Q2) ondu e (se satura), olo ando un nivelbajo en el punto de salida a través de la resisten ia de ondu ión de Q2. Cuandose apli a una entrada de nivel bajo el MOSFET de anal p (Q1) ondu e, y elMOSFET de anal n (Q2) no ondu e, olo ando un nivel alto en el punto desalida a través de la resisten ia de ondu ión de Q1.

Page 116: Principios de Diseño Digital (UDO)

90Vdd

S

S

D

D

G

G

FA

Q canal p

Q canal n2

1

Figura 4.23: Inversor CMOS4.5.2. NAND CMOSLa �gura 4.24 muestra una ompuerta NAND de la familia CMOS, formadopor dos pares omplementarios de MOSFET ±.Vdd

Q4

Q3

Q2Q1

A

F

B Figura 4.24: NAND CMOS

Page 117: Principios de Diseño Digital (UDO)

4.5. LÓGICA CMOS 91La opera ión de esta ompuerta puede ser expli ada mediante una tabla, dondeC y S representan Corte y Satura ión, respe tivamente.Cuadro 4.3: Tabla de Opera ión de una ompuerta NAND CMOSA B Q1 Q2 Q3 Q4 FL L S S C C HL H C S C S HH L S C S C HH H C C S S L4.5.3. Inversor CMOS TriestadoLa �gura 4.25 muestra un inversor CMOS triestado.

Q4

Q3

Q2

Q1

Vdd

F

A

E

Figura 4.25: Inversor CMOS triestadoCuando la entrada de habilita ión (E ) está a nivel bajo, el dispositivo se a tivapara fun ionamiento omo un inversor normal. Cuando la entrada de habilita ión

Page 118: Principios de Diseño Digital (UDO)

92(E ) está a nivel alto, Q1 y Q2 entran a orte al mismo tiempo, des one tando lasalida del resto del ir uito (estado de alta impedan ia).4.6. Otras Familias Lógi asEsta se ión sólo pretende nombrar otras te nologías de las a tualmenteempleadas en el diseño y fabri a ión de ir uitos lógi os. No se hará ningún estudioni análisis, solo una brevísima men ión.4.6.1. ECLLa familia ECL (Emitter-Coupled Logi ) es una te nología de tipo bipolar,típi amente formado por un ir uito de entrada ampli� ador diferen ial, un ir uito de polariza ión y salidas seguidor de emisor. ECL es mu ho más rápidaque TTL, ya que los transistores no fun ionan en satura ión.4.6.2. PMOSUna de las primeras te nologías para produ ir ir uitos MOS de alta densidadfue la PMOS. En esta se utilizan transistores MOS de anal p, en modo de real e(enhan ement) para produ ir los bloques bási os de una ompuerta.4.6.3. NMOSCon el mejoramiento de la te nología de pro esamiento apare ieronlos dispositivos NMOS, ampliamente utilizados hoy en memorias ymi ropro esadores.4.6.4. E2CMOSLa te nología E2CMOS está basada en una ombina ión de CMOS y NMOSy se utiliza bási amente en el diseño de dispositivos lógi os tipo GAL (Arreglo deCompuertas Lógi os), ubiertos en el apítulo que trata sobre nuevas metodologíasde diseño.4.7. Cir uitos Integrados de Apli a ionesEspe í� asEsta se ión ha sido ompletamente re onstruida y ahora es ubierta omoparte del apítulo que trata sobre nuevas metodologías de diseño.

Page 119: Principios de Diseño Digital (UDO)

Capítulo 5Minimiza ión de las fun iones deBoole.La realiza ión de una expresión lógi a simpli� ada resulta en un ir uitofun ionalmente equivalente, pero on menor número de literales y ompuertas,lo ual debería ha erlo más e onómi o (no siempre ierto). De esta manera,la utiliza ión de los axiomas y teoremas del álgebra de Boole obran singularimportan ia. Sin embargo, el orden en que ellos son apli ados no nos garantizanuna expresión mínima, al des ono er el mejor amino de manipula ión. Por estarazón han sido desarrolladas diferentes herramientas para lograr una redu iónsistemáti a de las expresiones Booleanas.5.1. Mapas de Veit h - Karnaugh.Una de las prin ipales herramientas de diseño para la simpli� a ión defun iones Booleanas son los ono idos Mapas K, desarrollados por Veit h yre�nados por Mauri e Karnaugh.Sabemos que ada fun ión booleana, de dos variables F(a;b) : S xS ! S, leasigna a ada elemento del dominio S xS = f(0; 0) ; (0; 1) ; (1; 0) ; (1; 1)g un soloelemento de S = (0; 1), situa ión que re�ejábamos en una tabla de verdad, endonde ada �la de la tabla representa un término produ to de todas las posibles ombina iones de los literales de las variables. Cada término produ to que tieneun uno en la olumna de la fun ión F es un mintérmino de la fun ión de�nido enla tabla de verdad. La fun ión puede ser expresada, enton es, en la forma anóni ade suma de produ tos omo la suma lógi a de los mintérminos de la fun ión.Si las variables a y b son onsideradas omo ejes de un sistema bidimensional,enton es el dominio de la fun ión divide el universo de dos variables en 4 eldasde un mapa, omo se muestra en el uadro 5.1:93

Page 120: Principios de Diseño Digital (UDO)

94 Cuadro 5.1: Mapa K de dos variablesb0 1a 0 (0; 0) a � b m0 (0; 1) a � b m11 (0; 0) a � b m2 (1; 1) a � b m3En el aso de una fun ión de tres variables a, b y , las �las de la tabla deverdad son numeradas en una se uen ia binaria, la ual posee una distan ia mayora uno entre un ódigo y el inmediato siguiente (para algunos asos). Para tomarventaja del teorema de adya en ia (xy + xy = x), los términos produ tos debenser representados en el mapa o upando eldas adya entes, que solo di�eran en unavariable ( uadro 5.2).Cuadro 5.2: Mapa K de tres variablesb 00 01 11 10a 0 (0; 0; 0) ab m0 (0; 0; 1) ab m1 (0; 1; 1) ab m3 (0; 0; 1) ab m21 (1; 0; 0) ab m4 (1; 0; 1) ab m5 (1; 1; 1) ab m7 (1; 0; 1) ab m6El orden en que se ubiquen las variables en el mapa, siempre respetando lapondera ión del ódigo binario, solo afe ta la forma del mapa, pero las eldasadya entes sólo di�eren en una variable. Si los extremos del mapa son vistos omoun ilindro abierto, enton es las eldas de la olumna a la izquierda son adya entes on las eldas de la olumna de la dere ha (o superior e inferior), al diferir sóloen una variable. De esta manera, la adya en ia físi a de las eldas se orresponde on la adya en ia lógi a de los términos produ tos ( uadro 5.3).5.1.1. Mapas de 4, 5 y 6 variables.A medida que el número de variables de una fun ión booleana aumenta,aumenta el número de eldas y la omplejidad de su representa ión grá� a.En el aso de una fun ión de uatro variables a, b, y d , el número de eldasserá 16 (24) y su representa ión grá� a se adapta, aún, perfe tamente en un plano( uadro 5.4).En este aso todas las eldas ve inas, de manera horizontal y/o verti al, sonadya entes. De la misma manera, son adya entes las eldas de la primera �la

Page 121: Principios de Diseño Digital (UDO)

5.1. MAPAS DE VEITCH - KARNAUGH. 95Cuadro 5.3: Otros mapas K de tres variablesab a00 01 11 10 00 01 11 10 0 m0 m2 m6 m4 b 0 m0 m4 m5 m11 m1 m3 m7 m5 1 m2 m6 m7 m3 a0 1 0 100 m0 m1 00 m0 m4ab 01 m2 m3 b 01 m1 m511 m6 m7 11 m3 m710 m4 m5 10 m2 m6

Cuadro 5.4: Mapa K de uatro variables d00 01 11 1000 m0 m1 m3 m2ab 01 m4 m5 m7 m611 m12 m13 m15 m1410 m8 m9 m11 m10

Page 122: Principios de Diseño Digital (UDO)

96 on las respe tivas de la última, y las eldas de la primera olumna on lasrespe tivas de la última olumna. Es de ir, nos referimos a un ilindro abiertosimultáneamente en los sentidos horizontal y verti al.En el aso de una fun ión de in o variables a, b, , d y e , el número de eldas será 32 (25) y su representa ión grá� a ya no se adapta perfe tamente enun plano. Podemos imaginarnos su onstru ión omo un mapa doble de uatrovariables ( uadro 5.5).Cuadro 5.5: Mapa K de in o variablesa=0 de a=1 de00 01 11 10 00 01 11 1000 m0 m1 m3 m2 00 m16 m17 m19 m18b 01 m4 m5 m7 m6 b 01 m20 m21 m23 m2211 m12 m13 m15 m14 11 m28 m29 m31 m3010 m8 m9 m11 m10 10 m24 m25 m27 m26En este aso, se umplen todas las ondi iones de adya en ia ya vistas paraun mapa K4. Pero, además, todas las eldas del primer mapa K4 son adya entes on las respe tivas del segundo.

Figura 5.1: Mapa K de in o variablesFinalmente, En el aso de una fun ión de seis variables a, b, , d, e y f, elnúmero de eldas será 64 (26) y su representa ión grá� a ya se torna bastanteengorrosa. Podemos imaginarnos su onstru ión omo un mapa doble de in ovariables ( uadro 5.6).

Page 123: Principios de Diseño Digital (UDO)

5.1. MAPAS DE VEITCH - KARNAUGH. 97Cuadro 5.6: Mapa K de seis variablesab=00 ef ab=01 ef00 01 11 10 00 01 11 1000 m0 m1 m3 m2 00 m16 m17 m19 m18 d 01 m4 m5 m7 m6 d 01 m20 m21 m23 m2211 m12 m13 m15 m14 11 m28 m29 m31 m3010 m8 m9 m11 m10 10 m24 m25 m27 m26ab=01 ef ab=11 ef00 01 11 10 00 01 11 1000 m32 m33 m35 m34 00 m48 m49 m51 m50 d 01 m36 m37 m39 m38 d 01 m52 m53 m55 m5411 m44 m45 m47 m46 11 m60 m61 m63 m6210 m40 m41 m43 m42 10 m56 m57 m59 m58En este aso, se umplen todas las ondi iones de adya en ia ya vistas paraun mapa K5. Pero, además, todas las eldas del primer mapa K5 son adya entes on las respe tivas del segundo.

Figura 5.2: Mapa K de seis variablesResulta evidente la di� ultad de representar por medio de mapas K fun iones on un número mayor de variables. De esta forma, dejaremos para más adelantelos me anismos mediante los uales se a ometen el estudio de fun iones booleanas on un gran número de variables.

Page 124: Principios de Diseño Digital (UDO)

985.2. Simpli� a ión de las fun iones booleanas enlos mapas k.5.2.1. Cobertura mínima.Desde el punto de vista de los mapas K, una obertura es la ole ión dere tángulos, agrupados en 2n eldas, que engloban a todos los mintérminos de unafun ión. Así, una obertura puede onsistir en la unión de ada elda individualque posee un mintérmino. No obstante, normalmente esta no es la oberturamínima. De esta manera, podemos de�nir a la obertura mínima omo la SDP(Suma De Produ tos) de F que posee el menor número de términos produ tos y ualquiera de estos tiene el menor número de literales.Ubi ados todos los mintérminos que forman una fun ión en un mapa K,podemos seguir el pro edimiento siguiente para en ontrar una obertura mínima: 1. En ierre en un re tángulo ada elda que ontenga un 1 aislado y márquela on un asteris o (*).2. En ierre en un re tángulo, de 2n eldas, la mayor antidad de eldasadya entes que ontengan unos, y que no estén ontenidas en un bloquemayor. Continúe el pro eso hasta obtener re tángulos de 2 eldas.3. Con luido el paso anterior, anali e los bloques de mayor tamaño y marque on un asteris o (*) las eldas que están ubiertas solo por este bloque.Marque on un signo de hequeo (p) todas las eldas restantes del bloqueque ontiene, al menos, un asteris o.4. Repita el paso anterior on los bloques 2n�1 hasta 21.5. Una obertura mínima onsiste de todos los bloques esen iales (aquellos on,al menos, una elda on asteris o), aumentado por una pequeña ole iónde otros bloques que ubren los mintérminos restantes (p).Por ejemplo, onsidere la fun ión F(a;b; ;d) = P(1; 5; 6; 7; 11; 12; 13; 15): d00 01 11 1000 1ab 01 1 1 111 1 1 110 1De esta forma, una obertura mínima estará formada por

Page 125: Principios de Diseño Digital (UDO)

5.2. SIMPLIFICACIÓN DE LAS FUNCIONES BOOLEANAS EN LOSMAPAS K.9900

01

11

10

1

1

1*

1*

1

11*

1*

cd

ab

acdbd

abd_

abc_

acd_ _

00 01 11 10

Figura 5.3: Mapa K para fun ión de ejemplo de minimiza iónF(a;b; ;d) = ab + ab + a d+ a dEl bloque bd no es ne esario ya que todos sus mintérminos están ubiertos.En una fun ión booleana F representada en la forma de SDP, un términoprodu to P es un impli ante de F sí, y sólo sí, F = 1 para ada ombina ión devalores de entrada en los uales P = 1. En otras palabras, en la forma SDP unimpli ante es ualquier término produ to. Por ejemplo, enF(a;b; ;d) = a d+ abd+ ab + ab + ab dtodos los términos produ tos (a d, abd, ab , ab y ab d) son impli antes de lafun ión.Expandamos la expresión para obtener todos los mintérminos de la fun ión,F(a;b; ;d) = a d+ abd+ ab + ab + ab d= a d(b + b) + abd( + ) + ab (d+ d) + ab (d+ d) + ab d= ab d+ ab d+ ab d+ ab d+ ab d+ ab d+ ab d+ ab d+ ab d= �(1; 5; 1; 3; 4; 5; 12; 13; 10)= �(1; 3; 4; 5; 10; 12; 13)y expresémosla en un mapa K (�gura 5.4)Un impli ante de F es un impli ante primo (IP) de F si él no está ontenidoen un bloque superior de mintérminos que forman un impli ante de F. En nuestroejemplo a d (1,5), abd (1,3) y ab d (10) son impli antes primos, pero ab (4,5) yab (12,13) no lo son ya que ambos están ontenidos en b (4,5,12,13), omo seapre ia en la siguiente expresión:

Page 126: Principios de Diseño Digital (UDO)

100

1

00

01

11

10

00 01

1 1

1 1

1

1

11 10

cd

ab

Figura 5.4: Mapa K para la fun ión �(1; 3; 4; 5; 10; 12; 13)ab + ab = b (a + a) = b Un impli ante primo (IP) de F es un impli ante primo esen ial (IPE ) deF si IP ontiene un mintérmino que no está ontenido en ningún otro impli anteprimo de F. En nuestro aso, abd (1,3) es un IPE de F porque él ontiene elmintérmino ab d (3) que no está ontenido en ningún otro IP de F. Además, el IPb es también un IPE de F porque ontiene los mintérminos (4, 12 y 13) (ab d,ab d y ab d) no ontenidos en ningún otro IP de F. El IP a d (1,5) no es unIPE de F debido a que ada mintérmino ontenido en él [ab d (1) y ab d (5)℄pertene en a abd (1,3) y b (4,5,12,13) respe tivamente.Un mintérmino aislado de F o ualquier mintérmino de un IPE de F es unmintérmino distinguido (*) de F. En nuestro aso, los mintérminos (3, 4, 10,12 y 13)Podemos ahora rede�nir el on epto de obertura mínima, la ual onsiste entodos los IPE's y un onjunto pequeño, no redundante, de impli antes primos noesen iales (IPNE ) que ubren todos los mintérminos que no son ubiertos por losIPE's de F. De la misma manera, podemos de�nir la suma mínima (SM ), deuna fun ión booleana F, omo la suma lógi a de produ tos (SDP) de todos losIPE's y un pequeño onjunto de IPNE's que ubren todos los mintérminos no ubiertos por los IPE's de F . Es importante notar que la obertura mínima, así omo la suma mínima, no son úni as.

Page 127: Principios de Diseño Digital (UDO)

5.3. MINIMIZACIÓN TABULAR DE FUNCIONES BOOLEANAS. 101Un Impli ante Primo 1 (IP1 ) domina a otro impli ante primo (IP2 ), si elprimero ubre los mismos mintérminos no hequeados que el segundo y, al menos,un mintérmino no hequeado adi ional, y se denota por IP1 > IP2. Veamos elsiguiente ejemplo para lari� ar este último on epto:F(a;b; ;d) = �(4; 5; 6; 9; 11; 13; 14; 15)

1

00

01

11

10

00 01

1 1

1

1

1

1

11 10

cd

ab1

Figura 5.5: Mapa K para la fun ión �(4; 5; 6; 9; 11; 13; 14; 15)De aquí se desprende que ab (4,5) domina a b d (5,13) y b d (6,14) domina aab (14,15). Esto se apre ia más laro en el mapa K de impli antes redu idos, endonde solo se representen los no hequeados.5.3. Minimiza ión tabular de fun iones booleanas.Los mapas K son herramientas importantes en la simpli� a ión de fun ioneslógi as pero su debilidad estriba en la apa idad intuitiva que posea el diseñadorpara apre iar la agrupa ión de eldas adya entes, sobre todo uando el númerode variables ex ede a uatro. Por otra parte, no garantiza una realiza ión mínimade SDP ; pero , tal vez, la prin ipal desventaja sea en que are e de un onjuntosistemáti o de reglas de utiliza ión que garanti en el objetivo de minimiza ión.Esta situa ión es orregida on los trabajos desarrollados por Quine ( en 1952 ) yM Cluskey ( en 1956 ).5.3.1. El método de Quine - M Cluskey .Basados en los on eptos de adya en ia propor ionados por los mapas K yen el valor del ódigo binario asignado a ada mintérmino en una fun ión, el

Page 128: Principios de Diseño Digital (UDO)

10200

01

11

10

00 01

1 1

1

1

11 10

cd

ab

Figura 5.6: Mapa K redu ido para la fun ión �(4; 5; 6; 9; 11; 13; 14; 15)pro eso de agrupar impli antes adya entes se redu e a en ontrar todas las posibles ombina iones de mintérminos on distan ia lógi a uno, para lo ual la diferen iade sus valores debe ser exa tamente una poten ia de 2. De esta manera, adamintérmino o ubo 0 de una fun ión debe ompararse on los restantes, si ladiferen ia de sus valores es una poten ia exa ta de 2, es de ir, su distan ia lógi aes uno (solo ambia una variable en posi ión i), enton es se agrupan formando un ubo superior al ual se le ha eliminado la variable de la posi ión i , y los ubos 0 semar an omo ya ubiertos por el ubo re ién formado. Terminada la ompara iónpara los ubos 0, se repite para los ubos de orden superior que resultaren readosen el paso anterior, teniendo presente que además de la diferen ia a la que ya hemoshe ho referen ia, para que puedan ser ombinables deben poseer la(s) misma(s)variables eliminadas. El pro eso �naliza uando no puedan rearse ubos de ordensuperior. En este punto debe haber quedado, al menos, un ubo-n sin ombinarse.Todos los ubos-n no ombinados forman los impli antes primos de la fun ión.Es obvio que omparar un mintérmino on todos los otros resulta en un esfuerzoperdido, ya que solo tienen la posibilidad de ser adya entes aquellos que en larepresenta ión de su ódigo tienen una antidad de unos uya diferen ia sea uno,debido a que en ualquier otro aso la distan ia lógi a entre ellos sería mayor oigual a 2. De esta manera, resulta en un ahorro onsiderable omenzar por agruparlos mintérminos de la fun ión por la antidad de unos que posea su ódigo, yposteriormente omparar solo grupos ontiguos. Esto produ irá ubos de ordensuperior también agrupados por el mismo riterio más la variable eliminada delprodu to que ellos forman.

Page 129: Principios de Diseño Digital (UDO)

5.3. MINIMIZACIÓN TABULAR DE FUNCIONES BOOLEANAS. 103Desarrollaremos el pro edimiento para F(a;b; ;d) = �(0; 2; 3; 6; 7; 8; 9; 10; 13)[ uadro 5.7℄: Cuadro 5.7: Método de Quine - M Kluskey# 1s Cubo 0 Cubo 1 Cubo 20 0 p 0,2(2) p 0,2,8,10(2,8) *1 2 p 0,8(8) p 2,3,6,7(1,4) *8 p 2,3(1) p2 3 p 2,6(4) p6 p 2,10(8) p9 p 8,9(1) *10 p 8,10(2) p3 7 p 3,7(4) p13 p 6,7(1) p9,13(4) *Como se apre ia en el uadro 5.7, hemos en ontrado un onjunto de impli antesprimos {[2, 3, 6, 7℄(1, 4), [0, 2, 8, 10℄(2, 8), [9, 13℄(4) y [8, 9℄(1)} que ubren todoslos términos mínimos de la fun ión. Sin embargo, esta no es la respuesta óptimaya que existe redundan ia y aún es posible un pro eso mayor de minimiza ión.5.3.1.1. Sele ión de un onjunto óptimo de impli antes primosSi onstruimos una tabla ( uadro 5.8)de los impli antes en ontrado ontra lostérminos mínimos involu rados, podremos realizar algunas de isiones importantes:Serán Impli antes Primos Esen iales, aquellos que ubren a un términomínimo, que no esté ubierto por otro impli ante (una sola mar a en una olumna).Así, [0, 2, 8, 10℄(2, 8) es un IPE ya que es el úni o que ubre a los mintérminos 0y 10. De igual manera, [2, 3, 6, 7℄(1, 4) es un IPE ya que es el úni o que ubre alos mintérminos 3, 6 y 7. Por otra parte, [9, 13℄(1) es un IPE ya que es el úni oque ubre al mintérmino 13. Estos IPE han sido mar ados on **.Cuadro 5.8: Sele ión de un onjunto de Impli antes PrimosImpli ante Primo 0 2 3 6 7 8 9 10 130,2,8,10(2,8) ** p p p p2,3,6,7(1,4) ** p p p p8,9(1) p p9,13(4) ** p pp p p p p p p p p

Page 130: Principios de Diseño Digital (UDO)

104Finalmente, al sele ionar obligatoriamente los IPE antes señalados, hanquedado ubiertos todos los mintérminos de la fun ión, on lo ual no es ne esarioin luir el IP [8, 9℄(1).Para obtener la expresión minimizada de la fun ión falta en ontrar losprodu tos generados por ada IPE. Tomando la representa ión algebrai a de ualquiera de los mintérminos reunidos en ada IPE y eliminando la variableno importa de ella, es de ir la representada por la diferen ia, arribaremos a laexpresión �nal.0; 2; 8; 10(2; 8) ) 8>>><>>>: 0000001010001010 9>>>=>>>;) 8>>><>>>: x0x0x0x0x0x0x0x0 9>>>=>>>; ) b 2; 3; 6; 7(1; 4) ) 8>>><>>>: 0010001101100111 9>>>=>>>;) 8>>><>>>: 0x1x0x1x0x1x0x1x 9>>>=>>>; ) a

9; 13(4) ) ( 10011101 )) ( 1x011x01 ) ) a d on lo ual arribamos a:F(a;b; ;d) = �(0; 2; 3; 6; 7; 8; 9; 10; 13) = b + a + a d5.4. Realiza ión de algunos Códigos Espe iales*En el apítulo sobre Códigos Binarios nos referíamos a dos de ellos departi ular importan ia: Código Gray y Código Hamming. En esta se ión veremosun método para poder realizarlos.5.4.1. Código GrayComo men ionábamos on anterioridad, el Código Gray es un ódigo re�ejadode distan ia unitaria y, para el aso de una palabra de informa ión de 3 bits,llegábamos a una onstru ión omo se muestra en la tabla 5.9.Una rápida visión de la tabla 5.9 nos muestra que O2 = I2. Por otra parte,podemos emplear ualquier método de miniza ión que nos permita en ontrarexpresiones para O1 y O0.

Page 131: Principios de Diseño Digital (UDO)

5.4. REALIZACIÓN DE ALGUNOS CÓDIGOS ESPECIALES* 105Cuadro 5.9: Código Gray de 3 bitsBinario 3 bits Gray 3 bitsI2I1I0 O2O1O00 0 0 0 0 00 0 1 0 0 10 1 0 0 1 10 1 1 0 1 01 0 0 1 1 01 0 1 1 1 11 1 0 1 0 11 1 1 1 0 0O1(I2;I1;I0) = I2I1I0 + I2I1I0 + I2I1I0 + I2I1I0= I2I1(I0 + I0) + I2I1(I0 + I0)= I2I1 � 1 + I2I1 � 1= I2I1 + I2I1= I2 � I1O0(I2;I1;I0) = I2I1I0 + I2I1I0 + I2I1I0 + I2I1I0= I1I0(I2 + I2) + I1I0(I2 + I2)= I1I0 � 1 + I1I0 � 1= I1I0 + I1I0= I1 � I0Por extensión, en el aso de un Código Gray de 4 bits, las expresiones serían:O3 = I3O2 = I3 � I2O1 = I2 � I1O0 = I1 � I0y para un Código Gray de n bits:On = InOn�1 = In � In�1On�2 = In�1 � In�2:::O1 = I2 � I1O0 = I1 � I0

Page 132: Principios de Diseño Digital (UDO)

1065.4.2. Código Hamming*En la se ión de ódigos de orre ión de errores (Capítulo de CódigosBinarios), men ionábamos que un ódigo on distan ia mínima 3 era apaz dedete tar la o urren ia de un error simple y orregirlo.A manera de ejemplo, pensemos que deseamos odi� ar dos símbolos (triánguloy ír ulo) que serán pro esados o transmitidos de manera digital. Por ser nada másdos elementos, sólo sería ne esario un bit para su odi� a ión, on una distan iamínima de 1: 0 : Tri�angulo1 : C�ir uloSin embargo, si al momento de trasmitir triángulo (0) se produ e un error,en el úni o bit que lo representa, en el re eptor se re ibirá ír ulo (1). Por sereste último un elemento válido del ódigo el error pasará desaper ibido. De igualmanera su edería en aso ontrario.Aumentando la distan ia mínima del ódigo a 2, errores simples seríandete tados pero no orregidos: 00 : Tri�angulo11 : C�ir uloSi al momento de trasmitir triángulo (00) se produ e un error, en un bit, elre eptor re ibirá 01 ó 10. Ninguna de estas ombina iones pertene e a un elementoválido del ódigo y el error es dete tado. No obstante no podemos pre isar ualfue el elemento transmitido ya que se en uentran a la misma distan ia lógi a delos ódigos válidos.Aumentando la distan ia mínima del ódigo a 3, errores simples seríandete tados y orregidos: 000 : Tri�angulo111 : C�ir uloSi al momento de trasmitir triángulo (000) se produ e un error, en un bit, elre eptor re ibirá 001, 010 ó 100. Ninguna de estas ombina iones pertene e a unelemento válido del ódigo y el error es dete tado. Pero además, ualquiera deestos ódigos no válidos está lógi amente más er a del 000 que del 111, por lo

Page 133: Principios de Diseño Digital (UDO)

5.4. REALIZACIÓN DE ALGUNOS CÓDIGOS ESPECIALES* 1070 1

00 01

10 11

000 001

010 011

111

101

110

100

Cubo 1 Cubo 2 Cubo 3

Figura 5.7: Codi� a ión de dos elementos on distan ias mínimas: 1, 2 y 3 ual se on luye que el elemento transmitido era efe tivamente triángulo (�gura5.7).Hasta aquí la exposi ión es lara. No obstante habíamos dejado una preguntaen el aire: ¾Cómo onstruir, de una manera onsistente y e� iente, ódigos dedistan ia mínima 3 ?. En 1950, R. Hamming des ribió un método general para onstruir ódigos de este tipo.El pro eso onsiste en agregar k bits de paridad a una palabra de informa iónde r bits, para obtener una nueva palabra odi� ada de n=k+r bits, donde segarantizan que al menos 3 bits ambian entre dos elementos válidos. La antidadk de bits de paridad a agregar se desprende de la siguiente rela ión:2k � 1 � k + rLos bits de paridad (pk) o upan la posi ión de las poten ias de 2 y el resto delas posi iones son los bits de informa ión (mr).Por ejemplo, en nuestro ejemplo anterior, donde sólo existe un bit deinforma ión (r=1 ) o upando la posi ión 3, se requieren 2 bits de paridad (k=2 )o upando las posi iones 1 y 2, y la estru tura de la nueva palabra ódigo sería3 2 1m1 p2 p1Cada bit de paridad es agrupado on los bits de informa ión uyos números deposi ión, expresados en binario, se forman on la ontribu ión del respe tivo bitde paridad (se le a larará on ejemplos más ompletos), de tal forma de garantizaruna paridad par de unos en ada expresión. Como m1 está en posi ión 3 (11 ),p1 [que está en posi ión 1 (01 )℄ debe agruparse on él propor ionando paridadpar para el onjunto. De igual manera, omo m1 está en posi ión 3 (11 ), p2 [que

Page 134: Principios de Diseño Digital (UDO)

108está en posi ión 2 (10 )℄ debe agruparse on él propor ionando paridad par parael onjunto. Esto puede resumirse omo:p1 �m1 = 0p2 �m1 = 0De aquí se desprende que p1 = p2 = m1.Por otra parte, para palabras on 2, 3 ó 4 bits de informa ión se requieren 3bits de paridad, y la estru tura de la nueva palabra ódigo sería7 6 5 4 3 2 1m4 m3 m2 p3 m1 p2 p1p1 [que está en posi ión 1 (001 )℄ debe agruparse on: m1 [que está enposi ión 3 (011 )℄, m2 [que está en posi ión 5 (101 )℄ y m4 [que está enposi ión 7 (111 )℄, propor ionando paridad par para el onjunto.p2 [que está en posi ión 2 (010 )℄ debe agruparse on: m1 [que está enposi ión 3 (011 )℄, m3 [que está en posi ión 6 (110 )℄ y m4 [que está enposi ión 7 (111 )℄, propor ionando paridad par para el onjunto.p3 [que está en posi ión 4 (100 )℄ debe agruparse on: m2 [que está enposi ión 5 (101 )℄, m3 [que está en posi ión 6 (110 )℄ y m4 [que está enposi ión 7 (111 )℄, propor ionando paridad par para el onjunto.El onjunto de e ua iones, donde, de ser el aso, se elimina el (los) bit(s) deinforma ión que no parti ipan, sería:p1 �m1 �m2 �m4 = 0p2 �m1 �m3 �m4 = 0p3 �m2 �m3 �m4 = 0de donde se desprende que: p1 = m1 �m2 �m4p2 = m1 �m3 �m4p3 = m2 �m3 �m4En la tabla 5.10 se apre ia la onstru ión de Códigos de Hamming parapalabras de 1, 2, 3 y 4 bits de informa ión:

Page 135: Principios de Diseño Digital (UDO)

5.4.REALIZACIÓNDEALGUNOSCÓDIGOSESPECIALES*109

Cuadro5.10:CódigosdeHammingpara1,2,3y4bits

m1 m1p2p1 m2m1 m2p3m1p2p1 m3m2m1 m3m2p3m1p2p1 m4m3m2m1 m4m3m2p3m1p2p10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 1 1 1 0 1 0 0 1 1 1 0 0 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 11 0 1 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 11 1 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 01 0 0 1 0 1 0 1 0 0 1 0 0 0 1 0 1 0 1 01 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 11 1 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 1 11 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 1 0 01 0 0 0 1 0 0 1 0 1 11 0 0 1 1 0 0 1 1 0 01 0 1 0 1 0 1 0 0 1 01 0 1 1 1 0 1 0 1 0 11 1 0 0 1 1 0 0 0 0 11 1 0 1 1 1 0 0 1 1 01 1 1 0 1 1 1 1 0 0 01 1 1 1 1 1 1 1 1 1 1

Page 136: Principios de Diseño Digital (UDO)

110Bus ando una expresión de ará ter más general, podemos rees ribir el onjunto de e ua iones de grupo omo:p1 �m1 �m2 �m4 = 0p2 �m1 �m3 �m4 = 0p3 �m2 �m3 �m4 = 0m1 � m2 � m4 � p1 = 0m1 � m3 � m4 � p2 = 0m2 � m3 � m4 � p3 = 01 �m1 � 1 �m2 � 0 �m3 � 1 �m4 � 1 � p1 � 0 � p2 � 0 � p3 = 01 �m1 � 0 �m2 � 1 �m3 � 1 �m4 � 0 � p1 � 1 � p2 � 0 � p3 = 00 �m1 � 1 �m2 � 1 �m3 � 1 �m4 � 0 � p1 � 0 � p2 � 1 � p3 = 0y en forma matri ial, donde la multipli a ión es una onjun ión lógi a y la sumaes una disyun ión ex lusiva lógi a.264 1 1 0 1 1 0 01 0 1 1 0 1 00 1 1 1 0 0 1 3752666666666664m1m2m3m4p1p2p3

3777777777775 = 264 000 375HC = 0Enton es, el problema de determinar las expresiones para los bits de paridadpk, ubi ados en el ve torC (junto a los bits de informa iónmr), pasa por en ontraruna matriz de paridad H , que requiere las siguientes ondi iones:1. Todas las olumnas son distintas; y2. Ninguna olumna está onstituida sólo por eros.Si un ve tor C , en transmisión, es re ibido omo R on un bit errado, al seroperado on lamatriz de paridad H produ irá un ve tor resultado distinto de ero(Síndrome), indi ando on su valor binario la posi ión exa ta del bit equivo ado.

Page 137: Principios de Diseño Digital (UDO)

5.4. REALIZACIÓN DE ALGUNOS CÓDIGOS ESPECIALES* 111A manera de ejemplo, supongamos que C = [m4m3m2 p3m1 p2 p1℄; = [0 0 0 0 1 1 1℄;(que orresponde a la informa ión 0 0 0 1), es re ibido omo R = [0 0 1 0 1 1 1℄; [ onun bit errado en la posi ión 5 (m2)℄HR = S24 1 1 0 1 1 0 01 0 1 1 0 1 00 1 1 1 0 0 1 352666666664 00101113777777775 = 24 1 � 0� 1 � 0� 0 � 1� 1 � 0� 1 � 1� 0 � 1� 0 � 11 � 0� 0 � 0� 1 � 1� 1 � 0� 0 � 1� 1 � 1� 0 � 10 � 0� 1 � 0� 1 � 1� 1 � 0� 0 � 1� 0 � 1� 1 � 1 35= 24 0� 0� 0� 0� 1� 0� 00� 0� 1� 0� 0� 1� 00� 0� 1� 0� 0� 0� 1 35= 24 100 35note que este ve tor patrón S oin ide on la quinta olumna de la matriz H. Deesta manera, el bit errado o upa la quinta posi ión y debe omplementarse.Otra manera de analizar el dato re ibido es al ular nuevamente los bits deparidad y ompararlos on los originales:rm4 = 0rm3 = 0rm2 = 1rm1 = 1rp1 = 1rp2 = 1rp3 = 0 p1 = rm1 � rm2 � rm4 = 1� 1� 0 = 0 p2 = rm1 � rm3 � rm4 = 1� 0� 0 = 1 p3 = rm2 � rm3 � rm4 = 1� 0� 0 = 1 p1 6= rp1 p2 = rp2 p3 6= rp3

Page 138: Principios de Diseño Digital (UDO)

112 omo p2 = rp2, y se ha admitido sólo un error, enton es rm1; rm3 y rm4 están orre tos. De esta manera rm2 es in orre to y debe omplementarse.

Page 139: Principios de Diseño Digital (UDO)

Capítulo 6Cir uitos Se uen iales y Elementosde Memoriza ión6.1. Introdu iónEn temas anteriores se ha des rito el pro edimiento de diseño de omponentes ombina ionales. La ara terísti a prin ipal de todos los omponentes ombina ionales es el he ho de que sus valores de salida (O) se al ulanex lusivamente a partir de una fun ión (h) de sus valores a tuales en las entradas(I ). Para ualquier ambio en los valores de entrada, los valores de salida apare enen los terminales orrespondientes, on el retardo de propaga ión ne esario paraobtenerlos. O = h(I)En ambio, el omportamiento se uen ial, omo su nombre sugiere, presentala ara terísti a de que los valores de salida no tan sólo dependen del valor de lasseñales de entrada, sino que además de omo ha sido la traye toria históri a del omportamiento en el tiempo del sistema. Es de ir, de la se uen ia de estados (S )por la que ha atravesado el sistema.O = h(S;I)Esto nos lleva a la ne esidad de in orporar, en los omponentes se uen iales,elementos que permitan alma enar la traye toria temporal del sistema, ono idos omo Elementos de Memoria.De esta manera, los valores alma enados en elementos de memoria de�nen elestado de un omponente se uen ial y, ualquier ambio en los valores de entrada,en el instante de tiempo ti, modi� ará el estado del sistema en el instante ti+�1(donde �1 es un in remento de tiempo arbitrario) y los valores de salida, en el113

Page 140: Principios de Diseño Digital (UDO)

114instante ti+�2 (donde �2 es otro instante de tiempo no ne esariamente igual a�1).Como ejemplo para resaltar las diferen ias entre un Sistema Se uen lal y otroCombinatorio, onsideremos el omportamiento entre dos tipos de erradura. Poruna parte, las erraduras utilizadas para la tapa de un maletín eje utivo y, porotra, las utilizadas para la puerta de una ajas fuerte. En el primer aso, paraque la tapa del maletín pueda abrirse basta on que la ombina ión de dígitos seala apropiada, independientemente de la manera omo se arribó a ella. En el asode la aja fuerte, la puerta se abrirá siempre que se haya olo ado la se uen iaapropiada de dígitos en la erradura.

Figura 6.1: Cerraduras Combinatoria y Se uen ialImaginemos, un momento, que el maletín posee solo una erradura de ombina ión, y que esta está formada por uatro dis os binarios (ab d), en lugarde de imales. Además, la ombina ión que abre la erradura es 1001. Con nuestros ono imientos ya adquiridos podemos diseñar un ir uito lógi o ombinatoriopequeño que sea apaz de resolver esta situa ión.Cuadro 6.1: Tabla de Verdad para una erradura ombinatoria on a tiva ión en1001. Ent. Sal. Ent. Sal. Ent. Sal. Ent. Sal.ab d f ab d f ab d f ab d f0000 0 0100 0 1000 0 1100 00001 0 0101 0 1001 1 1101 00010 0 0110 0 1010 0 1110 00011 0 0111 0 1011 0 1111 0f(a;b; ;d) =X(9) = ab d

Page 141: Principios de Diseño Digital (UDO)

6.1. INTRODUCCIÓN 115Sin embargo, para el aso de la puerta de la aja fuerte, deberíamos re ono eruna se uen ia de datos, espa iados en el tiempo y olo ados en su entrada úni a.Supongamos que la se uen ia orre ta es la informa ión binaria 1001, enton es,el problema podría visualizarse empleando un diagrama de �ujo, omo el de la�gura 6.2.Espera primer dato

0

Espera segundo dato

Espera tercer dato

0

Espera cuarto dato

1

1N

S

N

N

N

S

S

S

Activa cerraduraFigura 6.2: Diagrama de Flujo para la a tiva ión de una erradura se uen ial.En Sistemas digitales, esta representa ión se realiza mediante la utiliza ión deDiagramas de Estado, que bási amente propor ionan la misma informa ión. Parael aso de nuestro ejemplo, podemos transformar fá ilmente el Diagrama de Flujoen un Diagrama de Estados, omo se muestra en la �gura 6.3.Observe que:

Page 142: Principios de Diseño Digital (UDO)

116a/0

b/0

c/0

d/0

e/1

1

0

0

0

1

1

1

0

0,1Figura 6.3: Diagrama de Estados para la erradura se uen ial.Cada asilla re tangular del Diagrama de Flujo orresponde a un ir ulo(estado) del Diagrama de Estados.Las asillas de de isión (rombos) del Diagrama de Flujo han sido eliminadasen el Diagrama de Estados, sustituyendo los aminos ondi ionales por�e has en las uales dire tamente se ha aso iado el valor binario de la entradaque lo produ e.A ada estado del Diagrama de Estados se le ha aso iado un par x / z,donde x es un nombre o etiqueta que orresponde a un ódigo binario y z esla salida del sistema. En nuestro ejemplo, la salida se a tiva (toma el valoruno) sólo en el estado e, después de re ono er orre tamente la se uen ia1001.Al estado e se le ha olo ado un amino adi ional el ual indi a que despuésde haber al anzado este estado, no importa que tipo de dato siga entrandoal sistema, este último permane erá en lavado on su salida a tiva. A estetipo de sistema se le ono e omo Sistemas on En lavamiento.El último punto anterior nos sugiere que deben existir Sistemas sin En lavamiento.Pensemos que deseamos que el sistema sea apaz de re ono er ontinuamente lase uen ia soli itada. Enton es el sistema no debe en lavarse. Una vez que hare ono ido la se uen ia orre ta, a tiva la salida y se prepara para omenzar

Page 143: Principios de Diseño Digital (UDO)

6.1. INTRODUCCIÓN 117su trabajo nuevamente desde el ini io. Un Diagrama de Estados de este tipo semuestra en la �gura 6.4(b).Por otra parte, es posible que al romperse la se uen ia orre ta, en algún puntodel pro eso, no sea ne esario regresar al ini io, ya que parte de la informa iónre ibida puede servir omo la informa ión ini ial redu ida de la se uen ia bus ada.Esta distin ión operativa da origen a los Sistemas on Solapamiento y Sistemassin Solapamiento, omo se apre ia en los uatro diagramas de la �gura 6.4.a/0

b/0

c/0

d/0

e/1

1

0

0

0

1

1

1

0

0,1

a/0

b/0

c/0

d/0

e/1

a/0

b/0

c/0

d/0

e/1

a/0

b/0

c/0

d/0

e/1

(a) (b) (c) (d)

1

0

0

0

1

1

1

0

0,1

1

0

0

0

1

1

1

0

0,1

1

0

0

0

1

1

0

1

1 0

Figura 6.4: Diagramas de Estado: (a) Con En lavamiento / Sin Solapamiento.(b) Sin En lavamiento / Sin Solapamiento. ( ) Con En lavamiento / ConSolapamiento. (d) Sin En lavamiento / Con Solapamiento.Observemos, en la tabla 6.2, el omportamiento de los uatro sistemas frentea una se uen ia de entrada de datos. Supondremos que todos ini ian su opera iónen el estado a, y la salida z está aso iada al estado:En general, en los ir uitos se uen iales las salidas dependen de la se uen ia

Page 144: Principios de Diseño Digital (UDO)

118Cuadro 6.2: Tabla de Transi ión de los uatro sistemas anteriores frente a unase uen ia de datos de entrada.Tiempo 0 1 2 3 4 5 6 7 8 9 10 11Entrada 0 1 0 1 0 0 1 0 0 1 1 0(a) a/0 b/0 /0 a/0 a/0 a/0 b/0 /0 d/0 e/1 e/1 e/1(b) a/0 b/0 /0 a/0 a/0 a/0 b/0 /0 d/0 e/1 a/0 a/0( ) a/0 b/0 /0 b/0 /0 d/0 e/1 e/1 e/1 e/1 e/1 e/1(d) a/0 b/0 /0 b/0 /0 d/0 e/1 /0 d/0 e/1 b/0 /0de opera iones que haya seguido el ir uito (estados) y los valores de entradapresentados durante un período de tiempo. De he ho el término se uen ial sedebe a esta dependen ia. Como se ha visto, la se uen ia de valores de entrada, oalgo rela ionado on ella, se alma ena en la memoria. Debido a que esta memoriasiempre es �nita, el tamaño de la se uen ia debe ser �nito, lo que signi� a quela lógi a se uen ial ontendrá sólo un número �nito de estados, aunque éste seabastante elevado.6.2. Cerrojo (Lat h) SREl elemento de memoria más simple en un diseño digital es el Cerrojo (lat h)SR, que onsta de dos puertas NOR (ó NAND) one tadas de forma ruzada ( onun amino de realimenta ión). Como puede verse en la �gura 6.5, el lat h SR tienedos señales de entrada: la señal de puesta a 1, S (set), y la señal de puesta a 0, R(reset): también tiene dos señales de salida, Q y Q; �nalmente, tiene dos estados:un estado de puesta a uno (o set) uando Q = 1 y un estado de puesta a ero (oreset) uando Q = 0.Figura 6.5: Cerrojo SR.Mientras las señales S y R sean iguales a 0, el lat h SR permane e en el mismoestado. Por ejemplo, si Q = 1 la salida de la puerta NOR superior será igual a 0,lo que hará, a su vez, que la salida de la puerta NOR inferior se sostenga en 1.

Page 145: Principios de Diseño Digital (UDO)

6.2. CERROJO (LATCH) SR 119Igualmente, si Q = 0, la salida de la puerta NOR superior será igual a 1, lo quehará que la salida de la puerta NOR inferior se sostenga en 0.Intentaremos expli ar el omportamiento del ir uito mediante una tabla deopera ión (tabla 6.3), en la ual debido al amino de realimenta ión, la salida Qtambién será una entrada. La distin ión importante es que la entrada Q, paraun instante de tiempo determinado t, llamado Estado Presente, tendrá un omportamiento posiblemente diferente a la salida, un momento después t+1,llamado Estado Futuro, debido a la propaga ión que experimenta a través delas ompuertas, hasta al anzar un estado estable (de ser posible).Cuadro 6.3: Tabla de Opera ión de un Cerrojo SR.S R Q(t) Q(t+1)0 0 0 00 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 X1 1 1 XQ(t+1) = Q(t) �R + SEste omportamiento puede ser resumido grá� amente en un Diagrama deEstados, omo el mostrado en la �gura 6.6.0 1

10

01

00,1000,01

Indeterminado

11

SR

11Figura 6.6: Diagrama de Estados de un Cerrojo SR.Si la entrada S se ha e 1, el lat h SR irá al estado de puesta a uno opermane erá en él. Por ejemplo, uando S vale 1, la salida Q vale 0 en (t + tp),

Page 146: Principios de Diseño Digital (UDO)

120lo que fuerza a Q a valer 1 en t + 2*tp, donde tp es el retraso de propaga ión deuna ompuerta. Téngase en uenta que, uando S baja a 0, el lat h SR permane een el estado de puesta a uno, es de ir memoriza la informa ión. De igual forma,el lat h SR puede ponerse a 0 manteniendo la señal de reposi ión R a 1, mientrasse pone S a valor 0. Aquí también, después de que R vuelva a valor 0, el lat hpermane erá en el estado de puesta a ero, omo se apre ia en la �gura 6.7.

Figura 6.7: Diagrama de Tiempos de un errojo SR.Si ambas señales de entrada S y R valen 1, las salidas Q y Q deben ser igualesa 0. Esto, desde el punto de vista ele tróni o no representa ningún problema.Sin embargo, lógi amente resulta inapropiado uando se esperaba que estuvieran omplementadas. Un problema mayor, inherente al lat h SR, es el he ho de quesi S y R , después de haber estado a 1, ambian al mismo tiempo a ero. Bajoesta ondi ión, las salidas irán simultáneamente a 1 en un tiempo tp. Estos unosrealimentados llevarán las salidas a 0 en 2*tp, produ iendo una os ila ión. Estaos ila ión, llamada usualmente arrera ríti a ( riti al ra e), ontinuará on lassalidas de ambas puertas a 1 y posteriormente a 0 en t + n*tp, para ualquierentero no negativo n. Cuando las puertas no tienen exa tamente el mismo retardo,una de ellas puede ser ligeramente más rápida que la otra. En tal aso, la puertaNOR más rápida prevale erá y estable erá su salida a 1, forzando la salida delotro lat h a 0. Así pues, uando las señales de entrada se restable en al mismotiempo, el estado siguiente del lat h es inde�nido, ya que no se sabe que ondi ióno urrirá.Para eliminar este fun ionamiento indeterminista, se debe asegurar que lasseñales S y R no se restablez an al mismo tiempo. Desgra iadamente, esta reglaes difí il de imponer al no ono er los retardos de los ir uitos lógi os que generanlos valores de S y R. Como onse uen ia, uando se diseña on lat hes SR debeseguirse una regla más estri ta; hay que asegurarse de que las señales S y R nun ase a tiven al mismo tiempo.El lat h SR puede implementarse también on puertas NAND. Sin embargo,

Page 147: Principios de Diseño Digital (UDO)

6.3. LATCH SR SINCRONIZADO 121en este aso las entradas S y R están normalmente a 1 y su a tiva ión se produ e on eros.6.3. Lat h SR sin ronizadoEl lat h SR sin ronizado (gated SR Lat h) es similar al lat h SR, on unaex ep ión: este lat h tiene una ter era entrada de ontrol, C, que habilita laopera ión del lat h SR, omo se observa en la �gura 6.8. En la prá ti a, estosigni� a que uando C es igual a 1, el lat h SR sin ronizado fun iona omo unlat h SR. Sin embargo, uando C = 0, se deshabilitan la puesta a uno y la puestaa ero, y el ir uito persiste en el estado anterior.SC

C

R

S

RC

QQ(t+1) = C � (Q(t) � R+ S)Figura 6.8: Cerrojo SR sin ronizado.Es fundamental tomar pre au iones uando se trabaja on el lat h SRsin ronizado: el diseñador debe estar seguro de que las señales de entrada no ambian durante el intervalo de tiempo del �an o de bajada de la entrada de ontrol C. Este breve intervalo, empieza en el tiempo de estable imiento (tSETUP )anterior al �an o de bajada de C y termina en el tiempo de mantenimiento (tHOLD), posterior al �an o de bajada de C.6.4. Lat h JK Sin ronizadoLos diseñadores que trabajan on errojos bási os SR deben asegurarse de quelas entradas S y R no valgan 1 al mismo tiempo. Este in onveniente puede evitarserealizando una pequeña modi� a ión al ir uito del errojo SR, para onvertirloen otro denominado JK, omo se apre ia en la �gura 6.9.

Page 148: Principios de Diseño Digital (UDO)

122JC

C

KC

QK

J

Figura 6.9: Cerrojo JK sin ronizado.Expli aremos el omportamiento del ir uito mediante una tabla de opera ión,semejante a la del errojo SR (Tabla 6.4).Cuadro 6.4: Tabla de Opera ión de un Cerrojo JK sin ronizado.JKQ(t) Q(t+1)0 0 0 00 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 11 1 1 0Q(t+1) = C � (K �Q(t) + S �Q(t))Esta tabla, también da origen a un Diagrama de Estados para este errojo, omo se muestra en la �gura 6.10.0 1

00,1000,01JK

01,11

10,11

Figura 6.10: Diagrama de Estados de un errojo JK.

Page 149: Principios de Diseño Digital (UDO)

6.5. LATCH D SINCRONIZADO 1236.5. Lat h D Sin ronizadoOtra manera de solventar el in onveniente de los errojos SR es una nuevaforma de modi� a ión del ir uito para onvertirlo en tipo D. Los errojos tipoD disponen úni amente de una entrada (D) y se realiza a partir del lat h SRsin ronizado, one tando la entrada D a la entrada S y D a la entrada R dellat h SR, asegurando que S y R no estarán a 1 al mismo tiempo (�gura 6.11). Un errojo D sin ronizado también tiene una entrada C que lo habilita, del mismomodo que se ha ía en el errojo SR sin ronizado des rito anteriormente. CuandoC es igual a 1, la salida Q tomará el mismo valor que la entrada D, después de un orto período de tiempo. Por el ontrario, si C es igual a 0, la salida Q mantendráel último valor de D estable ido antes del �an o de bajada de la última a tiva iónde la señal de ontrol.Q´

C

Q

D

Figura 6.11: Cerrojo D sin ronizado.Expli aremos el omportamiento del ir uito mediante una tabla de opera ión,semejante a la del errojo SR, teniendo presente que ahora existe sólo una entradaD (Tabla 6.5).Cuadro 6.5: Tabla de Opera ión de un Cerrojo D sin ronizado.DQ(t) Q(t+1)0 0 00 1 01 0 11 1 1Q(t+1) = D

Page 150: Principios de Diseño Digital (UDO)

124La informa ión, propor ionada por la tabla 6.5 o por la e ua ión, puede serresumida grá� amente en un Diagrama de Estados, omo el mostrado en la �gura6.12.0 1

11

D

0

0Figura 6.12: Diagrama de Estados de un errojo D.6.6. BiestablesComo se ha expli ado anteriormente, los errojos sin ronizados son elementossen illos de memoria que se habilitan durante todo el intervalo de tiempo enel que la señal de ontrol C es igual a 1. Fre uentemente, estos lat hes sedenominan lat hes sensibles al nivel porque están habilitados siempre que laseñal de ontrol esté al nivel 1. En ualquier instante de este tiempo los lat hesserán transparentes, en el sentido de que ualquier ambio en las entradas sepropagará a la salida on un pequeño retardo. Estos biestables bási os fun ionan omo elementos de memoria sólo después del �an o de bajada de la señal de ontrol, uando mantienen el estado estable ido por el último valor de la entradaanterior al �an o de bajada de la señal de ontrol.Si pensamos que la señal de ontrol pudiera trabajar omo fuente desin ronismo para el ambio de estado en los sistemas se uen iales, los errojossin ronizados no serían la mejor alternativa. Dadas sus ara terísti as detransparen ia, donde los ambios en las salidas siguen a los ambios de lasentradas, mientras el ontrol esté a tivo, pudieran produ irse ambios múltiplesde estado por ada a tiva ión del ontrol. Pare ería que se requiere de algún tipode arreglo que permita solo un ambio de estado (un solo ambio a la salida delos elementos de memoria) por ada i lo de a tiva ión del ontrol.Un método posible para lograr este objetivo es disminuir el an ho del pulso de ontrol a un retardo de propaga ión. No obstante, la di� ultad de esta solu iónradi a en que los retardos no son los mismos para lograr un uno que un ero en lasalida de los errojos, lo que signi� a que un an ho del pulso de ontrol que pongaa uno el lat h puede no servir para ponerlo a ero, y vi eversa. Además, si el an hodel pulso de ontrol se limita a un tiempo menor que el retardo del lat h, éste notendrá tiempo de aptar el valor de entrada. En ualquier aso, el fabri ante dellat h no puede garantizar realmente valores exa tos de retardo sen illamente a

Page 151: Principios de Diseño Digital (UDO)

6.6. BIESTABLES 125 ausa de los márgenes de error en el pro eso de fabri a ión. En este sentido, debetenerse en uenta que la puesta a uno y a ero que se utilizan son sólo valores deretardo esperados, mientras que los valores de retardo reales se distribuyen segúnuna distribu ión normal alrededor de estos valores esperados.Una vez expuestas estas restri iones, hay dos posibles solu iones al problema:los errojos maestro-es lavo y los biestables disparados por �an o.6.6.1. Cerrojos Maestro / Es lavoLos errojos maestro / es lavo (master-slave lat h) se implementan utilizandodos errojos one tados en as ada, denominados maestro y es lavo, omo seapre ia en la �gura 6.13.D Q

C Q

D Q

C Q

Clk

I OM E

Figura 6.13: Cerrojo Maestro / Es lavo.Como se apre ia en la �gura 6.13, uando la señal de ontrol (de ahora enadelante llamada reloj ) se a tiva a 1, la informa ión de entrada I al anza lasalida del errojo maestro (M ). El errojo es lavo (E ) está ina tivo (su entradade ontrol es 0 ), y la salida del sistema (O) no se ha afe tado. Finalmente, uandoel reloj pasa a 0, la última entrada I es memorizada a la salida de M y este seina tiva. Sin embargo, en este momento se a tiva E, trans�riendo el último valorde I hasta la salida O del sistema. Evidentemente se ha produ ido un sólo ambiode salida por un i lo ompleto de la señal de reloj.La ventaja de usar estos errojos es lara: omo estos no se habilitan nun a almismo tiempo, el sistema maestro-es lavo nun a es transparente.6.6.2. Biestables disparados por �an oLa segunda op ión que men ionábamos antes era un biestable disparado por�an o. La idea que se persigue es simple: lograr que se produz a una sola opera iónde memoriza ión en el menor tiempo posible. Naturalmente, los niveles alto o bajode la señal de reloj no son apropiados, omo probamos antes. Pero, la señal dereloj tiene dos eventos laramente distinguibles y de muy orta dura ión que son

Page 152: Principios de Diseño Digital (UDO)

126los momentos de transi ión ( uando pasa de bajo a alto y el aso ontrario. Estastransi iones se denominan �an os y dan origen a dos tipos de biestables o �ip-�ops(para distinguirlos de los errojos o lat hs que se a tivan por nivel): los disparadospor el �an o delantero o subida, y los disparados por el �an o trasero, posterioro de bajada.Un biestable se puede implementar de diversas maneras. Nosotros, a manerade ejemplo, usaremos dos de ellas: Biestable on dete tor de �an o y Biestable detres errojos (de puesta a uno, de puesta a ero y de salida).6.6.2.1. Biestable on dete tor de �an oUn Biestable on dete tor de �an o presenta un diagrama semejante almostrado en la �gura 6.14.

C

z

y

w

vu

x

Q

D

Figura 6.14: Biestable (�ip - �op) D, on "dete tor de �an o".Es importante resaltar que realmente estos dispositivos no se onstruyen deesta manera. Sólo se ha puesto aquí para resaltar el on epto de �an o y laopera ión en torno a él. Un diagrama de tiempos nos fa ilitará el análisis del omportamiento ir uital (�gura 6.15).La parte resaltante está alrededor del dete tor de �an o, indi ado en el grá� opor la señal v. Si pensamos que el retardo promedio de las ompuertas es delorden de 1 ns, enton es la dura ión del "�an o" será de 2 ns. Por otra parte, si lafre uen ia de las señales de datos (D) y reloj (C ) son del orden de MHz, enton esefe tivamente v a tuará omo un "�an o habilitador".

Page 153: Principios de Diseño Digital (UDO)

6.6. BIESTABLES 127C

D

u

v

w

x

y

z

Q

Q´Figura 6.15: Diagrama de Tiempos de un Biestable, tipo D, disparado por �an odelantero, usando un "dete tor de �an o".6.6.2.2. Biestable de tres errojosEste tipo de biestable está formado por tres errojos, tal omo se muestra enla �gura 6.16.El lat h de puesta a ero sigue los ambios en la señal Clk si D es igual a 1 enel �an o de subida de la señal Clk, mientras que el lat h de puesta a uno sigue los ambios en la señal Clk si D es igual a 0 en el �an o de subida de la señal Clk.En otras palabras, las salidas de los dos primeros errojos registran los ambiosen D mientras Clk es 0.En general, desde el punto de vista de una interfa e externa, tanto el errojo omo el biestable presentan una aparien ia similar. La diferen ia la onstituyesu dinámi a on respe to a la señal de reloj, que se distingue on un pequeñotriángulo en ualquier diagrama esquemáti o, omo se observa en la �gura 6.17.De igual manera, si poseen entradas externas de puesta a 1 (set) y de puestaa 0 (reset), omo se ve en la �gura 6.18.

Page 154: Principios de Diseño Digital (UDO)

128��

����

����

��

����

����

����

��

����

Clk

Q

s

r

D

Figura 6.16: Biestable disparado por �an o, de tres errojos.Clk Clk

D

Q’

Q D

Q’

Q

Figura 6.17: Cerrojo y biestable, tipo D.Clk Clk

R R

S S

D

Q’

Q D

Q’

Q

Figura 6.18: Cerrojo y biestable, tipo D, on entradas de puesta a 1 y 0.

Page 155: Principios de Diseño Digital (UDO)

6.7. TIPOS DE BIESTABLES 1296.6.3. Biestable Maestro / Es lavoAl igual que los errojos maestro / es lavo (master-slave lat h) es posibleimplementar biestables maestro / es lavo (master-slave �ip �op), utilizando dosbiestables one tados en as ada, omo se observa en la �gura 6.19.M S

Clk

X Y

��������

Q

Q’

D Q

Q’

D

Figura 6.19: Biestable maestro / es lavo.6.7. Tipos de BiestablesAunque hay varias y diferentes maneras de realizar biestables, todas presentanlas siguientes dos ara terísti as: primero un biestable ambia de estado sólo enel �an o positivo o negativo de la señal de reloj y, segundo, sus entradas de datosno deben ambiar después del tiempo tSETUP anterior, ni antes del tiempo tHOLDposterior, al �an o de disparo de la señal de reloj.Todos los biestables pueden dividirse en uatro ategorías bási as: SR, JK, Dy T. Se diferen ian en el número de entradas y en la respuesta que propor ionana valores diferentes de las señales de entrada. Cada uno de estos biestables puede ara terizarse por su símbolo grá� o, por su tabla ara terísti a y su e ua ión ara terísti a o por su tabla de ex ita ión, omo se observa en la �gura 6.20.Los símbolos grá� os indi an el número y el tipo de entradas y salidas. Todoslos biestables tienen señales de salida Q y Q. También, todos ellos disponen deentrada de señal de reloj. El pequeño triángulo en la entrada de reloj indi a que elbiestable se dispara por el �an o de subida de la señal de reloj. Por el ontrario, un ír ulo junto al triángulo indi ará que se trata de un biestable disparado por �an ode bajada de la señal de reloj. Cada biestable tiene una o dos entradas de datosque ara terizan al biestable y le dan nombre, omo se ha des rito anteriormente.El biestable SR tiene dos entradas, S (set) y R (reset), que ponen a 1 ó a0 el biestable uando se a tivan. El biestable JK, similar al SR, dispone de dosentradas, J y K, que realizan la puesta a 1 ó a 0 del biestable uando se a tivan.

Page 156: Principios de Diseño Digital (UDO)

130Además, y ha diferen ia del SR, uando ambas entradas J y K están a tivasal mismo tiempo, el biestable JK ambia de estado. Como se ha men ionadoanteriormente, el biestable D tiene sólo una entrada D (datos) que pone a 1 elbiestable uando D = 1 y lo pone a 0 uando D = 0. El biestable T tiene sólouna entrada T (togle) que fuerza al biestable a ambiar de estado uando T esigual a 1.Op ionalmente, ada biestable puede tener una o dos entradas de puesta auno (Set) y ero (Reset), asin róni as (fuerzan un ambio sin importar el estadodel reloj) e independientes de la(s) entrada(s) de dato(s).6.8. Análisis de la Lógi a Se uen ialNormalmente, la lógi a se implementa on ir uitos lógi os que in orporanlos biestables. Mientras que un ir uito lógi o de este tipo puede representar laramente la estru tura de la lógi a se uen ial, desgra iadamente no revelade manera fá il su fun ionamiento, lo que representa un problema para eldiseñador. Por ejemplo, uando se rediseña un produ to los diseñadores quiere,normalmente, modi� ar el fun ionamiento del mismo on el �n de añadirnuevas ara terísti as, o inversamente, pueden pretender la utiliza ión de nuevos omponentes y ne esitar omprobar que la sustitu ión de los omponentes noha modi� ado el fun ionamiento del produ to. En ualquier aso, los diseñadoresne esitarán obtener el omportamiento del ir uito lógi o se uen ial. Este pro eso,denominado análisis, requiere que el diseñador genere una o más des rip ionesfun ionales, utilizando diagramas de estado, tablas de estado y de salida ye ua iones booleanas de entrada y salida. Una vez obtenida la des rip iónfun ional, los diseñadores pueden desarrollar diagramas de tiempo que lespermitan ontrastar sus predi iones on los resultados de simula ión.Como primer paso, y a partir de los diagramas esquemáti os, deben obtenerselas E ua iones de Ex ita ión, y on estas la Tabla de Ex ita ión. Usaremos amanera de ejemplo, el Diagrama Esquemáti o mostrado en la �gura 6.21.A partir de este Diagrama Esquemáti o, obtendremos la E ua ión de Salida ylas E ua iones de Ex ita ión (entradas de los biestables), omo se apre ia en la�gura 6.22.Con las E ua iones de Ex ita ión es posible onstruir una Tabla de Ex ita ión;es de ir, a partir del Estado Presente del ir uito y de las entradas, determinar ual será el valor de la ex ita ión para esa ondi ión (Tabla 6.6).

Page 157: Principios de Diseño Digital (UDO)

6.8. ANÁLISIS DE LA LÓGICA SECUENCIAL 1310 1

11 11

X

01

10SR

00,1000,01

S R Qt Qt+10 0 0 00 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 X1 1 1 X

0 0 0 00 0 1 10 1 0 00 1 1 01 0 0 11 0 1 1

J K Qt Qt+1

1 1 0 11 1 1 0

10

D1 10

0

1000,1000,01

01,11

10,11JK

D Qt Qt+10 0 00 1 01 0 11 1 1

0 110

1

0T

Qt+1 = S + R´*Qt

Qt+1 = J*Qt´ + K´*Qt

Qt+1 = D

Qt+1 = T´*Qt + T*Qt´

Qt+1 = T + Qt

0 0 00 1 1

1 1 01 0 1

T Qt Qt+1

Q

Qs

r

S

R

S

R Q

Q

K

J

S

R Q

QD

S

R Q

QT

Figura 6.20: Tipos de biestables: Esquemáti os, Diagramas de Estado, Tablas deTransi ión y E ua iones de Estado Futuro.

Page 158: Principios de Diseño Digital (UDO)

132

��������

2

3

4

5

1

3

1

2

9

9

9

9

2

4

152

142

S

I

Vcc

9

S

RQ

Q

K

J

S

RQ

Q

K

J

Figura 6.21: Diagrama esquemáti o de un ir uito se uen ial.

Page 159: Principios de Diseño Digital (UDO)

6.8. ANÁLISIS DE LA LÓGICA SECUENCIAL 133J0 = IQ0K0 = IQ0J1 = IQ0Q1K1 = IQ0Q1S = Q0Q1Figura 6.22: E ua iones de Ex ita ión y Salida del ir uito se uen ial.Cuadro 6.6: Tabla de Ex ita ión del ir uito se uen ial.IQ1Q0 J1K1J0K00 0 0 0 0 0 00 0 1 0 0 0 00 1 0 0 0 0 00 1 1 0 0 0 01 0 0 0 0 1 01 0 1 1 0 0 11 1 0 0 0 1 01 1 1 0 1 0 1De igual manera, puede lograrse una Tabla de Salidas (Tabla 6.7), que en este aso sólo es fun ión del Estado Presente del ir uito (salidas de los biestables),según se desprendía del Diagrama Esquemáti o (6.21).Cuadro 6.7: Tabla de Salida del ir uito se uen ial.Q1Q0 S0 0 00 1 01 0 01 1 1Posteriormente, usando la Tabla del biestable, o la e ua ión ara terísti a(tabla 6.8 o �gura 6.20), y la Tabla de Ex ita ión re ién obtenida (Tabla 6.6), se onsigue una Tabla de Transi iones (6.9).Desde la Tabla de Transi iones se onstruye la Tabla de Estados Futuros(Tabla 6.10) y �nalmente el Diagrama de Estados (�gura 6.23). Esta

Page 160: Principios de Diseño Digital (UDO)

134Cuadro 6.8: Tabla de Transi ión y E ua ión de Estado Futuro del biestable JK.JKQt Qt+10 0 0 00 0 1 10 1 0 00 1 1 01 0 0 11 0 1 11 1 0 11 1 1 0Q(t+1) = J �Q(t) +K �Q(t)

Cuadro 6.9: Tabla de Transi iones del ir uito se uen ial.I Q1(t)Q0(t) J1K1 ! Q1(t+1) J0K0 ! Q0(t+1)0 0 0 0 0 ! 0 0 0 ! 00 0 1 0 0 ! 0 0 0 ! 10 1 0 0 0 ! 1 0 0 ! 00 1 1 0 0 ! 1 0 0 ! 11 0 0 0 0 ! 0 1 0 ! 11 0 1 1 0 ! 1 0 1 ! 01 1 0 0 0 ! 1 1 0 ! 11 1 1 0 1 ! 0 0 1 ! 0

Page 161: Principios de Diseño Digital (UDO)

6.9. MODELO DE MÁQUINAS DE ESTADOS FINITOS 135representa ión grá� a del omportamiento de un Sistema, posiblemente sea laforma más ómoda para el análisis y diseño.Cuadro 6.10: Tabla de Estados Futuros del ir uito se uen ial.E. P. Est. Fut. Sal.Q1Q0 I=0 I=1 S0 0 0 0 0 1 00 1 0 1 1 0 01 0 1 0 1 1 01 1 1 1 0 0 100/0 01/0

10/011/1

10

0

10

0

11

Figura 6.23: Diagrama de Estados del ir uito se uen ial.6.9. Modelo de Máquinas de Estados FinitosLa Máquina de Estados Finitos (FSM, Finite-State Ma hine) de de�neteóri amente omo una quíntupla <S, I, O, f, h> donde S, I y O representanel onjunto de estados (states), entradas (inputs) y salidas (outputs), y f y hrepresentan las fun iones de estado siguiente y de salida, respe tivamente. Lafun ión de estado siguiente f se de�ne matemáti amente omo una apli a iónSxI ! S. En otras palabras, f asigna un estado a ada pareja formada porestado y entrada. El modelo FSM supone que el tiempo se divide en intervalosuniformes y que las transi iones de un estado a otro o urren sólo al prin ipio de ada intervalo de tiempo. Así pues, la fun ión de estado siguiente f de�ne en quéestado estará la máquina FSM en el siguiente intervalo de tiempo, una vez dadosel estado y los valores de estradas en el intervalo presente.La fun ión de salida h determina los valores de salida en el estado presente.Hay dos tipos diferentes de máquina de estados �nitos, orrespondientes a las dosde�ni iones distintas de la fun ión de salida h (�gura 6.24). Un tipo es la FSM

Page 162: Principios de Diseño Digital (UDO)

136basada en estados o FSM Tipo Moore, en la que h se de�ne omo una apli a iónS ! O. Es de ir, se asigna una salida a ada estado de la FSM. El otro tipo enuna FSM basada en entradas o FSM tipo Mealy, en la que h se de�ne omo laapli a ión SxI ! O. En este aso, la salida en ada estado queda de�nida por elestado presente y las entradas.De a uerdo on esta de�ni ión, ada onjunto S, I y O puede tener ualquiernúmero de símbolos. Sin embargo, en la prá ti a se trata sólo on variablesbinarias, operadores y elementos de memoria. Por lo tanto, S, I y O debenimplementarse omo un produ to ve torial de señales binarias o elementos dememoria, mientras que las fun iones f y h se de�nen omo expresiones booleanasque se implementarán on puertas lógi as.Entradas f

EstadoFuturo

Memoria

EstadoPresente

hSalidas

IO

S

Mealy

Salidas

O

Entradas fEstadoFuturo

Memoria

EstadoPresente

IS

h

Moore

Figura 6.24: Máquinas Mealy y Moore.Observemos la diferen ia, entre los dos tipos máquinas, para la representa ióndel re ono edor de la se uen ia 1001 (�gura 6.25).Se apre ia laramente que la salida en el modelo Moore es una fun ión sólodel estado presente del sistema y, por tanto, se indi a en el interior del ir ulo deestado (estado / salida). En ambio, en el modelo Mealy, la salida es fun ión delestado presente y de la entrada; por tanto, se indi a junto on la entrada (entrada/ salida), en la �e ha de �ujo que na e en el estado presente.

Page 163: Principios de Diseño Digital (UDO)

6.9. MODELO DE MÁQUINAS DE ESTADOS FINITOS 137

a/0

b/0

c/0

d/0

e/1

1

0

0

0

1

1

1

0

0,1

a

b

c

d

e

0/0

1/0

0/0

1/0

0/0

1/10/0,1/0

0/0

1/0

MealyMooreFigura 6.25: Diagramas de EstadoMoore yMealy para el re ono edor de se uen ia1001, on en lavamiento y sin solapamiento.

Page 164: Principios de Diseño Digital (UDO)

1386.10. Captura del Modelo FSMEl diseño de lógi a se uen ial se ini ia on la genera ión de un diagrama deestados y / o las tablas de estados siguientes y de salidas. Ini ialmente, estosdiagramas y tablas deben obtenerse a partir de una des rip ión en lenguaje naturaldel omportamiento del ir uito se uen ial. Desgra iadamente, las des rip ionesen lenguaje natural son, a ve es, ambiguas e in ompletas en mu hos asos, debido aque prestan aten ión ex lusivamente a la fun ión prin ipal del ir uito se uen ial,sin enumerar todas las situa iones de su posible omportamiento. Por este motivo,las des rip iones en lenguaje natural se omplementan, a ve es, on diagramasde tiempos. Sin embargo, in luso estos diagramas de tiempos pueden resultarin ompletos ya que no muestran las respuestas del ir uito a todas las posiblesse uen ias de entrada sino sólo las más importantes. Así pues, en mu hos asoses mejor sustituir la des rip ión en lenguaje natural por una más pre isa, basadaen un lenguaje de des rip ión de hardware omo VHDL ó Verilog, o por unaforma grá� a, omo un diagrama de �ujo o un diagrama ASM. La onstru ióndel modelo FSM es una parte muy reativa del pro eso de diseño, requiriendoespe ializa ión y experien ia.Usemos, a manera de ejemplo, un aso sen illo para mostrar las fases deldiseño. Perseguimos obtener el diagrama de estados de un ontador as endente /des endente módulo 3 (�gura 6.26. El ontador tiene dos entradas: habilita iónde uenta (C ) y dire ión de la uenta (D). Cuando C = 1 el ir uito ontará enla dire ión indi ada por D, y parará uando C = 0. Si D = 0 el ir uito ontaráas endentemente, aso ontrario (D = 1 ) lo hará en forma des endente. Por otraparte, se onsta de una salida Y que se a tivará ada vez que el ontador esté onla uenta habilitada, y pase por el valor 2 as endentemente ó el valor 0 si lo ha edes endentemente. Finalmente, una salida Z se a tivará ada vez que el sistemapase por el valor 0, independientemente de la habilita ión y de la dire ión de la uenta.6.11. Minimiza ión de EstadosDesde un punto de vista estri tamente fun ional la opera ión de un sistemaimporta esen ialmente por la rela ión entrada / salida; es de ir, por su Fun iónde Transferen ia. Así, dos o más ir uitos serán fun ionalmente equivalentessiempre que para la misma ombina ión de entradas produz an las mismas salidas,independientemente de su estru tura interna. A manera de ejemplo, anali emosel omportamiento de los ir uitos representados en los diagramas de estadosmostrados en la �gura 6.27.Observe que estos Diagramas de Estado originan Tablas de Estados Futuros /

Page 165: Principios de Diseño Digital (UDO)

6.11. MINIMIZACIÓN DE ESTADOS 139

a/1 b/0 c/01010 10/1

d/0 e/1 f/0

0 1 2

2 0 1

10/111/1

11/011/0

0X/0 0X/0 0X/0

0X/0 0X/0 0X/0

11/1 11/0 11/0

10/0 10/0

C

D

Contadormodulo 3

Clk

Y

Z

CD/Y EP/Z

Figura 6.26: Diagrama de Estados del Contador as endente / des endente módulo3.

Page 166: Principios de Diseño Digital (UDO)

140CD/Y EP/Z

0X/0

11/1

10/1

r/1

s/0t/0

0X/0 11/0 0X/0

11/0

10/0

10/02 1

0

CD/Y EP/Z

a/1 b/0 c/0 10/1

d/0 e/1 f/0

0 1 2

2 0 1

10/111/1

11/011/0

0X/0 0X/0 0X/0

0X/0 0X/0 0X/0

11/1 11/0 11/0

10/0 10/0

10/0 10/0

Figura 6.27: Diagramas de Estados equivalentes.

Page 167: Principios de Diseño Digital (UDO)

6.11. MINIMIZACIÓN DE ESTADOS 141Salidas (Tablas 6.11 y 6.12) ompletamente diferentes, en aparien ia:Cuadro 6.11: Tabla de Estados Futuros / Salidas para el Diagramas de Estadosuperior de la �gura 6.27.Est. Est. Fut. , Y Sal.Pre. 00 01 10 11 Za a,0 a,0 b,0 d,1 1b b,0 b,0 ,0 e,0 0 ,0 ,0 a,1 f,0 0d d,0 d,0 a,1 f,0 0e e,0 e,0 b,0 d,1 1f f,0 f,0 ,0 e,0 0Cuadro 6.12: Tabla de Estados Futuros / Salidas para el Diagramas de Estadoinferior de la �gura 6.27. Est. Est. Fut. , Y Sal.Pre. 00 01 10 11 Zr r,0 r,0 s,0 t,1 1s s,0 s,0 t,0 r,0 0t t,0 t,0 r,1 s,0 0Probar todas las posibles ombina iones de entrada para ada estado seríauna tarea ardua, sobretodo en ir uitos más omplejos. Someteremos ambossistemas a una misma ombina ión de entradas y observaremos el valor de lassalidas generadas (Tablas 6.13 y 6.12). Tomaremos omo estados ini iales a y r,respe tivamente.Cuadro 6.13: Se uen ia de estados y salidas, de dos sistemas, para una misma ombina ión de entradas.CD 00 01 10 11 11 10 10 10 00 10Est./Z a/1 a/1 a/1 b/0 a/1 d/0 a/1 b/0 /0 /0 a/1Y 0 0 0 0 0 1 1 0 0 0 1Est./Z r/1 r/1 r/1 s/0 r/1 t/0 r/1 s/0 t/0 t/0 r/1Y 0 0 0 0 0 1 1 0 0 0 1

Page 168: Principios de Diseño Digital (UDO)

142Este sen illo ejemplo nos demuestra que el omportamiento entrada / salidade ambos sistemas es similar (al menos para la se uen ia de entradas elegidas).Los bene� ios obtenidos en los ir uitos fun ionalmente similares y on menornúmero de estados son obvios: posiblemente menor número de �ip �ops, yredu ión de la etapa ombinatoria de ex ita ión (menos ompuertas y de menortamaño lógi o). Probablemente menos ompuertas y ir uitos integrados; portanto, menor onsumo de energía y disipa ión de alor, y una super� ie de montajemás redu ida. De aquí, �nalmente, más e onómi o.Nos faltaría de�nir un pro edimiento sistemáti o para bus ar la minimiza iónde estados. En general, esta se basa en el on epto de equivalen ia fun ional deFSM <S, I, O, f, h> y, por extensión, en el de equivalen ia de estados. Ambasno iones, a su vez, se fundamentan en el estudio de Rela iones de Equivalen ia,tema ampliamente tratado en el ampo del álgebra.Para nuestro aso, diremos que dos estados sj y sk son equivalentes y, portanto, reemplazables, sí y solo sí:1. Produ en el mismo valor de salida para ada ombina ión de entradash(sj; i) = h(sk; i) ; y2. Ambos estados tienen estados siguientes equivalentes para ada ombina iónde entradas: f(sj; i) � f(sk; i) .En la prá ti a debe seguirse este pro edimiento de manera se uen ial. Primerodeben formarse grupos de estados que posean las mismas salidas para ada ombina ión de entradas y estado presente, de a uerdo a la regla número 1.Enseguida, se determinada el estado siguiente para ada estado. Para que estosgrupos puedan onstituir una lase de equivalen ia, todos los estados debentener sus estados futuros en el mismo grupo. De no lograrse, deben pro urarseparti iones adi ionales de grupo (sub-grupos), hasta donde sea ne esario.Veamos, en nuestro ejemplo formaremos la lase C1 para todos los estados on salida Z =1 para ualquier ondi ión de entrada, y la lase C2 para todoslos estados on salida Z = 0 para ualquier ondi ión de entrada. En este aso,el riterio de agrupa ión ha sido la salida Moore; por tanto, la salida Mealy debeevaluarse para ada dupla estado / ombina ión de entradas:C1 = fa; egC2 = fb; ; d; fgComo puede verse en la tabla 6.14, para la lase C1 los estados futuros de ada estado y la salida Mealy (Y ), para la misma entrada, pertene en a la misma

Page 169: Principios de Diseño Digital (UDO)

6.11. MINIMIZACIÓN DE ESTADOS 143Cuadro 6.14: Forma ión de grupos para estable er lases de equivalen ias.C1,Y C2,Ya e b d f00 a:C1,0 e:C1,0 b:C2,0 :C2,0 d:C2,0 f:C2,001 a:C1,0 e:C1,0 b:C2,0 :C2,0 d:C2,0 f:C2,010 b:C2,0 b:C2,0 :C2,0 a:C1,1 a:C1,1 :C2,011 d:C2,1 d:C2,1 e:C1,0 f:C2,0 f:C2,0 e:C1,0 lase y son iguales respe tivamente. De esta forma, podemos on luir que a y eson equivalentes (a � e).Sin embargo, esto no o urre para los estados en la lase C2. Si observamos la�la para la entrada CD = 10, los estados futuros para b y f pertene en a la ClaseC2, on salidas Mealy 0, pero los estados futuros de y d pertene en a la lase C1, on salida Mealy 1. Esto nos obliga a realizar una nueva parti ión de esta lase.Rede�niremos C2 y rearemos dos lases nuevas: C3, on salida Moore y Mealyen ero y C4 on salida Moore en ero y salida Mealy en 1, omo se muestra a ontinua ión. C3 = fb; fgC4 = f ; dgRepetiremos el análisis sólo para estas lases nuevas:Cuadro 6.15: Forma ión de nuevos grupos para estable er lases de equivalen ias.C3,Y C4,Yb f d00 b:C3,0 f:C3,0 :C4,0 d:C4,001 b:C3,0 f:C3,0 :C4,0 d:C4,010 :C4,0 :C4,0 a:C1,1 a:C1,111 e:C1,0 e:C1,0 f:C3,0 f:C3,0Como puede desprenderse de esta nueva división podemos on luir que b y fson equivalentes (b � f), así omo también lo son y d ( � d).Si ada apari ión de e la reemplazamos por su equivalente a y de igualforma pro edemos on los otros estados equivalentes, arribaremos a una tabla deestados on �las repetidas y obviamente redundantes que pueden ser eliminadas,obteniendo un resultado semejante al mostrado al ini io en la Tabla 6.11:

Page 170: Principios de Diseño Digital (UDO)

144Cuadro 6.16: Tablas de Estados Futuros / Salidas equivalente a la de la Tabla6.11. Est. Est. Fut. , Y Sal.Pre. 00 01 10 11 Za a,0 a,0 b,0 d,1 1b b,0 b,0 ,0 e,0 0 ,0 ,0 a,1 f,0 0d d,0 d,0 a,1 f,0 0e e,0 e,0 b,0 d,1 1f f,0 f,0 ,0 e,0 0Est. Est. Fut. , Y Sal.Pre. 00 01 10 11 Za a,0 a,0 b,0 ,1 1b b,0 b,0 ,0 a,0 0 ,0 ,0 a,1 b,0 0 ,0 ,0 a,1 b,0 0a a,0 a,0 b,0 ,1 1b b,0 b,0 ,0 a,0 0Est. Est. Fut. , Y Sal.Pre. 00 01 10 11 Za a,0 a,0 b,0 ,1 1b b,0 b,0 ,0 a,0 0 ,0 ,0 a,1 b,0 0Est. Est. Fut. , Y Sal.Pre. 00 01 10 11 Zr r,0 r,0 s,0 t,1 1s s,0 s,0 t,0 r,0 0t t,0 t,0 r,1 s,0 0

Page 171: Principios de Diseño Digital (UDO)

6.12. CODIFICACIÓN DE ESTADOS 145Si ahora equiparamos las parejas de estados (a, r), (b, s) y ( , t) obviamenteapre iamos que ambos sistemas poseen idénti o omportamiento.Por otra parte, la segunda ondi ión puede extenderse de la siguiente manera:Ambos estados tienen estados siguientes equivalentes ó sus estados siguientes sonel mismo estado presente, para ada ombina ión de entradas: f(sj; i) = f(sk; i)_[f(sj; i) = sj ^ f(sk; i) = sk℄. Ha iendo uso de esta extensión es posible emplearel método ono ido omo Método de Elimina ión de Filas, de manera dire ta.Cuadro 6.17: Tablas on apli a ión del método de Elimina ión de Filas.Est. Est. Fut. , Y Sal.Pre. 00 01 10 11 Za a,0 a,0 b,0 d,1 1b b,0 b,0 ,0 e,0 0 ,0 ,0 a,1 f,0 0d d,0 d,0 a,1 f,0 0e e,0 e,0 b,0 d,1 1f f,0 f,0 ,0 e,0 0Est. Est. Fut. , Y Sal.Pre. 00 01 10 11 Za a,0 a,0 b,0 ,1 1b b,0 b,0 ,0 a,0 0 ,0 ,0 a,1 b,0 06.12. Codi� a ión de EstadosUna FSM de n estados tiene más de n! odi� a iones posibles, ya que sepueden usar más de log2n bits para odi� ar los estados. Observemos, a manerade ejemplo, las posibilidades de odi� a ión de una FSM de 4 estados, para la ual se utilizan dos bits de ódigo.En la prá ti a para evitar evaluar todas las posibilidades se re urren a diversasestrategias, de las uales men ionaremos a tres de las más omúnmente utilizadas:mínimo ambio de bits, prioridad en adya en ia y un bit por estado.6.12.1. Mínimo Cambio de Bits.Lo que se persigue es que la antidad de unos que ambie, en ada una delas transi iones, sea mínima. Esta estrategia se basa en la premisa de que en una

Page 172: Principios de Diseño Digital (UDO)

146Cuadro 6.18: Diferentes posibilidades de odi� ar un grupo de 4 estados usando2 bits. EstadosCodi� a ión a b d1 00 01 10 112 00 01 11 103 00 10 01 114 00 10 11 105 00 11 01 106 00 11 10 017 01 00 10 118 01 00 11 109 01 10 00 0110 01 10 11 0011 01 11 00 1012 01 11 10 0013 10 00 01 1114 10 00 11 0115 10 01 00 1116 10 01 11 0017 10 11 00 0118 10 11 01 0019 11 00 01 1020 11 00 10 0121 11 01 00 1022 11 01 10 0023 11 10 00 0124 11 10 01 00

Page 173: Principios de Diseño Digital (UDO)

6.12. CODIFICACIÓN DE ESTADOS 147implementa ión SDP, se ne esita, al menos, una ompuerta AND adi ional y unaentrada más en la OR, para poner en 0 ó 1 el �ip �op ambiante. De esta forma,a mayor número de bits ambiando también aumenta el tamaño de la SDP.Los pasos a seguir son: estable er la antidad de unos que ambian en adatransi ión para formar lo que se ono e omo peso del ar o; y evaluar diferentestraye torias, de a uerdo a un patrón o ve tor de entradas. La on�gura ión óptimaserá aquella que minimi e el osto o suma de los pesos.A manera de ejemplo, asumamos que requerimos odi� ar los estados deldiagrama de estados de la �gura 6.28:ba

edFigura 6.28: Diagrama de Estados para odi� a ión.Como se trata de una máquina de uatro estados, se ne esitarán omo mínimodos elementos de memoria para su odi� a ión. Si tomamos la op ión 1 de laTabla 6.18 arribaremos al Diagrama mostrado en la �gura 6.29.01

10

00

11

1

22

1

Peso Total de la Trayectoria: 6Figura 6.29: Estados odi� ados on op ión 1 de la Tabla 6.18.La traye toria mostrada en la �gura 6.29 tiene un Peso Total de 6. Si usamosbiestables tipoD, esta situa ión nos llevaría a las e ua iones de ex ita ión siguiente(veremos este pro eso, en detalle, un po o más adelante):D1 = Q1 �Q0 +Q1Q0D0 = Q0

Page 174: Principios de Diseño Digital (UDO)

148El osto físi o sería: 2 ompuertas AND de 2 entradas, 1 ompuerta OR de2 entradas y 2 inversores (hemos adoptado la forma SDP, ya que al minimizaralgebrai amente podemos arribar a D1 = Q1 � Q0 + Q1Q0 = Q1 � Q0 , en uyo aso el osto sería: una ompuerta XOR de dos entradas y un inversor).Modi� ando la odi� a ión, al usar la op ión 2 de la �gura 6.28, obtenemoslo mostrado en la �gura 6.30:0100 1

11110

11

Peso Total de la Trayectoria: 4Figura 6.30: Estados odi� ados on op ión 2 de la Tabla 6.18.La traye toria mostrada en la �gura 6.30 tiene un Peso Total de 4. Si usamosbiestables tipoD, esta situa ión nos llevaría a las e ua iones de ex ita ión siguiente(veremos este pro eso, en detalle, un po o más adelante):D1 = Q0D0 = Q1El osto físi o sería: 1 inversor. Como se apre ia se ha logrado una redu iónimportante de la etapa ombinatoria, solo ambiando la asigna ión de estados, alseguir una traye toria de menor peso.Sin embargo, la traye toria de menor peso no siempre garantiza unaminimiza ión, espe ialmente uando estas están sujetas al valor de las ombina iones de entradas. Volveremos sobre esto, on más detalle, un po o másadelante.6.12.2. Prioridad en adya en ia.Con esta estrategia se asignan prioridades a la odi� a ión de los estados dea uerdo a los siguientes riterios:1. Asignar odi� a iones adya entes, que sólo di�eran en un bit, a todos losestados que tengan el mismo estado futuro para un valor dado de entrada.

Page 175: Principios de Diseño Digital (UDO)

6.12. CODIFICACIÓN DE ESTADOS 1492. Asignar odi� a iones adya entes a todos los estados siguientes del mismoestado.3. Asignar odi� a iones adya entes a todos los estados que tengan el mismovalor de salida para un valor dado de entrada.Tomemos, a manera de ejemplo, el re ono edor de la se uen ia 1001 sinen lavamiento y on solapamiento, de la �gura 6.4.1. De a uerdo al riterio 1, deben tener ódigos adya entes :a) b y e (poseen b omo estado futuro para una entrada 1 y omo estadofuturo para una entrada 0 ).b) a, b, y e (poseen b omo estado futuro para una entrada 1 ). ) a y d (poseen a omo estado futuro para una entrada 0 ).2. De a uerdo al riterio 2, deben tener ódigos adya entes :a) a y b (son estados futuros de a).b) b y (son estados futuros de b). ) b y d (son estados futuros de ).d) a y e (son estados futuros de d).e) b y (son estados futuros de e).3. El riterio 3 no apli a en este aso por tratarse de una máquina Moore (lassalidas dependen sólo del estado presente).Como se trata de una máquina de in o estados, se ne esitarán omo mínimo treselementos de memoria para su odi� a ión.Por 1.(a) asignaremos b = 000 y e = 001.Por 1.(b) asignaremos a = 010. Observe que a es adya ente on b, perono lo es on e, omo pide el riterio. Evidentemente no es posible umplira abalidad on las sugeren ias surgidas de la apli a ión de los riterios.Terminaremos este punto asignando = 011, tornándolo adya ente on a ye, pero no on b.Por 1.( ) asignaremos d = 110, adya ente on a.

Page 176: Principios de Diseño Digital (UDO)

150

����

����

����

����

����

000 001

010 011

100 101

110 111d

a

b e

c

Figura 6.31: Codi� a ión de Estados por el riterio de prioridad en adya en ia.En este punto ya no es ne esaria la apli a ión del segundo riterio porque todoslos estados han quedado odi� ados.Existe un riterio de tipo prá ti o que mu has ve es obliga a reformular las odi� a iones adoptadas. En el en endido o arranque de una máquina digitales mu ho más sen illo obtener que todos los elementos de memoria estén en ero, mediante la utiliza ión de la línea de puesta a ero asin róni a (reset).Igualmente, algunos dispositivos poseen una línea de puesta a uno (set), peroen menor medida. Enton es, para garantizar que la máquina omien e su trabajoen un estado ono ido y estable, normalmente se asigna el ódigo 00...0 (11...1 )al estado ini ial.

���

���

���

���

���

���

���

���

���

���

000 001

010 011

100 101

110 111

a

b e

c

d

Figura 6.32: Codi� a ión de estados on el riterio de prioridad en adya en ia, onsiderando el estado ini ial omo 000.

Page 177: Principios de Diseño Digital (UDO)

6.13. ECUACIONES DE ESTADO FUTURO Y SALIDAS 151Probablemente, este sea uno de los riterios más utilizados en la odi� a ión binaria de estados, ya que generalmente propor iona redu ionessigni� ativamente importantes on respe to a los otros.6.12.3. Un bit por estadoEn este aso, la odi� a ión redundante persigue tener sólo un uno a tivoen ada estado, asignándole un biestable a ada estado. Naturalmente, sólo esprá ti a para sistemas on po os estados, ya que evidentemente el objetivo no eslograr una minimiza ión del osto material del diseño, sino más bien fa ilitar laetapa de diseño. a = 00001b = 00010 = 00100d = 01000e = 100006.13. E ua iones de Estado Futuro y SalidasDespués de haber ompletado el pro eso de minimiza ión y odi� a ión deestados, se debe elegir el tipo ade uado de biestable para la implementa ión de lamáquina de estados �nitos. Como indi a la tabla 6.10 hemos analizado uatro tiposde biestables. En general, los biestables T son una ex elente ele ión para ir uitosse uen iales tipo ontador, donde estos deben onmutar de 0 a 1 y volver a ha erlode 1 a 0 on gran fre uen ia. Los biestables D deben utilizarse, normalmente, enapli a iones donde la informa ión de entrada debe alma enarse durante algúntiempo para su uso posterior. En este sentido, los biestables D se on iben paraalma enamiento temporal o para a esos a la informa ión desde terminales deentrada / salida externos. El biestable SR se utiliza más en situa iones dondediversas señales ponen a 1 ó 0 los biestables. Finalmente, el biestable JK, que esel más omplejo, se utiliza siempre que sea ne esario ombinar las presta iones deun biestable T y un biestable SR.De lo di ho anteriormente, se dedu e que los biestables SR y JK deberíanutilizarse más. Sin embargo, aunque tienden a redu ir el oste de la lógi a deentrada, requieren el doble de onexiones en sus entradas que los biestables Ty D. En general, omo los biestables T y D pre isan de un menor número de onexiones, se adaptan mejor a las implementa iones VLSI.Para omparar la e� ien ia total de los diferentes biestables, se puede obtenerla lógi a de entrada para el re ono edor de se uen ia 1001, utilizando ada unode los uatro tipos de biestables. Por omodidad repetiremos el Diagrama de

Page 178: Principios de Diseño Digital (UDO)

152Estados propuesto para la máquina Moore on en lavamiento y sin solapamientode la �gura 6.3, on la siguiente odi� a ión de estados.a = 000b = 010 = 001d = 100e = 011a/0

b/0

c/0

d/0

e/1

1

0

0

0

1

1

1

0

0,1Figura 6.33: Diagrama de Estados para la erradura se uen ial. Máquina Moore on en lavamiento y sin solapamiento.El paso siguiente en el pro eso de diseño onsiste en transformar la informa ióndesde el Diagrama de Estados a una Tabla de Estados Futuros y Salidas:Observe que de las o ho posibles ombina iones para la odi� a ión deestados, han quedado tres sin utilizar (101, 110 y 111 ). Un diseño uidadosodebe ontemplar estos estados "no importa" en algún sentido. Re ordando laestru tura de una FSM, desde la �gura 6.24, resulta evidente que el EstadoFuturo es una fun ión del Estado Presente y de las entradas al sistema. Portanto, para la determina ión de la e ua iones de estados futuros y, posteriormentelas e ua iones de ex ita ión, estos estados no usados junto on las entradasformarán ombina iones de las ono idas omo "no importa" (1010 [10 ℄, 1011 [11 ℄,1100 [12 ℄, 1101 [13 ℄, 1110 [14 ℄ y 1111 [15 ℄).

Page 179: Principios de Diseño Digital (UDO)

6.13. ECUACIONES DE ESTADO FUTURO Y SALIDAS 153Cuadro 6.19: Tabla de Estados Futuros y Salida para la máquina Moore onen lavamiento y sin solapamiento.Est. Pre. Est. Fut.Q2Q1Q0 I = 0 I = 1 Sa 0 0 0 0 0 0 0 1 0 0b 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0d 1 0 0 0 0 0 0 1 1 0e 0 1 1 0 1 1 0 1 1 1Bien, dire tamente desde la Tabla, y por tratarse de una máquina Moore (lasalida depende sólo del estado presente), podemos obtener la e ua ión para lasalida: S = Q2Q1Q0Sin embargo, si utilizamos el estado en que se a tiva esta salida, junto on losdos valores de la entrada y algunas de las ombina iones "no importa", podríamosplantear: S = P(6; 7) +PNI(10; 11; 12; 13; 14; 15)S = (Q2Q1Q0I +Q2Q1Q0I) + (Q2Q1Q0I +Q2Q1Q0I)S = Q1Q0Por otra parte, la transi ión requerida en ada una de las unidades de memoriase puede ordenar en tablas separadas, para ada uno de los biestables.Ahora, a partir de las e ua iones de estado futuro deben en ontrarse lase ua iones de ex ita ión parti ular para ada tipo de biestable.6.13.1. Biestable tipo DComo la e ua ión de estado futuro de este biestable es Q(t+1) = D , enton essi el ir uito se implementara sólo on este tipo de biestable, sus e ua iones deex ita ión serían:D2 = P(2) +PNI(10; 11; 12; 13; 14; 15) = Q1Q0ID1 = P(1; 6; 7; 9) +PNI(10; 11; 12; 13; 14; 15) = Q1 �Q0D0 = P(4; 6; 7; 9) +PNI(10; 11; 12; 13; 14; 15) = Q1I +Q2Q1 +Q2IUn ir uito que implemente todas las expresiones re ién obtenidas lo podemosapre iar en la �gura 6.34.

Page 180: Principios de Diseño Digital (UDO)

154Cuadro 6.20: Tabla de Transi ión y E ua ión de Estado Futuro para el bit 2 dela máquina Moore on en lavamiento y sin solapamiento.Q2(t)Q1(t)Q0(t)I Q2(t+1)0 0 0 0 00 0 0 1 00 1 0 0 00 1 0 1 00 0 1 0 10 0 1 1 01 0 0 0 01 0 0 1 00 1 1 0 00 1 1 1 0Q2(t+1) = P(2) +PNI(10; 11; 12; 13; 14; 15)Q2(t+1) = Q1(t)Q0(t)ICuadro 6.21: Tabla de Transi ión y E ua ión de Estado Futuro para el bit 1 dela máquina Moore on en lavamiento y sin solapamiento.Q2(t)Q1(t)Q0(t)I Q1(t+1)0 0 0 0 00 0 0 1 10 1 0 0 00 1 0 1 00 0 1 0 00 0 1 1 01 0 0 0 01 0 0 1 10 1 1 0 10 1 1 1 1Q1(t+1) = P(1; 9; 6; 7) +PNI(10; 11; 12; 13; 14; 15)Q1(t+1) = Q1(t)Q0(t)I +Q1(t)Q0(t) = Q1(t) �Q0(t)

Page 181: Principios de Diseño Digital (UDO)

6.13. ECUACIONES DE ESTADO FUTURO Y SALIDAS 155151413121009080706050403020100

A3A2A1A0

Dec4 a 16

DC

QQn

DC

QQn

DC

QQn

��

��

1679

4679

1

3

5

1357

7I

3

5

2

1

0

SalidaFigura 6.34: Cir uito re ono edor de la se uen ia 1001, on biestables tipo D.

Page 182: Principios de Diseño Digital (UDO)

156Cuadro 6.22: Tabla de Transi ión y E ua ión de Estado Futuro para el bit 0 dela máquina Moore on en lavamiento y sin solapamiento.Q2(t)Q1(t)Q0(t)I Q0(t+1)0 0 0 0 00 0 0 1 00 1 0 0 10 1 0 1 00 0 1 0 00 0 1 1 01 0 0 0 01 0 0 1 10 1 1 0 10 1 1 1 1Q0(t+1) = P(4; 9; 6; 7) +PNI(10; 11; 12; 13; 14; 15)Q0(t+1) = Q1(t)I +Q2(t)Q1(t) +Q2(t)I6.13.2. Biestable tipo TComo la e ua ión de estado futuro de este biestable es Q(t+1) = T � Q(t), enton es si el ir uito se implementara sólo on este tipo de biestable, suse ua iones de ex ita ión serían:Q2(t+1) = T2 �Q2(t) = Q1Q0IQ1(t+1) = T1 �Q1(t) = Q1 �Q0Q0(t+1) = T0 �Q0(t) = Q1I +Q2Q1 +Q2IObviamente, desde aquí no se puede aislar Tn tan fá ilmente, omo es nuestroobjetivo. Debemos bus ar un me anismo diferente para obtener las expresionesrequeridas. Volvamos a las tablas de transi ión del sistema (Tablas 6.20, 6.21 y6.22) y onstruyamos un mapa K on los requerimientos impuestos por la e ua iónde estado futuro para un biestable tipo T :Esto nos ondu e a la siguiente expresión:T2 = P(2; 8; 9) +P(10; 11; 12; 13; 14; 15)T2 = Q2Q1I +Q2Esto nos ondu e a la siguiente expresión:T1 = P(1; 4; 5; 9) +P(10; 11; 12; 13; 14; 15)T1 = Q0I +Q1Q0

Page 183: Principios de Diseño Digital (UDO)

6.13.ECUACIONESDEESTADOFUTUROYSALIDAS157

Cuadro6.23:TabladeTransi iónyRequerimientosdeEx ita iónparalamáquinaMoore onen lavamientoysinsolapamiento.

Q(t)2 Q(t)1 Q(t)0 I Q(t+1)2 Tran. Req. Q(t+1)1 Tran. Req. Q(t+1)0 Tran. Req.0 0 0 0 0 0! 0 T2 = 0 0 0! 0 T1 = 0 0 0! 0 T0 = 00 0 0 1 0 0! 0 T2 = 0 1 0! 1 T1 = 1 0 0! 0 T0 = 00 1 0 0 0 0! 0 T2 = 0 0 1! 0 T1 = 1 1 0! 1 T0 = 10 1 0 1 0 0! 0 T2 = 0 0 1! 0 T1 = 1 0 0! 0 T0 = 00 0 1 0 1 0! 1 T2 = 1 0 0! 0 T1 = 0 0 1! 0 T0 = 10 0 1 1 0 0! 0 T2 = 0 0 0! 0 T1 = 0 0 1! 0 T0 = 11 0 0 0 0 1! 0 T2 = 1 0 0! 0 T1 = 0 0 0! 0 T0 = 01 0 0 1 0 1! 0 T2 = 1 1 0! 1 T1 = 1 1 0! 1 T0 = 10 1 1 0 0 0! 0 T2 = 0 1 1! 1 T1 = 0 1 1! 1 T0 = 00 1 1 1 0 0! 0 T2 = 0 1 1! 1 T1 = 0 1 1! 1 T0 = 0

Page 184: Principios de Diseño Digital (UDO)

158Cuadro 6.24: Tabla de requerimientos de ex ita ión para T2.Q2Q1 Q0I00 01 11 1000 0 0 0 101 0 0 0 011 x x x x10 1 1 x xCuadro 6.25: Tabla de requerimientos de ex ita ión para T1.Q2Q1 Q0I00 01 11 1000 0 1 0 001 1 1 0 011 x x x x10 0 1 x xCuadro 6.26: Tabla de requerimientos de ex ita ión para T0.Q2Q1 Q0I00 01 11 1000 0 0 1 101 1 0 0 011 x x x x10 0 1 x x

Page 185: Principios de Diseño Digital (UDO)

6.13. ECUACIONES DE ESTADO FUTURO Y SALIDAS 159Esto nos ondu e a la siguiente expresión:T0 = P(2; 3; 4; 9) +P(10; 11; 12; 13; 14; 15)T0 = Q1Q0 +Q1Q0I +Q2I6.13.3. Biestable tipo SRComo la e ua ión de estado futuro de este biestable es Q(t+1) = S + Q(t)R, enton es si el ir uito se implementara sólo on este tipo de biestable, suse ua iones de ex ita ión serían:Q2(t+1) = S2 +Q2(t)R2 = Q1Q0IQ1(t+1) = S1 +Q1(t)R1 = Q1 �Q0Q0(t+1) = S0 +Q0(t)R1 = Q1I +Q2Q1 +Q2IObviamente desde aquí no se puede aislar Sn y Rn tan fá ilmente, al igualque en el aso del biestable tipo T. Debemos bus ar un me anismo diferente paraobtener las expresiones requeridas. Volvamos a las tablas de transi ión del sistema(Tablas 6.20, 6.21 y 6.22) y onstruyamos un mapa K on los requerimientosimpuestos por la e ua ión de estado futuro para un biestable tipo SR:Esto nos ondu e a las siguientes expresiones:S2 = P(2) +P(10; 11; 12; 13; 14; 15)S2 = Q1Q0IR2 = P(8; 9) +P(0; 1; 3; 4; 5; 6; 7) +P(10; 11; 12; 13; 14; 15)R2 = Q2Esto nos ondu e a las siguientes expresiones:S1 = P(1; 9) +P(6; 7) +P(10; 11; 12; 13; 14; 15)S1 = Q1Q0IR1 = P(4; 5) +P(0; 2; 3; 8) +P(10; 11; 12; 13; 14; 15)R1 = Q1Q0Esto nos ondu e a las siguientes expresiones:S0 = P(4; 9) +P(6; 7) +P(10; 11; 12; 13; 14; 15)S0 = Q1I +Q2IR0 = P(2; 3) +P(0; 1; 5; 8) +P(10; 11; 12; 13; 14; 15)R0 = Q2Q1

Page 186: Principios de Diseño Digital (UDO)

160Cuadro6.27:TabladeTransi iónyRequerimientosdeEx ita iónparalamáquinaMoore onen lavamientoysinsolapamiento.

Q(t)2 Q(t)1 Q(t)0 I Q(t+1)2 Tran. Req. Q(t+1)1 Tran. Req. Q(t+1)0 Tran. Req.0 0 0 0 0 0! 0 S2 = 0R2 = X 0 0! 0 S1 = 0R1 = X 0 0! 0 S0 = 0R0 = X0 0 0 1 0 0! 0 S2 = 0R2 = X 1 0! 1 S1 = 1R1 = 0 0 0! 0 S0 = 0R0 = X0 1 0 0 0 0! 0 S2 = 0R2 = X 0 1! 0 S1 = 0R1 = 1 1 0! 1 S0 = 1R0 = 00 1 0 1 0 0! 0 S2 = 0R2 = X 0 1! 0 S1 = 0R1 = 1 0 0! 0 S0 = 0R0 = X0 0 1 0 1 0! 1 S2 = 1R2 = 0 0 0! 0 S1 = 0R1 = X 0 1! 0 S0 = 0R0 = 10 0 1 1 0 0! 0 S2 = 0R2 = X 0 0! 0 S1 = 0R1 = X 0 1! 0 S0 = 0R0 = 11 0 0 0 0 1! 0 S2 = 0R2 = 1 0 0! 0 S1 = 0R1 = X 0 0! 0 S0 = 0R0 = X1 0 0 1 0 1! 0 S2 = 0R2 = 1 1 0! 1 S1 = 1R1 = 0 1 0! 1 S0 = 1R0 = 00 1 1 0 0 0! 0 S2 = 0R2 = X 1 1! 1 S1 = XR1 = 0 1 1! 1 S0 = XR0 = 00 1 1 1 0 0! 0 S2 = 0R2 = X 1 1! 1 S1 = XR1 = 0 1 1! 1 S0 = XR0 = 0

Page 187: Principios de Diseño Digital (UDO)

6.13. ECUACIONES DE ESTADO FUTURO Y SALIDAS 161Cuadro 6.28: Tabla de requerimientos de ex ita ión para el biestable 2 (SR).S2 Q0IQ2Q1 00 01 11 1000 0 0 0 101 0 0 0 011 x x x x10 0 0 x xR2 Q0IQ2Q1 00 01 11 1000 X X X 001 X X X X11 x x x x10 1 1 x xCuadro 6.29: Tabla de requerimientos de ex ita ión para el biestable 1 (SR).S1 Q0IQ2Q1 00 01 11 1000 0 1 0 001 0 0 X X11 x x x x10 0 1 x xR1 Q0IQ2Q1 00 01 11 1000 X 0 X X01 1 1 0 011 x x x x10 X 0 x x

Page 188: Principios de Diseño Digital (UDO)

162Cuadro 6.30: Tabla de requerimientos de ex ita ión para el biestable 0 (SR).S0 Q0IQ2Q1 00 01 11 1000 0 0 0 001 1 0 X X11 x x x x10 0 1 x xR0 Q0IQ2Q1 00 01 11 1000 X X 1 101 0 X 0 011 x x x x10 X 0 x x6.13.4. Biestable tipo JKComo la e ua ión de estado futuro de este biestable es Q(t+1) = JQ(t)+KQ(t), enton es si el ir uito se implementara sólo on este tipo de biestable, suse ua iones de ex ita ión serían:Q2(t+1) = J2Q2(t) +K2Q2(t) = Q1Q0IQ1(t+1) = J1Q1(t) +K1Q1(t) = Q1 �Q0Q0(t+1) = J0Q0(t) +K0Q0(t) = Q1I +Q2Q1 +Q2IObviamente desde aquí no se puede aislar Jn y Kn tan fá ilmente, al igualque en el aso del biestable tipo T. Debemos bus ar un me anismo diferente paraobtener las expresiones requeridas. Volvamos a las tablas de transi ión del sistema(Tablas 6.20, 6.21 y 6.22) y onstruyamos un mapa K on los requerimientosimpuestos por la e ua ión de estado futuro para un biestable tipo JK :Esto nos ondu e a las siguientes expresiones:J2 = P(2) +P(8; 9) +P(10; 11; 12; 13; 14; 15)J2 = Q1Q0IK2 = P(8; 9) +P(0; 1; 2; 3; 4; 5; 6; 7) +P(10; 11; 12; 13; 14; 15)K2 = 1Esto nos ondu e a las siguientes expresiones:J1 = P(1; 9) +P(2; 3; 4; 5; 6) +P(10; 11; 12; 13; 14; 15)J1 = Q1IK1 = P(4; 5) +P(0; 1; 2; 3; 8; 9) +P(10; 11; 12; 13; 14; 15)K1 = Q0

Page 189: Principios de Diseño Digital (UDO)

6.13.ECUACIONESDEESTADOFUTUROYSALIDAS163

Cuadro6.31:TabladeTransi iónyRequerimientosdeEx ita iónparalamáquinaMoore onen lavamientoysinsolapamiento.

Q(t)2 Q(t)1 Q(t)0 I Q(t+1)2 Tran. Req. Q(t+1)1 Tran. Req. Q(t+1)0 Tran. Req.0 0 0 0 0 0! 0 J2 = 0K2 = X 0 0! 0 J1 = 0K1 = X 0 0! 0 J0 = 0K0 = X0 0 0 1 0 0! 0 J2 = 0K2 = X 1 0! 1 J1 = 1K1 = X 0 0! 0 J0 = 0K0 = X0 1 0 0 0 0! 0 J2 = 0K2 = X 0 1! 0 J1 = XK1 = 1 1 0! 1 J0 = 1K0 = X0 1 0 1 0 0! 0 J2 = 0K2 = X 0 1! 0 J1 = XK1 = 1 0 0! 0 J0 = 0K0 = X0 0 1 0 1 0! 1 J2 = 1K2 = X 0 0! 0 J1 = 0K1 = X 0 1! 0 J0 = XK0 = 10 0 1 1 0 0! 0 J2 = 0K2 = X 0 0! 0 J1 = 0K1 = X 0 1! 0 J0 = XK0 = 11 0 0 0 0 1! 0 J2 = XK2 = 1 0 0! 0 J1 = 0K1 = X 0 0! 0 J0 = 0K0 = X1 0 0 1 0 1! 0 J2 = XK2 = 1 1 0! 1 J1 = 1K1 = X 1 0! 1 J0 = 1K0 = X0 1 1 0 0 0! 0 J2 = 0K2 = X 1 1! 1 J1 = XK1 = 0 1 1! 1 J0 = XK0 = 00 1 1 1 0 0! 0 J2 = 0K2 = X 1 1! 1 J1 = XK1 = 0 1 1! 1 J0 = XK0 = 0

Page 190: Principios de Diseño Digital (UDO)

164Cuadro 6.32: Tabla de requerimientos de ex ita ión para el biestable 2 (JK ).J2 Q0IQ2Q1 00 01 11 1000 0 0 0 101 0 0 0 011 x x x x10 X X x xK2 Q0IQ2Q1 00 01 11 1000 X X X X01 X X X X11 x x x x10 1 1 x xCuadro 6.33: Tabla de requerimientos de ex ita ión para el biestable 1 (JK ).J1 Q0IQ2Q1 00 01 11 1000 0 1 0 X01 X X X X11 x x x x10 0 1 x xK1 Q0IQ2Q1 00 01 11 1000 X X X X01 1 1 0 011 x x x x10 X X x x

Page 191: Principios de Diseño Digital (UDO)

6.14. OPTIMIZACIÓN Y TEMPORIZACIÓN 165Cuadro 6.34: Tabla de requerimientos de ex ita ión para el biestable 0 (JK ).J0 Q0IQ2Q1 00 01 11 1000 0 0 X X01 1 0 X X11 x x x x10 0 1 x xK0 Q0IQ2Q1 00 01 11 1000 X X 1 101 X X 0 011 x x x x10 X X x xEsto nos ondu e a las siguientes expresiones:J0 = P(4; 9) +P(2; 3; 6; 7) +P(10; 11; 12; 13; 14; 15)J0 = Q1I +Q2IK0 = P(2; 3) +P(0; 1; 4; 5; 8; 9) +P(10; 11; 12; 13; 14; 15)K0 = Q1De no utilizarse de odi� adores, en la genera ión de las e ua iones deex ita ión y salidas, resulta evidente, a la luz de los resultados, la ventaja delos biestables JK sobre los SR, ya que logran expresiones más redu idas.6.14. Optimiza ión y Temporiza iónDe no haberse apli ado ningún riterio de optimiza ión en la onse u ión delas fun iones ombinatorias re ién desarrolladas, debe a ometerse esta etapa. Deesta manera, el siguiente paso en un pro eso de síntesis de lógi a se uen ial, debe onsistir en tratar de obtener la expresión más redu ida posible para las e ua ionesde ex ita ión y de salida. La idea es redu ir el número de literales y produ tos loque ondu iría a utilizar menor antidad de ompuertas, ada una del tamaño máspequeño posible (situa ión no siempre exitosa). Apli a iones del álgebra booleana,así omo métodos omputa ionales para minimiza ión intervienen en esta etapa.El paso �nal en el pro eso de síntesis se uen ial onsiste en obtener undiagrama de tiempos del ir uito, y los retardos de las puertas y biestables quese utilizarán para veri� ar el omportamiento de entrada y salida del ir uitosintetizado, y generar las señales de entrada y salida para simula ión. Dadas lasondas de entradas, el simulador generará las ondas de las salidas, que podrán

Page 192: Principios de Diseño Digital (UDO)

166 ompararse on las esperadas en las salidas obtenidas en el ir uito, o en lasespe i� a iones de ir uito, o en la des rip ión fun ional. Estas señales de laentrada y salida se denominan ve tores de prueba, ya que pueden utilizarse paraprobar el ir uito después de que éste se haya fabri ado.La �gura 6.35 muestra un diagrama de tiempos para el dete tor de la se uen ia1001, on en lavamiento y sin solapamiento.6.15. FSM in ompletamente espe i� adaAnalizando, de manera un po o más uidadosa, la situa ión planteada enla tabla 6.19, en lugar de emplear los estados no utilizados omo base de ombina iones no importa, sería preferible saber que pasaría si por alguna razónel sistema entra en algunos de esos estados que no deberían produ irse. En otraspalabras, en lugar de suponer a priori que un estado de esta naturaleza nun aserá parte del pro eso, sería mejor prever una solu ión para el aso uando sepresentara. Observemos el enfoque que se da a esta situa ión en la �gura 6.36.En el sistema mostrado en la �gura 6.36 se han espe i� ado todos los posiblesestados que admite ualquier ódigo binario minimalista. De esta manera, si lamáquina ini ia su opera ión de una forma errónea, en ualquiera de estos estados,tomará solo un i lo de reloj que esta se re upere a una opera ión normal ysin pérdida de la informa ión. Naturalmente esta situa ión no permite lograrminimiza ión de la etapa ombinatoria de ex ita ión, pero garantiza una opera iónsegura, siempre que no exista una falla físi a en el sistema.6.16. Conversión Mealy - MooreLa �gura 6.24 muestra la estru tura general de dos máquinas se uen ialessin róni as, una tipo Mealy y la otra tipo Moore. El dispositivo de memoria esun onjunto de n �ips-�ops que alma enan el estado presente de la máquina (2nposibles estados). Todos los �ips-�ops están one tados a un reloj omún queprodu irán solo un ambio de estado por ada i lo del mismo.El estado futuro de la máquina está determinado por el ir uito ombinatoriodenominado f, omo una fun ión de las entradas y del estado presente. La salidaestá gobernada por el ir uito ombinatorio h omo una fun ión del estadopresente y de las entradas (para el aso de la máquina Mealy) ó sólo por el estadopresente (para el aso de la máquina Moore).

Page 193: Principios de Diseño Digital (UDO)

6.16. CONVERSIÓN MEALY - MOORE 167

Figura 6.35: Diagrama de tiempos del dete tor de se uen ia 1001, onen lavamiento.

Page 194: Principios de Diseño Digital (UDO)

168a/0

b/0

c/0

d/0

e/1

a/0

b/0

c/0

d/0

e/1

1

0

0

0

1

1

1

0

0,1

h/0

f/0

g/0

0

0

1

10

1

f/0

g/0 h/0

1

0

0

0

1

1

1

0

0,1Figura 6.36: Diagrama de Estados on orre ión de estados (Completamenteespe i� ado).Nuestro objetivo, ahora, será en ontrar un amino que nos permita onvertirun sistema Mealy a otro Moore, fun ionalmente equivalente, y vi eversa.Naturalmente, los resultados �nales garantizarán el omportamiento diferen iadodado por las de�ni iones bási as del tipo de máquina.Un ex elente punto de ini io se en uentra en el trabajo del Prof. NéstorMillán, previamente itado, y del ual tomamos el planteamiento de la tarea quepretendemos abordar.6.16.1. Conversión de Mealy a Moore.Tomando un diagrama de estados ualquiera, que orresponde a una on ep ión Mealy, podemos de�nir, laramente, una ondi ión espe i� a de estadofuturo (qt+1) y salida (ot) para ada par formado por un estado presente (qt) y señalde entrada (itj). En otras palabras, ada par ordenado (qt; itj ) está determinandoun estado futuro y una salida: (qt; itj) ! (qt+1; ot)Si ha emos depender esta salida (ot) solo del estado generado (qt+1), tendremospor de�ni ión un estado Moore. Notaremos este estado por q�k y la salida quedepende de él por z�k.

Page 195: Principios de Diseño Digital (UDO)

6.16. CONVERSIÓN MEALY - MOORE 169De esta forma, debe generarse un estado Moore a partir de ada ombina iónde estado presente y entrada Mealy.Usemos, a manera de ejemplo, el diagrama de estados (�gura 6.37) de unamáquina Mealy:q1 q2

i / o2 1

i / o4 1

i , i , i / o21 3 2i , i , i / o31 4 1

Figura 6.37: Diagrama de Estados de una Máquina Mealy(qt1; it1) ! (qt+11 ; ot1) q�1 ; z�1(qt1; it2) ! (qt+12 ; ot1) q�2 ; z�1(qt1; it3) ! (qt+11 ; ot1) q�1 ; z�1(qt1; it4) ! (qt+11 ; ot1) q�1 ; z�1(qt2; it1) ! (qt+12 ; ot2) q�3 ; z�2(qt2; it2) ! (qt+12 ; ot2) q�3 ; z�2(qt2; it3) ! (qt+12 ; ot2) q�3 ; z�2(qt2; it4) ! (qt+11 ; ot1) q�1 ; z�1Así, arribamos al siguiente diagrama de estados Moore (�gura 6.38):q1/z1** q2/z1* *

q3/z2* *

i , i , i3 41 i 2

i 4

i , i , i2 31

i 4

i , i , i2 31Figura 6.38: Diagrama Moore equivalenteDe donde podemos obtener su tabla de transi iones ( uadro 6.35).

Page 196: Principios de Diseño Digital (UDO)

170 Cuadro 6.35: Tabla de Transi ionesEstado Estado FuturoPresente i1 i2 i3 i4 Sal.(q1; o1) q�1 q�1 q�2 q�1 q�1 z�1(q2; o1) q�2 q�3 q�3 q�3 q�1 z�1(q2; o2) q�3 q�3 q�3 q�3 q�1 z�26.16.2. Conversión de Moore a MealyDado que se ono en todos los estados y salidas Moore (*), junto on lasentradas respe tivas, se le aso ia la salida al estado futuro. Es de ir, que adaentrada i�j (que es igual a la entrada Mealy ij), para ada estado y salida Mooreq�k=z�k, genera un estado Mealy qk on entrada/salida ij=oj;k .Por tanto podemos estable er que: q�k ! qk , y (i�k; z�k)! (ij; oj;k) , en dondeoj;k se orresponde on la salida del estado futuro Moore. Resumiendo, (q�k; i�j)!(q�k+1; z�k+1)) (qk; ij; oj;k).En el aso de nuestro ejemplo: i�1 ! i1i�2 ! i2i�3 ! i3i�4 ! i4q�1 ! q1q�2 ! q2q�3 ! q3(q�1; i�1)! (q�1; z�1) ) (q1; i1; o1)(q�1; i�2)! (q�2; z�1) ) (q1; i2; o1)(q�1; i�3)! (q�1; z�1) ) (q1; i3; o1)(q�1; i�4)! (q�1; z�1) ) (q1; i4; o1)

Page 197: Principios de Diseño Digital (UDO)

6.16. CONVERSIÓN MEALY - MOORE 171(q�2; i�1)! (q�3 ; z�2) ) (q2; i1; o2)(q�2; i�2)! (q�3 ; z�2) ) (q2; i2; o2)(q�2; i�3)! (q�3 ; z�2) ) (q2; i3; o2)(q�2; i�4)! (q�1 ; z�1) ) (q2; i4; o1)(q�3; i�1)! (q�3 ; z�2) ) (q3; i1; o2)(q�3; i�2)! (q�3 ; z�2) ) (q3; i2; o2)(q�3; i�3)! (q�3 ; z�2) ) (q3; i3; o2)(q�3; i�4)! (q�1 ; z�1) ) (q3; i4; o1)Informa ión que podemos resumir en una tabla de estados ( uadro 6.36):Cuadro 6.36: Tabla de EstadosE.P. Estado Futuro / Salidaqk i1 i2 i3 i4q1 q1=o1 q2=o1 q1=o1 q1=o1q2 q3=o2 q3=o2 q3=o2 q1=o1q3 q3=o2 q3=o2 q3=o2 q1=o1En este momento, y de ser posible, se apli a algún riterio de redu ión deestados. En nuestro aso, y por simple inspe ión determinamos que q2 y q3 sonequivalentes (dos estados son equivalentes sí y solo sí para la misma ombina iónde entradas produ en idénti os estados futuros y salidas).Finalmente, sustituyendo obtenemos :E.P. Estado Futuro / Salidaqk i1 i2 i3 i4q1 q1=o1 q2=o1 q1=o1 q1=o1q2 q2=o2 q2=o2 q2=o2 q1=o1

Page 198: Principios de Diseño Digital (UDO)

172

Page 199: Principios de Diseño Digital (UDO)

Capítulo 7Componentes de Memoriza iónEl objetivo fundamental de los omponentes de memoriza ión es alma enardatos y realizar transforma iones sen illas de datos, tales omo uenta ydesplazamiento. En este apítulo se de�nen y diseñan varios tipos de omponentesde memoriza ión, tales omo registros, ontadores, memorias, pilas y olas.7.1. RegistrosEl omponente de memoriza ión más sen illo es un registro, que puede onsiderarse omo un biestable ampliado a múltiples bits. Cada registro onsta den biestables a tivados por una señal de reloj omún. En otras palabras, adabiestable del registro alma ena su propio dato en ada �an o as endente (odes endente) de la señal de reloj. Así pues un registro bási o posee n entradas yn salidas (aspe to no limitativo), además de la señal de reloj. En la �gura 7.1 semuestra un ejemplo de registro y su símbolo grá� o.D Q

Clk Q

Q7

D7

D Q

Clk Q

Q1

D1

D Q

Clk Q

Q0

D0

Cp

OE

Reg.

OE CP

D7 O7

D6 O6

D5 O5

D4 O4

D3 O3

D2 O2

D1 O1

D0 O0Figura 7.1: Registro de o ho bits173

Page 200: Principios de Diseño Digital (UDO)

174La fun ionalidad del registro bási o de la �gura puede mejorarse añadiendodiferentes señales de ontrol. Por ejemplo, si el registro debe ponerse a uno o a eroindependientemente de la señal de reloj, bien uando se one ta la alimenta ióno bien en respuesta a algún evento espe ial, podemos añadirle señales asín ronasde puesta a uno (Set) y de puesta a ero (Reset) [�gura 7.2℄.S ROE CPD7 Q7D6 Q6D5 Q5D4 Q4D3 Q3D2 Q2D1 Q1D0 Q0Figura 7.2: Registro on ontrol para Set y Reset.

El registro de la �gura 7.1 (o el de la �gura 7.2) automáti amente alma enaun nuevo dato por ada �an o as endente de la señal de reloj. Sin embargo, enla mayoría de los sistemas digitales un dato se memoriza durante varios i losde reloj antes de modi� arlo. Por este motivo es útil poder ontrolar uándo hade introdu irse el dato en el registro. Esto se onsigue on el uso de una señalde ontrol, normalmente denominada arga (load) o habilita ión (enable), quepermite argar un dato en el registro. El registro resultante se ono e on elnombre de registro on arga en paralelo (�gura 7.3).El módulo bási o de alma enamiento, on el que está formado el registro on arga paralela, se muestra en la �gura 7.4.Obsérvese que el diseño ontiene un sele tor de 2 a 1, que sele iona entre eldato de entrada o el existente en el registro. La señal de arga load ontrola elsele tor, de tal manera que si load es 1 se introdu e un nuevo dato en el registro.En aso ontrario, si load es 0, on ada �an o as endente de la señal de reloj sere arga el mismo dato ontenido en el registro.

Page 201: Principios de Diseño Digital (UDO)

7.1. REGISTROS 175S ROE CPD7 Q7D6 Q6D5 Q5D4 Q4D3 Q3D2 Q2D1 Q1D0 Q0

L

Figura 7.3: Registro on arga paralela

D Q Q

10

Clk

D

LFigura 7.4: Módulo Bási o de un registro on arga paralela

Page 202: Principios de Diseño Digital (UDO)

1767.2. Registro de DesplazamientoSi usamos un multiplexor (Sele tor) para desplazar el dato alma enado en elregistro, obtendremos un registro de desplazamiento, el ual desplaza su ontenidoen un bit, en una dire ión espe í� a, uando la señal desplazar (Shift) es 0. Laentrada serie I se utiliza para introdu ir el nuevo dato de 1 bit en el biestablemás a la izquierda del registro. Un registro omo el de la �gura 7.5 se podríautilizar para onvertir una se uen ia de datos serie en otra de datos paralelo. Poreste motivo se le denomina a ve es registro de desplazamiento de entrada-serie /salida-paralelo.D Q Q

D Q Q

D Q Q

10I

10

10

Clk

S

Q0Qn−1 Qn−2Figura 7.5: Registro de DesplazamientoPara aumentar la versatilidad de un registro podríamos también usar unsele tor de 4 a 1 que nos permita ombinar las fun iones de desplazamiento yde arga. Por ejemplo, el registro de la �gura 7.6 podría o bien desplazar su ontenido o argar en paralelo un nuevo dato. Además, podría desplazar en unbit su ontenido a la izquierda o a la dere ha, introdu iendo por la dere ha o porla izquierda el bit de dato disponible en las entradas serie respe tivamente.3210 S1 S0

D Q Q

3210 S1 S0

D Q Q

3210 S1 S0

D Q Q

S1S0

Clk

Q0Qn−2Qn−1

Qn−1 Qn−2 Q0

DI

DR

Figura 7.6: Registro General

Page 203: Principios de Diseño Digital (UDO)

7.3. CONTADORES 177La tabla de opera ión de este registro puede verse en el uadro .Cuadro 7.1: Opera ión del Registro GeneralS1S0 Opera ión00 Desplaza a la dere ha01 Carga en paralelo10 Desplaza a la izquierda11 Nada ( onserva último dato)El registro de desplazamiento on arga en paralelo puede utilizarse para onvertir una se uen ia de datos serie a paralelo o una se uen ia de datos paraleloa serie, on la op ión de sa ar el primero el bit más signi� ativo (MSB) o el menossigni� ativo (LSB). Estos registros suelen utilizarse en la onversión de datos del omputador para omuni a iones serie, y para aptar datos transmitidos en seriea �n de tratarlos en un pro esador.7.3. ContadoresUn ontador es un tipo espe ial de registro que in orpora un in rementador,que permite ontar de forma as endente o des endente.7.3.1. Contador Asin róni oLa denomina ión asin róni o viene del he ho de que los biestables no estánsin ronizados por una señal úni a de reloj. En ambio, la salida de un biestablegobierna la entrada de reloj de otro, forzando a que las transi iones no se reali entodas al mismo tiempo (�gura 7.7).Un diagrama de tiempos se muestra en la �gura 7.8(a), donde se apre ia el omportamiento general de las salidas del ontador. Sin embargo, la ara terísti ade opera ión asin róni a se apre ia mejor realizando una amplia ión de la es alade tiempos [�gura 7.8(b)℄, donde se observa on detalle que las transi iones de losmódulos bási os de memoria no se realizan al mismo tiempo.7.3.2. Contador Asin róni o As endenteObservando la forma de onda de las señales de salida de la �gura 7.8 notamosque la uenta es de tipo des endente. Realizando pequeñas modi� a iones en la

Page 204: Principios de Diseño Digital (UDO)

178

Figura 7.7: Contador Asin róni oClk

Q0

Q1

Q2

Q30 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

(a)

(b)Figura 7.8: Diagrama de tiempos del ontador asin róni o

Page 205: Principios de Diseño Digital (UDO)

7.3. CONTADORES 179estru tura interna, podemos lograr una uenta as endente, omo se apre ia en la�gura 7.9.

Clk

Q0

Q1

Q2

Q3

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15Figura 7.9: Contador Asin róni o As endente7.3.3. Contador Sin róni oDe requerirse que los ambios de estado de los biestables se reali en al mismotiempo, estamos en presen ia de una máquina se uen ial omo las ya estudiadas.Trabajaremos on un registro ontador de uatro bits, al ual se le ha eliminadola señal de habilita ión, lo que nos ondu e a la tabla del uadro 7.2.En lugar de intentar un esquemáti o detallado a nivel de ompuertas, que esel análisis lási o que se realiza en la mayoría de la bibliografía, estudiaremos elproblema on una tenden ia ha ia el omportamiento del sistema.Naturalmente se trata de una máquina sin róni a basada en un registro, uyasalida es in rementada en uno. De esta forma, el omportamiento indi a que ala salida del registro debe sumársele una unidad para umplir on el objetivo dediseño, omo se muestra en la �gura 7.10.

Page 206: Principios de Diseño Digital (UDO)

180Cuadro 7.2: Tabla de estados para un ontador sin róni o as endente de uatrobits Est. Pre. Est. Futuro Est. Pre. Est. FuturoQt3Qt2Qt1Qt0 Qt+13 Qt+12 Qt+11 Qt+10 Qt3Qt2Qt1Qt0 Qt+13 Qt+12 Qt+11 Qt+100 0 0 0 0 0 0 1 1 0 0 0 1 0 0 10 0 0 1 0 0 1 0 1 0 0 1 1 0 1 00 0 1 0 0 0 1 1 1 0 1 0 1 0 1 10 0 1 1 0 1 0 0 1 0 1 1 1 1 0 00 1 0 0 0 1 0 1 1 1 0 0 1 1 0 10 1 0 1 0 1 1 0 1 1 0 1 1 1 1 00 1 1 0 0 1 1 1 1 1 1 0 1 1 1 10 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0

Figura 7.10: Contador Sin róni o As endente

Page 207: Principios de Diseño Digital (UDO)

7.3. CONTADORES 181Empleando Nota ión de Transferen ias entre Registros (RTN ), tema que estratado en profundidad en el próximo urso, podemos expresar la salida del ontador omo: Qt Qt�1 + 1expresión que podemos leer: la salida a tual del registro es su salida anterior másuno o guarde en el registro el valor de salida anterior más uno. Es importanteresaltar que el segundo sumando ha sido �jado en ero mientras se ha puesto enuno el a arreo de entrada.7.3.4. Contador Sin róni o Des endenteDe manera semejante a la antes tratada, un ontador des endente requerirádisminuir en una unidad el valor a tual de salida. Esto se logra usando un sumador,que opera omo restador empleando omplementos (�gura 7.11).

Figura 7.11: Contador Sin róni o Des endente

Page 208: Principios de Diseño Digital (UDO)

182En la �gura 7.11 la opera ión que se está realizando es la siguiente:Qt Qt�1 + 0 �1 Qt�1 + 2n � 0� 1despre iando el a arreo se obtiene:Qt Qt�1 � 17.3.5. Contador Sin róni o As endente - Des endenteLa fusión del ontador as endente y el des endente en una sola unidad se logramediante el empleo de un multiplexor, manejado por una línea de sele ión quedeterminará el tipo de uenta ha realizar (�gura 7.12).Resulta obvio que uando el ontrol del sele tor, que además se usa omoa arreo de entrada al sumador, está en ero, la opera ión que se realiza es dede remento, operando el registro omo un ontador des endente. Por el ontrario, uando está en uno la opera ión es de in remento, operando omo un ontadoras endente.7.3.6. Contador Sin róni o As endente - Des endente onCarga ParalelaTodas las parti ularidades analizadas para el aso de los registros simplespueden implementarse para el aso de los ontadores. Así, podemos ini iar la uenta en un número diferente a ero (ó unos), posibilitando la arga paralelapara el ini io de la uenta, omo se muestra en la �gura 7.13.7.3.7. Contador BCD y OtrosUna posible apli a ión del ontador sin róni o on arga paralela es el diseñode ontadores BCD, los uales uentan siguiendo la se uen ia 0, 1, 2, 3, 4, 5,6, 7, 8, 9, 0... De forma similar podemos onstruir ontadores BCD as endentes/ des endentes. En la dire ión de uenta as endente debemos argar 0 en el ontador uando al anza el valor 9, mientras que en la dire ión des endentedebemos argar 9 uando el ontador al anza la uenta 0 (�gura 7.14). En general,podemos onstruir ontadores que omien en en ualquier punto y uenten en asi ualquier se uen ia (Johnson, anillo, et .).

Page 209: Principios de Diseño Digital (UDO)

7.3. CONTADORES 183

Figura 7.12: Contador Sin róni o As endente / Des endente

Page 210: Principios de Diseño Digital (UDO)

184

Figura 7.13: Contador Sin róni o As endente / Des endente on arga paralela

Page 211: Principios de Diseño Digital (UDO)

7.4. BANCO DE REGISTROS 185En la �gura 7.14 el módulo de ontrol no es más que un ir uito ombinatorioen argado de generar las señales de sele ión del multiplexor, de a uerdo a ladire ión de la uenta, el valor de la uenta y la orden de arga, para que elregistro obtenga el valor apropiado al tipo de opera ión deseada.

Figura 7.14: Contador Sin róni o BCD7.4. Ban o de RegistrosEn las se iones anteriores se han des rito diferentes tipos de registros y ontadores, ada uno de ellos onsistente en un número m de biestables y algunalógi a ombina ional adi ional en sus entradas. También es posible ombinarbiestables formando un arreglo bidimensional que onstaría de n �las on mbiestables ada una: En esta estru tura bidimensional, denominada ban o deregistros (�gura 7.15), ada �la de biestables puede onsiderarse omo un registro.En general, un ban o de registros memorizará la misma antidad de informa ión

Page 212: Principios de Diseño Digital (UDO)

186que n registros de m bits ada uno. Pero la ventaja prin ipal de utilizar un ban ode registros es que, dada su regularidad, requiere menos ableado en su diseño�nal. Además, ada biestable de un ban o de registros puede implementarse onmu hos menos transistores, ya que a ede en ada instante sólo a un registro en ada olumna.Reg. 1

Reg. 1

Reg. 1

Dec. deEscritura

Dec. deLectura

WA0WA1

WAn

WE

RA0RA1

RAn

RE

Entradas

SalidasFigura 7.15: Ban o de RegistrosEl de odi� ador de es ritura sirve para sele ionar una de las �las y memorizarlos valores de entrada oin idiendo on el �an o de subida de la señal de reloj.Las entradas al de odi� ador de es ritura son n líneas de dire iones y la señalde habilita ión de es ritura WE.De forma similar al de odi� ador de es ritura, el de le tura sele ionará la�la uyos valores alma enados apare erán en las salidas del ban o de registros.El de odi� ador de le tura tiene n líneas de dire ión de le tura y la señal dehabilita ión de le tura RE. Cuando RE está a tivo, después de un pequeñoretardo, los valores memorizados en la �la sele ionada apare erán en las salidas.Por otra parte, uando RE está ina tivo, todas las salidas tendrán un valor dealta impedan ia.La limita ión prin ipal de un ban o de registros es que sólo permite un a esolimitado a los registros que lo forman, es de ir, en un instante dado, sólo se puedenes ribir datos en uno de los registros (una �la) y leer datos de sólo un registro (una�la). Esta situa ión puede remediarse en parte onstruyendo ban os de registros

Page 213: Principios de Diseño Digital (UDO)

7.5. MEMORIAS DE ACCESO ALEATORIO 187 on más de un puerto de le tura o de es ritura. Desgra iadamente, el osto delregistro se in rementará en propor ión a su número de puertos. Por esta razón,los ban os de registros más usuales tienen uno o dos puertos de es ritura y dos dele tura. La justi� a ión prin ipal de los dos puertos de le tura es que la mayoríade las opera iones aritméti as y lógi as requieren del uso de dos operadores almismo tiempo. Con dos puertos de le tura es posible aptar estos dos operandosy memorizar el resultado en el mismo ban o de registros en un i lo de reloj. Porotra parte, la justi� a ión del uso de dos puertos de es ritura radi a en la velo idada la que se utilizan operandos: en ada i lo ha emos uso de dos operandos paraprodu ir un resultado. En onse uen ia, si se va a realizar una opera ión en ada i lo de reloj, debemos poder dar un nuevo operando al ban o de registros y a lavez memorizar el resultado de la opera ión.Los ban os de registros son por lo general muy rápidos porque ada eldain luye un lat h o biestable ompletos. Sin embargo son aros porque ada lat ho biestable requiere media do ena de transistores en su diseño. Por este motivo,los ban os de registros se emplean normalmente para antidades limitadas dememoria temporal en apli a iones de alta velo idad y en mi ropro esadores.7.5. Memorias de A eso AleatorioEn la se ión anterior hemos des rito los ban os de registros, que son detamaño redu ido, rápidos, y apropiados para la memoriza ión temporal durantelos ál ulos. Por otra parte, las memorias de a eso aleatorio (RAM: RandomA ess Memories), son grandes y lentas, pero muy apropiadas para memoriza ióna largo plazo de programas y de los datos utilizados en los ál ulos. Al igual quelos ban os de registros, las memorias están organizadas omo arreglos de registrosde n �las on m bits alma enados en ada �la. Por lo general, n suele estar omprendido entre 16 y 32, mientras que m es normalmente 1, 4, 8, 16, o 32.Aunque la elda de memoria bási a (MC ) se representa mediante un lat h,en realidad se implementa on bastantes menos transistores. Dependiendo de laforma de implementa ión de la MC las memorias RAM se lasi� an en estáti aso dinámi as. En el aso de la RAM estáti a (SRAM, Stati RAM ), la eldade memoria se onstruye on entre uatro y seis transistores, empleando dosinversores inter one tados formando un lat h, e implementando on un transistorla puerta AND de entrada y on otro el adaptador de salida. Este tipo de eldade memoria SRAM retendrá su ontenido inde�nidamente en tanto no se vuelvaa es ribir, y se mantenga one tada la alimenta ión. Sin embargo, en el aso de laRAM dinámi a (DRAM, Dynami RAM ), las eldas de memoria se implementan on sólo un transistor. El in onveniente de la DRAM es que el ontenido de la elda se pierde on ada opera ión de le tura, tras la ual habrá que repetir la

Page 214: Principios de Diseño Digital (UDO)

188opera ión de es ritura. Además o urre que, debido a imperfe iones de fabri a ión,el ontenido de la elda se pierde trans urrido un tiempo. Para ontrarrestareste problema ada posi ión de memoria debe a ederse on ierta fre uen ia,o alternativamente, el ontenido debe "refres arse" periódi amente. Durante elrefres o todas las demás opera iones de le tura o es ritura deben suspenderse, lo ual puede resultar molesto y de�nitivamente su opera ión lógi a es más lenta.A pesar de ello, la mayor densidad y oste redu ido de las DRAM las ha e muypopulares para el diseño de produ tos ele tróni os. Las SRAM, por otro lado,aunque más ostosas, son más rápidas y por lo tanto apropiadas para los asos enque se requiera un a eso a memoria de mayor velo idad.Tanto las SRAM omo las DRAM son memorias volátiles, ya que su ontenidose pierde al des one tar la fuente de alimenta ión. Por este motivo, equipostales omo teléfonos y ontestadores automáti os in luyen baterías que evitanla pérdida de datos en memoria por un orte temporal del suministro elé tri o.Por el ontrario, las ROM y las PROM son memorias no volátiles ya que preservansu ontenido aunque se orte de la alimenta ión. No obstante el ontenido de estasmemorias no se puede leer hasta que se restablez a la alimenta ión.7.6. Otras Estru turas de Alma enamientoDos tipos de estru turas parti ulares, para algún tipo de alma enamiento deinforma ión lo onstituyen las Pilas y las Colas.7.6.1. Pilas de Inser ión / Extra iónLas Pilas de Inser ión / Extra ión, o simplemente Pilas, son de uso fre uenteen diseños software y hardware. Por de�ni ión, una pila es un omponente dememoria on un a eso limitado. A diferen ia de la RAM, en la que ualquier datoalma enado puede ser a edido en ualquier momento, a los datos memorizadosen una pila sólo se puede a eder a través de una posi ión on reta: la abe era dela pila. En otras palabras, uando se inserta un dato en la pila, éste se memorizaen la abe era y todos los demás datos se desplazan una posi ión ha ia el interiorde la pila (inser ión). Por el ontrario, uando se extrae un dato de la pila, eseliminado de la abe era y todos los demás datos se trasladan una posi ión ha iaarriba (extra ión). Por esta razón, esta estru tura se ono e omo primero enentrar, último en salir (FILO, First In Last Out).En el ejemplo de la pila de 4 palabras mostrado en el uadro 7.3, ella ontiene ini ialmente dos números: 34 en la posi ión Cabe era y 23 en la posi iónCabe era-1. En la �gura (b) puede verse que la inser ión en la pila del número45 requiere que los números 34 y 23 se despla en ha ia abajo, a las posi iones

Page 215: Principios de Diseño Digital (UDO)

7.6. OTRAS ESTRUCTURAS DE ALMACENAMIENTO 189Cuadro 7.3: Pila(a) 45 (b) ( ) 45# "Cabe era 34 Cabe era 45 Cabe era 34Cabe era� 1 21 Cabe era� 1 34 Cabe era� 1 21Cabe era� 2 va ía Cabe era� 2 21 Cabe era� 2 va íaCabe era� 3 va ía Cabe era� 3 va ía Cabe era� 3 va íaCabe era-1 y Cabe era-2, respe tivamente. Por otra parte, omo muestra la �gura( ), al extraer el 45 de la abe era de la pila, el 34 y el 23 son de nuevo desplazadosha ia arriba para volver a o upar las posi iones Cabe era y Cabe era-1. Porsupuesto, en este aso on reto, no podemos insertar más de uatro númerosen la pila sin llenarla, y la inser ión de ada número adi ional provo a la pérdidadel situado en la base de la pila.Cuando se diseña una pila de inser ión / extra ión, el punto másimportante a tener en uenta es que los datos alma enados se desplazan en unaposi ión des endente o as endente en las opera iones de inser ión y extra ión,respe tivamente. Esta observa ión nos lleva a utilizar registros de desplazamientopara su implementa ión, así omo un ontador as endente / des endente paradete tar uándo la pila está llena o va ía.La prin ipal desventaja de la implementa ión on registros de desplazamientoes el número elevado de registros que se ne esitan uando se requiere una pilagrande. Por esta razón, las pilas de inser ión / extra ión grandes se implementannormalmente on RAM. Además, ya que las RAM no son apa es de desplazarsu ontenido, las opera iones de inser ión y extra ión en estas pilas debenimplementarse de una manera ligeramente diferente: ambiando la posi ión dela abe era de la pila. En otras palabras, al insertar datos en di ha pila, ladire ión de la abe era se in rementará por ada inser ión, y por el ontrario, sede rementará en ada extra ión.7.6.2. Colas: Primero en Entrar, Primero en SalirLas Colas, primero en entrar, primero en salir (FIFO, First-In-First-Out),se emplean on fre uen ia para suavizar ráfagas en las peti iones de servi io.Considérese por ejemplo la gente que ha e ola para sa ar entradas de ine,para entrar en un autobús, o para disfrutar de un viaje en un parque deatra iones, que debe esperar en �la hasta que les llegue el turno para re ibir unservi io. Situa iones similares pueden surgir on diferentes pro esadores, ASIC,o ualesquiera elementos que inter ambien datos entre sí, en el sentido de que

Page 216: Principios de Diseño Digital (UDO)

190 uando la produ ión de datos ex eda momentáneamente su onsumo, debemosinter alar una ola FIFO entre el produ tor de datos y el onsumidor de losmismos. En tales asos, por supuesto, la velo idad de produ ión no puede ex ederinde�nidamente a la de onsumo, ya que se requerirá una ola in�nita. Por el ontrario, ambas velo idades deben ser en promedio semejantes. Sin embargo,o asionalmente apare erán ráfagas de produ ión y de onsumo, y el tamaño dela ola determinará la longitud de ráfaga que se puede tolerar.El objetivo de una ola FIFO es memorizar los datos en ex eso, que seráneventualmente leídos de la ola en el mismo orden en el que fueron es ritos. Asípues el primer dato memorizado es leído primero, y así su esivamente, omo ilustrael uadro 7.4. Cuadro 7.4: Pila(a) 45 (b) ( )#Final va ía Final va ía Final va íava ía 45 va ía34 34 45Ini io 23 Ini io 23 Ini io 34#23En el uadro 7.4(a) se muestra el ontenido de la ola tras introdu ir losnúmeros 23 y 34 pero antes de que llegue el 45. En (b) puede verse el ontenidode la ola después de introdu ir el número 45. Obsérvese que uando se lee de la ola, el número 23 sale y es des artado, ha iendo que el ontenido de la ola seadesplazado en una posi ión ha ia abajo. En ( ) se muestra el ontenido de la olatras el desplazamiento.Ya que la ola preserva el orden de llegada de los datos, podemos onstruirla ola utilizando registros de desplazamiento junto on un ontador que posea elnúmero de datos que ontiene, aunque al igual que el aso de las Pilas, es más omún en ontrar su implementa ión en RAM.

Page 217: Principios de Diseño Digital (UDO)

Capítulo 8Cir uitos Combina ionales on MSIy LSI.En los apítulos anteriores gran parte del esfuerzo de diseño estaba orientado a onseguir una expresión algebrai a lo más simpli� ada posible, que al momento de on�gurar el ir uito nos llevara a la utiliza ión del menor número de ompuertas.Esta idea se orientaba en la máxima que "a menor número de ompuertas menor osto". Es más, la simpli� a ión de las fun iones de Boole, mediante los riteriosdel Mapa de Karnaugh o del Método tabular del algoritmo de Quine-M Cluskey,aseguraba una solu ión normalmente de respuestas rápidas debido a sólo dos o tresniveles de profundidad lógi a, además del número mínimo de ompuertas. Estos riterios perseguían, también, la idea de e onomizar en el tamaño del ir uitodebido a que on un pequeño número de ompuertas debería existir un redu idonúmero de onexiones y, por tanto, el ir uito impreso de montaje y la fuente dealimenta ión tendrían que ser pequeños.Desafortunadamente, estos riterios no son siempre válidos debido al logro denuevas te nologías en la fabri a ión de Cir uitos Integrados. En primer lugar, las ompuertas se onsiguen en apsuladas por grupos dentro de un Cir uito Integrado(por ejemplo los C.I. 74LS00 y CD4011 poseen uatro ompuertas NAND dedos entradas ada uno, de las familias TTL y CMOS respe tivamente). De estamanera, para onseguir realmente un ir uito pequeño, e� iente y e onómi ola tenden ia es a utilizar todas las ompuertas de un C.I. no importando sise aumenta el número de ompuertas usadas, salvo parti ulares ex ep iones endonde es impres indible máxima velo idad de respuesta, por ejemplo. Por otraparte, las ompuertas inutilizadas de un C.I. deben one tarse de tal manera quesus salidas sean forzadas a un nivel alto para disminuir el onsumo de poten iade la fuente de alimenta ión. Es más, las entradas no usadas de las ompuertas(tiene una ompuerta de uatro entradas de las uales solo está usando tres)afe tan la velo idad de ambio y la inmunidad al ruido de a . De esta forma,deben one tarse a una fuente de alta impedan ia (entradas de ompuertas OR191

Page 218: Principios de Diseño Digital (UDO)

192dire tamente a tierra, entradas de ompuertas AND mediante una resisten ia aV ; evitando la onexión de dos o mas entradas en orto para no ex eder el"fan out" de la salida que los alimenta). Esta onexión disminuye la apa itan iaparásita aso iada on las entradas �otantes, la er anía de los ables y las líneasde inter onexión del impreso.Veamos esto on un ejemplo prá ti o. Se desea onstruir un ir uito ombinatorio que umpla on la siguiente expresión F = A � B � C. Obviamenteesto nos lleva a utilizar una ompuerta AND de tres entradas y un inversor, esde ir 2 ompuertas. La ompuerta AND de tres entradas la onseguimos en elC.I. 7411, que posee tres ompuertas. El inversor lo en ontramos en el C.I. 7404que tiene seis inversores en la pastilla (�gura 8.1).

Figura 8.1: Cir uito e implementa ión en el ámbito de integradosSin embargo, usando la doble nega ión podemos desarrollar la misma fun iónusando solo un C.I. 7410 (tres ompuertas NAND de 3 entradas), produ iendo, sinembargo, una lógi a de tres niveles de profundidad, lo ual determina un retardo

Page 219: Principios de Diseño Digital (UDO)

Prin ipios de Diseño Digital. 193de ompuerta adi ional antes de que la salida F sea estable, omo se apre ia enla �gura 8.2. F = A �B � C= A �B � C= �A �B � C�

Figura 8.2: Cir uito desarrollado on ompuertas NAND.Además, ontinuamente se produ en ir uitos integrados de mediano (MSI ) yalto (LSI ) nivel de integra ión que produ en dire tamente fun iones ompletas.Tal es el aso de sumadores, omparadores de magnitud, onvertidores de ódigoet .De esta forma, antes de a ometer la tarea de diseño lási a es onvenienterevisar si existe el ir uito que desarrolle dire tamente la fun ión. De no ser esteel aso, tratar de dividir el problema en pequeños módulos implantables de manerainmediata y desarrollar sólo la oordina ión y ontrol entre ellos. Este prin ipioes espe ialmente válido para ir uitos que envuelvan un gran número de variablesde entradas y salidas, aún en el aso de sistemas se uen iales (que veremos másadelante).

Page 220: Principios de Diseño Digital (UDO)

194Abordaremos a ontinua ión algunos métodos que permiten la utiliza ión de ir uitos MSI y LSI para la onstru ión de fun iones ombinatorias, lograndoun ahorro onsiderable en el esfuerzo de diseño y onstru ión.8.1. SumadoresLa suma o adi ión es una de las opera iones más omúnmente realizada porlos sistemas digitales. El ir uito más simple, llamado semi-sumador o sumadorin ompleto, opera dos números binarios de un bit ada uno, y produ e omo salidasla suma (s) y el a arreo ( ).Sean x e y dos números binarios de un bit ada uno. Podemos, enton es, onstruir una tabla de opera ión para todas las posibles ombina iones de entrada,junto a la suma produ ida (in luido el a arreo)Ent. Sal.x y s0 0 0 00 1 0 11 0 0 11 1 1 0 = x � ys = x� yFigura 8.3: Sumador in ompleto (semi-sumador)Un sumador ompleto de 3 bits (z, x, y) operará de a uerdo a la tabla siguiente

Page 221: Principios de Diseño Digital (UDO)

8.1. SUMADORES 195Ent. Sal.z x y s0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1 = zxy + zxy + zxy + zxy= zxy + zxy + zxy + zxy= xy (z + z) + z (xy + xy)= xy + z (x� y)s = zxy + zxy + zxy + zxy= z (xy + xy) + z (xy + xy)= z (x� y) + z(x� y)= z � x� y= z � (x� y)Observe que esta forma de operar algebrai amente nos permite expresar unsumador ompleto en base a dos semi-sumadores.Si el objetivo es realizar un sumador de números binarios de n bits ada uno,el método lási o de diseño rápidamente se en uentra frente a un gran problema,denominado explosión ombinatoria, ya que ha medida que n aumenta linealmentelas ombina iones de entrada re en exponen ialmente.Imaginemos que deseamos sumar dos números binarios de dos bits ada uno.Esto nos lleva a un ir uito on 4 entradas (dos por ada número) y una tabla deverdad (8.1) de 16 ombina iones (24), situa ión fá ilmente manejable.Si, ahora, deseamos sumar dos números binarios de 4 bits ada uno, esto noslleva a un ir uito on 8 entradas (4 por ada número) y una tabla de verdad de256 ombina iones (28), situa ión difí ilmente manejable por los métodos lási osde diseño.Sin embargo, on un sumador ompleto de 1 bit la opera ión de adi ión denúmeros de n bits puede fá ilmente ser implementada, siguiendo una estrategia de

Page 222: Principios de Diseño Digital (UDO)

196

Figura 8.4: Sumador ompletoCuadro 8.1: Tabla para un sumador de números de 2 bitsx1x0y1y0 os1s00000 0000001 0010010 0100011 0110100 0010101 0100110 0110111 1001000 0101001 0111010 1001011 1011100 0111101 1001110 1011111 110

Page 223: Principios de Diseño Digital (UDO)

8.2. DECODIFICADORES. 197distribu ión en el espa io, semejante al pro eso de sumar dos números de variosdígitos on lápiz y papel, de a uerdo a omo se muestra en la �gura 8.5.

Figura 8.5: Sumador ompleto de 4 bitsNaturalmente, el sistema tardará más tiempo en propor ionar una respuestaestable (�gura 8.6), debido al a arreo que se propaga desde el sumador menossigni� ativo, que modi� a paulatinamente las respuestas instantáneas de losdemás sumadores (�guras 8.7, 8.8, 8.9, 8.10 y 8.11).8.2. De odi� adores.Un de odi� ador es un ir uito ombina ional de n líneas de entrada y 2nlíneas de salida ( omo máximo), que onvierte una palabra odi� ada de entradaen una palabra de salida en donde una sola de las líneas estará a tiva por vez.Este tipo de de odi� adores re ibe la denomina ión de De odi� adoresbinarios de n a m, donde m es menor o igual que 2n (en algunas oportunidadesse les puede en ontrar bajo el nombre de De odi� ador 1 de m, ya que solo una

Page 224: Principios de Diseño Digital (UDO)

198

Figura 8.6: Sumador. Diagrama de tiempos

Figura 8.7: Sumador. Opera ión par ial en t0

Page 225: Principios de Diseño Digital (UDO)

8.2. DECODIFICADORES. 199

Figura 8.8: Sumador. Opera ión par ial en t1

Figura 8.9: Sumador. Opera ión par ial en t2

Page 226: Principios de Diseño Digital (UDO)

200

Figura 8.10: Sumador. Opera ión par ial en t3

Figura 8.11: Sumador. Opera ión par ial en t4

Page 227: Principios de Diseño Digital (UDO)

8.2. DECODIFICADORES. 201salida, de un total de m está a tiva por vez). En la �gura 8.12, se representa laestru tura general de un de odi� ador de 2 a 4 y su diagrama lógi o.a1

a0

2

1

5

5

5

5

o0

o1

02

o3

4

4

3

3

4

1

2

2

3

1

5E

a1a0

E

o3o2o1o0

Dec 2a4

Figura 8.12: De odi� ador 2 a 4La entrada habilitadora, de estar presente, debe permane er a tiva para el orre to fun ionamiento del dispositivo.La opera ión del De odi� ador puede ser des rita mediante una tabla deverdad (8.2):En este grupo de ir uitos lógi os normalmente se insertan los onvertidoresde ódigos, tal omo el aso de los ono idos BCD ("De odi� ador" de Binario aDe imal).

Page 228: Principios de Diseño Digital (UDO)

202 Cuadro 8.2: De odi� ador 2 a 4Ea1a0 o3o2o1o0000 0000... 0000011 0000100 0001101 0010110 0100111 1000Como ualquier fun ión de Boole puede expresarse en una suma de términosmínimos en la forma anóni a, y un de odi� ador binario produ e todos los 2ntérminos mínimos de n entradas, enton es podemos emplear un de odi� ador yuna ompuerta OR para realizar ualquier fun ión booleana. El pro edimiento onsiste simplemente en sele ionar los términos mínimos desde la salida delde odi� ador, de a uerdo a la lista obtenida por la expresión anóni a de lafun ión, o de la tabla de verdad, y one tarlos a una entrada de la ompuertaOR. Obviamente, en el diseño de ir uitos de múltiples fun iones de salida, serequerirá una ompuerta OR por ada fun ión a realizar.Utili emos los on eptos emitidos on un ejemplo prá ti o:Planteamiento del problema:Diseñar un ir uito ombinatorio que produz a omo salida el triplede un número binario de dos bits a la entrada.Con eptualiza ión:Podemos expresar esto omo:Salida = 3*EntradaObserve que se trata de una opera ión de multipli a ión normal.Esta des rip ión implí ita la podemos expandir a su forma explí ita,para lo ual a ada valor de la entrada se le aso ia un valor de salida, onstru ión que ono emos omo tabla de valores. Bien, omo laentrada es binaria y está onstituida por dos bits, el número máximoque se puede representar es 3 (22 � 1). De esta forma el númeromáximo en la salida será 9 (3*3), para lo ual se requieren uatro

Page 229: Principios de Diseño Digital (UDO)

8.2. DECODIFICADORES. 203bits. Construyamos, enton es, la tabla de valores, que en el aso deSistemas Digitales ono emos omo Tabla de la verdad:x1x0 F3F2F1F000 000001 001110 011011 1001Solu ión/Simpli� a ión:De la tabla de la verdad podemos obtener dire tamente lasexpresiones anóni as para ada una de las fun iones de salida:F0(I1;I0) = � (1; 3)F1(I1;I0) = � (1; 2)F2(I1;I0) = � (2)F3(I1;I0) = � (3)Aunque en este tipo de diseño, el esfuerzo no se olo a en losaspe tos de minimiza ión, un ingeniero no debe olvidar este tema,si no existe algún impedimento té ni o o de opera ión. Enton es, porsimple inspe ión, se puede simpli� ar si onsideramos que F0(I1;I0) =� (1; 3) = I0. De esta forma, solo se requeriría de una ompuerta ORpara la realiza ión de F1(I1;I0) = � (1; 2).Realiza ión:a1a0

E

o3o2o1o0

Dec 2a4x1x0

Vcc F0

F1

F2F3

Adi ionalmente, podemos señalar que un De odi� ador on entrada dehabilita ión puede ser utilizado omo un Demultiplexor. Un Demultiplexor esun ir uito que re ibe datos por una sola línea de entrada y los pasa a solo unade 2n posibles salidas, determinada por n líneas de sele ión. De esta forma, laentrada de habilita ión E pasa a ser la entrada de datos y las líneas an�1:::a0 se onstituyen en el sele tor que habilitará una de las líneas de salidas, para quela informa ión de entrada en E "pase" ha ia la salida oi sele ionada. Esto se

Page 230: Principios de Diseño Digital (UDO)

204 omprueba dire tamente de las expresiones estándar de las fun iones booleanaspara las salidas oi del de odi� ador. Re ordando, por ejemplo la expresión parao0 y o1 vistas anteriormente, resulta evidente que si las líneas de sele ión a1a0son ambas ero, enton es la salida o0 será exa tamente igual a la entrada de datosE. Por otra parte, si a1 es ero y a0 es uno, enton es o1 será igual a E.Las posibilidades de uso de De odi� adores on entrada de habilita iónson mayores al permitir la implanta ión de fun iones on mayor número deentradas y salidas. Veamos omo dos de odi� adores 2 a 4 permiten onstruirun de odi� ador 3 a 8 (�gura 8.13):a1a0

E

o3o2o1o0

Dec 2a4

a1a0

E

o3o2o1o0

Dec 2a4

A2A1A0

O7O6O5O4

O3O2O1O0Figura 8.13: De odi� ador 3 a 8Cuando A2 es ero sólo trabaja el de odi� ador inferior lo ual, orresponde atodas las ombina iones 000 ... 011. Cuando A2 es uno sólo trabaja el de odi� adorsuperior, lo ual orresponde a todas las ombina iones 100 ... 111. De la mismaforma, usando un de odi� ador 2 a 4 ( on o sin entrada de habilita ión) y uatro de odi� adores 2 a 4 on entrada de habilita ión podemos onstruir unde odi� ador 4 a 16. Este pro eso puede ontinuar tanto omo sea ne esario y/oprudente ( onsideraremos más adelanta mejores alternativas uando se in rementael número de entradas y/o salidas).8.3. Multiplexores.Un Multiplexor Digital es un ir uito ombinatorio que toma informa iónbinaria de una de 2n posibles entradas y las trans�ere a solo una línea de salida.La es ogen ia de la línea de entrada se realiza mediante n líneas de sele ión.La denomina ión se realiza de a uerdo a la antidad de líneas de entrada. Por

Page 231: Principios de Diseño Digital (UDO)

8.3. MULTIPLEXORES. 205ejemplo, un dispositivo on uatro líneas de entrada y una de salida se denominaMultiplexor 4 a 1; obviamente, debe poseer dos líneas de sele ión. Al igual que losde odi� adores, los multiplexores, así omo una gran variedad de otros ir uitosintegrados, poseen líneas de habilita ión y algunos salidas de Alta Impedan ia ontroladas por una señal de entrada de habilita ión de salida.La �gura 8.14 representa un Multiplexor 4 a 1 on entrada de habilita ión,también ono ida omo Sele tor del Chip (Chip Enable).

E

s1 s0

I0

I1

I2

I3

YI3I2I1I0

s1 s0E

Y

Mux 4a1

Figura 8.14: Multiplexor 4 a 1De igual manera, existe una Tabla de Verdad, de donde podemos expresaralgebrai amente la fun ión lógi a para este dispositivoEntradas Sal.E s1 s0 I3 I2 I1 I0 Y0 x x x x x x 01 0 0 x x x x I01 0 1 x x x x I11 1 0 x x x x I21 1 1 x x x x I3Y(E;s1;s0;I3;I2;I1;I0)=E(I0s1s0+I1s1s0+I2s1s0+I3s1s0)

Page 232: Principios de Diseño Digital (UDO)

206Expresión de la ual desprendemos que on este ir uito podemos desarrollar ualquier fun ión ombinatoria, y solamente una, de un número de variables iguala la antidad de líneas de sele ión del multiplexor, en donde las entradas I0:::In sepondrán a eros o unos de a uerdo a sí se desarrolla el produ to en la ontribu ión�nal de la suma de produ tos de la fun ión.Anali emos el mismo problema resuelto anteriormente on un de odi� ador;a saber, un ir uito uya salida sea el triple del valor binario de entrada. En la on lusión del problema habíamos arribado a las siguientes expresionesF0(I1;I0) = I0F1(I1;I0) = � (1; 2)F2(I1;I0) = � (2)F3(I1;I0) = � (3)Como se trata de un ir uito on 2 variables de entrada I1 e I0, estas seusarán en las líneas de sele ión del multiplexor para lo ual les ambiaremos ladenomina ión a s1 y s0 respe tivamente. Hemos supuesto que E esté a tivo (alto).Por otra parte, de la expresión para la salida del multiplexor sabemos que losmintérminos 1 y 2 están a ompañados por las entradas I1 e I2 respe tivamente.De tal forma, las entradas I1 e I2 deben estar a tivas (altas) y las entradas I0e I3 deben estar ina tivas (bajas o one tadas a tierra) para el aso de F1. Unanálisis similar debe realizarse para F2 y F3. Así arribamos al ir uito mostradoen la �gura 8.15.En términos generales, se requiere un multiplexor por ada fun ión desalida. Enton es, si no hubiese sido posible la simpli� a ión en nuestro ejemplo,hubiéramos tenido que utilizar uatro multiplexores 4 a 1.Podemos sugerir, enton es, que el uso de multiplexores es ade uado uandoel ir uito posee po as señales de salida, y el de odi� ador es apropiado uandolas salidas son numerosas. Esta a�rma ión es de ará ter relativo debido a queexisten ir uitos más e� ientes uando re en el número de entradas y salidas, omo veremos más adelante.Por otra parte, el multiplexor posee una ualidad espe ial que no se en uentraen el de odi� ador, es posible desarrollar ualquier fun ión de 2n variables onn� 1 líneas de sele ión omo veremos a ontinua ión, en el diseño de un ir uitoque permita realizar F(A;B;C) = � (1; 3; 6; 7)

Page 233: Principios de Diseño Digital (UDO)

8.3. MULTIPLEXORES. 207

I3I2I1I0

s1 s0E

Y

Mux 4a1

I3I2I1I0

s1 s0E

Y

Mux 4a1

I3I2I1I0

s1 s0E

Y

Mux 4a1

F3

F2

F1

F0

E

I0I1

Vcc

Figura 8.15: Multipli ador por 3

Page 234: Principios de Diseño Digital (UDO)

208Sabemos que podemos utilizar un multiplexor 8 a 1 on las entradas I0, I2,I4 e I5 a ero y las entradas I1, I3, I6 e I7 a uno. Sin embargo plantearemosun análisis diferente realizando una tabla de mintérminos ordenados de la manerasiguiente (hemos supuesto que las entradas A y C son la más y menos signi� ativasrespe tivamente). I0 I1 I2 I3A 0 1 2 3A 4 5 6 70 A A 1En la primera �la se olo an las 2n�1 entradas. En la segunda �la se olo antodos los mintérminos posibles uando A está en su estado ina tivo (0, 1, 2, 3). Enla ter era �la se olo an todos los mintérminos uando A está a tivo (4, 5, 6, 7).Posteriormente se mar an los mintérminos ne esarios para desarrollar la fun ión(1, 3, 6, 7). Luego se analizan las olumnas para ada una de las entradas Ii. Sien la olumna no existe mintérmino mar ado esta entrada irá a ero (I0 = 0). Sien la olumna solo está mar ado un mintérmino uando la variable está ina tiva,esta entrada se one tará a la variable negada (I1 = A). Si en la olumna solo estámar ado un mintérmino uando la variable está a tiva, esta entrada se one taráa la variable dire tamente (I2 = A). Finalmente, si en la olumna están mar adoslos dos mintérminos esta entrada irá a uno (I3 = 1).I3I2I1I0

s1 s0E

Y

Mux 4a1Vcc

F

B C

A

Como se apre ia esta poten ialidad brinda un ahorro importante en el ostoy tamaño de los ir uitos resultantes. Por supuesto obliga al uso de un inversoradi ional.Finalmente, y al igual que los de odi� adores, podemos onstruir unmultiplexor de mayor número de entradas (2 �m) a partir de dos multiplexoresmenores (m entradas) siempre que posean entrada habilitadora, omo se observaen la �gura 8.16.

Page 235: Principios de Diseño Digital (UDO)

8.4. COMPARADORES 209

I3I2I1I0

s1 s0E

Y

Mux 4a1

I3I2I1I0

s1 s0E

Y

Mux 4a1I7I6I5I4

I3I2I1I0

A

BC

F

Figura 8.16: Multiplexor 8 a 18.4. ComparadoresLa ompara ión de dos variables binarias es una opera ión omún en SistemasDigitales, espe ialmente en Sistemas de Computadores, y onstituye la base detoda senten ia de ontrol: "Si ante edente enton es onse uente", donde en elante edente se involu ra al menos una opera ión de ompara ión, por ejemplo: SíA > B, enton es..., Sí C = 0, enton es..., et .De esta manera, si disponemos de un elemento que nos permita realizar laopera ión de ompara ión podríamos onstruir ir uitos que nos propor ionaranuna u otra salida de a uerdo on el resultado de la ompara ión. Antes de diseñareste tipo de ir uitos veremos la estru tura digital de un omparador.La primera aproxima ión a un omparador de un bit la onstituye por sí mismala ompuerta OR Ex lusiva. Re ordemos que la salida de esta ompuerta es unosólo si las entradas son diferentes. Enton es, ha iendo una extensión a n bits, el ir uito de la �gura 8.17 será uno si las palabras binarias son diferentes, al menosen un bit (A 6= B).Este arreglo es un buen omienzo, pero en el mer ado existen ir uitosintegrados de ompara ión que además informan de las magnitudes relativas delas antidades en ompara ión. En el aso de la familia TTL dos omparadoresson los más omunes: 74LS85 (Comparador de 4 bits on entradas de expansión

Page 236: Principios de Diseño Digital (UDO)

210...

An−1 ... A1 A0 Bn−1 ... B1 B0

C

Figura 8.17: Comparador simple de n bitspara aumentar los bits de ompara ión, y salidas A > B, A = B y A < B) y74LS682 (Comparador de 8 bits on salidas A > B y A = B).Entraremos un po o en el tema del diseño de omparadores. Comen emos porun omparador bási o, para números de 1 bit:AB F1 : A > B F2 : A = B F3 : A < B00 0 1 001 0 0 110 1 0 011 0 1 0de donde obtenemos F1 = AB, F2 = A�B y F3 = AB.Si deseáramos onstruir un omparador para números de n bits, deberíamos onstruir una tabla de 2n�1 ombina iones, y entraríamos en el mismo problemade explosión ombinatoria ya visto para el aso de los sumadores. Sin embargo,un análisis detallado del pro eso de ompara ión nos puede llevar a una solu ióndistribuida en el espa io, semejante a la propor ionada para el aso de lossumadores.Veamos esto on un ejemplo on reto. Supongamos que estamos omparandolos número A = 1011 y B = 1001 (evidentemente A es mayor que B). Si el bitmás signi� ativo de A es mayor que el orrespondiente de B, el pro eso se detieney esto ya garantiza que todo el número A es mayor que B. De igual manera, siel bit más signi� ativo de A es menor que el orrespondiente de B, el pro eso sedetiene y esto ya garantiza que todo el número A es menor que B. No obstante, si

Page 237: Principios de Diseño Digital (UDO)

8.4. COMPARADORES 211el bit más signi� ativo de A es igual que el orrespondiente de B, nada podemos on luir sobre la rela ión A > B, y el pro eso debe ontinuar on el siguiente bit,hasta detener on un a ierto o �nalizar la antidad de bits. Para nuestro aso,A3 = B3 y el pro eso ontinua. De igual manera, A2 = B2 y el pro eso ontinua.Finalmente, A1 > B1 y el pro eso �naliza indi ando que A > B. Si ambiamos elvalor de A (A = 0011), la primera ompara ión ya garantizaría que A < B.No obstante, para implementar el ir uito deben preveerse todas las posibles ompara iones par iales. De esta manera, un omparador de 4 bits, para generarla señal F = A > B, sería omo se muestra en la �gura 8.18.

Figura 8.18: Comparador de 4 bits, generando F = A > BVisto desde el otro punto de vista, omenzando el análisis desde los bits menossigni� ativos, podemos de ir que: si el bit menos signi� ativo de A es mayor queel orrespondiente de B, A puede ser mayor que B siempre que los siguientes bitsmás signi� ativos también lo sean, o que al menos sean iguales. En otras palabras,se "a arrea" la fun ión mayor que, bit a bit, produ iéndose una de isión del tipo:

Page 238: Principios de Diseño Digital (UDO)

212A será mayor que B, si Ai�1 > Bi�1 o, Ai�1 = Bi�1 y Ai�2 > Bi�2, para i = 1::n.De esta manera, un omparador de 4 bits, para generar la señal F = A > B,también se puede onstruir de una manera mas onsistente, omo se muestra enla �gura 8.19.

Figura 8.19: Comparador de 4 bits, generando F = A > B, on a arreo desde losbits menos signi� ativosPodemos, ahora, enfrentar situa iones omo las planteadas en el siguienteejer i io:Planteamiento del Problema:Diseñe un ir uito ombinatorio que opere de a uerdo a la siguientesenten ia: Si A � B, enton es F = A+ B, de lo ontrario F = 3 �B,donde A y B son números enteros de 4 bits ada uno, + se re�ere a laopera ión de adi ión y * a la opera ión de multipli a ión.

Page 239: Principios de Diseño Digital (UDO)

8.4. COMPARADORES 213Con eptualiza ión:La salida puede ser expresada omo:F = ( A+B ; A � B3 �B ; A < BAnalizando la expresión anterior observamos que se requieren dosetapas ombinatorias que pro esen los datos: una para la suma y otrapara la multipli a ión. Además se ne esita una etapa de ontrol quede ida ual etapa pro esadora de datos produ irá la salida �nal del ir uito.Este tipo de diseño, que no es el úni o para solu ionar estosproblemas, se ono e omo diseño por bloques fun ionales. La primeraetapa de diseño onsiste en de�nir, a grandes rasgos, los elementosfísi os ne esarios para pro esar los datos. Luego el sistema de ontroly �nalmente se re�na el onjunto ompleto.La etapa sumadora la realizaremos on un sumador de 4 bits . Laetapa multipli adora on un ir uito similar al empleado en el apartedel de odi� ador. La etapa de ontrol estará basada en un omparadorque sele ionará la respuesta ade uada, manejando un multiplexor.Veamos esto en un diagrama de bloques fun ionales:Comparador

Amp. x 3

Sumador

3*B

A+B0

1S

Mux

F

A<B

B

A

Como la entrada es binaria y está onstituida por 4 bits, la antidadmáxima que se puede representar, en ada número, es 15 (24 � 1). Deesta forma el número máximo en la salida será 45 (15*3), para lo ualse requieren 5 bits.Dos observa iones �nales importantes. Primero, en el aso delsumador el a arreo �nal será onsiderado omo dato ya que nos lo

Page 240: Principios de Diseño Digital (UDO)

214 permite el an ho de la salida. Segundo, el multiplexor es en realidadun arreglo de multiplexores ya que omer ialmente no existe unmultiplexor 2 a 1, en donde ada entrada tenga 5 líneas de datos.De tal forma, este arreglo estará formado por 5 multiplexores 2 a 1 on sus entradas de sele ión one tadas en paralelo.8.5. ROM (Memoria de sólo Le tura).Cono emos desde el estudio de los apartados anteriores que un de odi� ador ompleto de n entradas, el ual genera 2n términos mínimos, junto on m ompuertas OR permite realizar ualquier fun ión lógi a ombina ional de nentradas y m salidas. Esta es la arquite tura bási a de una ROM, tal omo semuestra en la �gura 8.20.01..2 −1n

Dec. n a 2n Matriz 2 x m

n

de ¨fusibles

Arreglo de mcompuertas OR

01..n−1 m−1 ... 1 0

...

m−1 ... 1 0

...

m salidas

n entradas

Figura 8.20: Estru tura de una ROMCada salida del de odi� ador interno está one tada a una ompuerta OR através de un enla e programable o "fusible lógi o", el ual permite la programa ióndel dispositivo (ver 8.6).En la prá ti a este tipo de dispositivos onstituye una familia que se puede atalogar de a uerdo a su te nología de fabri a ión en:ROM : Grabados al momento de fabri a ión de a uerdo a una "más ara"suministrada por el liente. Nun a se borran, aún en ausen ia de energíaelé tri a.

Page 241: Principios de Diseño Digital (UDO)

8.5. ROM (MEMORIA DE SÓLO LECTURA). 215UVPROM : Grabados elé tri amente por un sistema ele tróni oespe ializado (de bajo osto), normalmente one tado a un PC, el ual le trans�ere el ontenido de un ar hivo de datos. Estos ir uitos puedenser borrados mediante luz ultravioleta y reutilizados on datos diferentes.Naturalmente deben ser retirados de la pla a donde se en uentran, borrados,regrabados y vueltos a instalar.EEPROM : Grabados al igual que en aso anterior, pero el borrado se efe túaelé tri amente. Ofre en la ventaja de ser borrados y regrabados sin ne esidadde retirarlos del ir uito donde se en uentran instalados, siendo normalmenteutilizados para alma enar informa ión de pro esos que debe preservarse aunen asos de fallas graves, omo la pérdida de energía del ir uito.Como este dispositivo fue on ebido para el alma enamiento de instru iones ydatos de pro esadores, y no para el desarrollo de fun iones ombina ionales, laliteratura referente a ellos emplea nombres diferentes al señalar las variables deentrada, términos mínimos o produ tos, y variables de salida. En realidad se tratade un dispositivo de memoria, tema que revisaremos más adelante, de esta forma al onjunto de variables de entrada se le denominan líneas de dire ión o simplementedire iones, ha iendo referen ia a la posi ión que representa dentro de un mapa dememoria. Las variables de salida se ono en omo líneas de datos o an ho del datoy los produ tos lógi os one tados, mediante programa ión, a ada ompuerta ORde salida re ibe el nombre de palabra de datos. Así, una memoriaROM de n líneasde entrada y m líneas de salida posee n líneas de dire ión, 2n palabras de datos on un an ho de m bits.En otras palabras, para una ombina ión dada de variables de entrada, la ualespe í� a una dire ión úni a, la salida será el dato alma enado en esa dire iónde memoria. Resulta evidentemente más laro usar una tabla que represente elmapa de memoria para entender su opera ión, donde normalmente, tanto para lasdire iones omo para los datos, se emplea nota ión hexade imal.Visto esto, podemos plantear una solu ión al problema que hemos usado deejemplo. Dos bits de entrada produ irán uatro dire iones (0 al 3), y omo serequerían uatro bits para representar al nueve, enton es el an ho de la palabrade datos debe ser uatro bits. De esta forma, ne esitamos una ROM 2 x 4.Dire ión Dato0 01 32 63 9

Page 242: Principios de Diseño Digital (UDO)

216E

A1A0

D3D2D1D0

I1I0

F3F2F1F0

PROM16Vcc

Como se apre ia, el diseño y su implanta ión resultan ser muy fá iles. Sinembargo, en la realidad no se fabri an ROM's en estas dimensiones tan pequeñas,ni es la forma a ostumbrada denominarlas de esta manera. Normalmente sereferen ian por su apa idad de alma enamiento total de bits, onsiderando queel an ho de salida es generalmente un byte (o ho bits). La tabla 8.3 muestra eltipo de dispositivos más omunes que se en uentran en el mer ado.Cuadro 8.3: ROMs Comer ialesDenomina ión Capa idad Palabras An ho Líneas de Líneas de(bits) (bits) entrada salidaxxxx256-yyy 256K 32K 8 15 8xxxx512-yyy 512K 64K 8 16 8xxxx1000-yyy 1M 128K 8 17 8xxxx4000-yyy 4M 512K 8 19 8Podemos preguntarnos ahora: ¾Será onveniente usar una ROM de 32758palabras por 8 bits de an ho, por hablar de una de las más pequeñas, para emplearsolo 4 palabras de 4 bits?. La respuesta de�nitiva la dejaremos pendiente, perodependerá, además del tamaño lógi o y su por entaje de utiliza ión, de otros riterios té ni os y e onómi os tales omo: velo idad de respuesta, onsumo deenergía, tamaño �nal del ir uito, disponibilidad y osto de las partes, et .Lo que sí resulta laro es que este tipo de dispositivo nos permitirá onstruir ir uitos ombinatorios de un gran número de variables de entrada y de salida,empleando solo un ir uito integrado. Planteemos, a manera de ejemplo, elsiguiente:Planteamiento del problema:Diseñar y onstruir un ir uito ombinatorio que produz a omosalida la parte entera de la 128ava parte de un número entero de entradade 15 bits.Con eptualiza ión:

Page 243: Principios de Diseño Digital (UDO)

8.5. ROM (MEMORIA DE SÓLO LECTURA). 217Como el número de entrada es de 15 bits la máxima antidadque representa es 215 � 1 = 32767. Por tanto, la salida máxima seráInt(32767=128) = Int(255; 9921875) = 255. Enton es se ne esitan 8bits para la salida y la ROM apropiada sería una xxx256yyy (32Kx8).Solu ión:La tarea ahora es onstruir una tabla de la verdad, paraposteriormente apli ar algún método de simpli� a ión (digamos unmapa de Karnaugh o el algoritmo de Quine-M Cluskey) y �nalmenteen ontrar una expresión de las salidas. ½Cuidado! No estamosempleando métodos tradi ionales, pero si así fuera ¾Estaría dispuesto a onstruir una tabla de la verdad que produ iría 32768 ombina iones?,¾Sería apaz de onstruir un mapa K para 15 variables?. Aúnempleando un mapa de memoria ¾Tendría ánimo de es ribir uno on32768 dire iones y poner en ada una el dato apropiado?.Esto nos obliga a bus ar métodos alternativos de solu ión y,afortunadamente, la omputa ión viene en nuestro auxilio. Comolas EPROM se graban desde un ar hivo de datos, debemosenton es onstruir uno apropiado al problema, mediante el empleode algún lenguaje de programa ión. Planteemos una solu ión en unmetalenguaje que debe ser posteriormente tradu ido.ABRIR un ar hivo de datosentradas = 15divisor = 128FOR dire ión = 0 TO 2entradas � 1dato = INT(dire ión/divisor)GRABAR dato en ar hivo de datosENDFORCERRAR ar hivo de datosLas parti ularidades de ada lenguaje de programa ión harán que ada instru ión del metalenguaje adopte algunas espe i� a ionespropias. En este sentido espe ial uidado debe ponerse en el manejo deltipo de ar hivo y del dato que se alma ena en él, ya que la informa iónque estamos guardando es de tipo binario y no-texto o algún tipo de odi� a ión alfanuméri a.

Page 244: Principios de Diseño Digital (UDO)

218 Observemos el siguiente ódigo, es rito en Borland C 4.2, parasolu ionar el problema planteado:// Programa ión de una ROM para la realiza ión de Cir uitos// Combinatorios.// Propor iona a la Salida la parte entera de la 128ava parte de// un número binario entero de entrada, de 15 bits.#in lude < onio.h>#in lude <iostream.h>#in lude <iomanip.h>#in lude <math.h>#in lude <stdio.h>#in lude <stdio.h>int main(void){unsigned int num_var_entrada, dire ion, dato;FILE *salida; lrs r();num_var_entrada = 15;if ((salida = fopen("SALIDA1.DAT", "wb")) == NULL){ out <<endl <<"Error... No puedo abrir ar hivo de datos."<<endl;return 1;} out.setf(ios::upper ase);for(dire ion = 0; dire ion <= pow(2, num_var_entrada) - 1;dire ion++){dato = int(dire ion/128);fput (dato, salida);/* Las siguientes 2 líneas están omentadas para a elerar elpro eso out <<setw(2) <<hex <<dire ion <<" "; out <<setw(2) <<hex <<dato <<endl;*/}f lose(salida); out <<"\nFin del Programa\n";return 0;}

Page 245: Principios de Diseño Digital (UDO)

8.5. ROM (MEMORIA DE SÓLO LECTURA). 219Como era de esperar, el ar hivo de datos generado, SALIDA1.DAT,es de 32768 (7F7F) bytes y para apre iar algunas se iones deinforma ión se debe utilizar un editor hexade imal (no de texto).Veamos los primeros datos del ar hivo:Cuadro 8.4: Ar hivo de DatosDire ión Contenido00000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0000080 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 0100090 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01000A0 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01000B0 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01000C0 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01000D0 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01000E0 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01000F0 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 0100100 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 0200110 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02

Realiza ión:

Page 246: Principios de Diseño Digital (UDO)

220VccA14A13A12A11A10A09A08A07A06A05A04A03A02A01A00VppOECSGnd

28272602232124253405060708091001222014

0706050403020100

1918171615131211

X14X13X12X11X10X09X08X07X06X05X04X03X02X01X00

F7F6F5F4F3F2F1F0

27C256Vcc

El uerpo prin ipal del programa anterior puede ser usado omo una plantillapara resolver otros problemas de lógi a ombinatoria. La estru tura prin ipal detodo algoritmo estará omprendida en el i lo for, el ual barre ada una de lasdire iones de entrada, lo que a su vez es un requisito indispensable para la orre taprograma ión de la ROM. Naturalmente, on iertas modi� a iones pueden aúnemprenderse tareas más ompli adas, omo por ejemplo fun iones ombinatorias on más de 8 salidas, lo que requerirá la programa ión de dos o más ROM's enparalelo, aso iando ada una un ar hivo distinto de salida.Como otro ejemplo de programa ión resolvamos nuestro ampli� ador por 3.// Programa ión de una ROM para la realiza ión de Cir uitos// Combinatorios.// Propor iona a la Salida el triple del número binario de entrada// de 2 bits.#in lude < onio.h>#in lude <iostream.h>#in lude <iomanip.h>

Page 247: Principios de Diseño Digital (UDO)

8.5. ROM (MEMORIA DE SÓLO LECTURA). 221#in lude <math.h>#in lude <stdio.h>int main(void){int num_var_entrada, dire ion, dato;FILE *salida; lrs r();num_var_entrada = 2;if ((salida = fopen("SALIDA2.DAT", "wb")) == NULL){ out <<endl <<"Error... No puedo abrir ar hivo de datos."<<endl;return 1;} out.setf(ios::upper ase);for(dire ion = 0; dire ion <= pow(2, num_var_entrada) - 1;dire ion++){dato = 3 * dire ion;fput (dato, salida); out <<setw(2) <<hex <<dire ion <<" "; out <<setw(2) <<hex <<dato <<endl;}f lose(salida); out <<"\nFin del Programa.\n";return 0;}La pantalla de eje u ión y el ontenido del ar hivo de salida, SALIDA2.DATde uatro bytes, se muestran en las �guras siguientes:0000 00 03 06 09

Page 248: Principios de Diseño Digital (UDO)

2228.6. PLD (Dispositivo Lógi o Programable).Un Dispositivo Lógi o Programable es un arreglo de elementos lógi osen apsulados en un ir uito integrado, el ual no está ompletamente preparadopara su utiliza ión. El usuario debe programarlo de a uerdo a la fun ión espe í� aque desee desarrollar.Debido al gran número de ompuertas internas que lo forman se a ostumbra ambiar la forma de representar el onexionado. La �gura 8.21 muestra un FPAL(Field Programable Logi Array) on una etapa de entrada de 8 ompuertas AND( ada una, a su vez, de 6 líneas de entrada), y una etapa de salida de 4 ompuertasOR ( ada una, a su vez, de 8 líneas de entrada).

Figura 8.21: Estru tura de una FPAL

Page 249: Principios de Diseño Digital (UDO)

8.6. PLD (DISPOSITIVO LÓGICO PROGRAMABLE). 223Las ru es indi an "fusibles" de programa ión que de fabri a o después de unpro eso de borrado están realizando una onexión. Esto impli a que el pro eso deprograma ión, normalmente, "rompe" o "quema" los fusibles.Cada una de las ompuertas AND tiene un ir uito equivalente al que semuestra en la �gura 8.22. De una manera similar existe una representa iónequivalente para ada ompuerta OR de salida.

Figura 8.22: Estru tura de una AND y fusibles de programa iónLa ROM (�gura 8.23), analizada en 8.5, es un tipo parti ular de DispositivoLógi o Programable, ya que permite la programa ión lógi a de la matriz de salidas;pero su entrada no es programable ya que está onstituida por un de odi� adorbinario ompleto.Caso ontrario al ROM es el PAL al ual solo se le puede programar la matrizde entrada (�gura 8.24).La �exibilidad de un FPAL es evidente, sin embargo este dispositivo, así omo los PAL, se fabri an on un nivel de integra ión mu ho menor que lasROM's. Las razones son más lógi as que te nológi as. Si ne esito programarla matriz de entrada es que no se requiere un de odi� ador ompleto; en otraspalabras, no todos los términos produ tos parti ipan en la expresión de la fun iónlógi a, omo o urre normalmente. Enton es no es impres indible la presen ia detantas ompuertas AND de entrada. En ontrapartida a este redu ido número de

Page 250: Principios de Diseño Digital (UDO)

224

Figura 8.23: Estru tura de una ROM

Page 251: Principios de Diseño Digital (UDO)

8.6. PLD (DISPOSITIVO LÓGICO PROGRAMABLE). 225

Figura 8.24: Estru tura de una PAL

Page 252: Principios de Diseño Digital (UDO)

226 ompuertas AND de entradas las xPAL están dotadas de inversión programablede las salidas, adi ión de registros de salida (que posibilitan la onstru ión de ir uitos se uen iales on un solo ir uito integrado) y líneas programables derealimenta ión (las salidas se pueden inye tar en las entradas, para produ ir ir uitos se uen iales asin róni os), omo se apre ia en la �gura 8.25.

Figura 8.25: Estru tura ompleta de una FPALComer ialmente la denomina ión de estos dispositivos generalmente indi anla estru tura interna que ofre en, aunque al igual que en el aso de las ROM's noes un estándar. La �gura 8.26 muestra la estru tura para la denomina ión de unaPAL y al Tabla 8.5 posee algunos dispositivos omunes.Bien, hasta el momento no hemos men ionado omo se trabaja on este tipo dedispositivo. Al igual que en el aso de las ROM's, la graba ión se realiza en fábri amediante una más ara de fusibles suministrada por el usuario o on un dispositivosimilar al empleado para grabar EPROM's desde PC's. El borrado, para aquellasque lo permitan, en aso de reprograma ión, se realiza on luz ultravioleta oele tróni amente.La metodología de diseño on estos ir uitos es diferente a la utilizada on

Page 253: Principios de Diseño Digital (UDO)

8.6. PLD (DISPOSITIVO LÓGICO PROGRAMABLE). 227B PAL 16 R 8 −15 C N

Tipo de EncapsuladoComercial o MilitarVelocidadNumero de SalidasConfiguracion de la Salida: Registro, LogicaNumero de Terminos ProductosFamilia: PAL, FPALTecnologia: Bipolar, CMOS, ECL, ...Figura 8.26: Estru tura para la denomina ión de una PALCuadro 8.5: PAL. Dispositivos omúnesDenomina ión Términos Produ tos Salidas Tipo de SalidaBPAL16L8-5C 16 8 Lógi aBPAL16R8-5C 16 8 RegistroBPAL16R4-20N 16 4 RegistroBPAL20L8-15N 20 8 Lógi aBPAL20R8-15N 20 8 Registrolas ROM's. En el aso de fun iones pequeñas se puede onstruir un mapa defusibles que se envía dire tamente a fábri a o se tradu e a un ar hivo de datosen dis o. Cuando las fun iones son de mayor omplejidad se re urre a lenguajesde programa ión de hardware, tales omo: VHDL, Verilog, CUPL, ABEL y otros.Nosotros entraremos nuestro esfuerzo para asos relativamente pequeños.En este aparte vuelve a obrar fuerza el manejo del álgebra de Boole y losmétodos de minimiza ión, debido al número limitado de ompuertas AND deentrada. Como primera fase del diseño deben obtenerse expresiones minimizadasde las fun iones a realizar. Posteriormente se tabulan los produ tos que parti ipany se aso ian los fusibles de entrada ha ia las variables de entrada, y los fusibles desalida ha ia las ompuertas OR de salida. Finalmente, se programan de maneraade uada los fusibles inversores, en aso de ser ne esario.Nuevamente usemos a manera de ejemplo el ampli� ador digital por 3.Re ordemos que las expresiones de salida eran:F0(I1;I0) = I0F1(I1;I0) = � (1; 2) = I1I0 + I1I0

Page 254: Principios de Diseño Digital (UDO)

228 F2(I1;I0) = � (2) = I1I0F3(I1;I0) = � (3) = I1I0Se apre ia, enton es, que parti ipan 4 produ tos para formar las fun iones desalida. Ordenemos esto en una tabla de programa ión.EntradasI1 I0 SalidasProd. I1 I1 I0 I0 F3 F2 F1 F0I0 x xI1I0 x x xI1I0 x x x xI1I0 x x xInversores de Salida:Esto nos lleva a ne esitar una FPAL tipo 4L4, omo la que se muestra a ontinua ión

Page 255: Principios de Diseño Digital (UDO)

8.7. ASIC (CIRCUITOS INTEGRADOS DE APLICACIONES ESPECÍFICAS).2298.7. ASIC (Cir uitos integrados de Apli a ionesEspe í� as).Los Cir uitos Integrados de Apli a iones Espe í� as han produ ido, durantela dé ada de los 90's, un profundo impa to en el Diseño de Sistemas Digitalesal permitir, mediante la utiliza ión de ambientes CAE (Computer AssistedEngineering), onvertir un diseño lógi o en un ir uito programado.Las familias de PLD's vistos anteriormente onstituyen una parte de ASIC ;sin embargo, el orazón de estos está formado por los "arreglos de eldas", ir uitos que poseen normalmente entre 2500 y 18000 eldas que fun ionalmentepropor ionan expresiones booleanas, elementos de entrada / salida, opera ionesde ontrol, e in luso opera iones de A/D, D/A y OPAMP.De esta forma, el uso de omputadores espe ializados (Esta iones de trabajo), uyo osto promedio es de unas 20 ve es el valor de un buen PC, es el úni o mediopara programar este tipo de dispositivos. De he ho los ambientes CAE para Diseñode Sistemas Digitales propor ionan un entorno ompleto al permitir elaborartodas las fases del diseño hasta al anzar el ir uito integrado que lo implementa.La �gura 8.27 nos propor iona una idea de la arquite tura que adoptan estosambientes de desarrollo.Captura deEsquematicos

ExpresionesBooleanas

Maquinasde Estado

Entrada del Diseno

Lista de Red

Archivode Salida

SimulacionMinimizacionLogica

Expansion yTraduccion

Compilacion

Ajuste

Procesamiento

Estacion de Trabajo

Programadordel CircuitoFigura 8.27: Ambiente CAE para Diseño Digital

Page 256: Principios de Diseño Digital (UDO)

2308.8. SOC (System On Chip).Por último, a �nales de la dé ada de los 90's, el desarrollo te nológi oha permitido mejorar las presta iones de los ASIC's, dando paso a la on ep ión ompleta de sistemas en apsulados en un solo ir uito integrado.Estos dispositivos, ono idos omo SOC's están orientados esen ialmente al diseñopor omportamiento sistemáti o; es de ir, una on ep ión muy superior a latradi ional aptura de esquemáti os. Evidentemente, se requiere mayor apa idad omputa ional en las fases de diseño, simula ión e implementa ión. Lenguajes omo VHDL y Verilog se han onvertido en los favoritos de este tipo de te nología.

Page 257: Principios de Diseño Digital (UDO)

Capítulo 9Cir uitos Se uen iales on MSI yLSI.Como ya hemos visto, un ir uito se uen ial es aquel donde el estadopresente no tan solo depende de la ombina ión de variables de entrada, sinoademás de la traye toria pasada del sistema por diferentes etapas o estados.Consta esen ialmente de elementos de memoria (�ip �ops), así omo de unaetapa ombinatoria, one tadas para formar un amino de retroalimenta ión ypropor ionar las salidas.En el apítulo Cir uitos Se uen iales y Elementos de Memoriza ión, se iónModelo de Máquinas de Estado Finitos, tratábamos dos tipos generales demáquina:1. Mealy, donde las Salidas y el Estado Futuro son fun iones del EstadoPresente y de las Entradas. Esto lo podemos expresar omo se apre ia enlas e ua iones siguientes x(k+1) = Ax(k) +Bu(k)y(k) = Cx(k)2. Moore, donde las Salidas son sólo fun ión del Estado Presente.x(k+1) = Ax(k) +Bu(k)y(k) = Cx(k) +Du(k)donde x(k) es el ve tor de estados, u(k) es el ve tor de entradas, y(k) es el ve torde salidas; A (matriz de estados), B (matriz de entradas), C (matriz de salida) yD (matriz de a oplo) son matri es binarias y, por tanto, representan un sistema ombinatorio. 231

Page 258: Principios de Diseño Digital (UDO)

232No obstante, debemos men ionar que la existen ia de retroalimenta ión por sisola, independientemente de la presen ia de elementos de memoria, ya de�ne al ir uito se uen ial omo tal. Sin embargo, los ir uitos se uen iales más difundidosson los que emplean un onjunto ordenado de �ip - �ops en una disposi ión ono ida omo Registro ( apítulo Componentes de Memoriza ión), donde fueronestudiados diversos tipos de ellos.9.1. Cir uitos Se uen iales on Registros y Lógi a ombinatoria MSI-LSI.Enfrentaremos este aspe to dire tamente on un problema de diseño.Re ordemos en ir uito se uen ial que re ono e la se uen ia 1001 (�gura 9.1).a/0

b/0

c/0

d/0

e/1

1

0

0

0

1

1

1

0

0,1

a/0

b/0

c/0

d/0

e/1

a/0

b/0

c/0

d/0

e/1

a/0

b/0

c/0

d/0

e/1

(a) (b) (c) (d)

1

0

0

0

1

1

1

0

0,1

1

0

0

0

1

1

1

0

0,1

1

0

0

0

1

1

0

1

1 0

Figura 9.1: Diagramas de Estado, para una máquina Moore, del re ono edor dese uen ia 1001: (a) Con En lavamiento / Sin Solapamiento. (b) Sin En lavamiento/ Sin Solapamiento. ( ) Con En lavamiento / Con Solapamiento. (d) SinEn lavamiento / Con Solapamiento.

Page 259: Principios de Diseño Digital (UDO)

9.1. CIRCUITOS SECUENCIALES CON REGISTROS Y LÓGICA COMBINATORIA MSI-LSI.233A manera de repaso resolveremos este problema on los métodos tradi ionalespara el aso de una máquina Moore on en lavamiento y sin solapamiento (a).Con eptualiza ión:Como son 5 estados se requieren 3 �ip - �ops (los usaremos tipo D), quedando3 estados en ondi ión no - importa. De esta manera, la etapa ombinatoria tendrá4 entradas (I; Qt2; Qt1; Qt0) y 4 salidas (S;Qt+12 ; Qt+11 ; Qt+10 ).Est. Pre. Est. Fut.Q2Q1Q0 I=1 I=0 Sa 000 001 000 0b 001 000 011 0 011 000 010 0d 010 110 000 0e 110 110 110 1Solu ión / Simpli� a ión:La e ua ión de la salida puede obtenerse dire tamenteS = Q2Q1Q0= IQ2Q1Q0 + IQ2Q1Q0= �(6; 14)Para obtener las e ua iones de ex ita ión usaremos tres mapas K :D2 Q1Q0IQ2 00 01 11 1000 0 0 0 001 x x x 111 x x x 110 0 0 0 1D2 = �(6; 10; 14)D2 = Q2 + IQ1Q0

Page 260: Principios de Diseño Digital (UDO)

234 D1 Q1Q0IQ2 00 01 11 1000 0 1 1 001 x x x 111 x x x 110 0 0 0 1D1 = �(1; 3; 6; 10; 14)D1 = IQ0 +Q2 + IQ1Q0D0 Q1Q0IQ2 00 01 11 1000 0 1 0 001 x x x 011 x x x 010 1 0 0 0D0 = �(1; 8)D0 = IQ1Q0 + IQ1Q0Resumiendo, S = Q2Q1Q0D2 = Q2 + IQ1Q0D1 = IQ0 +Q2 + IQ1Q0D0 = IQ1Q0 + IQ1Q0Esto nos ondu e a la utiliza ión de: 4 ompuertas AND de 3 entradas, 1 ompuerta AND de 2 entradas, 2 ompuertas OR de 2 entradas, 1 ompuertaOR de 3 entradas y 3 inversores (probablemente sólo 1 para la entrada I, si seemplean �ip - �ops on salidas omplementadas). Adi ionalmente 3 �ip - �optipo D. A nivel de ir uitos integrados los requerimientos serían: 2 C.I. de ANDde 3 entradas (3 ompuertas por ir uito, usando una de ellas para el produ to on 2 literales), 1 C.I. de OR de 3 entradas (3 ompuertas por ir uito, usandouna de ellas para la suma de dos literales), 1 C.I. de Inversores (usando 3 de los6 disponibles) y 2 C.I. de �ip - �op (puede ser uno si su utiliza un registro).Realiza ión (�gura 9.2):Usemos, ahora, omponentes MSI para nuestro diseño.1. Diseño on De odi� ador:

Page 261: Principios de Diseño Digital (UDO)

9.1. CIRCUITOS SECUENCIALES CON REGISTROS Y LÓGICA COMBINATORIA MSI-LSI.235

Clk

SI

0

1

2

1

2

3

4

5

6

7

8

146

148

6

2

7

138

237

Q

Q’

D

Q

Q’

D

Q

Q’

D

Figura 9.2: Re ono edor de Se uen ia 1001. Diseño Clási o.

Page 262: Principios de Diseño Digital (UDO)

236 Las e ua iones booleanas fueron obtenidas en la parte de diseño lási oS = �(6; 14)D2 = �(6; 10; 14)D1 = �(1; 3; 6; 10; 14)D0 = �(1; 8)Esto nos ondu e a la ne esidad de emplear un De odi� ador 4 a 16 y 4 ompuertas OR (�gura 9.3).O15O14O13O12O11O10O09O08O07O06O05O04O03O02O01O00

A3A2A1A0

Q2Q2´

Q1Q1´

Q0Q0´

D2

D1

D0

Dec 4 a 16

Clk

I

6

14

61014

1361014

1

8

S

Figura 9.3: Re ono edor de Se uen ia 1001. Diseño on De odi� ador y Registro.2. Diseño on Multiplexor:Para las e ua iones booleanas del punto anterior se requieren 4 multiplexores

Page 263: Principios de Diseño Digital (UDO)

9.1. CIRCUITOS SECUENCIALES CON REGISTROS Y LÓGICA COMBINATORIA MSI-LSI.23716 a 1. Sin embargo, por el método del multiplexor redu ido, las ne esidadesreales serían 4 multiplexores 8 a 1 y 1 inversor (�gura 9.4).

SE 0E 1E 2E 3E 4E 5E 6E 7D 2E 0E1E 2E 3E 4E 5E 6E 7

I01234567I01234567

I89101112131415I89101112131415

0000001000I00010

D 1E 0E1E 2E 3E 4E 5E 6E 7D 0E 0E 1E 2E 3E 4E 5E 6E 7

I01234567I01234567

I89101112131415I89101112131415

0III0010II000000

Usemos, ahora, omponentes LSI para nuestro diseño, para lo ual ordenaremospreviamente la informa ión en una tabla de verdad

Page 264: Principios de Diseño Digital (UDO)

238

Q2

Q1

Q0

D2

D1

D0

E7E6E5E4E3E2E1E0

CS S2 S1 S0

Y

Mux 8 a 1E7E6E5E4E3E2E1E0

CS S2 S1 S0

Y

Mux 8 a 1E7E6E5E4E3E2E1E0

CS S2 S1 S0

Y

Mux 8 a 1E7E6E5E4E3E2E1E0

CS S2 S1 S0

Y

Mux 8 a 1

Vcc VccVccVcc

Clk

I

S

Figura 9.4: Re ono edor de Se uen ia 1001. Diseño on Multiplexor Redu ido.Dire ión DatoI Qt2Qt1Qt0 Hex S Qt+12 Qt+11 QT+10 Hex0000 0 0000 00001 1 0011 30010 2 0000 00011 3 0010 20100 4 0xxx 00101 5 0xxx 00110 6 1110 E0111 7 0xxx 01000 8 0001 11001 9 0000 01010 A 0110 61011 B 0000 01100 C 0xxx 01101 D 0xxx 01110 E 1110 E1111 F 0xxx 0Observe que se han mar ado las dire iones 4, 5, 7, C, D y F. Estas orresponden a las ondi iones no importa. En otras palabras, son ombina ionesde entrada que no deben o urrir y, por tanto, se ha onsiderado un estado futuroigual al ini ial on salida 0. Es de ir, se ha asumido un diseño on orre ión deestado, semejante al mostrado en la �gura 9.5.

Page 265: Principios de Diseño Digital (UDO)

9.1. CIRCUITOS SECUENCIALES CON REGISTROS Y LÓGICA COMBINATORIA MSI-LSI.239a/0

b/0

c/0

d/0

e/1

f/0

g/0

h/01

0

0

0

1

1

1

0

0,1Figura 9.5: Diagramas de Estado, para una máquina Moore, del re ono edor dese uen ia 1001, on En lavamiento, sin Solapamiento y on orre ión de estado.1. Diseño on ROM y Registro:En este aso, se utiliza una PROM uyo ontenido es la olumnade datos de la tabla de verdad (�gura 9.6). Como la tabla es de 16 ombina iones, on 4 bits de salida, se requiere una ROM de 4 líneas dedire ión (16 produ tos) y 4 bits de an ho de palabra.2. FPAL on Salidas de Flip - Flops.Desde las e ua iones algebrai as onstruiremos la tabla (9.1) deprograma ión de los términos produ tos y sumas, para todas las fun ionesEsto nos indi a que requerimos un dispositivo que propor ione 6 produ tos,4 sumas (una one tada a la salida externa) y 3 registros. Este elementono existe, pero lo implementaremos on uno tipo FPAL6R4 (6 produ tosy 4 salidas registro). Además, este dispositivo requiere mayor �exibilidaden el esquema de salidas, omo las ono idas Ma ro eldas Lógi as de Salida(Output Logi Ma ro ell). Veamos un mapa del dispositivo en la �gura 9.7.Naturalmente esto es mu ho más e onómi o que que el aso anterior, donderequeríamos una PROM [que usaba 10 dire iones (produ tos) de las 16

Page 266: Principios de Diseño Digital (UDO)

240

Q2

Q1

Q0

D2

D1

D0

Clk

A3 O3A2 O2A1 O1A0 O0

ROMS

030200E0106000E0

I

Figura 9.6: Re ono edor de Se uen ia 1001. Diseño on PROM.disponibles℄ y un registro de 3 bits.Cuadro 9.1: Programa ión de PAL.EntradasExt. Internas SalidasI Q2 Q1 Q0 Ext. Ex ita iónProd. I I Q2 Q2 Q1 Q1 Q0 Q0 S D2 D1 D0Q2 x x xI1Q0 x x xQ2Q1Q0 x x x xIQ1Q0 x x x x xIQ1Q0 x x x xIQ1Q0 x x x xSele tor de Tipo (L ó R) : LInversores de Salida:

Page 267: Principios de Diseño Digital (UDO)

9.1. CIRCUITOS SECUENCIALES CON REGISTROS Y LÓGICA COMBINATORIA MSI-LSI.241

D Q

D Q

D Q

D Q

Mux10 S

Y

Mux10 S

Y

Mux10 S

Y

Mux10 S

Y

S

Vcc

Clk

I

Figura 9.7: Re ono edor de Se uen ia 1001. Diseño on FPAL.

Page 268: Principios de Diseño Digital (UDO)

242

Page 269: Principios de Diseño Digital (UDO)

Capítulo 10Máquinas de Estado Algorítmi as(ASM).10.1. Introdu iónEn estudios anteriores hemos onsiderado ir uitos ombinatorios yse uen iales relativamente sen illos, desarrollando un onjunto de herramientasque nos permiten el análisis y diseño de dispositivos y sistemas. No obstante,sistemas de mayor omplejidad, que los ya onsiderados, ameritan té ni asdiferentes, referen iadas generalmente omo Diseño de Sistemas por Nivel.Estudiaremos a ontinua ión los on eptos bási os de pro esos iterativos, los uales presentan un me anismo rudimentario de ontrol, y posteriormente,Máquinas de Estado Algorítmi o (ASM ), modelo que representa un pro esogobernado por un onjunto de reglas laramente de�nidas, apaz de realizarseen hardware o en una simula ión software.10.2. Nota ión de Transferen ia entre Registros(RTN)En el Diseño de Sistemas por Nivel los registros y sus opera iones son loselementos bási os de todo pro eso.Un Registro (R) de n bits está ompuesto de n eldas de memoria,denominadas Rn�1; :::; R1;R0; donde R0 es el bit menos signi� ativo (LSB).Los registros son nombrados usando una o más letras mayús ulas.Se utiliza una Nota ión de Transferen ia entre Registros (RTN ) parades ribir las opera iones del sistema (Tabla 9.7).243

Page 270: Principios de Diseño Digital (UDO)

244

Cuadro 10.1: Nota ión de Transferen ia entre RegistrosFun ión Representa ión Simbóli aOpera iones de Transferen ia* Copia el ontenido de B en A B A* Limpia el registro A (Reset) A 0* A tiva el registro A (Todos los bits a 1) A 1;s* In rementa el ontenido de A F A+ 1* De rementa el ontenido de A F A� 1Opera iones de Desplazamiento* Desplaza a la dere ha el ontenido de A F A� 1* Desplaza a la izquierda el ontenido de A F A� 1Opera iones Aritméti as* Suma F A+B* Resta F A� B* Multipli a ión F A �B* División F A� BOpera iones Lógi as* AND F A ^B* OR F A _B* XOR F A� B* NOT F A

Page 271: Principios de Diseño Digital (UDO)

10.3. PROCESOS ITERATIVOS UNIDIMENSIONALES 24510.3. Pro esos Iterativos UnidimensionalesUn Pro eso Iterativo es aquel que exhibe ara terísti as ombina ionales yse uen iales, donde una opera ión ombina ional es repetida un número de ve esde manera se uen ial.Los pro esos iterativos pueden ser realizados alternativamente por lógi a ombina ional y/o se uen ial, que envuelven una suerte de ompromiso entredistribu ión en el espa io (desarrollo paralelo) y distribu ión en el tiempo(desarrollo en serie).10.3.1. Informa ión distribuida en el espa io y en el tiempoPara des ribir estas tenden ias usaremos omo ejemplo un sumador binario de4 bits, partiendo del sumador ompleto de 1 bit.De la lógi a ombina ional sabemos que olo ando 4 sumadores ompletos de1 bit en as ada podemos onstruir el sumador de 4 bits. La �gura 10.1 ilustra el on epto de distribu ión en el espa io.X0 Y0

SC

S0

X1 Y1

SC

S1

X2 Y2

SC

S2

X3 Y3

SC

S3

0C0Figura 10.1: Sumador binario on distribu ión en el espa ioUn pro eso iterativo también puede ser representado en la forma dedistribu ión en el tiempo. El método de suma binaria on "lápiz y papel" esun pro eso se uen ial denominado suma serial, en el ual el pro eso ombinatoriode sumar dos números de un bit, junto on el a arreo, es repetido un número �nitode ve es (�gura 10.2).La opera ión bási a es la suma xi+yi+ i , para i = 0:;3 y on 0 = 0, realizadapor un sumador ompleto, produ iendo omo salida si y i+1. En ada estado delpro eso ( olumna), las entradas xi e yi, junto on el a arreo del estado presente i,son sumadas para produ ir una salida si y el a arreo del próximo estado i+1. Deesta manera, la suma serial puede ser realizada por lógi a se uen ial sin róni a yde�nida por un diagrama y tabla de estados, orrespondientes a una ir uito Mealypara la salida si y Moore para el a arreo i+1, omo se muestra a ontinua ión(�gura 10.3 y tabla 10.2). Este es un pro eso de suma distribuido en el tiempo y, evidentemente, no es la úni a forma de resolverlo.

Page 272: Principios de Diseño Digital (UDO)

246X3 X2 X1 X0Y3 Y2 Y1 Y0S3 S2 S1 S0

C4 C3 C2 C1

0

Figura 10.2: Pro eso de Sumac=0 c=1

11/0

00/1

01,10/0

11/1

01,10/1

00/0

xy/s

Figura 10.3: Diagrama de Estados de un sumador serial de 1 bit.La idea que se utiliza es muy sen illa. Se asume omo a arreo de entrada elestado presente de la máquina. Así se suman las dos entradas x e y junto on elvalor del estado presente. La salida Mealy es la suma y el estado futuro representaal a arreo de salida.Cuadro 10.2: Tabla de estados para el sumador serial de 1 bitE.F. / SumaE.P. xy A arreoQ 00 01 11 10 o0 0/0 0/1 1/0 0/1 01 0/1 1/0 1/1 1/0 1Por ser un ir uito se uen ial de dos estados se resuelve on solo un �ip - �op(usaremos tipo D). Observe que ualquier opera ión de suma toma un i lo dereloj. A ontinua ión hallaremos las expresiones algebrai as para la ex ita ión del�ip - �op y las salidas. o = Q

Page 273: Principios de Diseño Digital (UDO)

10.3. PROCESOS ITERATIVOS UNIDIMENSIONALES 247s = �(1; 2; 4; 7) = Q� x� yD = �(3; 5; 6; 7) = xy +Qy +QxRe ordemos que el a arreo de entrada ini ial, en un pro eso de suma, debeser siempre 0. Enton es, nuestro sistema debe omenzar a operar siempre en elestado = 0. Para garantizar este estado ini ial modi� aremos nuestro diseñopara obtener un sumador serial de un bit on ontrol (Reset) sobre la línea dea arreo ini ial, así omo una señal de habilita ión (�gura 10.4 y tabla 10.3).c=0 c=1

1011/0

1000/1

x001,x010/0

x000,x1xx/0

ERxy/s

1011/1

11xx/0

1001,1010/1

Figura 10.4: Diagrama de Estados de un sumador serial de 1 bit on entrada dereposi ión y habilita ión.Cuadro 10.3: Tabla de estados para el sumador serial de 1 bit on entrada dereposi ión E.F. / SumaE.P. ERxy A arreoQ 1000 1001 1011 1010 11xx 0xxx o0 0/0 0/1 1/0 0/1 0/0 0/0 01 0/1 1/0 1/1 1/0 0/0 1/0 1 o = Qs = �(9; 10; 24; 27) = ER(Q� x� y)D = �(11; 16; 17; 18; 19; 20; 21; 22; 23; 25; 26; 27) = ER(xy +Qy +Qx) + EQA partir de este punto, o desde el sumador ompleto ombinatorio de 1bit, podemos emplear la té ni a de diseño de bloques fun ionales para realizarun sumador ompleto de 4 bits. Debemos evaluar, al menos, on las siguientes onsidera iones :

Page 274: Principios de Diseño Digital (UDO)

248

E

x

y

R

s

c

ClkNotas: − Estado Presente = Acarreo de Entrada − Estado Futuro = Acarreo de Salida

Q

Q’

D

Figura 10.5: Sumador serial de 1 bit on entrada de reposi ión.

Page 275: Principios de Diseño Digital (UDO)

10.4. MÁQUINAS DE ESTADO ALGORÍTMICO 249Ne esidad de dos registros de desplazamiento on arga paralela paraguardar X e Y , y presentar uno a uno los bits xie yi al sumador serialque a abamos de diseñar.Ne esidad de un registro on arga serial para alma enar los resultadospar iales si.Ne esidad de un sistema de reloj para argar y desplazar los registros, así omo a tivar el �ip �op.Ne esidad de un ontador de bits que indique el �nal del pro eso.Ne esidad de un sistema de ontrol para manejar las señales de opera iónde los registros y el reset del �ip �op en el estado ini ial (a arreo en ero alini io de la suma).De manera intuitiva, omo sugiere el diseño en bloques fun ionales, es posibleabordar la tarea, pero un método sistemáti o resultaría mu ho más onveniente,y este nos lo propor iona las Máquinas de Estado Algorítmi o.10.4. Máquinas de Estado Algorítmi oLa primera onsidera ión de diseño, que apli a en términos generales a ualquier problema, independientemente de su naturaleza, es dividir el sistema,hasta donde sea posible, en pequeños subsistemas uya realiza ión sea de menor omplejidad. Posteriormente se elabora la inter onexión y sin roniza ión de todoslos elementos.Desde el punto de vista de la lógi a ir uital una máquina debe dividirse hastalograr que ada submáquina generada pueda realizarse on algún elemento físi o(hardware) previamente onstruido. Así podemos estable er un enfoque de diseñopro urando separar, en primera instan ia, la informa ión digital en dos se iones:Datos y Control. La Se ión de Datos, o Pro esador de Datos, lo onstituyen lainforma ión y los elementos que la pro esan mediante opera iones lógi as y /o aritméti as realizadas on lógi a ombinatoria (Compuertas, Elementos MSI,PLD's , et .) y / o lógi a se uen ial (pequeños ir uitos se uen iales). Por otraparte, la Se ión de Control o Pro esador de Control, supervisa las opera iones ysus se uen ias, obviamente realizado mediante ir uitos se uen iales. La rela iónentre la Se ión de Datos y la Se ión de Control se muestran en la �gura 10.6.La Se ión de Control es un ir uito se uen ial que usando las señales externasy las ondi iones de estado del Pro esador de Datos, omo variables de de isión,determina la se uen ia de los omandos de ontrol para que el pro esador de

Page 276: Principios de Diseño Digital (UDO)

250Procesadorde Control

Procesadorde Datos

EntradasExternas

Salidade Datos

Comandos

Datos

EstatusFigura 10.6: Diagrama de Bloques de una ASMdatos eje ute las opera iones ne esarias, y además, determina el estado siguientedel mismo subsistema de ontrol.Las se uen ias de ontrol y las tareas de pro esamiento de datos se espe i� anmediante un algoritmo de hardware, que permite resolver ada fun ión delsistema on algún dispositivo físi o ( ir uitos integrados). Se utilizan, enton es,los llamados Diagramas ASM, los uales des riben la se uen ia de eventos, lasopera iones de pro esamiento de datos y las rela iones de tiempo entre los estadosde un ontrolador se uen ial y los eventos que o urren uando se pasa de un estadoa otro.Un Diagrama ASM está ompuesto por la unión de tres elementos bási os(�gura 10.7):− Operaciones de Registro− Salidas tipo Moore

Nombre Codigo Binario

Casilla de Estado

Condicion0 1

Casilla de Decision

− Operaciones de Registros− Salidas tipo Mealy

Casilla Condicional

Figura 10.7: Elementos de un Diagrama ASM1. Casilla de Estado.Cada Casilla de Estado posee :a) Un nombre simbóli o y un ódigo binario.b) Opera iones de registro a realizar en este estado. ) Salidas tipo Moore que determinarán a iones en la se ión de datos.

Page 277: Principios de Diseño Digital (UDO)

10.4. MÁQUINAS DE ESTADO ALGORÍTMICO 251d) Una salida inmediata de a ión, desde su estado presente, representadapor una transi ión :1) In ondi ional al estado próximo del algoritmo de ontrol, o2) Condi ional al estado siguiente, dependiendo de las entradas.2. Casilla de De isión.La Casilla de De isión des ribe el efe to de las entradas al sistemade ontrol, de�niendo la traye toria de eje u ión, de a uerdo al valor lógi ode la ondi ión, verdadera (1) o falsa (0).3. Casilla Condi ional.En la Casilla Condi ional (dependiente del estado presente y de lasentradas) se espe i� an las opera iones de registros y/o las posibles señalesde salida tipo Mealy, que se generan en un estado dado, siempre que sesatisfaga la ondi ión de entrada proveniente de una asilla de de isión.En la �gura 10.8 mostramos un ejemplo de Diagrama ASM :C

R 0

S1T0 01

F AT1 10

0 1

Figura 10.8: Ejemplo de un Diagrama ASMEn este ejemplo se de�ne una máquina se uen ial de dos estados (T0 y T1). La asilla de estado T0 espe i� a una señal de salida S1, tipo Moore, generada porel ontrol que se a tivará ada vez que la máquina se en uentre en este estado.Mientras permane e en T0 el ontrol veri� a la validez de la entrada C. Si estaes a tiva (C = 1), entones el registro R se despeja a ero, en el mismo i lo de

Page 278: Principios de Diseño Digital (UDO)

252reloj. Por el ontrario, si C está ina tiva (C = 0), R permane e sin ambio. En ualquier aso, el próximo estado será T1, donde el ontenido del registro A será opiado sobre el registro F, en el próximo i lo de reloj.Todas las opera iones que se realizan en un i lo de reloj están englobadas enlo que se denomina Bloque ASM, distinguidos on líneas punteadas en el ejemplo.Cada Bloque ASM onsta de una Casilla de Estado y ualquier antidad(in luso ero) de asillas ondi ionales y de de isión. De esta forma, un DiagramaASM está formado por uno o más Bloques ASM. Obviamente los Diagramas ASMpresentan mayor antidad de informa ión que los Diagramas de Estado, los uales are en de la informa ión sobre las opera iones de registro.El Diagrama ASM, del ejemplo anterior, nos da una lara idea de la se iónde datos de la máquina, aunque no nos indi a el número de bits de los registros.Existen tres registros : A, F y R, en donde la salida de A está one tada a laentrada de F. No obstante, utilizaremos una on�gura ión de un bus de datos.Además, se requieren ontrolar la reposi ión (Reset) de R (RR), la arga paralelade F (LF ) y la habilita ión de salida de A (OA).La se ión de Control estará formada por un ir uito se uen ial de dos estados,los uales arbitrariamente hemos odi� ado 01 y 10 , forzando la utiliza ión dedos �ip �ops, aunque pudo haber sido resuelto on sólo uno.Dire tamente del diagrama ASM obtendremos las e ua iones de ex ita ión delos �ip �ops, así omo las salidas de este ha ia la se ión de datos.T0 = Q1Q0T1 = Q1Q0D1 = T0D0 = T1S1 = T0LF = T1OA = T1RR = CT0A partir de estas e ua iones podemos onstruir el diagrama esquemáti o denuestra máquina (�gura 10.9).Observe que el sistema en el arranque debe quedar en T0, situa ión que se debegarantizar en el en endido de la máquina o on alguna señal externa adi ional.

Page 279: Principios de Diseño Digital (UDO)

10.4. MÁQUINAS DE ESTADO ALGORÍTMICO 253R L O

R

R L O

F

R L O

A

Reg.Q1 D1Q0 D0

O3O2 A1O1 A0O0

Dec 2 a 4Notas: − Se ha omitido el reloj en todos los registros − No se han provisto controles para todas las senales

T1T0

C

S1

Figura 10.9: Cir uito del ejemplo de un Diagrama ASMDe lo ontrario, debe existir un medio orre tor, no onsiderado, en aso de quese ini ie en algún estado que no es parte del diagrama (00 y / o 11).Regresemos, ahora, al problema del sumador binario. Hasta el momento hemosdesarrollado una unidad bási a para realizar la suma binaria de un bit de maneraserial (también en paralelo), la que se onstituirá en la base de la se ión de datos.Sin embargo, está debe ompletarse para alma enar los resultados par iales, y debedesarrollarse por ompleto la se ión de ontrol. De esta forma, para a ometer latarea de�niremos las primeras ne esidades generales (�gura 10.10):Un sistema sumador de un bit on apa idad de generar la suma par ial yel a arreo y retener este último (lo que desarrollamos anteriormente).Poder ontrolar el a arreo de entrada (0) para la primera suma.Un registro de arga paralela y desplazamiento serial (X ) para guardar elnúmero X de n (4) bits.Un registro de arga paralela y desplazamiento serial (Y ) para guardar elnúmero Y de n (4) bits.Un registro de arga serial y desplazamiento serial (F ) para guardar losresultados par iales si de n (4) bits.Un ontador (Conta) on arga paralela o reposi ión (Reset) de n (4) bits,que nos indique el avan e del pro eso.

Page 280: Principios de Diseño Digital (UDO)

254

nPLCD

Contador

0Comparador Fin

n−1 ... 1 0

PL

SHR

SumadorSerial 1b

x y

co s

R

Control de la cantidad de bits a sumar

Procesador de Datos

* Se ha omitido el reloj de todos los registros

yx

n−1 ... 1 0

PL

SHR

DRF

X Y

n−1 ... 1 0

RF

SLR

Resultado

ESSRSS

E

Figura 10.10: Pro esador de Datos de un Sumador Serial de n bitsUn omparador binario que nos indique el �nal del pro eso (n bits han sidopro esados).Planteemos el algoritmo que operará esta máquina, para lo ual supondremos queexistirá una señal I que ini ie el pro eso y otra RG que repondrá el sistema a suestado ini ial, en ualquier momento:Estado T0Sí (Ini io = 1 y RG = 0) enton es {vaya al estado T1} de lo ontrario {vaya al estado T0}Estado T1Cargue el ontador on número de bits (Conta = n).Cargue los registros X e Y on los valores de los datos externosLimpie el sumador binario de un bitLimpie el registro F que alojará el resultadoSí (RG = 0) enton es {Sí (Conta = 0) enton es {vaya al estado T4 (Fin)} de lo ontrario {vaya al estado T2

Page 281: Principios de Diseño Digital (UDO)

10.4. MÁQUINAS DE ESTADO ALGORÍTMICO 255}} de lo ontrario {vaya al estado T0}Estado T2Sume los valores en la entrada del sumador serial de 1 bitSí (RG = 1) enton es {vaya al estado T0} de lo ontrario {vaya al estado T3}Estado T3Cargue serialmente, por la dere ha, el registro F on siDespla e, a la dere ha, los registros X e Y para que sus salidasqueden a la entrada del sumadorDe remente el ontador (Conta = Conta� 1)Sí (RG = 0) enton es {Sí (Conta = 0) enton es {vaya al estado T4 (Pro eso �nalizado on resultado enF y a arreo i+1)} de lo ontrario {vaya al estado T2}} de lo ontrario {vaya al estado T0}Estado T4Fin = 1Sí (RG = 1) enton es {vaya al estado T0} de lo ontrario {vaya al estado T4 (permanez a en lavado en el estadode �naliza ión)}Tradu iremos este algoritmo en un Diagrama ASM (�gura 10.11):Desde el Diagrama de ASM (�gura 10.11) podemos plantear dire tamente lase ua iones de los omandos (al Pro esador de Datos) y salidas del Pro esador deControl:

Page 282: Principios de Diseño Digital (UDO)

256I

X DatoXY DatoY

Conta n

SS1b 0F 0

RG

T0

RG

Conta

s x+y

RG

X SHR(X)Y SHR(Y)Conta Conta − 1

F SHR(F)

RG

Conta

Fin 1

RG

0

T1

1

0

1

1

0

T2

1

0T3

1

0

1

1

0

0

T4

1 0Figura 10.11: Diagrama ASM para el Sumador Serial de n bits

Page 283: Principios de Diseño Digital (UDO)

10.4. MÁQUINAS DE ESTADO ALGORÍTMICO 257PLConta = T1 Carga paralela del Contador de bitsPLX = T1 Carga paralela del Registro XPLY = T1 Carga paralela del Registro YRSS1b = T1 Reset del Sumador Serial de 1 bitRF = T1 Reset del Registro FESS1b = T2 Habilita ión del Sumador Serial de 1 bitSLRF = T3 Carga Serial y desplazamiento a la dere ha de FSHRX = T3 Desplazamiento a la dere ha de XSHRY = T3 Desplazamiento a la dere ha de YCDConta = T3 De remento del ContadorFin = T4 Salida Moore indi ando Final del Pro esoFaltan por de�nir las e ua iones de ex ita ión de la Unidad de Memoria delPro esador de Control. Empleando la siguiente odi� a ión de estados:T0 = 000T1 = 001T2 = 011T3 = 010T4 = 111donde (por ser 5 estados, se ha empleado una unidad de memoria de 3 bits dean ho) podemos plantear estas e ua iones:D2 = T3RG (Conta) + T4RG+ T1RG (Conta)D1 = T1RG(Conta) + T3RG(Conta) + T2RG+ T3RG (Conta) + T1RG (Conta)D0 = T0RGI + T1RG(Conta) + T3RG(Conta) + T3RG (Conta) + T1RG (Conta)reordenando y minimizando,D2 = T1RG (Conta) + T3RG (Conta) + T4RGD1 = T1RG+ T2RG+ T3RGD0 = T0RGI + T1RG + T3RGObserve que los estados (Ti) pueden obtenerse dire tamente de la salida de unde odi� ador (3 a 8). Además, RG a ompaña a ualquier Ti en ada produ to. Deesta manera, podemos usar RG omo la entrada habilitadora del de odi� ador yredu ir las expresiones de ex ita ión a:

Page 284: Principios de Diseño Digital (UDO)

258 D2 = T1 (Conta) + T3 (Conta) + T4D1 = T1 + T2 + T3D0 = T0I + T1 + T3Finalmente, el Pro esador de Control quedaría omo se muestra en la �gura10.12:n−1 ... 1 0

PL

SHR

SumadorSerial 1b

x y

co s

R

Q2 D2Q1 D1Q0 D0

A2A1A0

O7O6O5O4O3O2O1O0

Dec 3 a 8T4

T3T2

T1

ERG

I T0

T1T2T3T4

PLContaPLXPLYRSSRF

SLRFSHRXSHRYCDConta

Ess

Fin

Control de la cantidad de bits a sumar

Procesador de Datos

* Se ha omitido el reloj de todos los registros

yx

n−1 ... 1 0

PL

SHR

DRF

X Y

n−1 ... 1 0

RF

SLR

Resultado

ESSRSS

E

nPLCD

Contador

0Comparador Fin

Procesador de ControlFigura 10.12: Diagrama esquemáti o del Sumador Serial de n bits

Page 285: Principios de Diseño Digital (UDO)

10.4. MÁQUINAS DE ESTADO ALGORÍTMICO 259Es importante resaltar que la se ión de ontrol permane e inta ta si en lugarde pro esar n bits se suman m bits. Sólo deben asegurarse que los registros, de lase ión de datos, tengan la apa idad su� iente para alma enar la informa ión.Terminaremos esta breve exposi ión sobre ASM resolviendo un diseño demayor nivel de omplejidad, donde utilizaremos omo parte del Pro esador deDatos, nuestro sumador serial de n bits re ién realizado.Problema:Se desea diseñar un multipli ador binario para números de n bits P = A �B,por el método de sumas su esivas.Con eptualiza ión:El pro eso de multipli a ión por sumas su esivas impli a sumar elnúmero A, la antidad de ve es indi ada por B. El resultado par ialdebe alma enarse en P, en la medida que B se de rementa hastaal anzar ero, indi ando el �n del pro eso. En este momento, P tieneel resultado �nal. Al ini io debe garantizarse que P esté en ero.Pro esador de Datos (�gura 10.13):Algoritmo de Control:Estado T0Sí (RM = 0) enton es {Sí (IM = 1) enton es {vaya al estado T1} de lo ontrario {vaya al estado T0}} de lo ontrario {vaya al estado T0}Estado T1Cargue los registros A y B on los valores de los datos externosLimpie el registro P que alojará el resultadoSí (RM = 0) enton es {Sí (A = 0) enton es {vaya al estado T6 (Fin)} de lo ontrario {

Page 286: Principios de Diseño Digital (UDO)

260nIRS

SumadorSerial

Suman n−1 ...1 0

X Y

FS

APL

PPLR

BPLD

0 Comparador

FMFigura 10.13: Diagrama del Pro esador de Datos del Multipli ador por sumassu esivas Sí (B = 0) enton es {vaya al estado T6 (Fin)} de lo ontrario {vaya al estado T2}}} de lo ontrario {vaya al estado T0}Estado T2Reset al Sumador Serial de n bits.Sí (RM = 1) enton es {vaya al estado T0} de lo ontrario {vaya al estado T3}Estado T3Ini ie Sumador Serial de n bits.Sí (RM = 1) enton es {vaya al estado T0} de lo ontrario {

Page 287: Principios de Diseño Digital (UDO)

10.4. MÁQUINAS DE ESTADO ALGORÍTMICO 261vaya al estado T4}Estado T4// Espera por el �n de la sumaSí (RM = 1) enton es {vaya al estado T0} de lo ontrario {Si (FS = 1) {vaya al estado T5} de lo ontrario {vaya al estado T4}}Estado T5Guarde resultado de la suma par ial en PDe remente BSí (RM = 1) enton es {vaya al estado T0} de lo ontrario {Sí (B = 0) enton es {vaya al estado T6 (Fin de la multipli a ión)} de lo ontrario {vaya al estado T2 (Ini ia una nueva suma)}}Estado T6FM = 1Sí (RM = 1) enton es {vaya al estado T0} de lo ontrario {vaya al estado T6 (en lavado)}Requerimientos bási os :A la luz del Diagrama ASM, podemos notar que ha apare idola ne esidad de olo ar un omparador para el registro A. De estamanera, los requerimientos bási os quedarán omo se listan:Registro A de n bits, on arga paralela

Page 288: Principios de Diseño Digital (UDO)

262 Registro ontador ( on uenta des endente) B de n bits, on arga paralelaRegistro P de 2*n bits on arga paralelaSumador binario (usaremos nuestro diseño anterior) de 2*n bitsComparador o arreglo ombinatorio para determinar uando Aes ero.Comparador o arreglo ombinatorio para determinar uando Bes ero.Diagrama ASM (�gura 10.14):E ua iones de Comandos y salidas:PLA = T1 Carga paralela del Registro APLB = T1 Carga paralela del Registro BRP = T1 Reset del Registro PRS = T2 Reset al Sumador SerialIS = T3 Ini io de la Suma SerialPLP = T5 Carga paralela del Registro PDB = T5 De remento del Registro BFM = T6 Salida Moore indi ando Final del Pro esoAsigna ión de Estados (tomada dire tamente de la salida de unde odi� ador 3 a 8): T0 = 000T1 = 001T2 = 010T3 = 011T4 = 100T5 = 101T6 = 110E ua iones de Ex ita ión del ControlD2 = RMT3 +RMFST4 +RM(FS)T4 +RMT1[(A = 0) + (B = 0)℄ +RM(B = 0)T5 +RMT6D1 = RM(A = 0)(B = 0)T1 +RM(B = 0)T5 +RMT2 +

Page 289: Principios de Diseño Digital (UDO)

10.4. MÁQUINAS DE ESTADO ALGORÍTMICO 263RM

T0

IM

A DatoAB DatoB

Conta n

P 0

RM

A=0

B=0

RM

RM

RM

FS

T2RS

RM

P P + AB B − 1

T5

B=0

RM

T1

1

0

1

0

1

0

0

0

0

1

T3IS

1

0T4

1

00

T6FM

0

1

0

1

1

0

1

1

1

Figura 10.14: Diagrama ASM para el Multipli ador Serial de n bits

Page 290: Principios de Diseño Digital (UDO)

264 RM(B = 0)T5 +RMT6D0 = RMT0 +RMT2 +RM(FS)T4Nuevamente podemos usarRM omo habilitador del de odi� ador,y redu ir las e ua iones a:D2 = T3 + FST4 + (FS)T4 + T1[(A = 0) + (B = 0)℄ + (B = 0)T5 + T6D1 = (A = 0)(B = 0)T1 + (B = 0)T5 + T2 + (B = 0)T5 + T6D0 = T0 + T2 + (FS)T4�nalmente, minimizando y re ordando que (B = 0) la hemos llamadoFM , obtenemos:D2 = (A = 0)T1 + (FM)T1 + T3 + T4 + (FM)T5 + T6D1 = (A = 0)(FM)T1 + T2 + T5 + T6D0 = T0 + T2 + (FS)T4Pro esador de Control (�gura 10.15):

Page 291: Principios de Diseño Digital (UDO)

10.4. MÁQUINAS DE ESTADO ALGORÍTMICO 265APL

nIRS

SumadorSerial

Suman n−1 ...1 0

X Y

FS

BPLD

0 Comparador

FM

PPLR

0 Comparador

A=0

FS

O7O6O5O4O3O2 A2O1 A1O0 A0 E

Dec

Q2 D2Q1 D1Q0 D0

PLAPLBRP

PLPDB

RS

IS

FM

MR

A=0

FM

Figura 10.15: Diagrama del Pro esador de Datos y Control del Multipli ador porsumas su esivas

Page 292: Principios de Diseño Digital (UDO)

266

Page 293: Principios de Diseño Digital (UDO)

Capítulo 11Introdu ión a los Lenguajes deDes rip ión de Hardware (HDL).11.1. Introdu ión"Un dibujo di e más que mil palabras".Esto ha sido una verdad ampliamente pra ti ada y a eptada. En espe í� o,y en lo que on ierne a nuestro ampo, es el amino a seguir en el esfuerzo dediseño de sistemas digitales. Por años, y nosotros seguimos esta premisa, uno delos pasos �nales en la síntesis de sistemas digitales es la obten ión de un DiagramaEsquemáti o, espe ie de dibujo que informa (o debería informar) de la arquite turay fun ionalidad de un ir uito digital.En su aspe to más bási o, un buen Diagrama Esquemáti o, nos debería indi ar laramente los tipos de opera ión lógi a que se realizan, una idea del osto de suimplanta ión y, evidentemente, el objetivo �nal del diseño. Re ordemos a manerade ejemplo (�gura 11.1).

y

z

c

a

b

Figura 11.1: Diagrama Cir uital267

Page 294: Principios de Diseño Digital (UDO)

268¾Qué ha e este ir uito?. Tendría que estar bastante laro: Es un sumador ompleto de un bit. Feli ita iones a quienes lo rela ionaron antes de leer estalíneas. Podemos de ir, enton es, que sería mejor plantear, en nuestro aso, que:"Un dibujo, a ompañado de algunas palabras, di e más que sólo mil palabras".Bien, planteemos otro aso (�gura 11.2).y

c

a

b

z

Figura 11.2: Diagrama Cir uitalAhora se apre ia un esquemáti o, que on muy po as diferen ias on respe toal anterior, no es tan bueno omo la experien ia nos ha enseñado. Mejor nuestrodi ho quedaría: "Un buen dibujo, a ompañado de algunas palabras, di e más quesólo mil palabras".Finalmente, y adonde nos interesa llegar en este tema, mostraremos otro aso(�gura 11.3).Ahora se apre ia un esquemáti o mas poblado de omponentes que, aunquemuy ordenado y sen illo, se ha e muy di� ultoso obtener rápidamente algunainforma ión sobre su opera ión. ¾Qué tal si intentamos des ribir este sistema onalgo pare ido a lo siguiente?Module Comparador(F, A, B); // De�ni ión de un módulo de opera ióninput [3 : 0℄ A, B; // Def. de entradas de 4 bits de an hooutput F; // Def. de la salida de 1 bit de an hoassign F = (A >B); // Asigna resultado de la ompara iónendmodule // Fin del Módulo

Page 295: Principios de Diseño Digital (UDO)

11.1. INTRODUCCIÓN 269A3 B3 A2 B2 A1 B1 A0 B0

FFigura 11.3: Diagrama Cir uital de un omparador de 4 bits

Page 296: Principios de Diseño Digital (UDO)

270¾Cómo quedaría el esquemáti o si la ompara ión fuese entre números de 16bits?. Observe los ambios en la de�ni ión de la des rip ión modular.Module Comparador(F, A, B); // De�ni ión de un módulo de opera ióninput [15 : 0℄ A, B; // Def. de entradas de 16 bits de an hooutput F; // Def. de la salida de 1 bit de an hoassign F = (A >B); // Asigna resultado de la ompara iónendmodule // Fin del MóduloCompletaremos, ahora, nuestro di ho: "Un buen dibujo, a ompañado dealgunas palabras, normalmente di e más que sólo mil palabras".Resulta evidente que uando la omplejidad del sistema aumenta, losDiagramas Cir uitales a nivel de ompuertas pierden su objetivo bási o deexpresar on sen illez y de forma inequívo a la opera ión del ir uito. Veíamosesto, uando diseñamos mediante Bloques Fun ionales. En este momento vienenen nuestro auxilio los Lenguajes de Des rip ión de Hardaware (HDL).11.2. Lenguajes de Des rip ión de Hardware(HDL)Los Lenguajes de Des rip ión de Hardware, una suerte de lenguajes deprograma ión, les permiten a los diseñadores des ribir los omponentes de un ir uito mediante texto, en lugar de un esquemáti o.Realmente posibilitan mu ho mas que simplemente des ribir. Si observamoslas de�ni iones anteriores, no existe una des rip ión del ir uito, sino un nivel deabstra ión fun ional. Esto se ono e omoDiseño a nivel del Comportamiento. Eneste nivel no se brinda dire tamente ninguna informa ión sobre la estru tura del ir uito que �nalmente ha de implantarse. Sin embargo, diferentes herramientasadi ionales, normalmente basadas en Inteligen ia Arti� ial, bus an expresionesminimizadas a nivel de las ompuertas y los transistores (nivel de onmuta ión),que omenzando a nivel fun ional ( omportamiento) arriban a una malla deprograma ión en estado sólido ( ir uito integrado).Otros niveles de diseño no son ajenos a estos lenguajes. Por ejemplo, podríamosexpresar el omparador siguiendo una des rip ión mas real del ir uito, basadosen primitivas (pequeñas unidades internamente de�nidas) y módulos fun ionalesde�nidas por el diseñador, omo se apre ia a ontinua ión:

Page 297: Principios de Diseño Digital (UDO)

11.3. UN POCO DE HISTORIA 271Module C_1b(o0, o1, i0, i1); // Def. mód. omparador de 1 bitinput i0, i1; // Entradas al omp. de 1 bitoutput o0, o1; // Salidas del omp. de 1 bitassign o0 = i0&i1; // Salida mayor queassign o1 = ~�(i0 ^ i1); // Salida igual queendmoduleModule Comparador(F, A, B); // Módulo omparador de 4 bitsreg [3 : 0℄ A, B; // Def. de entradas de 4 bitswire F; // Def. de la salida (1 bit)wire [3 : 0℄ m, i; // Dos buses (4 bits /u) para one tar las salidasde los omparadores de 1 bitC_1b 3(m[3℄; i[3℄; A[3℄; B[3℄); // Comparador de 1 bit para pos. 3C_1b 2(m[2℄; i[2℄; A[2℄; B[2℄); // Comparador de 1 bit para pos. 2C_1b 1(m[1℄; i[1℄; A[1℄; B[1℄); // Comparador de 1 bit para pos. 1C_1b 0(m[0℄; i[0℄; A[0℄; B[0℄); // Comparador de 1 bit para pos. 0assign F = m[3℄ j (i[3℄&m[2℄) j // Resultado de la ompara ión,(i[2℄&m[1℄) j operados on ompuertas(i[1℄&m[0℄ ); AND (&) y OR (|)endmodule // Fin del Módulo11.3. Un po o de historiaLos Lenguajes de Des rip ión de Hardware fueron primeramente desarrollados,aunque no de forma ex lusiva, en la dé ada de los 80, en el siglo pasado. Enesa oportunidad, los diseñadores bus aban herramientas que permitieran diversosniveles de simula ión para ir uitos on una gran antidad de elementos (VeryLarge S ale Integration).Durante la dé ada de los 70 y omienzos de los 80, vieron luz una gran antidad de simuladores orientados a la aptura de esquemáti os (Spi e,Mi ro ap,Design Center, Ele troni Workben h,Or ad, Cir uit Maker, et .), que todavía hoysobreviven por la amplia difusión y valiosa ontribu ión en las áreas de diseñoy edu a ión. Sin embargo, estas herramientas fran amente no sirven para lossistemas a tuales, donde un sólo ir uito posee millones de transistores integrados.A omienzos de los 80, diversos fabri antes desarrollaron en sus laboratoriosherramientas omputa ionales para la representa ión modular, mediante texto,de sistemas omplejos, y poder on ellas apturar, simular, y algunos sintetizar( onstruir), los ir uitos. Entre los más nombrados ya men ionábamos a CUPL,ABEL, PLDesigner, proLogi , VHDL y Verilog. De todos estos, y por diferentes

Page 298: Principios de Diseño Digital (UDO)

272razones (difusión, fa ilidad, presta iones, osto, et .), sólo dos lograron onvertirseen Estándar Interna ional: VHDL (IEEE-1076-1987) y Verilog (IEEE-1364-1995).Como una men ión espe ial, algunos grupos de investiga ión rearonherramientas mixtas para el modelado, simula ión y onstru ión de Cir uitosDigitales. Podemos men ionar a EDA, Ele tri y TkGate, que soportan omoelementos de entrada, aunque sea de manera par ial: la aptura esquemáti a,e ua iones booleanas, o des rip iones HDL y entregan omo salida desde mapasde sili io hasta diagramas esquemáti os y de tiempo.Con los últimos aportes, VHDL y Verilog (Open Verilog International -2000 ) han devenido ha ia los �nales de la dé ada del 90 en Lenguajes deDiseño Fun ional de Hardware, más que de Des rip ión de Hardaware, omoprimeramente se desarrollaron. Ya no tan sólo se modela y simula un ir uito(temas que revisaremos brevemente en este apítulo), sino que además se orrige,se minimiza, se optimiza el espa io físi o y se rea la malla de programa ión �nal(temas que no ubriremos en esta edi ión).11.4. ¾Porqué Verilog?El título de esta se ión ya indi a que optamos por Verilog omo herramientade trabajo. Claramente las diferentes op iones apuntaban a los dos estándar:VHDL o Verilog.Antes de exponer las razones de la de isión, debo a larar que no entraré enel es abroso tema de uál lenguaje es el mejor. Existe abundante literatura sobreeste tópi o, expuesta por verdaderos expertos que de�ende a uno u otro lenguaje.Bási amente las diferen ias más resaltantes, según Gerard Blair, se pueden resumiren: Debido a la sintaxis de los lenguajes, ya que Verilog es muy pare ido a C yVHDL está basado en Ada:� Verilog es más fá il de aprender. Produ e ódigo más ompa to. Suenseñanza y entrenamiento se fa ilita por la antidad de ingenieros que ono en C, omparados on los que ono en Ada.� VHDL es altamente estru turado y permite de�nir fá ilmente nuevostipos de datos, aparte de los previamente de�nidos por IEEE.Verilog tiene dos laras ventajas sobre VHDL:

Page 299: Principios de Diseño Digital (UDO)

11.5. MODELADO Y SIMULACIÓN 273� Permite el modelado a nivel de onmuta ión ( omponentes bási o dela ele tróni a), útil para los diseñadores que bus an explorar nuevos ir uitos.� Asegura que todas las señales son ini ializadas a un valor"des ono ido" ("no-importa"), forzando a que el diseñador propor ionelos me anismos de ini ializa ión lógi a ne esarios para todas las señales(VHDL ini ializa todas las señales a ero, permitiendo el olvido" orriente" de omitir un me anismo de reposi ión global (master reset).VHDL tiene dos laras ventajas sobre Verilog:� Permite la elabora ión ondi ional de módulos (a larado un po o másadelante). Una ondi ión que después de ser usada no quisiera perderse.� Permite me anismos simples para ambiar entre diferentesdes rip iones de un módulo parti ular.Mis razones fueron de índole más prá ti as:Verilog es gratuito y se pueden "bajar" diferentes versiones desde varioslugares de Internet. No en ontré una versión ompleta y gratuita de VHDL, uya utiliza ión fuera "amigable". FreeVHDL aún está bajo desarrollo,en la Universidad de Seúl, y presenta algunos problemas al momentode ompila ión. EDA, también bajo desarrollo, es un tanto in omodo demanejar. Allian e ( ompletamente gratuito), on el ual se han abordadodiseños de poderosos pro esadores omer iales, es extremadamente grande,muy ompleto, pero on es asa do umenta ión.Verilog es sintá ti amente pare ido a C, y C es ampliamente ono ido.Verilog posee ompiladores y simuladores muy sen illos, pequeños y fá ilesde utilizar.Aunque me on�eso un amante de Ada, sobre todo para apli a iones de Sistemasde Control Digital, debí su umbir (aunque no desisto en el trabajo on VHDL) alas presta iones de Verilog.11.5. Modelado y Simula iónLa obten ión del modelo de un sistema o pro eso, una expresión orta y sen illaque reúna las ara terísti as y explique el fun ionamiento de un sistema, es uno delos objetivos más bus ado, y no siempre onseguido, en el ampo de la ingeniería.

Page 300: Principios de Diseño Digital (UDO)

274Como men ionábamos on anterioridad, nuestros modelos grá� os (DiagramasEsquemáti os), son una buena, pero limitada, representa ión de estos. Por ejemplouna ompuerta AND de dos entradas (�gura 11.4) expli a la opera ión de lafun ión boolena de onjun ión, también modelada por la e ua ión algebrai a F =a ^ b ó F = a � b, donde el símbolo "*" representa a la multipli a ión lógi a.Fa

bFigura 11.4: Diagrama Cir uital de una ompuerta ANDEsta opera ión lógi a (and) es una primitiva de Verilog (así omo: nand, or,nor, xor, nxor, buf y not) y, por tanto, no ne esita ser modelada. Sin embargo, paraefe tos de una expli a ión más detallada de la sintaxis del lenguaje, de�niremosun modelo para ella:module otra_AND(s, e0, e1);input e0, e1;output s;assign s = e0 & e1;endmoduleLas expresiones resaltadas en "negrita" forman parte de las palabras reservadasdel lenguaje. La de�ni ión de un módulo está dada por la estru tura:module <nombre_del_módulo>(listado_de_puertos);...endmoduleLos puertos propor ionan un me anismo que permite la omuni a ión delmódulo on otras partes de un ir uito. El listado_de_puertos lo forman lasentradas y salidas del módulo. Estas variables pueden ser del tipo: input (entrada),output (salida) o inout (entrada-salida. Si no está familiarizado on este on eptorevise la do umenta ión sobre los seguidores bidire ionales o "trans eivers"). Por onven ión del lenguaje, en el listado de puertos se olo an primero las salidas.La instru ión assign, produ e una asigna ión ontinua a la variable (del ladoizquierdo del signo "="), y es evaluada y a tualizada ada vez que se produ e un ambio en las variables de entrada. De esta manera, una asigna ión ontinua esutilizada para des ribir un omportamiento ombinatorio instantáneo; es de ir,

Page 301: Principios de Diseño Digital (UDO)

11.5. MODELADO Y SIMULACIÓN 275no se onsidera, por los momentos, ningún aspe to relativo a los retrasos depropaga ión.Hasta aquí po o hemos he ho. El paso natural después de tener un DiagramaEsquemáti o (o una de�ni ión de un modelo textual) es realizar una simula ión,para veri� ar el fun ionamiento del ir uito. En el aso de los simuladoresorientados a la aptura de esquemáti os deben propor ionarse señales deex ita ión, en los puertos de entrada, y dispositivos de visualiza ión, al menos,en los puertos de salida. Por ejemplo, usando Cir uit Maker, de los posiblesinstrumentos de entrada, de idimos emplear un "Se uen iador de Datos Binarios"y, omo elementos visualizadores, tres "puntos de prueba" (�gura 11.5).Figura 11.5: Compuerta AND on "instrumentos" de simula ión.Al momento de eje utar la simula ión se obtiene una ventana de visualiza iónsemejante a la mostrada en la �gura 11.6.

Figura 11.6: Corrida de Simula ión de una ompuerta ANDEn el aso de utilizar Verilog, aparte de la de�ni ión del módulo fun ional serequiere:La de�ni ión de una instan ia del módulo; es de ir un me anismo de llamaday eje u ión (también de sintetiza ión en la oportunidad de obten ión de un ir uito integrado real).La de�ni ión de los parámetros de simula ión: valores ini iales de lospuertos, valores asignados a los puertos de entrada a lo largo del tiempode simula ión.

Page 302: Principios de Diseño Digital (UDO)

276 Indi a ión de las señales a ser supervisadas y mostradasCon estos requisitos, el ódigo fuente que modela y simula nuestro ejemplo sería:Module otra_AND(s, e1, e0); // De�ni ión de un módulo ANDinput e1, e0; // Entradas al módulooutput s; // Salida del móduloassign s = e0& e1; // Asigna ión para la fun iónendmodule // Fin del módulo de de�ni iónModule Prueba_AND(F, a, b); // Def. de módulo para simula iónreg a, b; // Puertos de entrada asignados avariables tipo regwire F; // Puerto de salida asignado avariable tipo wireotra_AND a1(F, a, b); // Instan ia ión de una ompuerta tipo ANDinitial begin // Bloque de ini ializa ióna = 0; // Ini ializa ión del puerto ab = 0; // Ini ializa ión del puerto b$dump�le("and_v d.v d"); // Ar hivo donde se guardaránresultados de la simula ión$dumpvars(1, prueba_and.a1); // Variables que se guardaran(todas las de la ompuerta a1)$monitor("Tiempo=%d , a=%b , // Supervisa un ambio a, b y fb=%b , f=%b", $time, a, b, f); y las guarda y muestra en pantalla#5; $�nish; // A los 5 i los �naliza la simula iónendalways begin // Repita este bloque "por siempre"#1 b =� b; // Cada 1 i lo invierta bendalways begin // Repita este bloque "por siempre"#2 a =� a; // Cada 2 i los invierta aendendmodule // Fin del Módulo de Simula iónLas variables tipo reg (de registro, aunque realmente no lo son) deben re ibirasigna ión de valores de manera explí ita y los onservan hasta que una nueva

Page 303: Principios de Diseño Digital (UDO)

11.5. MODELADO Y SIMULACIÓN 277asigna ión sea he ha. En nuestro ejemplo, las variables a y b son de este tipo,y re iben el valor 0 en la ini ializa ión. Estas variables onservarán este valorhasta que se eje uten modi� a iones de sus asigna iones a lo largo del pro eso desimula ión.Las variables tipo wire orresponden al grupo de redes (net), donde tambiénse en uentras supply0 (0 ó Gnd) y supply1 (1 ó V ). Representan a tualiza iones ontinuas de las salidas, siguiendo a los ambios de la(s) señal(es) que lomaneja(n). Es de ir, no requieren asigna iones explí itas omo en el aso de lasvariables tipo reg.Los tipos de datos que se soportan en estos lenguajes tienen, en primer lugar,una orresponden ia dire ta on los problemas de diseño lógi o; a saber: 0, 1, xy z, donde x representa un valor des ono ido y z a la alta impedan ia. Por otraparte, omo la mayoría de los lenguajes de programa ión, la representa ión denúmeros enteros se realiza de manera trivial, permitiendo además los formatosbinarios, o tales y hexade imalesEl bloque de ini ializa ión, distinguido on la palabra reserva initial, seeje uta sólo una vez, al ini io del programa en tiempo 0. Consiste de un onjunto de estamentos normalmente rela ionados on: ini ializa ión, supervisión("monitoreo"), genera ión de formas de ondas (pulsos de reloj) y pro esos quedeban eje utarse sólo una vez. Pueden existir varios bloques de ini ializa ióndentro de un programa. De ser este el aso, ada uno se eje uta separadamente y deforma on urrente (todos en paralelo, al mismo tiempo). Esta idea de on urren iaes fundamental en los HDL (Ada también) porque la existen ia físi a y el a ionarde los omponentes elé tri os de un ir uito posee esta ara terísti a (no trabajauna ompuerta primero y después otra, todas están a tivas en ualquier instantede tiempo, on epto que no debe onfundirse on el retraso de propaga ión).Los bloques always son similares al de ini ializa ión, pero se repiten ontinuamente, de una forma í li a, hasta que la simula ión es terminada ( onel omando $�nish) o detenida ( on el omando $stop, para trabajar de maneraintera tiva on el simulador).Una simula ión puede ser "monitoreada", mostrando la informa ión en lapantalla (y / u otro dispositivo de salida) a lo largo de la eje u ión, empleandoel omando $monitor, on una sintaxis similar al omando fprint de C. Cada vezque en una variable, estable ida para "monitoreo", se produ e un ambio estaes mostrada. Existen otras alternativas omo el omando $display, sin embargo,este trabaja en tiempos espe í� os. Otro dispositivo de salida normalmente es unar hivo en dis o, para lo ual debe abrirse ($fopen), es ribir sobre él ($monitor y

Page 304: Principios de Diseño Digital (UDO)

278$display lo ha en al igual que $write, $fmonitor, $fdisplay y $fwrite) y �nalmente errase ($f lose).Un aso espe ial, entre otros, es un va iado a ar hivo on algúnformato espe í� o para ser usado on otros programas, por ejemplo devisualiza ión de señales. Para preparar un va iado de la informa ión enformato v s, apaz de ser pro esado por Gtkwave se re urre a los omandos$dump�le("nombre_del_ar hivo") y $dumpvars(nivel_de_profundidad,nombre_de_la_instan ia). Si el nivel de profundidad es 0 se va iarán todas lasseñales jerárqui amente inferiores a la instan ia.Como último omentario sobre la sintaxis de nuestro programa de simula iónde una ompuerta AND, es importante resaltar el ontrol bási o sobre eltrans urrir del tiempo. La onstru ión # retraso introdu e un retardo entre uando un estamento es en ontrado y el momento uando es eje utado. Porejemplo, #2 a =� a indi a que la señal a será invertida de su valor a tualdespués que trans urran dos unidades de tiempo de simula ión. Volveremos onmás profundidad sobre el tema de ontrol de tiempo un po o más adelante.Nos queda ahora eje utar los pasos ne esarios para realizar y ver los resultadosde la simula ión. Para esto seguiremos la eje u ión de los siguientes omandos,desde la línea de entrada en una pantalla de terminal (el ejemplo está he ho usandoI arus Verilog sobre Linux, donde [Parraguez℄$ es el indi ador para a eptar omandos de entrada [prompt ℄). El ar hivo fuente, mostrado anteriormente, seha guardado on el nombre "and.vl".[Parraguez℄$ iverilog -o and.red and.vl[Parraguez℄$ vvp and.red[Parraguez℄$ wave and_v d.v dEl omando iverilog -o and..red and.vl ompila el ar hivo fuente (and.vl) yprepara un ar hivo de salida para simula ión (and.red). La simula ión se realiza on el omando vvp and.red, la genera el ar hivo de va iado (and_v d.v d) ymuestra en pantalla la orrida.Tiempo=0 , a=0 , b=0 , f=0Tiempo=1 , a=0 , b=1 , f=0Tiempo=2 , a=1 , b=0 , f=0Tiempo=3 , a=1 , b=1 , f=1Tiempo=4 , a=0 , b=0 , f=0

Page 305: Principios de Diseño Digital (UDO)

11.6. REFINAMIENTO EN EL CONTROL DEL TIEMPO 279El omando wave and_v d.v d muestra los diagramas de tiempo, ontenidosen "and_v d.v d", de la simula ión (�gura 11.7).Figura 11.7: Corrida de Simula ión de una ompuerta AND, on Verilog11.6. Re�namiento en el ontrol del tiempoObservando uidadosamente las �guras 11.6 y 11.7 se puede apre iar quela salida no sigue exa tamente el mismo omportamiento. La simula ión he ha on el programa orientado a la aptura de esquemáti os retrasa la salida de la ompuerta una unidad de tiempo de simula ión, resaltando que existe un retrasode propaga ión. La simula ión he ha on Verilog propor iona una salida inmediataen rela ión on los ambios en las entradas (no hay indi ado ningún retraso depropaga ión). En realidad Verilog y prá ti amente todos los HDL, poseen un ontrol mu ho más re�nado en uanto al ontrol del tiempo y la o urren ia deeventos, que el que pudieran brindar otro tipo de simuladores. En el programa deejemplo ya hemos empleado uno de estos me anismos (#1 b =� b y #2 a =� a),los uales indi an que las asigna iones de valores deben realizarse una unidad, ydos unidades, de tiempo de simula ión después. Naturalmente, en el programa,esto está referido al ambio de de valores de las entradas y no de la salida.11.6.1. Una introdu ión a los on eptos de temporizado yretardosLos on eptos de temporizado y retardo en el diseño y la simula ión de ir uitosson muy importantes ya que ello permite un grado de realismo a ser in orporadoen el pro eso de modelado.11.6.1.1. RetardosEn Verilog, on el uso de las asigna iones sin espe i� a iones explí itas para lasrestri iones de temporizado y retardo, las salidas, de las primitivas pre-elaboradasy de los módulos de�nidos por el usuario, son todas asumidas omo respuestasinmediatas a los ambios de las entradas (sin retardo o, en el peor de los asos, enun solo in remento del tiempo de simula ión). Esto, laramente, no es su� iente

Page 306: Principios de Diseño Digital (UDO)

280donde el tiempo es un parámetro ríti o del diseño, debido a que la propaga iónde las señales a través de los módulos puede o asionar problemas en la estabilidadde las salidas y disparos al azar (" arreras" y " aminos ríti os"). Algunosdiseños requieren umplir on altas restri iones temporales, espe ialmente los quetrabajan a gran velo idad ( omo los pro esadores), para evitar fun ionamientoserróneos o pérdidas de sin ronismo.En general, los retardos pueden ser modelados de tres formas diferentes, dea uerdo al tipo de nivel de modelado que ha sido utilizado. A saber: nivel de ompuertas, nivel del �ujo de datos y nivel del omportamiento. Aunque no hemosasumido aún estos temas de manera formal, los to aremos brevemente.En el modelado a nivel ompuertas, los retardos están aso iados al tiempode propaga ión de la señal a través de la ompuerta, es de ir a los tiempos de:eleva ión ( ambio ha ia una salida en 1 ), aída ( ambio ha ia una salida 0 ) ydesa tiva ión ( ambio ha ia una salida z ). Los parámetros programables por eldiseñador se en uentran resumidos en la tabla 11.2.Cuadro 11.2: Retardos de Transi ióneleva ión 0; x; z ! 1 aída 1; x; z ! 0desa tiva ión 0; 1; x ! zLa programa ión de ada uno se realiza empleando el ará ter #, junto a laasigna ión fun ional de la ompuerta. Si sólo un valor es espe i� ado, se usa paralos tres retardos. Si dos valores son espe i� ados, estos orresponden a eleva ióny aída; la desa tiva ión se asume omo el menor de los dos. La uarta ategoríade retardo, a la ual el programador no tiene a eso, es el paso a un estadodes ono ido (0; 1; z ! x), y siempre se omputa omo el menor de los tresanteriores. A lararemos on unos ejemplos:otra_AND a1(F, a, b); // Eleva ión = 0, Caída = 0, Desa tiva ión = 0otra_AND #2 a1(F, a, b); // Eleva ión = 2, Caída = 2, Desa tiva ión = 2otra_AND #(2, 3) a1(F, a, b); // Eleva ión = 2, Caída = 3, Desa tiva ión = 2otra_AND #(2, 3, 1) a1(F, a, b); // Eleva ión = 2, Caída = 3, Desa tiva ión = 1El re�namiento en el manejo del tiempo puede llevar in luso a la de�ni ión delos parámetros mínimo, normal y máximo, para ada uno de estos tiempos, onlos uales una de�ni ión puede resultar, por ejemplo, en:

Page 307: Principios de Diseño Digital (UDO)

11.6. REFINAMIENTO EN EL CONTROL DEL TIEMPO 281otra_AND #(1:2:4, 2:3:4, 1:2:3) a1(F, a, b);Es importante men ionar que no todos los ompiladores del lenguaje soportan ompletamente el estándar. Por lo tanto, de a uerdo a la versión que se utili e,no siempre será posible disponer de toda la apa idad de simula ión de Verilog.En el modelado a nivel del �ujo de datos, en lugar de usar el on epto de ompuerta, se emplea la idea de señales o valores. Esta tenden ia permite modelarlos retardos de una manera ligeramente diferente. Aquí los retardos son aso iados on la red (es de ir on variables tipo wire) a través de la ual son transmitidos.Debido a que existen diferentes formas de asignar los retardos a la red, haymétodos orrespondientes para espe i� arlos de manera apropiada.Retardo en la de lara ión de la red.El retardo atribuido a una red puede ser aso iado a la de lara iónde la misma; es de irwire #10 salida;assign salida = e1 & e0;Esto indi a que ualquier ambio en las entradas produ irá un efe toen la salida, retardado 10 unidades de tiempo de simula ión. Si laentradas ambian de valor antes que la asigna ión de la salida hayatomado lugar, enton es serán ignoradas, omo es el aso de pulsos muy ortos en rela ión on la dura ión del retardo. Esto se ono e omoRetardo Iner ial.Asigna ión Regular de Retardo.Este se introdu e para produ ir un retardo sobre una red que yaha sido previamente de larada; es de irwire salida;assign #10 salida = e1 & e0;Esto tiene un efe to similar al aso anterior, determinando el valor de laopera ión (e1 & e0 ) en el momento en que el omando es eje utado, yenton es alma ena el valor antes de asignarlo (en este aso 10 unidadesde tiempo después) a la salida.Asigna ión Implí ita Continua.Ya que una red puede estar implí itamente asignado un valor ensu de lara ión, es posible introdu ir un retardo en esta, antes que laasigna ión tome lugar; es de ir

Page 308: Principios de Diseño Digital (UDO)

282 wire #10 salida = e1 & e0;Esto es efe tivamente una ombina ión de los dos tipos de retardosanteriores.En el modelado a nivel del omportamiento el ir uito se representa por laasigna ión de valores a variables, algunas de las uales representan a la entradas yotras a las salidas del modelo en uestión. Nuevamente hay un número diferentesde tipos de retardo aso iados on los diferentes estilos de programa ión.Control Regular del Retardo.Es el de uso más omún, también ono ido omo Control delRetardo Inter - Asigna iones. Este simplemente espera un número deunidades de tiempo de simula ión antes de ser eje utado; es de ir#10 salida = e1 + e0;Control del Retardo Intra - Asigna iones.Con este tipo de retardos, el valor de (e1 + e0 ) es alma enado en elmomento en que el omando es eje utado, pero el valor no es asignadoa salida sino hasta trans urrido el período de retardo, sin importar quemientras tanto la entradas vuelvan a ambiar o no lo hagan. Este essimilar a los retardos usados en el modelado a nivel del �ujo de datos.salida = #10 e1 + e0;Con estas ara terísti as en mente modi� aremos nuestro ódigo fuente paraprodu ir una simula ión de la ompuerta AND que ontemple un ontrol delretardo intra - asigna ión.Module Prueba_and; // De�ni ión de un módulo para simula iónreg f, a, b; // Puertos asignados a variables tipo regalways f = #1 a & b; // AND de�nida por omportamiento on retardo intra - asigna ióninitial begina = 0;b = 0;$dump�le("and_2.v d");$dumpvars(0, prueba_and); // Todos los niveles

Page 309: Principios de Diseño Digital (UDO)

11.7. ALGUNOS EJEMPLOS DE LÓGICA COMBINATORIA. 283$monitor("Tiempo=%d , a=%b ,b=%b , f=%b", $time, a, b, f);#10; $�nish;endalways #2 b =� b;always #4 a =� a;endmodule // Fin del Módulo de Simula iónEl resultado de esta simula ión se muestra en la �gura 11.8.Figura 11.8: Simula ión de una ompuerta AND, on retardo11.7. Algunos ejemplos de lógi a ombinatoria.Completaremos la primera parte de la introdu ión a los HDL on el modeladoy simula ión de algunos ir uitos de lógi a ombinatoria.11.7.1. Multiplexor 2 a 1Como no debemos olvidar nuestros orígenes, omenzaremos la tarea demodelar y simular un multiplexor 2 a 1 desde un diagrama esquemáti o de di ho omponente (�gura 11.9).11.7.1.1. Modelado y simula ión a nivel de ompuertas// mux_2a1_g.vl// Modelo de un multiplexor 2 a 1, he ho a nivel de ompuertasmodule mux_2_1 (f, en, s, i1, i0);output f;input s, en, i1, i0;wire ws, wsn, wa1o, wa2o;buf (ws, s);

Page 310: Principios de Diseño Digital (UDO)

284and1

and2

s

buf1 not1

ws wsn

wa1o

wa2o

f

en

i1

io

Figura 11.9: Diagrama Esquemáti o de un multiplexor 2 a 1 on entrada dehabilita iónnot (wsn, s);and (wa2o, en, i0, wsn);and (wa1o, en, i1, ws);or (f, wa1o, wa2o);endmodule// Módulo de pruebamodule prueba;reg en, s, i1, i0;wire f;integer i;mux_2_1 mux_p(f, en, s, i1, i0);initial beginenp = 1;sp = 0;i1p = 0;i0p = 0;$dump�le("mux_2a1_g.v d");$dumpvars(0, prueba.mux_p);$monitor ("Tiempo=%d , en=%b , s=%b , i1=%b ,i0=%b , f=%b ", $time, enp, sp, i1p, i0p, fp);for (i = 8; i <16; i = i + 1) begin{enp, sp, i1p, i0p} = i[3:0℄; // Con atena ión ( {} )#1;

Page 311: Principios de Diseño Digital (UDO)

11.7. ALGUNOS EJEMPLOS DE LÓGICA COMBINATORIA. 285end#16 $�nish;endendmoduleEste programa fuente es ompilado, simulado y visualizado (�gura 11.10) on lasiguiente adena de omandosiverilog -o mux_2a1_g.red mux_2a1_g.vlvvp mux_2a1_g.redwave mux_2a1_g.v d

Figura 11.10: Visualiza ión de la simula ión para un mux 2 a 1.11.7.1.2. Modelado y simula ión a nivel del omportamientoEl multiplexor, sin embargo, puede ser modelado desde el punto de vista del omportamiento del dispositivo, de una manera mu ho más abstra ta y redu ida,donde no se des ribe su estru tura interna. Observe y estudie el ódigo siguiente,al ual se le ha eliminado la señal de habilita ión (en):// mux_2a1_ .vl// Modelo de un multiplexor 2 a 1,// modelado a nivel del omportamientomodule mux_2_1 (f, en, s, i1, i0);output f;input s, en, i1, i0;assign f = (s == 1) ? i1: i0;endmodule

Page 312: Principios de Diseño Digital (UDO)

286La senten ia que modela el omportamiento debe leerse de la manera siguiente:Si la línea de sele ión está a tiva (s == 1 ), enton es asígnele a la salida el valorde la entrada 1 (f = i1), de lo ontrario asígnele a la salida el valor de la entrada0 (f = i0). El operador ondi ional del lenguaje (? : ), fa ilita esta des rip ión.Un modelo más elaborado puede obtenerse, anidando el operador ondi ional,para in luir la entrada de habilita ión:// mux_2a1_ .vl// Modelo de un multiplexor 2 a 1// modelado a nivel del omportamientomodule mux_2_1 (f, en, s, i1, i0);output f;input s, en, i1, i0;assign f = (en ==1) ? ( (s == 1) ? i1: i0 ) : z;endmoduleLa senten ia que modela el omportamiento debe leerse de la manera siguiente:Si la línea de habilita ión está a tiva (en == 1 ), enton es: si la línea de sele iónestá a tiva (s == 1 ), enton es asígnele a la salida el valor de la entrada 1 (f = i1),de lo ontrario asígnele a la salida el valor de la entrada 0 (f = i0), de lo ontrarioasígnele a la salida el valor de alta impedan ia. Planteándolo de una forma másordena: Si la linea de habilita ión está a tiva, enton es opere omo en en asoanterior (salida en fun ión de la sele ión), de lo ontrario ina tive el dispositivo.Empleando el mismo modelo de prueba que para el aso de la simula ión a nivelde la ompuertas, obtenemos el ódigo y visualiza ión (�gura 11.11) siguientes:// mux_2a1_ .vl// Modelo de un multiplexor 2 a 1,// modelado a nivel del omportamientomodule mux_2_1 (f, en, s, i1, i0);output f;input s, en, i1, i0;assign f = (en ==1) ? ( (s == 1) ? i1: i0 ) : z;endmodule// Módulo de pruebamodule prueba;reg enp, sp, i1p, i0p;wire fp;

Page 313: Principios de Diseño Digital (UDO)

11.7. ALGUNOS EJEMPLOS DE LÓGICA COMBINATORIA. 287integer i;mux_2_1 mux_p(fp, enp, sp, i1p, i0p);initial beginenp = 1;sp = 0;i1p = 0;i0p = 0;$dump�le("mux_2a1_ .v d");$dumpvars(0, prueba.mux_p);$monitor ("Tiempo=%d , en=%b , s=%b , i1=%b ,i0=%b , f=%b ", $time, enp, sp, i1p, i0p, fp);for (i = 8; i <16; i = i + 1) begin{enp, sp, i1p, i0p} = i[3:0℄;#1;end#16 $�nish;endendmoduleFigura 11.11: Visualiza ión de la simula ión para un mux 2 a 1, modelado a niveldel omportamientoObserve que la salida (f ) está en alta impedan ia (línea a mitad de nivel) uando la señal de habilita ión está desa tivada (en = 0 ).Sin embargo, esta no es la úni a forma de modelar el omportamiento. Observeel ódigo siguiente:// mux_2a1_ 2.vl// Modelo de un multiplexor 2 a 1.// Nivel del omportamiento

Page 314: Principios de Diseño Digital (UDO)

288 // Con asigna ión ondi ionalmodule mux_2_1 (f, en, s, i1, i0);output f;input s, en, i1, i0;reg f;always�(en or s or i1 or i0)if (en == 1)if (s == 1)f = i1;else f = i0;else f = 0;endmoduleHemos in orporado en esta des rip ión dos aspe tos importantes. En primer lugarel operador de ontrol de eventos (�), el ual indi a que ada vez que exista un ambio en ualquiera (o varias) de las señales dadas omo parámetros (en, s,i1 ó i0), deba eje utarse el bloque. Como en este aso no existe una asigna ión ontinua para la salida (f), esta debe de larase omo registro (reg f ) y no omo able (wire f ) para que su valor se sostenga en el tiempo. Las variables tipo regtienen omo ontrapartida que su valor se le debe asignar explí itamente, onlo ual sólo pueden tomar eros ó unos ( uando la habilita ión está desa tivadase ha asignado f = 0 ). En segundo lugar ha apare ido una estru tura if - else,que ontrola el �ujo de la eje u ión de una manera similar a los lenguajes deprograma ión tradi ionales.Una vez más, empleando el mismo módulo de prueba, se muestra el resultadode la simula ión (�gura 11.12).Figura 11.12: Visualiza ión de la simula ión para un mux 2 a 1, modelado a niveldel omportamiento on asigna ión ondi ionalEl método anterior para implementar el multiplexor es difí il de de seguir si elnúmero de entradas aumenta, ya que la estru tura if - else se torna engorrosa y

Page 315: Principios de Diseño Digital (UDO)

11.7. ALGUNOS EJEMPLOS DE LÓGICA COMBINATORIA. 289po o prá ti a. Una ter era forma de modelar a nivel del omportamiento es onla estru tura ase, omo se apre ia en el ódigo que sigue:// mux_2a1_ 3.vl// Modelo de un multiplexor 2 a 1. Uso de estru tura asemodule mux_2_1 (f, en, s, i1, i0);output f;input s, en, i1, i0;reg f;always�(en or s or i1 or i0) ase ({en, s}) // on atena ión de la// habilita ión y sele ión2'b00 : f = 0; // Ina tivo2'b01 : f =0; // Ina tivo2'b10 : f = i0; // A tivo2'b11 : f = i1; // A tivoend aseendmoduleSe ha he ho uso, nuevamente, de la on atena ión de variables ({en, s}), aunqueevidentemente no es ne esario, ya que las estru turas de rami� a ión ( ase, if -else) pueden anidarse. El resultado de la simula ión puede verse en la �gura 11.13.Figura 11.13: Visualiza ión de la simula ión para un mux 2 a 1, modelado a niveldel omportamiento (estru tura ase)11.7.1.3. Modelado y simula ión a nivel fun ionalEl multiplexor también puede ser modelado desde un punto de vista fun ional.En este se ha e una asigna ión ontinua de la salida omo una fun ión booleanade las entradas. Note que aunque no es una des rip ión estru tural del dispositivo,esta se puede obtener fá ilmente desde ella.

Page 316: Principios de Diseño Digital (UDO)

290 // mux_2a1_f.vl// Modelo de un multiplexor 2 a 1. Nivel fun ionalmodule mux_2_1 (f, en, s, i1, i0);output f;input s, en, i1, i0;assign f = (en & s & i1) | (en & �s & i0);endmoduleEl resultado de la simula ión puede apre iarse en la �gura 11.14.Figura 11.14: Visualiza ión de la simula ión para un mux 2 a 1, modelado a nivelfun ional11.7.2. Multiplexor de múltiples salidasEs evidente que el multiplexor permite tomar informa ión desde múltiplesfuentes y, de a uerdo al valor de la sele ión, sólo una de ellas es olo ada a lasalida. Hasta ahora las fuentes de informa ión (entradas) y la salida han sido deun bit. Nos proponemos modelar un dispositivo multiplexor donde las diferentesfuentes de informa ión sean de más de un bit. Naturalmente, la representa ión ir uital en un esquemáti o se ompli a en la medida en que aumenta el an ho dela informa ión. El siguiente programa modela y simula un uádruple multiplexor2 a 1. // 4_mux_2a1.vl// Modelo de un multiplexor uádruple 2 a 1module mux4_2_1 (f, en, s, i1, i0);output [3:0℄ f;input [3:0℄ i1, i0;input s, en;assign f = (en ==1) ? ( (s == 1) ? i1: i0 ) : 4'bzzzz;endmodule

Page 317: Principios de Diseño Digital (UDO)

11.7. ALGUNOS EJEMPLOS DE LÓGICA COMBINATORIA. 291Observe que el ódigo es idénti o al multiplexor simple, modelado a nivel del omportamiento. El úni o ambio es el an ho de la informa ión. Para podersimular, estos pequeñas diferen ias también deben expresarse en el módulo deprueba. Un listado ompleto del ódigo, para modelado y simula ión se muestraa ontinua ión:// 4_mux_2a1.vl// Modelo de un multiplexor uádruple 2 a 1module mux4_2_1 (f, en, s, i1, i0);output [3:0℄ f;input [3:0℄ i1, i0;input s, en;assign f = (en ==1) ? ( (s == 1) ? i1: i0 ) : 4'bzzzz;endmodule// Módulo de pruebamodule prueba;reg [3:0℄ i1, i0;reg en, s;wire [3:0℄ f;integer i;mux4_2_1 mux_p(f, en, s, i1, i0);initial beginenp = 1;sp = 0;i1p = 4'b0101; // Ini ializado a un valor arbitrarioi0p = 4'b1010; // Ini ializado a un valor arbitrario#1;$dump�le("4_mux_2a1.v d");$dumpvars(0, prueba.mux_p);$monitor ("Tiempo=%d , en=%b , s=%b , i1=%b ,i0=%b , f=%b ", $time, enp, sp, i1p, i0p, fp);for (i = 0; i <8; i = i + 1) begin{en, s} = i[2:1℄;#1;end#10 $�nish;endendmodule

Page 318: Principios de Diseño Digital (UDO)

292El resultado de la simula ión puede apre iarse en la �gura 11.15.Figura 11.15: Simula ión para un uádruple multiplexor 2 a 111.7.3. Sumador ompleto de 4 bitsEl siguiente programa modela y simula (�gura 11.16)un sumador ompleto de4 bits: // sum 4b.vl// Modelo de un sumador ompleto de 4 bitsmodule sum 4b ( o, s, a, b);output [3:0℄ s;output o;input [3:0℄ a, b;assign { o, s} = a + b;endmodule// Módulo de pruebamodule prueba;reg [3:0℄ ap, bp;wire [3:0℄ sp;wire p;integer i;sum 4b sum 4b_p( p, sp, ap, bp);initial beginap = 0;bp = 0;#1;$dump�le("sum 4b.v d");$dumpvars(1, prueba.sum 4b_p);$monitor ("Tiempo=%d , a=%d , b=%d , o=%b ,

Page 319: Principios de Diseño Digital (UDO)

11.8. MODELADO Y SIMULACIÓN DE LA LÓGICA SECUENCIAL. 293s=%d", $time, ap, bp, p, sp);for (i = 0; i <256; i = i + 14) beginap = i[7:4℄;bp = i[3:0℄;#1;end#20 $�nish;endendmodule11.8. Modelado y Simula ión de la Lógi aSe uen ial.Todo el desarrollo y tratamientos de ejemplos de las se iones anteriores sereferían a la lógi a ombinatoria. Avanzaremos en el estudio de las posibilidades delos HDL on el modelado y simula ión de los sistemas se uen iales y las unidadesbási as de alma enamiento de datos ( errojos, biestables, registros y memorias),junto on algunas apli a iones.11.8.1. El biestable tipo D.En la lógi a se uen ial bási a uno de los elementos de mayor presen ia en losdiseños es el biestable (�ip - �op) tipo D, o algunos omponentes derivados deél. En la �gura 11.17 repetimos el diagrama esquemáti o de este elemento, yaestudiado en el apítulo sobre ir uitos se uen iales.En primer lugar, modelaremos el biestable a nivel del omportamiento, omose muestra en el ódigo siguiente:// �_D_ .vl// Modelo de un biestable (�ip-�op) D// a nivel del omportamientomodule �_D_ (q, qn, D, Clk);output q, qn;input D, Clk;reg q, qn;always �(posedge Clk) q = D;always �(posedge Clk) qn = �D;endmodule

Page 320: Principios de Diseño Digital (UDO)

294

Figura 11.16: Simula ión para un sumador de 4 bits

Page 321: Principios de Diseño Digital (UDO)

11.8. MODELADO Y SIMULACIÓN DE LA LÓGICA SECUENCIAL. 295Clk

Q

Q’

D

Figura 11.17: Biestable tipo DEl estamento de ontrol de eventos (�) nos indi a que ada vez que o urra un�an o positivo de la señal Clk, enton es la salida prin ipal (q) se hará igual a laentrada (D).Es posible agregar una entrada de reposi ión (reset) on lo ual el ódigoquedará modi� ado, omo se muestra junto al módulo de prueba:// �_D_ .vl// Modelo de un biestable (�ip-�op) D// a nivel del omportamientomodule �_D_ (q, qn, D, Clk, reset);output q, qn;input D, Clk, reset;reg q, qn;always �(posedge Clk)if (reset == 1) beginq = 0;qn = 1;else beginq = D;qn = �D;endendmodule// Módulo de pruebamodule prueba;reg Dp, Clkp, resetp;wire qp, qnp;integer i;�_D_ �_D_p (qp, qnp, Dp, Clkp, resetp);initial begin{resetp, Dp, Clkp} = 3'b000;

Page 322: Principios de Diseño Digital (UDO)

296 $dump�le("�_D_ .v d");$dumpvars(0, prueba.�_D_p);$monitor ("Tiempo=%d , lk=%b , R=%b , D=%b ,q=%b , qn=%b", $time, Clkp, resetp, Dp,qp, qnp);for (i = 0; i <8; i = i + 1) begin{resetp, Dp, Clkp} = i[2:0℄;#1;end #10 $�nish;endendmoduleEl resultado de la simula ión puede apre iarse en la �gura 11.18.Figura 11.18: Simula ión para un biestable tipo D11.8.2. Registro multifun ional de 8 bits.Con la apa idad mostrada hasta ahora, modelaremos un registro de 8 bitsque posea las siguientes señales de ontrol:Carga paralela (l).Reposi ión (r).Habilita ión de Salida (e).In remento (i).De remento (d).// registro.vl// Modelo de un registro multifun ionalmodule registro (q, D, Clk, l, r, e, i, d);output [7:0℄ q;input [7:0℄ D;

Page 323: Principios de Diseño Digital (UDO)

11.8. MODELADO Y SIMULACIÓN DE LA LÓGICA SECUENCIAL. 297input Clk, l, r, e, i, d;wire [7:0℄ q;reg [7:0℄ qtemp;assign q = (e == 1) ? qtemp : 8'bzzzzzzzz;always �(posedge Clk) ase ({ r, l, i, d})4'b0000 : qtemp = qtemp;4'b0001 : qtemp = qtemp - 1;4'b0010 : qtemp = qtemp + 1;4'b0011 : qtemp = qtemp;4'b0100 : qtemp =D;4'b0101 : qtemp =D;4'b0110 : qtemp =D;4'b0111 : qtemp =D;4'b1000 : qtemp = 0;4'b1001 : qtemp = 0;4'b1010 : qtemp = 0;4'b1011 : qtemp = 0;4'b1100 : qtemp = 0;4'b1101 : qtemp = 0;4'b1110 : qtemp = 0;4'b1111 : qtemp = 0;end aseendmodule// Módulo de pruebamodule prueba;reg [7:0℄ Dp;reg Clkp, lp, rp, ep, ip, dp;wire [7:0℄ qp;integer i;registro reg_p (qp, Dp, Clkp, lp, rp, ep, ip, dp);initial beginDp = 64;Clkp = 0; lp = 0; rp = 0; ep = 1; ip = 0; dp = 0;$dump�le("Reg_Multi.v d");$dumpvars(0, prueba.reg_p);$monitor ("Tiempo=%d , lk=%b , e=%b , R=%d ,

Page 324: Principios de Diseño Digital (UDO)

298 D=%d , l=%b, i=%b, d=%b, q=%b",$time, Clkp, ep, rp, Dp, lp, ip, dp, qp);for (i = 0; i <15 ; i = i+1) beginClkp = i[0℄; ase (i)1 : rp = 1;3 : rp = 0;4 : lp = 1;6 : lp = 0;7 : ip = 1;9 : ip = 0;10 : dp = 1;12 : dp = 0;13 : ep = 0;default : $display("Caso no evaluado");end ase#1;end#16 $�nish;endendmoduleEl resultado de la simula ión puede apre iarse en la �gura 11.19.11.8.3. Máquina Se uen ial Rudimentaria.Enfrentaremos el modelado y simula ión de una máquina se uen ialrudimentaria on el ejemplo del re ono edor de se uen ia. Se desea diseñar un ir uito se uen ial que re onoz a la se uen ia 1001, que arriba por su entrada dedatos. El sistema opera on en lavamiento y sin solapamiento. La salida debe sertipo Moore.Repetiremos el Diagrama de Estados de este diseño (�gura 11.20).Lo resaltante, en el diseño tradi ional, era la obten ión de las e ua iones deex ita ión de las unidades de memoria, ya que estas determinan las transi ionesdel sistemas (estado futuro), a tiempo de reloj. Re uerde que las salidas de lasunidades de memoria onstituyen el estado presente del sistema.Realizando la siguiente asigna ión de estados

Page 325: Principios de Diseño Digital (UDO)

11.8. MODELADO Y SIMULACIÓN DE LA LÓGICA SECUENCIAL. 299

Figura 11.19: Simula ión para un Registro Multifun ional

Page 326: Principios de Diseño Digital (UDO)

300a/0

b/0

c/0

d/0

e/1

1

0

0

0

1

1

1

0

0,1Figura 11.20: Diagrama de Estados para re ono edor de se uen ia 1001.a = 000b = 001 = 010d = 011e = 111intentaremos una des rip ión del omportamiento de esta máquina, para lo ual debemos estable er una variable que identi�que al estado, y modelar lastransi iones entre estos, en fun ión del valor de la entrada de datos.// re _se .vl// Modelo de un re ono edor de se uen iamodule re _se (SM, D, Clk);output SM; // Salida Mooreinput D; // Entrada de Datosinput Clk; // Relojreg SM; // Salida de�nida omo "reg" para// mantener su valor entre i los de relojreg [2:0℄ est_pre; // Registro para indi ar el estado

Page 327: Principios de Diseño Digital (UDO)

11.8. MODELADO Y SIMULACIÓN DE LA LÓGICA SECUENCIAL. 301// presente de la máquinaassign SM = est_pre[2℄ & �est_pre[1℄ & �est_pre[0℄;always �(posedge Clk) ase ({ est_pre, D})4'b0000 : est_pre = 3'b000;4'b0001 : est_pre = 3'b001; // Primer elemento4'b0010 : est_pre = 3'b010; // Segundo elemento4'b0011 : est_pre = 3'b000;4'b0100 : est_pre =3'b011; // Ter er elemento4'b0101 : est_pre =3'b000;4'b0110 : est_pre =3'b000;4'b0111 : est_pre =3'b100; // Cuarto elemento4'b1000 : est_pre =3'b100; // En lavado4'b1001 : est_pre =3'b100; // En lavadodefault : est_pre =3'b000; // en ualquier otro estado// vaya al ini ioend aseendmoduleObserve que la salida Moore ha sido obtenida de manera fun ional ya que ellasólo es válida en el estado e = 100. Por otra parte, han sido on atenados el estadopresente y la entrada de datos ({ est_pre, D}) para ser tratadas en una sola línea.Finalmente, omo el ambio de estados o urre sólo en el �an o positivo del reloj,la asigna ión est_pre = ... debe entenderse omo el estado futuro del sistema.Con un módulo de prueba semejante al mostrado, se obtuvo el Diagrama deTiempos de la �gura 11.21.// Módulo de pruebamodule prueba;reg Dp, Clkp;wire SM;integer i;re _se reg_se _p (SMp, Dp, Clkp);initial beginDp = 0; Clkp = 0;$dump�le("re _se .v d");$dumpvars(0, prueba.reg_se _p);

Page 328: Principios de Diseño Digital (UDO)

302 $monitor ("Tiempo=%d , lk=%b , D=%b , SM=%b",$time, Clkp, Dp, SMp);for (i = 0; i <15 ; i = i+1) beginClkp = i[0℄; ase (i)0 : Dp = 1;1 : Dp = 1;2 : Dp = 0;3: Dp = 1;4 : Dp = 1;5 : Dp = 1;6 : Dp = 0;7 : Dp = 0;8 : Dp = 1;9 : Dp = 0;default : $display("Caso no evaluado");end ase#1;end#10 $�nish;endendmodule11.8.4. Máquina Se uen ial Algorítmi a.Para �nalizar esta introdu ión a los lenguajes de des rip ión de hardwareenfrentaremos el modelado y simula ión de una máquina se uen ial algorítmi a(ASM ), on el ejemplo del multipli ador mediante sumas su esivas. Es buenoresaltar que pretendemos ha er hin apié en la des rip ión y no en la fun ionalidad,ya que podríamos sen illamente modelar de la siguiente manera:// multip1.vl// Modelo de un multipli ador de 4 bits, por omportamientomodule multip1 (Mu, A, B);output [7:0℄ Mu; // Resultado (en 8 bits)input [3:0℄ A, B; // Entradas a multipli ar (en 4 bits)reg [7:0℄ Mu;always�(A or B) Mu = A * B;endmodule

Page 329: Principios de Diseño Digital (UDO)

11.8. MODELADO Y SIMULACIÓN DE LA LÓGICA SECUENCIAL. 303

Figura 11.21: Simula ión para un Re ono edor de se uen ia (1001 ).

Page 330: Principios de Diseño Digital (UDO)

304En lugar de esto, de�niremos el multipli ador siguiendo las líneas de diseñodadas en el apítulo sobre Máquinas de Estado Algorítmi as. En esa oportunidaddividíamos el sistema en dos etapas: Pro esador de Datos (en argado del manejode la informa ión, previendo la disposi ión de re ursos físi os apropiados) yPro esador de Control (en argado de re ibir los omandos externos, supervisarel estado de los pro esos y generar las señales de ontrol ade uadas), omo semuestra en la �gura 11.22.El diagrama ASM que sigue la etapa de ontrol se muestra en la �gura 11.23.donde se ha realizado una asigna ión de estados arbitraria:T0 = 00T1 = 01T2 = 10T3 = 11El ódigo siguiente muestra el modelo ompleto del multipli ador// multip2.vl// Modelo de un multipli ador de 4 bits,// a nivel de arquite turamodule multip2 (Res, Fin, A, B, IM, RGM, Clk);output [7:0℄ Res; // Resultado (en 8 bits)output Fin; // Fin del Pro eso de Multipli a ióninput [3:0℄ A, B; // Entradas a multipli ar (en 4 bits)input IM, RGM; // Ini io de la multipli a ión y//Reposi ión General del Pro esoinput Clk;wire [7:0℄ Res;wire Fin;Pro _Control PC(Fin, PLA, PLB, DB, PLP, RP, IM, RGM, FM,A_0, B_0, Clk);Pro _Datos PD(Res, FM, A_0, B_0, A, B, PLA, PLB, DB, PLP,RP, Clk);endmodulemodule Pro _Control (Fin_PC, PLA_PC, PLB_PC, DB_PC, PLP_PC,RP_PC, IM_PC, RGM_PC, FM_PC,

Page 331: Principios de Diseño Digital (UDO)

11.8.MODELADOYSIMULACIÓNDELALÓGICASECUENCIAL.305

SumadorComparador

Procesadorde Datos

PPLR

PLAPLBDBPLPRP

FM

Sistemade Control;

InicioReposicion

A=0B=0

Comparador

A

Dato B

0BPLD

FM

Resultado

IM

RGM

Fin

Dato A

PL0

A=0B=0

Figura11.22:Diagramadebloquesdeunmultipli adorporsumassu esivas.

Page 332: Principios de Diseño Digital (UDO)

306

RM

A=0

B=0

P P + AB B − 1

T2

RM

B=0

T3FM

RM

B B−1

RM

IM

A DatoAB DatoBP 0

1

01

0

1

0

1

00

1

1 0

T1

1

0

1

0

T0

Figura 11.23: Diagrama ASM del Pro esador de Control.

Page 333: Principios de Diseño Digital (UDO)

11.8. MODELADO Y SIMULACIÓN DE LA LÓGICA SECUENCIAL. 307A_0_PC, B_0_PC, Clk_PC);output Fin_PC, PLA_PC, PLB_PC, DB_PC, PLP_PC, RP_PC;input IM_PC, RGM_PC, FM_PC, A_0_PC, B_0_PC, Clk_PC;wire Fin_PC, PLA_PC, PLB_PC, DB_PC, PLP_PC, RP_PC;reg [1:0℄ est_pre;assign Fin_PC = est_pre[1℄ & est_pre[0℄;assign PLA_PC = ~est_pre[1℄ & ~est_pre[0℄;assign PLB_PC = ~est_pre[1℄ & ~est_pre[0℄;assign DB_PC = ( est_pre[1℄ & ~est_pre[0℄ ) |(~est_pre[1℄ & est_pre[0℄ );assign PLP_PC = est_pre[1℄ & ~est_pre[0℄;assign RP_PC = ~est_pre[1℄ & ~est_pre[0℄;always �(posedge Clk_PC)if ( RGM_PC == 1 )est_pre = 2'b00;else ase (est_pre)2'b00 : if ( IM_PC == 1)est_pre = 2'b01;else est_pre = 2'b00;2'b01 : ase ( { A_0_PC, B_0_PC } )2'b00 : est_pre = 2'b10;default : est_pre = 2'b00;end ase2'b10 : if ( B_0_PC == 0)est_pre = 2'b10;else est_pre = 2'b11;2'b11 : est_pre = 2'b11;default : est_pre =2'b00;end aseendmodulemodule Pro _Datos (Resultado_PD, FM_PD, A_0_PD, B_0_PD, A_PD,B_PD, PLA_PD, PLB_PD, DB_PD, PLP_PD,RP_PD, Clk_PD);output [7:0℄ Resultado_PD;output FM_PD, A_0_PD, B_0_PD;input [3:0℄ A_PD, B_PD;input PLA_PD, PLB_PD, DB_PD, PLP_PD, RP_PD, Clk_PD;wire [7:0℄ Resultado_PD;

Page 334: Principios de Diseño Digital (UDO)

308 wire FM_PD, A_0_PD, B_0_PD;wire [3:0℄ A_Reg, B_Reg;wire [7:0℄ Sum_Sal;registro4b_L R_A(A_Reg, A_PD, PLA_PD, Clk_PD);registro4b_LD R_B(B_Reg, B_PD, PLB_PD, DB_PD, Clk_PD);registro8b_LR R_P(Resultado_PD, Sum_Sal, PLP_PD, RP_PD, Clk_PD);sumador8b Sumador (Sum_Sal, Resultado_PD, {4'b0000, A_Reg} ); omparador4b C_A(A_0_PD, A_Reg, 4'b0000); omparador4b C_B(B_0_PD, B_Reg, 4'b0000); omparador4b C_FM(FM_PD, B_Reg, 4'b0000);endmodulemodule registro4b_L (O, D, L, Clk);output [3:0℄ O;input [3:0℄ D;input L, Clk;reg [3:0℄ O;always�(posedge Clk) if (L == 1) O = D;endmodulemodule registro4b_LD (O, D, L, CD, Clk);output [3:0℄ O;input [3:0℄ D;input L, CD, Clk;reg [3:0℄ O;always�(posedge Clk) ase ( {L, CD} )2'b10 : O = D;2'b01 : O = O - 1;end aseendmodulemodule registro8b_LR (O, D, L, R, Clk);output [7:0℄ O;input [7:0℄ D;input L, R, Clk;reg [7:0℄ O;always�(posedge Clk) ase ( {L, R} )2'b10 : O = D;2'b01 : O = 0;end ase

Page 335: Principios de Diseño Digital (UDO)

11.8. MODELADO Y SIMULACIÓN DE LA LÓGICA SECUENCIAL. 309endmodulemodule sumador8b (F, X, Y );output [7:0℄ F;input [7:0℄ X, Y;assign F = X + Y;endmodulemodule omparador4b (igual, N1, N2);output igual;input [3:0℄ N1, N2;assign igual = ( N1 == N2 );endmodule// Módulo de pruebamodule prueba;reg [3:0℄ Ap, Bp;reg IMp, RGMp, Clkp;wire [7:0℄ Resp;wire Finp;integer i;multip2 multip2_p (Resp, Finp, Ap, Bp, IMp, RGMp, Clkp);initial beginAp = 2; Bp = 3; IMp = 0; RGMp = 1; Clkp = 0;$dump�le("multip2.v d");$dumpvars(1, prueba.multip2_p);$monitor ("Tiempo=%d , A=%d , B=%d , Resultado=%d",$time, Ap, Bp, Resp);for (i = 0; i <34; i = i + 1) beginClkp = i[1℄; ase ( i )3 : RGMp = 0;5 : IMp = 1;9 : IMp = 0;end ase#1;end // forend // initialendmoduleEl ar hivo fuente, mostrado anteriormente, se ha guardado on el nombre

Page 336: Principios de Diseño Digital (UDO)

310"multip2.vl" y debe ser pro esado on la siguiente se uen ias de omandos.[Parraguez℄$ iverilog -v -o multip2.red -s prueba multip2.vl[Parraguez℄$ vvp -v multip2.red.red[Parraguez℄$ wave multip2.v dEl resultado de la simula ión puede apre iarse en la �gura 11.24.

Page 337: Principios de Diseño Digital (UDO)

11.8. MODELADO Y SIMULACIÓN DE LA LÓGICA SECUENCIAL. 311

Figura 11.24: Simula ión para el Multipli ador

Page 338: Principios de Diseño Digital (UDO)

312

Page 339: Principios de Diseño Digital (UDO)

Bibliografía[1℄ Tonny Bybell. Stru tural Verilog Compiler. bybell�linux-workshop. om. 2001[2℄ Udi Finkelstein. GTKWave. http:gtk.org. 2001[3℄ I arus Verilog. http://www.i arus. om/eda/verilog. 2001[4℄ Luis Parraguez. Herramientas Computa ionales para el urso Diseño deSistemas Digitales. UDO. 2000.[5℄ Daniel Hyde. Handbook on Verilog HDL. Computer S ien e Departament.Bu knell University. Lewisburg, PA, USA. 1997[6℄ Gerard Blair. Verilog - a elerating Digital Design. Departament of Ele tri alEngineering. University of Edinburgh. S otland. UK. 1997[7℄ D. Gajski. Prin ipios de Diseño Digital. Prenti e-Hall, 1997[8℄ T. L. Floyd. Fundamentos de Sistemas Digitales. Prenti e-Hall, 1997[9℄ Morris Mano. Lógi a Digital y Diseño de Computadoras. Prenti e-Hall, 1993[10℄ Morris Mano. Ingeniería Computa ional. Diseño del Hardware. Prenti e-Hall,1991[11℄ J. Wakerly. Digital Design. Prin iples and Pra ti es. Prenti e-Hall, 1991[12℄ Abellanas y Lodares. Matemáti a Dis reta. Ma robit, 1991[13℄ Morris Mano. Diseño Digital. Prenti e-Hall, 1990[14℄ R. To i. Sistemas Digitales. Prin ipios y Apli a iones. Prenti e-Hall, 1990[15℄ Des hamps y Angulo. Diseño de Sistemas Digitales. Paraninfo, 1989[16℄ Hill y Peterson. Teoría de Conmuta ión y Diseño Lógi o. Limusa, 1987[17℄ Mis ha S hwartz. Information Transmission, Modulation, and Noise.M Graw-Hill, 1970 313

Page 340: Principios de Diseño Digital (UDO)

314 BIBLIOGRAFÍA