Sunteți pe pagina 1din 478

INTRODUCCIÓN A LOS

SISTEMAS
DIGITALES
INTRODUCCIÓN A LOS
SISTEMAS
DIGITALES

JAMES E. PALMER
DAVID E. PERLMAN
Rochester Institute of Technology

Traducción: Ing. Francisco


Rodríguez Ramírez
Diploma en Microprocessors Engineering and
Digital Electronics, University of Manchester, Inglaterra
Profesor de tiempo completo del
Departamento de Ingeniería de Control,
Facultad de Ingeniería, UNAM

Revisión técnica:
M. en I. Pedro Rendón Torres
División de Estudios de Posgrado,
Facultad de Ingeniería, UNAM
Profesor del Departamento de Ingeniería Mecánica,
ITESM, Campus Estado de México

McGRAW-HILL
MÉXICO • BUENOS AIRES • CARACAS • GUATEMALA • LISBOA • MADRID • NUEVA YORK
PANAMÁ • SAN JUAN • SANTAFÉ DE BOGOTÁ • SANTIAGO • SAO PAULO
AUCKLAND • HAMBURGO • LONDRES • MILÁN • MONTREAL • NUEVA DELHI • PARÍS
SAN FRANCISCO • SINGAPUR • ST. LOUIS • SIDNEY • TOKIO • TORONTO
Gerente de producto: Carlos Mario Ramírez Torres
Supervisor de edición: Mateo Miguel García
Supervisor de producción: Zeferino García García

INTRODUCCIÓN A LOS SISTEMAS DIGITALES

Prohibida la reproducción total o parcial de esta obra,


por cualquier medio, sin autorización escrita del editor.

DERECHOS RESERVADOS © 1995, respecto a la primera edición en español por


McGRAW-HILL/INTERAMERICANA DE MÉXICO, S. A. de C. V.
Atlacomulco 499-501, Fracc. Ind. San Andrés Atoto,
53500 Naucalpan de Juárez, Edo. de México
Miembro de la Cámara Nacional de la Industria Editorial, Reg. Núm. 1890

ISBN 970-10-0635-6

Traducido de la primera edición en inglés de


SCHAUM'S OUTLINE OF INTRODUCTION TO DIGITAL SYSTEMS
Copyright © MCMXCIII, by McGraw-Hill, Inc., USA

ISBN 0-07-048439-2

1234567890 LI-95 9087643215

Impreso en México Printed in México

Esta obra se terminó de


imprimir en Febrero de 1995 en
Litográfica Ingramex
Centeno Núm 162-1
Col. Granjas Esmeralda
Delegación Iztapalapa
09810 México, D.F.

Se tiraron 5,000 ejemplares


Contenido

Acerca de los autores ................................................................................................................. IX


Prefacio ....................................................................................................................................... XI

Capítulo 1 NÚMEROS Y EL SISTEMA BINARIO 1


1.1 Introducción................................................................................................. 1
1.2 Sistemas numéricos .................................................................................... 1
1.3 Conversión entre bases .............................................................................. 5
1.4 Aritmética binaria básica.............................................................................. 6
1.5 Códigos ..................................................................................................... 8
1.6 Detección y corrección de errores .............................................................. 13

Capítulo 2 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I 27


2.1 Lógica combinacional ............................................................................... 27
2.2 Tablas de verdad ........................................................................................ 27
2.3 Ecuaciones booleanas y funciones lógicas básicas .................................... 30
2.4 La relación entre el álgebra booleana y las tablas de verdad ....................... 33
2.5 Diagramas lógicos ...................................................................................... 34

Capítulo 3 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II:


MANIPULACIÓN 59
3.1 Introducción ................................................................................................. 59
3.2 Bases del álgebra booleana ....................................................................... 59
3.3 Implicaciones del hardware ......................................................................... 64
3.4 Mapas K básicos ....................................................................................... 64
3.5 Aplicaciones adicionales de los mapas K .................................................. 69

Capítulo 4 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 101


4.1 Introducción ................................................................................................. 101
4.2 Hardware de las compuertas ..................................................................... 101
4.3 Lógica mixta como una herramienta de diseño ............................................ 102
4.4 La lógica mixta como una convención descriptiva...................................... 111
4.5 Usos de la lógica mixta en la localización de fallas ................................... 113

Capítulo 5 ELEMENTOS MSI Y LSI 150


5.1 Introducción................................................................................................. 150

V
VI CONTENIDO

5.2 Multiplexores............................................................................................... 150


5.3 Decodificadores y demultiplexores ............................................................. 155
5.4 La memoria sólo para lectura (ROM) ........................................................ 157

Capítulo 6 DIAGRAMAS DE TIEMPO 194


6.1 Introducción................................................................................................. 194
6.2 Diagramas de microtemporización ............................................................ 194
6.3 Razón de fallas............................................................................................. 197
6.4 Diagramas de macrotemporización ............................................................ 199
6.5 Simulaciones en el tiempo ........................................................................... 200
6.6 Realimentación en circuitos combinacionales............................................. 203

Capítulo 7 EL FLIP-FLOP 226


7.1 Introducción................................................................................................. 226
7.2 El latch básico ............................................................................................ 226
7.3 El interruptor sin rebote (chatterfree) ........................................................ 228
7.4 El flip-flop RS temporizado (con reloj)........................................................ 228
7.5 El flip-flop JK ........................................................................................... 231
7.6 El flip-flop JK con preset y clear................................................................. 234
7.7 Propagación de las señales en el flip-flop ................................................... 235
7.8 Otros tipos de flip-flops ............................................................................... 237
7.9 Disparo y temporización de flip-flops.......................................................... 239
7.10 Metaestabilidad .......................................................................................... 241

Capítulo 8 COMBINACIONES DE FLIP-FLOPS 273


8.1 Registros ................................................................................................... 273
8.2 Conversión paralelo-serie .......................................................................... 278
8.3 Contadores de propagación ........................................................................ 278
8.4 Multiplicadores de tasa ............................................................................. 281
8.5 Memoria de acceso aleatorio (RAM) ........................................................ 283

Capítulo 9 APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS 315


9.1 Introducción................................................................................................. 315
9.2 Tecnologías de programación ................................................................... 315
9.3 PROMS y EPROMS .................................................................................. 316
9.4 Arreglos lógicos programables (PAL) ........................................................ 318
9.5 Arreglos lógicos programados (PLA) ........................................................ 325
9.6 Arreglos de compuertas ............................................................................... 327
9.7 Arreglos de compuertas programables ...................................................... 329
9.8 Diseño completamente a la medida.............................................................. 330
CONTENIDO VIl

Capítulo 10 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 357


10.1 Introducción................................................................................................. 357
10.2 Diseño tradicional de máquinas de estado con flip-flops D ...................... 358
10.3 Diseño con flip-flops JK ............................................................................ 361
10.4 Diseño mediante dispositivos lógicos programables .................................... 364
10.5 La carta ASM............................................................................................... 365
10.6 Diseño a partir de una carta ASM: Implantación booleana para el mínimo
número de flip-flops .................................................................................. 369
10.7 Diseño a partir de una carta ASM: Implantación de un controlador de un
flip-flop por estado .................................................................................... 371
10.8 Diseño a partir de una carta ASM: Entradas de una tabla de estados a un
dispositivo lógico programable .................................................................. 373
10.9 Retardo del reloj en máquinas de estado...................................................... 375
10.10 Inicialización y bloqueo en máquinas de estado ......................................... 377

Capítulo 11 FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE 412


11.1 Introducción ................................................................................................. 412
11.2 Componentes básicos ................................................................................... 412
11.3 Arreglos de compuertas programables ....................................................... 414
11.4 Unidades lógico aritméticas ......................................................................... 420
11.5 Registros programables .............................................................................. 422

Apéndice A TEOREMAS BOOLEANOS BÁSICOS E IDENTIDADES .......................... 444

Apéndice B SÍMBOLOS LÓGICOS ESTÁNDAR ............................................................. 446

Apéndice C ALGUNOS COMENTARIOS SOBRE SIMULACIÓN LÓGICA DIGITAL 453

ÍNDICE ........................................................................................................................................ 457


Acerca de los autores

James E. Palmer es profesor de ingeniería eléctrica del Instituto de Tecnología de Rochester (RIT) en
Rochester, Nueva York. Obtuvo la licenciatura en la Universidad de Western Ontario, la maestría en cien-
cias en Ingeniería Eléctrica en la Universidad de Pennsylvania y el doctorado en el Instituto Case de
Tecnología. Su línea de investigación es el diseño de sistemas digitales con énfasis en el diseño del produc-
to y sus aspectos en ingeniería concurrente. Fue Director de Ingeniería en la Universidad Gannon de 1968
a 1974. También fue Jefe del Departamento de Ingeniería Eléctrica de 1974 a 1978 en RIT. Actualmente
dicta cursos en las áreas de prueba y diseño de sistemas digitales y también en las áreas del diseño de
sistemas de control.

David E. Perlman es profesor asociado de ingeniería eléctrica en el Instituto de Tecnología de Rochester,


en Rochester, Nueva York. Obtuvo la licenciatura y la maestría en Ingeniería Eléctrica en la Universidad de
Cornell y durante diez años fue investigador e ingeniero de diseño en la Eastman Kodak Company. Poste-
riormente fue uno de los fundadores y vicepresidente de Advanced Development of Detection Systems,
Inc., en Fairport, Nueva York, puesto que desempeñó durante trece años. El señor Perlman registró doce
patentes. En 1982 se unió a la facultad en RIT, donde ha enseñado cursos en electrónica para licenciatura y
posgrado así como cursos de circuitos y sistemas digitales para licenciatura.

IX
Prefacio

El objetivo de este libro es introducir una metodología de diseño unificada en este curso introductorio en
sistemas digitales. El libro está basado en el curso "Introducción a los sistemas digitales", el cual se ofrece
a estudiantes de los primeros años en la carrera de ingeniería eléctrica en el Instituto de Tecnología de
Rochester.
Como es usual en libros de esta materia, el primer capítulo describe los sistemas numéricos en general
y el sistema binario en particular como preparación para la introducción a las señales y variables lógicas
bivaluadas, presentes en toda computadora y circuitos digitales.
Los tres capítulos siguientes describen un procedimiento de diseño coherente para sistemas usando la
lógica combinatoria (o combinacional). Tres maneras diferentes de especificar un problema combinacional
—la tabla de verdad, ecuaciones booleanas y diagramas lógicos— se presentan en el capítulo 2, mientras
que en el capítulo 3 se tratan las manipulaciones del álgebra booleana; además, este capítulo contiene
material adicional para la construcción e interpretación de mapas de Karnaugh (mapas K). Aquí, el proble-
ma de diseño es analizado a un nivel puramente lógico, independientemente de las consideraciones del
hardware, y se estudia relación entre los mapas K, las ecuaciones booleanas y los diagramas lógicos. En el
capítulo 4 se presenta un enfoque estructurado para la implantación del hardware de la metodología lógica
usando la metodología de la lógica mixta. El resultado es una herramienta de diseño totalmente sin ambi-
güedades que producen una circuitería lógica funcional mientras preserva la identidad de la relación booleana.
El capítulo 5 ofrece una descripción de los elementos lógicos combinacionales MSI y LSI comúnmente
usados con énfasis en los dispositivos (tales como multiplexores y ROMs) que pueden programarse para
aplicaciones específicas.
El resto del libro está enfocado principalmente hacia la lógica secuencial síncrona. La construcción y el
uso de diagramas de temporización se presentan en el capítulo 6, donde se introducen herramientas de
diseño asistido por computadora tales como la captura esquemática y el software de simulación. La fun-
ción lógica de elementos básicos de memoria (flip-flops) se presenta en el capítulo 7, y algunos aspectos
importantes de combinaciones MSI y LSI de flip-flops se cubren en el capítulo 8, el cual trata de registros,
contadores y dispositivos de almacenamiento de datos. En el capítulo 9 se discute la operación básica de
dispositivos programables con lógica combinacional y flip-flops. El capítulo 10 ilustra el procedimiento de
diseño tradicional y el uso de las cartas de máquinas de estado algorítmicas como herramientas de diseño
para la lógica secuencial síncrona y para máquinas de estado simples. El capítulo 11 presenta una perspec-
tiva no tradicional de elementos lógicos como componentes de dispositivos de control y proporciona una
introducción a los arreglos de compuertas programables y su operación.
Aquí vale la pena hacer un comentario: desafortunadamente no hay una aceptación universal de la
notación simbólica. Mientras que la burbuja ha sido empleada durante muchos años en la notación de
lógica positiva para indicar inversión lógica, también es común que se use como alternativa para las me-
dias flechas denotando así una señal baja-VERDADERA en sistemas de lógica-mixta. Puesto que reservar
la media-flecha para designar exclusivamente la señal baja-VERDADERA es menos ambiguo, los autores
han enfatizado esta notación para usarla en el desarrollo del proceso de diseño unificado que se presenta en
los capítulos 2-4. Sin embargo, considerando que es más común que las burbujas y no las medias flechas se
produzcan tanto en la captura esquemática como en los paquetes de software para simulación, nosotros no
podemos eliminar arbitrariamente la burbuja bajo-VERDADERO. Su aplicación se discute en la sección
4.3 y se difunde a través del libro (como en las figuras 4-76, 4-79 y 5-38) con el fin de presentar a los
estudiantes ejemplos de la simbología que ellos muy probablemente enfrenten en "el mundo real".

XI
XII PREFACIO

Esta situación es menos confusa cuando se denotan las conexiones (o su ausencia) en dispositivos
lógicos programables. De los capítulos 9 al 11 se usan las "X", círculos sólidos o rectángulos sólidos para
indicar conexiones, mientras que los círculos huecos o ningún símbolo indican la ausencia de una co-
nexión. Desde luego, teniendo en cuenta que el lector enfrentará todas o varias de las convenciones antes
dichas, se decidió presentar un poco de todo en los ejemplos y problemas cuidando evitar cualquier ambi-
güedad en el significado de un símbolo.
El libro fue diseñado para trabajarlo como texto para un curso introductorio en el diseño de sistemas
digitales o para usarse como complemento de otros libros de texto. Como es típico en los libros de la Serie
Schaum, contiene numerosos ejemplos resueltos, así como problemas suplementarios con sus respuestas.
Es importante anotar que en el diseño existen diferentes soluciones válidas para un problema dado. En
estos casos los autores aplicaron su mejor juicio al seleccionar la solución dada y cuando consideraron
apropiado tener presente otras alternativas para un grupo representativo de problemas, así como las nuevas
técnicas desarrolladas en capítulos posteriores.
Se notará que en este libro muchos de los diagramas lógicos y de temporización se han generado en
computadora; además varias observaciones genéricas concernientes a la captura esquemática y a la simu-
lación aparecen en el texto y en el apéndice C. Esto es consecuencia natural del hecho de que ha ido en
aumento la dificultad de tratar el diseño de sistemas digitales sin referencia al software de diseño automá-
tico electrónico (Electronic Design Automation, EDA). Los autores eligieron usar LogicWorks™, una
versión a pequeña escala del software de diseño lógico digital de DesignWorks™ de Capilano Computing
Systems, Ltd., debido a que éste es un paquete de simulación extremadamente amigable, muy apreciado
por profesores y estudiantes. Los lectores interesados deberán escribir a Capilano en 406-960 Quayside
Drive, New Westminster, B. C, Canadá V3M 6G2, o llamar al (800) 444-9064 o al (604) 522-6200 para
mayor información, y/o para obtener un disco de demostración.
Los autores desean expresar su agradecimiento al Dr. Charles Schuler, quien revisó el manuscrito y nos
alentó con sus valiosos comentarios. También quisiéramos expresar nuestro agradecimiento a varias "ge-
neraciones" de estudiantes de licenciatura del RTI, quienes nos dieron una retroal¡mentación invaluable
sobre la efectividad de nuestra pedagogía y sobre la precisión en la solución de los problemas. En un
pasado no tan lejano, la elaboración de los cientos de diagramas integradas con el texto de este libro
hubiera hecho necesario agradecer el enorme esfuerzo (y la paciencia increíble) de una o más secretarias y/
o de los artistas gráficos. Nosotros no necesitamos hacer tal mención aquí, ya que el trabajo se hizo en casa
con la ayuda de una computadora Apple Macintosh LC II* corriendo a dos pantallas —una para dibujar y
otra para el texto—, lo cual hizo el proyecto razonablemente manejable y a menudo agradable. Sin embar-
go, queremos reconocer especialmente la paciencia y el apoyo de nuestras esposas, Mary Palmer y Marjorie
Lu Perlman, quienes tuvieron que soportar la falta de convivencia generada necesariamente por nuestras
muchas noches y fines de semana invertidos en este proyecto.

JAMUS E. PALMER
DAVID E. PERLMAN

*Apple y Macintosh son marcas registradas de Apple Computer. Inc.


Capítulo 1
Números y el sistema binario
1.1 INTRODUCCIÓN

En los modernos sistemas digitales es necesario almacenar y procesar electrónicamente mucha


información en presencia de ruido y señales de interferencia eléctricas. Esta información normal-
mente está en forma binaria (dos valores), puesto que así permite emplear dispositivos de almacena-
miento y cálculo confiables y fácilmente reproducibles, los cuales cuentan con un gran número de
interruptores electrónicos conectados lógicamente y fabricados en circuitos integrados. Dichos dis-
positivos contienen miles (y, en algunos casos, millones) de transistores intrínsecamente resistentes
al ruido, gracias a que los niveles de voltaje o corriente que representan los dos estados binarios
están lo suficientemente separados para prevenir los errores causados por interferencia. Puesto que
el sistema binario se emplea universalmente en procesamiento digital, es útil entender las propieda-
des generales de los sistemas numéricos, así como los métodos de conversión de uno a otro. Tam-
bién se emplean algunos esquemas de codificación de datos y verificación de errores, tales como
la codificación Gray y verificación de paridad los cuales sirven para reducir drásticamente la proba-
bilidad de errores no detectados.

1.2 SISTEMAS NUMÉRICOS

Normalmente, los números se representan en el sistema decimal (base 10), el cual tiene 10 símbolos
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9). Este sistema es ponderado, y emplea una notación posicional, donde
la potencia de la base que multiplica a un dígito en particular se determina por su posición en la
secuencia de dígitos, la cual representa a un número dado. Considérese el número 853828 en base
10. El dígito 8 se presenta tres veces en la secuencia, pero en cada una tiene un valor distinto debido
a que el dígito ocupa una posición diferente que corresponde a la potencia de la base. Este arreglo
se muestra como sigue:

853828 = 8x 100 000 + 5x 10000 + 3x 1000 + 8x100 + 2 x 1 0 + 8 x 1


El 8 del extremo izquierdo está ponderado o tiene un peso de 105, el siguiente 8 tiene un peso
de 102 y el último de 10°. Esta notación posicional se puede extender fácilmente a fracciones deci-
males, en cuyo caso se emplean potencias negativas de la base 10:
0.725 = 7 X 10 - 1 + 2 X 10 - 2 + 5 X 10 -3

1
2 NÚMEROS Y EL SISTEMA BINARIO

El sistema binario
Es posible expresar un número en cualquier base. En el caso binario, la base es 2 y sólo se necesitan
dos símbolos (0 y 1). A cada dígito se llama "bit", y se emplea nuevamente la notación posicional.
Para encontrar el equivalente decimal de cualquier número binario, únicamente se escribe el equiva-
lente decimal de cada una de las potencias de 2, multiplicado por el dígito binario correspondiente y los
resultados parciales se suman.

EJEMPLO 1.1 Exprésese el número binario 1100111.1101 como un número decimal (en base 10).
Puesto que la parte entera tiene siete dígitos (bits), el más significativo tiene un peso de 26 o 64. Su equi-
valente en decimal se puede calcular fácilmente como

1100111 = 1 x 2 6 + 1 x 2 5 + 0 x 2 4 + 0 x 2 3 + 1 x 2 2 + 1 x 2 1 + 1 x 2 o
= 1x64 + 1x32 + 0x16 + 0 x 8 + 1 x 4 + 1 x 2 + 1x1
= 10310

Para la parte decimal,

.1101 = 1 x 2 -1 + 1 x 2 - 2 + 0 x 2 - 3 + 1 x 2 -4
= 1 x 0.5 + 1 x 0.25 + 0 x 0.125 + 1 x 0.0625
= 0.812510
Puesto que los números binarios sólo necesitan dos símbolos, son ideales para su representa-
ción mediante dispositivos electrónicos, ya que únicamente habrá que distinguir dos estados, como
ENCENDIDO (ON) y APAGADO (OFF), esto es, conduce o no conduce.
Las ventajas del sistema binario se pueden observar mejor al considerar el efecto de ruido o
interferencia sobre el desempeño de un sistema de procesamiento de datos. En el caso binario,
cuando los datos se van a transmitir o recuperar de algún medio de almacenamiento, es necesario
que el receptor determine, de una señal dada, a cuál de los dos niveles está más cercano. A la mitad
de estos dos niveles se puede fijar un umbral de decisión, de modo que cualquier ruido agregado
que sea menor a la diferencia entre el nivel de la señal y el umbral se ignore. Por otro lado, con el
almacenamiento en decimal, un sistema con el mismo rango global de voltaje asignado a sus seña-
les, tendrá una resistencia al ruido mucho menor, debido a que para un rango dado, éste se debe
dividir en 10 niveles por separado (véase la figura 1-1).
En sistemas de datos se habla de una figura de mérito llamada margen de ruido, la cual se
define como el máximo voltaje de ruido (o corriente) que es posible tolerar sin causar un cambio
no deseado en la salida.

EJEMPLO 1.2 Compárense los márgenes de ruido básicos de los sistemas de datos binario y decimal, teniendo
componentes de hardware ideales.

Para el caso binario, un 1 se almacena como Vmáx [típicamente 5 volts (V)] y un 0 como aproximadamen-
te 0 V, El umbral deberá fijarse en Vmáx/2, y cualquier ruido menor que este valor se ignora. En el sistema
decimal habría 10 niveles de almacenamiento igualmente espaciados entre 0 y Vmáx (0, Vmáx/9, 2 Vmáx/9, etcé-
tera) y habría umbrales situados a la mitad de los niveles adyacentes de almacenamiento (Vmáx/18, 3 Vmáx/18,
etcétera). Cualquier ruido que sea mayor de Vmáx/18 sería una lectura errónea de los datos. Para el caso bina-
rio con Vmáx = 5V, el margen de ruido sería de 5/2 = 2.5 V. Por otra parte, el sistema decimal con el mismo
Vmáx, tendría un margen de ruido de sólo (5/9)/2 = 0.28 V, que, obviamente, es menos deseable que el del
caso binario.
NÚMEROS Y EL SISTEMA BINARIO 3

Sistemas octal y hexadecimal


Mientras el sistema binario proporciona grandes ventajas prácticas para el almacenamiento y pro-
cesamiento de datos en sistemas digitales, gracias a que sólo emplea dos símbolos, un número dado
expresado en binario consiste de una secuencia de dígitos más larga que la correspondiente en deci-
mal. Si los datos van a ser almacenados en forma manual, sólo se necesitaría un teclado con dos
teclas, y éstas tendrían que ser presionadas muchas veces. Este problema de entrada de datos, con
frecuencia se resuelve tratando los números binarios en grupos.
Los números en octal hacen uso de grupos de 3 bits, de acuerdo con la siguiente tabla:

Binario Dígito octal


000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

Cada símbolo en octal representa la equivalencia numérica de un grupo de 3 dígitos binarios, y los ocho
símbolos forman un sistema numérico en base 8. En este caso, es necesario un teclado con ocho teclas
para guardar los datos, pero sólo se necesita presionar las teclas un tercio de las veces que si se hiciera
en un teclado binario.
4 NÚMEROS Y EL SISTEMA BINARIO

EJEMPLO 1.3 Exprésese el número 247 en octal como un binario y uno decimal.
El número en octal es posicional, con el dígito de menor orden (el más a la derecha) ponderado o con
un peso de 8o = 1 y el de mayor orden por 82 = 64. De este modo 247 = 2x 64+ 4 x 8 + 7 x 1 = 167 10.
Refiriéndose a la tabla anterior, la cual indica que la conversión a binario se puede llevar a cabo fácilmente
agrupando:

Esta conversión se puede verificar con facilidad determinando el equivalente decimal del número
binario resultante, 10100111. Obsérvese que los ceros se pueden eliminar conservando la posición de
los unos. El bit más significativo está en la octava posición y por lo tanto tiene un peso de 27 = 128. De
esta manera, 10100111 = 128 + 32 + 4 + 2 + 1 = 167.
En la sección 1.3 se presenta un método general para la conversión de números en las diferentes
bases.

La notación hexadecimal extiende la idea de agrupamiento a 4 bits y forma el sistema numérico en


base 16. A continuación se muestra la tabla de los correspondientes grupos de bits y los símbolos
hexadecimales.

Binario Hex Binario Hex Binario Hex Binario Hex


0000 0 0100 4 1000 8 1100 C
0001 1 0101 5 1001 9 1101 D
0010 2 0110 6 1010 A 1110 E
0011 3 0111 7 1011 B 1111 F

Los símbolos hexadecimales del 0 al 9 son los equivalentes decimales de los primeros diez grupos
de 4 bits. Para representar los últimos seis grupos se necesitan nuevos símbolos, puesto que no hay
números decimales de un sólo dígito que representen números mayores a 9. Para este propósito se
emplean las primeras seis letras del alfabeto como se muestra en la tabla. En el sistema hexadecimal se
necesita un teclado de 16 teclas, con el cual la cantidad de presionado de teclas será solamente un cuarto
de la necesaria con un teclado binario.

EJEMPLO 1.4 Conversión hexadecimal-binaria. a) Conviértase el número 1101011100110 en un


número hexadecimal equivalente, b) Conviértase el número 4B2F en binario.

a) 1101011100110 = (0001X1010X1110X0110) Agrupamientos de 4


= 1 A E 6 Conversión individual
= S1AE6 El signo de $ se emplea comúnmente para
indicar números hexadecimales

b) 4B2F = (0100X1011X0010X1111) Conversión individual


= 0100101100101111 Desagrupar
= 100101100101111 Quitando los ceros de la izquierda
NÚMEROS Y EL SISTEMA BINARIO 5

1.3 CONVERSIÓN ENTRE BASES

El siguiente es un método general con el que se pueden convertir números entre cualquier par de bases:
1. Los enteros y las fracciones se convierten separadamente.
2. La porción entera se convierte empleando la división repetitiva por la nueva base y usando la
secuencia de residuos generada para crear el nuevo número. La aritmética se lleva a cabo en
términos de la base anterior.
3. La parte fraccionaria se convierte mediante la multiplicación repetitiva por la nueva base, em-
pleando los enteros generados para representar la fracción convertida. Una vez más, la aritmé-
tica se lleva a cabo en la base anterior.

EJEMPLO 1.5 Conviértase el número decimal 278.632 en su número binario equivalente.


Paso 1. La parte entera es 278. La fracción es 0.632.
Paso 2. Conversión de la parte entera.

Obsérvese que una vez que un residuo se ha formado, no toma parte en la aritmética. El proceso de conversión
de la parte entera siempre tendrá un final.
Paso 3. Conversión de la parte fraccionaria.

Nótese que una vez formado un entero, éste ya no se usa. Este proceso puede no terminar, en general, se lleva
a cabo hasta que se satisfacen los requerimientos de exactitud.
6 NÚMEROS Y EL SISTEMA BINARIO

EJEMPLO 1.6 Conviértase el número decimal 123.456 a su equivalente en octal (base 8).
Conversión de la parte entera:

División Residuo generado


8 )123
8)15 3
8 )i 7 Lectura hacia arriba para formar: 173
0 !
Conversión de la parte fraccionaria:
Multiplicación Entero generado
0.456 x 8 = 3.64S 3
0.648 x 8 = 5.184 5 Lectura hacia abajo para formar: 0.3513
0.184 x 8 = 1.472 1
0.472 x 8 = 3.776 3
El proceso se ha terminado arbitrariamente.
123.45610 = 173.35138 (aproximadamente)
Verificación:
1738 = 1 x 6 4 + 7 x 8 + 3 x 1 = 1231O 0.3513 8 = 3 x
0.1250 + 5 x 0.0156 + 1 x 0.0020 + 3 x 0.0002 = 0.4556,0

1.4 ARITMÉTICA BINARIA BÁSICA

Todos los sistemas numéricos que se presentaron previamente son posicionalmente ponderados,
haciendo posible llevar a cabo aritmética de un dígito a la vez con el uso de los acarreos. Tablas
completas de adición y multiplicación se pueden desarrollar mediante la aplicación repetitiva de las
reglas para un solo dígito.

Adición binaria
La tabla de adición binaria que se muestra abajo es muy sencilla. En esta tabla los dos dígitos invo-
lucrados se denotan mediante X y Y. Ci es el acarreo de entrada de la adición precedente de menor
orden.

Obsérvese la presencia del acarreo de salida, el cual se genera en todas las adiciones de un bit cuando
el resultado excede 1.
NÚMEROS Y EL SISTEMA BINARIO 7

EJEMPLO 1.7 Adición de dos largas cadenas de bits.

Cuando se llevan a cabo sumas, cada par de dígitos produce un resultado y un acarreo de salida si la suma
excede a 1. Este acarreo se convierte en el acarreo de entrada para el siguiente dígito (de orden superior), como
se muestra. Por ejemplo, cuando X= 1 , Y = lyel acarreo de entrada es también 1, la suma es 3 (11 en bina-
rio). El bit de la izquierda, que tiene un valor decimal de 2, se acarrea a la siguiente columna (de mayor orden),
dejando un 1 en la posición de la suma, directamente abajo.

Sustracción binaria
La sustracción se puede discutir de una manera muy similar, haciendo uso de un préstamo y produ-
ciendo una diferencia. Sin embargo, en la práctica la sustracción se lleva a cabo mediante el mismo
hardware que se utiliza para la adición, a través de la aritmética complementaria. En el caso binario, los
números negativos se representan como el complemento a 2 del número binario positivo corres-
pondiente (véanse ejemplos 1.8 y 1.9). La sustracción de un número binario dado X de otro Y se lleva a
cabo obteniendo el complemento a 2 de X para convertirlo en -X y sumarlo a Y. En este método, el
dígito a la extrema izquierda es interpretado como el bit de signo (0 para el positivo, 1 para el negativo),
el cual es tratado como cualquier otro bit, excepto que el acarreo de salida de la suma de dos bits de
signo no se toma en cuenta.
El complemento a dos de un número binario se obtiene intercambiando los ls y Os del número
original y sumar 1 al resultado.

EJEMPLO 1.8 Réstese 18510 a 23010 convirtiendo a binario y usando la artimética de complemento a 2.
El número de dígitos binarios que se requieren para realizar el cálculo está determinado por el número
mayor (incluyendo el resultado). En este caso, el número mayor es 230 y requiere 8 bits y uno adicional para
el signo. De este modo, el equivalente binario de 185 es 010111001. Obsérvese que los ceros de la izquierda
no tienen ningún efecto sobre el valor numérico.
Se convierte este número al negativo correspondiente haciendo su complemento a 2:
Paso 1: Invertir los ls y Os.

010111001 → 101000110
Paso 2: Sumar 1.
101000110
+ 1
101000111 = -18510
Después, empleando nueve dígitos, se convierte 230 a binario y se suma al resultado del paso 2.
+ 230= 011100110
-185= 101000111
1000101101
8 NÚMEROS Y EL SISTEMA BINARIO

Ignorando el acarreo en el bit de signo (bit adicional a la izquierda) se obtiene 000101101, en el que se
observa que el bit más la izquierda es 0, lo que indica que el resultado es positivo. Verificación:
000101101, convertido a decimal, es +45.

EJEMPLO 1.9 Réstese 23010 a 18510, convirtiendo a binario y usando la artimética de complemento a 2.
El binario equivalente de 230 es 011100110, y su complemento a 2 se obtiene al invertir los ls y Os y suman-
do 1:
-230= 100011010
Ahora se suma al número binario equivalente de 185:
-230= 100011010
+ 185 = 010111001
111010011
El bit más a la izquierda es un 1, indicando que el resultado es negativo. Para obtener la magnitud del
número, se hace el complemento a 2 del resultado, puesto que -(-X) es igual a X.
000101100
+ ______ 1
000101101
El equivalente en decimal es 45, el cual ya se determinó que es negativo.

1.5 CÓDIGOS
Decimal codificado en binario
Los números decimales codificados en binario (DCB) son esencialmente números decimales codifi-
cados en una forma conveniente de dos valores (binario). Cada dígito decimal se representa, en orden,
por su equivalente binario de 4 bits; siendo éste el número mínimo requerido para representar los
decimales enteros de 0 a 9. Como hay 16 posibles combinaciones de 4 bits, 6 de ellas no son utilizadas
en el sistema DCB.

EJEMPLO 1.10 Compárense las representaciones binaria y DCB del número decimal 278.
En el ejemplo 1.5, se mostró que el equivalente binario de 278 es 100010110. La conversión se hizo consi-
derando el número decimal dado como un todo. En conversión DCB, cada dígito decimal es codificado separa-
damente:

Código Gray
Otro código de dos valores, significativo en ingeniería, es el código Gray, también conocido como
código binario reflejado. No es un código ponderado posicionalmente y, debido a esto, no es apro-
piado para operaciones aritméticas.
El código Gray de un bit es idéntico al código binario de un bit:
0
1
NÚMEROS Y EL SISTEMA BINARIO 9

El código Gray de dos bits se obtiene al "reflejar" el código Gray de un bit en un espejo imagi-
nario, como se muestra más adelante. Para el segundo dígito, se agregan Os sobre el eje de reflexión y ls
debajo de éste.

El código Gray de tres dígitos se forma empleando el código de dos dígitos como la base de
reflexión y agregando 0s arriba y 1s debajo nuevamente.

000
001
011
010
Eje de reflexión
110
111
101
100

El proceso puede ser repetido para cualquier número de dígitos.


El proceso de reflexión empleado en la generación del código Gray asegura que este código
tendrá una propiedad de distancia unitaria, lo que significa que códigos de grupos consecutivos di-
ferirán únicamente en un bit. Como referencia, un código Gray de cuatro bits se muestra en la tabla
1.1, junto con sus equivalentes binarios y decimales. Obsérvese la propiedad de distancia unitaria
del código Gray a medida que la secuencia crece. Compárese esto con el código binario donde, por
ejemplo, al pasar de 7 a 8, todos los bits cambian.

Tabla 1.1

Una de las principales aplicaciones del código Gray es en medición. Un caso común se presenta en
el ejemplo 1.11.
10 NÚMEROS Y EL SISTEMA BINARIO

EJEMPLO 1.11 Disco de codificación posicional. En un sistema robótico, el movimiento del "brazo" a me-
nudo se controla mediante un microprocesador el cual genera una señal para manejar la rotación de las unio-
nes. Con frecuencia, esta señal se aplica a un circuito que controla la dirección y velocidad de un motor eléctri-
co. Es necesario para la computadora conocer la posición real de una unión y compararla con el comando
con el fin de asegurar que el movimiento deseado sea llevado a cabo. Con frecuencia, la medición de la posición
se realiza conectando un pequeño disco de codificación en la flecha del motor. Este disco consiste de pistas
circulares concéntricas que contienen patrones de sectores opacos y transparentes, como se muestra en la figu-
ra 1-2. Cada pista está asociada individualmente con un emisor y un detector de luz. Cuando un sector transpa-
rente de la pista está entre el emisor y el detector, la luz se transmite y en el detector se produce una señal eléctri-
ca. No se produce salida cuando un sector opaco pasa entre el emisor y el detector.

El disco en la figura l-2a está codificado en binario, en donde la pista externa corresponde al dígito menos
significativo. Mediante un arreglo radial de pares emisor-detector alineado en cada pista se ve que mientras
el disco gira, cada sector que pase por el arreglo de detectores producirá combinaciones únicas de salidas que
se pueden interpretar como números binarios. Por ejemplo, si el arreglo del emisor-detector está localizado
a lo largo de una línea vertical en la parte superior del disco y se considera que un detector iluminado produce
un 1 binario, entonces si el disco gira en sentido contrario a las manecillas del reloj por más de un sector, la
salida del detector indicará el número binario 0010. En el caso del disco de la figura 1-26, los sectores se identi-
fican como números codificados en Gray.
Considérese el caso de codificación binaria donde el disco se posiciona de modo que el arreglo de detecto-
res esté localizado a lo largo de la línea divisoria entre los sectores 7 y 8. Obsérvese que los sectores a cada
lado de esta frontera son diferentes para todas las pistas. Los emisores y detectores no se alinean individual-
mente con una tolerancia perfecta, ni los emisores producen una luz de ancho cero: por tanto la luz se difunde.
Si un emisor de luz está sobre la línea, podría o no producir salida en el detector. De esta manera, el número
binario que se produce pudiera ser cualquiera de todos los 0s o 1s, dependiendo del alineamiento y de la disper-
sión de luz. Lo cual puede producir errores burdos.
Por otro lado, si se emplea un disco codificado en Gray, debido a la propiedad de la distancia unitaria,
hay sólo una pista por sector donde la transmisión de luz en cada lado de la frontera de un sector es diferente,
únicamente un bit codificado en Gray puede ser el erróneo. El esquema de codificación en Gray sólo puede
producir los números correspondientes a los sectores adyacentes, y en consecuencia no es posible que se gene-
ren grandes errores.

Mientras el código Gray es muy conveniente para fines de medición, no es útil en aritmética
debido a que, como se mencionó, no tiene un ponderado (o peso) posicional.
NÚMEROS Y EL SISTEMA BINARIO 11

Conversión entre códigos binario y Gray


Este problema se maneja eficientemente observando que el código Gray se puede considerar como
una versión "diferenciada" del binario equivalente. La conversión se hace de acuerdo con las siguientes
reglas.
A. Conversión de binario a Gray
1. Los dígitos más a la izquierda son los mismos en ambos sistemas.
2. Léase el número binario de izquierda a derecha. Un cambio (de 0 a 1 o de 1 a 0) genera un
1 en el número codificado en Gray; de otro modo, se genera un 0.

EJEMPLO 1.12 Conversión de binario a Gray. Conviértase el número binario 01101001101 a Gray.

Binario:

S = mismo; C = cambiar; D = duplicar


Gray:

01101001101 (en binario) = 01011101011 (en Gray)


B. Conversión de Gray a binario
1. Los dígitos más a la izquierda son los mismos en ambos sistemas.
2. Léase el número Gray de izquierda a derecha. Un 1 significa que el próximo dígito binario
debe cambiar; un 0 significa que el próximo dígito binario es idéntico al dígito a su izquierda.

EJEMPLO 1.13 Conversión de Gray a binario. Conviértase el número Gray 1000110101010 a un número bi-
nario equivalente.

Gray:

Binario:
1000110101010 (en Gray) = 1111011001100 (en binario)

Código ASCII
No todos los datos almacenados y procesados por una computadora son numéricos. Debido a las
ventajas prácticas del sistema binario, otros tipos de datos se almacenan en una forma bivaluada (como
el binario) también. El código alfanumérico más comúnmente utilizado es el American Standard
Codefor Information Interchange (ASCII) del que algunos caracteres representativos del teclado se
presentan en la tabla 1.2. No se pretende que esta lista sea exhaustiva, sino meramente ilustrativa.
Nótese que los dígitos decimales se muestran como dígitos codificados en DCB precedidos por 011 (9 =
011 1001). Otros prefijos de tres dígitos se utilizan para datos no numéricos.
12 NÚMEROS Y EL SISTEMA BINARIO

Tabla 1.2 Conjunto representativo de código ASCII


Carácter ASCII Hexadecimal
A 100 0001 41

B 100 0010 42
C 100 0011 43
D 100 0100 44
E 100 0101 45
F 100 0110 46
G 100 0111 47
H 100 1000 48
I 100 1001 49
J 100 1010 4A
K 100 1011 4B
L 100 1100 4C
M 100 1101 4D
N 100 1110 4E
O 100 1111 4F
P 101 0000 50
Q 101 0001 51
R 101 0010 52
S 101 0011 53
T 101 0100 54
U 101 0101 55
V 101 0110 56
W 101 0111 57
X 101 1000 58
Y 101 1001 59
Z 101 1010 5A
Espacio 010 0000 20
( 010 1000 28
) 010 1001 29
+ 010 1011 2B
0 011 0000 30
1 011 0001 31
2 011 0010 32
3 011 0011 33
4 011 0100 34
5 011 0101 35
6 011 0110 36
7 011 0111 37
8 011 1000 38
9 011 1001 39
NÚMEROS Y EL SISTEMA BINARIO 13

1.6 DETECCIÓN Y CORRECCIÓN DE ERRORES


Paridad
En el procesamiento electrónico de datos es imposible evitar la presencia de ruido aleatorio, con
la consecuente probabilidad de la introducción de errores. Una de las formas más comunes de en-
frentar esta situación es agregar dígitos redundantes llamados bits de paridad. Cada bit de paridad
está asociado con un grupo de bits de datos y se selecciona para hacer que el número total de 1s
en el grupo ya sea par {paridad par) o impar {paridad impar). En cualquier momento posterior,
el número de ls en el grupo completo se puede contar y compararse con la paridad originalmente
creada. Esta técnica conocida como verificación de paridad simple, siempre detectará un número
impar de errores entre los miembros del grupo, y es muy efectiva en un ambiente donde prevalecen
los errores aislados. Como un ejemplo, considérense caracteres DCB de 4 bits codificados con pari-
dad impar. El dígito de paridad es el bit que está en la extrema derecha (refiérase a la tabla 1.3).

Tabla 1.3
Decimal DCB Bit de paridad agregado
0 0000 00001
1 0001 00010
2 0010 00100
3 001 1 001 1 1
4 0100 01000
5 0101 0101 1
6 01 10 01 101
7 01 1 1 01110
8 1000 10000
9 1001 1001 1

Si se procesara un 5 (0101 en DCB), se almacenará el grupo 01011 con verificación de paridad


en DCB. Si más adelante se obtiene el grupo como 11011 (error en el primer bit), la paridad será
entonces par y se detecta el error.

Fig. 1.3
14 NÚMEROS Y EL SISTEMA BINARIO

Corrección de errores
La paridad también se puede utilizar en combinaciones especiales que permiten tanto la corrección
como la detección de ciertas clases de errores. Un ejemplo del llamado código Hamming se muestra
en la figura 1-3. En este caso se usan 4 bits de datos (D1, D2, D3, D4) para crear tres bits de paridad
adicionales (P1, P2, P3) los cuales se agregan a los cuatro originales para formar siete dígitos binarios
que se almacenan o transmiten como grupo.
El procesamiento de código Hamming se realiza mediante un circuito lógico el cual lleva a cabo
el procedimiento definido por la tabla 1.4. Se forman tres grupos de paridad a partir de diferentes
combinaciones de tres dígitos de datos y uno sólo de paridad, el cual se genera para cada uno de esos
grupos. La pertenencia a un grupo de paridad se indica con una X en la columna del dígito apropiado.
Nótese que cada uno de los siete dígitos tiene una combinación única de pertenencia al grupo de
paridad. Si se asume que solamente dígitos aislados tendrán error debido al ruido o interferencia,
entonces se genera para cada posible error un solo patrón de fallas de paridad de grupo. El
conocimiento del patrón de falla de paridad permite la identificación del dígito con error. Como éste
es un sistema binario, el conocimiento del dígito erróneo hace posible la corrección.

Tabla 1.4 Generación del código Hamming

Considérese el caso en el que los dígitos de datos D4, D3, D2, D1 son 1011. Refiriéndose a la tabla 1.4
se ve que para el grupo de paridad 2, la paridad impar requiere que P2 sea 1 ya que D1 y D4 son miembros
del grupo, D3 es 0, y D2 (que no es miembro) no se toma en cuenta. Las reglas de generación de paridad
impar combinadas con el algoritmo definido en la tabla 1.4 producirá los bits de paridad P3, P2, Pi = 110.
El código Hamming se transmite con la secuencia D4, D3, D2, P3, D1, P2, P1, de tal manera que en este
ejemplo la salida del circuito lógico se transmite como 1011110.
Ahora, supóngase que el segundo dígito más a la izquierda tiene un error, esto es, la secuencia
recibida es 1111110. Cuando se obtiene, los grupos de paridad se verifican individualmente y al refe-
rirse a la tabla 1.4 se muestra que los grupos de paridad 2 y 3 fallarán (muestran paridad impar).
La única situación en la que los grupos 2 y 3 fallan y el grupo 1 no es cuando D3 tiene error. Su
valor erróneo es 1 y, por lo tanto, se debe corregir a 0. Si un bit de paridad tiene error, solamente
fallará el grupo de paridad al que pertenece, permitiendo su identificación y corrección.

Código de detección de error sin paridad


Hay situaciones en las que otras técnicas, además de la de generación de paridad, se emplean para
detección de errores. Por ejemplo, en algunas comunicaciones trasatlánticas de radio las transmi-
siones se codifican de tal manera que los circuitos de detección de errores en el receptor generan
una solicitud automática de retransmisión (automatic request for retransmission, ARQ) si algún
NÚMEROS Y EL SISTEMA BINARIO 15

carácter está dañado. El código utilizado toma un carácter de los datos (uno de setenta posibles) y lo
configura (convierte) en un formato de 8 bits que tiene exactamente cuatro ls y cuatro 0s. En
el receptor se cuenta el número de ls en el carácter, y si la suma no es cuatro, se asume un error.
Este código detecta todos los números pares de error y también detecta los números impares de error
en los que un intercambio de 1 a 0 no va acompañado de un intercambio de 0 a 1.

Problemas resueltos
1.1 Conviértase el número decimal 234.567 a su equivalente número binario. Determínese la
exactitud fraccional si se hace la conversión en nueve pasos.

Conversión de la parte entera Conversión de la parte fraccionaria


Residuo Entero
2 )234 0.567 x 2 = 1.134 1
2 )117 0 0.134 x 2 = 0.268 0
2 )58 1 0.268 x 2 = 0.536 0
2 )29 0 0.536 x 2 = 1.072 1
2 )14 1 0.072 x 2 = 0.144 0
2)1 0 0.144 x 2 = 0.288 0
2 )3 1 0.288 x 2 = 0.576 0
2 )i 1 0.576 x 2 = 1.152 1
0 1 0.152 x 2 = 0.304 0

El número binario es 11101010.100100010. El dígito de la extrema derecha tiene un peso de 2-9


de modo que cualquier error debido a truncamiento será menor que 2-9 o 0.001953125.

1.2 Conviértase el número 345.678 (en decimal) a un número equivalente en base 6, haciendo
que el error de conversión sea menor que 0.001.
Puesto que 6-3 = 0.0046 (en decimal) y 6-4 = 0.000771605 (en decimal), se requieren cuatro dí-
gitos para la parte fraccionaria.

Conversión de la parte entera Conversión de la parte fraccionaria


Residuo Entero
6 )345 0.678 x 6 = 4.068 4
6 )57 3 0.068 x 6 = 0.408 0
6 )9 3 0.408 x 6 = 2.448 2
6 )1 3 0.448 x 6 = 2.688 2
0 1
345.678 (en decimal) = 1333.4022 (en base 6)
16 NÚMEROS Y EL SISTEMA BINARIO

1.3 Conviértase 217 (en octal) a binario.


Apliqúese la regla general de conversión. Divídase el número por convertir (217) entre la nueva base
(2). Hágase la aritmética en la base anterior (8). Ejemplos de división de base 8.

Llévese a cabo la conversión, observando que no existe parte fraccionaria.

Residuo
2 )217
2 )107 1
2 )43 1
2 )21 1
2 ) 10 1
2)4 0
2)2 0
2 )1 0
0 1
217 (en octal) = 10001111 (en binario)

1.4 Exprésese el número hexadecimal B73D como un número equivalente en octal.


Cámbiese el número hexadecimal a binario (grupos de 4 bits).

$B73D = (1011X0111X0011X1101)
= 1011011100111101 (en binario)

Cámbiese el número de binario a octal (grupos de 3 bits). Empiécese por la derecha y agréguense
los ceros necesarios a la izquierda.

1011011100111101 (en binario) = (001X011X011X100X111X101)


= 13 3 4 7 5
= 133475 (en octal)
NÚMEROS Y EL SISTEMA BINARIO 17

1.5 Exprésese el número octal 23456 como un número decimal y como uno en DCB.

23456 (en octal) = 2 x 8 4 + 3 x 8 3 + 4 x 8 2 + 5 x 8 ' + 6 x 8 °


= 2 x 4096 + 3 x 5 1 2 + 4 x 6 4 + 5 x 8 + 6 x 1
= 8192 + 1536 + 256 + 40 + 6
= 10030

Conviértanse los dígitos decimales en forma individual a binario


10030 (en decimal) = (0001X0000X0000X0011X0000)
= 00010000 0000 00110000 DCB

1.6 Conviértase el número DCB 0010 0111 1001 0101 a hexadecimal.


Primero conviértase el número DCB a decimal:

(0010X0111X1001X0101) = 2795
Segundo, conviértase el número decimal a binario:

2)2795
2 )1397 res = 1
2 )698 res = 1
2 )349 res = 0
2 )174 res = 1
2 )87 res = 0
2 )43 res = 1
2 )21 res = 1
2 )10 res = 1
2 )5 res = 0
2 )2 res = 1
2 )1 res = 0
0 res = 1

Leyendo hacia arriba se obtiene 101011101011 (en binario)

Tercero, agrúpese por cuartetos para formar el código en hexadecimal.

101011101011 = (1010X1110X1011) = AEB

1.7 Conviértase F5.3B (en hexadecimal) a su equivalente en octal.


Úsese una conversión intermedia a binario por conveniencia.

$F5.3B = (1111X0101).(0011X1011)
= 11110101.00111011
Agrúpense en tercias, respetando el punto decimal, para convertir a octal.
18 NÚMEROS Y EL SISTEMA BINARIO

1.8 Súmese $A47 a $854. Hágase la aritmética en hexadecimal, pero obsérvese que el código he-
xadecimal es ponderado.
Sumando dígito a dígito:

A47
+ 854
129B

7 + 4 = 11 (en decimal) = B (en hexadecimal)


4 + 5 = 9 (en decimal) = 9 (en hexadecimal)
A + 8 = 18 (en decimal) = 2 más 1 de acarreo (en hexadecimal)

1.9 Súmese 234 (en decimal) a 189 (en decimal) y hágase la aritmética en binario.
Ambos números son positivos; el proceso sencillamente es sumar. Primero conviértase a binario.

234 (en decimal) = 0011101010 (en binario)


189 (en decimal) = 0010111101 (en binario)
Súmese como se mostró en la sección 1.4

La suma es positiva (bit de signo = 0) y se puede convertir a +423 (en decimal), el cual verifica.

1.10 La adición complementaria se puede usar para llevar a cabo la sustracción en cualquier base,
incluyendo base 10. Empléese la adición con complemento a 9 para restar 1462i0 a 193710.
Agréguese un cero a la izquierda a cada número que sirva como un dígito de signo. Un número
se complementa restándolo de BN - 1 donde B es la base y N es el número de cifras. En el presente
caso, B = 10, N = 4 y el número seleccionado (1462) será restado de 9999.

9999
-1462
98537 ← Nunca habrá un préstamo puesto que todos los números son menores de 9
__ +_1
98538 ←complemento a 9 de 1462

El dígito de la extrema izquierda (dígito de signo) es un 9 lo que indica que el número es negativo.
El hecho de que el complemento a 9 de 1462 es equivalente a -1462 se puede mostrar tomando el com-
plemento a 9 otra vez para regresar al número original. Será evidente que este proceso es equivalente
a X = -(-X).
NÚMEROS Y EL SISTEMA BINARIO 19

99999
-98538
01461 ← El dígito de signo es 0, lo cual indica que el resultado es positivo
___ +9
1462
La resta deseada se lleva a cabo ahora.
01937
+ 98538
100475
Excluyendo el extraño dígito de acarreo de signo, se tiene 475, el cual se interpreta como un núme-
ro positivo puesto que el dígito de la extrema izquierda es 0.

1.11 Réstese 176 de 204. Hágase el trabajo en binario empleando la notación de complemento a 2.
El mayor de estos números requiere 8 bits, y con el bit de signo, N = 9.
El complemento de un número de N dígitos en base 2 se obtiene restando el número de uno forma-
do por N ls. En el caso binario, esto se logra de una manera sencilla: simplemente invirtiendo los ls
y Os.
El complemento de 176: 010110000 → 101001111 Invertir los bits
Sumar 1: 000000001
El complemento a 2 es: 101010000 Esto es equivalente a -176
Sumar-176 a +204: 204 → 011001100
-176 → 101010000
1000011100
Se ignora el
acarreo de
salida del bit
de signo
Suma: 000011100
El dígito de signo es 0, de modo que el número es positivo. La conversión directa conduce a + 28
(en decimal), lo cual verifica.

1.12 Súmese -176 (en decimal) a -204 (en decimal); hágase la aritmética en binario empleando
la notación de complemento a 2.
La respuesta tendrá una magnitud de 38Oio la cual requiere 9 dígitos binarios. Incluyendo un bit
de signo, se necesitarán 10 dígitos para el cálculo. Exprésense los números negativos en la forma de
complemento a 2:
-1761O= 1101010000
-20410= 1100110100
Sumar: 1101010000
1100110100
11010000100
20 NÚMEROS Y EL SISTEMA BINARIO

Ignórese el acarreo de salida de la extrema izquierda y obsérvese que el siguiente dígito (dígito de
signo de la suma) es 1, lo que indica un resultado negativo. Para encontrar la magnitud del número
negativo, tómese el complemento a 2:
1010000100 → 0101111011
+ ________1
0101111100 = 38010

La respuesta en decimal es -380.


1.13 Réstese 204 de 176 en binario, usando aritmética de complemento a 2.
Puesto que el resultado tendrá una magnitud menor que cualquiera de los números dados, N = 9
bits. Tómese el complemento a 2 del número del cual se restará (esto equivale a hacerlo negativo).
-20410 → 100110100
Sumar: +176 → 010110000
-204 → 100110100
111100100
No hay acarreo que ignorar; el bit de signo es negativo. Tómese el complemento a 2 para determi-
nar la magnitud.
111100100 → 000011011
+ 1
000011100 = 281O

La respuesta en decimal es —28.


1.14 Sustráigase 365 (octal) de 173 (octal). Úsese la suma con complemento a 8 para hacer la sus
tracción.
Agréguese un dígito a la extrema izquierda (mayor orden) como dígito de signo; 7 para negativo
y 0 para positivo. Tómese el complemento sustrayendo el octal seleccionado de 7777.
7777
-0365
7412
+ 1
7413 (complemento a 8 de 365)
Sumar: 0173
+ 7413
7606 (la suma se realiza en octal)
La suma octal se realizó como sigue:
3+3=6
7 + 1 = 8 (decimal)
= 10 (octal) (el 1 es acarreado de la columna de la izquierda)
4 + 1 + 1 (acarreo) = 6
7+0=7
NÚMEROS Y EL SISTEMA BINARIO 21

No hay ningún acarreo de salida de bit de signo que ignorar.


Interpretación del resultado: El dígito de la extrema izquierda (dígito de signo) es 7; por lo tanto,
el número es negativo. El complemento a 8 de 7606 = 0171 + 1 = 0172. La respuesta en octal es,
ya sea 7606 0-172.

1.15 Obténgase el equivalente binario del número codificado en Gray 11011010011010.


1. El dígito más significativo es el mismo.
2. Léase el número codificado en Gray de izquierda a derecha y recuérdese que un 1 significa un cam
bio en el equivalente binario al proceder de izquierda a derecha.

1.16 Dé el equivalente en código Gray del número hexadecimal 3A7.


Primero, convierta el número hexadecimal a binario.
$3A7 = (0011)(1010)(0111) = 1110100111 (binario)
Ahora convierta el binario a Gray.

1.17 Encuéntrese el código Gray equivalente del número octal 527.

527 (octal) = (101X010X111) = 101010111 (binario) = 111111100 (Gray)

1.18 A veces, cuando un bloque de datos se almacena en cinta magnética se calcula la paridad,
tanto en renglones como en columnas. Obténganse las paridades de renglón y columna para
el grupo de datos mostrado enseguida, usando paridad impar.

Datos
10110
10001
10101
00010
11000
00000
11010
22 NÚMEROS Y EL SISTEMA BINARIO

En el renglón de paridad, el cero de mayor orden indica que hay un número impar de unos leyendo
verticalmente hacia abajo la columna de la extrema izquierda. El siguiente bit, un 1, indica que su res-
pectiva columna de datos tiene un número par de unos, etcétera.

1.19 Codifique los datos D4, D3, D2, D1 = 1001 en un códio Hamming de 7 bits. Úsese paridad
impar.
Refiérase a la tabla 1.4. El grupo de paridad 1 usa D4, D2, D1 y P1. Los bits de datos pertenecientes
son 101 y P1 es 1. El grupo de paridad 2 usa D4, D3, D2 y P2. Los bits de datos pertenecientes son 101 y
P2 es 1. El grupo de paridad 3 usa D4, D3, D2, y P3. Los bits de datos pertenecientes son 100 y P3 es
0. La secuencia final es D4, D3, D2, P3, D1, P2, P1 = 1000111.

1.20 Supóngase que la secuencia codificada en el problema 1.19 se recibe como 1010111. ¿Cuáles
bits tienen error?
El grupo de paridad 1 usa D4, D2, D1 y P1 → 1111 (par) la verificación falla.
El grupo de paridad 2 usa D4, D3, D1 y P2 → 1011 (impar) la verificación pasa.
El grupo de paridad 3 usa D4, D3, D2 y P3 → 1010 (par) la verificación falla.
Refiriéndose al diagrama de pertenencia de grupos de paridad, el único dígito individual que es miem-
bro de los grupos 1 y 3 pero no del grupo 2 es el dígito D2. Por lo tanto, D2 es el dígito erróneo.

1.21 Si se sabe que 4 bits de datos fueron codificados usando un código de detección de un solo
error (paridad impar), como se define en la tabla 1.4; si se asume que se va a presentar sólo
un error, ¿cuáles son los datos correctos si la secuencia recibida es D4, D3, D2, P3, D1, P2,
P 1 = 1011111?
Grupo de paridad 1 = 1111 Falla
Grupo de paridad 2 = 1011 Pasa
Grupo de paridad 3 = 1011 Pasa
El único dígito que se produce aisladamente en el grupo de paridad 1 es el bit de paridad P1 y,
por lo tanto, P1 es erróneo. Todos los dígitos de datos son correctos. Nótese que la falla de sólo un
grupo de paridad aislado significa que el error está en el dígito de paridad.
NÚMEROS Y EL SISTEMA BINARIO 23

1.22 Interprétese la siguiente secuencia codificada en ASCII:


1000001 1000100 1000100 0100000 0110011 0110100 0111001

Usando la tabla 1.2

1000001 → A
1000100 → D
1000100 → D
0100000 → En blanco
0110011 → 3
0110100 → 4
0111001 → 9

La respuesta es "ADD 349".

1.23 Compárense los márgenes de ruido en un sistema de almacenamiento decimal contra un sis-
tema hipotético de tres estados. Los dos sistemas utilizan la corriente en un transistor como
la variable almacenada.
Asúmase que los estados físicos son equidistantes entre cero y la máxima corriente (Imáx) para ambos
sistemas. Como se describió en la sección 1.2, la separación entre los niveles de señal y los umbrales
para el sistema decimal es Imáx/18. Para el sistema de tres estados, los niveles de señal serán 0, Imáx/2
e Imáx- Con umbrales de decisión situados a la mitad entre estos niveles (en Imáx/4 y 3 Imáx/4), la sepa-
ración del umbral de un nivel de señal es Imáx/4. Por lo tanto, el sistema de tres estados tiene un margen
de ruido 4.5 veces mayor que el del sistema decimal (Imáx/4)/(Imáx/18).

1.24 Desarróllese un código de corrección de un solo error para un grupo de 11 bits de datos.

Tabla 1.5
Bit PG4 PG3 PG2 PG1
P1 X
P2 X
D1 X X
P3 X
D2 X X
D3 X X
D4 X X X
P4 X
D5 X X
D6 X X
D7 X X X
D8 X X
D9 X X X
D10 X X X
D11 X X X X
24 NÚMEROS Y EL SISTEMA BINARIO

Debe haber una combinación única de miembros de paridad de grupa para cada bit codificado en el
grupo, por lo que se requieren por lo menos cuatro grupos de paridad. El número total de bits será
11 más 4 o 15 bits. Debido a que cuatro miembros de paridad de grupo pueden ser organizados en
16 combinaciones distintas, cuatro grupos de paridad son adecuados y cada bit puede ser "etiqueta-
do". Es conveniente ordenar los agrupamientos en forma binaria como se muestra en la tabla 1.5 (re-
fiérase a la sección 2.2 en lo concerniente a construcción de tablas de verdad).
1.25 Supóngase que el código de detección de errores únicos del problema 1.24 es utilizado en
un sistema con paridad impar. Los datos, ordenados con D11 como el bit más significativo
son

¿Cuál es la secuencia codificada?

La entrada P4 es 1 debido a que los miembros de este grupo (D5 a D11) tienen un número par de
1s. Este proceso se repite para las demás entradas de paridad.
1.26 ¿Qué acción realizará el sistema del problema 1.25 si la secuencia recibida es
100001111111011?
Nótese que hay dos dígitos recibidos con error (D9 y D2). Sin embargo, como el sistema está dise-
ñado para detectar sólo errores únicos, responderá como si éste fuera el caso. Se ve que la verificación
de paridad PG4 falla y que el circuito de detección "asumirá" que el dígito que pertenece únicamente
a PG4 (P4) es el único bit con error. Se "corregirá" P4 a 0 y dejará el mensaje recibido aún con error.

1.27 La técnica de codificación ARQ es descrita en la sección 1.6. Muéstrese que esta técnica de
tectará a todos los números impares de error en una palabra codificada y algunos números
par. Utilice la palabra codificada 11001010 como ejemplo.
La clave del código es que exactamente cuatro ls son enviados en cada palabra. Un sólo error debe
provocar que uno de los ls sea 0 o que uno de los 0s sea 1 y, en cualquier caso, la cuenta de ls ya no
será cuatro. Para cualquier número impar de errores, el número de transiciones de 1 a 0 siempre será
diferente del número de transiciones de 0 a 1 y siempre habrá una cuenta errónea de ls. En el caso
de un número par de errores, es posible que las transiciones de 1 a 0 sean balanceadas por un número
igual de transiciones de 0 a 1, manteniendo así el número de ls constante y resultando en una falla
de la detección de error. Como ejemplo, véase la siguiente tabla en que el código transmitido es
11001010.

Recibido Errores Cuenta de ls


11001110 Uno Cinco
10001010 Uno Tres
11110010 Tres Cinco
11111110 Tres Siete
10100010 Tres Tres
10011010 Dos Cuatro (no detectado)
11111010 Dos Seis
NÚMEROS Y EL SISTEMA BINARIO 25

Problemas suplementarios
1.28 Conviértase el número binario 100110111 a decimal, octal y hexadecimal.
1.29 Conviértase el número decimal 416 a binario, octal y hexadecimal.
1.30 Escríbanse los dígitos decimales de 0 a 10 en base 4.
1.31 Exprésese el número decimal 250.5 en base 7 y base 16.
1.32 Conviértanse los siguientes números a sus equivalentes decimales:
a) 1032.24 b) 0.3426 c) 607 d) 18812
1.33 Conviértase el número hexadecimal AB6 en binario, octal y decimal.
1.34 Exprésese 205 (decimal) como número binario y como hexadecimal.
1.35 Conviértase el número DCB 10010110 a hexadecimal.
1.36 Dado el número hexadecimal $A38, conviértase a octal.
1.37 Dado el número hexadecimal $D3C, conviértase a DCB.
1.38 Dado el número octal 1216 conviértase a DCB.
1.39 Súmense los números octales 27 y 42 y exprésese el resultado en binario.
1.40 Encuéntrese el complemento a 2 equivalente de -119 (decimal) asumiendo una palabra binaria de 10
bits de longitud.
1.41 Sustráigase 100010 de 10100 usando el método de complemento a 2.
1.42 Súmense -105 (base 10) y -56 (base 8). Nótese que ambos números son negativos. Realice la aritmética
en complemento a 2 binario usando 9 bits, incluyendo el bit de signo. Exprese la magnitud de la res
puesta en hexadecimal.
1.43 Réstese 583io de 736g. Realícese la aritmética en complemento a dos binario y exprese el resultado en
base 6 complementada.
1.44 Encuéntrese el complemento a 16 de $0B7 (hexadecimal).
1.45 Convierta 1001101100011 (en código Gray) a binario.
1.46 Convierta 1100101101101 (en binario) a código Gray.
1.47 Un codificador de barra similar al mostrado en la figura 1-2b está codificado en Gray con 32 sectores
iguales. Determine la salida del código Gray si la barra se rota 36° en la dirección de las manecillas
del reloj.
1.48 Exprese el número codificado en Gray 101101101011 en números equivalentes en hexadecimal y bi-
nario.
1.49 Si en un teclado ASCII las teclas ADD 21 son presionadas, ¿qué señales binarias ingresan a la compu
tadora?
1.50 Los datos 1001 están codificados apropiadamente en un código de corrección de errores de acuerdo
con las reglas de la tabla 1.4. Se recibe, después de contaminarse con ruido, con los bits de datos D3
y D2 con error. El receptor espera un sólo error y procesa el código recibido de grupo de dicha mane
ra. Muéstrese la transmisión completa y las palabras recibidas e indíquese la decisión tomada por el
receptor.
26 NÚMEROS Y EL SISTEMA BINARIO

Respuestas a problemas suplementarios


1.28 311 (decimal), 467 (octal), $137 (hexadecimal).
1.29 110100000 (binario), 640 (octal), $1A0 (hexadecimal).
1.30 0, 1, 2, 3, 10, 11, 12, 13, 20, 21, 22.
1.31 505.333...7, $FA.8.
1.32 a) 78.5 b)0.62037 c) 42 d) 248.
1.33 101010110110 (binario), 5266 (octal), 2742 (decimal).
1.34 11001101, $CD.
1.35 $60.
1.36 50708.
1.37 0011 0011 1000 1000.
1.38 0110 01010100.
1.39 718 = 111001.
1.40 1110001001.
1.41 El resultado es negativo con una magnitud de 01110.
1.42 El resultado es negativo. Su magnitud en binario es 10010111 que es igual a $97.
1.43 -105 (base 10); la magnitud es 53036.
1.44 $F49.
1.45 1110110111101.
1.46 1010111011011.
1.47 El codificador gira 3.2 sectores; si el primero está numerado como 0, el código Gray será 00010 (se
requieren 5 bits).
1.48 $DB2, 110110110010 (en binario).
1.49 A D D espacio 2 1

(1000001) (1000010) (1000010) (0100000) (0110010) (0110001).


1.50 1011110 es la palabra transmitida, y 1101110 es la palabra recibida. El receptor asumirá que el bit D,
tiene error, y los datos "corregidos" serán 1100, que es incorrecto.
Capítulo 2

Diseño de circuitos lógicos combinacionales I


2.1 LÓGICA COMBINACIONAL

Lógica combinacional (o combinatoria) se define como aquella clase de circuitos digitales donde,
en cualquier tiempo dado, el estado de todas las salidas sólo depende de los valores de las entradas
en ese tiempo y no del estado de las entradas anteriores. Un circuito lógico combinacional se puede
considerar como una caja negra que tiene N líneas de entrada y P líneas de salida, cada una de las
cuales lleva a cabo una función digital (o lógica), la que sólo puede adoptar dos posibles valores,
comúnmente indicados como 1 y 0, o FALSO y VERDADERO.
A partir de un enunciado verbal o simbólico de la relación entre la entrada y la salida, la tarea
del diseñador de la lógica es ' 'llenar la caja" con un circuito formado de interconexiones apropiadas
de componentes lógicos fundamentales llamados compuertas.

2.2 TABLAS DE VERDAD

Una tabla de verdad es una manera conveniente de representar simbólicamente una función lógica.
Todas las posibles combinaciones de los valores de la variable de entrada (normalmente en orden
ascendente) se presentan en forma tabular y, para cada combinación única de entradas, los valores
de la variable de salida se listan en una columna separada asignada a cada una de las variables. De
este modo, la tabla de verdad constituye una especificación completa de la lógica combinacional
que se va a diseñar.
Para ilustrar el empleo de una tabla de verdad para la especificación de un problema, considé-
rese el caso de un bloque lógico para convertir números de 4-bits codificados en Gray a números
binarios. En la figura 2-1 se muestra cómo debe diseñarse la caja.

Fig. 2-1

27
28 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I

Los subíndices indican la posición de cada dígito en la secuencia. El 4 es el bit más significativo
y el 1 el menos significativo. La relación entre los códigos binario y Gray se presentó en la sección
1.5, y a partir de esta lista se puede construir una tabla de verdad.

Construcción de la tabla de verdad


Véase la tabla 2.1.
1. Hágase una tabla que tenga columnas separadas para cada variable de entrada y de salida.
2. Llénese el lado izquierdo de la tabla escribiendo todas las posibles combinaciones de los valores
de entrada en el orden binario ascendente (véase el ejemplo 2.1 a continuación). Si hay N va-
riables de entrada, habrá 2N renglones, cada uno de ellos especifica una combinación única.

3. Llénese cada renglón con el valor deseado correspondiente de cada una de las variables de salida
P.
La tabla de verdad tiene N + P columnas y 2N renglones, y es una especificación simbólica com-
pleta de una función lógica combinacional, la cual en este caso presenta la relación entre los códigos
binario y Gray.

EJEMPLO 2.1 Enseguida se describe un sencillo método para ordenar todas las posibles combinaciones de
los valores de N variables binarias y emplearlas en el lado de las entradas de la tabla de verdad (refiérase a
la tabla 2.1):
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I 29

1. Habrá 2N renglones (siempre un número par).


2. La columna que está más a la derecha (G1 en la tabla) contiene ls y Os alternados, empezando con un 0 el primer
renglón: 0, 1,0, 1,0, 1,0, 1, ...
3. La segunda columna a la izquierda está formada de dos 0s seguidos por dos 1s repetidos alternadamente: 0,0,1,1,
0,0,1,1,...
4. La columna 3 empieza con cuatro Os, seguidos de cuatro ls, repetidos de forma alternada.
5. En general, la k-ésima columna tiene 2(k-1) renglones, alternando 0s y 1s.

En muchos casos, la construcción de la tabla de verdad a partir de la especificación del proble-


ma puede ser muy difícil, por lo tanto, el proceso que se implante en lógica debe ser estudiado con
detalle, hasta que se comprendan sus características. La implantación de un sumador binario ilustra
la técnica. En este caso, el diseñador deberá sumar repetidamente pares de números binarios. Pues-
to que el sistema numérico binario es posicional, muy pronto se comprende que sólo se necesita
investigar la adición de dígitos individuales, ya que el procedimiento es el mismo para cada dígito.
De esta manera, un proceso que funciona para sólo un dígito, también trabajará para cualquier
otro dígito, y cualquier hardware que se diseñe sólo necesitará duplicarse para números de varios
dígitos.
El dígito producto de la suma depende de dos dígitos que se están sumando y también de la
presencia de un acarreo del dígito precedente de menor orden. El diseñador concluirá que hay tres
variables de entrada involucradas en la generación del dígito binario que se obtiene como resultado
de la suma: el dígito X, el dígito Y y el acarreo Q. Habrá dos variables de salida puesto que, en
adición al dígito S, producto de la suma, se debe generar un acarreo de salida Co que sirve como
el acarreo de entrada para el siguiente dígito de mayor orden. Cuando se han identificado todas
las variables de salida necesarias, la implantación lógica se puede representar mediante una caja
negra, como se muestra en la figura 2-2.

Fig. 2-2

Una vez que se ha entendido el proceso de adición de dígitos individuales, éste se puede descri-
bir mediante una tabla de verdad (tabla 2.2) la cual lista todas las posibles combinaciones de las
entradas y las correspondientes salidas. Ahora se tiene una especificación simbólica compacta de
la lógica combinacional que se debe diseñar que irá en la caja negra.
30 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I

Tabla 2.2
ENTRADA SALIDA
X Y Ci S Co
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

2.3 ECUACIONES BOOLEANAS Y FUNCIONES LÓGICAS BÁSICAS

Como se mostró anteriormente, la especificación completa de diseño de la lógica combinacional


se puede expresar mediante una tabla de verdad. Toda la información en esta tabla de verdad tam-
bién se puede formular como un conjunto de ecuaciones lógicas; una para cada salida. Significati-
vamente, es posible utilizar las eficientes estructuras funcionales de un área de las matemáticas
llamada álgebra booleana, la cual trata con variables que sólo tienen dos valores (en general conoci-
dos como VERDADERO y FALSO), si se consideran a los ls y 0s de la tabla de verdad como equi-
valentes a los VERDADEROS y los FALSOS, respectivamente del álgebra booleana.

Estructura de las ecuaciones booleanas


Las ecuaciones booleanas tienen las siguientes características básicas:
1. Cada ecuación tiene la forma F = f(A,B,C,. ..) donde F, A, B, C, etc., son variables.
2. Todas las variables son variables lógicas, caracterizadas por tener sólo dos posibles valores:
VERDADERO o FALSO, ALTO o BAJO, 1 o 0, etcétera.
3. Las variables lógicas están relacionadas con las ecuaciones mediante operadores lógicos o co-
nectivos: EQUIVALENCIA LÓGICA, AND, OR e INVERSIÓN LÓGICA.

Equivalencia lógica
Dos variables lógicas son equivalentes si tienen valores verdaderos idénticos. El símbolo para la
equivalencia lógica es un signo de igual ( = ).

EJEMPLO 2.2 La expresión A = B significa que si A es VERDADERA entonces B también debe ser VER-
DADERA, y si A es FALSA entonces B también debe ser FALSA. No debe haber ninguna otra posibilidad.
Obsérvese que las variables lógicas A y B pueden representar, si fuera el caso, expresiones lógicas complicadas.
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I 31

La función booleana AND


La función AND se define de tal manera que la salida es VERDADERA si y sólo si todas las entra-
das son VERDADERAS. El símbolo para AND lógica es un punto ( • ) .

EJEMPLO 2.3 La expresión F = A B establece que F es VERDADERA si A y B son VERDADERAS. En


el uso común se omite el punto, de modo que se escribe F = AB. La función AND se puede representar me-
diante la tabla de verdad:

La función booleana OR
La función OR se define de tal modo que la salida es VERDADERA si una o más de sus entradas
son VERDADERAS. El símbolo para la función lógica OR es el signo de más ( + ).

EJEMPLO 2.4 La expresión F = A + B establece que F es VERDADERA si A o B o ambas son VERDADE-


RAS. La representación de la función OR mediante la tabla de verdad es:

Inversión lógica
La expresión A' significa que si A es VERDADERA, entonces A' será FALSA, y viceversa.

Nótese que en la práctica, A o A' se puede emplear para indicar la inversión lógica. Quienes
utilizan procesadores de texto, prefieren la segunda forma.

EJEMPLO 2.5 En la expresión F = A'B, F es VERDADERA si A es FALSA y B es VERDADERA.


32 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I

La función OR exclusiva
El conectivo llamado OR exclusiva, aun cuando es muy útil para el diseñador de circuitos lógicos,
no es, estrictamente hablando, una función fundamental, booleana lógica. Ésta tiene dos variables
de entrada y produce una salida VERDADERA, si y sólo si, una de las entradas es VERDADERA
y la otra es FALSA.
La función OR exclusiva con frecuencia se relaciona con XOR y su símbolo es

EJEMPLO 2.6 La representación mediante la tabla de verdad de la función XOR, F = A B es:

Jerarquía de operaciones
Como en cualquier álgebra, la secuencia de la operación es muy importante. Para el álgebra boolea-
na, esta jerarquía de operaciones está ordenada como sigue:
INVERSIÓN LÓGICA
AND
OR
EQUIVALENCIA LÓGICA
El orden del desarrollo se puede modificar mediante el uso de paréntesis, igual que en el álgebra
convencional. Se llevan a cabo primero las operaciones entre los paréntesis más internos y se conti-
núa hacia el exterior, hasta que todos los paréntesis se hayan terminado.

Lectura de una ecuación booleana


La ecuación F = AB + B'C + A'(C + D') se lee como sigue:
a) F será 1 (verdadera) si el segundo miembro de la ecuación (SME) es también verdadero.
(Empleo de la igualdad)
b) El SME será 1 si cualquier combinación de AB o B'C o A'(C + D') es 1.
(Empleo de la definición de OR)
c) AB será 1 si ambas, A y B, son 1.
(Empleo de la definición de AND)
d) B'C será 1 si B' y C son 1.
B' será un 1 si B es 0.
C será un 1 si C es 0.
Así, B'C será un 1 si B y C son cero las dos.
(Empleo de AND y la INVERSIÓN LÓGICA)
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I 33

e) A'(C + D') será un 1 si A' es un 1 y (C + D') es también un 1. A' será un


1 si A es un 0.
(C + D') será un 1 si C es un 1 o si D es un 0, o si estas condiciones se mantienen. Así,
A'(C + D') será un 1 si A es 0 y si D es 0 o C es 1 (o las dos).
(Empleo de AND, OR, INVERSIÓN LÓGICA y se utilizan paréntesis)
Obsérvese cómo los paréntesis pueden afectar drásticamente el valor de una expresión. Por
ejemplo, el estudiante confirmará que A'C + D' es completamente diferente a A'(C + D') o A'(C +
D)'.

2.4 LA RELACIÓN ENTRE EL ÁLGEBRA BOOLEANA Y


LAS TABLAS DE VERDAD

Considérese nuevamente un módulo que se diseña para llevar a cabo la adición binaria de 1-bit.
El circuito en el bloque de la figura 2-2 forma la suma binaria de las entradas X, Y y el acarreo
de entrada Q a partir de un módulo previo. Hay dos variables de salida: la suma S y el acarreo
de salida Co. La tabla de verdad en la que se especifica el proceso de adición que se lleva a cabo
dentro de la caja se presenta en la tabla 2.3.
Tabla 2.3

Con el fin de reconstruir la información en la tabla de verdad en forma de una ecuación boolea-
na, se desarrolla una ecuación para cada una de las dos columnas. Obsérvese que los renglones de
la tabla de verdad corresponden a combinaciones únicas de los valores de entrada. Por ejemplo,
el último renglón corresponde a la situación donde X es 1 y Y es 1 y Ci es 1. Si se hace 1 equivalente
a VERDADERO, se ve, a partir del último renglón de la tabla de verdad, que una condición para
que S (y Co) sean VERDADEROS es que X, Y y Ci sean todos verdaderos. Así, a partir del ejemplo
2.3, se tiene
S = XYCi (2.1)
La función booleana AND necesita que todas las variables involucradas sean VERDADERAS. Con
el fin de aplicar esto a una tabla de verdad con números 0 (FALSO) como entradas se hace uso de
la INVERSIÓN LÓGICA, como se muestra en el ejemplo 2.5. De este modo, se ve que es posible
escribir una expresión AND para cada renglón de la tabla de verdad. Por ejemplo, la ecuación
S = X'YC´i (2.2)
34 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I

corresponde al tercer renglón de la tabla 2.3 y se puede leer como "S será VERDADERA cuando
(si) X' y Y y C´i son todas VERDADERAS". Esto es equivalente a establecer que "S será VERDA-
DERA cuando X y C´i sean FALSAS y Y sea VERDADERA".
Se ve, a partir de la tabla de verdad, que hay más de una situación de entrada (renglón) donde
la salida correspondiente es 1 (VERDADERO). Aquí, la función booleana OR es útil puesto que
se ve que la suma (S) es un 1 (VERDADERO), si se presenta cualquiera de las situaciones físicas
de los renglones 2, 3, 5 u 8. Expresándolo algebraicamente,
S = X'Y' Ci + X'Y C´i + XY' C´i + XY Ci (2.3)
De manera similar, la salida Co se puede expresar como:
Co = X'YCi + XY'Ci + XY C´i + XYCi (2.4)
Si estas dos ecuaciones se toman juntas, contienen toda la información que está en la tabla de
verdad (tabla 2.3) puesto que especifican cuáles combinaciones de entrada (renglones) producen ls
en las dos columnas. Las columnas de entradas que no son ls deben ser Os; no pueden tener otro
valor puesto que el álgebra booleana es bivaluada.

EJEMPLO 2.7 Es posible escribir también una ecuación booleana á partir de la tabla de verdad usando todos
los renglones donde la columna de salida contiene un 0. Para el sumador considerado, la ecuación booleana
resultante sería para S' = 1 y C´o = 1 (equivalente a valores 0 en S y Co). Esto da
S' = X'Y' C´i + X'Y Ci + XY' Ci + XY C´i
C´o = X'Y' C´i + X'Y' C´i + XY C´i + XY C´i

2.5 DIAGRAMAS LÓGICOS

Es útil dibujar un diagrama esquemático de la lógica que se va a diseñar. Este diagrama, en el que
se hace uso de símbolos lógicos estándar, es útil en la traducción de las ecuaciones lógicas a circuitos
funcionales.

Funciones básicas y sus símbolos


Los componentes que llevan a cabo las operaciones lógicas fundamentales OR y AND se llaman
compuertas y se pueden emplear como bloques funcionales para construir funciones lógicas extre-
madamente complejas. Sus símbolos, mostrados en la figura 2-3, tienen tres entradas, pero, en la
práctica, pueden tener tantas entradas como se necesiten.

Fig. 2-3
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I 35

Fig.2-4

La marca diagonal,* utilizada para indicar la inversión lógica (véase la figura 2-4), es un tercer
símbolo básico, muy útil para los diseñadores de circuitos lógicos, aunque no se ha adoptado um-
versalmente.

XOR

Como se mencionó en la sección 2.3, la función OR exclusiva no es importante; su lógica se puede


expresar en forma booleana como
F = AB' + BA' (2.5)
y se forma con dos compuertas AND y una OR, como se puede observar a partir de la tabla de
verdad del ejemplo 2.6. La función XOR se presenta con mucha frecuencia, sin embargo, se le ha
asignado un símbolo lógico (véase la figura 2-5).

EJEMPLO 2.8 En la figura 2-6 se muestra cómo se puede usar la compuerta XOR para producir una INVER-
SIÓN LÓGICA.
Dada una variable A se puede pasar a través de la compuerta sin cambios o invertida, dependiendo del
valor lógico de la segunda variable la cual sirve como un interruptor controlado. Este comportamiento se de-
muestra con facilidad observando en la tabla de verdad del ejemplo 2.6, que cuando B = 0, F es idéntica a A y
cuando B = 1, F es el inverso lógico de A.

Fig. 2-6

Combinación de símbolos
Es posible combinar gráficamente los símbolos básicos para obtener una clara imagen de una fun-
ción lógica. Por ejemplo, la ecuación F = A'BC + AB'D + A'B'CD' se puede bosquejar como en la
figura 2-7.

*E1 símbolo que se mostró en la figura 2-4 sólo es un símbolo lógico. La implementación del hardware se expone en la sección
4.3.
36 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I

Fig. 2-7

Por otro lado, algunas veces es necesario obtener la ecuación booleana básica a partir de un
diagrama lógico dado. Considérese el circuito mostrado en la figura 2-8. La salida F se produce
mediante una compuerta OR Gi la cual tiene tres entradas: la variable E y las salidas de las com-
puertas AND G2 y G3. Por conveniencia, se empleará la misma designación para una compuerta y su
salida. De este modo, dependiendo del contexto, G2 se puede tomar como el identificador de una
compuerta en particular o como la salida que produce dicha compuerta. Teniendo esta convención en
mente, es sencillo escribir las ecuaciones lógicas a partir del diagrama.
Procediendo de derecha a izquierda, se tiene,

F = E + G2 + G3
G 2 = AB'D
G3 = ABC

Fig. 2-8
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I 37

Mediante sustituciones algebraicas sencillas se obtiene

F = E + AB'D + ABC

La importancia del diagrama lógico viene del hecho de que los fabricantes de hardware digital
diseñan circuitos electrónicos de acuerdo con la lógica que estos diagramas realizan (por ejemplo,
compuertas OR); el símbolo usado en circuitos es en general una aproximación cercana, o una
variante, del símbolo lógico. De este modo, el diagrama lógico se puede usar para calcular las ne-
cesidades de hardware igualando los símbolos lógicos con sus compuertas electrónicas correspondien-
tes. Adicionalmente, las conexiones entre los símbolos de un diagrama lógico pueden conducir
directamente a la especificación del alambrado entre los elementos del hardware. Puesto que la in-
terconexión de los componentes físicos requiere apegarse a las reglas de compatibilidad de varias
interfaces, el diagrama lógico también puede ser una ayuda importante para el diseñador en la iden-
tificación y solución de problemas potenciales de conexión.

Problemas resueltos
2.1 Constrúyase la tabla de verdad para una caja que acepta cuatro dígitos de datos y produce
los tres dígitos de paridad adicionales para la corrección de un sólo error en código Ham-
ming, como se muestra en la tabla 1.4. Sean los dígitos de datos D4, D3, D2, Di y los dígitos
de paridad P3 P2, P1.
Empleando el método mostrado en el ejemplo 2.1 llénese el lado izquierdo de la tabla de verdad
con todas las posibles combinaciones de entrada. Después, asígnense los valores a las tres variables
de salida siguiendo las reglas definidas mediante la tabla 2.4. Por ejemplo, considérese el cuarto
renglón, 0011. El grupo de paridad 1 se ve que tiene un número par de ls puesto que D1 = 1, D2 =
1, D4 = 0 y D3 no es miembro del grupo. Para tener la paridad impar se debe sumar un 1, y esto se
logra haciendo el bit de paridad P1 igual a 1. Continuando el análisis, D1 es el único miembro del gru-
po de paridad 2 el cual es un 1 de modo que la paridad del grupo es impar y P2 = 0. El bit P3 = 0
debido a que D2 es el único 1 en el grupo de paridad 3. El proceso continúa para cada renglón hasta
que se completa la tabla, como se ve en la tabla 2.4.

2.2 Muchas calculadoras y relojes digitales emplean exhibidores de siete segmentos para su sali-
da. Cada dígito de estos exhibidores está formado por siete barras de material semiconduc-
tor emisor de luz (o de cristal líquido que absorbe la luz) colocadas como en la figura 2-9b).
Estas barras se energizan en forma selectiva para proveer la exhibición visual del dígito de
seado. Por ejemplo, si se va a mostrar el dígito decimal 2, entonces se energizan los segmen-
tos a, b, g, e y d. Constrúyase una tabla de verdad para una lógica que recibe un dígito BCD
como entrada y produce siete salidas para manejar el exhibidor del dígito correspondiente.
La tabla de verdad (tabla 2.5) se crea acomodando el lado de entrada en orden binario ascendente,
que corresponde a los dígitos 0 a 9. El lado de salida muestra los segmentos que se "encenderán" para
formar un dígito seleccionado. Un 1 indica un segmento energizado (visible).
Obsérvese que, debido a que las entradas son dígitos BCD, hay seis combinaciones binarias sin
usar de lado de la entrada.
38 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I

Tabla 2.4

2.3 Muéstrese cómo puede ser reescrita una tabla de verdad a partir de ecuaciones booleanas,
construyendo la tabla de verdad correspondiente a:

F = ABC + ABC + ABC + ABC


G = ABC + ABC

Obsérvese que este proceso es el inverso del que se usó para obtener las ecuaciones (2.3) y
(2.4).
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I 39

Tabla 2.5

El método general es:


1. Tabúlense todas las posibles combinaciones de las variables independientes en orden binario as-
cendente. Esto determina los renglones.
2. Constrúyase una columna de salida para cada variable dependiente.
3. A partir de la ecuación booleana de cada columna, determínese en qué renglones aparecen los ls.
4. Llénense los demás espacios de la columna de salida con Os.
Si se examina la ecuación para F se verá que hay tres variables independientes A, B, C, y cuatro
términos AND, cada uno de los cuales corresponde a un renglón de la tabla de verdad, donde la colum-
na de salida F contiene un 1. En cada uno de estos términos AND sustitúyase como 1 una variable
directa (no primada) y 0 para una variable invertida lógicamente para obtener los códigos de renglón
deseados. Se nota entonces que los cuatro renglones donde F = 1 corresponden a las variables de entrada
ABC = 000, 010, 100 y 101. Después de emplear el mismo procedimiento para identificar los ren-
glones correspondientes a G = 1, se puede llenar fácilmente la tabla de verdad (véase tabla 2.6).

Tabla 2.6

2.4 Escríbase el equivalente booleana de la función OR exclusiva A ⊕ B usando las funciones


booleanas básicas AND, OR, INVERSIÓN LÓGICA.
La función deseada puede ser escrita directamente de la tabla de verdad dada en el ejemplo 2.6:
40 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I

La función F = A ⊕ B será verdadera si A y NOT B es verdadera OR si B y NOT A es verdadera.


La propiedad característica que distingue a XOR de la OR común es que F no es verdadera si A y
B son verdaderas las dos.
En forma simbólica A ⊕ B = AB' + BA'.
2.5 Otra función de uso común es la OR exlusiva inversa, Muéstrese que su represen-
tación booleana es AB + A'B' y que la función define la equivalencia lógica.
Constrúyasee la tabla de verdad (véase la tabla 2.7).

Tabla 2.7

Se ve que la función es VERDADERA si A y B tienen el mismo valor (son equivalentes


lógicamente). De la tabla de verdad, se tiene que:

Nótese que el mismo resultado puede obtenerse aplicando los teoremas del álgebra booleana (véa-
se el problema 3.4).

2.6 Escríbanse la ecuaciones lógicas correspondientes a la tabla de verdad mostrada en la tabla


2.8.
F es VERDADERA para las combinaciones especificadas en los renglones 4, 6 y 8, y G es VER-
DADERA para los renglones 1, 2, 6, 7 y 8.

F = A´BC + AB´C + ABC


G = A´B´C´ + A´B´C + AB´C + ABC´ + ABC
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I 41

Tabla 2.8 Tabla 2.9

2.7 Dadas las siguientes ecuaciones de salida, determínese la tabla de verdad del sistema.
W = AB'C + A'B'C + ABC
X = A'B'C + AB'C + ABC' + ABC
Y = ABC + ABC + AB'C + AB'C + ABC

W será VERDADERA en los siguientes casos de ABC: 001,101 y 110. X será VERDADERA para
ABC = 001, 101, 110 y 111. Y será VERDADERA para ABC = 000,001, 100, 101 y 111. Véasela tabla
2.9.

2.8 Un sistema lógico se va a diseñar con dos salidas (F, G) y tres entradas (W, X, Y). La salida
F será VERDADERA si un número impar de entradas son VERDADERAS. La otra salida
G será VERDADERA si sólo una entrada es VERDADERA. Constrúyase la tabla de verdad
y escriba las correspondientes ecuaciones booleanas.
Créese el lado de entrada de la tabla de verdad con el número conocido de entradas (3) y aplíquense
los criterios de diseño a cada renglón para obtener las entradas en la tabla correspondientes a la salida,
como se muestra en la tabla 2.10.
Las ecuaciones son determinadas escogiendo las combinaciones de los reglones de entrada (términos
AND) que corresponden a los ls de salida:

F = W'X'Y + W'XY' + WX'Y' + WXY


G = W'X'Y + W'XY' + WX'Y'

Tabla 2.10 Tabla 2.11


42 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I

2.9 Dada la tabla de verdad mostrada en la tabla 2.11, escríbanse las ecuaciones booleanas des-
criptivas usando los términos donde la columna de salida contiene Os.
Las ecuaciones correspondientes a Os en las columnas de salida:

F' = A 'B 'C ' + A 'BC ' + A 'BC + AB 'C


G' = A 'B 'C ' + A 'B 'C + AB 'C ' + AB 'C + ABC '

2.10 La siguiente función representa una estructura XOR típica:

F(A, B, C, D) = (A⊕ B)⊕(C ⊕ D)

Construya la tabla de verdad.


La tabla de verdad deseada (tabla 2.12) se puede obtener llenando las columnas sistemáticamente
para cada término.
Una inspección cuidadosa de la tabla de verdad revela que F será 1 sólo cuando haya un número
impar de Is entre las entradas. Ésta es una propiedad general de la función OR exclusiva, muy útil
para la implantación de sistemas de generación de paridad y verificación de errores.

2.11 Escríbanse las ecuaciones booleanas para el decodificador de siete segmentos del problema
2.2.
Véase la solución del problema 2.2 y recuérdese que los renglones en la tabla de verdad correspon-
den a términos AND y que las columnas en cada salida corresponden a hacer una OR de estas ANDs
para cada salida.

a = W'X'Y'Z' + W'X'YZ' + W'X'YZ + W'XY'Z + W'XYZ' + W'XYZ + WX'Y'Z' + WX'Y'Z


b = WX'Y'Z' + W'X'Y'Z + W'X'YZ' + W'X'YZ + W'XYZ' + W'XYZ + WX'Y'Z' + WX'Y'Z
c = W'X'Y'Z' + W'X'Y'Z + W'X'YZ + W'XYZ' + W'XY'Z + W'XYZ' + W'XYZ + WX'Y'Z' + WX'Y'Z
d = W'X'Y'Z' + W'X'YZ' + W'X'YZ + W'XY'Z + W'XYZ' + WX'Y'Z' + WX'Y'Z
e = W'X'Y'Z' + W'X'YZ' + W'XYZ' + WX'Y'Z'
f = W'X'Y'Z' + W'XY'Z' + W'XY'Z + W'XYZ' + WX'Y'Z' + WX'Y'Z
g = W'X'YZ' + W'X'YZ + W'XY'Z' + W'XY'Z + W'XYZ' + WX'Y'Z' + WX'Y'Z

2.12. Dibújese el diagrama lógico para la salida P1 del generador de paridad del problema 2.1.
Las entradas relevantes se obtienen directamente de los renglones de la tabla de verdad. Véase la
figura 2-10.

2.13 Dibújese el diagrama lógico del sumador binario de la figura 2-2.


DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I 43

Tabla 2.12

Las dos expresiones booleanas relevantes se derivan directamente de la tabla de verdad [ecuacio-
nes (2.3) y (2.4)].

El diagrama lógico puede ser dibujado por inspección, como se muestra en la figura 2-11.

2.14 Escríbase la ecuación booleana que corresponde al diagrama lógico mostrado en la figura
2-12

Salidas Función

2.15 La lógica mostrada en la figura 2-13a se denomina medio sumador. Determínese su tabla
de verdad. También se muestra la combinación de dos medios sumadores para formar un
sumador completo (figura 2-136). Determínese la tabla de verdad para la lógica de la figura
2-136, y muéstrese que, de hecho, es un sumador completo capaz de aceptar un acarreo de
entrada (Ci) de un dígito de menor orden, y de generar un acarreo de salida (Co), como se
requiere en el siguiente dígito de mayor orden.
44 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I

Fig. 2-10

a) La tabla de verdad del medio sumador es

C(acarreo) = 1 sólo cuando A y B son 1. S(suma) = 1 sólo cuando A o B, pero no ambos, son ls.
Se observa que la lógica se apega a las reglas de suma de bits individuales, con un acarreo generado
sólo cuando dos ls aparecen simultáneamente en las entradas A y B.
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I 45

SUMA

ARCO DE SALIDA

Fig. 2-11

Fig. 2-12
46 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I

b) La tabla de verdad del sumador completo (tabla 2.13) se traza usando las siguientes variables
intermedias para facilitar el proceso:

La tabla 2.13 muestra que se genera un acarreo de salida en cualquier momento en que dos o más
entradas ls están presentes y que la suma de salida es 1 sólo cuando existe un número impar de ls de
entrada. Esto satisface las reglas de la suma binaria, como se describieron en la sección 1.4.

Fig. 2-13

2.16 En el diagrama mostrado en la figura 2-14, la caja representa un elemento lógico que produ-
ce una salida VERDADERA si y sólo si la mayoría de las tres entradas son VERDADERAS.
Dibújese el diagrama lógico equivalente para la caja.
Bosquéjese la tabla de verdad.

Por inspección, se muestra la ecuación booleana para F,

F = A'BC + AB'C + ABC' + ABC

de la cual se obtiene la lógica deseada, como se muestra en la figura 2-15.


DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I 47

Tabla 2.13

Fig. 2-14

Fig. 2-15
48 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I

2.17 En el diagrama del circuito mostrado en la figura 2-16, las cajas representan elementos lógi-
cos idénticos a los descritos en el problema 2.16. Escríbase la expresión booleana para G.

El circuito 1 se comporta como el presentado en el problema 2.16:

F1 = A'BC + AB'C + ABC' + ABC

El circuito 2 se comporta como una compuerta OR para C ' y D debido al 1 alambrado en una
entrada:

F 2 = CD · 1 + C'D' · 1 + C'D · 0 + C'D · 1


= CD + C'D' + C'D
= C' + D

Este hecho se puede confirmar con una tabla de verdad o tomando como referencia las relaciones
booleanas básicas presentadas en el capítulo 3.
El circuito 3 funciona como una compuerta AND para F 1 y F 2 debido al cero alambrado:

G = F' 1 F 2 · 0 + F 1 F' 2 · 0 + F 1 F 2 · 1+ F 1 F 2 · 0
= F1 F2 = (C' + D)(A'BC + AB'C + ABC' + ABC)

Fig. 2-16
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I 49

Problemas suplementarios
2.18 Dibújese un diagrama lógico que represente la función F = (A'B + AD')'C. Las entradas disponibles
son A, B, C y D.

2.19 Escríbase la expresión booleana que representa el diagrama de la figura 2-17.

Fig.2-17

2.20 Constrúyase la tabla de verdad para un circuito que multiplica dos números de 2 bits (A1( Ao, y Bj,
Bo).

2.21 Escríbase un conjunto de ecuaciones booleanas para el multiplicador del problema 2.20.

2.22 Dibújese un diagrama lógico para las ecuaciones del problema 2.21.

2.23 Hágase la tabla de verdad y dibújese el diagrama lógico para el sistema especificado por las siguientes
ecuaciones booleanas:

F = A'B'C + A'BC + AB'C


G = A'BC + A'BC + ABC'

2.24 Escríbase la tabla de verdad y las ecuaciones lógicas para un circuito que genera dígitos de paridad
para un código Hamming, como el descrito en la tabla 1.4.

2.25 Escríbase la tabla de verdad y las ecuaciones lógicas para un circuito que controla una luz (L) mediante
dos interruptores (A y B). La luz se enciende (VERDADERO) cuando A y B son VERDADERAS,
y cada interruptor puede encender o apagar la luz en forma independiente.

2.26 Determínense las ecuaciones booleanas y la tabla de verdad para el diagrama lógico mostrado en la
figura 2-18.
50 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I

Fig. 2-18

2.27 Escríbase la tabla de verdad para un sustractor de bits individuales que realiza la operación X — Y =
D. Procédase de una manera análoga a la que se empleó para desarrollar el sumador de bits individua-
les descrito en la sección 2.4. Utilice el concepto de “préstamo” para reemplazar “acarreo” y asúmase
que siempre habrá algo disponible para tomar el préstamo.

2.28 Empleando la tabla de verdad del sustractor de bits individuales creada en el problema 2.27, obténgan-
se las ecuaciones booleanas para las salidas.

2.29 Utilizando la tabla de verdad del sustractor de bits individuales creada en el problema 2.27 o las ecua-
ciones del problema 2.28, dibújese el correspondiente diagrama lógico.

2.30 Constrúyase la tabla de verdad para un sistema con tres entradas (A, B, C), y dos salidas (D, E), donde
D es VERDADERA si y sólo si un número impar de entrada es VERDADERO y E es verdadero cuan-
do al menos dos entradas son verdaderas.

2.31 Constrúyase la tabla de verdad para el sistema descrito por el diagrama lógico de la figura 2-19.

2.32 Escríbanse las ecuaciones booleanas para la lógica del problema 2.30.

2.33 Un sistema digital tiene cuatro salidas y cinco entradas, estas últimas con un número binario de 4 bits
y un bit de arriba/abajo (U/D). El número de entrada varía entre el equivalente binario de 3 y 12. Si
U/D es 0, la salida es el siguiente número binario mayor, y si U/D = 1, la salida es el siguiente menor.
La secuencia de números se cierra sobre sí misma de tal manera que una entrada de 12 producirá 3
a la salida y una entrada de 3 producirá 12. Llámense A, B ,C, D, U/D a las entradas y An, Bn, Cn,
Dn a las salidas, y dibújese la tabla de verdad para todas las combinaciones posibles.
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I 51

Fig. 2-19

Respuestas a problemas suplementarios

2.18 Véase la figura 2-20.

Fig. 2-20

2.19 A(B + C') + (C'D)'

2.20 El mayor número de 2 bits es 11 (3 decimal); por lo tanto, el mayor producto será 9 decimal (1001
binario). Se necesitarán cuatro bits para el producto. Denotándolos como C3, C2, C1 y C0, se obtiene
la tabla mostrada en la tabla 2.14.
52 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I

2.21

2.22 Véase la figura 2.21. Debe observarse que algunos términos AND aparecen en más de una expresión,
pero sólo es necesario evaluarlos una vez.

2.23 Véase la figura 2-22.

Tabla 2.14

2.24 Dado que los bits de paridad dependen de los bits de datos, estos últimos se usarán como las
entradas. La tabla de verdad se muestra en la tabla 2.15.
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I 53

Fig. 2-21
54 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I

Tabla 2.15

2.25 L = AB; tanto AB' o A'B deben apagar la luz (L' = AB' + A'B). También, una operación
individual en un interruptor hace que AB o A'B' enciendan de nuevo la luz. Cualquiera de las dos
ecuaciones booleanas pueden ser usadas para describir la operación y producen la correspondiente tabla
de verdad mostrada en la tabla 2.16.

L = AB + A'B' L' = A'B + AB'

Tabla 2.16
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I 55

Fig. 2-22

2.26 F = ABC' + A' BC' + AB'C. La tabla de verdad se muestra en la tabla 2.17.

Tabla 2.17
56 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I

2.27 Sea B0 un "préstamo de salida", esto es, un préstamo requerido de un dígito de mayor orden. Sea
Bi un "préstamo de entrada", lo cual significa que el bit se ha tomado prestado. La tabla de verdad
es mostrada en la tabla 2.18.

Tabla 2.18

2.29

Fig. 2-23
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I 57

2.30
Tabla 2.19

2.31
Tabla 2.20
58 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES I

2.32 D = ABC + ABC + ABC + ABC


E = ABC + ABC + ABC + ABC

2.33
Tabla 2.21
U/D A B c D An Bn Cn Dn
0 0 0 1 1 0 1 0 0
0 0 1 0 0 0 1 0 1
0 0 1 0 1 0 1 1 0
0 0 1 1 0 0 1 1 1
0 0 1 1 1 1 0 0 0
0 1 0 0 0 1 0 0 1
0 1 0 0 1 1 0 1 0
0 1 0 1 0 1 0 1 1
0 1 0 1 1 1 1 0 0
0 1 1 0 0 0 0 1 1
1 0 0 1 1 1 1 0 0
1 0 1 0 0 0 0 1 1
1 0 1 0 1 0 1 0 0
1 0 1 1 0 0 1 0 1
1 0 1 1 1 0 1 1 0
1 1 0 0 0 0 1 1 1
1 1 0 0 1 1 0 0 0
1 1 0 1 0 1 0 0 1
1 1 0 1 1 1 0 1 0
1 1 1 0 0 1 0 1 1
Capítulo 3
Diseño de circuitos lógicos
combinacionales II: manipulación

3.1 INTRODUCCIÓN

Como se mostró en el capítulo 2, la especificación de un diseño completo para un circuito lógico


combinacional se puede expresar en la forma de una tabla de verdad, y toda la información de la tabla
se puede expresar como un conjunto de ecuaciones lógicas. Puesto que la tabla de verdad y
la variables booleanas comparten la singular propiedad de ser bivaluadas se pueden emplear los úti-
les teoremas y las reglas de reducción de la álgebra booleana establecida. Estas técnicas permiten
manipular un conjunto de ecuaciones lógicas para obtener expresiones equivalentes, las que a me-
nudo resultan en realizaciones mediante circuitos significativamente más sencillos.
Una tabla de verdad o sus ecuaciones booleanas también se pueden mostrar gráficamente en la
forma de un mapa de Karnaugh (mapa K). Este método permite al diseñador lograr la rápida
simplificación de ecuaciones booleanas complicadas, explotando la excelente capacidad de recono-
cimiento de patrones del cerebro humano.

3.2 BASES DEL ALGEBRA BOOLEANA


Teoremas fundamentales
Hay varios teoremas útiles que emergen de las definiciones de las operaciones booleanas básicas,
que se presentaron en el capítulo 2. En la siguiente lista, A es una variable booleana (lógica), la
cual puede adoptar valores de 1 (VERDADERO) o 0 (FALSO):
1. Cualquier variable lógica sujeta a la operación OR con 1 produce como resultado un 1.
A+1=1 (3.1)
2. Cualquier variable lógica sujeta a la operación OR con 0 se mantiene sin cambio.
A+0=A (3.2)
3. Cualquier variable lógica sujeta a la operación AND con 1 se mantiene sin cambio.
A·1=A (3.3)
4. Cualquier variable lógica sujeta a la operación AND con 0 produce como resultado un 0.
A·0=0 (3.4)

59
60 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN

5. Cualquier variable lógica sujeta a la operación OR o AND con sí misma se mantiene sin cambio.
A+A=A (3.5a)
A·A=A (3.5b)
6. Cualquier variable lógica sujeta a la operación OR con su inversa produce como resultado un 1.
A + A' = 1 (3.6)
7. Cualquier variable lógica sujeta a la operación AND con su inversa produce como resultado un 0.
A · A' = 0 (3.7)

EJEMPLO 3.1 Los teoremas booleanos se pueden entender y recordar más fácilmente mediante el uso de una
analogía con circuitos eléctricos sencillos. Si se piensa en el 1 lógico como una trayectoria de conducción continua
del mismo modo que un interruptor cerrado, entonces es razonable que el 0 sea la no conducción o un interruptor
abierto. Cada función AND se puede entonces considerar como una conexión en serie de dos interruptores nor-
malmente abiertos, los cuales se cierran (conducen) cuando se operan los interruptores (véase la figura 3-1). Los
interruptores A y B deben operar los dos cuando la luz (L) esté encendida (VERDADERO). Si B = 0 (no activa-
do y por ende sin conducir), entonces la luz se debe apagar (FALSO) sin considerar el estado en el que está A,
y se ve que A · 0 = 0 (Teorema 4).

Batería
L = AB

Fig. 3-1

De manera similar, la función OR se puede visualizar como dos interruptores normalmente abiertos en para-
lelo (véase la figura 3-2). Los interruptores A o B pueden encender la lámpara por separado. Si B = 1 (activado
y conduciendo), entonces la luz se debe encender (VERDADERO), sin considerar el estado en el que está A,
y se ve que A + 1 = 1 (Teorema 1).

L = A+B

Fig. 3-2
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN 61

La función de inversión se representa mediante un interruptor normalmente cerrado, el cual deja de condu-
cir (FALSO) cuando se opera (véase la figura 3-3). En el circuito de la figura 3-3, es claro que B debe operar
a través de una función AND conjuntamente con NOT A (A') con el fin de encender la lámpara (VERDA-
DERO).

L = A'B

Fig. 3-3

Si se desea, se puede representar cualquier función lógica combinacional mediante la apropiada intercone-
xión de interruptores normalmente abiertos y cerrados. Por ejemplo, la expresión booleana F = AB + B'C'
+ A'(C + D') se puede representar mediante el circuito mostrado en la figura 3-4, en la que, cuando hay conduc-
ción, representa la condición F = VERDADERO.

Fig. 3-4

La analogía de las funciones lógicas mediante interruptores, además de su utilidad como ayuda para visuali-
zación, posee un significado histórico importante. Antes de la invención de los dispositivos de estado sólido y
los circuitos integrados (1Cs), las funciones lógicas fueron realmente construidas con interruptores electromecá-
nicos (relevadores) y las primeras computadoras literalmente contenían miles de estos dispositivos interconecta-
dos mediante mazos de alambres. ¡El término "bug" (insecto), como se aplica a fallas de hardware o de soft-
ware, muestra que su origen se remonta a los años de la década de 1940 cuando, el malfuncionamiento de una
computadora se debió a un insecto muerto alojado entre dos contactos de un relevador!
62 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN

Ley distributiva
A(B + C) = AB + AC (como en la álgebra ordinaria) (3.8)

Ley conmutativa
AB = BA (3.9a)
A(B + C) = (B + C)A (3.9b)

Teorema de absorción
ABC + ABC = AB(C + C) = AB (3.10)
Este teorema es muy útil en la reducción del número de términos en una expresión booleana.
Se puede comprobar su utilidad en los teoremas fundamentales 3 y 6. Un teorema útil relacionado es,
A + AB = A (3.11)
el cual se puede probar fácilmente empleando la ley distributiva y los teoremas fundamentales 1 y 3.

Teorema de De Morgan
Uno de los teoremas más importantes del álgebra booleana se puede expresar en dos formas relacio-
nadas:
AB = (A' + B')' (3.12a)
A + B = (A'B')' (3.12b)
De manera alternativa, el estudiante se puede familiarizar con la notación equivalente:

AB = (A + B) (3.13a)

A + B = AB (3.13b)

Remítase a la sección de Problemas resueltos para la prueba de este teorema. Una consecuencia del
teorema de De Morgan que se pasa por alto con frecuencia es que si un diseñador desea agregar
inteligentemente unas cuantas inversiones lógicas, entonces las ANDs se deben cambiar por ORs,
y viceversa. Esto significa que dentro de cada función AND también hay una OR, y se tiene que
cualquier hardware que pueda implantar una AND también puede hacer una OR con tal que se pue-
dan tener las suficientes inversiones lógicas.

Prueba de teoremas por exhausión


Los teoremas del álgebra booleana, expresados como ecuaciones lógicas, se pueden probar fácil-
mente por el método de exhausión.
1. Constrúyase una tabla de verdad de 2 N renglones, donde N es el número de variables.
2. Asígnese una columna separada para los elementos en ambos miembros de la ecuación.
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN 63

3. Evalúense estos elementos para cada una de las combinaciones de las variables de entrada (ren-
glón).
4. Si para cualquier combinación de entrada los dos miembros de la ecuación son idénticos a los
valores en la tabla de verdad, entonces se prueba el teorema.

EJEMPLO 3.2 Pruébese mediante exhausión la ley distributiva, A(B + C) = AB + AC, que se muestra en la
tabla 3.1. Obsérvese que las dos columnas encerradas en un cuadro en la tabla 3.1 son idénticas para todas las
posibles combinaciones de las variables de entrada (es decir, para cualquier renglón de la tabla de verdad); de
este modo las funciones booleanas correspondientes A(B + C) y AB + AC deben ser lógicamente equiva-
lentes.

Tabla 3.1

A B C B+C A(B+C) AB AC AB+AC


0 0 0 0 0 0 0 0
0 0 1 1 0 0 0 0
0 1 0 1 0 0 0 0
0 1 1 1 0 0 0 0
1 0 0 0 0 0 0 0
1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1
1 1 1 1 1 1 1 1

El siguiente es un teorema muy eficaz que surge con frecuencia del álgebra booleana
A + A'B = A + B (3.14a)
y se puede probar fácilmente mediante el método de exhausión.
El intercambio de variable única produce una forma complementaria de una ecuación muy útil
también, la (3.14a)
A' + AB = A' + B (3.14b)

Simplificación de expresiones booleanas mediante manipulación


Con frecuencia, las expresiones booleanas complicadas contienen términos redundantes, los cuales se
pueden identificar y remover mediante la aplicación sistemática de los teoremas e identidades
fundamentales.

EJEMPLO 3.3 Simplifíquese la expresión (ab + bc' + cd + bd' + bc).


f = ab + bc' + cd + bd' + bc
= ab + b(c' + c) + cd + bd' (Ley distributiva)
= ab + b + cd + bd' (Teoremas fundamentales 6 y 3)
= b + cd + bd' (Ecuación 3.11)
= b + cd (Ecuación 3.11 una vez más)
64 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN

3.3 IMPLICACIONES DEL HARDWARE

Las operaciones AND y OR de un diseño lógico combinacional se implantan en hardware mediante


circuitos o elementos electrónicos denominados compuertas, cuyas entradas y salidas son niveles de
voltaje que se pueden asociar a los estados lógicos, VERDADERO y FALSO. Con las conexio-
nes apropiadas, estas compuertas se pueden usar también para producir INVERSIONES LÓGI-
CAS. En las secciones 4.2 y 4.3 del capítulo 4 se discute con detalle la relación entre el hardware
y la lógica. En este momento, es suficiente señalar que las simplificaciones lógicas que se obtienen
a través del uso del álgebra booleana pueden afectar la cantidad de hardware requerido para im-
plantar un diseño lógico dado. Puesto que las compuertas ocupan un espacio sobre una pastilla
(chip) de silicio, la manipulación de las ecuaciones booleanas para obtener su equivalente lógico,
formas más sencillas, es común que influyan en el tamaño del chip y por lo tanto en la velocidad
y costo de un circuito integrado (IC). La simplificación algebraica efectiva requiere de habilidad
y experiencia y, para diseños lógicos complicados, la reducción óptima es tanto un arte como una
ciencia y a menudo se requiere de la utilización de un software poderoso para diseño asistido por
computadora.

3.4 MAPAS K BÁSICOS

Los mapas K, tomando la ventaja excepcional del cerebro humano para el reconocimiento de patro-
nes, se pueden usar como una poderosa herramienta en la simplificación de expresiones booleanas.
Los mapas K están directamente relacionados con las tablas de verdad, y su obtención se describe
enseguida:
1. Se crea un mapa para cada una de las variables de salida de la lógica que se va a diseñar.
2. Las coordenadas del mapa aparecen sobre dos de los lados ortogonalmente y engloban un con-
junto completo de todas las posibles combinaciones de las variables de entrada, ordenadas en
la forma del código Gray.

a) Tabla de verdad
Fig. 3-5
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN 65

3. Las entradas en el cuerpo del mapa son los valores de las salidas correspondientes a cada
renglón de la tabla de verdad.
Considérense los mapas asociados con las salidas, suma y acarreo de un sumador de un sólo
bit definido mediante la tabla 2.2.
En el mapa de la figura 3-5, cada entrada corresponde a un renglón de la tabla de verdad y
cada 1 corresponde a un término AND en la ecuación booleana para la variable de salida con la que
el mapa es asociado. Por ejemplo, el término encerrado en un círculo en el mapa de S tiene
las coordenadas X = 0, Y = 1 y Ci = 0. Esto corresponde al renglón 2 de la tabla de verdad y
el término AND X'YC'i en la expresión booleana para S (véase la sección 2.4).
El objetivo de codificar los ejes en Gray es para asegurar que las entradas adyacentes en el
mapa corresponderán a las entradas que difieren en el valor de sólo una variable. La utilidad de
este arreglo se discutirá brevemente.

EJEMPLO 3.4 La ecuación booleana completa para C o se puede leer directamente del mapa K correspon-
diente, escribiendo las coordenadas de cada uno de los ls en el mapa, enlazándolos mediante ORs. De este
modo, por inspección se obtiene a partir del mapa de Co en la figura 3-5:
C o = X'Y C i + XYC' i + XY C i + XY' C i

Empleo de los mapas K para simplificar expresiones booleanas


El par de ls adyacentes encerrados en un círculo en el mapa de Co corresponde a la expresión boo-
leana de dos términos XYCi + XY'Ci. El teorema dé absorción [ecuación (3.10)] se puede reducir
a un sólo término (XCi) debido a que los dos términos originales difieren sólo en una variable (Y).
En general, el teorema de absorción se puede aplicar directamente por inspección del mapa
observando los ls adyacentes, considerándolos como un bloque de dos ls, y determinando el
conjunto mínimo de coordenadas que pueden definir a este bloque. En la figura 3-5c, se ve que los
dos ls están en la segunda columna (Ci = 1) y, para ambos ls, X también es 1. Así, el término
booleano correspondiente es X Ci, y se ha eliminado Y, que es la única variable independiente que
adopta los dos posibles valores en el bloque de dos ls encerrados por el círculo.
Hay otros dos bloques de dos ls para Co en el mapa K, como se muestra en la figura 3-6. El
bloque b produce el término simplificado XY, eliminando Ci, y el bloque c produce Y Ci, eliminan-
do X. Obsérvese que se permite que los bloques se traslapen; en este ejemplo, uno de los ls se usa
tres veces.

Fig. 3-6
66 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN

Ahora es posible escribir la expresión booleana reducida para Co:

Compárese contra la expresión no simplificada de la ecuación 2.4, a la que es completamente


equivalente.

EJEMPLO 3.5 Confirmación algebraica de la simplificación de Co mediante el mapa K. El teorema funda-


mental 5 (sección 3.2) permite agregar dos veces el término XYC¡ en el segundo miembro de la ecuación boo-
leana del ejemplo 3.4 sin alterar su significado:
C o = XYC'i + XYC'i + XY'Ci+ XYCi + X'YCi + XYCi
Usando la ley distributiva,
Co = XY(Ci + C'i) + XCi (Y + Y') + YCi (X + X')
ya que A + A' = 1 (teorema 6),
Co = XY · 1 + XCi · 1 + YCi · 1
Finalmente, debido a que A · 1 = A (teorema 3), se tiene
Co = XY + XCi + YCi
Obsérvese la relativa simplicidad del método de los mapas K, mediante el empleo de reconocimiento de patro-
nes.

El mapa de cuatro variables


Considérese la siguiente función:
F(W,X,Y,Z) = XY'Z + X'Y'Z' + XZ' + W'XZ'
Para esta función es necesario un mapa de cuatro variables cuyas coordenadas se arreglan en
pares codificados en Gray, como se muestra en la figura 3-7. Para entender cómo evolucionan los
mapas, considérense los términos individuales. En el término XY'Z establece que X = 1, Y = 0
y Z = 1, en tanto que W es irrelevante. El valor de X = 1 se identifica con los dos renglones interme-
dios, en tanto que Y = 0 y Z = 1 están asociadas únicamente con la segunda columna. De este
modo, el término XY'Z se ubica en la intersección de los renglones intermedios y la segunda colum-
na, como está definido por los ls encerrados en el círculo en la figura 3-7 a. De manera similar, el
término XZ' se identifica por la intersección de los dos renglones intermedios (X = 1) y la primera
y cuarta columnas (Z = 0). Esto se mapea en un bloque rectangular de cuatro ls como se muestra
en la figura 3-7b. Obsérvese que el mapa K se puede considerar como si estuviera envuelto en un
tubo cuyas primera y última columnas o primero y último renglones son adyacentes. La figura 3-7c
presenta la función completa en un solo mapa.
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN 67

a) Término XY' Z b) Término XZ'

Z
Y

C) F(W, X, Y, Z)
Fig. 3-7

Reglas de simplificación
Estúdiese el mapa e identifíquense tantos bloques de ls adyacentes como sea posible, apegándose a
las siguientes reglas:
1. Cualquier círculo o bloque debe contener sólo 2N ls, donde N es un entero.
2. No se pueden incluir Os en ningún bloque.
3. Los bloques se pueden traslapar, es decir, los ls se pueden incluir en más de un bloque.
4. Los bloques se pueden formar considerando que los límites opuestos del mapa son adyacentes,
es decir, los renglones superior e inferior y la primera y última columnas.
5. Generalmente, la mejor simplificación se obtiene buscando primero los bloques más grandes.
Aplicando estas reglas al mapa para F produce los círculos mostrados en la figura 3-8.
68 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN

La expresión booleana simplificada se obtiene ahora por inspección. Cada bloque (encircula-
miento) de ls representa un término; así, hay tres términos que tienen variables que se identifican
fácilmente por sus coordenadas de bloque correspondientes. Lo encerrado en el círculo a), por
ejemplo, el de la primera columna, corresponde a Y = 0 y Z = 0. Puesto que W y X incluyen los
dos posibles valores, se ignoran en virtud del teorema de absorción. Los dos términos restantes se
obtienen de una manera similar, dando la siguiente ecuación en la que los bloques correspondientes
a cada término se indican mediante las letras entre paréntesis de la figura 3-8:

El método descrito se conoce como cobertura de ls. Recuérdese que el álgebra booleana se puede
emplear para formar una ecuación para la lógica inversa de una función escribiendo simplemente
una expresión que contenga los términos de los renglones de la tabla de verdad donde la salida es
0. En este caso se puede obtener una simplificación a partir del mapa K encerrando en un círculo
de bloques de 0s en lugar de ls y procediendo de la manera descrita. Este método se conoce como
cobertura de 0s y, en este ejemplo, da una expresión simplificada F' en lugar de F.

EJEMPLO 3.6 Obténgase la función simplificada F' a partir de una cobertura de Os del mapa de la figura 3-7c.
Véase la figura 3-9.

Fig. 3-9
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN 69

3.5 APLICACIONES ADICIONALES DE LOS MAPAS K


Los términos no importa
En muchas aplicaciones de lógica digital con frecuencia hay combinaciones de variables indepen-
dientes las cuales nunca intervienen. Un sistema que tiene como entradas dígitos BCD, siempre
serán grupos de 4 bits equivalentes a los números decimales de 0 a 9. Puesto que hay 16 combinacio-
nes únicas de 4 bits, hay seis combinaciones (que representan los números decimales de 10 a 15) que
no se usan. Los términos booleanos que representan combinaciones de entradas que no pueden
ocurrir son denominados "términos no importa", probablemente debido a que al diseñador "no
le importan" las salidas que producen dichos términos.
Considérese llevar a cabo la lógica para una interface que acepta entradas en DCB y produce
las salidas para manejar un exhibidor visual de siete segmentos (la tabla de verdad para este bloque
se desarrolló en el problema 2.2). La especificación para el segmento a se trazó en la figura 3-10,
donde los bits en DCB se han etiquetado con W, X, Y y Z.

[x indica términos "no importa"]

Fig. 3-10

Una cobertura de ls convencional produce el mapa "a" de la figura 3-11, y el resultado de la


función es
a = W'Y + X'Y'Z' + W'XZ + WX'Y'
Puesto que algunas combinaciones de entrada contienen "X" que nunca se presentan, se puede
asignar cualquier valor que se quiera a X. Obviamente es ventajoso hacer X = 1, puesto que esto crea
oportunidades adicionales para extender los círculos en el mapa. Una cobertura de ls toma la ventaja
de los "términos no importa" y la expresión booleana resultante se muestra en la figura 3-12.

Fig. 3-11
70 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN

[x indica términos "no importa"]

Fig. 3-12

Puesto que esta ecuación es obviamente más sencilla que la que se obtiene sin el uso de los "tér-
minos no importa", parece razonable agregar una regla de cobertura adicional a la lista de reglas
de simplificación de la sección 3.4:
6. Los términos no importa pueden emplearse para extender la cobertura de bloques, pero no nece-
sitan ser cubiertos ellos mismos.
Es importante observar que no hay necesidad de cubrir algunas o todas las X, para tal fin. Se pue-
den tratar ya sea como ls o Os y usarlos como el diseñador lo crea más conveniente.

Mapas de cinco y seis variables


A medida que el número de variables en la expresión lógica se incrementa a más de cuatro, la utili-
dad de los mapas K para reconocimiento de patrones comienza a disminuir. Sin embargo, los dise-
ñadores pueden extender la utilidad del mapa, haciendo uso de la simetría de espejo. Considérese
el mapa de cinco variables que se muestra en la figura 3-13. Nótese que los ejes coordenados aún
están en código Gray, lo cual asegura que la adyacencia de los cuadros (localidades en el mapa)
difiera sólo en una variable. Sin embargo, esto no implica que todos los cuadros que difieran en
una sola variable estén físicamente adyacentes. Los términos relevantes al proceso de simplificación
que no están adyacentes físicamente se pueden localizar creando un eje de reflexión en medio de
la lista coordenada de las tres variables, como se muestra; aquellos cuadros que tienen simetría de
espejo con respecto a este eje también son adyacentes en el sentido que difieren sólo en una variable.
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN 71

EJE DE REFLEXIÓN

Fig. 3-13

Las entradas WW son adyacentes en el sentido usual y dan un término reducido A'CD'E'. Las
entradas XX son simétricas con respecto al eje de reflexión. Una inspección muestra que difieren
sólo en la variable A, de modo que el término reducido es B'CD'E. Las entradas YYYY forman
un bloque de cuatro cuando se toma en cuenta el eje de reflexión y produce el término reducido
BCD.
Es posible extender el concepto de reflexión a seis y más variables, pero la identificación de
patrones se hace más complicada.

EJEMPLO 3.7 Un mapa de seis variables con dos ejes de reflexión se muestra en la figura 3-14. Las entradas
XXXX son simétricas con respecto a los dos ejes de reflexión y corresponden al término B'CE'F. Las ocho
entradas Y también son simétricas con respecto a ambos ejes de reflexión y corresponde a BCE. Las dos W
son simétricas sólo al eje de reflexión vertical y contribuyen con el término ligeramente simplificado ABC'EF.

Fig. 3-14
72 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN

Mapas de seis variables


Un enfoque alternativo para los mapas de seis variables es crear 4 mapas de cuatro variables y men-
talmente considerar que están apilados uno sobre otro (véase ejemplo 3.8). Si estas gimnasias men-
tales se realizan, las reglas básicas de adyacencia se pueden aplicar de la manera usual.

EJEMPLO 3.8 Un enfoque alternativo para el trazo de seis variables se muestra en la figura 3-15. Después
de acomodar los cuatro mapas (franjas o rebanadas) en el orden EF = 00, EF = 01, EF = 11 y EF = 10,
se definen las siguientes adyacencias:
WW Adyacencia sólo en la franja (mapa) inferior (dando el término B'C'DE'F')
YYYYYYYY Adyacencia con y entre las dos franjas (dando el término BDF)
XXXXXXXX Adyacencia con y entre las franjas superior e inferior (dando el término B'D'F). Nótese
que las dos entradas X en el mapa EF = 11 no se incluyen en este agrupamiento
ZZ Adyacencia entre las dos franjas del medio (dando el término A'BCD'F)

Fig. 3-15

Reducción asistida por computadora


Como se puede ver de los ejemplos anteriores, la identificación de la adyacencia de los mapas puede
ser muy tediosa a medida que se incrementa el número de variables a cinco o más. Afortunadamen-
te, hay una cantidad considerable de softwares para la reducción de expresiones booleanas, los cua-
les permiten el empleo de una computadora para obtener la simplificación de expresiones mul-
tivariables. Este software es usualmente de fuerza bruta el cual emplea algoritmos que aplican
inteligentemente una técnica de prueba y error.
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN 73

Diseñando la OR exclusiva
Las funciones OR exclusiva tienden a proyectarse en un tablero patrón. Considérese el mapa de la
expresión booleana, F = (A ⊕ B) ⊕ (C ⊕ D) del problema 2.10, como se muestra en la figura
3-16. Puesto que no hay adyacencias, se concluye que la función dada está en su forma más simple
que se puede expresar.
Con mucha frecuencia, si un mapa se puede manipular en un tablero o un tablero patrón, la
función asociada se puede simplificar de manera muy efectiva empleando XOR.

Fig. 3-16

EJEMPLO 3.9 Dado el mapa de la figura 3-17, se desea obtener una simplificación óptima. La apropiada
asignación de los ls o Os a términos "no importa" en los últimos dos renglones puede crear un tablero patrón
correspondiente a la función trazada en la figura 3-16. Es interesante comparar este resultado con la expresión
que se obtiene mediante reducciones por adyacencia mostradas en la figura 3-18.

Fig. 3-17 Fig- 3-18

Problemas resueltos
3.1 Demuéstrese que A + A' = 1.
Puesto que la variable lógica A puede ser sólo 1 o 0, si A = 0, entonces A' = 1, y viceversa. De
este modo, el lado izquierdo de la expresión dada nunca puede tener dos 0s, y el resultado es obvio a
partir del teorema fundamental 1.
74 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN

3.2 Pruébense las dos formas de expresar el teorema de De Morgan.


Verifíquese mediante exhausión.
1. AB = (A' + B')'. Como se ve en la tabla 3.2, las dos columnas encerradas en una caja son idénticas
para cualquier combinación de las variables A y B.

Tabla 3.2

2. A + B = (A'B'). Véase la tabla 3.3. Una vez más las dos columnas encerradas en una caja prueban
el teorema.

Tabla 3.3

Tabla 3.4
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN 75

3.3 Pruébese la siguiente expresión booleana mediante exhausión: AB + BC + A'C = AB +


A'C.
Fórmese una tabla de verdad con las columnas para cada una de las variables y términos (tabla
3.4). Si, para todas las combinaciones de las variables independientes, el primero y segundo miembros
de la expresión dada tienen el mismo valor lógico, entonces las dos expresiones son idénticas.
Un método más sencillo para probar la identidad dada es emplear la simplificación mediante un
mapa K. (Véase el problema 3.7.)

3.4 Muéstrese que las dos expresiones booleanas dadas son equivalentes, respectivamente, a la
función OR exclusiva y a su inversa como se establece en las ecuaciones (3.15) y (3.16).
AB' + BA' = A ⊕ B (3.15)
AB + AB' = A⊕B (3.16)
La ecuación (3.15) se verifica fácilmente por inspección de la tabla de verdad para A ⊕ B. La ecua-
ción (3.16) se puede probar mediante el teorema de De Morgan [ecuaciones (3.12a) y (3.12b)]:
A ⊕ B = AB' + BA' = (A' + B)(B' + A)
= AB' + A'A + BB' + BA
Puesto que las dos, A'A y BB', son 0 [ecuación (3.7)], mediante la ecuación (3.16) se obtiene la
identidad expresada.

3.5 Pruébese o refútese la siguiente identidad. Si ésta se prueba, ¿se tiene que ACD = 0?
A'C + CD + ABC = A'C + CD + ABC' + ACD

Tabla 3.5
76 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN

Fórmese una tabla de verdad con las columnas para cada una de las variables y términos,
como se muestra en la tabla 3.5. LS indica el lado izquierdo (de la identidad) y RS el lado
derecho de la misma. La identidad se prueba por exhausión puesto que LS = RS para todas las
posibles combinaciones de las variables independientes. Obsérvese que esto no implica que
ACD es 0. Más bien, que el término es redundante puesto que es igual 1 sólo cuando el resto de
los términos son 1.

3.6 Pruébense las siguientes identidades booleanas.


a) A(B' + C) = AB' + AC
b) A(A + B'C) = A
c) A'B' + AB' + AB = A + B'
a) A(B' + C) = AB' + AC. Empleando exhausión se obtiene la tabla 3.6

Tabla 3.6

La identidad se prueba puesto que las entradas indicadas por negritas en la tabla 3.6 corresponden para
todas las posibles combinaciones de las variables independientes A, B y C.
b) A(A + B'C) = A. Empleando exhausión se obtiene la tabla 3.7

Tabla 3.7
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN 77

Mediante manipulación algebraica:


A(A + B'C) = A + AB'C (ley distributiva y teorema 5)
= A(l + B'C) (ley distributiva)
=A (teoremas 1 y 3)
c) A'B' + AB' + AB = A + B'. Empleando exhausión se obtiene la tabla 3.8

Tabla 3.8

Mediante manipulación algebraica:


A'B' + AB' + AB= (A + A')B' + AB (ley distributiva)
= B' + AB (teorema 6)
= B' + A [ecuación (3.14b)]

3.7 Empléese un mapa K para probar que (AB + BC + A'C) = (AB + A'C).
El primer miembro de la expresión se representa como se muestra en la figura 3-19.

Fig. 3-19

El primer 1 en el renglón 3 se define mediante las coordenadas ABC y el 1 adyacente mediante


ABC. Puesto que ABC + ABC = AB(C + C) = AB, los dos ls en el renglón 3 definen al término
AB. La variable C se elimina ya que adopta los dos posibles valores. (Véase la sección 3.4.)
De manera similar, BC se representa en el mapa como dos ls en la segunda columna y se coloca
de modo que A sea 0 en un caso y 1 en el otro. A'C también está en la columna 2, de modo que se
puede eliminar B. Ahora se pueden encerrar los términos adyacentes para obtener una simplificación,
como se muestra en la figura 3-20.
78 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN

Fig. 3-20

Todos los ls se toman en cuenta para las dos coberturas mostradas de modo que la función se
puede expresar mediante AB + A'C. Se ve que BC es redundante, como se demostró en el problema
3.3.

3.8 Represéntese la función F(A,B,C,D) = AB'C + B'D' + BCD' + AB'C'D.


En la figura 3-21, AB'C es la intersección del cuarto renglón (AB') y de la tercera y cuarta colum-
nas (C). B'D' es la intersección de la primera y cuarta columnas (D') y del primer y cuarto renglones
(B'). BCD' es la intersección del segundo y tercer renglones (B) y la cuarta columna (CD'). AB'C'D
es la intersección del cuarto renglón (AB') y la segunda columna (C'D).

Fig. 3-21

3.9 Con el mapa desarrollado en el problema 3.8 se puede obtener una forma alternativa simpli-
ficada para F.
En la figura 3-22, CD' es el bloque rectangular de 4 x 1 de la cuarta columna. AB' es el bloque
rectangular de I x 4 del cuarto renglón. B'D' está definido por las cuatro esquinas, es decir, la
intersección del primer y cuarto renglones y la primera y cuarta columnas. La función es
F = CD' + AB' + B'D'
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN 79

CD´

Fig. 3-22

3.10 Con el mapa desarrollado en el problema 3.8 obténgase una expresión simplificada para F'.
Remítase a la figura 3-23. La cobertura de Os mostrada produce la expresión deseada. Los térmi-
nos individuales se etiquetan en el diagrama para facilitar su identificación.

Fig. 3-23

3.11 Represéntese la función de cuatro variables que es VERDADERA siempre que tres o más
de las variables sean VERDADERAS, y escríbase la expresión booleana más sencilla
posible.
Dibújense los ejes del mapa empleando A, B, C y D como variables de entrada y cuéntese el núme-
ro de ts en las coordenadas de cada cuadro. Véase la figura 3-24. La mejor simplificación que se puede
hacer es cuatro coberturas de dos ls cada una, como se muestra en la figura 3-25. La función que resul-
ta es:
F = BCD + ABC + ACD + ABD
= AB(C + D) + CD(A + B)
80 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN

Coordenadas que tienen tres unos:


(A = 1, B = 1, C = 1, D = 0).

Coordenadas donde todas las variables son 1s.

Fig. 3-24

Fig. 3-25

3.12 Empleando los términos "no importa", obténgase y redúzcase la expresión booleana para
la salida del segmento b de un manejador de un exhibidor de siete segmentos que tiene entra-
das DCB. Véase el problema 2.2.
El mapa se obtiene a partir de la tabla de verdad del problema 2.2, el cual W, X, Y, Z representan
los cuatro bits de un dígito dado en BCD. Véase la figura 3-26.

Fig. 3-26
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN 81

3.13 La expresión booleana para la salida b de un DCB a un circuito exhibidor de siete segmentos
contiene los términos Y'Z' + YZ. En la sección 3.5 se ve que la expresión para el segmento
a también contiene esta estructura. Demuéstrese que en lugar de usar tres compuertas, el tér-
mino se puede realizar con la inversión lógica y una OR exclusiva.
Bosquéjese la tabla de verdad para F = Y'Z' + YZ, como se muestra en la tabla 3.9.

Tabla 3.9

Nótese que F' es la función XOR de Y y Z (véase la sección 2.3), de modo que su inversa es la
función deseada F. El diagrama lógico del segmento b se puede así dibujar en forma simplificada, co-
mo en la figura 3-27.

Fig. 3-27

3.14 El mapa de una función de cinco variables se muestra en la figura 3-28. Obténgase una expre-
sión simplificada para F(A,B,C,D).

Fig. 3-28
82 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN

Empléese un eje de reflexión y una cobertura de ls para obtener la siguiente función, cuyos térmi-
nos se etiquetaron en el mapa de la figura 3-29.

Fig. 3-29

3.15 Del mapa de cinco variables que se muestra en la figura 3-30 y que contiene algunos términos
"no importa" obténgase una simplificación tanto para los ls como para los Os.

Fig. 3-30
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN 83

Remítase a la figura 3-31 y se verá que la cobertura de ls produce:

F = BC + A'CD' + B'C'E' + A'CE'

c) d) b) a)

Debe observarse que cada una de las mitades del mapa se pueden tratar independientemente, es
decir, las coberturas no necesitan ser simétricas con respecto al eje de reflexión [(a) y (d), por ejemplo].

EJE DE REFLEXIÓN
a) Las cuatro esquinas
(Mitad superior)

b) Las cuatro esquinas


(El Mapa completo)

Fig. 3-31

La cobertura de 0s se muestra en la figura 3-32. Debido a la simetría, las coberturas a) y c) se


pueden tratar como un sólo bloque de ocho 0s, el cual produce el término CE. Para confirmarlo,
considérense separadamente:

a) BC'E c) B'C'E
BC'E + B'C'E = C'E(B + B´) = CE
84 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN

Fig. 3-32

De este modo, se ve que la expresión booleana deseada es

3.16 Se desea diseñar un sistema digital lógico combinacional que tenga la tabla de verdad que se
muestra en la tabla 3.10. Las entradas son A, B, C y D y la salida es F. Las X corresponden
a las combinaciones de las entradas que nunca se presentan y por lo tanto son estados "no
importa".

Tabla 3.10
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN 85

a) Dibújese el mapa K, simplifíquese tanto como sea posible y escríbase la expresión boolea-
na resultante para F.
b) Dibújese el diagrama lógico correspondiente para la función simplificada F.
a) Las coordenadas del mapa K para cada 1 y cada "no importa" se leen fácilmente de la tabla
de verdad. El renglón 6, por ejemplo, dice que X se debe situar en A = 0, B = 1, C = l y
D = 0, el cual está localizado en la intersección del segundo renglón y la cuarta columna del
mapa mostrado en la figura 3-33. Simplificando, se obtiene la figura 3-34.

Fig. 3-33 Fig. 3-34

La ecuación resultante es,

b) El diagrama lógico se dibuja por inspección (véase la figura 3-35).

C + B1 D1

Fig. 3-35
86 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN

3.17 Dado el diagrama lógico mostrado en la figura 3-36,


a) Escríbase la ecuación lógica para F.
b) Simplifíquese la lógica tanto como sea posible.
c) Dibújese el diagrama lógico simplificado.

Fig. 3-36

Las compuertas AND asociadas con cada uno


de los términos se indican mediante los números 1 al 4.
b) Cada término de la ecuación anterior se representa con un par de ls como se muestra en la fi-
gura 3-37.
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN 87

Mapa F
Fig. 3-37

Fig. 3-38

Es claro que la simplificación se puede lograr combinando los términos 1 y 3 en una cobertura
que englobe cuatro ls como se muestra en la figura 3-38. La ecuación resultante es

c) Los tres términos indicados en la ecuación anterior corresponden a las salidas de las compuertas
AND en el diagrama lógico de la figura 3-39.
88 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN

Fig. 3-39

3.18 Se necesita diseñar un circuito lógico para verificar la paridad. Demuéstrese el uso de la com-
puerta OR exclusiva para tal propósito.
La verificación de paridad comprende el determinar la existencia ya sea de un número par o impar
de ls en una palabra binaria dada. La ausencia de paridad impar debe indicar un 0 binario o paridad
par; no existen otras posibilidades.
Considérese el circuito XOR mostrado en la figura 3-40. A + B produce un 1 cuando las dos en-
tradas son diferentes, o de manera equivalente, cuando hay un número impar de ls en la entrada de
la compuerta Gi. Después considérese G2. La salida F será un 1 si hay un número impar de ls a su
entrada, esto quiere decir que Gi debe producir un 1 cuando C es 0, o, si G! es 0, C debe ser 1. Se
presentan dos posibilidades:
1. Si G1 = 1, entonces A, B es impar (tiene un número impar de ls) y F puede ser 1 sólo si C = 0.
2. Si G1 = 0, entonces A, B es par o 0 y F puede ser 1 sólo si C = 1.

Fig. 3-40
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN 89

En ambos casos, F puede ser 1 sólo si la entrada A, B, C tiene un número impar de ls (paridad
impar). Esto se demuestra claramente mediante la construcción de un mapa K para F como se muestra
en la figura 3-41. Considérese la posibilidad de agregar una tercera compuerta XOR.

Fig. 3-41 Fig. 3-42

Como se muestra en la figura 3-42, F será 1 si A, B, C es impar. G3 producirá un 1 si F = 1 y


D = 0 [(A, B, C, D) impar] o si F = 0 y D = 1. En el último caso A, B, C deben ser par o cero, y
la necesidad de que D = 1 requiere que A, B, C, D tengan paridad impar. Debe ser claro que el circuito
se puede extender indefinidamente agregando compuertas XOR en cascada de modo que la paridad
de un número binario de cualquier longitud se pueda verificar.
3.19 El circuito XOR del problema 3.18 produce un 1 cuando su entrada tiene paridad impar.
Muéstrese que la inversión lógica de esta salida producirá un 1 para una entrada de paridad
par.
La inversión lógica de la salida significa que para cada combinación de las variables de entrada,
la salida cambia de 1s a 0s y de 0s a 1s. El mapa K resultante se muestra en la figura 3-43. Se puede
ver a simple vista que este arreglo produce un 1 cuando A, B, C es par o 0 y la expresión booleana
correspondiente representa la función XOR inversa F' = A ⊕ B ⊕ C (refiérase al problema 3.4).
Si el hardware tiene un medio para invertir la salida, sólo será necesario añadirlo al circuito del
problema 3.18, para convertir 1 = paridad impar a 1 = paridad par. La realización en hardware de
la inversión lógica se discutirá en la sección 4.3.

Fig. 3-43 Fig. 3-44


90 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN

3.20 Muéstrese que la salida de un sumador de un sólo dígito de la sección 3.4 se puede realizar
con OR exclusivas.
El mapa K para S es idéntico al de la función XOR de tres entradas del problema 3.18 lo cual
significa que las dos funciones tienen la misma tabla de verdad y deben ser equivalentes. Por lo tanto la
realización para la salida (suma) es como se muestra en la figura 3-44.
3.21 Empleando los bloques (cajas) definidos en el problema 2.16 encuéntrese y simplifíquese la
expresión para la lógica que lleva a cabo el sistema mostrado en la figura 3-45.

Fig. 3-45

Con la tabla de verdad que se obtuvo en el problema 2.16 y creando el mapa K apropiado se obtie-
ne la figura 3-46. Después de sustituir las variables indicadas, las expresiones lógicas resultantes para
la salida de cada uno de los bloques (cajas) se simplifican empleando el álgebra booleana:

W = AB + A'B + AA' = AB + A'B + 0 = B(A + A')


= B 1 =B
X = CD + CW + DW
= CD + BC + BD
Y = A'W + A'D' + D'W
= A'B + A'D' + BD'
Z = XY + XC + YC
= (CD + BC + BD)(A'B + A'D' + BD') + (CD + BC + BD)C + (A'B -I- A'D' + BD')C´
Z = T1 + T2 + T3
donde, T1 = (CD + BC + BDXA'B + A'D' + BD')
= A'BCD + ABC + A'BD + A'BCD' + BCD'
T2 = (CD + BC + BD)C´ = BC´D
T3 = (A'B + A'D' + BD')C' = A'BC' + A'C'D' + BC'D'
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN 91

Fig. 3-46

La expresión para Z se puede simplificar mediante su representación. Iniciando con T1, como se
muestra en la figura 3-47. Insertando los términos T2 y T3 en el mapa de T1 se obtiene el mapa com-
puesto que se muestra en la figura 3-48 a partir del cual se obtiene la función deseada:

Z = A'C'D' + A'B + BD' + BC'

Fig. 3-47

Fig. 3-48

3.22 Empleando la tabla de verdad para el manejador del exhibidor de siete segmentos desarrolla-
do en el problema 2.2, simplifíquese la lógica empleando mapas K.
En la figura 3-49 se muestran los mapas K. Un conjunto de soluciones es
92 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN

a = W + Y + XZ + X'Z'
b = X' + YZ + Y'Z'
c = X + Y' + Z
d = W + XY'Z + X'Y + X'Z' + YZ'
e = X'Z' + YZ'
f = w + Y'Z' + XY' + XZ'
g = W + YZ' + X'Y + XY'

Debido a gran número de términos "no importa", hay muchos posibles arreglos. El conjunto par-
ticular de soluciones seleccionadas tiene la ventaja de la apariencia múltiple de términos individuales,
los cuales pueden ayudar a reducir la cantidad de compuertas. Con frecuencia la experiencia es un fac-
tor importante en la obtención de una simplificación óptima.

"a" "b" "c"

"d" "e" "f"

"g"
Fig. 3-49
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN 93

Problemas suplementarios
3.23 Simplifíquense las siguientes funciones booleanas para minimizar el numero de variables y términos.
a) BCD + B'C + BCD'
b) (A + B)'(A' + BT
c) (A + AB' + CD)'
d) B'(B + C) + D' + CD
e) {A[B + QA'+ B)]}'

3.24 Para cada una de las funciones booleanas, encuéntrese el complemento y simplifíquese tanto como
se pueda.
a) [(AA' + B)']B
b) (AB + AC)
c) ABC + ACD + A'BC' + B'D
d) A'B' + DC'

3.25 Para el multiplicador de dos dígitos descrito en el problema 2.20, simplifíquense las ecuaciones de dise-
ño empleando mapas K y determínese las compuertas lógicas requeridas.

3.26 En el problema 2.24 se obtuvieron las ecuaciones booleanas para los dígitos de paridad de un código
Hamming sencillo. Encuéntrese una implantación para P3 empleando OR exclusivas.

3.27 En el problema 2.25, se desarrolló la tabla de verdad para el problema de encendido. Muéstrese el ma-
pa K y esbócese el diagrama lógico.

3.28 Simplifíquense las expresiones booleanas para el restador del problema 2.28.

3.29 Empleando el mapa K de la figura 3-50, hágase el mejor uso posible de los términos "no importa"
para simplificar la expresión para F. Asúmase que se desea el mínimo número de coberturas máximas.

Mapa "F"

Fig. 3-50
94 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN

3.30 Empleando la tabla de verdad desarrollada en el problema 2.33, prodúzcanse los mapas K para las
salidas An y Cn y hágase el mejor uso posible de los términos "no importa" para simplificar las ex-
presiones booleanas. Empléese el mínimo número de coberturas máximas.

3.31 Se desea diseñar un circuito lógico combinacional que cause que una luz encienda cada vez que el equi-
valente decimal de una entrada binaria de 4 bits sea divisible entre 3. Se sabe que los números 0, 1,
7, 11 y 14 nunca se presentarán como entradas. Represéntese la función, simplificándola tanto como
sea posible con una cobertura de ls de Karnaugh, y dibújese el diagrama lógico.

3.32 Un sistema tiene cuatro entradas para producir una salida que sea VERDADERA si y sólo si un núme-
ro impar de las entradas son VERDADERAS. Diséñese un circuito lógico para satisfacer dichas especi-
ficaciones.

3.33 Un mapa de seis variables para una función Z se muestra en la figura 3-51. Obténgase una expresión
booleana simplificada para Z empleando un número mínimo de coberturas máximas.

3.34 Háganse los mapas K para un convertidor de código Gray de cuatro bits. Señálense los dígitos binarios
mediante D, C, B, A y los bit en Gray mediante W, X, Y, Z.

Fig. 3-51

3.35 Obténganse las expresiones booleanas simplificadas para el convertidor a código Gray de cuatro bits
del problema 3.34.

3.36 Empleando mapas K, demuéstrese que A'B + C'D' + A'B'C = C'A' + ABC + AC'D'.

3.37 Muéstrese que A'B + C'D' + A'B'C = (B'C + AC + AD)'.

3.38 Obténgase una forma alternativa para F = (B'C + AC + AD)' mediante el uso del teorema de De
Morgan y otra empleando álgebra booleana.

3.39 Obténgase la tabla de verdad para un dispositivo que produce una salida VERDADERA si y sólo si
una mayoría de sus tres entradas son VERDADERAS. Escríbase la ecuación booleana y simplifíquela.
Respuestas a los problemas suplementarios
3.23 a)C b)0 c) A'(C' + D') d) C + D' e) A' + B'

3.24 a) 1 b) A' + B'C c) B'D' + A(BC' + D) d) (D' + C)(A + B)

3.25 Véase la figura 3-52.

C3 = A1 AO B1 BO (Una compuerta AND de cuatro entradas)

C2 = A1 AO' B1 + A1 B1 BO'
(Dos compuertas AND de tres entradas y una compuerta OR de dos entradas)

C1 = A1 B1' BO + A1' AO B1 + AO B1 BO' + A1 AO' BO


(Cuatro compuertas AND de tres entradas y una compuerta OR de cuatro entradas)

CO = AO BO (Una compuerta AND de dos entradas)


Fig. 3-52
96 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN

Puesto que ninguna de las coberturas de ls involucra a D1, se representa nuevamente la función con
tres variables.

Cuando las entradas D4, D3, D2 tienen un número par de ls, entonces los ls se presentan como entradas.
De esta manera se debe usar la configuración XOR con la adición de un inversor, como se discutió en el
problema 3.19 y se muestra en largura 3-53. Una compuerta XOR adicional con una entrada fija en
1 lógico actúa como el inversor requerido.

Fig. 3-53

3.27 Véase la figura 3-54. Observando el patrón del tablero.

Fig. 3-54
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN 97

3.28 D = X ⊕ Y ⊕ Bi Bo = X'Y + X'Bi + YBi

3.29 Puesto que el álgebra booleana no es una técnica de cálculo para problemas de minimización, algunas
soluciones son posibles. Lo que sigue es el mejor esfuerzo por parte del autor (véase la figura 3-55).

Fig. 3-55

3.30 Véase la figura 3-56.

Fig. 3-56
98 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN

3.31 Véase la figura 3-57.

3.32 Una solución a través de XOR es particularmente compacta (véase la figura 3-58).

3.33 Z = BCEF + BCE + AB'C'EF + B'CE'F + B'D'E'F

3.34 Véase la figura 3-59.

3.35 W = D
X = CD' + C'D = C ⊕ D
Y = BC + B'C = B ⊕ C
Z = AB' + A'B = A ⊕ B

3.36 Véase la figura 3-60.

3.37 Represéntese cada uno de los miembros de la función. El primer miembro es una cobertura de ls para
F (como se muestra en la figura 3-60). El segundo miembro (entre los paréntesis) es una expresión para
F' y, por lo tanto, una cobertura de Os. Una vez más, los dos mapas son idénticos indicando una equi
valencia lógica.

L = B1 D + BC + ABD1 L

Fig. 3-57
DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN 99

Fig. 3-58

W X Y Z
Fig. 3-59

Fig. 3-60
100 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES II: MANIPULACIÓN

3.38 Se dan varias formas alternativas.


(B'C + AC + AD)' = (B'C)'(AQ'(AD)'
= (B + C'XA' + C'XA' + D')
= (A'B + C')(A' + D')
= A'C + C'D' + A'B

3.39 Véase la tabla 3.11

Tabla 3.11

F = A'BC + ABC´ + AB'C + ABC (a partir de la tabla de verdad); F = AB + BC + AC


(versión simplificada).
Capítulo 4

Hardware y la convención de la lógica mixta


4.1 INTRODUCCIÓN

En general el enlace entre la lógica combinacional diseñada y su implantación en hardware se descri-


be empleando alguna forma de la convención de la lógica mixta, en la cual la relación entre los valo-
res lógicos y los voltajes son seleccionados por el diseñador y se combinan los símbolos para
representar el comportamiento lógico y eléctrico. Las convenciones de la lógica mixta se emplean
tanto como una ayuda de diseño en la transición de la lógica al hardware (síntesis) como un medio
para describir la lógica implantada por el hardware (análisis). Se presentan las dos aplicaciones.
La unidad básica de hardware para la implantación física de la lógica combinacional es la com-
puerta la cual, como se mencionó en la sección 2.5, sirve como el bloque funcional elemental de los
sistemas lógicos digitales. Los circuitos de las compuertas (hardware) operan con dos niveles
distintos de señales eléctricas, comúnmente llamados ALTO (H) y BAJO (L), que se emplean para
representar los ls y Os lógicos (o VERDADEROs y FALSOs). Es responsabilidad del diseñador de la
lógica asegurar la apropiada correspondencia entre las señales de las compuertas y los valores lógicos
verdaderos del diseño.

4.2 HARDWARE DE LAS COMPUERTAS

Las compuertas están disponibles en circuitos integrados (ICs), los cuales contienen desde unas
cuantas compuertas hasta miles de ellas en una sola pastilla (chip) de silicio. Las características fun-
cionales de un tipo de compuerta en particular normalmente se especifican por el fabricante mediante
una tabla de voltajes o corrientes de entrada/salida (E/S), que describen el comportamiento eléctrico
del dispositivo físico.

EJEMPLO 4.1 Uno de los tipos más comunes de hardware es la compuerta NAND, cuya tabla de E/S se
muestra en la figura 4-1. Aunque sólo se muestra una de tres entradas, estas compuertas se fabrican de más
entradas (véase el apéndice B). La tabla de E/S consiste de una lista de todas las posibles combinaciones de los
niveles de voltaje de entrada y sus correspondientes niveles de voltaje de salida.

Si se igualan los niveles de voltaje de la figura 4-1 con los valores lógicos VERDADERO o
FALSO, entonces la tabla de voltajes de E/S se puede interpretar como una tabla de verdad lógica
(véase la sección 2.2). Debido a que en los inicios del diseño lógico, los valores lógicos más comunes
se habían asignado de manera que el mayor valor de voltaje fuera igual a VERDADERO (H = 1 o
HT). Esta asignación se denomina lógica positiva.

101
102 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

Tabla de voltaje de E/S Símbolo en Hardware de la compuerta NAND


Fig. 4-1

EJEMPLO 4.2 Representación de la lógica positiva de una computadora NAND de tres entradas. Asignando
H = 1 (lo que implica que L = 0) se obtiene la tabla de verdad que se muestra en la figura 4-2a. Obsérvese que
esta tabla de verdad no cumple con la definición de las compuertas OR o AND. Esto se interpreta como
una AND seguida de una inversión lógica (una AND negada o NAND por comodidad). El símbolo de la
NAND en la figura 4-1 indica la inversión lógica, mediante un pequeño círculo (burbuja).

a) Tabla de verdad de la NAND b) Tabla de verdad de c) AND negada


en lógica positiva la AND
Fig. 4-2

4.3 LÓGICA MIXTA COMO UNA HERRAMIENTA DE DISEÑO

Asignación a discreción de los valores lógicos al hardware

Muchos diseñadores han abandonado la lógica positiva y han empezado a trabajar con un concepto
llamado lógica mixta. En este enfoque, la asignación de los valores lógicos a valores de voltaje no es
fija sino, en su lugar, lo dejan a juicio del diseñador.
HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 103

Considérese la representación lógica mixta de la compuerta NAND del ejemplo 4.1, donde se
asigna H = 1 [ALTO-VERDADERO (HT)] para las entradas y L = 1 [BAJO-VERDADERO (LT)]
para la salida. Véase la tabla 4.1.

Tabla 4.1

Esta tabla de verdad satisface con claridad la definición de una función lógica AND; es decir,
la salida es VERDADERA si y sólo si todas las entradas son VERDADERAS. En forma alternati-
va, si se hace una asignación donde L = 1 (LT) en las entradas y H = 1 (HT) en la salida, se obtiene
una tabla de verdad donde la salida es VERDADERA si una o más de las entradas es VERDADE-
RA. Véase la tabla 4.2.

Tabla 4.2

Esto se reconoce como la descripción de una función lógica OR.


Obsérvese que la misma pieza de hardware se puede utilizar para implantar dos operaciones
lógicas diferentes, lo cual brinda una flexibilidad considerable al diseñador.
104 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

Símbolos de la lógica mixta


Para evitar confusión se han desarrollado dos símbolos diferentes del hardware para la compuerta
NAND, uno para indicar su uso para la AND lógica y el otro para la OR lógica. Estos se muestran en
la figura 4-3.

Hardware de una NAND usada como OR Hardware de una NAND usada como AND
Fig. 4-3

La media flecha se usa para indicar LT en el punto del circuito donde ésta aparece. Contraria-
mente, la ausencia de la media flecha indica HT. Algunos diseñadores prefieren emplear un peque-
ño círculo o burbuja como un indicador de LT, y muy a menudo, se usa una doble etiqueta
redundante con lo cual la designación de la señal (variable) es mediante los sufijos X o . H para
indicar sus valores verdaderos asociados. Estas formas alternativas se muestran en la figura 4-4.*
Un término que a menudo se utiliza como sinónimo de BAJO-VERDADERO es activo-BAJO
o verificado-BAJO. En este caso, los símbolos en la figura 4-4 se deben interpretar como la descrip-
ción de una compuerta OR con entradas verificadas-BAJO o una compuerta AND con una salida
verificada-BAJA.

Fig. 4-4 NAND lógica

*El anális de la tabla de verdad y la simbología para la compuerta NOR se presenta en la sección Problemas resueltos, 4.1.
HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 105

Con el fin de facilitar el uso de la lógica mixta como una herramienta de diseño, muchos dise-
ñadores emplean una diagonal (slash) para indicar la inversión lógica. La diagonal (presentada pri-
meramente en la sección 2.5) es un símbolo lógico especial que se interpreta como un cambio de
interés de una variable a su inverso lógico. Nótese que este símbolo no representa al hardware (dis-
positivo físico); es sólo un componente lógico. Sin embargo, tiene una relación con la convención de
la media flecha. Si la línea horizontal mostrada en la figura 4-5 se considera como parte de un
alambre de alta conductividad eléctrica (hardware), entonces, debido a las propiedades de los con-
ductores, si se aplica un voltaje dado en el extremo izquierdo del alambre, el extremo derecho debe
estar a este mismo voltaje. Supóngase, sin embargo, que se asignan 0 V para representar el estado
FALSO y un voltaje mayor, digamos 5 V, para representar el estado VERDADERO. Supóngase,
también, que se aplican 5 V en el extremo izquierdo del alambre. Habrá entonces un conflicto apa-
rente puesto que la diagonal forzaría a interpretar el extremo de la derecha como FALSO cuando el
extremo de la izquierda es VERDADERO, mientras que, al mismo tiempo, se estaría siendo im-
pulsado por las leyes de la naturaleza a esperar un voltaje alto en ambos extremos. La única manera
en la que estos dos requerimientos pueden concordar es designando al extremo izquierdo como HT y
al izquierdo como LT, o viceversa. Esto implica que toda diagonal trae asociada consigo una media
flecha la cual sirve como un puente entre la lógica y el hardware (véase la figura 4-6).

Lógica

Voltaje

Alto voltaje aplicado a la línea

Lógica
Voltaje

Bajo voltaje aplicado a la línea

Fig. 4-5 Fig. 4-6

EJEMPLO 4.3 Dadas las variables lógicas A, B y C, que son todas HT, se desea dibujar un diagrama en lógica
mixta para la función F = A'BC empleando una compuerta (de hardware) NAND. La diagonal en la figura
4-7 indica la necesidad de crear A' en la realización final del hardware.

Fig. 4-7
106 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

Hay un problema con la figura 4-7 si ésta se utiliza para representar el hardware. Se supone
que la compuerta va llevar a cabo una AND lógica. Cuando se implanta con una NAND de hardwa-
re, ésta producirá una salida BAJA (interpretada como VERDADERA) cuando se alimente con
entradas ALTAS. Las entradas B y C, designadas como HT, satisfacen los requerimientos de entra-
da, pero la tercera entrada a la compuerta no puede ser ALTA e interpretada como A' al mismo
tiempo puesto que la diagonal requiere que A' sea LT. Este problema se puede identificar con rapi-
dez al inspeccionar el diagrama observando que el segmento de línea entre la entrada de la
compuerta y la diagonal tiene una media flecha desbalanceada; es decir, hay una media flecha en
un extremo del segmento y no la hay en el otro extremo. Esto indica que aun cuando la lógica es
correcta, el valor verdadero de la entrada no lo es.

El inversor de voltaje
El problema del valor verdadero se puede resolver proponiendo un componente de hardware llama-
do inversor de voltaje el cual no es lógico. Su única función es producir un estado BAJO a su salida
cuando se tiene un estado ALTO a su entrada y un estado ALTO cuando su entrada es un estado
BAJO por medio de la conversión de LT a HT y viceversa. Los símbolos empleados en la lógica
mixta para representar este componente se muestran en la figura 4-8 donde, como en el caso de la
diagonal, existe una media flecha asociada.

Lógica Lógica

Voltaje Voltaje

Alto voltaje a la entrada Bajo voltaje a la entrada


a) Símbolos en lógica mixta para el inversor

b) Forma alternativa
Fig. 4-8

Como se puntualizó previamente, algunos diseñadores prefieren la burbuja para representar LT,
como se muestra en las figuras 4-4 y 4-8b. Puesto que no hay un acuerdo general sobre esta
convención, se usarán burbujas para indicar LT (en lugar de la inversión lógica) en algunos proble-
mas y medias flechas en otros. Se ha tenido mucho cuidado en evitar el uso de burbuja para indicar
la inversión lógica a menos de que se establezca claramente que se está empleando lógica positiva.
En la convención de lógica mixta se separan el hardware y las funciones lógicas de modo que la
operación que cambia de A.H a A'.H o de A.L a A'.L se represente sistemáticamente por dos enti-
dades: la diagonal (lógica) indicando la inversión lógica y el triángulo (en hardware) indicando la
conversión requerida LT-HT. Los símbolos aplicables a la lógica mixta se muestran en la figura 4-9.
HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 107

Fig. 4-9
Nótese que en adición a las medias flechas asociadas con la diagonal y el inversor, se han agre-
gado medias flechas a las líneas identificadas con variables LT. Lo que produce el apareamiento de
medias flechas sobre cada segmento de línea donde éstas aparecen. Una regla importante en
diagramas de lógica mixta apropiadamente construidos es que las medias flechas estarán siempre
balanceadas sobre cualquier segmento de línea dado.
Se pueden emplear compuertas NAND o NOR para implantar inversores de voltaje, como se
muestra en la figura 4-10. Cada uno de los circuitos mostrados alcanza los requerimientos de un
inversor de voltaje puesto que tienen entradas HT y salidas LT, y no se lleva a cabo lógica. Se puede
demostrar la última característica aplicando las identidades booleanas A • A = A, A • 1 = A, (A + A)
= A, y (A + 0) = A.

Inversores

Inversores NOR

Fig. 4-10

EJEMPLO 4.4 Uso de inversores. Supóngase que se desea implantar la función lógica F = A'BC + (BCD)'
donde las variables A, B, C y D están disponibles en HT. Se van a emplear compuertas NAND como las descri-
tas en principio en la sección 4.3.
Paso 1. Constrúyase el diagrama lógico empleando diagonales donde se requiera (véase la figura 4-11).
108 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

Fig.4-11

Paso 2. Insértense medias flechas en las entradas y/o salidas apropiadas para el hardware seleccionado.
Recuérdese que hay una media flecha implícita asociada con cada diagonal (véase la figura 4-12).

Fig. 4-12

Paso 3. Identifíquese la necesidad de los inversores de voltaje observando el desbalance de las medias fle-
chas sobre cualquiera de los segmentos de línea conectados. Hay dos casos en este ejemplo: la inversión A'
sobre la línea de entrada a G1 y el segmento entre la entrada a G3 y la diagonal. Estos desbalances se resuelven
agregando los inversores de voltaje G4 y G5, como se muestra en la figura 4-13. Nótese que a medida que el
resultado final es correcto, las medias flechas asociadas con las diagonales pudieron haber sido ubicadas en uno
u otro lado: existirá la necesidad de un inversor de hardware en cualquiera de los casos. En general, es una
buena práctica mantener la asociación de las medias flechas con las variables LT.
HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 109

Fig. 4-13

Paso 4. Conviértase el diagrama en lógica mixta en uno de alambrado. Remuévanse las diagonales puesto
que representan únicamente operaciones lógicas y no elementos de hardware. Como se muestra en el apéndice B,
las terminales sobre el encapsulado de dos en línea (DIP, de Dual In Package) están conectadas a las entra-
das y salidas de los elementos lógicos de hardware. Las compuertas G1, G2 y G3 se seleccionan como elemen-
tos del chip 74HC10 que tiene tres compuertas NAND de tres entradas, mientras que G4 y G5 son dos de los
seis inversores del 74HC04. Cuando los números de terminales se agregan al dibujo, el circuito está listo para
ser alambrado (véase la figura 4-14). Nótese que G3 es una compuerta NAND de tres entradas que se ha con-
vertido a una de dos entradas mediante la conexión conjunta de las terminales 9 y 10.

Fig. 4-14

EJEMPLO 4.5 Implántese la función F = E + A'B(C + D)' con compuertas NAND. Las variables A, B,
D y E son HT, mientras que C y F son LT.
Paso 1. Dibújese un diagrama lógico empleando la convención de las diagonales (véase la figura 4-15).
110 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

Fig. 4-15

Paso 2. Agréguense las medias flechas asociadas con las inversiones lógicas, el hardware seleccionado,
y cualquiera de las entradas y salidas LT, que se etiquetarán de manera redundante. (Véase la figura 4-16).

Fig. 4-16 Diagrama lógico con las medias flechas

Paso 3. Balancéense las medias flechas con los inversores de voltaje. (Véase la figura 4-17).

Fig. 4-17 Diagrama lógico con los inversores de voltaje


HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 111

Paso 4. Conviértase el diagrama lógico a uno de alambrado (véase la figura 4-18).

Fig. 4-18 Diagrama de alambrado después de remover las diagonales

Las compuertas G1 hasta G4 se toman del mismo chip 7400 que tiene cuatro compuertas NAND de dos
entradas; las compuertas G5 hasta G10 se toman de un 7404 que tiene seis inversores.
Es importante notar que G6, G7, G9 y G10 ilustran el uso de los inversores donde no hay la inversión lógica
correspondiente.

Implantación empleando compuertas OR exclusiva


Cuando se usan otros componentes de hardware además de las compuertas estándar, el diseñador
lógico debe solicitar a los proveedores de hardware información sobre cuáles son las tablas de verdad
asociadas entre las entradas y salidas. El diseñador dibujará entonces las medias flechas como sean
requeridas y procederá de la manera que antes se describió. La compuerta OR exclusiva común
generalmente tiene entradas y salidas HT, así como la NOR exclusiva muy probablemente tendrá
entradas HT y salidas LT.

4.4 LA LÓGICA MIXTA COMO UNA CONVENCIÓN DESCRIPTIVA

Una de las ventajas de la convención de la lógica mixta es que es fácil determinar qué lógica está
realizando un circuito a partir del diagrama de alambrado directamente. ¡Esto es particularmente
útil si se trata de determinar qué tenía en mente algún otro diseñador antes de que él o ella deje
la compañía! Para recuperar la expresión booleana fundamental a partir de un diagrama de lógica
mixta, simplemente se remueven todas las medias flechas y los inversores y entonces leer directa-
mente la lógica a partir del diagrama. El proceso se puede seguir fácilmente observando las figuras
4-15 a la 4-17 de atrás hacia adelante.
No todos los diseñadores emplean la técnica descrita en la sección 4.3 aunque ellos a menudo
hacen uso de los conceptos de la lógica mixta en la descripción de los circuitos lógicos. En tales ca-
sos, sólo se muestran los circuitos que hay en hardware dentro del diagrama, eliminando así la in-
versión lógica como un símbolo por separado.

EJEMPLO 4.6 Considérese el diagrama de alambrado del ejemplo 4.4 (figura 4-14) en el que se han eliminado
las diagonales. La lógica booleana fundamental se puede determinar asumiendo que una inversión lógica tiene
112 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

lugar sobre cualquier segmento de línea con medias flechas desbalanceadas. De este modo, en la figura 4-19,
se ve que la inversión lógica tiene lugar sobre el segmento de línea entre A y G4 y entre G2 y G5, así como no
se tiene inversión lógica entre G1 y G3 o G5 y G3. El punto a mantener en mente es que en la convención de
la lógica mixta, un conjunto de medias flechas desbalanceadas puede interpretarse como una inversión lógica.

Fig. 4-19
EJEMPLO 4.7 La convención de la lógica positiva muestra solamente el hardware, asume que todas las señales
son HT y emplea burbujas para indicar la inversión de voltaje. En este esquema, que es muy común, las
compuertas NAND se representan por un sólo símbolo, como se muestra en la figura 4-1, sin considerar su
propósito lógico. Aplicando esta convención alternativa al circuito de la figura 4-19, se obtiene el resultado
mostrado en la figura 4-20. La expresión esperada para la función F se puede obtener aplicando el teorema
de De Morgan.

Fig. 4-20
HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 113

Nótese que en la convención de lógica positiva, todos los inversores de voltaje llevan a cabo la
inversión lógica. Debido a que esto requiere manipulaciones booleanas con papel y lápiz para obtener
las funciones OR debe ser claro que la convención de lógica positiva orientada a hardware mostrada
en el ejemplo 4.7 no se presta particularmente bien por sí misma para la identificación de la lógica
fundamental.
Es importante observar que hay varias convenciones lógicas actualmente en uso, y el estudiante
deberá tener cuidado de entender en particular la que se esté empleando en cualquier documento. El
tiempo que se utilice está bien empleado en términos de la prevención de errores.

4.5 USOS DE LA LÓGICA MIXTA EN LA LOCALIZACIÓN DE FALLAS

La convención de la lógica mixta, en adición a la ayuda para determinar la ubicación de los inverso-
res de voltaje en una implantación lógica desde el punto de vista físico, también permite la preserva-
ción del diagrama lógico durante todo el proceso de diseño. La media flecha es particularmente
valiosa porque ayuda a determinar el voltaje asociado con VERDADERO en un punto particular del
circuito. Esta es información importante puesto que la localización de fallas se hace generalmente en
términos de los voltajes más que de la lógica.

EJEMPLO 4.8
a) En la figura 4-21, las señales de entrada lógicas W, X y Y varían con el tiempo, como se muestra. Hágase
un esquema de las salidas lógicas en los puntos A, B y F como función del tiempo.

Fig. 4-21
114 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

Retirando las medias flechas y el inversor (que no lleven a cabo ninguna lógica), se ve que A = WX,
B = WX + Y y F = Y(WX + Y). Un poco de álgebra booleana revela que F se puede reducir a F =
Y lo cual, un estudiante astuto realizará, ¡se puede lograr en hardware con alambre! El lector debe apre-
ciar tales circuitos sólo por su valor ilustrativo y no quejarse mucho de los académicos y su aislamiento
del "mundo real''. Las formas de onda requeridas, alineadas con las entradas para su referencia, se mues-
tran en la figura 4-22.

Fig. 4-22

b) Si se usara un analizador lógico, que trata a las señales como ALTO-VERDADERO (HT), muéstrense
las formas de onda de los voltajes que se deben observar en las entradas y en los puntos A, B y F.
Puesto que Y, A y F son LT, las formas de onda de voltaje en estos puntos estarán invertidas en
relación a sus equivalentes lógicos (véase la figura 4-23).
HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 115

Fig. 4-23

Problemas resueltos
4.1 La compuerta NOR se define como un dispositivo que produce una salida ALTA si y sólo
si todas sus entradas son BAJAS. Escríbase la tabla de voltajes de E/S para el caso de tres
entradas. Escríbanse también las tablas de verdad y los símbolos (empleando la
convención de las medias flechas) para el dispositivo usado como una compuerta AND y
como una OR.

SÍMBOLO DE LA COMPUERTA NOR

Fig. 4-24
116 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

La tabla E/S de la compuerta NOR se muestra en la figura 4-24. Señalando las entradas LT y
una salida HT se obtiene la tabla lógica de verdad que se muestra en la figura 4-25, en la cual se ve
que cumple con la definición de la AND. Señalando las entradas HT y la salida LT produce la tabla
de verdad correspondiente a una OR (véase la figura 4-26).

COMPUERTA NOR USADA COMO AND

Fig. 4-25

COMPUERTA NOR USADA COMO OR

Fig. 4-26

4.2 El comportamiento de un elemento de hardware digital se define mediante la carta de voltaje


mostrada en la tabla 4.3. Muéstrese cómo se pueden asignar los valores verdaderos para que
el circuito se comporte como una AND lógica, una OR lógica y como un inversor de voltaje.

Tabla 4.3
HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 117

Para la función AND hay sólo un caso donde la salida es VERDADERA, de tal forma que se
debe seleccionar el renglón 3. La función G será obviamente HT. A la entrada B se debe asignar LT
y a la entrada A HT, creando así la tabla de verdad de la AND que se muestra en la tabla 4.4. En la
tabla 4.3 se ve que para la función OR, G y A deben ser LT, mientras que B es HT. Por último, si
A se mantiene ALTA, entonces G será el valor opuesto de voltaje de B, satisfaciendo así los requeri-
mientos para un inversor. (Véase la tabla 4.5.)

Tabla 4.4 Tabla 4.5

4.3 Las compuertas NOR de tres entradas vienen en paquetes de tres en un chip. Combínense
estas compuertas tan eficientemente como sea posible para crear una función equivalente
a una OR de cinco entradas. Úsense los valores verdaderos más convenientes para las entra-
das y salidas.
Se pueden combinar dos compuertas OR de tres entradas para obtener una OR equivalente de cin-
co entradas (figura 4-27). La implantación, empleando compuertas NOR, se obtiene como se muestra
en la figura 4-28. El inversor requerido para balancear la media flecha entre las dos compuertas se puede
obtener uniendo las entradas de una compuerta NOR, como se muestra en la figura 4-29. Se requiere un
solo chip; las entradas son HT y las salidas son LT.

Fig. 4-27 Fig. 4-28

Fig. 4-29
118 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

4.4 Implántese la función lógica del ejemplo 4.4 con compuertas NOR.
Un diagrama puramente lógico es independiente del hardware. Un diagrama de lógica mixta es
de hardware específico, sin embargo, incorpora medias flechas para indicar los valores verdaderos
apropiados, como se muestra en la figura 4-30. A fin de completar la implantación, se balancean las
medias flechas para determinar la posición de los inversores de voltaje requeridos (véase la figura 4-
31). Obsérvese que la implantación mediante compuertas NOR requiere tres inversores más que im-
plantan la NAND del ejemplo 4.4.

Fig. 4-30 Paso inicial para la creación del diagrama de lógica mixta de una NOR

Fig. 4-31 Diagrama final en lógica mixta de una NOR

4.5 Implántese el sumador completo del problema 2.13 usando compuertas NAND.
Véase la figura 4-32.

4.6 Implántese el sumador completo del problema 2.15, usando compuertas NAND, y hágase
uso de la compuerta OR exclusiva donde sea aplicable. Asúmase que A, B, C1 y Co son to-
das HT.
Véase la figura 2-13 y agréguese tantas medias flechas, como se requieran (véase la figura 4-33).
Puesto que todas las medias flechas están balanceadas, no son necesarios los inversores de voltaje.
HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 119

4.7 Repítase el problema 4.6 con compuertas NOR exclusivas reemplazando a las OR exclusivas.
Recuédese que las NOR exclusivas tienen salida LT.
Véase la figura 4-34. Obsérvese el requerimiento de inversores de voltaje adicionales.
4.8 Repítase el problema 4.6 con compuertas NOR para las ANDs y ORs.
Véase la figura 4-35. Obsérvese que en este caso se necesitan cinco inversores de voltaje.

Fig. 4-32

Fig. 4-33
120 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

Fig. 4-34

Fig. 4-35

4.9 Repítase el problema 4.6 con A, B y C o todas LT, mientras que C i y S son HT.
Véase la figura 4-36

Fig. 4-36
HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 121

4.10 Dado el diagrama de hardware en lógica positiva mostrado en la figura 4-37, dibújense tres
equivalentes diferentes en lógica mixta.

Fig. 4-37

Fig. 4-38

Si se desea se puede determinar la lógica fundamental con la ayuda del teorema de De Morgan,
como se muestra en la figura 4-38. Aunque no es un paso necesario, es conveniente para propósitos
de comparación y para enfatizar cómo la salida se puede expresar de más de una forma. Recuérdese
que todo el hardware con inversión se puede remplazar, en representaciones de lógica mixta, mediante
la combinación de las diagonales y el inversor lógico:

INVERSIÓN Cambios de LT a HT únicamente;


LÓGICA NO hace LÓGICA
122 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

Ahora se tienen algunas elecciones, tres de las cuales serán discutidas.

1. Asúmase que todas las compuertas NAND llevan a cabo la función OR. Esto conduce al arreglo
mostrado en la figura 4-39. Obsérvese que la diagonal asociada con G3 agrega una media flecha
extra entre G1 y G4, mientras que por otro lado, hay una media flecha perdida en la rama del cir-
cuito directamente abajo. Para corregir los desbalances, se mueve esta diagonal y otras a las entra-
das, y se ajusta la posición de la media flecha, como se muestra en la figura 4-40. Este caso ilustra
claramente cómo se emplean las interpretaciones duales del proceso de inversión. Invertir G3 sólo
sirve para convertir de HT a LT sin ningún cambio lógico, mientras la diagonal aislada en la parte
inferior indica el proceso implícito de inversión lógica, que se presenta entre G2 y G4. Aquí se está
convirtiendo mentalmente la variable G2.H a su equivalente G´2.L, los cuales son, en realidad
una interpretación diferente del mismo nivel de voltaje.

Fig. 4-39

Fig. 4-40

Retirando las medias flechas y los inversores no cubiertos el diagrama lógico fundamental (fi-
gura 4-41) a partir del cual se puede leer

F = (A' + B') + A' + D' = A' + B' + AD


HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 123

2. Asúmase que todas las compuertas NAND llevan a cabo la función AND. Esto conduce al arreglo
que se muestra en la figura 4-42. Ahora se agregan o remueven las diagonales, según se requiera
para balancear las medias flechas. Obsérvese que existen elementos lógicos únicamente y no alte-
ran la configuración básica del hardware. Véase la figura 4-43.

Fig. 4-41

G3

Fig. 4-42

Después de remover los inversores y todas las medias flechas, la expresión booleana para la
salida se ve que es F = (AB) • (AD) = (AB)' + AD, la cual es idéntica al resultado previo.
124 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

3. Asúmase que G1 y G2 llevan a cabo funciones de AND y que G4 es una OR, como se pudo dedu-
cir a partir del resultado de la figura 4-38. En la figura 4-44 se ve que todas las medias flechas
están balanceadas y no se requiere manipulación adicional. Esta es la transformación más sencilla
de todas y da la expresión esperada por inspección. La habilidad para llevar a cabo transformacio-
nes en hardware entre lógica positiva y mixta es particularmente útil cuando se desea predecir las
formas de onda y estudiar los efectos de los retardos en el circuito (véase el capítulo 6).

Fig. 4-44

4.11 La dificultad relativa para decifrar la lógica fundamental a partir de un diagrama de hardwa-
re en lógica positiva se hace más evidente a medida que la complejidad del circuito se incre-
menta. La figura 4-45 muestra la versión en lógica positiva del circuito del ejemplo 4.5, véase
la figura 4-17. Determínese la lógica implantada.

Fig. 4-45

Nótese que la variable de entrada C.L se ha remplazado por su equivalente C'.H, y se ha especifica-
do una salida HT porque solamente se permiten las variables HT en la convención de lógica positiva.
Escribiendo expresiones intermedias sobre el diagrama, se obtienen los resultados mostrados en la fi-
gura 4-46, los cuales se pueden emplear para obtener la función deseada como sigue:

F = E'(A'B + C'D') = E + A'B + C'D' = E + A'B · CD' = E + A'B(C + D)'


HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 125

Fig. 4-46

Es muy provechoso comparar la relativa facilidad para decifrar la lógica de la figura 4-15 de este
ejercicio.

4.12 La lógica mostrada en la figura 4-47 tiene entradas que varían en el tiempo, como se
muestra en la figura 4-48. Trácense las formas de onda del voltaje de salida asumiendo
que los circuitos responden instantáneamente a los cambios de entrada. Las
variables A, B, C y D son todas HT.

Fig. 4-47
126 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

Después de remover los inversores y las medias flechas del diagrama lógico, se puede determinar
fácilmente que F = AB + (C + D)' la cual, después de aplicar el teorema de De Morgan al segundo
término, da F = AB + C'D'. Esto es, F será VERDADERO si A y B son ambas VERDADERAS o
C y D son ambas FALSAS. También, a partir del diagrama lógico, G = B'(C + D)' o, de manera equi-
valente, G = B'C'D'. De este modo, G será VERDADERO solamente si B, C y D son todas FALSAS.
Las formas de onda de la salida lógica se obtienen haciendo 1 = VERDADERO, 0 = FALSO
y aplicando las ecuaciones booleanas básicas punto por punto, como se muestra en la figura 4-49.
Puesto que G está especificada como LT, la forma de onda de G debe estar invertida para obtener
el voltaje de salida deseado.

Fig. 4-49
HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 127

4.13 Se desea diseñar un circuito que produzca una salida (F) VERDADERA siempre que
dos o más de sus tres entradas A, B o C sean VERDADERAS. Asúmase que A y C son
HT, mientras que B y F son LT. Véase la figura 4-50.
a) Dibújese un mapa K y selecciónese la mejor cobertura de ls.
b) Implántese el diseño de la parte a) empleando compuertas NOR.
a) Súmense los ls en las coordenadas de cada cuadro del mapa y ubíquese un 1 en todos en
los que la suma de sus coordenadas es 2 o más. Véase la figura 4-51.
b) Agréguense las medias flechas y los inversores de voltaje necesarios, se obtiene la figura
4-52.

Fig. 4-50

a) Mapa K b) Lógica
Fig. 4-51
128 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

Fig. 4-52

4.14 Repítase el problema 4.13 con


a) Implantación con NAND para la cobertura de ls.
b) Implantación con NAND para la cobertura de Os.
c) El diagrama lógico es el mismo que el mostrado en la figura 4-51; la implantación con
NAND se muestra en la figura 4-53.
d) La expresión más sencilla que se puede obtener a partir de la cobertura de Os es F' =
A'B' + A'C + B'C'. El diagrama lógico correspondiente se muestra en la figura 4-54 y
su implantación con NAND se muestra en la figura 4-55. Obsérvese, al comparar las fi-
guras 4-52, 4-53 y 4-54, cerno la selección del hardware y la elección entre coberturas tie-
ne influencia en el número y ubicación de los inversores.

Fig. 4-53
HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 129

Fig. 4-54

Fig. 4-55

4.15 Diséñese la lógica para examinar dos números binarios de 2 bits (A2 A1 y B2 B1) y produzca
una salida VERDADERA si el número B2 B1 es mayor o igual que el número A2 A1. Las
variables A1 y A2 som LT, las dos, mientras que B2 y B1 y la salida son HT. Implántese con
compuertas NAND.
130 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

Los requerimientos especificados se pueden incluir directamente en el mapa K, y la función reque-


rida se obtiene mediante una apropiada cobertura de ls, como se muestra en las figuras 4-56 y 4-57.
El diagrama correspondiente en lógica mixta se muestra en la figura 4-58.

Fig. 4-57

Fig. 4-58
HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 131

4.16 En la función booleana F(A, B, C, D) = [D(A + B'C)(AB + C')]' donde A, B y D son HT,
mientras que C y F son LT, implántese la lógica con elementos físicos que cuentan con una
tabla de voltaje E/S descrita como sigue: la salida es ALTA si y sólo si todas las entradas
son ALTAS.
El dispositivo físico con las características especificadas se puede representar en forma tabular,
como se muestra en la tabla 4.6. Haciendo H = T para entrada y salida, se obtiene una función AND,
como se muestra en la figura 4-59. La función OR se obtiene haciendo las entradas y la salida como
L = T (figura 4-60). El diagrama lógico se muestra en la figura 4-61, y su implantación en hardware
se presenta en la figura 4-62 empleando la convención de la lógica mixta. Obsérvese la proliferación
de los inversores. Con esta elección de hardware se necesita un inversor de voltaje cada vez que una
AND se conecta a una OR y viceversa.

Tabla 4.6
ENTRADAS SALIDA
X Y Z
L L L
L H L
H L L
H H H

X Y Z
F F F
F T F
T F F
T T T
Fig. 4-59

X Y Z
T T T
T F T
F T T
F F F
Fig. 4-60
132 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

Fig. 4-61

Fig. 4-62

4.17 En el mapa mostrado en la figura 4-63 implántese la función empleando compuertas NAND
e inversores y después con compuertas XOR. Asúmase que la salida y todas las entradas son
HT.

Fig. 4-63
HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 133

a) Realización con NAND: Una cobertura de ls haciendo uso de todos los términos "no importa"
da F = AC + CD' + AD' + A'CD. La implantación se muestra en la figura 4-64.

Fig. 4-64

b) Realización con XOR: El mapa se puede poner en la forma de un tablero (estándar), indicativo
de la función XOR, mediante la apropiada elección de los términos "no importa"; es decir, 0s
en la primera columna y Os en la segunda. La función resultante es

F = A'CD' + AC'D + A'CD + ACD'


= A'(C'D' + CD) + A(C'D + CD')

Los términos entre paréntesis se reconocen como iguales a (C ⊕ D)' y (C ⊕ D), respectivamen-
te, como se muestra en el problema 3.4. Sea X = C ⊕ D. Entonces,

F = A'X' + AX
= (A ⊕ X)'

Sustituyendo X, se obtiene F = (A ⊕ C ⊕ D)', la cual se puede realizar mediante el circuito


de la figura 4-65. Obsérvese cómo la tercera compuerta XOR se está empleando para la inversión
lógica, como se describió en el ejemplo 2.8.

Fig. 4-65
134 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

Problemas suplementarios
4.18 Implántese la función F = A'C'D' + BD' + BC con compuertas NAND.

4.19 En el mapa K de la función F mostrada en la figura 4-66 asígnense valores a los términos no importa
para hacer la mejor cobertura de ls y dibújese el diagrama lógico. Especifíquense entradas y salidas
LT o HT como se requiera para minimizar el número de inversores de voltaje para la implantación
con compuertas NAND.

Fig. 4-66

4.20 Implántese la función F = A(B + C) con compuertas NAND empleando inversores donde se requie-
ran. Se especifica que todas las variables (tanto entradas como la salida) son HT.

4.21 Supóngase que todos los inversores y las compuertas NAND del circuito del problema 4.20 se remue-
ven y se remplazan por alambres. Escríbase una expresión booleana para la lógica positiva que este
circuito debe producir. Una vez más asúmase que las entradas y la salida son HT.

4.22 Dada la función F = ABC + A'BD' + BC'D + ABC, simplifíquese la lógica asumiendo que los
cuatro primeros renglones de la tabla de verdad son términos "no importa" y que las variables se orde-
nan alfabéticamente, donde A es la más significativa. Dibújese un diagrama lógico con compuertas
NOR.

4.23 Implántese la lógica para el decodificador (manejador) de siete segmentos, que se desarrolló en el pro-
blema 3.22.

4.24 Diséñese la lógica para examinar dos números binarios de 2 bits (A2 Ai y B2 B^ y produzca una salida
VERDADERA si el número B2 B! es mayor que el número A2 A,. Implántese con compuertas
NAND, y defínanse las variables como LT o HT de modo que no se requieran inversores.

4.25 Dado el mapa K que se muestra en la figura 4-67, simplifíquese la lógica empleando una cobertura
de ls, e implántese con compuertas NAND. Empléese lógica mixta con la convención de las burbujas
para indicar LT.
HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 135

Fig. 4-67

4.26 Implántese la lógica del problema 4.25 empleando una cobertura de Os y compuertas NOR.

4.27 Implántese el multiplicador simplificado en el problema 3.25 con compuertas NAND y determínese
la cantidad de chips de integración a pequeña escala (SSI) requeridos para el diseño.

4.28 Empleando la ecuación para L, implántese el circuito para el control de la lámpara del problema 2.25
con compuertas NAND y XOR. Asúmase que los interruptores A y B son HT y que L es LT. Compáre-
se la cantidad de chips SSI empleados.

4.29 Repítase el problema 4.28, esta vez empleando la ecuación para L'.

4.30 Implántese, empleando compuertas NAND, el restador binario diseñado en los problemas 2.27-2.29,
asumiendo que las entradas y las salidas son todas HT. Estímese la cantidad de chips que se podrían
necesitar.

4.31 Empleando las ecuaciones booleanas simplificadas para el restador binario desarrollado en el proble-
ma 3.28, implántese el circuito con compuertas NOR y XOR, empleando entradas y salidas HT. Com-
párese la cantidad de chips con los resultados del problema 4.30.

4.32 Repítase el problema 4.31 si las entradas y las salidas son LT.

4.33 Determínese la ecuación lógica representada por el circuito mostrado en la figura 4-68.

Fig.4-68
136 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

4.34 Para el convertidor de números de 4 bit binarios a Gray que se discutió en los problemas 3.34 y 3.35,
Obténgase una representación mediante XOR para las salidas y hágase un comentario sobre la estima-
ción de la cantidad de chips requeridos.

Los siguientes cuatro problemas demuestran cómo el hardware y los valores verdaderos asignados
afectan la topología del circuito y la complejidad.

4.35 Implántese la cobertura de Os del problema 3.38 empleando compuertas NOR. Asúmase que las va-
riables de entrada y salida son todas HT.

4.36 Implántese el circuito del problema 4.35 empleando compuertas NAND, una vez más, asúmase que
las variables de entrada y salida son todas HT. Compárense los resultados.

4.37 Las dos formas booleanas equivalentemente lógicas de los problemas 4.35 y 4.36 son:
F = (B'C + AC + AD)' = A'C 4 C'D' + A'B
Implántense las dos empleando compuertas NAND, asumiendo que B y F son LT, mientras que todas
las otras variables con HT. Compárense los resultados de uno y otro con los circuitos obtenidos en
los problemas 4.35 y 4.36.

4.38 Repítase el problema 4.37 empleando compuertas NOR.

4.39 Escríbase la expresión booleana representada por el circuito en lógica positiva, que se muestra en la
figura 4-69.

Fig. 4-69

4.40 Repítase el problema 4.39 para el circuito mostrado en la figura 4-70. Coméntese la relación entre este
resultado y el previo si Y se designa como LT.

Fig. 4-70

4.41 Dibújese un diagrama en lógica mixta para la implantación mediante compuertas NAND del circuito
en el problema 4.40.
HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 137

Respuestas a los problemas suplementarios


4.18 Véase la figura 4-71.

Fig. 4-71

4.19 Véanse las figuras 4-72 y 4-73. La cobertura mostrada en la figura 4-72 más las cuatro esquinas dan
F = C + B'D'.

Fig. 4-72

a) Diagrama lógico b) Implantación lógica con entradas Bajo-


VERDADERO, salidas Alto-VERDADERO
sin inversores de voltaje.
Fig. 4-73
138 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

4.20 Véase la figura 4-70.

Fig. 4-74

4.21 F = A' + BC.

4.22 F = AB + BC + A'D' y F = AB + BC + BD' son respuestas válidas las dos. El diseño en hardware
para el primer caso se muestra en la figura 4-75.

Fig. 4-75
HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 139

4.23 Véase la figura 4-76. Obsérvese que la convención de la burbuja LT está siendo empleada.

Fig. 4-76
140 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

4.24 La especificación se puede incluir directamente dentro del mapa K, dando la función F = A2B2 +
A2´A1´B1 + Ai´B2B1. El circuito requerido se muestra en la figura 4-77.

Fig. 4-77

4.25 La simplificación mostrada en la figura 4-78 incluye una covertura de las cuatro esquinas, que se
omite de la figura por claridad. La implantación con compuertas NAND se muestra en la figura 4-79
en la que se usa la convención de la burbuja para LT. Se requieren tres chips (una compuerta doble de
cuatro entradas, cuatro compuertas de dos entradas y dos inversores).

Fig. 4-78
HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 141

Fig. 4-79

4.26 Véanse las figuras 4-80 y 4-81. Se necesitan dos chips (tres compuertas de tres entradas y un cuatro
de dos entradas).

Fig. 4-80

Fig. 4-81 Convención de la burbuja LT


142 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

4.27 Véase la figura 4-82. La cantidad de chips es como sigue:


Un chip de inversores (contiene seis compuertas; todas utilizadas)
Un chip de compuertas doble de cuatro entradas (contiene dos compuertas; todas
utilizadas)
Dos chips de tres compuertas con tres entradas (cada una contiene tres compuertas;
todas utilizadas)
Un chip de cuatro compuertas de dos entradas (contiene cuatro compuertas; dos
utilizadas)
Total: cinco chips.

4.28 Usando L = AB + A'B'= (A'B + AB')' = (A ⊕ B)' produce las soluciones de la figura 4-83.

4.29 Usando L' = A'B + AB' = A ⊕ B, las soluciones mostradas son de la figura 4-84.

Fig. 4-82 Convención de la burbuja LT


HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 143

4.30 Véase la figura 4-85. La cantidad de chips es cuatro: una compuerta NAND doble de cuatro entradas,
dos compuertas NAND triples de tres entradas, un chip de inversores.

4.31 A partir del problema 3.28, D = X⊕Y⊕Bi y B0 = X'Y + X'Bi + YB¡. La implantación se muestra
en la figura 4-86. La cantidad de chips es tres: una compuerta NOR triple de tres entradas, cuatro com-
puertas NOR de dos entradas, inversores XOR tomados de otros chips.

4.32 Véase la figura 4-87.

4.33 F = AB + C(A' + B) = AB + A'C + BC.

Fig. 4-83

Fig. 4-84
144 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

X Y Bi

Fig. 4-85

Fig. 4-86
HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 145

Fig. 4-87

4.34 Véase la figura 4-86

Fig. 4-88

W=D=D⊕0
X = CD' + C'D = C ⊕ D
Y = B⊕ C
Z = A⊕ B
146 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

Puesto que las XOR vienen cuatro en un chip, únicamente se emplea un chip aquí. Si, por otro lado,
se emplean las ecuaciones originales, se necesitan las siguientes compuertas
AND de cuatro entradas 8 compuertas 2 chips
OR de ocho entradas 1 compuerta 1 chip
AND de tres entradas 4 compuertas 1 chip (se emplea una OR de cuatro entradas para una)
AND/OR de dos entradas 3 compuertas 1 chip
OR de cuatro entradas 1 compuerta 1 chip
Puesto que todas las señales de entrada se requieren tanto en forma directa como complementada,
se necesita un chip de 6 inversores adicional. De este modo, se requieren seis o siete chips para un dise-
ño AND/OR.
4.35 F = (B'C + AC + AD)'; la forma de realizarlo se muestra en la figura 4-88.

Fig. 4-89

4.36 Véase la figura 4-90.

Fig. 4-90
HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 147

Este método emplea un inversor menos. Sin embargo, la trayectoria más larga de la señal pasa a
través de cuatro compuertas, mientras que en la figura 4-89, la trayectoria crítica en tiempo es de tres
compuertas (véanse los problemas 6.11-6.13).

4.37 Véanse las figuras 4-91 y 4-92. Obsérvese cómo la selección de la forma de la ecuación y/o los valores
verdaderos puede tener un impacto significativo sobre la eficiencia del diseño.

F = (B1 C + A C + A D)1
Fig. 4-91

F = A1 C + C D1 + A' B
Fig. 4-92
148 HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA

4.38 Véanse las figuras 4-93 y 4-94. Se ve que el número y ubicación de los inversores requeridos depende
de la técnica de cobertura sobre el mapa seleccionada y las compuertas empleadas ya sea NAND o
NOR.

4.39 X = R(FP)' = (R' + FP).

4.40 Y = (R' + FP). Puesto que Y.L = Y'.H, el resultado se hace idéntico al del problema anterior, lo
que indica que los dos circuitos se pueden interpretar como lógicamente equivalentes. Véase el proble-
ma 8.22 para una aplicación de esta lógica.

Fig. 4-93

Fig. 4-94
HARDWARE Y LA CONVENCIÓN DE LA LÓGICA MIXTA 149

4.41 Véase la figura 4-95. Obsérvese que es mucho más fácil obtener una ecuación booleana a partir de este
diagrama, en comparación con el de los dos problemas anteriores está en lógica positiva.

Fig. 4-95
Capítulo 5
Elementos MSI y LSI
5.1 INTRODUCCIÓN

A medida que la tecnología de los circuitos integrados (IC) avanza, hace posible acomodar más y
más compuertas en una pastilla (chip) de silicio y tener una interconexión entre ellas más eficiente
y confiable. Estos avances han permitido el desarrollo de circuitos lógicos en un sólo chip, diseña-
dos para llevar a cabo tareas cada vez más complicadas. Los chips resultantes necesitan mucho me-
nos espacio que un circuito equivalente hecho con compuertas individuales, y la tecnología ha pro-
gresado a partir de la pequeña escala de integración (SSI) hacia niveles de mediana escala de
integración (MSI), gran escala de integración (LSI) hasta llegar hoy en día a la producción de dispo-
sitivos a muy grande escala de integración (VLSI). Estos dispositivos son muy complejos, de modo
que una computadora completa que cuenta hasta con un millón de compuertas se puede construir
sobre una pieza de silicio, cuyo tamaño es comparable al de la uña de un dedo. En este capítulo
se describen con detalle tres dispositivos importantes que están en una categoría entre MSI y LSI,
el multiplexor, el decodificador y la memoria sólo para lectura (ROM), así como sus aplicaciones.

5.2 MULTIPLEXORES

Un multiplexor (MUX) es un dispositivo que tiene N entradas (líneas) de selección, 2N datos de en-
trada y una sola salida. Hay varios tipos de símbolos para representar al multiplexor, que actual-
mente compiten para su utilización en general; dos de los más comunes se muestran en la figura
5-1, los cuales representan una versión en la que se tienen ocho datos de entrada y tres líneas de
selección (consúltese el apéndice B). La entrada de habilitación (EN) se utiliza para activar al chip,
si ésta es VERDADERA, el dispositivo funciona normalmente para todas las entradas, mientras
que si es FALSA el chip no aceptará datos.
El multiplexor se puede tratar desde dos puntos de vista distintos. Primero, se puede considerar
como el equivalente de un interruptor mecánico rotatorio y, segundo, como un módulo lógico uni-
versal (ULM), que se puede utilizar para la implantación en general de funciones lógicas combina-
cionales, como lo hacen las compuertas interconectadas. En cualquier caso, es necesario examinar
la lógica interna del dispositivo para entender su operación.

Lógica del multiplexor


El diagrama lógico para un multiplexor de dos líneas de selección y cuatro datos de entrada se mues-
tra en la figura 5-2. En general cada variable que se selecciona se complementa de tal modo que

150
ELEMENTOS MSI Y LSI 151

si hay N variables de selección, habrá 2N líneas que se pueden conectar a las entradas de la compuerta
AND. Cada compuerta AND tiene N + 1 entradas, una de las cuales es el dato de entrada como se
muestra.
El circuito se diseña de manera que el dato de entrada pase a la salida de su compuerta AND
asociada, cuando la combinación única de las variables de selección que dirige a esta compuerta
esté presente en las líneas de selección. En el caso de dos líneas de selección, se puede ver de la tabla
5.1 que para cada combinación de las variables de selección habrá una compuerta AND única que
tiene sus entradas de selección (no de datos) ambas en VERDADERO al mismo tiempo.

Tabla 5.1
Entradas de selección

DATOS DE
ENTRADA

ENTRADAS DE
SELECCIÓN

Los números de las terminales están en ( )


ENTRADAS DE
SELECCIÓN

a) Símbolo lógico b) Símbolo de IEEE/IEC


Fig. 5-1
Fig. 5-2

Control de interruptores
(Entradas de Selección)

Fig. 5-3
ELEMENTOS MSI Y LSI 153

Considérese el caso S1 = 0 y S0 = 1. Puesto que se observa de la figura 5-2 que G3 = S´1 ·


So · D1, la entrada de selección dada hará que F sea igual a Di, ya que F será 1 cuando Di es 1
y 0 cuando Di es 0.

El multiplexor como interruptor


Se considera que el multiplexor se puede ver cómo un interruptor rotatorio que determina con sus
entradas de selección la línea de datos de entrada que se conectará a la salida, como se presenta
esquemáticamente en la figura 5-3.

Fig.5-4
154 ELEMENTOS MSI Y LSI

EJEMPLO 5.1 Multiplexores como interruptores de datos. El circuito que se muestra en la figura 5-4 tiene
cuatro multiplexores con entradas de selección comunes. Las salidas de estos dispositivos sirven como entradas
a otro multiplexor, de este modo el circuito global se comporta como un solo multiplexor con 16 entradas de
datos. Tal arreglo se denomina árbol de multiplexores.
Si las entradas de selección son S3S2S1S0 = 1101, determínese cuál línea de datos se conectará a
F · S1S0 = 01 puntos de la entrada de datos 1 del multiplexor 5 a través del cual se conectará a la salida del
multiplexor 2. De manera similar, S3S2 = 11 apunta a la entrada 3 del multiplexor 2 la que se conecta a la
señal J. Así la entrada de selección 1101 conecta la salida F a la entrada J.

El multiplexor como un dispositivo lógico combinacional


Hay una correspondencia directa entre la lógica del multiplexor y un mapa K, que se puede describir
mejor a través de ejemplos.

EJEMPLO 5.2 Muéstrense las conexiones de datos requeridas para que la salida F de un multiplexor esté rela-
cionada con sus entradas de selección A, B y C mediante la expresión booleana F = A'B'C' + A'BC + ABC.
Cada cuadro del mapa K contiene el valor de la función lógica F determinada por la combinación única
de las variables de entrada con las que el cuadro está asociada. Si se piensa en estas variables como las entradas
de selección de un multiplexor, entonces cada cuadro del mapa K contiene el valor de la salida del multiplexor,
la cual corresponde a una combinación en particular de las variables de selección (la dirección).
En la figura 5-5, se ve la función dada sobre un mapa K cuyos cuadros se numeran con el equivalente
en decimal de la dirección binaria para ayudar a asociarlas con los correspondientes datos de entrada del multi-
plexor.
Sobre el mapa K, el cuadro especificado mediante ABC = 011 contiene un 1 que indica que F es VERDA-
DERA para esta combinación de entradas. La condición corresponde al segundo término de la ecuación dada.
Con el fin de obtener en la salida del multiplexor un 1 cuando las entradas de selección son ABC = 011, sólo
es necesario conectar el dato de entrada 3 al voltaje correspondiente a VERDADERO o 1 lógico, como se
muestra ya que F será conectado lógicamente a esta entrada cuando la combinación de las variables de selec-
ción sea ABC = 011.
Las conexiones de los datos restantes se determinan en forma similar. Por ejemplo, las líneas 1, 2, 4,
5 y 6 se deben conectar a 0 lógico ya que los cuadros en el mapa K especificados mediante 001, 010, 100,
101 y 110 todos contienen 0s.
Obsérvese que cuando se emplea un multiplexor para implantar lógica combinacional, no se requiere el
proceso de simplificación del mapa K.

Fig. 5-5
ELEMENTOS MSI Y LSI 155

EJEMPLO 5.3 En el mapa K de la figura 5-6, muéstrese que se puede obtener una implantación de la lógica
del multiplexor más eficiente si se emplea una entrada de selección menos que el número de variables de diseño.

Fig. 5-6

Paso 1. Selecciónese un multiplexor con una entrada de selección menos que las variables de diseño exis-
tentes. En este ejemplo, escójase un multiplexor con tres entradas de selección.
Paso 2. Elíjanse tres variables de diseño cualquiera para usarlas como variables de selección. En este caso
se elijen arbitrariamente A, B y D de las cuatro posibles. Si la elección no está determinada por alguna restric-
ción de diseño de mayor prioridad, debe ser tal que simplifique el análisis tanto como sea posible de manera
que se minimice la posibilidad de error, como se demuestra en el problema 5.5.
Paso 3. Considérense, en secuencia, los efectos de varias combinaciones de selección sobre el mapa y el
multiplexor (consúltese la figura 5-7).
ABD = 000. Se refiere, a las dos primeras localidades de la parte superior izquierda en el primer renglón
del mapa. Puesto que hay un 1 en las dos localidades, se ve que F = 1 sin considerar el valor de C. En el multi-
plexor, la combinación de selección ABD = 000 hace que el dato de entrada Do se conecte a F. De este modo
la línea de datos (0) de la parte superior debe estar alambrada a un voltaje que corresponda al 1 lógico, como
se ha demostrado.
ABD = 001. Véanse las dos localidades de la parte superior derecha. Puesto que ambas son 0, F = 0
sin tomar en cuenta el valor de C. En el multiplexor, el dato de entrada D, se conectará a F. Así la línea de
datos 1 se debe conectar a un voltaje correspondiente a 0 lógico.
ABD = 010. Esta vez, la referencia en el mapa difiere. Puesto que F = 0 cuando C = 0 y F = 1 cuando
C = 1, se ve que F = C. En el multiplexor, el dato de entrada D2 se conectará a F. Puesto que la lógica dada
requiere que F = C, la línea de datos 2 se debe conectar a la línea que lleva a la variable C.
ABD = 101. Una vez más, la referencia en el mapa difiere. Ya que F = 0 cuando C = 1 y F = 1 cuando
C = 0, de modo que se concluye que F es el inverso lógico de C. En el multiplexor, la línea de datos 5 debe
ser conectada a C.
El multiplexor completamente alambrado se muestra en la figura 5-7, y se debe ser claro, en este punto,
que los datos de entrada sólo pueden ser 0, 1, C o C. El análisis de las conexiones restantes se deja al estudian-
te.

Se debe aclarar que hay una relación entre las expresiones booleanas, las tablas de verdad, los
mapa K y los multiplexores y que, dado un multiplexor de tamaño apropiado para el número de
variables, se puede implantar cualquier función.

5.3 DECODIFICADORES Y DEMULTIPLEXORES

Estos dos elementos MSI están estrechamente relacionados. El demultiplexor es un multiplexor in-
verso, en el sentido de que toma una sola entrada y la distribuye a una o varias salidas de datos,
156 ELEMENTOS MSI Y LSI

ABD = 000
F = 1 sin considerar
el valor de C.

Fig. 5-7

de acuerdo con el estado de las variables de selección. Hay 2N salidas de datos para N selecciones.
La estructura lógica es muy similar a la que se muestra en la figura 5-2 y en la tabla 5.1, excepto
que todas las entradas de datos están unidas y hay una compuerta OR. El símbolo lógico se muestra
en la figura 5-8 la cual, presenta la combinación miltiplexor-demultiplexor.

EJEMPLO 5.4 Multiplexación por división de tiempo. Un solo medio de transmisión será compartido por
cuatro usuarios (suscriptores). Esto se puede lograr mediante el uso de un demultiplexor, como se muestra
en la figura 5-8. En el demultiplexor, Lo hasta L3 representan las salidas individuales (líneas de suscriptor),
mientras que Sld y S0d son las entradas de selección empleadas para determinar la ruta a la salida.
Obsérvese que el arreglo ilustrado se puede considerar como un sistema de telecomunicaciones sencillo
en el cual cualquier fuente se puede conectar a cualquier destino a través de un solo canal de transmisión.

El decodificador es un caso especial de un demultiplexor en el cual los datos de entrada están


permanentemente fijos a un 1 lógico. De este modo, la salida seleccionada será un estado 1 lógico
mientras que las otras salidas son 0 lógico. Un decodificador se denomina "decodificador completo"
si todas las posibles salidas se utilizan. El decodificador completo se puede ver como un dispositivo de
harware el cual representa los renglones de una tabla de verdad que tiene las variables de selección como
entradas. Por ejemplo, si las selecciones son 101, se escogerá la línea (renglón) 5 de la tabla de verdad.
Si se enumeran las líneas de salida en secuencia, es claro que el decodificador completo se puede
emplear como un decodificador de direcciones. Aquí, las entradas de selección se tratan como un
número binario (la dirección), y aparecerá un 1 lógico particularmente en la línea de salida seleccionada
(direccionada) por su código binario único.
ELEMENTOS MSI Y LSI 157

MULTIPLEXOR DEMULTIPLEXOR

Fig. 5-8

5.4 LA MEMORIA SÓLO PARA LECTURA (ROM)

En la figura 5-9 se muestra esquemáticamente una ROM. Consiste de una lógica, que es equivalente
a un decodificador de direcciones (N = 3 en el ejemplo actual) y un conjunto de compuertas OR
que tienen un fan-in muy alto (gran número de entradas por compuerta). La única línea vertical
en la entrada de cada compuerta OR representa, en realidad, las 2N entradas a la compuerta, ha-
biendo una para cada línea direccionada (salida del decodificador).
Se obtiene un estado VERDADERO en una línea del decodificador correspondiente al número
de dirección de entrada. Esta línea se puede conectar a cualquiera de las entradas sobre una o más
de las compuertas OR. En el diagrama, la marca ■ indica una conexión hecha y O indica una posi-
ble conexión que no se ha hecho (símbolo opcional). En el ejemplo de la figura 5-9, hay ocho líneas
del decodificador y cuatro compuertas OR, de manera que el número total de conexiones posibles
es 8 x 4 = 32.
Si se recuerda que el decodificador completo es un arreglo de compuertas AND, cada una con
las entradas conectadas a una sola combinación de bits de direcciones las cuales usan efectivamente
a la dirección para "activar (key on)" una línea de la tabla de verdad, se ve entonces que el decodifi-
cador corresponde del lado de las entradas de una tabla de verdad. Una variable de salida será 1
si una o más de las líneas de selección correspondientes a los renglones de la tabla de verdad se co-
nectan a una compuerta OR, habiendo una compuerta OR por separado para variable de salida
independiente. La lista de conexiones para una compuerta OR dada se puede interpretar como una
columna de salida de la tabla de verdad. De esta manera, una ROM se puede interpretar como la
158 ELEMENTOS MSI Y LSI

Tabla 5.2

SALIDAS
Fig. 5-9

Decodificador
ELEMENTOS MSI Y LSI 159

representación en hardware de una tabla de verdad, y se puede emplear para implantar lógica com-
binacional, como se ilustra en la tabla 5.2 la cual representa las conexiones mostradas en la figura
5-9.
En forma alternativa, la ROM se puede considerar como un dispositivo de memoria con los
datos almacenados como un patrón de conexiones correspondiente a una dirección dada. Usual-
mente, una conexión se considera como un 1 y la ausencia de conexión como un 0. El patrón de
conexiones a lo largo de una línea de dirección dada se denomina el "contenido" de la dirección
y consiste del dato almacenado ahí. En la figura 5-9, si se considera que W es el bit más significativo
y Z el menos, entonces se ve que la dirección contiene 1011 en binario o B en hexadecimal. El dato
se recupera inicializando apropiadamente los bits de la dirección y haciendo la lectura en la salida
de las compuertas OR.

Fig 5-10
160 ELEMENTOS MSI Y LSI

Programación de una ROM


Una ROM se fabrica con un decodificador completo y compuertas OR, todas con un alto fan-in
y sin ninguna conexión entre las líneas del decodificador y las entradas de las compuertas OR.
Cuando un cliente desea una ROM de cierto tamaño, le proporciona al vendedor la información
(un programa), que usualmente está en la forma de una tabla de verdad con el contenido de las
direcciones representada como números hexadecimales. El vendedor hace entonces las conexiones
metálicas apropiadas, encapsula el chip y lo envía al cliente. Es posible crear memorias ROM pro-
gramadas por el usuario. Estos componentes se discutirán en el capítulo 8.

EJEMPLO 5.5 ROM para la conversión de código binario a Gray. La ROM, como un dispositivo de memoria,
se puede ver como una búsqueda en una tabla. El conjunto de entradas binarias de la tabla de verdad
(B3B2B1B0 en la tabla 1.1) se emplean como las direcciones de la ROM, y los números codificados en Gray
correspondientes a cada entrada binaria se almacenan en la dirección correspondiente, como se muestra en
la figura 5-10. Se ve que la información en la tabla de verdad efectivamente se busca mediante las entradas
de selección.

Problemas resueltos
5.1 Dibújese el diagrama lógico de un multiplexor que tiene tres entradas de selección.
Determínense las conexiones de las compuertas AND formando el lado izquierdo de la tabla de
verdad como la que se muestra en la tabla 5.1 (véase la tabla 5.3).
Obsérvese que cada renglón tiene una combinación única de tres ls. Las conexiones correspon-
dientes se muestran en la figura 5-11.

Tabla 5.3
ELEMENTOS MSI Y LSI 161

Fig.5-11

Fig. 5-12 Fig, 5-13


162 ELEMENTOS MSI Y LSI

5.2 Implántese F = C'D + A'BD + A'B'D' + ABD' empleando un multiplexor de tamaño


apropiado. Sean A, B y C las variables de selección.
Primero, represéntese la función, como se muestra en la figura 5-12. Segundo, agrúpense las en-
tradas por pares como en el ejemplo 5.3. Los correspondientes equivalentes en decimal de las entradas
direccionadas mediante las variables A, B y C se muestran en la figura 5-13, que ayudan a ilustrar el
proceso. Finalmente, determínense apropiadamente los valores de los datos de entrada, como se des-
cribió en el ejemplo 5.3. Las conexiones resultantes se muestran en la figura 5-14.

Fig. 5-14

5.3 Repítase el problema 5.2. Esta vez empléense A, C y D como entradas de selección.
El mapa con los agrupamientos revisados se muestra en la figura 5-15, y el multiplexor alambrado
correspondiente se muestra en la figura 5-16.
ELEMENTOS MSI Y LSI 163

ACD = 010

Fig. 5-15

5.4 Repítase el problema 5.2, empleando un multiplexor con datos de entrada que consisten de
ls y 0s alambrados.
En este caso, todas las variables se emplean como entradas de selección y cada combinación selec-
cionada representa un solo cuadro en el mapa K, el cual selecciona inequívocamente una entrada co-
rrespondiente del multiplexor. Puesto que el multiplexor tiene cuatro entradas de selección, es del do-
ble de tamaño del multiplexor empleado en los problema 5.2 y 5.3. Los resultados tabulados se
presentan en la tabla 5.4.

5.5 Hágase el mapa K correspondiente al multiplexor que se muestra en la figura 5-17 en el que
Z es el bit de selección menos significativo.
Para el caso en el que las entradas de selección son X = 0, Y = 1 y Z = 0, se seleccionará la
línea de datos 2 y W se dirige hacia F. De este modo, F será igual a 0 cuando W = 1, y F será 1 cuando
W = 0; una relación que se puede expresar como f1 = W'X'YZ' es uno de los términos producto en
la expresión booleana total para F. Cuando XYZ = 001, se selecciona la línea 1, y se ve que la función
es igual a 1 sin considerar el valor de W. Esta condición se expresa como f2 = WX'Y'Z + W'X'Y'Z
o, de forma equivalente, F = 1 · X'Y'Z. La función lógica completa F se puede formar mediante un
análisis similar para cada una de las combinaciones de entrada, omitiendo todas las combinaciones
en las que la salida da 0. La expresión booleana resultante es F = X'Y'Z + W'X'Y'Z' + W'X'YZ' +
WX'YZ + WXY'Z' + WXYZ' la cual se puede representar ahora como se muestra en la figura 5-18.
Un método extremadamente sencillo consiste en arreglar el mapa K de manera que dos de las tres
variables de selección (X y Y en el presente ejemplo) estén en renglones o columnas adyacentes y la
tercera (Z) tenga sus ls o 0s apareados, como se muestra en la figura 5-19. Si se hace esto, será fácil
agrupar las entradas y llenar el mapa por inspección. Véase el ejemplo 5.3 y el problema 5.2.
164 ELEMENTOS MSI Y LSI

Tabla 5.4
S3 S2 S1 S0 Línea
A B C D de datos DATOS
0 0 0 0 0 1
0 0 0 1 1 1
0 0 1 0 2 1
0 0 1 1 3 0
0 1 0 0 4 0
0 1 0 1 5 1
0 1 1 0 6 0
0 1 1 1 7 1
1 0 0 0 8 0
1 0 0 1 9 1
1 0 1 0 10 0
1 0 1 1 11 0
1 1 0 0 12 1
1 1 0 1 13 1
1 1 1 0 14 1
1 1 1 1 15 0
ELEMENTOS MSI Y LSI 165

Obsérvese que aun cuando los mapas de las figuras 5-18 y 5-19 aparecen diferentes, en realidad
contienen la misma información. La lección que se aprendió aquí es que la dificultad de un problema
con frecuencia se puede incrementar o disminuir significativamente mediante el sencillo reordenamien-
to de las variables o su presentación.

5.6 Encuéntrese una realización equivalente única con un multiplexor para la lógica que se mues-
tra en la figura 5-20. Se requiere un multiplexor de gran tamaño.
La salida de M, es F1 = AC'D' + BC'D + CD'. La salida de M2 es F2 = A'B'C' + A'B +
ABD. Entonces F = F1 + F2, que se representa en la figura 5-21. Escogiendo arbitrariamente ABC
como entradas de selección, esto conduce a la realización que se muestra en la figura 5-22.

Fig. 5-18

Fig. 5-19
166 ELEMENTOS MSI Y LSI

Fig. 5-20

Fig. 5-21 Fig. 5-22


ELEMENTOS MSI Y LSI 167

5.7 Diséñese una ROM que multiplique dos números binarios de 2 bits.
Llámense a los números de entrada A1A0 y B1B0 y fórmese la tabla de verdad necesaria para re-
presentar el producto de 4 bits (véase la tabla 5.5). Si se tratan a los números de entrada como las va-
riables de la dirección y se asigna cada salida 1 a una compuerta OR, las conexiones requeridas se pue-
den leer directamente de las columnas de la tabla de verdad, como se muestra en la figura 5-23. Puesto
que los círculos indican que las conexiones no hechas (sección 5.4) son redundantes, se omiten.

Tabla 5.5 Tabla 5.6

5.8 Diséñese un programa para una ROM que convierta de código Gray a binario.
La secuencia de números del código Gray se reacomoda en orden binario ascendente para que sir-
va como el lado de entrada de la tabla de verdad, la cual ya se discutió en el capítulo 2 (véase a la tabla
2.1). Se sabe que esta secuencia se puede interpretar también como la lista de direcciones de una ROM
y que cada uno de los dígitos binarios correspondiente a una entrada particular de código Gray se alma-
cena en una localidad única de la ROM y aparece como salida cuando su dirección con la que está rela-
cionado se sitúa en las líneas de selección. La tabla de verdad práctica se muestra en la tabla 5.6 y la
ROM correctamente alambrada en la figura 5-24.

5.9 Dado el diagrama de hardware que se muestra en la figura 5-25, diséñese una ROM equiva-
lente.
Obsérvese que hay dos casos de medias flechas desbalanceadas. Puesto que se da un diagrama
de hardware, se debe lograr el balance de las medias flechas sin agregar ningún hardware. Esto se puede
hacer mediante el uso apropiado de la inversión lógica, o las diagonales (un elemento que no es de hard-
ware), las cuales redefinen la verdadera polaridad (LT o HT) en su punto de inserción. El proceso se
168 ELEMENTOS MSI Y LSI

Fig. 5-23

puede entender mediante la revisión del material de la sección 4.3 en conjunto con la interpretación
de los inversores de voltaje y su relación con el proceso de inversión lógica. El diagrama balanceado
resultante se muestra en la figura 5-26 en el cual se emplea la convención alternativa de la burbuja en
lugar de las medias flechas.
Una vez logrado el balance, remuévanse todas las burbujas y los inversores de hardware (no las
diagonales) para exponer el diagrama lógico fundamental que permite la lectura de la expresión boo-
leana deseada por inspección:
F = W'X'Z' + W'X(Y ⊕ Z) + WX'YZ + WX(YZ)'
= W'X'Z' + W'XYZ' + W'XY'Z + WX'YZ + WXY' + WXZ'
El mapa K resultante y la ROM se muestran en la figura 5-27.
ELEMENTOS MSI Y LSI 169

SALIDAS (en binario)

Fig. 5-24
170 ELEMENTOS MSI Y LSI

Fig. 5-25

Fig. 5-26

5.10 Implántese la lógica que se muestra en la figura 5-28 con un solo multiplexor. A
partir del diagrama lógico, se ve que la ecuación booleana es
F = XZ' + WYZ + W'X'Z + W'YZ' + WXY
Mediante la representación, se obtiene la figura 5-29. Obsérvese en la figura 5-29 que el término
WXY es redundante ya que todos los ls incluidos en los círculos no lo contienen. A partir del mapa
se obtiene la tabla 5.7, de la cual se pueden hacer ahora las conexiones del multiplexor que se muestra
en la figura 5-30.
ELEMENTOS MSI Y LSI 171

Fig. 5-27

Fig. 5-28
172 ELEMENTOS MSI Y LSI

Fig. 5-29

Tabla 5.7

Fig. 5-30
ELEMENTOS MSI Y LSI 173

Fig. 5-31 Fig. 5-32

Fig. 5-33

5.11 Dado el circuito del multiplexor que se muestra en la figura 5-31, diséñese una lógica equiva-
lente empleando compuertas NAND.
Por ahora, el estudiante debe ser lo suficientemente hábil para hacer el mapa K directamente a
partir del multiplexor. El proceso se puede facilitar, si se hace una tabla similar a la tabla 5.7.
Puesto que la meta es una realización mediante compuertas NAND, es razonable proceder con
una simplificación para reducir el número de compuertas. El mapa K con una efectiva cobertura de
ls se muestra en la figura 5-32 y la función es F = AB + CD + BD'. El diagrama lógico resultante
con compuertas NAND se muestra en la figura 5-33.
174 ELEMENTOS MSI Y LSI

Fig. 5-34 Fig. 5-35

Fig. 5-36

5.12 Diséñese un multiplexor para verificar la paridad de una palabra digital de 4 bits; es decir,
el circuito debe producir una salida verdadera si el número de ls en la palabra es impar.
Habrá cuatro variables independientes y una dependiente (figura 5-34). Expresando la función
y agrupando las entradas como en el problema 5.5, se tiene la figura 5-35. Entonces, mediante el em-
pleo de A, B y C como las entradas de selección del multiplexor, se obtiene el arreglo que se muestra
en la figura 5-36.

5.13 Dado el diagrama de hardware que se muestra en la figura 5-37, implántese la lógica equiva-
lente con un solo multiplexor.
La lógica se puede descifrar fácilmente si primero se balancean las burbujas y se agregan las inver-
siones lógicas, como se muestra en la figura 5-38. Después de retirar todas las burbujas y los inversores
de hardware (dejando las diagonales no distribuidas), la ecuación booleana se puede leer directamente
del diagrama lógico que queda como
F = XZ' + WYZ + W'X'Z + W'YZ' + WXY
ELEMENTOS MSI Y LSI 175

Fig. 5-37

Fig. 5-38
176 ELEMENTOS MSI Y LSI

Fig. 5-39 Fig.5-40

Fig. 5-41
ELEMENTOS MSI Y LSI 177

Mapeando la ecuación se obtiene la figura 5-39.


Finalmente, después de agrupar las entradas del mapa como en el problema 5.5 y empleando W,
X y Y como variables de selección, se obtiene el multiplexor alambrado como se muestra en la figura
5-40.

5.14 Determínese la expresión booleana correspondiente al diagrama de hardware que se muestra


en la figura 5-41.
Puesto que hay un inversor de hardware entre los multiplexores M2 y M3, se deben balancear las
burbujas mediante la adición de una inversión lógica, como se muestra en la figura 5-42. Se asume
que todas las variables especificadas son HT. Considérese para M3 en la figura 5-41:
A'B' → F = M´2
A'B → F = M1
AB' → F = M2
AB → F = M2
También M 2 = C'D'E + C'DE + CDE'
Esto se puede mapear (figura 5-43) y simplificar por medio de la cobertura de ls para obtener
M 2 = C'E + CDE' (5.1)

Fig. 5-42 Fig. 5-43

Una cobertura de 0s produce


M'2 = C'E' + CD' + CE (5.2)
De manera similar,
M 1 = C'D' + C'D + CD'E'
= C' + CD'E' (5.3)
Ahora se puede formar la función F.
F = A'B'M2 + A'BM1 + AB'M2 + ABM2
= B'M'2 + A'BM1 + ABM2 (5.4)
Sustituyendo las ecuaciones (5.1), (5.2) y (5.3) en la (5.4), se obtiene
F = B'C'E' + B'CD' + B'CE + A'BC' + A'BCD'E' + ABC'E + ABCDE'
la cual se mapea en la figura 5-44. La simplificación se logra por medio de la cobertura de 1s, como
se muestra para producir,
F = A'C'E' + CD'E' + B'C'E' + BC'E + B'CE
178 ELEMENTOS MSI Y LSI

Fig. 5-44

Fig. 5-45
ELEMENTOS MSI Y LSI 179

5.15 Encuéntrense las expresiones simplificadas para cada una de las salidas de la ROM que se
muestra en la figura 5-45.
Las funciones se pueden representar directamente a partir de las conexiones de la ROM (figura
5-46).

5.16 Dada la ROM que se muestra en la figura 5-47, determínese la dirección en la que se almace
na el número hexadecimal El. Considérese la alternativa de emplear círculos sólidos para
indicar las conexiones.
Agrupando en cuartetas, se obtiene que $E1 = (1110)(0001), el cual se ve que está almacenado
en la línea 6, la dirección en binario es WXYZ = 0110.

Fig. 5-46
180 ELEMENTOS MSI Y LSI

Fig. 5-47

Problemas suplementarios
5.17 Dado el circuito del multiplexor que se muestra en la figura 5-48, fórmese una lógica equivalente em-
pleando compuertas NAND SSI.

Fig.5-48
ELEMENTOS MSI Y LSI 181

Fig. 5-49

5.18 Implántese la lógica que se muestra en la figura 5-49 mediante un multiplexor con tres entradas de se-
lección.

5.19 Implántese la lógica del multiplexor que se muestra en la figura 5-50 con compuertas NAND y minimi-
ce el número de compuertas tanto como sea posible. Se puede asumir que se dispone de todas las entra-
das tanto en forma directa como lógicamente invertidas (HT).

5.20 Implántese una lógica de verificación de paridad para el bit P3 del código Hamming para corrección
de errores del problema 3.26. Empléese un mapa de la ecuación booleana sin simplificaciones y un mul-
tiplexor de tres entradas de selección.

5.21 Repítase el problema 5.20 empleando un mapa simplificado y un multiplexor de dos entradas de selec-
ción.

5.22 Implántese la solución para el multiplicador de 2 bits del problema 3.25 empleando multiplexores y
compárese la cantidad de chips SSI utilizados en la solución que se obtuvo en el problema 4.27.

5.23 Implántese la solución del restador binario del problema 2.27 empleando multiplexores. Compárese
la cantidad de chips SSI utilizados en la solución que se obtuvo en el problema 4.30.
182 ELEMENTOS MSI Y LSI

Fig. 5-50

5.24 Implántese la solución del restador binario del problema 5.20 empleando un multiplexor con tres en-
tradas de selección. Compárese su resultado con la solución del problema 5.23.

5.25 En la figura 5-51, A y F son los bits más significativos. Viendo el circuito como un dispositivo de me-
moria, ¿cuáles son los números binarios almacenados en 1011 y 0101?

5.26 Viendo el circuito de la figura 5-51 como un dispositivo lógico, dibújese el mapa K para la variable
J y simplifíquese la función.

5.27 Dada la ROM alambrada que se muestra en la figura 5-52, implántese la lógica para la salida F con
un multiplexor de tres entradas de selección empleando W, X y Z como las variables de selección. Tó-
mese W como el bit más significativo.

5.28 Diséñese un circuito multiplexor con tres entradas de selección cuya salida sea VERDADERA si y sólo
si un número par de sus cuatro entradas son VERDADEROS.
ELEMENTOS MSI Y LSI 183

Fig. 5-51

Fig. 5-52
184 ELEMENTOS MSI Y LSI

Fig. 5-53

Fig. 5-54
ELEMENTOS MSI Y LSI 185

5.29 Diséñese una ROM para verificar la paridad de una palabra digital de 4 bits. Es decir, el circuito debe
producir una salida VERDADERA si el número de ls en la palabra es impar. Asúmanse que los dígitos
binarios son A, B, C y D, siendo A el más significativo.

5.30 Implántese la solución para el manejador del exhibidor de siete segmentos del problema 2.2 empleando
una ROM.

5.31 Tratando la ROM que se muestra en la figura 5-53 como un elemento de memoria, determínese el con-
tenido de todas las direcciones.

5.32 Tratando la ROM que se muestra en la figura 5-53 como un componente, como el que se muestra en
la figura 5-54, determínese la salida del sistema (Z1, Z2) para la entrada mostrada.

5.33 Véase el problema 2.2, implántese la lógica del manejador del decodificador de siete segmentos em-
pleando un multiplexor de tres entradas de selección.

Fig. 5-55
186 ELEMENTOS MSI Y LSI

5.34 Los multiplexores de ocho entradas vienen en un chip. Si un multiplexor cuesta 25 centavos de dólar,
una ROM 1.25 dólares y el costo de instalación y prueba de cualquier chip 35 centavos de dólar, com-
párese el costo de la implantación mediante multiplexores del manejador de un exhibidor de siete seg-
mentos completo (problema 5.33) con el de la implantación mediante una ROM (problema 5.30).

5.35 Considérese la red de conmutación que se muestra en la figura 5-55. ¿Qué señales se deben aplicar a
las entradas de selección para conectar b con N?

5.36 Considérese la red de conmutación que se muestra en la figura 5-55. ¿Qué conexiones hay que hacer
cuando las señales de selección están dadas por
s 1 ,s 2 ,s 3 ,s 4 ,s 5 ,s 6 ,s 7 ,s 8 = 01110101

5.37 Para la red de conmutación que se muestra en la figura 5-55, estímese el número de chips requeridos
para implantarla con compuertas SSI individuales. Compárese esto con la implantación mediante mul-
tiplexores, observando que vienen dos multiplexores de cuatro entradas en un chip. Refiérase a la figu-
ra 5-2 y la sección 5.3.

5.38 Para los dos diseños competitivos del problema 5.37, cada chip de compuertas cuesta 20 centavos de
dólar y cada multiplexor o demultiplexor doble cuesta 80 centavos de dólar. Si el costo de instalación
y prueba de cualquier chip es de 35 centavos de dólar y cada chip ocupa 1 in2 de espacio, compárense
los costos y espacio requeridos para cada una de las dos implantaciones y determínese el precio del
multiplexor para emparejar los costos.

5.39 Un diseñador está considerando el emplear una ROM para implantar el multiplicador binario de 2 bits
del problema 4.27. Un chip de compuertas cuesta 20 centavos de dólar y 35 centavos adicionales de
instalación y prueba. Si cuesta 85 centavos de dólar instalar y probar una ROM, ¿cuál es el máximo
precio que se puede pagar por una ROM para emparejar el costo relativo del diseño con compuertas
individuales?

5.40 Se dispone de una ROM comercial relativamente barata de ocho direcciones y ocho salidas. ¿De cuán-
tas posibles conexiones se dispone?
ELEMENTOS MSI Y LSI 187

Respuestas a los problemas suplementarios

5.17 Véase la figura 5-56.

Fig. 5-56

5.18 Véase la figura 5-57.

Fig. 5-57

5.19 Véase la figura 5-58. Obsérvese que la variable A se ha retirado para que no tenga efecto en la salida.

Fig. 5-58
188 ELEMENTOS MSI Y LSI

5.20 A partir del problema 3.26,

Fig. 5-59
5.21 Véase la figura 5-60.

Fig. 5-60

5.22 Véase la figura 5-61. Obsérvese que sólo se usan cuatro chips comparado con los cinco en el caso SSI
optimizado del problema 4.27.
5.23 Véase la figura 5-62.
5.24 La solución se muestra en la figura 5-63. Puesto que los multiplexores de tres entradas de selección
se empacan de uno por chip, se requieren dos chips. Sin embargo, no se necesitan inversores y el proble-
ma de distribución de partes se puede facilitar mediante este enfoque.
5.25 1001, 1100.
5.26 Véase la figura 5-64. J = C + B'D + A'D' o J = C + A'B' + A'D'.
5.27 Véase la figura 5-65.
ELEMENTOS MSI Y LSI 189

Fig. 5-61

X Y Bi D Bo
0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
0 1 1 0 1
1 0 0 1 0
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1

Fig. 5-62
190 ELEMENTOS MSI Y LSI

X Y Bi D Bo

0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
0 1 1 0 1
1 0 0 1 0
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1

Fig. 5-63

0 1 1 0 D
A B 0 0 1 1 C
0 0 1 1 1 1
0 1 1 0 1 1
1 1 0 0 1 1
1 0 0 1 1 1

Fig. 5-64

Fig. 5-65
ELEMENTOS MSI Y LSI 191
5.28 Véase la figura 5-66.

Fig.5-66
5.29 Véase la figura 5-67.

Fig. 5-67
192 ELEMENTOS MSI Y LSI

5.30 Véase la figura 5-68.

Fig. 5-68
5.31 Véase la tabla 5.8.
Tabla 5.8
Dirección Contenido Dirección Contenido

0 AC 8 BF
1 60 9 F5
2 D9 10 0A
3 D3 11 6B
4 66 12 88
5 97 13 C4
6 3F 14 28
7 40 15 0E

5.32 Z 1 = 0, Z 2 = 1.
5.33 Véase la figura 5-69.

5.34 Costo de la implantación con multiplexores = 7($0.25 + $0.35) = $4.20 (dólares); costo de la implan-
tación con ROM = $1.25 + $0.35 = $1.60.

5.35 s1s2 = 01, s3s4 = 00, s5s6 =11, s7s8 = 01


ELEMENTOS MSI Y LSI 193

Fig. 5-69

5.36 El punto m se conecta al punto F.

5.37
Tipo de compuerta Número Contenido de chip chips necesarios
3-entradas 36 3 compuertas 12
4-entradas 4 2 compuertas 2
Inversores 18 6 compuertas 3
Total = 17
Multiplexores 4 2 2
Demultiplexores 5 2 3
Total = 5

5.38 Diecisiete chips de compuertas a un costo de 3.40 dólares y de 5.95 dólares para instalación; el costo
total = 9.35 dólares. El requerimiento de espacio es de 17 in2. Cinco chips de multiplexores o demul-
tiplexores con un costo de 4.00 dólares y se requiere 1.75 dólares para la instalación; el costo total =
5.75 dólares. El espacio requerido es de sólo 5 in2. Los precios de los dos diseños se emparejan si el
costo de los multiplexores es de 1.52 dólares (ignorando la ventaja de espacio).

5.39 Son necesarios cinco chips, a partir del problema 4.27; de este modo, el costo para el enfoque de las
compuertas individuales es de 2.75 dólares, lo cual permite un precio tope de 1.90 dólares para la
ROM.

5.40 28 x 8 = 2048. El dispositivo se conoce como ROM de 2K, puesto que hay aproximadamente 2000
posibles conexiones.
Capítulo 6
Diagramas de tiempo
6.1 INTRODUCCIÓN

En general, el comportamiento de un sistema lógico se describe y estudia mediante el empleo de


los diagramas de tiempo. Estos diagramas muestran, a lo largo de un eje de tiempo, voltajes o nive-
les lógicos en varios puntos de un circuito digital y se pueden utilizar para indicar ya sea relaciones
funcionales como tiempos de retardo, los cuales existen entre las entradas y las salidas. La velocidad
con la que una entrada cambia propicia un cambio correspondiente en la salida, la cual, con fre-
cuencia, es un parámetro importante de diseño y el diagrama de tiempo es una ayuda de gran valor
en el estudio de su impacto en el desempeño del sistema. Un instrumento de laboratorio ampliamen-
te utilizado en la localización de fallas en hardware lógico es el analizador lógico, que es esencial-
mente un osciloscopio multicanal con memoria que muestra varias formas de onda en el tiempo
simultáneamente. Otra herramienta de gran valor, particularmente en la fase de diseño, es el simu-
lador lógico, el cual consiste de un software que corre en una computadora o estación de trabajo
y es capaz de producir familias de diagramas de tiempo relacionados a partir de un diagrama esque-
mático o entradas booleanas. Los simuladores lógicos son valiosos para los diseñadores gracias a
que permiten hacer la validación del desempeño del sistema antes de que se desarrolle en hardware.
Hay dos tipos básicos de diagramas de tiempo. Primero, el diagrama de microtemporización,
que está relacionado con los retardos de propagación encontrados en las compuertas individuales.
Se utiliza para detectar y exhibir condiciones no deseadas, como "glitches" (pulsos de interferencia
de baja frecuencia) y oscilaciones inestables debidas a la realimentación. Segundo, el diagrama de
macrotemporización, en el que se considera la relación de tiempos entre las señales y varios puntos
del sistema sobre una escala de tiempo lo suficientemente grande para que no se tomen en considera-
ción los retardos de las compuertas individuales. Se pueden exhibir varias formas de onda de las
entradas y salidas de compuertas para un intervalo de tiempo fijo, normalmente con referencia a
la forma de onda del reloj o a la base de tiempo.

6.2 DIAGRAMAS DE MICROTEMPORIZACIÓN

En sistemas digitales, la implantación en hardware mediante compuertas lógicas involucran dispo-


sitivos electrónicos que conmutan entre estados de conducción y de no conducción. Toma tiempos
pequeños aunque finitos para que ocurra esta conmutación ya que los efectos de conducción y al-
macenamiento de carga electrónica causan un retardo medible entre la aplicación de un cambio de
nivel de voltaje en la entrada de la compuerta y el apropiado reconocimiento de la respuesta en la
salida de la compuerta. Este intervalo de tiempo, conocido como tiempo de retardo de propagación

194
DIAGRAMAS DE TIEMPO 195

(tpd), se especifica por el fabricante del hardware en sus hojas de datos y tiende a ser una constante
que se aplica a todas las compuertas del mismo tipo.
Con frecuencia se asume que, para propósitos del análisis lógico de microtemporización, toda
compuerta en el sistema tiene una idéntica unidad de retardo de propagación. El diagrama de mi-
crotemporización toma en cuenta estos retardos de propagación para mostrar el comportamiento de
un sistema siguiendo un cambio específico en una o más de sus entradas, suponiendo que ocurren
en t = 0.

Obtención del diagrama de microtemporización


1. Los valores iniciales de las señales (ya sea lógicas o de voltaje) aplicadas a todas las entradas
del sistema deben ser conocidas y registradas en t = (0—), el tiempo inmediatamente anterior
a un cambio en t = 0.
2. Con estos valores se determina el estado de cada compuerta interna y se ingresa al diagrama
de tiempos.
3. Se hace que una señal de entrada específica cambie su estado lógico, y este cambio se ingresa
al diagrama de tiempos en t = 0.
4. Todas las conexiones que enlazan las señales modificadas (alteradas) a las entradas de las com-
puertas internas se identifican mediante el examen del diagrama lógico.
5. Cada una de estas compuertas se examina para ver si su estado lógico se verá modificado por
los cambios descritos en el paso 4. Si es así, la respuesta se ingresa al diagrama en el próximo
intervalo de retardo de propagación que se presente. Obsérvese que puesto que se presume que
todas las compuertas tienen retardos idénticos, se construye el diagrama de tiempos en pasos
discretos iguales a la unidad de tiempo de retardo de propagación tpd.

Fig. 6-1
196 DIAGRAMAS DE TIEMPO

6. Cada cambio en la salida de alguna de las compuertas, si se presenta, se trata ahora como un
cambio en la entrada de cualquiera de éstas a las que este cambio se conecta, y se repite el paso 5.
7. El proceso termina cuando ninguna salida de las compuertas ha cambiado.

EJEMPLO 6.1 Asúmase que los dispositivos físicos (compuertas e inversores) en el circuito lógico de la figura
6-1 tienen retardos de propagación idénticos. Todas las entradas y las salidas en este ejemplo se consideran
HT e, inicialmente, A, B, C y D son todas 1s. En t = 0, C cambia a 0 lógico. Dibújese el diagrama de microtem-
porización lógico apropiado, y conviértalo para exhibir las formas de onda de voltaje.
La separación de las formas de onda (particularmente si se dibujan a mano) de alguna manera se hace
menos confusa si se sombrean los estados que representan el 1 lógico como se muestra en la figura 6-2.

Formas de onda lógicas


La variable C, que cambia de 1 lógico a 0 lógico en t = 0, se ve que está conectada a las compuertas
G1, G4 y G5, como se indica mediante la notación "XG1, G4, G5" en la figura 6-2. Se examina ca-
da una en orden. La compuerta G1 es un inversor de voltaje. Puesto que aparece en conjunto con
la diagonal, su salida debe cambiar a 1 lógico cuando C cambia a 0. Obsérvese que si se usa un inver-
sor sólo para balancear las medias flechas (como se indica por la ausencia de la diagonal), entonces
no se presenta la inversión lógica y el inversor de hardware sencillamente pasa un cambio lógico
en su entrada después de un retardo de un intervalo de tiempo. La compuerta G4 es una AND, de
modo que su salida se va a 0 lógico si alguna de sus entradas se hace 0. Así, G4 cambiará. La com-
puerta G5 no se verá afectada por el cambio de C puesto que una de sus entradas ya es 0. Los cam-

Fig. 6-2 Formas de onda lógicas


DIAGRAMAS DE TIEMPO 197

bios en las salidas de G1 y G4 se ingresan en el diagrama en el tiempo marcado como 1, un intervalo


de tiempo retardado siguiente al del estímulo que propicia dichos cambios (el cambio en C).
Ahora se verán las compuertas que han presentado cambio. La compuerta G1 se conecta sólo
a G3; se ve que G4 sólo afecta a G6. La compuerta G3 se irá a 1 puesto que sus tres entradas serán
1s inmediatamente después del intervalo de tiempo 1. La compuerta G6 se irá a 0 ya que todas sus
entradas serán Os después del intervalo de tiempo 1. Los cambios en G3 y G6 se ingresan en el tiem-
po 2.
Repitiendo el procedimiento anterior, se observa que sólo la conexión entre G3 y G6 es la que
falta ser evaluada: se esperará que la compuerta G6 (F) regrese a 1 lógico ya que sus tres entradas
serán nuevamente 1s. El proceso termina puesto que la última compuerta que presenta cambios no
está conectada a otras compuertas.

Formas de onda voltaje


Las salidas de las compuertas G1, G2 y G6 son HT, y por consiguiente, su lógica y sus formas de
onda de voltaje serán idénticas. Las compuertas G3, G4 y G5 tienen salidas LT lo que hace necesa-
rio invertir sus formas de onda lógicas para obtener los voltajes equivalentes, como se muestra en
la figura 6-3.

6.3 RAZÓN DE FALLAS

La lógica representada mediante el diagrama de la figura 6-1 se determina fácilmente


F = AC'D + BC + A'C.

Fig. 6-3 Formas de onda de los voltajes


198 DIAGRAMAS DE TIEMPO

Esta expresión booleana predice que al inicio, cuando A = B = C = D = 1, F será 1 y se mantendrá


inalterada aun cuando C cambie a 0. Las formas de onda, sin embargo (figura 6-2), indican una
condición temporal donde la salida F se va a un estado BAJO momentáneamente y entonces regresa
al propio estado ALTO, como lo exige la lógica. A este corto periodo de aberración, debido a las
desigualdades en los retardos de propagación en trayectorias lógicas paralelas, se le conoce como
razón de fallas (algunas veces llamado de manera informal como un "griten").
Puesto que no se dispone de una variable C como una entrada, la lógica demanda la adición
de un inversor de voltaje de hardware que agregue una unidad de retardo extra en su trayectoria
de la señal. Esto, desafortunadamente, produce la razón de fallas que se muestra en la figura 6-3,
que viene de la diferencia de retardo entre el camino de C y C el cual converge en G6.
Este tipo de razón de fallas se puede reconocer sobre un mapa K. Considérese el mapa para la
función del ejemplo 6.1 (véase la figura 6-4).

Fig. 6-4
f
En este mapa, la transición del estado inicial± ali estado final± se presenta en la frontera de
dos coberturas que no se traslapan. En general, con el fin de determinar si el cambio en una sola
variable produce una condición de razón de fallas, sólo se necesita buscar la adyacencia de los esta-
dos inicial y final sobre el mapa que están en coberturas separadas.
La situación se puede corregir con relativa facilidad. Se agrega una cobertura de razón de fallas
que se traslapa sobre las coberturas fuente y destino, como se muestra en la figura 6-5. El resultado
es la adición de un término en la ecuación para F y el incremento correspondiente en el hardware
requerido.
Es importante observar que mientras el mapa se puede utilizar para detectar razón de fallas
en la lógica combinacional que surgen de la diferencia entre la longitud de las trayectorias entre
una variable y su componente, hay otras clases de problemas de temporización que no son fáciles
de detectar (véanse los problemas 6.6 y 6.7). Adicionalmente, mientras el mapa puede indicar dos
estados de entrada, los cuales estarán involucrados en una razón de fallas, no se puede identificar
cuál es el inicial. Es muy posible que un glitch se presentará cuando se pasa de un estado Si a un
estado S2, pero no en la otra dirección, como se muestra en el problema 6.1.
Los glitches con frecuencia son inevitables, al menos los contabilizados por el propio diseño;
pueden causar serios errores en circuitos digitales. Un medio poderoso para hacerles frente contem-
pla la implantación de una selección estroboscópica o técnica de reloj, como se plantea en la sección
7.4.
DIAGRAMAS DE TIEMPO 199

6.4 DIAGRAMAS DE MACROTEMPORIZACIÓN

Los diagramas de macrotemporización se utilizan para exhibir las salidas de varias compuertas rela-
cionadas con entradas independientes o con alguna referencia, como un tren de pulsos de reloj del
sistema. En un principio están relacionados con el comportamiento del circuito visto sobre una escala
de tiempo considerablemente más grande que la empleada en el estudio del fenómeno de retardo de
propagación. Los efectos del retardo individual de las compuertas se omiten intencionalmente o se
vuelven pequeños (insignificantes) comparados con las transiciones secuenciales de la lógica
relacionada que se muestra en el diagrama.

Cobertura de
razón de fallas

Fig. 6-5

Fig. 6-6 Diagrama lógico


200 DIAGRAMAS DE TIEMPO

Fig. 6-7 Formas de onda de los voltajes

EJEMPLO 6.2 Las entradas HT A, B, C y D para lógica que se muestran en la figura 6-6 varían con el tiempo,
como se ve en la parte superior de la figura 6-7. Asumiendo que el circuito responde instantáneamente a los
cambios en la entrada (esto es, el retardo de propagación de los dispositivos no se puede distinguir sobre la escala
de tiempo empleada) hágase un esquema de las formas de onda de los voltajes de salida F y G.
A partir del diagrama lógico, F = AB + (C + D)'. Empleando el teorema de De Morgan en el segundo término
se obtiene F = AB + C'D'; esto es, F será VERDADERA ya sea si A y B son VERDADERAS o C y D son
FALSAS. Estas condiciones se presentan tres veces para las entradas dadas, puesto que F es HT, su
correspondiente forma de onda de voltaje conformará a la lógica, como se muestra en la figura 6-7.
Obsérvese que la salida G es igual a B'(C + D)' o, de manera equivalente, G = B'C'D'. De este modo, G será
VERDADERA sólo si B, C y D son FALSAS y, puesto que G es LT, su forma de onda de voltaje será la inversa
que la sugerida por la lógica.

6.5 SIMULACIONES EN EL TIEMPO

Una buena herramienta para confirmar el diseño lógico funcionalmente es un simulador lógico por
computadora que permita al diseñador imitar el circuito experimental y las fases de prueba de un
diseño sin la necesidad de alambrar. Aun cuando no es un sustituto del prototipo real, el simulador
acelera el proceso de diseño permitiendo la temprana detección de los problemas básicos de fallas
y temporización. Sentado frente a su computadora un ingeniero "ensambla" un circuito de
hardware mediante un proceso llamado captura esquemática con el cual se dibuja el diagrama del
circuito sobre la pantalla seleccionando los componentes lógicos de una librería de software e inter-
conectándolos con el ratón (mouse) o una herramienta similar que permita el conveniente posicio-
namiento de los objetos sobre la pantalla de la computadora. Una pantalla común que forma parte
DIAGRAMAS DE TIEMPO 201

Fig. 6-8

Fig. 6-9
202 DIAGRAMAS DE TIEMPO

de un paquete de simulación llamado Logic Works™ de Capilano Computing, se muestra en la fi-


gura 6-8, en la cual se representa el circuito del ejemplo 6.1.
Sobre la pantalla de la figura 6-8, se presenta el menú que permite la entrada a la librería de
compuertas. En este caso, el símbolo para la NAND se ha escogido para enfatizar que el análisis
será una simulación de hardware. Aunque la mayoría de los simuladores reales emplean la conven-
ción de la lógica positiva, se empieza a incluir un número creciente de los símbolos de la lógica
mixta, y en futuras versiones de LogicWorks™ se espera hacer lo mismo.
A medida que un diseñador crea el circuito esquemático, las trayectorias de interconexión se
almacenan en la computadora como una lista net. El software de simulación aplica señales seleccio-
nadas y/o niveles fijos a las entradas de la red y en el monitor se tienen las respuestas de las salidas
y cualquiera de los otros puntos internos deseados. En la figura 6-8, las entradas A, B y D están
conectadas a 1 lógico a través de interruptores operables seleccionados del menú de I/O. La entrada
C se obtiene de un escalón de 1 a 0 dibujando su forma de onda (empleando el ratón) en una ventana
de tiempo, parte de la cual se muestra en la figura 6-9. Siguiendo un comando rest, se inicia la simu-
lación y las formas de onda mostradas se generan en menos de un segundo. Compárense los resulta- -
dos con el diagrama de tiempos de la figura 6-3 que se trazó manualmente, y obsérvese la
confirmación del glitch que se predijo en la salida F.

Fig. 6-10
DIAGRAMAS DE TIEMPO 203

En la mayoría de los simuladores de software, es posible variar los retardos de los componentes
seleccionados e ir a la búsqueda del glitch. En el ejemplo todos los retardos de las compuertas se
fijaron a 10 unidades de tiempo anteriores a la corrida de la simulación. Algunos paquetes de soft-
ware incluyen rutinas para la detección de glitches las cuales predicen las condiciones de razón de
fallas.

6.6 REALIMENTACIÓN EN CIRCUITOS COMBINACIONALES

En la figura 6-10 se muestra un circuito lógico combinacional que contiene dos realimentaciones.
En este caso, dos de las variables de salida (Yi y Y2) son funciones de varias variables, incluyendo
ellas mismas. En otras palabras, en un circuito con realimentación, el valor de una variable dada
se ve afectada por la misma variable.
Bajo ciertas condiciones, estos circuitos pueden ser inestables puesto que la llegada de una re-
alimentación puede propiciar que la salida cambie, y esto a su vez, modificará a la entrada y
producirá nuevamente un cambio, y así sucesivamente. Si un mapa K para la razón de fallas predice
un glitch, se podría esperar la probabilidad de oscilaciones sostenidas entre dos estados, la razón
dependerá de los retardos de propagación del circuito.
Se ve de la figura 6-10 que

Y 2 = Y' 1 Y 2 R'S' + S
Y1 = Y1Y2R' +RS + Y1S

Los mapas K para Y1 y Y2 se muestran en la figura 6-11 donde se observa, en el mapa de Y2,
que no hay coberturas con ls adyacentes que se traslapen. Esto indica que se puede presentar un
glitch en Y2 cuando R = 0 y S cambia, previniendo al diseñador para que analice el circuito con
más detalle y así evitar un comportamiento oscilatorio.
Es obvio que a medida que el diseño del circuito es más complicado y se incluyen realimentacio-
nes, la construcción a mano de los diagramas de microtemporización se hace una tarea muy pesada.
El simulador por computadora hace el trabajo muy sencillo, permitiendo a los diseñadores verificar
a los circuitos de una manera mucho más completa antes de invertir en el hardware. Como un ejem-

Fig. 6-11
204 DIAGRAMAS DE TIEMPO

a) Diagrama esquemático para la simulación

b) Formas de onda predichas (diagrama de microtemporización)


Fig. 6-12
DIAGRAMAS DE TIEMPO 205

plo, considérese el caso donde el circuito realimentado de la figura 6-10 se construye con compuer-
tas NAND. La inestabilidad predicha se demuestra fácilmente mediante una simulación con
LogicWorks™, como se muestra en la figura 6-12.*
Obsérvese que, como lo predijo el mapa K, se presenta inestabilidad en Y2 cuando R = 0 y
S cambia.

Problemas resueltos
6.1 Considérese la implantación con compuertas NAND de la función F = (AB)' + AD que
se muestra en la figura 6-13. Asumiendo que todas las compuertas tienen el mismo retardo de
tiempo, dibújese un diagrama de microtemporización para el caso donde A cambia mientras
que B = D = 1.

Fig. 6-13
Antes de trazar una señal paso por paso, se recomienda determinar la lógica fundamental, lo cual
se puede hacer fácilmente aplicando el proceso de conversión que se planteó en el problema 4.10, y
que permitió obtener el equivalente en lógica mixta requerido. Se presenta nuevamente en la figura
6-14.

Fig. 6-14

*La simulación de circuitos con retroalimentación a veces no opera apropiadamente debido a la falta de condiciones iniciales
sin ambigüedades. Una amplia discusión de cómo debe manejarse este problema al usar LogicWorks™, se encuentra en
el apéndice C.
206 DIAGRAMAS DE TIEMPO

La generación del diagrama de microtemporización se describió en el ejemplo 6.1. Las conexiones


muestran con claridad a partir del trazo de cada cambio de las variables; la compuerta o compuertas
afectadas se identifican, y los cambios en los niveles lógicos resultantes (si hubiera alguno) se ingresan
al diagrama un tiempo después de donde se aplicó el estímulo. El diagrama de tiempos resultante se
muestra en la figura 6-15. La expresión booleana dada conduce a creer que F permanecerá igual a 1
sin tomar en cuenta el estado de A, y, como se esperaba, no hay respuesta debida a un cambio de 0
a 1 en la entrada. Contrariamente a la predicción booleana, sin embargo, un cambio de 1 a 0 en A
produce un "glitch" dos intervalos de retardo de tiempo después de la transición de la entrada. Este
resultado se puede comparar con las formas de onda de la simulación si todas las salidas LT se invierten
(véase la figura 6-16).

Fig. 6-15 Niveles lógicos de microtemporización

Fig. 6-16 Simulación en el tiempo. Obsérvese el glitch en F debido a una transición en A de 1 a 0


DIAGRAMAS DE TIEMPO 207

6.2 Para el circuito del problema 6.1 dibújese el mapa K, agréguese una cobertura de razón de
fallas para eliminar el glitch y discútase su impacto sobre el hardware.
Aplicando el teorema de De Morgan a la función dada se obtiene F = A' + B' + AD. En la figura
6-17 se muestra el mapa K con los círculos correspondientes a esta forma booleana, donde el glitch
se puede identificar rápidamente como 1s adyacentes en coberturas aisladas. Se puede agregar una co-
bertura de razón de fallas sobre los dos 1s indicados, o se puede extender sobre la columna de entrada
del lado derecho. El arreglo formal requiere una compuerta AND. Esto último da un término booleano
sencillo, pero requiere un inversor para balancear las medias flechas, así, en el presente caso, probable-
mente no haya razón para elegir un método sobre el otro. Si alguna otra especificación o regla de dise-
ño no inclina el balance, se permite que lo decida un "volado" o cara o cruz entre ingenieros.

Estados del glitch a ser


encerrados con una cobertura
de razón de fallas.

Fig. 6-17

6.3 Asumiendo que todo el hardware (compuertas e inversores) en la figura 6-18 tiene el mismo
retardo de tiempo, hágase el esquema del diagrama de microtemporización lógico completo.
Inicialmente, todas las variables de entrada son 1s. En t = 0, C cambia a 0. Todas las entra-
das y salidas son HT.

Fig. 6-18
208 DIAGRAMAS DE TIEMPO

Puesto que A, B y D se mantienen en 1, es relativamente fácil seguir la lógica. Cuando C cambia,


afecta directamente a las compuertas G1, G4 y G5 las cuales, si responden, harán lo mismo después
de un intervalo de retardo de tiempo. La compuerta G5 no cambia de estado puesto que su entrada
inferior se mantiene en 0 lógico. Cuando la compuerta G4 cambia, no puede afectar a G6 debido a
que G7 está en 1 lógico. Sin embargo, el inversor G7 se va a 0 lógico en el tercer intervalo de tiempo
en respuesta al cambio en la compuerta G3, causando que G6 (y F) se vayan a 0 en el intervalo de
tiempo 4. El diagrama de microtemporización lógico se muestra en la figura 6-19.
Es interesante comparar este circuito con el de la figura 6-1, el cual difiere sólo en la ausencia del
inversor G7. Aunque en la figura 6-18 las trayectorias reconvergentes para la variable C tienen tres re-
tardos de tiempo en la rama superior y sólo uno en la inferior, no se presenta glitch debido a la estructu-
ra de la lógica.

Fig. 6-19 Formas de onda lógicas


DIAGRAMAS DE TIEMPO 209

6.4 El circuito que se muestra en la figura 6-20 es una interconexión común de compuertas deno-
minada latch, que se describirá con detalle en el capítulo 7. Obsérvese el arreglo de realimen-
tación acoplada en cruz donde la salida de una compuerta se utiliza como entrada para la otra.
Asúmanse que los estados de salida están como se muestra y ambas entradas se iniciali-zan en 0
lógico. En el tiempo t = 0, la entrada R cambia a 1. Dado que ambas compuertas tienen igual
retardo de tiempo, dibújese el diagrama de microtemporización lógico.
Debido a las inversiones lógicas, las entradas de realimentación a las compuertas G1 y G2 son 1
y 0, respectivamente. Con ambas entradas externas en 0 lógico, se ve que las salidas dadas son consis-
tentes. Cuando R cambia afecta a G2 la cual se va a 1 lógico después de un intervalo de retardo de
tiempo. Esto propicia que la entrada de realimentación de G1 se haga 0, y, puesto que esta compuerta
no tiene ceros en ambas entradas, su salida Q cambiará de 1 a 0 después de un intervalo de retardo
más (véase la figura 6-21).

Fig. 6-20

Fig. 6-21 Formas de onda lógicas para el latch


210 DIAGRAMAS DE TIEMPO

Se ve que G2 no responderá al cambio en G1 puesto que ya está en el estado 1 y el proceso termi-


na. La nueva entrada 1 llega a través de la inversión de G1 sin embargo, "asegurará" a G2 en el esta-
do 1, de tal forma que permanecerá ahí aun cuando la entrada R regrese a 0 lógico. Todo lo anterior
se verá más ampliamente en el capítulo 7. Obsérvese que toma dos intervalos de retardo de tiempo
para que el circuito se asiente en su estado final.

6.5 En la figura 6-22, las condiciones iniciales son Q = 0, A = 0, B = 1 y C = 0. En el tiempo


t = 0, la entrada C cambia a 1 y, seis intervalos de retardo de tiempo después, regresa a 0.
Dibújese el diagrama de microtemporización para 12 intervalos de retardo de tiempo, asu-
miendo que los retardos de tiempo de todas las compuertas son iguales.

Fig. 6-22

Fig. 6-23
DIAGRAMAS DE TIEMPO 211

A partir de las condiciones finales dadas, se pueden deducir los estados lógicos de todas las com-
puertas en el circuito empleando las relaciones booleanas sencillas. Estos estados se ingresan en el
diagrama de tiempos antes de t = 0, en el tiempo en el que la entrada C se convierte en un escalón. Después
de observar cuáles compuertas se ven afectadas por cada cambio, se grafican las respuestas apropiadas un
intervalo de retardo de tiempo después, como se muestra en la figura 6-23.
La transición de G5 en el tiempo 8 no tiene efecto puesto que la compuerta G4 ya se encuentra en el
estado 1 a través de su entrada que viene de la compuerta G3. Por lo tanto, el proceso termina hasta que se
presenta otro cambio en la entrada.

6.6 Muéstrese que si se inserta un inversor de hardware en una trayectoria de realimentación


de un latch, como se muestra en la figura 6-24, el circuito se puede volver inestable y continua-
mente oscilatorio.
El análisis se haría más fácilmente si no hubiera preocupación acerca de las designaciones HT y
LT. Por lo tanto, primero se convierte el diagrama de hardware de la figura 6-24 en un diagrama lógico
removiendo las medias flechas (figura 6-25). Los inversores también se remueven, ya que sólo sirven
para convertir LT a HT o viceversa y no llevan a cabo lógica. Sin embargo, en este caso se intenta
investigar el efecto de retardos de propagación y se debe considerar el retardo del inversor de hardware
G3 aun cuando, desde el punto de vista lógico se trata como un alambre.

Fig. 6-24 Fig. 6-25

En la figura 6-25 queda claro que se ha introducido una asimetría lógica en el circuito latch. Un
cambio en la salida de G1 se invierte lógicamente antes de pasar a G2, mientras que un cambio en la
salida de G2 pasa sin alterarse a la entrada de G1 Si S = 1, la salida de G1 será 1, la salida de G2 será
0 y un cambio en R no tendría efecto puesto que la compuerta OR G1; sólo requiere que una entrada
sea VERDADERA. El circuito es estable. Por otro lado, si S cambia de 1 a 0 cuando R = 0, como
se muestra, entonces se ve que la compuerta G1 tendrá dos entradas en 0 lógico y F se irá a 0 después
de un intervalo de retardo de tiempo. Esto se interpreta como un 1 en la entrada de G2 (obsérvese la
diagonal) cuya salida se va a 1 después de un intervalo de retardo más, y este 1 pasa inalterado por
G3 el cual agrega un incremento de retardo adicional. Así, tres intervalos de retardo de propagación
después se presenta el cambio en S, G1 recibe una señal de contraorden para regresar al estado 1. Por
supuesto, este cambio, inicia la cadena nuevamente y se espera una oscilación continua con un periodo
de repetición de seis intervalos de retardos de propagación. En la figura 6-26 se muestra el diagrama
de microtemporización apropiado.
212 DIAGRAMAS DE TIEMPO

Fig. 6-26

Puesto que el diagrama de microtemporización se construye por pasos, hace que el análisis secuen-
cial sea fácil de seguir y comprender más que tratar de razonar todo el proceso mediante una descrip-
ción verbal (por más elocuente que éste sea).

6.7 Demuéstrese que también se puede presentar la inestabilidad en el circuito del latch de la fi-
gura 6-20 si el cambio en la entrada se reduce en duración a un sólo intervalo de retardo.
Como en el problema 6.4, se asume que la entrada R pasa de 0 a 1 cuando Q = 1 y Q' = 0. Si,
después de este cambio, R regresa a 0 antes de que la señal se haya propagado a través de G1 y regrese
a la entrada de G2 con un 1 para asegurarlo, entonces G2 regresará al estado 0 en lugar de mantenerse
en el estado 1, como es de esperarse. Un análisis adicional muestra que se presentará una oscilación
continua hasta que R o S se conviertan a 1 lógico. Las formas de onda lógicas se muestran en la figura
6-27 donde las flechas indican las relaciones causa-efecto involucradas. Este problema ilustra el hecho
que los diseñadores deben considerar la duración de las entradas, así como las trayectorias de conexión
con el fin de asegurar que sus circuitos serán estables.

Fig. 6-27
DIAGRAMAS DE TIEMPO 213

6.8 Dibújese el diagrama de macrotemporización para el circuito y las formas de onda lógicas
que se muestran en la figura 6-28.
G = D ⊕ S0 y H = (XS1)'. La salida del multiplexor será F = XS, cuando H = 0 y F = GH
cuando H = 1.
Estas relaciones se muestran en la figura 6-29 en relación con el tiempo para las variables de entra-
da dadas.

Fig. 6-28
214 DIAGRAMAS DE TIEMPO

6.9 El circuito lógico que se muestra en la figura 6-30 representa un flip-flop JK maestro-esclavo
(el cual se describirá con detalle en el capítulo 7). Las condiciones iniciales presentes en sus
terminales externas (representadas mediante rectángulos) son como siguen: J = 1, K = 1,
CLK = 0, CLR = 0, PR = 0, Q = 1 y Q' = 0. Esbócese un diagrama de microtemporiza-
ción para mostrar qué pasa cuando la entrada CLR cambia de 0 a 1 en t = 0.
Antes de que se pueda iniciar el diagrama de tiempos, es necesario determinar el estado de todas
las compuertas en t = 0.
Esto se puede lograr razonando a partir de las condiciones iniciales dadas como sigue:
• Puesto que Q' = 0, las tres entradas a G8 deben ser 0. De esta manera, G6 = 0.
• El estado de G 5 no se puede determinar todavía ya que la entrada inferior de G7 es 1, y esto
es su-
ficiente para mantener el estado dado Q = 1.

Fig. 6-29
DIAGRAMAS DE TIEMPO 215

• G10 = 0 ya que la otra entrada de G6 es 1.


• G4 = 0 ya que la otra entrada de G10 es 1.
• G 1 = 0 y G 2 = 0 ya que CLK = 0.
• G3 = 1 a través de la inversión de la salida de G10.
• G9 = 1 ya que sus dos entradas son 1s. Esto también se puede deducir de los requerimientos de
entrada de G4.
• G5 = 1 ya que ambas de sus entradas son ls.

Fig. 6-30

En t = 0, la entrada CLR va de 0 a 1. Una unidad de retardo de propagación después, G4 y G9


responden en el intervalo de tiempo 1, como se muestra en la figura 6-31.
La respuesta continúa propagándose.
• G8 está conectada a G1 y G7. G1 no puede cambiar ya que CLK se mantiene en 0; G7 no deberá
cambiar debido a su entrada en 1 que viene de G5.
• G9 está conectada a G4 y a G5 y ambas compuertas responden en el intervalo de tiempo 2.
• G4 afecta a G10 y G5 afecta a G7, y ambas compuertas responden en el intervalo de tiempo 3.
• G7 está conectada a G2 y a G8, ninguna de las cuales responderá.
• G10 está conectada a G3 y a G6, las cuales responderán en el intervalo de tiempo 4.
• G3 está conectada a G9 y G6 está conectada a G8. Ninguna de estas compuertas responderá, y el
proceso termina.
216 DIAGRAMAS DE TIEMPO

Fig. 6-31

Obsérvese que este circuito requiere cuatro intervalos de retardo de tiempo para que la respuesta
proceda completamente. Aplicando una entrada CLR de menor duración resultaría en algunas displi-
cencias, como se demostró en el problema 6.7.

6.10 Considérese un problema de síntesis en el cual se requiere un circuito que produzca una
salida particular en respuesta a un conjunto dado de entradas. La especificación se presenta
en la figura 6-32 donde se asume que la salida F responde a las entradas A y B después que
un intervalo de retardo de propagación ha terminado. Diséñese el circuito.
DIAGRAMAS DE TIEMPO 217

Fig. 6-32

Para visualizar la relación funcional entre las entradas y la salida, se redibujan las formas de onda
como un diagrama de macrotemporización removiendo los retardos, como se muestra en la figura 6-
33. Ahora se puede preparar una tabla de verdad leyendo cada uno de los intervalos de tiempo de la
columna:

Intervalo A B F
0-1 1 0 1
1 -2 0 0 0
2-3 0 1 1
3-4 0 0 0
4-5 1 0 1 Redundante
5-6 0 0 0
218 DIAGRAMAS DE TIEMPO

Fig. 6-33

Después se remueven las entradas redundantes y, observando que el estado 11 no se presenta, éste
se trata como un término "no importa".

A B F
0 0 0
0 1 1
1 0 1
1 1 X

a)

b)

Fig. 6-34 Dos soluciones al problema 6.10


DIAGRAMAS DE TIEMPO 219

Los problemas de síntesis o diseño, rara vez tienen soluciones únicas, y el diseñador debe seleccio-
nar de un número de posibles enfoques y soluciones. Por ejemplo, en este ejercicio se puede escribir
F = A'B + B'A y utilizar cinco elementos de hardware como se muestra en la figura 6-34; o un diseña-
dor más experimentado de algún modo pudiera reconocer la función OR exclusiva. Un diseñador ins-
pirado, haciendo uso del conocimiento que el estado 11 nunca se presenta, simplemente usaría una
sola compuerta OR.
Se debe puntualizar que los problemas de síntesis son normalmente complicados y requieren un
enfoque más sofisticado que el requerido en este ejemplo. Supóngase que F fuera 1 en el intervalo 3-4.
En este caso, se observa un conflicto con los requerimientos del intervalo 1-2, y se debe aplicar una
técnica de diseño más poderosa (véase el material sobre máquinas de estado en el capítulo 10).

Problemas suplementarios
Nota: Los problemas 6.11 al 6.13 ilustran cómo afectan el hardware y las asignaciones verdaderas los tiempos
del circuito y el costo del mismo.

6.11 El circuito que se muestra en la figura 6-35 se desarrolló en el problema 4.36. Si, para todas las com-
puertas, el retardo de propagación más corto es de 5 ns y el retardo más largo es de 15 ns, encuéntrese
el retardo de la trayectoria más largo y el más corto en el circuito.

Fig. 6-35

6.12 Se obtuvieron otras dos soluciones para F en el problema 4.38. Empleando los mismos retardos de
propagación especificados en el problema 6.11, encuéntrese el retardo de la trayectoria más largo y
el más corto (véase la figura 6-36).

6.13 La fabricación de una compuerta o un inversor en un chip a la medida requiere los siguientes recursos
para su acomodo:
Cada compuerta 2 unidades
Cada entrada, después de la primera 0.5 unidades
Cada segmento de alambre para interconexión 0.25 unidades
220 DIAGRAMAS DE TIEMPO

Cada unidad de fuente de silicio cuesta 2 centavos de dólar y cada unidad de retardo de la trayectoria
arriba de 15 ns cuesta 10 centavos de dólar. Compárense los costos de las dos implantaciones del pro-
blema 6.12, asumiendo que el peor retardo de propagación de las compuertas es de 15 ns.

6.14 En la figura 6-37, todo el hardware (compuertas e inversores) tienen los mismos retardos de tiempo.
Dibújese el diagrama de microtemporización lógico completo asumiendo que inicialmente las entradas
AyDson ls y, que en el tiempo t = 0, Les cíclica como se muestra en la figura 6-3 8. Todas las entradas
y salidas son HT.

a)

b)
Fig. 6-36
Fig. 6-37

Fig. 6-38

Fig. 6-39
222 DIAGRAMAS DE TIEMPO

6.15 El multiplexor de la figura 6-39 responde a un cambio en su entrada de selección después de dos inter-
valos de retardo de la compuerta. Asúmase que inmediatamente antes de t = 0, las entradas RyS
son 0, Q = 0 y que las entradas A y B del multiplexor son 0 y 1, respectivamente. Trácese el diagrama
de microtemporización para el caso donde S conmuta a 1 en t = 0.

6.16 Para el circuito que se muestra en la figura 6-40, determínense si existen algunas razones de falla, y
si es así, determínense las transiciones que los causan.

6.17 Para el circuito del problema 6.16, hágase un diagrama de microtemporización de voltaje para la pri-
mera transición.

6.18 Con referencia al circuito del problema 6.16, hágase un diagrama de microtemporización de voltaje
para la segunda transición.

6.19 ¿Qué modificaciones se pueden hacer al circuito de la figura 6-40 para prevenir la ocurrencia del glitch
descrita en el problema 6.17?

6.20 En el circuito del ejemplo 6.1 (figura 6-1), determínense todas las posibles razones de falla. Primero,
determínese la razón de falla potencial mediante la inspección de las trayectorias reconvergentes y en
tonces investigúese completamente mediante un estudio detallado.

6.21 El anillo de inversores que se muestra en la figura 6-41 es un circuito de la clase utilizada para probar
la velocidad de microcircuitos. Muéstrese que si el número de inversores es impar, se presentará una
oscilación.

Fig. 6-40

Fig. 6-41
DIAGRAMAS DE TIEMPO 223

Respuestas a los problemas suplementarios


6.11 Un cambio en la entrada puede tomar en cualquier valor entre 15 y 60 ns para que aparezca a la salida.

6.12 Las trayectorias más larga y la más corta son iguales y el tiempo a través de la red variará entre 10
y 30 ns. Obsérvese como la selección del hardware para igualar los valores verdaderos puede afectar
el desempeño.

6.13
a) b)

Recursos 24.75 $0.50 13 .5 $0.27


Tiempo 45 ns $4.50 15 ns $1.50
Total $5.00 $1.77

6.14 Véase la figura 6-42. Obsérvese que se presenta un glitch cuando L va de 1 a 0 y no en el caso opuesto.

6.15 Véase la figura 6-43.

6.16 Estudiando con detalle la lógica F = B'D' + CD + A'BC muéstrense tres casos donde las coberturas
se tocan pero no se traslapan. La razón de falla puede ocurrir para las siguientes transiciones.

A B C D a A B C D
0 1 0 0 0 0 0 0
x 0 1 1 x 0 1 0
0 1 1 1 0 1 0 1

Fig. 6-42 Obsérvese que se presenta un glitch cuando L va de 1 a 0 y no en el caso opuesto.


224 DIAGRAMAS DE TIEMPO

Fig. 6-43

6.17 Véase la figura 6-44. Los retardos de propagación de las compuertas se han fijado en 5 unidades de
tiempo para hacer más evidente el glitch.

Fig. 6-44 Obsérvese el glitch en la transición apropiada

6.18 Véase la figura 6-45. Todos los retardos de propagación de las compuertas son de 1 unidad de tiempo.

Fig. 6-45 Obsérvese que el glitch es independiente de A


DIAGRAMAS DE TIEMPO 225

6.19 Agréguese la cobertura de razón de falla que se muestra en la figura 6-46 convirtiendo G4 a una com-
puerta de cuatro entradas y alámbrese el término A'C'D' usando una compuerta NAND adicional.

Fig. 6-46

6.20 Existen dos trayectorias reconvergentes de una entrada; una de A y una de C. La ecuación booleana
para el circuito es F = AC'D + BC + A'C la cual, cuando se estudia con detenimiento, muestra una
razón de falla solamente para C (la transición ABCD a ABC'D). La razón de falla potencial para A
está cubierta.

6.21 Asúmase que el punto A es 0. Si hay n enteros, aparecerá un 1 en el final de la cadena si n es impar.
De este modo, la señal A cambiará a 1 después de que se ha terminado un intervalo de tiempo de n(tpd).
El 1, en su momento se convertirá en 0, y así sucesivamente. La simulación se muestra en la figura 6-47.

Fig. 6-47
Capítulo 7
El flip-flop
7.1 INTRODUCCIÓN

La mayoría de los sistemas digitales modernos, además de ejecutar tareas de lógica combinacional
también almacenan comandos y datos los cuales esperan para ser procesados o son el resultado de
algún cálculo. Este capítulo trata varias realizaciones de los elementos básicos de memoria, el cir-
cuito biestable o flip-flop. Su forma más primitiva es denominada latch, la cual consiste de un par
de compuertas lógicas con sus entradas y salidas interconectadas en un arreglo realimentado lo que
permite que se pueda almacenar un solo bit. Agregando componentes al latch básico y combinando
latches de varias maneras se obtienen tipos diferentes de flip-flops, cada uno de los cuales tiene ca-
racterísticas diseñadas para optimizar el desempeño en aplicaciones específicas. En este capítulo se
consideran flip-flops RS, JK, D y T, así como sus modos de operación y características de disparo.

7.2 EL LATCH BÁSICO

En la figura 7-1 se muestra la lógica para un elemento sencillo de memoria denominado latch.
Este circuito tiene dos entradas (S y R, correspondientes a "set" y "reset", respectivamente)
y por lo menos una salida (Q). Algunas veces se incluye una segunda salida (Q') como se muestra.
Es fácil seguir el lazo cerrado de realimentación: La señal Q se invierte lógicamente y se conecta
a la compuerta G2 la cual produce Q'. Esta señal, a su vez, se invierte lógicamente y se acopla de

Fig. 7-1

226
EL FLIP-FLOP 227

regreso a la entrada de la compuerta G1 la cual genera Q, completando así el lazo. Este arreglo se
puede utilizar para almacenar un solo bit de información cuando ambas entradas, R y S son 0s
lógicos.
Asúmase que la salida Q es un 1 cuando R y S son Os lógicos. Esta salida se invierte lógicamente
a 0 y vuelve a alimentar como entrada a G2. Ambas entradas de G2 ahora son 0s y, consecuente-
mente, se produce un 0 a su salida Q'. Esta señal se invierte y se vuelve a alimentar a la entrada
de G1 cuya salida Q debe ser un 1 validando de este modo la suposición original Q = 1. Obsérvese
que bajo estas circunstancias Q' es un 0. Esta situación se mantendrá hasta que se presente un cam-
bio en la entrada.
Se puede hacer un análisis similar para demostrar que Q = 0 también es un estado estable.
En este caso, Q' será 1, y se ve que la salida Q', como era de esperarse, es siempre el inverso lógico
de Q cuando R y S son ambos 0.
Supóngase, ahora, que S se cambia a 1 de manera que el estado de entrada es R = 0 y S =
1. Esto ubica un 1 por lo menos en las entradas de G1 lo que propicia que Q sea 1. Este 1 se invierte
lógicamente y aparece como 0 en una de las entradas de G2 y, puesto que R = 0, se asegura una
salida 0 en G2. Este 0 se invierte y se vuelve a alimentar a la otra entrada de G1 reforzando así su
salida Q = 1. El 1 lógico en S el cual inició el proceso, se puede remover en cualquier momento
después de que el proceso de realimentación ha tenido tiempo para completar su operación y la sali-
da se mantiene en Q = 1. De esta manera, un 1 en S cuando R = 0 asegura que Q = 1, y este estado
se mantendrá cuando S regrese a 0. Se puede decir que el circuito se ha asegurado (latched). De
una manera similar, es fácil mostrar que las entradas R = 1 y S = 0 darán el resultado Q = 0 y
que este estado se mantiene (asegura) cuando R regrese a 0.
Así, si se considera la condición S = 0, R = 0 como un estado normal o de descanso, la salida
del circuito dirá cuál de las entradas fue la última que se conectó a 1 lógico; en otras palabras, se
puede interpretar el comportamiento de aseguramiento (latching) como una función de memoria.
El latch sencillo se puede implantar ya sea con compuertas NAND o NOR como se muestra
en la figura 7-2 (véase el problema 7.17 para una forma en lógica positiva). Obsérvese que la lógica
es la misma y sólo los valores verdaderos de las entradas y las salidas son diferentes.

S. H

R. H

CON COMPUERTAS NOR CON COMPUERTAS NAND


Fig. 7-2
228 EL FLIP-FL0P

7.3 EL INTERRUPTOR SIN REBOTE (CHATTERFREE)

Es común que los datos se ingresen a un sistema digital mediante interruptores operados manual-
mente. Estos interruptores pueden tener muchas formas, variando desde los que tienen un resorte
en la parte inferior de un capuchón, como los teclados de una computadora, hasta los de botón que
se presionan en máquinas herramientas controladas digitalmente. Una característica común de
todos estos interruptores mecánicos es que el resorte de sus contactos tienen una tendencia a
rebotar (vibrar) cuando se presionan, causando una serie de repeticiones cortas de establecimiento
y ruptura de la conexión con una duración de varios milisegundos. Si, en un sistema dado, un
contacto eléctrico cerrado representa un 1 lógico y un contacto abierto un 0, debe estar claro que el
rebote del contacto puede ser un problema serio puesto que se pueden generar 1s y 0s múltiples
cuando se intenta un solo 1.
El latch puede servir como un circuito muy aceptable para "evitar el rebote" (debouncer) co-
mo se muestra en la figura 7-3. Cuando el interruptor SW está en la posición superior como se mues-
tra, el voltaje V (que corresponde a 1 lógico) se aplica a la entrada S. No fluye corriente en el resistor
de abajo, y la entrada R estará a un potencial de tierra que corresponde a 0 lógico. De esta manera,
la posición superior del interruptor corresponde a S = 1, R = 0. Cuando el interruptor se mueve
a su posición inferior, el voltaje V se aplica a R y la condición de entrada es S = 0, R = 1. Mecánica-
mente, el rebote del interruptor es muy pequeño. La parte móvil del interruptor vibrará (rebotará)
encendiendo y apagando su punto de contacto (R o S) y nunca se moverá hacia adelante o hacia
atrás entre estos dos puntos terminales. En la parte alta de un rebote, la entrada al latch es
S = R = 0, una condición donde se ha visto que no se presenta cambio en la salida. De este modo,
el latch cambiará de estado solamente cuando el interruptor se transfiere manualmente de una posi-
ción a otra, y solamente responderá al contacto inicial, ignorando la ocurrencia de rebotes.

7.4 EL FLIP-FLOP RS TEMPORIZADO (CON RELOJ)

Como se puntualizó en el capítulo 1, los datos almacenados en un sistema digital son vulnerables
al ruido. Los latches sencillos que se muestran en la figura 7-2 se denominan "capturadores de 1s"
puesto que si aparece un 1 ya sea en la entrada R o en la S puede ser capturado o asegurado
(latched) por el flip-flop, el cual reacciona de igual modo ya sea que el 1 fuera causado por un
dato verdadero o por ruido.

Fig. 7-3
EL FLIP-FLOP 229

Si las entradas R y S se pasan por una compuerta AND junto con una señal de habilitación
(frecuentemente denominada reloj), como se muestra en la figura 7-4, entonces la entrada al latch
responderá solamente al ruido en las entradas R y/o S durante la duración del pulso de reloj. Mu-
chos diseñadores han adoptado el enfoque que permite que las líneas de datos (R,S) sean vulnera-
bles al ruido en tanto que dedican una gran cantidad de los recursos para que la señal de reloj esté
relativamente libre de ruido. En este caso, el latch es vulnerable a señales espurias (parásitas) sola-
mente durante el tiempo en el que el pulso del reloj es verdadero. Esto conduce a que los pulsos
de reloj angostos resultarán en un incremento de la inmunidad al ruido para el circuito, el cual a
menudo se le llama latch con pulso de selección (strobed) o temporizado (clocked).

Fig. 7-4

El flip-flop RS con señal de reloj a menudo se caracteriza mediante la tabla de estados (tabla
7.1). Aquí Qn es el valor de Q antes del pulso de reloj, mientras que Qn +1 es el valor que adopta
la salida Q cuando se aplica un pulso de reloj con un nivel VERDADERO. El primer renglón esta-
blece que si S y R son 0, el valor de Q después del reloj es igual al valor que tenía antes del pulso
de reloj; esto es, no ocurrirá ningún cambio. Los siguientes dos renglones indican que la salida Q
corresponde al valor de S si R y S son complementos. La combinación de entrada R = 1, S = 1
está prohibida. Esto se debe a que existe una condición donde el estado de la salida puede estar inde-
terminado. Si las entradas R, S son ambas 1 y el reloj está en 1, entonces ambas salidas serán 1.
El problema se presenta si, después de que el reloj regresa a 0, las entradas cambian a R = S = 0.
En este caso, el estado de la salida dependerá de cuál de las salidas de las compuertas AND alcance
el 0 primero, el resultado estará determinado por el ganador de la carrera y no por la lógica.
Tabla 7.1
S R Qn+1
0 0 Qn
0 1 0
1 0 1
1 1 prohibido
230 EL FLIP-FLOP

El reloj sirve para otra útil función además de mejorar la inmunidad al ruido. Se podría pensar
como una entrada de habilitación la cual, cuando es VERDADERA, conecta al latch a las líneas
de datos RS. Esto es importante puesto que, como se ha visto en las secciones 6.2 y 6.3, los retardos
de propagación pueden causar la aparición de niveles lógicos esperados en las entradas de la com-
puerta a tiempos ligeramente diferentes y pueden causar aun señales falsas momentáneamente (glit-
ches). La señal de habilitación o de reloj retarda la operación de un latch u otros circuitos digitales
hasta que sus entradas tengan tiempo de alcanzar sus valores finales. La aplicación periódica de
una señal de habilitación forma la base para la operación síncrona de los sistemas digitales. Cada
pulso de habilitación, en efecto, hace avanzar el procesamiento digital un paso y, puesto que estos
pulsos se presentan a intervalos regulares como un mecanismo de reloj, el intercambio de los térmi-
nos reloj y habilitación parece apropiado.

El latch con habilitación mediante los datos

Si se agrega un inversor entre las entradas R y S del circuito de la figura 7-4 (como se muestra en
la figura 7-5), entonces la referencia en la tabla 7.1 indica que la salida Q seguirá al dato de entrada
D cuando la entrada de habilitación sea VERDADERA y el dato será asegurado (almacenado) dentro
del flip-flop cuando la entrada de habilitación sea FALSA.

Fig. 7-5

EJEMPLO 7.1 En el circuito de la figura 7-5, asúmase que Q está en BAJO en t = t0 y una entrada de habili-
tación mediante un pulso se aplica en t = ti y se remueve en t = t2. La salida, en respuesta a la forma de on-
da de datos dada, se muestra en la figura 7-6 en la cual se asume que el retardo de propagación es muy
pequeño para la escala de tiempo seleccionada.
Mientras el pulso de habilitación es 0, las entradas del latch RS = 00 y no se presenta ningún cambio.
Cuando la HABILITACIÓN = 1, Q seguirá a D (de acuerdo con la tabla 7.1); se dice que Q es transparente
a D durante este intervalo. Cuando la HABILITACIÓN regresa a 0 en t = t2, el flip-flop almacenará el valor
existente en la entrada D en el instante inmediatamente anterior al tiempo t2 cuando el latch con pulso de ha-
bilitación se deshabilita. Es importante tener en mente que todo hardware tiene retardos de propagación y las
consideraciones de tiempos se deben tomar en cuenta si el ancho de los pulsos de la señal de entrada son sufi-
cientemente pequeños (véase la sección 7.9).
EL FLIP-FLOP 231

Fig. 7-6

Un arreglo de latches con pulso de habilitación cada uno conectado a línea de un bus de datos,
es capaz de capturar una palabra de n bits si se utilizan n latches y a todos se aplican pulsos de habili-
tación simultáneamente a través de una señal de habilitación común, como se muestra en la figura
7-7.

Fig. 7-7

7.5 EL FLIP-FLOP JK

El estado prohibido del flip-flop RS representa una buena oportunidad. Mediante la adición de
componentes, los diseñadores han modificado el flip-flop RS básico temporizado de modo que el
232 EL FLIP-FLOP

circuito cambie de estado (es decir, invertir su estado de salida) cuando se aplique la señal del reloj.
Esta modificación del diseño presenta algunos retos puesto que el tiempo de propagación así como
las conexiones lógicas se deben considerar. Un intento inicial se muestra en la figura 7-8. El diseña-
dor ha realimentado las salidas del flip-flop a las compuertas de entrada en un esfuerzo por mante-
ner fijo los pulsos de reloj en el lado apropiado del latch para propiciar el cambio de estado cuando
se presente la condición de entrada 11. Si Q es 1, la compuerta AND con la entrada K se habilita
y, si Q es 0, la compuerta con la entrada J se habilita. El análisis del circuito muestra que la respuesta
a JK = 00, 01 y 10 es idéntica a la del flip-flop RS temporizado. En el estado 11, sin embargo,
tan rápido como el cambio de estado se presenta, la realimentación se invierte, lo cual significa,
desafortunadamente, que mientras la condición J = K = CLK = 1, se puede esperar que exista
una condición oscilatoria, como se muestra en las formas de onda de la simulación de la figura 7-9.*

CLK

Fig. 7.8 Un diseño "fallido" de un latch con compuertas a la entrada. Las entradas son J y K

Fig. 7-9

*Como se mencionó en una nota de pie de página del capítulo 6, la simulación de circuitos con retroalimentación (como en
el caso del latch entrecruzado de la figura 7-8) a veces causa problemas. Véase el apéndice C.
EL FLIP-FLOP 233

Para hacer que el circuito opere apropiadamente, se necesita proveer un pulso de reloj muy
angosto o un retardo significativo en la realimentación hasta que el pulso de reloj termine. La se-
gunda aproximación es fácil de llevar a cabo de manera confiable, y su implantación se ilustra me-
diante la configuración maestro-esclavo que se muestra en la figura 7-10.
El flip-flop maestro-esclavo incluye dos flip-flops RS temporizados conectados en serie. Ob-
sérvese que el pulso de reloj aplicado al esclavo se invierte en relación al reloj aplicado al maestro,
creando, en efecto, un retardo en la realimentación igual al ancho de un pulso de reloj.
Supóngase que las entradas J y K son VERDADERAS y que la entrada de reloj aplicada tam-
bién es VERDADERA. El reloj invertido CLK' será FALSO y bloqueará cualquier flujo de señal
a través de las compuertas G5 y G6 de modo que los valores de Qs y de Q´s no pueden cambiar du-
rante este tiempo. La señal CLK por sí misma es guiada a través de G1 o G2 (dependiendo del esta-
do de Qs) y el maestro cambia de estado. Puesto que el camino de la señal del maestro al esclavo
está bloqueado, las salidas (y por lo tanto, las señales de realimentación) del esclavo no cambian.

LATCH MAESTRO LATCH ESCLAVO


Fig. 7-10 Flip-flop JK maestro-esclavo. Los rectángulos negros representan las terminales externas

Cuando el CLK regresa al estado FALSO (y, por lo tanto, CLK' cambia a VERDADERO),
las entradas de las compuertas G1 y G2 están bloqueadas y no responderán a cambios en Qs. Las
compuertas G5 y G6 están ahora habilitadas, y las salidas del maestro se transfieren al esclavo.
Obsérvese que las salidas del latch esclavo sólo están conectadas a las terminales externas del
chip (IC) de modo que el flip-flop JK de la figura 7-10 cambiará el estado de su salida sólo
cuando se presente una transición del CLK de VERDADERO a FALSO. Este tipo de aplicación
del reloj síncrono es una forma de disparo por flanco en la que el circuito responde solamente a la
entrada de datos la cual está presente inmediatamente antes de la transición del disparo de la
forma de onda del reloj. Dependiendo del diseño, ya sea un incremento (positivo) o un
decremento (negativo) en las transiciones del reloj se pueden emplear para iniciar el disparo.
Se da un resumen de la operación síncrona del flip-flop JK temporizado en la tabla 7.2. Aquí,
Qn+1 representa el estado de la salida Q siguiendo el flanco de disparo de un pulso de reloj aplicado.
En la tabla Q imita a J cuando J y K son complementarias, y Q permanece sin cambio cuando JK =
00, y el flip-flop cambia de estado cuando JK = 11.
234 EL FLIP-FLOP

Tabla 7.2 Operación del JK síncrono (temporizado)

J K Qn+1 Modo

0 0 Qn Inhibido
0 1 0 Borrar (Clear)
1 0 1 Fijar (Set)
1 1 Q'n Cambio de Estado (Toggle)

7.6 EL FLIP-FLOP JK CON PRESET Y CLEAR

A menudo es deseable agregar características asíncronas (no temporizadas) a un circuito síncrono


de modo que, por ejemplo, pueda fijarse previamente (preset) un estado particular en cualquier
tiempo. Considérese el flip-flop JK modificado, que se muestra en la figura 7-11. Este circuito se
opera en uno de dos modos.
1. Asíncrono: El reloj se deshabilita (CLK = 0). En este caso, las entradas preset (PR) y clear
(CLR) actúan como entradas de set y reset de un flip-flop RS no temporizado.
2. Síncrono: PR y CLR se deshabilitan (PR = CLR = 0), y el reloj se activa.
No se intenta que los dos modos se mezclen, y el diseñador que lo haga es bajo su propio riesgo.

Fig. 7.11 Flip-flop JK con preset y clear (descripción en lógica mixta). Obsévese que PR.L y CLR.L son
equivalentes a PR'.H y CLR'.H, respectivamente
EL FLIP-FLOP 235

Se muestra una tabla de estados para el flip-flop JK con entradas preset y clear en la tabla 7.3.
En general, los fabricantes proporcionan tablas con entradas H y L que representan niveles de vol-
taje ALTO y BAJO, respectivamente. Su relación con los valores lógicos 0 y 1 depende de las entra-
das y/o salidas de hardware que son especificadas ya sea HT o LT. Obsérvese que cuando el flip-
flop se opera en forma asincrona con entradas preset y clear, se espera que el reloj se mantenga
en 0 lógico.

Tabla 7.3 Operación asíncrona del JK

PR CLR Q
0 0 Q
0 1 0
1 0 1
1 1 prohibido

7.7 PROPAGACIÓN DE LAS SEÑALES EN EL FLIP-FLOP

Una mejor visión del funcionamiento del flip-flop JK maestro-esclavo se puede lograr mediante el
estudio de sus diagramas de microtemporización. La construcción de estos diagramas se mostró en
el problema 6.9, donde el proceso se describió con detalle. Debe ser claro que a medida que un cir-
cuito crece en complejidad, es ventajoso el uso de la simulación para estudiar las formas de onda
en el tiempo.

EJEMPLO 7.2 Respuesta de un flip-flop JK a una transición del reloj. Asúmase, en la figura 7-11, que J =
K = 1, PR = CLR = 0 y que Q m (salida de G9 ) y Q son 1. Inicialmente, la entrada de reloj CLK es 0. En
algún tiempo arbitrario, el reloj cambia a 1, permaneciendo ahí 50 unidades de retardo de tiempo, y entonces
regresa a 0. Asúmase también, que en la implantación de hardware dada, todas las compuertas tienen un retardo
de propagación de 5 unidades de tiempo.
Ahora se pueden determinar los valores lógicos iniciales para todas las compuertas. Considérese G, an-
tes de que se presente la transición del reloj. Sus entradas son J = 1, CLK = 0 y Q' = 0; puesto que la lógica
es AND, su salida debe ser 0 (la cual, con este hardware, corresponde a un nivel de voltaje alto). En la compuer-
ta G2, las entradas son K = 1, CLK = 0 y Q = 1, y su salida también es 0. El análisis se puede extender para
cada compuerta en turno hasta que todos los niveles lógicos internos se indaguen.
Cuando CLK pasa a 1, las compuertas G1, G2 y G11 se ven afectadas. Una o más de estas compuertas
cambiará de estado como lo determina la lógica, después de que haya terminado un intervalo de retardo de
propagación. El proceso continúa, como se describió en el problema 6.9, hasta que más compuertas respondan
(a menos, por supuesto, que haya una inestabilidad). La simulación completa con LogicWorks™ se muestra
en la figura 7-12.
Obsérvese que la salida cambia sólo en el flanco de bajada del pulso de reloj y que G8 responde a un in-
tervalo de retardo de tiempo antes de G7. También es interesante observar que la salida de G1 se mantiene en
alto (en 1 lógico) a lo largo del proceso puesto que, en ningún tiempo, están todas sus entradas en VERDA-
DERO.
236 EL FLIP-FLOP

Fig. 7.12a Diagrama esquemático del flip-flop JK con entrada set para el modo de cambio de estado (toggle)

Fig. 7.12b Formas de onda de voltaje


EL FLIP-FLOP 237

7.8 OTROS TIPOS DE FLIP-FLOPS

El estado del flip-flop JK maestro-esclavo descrito en la sección 7.6 se determina mediante las seña-
les en sus entradas J y K en la transición de subida (0 a 1) del pulso de reloj aun cuando las salidas
(Q y Q' del esclavo) las cuales no cambian hasta que se presenta el flanco de bajada del pulso de
reloj. Los flip-flops de este tipo se conocen como disparados por flanco negativo. También hay dis-
ponibles dispositivos disparados por flanco positivo. Aunque los flip-flops JK se utilizan amplia-
mente en electrónica digital, hay otros tipos, siendo los más comunes los D y los T.

El flip-flop D

El flip-flop (D, del inglés delay o de retardo) es similar al latch de datos con pulso de habilitación
de la sección 7.4, excepto que éste es disparado por flanco (no transparente). Se define como un
dispositivo con un estado (la salida Q) que, después de que ha recibido la señal del reloj, es idéntica
a la señal en su entrada D antes del pulso de reloj. Las tablas de estados en lógica positiva para
el dispositivo se muestran en la tabla 7.4. La tabla 7.4a es para un flip-flop D síncrono (PR = CLR =
0), mientras que la tabla 7.4b es para el flip-flop D asíncrono (CLK = 0).

Tabla 7.4a Tabla 7.4b

D Qn+1 PR CLR Q

0 0 0 0 Q

1 1 0 1 0
1 0 1
1 1 prohibido

El flip-flop D se puede modelar como un dispositivo maestro-esclavo con una inversión lógica
entre sus entradas J y K. Como el JK, se puede equipar con entradas asincronas, PR y CLR (o S
y R).

EJEMPLO 7.3 Considérese el circuito formado por flip-flops D que se muestra en la figura 7-13. Inicialmen-
te, asúmase que todas las salidas Q = 1 y que las transiciones se presentan en el flanco de subida de cada pulso
de reloj. Trácese el diagrama de tiempos para tres pulsos de reloj siguiendo la aplicación de un pulso breve
de CLR.

Fig. 7-13
238 EL FLIP-FL0P

Los flip-flops D mostrados tienen entrada preset (S) y clear (R) LT de modo que la conexión de 5-V a
la línea común del set se interpreta como 0 lógico, o FALSO (0 V debe ser VERDADERO). Asumiendo que
la línea de clear también está inicialmente en un voltaje alto (0 lógico), en la tabla 7.4 se ve que si CLR pasa
a 0 V (1 lógico), la salida se irá a 0 y permanecerá ahí cuando el CLR regrese a 0 lógico (hasta que se presente
una transición de 0 a 1 del reloj). Obsérvese que puesto que las salidas son HT, el 0 lógico representa 0 V.
La primera transición de subida de CLK siguiendo la señal de clear causará que el flip-flop A se vaya a
1 puesto que su entrada D es 1. Los otros dos flip-flops no responderán puesto que sus entradas D son 0. El
segundo pulso de reloj causará que B se vaya a 1 ya que su entrada D, la cual está conectada a A, ahora es
1. De manera similar la salida C se irá a 1 en el tercer pulso de reloj y no ocurrirán más transiciones.
Una simulación en LogicWorks™ de las formas de onda esperadas se muestra en la figura 7-14. Obsér-
vese que se incluyen los efectos de los pequeños retardos de propagación.

Fig. 7.14 Formas de onda de los voltajes

El flip-flop T

El flip-flop T (o de cambio de estado, interpretación de toggle) opera de tal modo que cuando su
única entrada T es 1, su salida Q cambiará con cada pulso de reloj. Cuando T es 0, el reloj no tiene
efecto. Este dispositivo se puede modelar como un flip-flop JK con sus entradas J y K fijas o sujetas
permanentemente al 1 lógico. Como en otros tipos de flip-flops, el T puede tener entradas clear y
preset asincronas. La tabla de estados para el caso síncrono se muestra en la tabla 7.5.

Tabla 7.5
T Qn+1

0 Qn
1 Qn´

EJEMPLO 7.4 Dibújese el diagrama de macrotemporización para el grupo de flip-flops T que se muestran
en la figura 7-15. Asúmase que todos los flip-flops han sido inicialmente borrados a 0 y que el disparo ocurre
en el flanco de bajada de cada pulso de reloj.
EL FLIP-FLOP 239

Fig. 7-15

Puesto que el flip-flop A tiene su entrada fija en 1 lógico, éste cambiará de estado (toggle) en sincronía
con cada transición de bajada del reloj. Los flip-flops B y C, por otra parte, sólo cambiarán de estado si sus
entradas son 1 lógico inmediatamente antes de que el pulso de reloj vaya hacia abajo. Así, en la figura 7-16
se ve que hasta que se reciba el segundo pulso de reloj, el flip-flop B cambiará de estado ya que su entrada
a partir de A es 1 justamente antes del disparo, mientras el flip-flop C no cambiará puesto que su entrada que
viene de B es 0 en este tiempo. El circuito genera una secuencia repetitiva ABC = 000, 100, 010, 1 1 1 , 000,
etcétera.

Fig. 7-16

7.9 DISPARO Y TEMPORIZACIÓN DE FLIP-FLOPS

Sin considerar los modos de disparo, en particular hay dos tiempos de interés en los tipos de flip-
flops. Uno, el tiempo de inicialización (tsu, setup time), es el mínimo tiempo en el que las entradas
(J, K, etcétera) deben ser estables antes de la llegada del flanco del pulso de reloj que inicia una
transición. El otro es el tiempo de retención (th, hold time), que es el tiempo en el que las entradas
deben permanecer estables después de que venga el flanco que inicia el pulso de reloj. Los tiempos
de inicialización y de retención en conjunto establecen un intervalo, relacionado con el pulso de
reloj, en donde las entradas deben permanecer invariantes. Si las entradas cambian durante esta
ventana de tiempo (zona que se muestra sombreada en la figura 7-17), el fabricante del flip-flop no
garantizará el estado final del dispositivo después de la transición del reloj.
240 EL FLIP-FLOP

Fig. 7-17

En adición a los tiempos de inicialización y de retención, también se especifican dos tiempos


retardos de propagación: tpd,HL (el retardo, relativo al pulso de reloj, requerido para una transi-
ción de ALTO a BAJO de la salida) y tpd,LH (el retardo, relativo al pulso de reloj, requerido para
una transición de BAJO a ALTO de la salida). Estos retardos establecen el mínimo tiempo que se
debe tener después de la transición del reloj antes de que se pueda asumir que la salida es estable.
La figura 7-17 muestra la relación entre los parámetros de tiempo del flip-flop.
En realidad, en los dispositivos lógicos disponibles, los retardos de tiempo que se discutieron
son del orden de algunas decenas de nanosegundos (1ns = 10-9 s). Obsérvese que en circuitos rea-
les, las transiciones no ocurren en forma escalonada; tienen tiempos finitos de subida y de caída. Por
simplicidad, se dibujan como si fueran lineales, y las especificaciones de tiempos se miden a la mitad
entre los niveles máximo y mínimo.

Fig. 7-18
EL FLIP-FLOP 241

EJEMPLO 7.5 Frecuentemente, en circuitos lógicos síncronos las salidas de un arreglo de flip-flops (llamado
registro) se alimentan a una red lógica combinacional de compuertas AND-OR que se emplea para producir
las señales que determinan cuáles de los nuevos estados del registro seguirán al siguiente pulso del reloj. La
figura 7-18 muestra dicho sistema. Determínese la máxima frecuencia del reloj para el peor caso de tiempos
dado.

Considérese que los tiempos inician con la llegada del pulso del reloj:
1. Puesto que no se conoce cuál tipo de transición tendrá lugar en las salidas del flip-flop, se escoge el peor
caso (esto es, tpd = tpd,HL = 35 ns). Después de que este tiempo ha transcurrido, se garantiza que las sali-
das del flip-flop son estables.
2. De manera similar, después de los subsecuentes 30 ns, se asegura que las salidas del flip-flop se habrán
propagado a través del nivel de AND.
3. Otros 30 ns tomarán el paso a través del nivel OR.
4. La señal se debe mantener estable en las entradas D por un tiempo adicional de 20 ns antes de que otro
pulso de reloj se pueda aplicar.
5. Puesto que la señal no se puede propagar a través de la red en menos de 5 ns, se satisface el requerimiento
del tiempo de retención.
Los retardos se muestran esquemáticamente en la figura 7-19. El máximo periodo del reloj es la suma
de los retardos individuales o 115 ns. La máxima frecuencia del reloj es 1/115 x 10-9 = 8.7 MHz.

Fig. 7-19

7.10 METAESTABILIDAD

Si un flip-flop está sujeto a una señal de entrada cambiante durante sus tiempos de inicialización
y retención se puede desarrollar una condición conocida como metaestabilidad donde la salida no
es ni ALTO ni BAJO sino algún nivel entre ellos. La probabilidad de que una condición de metaes-
tabilidad persista para una duración dada de tiempo disminuye con la duración del tiempo, lo que
significa que de todas las posibles duraciones metaestables, la más corta es la que probablemente
ocurra. Se observa que una función de densidad de probabilidad aproximadamente exponencial ex-
presa esta relación, como se muestra en la figura 7-20.
242 EL FLIP-FLOP

Densidad de
probabilidad
de la duración
del tiempo
metaestable

Duración del tiempo de metaestabilidad (ns)


Fig. 7-20

Los errores debidos al comportamiento metaestable se pueden presentar en circuitos de alta


velocidad en los cuales se espera que la salida de un flip-flop dispare a otro rápidamente antes de
que sea disparado él mismo o donde los datos aplicados a un flip-flop sean asíncronos, de modo
que haya una probabilidad finita de que una entrada cambie muy cerca del pulso de reloj. Una falla
se presentará si un flip-flop está en un estado metaestable cuando es necesario que su salida sea esta-
ble.
Normalmente el comportamiento metaestable se especifica en términos del tiempo medio entre
fallas (MTBF):

Fclk es la frecuencia del reloj del flip-flop, Fdatos es la frecuencia con la cual se alimenta la señal de los
datos (D, J, K,...), TW y TR son constantes que dependen de la tecnología empleada en la
construcción del flip-flop y ∆t es el retardo de tiempo entre el flanco de disparo del pulso del reloj y
el pulso de habilitación que se emplea para la habilitación (o da entrada al reloj) de un dispositivo
subsecuente haciendo uso de la salida del flip-flop. En la mayoría de los casos, el disparo del flip-
flop y la habilitación de los datos se provee mediante pulsos sucesivos de una sola fuente de la señal
del reloj de modo que A, es igual al periodo 1/F clk.

EJEMPLO 7.6 Un flip-flop D se alimenta con una señal de reloj a 10 MHz y tiene una entrada de datos fuera
de sincronía que cambia a una razón aproximada de 10 MHz. Determínese el MTBF cuando, para la tecnología
empleada, Tw = 0.5 s y TR = 0.75 x 109 s-1. Repítase el cálculo para una frecuencia de reloj de 20 MHz. La
suposición aquí es que el naneo del reloj dispara al flip-flop, el cual se espera que tenga una salida estable en el
tiempo en el que llega el siguiente flanco de disparo del reloj. Así, A, = (Fclk)-1.
EL FLIP-FLOP 243

A partir de la ecuación (7.1), se calcula MTBF = 7.47 x 1019 s. Puesto que es muy grande, tranquiliza
el hecho de que seguramente no se vivirá lo suficiente para ver la falla.
Supóngase que la frecuencia de reloj ahora se duplica a 2 x 107 s-1. Esto afecta a ∆t, que tiene un efecto
exponencial, y por tanto significativo. Calculando de nuevo el MTBF da 1932 (32 min) s, ¡lo que en verdad
es significativo! Los pulsos de reloj están muy cerca de permitir la operación apropiada, y el circuito es esen-
cialmente inútil.
La ecuación del MTBF implica que si el proceso de fabricación de los chips puede alterar al doble el valor
de la constante TR, entonces aminora el efecto de la frecuencia del reloj incrementada, hasta casi desapare-
cerlo. Con TR = 1.5 x 109 y Fclk = 2 x 107 s-1 MTBF = 3.73 x 1019 s.
Ya que Tw y la razón de entrada de los datos no aparecen en un exponente, se ve que son menos impor-
tantes relativamente con TR y la frecuencia del reloj hasta donde se esté interesado en los errores debidos a
la metaestabilidad.

Problemas resueltos
7.1 Un fabricante ha creado un circuito con compuertas NAND, como se muestra en la figura
7-21, para implantar un flip-flop RS temporizado. Se especifica que el retardo de propaga-
ción para una transición de ALTO a BAJO (tpd,HL en las salidas Q y Q' es más largo que
para una transición de BAJO a ALTO (tpd,LH). Constrúyase el diagrama de microtempori-
zación y verifíquese que la especificación es correcta.

Fig. 7-21

El diagrama de hardware lógico de la figura 7-21 está en lógica positiva y se puede analizar conve-
nientemente mediante su conversión a una forma puramente lógica. En circuitos que contienen com-
puertas NAND interconectadas, cada símbolo de éstas se puede considerar como una compuerta AND
seguida de una diagonal (inversión lógica), como se demuestra en la rama inferior de la figura 4-43
(parte 2 del problema 4.10).
Considérese la acción set de este circuito (con el interruptor en la posición mostrada). De entrada,
se asume que el flip-flop se ha inicializado (reset); es decir, Q = 0 (BAJO) y Q' = 1 (ALTO). Después
de la aparición del pulso positivo de reloj, la compuerta G, tiene 1s en ambas entradas. Un intervalo
de retardo de propagación después, su salida se va a 0 lógico (BAJO). Esto cambia las entradas de
la compuerta G3 de 11 a 01, de modo que después de un retardo de propagación adicional, Q cambia
de BAJO a ALTO. Esta transición hace que las entradas de G4 vayan de 01 a 11 lo cual, después de
otro retardo de propagación, produce un cambio en Q' de ALTO a BAJO.
244 EL FLIP-FLOP

Un análisis similar de la acción del reset muestra que, una vez más, una transición de la salida
de BAJO a ALTO inicia la transición complementaria de ALTO a BAJO. Las formas de onda del
diagrama de microtemporización se muestran en la figura 7-22 donde, tanto para el set como para el
reset es claro que tpd LH es más corta que tpdHL, y el fabricante está en lo correcto.

Fig. 7-22

7.2 Un primer intento para diseñar el circuito del problema 7.1 se muestra en la figura 7-23 en
la cual las compuertas G1 y G2 son AND en lugar de NAND. El circuito no trabaja. Deter-
mínese qué está mal y dibújese el diagrama de microtemporización.
En este caso, siempre que el reloj es BAJO, las entradas a las compuertas de Q y Q' incluyen un
0 ya que las salidas de las compuertas G1 y G2 ambas son BAJAS, y, consecuentemente, Q y Q' son
ALTAS. Este no es un estado permitido para un flip-flop RS. Además, cuando el reloj se va a ALTO,
el circuito no opera apropiadamente. La salida Q se irá a BAJO después de dos intervalos de retardó
de tiempo, y Q' permanecerá sin cambio ya que está retenida por la salida de la compuerta G2 que está
en BAJO. Así, durante un pulso de reloj positivo, el estado de la salida será justo el opuesto del
deseado y éste no se asegura. El diagrama de microtemporización se muestra en la figura 7-24.

Fig. 7-23
EL FLIP-FLOP 245

Fig. 7-24

7.3 Un estudiante ha diseñado el circuito que se muestra en la figura 7-25 para implantar un flip-
flop RS temporizado con la esperanza de que funcionará como lo indica la tabla 7.1. Deter-
mínese si el circuito opera apropiadamente y si la relación entre los retardos de propagación
establecida en el problema 7.1 es aplicable.
Con el arreglo del circuito mostrado, un pulso de reloj positivo pasará a través de la compuerta
G1, produciendo un 1 lógico en la entrada superior de la compuerta G3. Este cambio tendrá efecto só-
lo si las dos entradas a la compuerta G3 estaban en BAJO previamente, lo que significa que Q' debe
ser BAJO antes que el pulso de reloj con el fin de que Q cambie. Así, el pulso de reloj inicializará al
flip-flop (haciendo que Q se vaya a 0) cuando S = 1 y R = 0. Si la posición de los interruptores se
invierte el reloj fijará (set) el flip-flop (haciendo que Q se vaya a 1).

Fig. 7-25

Obsérvese que en los dos casos, una entrada 00 es compatible con cualquiera de las condiciones
de salida 01 o 10, lo que significa que el circuito puede mantener un estado de set o de reset; es decir,
puede asegurar (latch). Hay sólo un pequeño problema: con el fin de que sea clasificado como un flip-
flop RS, la Q debe seguir a S en lugar de hacerlo con su complemento, lo que ocurre en el circuito
dado. Esta situación se corrige fácilmente si se intercambian las designaciones de las terminales S y
R o Q y Q'.
Los diagramas de microtemporización para ambas condiciones de entrada set y reset se muestran
en la figura 7-26. Se ve que la:; transiciones de ALTO a BAJO preceden a las de BAJO a ALTO, de
manera que los tiempos de retardo de propagación relativos son contrarios a los establecidos en el
problema 7.1.
246 EL FLIP-FLOP

Fig. 7-26

7.4 Dibújese una implantación con compuertas NOR del flip-flop RS del problema 7.1.
El diagrama lógico se muestra en la figura 7-27 a partir del cual se puede obtener fácilmente la
implantación con compuertas NOR (figura 7-28). Obsérvese que ambas entradas y salidas deben ser
LT si se quiere evitar el uso de hardware adicional.

Fig. 7-27

Fig. 7-28
EL FLIP-FLOP 247

7.5 El circuito de la figura 7-29 es una implantación con compuertas NAND de una lógica para
un latch con set dominante. Funciona de manera tal que cuando R y S son simultáneamente
VERDADERAS, la salida Q será VERDADERA. Demuéstrese que este es el caso.

Fig. 7-29

El circuito se analiza de un modo más conveniente removiendo las medias flechas y viéndolo como un
diagrama lógico.
Caso 1. S = 1, R = 0.
Q = 1 debido a que una de las entradas de G3 está conectada a S, que es 1. R no tendrá efecto sobre
Q, pero hace que G2 sea 0 puesto que la salida de G1 es 0.
Caso 2. R permanece en 0; S se va a 0.
La salida de G2 permanece en 0 ya que es asegurada vía G1. Así, cuando S se hace 0, la salida Q per-
manece en 1 lógico.
Caso 3. R = 1, S = 0.
G2 = 1, la que se asegura vía G1 puesto que S = 0. La inversión lógica a la salida de G2 y la conexión
directa a S hace que ambas entradas de G2 sean Os; lo que trae como consecuencia que, Q = 0.
Caso 4. S permanece en 0; R se va a 0. La salida de G2 permanece en 1 y R no puede
afectar a G3. Así, Q permanece en 1 lógico.
Caso 5. R = 1, S = 1.
Q = 1 debido a la conexión directa de S a G3. Esta vez, G2 se mantiene en 1 lógico mediante R, de
modo que S regresa a 0. Q lo seguirá. Obsérvese, sin embargo, que si R regresa a 0 antes de S, G, es-
tará en 0, G2 irá a 0 y se asegurará ahí, y, debido a la inversión lógica, Q permanecerá en 1.
Una salida de la simulación, que se muestra en la figura 7-30, ilustra el comportamiento típico.

Fig. 7-30 Formas de onda lógicas


248 EL FLIP-FLOP

Si se desea la salida Q', ésta se puede obtener agregando un inversor. El flip-flop RS resultante
es aun más complicado que el latch de la figura 7-2, que no exhibe el comportamiento ambiguo del
circuito donde es posible que las salidas Q y Q' sean iguales a 1 lógico simultáneamente. Como frecuen-
temente es el caso, se alcanza un desempeño mejorado a costa de la simplicidad.

7.6 La figura 7-31 muestra una implantación lógica con compuertas NAND de un flip-flop JK
disparado por flanco cuyo apropiado funcionamiento depende de la diferencia en retardos
de propagación entre dos trayectorias de la señal más que de la acción del maestro-esclavo
descrita en la sección 7.5. Asúmase que Q = 0, J = l y K = 0, y dibújese el diagrama lógico
de microtemporización para ilustrar la secuencia de eventos que ocurren cuando se aplica
un pulso de reloj positivo.

Fig. 7-31
En principio, lo que importa es la mitad superior del circuito puesto que la compuerta G2, tiene una
entrada fija en 0 a partir de K, la cual no cambiará. Determínense los estados iniciales relevantes
como sigue:
• G1 = 0 puesto que CLK = 0.
• A = 0 puesto que CLK = 0.
• B = 1 puesto que la salida de G1 está invertida.
• G7 = 1 y, debido a la inversión, la entrada set S que asegura a G9 – G10 es 0.
• Un análisis similar muestra que la entrada reset R que asegura a G9 - G10 también es 0.
EL FLIP-FLOP 249

Asúmase que la entrada de reloj sube (CLK → 1). Entonces A → 1 y B → 0. Obsérvese que A cam-
bia un intervalo de retardo de tiempo antes que B ya que la señal CLK pasa a través de una sola com-
puerta en lugar de dos.
La secuencia en la entrada de G7 es AB = 01, 11, 10. Puesto que sus entradas son siempre VER-
DADERAS en esta secuencia, G7 permanece en 1 lógico, S se mantiene en 0 y Q no cambia.
Asúmase que la entrada de reloj cae (CLK → 0). Una vez más, A cambia antes que B y la secuencia
es AB = 10, 00, 01. En este caso, la entrada a G7 estará en 00 por un intervalo de retardo de
propagación, ocasionando que, momentáneamente, G7 se vaya a 0 y S a 1. La salida Q se irá a 1 y
se asegura ahí a través de la G10.
Obsérvese que con el fin de que la acción de asegurar ocurra, el pulso de la señal S debe terminar
al menos mientras la combinación de los retardos de propagación de las compuertas G9 y G10. En cir-
cuitos prácticos, esto se puede lograr mediante la alteración en la estructura de las compuertas apropia-
das.
El diagrama de microtemporización se muestra en la figura 7-32.

Fig. 7-32

7.7 Considérese el flip-flop disparado por flanco del problema anterior. Si una de las entradas
cambia (J en este caso), precipitadamente cerca al último momento posible dígase un inter-
valo de retardo de propagación antes del flanco de bajada del pulso de reloj, no habrá res-
puesta en la salida. Demuéstrese que este es el caso con base en el diagrama de
microtemporización de la figura 7-32.
Consúltense las figuras 7-31 y 7-32 y asúmase que J se va a cero en un intervalo precedente al flan-
co de bajada del pulso de reloj. G1 cambiará en el siguiente intervalo de tiempo puesto que todas sus
entradas deben estar en 1 lógico para que se mantenga en VERDADERO. La compuerta G3 no se ve
afectada por J, pero G4 responderá al cambio en G1, propiciando que la señal B regrese prematura-
mente a 1 lógico. Si es que ocurre, se podrá ver que la entrada 00 a G7 no se presentará y, consecuen-
temente, S y Q permanecerán sin cambio.
250 EL FLIP-FLOP

Un análisis exactamente igual se puede aplicar para la entrada K. Así, es claro que la instrucción
set o reset en el flip-flop sólo se ejecutará si esto tiene lugar por lo menos hasta que el pulso de reloj
caiga. Sin embargo, obsérvese que en el mundo real, donde un número finito de veces las señales suben
y bajan, es posible que se dé una condición metaestable si una entrada cambia muy cerca al flanco
activo del pulso de reloj (véase la sección 7.10).

7.8 El circuito de la figura 7-33 tiene dos flip-flops T que se disparan con el flanco de bajada
del pulso del reloj y el flip-flop D se dispara con el flanco de subida. La entrada,
inicialmente en 1 lógico, cambia de valor con el flanco de bajada cada cuatro ciclos de reloj.
Asumiendo que los flip-flops se borran en t = 0, dibújese el diagrama de tiempos mostrando
las formas de onda de las salidas A, B y C.

El flip-flop A cambia de estado cuando la entrada = 1; de otro modo no cambia. El flip-flop


B asume el valor de A cuando el reloj sube. En efecto, el flip-flop D se retarda de A por un intervalo
igual al espaciamiento entre los pulsos de reloj. El flip-flop C cambia de estado siempre que B cambia
de 1 a 0. Las formas de onda se muestran en la figura 7-34, las cuales incluyen un pequeño retardo
de propagación de 1 unidad de tiempo.

Fig. 7-34

Obsérvese que el cambio en la entrada coincide con el flanco de bajada del pulso de reloj el cual
no afecta al flip-flop A hasta el siguiente pulso de reloj. La simulación, ratifica apropiadamente el he-
cho de que un flip-flop no responderá cuando los tiempos de inicialización y de retención de la señal
son cero. En el apéndice C se pueden encontrar comentarios sobre la simulación de este problema.
EL FLIP-FLOP 251

7.9 En la figura 7-35 se muestra cómo se interconectan dos flip-flops JK disparados por flanco
de bajada. Asúmase que se han fijado previamente en 1 y después de lo cual, apliqúese la
señal del reloj. Sin tomar en cuenta los retardos de propagación, dibújense las formas de
onda de A' y B para cinco pulsos de reloj.
Un problema secuencial de este tipo se puede abordar en una forma organizada mediante la crea-
ción de una lista de los estados siguiendo cada pulso del reloj (véase la tabla 7.6).
Las entradas JK para cada flip-flop actúan como instrucciones que le indican al flip-flop qué esta-
do debe asumir cuando llegue el siguiente pulso del reloj (consúltese la tabla 7.2). Puesto que JA =
B' y KA = 1, las instrucciones iniciales para el flip-flop A son JAKA = 01, lo que indica que el flip-flop
A se debe borrar (A = 0) en el flanco de bajada del siguiente pulso de reloj. De manera similar, las
entradas JK para el flip-flop B son 11 lo cual es una instrucción para que cambie de estado (toggle).
Estas instrucciones se encierran con un círculo en el primer renglón de la tabla 7.6 y sus resultados
se indican mediante apuntadores a las entradas en el siguiente renglón. Estas entradas corresponden
a la situación inmediata siguiente al flanco de bajada del primer pulso de reloj.

Fig. 7-35

Tabla 7.6
252 EL FLIP-FLOP

Con la llegada del segundo pulso de reloj, se esperaría que el flip-flop A cambie de estado
(JA = KA = 1) y el flip-flop B permanezca sin cambio puesto que la entrada JBKB = 01 hace que B se
vaya a 0, estado en el que ha permanecido de antemano.
Se llena un renglón de la tabla a la vez y las entradas en las columnas A y B (correspondientes
a las salidas de los flip-flops) se determinan a partir de los estados apropiados de JK del renglón ante-
rior. Cuando el proceso se completa se pueden inferir las formas de onda sólo con leer en las columnas
correspondientes a las variables de interés. El resultado se muestra en la figura 7-36.

Fig. 7-36

7.10 La figura 7-37 muestra la variación de las entradas JK de un flip-flop en el tiempo. Asumien-
do de entrada que el dispositivo se borra, dibújese la salida Q en relación con los pulsos del
reloj.

Fig. 7-37

Como en el problema anterior, es muy útil una lista ordenada de los estados sucesivos. En este
caso, debido a que las entradas J y K son independientes de la salida Q, la forma en la que se tabula
es esencialmente la misma que la de la tabla 7.2. La tabla 7.7 se explica por sí misma.
EL FLIP-FLOP 253

Tabla 7.7

En la figura 7-38 se muestra la salida como una función del tiempo. Se obtiene leyendo la columna
del lado derecho de la tabla de estados. Obsérvese que el tiempo exacto, entre los pulsos de reloj en
los que las entradas cambian, no tiene efecto sobre la salida resultante. Esta es una característica im-
portante del disparo por flanco.

7.11 En la figura 7-39 se proporcionan las entradas D, So, X y Si para el circuito de la parte su-
perior de la misma figura. Asumiendo que el flip-flop responde al disparo por flanco de ba-
jada y está inicialmente fijo (en Q = 1), trácese la salida Q como una función del tiempo,
para ocho pulsos de reloj.
La inversión entre las entradas J y K restringe al circuito a la función de un flip-flop D transfiriendo
el dato de entrada a la salida después de cada pulso de reloj.

Fig. 7-38
254 EL FLIP-FLOP

Fig. 7-39

A partir del diagrama, se ve que

G = D ⊕ So
H = XS1
F = GH

Para cualquier instante de tiempo los valores de las variables G, H y F se pueden determinar sólo
dibujando una línea vertical en cualquier punto del diagrama de tiempos de la figura 7-39, observando
los valores de las entradas y aplicando las ecuaciones lógicas anteriores. Obsérvese que para la porción
de lógica combinacional del circuito, las variables no están afectadas o relacionadas con los pulsos de
reloj. La salida Q, por otro lado, será igual al valor de F inmediatamente antes de cada flanco de baja-
da del pulso de reloj y permanecerá constante entre los pulsos de reloj.
Para este problema, se dibujarán inmediatamente las formas de onda en lugar de tabular los esta-
dos lógicos (véase la figura 7-40).
EL FLIP-FLOP 255

Fig. 7-40

7.12 En este problema deberán establecerse las formas de onda de las salidas de los flip-flops del
circuito que se muestra en la figura 7-41 asumiendo inicialmente que los flip-flops se
borran antes de que se aplique el primer pulso de reloj. Los flip-flops dados se disparan por
los flancos de subida (BAJO a ALTO) de los pulsos de reloj y los retardos de propagación
son tan pequeños que no se toman en cuenta.

Fig. 7-41
256 EL FLIP-FLOP

Los flip-flops son del tipo D (delay) se construyen de tal manera que siempre que la entrada D
está encendida antes del flanco de disparo de un pulso de reloj será asegurado en la salida Q inmediata-
mente después del disparo. Este comportamiento debe ser obvio en la simulación que se realizó con
LogicWorks™ y que se muestra en la figura 7-42, donde la observación de la posición de las formas
de onda relativas indican claramente las características de retardo del circuito.

Fig. 7-42

7.13 Sustitúyanse los flip-flops D por flip-flops T en el problema 7.12, y trácense las formas de
onda en los puntos A, B y C. Una vez más, asúmase que los flip-flops fueron borrados antes
de la aplicación del primer pulso de reloj y que se disparan por flanco de subida (BAJO a
ALTO) del pulso de reloj. Empléense las mismas formas de onda de la entrada y del reloj
que se muestran en la figura 7-41.
Los flip-flops T de cambio de estado (toggle), cuando su entrada T está en 1 y permanece sin cam-
bio y cuando T es 0. Considérese la respuesta al primer pulso de reloj en las formas de onda de la figura
7-43. El flip-flop A cambia de estado ya que su entrada es 1 antes del flanco de subida del pulso de
reloj. El flip-flop B no cambia debido a que su entrada A, que está ligeramente retardada en relación
al reloj, es BAJA en el momento en el que el reloj va hacia el estado ALTO. El flip-flop C permanece
sin cambio debido a que B es BAJA cuando se presenta el pulso de reloj. Obsérvense que las transicio-
nes en las formas de onda A, B y C están relativamente alineadas una con respecto de las otras puesto
que todas cambian de estado mediante la misma señal de reloj.

Fig. 7-43
EL FLIP-FLOP 257

7.14 En la figura 7-44, los flip-flops están borrados desde el inicio (A = B = C = 0). Suponiendo
que A es el bit de selección más significativo del multiplexor y que los flip-flops se
disparan por flanco de bajada, dibújense las formas de onda en F para siete pulsos de reloj,
ignorando los retardos de propagación.
Obsérvese que el flip-flop C se dispara a partir de B y, con J = K = 1, todos los flip-flops
cambiarán de estado cuando llegue la señal del reloj. Antes del primer pulso de reloj, ABC =
000 lo cual selecciona la línea 0. Así, inicialmente, F = 1. El primer pulso de reloj hace que los
flip-flops A y B cambien de estado; C no responderá a una transición positiva ya que ABC =
110 lo cual selecciona a la línea 6, conectando F a D = 1. El segundo pulso de reloj cambia de
estado a A y B, lo que propicia que C cambie de estado. En este momento, ABC = 001 selecciona
a la línea 1 y F = 0. El tercer pulso de reloj hace que cambien de estado A y B; C permanece sin
cambio y ABC =111 (línea 7). Esto conecta F a D de modo que, en el intervalo entre el tercero y
cuarto pulsos la salida F seguirá a D (la que se ve que cambia). Continuando el análisis se
obtiene la tabla 7.8 y las formas de onda de la figura 7-45.

Fig. 7-44
258 EL FLIP-FLOP

Tabla 7.8

PULSO A B C Línea F
0 0 0 0 1
1 1 1 0 6 D
2 0 0 1 1 0
3 1 1 1 7 D
4 0 0 0 0 1
5 1 1 0 6 D
6 0 0 1 1 0
7 1 1 1 7 D

Fig. 7-45

7.15 Dado el circuito con un flip-flop JK y las formas de onda de entrada que se muestran en
la figura 7-46, dibújese la forma de onda de la salida Q. Asúmase que el flip-flop ha sido
fijado previamente Q = 1 antes de que se apliquen los pulsos de reloj y que el flip-flop cam-
bia de estado en la transición de 1 a 0 de un pulso de reloj. Ignórense los retardos de
propagación.
EL FLIP-FLOP 259

Fig. 7-46

Recuérdese la tabla de verdad del flip-flop JK en operación síncrona (tabla 7.2).

J K Qn+i

0 0 Qn
0 1 0
1 0 i
1 1 Q´n

Estas reglas se aplican en el flanco apropiado del pulso de reloj y el resultado será el que se muestra
en la figura 7-47.

Fig. 7-47
260 EL FLIP-FLOP

Problemas suplementarios
7.16 Se desea hacer que el latch temporizado de la figura 7-4 produzca salidas Q y Q' LT y que además
responda a señales LT en R, S y CLK. Determínese una configuración de hardware en la cual se em-
pleen el mínimo número de compuertas.

7.17 En la figura 7-48 se muestra una implantación con compuertas NAND en lógica positiva de un latch
RS. Dibújese el diagrama puramente lógico correspondiente y la tabla de estados.

Fig. 7-48
7.18 Con las siguientes especificaciones hágase el diseño de un circuito que combine las características de
los flip-flops D y T en un sólo dispositivo. Cuando las entradas D y T sean VERDADERAS simultá-
neamente, el dispositivo no cambiará de estado; para todas las otras combinaciones de entrada, el dis-
positivo se debe comportar como un flip-flop D o T normal. Obténgase la tabla de estados para opera-
ción síncrona, usando como guía la tabla 7.2.

7.19 Considérese el circuito que se muestra en la figura 7-49. Inicialmente, los flip-flops maestro-esclavo
se borran. Para la forma de onda de la entrada X mostrada, dibújense las formas de onda para las
variables A y Z, aceptando que el disparo ocurre cuando el pulso de reloj baja.

7.20 Un ingeniero, en el diseño de un flip-flop JK disparado por flanco del tipo que se muestra en la figura
7-31 (problema 7.6), intenta reducir la cantidad de compuertas mediante la omisión del latch G9 -
G10, llegando al circuito que se muestra en la figura 7-50.
El razonamiento de diseñador es como sigue:
Condiciones iniciales: Q = 0, J = 1, K = 0.
Cuando el reloj sube.
El punto A → 1, B → 0.
El cambio en A ocurre antes que el cambio en B.
La secuencia en la entrada de G7 es AB = 01,11,10 y Q permanece sin cambio.
Cuando el reloj cae.
Una vez más, A cambia antes que B, y la secuencia en la entrada de G7 es AB = 10,00,10.
Durante el breve periodo en el que AB = 00, Q → 1 lo cual se asegura a través de G5, G8 y G4.
¡El análisis anterior es correcto, excepto por una pequeña suposición errónea! Desarróllese el diagrama
de microtemporización y encuéntrese la falla.
EL FLIP-FLOP 261

Fig. 7-49
262 EL FLIP-FLOP

Fig. 7-50

7.21 Considérese el circuito de la figura 7-51. Consúltese el problema 7,17 y determínense las salidas Q
y Q' cuando el reloj está en BAJO.

Fig, 7-51
EL FLIP-FLOP 263

7.22 Para el circuito de la figura 7-51, si D = 0, ¿qué pasa cuando el reloj va de 0 a 1?

7.23 Continuando la secuencia del problema 7.22, ¿qué le pasa a Q cuando el reloj regresa a 0?

7.24 Repítanse los problemas 7.22 y 7.23 para el caso cuando D = 1.

7.25 Los resultados de los problemas 7.21 al 7.24 indican que el circuito de la figura 7-51 es un flip-flop
D disparado por flanco de subida. Dibújese un diagrama de microtemporización de voltaje para las
condiciones que se muestran en la figura 7-52, cuando el valor inicial de Q = 1.

Fig. 7-52

7.26 Con el fin de convertir un flip-flop D en uno JK se debe agregar lógica para hacer que el dispositivo
retenga su estado presente cuando las entradas JK = 00 y que cambie de estado cuando JK = 11.
Muéstrese la lógica.

7.27 Para la fabricación de una compuerta o un inversor en un chip a ¡a medida se necesita el acomodo
de los siguientes recursos:
Cada compuerta 2 unidades
Cada entrada (después de la primera) 0.5 unidades
Cada alambre de interconexión 0.25 unidades
(incluyendo las terminales de entrada y salida)
Si cada fuente de silicio cuesta 2 centavos de dólar, compárese el costo de un latch sencillo (figura 7-2)
con el del flip-flop JK de la figura 7-11.

7.28 Las salidas del flip-flop en el circuito de la figura 7-53 están conectadas a las entradas de selección de
un multiplexor. Este circuito se llama rastreador (scanner). Asumiendo el disparo por flanco de baja
da, hágase el diagrama de macrotemporización para las señales A, B y C y descríbase la acción de ras-
treo (scanning).

7.29 En el circuito del flip-flop JK que se muestra en la figura 7-12a, ilústrese el tiempo interno para la ac-
ción preset mediante el trazado del diagrama de microtemporización en voltaje para las compuertas
individuales. Asúmase inicialmente que Q = 0 y el reloj está deshabilitado (se mantiene en 0) cuando
la entrada preset se va a VERDADERO (BAJO).

7.30 Para el circuito del flip-flop JK que se muestra en la figura 7-12a, asúmase que J = 0, K = 1 y que
el circuito se fija inicialmente en Q = 1. Ilústrese el tiempo interno para un borrado síncrono mediante
el trazado del diagrama de microtemporización en voltaje para las compuertas individuales cuando
se aplica un solo pulso de reloj que va de bajo a alto.

7.31 En un circuito que presenta ¡a condición de metaestabilidad, ¿cuál es el efecto de duplicar la frecuencia
del reloj? Hay sólo una fuente de señal de reloj.
264 EL FLIP-FLOP

7.32 Empléense los valores numéricos del ejemplo 7.6 para obtener el valor de la razón que se obtuvo en
el problema 7.31.

7.33 Un estudiante ha diseñado el circuito que se muestra en la figura 7-54 como un flip-flop JK. Se intenta
que un pulso de reloj invertido bloquee k realimentación de las salidas QF y QF' hasta que la señal
de reloj regrese a 0. ¿Podrá el circuito cambiar de estado como se necesita? Obsérvese que en el diagra-
ma se emplea lógica positiva.

7.34 Con referencia al problema anterior, empléese el diagrama de tiempos de las formas de onda internas
para identificar un arreglo sencillo que habilitará el circuito del estudiante para satisfacer este objetivo
de diseño.

Fig. 7-53
EL FLIP-FLOP 265

Fig. 7-54

7.35 ¿Podrá el circuito que se muestra en la figura 7-55 convertir el flip-flop D en un flip-flop T? Demués-
trese la respuesta mediante un diagrama de tiempos.

Fig. 7-55

7.36 Diséñese un circuito que convierta un flip-flop T en un flip-flop D.

7.37 Empleando las técnicas del ejemplo 7.5 y con las compuertas AND-OR utilizadas en la lógica con
vencional reemplazadas por multiplexores encuéntrese la máxima frecuencia del reloj para un circuito
del tipo que se muestra en la figura 7-18. Utilícense los siguientes parámetros de tiempos para el dispo-
sitivo.
266 EL FLIP-FLOP

Respuestas a los problemas suplementarios


7.16 Úsense compuertas NOR como se muestra en la figura 7-56.

Fig. 7-56

7.17 El diagrama lógico y la tabla de estados se muestran en la figura 7-57. Obsérvese que esta tabla de esta-
dos está en lógica inversa a diferencia de aquella mostrada en la tabla 7.1.

S R Q n+1

0 0 *
0 1 1
1 0 0
1 1 Qn

* Ambas entradas son 1s

Fig. 7-57
EL FLIP-FLOP 267

7.18 Véase la tabla 7.9.

Tabla 7.9
T D Qn+1

0 0 0

0 1 1
1 0 Q'n
1 1 Qn

7.19 Véase la figura 7-58.

Fig. 7.58

7.20 La salida de la compuerta G7 va de 1 a 0 como se esperaba, pero solamente permanece ahí por un in-
tervalo de retardo; el circuito no asegura (véase la figura 7-32).
El hecho real es que la situación es mucho más severa que una sencilla funcionalidad inadecuada.
El flanco de bajada del pulso de la G7 afecta a la G5 y a la G8 las cuales, subsecuentemente, alimentan
de regreso un cambio de señal a G4, y así sucesivamente. Las conexiones en pareja cruzadas resultan
en inestabilidad y el circuito oscila continuamente, como se muestra en las formas de onda de la
simulación de la figura 7-59.
268 EL FLIP-FLOP

Fig. 7-59

7.21 Cuando el reloj está en BAJO, D no tiene efecto y se permite cualquiera de los estados de salida. Así,
el valor de Q depende de la historia anterior.

7.22 Q se va a 0 o permanece ahí si éste fue su estado inicial.

7.23 Q permanece en 0.

7.24 Q se va a 1 o permanece ahí si éste fue su estado inicial. Su valor no cambia cuando el reloj regresa a 0.

7.25 Véase la figura 7-60.

Fig. 7-60

7.26 D = JQ' + K'Q. El circuito se muestra en la figura 7-61.

7.27
Latch Flip-Flop JK

Recursos: 6.5 ($0.13) 36.25 ($0.73)

Es importante observar aquí que el flip-flop JK es capaz de realizar operaciones más complicadas que el
latch sencillo.
EL FLIP-FLOP 269

7.28 Las líneas de entrada del multiplexor serán seleccionadas en el siguiente orden 0-4-2-6-1-5-3-7-0. El
diagrama de tiempos se muestra en la figura 7-62.

7.29 Véase la figura 7-63.

Fig. 7-61

Fig. 7.62 Para ilustrar el reset, el flip-flop A se ha inicializado alto en la simulación


270 EL FLIP-FLOP

Fig. 7-63
7.30 Véase la figura 7-64,

Fig. 7-64
EL FLIP-FLOP 271

7.32 2.59 x 10-17

7.33 El diagrama de tiempos para JK = 11 se muestra en la figura 7-65. El circuito intenta cambiar de esta-
do, pero la salida cambia solamente mientras que el pulso de reloj invertido esté presente.

Fig. 7-65

7.34 Úsese QM y QM' como salidas (véase la figura 7-66)

Fig. 7-66

7.35 Sí. Véase la figura 7-67.

Fig. 7-67
272 EL FLIP-FLOP

7.36 Si el valor real de la salida difiere de D, entonces el dispositivo debe cambiar de estado. Véase la figura
7-68.

T = A1 D + AD'
Fig. 7-68

7.37 f máx = 16.67 MHz.


Capítulo 8

Combinaciones de flip-flops
8.1 REGISTROS

A la combinación de flip-flops activados por una señal de reloj común y arreglados de manera siste-
mática normalmente se le conoce como un registro. En este arreglo a cada flip-flop individual se
denomina etapa (stage). El estado del registro es la secuencia ordenada de las salidas (1 o 0) de los
flip-flops, expresado usualmente como un equivalente binario o número hexadecimal.

EJEMPLO 8.1 Determínese el estado de registro ordenado numéricamente que se muestra en la figura 8-1.

Fig. 8-1 Registro de ocho bits

Asumiendo que la etapa R1 contiene el bit más significativo, el estado es 10110110 (en binario) o B6 (en
hexadecimal). Obsérvese que el estado del registro no involucra ninguna de las entradas de los flip-flops. Las
conexiones a las entradas, sin embargo, determinan la forma en la que el registro cambia de un estado a otro.

Registro de aseguramiento (Latching Register)


Si el registro que se muestra en la figura 8-1 tiene sus entradas sujetas a líneas de datos separadas, el
estado colectivo de estas líneas se puede leer del registro y almacenar (asegurar) mediante la apli-
cación de la señal de reloj a los flip-flops. Los datos almacenados permanecerán sin cambios hasta
que el registro reciba nuevamente la señal del reloj en el tiempo en el que los nuevos datos de entra-
da, si se presentan, serán asegurados dentro del registro. Así un registro de n-etapas se puede utilizar
como un dispositivo de memoria para almacenar o recordar una sola palabra binaria de n-bits.

273
274 COMBINACIONES DE FLIP-FLOPS

EJEMPLO 8.2 Cuatro flip-flops D se conectan como el registro de aseguramiento que se muestra en la figura
8-2 junto con el diagrama de microtemporización de las señales de entrada. Asumiendo que los flip-flops con-
mutan instantáneamente en el flanco de subida del reloj, exprésese el estado del registro (como un número
hexadecimal con R, como el bit más significativo) después del primero, tercero y cuarto pulsos de reloj.
Exactamente antes del primer pulso de reloj, A = C= 1 y B = D = 0. Este dato se asegura en el flip-flop
mediante el flanco de subida produciendo las salidas R1, R2, R3, R4 igual a 1010 que es Ahex o $A. En el flanco
de subida del tercer pulso de reloj, todas las entradas son 1s y R1, R2, R3, R4 = 1111 = $F. Para el cuarto
pulso de reloj, A = 0 y B = C = D = l y la salida del registro es 0111 = $7.

Fig. 8-2
COMBINACIONES DE FLIP-FLOPS 275
276 COMBINACIONES DE FLIP-FLOPS

Registro de corrimiento
Es posible conectar las etapas de un registro de tal manera que el número binario que expresa el
estado del registro se recorra a la derecha o a la izquierda bajo la acción de un comando. Considére-
se el registro de corrimiento de ocho etapas formado con flip-flops D que se muestra en la figura
8-3a. Puesto que la entrada D de cada etapa está conectada a la salida Q del flip-flop a su izquierda
(anterior), lo que significa que el estado de cada flip-flop después del pulso de reloj será igual al
estado del flip-flop vecino a la izquierda antes del pulso de reloj. De esta manera, cada pulso de
reloj propicia el corrimiento a la derecha de un sólo bit.
Un registro de corrimiento también se puede hacer con flip-flops JK si se recuerda que un dis-
positivo JK se puede convertir en un flip-flop D mediante el arreglo de las entradas J y K de tal
forma de que sean lógicamente inversas una de la otra (sección 7.8). Se puede asegurar la inversión
lógica si J se maneja desde la salida Q, y K desde la salida Q' del mismo dispositivo. En la figura
8-3¿ se muestra un registro de corrimiento de cuatro etapas utilizando flip-flops JK.
Los datos se alimentan por la izquierda, y en los dos casos, sus bits están sincronizados con
los pulsos de reloj. A medida que el corrimiento se lleva a cabo, se introduce un sólo bit al mismo
tiempo que una palabra digital en el registro. Esto es similar a como se acomodan los platos en un
apilador con resorte en una cafetería. La analogía de los platos es adecuada, en este caso, ya que
los registros de corrimiento llamados pilas (stacks) se emplean como memorias temporales en
computadoras.

EJEMPLO 8.3 Diséñese un registro de corrimiento reversible (bidireccional) empleando flip-flops D para las
etapas. Este ejemplo muestra las posibilidades que se tienen al combinar elementos de almacenamiento (flip-
flops) y elementos lógicos (compuertas).
La dirección del corrimiento está determinada por las conexiones de las entradas D. Si la salida de la pri-
mera etapa se conecta con la segunda, y la segunda se conecta con la tercera, y así sucesivamente, el dato se
recorrerá a la derecha con cada pulso de reloj. Por otro lado, si la última salida controla a la penúltima etapa,

Fig. 8-4 Las conexiones para corrimiento a la izquierda se indican con líneas gruesas
COMBINACIONES DE FUP-FLOPS 277

y la salida de esta etapa controla a la precedente, etcétera, el registro se recorrerá a la izquierda. Es claro que
se necesita algún medio con el cual se puedan cambiar las conexiones de las entradas con un comando.
El multiplexor descrito en la sección 5.2 puede satisfacer este requerimiento de manera muy efectiva como
se muestra en la figura 8-4. En esa figura se presenta un registro de cuatro etapas. Cada entrada D se activa
mediante un multiplexor de dos entradas, de tal forma que si se utiliza una señal de control, llamada R/L,
como selector común a todos los multiplexores, entonces cada entrada D será conectada a la salida preceden-
te más cercana cuando R/L = 1 (corrimiento a la derecha) y a la salida subsecuente más cercana cuando
R/L = 0 (corrimiento a la izquierda).

a) Convertidor paralelo-serie

b) Diagrama de tiempos (disparo mediante flanco de subida)


Fig. 8-5
278 COMBINACIONES DE FLIP-FLOPS

8.2 CONVERSIÓN PARALELO-SERIE

Si un tipo particular de flip-flop tiene entradas síncrona y asíncrona es posible utilizarlo en un regis-
tro arreglado para realizar una forma de manipulación de datos llamada conversión paralelo-serie. En
el sistema de la figura 8-5a, se tiene una palabra de 4 bits que originalmente está en forma paralela
(es decir, todos los bits se presentan simultáneamente en los cuatro alambres). Se desea obtener la
misma información en forma serial donde los bits individuales aparecen secuencialmente en un solo
alambre.
La acción de conversión se entiende mejor si se relaciona con el diagrama de tiempos de la figura
8-56. Se aplica primero la señal de borrado asíncrono (CLR), que inicializa a los flip-flops en el registro
a 0. Después, se aplica un pulso de carga (de datos). Esta última pasará a través de aquellas compuertas
AND donde el dato es 1 (D1 y D2) y fijará a los flip-flops correspondientes (B y C) en 1. En este
momento se ha leído (asegurado) el dato en paralelo dentro del registro.
Visto desde sus entradas (D) síncronas, los flip-flops se conectan como un registro de corri-
miento. Cuando se aplican de manera subsecuente los pulsos de reloj (CLK), el dato cargado se
recorre a la derecha, teniendo en la salida del flip-flop D un bit a la vez sincronizado con el reloj.
La conversión de los datos será apropiada en la medida que las señales se apliquen en el orden
mostrado. Obsérvese que los modos de operación síncrono y asíncrono se emplean separadamente
y nunca los dos a la vez.

8.3 CONTADORES DE PROPAGACIÓN

Es posible conectar flip-flops de modo que el circuito cuente el número de pulsos que se presentan
a la entrada. Esto es, las salidas de los flip-flops, tomadas como un grupo, indicarán un número
binario igual al número de pulsos que se presentaron en la entrada desde el momento que se aplicó
el reset hasta el tiempo de observación. Los contadores de propagación son una clase de contadores
muy económicos en su diseño, aunque de algún modo lentos. Un ejemplo común se muestra en la
figura 8-6.
Con sus entradas JK fijas en 1 lógico, los flip-flops cambiarán de estado con cada pulso de
reloj (mediante flanco de bajada en este caso). Obsérvese que a diferencia de los registros de corri-
miento, no hay conexión común de la señal de reloj. En su lugar, con excepción del primero, cada
entrada de reloj de los flip-flops se maneja mediante la salida de la etapa anterior. El primer flip-flop
(D) cambiará de estado una vez por cada pulso de entrada, y el siguiente flip-flop (C) cambiará
de estado una vez por cada transición hacia abajo de D. De modo similar, C maneja a B que, a
su vez, maneja a A. Con referencia al diagrama de tiempos de la figura 8-66 en los intervalos apro-
piados, se puede determinar el estado de cada de los flip-flops siguiendo cada pulso de entrada (ta-
bla 8.1). Si la salida A se considera como el bit más significativo, se ve que el circuito funciona como
un contador binario de 4 bits. Aunque las formas de onda se detienen prematuramente se debe espe-
rar que este circuito cuente hasta 15 y reinicie en 0 en el décimo sexto pulso. Obviamente, la cuenta
pudiera ser más alta agregando etapas adicionales.
Puesto que cada flip-flop debe cambiar antes de que afecte a su sucesor, la cuenta actúa como
una onda o rizo a través de una cadena de flip-flops; de ahí el nombre de "contador de propaga-
ción".
Además de su utilidad como contador, el circuito de la figura 8-6a tiene otra característica muy
útil. A partir de las formas de onda de la figura 8-66 obsérvese que, de izquierda a derecha, la fre-
COMBINACIONES DE FLIP-FLOPS 279

a) Contador de propagación de cuatro etapas

b) Diagrama de tiempos de un contador de propagación (disparo mediante flanco de bajada)


Fig.8-6

Tabla 8.1
Pulso A B C D

0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
10 1 0 1 0
11 1 0 1 1
12 1 1 0 0
280 COMBINACIONES DE FLIP-FLOPS

cuencia de cada etapa es exactamente la mitad de la de su predecesor. Así, el circuito se puede utili-
zar como un divisor de frecuencia preciso. Una aplicación común es en relojes digitales donde la
salida de un oscilador de cristal de alta frecuencia muy estable se divide para obtener pulsos exactos
un segundo.

EJEMPLO 8.4 Un problema común a los contadores de propagación se muestra en la figura 8-7 donde se ha
agregado una compuerta de reconocimiento para indicar la ocurrencia del sexto pulso después del reset. Sus
entradas son A'BCD', y se intenta producir una salida sólo cuando el estado del contador es 0110 (6 en deci-
mal).

a) Contador de propagación con compuerta de reconocimiento

b) Formas de onda
Fig. 8-7
COMBINACIONES DE FLIP-FLOPS 281

Desafortunadamente, debido al inevitable tiempo de retardo de propagación asociado con cada flip-flop
(sección 7.9), pueden ocurrir varios estados transitorios durante la transición de una cuenta a otra a medida
que los flip-flops se disparan secuencialmente. La tabla 8.2 muestra la secuencia de estados que pasaron
durante la transición de la cuenta 7 a la 8. Cuando D cambia de 1 a 0, dispara a C que a su vez cambia de 1 a
0 disparando a B el cual en su momento, propicia que A cambie de 0 a 1. Los estados estables se muestran
con negritas, y los estados transitorios en un tipo normal. El número binario 0110 existe brevemente
causando el glitch que se ve en la figura 8-7b.

Tabla 8.2

En adición a su susceptibilidad a los glitches, los contadores de propagación tienen limitaciones de veloci-
dad puesto que los retardos de tiempo se acumulan. Para que un contador de N etapas trabaje apropiadamente
los pulsos de entrada deben estar separados por lo menos el máximo retardo de tiempo de la propagación, (N-
l)Tp, donde Tp es el tiempo de propagación del flip-flop. Así, un contador de propagación es adecuado para el
conteo de objetos sobre una banda transportadora pero totalmente inadecuado para mantener el orden de los
pulsos que se mueven dentro de una computadora de alta velocidad.

8.4 MULTIPLICADORES DE TASA

Otro ejemplo donde se emplea la poderosa combinación de lógica y elementos de almacenamiento es


el multiplicador de tasa. Es un dispositivo digital que entrega un tren de pulsos cuyo número pro-
medio por unidad de intervalo de tiempo se puede seleccionar de manera exacta mediante el posicio-
namiento de interruptores de control para que sea una fracción fija de la tasa de pulsos de entrada.
Estos dispositivos se emplean con frecuencia en controladores de potencia para motores de pasos
cuyas flechas o ejes rotan un número fijo de grados por pulso. Mediante la selección del número de
pulsos entregados, se pueden lograr mecanismos de posicionamiento muy precisos para su utilización
en máquinas herramientas, manejo de impresoras de papel para computadoras, robots, etcétera.
En la figura 8-8a se muestra un diagrama lógico de un multiplicador de tasa que utiliza un con-
tador binario de 4 bits para generar ocho señales las cuales están relacionadas entre sí en el tiempo
(las salidas Q y Q' de cada etapa). Estas señales se combinan con los pulsos de reloj y las entradas de
control en cuatro compuertas AND de reconocimiento, cada una de las cuales producirá una salida
solamente si se satisfacen las condiciones lógicas correctas y el pulso de entrada está presente (es
VERDADERO).
En el diagrama del circuito de la figura 8-8a se ve que la compuerta G8 permitirá el paso de un
pulso sólo si C8 y A son VERDADERAS simultáneamente, condición que se mantiene para
cualquier otro pulso de entrada. De este modo, cuando C8 es VERDADERA la mitad de los pulsos
de entrada se presentan en la salida de G8. De manera similar, G4 pasará un pulso de entrada sola-
mente si A´, B y C4 son VERDADERAS simultáneamente. Esta condición se mantendrá para cada
282 COMBINACIONES DE FLIP-FLOPS

a) Multiplicador de tasa

b) Formas de onda
Fig. 8-8
COMBINACIONES DE FLIP-FLOPS 283

cuarto pulso de entrada, y ninguno de estos pulsos de G4 se presentará al mismo tiempo como
cualquiera de los pulsos de G8 puesto que A y A' no pueden ser VERDADERAS simultáneamente.
De manera idéntica, G2 y G1 permiten el paso de los pulsos octavo y dieciseisavo, respectivamente,
sin traslaparse. Todas las salidas de las compuertas de reconocimiento se pasan a través de una com-
puerta OR para producir la salida del sistema F la cual se puede alimentar por el amplificador de
potencia y por tanto por el motor.
Se ve que es posible, mediante la apropiada selección de los valores de control, crear la tasa de
pulsos de salida igual a cualquiera de las dieciséis fracciones desde 0 hasta 15/16 de la tasa de
pulsos de entrada en pasos de un dieciseisavo. En el ejemplo que se muestra en la figura 8-8a, las
variables de control C8 y C2 son VERDADERAS, mientras que C4 y C1 son FALSAS, y el número
binario resultante 1010 hace que la salida produzca 10 pulsos por cada 16 pulsos de entrada. La
figura 8-86 muestra que los pulsos de salida no están uniformemente espaciados, más bien se pre-
sentan de una manera irregular que se investigará cuantitativamente en el problema 8.12.
Una ecuación que expresa la tasa de multiplicación como una función de las variables lógicas
de control se puede escribir como

Si se necesitaran incrementos fracciónales finos, se pueden agregar etapas de conteo adiciona-


les, junto con un número igual de compuertas de reconocimiento y entradas de control. Para incre-
mentar la resolución a un treintaidosavo, por ejemplo, se agrega un flip-flop E. Sus entradas J y
K están conectadas a 1 lógico, y su entrada de reloj se maneja desde la salida D. La compuerta de
reconocimiento adicional se conecta a A', B', C, D' y E junto con el pulso de entrada y la nueva
línea de control. Las líneas de control se reetiquetan de C1 a C16, y la ecuación de la tasa de multi-
plicación se convierte en

8.5 MEMORIA DE ACCESO ALEATORIO (RAM)

RAM es el nombre que se le da a una clase de elementos de memoria cuyo contenido se puede alterar
(escribir a) así como leer a velocidades electrónicas. Esto podría visualizarse mejor como un arreglo
de registros direccionables, cada uno de los cuales retiene una palabra binaria de n bits. La figura
8-9 muestra la estructura del equivalente lógico de una RAM de 4 bits, una de sus características
prominentes es un decodificador de direcciones, funcionando exactamente como un ROM, la cual
selecciona al registro apropiado (renglón horizontal de flip-flops).
Una definición breve está acorde en este punto. Se dice que una compuerta AND está primada si
todas sus entradas excepto una se conectan a 1 lógico (VERDADERO). En este caso, su salida
asumirá el valor lógico de la entrada restante y se puede pensar en la compuerta como un centinela
que permite el paso de señales cuando está primado, y si no lo está, las bloquea. Se ve que la salida
del decodificador de direcciones prima (pone ls) a dos compuertas AND en el renglón seleccionado
de manera que si la señal de lectura (R) está presente, la compuerta de lectura producirá una salida
VERDADERA al igual que la compuerta de escritura si la señal de escritura (W) está presente.
284 COMBINACIONES DE FLIP-FLOPS

Fig. 8-9 Equivalente lógico de una memoria RAM

Cada columna de flip-flops corresponde al rango del bit (más significativo a la izquierda y me-
nos significativo a la derecha). Las entradas D de todos los flip-flops en la misma columna se conec-
tan conjuntamente a una línea de entrada de datos, como se muestra en la figura 8-9. Si se aplica un
pulso de escritura pasará a través de la compuerta AND primada la señal de reloj para que el dato
entre a todos los flip-flops en el renglón seleccionado (direccionado), almacenando de esta manera
una palabra binaria de n bits en la localidad especificada.
En el modo de lectura, se prima una compuerta AND conectada a la salida de cada flip-flop
en el renglón seleccionado mediante el decodificador de direcciones, de modo que para cada colum-
na el valor del bit almacenado se pasa por una gran compuerta OR la cual tiene tantas entradas
como la capacidad de almacenamiento direccionable de la RAM. Las salidas de las compuertas
AND conectadas de igual modo a partir del bit del mismo orden (columna) en todas las palabras
almacenadas constituyen otras entradas a esta compuerta OR. Puesto que la palabra seleccionada
(renglón) es la única de las compuertas AND con salida primada, todas las otras entradas a la com-
puerta OR de salida en cada columna debe ser 0 y los datos de salida se determinarán solamente
mediante los bits en la palabra seleccionada.
COMBINACIONES DE FLIP-FLOPS 285

En la práctica, todos los datos que entran o salen de la memoria pasan a través del registro de
entrada/salida (E/S), como se muestra en la figura 8-10. Este registro debe comunicarse con los
chips de datos de entrada que se encuentran alejados así como enviar datos al mundo exterior. En
la figura 8-11 se muestra una celda de E/S normal. Obsérvese que los datos entran y salen del chip
de la memoria por el mismo camino (llamado bus de datos). Los datos se aseguran en un registro
de E/S a través de sus entradas D las cuales se conectan al bus de datos cuando la señal de escritura
está presente y del chip de la memoria mediante la salida de las compuertas OR cuando se aplica la
señal de lectura. Las conexiones de cada bit de salida del registro de E/S al bus de datos se hace

BUS DE DATOS

LECTURA (READ)

ESCRITURA (WRITE)

DIRECCIÓN
Fig. 8-10 Memoria RAM de 4 bits con registro de E/S
286 COMBINACIONES DE FLIP-FLOPS

mediante un circuito llamado buffer TRI-STA TE®* (de tres estados) el cual cuando se habilita me-
diante la señal de lectura, provee una trayectoria conductiva y cuando no se habilita, actúa como un
interruptor abierto. A través de este medio, es posible prevenir que la salida de registro de E/S
interfiera con los datos de entrada durante una operación de escritura. En general, actuando como
interruptores controlados, los buffers TRI-STATE® permiten que varios circuitos compartan un bus
de datos común sin interacción. Los símbolos TRI-STATE® típicos se muestran en la figura
8-12.

Fig. 8-11 Celda de registro de E/S

*TRI-STATE® es una marca registrada de National Semiconductor Corporation.


COMBINACIONES DE FLIP-FLOPS 287

Inversor con habilitación en


activo alto (alto-VERDADERO)

HABILITACIÓN

Inversor con habilitación en


activo bajo (bajo-VERDADERO)

HABILITACIÓN

Fig. 8-12 Dispositivos TRI-STATE®

La RAM se utiliza en computadoras y otros sistemas digitales para el almacenamiento tempo-


ral de datos que se deben utilizar posteriormente. Su papel es muy parecido a un cuaderno de notas
para llevar a cabo cálculos manuales. También se utiliza para el almacenamiento de programas de
computadora y/o dispositivos (drivers), que se pueden modificar según lo requieran las condiciones
de operación en particular. Esto en contraste con los dispositivos ROM que se emplean para alma-
cenamiento permanente de instrucciones y listas de datos. Además se debe recordar que se instalan
de fábrica. La información almacenada se puede cambiar solamente durante los periodos fuera de
servicio mediante la remoción de los chips y el correspondiente reemplazo o reprogramación de los
mismos (véase el capítulo 9).

Problemas resueltos
Obsérvese que algunos de los problemas que siguen involucran circuitos secuenciales que requieren
de un análisis cuidadoso de estados antes de la tabulación de las salidas resultantes y de que se reciba
un pulso de reloj. Los métodos que se analizaron en este capítulo son adecuados para circuitos rela-
tivamente simples. Un método sistemático más poderoso para analizar circuitos secuenciales en ge-
neral se describe en conexión con el estudio de las máquinas de estado en el capítulo 10.

8.1 Un registro de corrimiento que está conectado a un lazo que tiene una inversión lógica en un
punto se denomina contador Johnson o Mobius. Una versión de cuatro etapas empleando flip-
flops D se muestra en la figura 8-13. Asumiendo que inicialmente está borrado y la transición
se presenta con los flancos de subida del reloj muéstrense las formas de onda del diagrama de
macrotemporización en las salidas de cada etapa.
288 COMBINACIONES DE FLIP-FLOPS

Fig. 8-13 Contador Mobius

Cuando se aplica el reset, todas las salidas Q estarán en 0 lógico. D' estará en 1 lógico, lo que
propiciará que A se vaya a 1 hasta la primera transición de subida de la señal del reloj. La salida A,
que es el dato de entrada para B, hará que este flip-flop se vaya a 1 lógico en el segundo pulso del reloj.
Este cambio será transferido a C el cual, a su vez, causará que D cambie en el pulso 4. En este momen-
to, D' se va a 0 propiciando que A se vaya a 0 lógico en el pulso 5. Una transición de ALTO a BAJO
ahora se propaga a través del contador hasta que éste alcanza D, tiempo en el cual, el proceso se repite.
Las formas de onda se muestran en la salida de la simulación de la figura 8-14.

Fig. 8-14 Formas de onda del contador Mobius

8.2 Para el contador de la figura 8-15a, asúmase que los flip-flops son dispositivos maestro-
esclavo del mismo tipo que se analizaron en el capítulo 7. Si todos los flip-flops se disparan
con el naneo de subida del pulso de reloj y se asume que inicialmente están borrados, dibú-
jense las formas de onda en A y C para 10 pulsos de reloj (ignorando los retardos de
propagación).
Como en el problema 7.9, tabúlense los valores de las entradas de los flip-flops JK después de
cada pulso de reloj (véase la tabla 8.3). Las formas de onda que se muestran en la figura 8-15b se pue-
den dibujar mediante la lectura de los valores lógicos de la tabla.
COMBINACIONES DE FLIP-FLOPS 289

a) Contador

b) Formas de onda
Fig. 8-15

Tabla 8.3
Pulso A B c JA(= C´) KA JB(=A) KB JC(=B) KC(=B')
0 0 0 0 1 1 0 1 0 1
1 1 0 0 1 1 1 1 0 1
2 0 1 0 1 1 0 1 1 0
3 1 0 1 0 1 1 1 0 1
4 0 1 0 1 1 0 1 1 0

Repítanse los pasos 3 y 4 indefinidamente


290 COMBINACIONES DE FLIP-FLOPS

8.3 Si los flip-flops en el circuito de la figura 8-16a se borran inicialmente y el disparo es


con la transición de 1 a 0 del reloj, dibújese el diagrama de macrotemporización en F
para la forma de onda D que se muestra en la figura 8-16b. Asúmase que la línea de
selección A del multiplexor es la más significativa.

Fig. 8-16

Obsérvese que una transición de 1 a 0 de un flip-flop propicia que la etapa a su derecha cambie
de estado, de este modo, se crea un contador de propagación, como se describió en la sección 8.3. La
secuencia de estados se muestra en la tabla 8.4 a partir de la cual se obtienen las formas de onda desea-
das de la figura 8-17.
COMBINACIONES DE FLIP-FLOPS 291

Fig. 8-17

Tabla 8.4
SELECCIÓN
PULSO D A B C ENTRADA AL MUX SALIDA DEL MUX (F)
1 1 1 0 0 4 (0) 0
2 1 0 1 0 2 (D´ ) 0
3 1 1 1 0 6 (D) 1
4 0 0 0 1 1 (0) 0
5 0 1 0 1 5 (1) 1
6 0 0 1 1 3 (D´ ) 1
7 1 1 1 1 7 (D) 1
8 1 0 0 0 0 (D 1
9 0 1 0 0 4 (0) 0
10 1 0 1 0 2 (D´ ) 0
11 1 1 1 0 6 (D) 1
12 1 0 0 1 1 (0) 0

8.4 El circuito que se muestra en la figura 8-18 es un contador. Dando por hecho que está
inicial-mente borrado encuéntrese la secuencia de conteo. (Nótese que el material sobre
máquinas de estado en el capítulo 10 es importante.)
A partir del diagrama lógico, las ecuaciones para las entradas de los flip-flops D son
292 COMBINACIONES DE FLIP-FLOPS

Fig. 8-18
COMBINACIONES DE FLIP-FLOPS 293

Expresándose en mapas estas ecuaciones da la figura 8-19.


Una coordenada WXYZ dada para todos los mapas se puede interpretar como un estado de la
cuenta, mientras un mapa individual representa a las entradas D correspondientes a los flip-flops. Ini-
cialmente, el contador está en 0000. Esto significa que las cuatro entradas D se leen a partir de la esqui-
na superior izquierda de los mapas, lo que da en este caso, 1001. Esto quiere decir que, después del
pulso de reloj, las salidas de los flip-flops asumirán la combinación de estados WXYZ = 1001. Las
coordenadas se mueven a 1001 (último renglón, segunda columna) donde las entradas son WXYZ =
0110. El proceso continua y produce la tabla 8.5.

Tabla 8.5
Pulso W X Y Z
0 0 0 0 0
1 1 0 0 1
2 0 1 1 0
3 1 1 0 0
4 0 0 1 1
5 1 0 1 1
6 0 1 1 1
7 1 1 1 1
Se repite

Fig. 8-19
294 COMBINACIONES DE FLIP-FLOPS

8.5 Se ha mostrado previamente el problema de los glitches que se puede presentar en un conta-
dor de propagación con una compuerta de reconocimiento (figura 8-7). El circuito se repro-
duce por conveniencia en la figura 8-20.
Muéstrese que para el caso donde los flip-flops cambian de estado mediante transiciones del reloj
de 1 a 0, una compuerta de reconocimiento alambrada para responder a un número impar no será afec-
tada por un glitch.
Un número impar se obtiene cada vez que el bit menos significativo (D) cambia a 1. Puesto que
esto es una transición de 0 a 1, no iniciará una transición en el flip-flop C o, consecuentemente, en
ningún otro de los flip-flops. De esta manera, la propagación no se presenta y por lo tanto el glitch.

8.6 Con referencia al problema 8.5, ¿bajo qué circunstancias habrá la posibilidad de un glitch
en la salida de un conjunto de compuertas de reconocimiento que responda a una cuenta
en el estado 0000?

Fig. 8-20

Considérese cuándo se presenta la propagación. Como se mostró previamente, la creación de un


número impar no causa propagación. Se ha investigado la creación de un número par al cual, debe
seguir inmediatamente un número impar. Todas estas transiciones de par a impar se muestran en deta-
lle, paso a paso, en la tabla 8.6. Los estados de glitch 0000 se indican con una (X).

8.7 El sistema que se muestra en la figura 8-21 intenta ser un generador de funciones.
Asumiendo que los pulsos de borrado y de reloj se presentan en el orden mostrado, que el
disparo ocurre con el flanco de subida y que A es el bit de selección más significativo,
dibújense las formas de onda a las salidas de los flip-flops (diagrama de
macrotemporización).
Tabla 8.6
1 a2 3 a 4 5 a 6 7a8
ABCD ABCD ABCD ABCD
0001 0011 0101 01 1 1
0000 (X) 0010 0100 01 10
0010 0000 (X) 0110 0100
0100 0000 (X)
1000
9 a 10 11 a 12 13 a 14 15 a 0
ABCD ABCD ABCD ABCD
1001 101 1 1 101 1111
1000 1010 1 100 11 10
1010 1000 1110 1100
1 100 1000 Salida deseada
0000 de la compuerta

Fig. 8-21
296 COMBINACIONES DE FUP-FLOPS

Después de recibir el pulso de CLR (borrado), la dirección de la ROM será 000 la cual selecciona
a la línea 0. El dato almacenado en la dirección seleccionada se conecta a las entradas D de los flip-flops
e indica en qué estado estará después del pulso de reloj. En el presente caso, la ROM ha almacenado
un 010 en la dirección 000 indicando que se seleccionará la línea 2 cuando llegue el siguiente pulso de
reloj. El proceso continúa y produce los siguientes equivalentes decimales de la secuencia binaria:

Las formas de onda requeridas se construyen fácilmente con líneas verticales, asignando niveles
0 y 1 correspondientes a los números binarios que representan cada estado en la secuencia, como se
muestra en la figura 8-22.

8.8 Ignorando la compuerta de reconocimiento, considérese un contador de propagación de


cuatro etapas del tipo que se muestra en la figura 8-20. Supóngase que hay N etapas y que
cada flip-flop tiene un retardo de propagación de ALTO a BAJO de 20 ns y uno de BAJO
a ALTO de 10 ns (véase el problema 7.1). Si cada cuenta distinta se debe retener por un perio-
do de 50 ns, encuéntrese una expresión para la máxima tasa a la cual se pueden contar los
pulsos. Asúmase que se le permite al contador reciclar la cuenta (roll o ver), esto es, puede
ir de su cuenta máxima y regresar a 0.
El periodo de tiempo más grande requerido para que reaccione a un pulso de reloj se presenta
cuando la respuesta debe propagarse a través de todas las etapas. Esto ocurre cuando la cuenta va de
su máximo valor (2N - 1) a 0, como se aprecia en la tabla 8.6. En este caso, puesto que todos los flip-
flops experimentan la transición de 1 a 0, esto tomará 20N ns para que la cuenta 0 aparezca en su forma
final. La siguiente cuenta será 1, y solamente la primera etapa (LSB, bit menos significativo) cambiará.
Puesto que esto será una transición de 0 a 1, requerirá de 10 ns para completarse. A continuación se
presenta un análisis paso a paso:
1. El contador inicialmente lee 2N - 1.
2. El siguiente pulso entra al contador.
3. El pulso se propaga a través del contador, requiriendo 20N ns para completar el ciclo.
COMBINACIONES DE FLIP-FLOPS 297

4. Puesto que la cuenta de 0 se debe desplegar por espacio de 50 ns, por especificación se debe permitir
que transcurran 40 ns (50 menos los 10 ns del retardo de la primera etapa) antes de que se pueda
aplicar el siguiente pulso.
El mínimo tiempo entre los pulsos Tmin es (20N + 40) ns, de modo que la máxima frecuencia
permitida para N etapas está dada por

Para N = 4

La relación se puede entender más fácilmente haciendo referencia a la figura 8-23.

Fig. 8-23

Fig. 8.24
298 COMBINACIONES DE FLIP-FLOPS

8.9 En la figura 8-24 se muestran tres flip-flops JK maestro-esclavo interconectados.


Asúmase que se diseñaron para ser disparados por el flanco de bajada del pulso de reloj e
inicialmente están borrados.
Ignorando los retardos de propagación, determínese si el circuito contará y, en caso
afirmativo, establézcase la secuencia de conteo. Si el circuito no cuenta, determínese el esta-
do en el que la suspensión se presenta.
La solución se obtiene determinando el estado de las señales de control (J y K) de los flip-flops
antes de cada pulso como en el problema 7.9. Obsérvese que la salida A sirve como el reloj del flip-flop
C. Los resultados se muestran en la tabla 8.7.

Tabla 8.7
Pulso A B C JA (=B') KA JB (=A) KB (=C) JC(=B) KC

0 0 0 0 1 1 0 0 0 1
1 1 0 0 1 1 1 0 0 1
2 0 1 0 0 1 0 0 -j 1
3 0 1 0 0 1 0 0 1 1

El circuito se detiene después del segundo pulso de reloj puesto que las entradas JK al flip-flop
A demandan que A = 0 (estado en el que ya se encuentra), las entradas JK en 00 para el flip-flop B
indican la condición actual. No hay transición de la señal de reloj en el flip-flop C puesto que A no
ha cambiado.

8.10 Una vez más asumiendo el borrado inicial, dibújese el diagrama de microtemporización para
las salidas de los flip-flops B y C en el problema 8.9. Asúmase que cada flip-flop tiene un
retardo de una unidad correspondiente a las marcas gruesas en la forma de onda de la figura
8-24.
Las formas de onda se pueden inferir a partir de la tabla 8.7 donde se ve que C permanece en 0
lógico y se presenta un cambio en la salida B en el segundo pulso de reloj. Esta transición presenta
un intervalo de retardo siguiente al flanco de bajada del pulso de reloj, como se muestra en la figura
8-25.

Fig. 8-25
COMBINACIONES DE FLIP-FLOPS 299

8.11 Asumiendo que los flip-flops en la figura 8-26 inicialmente están borrados, determínese la
secuencia de conteo (estados secuenciales de las salidas ABC, a medida que se aplican los
pulsos de reloj).

Fig. 8-26

Asúmase que el circuito responde a los flancos de bajada del reloj. Como en el problema 8.2, tabú-
lense las entradas JK después de cada pulso para determinar el siguiente estado de cada flip-flop (tabla
8.8). Puesto que el flip-flop B se dispara a partir de C, B sólo cambiará al estado siguiente con una
transición de 1 a 0 en la salida C, sin considerar sus entradas JK. Por lo tanto, el estado de C se debe
analizar primero. El circuito cuenta de 0 a 4 y se repite.

Tabla 8.8

Es interesante observar que si se intenta iniciar el contador sin borrarlo a 000, hay dos estados
iniciales donde el circuito está esencialmente bloqueado y no responderá a los pulsos de reloj. El prime-
ro de dichos estados es ABC = 110. En este caso, JK = 00 para los flip-flops A y C (no se presentará
ningún cambio), y puesto que B no puede cambiar de estado a menos que haya una salida de C, el
circuito permanecerá estático. El segundo caso es ABC = 111. Aquí, las entradas del flip-flop A son
JK = 10, las cuales se programan para un estado en el que el flip-flop ya está. El flip-flop C tiene
JK = 00, lo que indica que no se presentará cambio en C, y consecuentemente, en B tampoco de modo
que el circuito no empezará a contar.
El único estado remanente fuera de la progresión de la cuenta normal que se muestra en la tabla
8.8 es ABC = 101. Es fácil mostrar que iniciar desde este estado, el circuito entrará a su secuencia
normal de conteo en 001 después de un pulso de reloj. El comportamiento de la secuencia de conteo
del circuito se puede presentar en un diagrama como se muestra en la figura 8-27.
300 COMBINACIONES DE FLIP-FLOPS

Fig. 8-27

8.12 Un término empleado en relación con la salida de un multiplicador de tasa es asincronismo.


Este término se refiere a la razón de la máxima y mínima separación entre los pulsos. En-
cuéntrese el asincronismo del multiplicador de tasa de la figura 8-8 cuando multiplica por
5/16 y 11/16, respectivamente.
Cuando la relación es 5/16, G1 y G4 estarán activas y se insertará un pulso de G1 entre los pulsos
de G4. En la figura 8-28 se ve que se presentará un pulso de G1 exactamente a la mitad entre un par
de pulsos de G4. Si el periodo del pulso es T, el espaciamiento entre los pulsos de G4 es 4T y el espa-
ciamiento entre un pulso de G1 y uno adyacente de G4 es la mitad de éste, o 2T. De este modo, el asin-
cronismo es 4T/2T = 2.

Fig. 8-28

Para una multiplicación de 11/16, los pulsos vienen de G8 con la adición de pulsos espaciados de
G2 y G1. El máximo espaciamiento es entre dos pulsos consecutivos de G8, o 2T; el mínimo espacia-
miento es la distancia entre dos pulsos de entrada consecutivos, o T. Una vez más el asincronismo es 2.

8.13 Considérese el registro de aseguramiento de la figura 8-2. Supóngase que los datos en las líneas
de entrada A a D están cambiando a razón de 2 MHz, mientras que el registro licnt una señal de
reloj de 10 MHz. Calcúlese el tiempo medio entre fallas metaestables usando Tw = 0.5 s y
TR = 0.75 x 109 s -1. Repítase el cálculo para el caso donde TR se decrementa por un orden de
magnitud.
COMBINACIONES DE FLIP-FLOPS 301

Empleando la ecuación para el MTBF de la sección 7.10,

donde Fdk = 10 7 s -1
Fdatos = 2 x 106 a-1
∆t = 10-7 s (el periodo del reloj)
MTBF = 3.73 x 10 19 s y, para todo propósito práctico no hay comportamiento metaestable.
En el segundo caso, TR = 0.75 x 108 s-1, MTBF = 1.8 x 10 -10 = 0.18 ns y, el comportamiento
metaestable es ahora un serio problema. Obsérvese la sensibilidad de la razón de falla debida al
parámetro T R, el cual depende de la tecnología.

8.14 Al circuito que se muestra en la figura 8-29 se le denomina generador de secuencias


binarias pseudoaleatorio (PRBS). Antes de cualquier pulso de reloj se aplica un pulso que va
del estado alto al bajo. Después de aplicar la señal de reloj, muéstrese que el registro cambia a
través de todos los posibles estados (excepto 0000) antes de repetirse. La generación de esa
secuencia determina que el circuito funcione como un generador PRBS de máxima
longitud.

Fig. 8-29

El pulso de inicialización fija al flip-flop A y borra al resto de los flip-flops de modo que el estado
inicial es ABCD = 1000. Antes de cada pulso de reloj, se examinan las salidas de las compuertas XOR
y se determinan las entradas D como sigue:

DA = QD
DB = QA ⊕ QD
DC = QB
DD = QC
302 COMBINACIONES DE FLIP-FLOPS

Estos valores son los que tendrán los flip-flops después de cada pulso de reloj, dando como resul-
tado la secuencia que se lista en la tabla 8.9. Obsérvese, por ejemplo, que después de tercer pulso de
reloj, el 1 lógico en la salida del flip-flop D hace que las entradas DA y DB sean iguales a 1 y que estos
valores se transfieren a las salidas A y B en el pulso 4. Después del séptimo pulso, donde A y D son
igual a 1 lógico, la compuerta Gi tiene una salida 0 la cual se refleja en el valor de B igual a 0 en el
pulso 8.

Tabla 8.9
Pulso A B C D Pulso A B C D

0 1 0 0 0 8 1 0 1 0

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

Puesto que transcurren quince pulsos antes de que se repita la secuencia, el circuito es un genera-
dor PRBS de máxima longitud. Un diagrama de tiempos como resultado de una simulación se muestra
en la figura 8-30 donde se ha escogido arbitrariamente un estado ABCD = 1000 para ilustrar la acción
del reset.

Fig. 8-30

8.15 El circuito que se muestra en la figura 8-31 representa una forma alternativa de un generador
PRBS. Se puede considerar al sumador módulo-2 como un circuito que verifica la paridad
de sus entradas y produce un 1 en su salida cuando la paridad es impar. El registro de corri-
miento no se muestra con detalle; en su lugar, sus cinco etapas se representan mediante blo-
ques a partir de los cuales las señales se conectan a una compuerta AND y se alimentan de
regreso al sumador asumiendo que se toman de las salidas Q de los flip-flops comprendidos
en las etapas.
COMBINACIONES DE FLIP-FLOPS 303

Si el registro está cargado inicialmente con 10000, muéstrese que el circuito funciona
como un generador PRBS de máxima longitud, como se definió en el problema 8.14, y que
la salida de la compuerta AND produce 1s con una probabilidad igual a 8/31.
Considérese que las etapas del registro de corrimiento de izquierda a derecha son ABCDE. El esta-
do después de cada pulso de reloj se muestra en la tabla 8.10.
Puesto que se toman 31 ciclos de reloj para repetir la secuencia, se ve que el circuito es un genera-
dor PRBS de máxima longitud, y puesto que se producen ocho 1 s por cada 31 pulsos de reloj, la proba-
bilidad de tener un 1 a la salida es de 8/31.

Fig. 8-31
Tabla 8.10
Reloj ABCDE Salida Reloj ABCDE Salida

0 10000 0 16 11110 1
1 01000 0 17 11111 1
2 10100 0 18 01111 1
3 01010 1 19 00111 0
4 10101 0 20 10011 0
5 11010 1 21 11001 0
6 11101 0 22 01100 0
7 01110 1 23 10110 0
8 10111 0 24 01011 1
9 11011 1 25 00101 0
10 01101 0 26 10010 0
11 00110 0 27 01001 0
12 00011 0 28 00100 0
13 10001 0 29 00010 0
14 11000 0 30 00001 0
15 11100 0 31 10000 0
304 COMBINACIONES DE FLIP-FLOPS

Problemas suplementarios
8.16 Para el multiplicador de tasa binario de la figura 8-8, determínense las formas de onda de las salida
para C1 C2 C4 C8 = 1001.

8.17 Repítase el problema 8.16 empleando C1 C2 C4 C8 = 1011.

8.18 Un estudiante decide emplear la salida de una compuerta de reconocimiento para inicializar un conta-
dor de propagación a 0000 después de que éste alcanza la cuenta de seis, como se muestra en la figura
8-32. Los flip-flops elegidos se disparan con una transición del reloj de 0 a 1 y se borran mediante la
entrada de reset en estado bajo. Cuando se construye el circuito algunas veces opera como se deseaba
originalmente y otras veces comienza, cuando se enciende, en una cuenta aleatoria. ¿Cuál es la error
en el diseño?

Fig. 8-32

8.19 Rediseñese el circuito del problema 8.18 empleando una señal de reset adicional para inicializar el con-
tador a 0. Evalúese su diseño con un diagrama de microtemporización.

8.20 El circuito en la figura 8-33 se conoce como un autómata celular. Muéstrese que funciona como un
generador PRBS de máxima longitud (véase el problema 8.14).

8.21 El diseño que se muestra en la figura 8-34 se ha estudiado previamente en el problema 7.8 donde
se estableció que los flip-flops T se disparaban con el flanco de bajada y el flip-flop D con el flanco
de subida. Se quiere modificar el circuito de modo que cuando ABC = 011, la operación se congele
en este estado hasta que se presente un borrado manual. Implántense los flip-flops toggle con JKs y
em-pléese una compuerta de reconocimiento de dos entradas para alcanzar el desempeño deseado.
De muéstrese la operación con un diagrama de tiempos.
COMBINACIONES DE FLIP-FLOPS 305

Fig. 8-33

Fig. 8-34

8.22 Un estudiante quiere diseñar un circuito que cuente de 0 (0000) a 9 (1001) y que se inicialice a sí mismo
a 0000 en el décimo pulso de reloj. Se combina un contador de propagación con una compuerta de
reconocimiento y un inversor para llevar a cabo esta función. Consúltese la figura 8-35, en la cual se ve
que cuando se alcanza la cuenta de 9, los flip-flops A y D son simultáneamente ls para la primera
306 COMBINACIONES DE FLIP-FLOPS

vez de la secuencia y estas señales se emplean para primar una compuerta AND y así guiar al siguiente
pulso de reloj hacia la línea de reset. Dibújese el diagrama de microtemporización y coméntese sobre
la operación del circuito.

Fig. 8-35 Los flip-flops se disparan con flanco de bajada

Fig. 8-36
COMBINACIONES DE FLIP-FLOPS 307

Fig. 8-37

8.23 Modifíquese el diagrama del problema 8.22 de modo que funcione como un circuito divisor entre 10
en el que la línea de reset sirva como una salida que produce un pulso por cada 10 pulsos de reloj.
Valídese el diseño con una carta (diagrama) de tiempos.

8.24 Modifíquese el circuito de la figura 8-45 en la página 311 para acondicionar los flip-flops de manera
que las entradas set y reset se activen con el estado ALTO en lugar de que lo hagan con el estado BAJO.

8.25 ¿Tiene algún efecto significativo en el diagrama de tiempos el cambio en hardware que se hizo en el
problema 8.24?

8.26 Diséñese un contador Mobius de 10 estados y agregúese una compuerta de reconocimiento para identi-
ficar los estados 3 y 7.

8.27 Valídese la operación del circuito de la figura 8-49 con un diagrama de tiempos dibujado para flip-
flops que se disparan con el flanco de subida. Asúmase que el contador está inicialmente borrado.
308 COMBINACIONES DE FLIP-FLOPS

8.28 Diséñese un contador de propagación binario de 10 estados con las apropiadas compuertas de recono-
cimiento para identificar los estados 3 y 7.

8.29 Establézcase cómo se deben interconectar una cadena de flip-flops JK para que actúen como un regis-
tro de corrimiento de n etapas que recorra los datos a la derecha cuando la señal de control R = 1
y a la izquierda cuando R = 0.

8.30 Asumiendo que el circuito que se muestra en la figura 8-36 está inicialmente borrado en 0000, determí-
nese la secuencia de conteo si D es el bit más significativo.

8.31 Repítase el problema 8.30 cuando la cuenta inicia a partir de número binario 1111.

8.32 Las entradas de un registro con flip-flops D se manejan a partir de la lógica que se muestra en la figura
8-37. Asumiendo que los flip-flops se borran en t = 0, determínese la secuencia de conteo.

Respuestas a los problemas suplementarios


8.16 Véase la figura 8-38 (diagrama de microtemporización).

Fig. 8-38

8.17 Véase la figura 8-39.

Fig. 8-39

8.18 No hay un medio para la inicialización del circuito y, en la energización, éste puede asumir cualquier
cuenta desde 0 (0000) hasta 15 (1111).

8.19 Una versión modificada del circuito se muestra en la figura 8-40 en el cual se han resaltado las adiciones
hechas. El reset se puede forzar ya sea por la compuerta de reconocimiento o por la seflal de inicializa-
ción. El diagrama de microtemporización se obtiene mediante simulación (véase la figura 8-41). Obsér-
vese que el estado 6 existe solo el tiempo suficiente para que se reconozca su valor, propagándose a
través de las compuertas AND y ÑOR, y le da reset al contador de propagación. Esto puede ser un
serio problema, particularmente con un reloj de alta frecuencia, y el diseñador debe tomar esto en
cuenta.
COMBINACIONES DE FLIP-FLOPS 309

Fig. 8-40

Fig. 8-41

8.20 Como se parte de un estado diferente de cero, asúmase que ABCD = 1000. La secuencia
conforme al reloj se muestra en la tabla 8.11, lo cual toma 15 pasos antes de que se repita el ciclo.
Por lo tanto es de máxima longitud para cuatro flip-flops.

Tabla 8.11

8.21 Véanse las figuras 8-42 y 8-43. Los comentarios sobre este problema se pueden encontrar en el apén-
dice C.
310 COMBINACIONES DE FLIP-FLOPS

Fig. 8-42

Fig. 8-43

8.22 Véase la figura 8-44. El mismo pulso de reloj que activa al reset también avanza la cuenta a 1,
saltándose la cuenta 0. Puesto que se genera un pulso de reset para cada nueve pulsos de reloj, el
contador hace un excelente circuito divisor entre 9.
COMBINACIONES DE FLIP-FLOPS 311

Fig. 8-44

8.23 Véanse las figuras 8-45 y 8-46.

Fig. 8-45

Fig. 8-46
312 COMBINACIONES DE FLIP-FLOPS

8.24 Véase la figura 8-47 y refiérase al problema 4.39.

Fig. 8-47

8.25 Comparando los diagramas de microtemporización de las figuras 8-46 y 8-48, en los dos casos se ve
que los circuitos permanecen en la cuenta de 10 durante algo más de medio ciclo de reloj antes de reini-
ciar en 0. El pulso de reset es más angosto que un intervalo de retardo de propagación en el segundo
caso, y si se incrementa lo suficiente la frecuencia del reloj, se presentará un problema de metaestabili-
dad.

Fig. 8-48
COMBINACIONES DE FLIP-FLOPS 313

8.26 Véase la figura 8-49. Obsérvese que las compuertas de dos entradas son adecuadas.

Fig. 8-49

8.27 Véase la figura 8-50.

Fig. 8-50

8.28 Véase la figura 8-51.

8.29 Las ecuaciones acopladas son Jn = RQn-1 + R'Qn + 1 y Kn = RQ'n-1 + R Qn + 1- Una implantación
de este arreglo se muestra en la figura 8-52, que se debe comparar con el circuito de la figura 8-4.

8.30 Comenzando a partir de cero, la cuenta en decimal alterna continuamente como sigue 1,2, 1,2, ...

8.31 La cuenta en el decimal es 15, 1, 2, 1, 2, ...

8.32 La cuenta en decimal es 0, 3, 7, 10, 14, 1, 5, 8, 12, 15, 0 (y se repite).


314 COMBINACIONES DE FLIP-FLOPS

Fig. 8-51

Fig. 8-52
Capítulo 9
Aplicación de dispositivos específicos
9.1 INTRODUCCIÓN

Hay muchas aplicaciones para la lógica digital donde el mercado no es lo suficientemente grande
para desarrollar un chip MSI o LSI de propósito especial. Sin embargo, el mercado total para dispo-
sitivos a la medida de todas las clases es muy grande. Esta situación ha conducido al desarrollo de
dispositivos lógicos programables (PLD), los cuales se pueden producir en grandes volúmenes y
configurar fácilmente por el propio usuario para aplicaciones especializadas.
Los dispositivos lógicos programadles (PLD) se pueden dividir en dos grandes categorías. La
primera, circuitos en los cuales la programación para una aplicación específica causa un cambio
físico en el dispositivo, se discutirá en este capítulo. La segunda, en la cual las funciones lógicas
se controlan mediante señales electrónicas, se discute en el capítulo 11.
Otro enfoque al mercado de circuitos integrados a la medida es la creación de una biblioteca
estándar de componentes que se puedan fabricar directamente sobre silicio. Esta biblioteca, fácil
de leer por una computadora, contiene información de fotolitografía necesaria para fabricar los
componentes y las reglas de diseño para interconectarlos. Se combinan un poderoso hardware
(computadora) y el software para crear un chip de silicio a la medida del usuario. Este enfoque pro-
duce circuitos que se denominan circuitos integrados a la medida o, de manera más general, circui-
tos integrados de aplicación especifica (ASIC).
Obsérvese que los PLD mencionados son también dispositivos de aplicación específica. En ge-
neral, la distinción entre algunos de los tipos se hace con base en la estructura incorporada por el
vendedor, la naturaleza de la técnica de programación requerida, la capacidad para borrar lo pro-
gramado y el tiempo necesario para hacer esto último.

9.2 TECNOLOGÍAS DE PROGRAMACIÓN

Se emplean varias técnicas para implantar la lógica programada:

Enlaces de fusible
En este caso, la lógica se construye con todas las posibles conexiones internas preestablecidas du-
rante la fabricación pero determinadas por el usuario. Estas conexiones se crean con un material
fusible, y el dispositivo para una aplicación específica se hace mediante el quemado de los fusibles
sobre las conexiones que requieren removerse. El chip se diseña para que permita el paso a corrien-
tes relativamente altas a través de enlaces de fusibles específicos seleccionados por el usuario durante
el proceso de programación. Obviamente, este método de programación no es reversible.

315
316 APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS

Programación borrable mediante luz ultravioleta (UV)


Los dispositivos se fabrican con todos los posibles lugares de conexión elegidos por el usuario pero
sin conectar. Estos lugares se pueden activar de manera selectiva durante la programación mediante
la aplicación de voltajes apropiados a los pares de conductores direccionados los cuales se intersec-
tan en cada punto de conexión deseado. Para establecer la conexión los voltajes crean "paquetes
de carga" estables en el silicio. En los dispositivos que se borran mediante luz ultravioleta, los en-
capsulados del circuito integrado tienen una pequeña ventana localizada sobre el chip lo que permi-
te que éste sea expuesto a luz ultravioleta, lo que hace que los paquetes de carga que forman la cone-
xión se drene, "disolviéndolos". Aproximadamente 10 minutos de exposición a la luz ultravioleta
de la intensidad adecuada borrará totalmente al dispositivo dejándolo listo para su reprograma-
ción.

Programación borrable electrónicamente

Hay muchas situaciones donde es necesario un borrado más rápido que el de 10 minutos. En este
caso, el borrado se puede llevar a cabo electrónicamente que es, en esencia, un proceso inverso al
de programación. En algunos dispositivos de este tipo es posible borrar de manera selectiva sólo
una parte del dispositivo, en tanto que en otros, se debe borrar todo el chip. El borrado electrónico
de alta velocidad se conoce borrado "flash" y se puede llevar a cabo en segundos.
En lo que respecta al usuario, los procesos de programación para dispositivos borrables y de
enlaces de fusibles son en escencia los mismos.

9.3 PROMS Y EPROMS

La memoria sólo para leer programable (PROM) es un dispositivo programable con una estructura
específica. Es una ROM (véase la sección 5.4) en la cual el usuario controla las conexiones a las
entradas de las compuertas OR. Se tienen estos dispositivos en diferentes modalidades (versiones),
con enlaces de fusibles (PROM), borrables con luz ultravioleta (EPROM) y borrables electrónica-
mente (EEPROM). Todas las PROM contienen un decodificador completo cuyas salidas se
construyen de tal modo que es posible establecer una conexión entre cada una de éstas y la entrada
de cualquiera de las compuertas OR. La estructura se muestra en la figura 9-1.
El decodificador completo con N bits para la dirección puede producir una señal en cualquiera
de sus 2N líneas de salida, de modo que cuente para cada renglón de la tabla de verdad. Puesto que
las entradas a la lógica sirven como bits de direcciones y el decodificador tiene 2N líneas de salida
para N bits en la dirección, cada vez que se agrega una nueva entrada lógica, el tamaño del decodifi-
cador se duplica. Las PROM no son particularmente útiles para la implantación de lógicas que re-
quieren un gran número de entradas debido a que se necesitaría un área de silicio muy grande para
el decodificador. Además, la estructura no le permite al diseñador aprovechar las ventajas de las
condiciones "no importa". La mayor aplicación de las ROM, PROM, EPROM, etcétera, es el al-
macenamiento de instrucciones para aplicaciones en computadoras más que la implantación de ló-
gica. Las PROM generalmente se programan determinando el patrón de interconexión deseado y
tratándolo como un grupo de números hexadecimales que serán almacenados en la memoria.
APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS 317

SALIDAS
Representa un punto de conexión que se
selecciona por el usuario.
Fig. 9-1 Arquitectura de una PROM (N = 3)

Para programar una PROM o EPROM es necesario un programa de computadora y de un


"quemador de PROM", el cual se conecta a un puerto de la computadora programada o terminal.
Normalmente se logra tratando a las conexiones de las compuertas OR como números binarios (un
1 representa la conexión y un 0 la desconexión o no conexión). El programa de una PROM o
EPROM es sólo una lista de números hexadecimales que representan los patrones de conexión en
los que éstos se deben cargar. Los datos del programa se ingresan a través de un teclado, y el softwa-
re los convierte en un conjunto de señales eléctricas las cuales se envían mediante la computadora
al quemador de PROM el cual, a su vez produce el patrón de conexión previamente creado.

EJEMPLO 9.1 Prográmese una EPROM para convertir un número binario de 4 bits en su equivalente en código
Gray. La situación contraria de este problema y la tabla de verdad apropiada se muestran en el problema 5.8.
Estrategia: Trátese al dispositivo como una tabla de definición de teclas en la cual los dígitos binarios se
emplean como direcciones específicas cuyo contenido son los números en código Gray correspondientes. Las
conexiones se muestran en la figura 9-2. El programa realmente empieza en la dirección 0000 y se lista en hexa-
decimal como 0, 1, 3, 2, 6, 7, 5, 4, C, D, F, E, A, B, 9, 8.
318 APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS

CONECTAR

NO CONECTAR

SALIDAS
Fig. 9-2 PROM programada para la conversión de código binario a Gray

9.4 ARREGLOS LÓGICOS PROGRAMARLES (PAL®*)

El PAL es un dispositivo programable especialmente útil en aplicaciones donde hay un número re-
lativamente grande de entradas y, al mismo tiempo, un número significativo de restricciones sobre
ellas. Estas restricciones sirven para crear términos "no importa", lo que significa que un número
de los renglones de la tabla de verdad no necesita ser implantado.
Como en el caso de las ROM, la estructura básica es tal que las compuertas AND manejan
a las compuertas OR. En un circuito integrado PAL, las entradas de las compuertas OR están co-
nectadas previamente a un número limitado de compuertas AND, dando libertad al diseñador para
elegir sólo las entradas de las compuertas AND. Con frecuencia esta restricción es aceptable puesto
que sólo se necesita un número limitado de conexiones a las compuertas OR gracias a la presencia
de los términos "no importa". Puesto que las entradas a la lógica se pueden presentar ya sea en
forma directa o invertida (lógicamente), se cuenta internamente con los medios para producir la
inversión lógica.

*PAL es marca registrada por Advanced Micro Devices, Inc.


APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS 319

Algunos dispositivos PAL se hacen sólo con elementos combinacionales (compuertas AND,
OR e inversores), en tanto que otros contienen algunos flip-flops de modo que se puede ubicar una
pequeña máquina de estado (capítulo 10) completa en un solo chip. En la figura 9-3 se muestra la
arquitectura genérica de un tipo de PAL que contiene flip-flops. Obsérvese que algunas de las entra-
das de las compuertas AND vienen directamente de las terminales externas del chip, en tanto que
otras se realimentan de los flip-flops internos. Las salidas de las compuertas OR se pasan ya sea
directamente a las terminales de salida externas (no registradas) o a través de los flip-flops de asegu-
ramiento (registradas). El diseñador elige la configuración deseada de acuerdo con las compuertas
AND que se van a usar y las que se van a excluir. En casos donde se realimentan señales de los flip-
flops, éstas se proporcionan ya sea en forma directa o invertida.
En la figura 9-4 se muestra la estructura interna de un dispositivo comercial (el PAL16R6, fa-
bricado por Advanced Micro Devices, Inc.). Contiene ocho compuertas OR, cada una de las cuales
se maneja mediante un conjunto de 8 compuertas AND de las 64 con las que cuenta el dispositivo.
Cada una de las compuertas AND tiene 32 posibles conexiones de entrada que el usuario puede
seleccionar. Algunas de las salidas de las compuertas OR están registradas (pasan a través de flip-
flops), mientras que otras no. Todas, sin embargo, se pueden realimentar a las entradas de las com-
puertas AND. Hay seis flip-flops D, como lo indica el último dígito del número de parte.
El chip 16R6 emplea elementos de acoplamiento (buffers) TRI-STA TE® (véase la figura 8-12)
que sirven como interruptores, controlados mediante una señal de habilitación, que conecta o des-
conecta (aisla) de manera selectiva su terminal de salida asociada de cualquier circuito al que esté
unida.
En la figura 9-5 se muestra otro símbolo, empleado en el diagrama del 16R6, Este símbolo es
un medio muy sencillo de señalar un amplificador de una sola entrada y dos salidas. Una salida
está invertida (como se indica mediante la burbuja) y la otra no.

Programación del dispositivo PAL


El dispositivo PAL se programa empleando un avanzado software de ingeniería asistida por com-
putadora y un hardware denominado quemador de PAL unido a la computadora o terminal. La
estructura interna de un circuito integrado de un PAL, con compuertas AND que manejan a las
compuertas OR, se presta para la programación de información expresada mediante ecuaciones
booleanas básicas que se obtienen de una tabla de verdad. Son muchos los lenguajes de programa-
ción especializados para programar los dispositivos PAL. Uno de los primeros es el llamado
PALASM.®* Este dispositivo está basado en la notación de lógica positiva y emplea entradas boo-
leanas de manera muy efectiva. En este lenguaje, los símbolos de las operaciones lógicas se modifican
para que sean útiles en un teclado general. En seguida se proporciona una pequeña lista (no está
completa) de los símbolos para las operaciones, en orden de precedencia:

; Comentario
/ Inversión lógica o activo BAJO
* AND lógica
+ OR lógica
:+: OR exclusiva
:*: Coincidencia (OR exclusiva invertida)

*PALASM® es una marca registrada de Advanced Micro Devices, Inc.


320 APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS

Fig. 9-3 Arquitectura general de un dispositivo PAL. Las compuertas OR se conectan a un subconjunto de
compuertas AND cuyas entradas son elegidas por el usuario

= Igualdad (operador de la ecuación de salida combina-


cional)
:= Operador de la ecuación de salida registrada
Si se desea ingresar la ecuación booleana F = AB' + CD + (B + C ') ', se usa primero el teore-
ma de De Morgan para convertir la ecuación a la forma de compuertas AND-OR (suma de produc-
tos) requerido por el software PAL ASM. Se aplica la sintaxis que se definió previamente, para obte-
ner:
APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS 321

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

Fig. 9-4 Diagrama lógico del PAL16R6. (Derechos reservados © 1991 por Advanced Micro Devices, Inc.
Publicado aquí con permiso del propietario de los derechos. Todos los derechos reservados.)
322 APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS

F = AB' + CD + B'C AND-OR


F = A*/B + C*D + /B*C PALASM Sintaxis del software PALASM

Si la salida F va a pasar a través de flip-flops, el signo de igual debe estar precedido por dos puntos.

Fig. 9-5 Amplificador con dos salidas

Consideraciones de los valores verdaderos en la terminal de salida


Al inspeccionar el diagrama del circuito PAL16R6 en la figura 9-4, se descubre que la lógica,
en la forma de suma de productos, se produce mediante la red de compuertas AND conectadas a
las compuertas OR, las cuales manejan a las entradas D de los flip-flops correspondientes. La llega-
da de un pulso de reloj transfiere los valores a las salidas Q, que están, a su vez, conectadas a las
terminales de salida a través de los amplificadores inversores. De esta manera el valor verdadero
en cada una de las terminales de salida es el opuesto al asociado con la salida Q del flip-flop de
donde proviene. Al designar una terminal bajo-VERD ADERO, se establece que Q esté definida co-
mo alto-VERDADERO y la entrada del flip-flop D se debe manejar mediante una suma de produc-
tos de cobertura de 1s. Si, por otra parte, como en el ejemplo 9.2 siguiente, las terminales de salida
se designan como alto-VERDADERO, entonces las burbujas se pueden balancear solamente me-
diante la adición de una inversión lógica lo que significa que Q (y por lo tanto D) se deben manejar
a partir de la ecuación invertida lógicamente, o de manera equivalente, por una cobertura de Os.
Con frecuencia, los procedimientos de diseño lógico producen ecuaciones booleanas corres-
pondientes a una cobertura de 1s para la suma de los productos (para algunos ejemplos véase el
capítulo 10). Si el diseñador desea aceptar la salida en la forma bajo-VERD ADERO (es decir, las
terminales designadas mediante /X), entonces las ecuaciones booleanas de diseño se pueden conver-
tir directamente a la forma de PALASM empleando las relaciones que se presentaron previamente
en esta sección. Sin embargo, si se requieren salidas alto-VERDADERO, es necesario utilizar las
expresiones booleanas invertidas. En muchas versiones del software PALASM, esto se puede hacer
simplemente poniendo paréntesis en todas las ecuaciones, precedido por la diagonal (/). Con excep-
ción del ejemplo 9.2, en todos los problemas en este libro que involucran al PAL16R6 o PAL16R8
se asumirá que todas las terminales de salida se especifican como bajo-VERD ADERO de modo que
las ecuaciones booleanas de diseño se pueden convertir directamente a la sintaxis de PALASM.
Es importante observar que no todos los dispositivos PAL están acoplados a las terminales de
salida a través de amplificadores inversores. Además, hay muchas otras maneras en las que las ecua-
ciones de diseño se pueden implantar en un PAL empleando el software PALASM. Para más deta-
lles, se aconseja al lector consultar un manual de PALASM

EJEMPLO 9.2 Programación de un sumador binario con salidas registradas en el PAL16R8. La tabla de
verdad, inicialmente descrita en la sección 2.4, se muestra en la tabla 9.1, y las ecuaciones para las variables,
suma y acarreo de salida, en la forma que las requiere PALASM, son
APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS 323

F = /X*/Y*Ci + /X*Y*/C i + X*/Y*/C i + X*Y*C i


Co = /X*Y*C i + X*/Y*C i + X*Y*/C i + X*Y*C i

Aquí, la salida SUMA está dada por F y el acarreo de salida por Co.

Tabla 9.1
ENTRADAS SALIDAS
X Y Ci F Co

0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

Siguiendo las reglas más sencillas de sintaxis, el diseñador representa un archivo fuente para el programa
PALASM empleando cualquier procesador de texto. Este archivo define las variables, especifica las relaciones
booleanas y asigna los números a las terminales, como se muestra en la figura 9-6. El programa no toma en
cuenta cualquier línea que inicie con punto y coma; su función es para aclarar y documentar. Las primeras
líneas son la documentación de las entradas y salidas. Las líneas que siguen a las que inician con la designación
PINS se emplean para asignar los números de las terminales del chip y se deben ingresar en secuencia. Todas
las terminales se deben tomar en cuenta, de tal forma que NC se usa para indicar la ausencia de conexión.
Las ecuaciones booleanas se ingresan después empleando la sintaxis de PALASM.
La porción de simulación del archivo de entrada provee las instrucciones para que el software simule la
operación del circuito y lo verifique contra las especificación en forma booleana. El comando SETF indica
al programa que las variables de entrada que se listan después de esta palabra clave son las que se van a aplicar.
La primera entrada de simulación SETF/OE indica que se va a aplicar una entrada LT a los buffers
TRI-STA TE®, deshabilitando de esta manera a las salidas (Output Enable). El comando CLOCKF se emplea
para indicar que se aplica un pulso de reloj a todas las terminales que se especifican después del comando.
En este ejemplo sólo se aplica a una terminal denominada CLK. La simulación avanza un paso a la vez, des-
pués de que se aplica el pulso de reloj sigue el conjunto de entradas correspondiente a la tabla de verdad de
entrada.
Cuando se corre el programa, una simulación exitosa se indica mediante los mensajes: "No errors", "No
warnings" y "File processed successfully".
Los resultados de la simulación se almacenan en un archivo denominado ADDER.HST, que se muestra
en la figura 9-7. Cada una de las columnas verticales representa un intervalo de tiempo (como en el diagrama
de microtemporización). La letra "c" indica al comando CLKF y "g" al comando SETF. La acción del reloj
se lleva a cabo en tres pasos: Primero, el voltaje en la terminal del reloj sube; después los nuevos valores en
las terminales de salida se registran (graban). Por último, el voltaje en la terminal del reloj se baja. Cada co-
lumna contiene valores altos (H), bajos (L) o indefinidos (X) en cada una de las terminales que resultan de
los comandos de la simulación.
324 APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS

EXAMPLE PDS FILE FOR PALASM USING BINARY BIT ADDER

TITLE A D DE R
PATTERN A
REVISIÓN 1
A U TH O R JIM SWATCH
COMPANY RIT
DATE MAY 1992
CHIP ADDER PAL16R8
;PINS 1 2 3 4 5 6 7
CLK X Y CI NC NC NC
;PINS 8 9 10 11 12 13 14
NC NC GND OE NC NC NC
;PINS 15 16 17 18 19 20
NC NC NC F CO VCC
EQUATIONS
/F:=/X*/Y*/CI+/X*Y*CI+X*/Y*CI+X*Y*/CI ;SINCE THE OUTPUTS FROM
;THE PAL16R8 ARE INVERED,
/CO:=/X*/Y*/CI+/X*/Y*CI+/X*Y*/CI+X*/Y*/CI ;WRITE THE EQUATIONS FOR
;THE ZERO TERMS NOT THE ONES.
SIMULATION
SETF /OE ;THIS ENABLES THE OUTPUTS
CLOCKF CLK ;GENERATES A CLOCK PULSE
SETF /X /Y /CI ;THIS FIRST LINE OF THE
C L OC K F CL K ;TRUTH TABLE
SETF /X /Y CI
CLOCKF CLK
SETF /X Y /CI
C L OC K F CL K
SETF /X Y CI
CLOCKF CLK
SETF X /Y /CI
CLOCKF CLK
SETF X /Y CI
CLOCKF CLK
SETF X Y /CI
CLOCKF CLK
SETF X Y CI
CLOCKF CLK
Fig. 9-6
PALASM89 PLDSIM - DEVELOPEMENT VERSIÓN (26-SEP-1989)
(C) - COPYRIGHT ADVANCED MICRO DEVICES INC., 1989
PALASM SIMULATION HISTORY LISTING

Title : ADDER Pattern : A Author JIM SWATC


Revisión : 1 Company RIT
Date MAY 1992
PAL16R8
Page : 1
g cg cg cg cg cg cg cg cg c
CLK XHHLLHHLLHHLLHHLLHHLLHHLLHHLLHHLLHHL
X XXXXLLLLLLLLLLLLLLLLHHHHHHHHHHHHHHHH
Y XXXXLLLLLLLLHHHHHHHHLLLLLLLLHHHHHHHH
CI XXXXLLLLHHHHLLLLHHHHLLLLHHHHLLLLHHHH
GND LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
OE LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
F XXXXXXLLLLHHHHHHHHLLLLHHHHLLLLLLLLHH
CO XXXXXXLLLLLLLLLLLLHHHHLLLLHHHHHHHHHH
VCC HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
Fig. 9-7 (Derechos reservados © 1991 por Advanced Micro Devices, Inc. Publicado aquí con permiso del
propietario de los derechos. Todos los derechos reservados.)

El patrón de fusibles se almacena en un archivo denominado ADDER_ex.XPT, el cual se muestra en la


figura 9-8. Aquí, el índice horizontal va de 0 a 31 y está asociado con las columnas de datos numeradas que
se muestran en el diagrama del circuito de la figura 9-4. El índice vertical va de 0 a 63, cada línea corresponde
a una compuerta AND en el diagrama del circuito. Los fusibles quemados (sin conexión) se indican mediante
un guión (-) y las conexiones mediante (X). Las compuertas que no se utilizan muestran todos los fusibles
sin quemar. En este ejemplo, las compuertas AND de la 0 a la 3 y de la 8 a la 11 se emplean para lógica, mien-
tras que las otras compuertas AND se mantienen en 0. Las conexiones reales del circuito se pueden trazar en
relación con los índices y al diagrama de la figura 9-4.

9.5 ARREGLOS LÓGICOS PROGRAMADOS (PLA)

El PLA proporciona más libertad a los diseñadores gracias a que se pueden hacer las conexiones
tanto de los arreglos de compuertas AND como los de compuertas OR. Este dispositivo combina
la libertad de las compuertas AND del circuito integrado PAL con la de las compuertas OR de una
PROM. Los arreglos lógicos programados con frecuencia contienen en la misma pastilla flip-flops
para salidas registradas y/o realimentación de variables. Un diagrama lógico general se muestra en
la figura 9-9.
Como en el caso del dispositivo PAL, el PLA contiene entradas de datos en forma directa y
complementada. La capacidad para controlar las conexiones a las entradas de las compuertas OR
da al diseñador un grado de libertad adicional. Por ejemplo, la misma compuerta AND puede ma-
nejar a varias compuertas OR, en tanto que en un PAL, un duplicado de la compuerta AND se
debe emplear para cada una de las compuertas OR.
El PLA se programa en una computadora o estación de trabajo de manera similar que un PAL
y se cuenta con una cantidad significativa de softwares amigables para dicho fin. El programa se
ingresa en forma booleana, como se mostró en el ejemplo 9.2 o con una tabla de estados como se
verá en el capítulo 10. Con frecuencia el PLA se emplea como un bloque funcional básico en la
realización de circuitos integrados a muy grande escala (VLSI).
326 APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS

PALASM89 PAL AS5EMBLER - DEVELOPEMENT VERSIÓN (28-AUG-1989)


(C) - COPYRIGHT ADVANCED MICRO DEVICES INC., 1989

TITLE :ADDER AUTHOR :JIM SWATCH


PATTERN :A COMPANY:RIT
REVISIÓN:1 DATE :MAY 1992

PAL16R8
ADDER

11 1111 1111 2222 2222 2233


0123 4567 8901 2345 6789 0123 4567 8901
0 -x— -x— - ---- ---- ---- ---- ---- ----
1 -x— -x— - x ---- ---- ---- ---- ---- ----
2 -x— x---- -x— ---- ---- ---- ---- ----
3 x --- -x— - -x— ---- ---- ---- ---- ----
4 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
5 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
6 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
7 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
8 -x— -x— ---- ---- ---- ---- ---- ----
9 -x— x---- x--- ---- ---- ---- ---- ----
10 x --- -x— x ---- ---- ---- ---- ---- ----
11 x --- x---- -x— ---- ---- ---- ---- ----
12 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
13 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
14 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
15 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
16 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
17 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
18 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
19 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
20 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
21 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
22 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
23 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
24 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
25 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
26 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
27 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
28 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
29 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
30 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
31 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
32 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
33 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
34 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
35 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
36 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
37 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS 327

38 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX


39 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
40 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
41 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
42 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
43 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
44 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
45 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
46 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
47 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
48 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
49 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
50 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
51 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
52 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
53 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
54 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
55 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
56 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
57 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
58 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
59 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
60 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
61 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
62 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
63 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
SUMMARY
-------
TOTAL FUSES BLOWN = 232

Fig. 9-8 (Derechos reservados © 1991 por Advanced Micro Devices, Inc. Publicado aquí con permiso del
propietario de los derechos. Todos los derechos reservados.)

9.6 ARREGLOS DE COMPUERTAS

Los chips conocidos como arreglos de compuertas (o arreglos completos de compuertas) contienen
un gran número de compuertas libres (sin conectar). Frecuentemente contienen arreglos de celdas
individuales en las que la adición de una interconexión crea una compuerta específica NAND o
ÑOR. La programación del arreglo hace que las compuertas se interconecten para crear lógica com-
binacional, flip-flops, registros, contadores, memorias, etcétera. El chip original, que se puede fa-
bricar en grandes cantidades (con la consecuente economía) puede hacer que lleven a cabo una tarea
determinada especificando las interconexiones entre las compuertas. La programación de estos dis-
positivos requiere normalmente de un software de muy alto costo y complejidad y de una computa-
dora con un buen poder de cálculo para llevar a cabo la ubicación y envío de conexiones. Hay reglas
de diseño que limitan el número de cruces en el patrón de conexiones generado por la computadora.
Junto a estas reglas con frecuencia se necesita mucha interacción en el proceso de diseño. Además,
una vez que se han hecho las interconexiones no se pueden modificar. El resultado es tal que el uso
328 APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS

Fig. 9-9 Arquitectura general de un PLA

de los arreglos de compuertas está limitado a productos de alto volumen (donde el gasto se puede
amortizar con facilidad) y requiere de un ciclo de desarrollo relativamente más largo.
Se fabrica una versión de arreglos de compuertas sin incluir las interconexiones metálicas. La
programación, que personaliza el diseño, resulta un trabajo artesanal de fotolitografía para las
mascarillas necesarias para crear el paso final de interconexión en el proceso de fabricación. El dis-
positivo está listo en unas cuantas semanas y se entrega al usuario final.
En otra versión se fabrican dos capas de interconexión en el diseño de la rejilla con rutas inter-
construidas para conectar las capas. El programa del usuario se convierte en un patrón de metal
APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS 329

para la capa superior la que será grabada (por ataque químico) para formar las interconexiones para
ambas capas. Este segundo caso requiere la adición de algunos pasos en el proceso de fabricación
y menos tiempo para el diseño.
Los arreglos de compuertas emplean sólo una pequeña variedad de celdas estándar de transis-
tores, lo que hace que el diseño no se pueda optimizar completamente con respecto a la disipación
de potencia o velocidad para todas las aplicaciones. En general, los arreglos de compuertas no em-
plean eficientemente todos los recursos del silicio como en los diseños personalizados. Sin embargo,
se pueden fabricar de manera más barata y rápida que los diseños completamente a la medida.
En una computadora o estación de trabajo el arreglo de compuertas se programa de manera
similar a los dispositivos PAL o PLA, pero necesita un software más avanzado y una computadora
de mayor poder. Además del manejo de conexiones y el ruteo, se deben considerar problemas térmi-
cos como los "puntos calientes". El programa del diseñador se puede ingresar en forma booleana,
como se describió, o mediante una tabla de estados. Otro método común de programación es la
captura esquemática. Aquí, el diseñador crea el diagrama lógico en el monitor de una computadora
mediante el llamado de los componentes de una biblioteca de software y conectándolos como se
desee usando el ratón (mouse) o algún otro dispositivo que lleve a cabo la misma función. Se cuenta
con una buena cantidad de ayuda dentro del software en la forma de rutear las pistas, algoritmos
de ubicación y en macros en los que frecuentemente se tratan combinaciones usuales de compuertas
(tales como registros) con nombres preestablecidos. Normalmente el usuario puede crear sus pro-
pios macros en software.
La programación de un arreglo de compuertas da como resultado un conjunto de instrucciones
de computadora generados por el propio software para crear el trabajo de fotolitografía necesario
para formar las conexiones requeridas entre todas las compuertas en el circuito. El arreglo de com-
puertas se emplea con frecuencia en la implantación de sistemas completos en chips VLSI.
Es muy importante evaluar el desempeño del diseño antes de construirlo. Puesto que la
construcción de un dispositivo de prueba es muy caro y no predice de manera precisa los retardos
de tiempo debido a la diferencia en tamaño, la mejor herramienta para evaluar el desempeño es
la simulación. Esto se lleva a cabo mediante el uso de software del tipo que se describió en el capítulo
6. Casi todo el software de diseño para la creación de circuitos integrados grandes cuentan con un
paquete de simulación el cual se puede emplear para evaluar el desempeño y preparar las señales
de prueba que se van a usar durante la producción.

9.7 ARREGLOS DE COMPUERTAS PROGRAMABLES

Por un lado, se ha desarrollado un producto que es, de alguna manera, intermedio entre los PAL
y los PLA, denominado arreglo de compuertas programable (PGA) o arreglo de compuertas pro-
gramable de campo (FPGA). Este arreglo, presenta una estructura interna considerablemente me-
nos firme que la de un PLA, pero mucho más sólida que la del arreglo de compuertas completo.
El FPGA, algunas veces llamado arreglo de celdas lógico (LCA®),* es un PLD cuya estructura no
cambia con la programación. En su lugar, se emplean señales electrónicas de control para modificar
la función de un circuito de estructura fija. Un análisis del FPGA y sus circuitos de control se puede
encontrar en el capítulo 11.

*LCA es marca registrada de XILINX, Inc.


330 APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS

Analizar los PGA es complicado por el hecho de que algunos distribuidores de estos produc-
tos emplean técnicas de conexión que modifican permanentemente al dispositivo y no se puede bo-
rrar el programa, como en los dispositivos LCA. Quizá es mejor considerar un PGA genérico como
un dispositivo intermedio entre los PLA y los arreglos de compuertas completos. El usuario debe
investigar con los distribuidores especializados acerca de la estructura y las técnicas de programa-
ción.

9.8 DISEÑO COMPLETAMENTE A LA MEDIDA

En aplicaciones de gran volumen y alta velocidad, es común que se mande hacer un chip completo
diseñado a la medida. Es un proceso complicado que involucra un ciclo de diseño relativamente
largo y un entrenamiento muy completo para el diseñador. La tecnología que se emplea se estudia
ampliamente y se crea una biblioteca de modelos detallados de componentes electrónicos. En estos
modelos se incluyen parámetros que describen disipación de potencia, propiedades de velocidad,
utilización de silicio y las mascarillas en fotolitografía usadas en la fabricación. Los modelos pue-
den ser de transistores, resistores, etcétera, o bien a un nivel de integración a base de compuertas.
Como se mencionó en la sección 9.6 también pueden contener varios subsistemas a base de macros.
Si el circuito se diseña empleando macros de alto nivel y un conjunto restringido de compuertas,
se dice que es un diseño con celdas estándar.

Problemas resueltos
9.1 En la figura 9-10 se muestra un PLA genérico que no tiene flip-flops. Escríbanse las ecuacio-
nes lógicas booleanas para las salidas.
Véase que las entradas son A, B, C y las salidas W y X. Cada compuerta OR está manejada por
un subconjunto de compuertas AND cuyas conexiones de entrada se muestran en el lado izquierdo
de la figura 9-10. La combinación de entradas para cada compuerta AND se puede representar mediante
una expresión booleana. Por ejemplo, A'B'C para la compuerta AND de la parte superior. Combi-
nando todos los términos AND conectados a cada OR se tiene
W = ABC' + ABC + ABC
X = ABC + ABC + ABC

9.2 Con las siguientes especificaciones diséñese un registro de corrimiento reversible cuyas eta-
pas estén conectadas en un anillo:
• El hardware será un PAL 16R6, como el que se muestra en la figura 9-4.
• Cada pulso de reloj hará que el registro se corra a la izquierda cuando la señal de control
LR esté en 1, y a la derecha cuando LR esté en 0.
• El registro de corrimiento se cargará en paralelo a partir de los datos que aparecen en
las cuatro terminales de entrada bajo la señal de control LS la cual hará la carga cuando
sea VERDADERA y el corrimiento cuando sea FALSA.
Muéstrense las ecuaciones requeridas por PAL ASM para ingresarlas en forma booleana y
trácese el patrón de conexiones.
APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS 331

Fig. 9-10

La secuencia de corrimiento se muestra en la figura 9-11 y el diagrama de bloques del sistema espe-
cificado en la figura 9-12.

Fig. 9-11
332 APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS

Fig. 9-12

1. Cuando LS = 0, cada flip-flop recibe su entrada d de su vecino de la derecha cuando LR = 1 y


de su vecino de la izquierda cuando LR = 0. La forma booleana, de un flip-flop k dado:

din(k) = (FF RIGHT) (LR) + (FF LEFT) (LR)'

2. Durante el modo de carga (LS = 1), las entradas d del registro se conectan a la entrada de datos.
Cuando LS = 0, las conexiones deben ser como en el paso 1. Una vez más en forma booleana:

din(k)= [(FF RIGHT) (LR) + (FF LEFT) (LR)'] (LS)' + (kdaI) (LS)

3. Las ecuaciones para PAL ASM son

A := D*LR*/LS + B*/LR*/LS 4- Adat*LS


B := A*LR*/LS + C*/LR*/LS + Bdat*LS
C := B*LR*/LS + D*/LR*/LS + Cdat*LS
D := C*LR*/LS + A*/LR*/LS + Ddat*LS

Consúltese el diagrama del 16R6 en la figura 9-13 para uno de todos los posibles esquemas de cone-
xión.
Los circuitos lógicos secuenciales del tipo considerado en este y los dos siguientes problemas, se
denominan máquinas de estado, y serán considerados con mayor detalle en el capítulo 10.
APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS 333

Fig. 9-13 Patrón de conexiones para el problema 9.2 dibujado sobre el diagrama esquemático del PAL16R6.
(Derechos reservados © 1991 por Advanced Micro Devices, Inc. Publicado aquí con permiso del propietario
de los derechos. Todos los derechos reservados.)
334 APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS

9.3 Un motor de pasos necesita dos voltajes (A y B) para ser manejado, los cuales se deben
aplicar en secuencia de acuerdo con un patrón particular. Los voltajes se mantienen
constantes hasta que se presenta el pulso de reloj, tiempo en el cual, las señales A y B
cambian como se muestra en la tabla 9.2, y la flecha del motor avanza un paso. Prográmese
un PAL16R6 (entradas booleanas) de modo que el motor se mueva, bajo la acción de un
comando externo F/R, ya sea hacia adelante o hacia atrás. El circuito integrado PAL debe
tener tres entradas: F/R, MOVE y el reloj. El movimiento del motor tiene lugar cuando
MOVE es VERDADERA y la velocidad de rotación estará determinada por la
frecuencia del reloj.

Tabla 9.2 Voltajes de manejo para un motor de pasos*

*La secuencia es continua de modo que el estado 00


sigue del estado 10 en la dirección hacia adelante. El
0 lógico representa 0 V y el 1 lógico representa un vol-
taje de cd de valor adecuado para que el motor se
mueva.

Fig. 9-14
APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS 335

Se elige un diseño combinando flip-flops D y lógica, cuya descripción en forma booleana consti-
tuirá la programación de entrada al PAL. Asúmase que F/R = 1 significa que el movimiento es hacia
adelante y que los flip-flops A y B se utilizarán para almacenar las señales del motor de pasos entre
los pulsos de reloj.
Un diagrama de bloques del sistema se muestra en la figura 9-14. Cada par de entradas d constitu-
ye el siguiente estado de los flip-flops y está en espera antes de que el pulso de reloj indique que se
aplique al motor produciendo el movimiento de la flecha en un paso. Puesto que en cualquier momen-
to la aplicación de los siguientes voltajes de manejo del motor A y B depende de las señales de movi-
miento y dirección así como del estado presente de las señales de manejo, se debe diseñar la lógica para
que produzca las entradas D de los flip-flops, las cuales son función del comando MOVE, la señal de
dirección F/R y del estado presente de los flip-flops. Se puede construir una tabla de verdad (tabla
9.3) directamente a partir de las especificaciones dadas.
Obsérvese cómo las salidas A y B del motor se emplean como entradas a la lógica para determinar
el siguiente estado de acuerdo con la información de secuencia de la tabla 9.2. Cuando M = 0, las
salidas del siguiente estado no cambian, indicando que la flecha del motor se mantiene inmóvil.
Las ecuaciones booleanas, en la forma requerida por PALASM, se pueden escribir directamente
a partir de la tabla de verdad:

A:=/F*/M*A*/B + /F*/M*A*B + /F*M*/A*/B + /F*M*A*/B 4- F*/M*A*/B


+ F*/M*A*B + F*M*/A*B + F*M*A*B
B:=/F*/M*/A*B + /F*/M*A*B + /F*M*A*/B + /F*M*A*B + F*/M*/A*B
+ F*/M*A*B + F*M*/A*/B + F*M*/A*B

Tabla 9.3
Entradas a la lógica Salidas
(estado siguiente)

F/R M A B dA dB
0 0 0 0 0 0
0 0 0 1 0 1
0 0 1 0 1 0
0 0 1 1 1 1
0 1 0 0 1 0
0 1 0 1 0 0
0 1 1 0 1 1
0 1 1 1 0 1
1 0 0 0 0 0
1 0 0 1 0 1
1 0 1 0 1 0
1 0 1 1 1 1
1 1 0 0 0 1
1 1 0 1 1 1
1 1 1 0 0 0
1 1 1 1 1 0
336 APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS

El símbolo (: =) en PALASM se utiliza para indicar que las salidas A y B son registradas (pasan
a través de flip-flops). El hecho de que estas variables aparezcan en ambos miembros de sus ecuaciones
respectivas quiere decir que los valores del estado siguiente están en función de su valor presente, como
se describió anteriormente.
Hay ocho términos AND para cada OR, y sólo se requieren dos flip-flops D. Así, el diseño quedará
completamente en el 16R6 y no se necesitan simplificaciones adicionales.

Tabla 9.4

Tabla 9.5
APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS 337

9.4 Se desea implantar la secuencia que se muestra en la tabla 9.4 con los flip-flops del PAL
16R6. Cuando una entrada de control U/D = 0, la secuencia es para movimiento hacia arri-
ba y, cuando U/D = 1, es para dirección en reversa y movimiento hacia abajo. Determínese
ya sea el circuito que quede en el PAL y, si fuera posible, desarróllense las ecuaciones de
la lógica de control. Indíquese también cómo se puede aplicar una señal para inicializar los
flip-flops a 0000.
Como en el problema anterior, las salidas de los flip-flops sólo cambian cuando se recibe el pulso
de reloj. Cada estado siguiente se determina mediante la lógica, usando la información del estado pre-
sente y la variable U/D como entradas. Se puede crear una tabla de verdad apropiada a partir de la
secuencia dada. Por ejemplo, en la tabla 9.4 se ve que cuando el estado presente es 1110 (quinto ren-
glón), el estado siguiente será 0011 cuando U/D = 0 y 1100 cuando U/D = 1. El resultado se muestra
en la tabla 9.5 en la que se han omitido los estados que no se presentan.
Cada variable de salida no tiene más de ocho 1s; por lo tanto, ocho compuertas AND son suficien-
tes para cada salida, que es el número de compuertas disponibles en el !6R6. Hay cuatro variables de
salida y se necesitan cuatro flip-flops. Puesto que también se cuenta COTÍ estos flip-flops el diseño que-
dará bien.
Formando las ecuaciones directamente de la tabla de verdad

D:=(U/D)'D'C'BA + (U/D'D'CB'A + (U/D)'DC'BA; + (U/D)'DCBA' + (U/D)D'CB'A'


+ (U/D)D'CBA + (U/D)DCB'A' + (U/D)DCBA'
C := (U/D)'D'C'B'A + (U/D)'D'C'BA + (U/D)'DC'BA' + (U/D)'DCB'A' + (U/D)D'C'B'A'
+ (U/D)D'C'BA + (U/D)DC'BA; + (U/DJDCBA'
B := (U/D)'D'CB'A + (U/D)'DCB'A' + (U/D)'DCBA' + (U/D)D'C'BA + (U/D)DCB'A'
+ (U/D)DCB'A
A := (U/D)'D'C'B'A' + (U/D)'D'C'B'A + (U/D)'D'C'BA + (U/D)'DCBA' + (U/D)D'CB'A
+(U/D)DC'BA' + (U/D)DCB'A

Si se requiere la inicialización, una entrada IN se debe pasar a través de una compuerta AND con
todos los términos producto. Cuando IN es 0 las entradas D a los flip-flops son 0 y todas estas asumi-
rán el estado 0 cuando llegue el pulso de reloj. Cuando IN se va a 1, las compuertas AND funcionan
de la manera definida por las ecuaciones lógicas. El diagrama de conexión para la implantación con
el PAL 16R6 se muestra en la figura 9-15.

9.5 El diagrama de conexión para un PAL genérico se muestra en la figura 9-16, y las
señales que se aplican en las diferentes entradas del mismo se presentan en la figura 9-17.
Trácense las formas de onda para el diagrama de macrotemporización en la salidas A, B,
C, D y E. No se tome en cuenta cualquier retardo de propagación interno y asúmase que
todos los flip-flops se borran antes del primer pulso de reloj. Los flip-flops son del tipo D
y se disparan con flanco de subida (véase el capítulo 7).
1. De la figura 9-16 se ve que las ecuaciones para las entradas de los flip-flops son

dA = B'X + BY dB = AX + A'Y dE = AB' + A'B


338 APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS

Fig. 9-15 Patrón de conexiones para el problema 9.4 dibujado sobre el diagrama esquemático del PAL16R6.
(Derechos reservados © 1991 por Advanced Micro Devices, Inc. Publicado aquí con permiso del propietario
de los derechos. Todos los derechos reservados.)
APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS 339

Fig. 9-16

Fig.9-17
340 APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS

2. C y D no están conectadas internamente y no afectan los estados de los flip-flops.


3. Inicialmente A, B y E son 0 (borradas) y X, Y son 0 (formas de onda dadas).
Se tabulan los resultados a medida que se presentan los pulsos de reloj da la tabla 9.6.

Tabla 9.6

Las formas de onda requeridas se pueden obtener leyendo las columnas A, B y E en la tabla 9.6.
Los resultados se muestran en la figura 9-18.

9.6 El diagrama del circuito del PAL de la figura 9-19 muestra las conexiones para un sistema
que contiene tanto flip-flops como lógica combinacional. Asumiendo que la señal IN es ini-
cialmente FALSA (baja) y se hace VERDADERA inmediatamente después del primer pulso
de reloj en t = 0, encuéntrese la secuencia del flip-flop y exprésela como una serie de núme-
ros decimales asumiendo que A es el dígito más significativo, seguido de B, C y D. Determí-
nese cuando la salida E se hace verdadera.
Puesto que no hay conexiones de compuertas AND a E, las salidas A, B, C y D no dependen de
ésta y, consecuentemente, éstas se tratan como un sistema separado. La lógica da como resultado

dA = AB' + AC + A'B dC = B'C + A'D' + A'C + ABC


dB = AC + B'D + B'C dD = A'B' + BD'

que se pueden expresar como en la figura 9-20.


Puesto que en principio IN es FALSA y debido a que está conectada a todas las compuertas AND
que manejan a los flip-flops, el primer pulso de reloj lee 0000 en ABCD. Esta situación está definida
en la esquina superior izquierda de los mapas. Corresponde a las entradas que colectivamente represen-
APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS 341

Tabla 9.7 Representación de la secuencia 0-3-7-8-12-15-0


342 APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS

Fig. 9-19 Patrón de conexiones para el problema 9.6 dibujado sobre el diagrama esquemático del PAL16R6.
(Derechos reservados © 1991 por Advanced Micro Devices, Inc. Publicado aquí con permiso del propietario
de los derechos. Todos los derechos reservados.)
APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS 343

Fig. 9-20

Fig. 9-21
344 APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS

Tabla 9.8
X Y Ci S Co
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

Fig. 9-22
APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS 345

tan el estado siguiente para ABCD el cual, a partir de la figura 9-20, se ve que es ABCD = 0011. De
manera similar, después del segundo pulso de reloj, las coordenadas del mapa cambian al primer ren-
glón, tercera columna. Las entradas en este punto muestran un estado siguiente de ABCD = 0111 el
cual ocurrirá en el tercer pulso de reloj. Este procedimiento se puede continuar hasta que se presente
el valor que se obtuvo previamente, mostrando que la secuencia se repite (véase la tabla 9.7).
Las conexiones a la salida del flip-flop E son A'B'C'D' (ABCD = 0000) y A'CD (ABCD = 0111
o 0011). De este modo, E es VERDADERA durante los primeros tres ciclos de reloj de la secuencia
de conteo.

9.7 Empléese el sumador binario de un bit descrito en la sección 2.4 para demostrar, como se
muestra en la figura 9-21, que el PLA genérico se puede programar directamente a partir
de la tabla de verdad. Recuérdese que cada compuerta AND corresponde a una línea en la
tabla de verdad mientras que cada compuerta OR está asociada con una columna de salida.

Fig. 9-23
346 APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS

Fig. 9-24

La lógica se muestra en la tabla 9.8. Prográmense las compuertas AND en el mismo orden de los
renglones de la tabla de verdad (como en un decodificador completo) y entonces conéctese cada término
(renglón) a la salida apropiada de la compuerta OR. El resultado se muestra en la figura 9-22. Ob-
sérvese la correspondencia entre los 1s de la tabla de verdad y las conexiones hechas en el diagrama.

9.8 Implántese el sumador del problema 9.7 en el PAL genérico que se muestra en la figura 9-
23. Demuéstrese que mientras es posible implantar la función, no es posible programarlo
directamente a partir de la tabla de verdad estándar.
Obsérvese la estructura del circuito integrado PAL. Las compuertas AND se agrupan en conjun-
tos y, cada grupo está alambrado a las entradas de una sola compuerta OR. Sólo si el grupo entero
de compuertas AND se usa como entradas consecutivas en la tabla de verdad hay ahí una correspon-
APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS 347

dencia. En la solución de este problema se deben rearreglar las compuertas AND de acuerdo con la
tabla de verdad.
Los renglones de la tabla de verdad con equivalentes en decimal 1,2,4 y 7 se agrupan para produ-
cir la salida S, mientras que las salidas del decodificador correspondientes a 3, 5, 6 y 7 se agrupan para
producir la salida Co (segunda compuerta OR). Puesto que las conexiones representan 1s, en la tabla
de verdad se ve que sus renglones se han reacomodado y, uno de éstos, el renglón 7, se emplea dos
veces (véase la figura 9-24).

Problemas suplementarios
9.9 Dado el dispositivo PAL genérico programado que se muestra en la figura 9-25, determínese la ecua-
ción lógica para las salidas C, D y E.

9.10 Mediante el sistema de la figura 9-25 determínese la secuencia de salida para la operación con el reloj
dado que X y Y ambas se mantienen en 0. Los valores iniciales de A y B son ambos 0.

9.11 ¿Cuál es el efecto sobre la secuencia del problema 9.10 si, después del tercer pulso de reloj pero antes
del cuarto, Y se va a 1 y se mantiene ahí?

9.12 El diagrama de conexión de un PAL para un circuito de conteo se muestra en la figura 9-26. Asumien-
do que la terminal 11 está conectada a 0 (estado bajo) y que inicialmente los flip-flops se han borrado,
escríbase en orden secuencial los valores de salida en sus equivalentes en decimal de ABCF para tantos
pulsos de reloj como se requiera, hasta que se repita la secuencia.

9.13 Este problema muestra cómo se puede definir de manera compacta mediante un código hexadecimal
sencillo el patrón de conexiones para un PLA. Consúltese el PLA genérico que se muestra en la figura
9-27, cada línea de posible interconexión se puede describir por medio de una palabra de tres dígitos
hexadecimales, los primeros dos dígitos se asignan a las ocho líneas de entrada y el último dígito a las
cuatro líneas de salida. Empleando este esquema, escríbase un código de la secuencia de ocho líneas
que describa las conexiones en la figura 9-27.

9.14 Con referencia al problema 9.13, ¿existen códigos en hexadecimal no permitidos?

9.15 Para el PLA del problema 9.13, especifíquese la lógica definida por el siguiente código en hexadecimal:

49A
4AA
86A
85A
454
494
864
8A4

9.16 Empleando el programa en hexadecimal del problema 9.15, tabúlese el desempeño del PLA a medida
que avanza el reloj asumiendo que A y B son inicialmente 0 y que a) X es siempre 0 y b) X es siempre 1.
348 APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS

Fig. 9-25

9.17 Dibújese sobre el diagrama de conexión del PAL16R6 la implantación de un contador síncrono hacia
arriba y hacia abajo el que hace la secuencia que se muestra en la tabla 9.9. Hay una entrada de control
F que, cuando es 1, hace que el circuito cuente hacia abajo y, cuando es 0, el circuito cuenta hacia
arriba.

9.18 Usando un dispositivo PAL16R6 como hardware muéstrense todas las conexiones que se requieren pa-
ra implantar la secuencia dada en la tabla 9.10, asumiendo que el registro está inicialmente en 0011.
APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS 349

Fig. 9-26 Patrón de conexiones para el problema 9.12 dibujado sobre el diagrama esquemático del PAL16R6.
(Derechos reservados © 1991 por Advanced Micro Devices, Inc. Publicado aquí con permiso del propietario
de los derechos. Todos los derechos reservados.)
350 APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS

Fig. 9-27

9.19 Si el contador del problema 9.18 se inicializa en ABCD = 0001, ¿cuáles serán las salidas del registro
después del siguiente pulso de reloj?

9.20 La secuencia de conteo que se muestra en la tabla 9.11 se implantará en un dispositivo PAL16R6.
Escríbanse las ecuaciones requeridas por PAL ASM para su programación.

9.21 Consúltese el problema 9.20. Empleando las terminales de salida 18, 17, 16 y 15 para los elementos
del registro D, C, B y A, respectivamente y, asumiendo que se les asigna un orden numérico a las com-
puertas AND con un grupo que se pasan a través de un compuerta OR, indíquese sobre el diagrama
del PAL16R6 cuáles de las posibles conexiones se deben dejar conectadas.
APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS 351

Tabla 9.9

Tabla 9.10 Tabla 9.11


A B C D D C B A
0 0 1 1 0 0 0 0
0 1 0 0 0 0 0 1
0 1 0 1 0 0 1 0
0 1 1 0 0 1 0 0
0 1 1 1 0 1 0 1
1 0 0 0 1 0 1 0
1 0 0 1 1 0 1 1
1 0 1 0 1 1 0 1
1 0 1 1 1 1 1 0
1 1 0 0 1 1 1 1

Se repite Se repite

Respuestas a los problemas suplementarios


9.9 C = YB + XA; D = X'YA + Y'; d E = A'B + A'B'Y

9.10 Véase la tabla 9.12


Después del primer pulso de reloj C oscilará de manera sincronizada entre 1 y 0, mientras que D y E
permanecerán en 1 y 0, respectivamente.

9.11 Véase la tabla 9.13. No se presenta ningún cambio después del sexto pulso de reloj.
352 APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS

Tabla 9.12 Tabla 9.13


RELOJ # C D E RELOJ # C D E
0 0 1 . 4 0 0 0
1 1 1 0 5 1 1 1
2 0 1 0 6 1 1 0
3 1 1 0 7 1 1 0

9.12 0, 11, 9, 6, 3, 13, 0.

9.13 11F
224
54A
A54
489
5A6
294
658
Obsérvese cómo la información física acerca de las conexiones se ha convertido en un conjunto
de números hexadecimales los cuales se pueden procesar fácilmente por una computadora digital.

9.14 Puesto que una señal digital y su inversa lógica no se deben conectar simultáneamente a las entradas
de la misma compuerta AND, los primeros dos dígitos de la palabra hexadecimal no pueden contener
3, 7, B, C, D, E o F. No hay tal restricción en el tercer dígito hexadecimal.

9.15 dA = C = X'A'B + X'AB + XAB' + XA'B'


dB = X'A'B' + X'A'B + XAB' + XAB
dD = 0

9.16 a) A B b) A B
0 0 0 0
0 1 1 0
1 1 1 1
1 0 0 1

9.17 Sólo ocho de los términos AND son posibles con el PAL especificado, y la tabla de verdad necesita
diez. De esta manera, se requiere algún tipo de simplificación antes de transferir el diseño al mapa de
fusibles. Una solución es

AN = F'AB' + F'AC + F'A'B + FAB + FA'B'C


BN = F'AB' + F'AC + F'B'D + FB'C + FAD
CN = F'A'D' + FB'C + F'A'C + F'ABC + FCD' + FA'BC + FA'B'C
DN = F'AB' + F'BD' + FB'D' + FA'B
APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS 353

Fig. 9-28 Patrón de conexiones para el problema 9.17 dibujado sobre el diagrama esquemático del PAL16R6.
(Derechos reservados © 1991 por Advanced Micro Devices, Inc. Publicado aquí con permiso del propietario
de los derechos. Todos los derechos reservados.)
354 APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS

Fig. 9-29 Patrón de conexiones para el problema 9.18 dibujado sobre el diagrama esquemático del PAL16R6.
(Derechos reservados © 1991 por Advanced Micro Devices, Inc. Publicado aquí con permiso del propietario
de los derechos. Todos los derechos reservados.)
APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS 355

Fig. 9-30 Patrón de conexiones para el problema 9.21 dibujado sobre el diagrama esquemático del PAL16R6.
(Derechos reservados © 1991 por Advanced Micro Devices, Inc. Publicado aquí con permiso del propietario
de los derechos. Todos los derechos reservados.)
356 APLICACIÓN DE DISPOSITIVOS ESPECÍFICOS

El diagrama de conexión del PAL16R6 se muestra en la figura 9-28.

9.18 Si se emplea la simplificación del mapa K

AN = AB' + BCD
BN = A'D' + A'C + BCD
CN = AB + C'D + CD'
DN = D'

El diagrama de conexión se muestra en la figura 9-29.

9.19 Si todos los valores que no se especifican se tratan como 0 (términos "no importa"), el estado siguiente
será 0000. Si se emplean los términos "no importa" en la cobertura de ls en el mapa K, como la solu
ción dada al problema 9.18, el estado siguiente será 0110.

9.20 D := /D*C*/B*A + D*/C*B*/A + D*/C*B*A + D*C*/B*A + D*C*B*/A


C :=/D*/C*B*/A + /D*C*/B*/A + D*/C*B*A + D*C*/B*A + D*C*B*/A
B :=/D*/C7B*A + /D*C*/B*A + D*/C*B*/A + D*C*/B*A + D*C*B*/A
A := /D*/C*/B*/A + /D*C*/B*/A + D*/C*B*/A + D*/C*B*A + D*C*B */A

9.21 Véase la figura 9-30.


Capítulo 10
Diseño de máquinas de estado sencillas
10.1 INTRODUCCIÓN

La máquina de estado constituye una clase importante de circuitos lógicos digitales secuenciales que
se caracterizan por las siguientes propiedades:
1. Tienen una parte bien definida que contiene solamente lógica combinacional.
2. Tienen un registro de aseguramiento manejado de manera sincronizada por un reloj cuyas sali-
das lógicas se puede emplear directamente o realimentar a las entradas de la lógica combinacio-
nal.

Fig. 10-1 Máquina de estado sencilla.

357
358 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

3. La lógica combinacional es capaz de recibir, como entrada, ya sea señales de la realimentación


o entradas externas (las dos). Esta lógica produce salidas las cuales se pueden accesar a través
de terminales externas y/o se pueden emplear como entradas a un registro de aseguramiento.
Los componentes básicos de una máquina de estado se presentan en la figura 10-1.
El propósito de la lógica combinacional es proveer, antes de que se reciba cada pulso de reloj,
los comandos que se necesiten para hacer que la máquina de estado ejecute las funciones para las
que fue hecha.
La estricta separación entre las partes lógica y de registro permite la reducción de su diseño
directamente a un problema de lógica combinacional. Una característica importante de la máquina
de estado es la aplicación sincronizada del reloj de la parte lógica hacia la parte del registro, lo que
asegura que las diferencias de tiempo en el circuito lógico combinacional no puedan afectar el de-
sempeño.

10.2 DISEÑO TRADICIONAL DE MÁQUINAS DE ESTADO CON FLIP-FLOPS D

El método tradicional de diseño de máquinas de estado emplea una tabla de verdad para la especifi-
cación básica del sistema. El estado actual o estado presente del sistema se almacena en los ñip-ñops
del registro. La lógica combinacional acepta los datos del estado presente como entradas (posible-
mente en conjunto con entradas externas) y produce el estado siguiente, el cual se presenta en las
entradas D del registro. Hasta que se recibe un pulso de reloj, este dato se asegura dentro del registro
para convertirse en el nuevo estado y el proceso se repite. Debido a que el dato del estado siguiente

Tabla 10.1 Secuencia de conteo


DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 359

es estático entre los pulsos de reloj, el diseño secuencial de la máquina de estado se puede reducir
a un problema de diseño lógico combinacional en el cual se puede emplear una tabla de verdad para
especificar el estado futuro de un flip-flop dado como una función de los valores de las variables
del estado presente.

EJEMPLO 10.1 Especificación de un contador síncrono. En el diseño de un contador síncrono, la cuenta y


el estado son exactamente lo mismo. Considérese un contador de 4 bits en código Gray el cual cuenta de acuer-
do con la secuencia que se muestra en la tabla 10.1. Los flip-flops individuales del registro se identifican me-
diante D, C, B y A.
La secuencia se convierte fácilmente a una tabla de verdad estado presente/estado siguiente (tablas 10.2a
y b).
La tabla de estados (tabla 10.2a) se crea directamente a partir de la secuencia de conteo y se convierte
a una tabla de verdad de diseño lógico convencional (tabla 10.2¿>) acomodando el lado de la entrada (estado
presente) en orden binario ascendente. Obsérvese que el vehículo para las transiciones de estado a estado es
la lógica combinacional especificada por la tabla de verdad de estado presente/estado siguiente y cualquiera
de las técnicas de diseño descritas en los capítulos 3 al 5 se pueden emplear para llevarlo a cabo, en conjunto
con los dispositivos programables que se presentaron en el capítulo 9. En los problemas de este capítulo se
seguirán varios métodos.

Si se necesita una entrada externa entonces se debe agregar una variable adicional en el lado
de las entradas de la tabla de verdad. Esta variable adicional duplicará la longitud de la tabla de
verdad. Si se necesita alguna otra salida del registro de flip-flops, entonces se debe agregar una sali-
da adicional a la tabla de verdad.

EJEMPLO 10.2 Supóngase que se introduce al sistema del ejemplo 10.1 un comando externo hacia adelan-
te/hacia atrás (F/R). La función de la variable F/R es modificar la secuencia de las transiciones de estado a
estado. Si F/R es 0, el circuito cuenta de acuerdo con la secuencia que se muestra en la tabla 10.1, y si F/R
es 1, el conteo va en reversa (es decir, de abajo hacia arriba según la tabla). Aún más, supóngase que se especifi-
ca una salida adicional para proporcionar un bit de paridad impar para el estado siguiente. Hágase la tabla
de verdad para un nuevo diseño lógico.

Para el conteo en reversa, se debe convertir la secuencia a tabla de estados y entonces reacomo-
dar la tabla de verdad para el diseño de la lógica (como se hizo para el ejemplo 10.1). Se combinan
entonces las tablas 10.2Z? y 10.36 en serie, se agrega la variable F/R en el lado de las entradas en
la columna más significativa y se agrega la columna de la salida de paridad, como se muestra en
la tabla 10.4
La tabla de verdad estado presente/estado siguiente forma la base para el diseño de la lógica
combinacional asociada con la máquina de estado síncrona. Esta lógica se puede implantar median-
te cualquiera de las técnicas que se discutieron en los capítulos precedentes. Si se va a realizar con
compuertas en pequeña escala de integración, entonces se deben crear mapas K de cinco variables
para cada una de las variables de salida, simplificadas e implantadas en el hardware disponible. Si
se prefiere se podría programar un multiplexor para cada una de las variables de salida.
Otra elección sería el usar un dispositivo lógico programado como un circuito integrado PAL
o un PLA. En este caso, uno podría crear la lógica mediante el ingreso de las ecuaciones booleanas
para cada una de las salidas. Un pequeño PAL es el más simple de los dos y se deberá intentar prime-
ro. La decisión de mayor peso en el diseño, para este caso, es estimar el tamaño del dispositivo pro-
gramable. Si la salida de paridad va ser registrada (pasarla a través de flip-flops), entonces por lo
menos se debe disponer de cinco flip-flops en el dispositivo. El máximo número de términos AND
360 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

Tabla 10.2a Tabla de estados que se Tabla 10.26 Tabla de verdad


obtuvo a partir de la secuencia correspondiente (entradas acomodadas
de conteo en orden binario)
Estado Entradas Salidas
Presente Siguiente (presente) siguiente)
D C B A D C B A D C B A D C B A
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
0 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1
0 0 1 1 0 0 1 0 0 0 1 0 0 1 1 0
0 0 1 0 0 1 1 0 0 0 1 1 0 0 1 0
0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 0
0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0
0 1 0 1 0 1 0 0 0 1 1 0 0 1 1 1
0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1
1 1 0 0 1 1 0 1 1 0 0 0 0 0 0 0
1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0
1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1
1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1
1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1
1 0 1 1 1 0 0 1 1 1 0 1 1 1 1 1
1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0
1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0

Tabla 10.3a Tabla de estados para Tabla 10.36 Tabla de verdad para
conteo en reversa conteo en reversa
Estado Entradas Salidas
Presente Siguiente (presente) (siguiente;
D C B A D C B A D C B A D C B A
0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0
0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0
0 0 1 1 0 0 0 1 0 0 1 0 0 0 1 1
0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1
0 1 1 0 0 0 1 0 0 1 0 0 0 1 0 1
0 1 1 1 0 1 1 0 0 1 0 1 0 1 1 1
0 1 0 1 0 1 1 1 0 1 1 0 0 0 1 0
0 1 0 0 0 1 0 1 0 1 1 1 0 1 1 0
1 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1
1 1 0 1 1 1 0 0 1 0 0 1 1 0 1 1
1 1 1 1 1 1 0 1 1 0 1 0 1 1 1 0
1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 0
1 0 1 0 1 1 1 0 1 1 0 0 0 1 0 0
1 0 1 1 1 0 1 0 1 1 0 1 1 1 0 0
1 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1
1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 1
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 361

Tabla 10.4 Tabla de verdad para el contador bidireccional arriba/abajo con paridad
Entradas Salidas Entradas Salidas
(presente) ( siguiente] (presente) (siguiente)
F/R D C B A D C B A P F/R D C B A D C B A P
0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1
0 0 0 1 0 0 1 1 0 1 1 0 0 1 0 0 0 1 1 1
0 0 0 1 1 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0
0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 1 0 1 1
0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 0
0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 0 0 1 0 0
0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 0 1
0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1
0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 1 1 0
0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0
0 1 0 1 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 1
0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 0 0 0
0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 1
0 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1
0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 1 0

para una sola compuerta OR se estima a partir de las ecuaciones lógicas, quizá usando mapas y
comparando con el número de compuertas con las que cuenta el chip. De manera alternativa, las
ecuaciones se podrían ingresar directamente a partir de la tabla de verdad sin simplificación y el
software trataría de simplificar la lógica e informará al usuario si el diseño es demasiado grande
para el chip. En este caso, se deberá considerar un PAL de mayor tamaño o se intentará la implanta-
ción con un PLA.

10.3 DISEÑO CON FLIP-FLOPS JK

En el diseño de máquinas de estado, con frecuencia el diseñador tiene la opción de seleccionar entre
flip-flops D o JK; con frecuencia la elección depende de la aplicación específica. El siguiente ejem-
plo ilustra las diferencias en los distintos enfoques de diseño.

EJEMPLO 10.3 Considérese el contador especificado en la tabla 10.5. Se desarrolla la tabla de estados (tabla
10.6), a partir de la cual se crean los mapas de los estados siguientes para cada una de las variables de salida.
Las ecuaciones booleanas apropiadas se obtienen haciendo uso de los estados "no importa", como se muestra
en la figura 10-2. Las coordenadas del mapa representan cada posible estado presente y el ingreso en una locali-
dad dada indica el valor correspondiente a la variable del estado siguiente, representado mediante el mapa en
particular que se está viendo. Así, por ejemplo, si el estado presente es DCBA = 1100, se ve a partir del mapa
de D que el valor de esta variable después del siguiente pulso de reloj será 1 y, a partir del mapa de A, el siguiente
valor de A será 0. Puesto que todas las posibles cuentas no están incluidas en la secuencia dada, existen
estados "no importa" (representados mediante Xs).
362 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

Tabla 10.5
D C B A
0 0 0 0
0 0 0 1
0 0 1 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 1 0 0
1 1 1 0
1 1 1 1
Se repite

La secuencia es hacia abajo, como se indica.

Tabla 10.6
Estado presente Estado siguiente
D C B A D C B A

0 0 0 0 0 0 0 1
0 0 0 1 0 0 1 1
0 0 1 1 0 1 1 0
0 1 1 0 0 1 1 1
0 1 1 1 1 0 0 0
1 0 0 0 1 0 0 1
1 0 0 1 1 1 0 0
1 1 0 0 1 1 1 0
1 1 1 0 1 1 1 1
1 1 1 1 0 0 0 0

Implantación con flip-flops D


Las ecuaciones booleanas de la figura 10-2 se pueden emplear para implantar la lógica combinacio-
nal cuyas salidas manejan a las entradas D de los flip-flops en la figura 10-1.

Implantación con flip-flops JK


Considérese la tabla de verdad del JK síncrono del capítulo 7 (tabla 10.7a). Si la salida Q es 0, per-
manecerá en 0 después del siguiente pulso de reloj si JK = 00 o JK = 01; es decir, solamente se
requiere que J = 0; el valor de K es irrelevante. Si la salida Q es 0, cambiará a 1 en el siguiente
pulso de reloj si JK = 10 o JK = 11 (una vez más, el valor de K es irrelevante). Si Q = 1, cambiará
a 0 si JK = 01 o JK = 11 (K debe ser 1 y J es irrelevante). Si Q = 1, permanecerá en 1 si JK =
10 o 00 (K debe ser 0 sin considerar el valor de J).
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 363

Dsig = DB' + DA' + D'CA Csig = C B + C A1 + D C A

Bs¡g =CA' + D'C'A ASig =D'B' + BA' + DC'A'


Fig. 10-2

Tabla 10.7b Tabla de cambio


Tabla 10.7a Tabla de verdad
secuencial de estados del JK
del JK
J K Qn+1 Transición J K
0 0 Qn Oto 0 0 X
0 1 0 Oto 1 1 X
1 0 1 1 to 0 X 1
1 1 Qn' 1 to 1 X 0

Este comportamiento se puede resumir en una tabla de cambio secuencial de estados (transi-
ción) como se muestra en la tabla 10.76.
La tabla de cambio secuencial de estados se puede usar con los mapas de estados siguientes
de la figura 10-2 para formar mapas para J y K para cada una de las variables.

JD = CA KD= CA
Fig. 10-3
364 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

El mapa para el flip-flop D, por ejemplo, se descompone en un mapa para JD y uno para KD.
En cada uno de éstos, los estados presentes son las coordenadas del mapa y las entradas son los
valores de las variables de control. La naturaleza de cada transición se puede leer fácilmente de los
mapas de estados siguientes (figura 10-2). Para el mapa de Dsig, el valor presente del flip-flop D
es 0 para los dos renglones superiores y 1 para los dos inferiores. Con esto en mente, se ve que el
segundo renglón, tercera columna, representa una transición de 0 a 1. De este modo, en la figura
10-3, la entrada en 0111 es 1 en el mapa de JD y X en el de KD, de acuerdo con la tabla 10.76.
Obsérvese que para la etapa D se necesita una sola compuerta de dos entradas la cual reemplaza
dos compuertas de dos entradas y dos de tres entradas. El resto de los mapas de J y K y la lógica
correspondiente se desarrollarán en el problema 10.4.
Si bien en el presente ejemplo la implantación con JK conduce a una lógica combinacional más
sencilla que el diseño con flip-flops D, éste no es siempre el caso y el diseñador debe explorar los
dos si la cantidad de compuertas es un factor importante de diseño.

10.4 DISEÑO MEDIANTE DISPOSITIVOS LÓGICOS PROGRAMABLES

La arquitectura que se muestra en la figura 10-1 es exactamente la de un dispositivo PAL o PLA,


como los descritos en el capítulo 9. La tabla de estado presente/estado siguiente define las salidas
de la lógica combinacional que se registrarán (almacenarán) en los flip-flops y que constituyen el

Entradas Salidas
(presente) (siguiente)
D C B A
D C B A D C B A
0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 1
0 0 1 1 0 0 0 1 0 0 1 1
0 0 1 0 0 0 1 0 0 1 1 0
0 1 1 0 0 0 1 1 0 0 1 0
0 1 1 1 0 1 0 0 1 1 0 0
0 1 0 1 0 1 0 1 0 1 0 0
0 1 0 0 0 1 1 0 0 1 1 1
1 1 0 0 0 1 1 1 0 1 0 1
1 1 0 1 1 0 0 0 0 0 0 0
1 1 1 1 1 0 0 1 1 0 0 0
1 1 1 0 1 0 1 0 1 0 1 1
1 0 1 0 1 0 1 1 1 0 0 1
1 0 1 1 1 1 0 0 1 1 0 1
1 0 0 1 1 1 0 1 1 1 1 1
1 0 0 0 1 1 1 0 1 0 1 0
1 1 1 1 1 1 1 0
Se repite
Secuencia de conteo
Tabla de verdad correspondiente
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 365

estado del circuito. Como se ha visto, la relación entre el estado presente y el estado siguiente se
puede expresar como ecuaciones booleanas que se obtienen a partir de la tabla de verdad. Con fre-
cuencia el software para quemar el chip acepta directamente estas ecuaciones. Como un ejemplo,
considérese el caso donde el contador del ejemplo 10.1 se implantará en un PAL16R6.

EJEMPLO 10.4 Diseño con un PAL de un contador en código Gray. La secuencia de conteo y la tabla de ver-
dad que relaciona estado presente/estado siguiente (tablas 10.1 y 10.2b, respectivamente) se reproducen al fi-
nal de la página anterior para conveniencia del estudiante.

Las ecuaciones booleanas en la sintaxis de PALASM se crean directamente de la tabla de verdad como
sigue:

D:=/D*C*/B*/A + D*/C*/B*A + D*/C*B*/A + D*/C*B*A + D*C*/B*/A + D*C*/B*A


+ D*C*B*/A + D*C*B*A
C :=/D*/C*B*/A + /D*C*/B*/A + /D*C*/B*A + /D*C*B*/A + /D*C*B*A + D*C*/B*/A
+ D*C*/B*A + D*C*B*A
B:=/D*/C*/B*A + /D*/C*B*/A + /D*/C*B*A + /D*C*B*/A + D*/C*B*/A + D*C*/B*A
+ D*C*B*/A + D*C*B*A
A:= /D*/C*/B*/A + /D*/C*/B*A + /D*C*B*/A + /D*C»B*A + D*/C*B*/A + D*/C*B*A
+ D*C*/B*/A + D*C*/B*A
Cuando se ingresan estas ecuaciones, el quemador de chips crea las conexiones deseadas en el PAL16R6
para implantar el contador especificado.

10.5 LA CARTA ASM

En el ejemplo 10.2, donde se aplica una variable externa hacia adelante/hacia atrás a la máquina
de estado, se ve que al agregar una entrada se duplica la longitud de la tabla de estados para el dise-
ño. Si hay numerosas variables externas, la tabla de estados puede crecer demasiado y a menudo
se hace muy poco manejable. En esta situación, los diseñadores normalmente emplean una carta
de estado algorítmica (ASM). Esta carta, que se construye intencionalmente similar a un diagrama
de flujo para programar una computadora, emplea un número relativamente pequeño de símbolos
que se interconectan de una manera lógica para indicar el avance de la máquina de estado de un
estado al siguiente. Sirve como una descripción detallada paso a paso del desempeño deseado del
sistema.

Símbolos de la carta ASM


El rectángulo se emplea para representar un estado específico del sistema. Es común que haya un
nemónico o etiqueta adyacente al rectángulo para nombrar al estado y dentro del cual se listan cual-
quiera de las salidas que se presentan mientras la máquina está en un estado en particular. Estas
salidas se denominan salidas incondicionales. La máquina se encuentra en el estado específico por
un ciclo de reloj exactamente.
El rectángulo que se muestra en la figura 10-4 representa al estado AA que mientras el sistema
esté en dicho estado, producirá las salidas OUT1 y XX. Si la máquina avanza de estado en estado
de una manera predeterminada, independiente de cualquiera de las entradas, los estados se unen
mediante segmentos de líneas como, se muestra en la figura 10-5.
366 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

Fig. 10-4 Fig. 10-5

En este caso, después de que se encuentra en el estado J durante un ciclo de reloj, la máquina
se mueve al estado K cuando se presenta el siguiente pulso de reloj. Obsérvese el cambio de las sali-
das.
El diamante (rombo) o diamante extendido se emplea para indicar la ramificación condicional,
donde se asume que el estado siguiente depende del valor de una o más variables de entrada. Las
funciones booleanas que involucran estas variables se muestran dentro del diamante extendido y,
la ruta de las ramas se etiquetan con los valores que estas funciones pueden adoptar. El diamante,
en sí mismo, se llama bloque de decisión y no se etiqueta por separado.
En la parte de una carta ASM que se muestra en la figura 10-6, una máquina en el estado J
avanzará, en el siguiente pulso de reloj, ya sea al estado K o al L dependiendo si la función booleana
A + B es VERDADERA o FALSA. Es importante observar que la decisión se toma durante el ciclo
de reloj en el cual la máquina está en el estado J. En este sentido, el bloque de decisión pertenece
al estado del cual se ingresó.
El óvalo se emplea para indicar la salida condicional, la cual no depende sólo del estado en
el que se encuentre la máquina, sino también del estado de una o más de las entradas. Siempre se
asocia con la salida de un bloque de decisión y se le llama bloque de salida condicional.
Para la carta que se muestra en la figura 10-7, la máquina empieza en el estado J. Durante este
ciclo de reloj se evalúa la función booleana A(B + C). La salida OUT1 se presenta de manera incon-
dicional durante este ciclo de reloj, momento en el cual también se pueden presentar OUT2 o
OUT3, dependiendo de la evaluación de la función booleana. En la figura 10-7, OUT2 se presenta
condicionalmente en el estado J e incondicionalmente en el estado K. Obsérvese cómo el bloque

Fig. 10-6
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 367

de decisión determina cuál de las salidas se va a presentar en un estado dado mientras también deter-
mina el estado siguiente. Obsérvese también que en el diagrama sólo se presentan aquellas entradas
que realmente influyen en estas decisiones; no es necesario evaluar todas las entradas antes de que
se determine un cambio de estado.

Fig. 10-7

Construcción de la carta ASM


El desarrollo paso a paso de cómo se hace una carta ASM a partir de la especificación del sistema,
quizá, se puede describir de una mejor manera a través de un ejemplo.

EJEMPLO 10.5 Lógica de un codificador incremental. Un codificador incremental se usa ampliamente en


aplicaciones de sistemas de control. Este se puede concebir como un par de pistas de codificadores de código
Gray del tipo que se describió en el ejemplo 1.11. Las señales de salida producidas tienen la forma de dos ondas
cuadradas, una de las cuales está retrasada un cuarto de ciclo en relación con la otra, como se muestra en la
figura 10-8. Las direcciones hacia arriba (adelante) y hacia abajo (atrás) indicadas se refieren a la dirección
del código Gray de conteo que aparece a medida que el codificador de la flecha rota ya sea en sentido de las
manecillas del reloj o en sentido contrario a éstas.

PISTA A

PISTA B

DIRECCIÓN HACIA ARRIBA (ADELANTE)


DIRECCIÓN HACIA ABAJO (ATRÁS)

Fig. 10-8 Formas de onda de las salidas del codificador.

Se desea producir un pulso que se presente en cualquier transición de alguna de las pistas de salida. Este
pulso aparece en la salida PU si el codificador se está moviendo hacia arriba, o en PD si el codificador rota
hacia abajo. De este modo, deberá haber cuatro pulsos por cada ciclo de salida (véase la figura 10-9).
368 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

Fig. 10-9 Diagrama de bloques del ejemplo.

La carta ASM de diseño se construye más fácilmente relacionando cada estado propuesto con una situa-
ción "física" conocida. La carta resultante se muestra en la figura 10-10.

Fig. 10-10
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 369

Considérese su construcción. El estado inicial (etiquetado como 00) se escogió arbitrariamente y representa
la situación física donde ambas pistas del codificador producen Os. Mientras no se presenten cambios en
cualquiera de las pistas, no se desea ninguna salida y el sistema permanece en el mismo estado. Sólo se moverá
o saldrá de este estado cuando una de las entradas cambie. Supóngase, ahora, que la pista B cambia a 1. En
relación con las formas de onda de la figura 10-8 se muestra que el movimiento debe ser en la dirección hacia
arriba y se generará un pulso en PU. De esta manera, el estado siguiente corresponde a la situación física donde
la pista A es 0 y la pista B es 1 (estado 1). Si la pista A ha cambiado a 1, se requeriría un pulso en PD y el
estado siguiente correspondería a la situación física donde la pista A produce un 1 y la pista B un 0 (estado
dos). Obsérvese que la construcción del codificador no permite que las pistas A y B cambien simultáneamente
a 1s. Esto se indica en la carta ASM de diseño por la ausencia de la salida 11 del bloque de decisión de la parte
superior el cual examina las salidas de las pistas y dirije a la máquina al estado siguiente.
El hecho de que las salidas aparezcan solamente en símbolos de salidas condicionales (los óvalos) indica
que el sistema sólo produce salidas como una consecuencia de las transiciones de estado a estado. Estas salidas
condicionales existen solamente para aquella parte del ciclo de reloj entre la determinación de los estados de
A y B y el siguiente pulso de reloj. Por esta razón, con frecuencia son sincronizadas (es decir, pasan a través
de un flip-flop D el cual recibe la señal de reloj a partir del reloj maestro de la máquina). Las entradas no
sincronizadas pueden resultar en pulsos de salida muy angostos los cuales podrían no contener la suficiente
energía para disparar cualquier parte que sigue en el circuito.
Las transiciones de los estados 1 y 2 se controlan mediante las entradas A y B de manera similar a la que
se tiene para la transición del estado 0. Debido a que las situaciones físicas son finitas en extensión, se tiene
que esta carta ASM para la máquina se cerrará a sí misma.
La duración de los pulsos de reloj es crítica. Los pulsos de reloj se especifican para que se presenten en
las transiciones del decodificador; en realidad éstos se presentan en el primer pulso de reloj después de una
transición. Si se va a minimizar el retardo, el periodo de un pulso de reloj debe ser muy pequeño comparado
con el ancho de los pulsos del codificador. Por otro lado, el ancho de los pulsos PU y PD es igual al de un
sólo periodo del reloj y, normalmente hay un requerimiento mínimo para estos pulsos.

10.6 DISEÑO A PARTIR DE UNA CARTA ASM: IMPLANTACIÓN


BOOLEANA PARA EL MÍNIMO NÚMERO DE FLIP-FLOPS

Si se puede construir una carta ASM , es posible determinar la lógica de una manera directa. La
carta ASM de la figura 10-10 se usará para ilustrar los procedimientos. Paso 1. Crear una tabla
de transición de estados.
a) Determinar el número de estados contando los rectángulos En este caso, hay cuatro.
b) Determinar el número deflip-flops necesarios para designar todos los posibles estados y asignar
sus salidas a estados identificados en la carta ASM. Dos ñip-flops pueden representar a cuatro
estados, tres flip-flops hasta ocho estados, etcétera. En el ejemplo de la figura 10-10, se requie-
ren dos flip-flops. Se designarán sus salidas Q como X y Y, respectivamente. Para el estado
0, XY = 00, el estado 1 se representa mediante XY = 01 y, así sucesivamente. La primera co-
lumna de la tabla de transición de estados es una lista de ambas representaciones de los estados
por etiqueta y por flip-flop (véase la tabla 10.8).
c) Tabular el destino de los estados. En la segunda columna, hágase una lista para cada estado
de los posibles estados destino que se pueden alcanzar desde un estado dado.
d) Tabular las condiciones. En la columna 3, hacer una lista de las condiciones que están asociadas
con cada transición estado a estado.
370 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

En un sentido, completar la tabla de transición de estados es apenas una lista de direcciones


organizada de una manera lógica, la cual sirve como un equivalente de un mapa de carreteras.
Paso 2. Obtener las ecuaciones de diseño del controlador.

a) Léase la segunda columna de la tabla de transición de estados y obsérvese cuándo se espera que
un flip-flop tome el valor de I en el estado siguiente (es decir, después del siguiente pulso de
reloj).
b) Determínense las condiciones a partir de la tercera columna. Por ejemplo, la tercera línea dice
que el siguiente valor de X debe ser 1 si el estado presente es 0 y si A'B es VERDADERO.
c) Exprésense las condiciones que propician que la siguiente X o la siguiente Y sea 1, en términos
del estado presente y las entradas. Se puede obtener un conjunto de ecuaciones booleanas, de
la misma manera que las ecuaciones lógicas se escriben a partir de una tabla de verdad, para
especificar las condiciones requeridas para todas las transiciones de estado a estado. Esta lógica
se le llama el controlador. Las ecuaciones del controlador que se obtienen a partir de la tabla
10.8 son
X s i g = "cero" AB' + "uno" AB + "dos" A + "tres" A
Y s i g = "cero" A'B + "uno" B + "dos" AB + "tres" B

Tabla 10.8 Tabla de transición de estados


ESTADO PRESENTE ESTADO SIGUIENTE CONDICIONES
XY XY

cero 0 0 cero 0 0 A1B1

uno 0 1 A' B
dos 1 0 A B1
uno 0 1 cero 0 0 A1B1
uno 0 1 A1 B
tres 1 1 A B

dos 1 0 cero 0 0 A1 B1
dos 1 0 A B1
tres 1 1 A B
tres 1 1 uno 0 1 A' B
dos 1 0 A B1
tres 1 1 AB
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 371

d) Codifíquense los nombres de los estados con los valores de las salidas de los flip-flops. Las
ecuaciones de diseño resultantes para el controlador representan la lógica que se presentará a
los estados de los flip-flops:
Xsig = X'Y'AB' + X'YAB + XY'A + XYA (10.1)
Ysig = X'Y'A'B + X'YB + XY'AB + XYB (10.2)
Si se emplean flip-flops D, las conexiones se hacen a las entradas D; si se emplean flip-flops JK,
las ecuaciones se pueden dividir en una parte J y otra K, como se ilustra en la sección 10.3.
Paso 3. Obténganse las ecuaciones de diseño de salida.
a) Localícese toda referencia a una salida en la carta ASM y determínense las condiciones, si exis-
ten, asociadas con esa referencia.
b) Únanse todas las referencias con una conexión booleana OR.
En la figura 10-10, la variable PU se presenta en cuatro lugares, todas son salidas condiciona-
les. La primera aparición de PU se presenta cuando el sistema está en el estado 0 AND (Y) cuando
A'B es VERDADERO. Las otras instancias se definen de modo similar y conducen a la siguiente
ecuación booleana:
PU = "cero" A'B + "uno" AB + "dos" AB' + "tres" A'B'
Después de codificar la identificación de los estados en los valores de los flip-flops, se tiene
PU = X'Y'A'B + X'YAB + XY'AB' + XYA'B' (10.3)
De manera similar, la ecuación para PD determinada es
PD = "cero" AB' + "uno" A'B' + "dos" AB + "tres" A'B
= X'Y'AB' + X'YA'B + XY'AB + XYA'B (10.4)
Las ecuaciones (10.1) a la (10.4) constituyen un conjunto completo de ecuaciones de diseño
para una máquina de estado. El diseñador puede implantarlas en la forma que desee. Las ecuacio-
nes se pueden simplificar con mapas si se va a emplear pequeña escala de integración. Muy proba-
blemente se va a usar un dispositivo lógico programable y, sólo se necesitará traducir las ecuaciones
booleanas a la sintaxis necesaria para el software de diseño. El problema 10.9 muestra un método
empleando multiplexores, los cuales son preferidos por algunos diseñadores.

10.7 DISEÑO A PARTIR DE UNA CARTA ASM: IMPLANTACIÓN DE


UN CONTROLADOR DE UN FLIP-FLOP POR ESTADO

Para controladores pequeños, algunos diseñadores prefieren un arreglo donde haya tantos flip-
flops de estado como estados. Cada flip-flop se identifica con un estado y, cuando en ese estado,
el flip-flop correspondiente es el único que está "caliente", es decir, que tiene su salida Q fija en
VERDADERO. Esto produce en un controlador con la lógica de decodificación más simple que
la implantación con el mínimo de flip-flops. El diseño de un controlador con un flip-flop por estado
empieza, como antes, con el dibujo de la tabla de transición de estados a partir de la carta ASM.
Esta vez, sin embargo, la información se tabula para indicar todos los estados previos, los cuales
conducen a un estado presente.
372 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

Ecuaciones de diseño de un controlador


En relación con el bloque de la parte superior de la tabla 10.9 y la confirmación de la figura 10-10,
se ve que la entrada D del flip-flop "cero" debe ser un 1 si las entradas A y B son FALSAS las
dos, sin considerar el estado anterior. Continuando, se observa de la tabla que todas las condiciones
de entrada para un estado presente dado son las mismas, independientemente de cualquier estado
previo. Así, las cuatro ecuaciones de diseño son "cero" = A'B', "uno" = A'B, "dos" = AB'
y "tres" = AB.

Tabla 10.9
ESTADO PREVIO ESTADO PRESENTE CONDICIONES

cero cero A1 B'

uno A1B1
dos A1B1
tres "no importa"
cero uno A1 B
uno A1 B
tres A' B
dos "no importa"
cero dos A B1
dos A B1
tres A B1
uno "no importa"
tres tres AB
uno AB
dos AB
cero "no importa"

Ecuaciones de salida
Las ecuaciones de salida son similares a aquellas que se obtuvieron en la sección 10.6 excepto que
no es necesario codificar los estados:
PU ="cero"A'B + "uno" AB + "dos" AB' +. "tres" A'B'
PD = "cero" AB' + "uno" A'B' + "dos" AB + "tres" A'B
La lógica para la solución completa de un flip-flop para cada estado se muestra en la figura
10-11.
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 373

Fig. 10-11 Implantación de un controlador con un ñip-ñop por estado

10.8 DISEÑO A PARTIR DE UNA CARTA ASM: ENTRADAS DE UNA TABLA DE


ESTADOS A UN DISPOSITIVO LÓGICO PROGRAMABLE

Cuando una máquina de estado se va a implantar en un dispositivo programable, como se indicó


en la sección 10.2, se pueden emplear las entradas booleanas. Muchos diseñadores, sin embargo,
prefieren emplear una técnica de software denominada entrada de una tabla de estados en la que
las definiciones de todos los estados y la información de la carta ASM acerca de ellos se escriben
en la forma de programación estructurada.

EJEMPLO 10.6 Considérense las especificaciones de diseño del codificador incremental del ejemplo 10.5
arregladas para las entradas de la tabla de estados, empleando el software INTEL iPLSII.*

•Los ejemplos iPLSII se utilizan con el permiso de Intel Corporation.


374 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

ENTRADA COMENTARIO

HEADER No se incluye en este ejemplo


MACHINE: ejemplo del conta-
dor Nombre del sistema
CLOCK: CLK Nombre del reloj
STATES: [FF1 FF2]
ZERO [0 0]
ONE [0 1] Definición de los estados
TWO [1 0]
THREE [1 1]
ZERO:
IF A'*B' THEN ZERO Salida condicional a los estados siguientes
IF A'*B THEN ONE
TWO Salida por omisión. Puesto que las salidas de las pistas del codificador
nunca cambian simultáneamente, una transición de 00 a 11 no se puede
presentar. De este modo, el estado TWO es la única posibilidad rema-
nente.
ASSERT:
IF A'*B THEN PU Salida condicional
IF A*B' THEN PD
ONE:
CASE Forma alternativa a IF_THEN
A'*B: ZERO Salida condicional a los estados siguientes
A*B: THREE
ENDCASE
ONE Salida por omisión (AB = 10 no puede presentarse)
ASSERT:
IF A'*B' THEN PD Salida condicional
IF A*B THEN PU
TWO:
CASE
A'*B': ZERO Salida condicional a los estados siguientes
A*B: THREE
ENDCASE
TWO Salida por omisión (01 no puede presentarse)
ASSERT:
IF A'*B' THEN PU Salida condicional
IF A*B THEN PD
THREE:
CASE
A'*B: ONE Salida condicional a los estados siguientes
A*B: TWO
ENDCASE
THREE Salida por omisión (00 no puede presentarse)
ASSERT:
IF A'*B THEN PD Salida condicional
IF A*B' THEN PU
END$
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 375

Los estados se definen en términos del estado de los flip-flops por medio de una matriz. Así, para cada
estado en secuencia se indican las salidas y las entradas. Los enunciados IFJTHEN o CASE se emplean para
salida condicional; las salidas incondicionales, cuando se presentan, se listan solas.
Con la declaración de los estados, las salidas se listan después de la palabra ASSERT. Las salidas condi-
cionales se pueden listar ya sea por el enunciado IF (condición), THEN, (salida), o CASE, exactamente como
se hizo con las salidas de estado.

Cuando se completa el programa de entradas de la tabla de estados, se ingresa a una computa-


dora, que con frecuencia es una computadora personal. El software iPLSII traduce las entradas
de la tabla de estados en un conjunto apropiado de ecuaciones booleanas, las cuales pueden ser ins-
peccionadas normalmente si el diseñador, lo desea. El dispositivo programable toma su lugar, exac-
tamente como si se hubieran empleado entradas booleanas. La operación de programación se hace
más sencilla para el usuario puesto que permite al diseñador ingresar la información de programa-
ción directamente desde su herramienta de diseño, la carta ASM.

10.9 RETARDO DEL RELOJ EN MÁQUINAS DE ESTADO

El corazón de una máquina de estado síncrona es el pulso de reloj el cual se asume que aparece si-
multáneamente en todos los puntos del circuito. En muchas situaciones prácticas no es posible man-
tener la sincronización de una manera precisa, debido a los diferentes retardos de propagación en
las trayectorias que sigue el reloj. La diferencia en tiempo entre la aparición de dos señales de reloj
supuestamente coincidentes es conocido como retardo del reloj (clock skew), la cual, en circuitos
de alta velocidad, puede ser una significativa fuente de error.
EJEMPLO 10.7 Para ejemplificar el efecto del retardo del reloj, el circuito de la figura 7-18 se redibuja en la
figura 10-12.

Fig. 10-12
376 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

El primero y último flip-flops se han etiquetado como A y B, respectivamente, por conveniencia. Asúmase
que el pulso de reloj llega al flip-flop B algún tiempo después que el "mismo" pulso llega al flip-flop A. Es
importante que el pulso de reloj que llega antes no cause ningún cambio en la entrada D del flip-flop B antes
o que coincida con la llegada del pulso a este flip-flop. Considérese la secuencia de eventos:
1. El pulso de reloj llega al flip-flop A e inicia un cambio en su salida.
2. Después de un retardo de propagación, el cambio en el flip-flop A produce un cambio lógico en el nivel
AND.
3. Después de un retardo de propagación, el cambio en una o más compuertas AND produce un cambio en
el nivel OR.
4. Después de un retardo de propagación, el cambio en una compuerta OR produce un cambio en la entrada
D de otro flip-flop (B en este caso).
5. Después de un mínimo tiempo de inicio, el flip-flop B actúa sobre información errónea.
El mínimo tiempo que se toma para completar los cinco pasos representa el máximo retardo (retardo del
reloj) que el sistema puede tolerar. Empleando los datos listados en la figura, el máximo retardo del reloj que
se puede tolerar por el sistema es 10 + 5 + 5 + 10 = 30 ns.
Obsérvese que el cálculo de la máxima frecuencia del reloj permisible en el ejemplo 7.5 requería del cono-
cimiento de los retardos de propagación máximos, mientras que el cálculo del máximo retardo del reloj involu-
cra el uso de los retardos mínimos.
También es valioso observar que el cambio en la entrada D del flip-flop B (paso 4) causa una violación
en el tiempo de inicio para ese flip-flop. Si las fallas de metaestabilidad son un problema para el diseño en
cuestión el máximo retardo aceptable se reduce al retardo de tiempo acumulado en los primeros cuatro pasos
el cual, en este ejemplo es de 20 ns.

Los diseñadores de sistemas digitales de alta velocidad tienen que estar directamente involucra-
dos con el retardo del reloj y a menudo considerar grandes longitudes para igualar las trayectorias

Fig. 10-13
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 377

de retardo del reloj y/o reducir los retardos de propagación mínimos. Mientras los fabricantes siem-
pre han especificado los valores máximos de los parámetros referentes al tiempo, muchos están aho-
ra especificando los valores mínimos también.

10.10 INICIALIZACIÓN Y BLOQUEO EN MÁQUINAS DE ESTADO

En general es muy importante contar con un medio para la inicialización de una máquina de estado
a un estado conocido después de que el equipo se ha encendido y, a menudo es conveniente que
este estado se designe para inicializar el estado de los flip-flops a 0. Se puede usar una línea común
de borrado o reset para la inicialización, como se muestra en la figura 10-13.
En la implantación de un flip-flop por cada estado (sección 10.7) la situación de todos los esta-
dos en cero no puede presentarse. En este caso, a menudo el diseñador tiene el recurso de intercam-
biar los papeles de Q y Q' del flip-flop una de las cuales debe estar en 1 en el estado de inicialización.
La salida Q' está conectada a todos los puntos en la lógica donde debiera estar conectada Q normal-
mente. Cuando se pulsa la línea común de borrado, entonces pone al sistema en el estado inicial
apropiado ( 1 en este caso). Obsérvese que también es necesario la inversión lógica de la señal que
se aplica a la entrada D del flip-flop de modo que produzca un 0 cuando se desea un 1. La modifica-
ción se muestra en la figura 10-14.

Si la máquina de estado no se inicializa, entonces, cuando el dispositivo se energiza podría asu-


mir aleatoriamente un estado "no importa" o no especificado a partir del cual puede ser imposible
alcanzar un estado permisible sin considerar el número de pulsos de reloj que se apliquen. Tal situa-
ción se denomina bloqueo (lockout) y se presentó en el problema 8.11. La solución más efectiva para
problemas de bloqueo es evitarlos al proveer al sistema una señal de inicialización ya sea de manera
externa o que se aplique en forma automática.

Problemas resueltos
10.1 Implántese el contador en código Gray del ejemplo 10.1 usando componentes de
integración a pequeña escala para la lógica de la máquina de estado. Hágase el cálculo de
los números de chips necesarios.
La tabla de verdad a partir de la cual se diseña la lógica se obtuvo previamente (tabla 10.2) y se
reproduce enseguida.
378 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

Estado presente Estado siguiente


D C B A D C B A
0 0 0 0 0 0 0 1
0 0 0 1 0 0 1 1
0 0 1 0 0 1 1 0
0 0 1 1 0 0 1 0
0 1 0 0 1 1 0 0
0 1 0 1 0 1 0 0
0 1 1 0 0 1 1 1
0 1 1 1 0 1 0 1
1 0 0 0 0 0 0 0
1 0 0 1 1 0 0 0
1 0 1 0 1 0 1 1
1 0 1 1 1 0 0 1
1 1 0 0 1 1 0 1
1 1 0 1 1 1 1 1
1 1 1 0 1 0 1 0
1 1 1 1 1 1 1 0

Empleando el conjunto de estados presentes como coordenadas de las variables independientes,


los mapas K que describen los siguientes estados para cada una de las cuatro variables que se crean
como se describió en el ejemplo 10.3.
La expresión booleana simplificada para dA que se muestra en la figura 10-15 se obtiene haciendo
uso del hecho que X ⊕ Y = XY' + X'Y y (X ⊕ Y)' = XY + X'Y'. La forma de OR exclusiva es prede-
cible para el patrón del mapa (consúltese la sección 3.5).

Fig. 10-15

Conteo de chips SSI: 2 compuertas OR exclusiva (1 chip)


5 compuertas AND de dos entradas (2 chips)
4 compuertas AND de tres entradas (2 chips)
3 compuertas OR de tres entradas (1 chip)
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 379

Fig. 10-16 Solución al problema 10.1


380 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

Todas las variables aparecen en forma directa y complementadas (cuatro inversores) y se requiere
un inversor para las compuertas XOR. Los cinco inversores necesarios estarían en un chip para dar un
total de siete. Obsérvese que es posible ahorrar un chip mediante el alambrado de las dos compuertas
AND de tres entradas que sobran como de dos entradas. El circuito lógico completo para el contador
se muestra en la figura 10-16.

10.2 La tabla 10.10 muestra la secuencia de conteo de un contador con exceso de tres. Este disposi-
tivo cuenta en binario desde el equivalente decimal de 3 hasta el equivalente decimal de 12
y entonces se repite. Diséñese el contador como una máquina de estado empleando una ROM
y flip-flops D para registrar los estados presentes.

Tabla 10.10 Dirección Tabla 10.11


A B C D en deci- Estado Estado
mal de la presente siguiente
0 0 1 1
ROM A BC D A BC D
0 1 0 0
0 1 0 1 3 0 0 1 1 0 1 0 0
0 1 1 0 4 0 1 0 0 0 1 0 1
0 1 1 1 5 0 1 0 1 0 1 1 0
1 0 0 0 6 0 1 1 0 0 1 1 1
1 0 0 1 7 0 1 1 1 1 0 0 0
1 0 1 0 8 1 0 0 0 1 0 0 1
1 0 1 1 9 1 0 0 1 1 0 1 0
1 1 0 0 10 1 0 1 0 1 0 1 1
Se repite 11 1 0 1 1 1 1 0 0
12 1 1 0 0 0 0 1 1

Empléese la tabla de estados como una base para la programación de la ROM (véase la tabla 10.11).
La máquina de estado resultante se muestra en la figura 10-17.

10.3 En relación con el problema 10.2, determínese cómo se puede construir un contador con ex-
ceso de cuatro hacia arriba/hacia abajo empleando un PAL16R6 como hardware.
Una buena estrategia de diseño es el uso de las salidas de los flip-flops para representar los estados
y diseñar el empleo de una tabla de estado presente/estado siguiente. Dicha tabla se desarrolló en el
capítulo 2 (problema 2.33).
Hay seis flip-flops en el PAL16R6 y solamente se necesitan cuatro para contar los estados. Sin em-
bargo, cada una de las salidas de la lógica combinacional contiene diez términos AND y no cabrán en
el PAL puesto que solamente se dispone de ocho compuertas AND para manejar cada uno de los flip-
flops. Por lo tanto es necesario intentar una simplificación. En el problema 3.28, para dos de las va-
riables se ha llevado a cabo la simplificación de los mapas K de cinco variables donde las funciones
An y Cn se redujeron a seis términos AND. Las dos variables restantes se pueden simplificar fácilmente
a ocho o menos términos.
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 381

Fig. 10-17

Llevando a cabo la simplificación, el contador se puede implantar en un PAL16R6 con espacio


de sobra. Un conjunto de ecuaciones de diseño que funciona es

An = (U/D)'BCD + AD + AC + (U/D)'AB' + (U/D)AB + (U/D)A'B'


Bn = (U/D)'A'B'CD + (U/D)'A'BC + (U/D)'A'BCD' + (U/D)'AB'CD
+ (U/D)A'B'CD + (U/D)A'BC'D + (U/D)A BC + (U/D)'AB'C'D'
Cn = (U/D)'CD' + (U/D)'C'D + (U/D)C'D' + (U/D)'AB f (U/D)ACD + (U/D)BCD
Dn = D'

10.4 Termínense las tablas para J y K del ejemplo 10.3 y dibújese la configuración del circuito.
Los mapas necesarios se crean en relación a la figura 10-2 y la tabla 10.7. Como un primer paso,
todas las entradas "no importa" en los mapas de D se transfieren a los mapas de J y K. Una entrada
típica JK se genera ahora como sigue. Considérese el renglón 4 columna 2 del mapa de Csig en la figura
10-2. Éste dice que si el estado presente es 1001, el valor siguiente de C será 1. De este modo, C cambiará
de 0 a 1, lo que ocurrirá si Jc = 1 y Kc = X de acuerdo con la tabla 10.7. Estas entradas están encerradas
en un círculo en el primer par de mapas de la figura 10-18. La configuración del circuito se muestra en
la figura 10-19.
382 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

Fig. 10-18

10.5 Para el contador especificado en la tabla 10.12 diséñese la lógica requerida para una máquina
de estado empleando flip-flops JK.
La tabla de estados se crea (tabla 10.13), observando que existen seis estados "no importa": 0010,
0100,0101,1010, 1011 y 1101. Se dibujan los mapas D para cada una de las variables y entonces se expan-
den a los correspondientes mapas para JK empleando las relaciones de transición de la tabla 10.7, la
cuales se resumen como sigue:
Si el estado siguiente va a ser 1:
Cuando Q = 1, entonces J = X y K = 0
Cuando Q = 0, entonces J = 1 y K = X
Si el estado siguiente va a ser 0:
Cuando Q = 1, entonces J = X y K = 1
Cuando Q = 0, entonces J = 0 y K = X
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 383

Fig. 10-19

Tabla 10.12 Tabla 10.13 Tabla 10.14


DCBA Estado Estado A B C
0000 presente siguiente 0 0 0
0001 DCBA DCBA 0 1 0
0 0 11 0000 0001 0 1 1
01 1 0 0001 0 0 11 1 0 1
0111 0 0 11 01 1 0 1 1 0
10 0 0 01 1 0 0111 0 0 1
10 0 1 0111 10 00 1 0 0
110 0 10 0 0 10 0 1 1 1 1
1110 10 0 1 110 0 Se repite
1111 110 0 1110
Se repite 1110 1111
1111 0000
384 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

En el conjunto de mapas resultante (figura 10-20), los estados especificados como "no importa"
se muestran en negritas para distinguirlos de los "no importa" asociados con los JK del proceso de tran-
sición.

Fig. 10-20 Diseño para el problema 10.5


DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 385

10.6 Considérese un contador unidireccional especificado en la tabla 10.14. Asumiendo que se dis-
pone de las dos salidas de los flip-flops (la directa y la complementada), desarróllese el siste-
ma de ecuaciones de la lógica combinacional para usarse con flip-flops D. Repítase el proce-
dimiento para flip-flops JK y compárense los dos diseños desde el punto de vista del silicio
utilizado y la máxima frecuencia del reloj. Empléense las siguientes especificaciones:
1. Los flip-flops D y JK usan cada uno diez unidades de silicio y ambos tienen un tiempo
de inicio de 20 unidades de tiempo, un tiempo de retención de 5 unidades y un retardo
de propagación de 25 unidades.
2. Las compuertas tienen un retardo de propagación de 10 unidades de tiempo y usan
cuatro unidades de silicio más 0.5 unidades por entrada.
Los mapas relevantes para los diseños con flip-flops D y JK se muestran en las figuras 10-21 y 10-
22, respectivamente.

Fig. 10-21 Diseño con flip-flops D para el problema 10.6

Fig. 10-22 Diseño con flip-flops JK para el problema 10.6


386 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

Diseño con flip-flops D


Silicio utilizado: AN 15 unidades de silicio (4 x 3 + 6 X 0.5)
BN 10 (para A"C solamente puesto
que AB' ya está disponible)
CN 15
Flip-flops D 30 (3 x 10)
70 unidades de silicio 20
Tiempo:
Dos niveles de lógica unidades de tiempo
Tiempo de inicio del
flip-flop 20
Tiempo de propagación 25
65 unidades de tiempo
Diseño con flip-flops JK
Silicio utilizado:
JA, KA 0 unidades de silicio (conexión directa)
JB, KB 10 (1 compuerta OR de dos en-
tradas para cada uno)
JC, KC 10 (1 compuerta OR de dos en-
tradas para cada uno)
Flip-flops JK 30
50 unidades de silicio (29% menos que el diseño con
D)
Tiempo:
Retardo de las com-
puertas 10 unidades de tiempo
Tiempo de inicio del
flip-flop Tiempo de 20
propagación 25
55 unidades de tiempo (15% más rápido que el
diseño con flip-flops D)

10.7 Implántese el sistema de la figura 10-10 empleando multiplexores para la lógica y un número mínimo de
flip-flops D.
Una estrategia efectiva es usar las salidas del estado presente como entradas de selección para los
multiplexores. Si cada salida del multiplexor se conecta a la entrada D del flip-flop de estado, entonces el
problema consiste en asegurar que la entrada de datos del multiplexor asociada con el estado presente
proporcione el valor apropiado del estado siguiente para el flip-flop.
Se hace uso de la tabla de transición desarrollada en la sección 10.6 (véase tabla de página 387).
A partir de la tabla, es claro que si el sistema está en el estado 0, el estado siguiente del flip-flop X
será 1 sólo si AB' es VERDADERO. De este modo, la lógica implantada AB' se fija a la entrada 0 del
multiplexor, reemplazando a este flip-flop. De manera similar, la lógica para AB se conecta a la entrada de
datos 1 (la cual se selecciona con las salidas del estado 1). En el caso de la entrada de datos 2, la lógica es
AB' + AB la cual se puede simplificar a A. La implantación final para ambos multiplexores X y Y se
muestra en la figura 10-23. La lógica de salida se forma a partir de las ecuaciones (10.3) y (10.4) en la
sección 10.6.
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 387

ESTADO PRESENTE ESTADO SIGUIENTE CONDICIONES


XY XY

cero 0 0 cero 0 0 A' B'


uno 0 1 A' B
dos 1 0 A B'
uno 0 1 cero 0 0 A' B'
uno 0 1 A' B
tres 11 AB
dos 1 0 cero 0 0 A' B'
dos 1 0 A B'
tres 1 1 A B

tres 11 uno 0 1 A' B


dos 1 0 A B'
tres 1 1 AB

Fig. 10-23 Implantación del controlador con multiplexores


388 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

Si se está interesado en fabricar el codificador incrementa! empleando chips SSI y MSI, es útil com-
parar la cantidad de chips para las implantaciones de un flip-flop por estado y con multiplexores (figu-
ras 10-11 y 10-23, respectivamente).
Implantación de un flíp-flop por estado:
Lógica de salida 2 compuertas de cuatro entradas (2/chip) 1 chip
8 compuertas de dos entradas (4/chip) 2 chip
Flip-ñops 6 flip-flops* D (4/chip) 2 chip
Decodificadores
A,B 4 compuertas de dos entradas (4/chip) 1 chip
2 inversores (6/chip) 1 chip
7 chips
Implantación con multiplexores:
Lógica de salida 10 compuertas de cuatro entradas (2/chip) 5 chip
Controlador 2 MUX de dos selecciones (2/chip) 1 chip
Flip-flops 4 flip-flops* D (4/chip) 1 chip
Compuertas del
MUX 3 compuertas de dos entradas (4/chip) 1 chip
8 chips

Fig. 10-24

*Incluye flip-flops de sincronización para las salidas A y B, como se discutió en el ejemplo 10.5
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 389

10.8 Dada la carta ASM que se muestra en la figura 10-24, lístense las ecuaciones para los
estados de las variables y para las salidas. Asúmase que en el diseño se emplea un número
mínimo de flip-flops D.
Hay ocho estados, por lo tanto se necesitan tres flip-flops, que se etiquetarán como R, S y T. Los
estados han sido designados como F, G, H, J, K, L, M y N, como se muestra en la figura 10-24.
Construyase una tabla de transición de estados (tabla 10.15) como se hizo en el paso 2 de la sección
10.6. Las asignaciones de los estados R, S y T se hacen de manera arbitraria en orden alfabético.

Tabla 10.15
ESTADO PRESENTE ESTADO SIGUIENTE CONDICIONES
R ST RST
F 0 0 0 G 001 Incondicional
G 001 H 0 1 0 X'
J 01 1 X
H 0 1 0 L 101 X
M 110 X ' W
N 111 X'W
J 01 1 K 100 V
G 001 V
K 100 G 001 Z
M 1 10 Z'
L 101 N 111 W'
H 010 W
M 1 10 F 000 Incondicional

N 111 F 0 0 0 Incondicional

Después, escríbanse las ecuaciones del controlador empleando el método descrito en el paso 3 de
la sección 10.6.

d R = H + JV + KZ' + LW
= R'ST' + R'STV + RS'T'Z' + RS'TW
d S = G + HX' + KZ' + L
= R'S'T + R'ST'X' + RS'T'Z' + RST
d T = F + GX + H(X + W) + JV + KZ + LW
= R'S'T' + R'S'TX + R'ST'(X + W) + R'STV + RS'T'Z + RS'TW
390 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

Obsérvese que se han usado algunas simplificaciones booleanas. Por ejemplo, en la tercera ecua-
ción, el término H(X + W) es una reducción de H(X + X'W).
Finalmente, las ecuaciones de salida se pueden escribir directamente a partir de la carta ASM. Por
ejemplo, se ve que la salida A se produce cuando el sistema está en alguno de los estados F, H o L:

A=F+H+L
= R'S'T' + R'ST' + RS'T
B=H+J+K
= R'ST' + R'ST + RS'T'
C = G + M + HX'
= RS'T + RST' + R'ST'X'

10.9 Hágase una carta ASM correspondiente a la máquina de estado síncrona que se muestra en la
figura 10-25.
El símbolo de la parte baja de lado izquierdo en la figura 10-25 es la equivalencia de una compuer-
ta, en lógica positiva, que produce una salida VERDADERA cuando sus entradas son iguales. En for-
ma booleana, la equivalencia de las variables B y C se expresa como F = B'C + BC.

Fig. 10-25
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 391

Iníciese en RST = 000 y determínese cada uno de los estados siguientes, observando las entradas
en las líneas de direccionamiento del multiplexor después de cada pulso de reloj:
Cuando se está en el estado 000, es claro que el estado siguiente será 001.
Cuando se está en el estado 001, las entradas d son A'A0 lo que significa que el estado siguiente
será 010 (2) si A = 1 y 100 (4) si A = 0.
Cuando se está en el estado 010, las entradas d son C'CC de modo que se pasa al estado 3 si
C = 1 y al estado 4 si C =0.
Para el estado 3, las entradas d son dR = 0, ds = BC y dT = (B'C + BC), respectivamente. El
análisis de las distintas posibilidades se hace más fácil por medio de una pequeña tabla de verdad (tabla
10.16).

Tabla 10.16

El estado 4 produce las entradas d, 0AA, y el estado siguiente será el 3 si A = 1 y el 0 si A = 0. A


partir de la información anterior, ahora se puede construir la tabla de transición de estados iniciando
con RST = 000 (tabla 10.17).
Tabla 10.17
ESTADO PRESENTE ESTADO SIGUIENTE CONDICIONES
RST RST
"0" 000 "1" 001 Incondicional

"1" 001 "2" 010 A


"4" 100 A'
"2" 010 "3" 011 C
"4" 100 C'
"3" 011 "3" 011 BC
"1" 001 B'C'
"0" 000 B'C + BC'
"4" 100 "0" 000 A'
"3" 01 1 A

Obsérvese que se pasa del estado 1 al estado 4 si A es FALSA, sin considerar el valor de B.
En la figura 10-25 se ve que la salida X se presenta cuando se está en los estados 001 o 010 (1 o
2); la salida W pertenece al estado 001, pero solamente si A es FALSA y B es VERDADERA. Las salidas
se pueden expresar en forma booleana como
W = R'S'TBA' [estado "1" y BA' (salida condicional)]
X = ST + S'T [estado "1" o estado "2"]
Ahora se puede dibujar la carta ASM como se muestra en la figura 10-26.
392 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

Fig. 10-26

Fig. 10-27 Carta ASM para el problema 10.10. La notación "F" a la salida del bloque de decisión A,
B indica que cuando B es FALSA, A es un "no importa"; es decir, puede ser VERDADE-
RA O FALSA
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 393

10.10 Usando la carta ASM que se muestra en la figura 10-27, implántese el controlador de un flip-flop
por estado correspondiente.
Para cada uno de los seis estados síganse hacia atrás a través de la carta para determinar el estado
o estados anteriores y las condiciones de transición asociadas con cada uno de ellos. Los resultados de
este análisis se organizan y presentan en la tabla 10.18.

Fig. 10-28
394 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

Las ecuaciones del controlador escribir para cada estado presente directamente a partir de la tabla:

L=R+P
M = LB' + NC
N=M
P = L(A'B + ABD) + NC'D
Q = LABD' + NC'D' + QA'
R = QA

El diseño completo de un flip-flop por estado se muestra en la figura 10-28. Obsérvese la modifica-
ción para inicialización, involucrada en el flip-flop L, la cual se describió en la sección 10.10.
10.11 Con referencia al problema 10.10, obténganse las ecuaciones booleanas para un diseño con
el mínimo de flip-flops.
Se requieren tres flip-flops para codificar cinco estados. Nombrándolos U, V y W, se crea la tabla
de transición de estados mediante el seguimiento de la lógica secuencial en la carta ASM de la figura
10-27 o mediante la conversión de estado anterior a estado presente y de estado presente a estado si-
guiente en la tabla 10.18 y reacomodando las entradas. El resultado se muestra en la tabla 10.19.
Las ecuaciones de diseño del controlador se obtienen escribiendo, para cada uno de los flip-flops
D, todas las condiciones para las cuales el estado siguiente es un 1 lógico. Las ecuaciones resultantes
después de que se han simplificado aplicando la identidad A. 13 (apéndice A) en los lugares apropiados
son:

DU = LABD' + NC'D' + Q = U'V'W'ABD' + U'VW'C'D' + UV'W'


DV = L(A'B + ABD) + M + NC'D = U'V'W'B(A' + D) + U'V'W + U'VW'C'D
DW = L(B' + A'B + ABD) + N(C + C'D) + QA = L(B' + B(A' + AD)) + N(C + D) + QA
= U'V'W'(B' + A' + D) + U'VW'(C + D) + UV'W'A

Las ecuaciones de salida se pueden escribir directamente a partir de la carta ASM:

OUT1 = L + P = U'V'W + U'VW


OUT2 = Q + LABD + NC'D = UV'W + U'V'W'ABD + U'VW'C'D
OUT3 = R = UV'W

10.12 Conviértase la solución del problema 10.10 a un listado para las entradas a la tabla de estados.
La parte esencial del programa de las entradas a la tabla de estados consiste de la matriz de estados
y la lista de condiciones para cada estado, como se obtuvo de la tabla 10.19.
ESTADOS [QU QV QW]
L [0 0 0]
M [0 0 1]
N [0 1 0]
P [0 1 1]
Q [1 0 0]
R [1 0 1]
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 395

Tabla 10.18
ESTADO AN- ESTADO CONDICIONES
TERIOR PRESENTE

R L Incondicional

P Incondicional

L M B"
N C

M N Incondicional

L P A' B + A B D
N C'D

L Q ABD'

N C'D'
Q A'

Q R A

Tabla 10.19

ESTADO PRESENTE ESTADO SIGUIENTE CONDICIONES


UVW UVW
L 000 M 001 B'
Q 100 ABD'
P 011 A' B + A B D
M 001 N 010 Incondicional
N 010 M 001 C
P 011 C'D
Q 100 C'D'
P 011 L 000 Incondicional
Q 100 Q 100 A'
R 101 A
R 101 L 000 Incondicional
396 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

L:
IF B' THEN M
IF A'*B + A*B*D THEN P
IF A*B*D' THEN Q
ASSERT:
OUT1
IF A*B*D THEN OUTPUT 2
M:
N
N:
IF C THEN M
IF C'*D THEN P
IF C'*D' THEN Q
ASSERT:
IF C'*D THEN OUT2
P:
L
ASSERT:
OUT1
Q:
IF A THEN R
IF A' THEN Q
ASSERT: OUT2

L
ASSERT:
R: OUT3

Fig. 10-29
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 397

10.13 Mediante el empleo de la carta ASM del problema 10.10 y las formas de onda que se muestran
en la figura 10-29 trácese el diagrama de tiempos para todos los estados y las salidas asumien-
do un reset previo.
Obsérvese que las transiciones de la entrada coinciden con los pulsos de reloj indicando que es una
máquina síncrona. Cuando se aplica el reset, la máquina está inicialmente en el estado L, como se espe-
cifica.
En relación con la carta ASM de la figura 10-27 se sigue la secuencia de estados:
1. Puesto que antes del primer pulso de reloj , AyB= l y D= 0, se ve que la máquina se irá al estado
Q-
2. En el pulso 2, A = 1 y se mueve al estado R.
3. El estado siguiente es incondicionalmente L.
4. A = 1, B = 1 y D = 1; el estado es P.
5. Se transfiere a L incondicionalmente.
6. A = 0 y B = 1; el estado es P.
7. Regresa a L incondicionalmente.
8. Puesto que A y B únicamente determinan el estado que sigue a L y permanecen sin cambio des
pués del pulso de reloj 4, la máquina de estado oscilará entre los estados P y L indefinidamente.
A partir de la solución al problema 10.11,
OUT1 = L + P (incondicional; OUT1 = 1 si la máquina está en los estados L o P)
O U T 2 = Q + L A B D + N C ' D OUT3 = R (incondicional)
Las formas de onda de las salidas se muestran en la figura 10-30.

Fig. 10-30

La salida 2 permanece en 0 después del pulso 4 aun cuando recurre al estado L ya que es incondi-
cional de la entrada A la cual se ve que permanece en 0 sobre todo este rango.

10.14 En el sistema del ejemplo 7.5 (figura 7-18), se intentó que los dos flip-flops recibieran la señal
de reloj al mismo tiempo. Sin embargo, debido a la diferencia en longitud de las trayectorias
de la señal, los pulsos de reloj llegaron a cada uno de los flip-flops con una ligera diferencia
398 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

de tiempo; se dice que están retardadas. Además de los datos proporcionados en el ejemplo
7.5, se dan los parámetros de tiempo mínimos como sigue:

Para los flip-flops Para las compuertas

TPd, HL = 7ns Tpd,HL = 4ns


TPd, LH = 5ns T P d, LH = 4ns
Tsu = 0ns
Th = 0 ns

Determínese el retardo máximo permisible para el reloj.


Considérese la secuencia de tiempos después de que llega el primer pulso de reloj, que dispara a
un flip-flop asociado el cual propicia un cambio en las entradas a la lógica las cuales, a su vez, producen
un cambio en las salidas de la lógica. El proceso se muestra gráficamente en la figura 10-31. Después
de 5 + 4 + 4 = 13 ns, las entradas D pueden contener datos erróneos que deben ser asegurados me-
diante el último pulso de reloj. De esta manera, el retardo máximo permisible para el reloj es de 13 ns.

Problemas suplementarios
10.15 Un diagrama esquemático abreviado de la lógica combinacional de una máquina de estado para conteo
con una ROM se muestra en la figura 10-32. Se desea insertar en cada línea marcada con una X una
caja que contenga lógica la cual permita cargar datos en paralelo hacia todos los flip-flops D cuando
una entrada L = 1. Cuando L = 0, el conteo debe continuar. Diséñese la lógica para una caja típica
(figura 10-33), usando el menor número de compuertas que sea posible.
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 399

Fig. 10-32

Fig. 10-33
400 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

10.16 Empléense flip-flops JK y tantas compuertas como sean necesarias para implantar la máquina de esta-
do de un contador definido por la secuencia dada en la tabla 10.20. Se debe intentar minimizar el núme-
ro de compuertas requeridas y definir su diseño mediante ecuaciones lógicas (en relación con la figura
10-19).

Tabla 10.20
A B C

0 0 1
1 0 0
0 1 1
1 1 0
1 1 1

Se repite

10.17 Repítase el problema 10.16 para la secuencia dada en la tabla 10.21.

10.18 Con propósitos de comparación, implántese el problema 9.17 empleando flip-flops JK y compuertas
SSI.

10.19 Determínense las ecuaciones booleanas de diseño para una máquina de estado que cuenta en la secuen-
cia dada en la tabla 10.22. Asúmase que se usan flip-flops D para registrar los estados.

Tabla 10.21 Tabla 10.22


D C B A C B A

0 0 0 0 0 0 0
0 1 0
0 0 0 1
1 1 0
0 0 1 0
1 0 1
0 0 1 1 0 0 1
0 1 0 0 1 1 1
0 1 0 1 0 1 1
0 1 1 0 1 0 0
0 1 1 1
1 0 0 0
1 0 0 1

Se repite

10.20 A continuación se muestra una parte de un programa de las entradas a la tabla de estados. Dibújese
la carta correspondiente. Nota: Solamente se lista aquella parte del programa que es pertinente a la car-
ta.
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 401

A:
IF X + Y THEN B
A
B:
C
ASSERT:
OUT2
C:
CASE X:A
ENDCASE
B
ASSERT:
IF X' THEN OUT1
IF X THEN OUT2
END$

10.21 Empleando la carta ASM que se muestra en la figura 10-34, hágase la tabla de transición de estados
para un controlador de un flip-flop por estado y escríbanse las ecuaciones de diseño.

Fig. 10-34
402 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

10.22 Con la carta ASM del problema anterior se deben crear las ecuaciones de diseño para una máquina
de estado con el mínimo de flip-flops.

10.23 Repítase el problema 10.22, escribiendo esta vez un programa para las entradas de la tabla de estados
usando el software iPLSII.

10.24 Hágase la tabla de transición de estados correspondiente al controlador de un flip-flop por estado que
se muestra en la figura 10-35.

10.25 Reacomódese la tabla de estados del problema 10.24 en la forma apropiada para obtener una realiza-
ción con el mínimo de flip-flops, y escríbanse las ecuaciones de diseño para los estados.

Fig. 10-35
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 403

Fig. 10-36

Fig. 10-37
404 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

Fig. 10-38

10.26 En la figura 10-36 se muestra una pequeña máquina de estado. Dibújese la carta ASM correspondiente
designando los flip-flops de estado como A y B. Será útil empezar con un estado arbitrario. Examínese
el desempeño a medida que avanza el reloj.

10.27 Dada la carta ASM que se muestra en la figura 10-37, hágase la tabla de transición de estados y prodúz-
case un conjunto de ecuaciones de diseño para una realización con el mínimo de flip-flops.

10.28 Empleando la carta ASM del problema 10.27, complétese el diagrama de tiempos, que se muestra en
la figura 10-38, asumiendo que el sistema está inicialmente en el estado A.

10.29 Repítase el problema 10.8 para un diseño de un flip-flop por estado. Empléese F como el estado inicial.

10.30 Repítase el problema 10.29 usando flip-flops JK en lugar de flip-flops D.

Respuestas a los problemas suplementarios


10.15 Véase la figura 10-39. Obsérvese que si L' no está disponible, el inversor de hardware que se requiere
puede producir una condición de glitch lo cual se debe tomar en cuenta por el diseñador.
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 405

Fig. 10-39

10.16 Se requieren tres flip-flops JK, teniendo las siguientes entradas:

JA = 1 K A = C + B'
JB = 1 KB = AC
JC = 1 K C = A'

Sólo se necesitan dos compuertas si las dos salidas de los flip-flops están disponibles.

10.17 Las entradas JK son

JD = ABC KD = A
JC = AB K C = AB
JB = AD' KB = A
JA = 1 KA = 1

10.18 Un enfoque razonable es crear un mapa para J y uno para K, para cada una de las variables que intervie-
nen en la cuenta, A, B, C y D (F = 0) y repetir el proceso para F = 1. De los 16 mapas se obtiene:

JAN = F'B + FB'C


KAN = FAB'
J BN = F'A + F'D + FC + FA
K BN = F'C + FA' + F©D
JCN = F'AB + F'A'D' + FA'B'
KCN = F'AB + FA'B' + FAD
JDN = F'A' + F ⊕ B
KDN = FA + F ⊕B
406 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

10.19 Las ecuaciones sin simplificar son


dA = AB'C' + AB'C + A'BC + ABC
dB = A'B'C' + AB'C' + A'BC' + ABC
dC = AB'C' + A'BC' + ABC' + A'BC

10.20 Véase la figura 10-40.

10.21 Véase la tabla 10.23.


Tabla 10.23
ESTADO ANTERIOR ESTADO PRESENTE CONDICIONES

C A XY
D INCONDICIONAL
B
A INCONDICIONAL X

B X' Y'

C
C
B X' X1

C Y
C D X Y'
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 407

Ecuaciones de diseño:

dA = C X Y + D OUTPUT1 = A + C
dB = A + B X + C X' Y' OUTPUT2 = B + C
dC = B X' + C X' Y OUTPUT3 = CXY
dD = C X Y'

10.22 Hay cuatro estados, de modo que el mínimo de flip-flops será tres. Véase la tabla 10.24.

Tabla 10.24
ESTADO PRESENTE ESTADO SIGUIENTE CONDICIONES
MN MN
A 0 0 B 0 1 INCONDICIONAL
B 0 1 B 0 1 X
C 1 0 X'
C 1 0 A 0 0 XY
B 0 1 X'Y'
C 1 0 X'Y
D 1 1 X Y'
D 1 1 A 0 0 INCONDICIONAL

Ecuaciones de diseño:

DM = B X' + C X' Y + C X Y' = M ' N X' + MN' (X' Y + X Y')


DN = A + B X + C (X' Y' + X Y') = M'N' + M'NX + M N ' Y '

OUTPUT1 =A + C = M'N' + MN' = N'


OUTPUT2 = B + C = M'N + MN'
OUTPUT3 = CXY = MN'XY
408 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

10.23 La siguiente respuesta solamente incluye las partes pertinentes.

ESTADOS [QM QN]


A [ 0 0 ]
B [ 0 1 ]
C [ 1 0 ]
D [ 1 1 ]

A: B
ASSERT:
OUTPUT1
B:
IF X THEN B
IF X' THEN C
ASSERT:
OUTPUT2
C:
IF X'*Y THEN C
IF X*Y THEN A
IF X'*Y' THEN B
IF X*Y' THEN D
ASSERT:
OUTPUT1
OUTPUT2
IF X*Y THEN OUTPUT3
D: A

10.24 Véase la tabla 10.25.

Tabla 10.25
ESTADO ANTERIOR ESTADO PRESENTE CONDICIONES

P M X' Y'

Q Z
M N VERDADERO

Q Z'

N P VERDADERO
P X' Y
P Q X
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 409

10.25 Véase la tabla 10.26.

Tabla 10.26
ESTADO PRESENTE ESTADO SIGUIENTE[U V] CONDICIONES

M N 0 1 VERDADERO
N P 1 0 VERDADERO
P P 1 0 X'Y
Q 1 1 X
M 00 X'Y'
Q N 01 Z'
M 00 Z

Ecuaciones de diseño

du = N + P(X + X' Y) = U' V + U V' (X + Y)

dv = M + P X + Q Z' = U' V ' + U V' X + U V Z'

10.26 Véase la tabla 10.27 y la figura 10-41.

Tabla 10.27
ESTADO PRESENTE ESTADO SIGUIENTE
A B JA KA JB KB A B
0 0 1 1 0 1 1 0

1 0 1 1 1 1 0 1
0 1 0 1 0 1 0 0

1 1 0 1 1 1 0 0

Fig. 10-41
410 DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS

Obsérvese que la máquina de estado no puede asumir el estado 11 por sí misma; sólo puede llegar a
este estado si se fuerza por una entrada externa.

10.27 Se requieren dos flip-flops, designados M y N (véase la tabla 10.28).

Tabla 10.28
ESTADO PRESENTE[M N] ESTADO SIGUIENTE [M N] CONDICIONES
A 00 B 01 VERDADERO
B 01 C 10 VERDADERO
C 10 A 00 X'Y1
C 10 X'Y
D 11 X
D 11 A 00 Z
B 01 Z'

M = B + CX'Y + CX = M'N + MN'X'Y + MN'X


N = A + CX + DZ' = M'N' + MN'X + MNZ'

10.28 Véase la figura 10-42.

Fig. 10-42

10.29 Ecuaciones del controlador:


D F = N + M'
DG = F
DH = GX' + LW
DJ = GX
DK = JV
DL = HX
D M = HX'W' + KZ'
D N = LW' + HX'W
DISEÑO DE MÁQUINAS DE ESTADO SENCILLAS 411

Ecuaciones de salida:

A = F + H + L
B = H + J + K
C = G + M + HX'

10.30 Las transiciones en el circuito de un flip-flop por estado son de 0 a 1 para el estado seleccionado y de
1 a 0 cuando se deja de seleccionar. De otro modo, los flip-flops por omisión están en 0. Hágase K
siempre igual a 1, y entonces hágase J = 1 cuando se desee una transición de 0 a 1. Para el estado inicial,
los papeles de J y K están reservados. Ecuaciones del controlador:

KF = N + M JF = 1
JG = F KG,...,KN = 1
J H = GX' + LW
JI = GX
JK = JV
JL = HX
J M = HX'W' + KZ'
J N = LW' + HX'W

Ecuaciones de salida:

A=F+H+L
B = H +J + K
C = G + M + HX'
Capítulo 11
Funciones programables electrónicamente
11.1 INTRODUCCIÓN

En sistemas de cómputo, con frecuencia se utilizan circuitos formados los cuales son capaces de
tener sus funciones modificables (es decir, se pueden alterar) mediante señales de control. En con-
traste con los dispositivos lógicos programables que se discutieron en el capítulo 9, las entradas
eléctricas alteran la función del circuito sin causar ningún cambio físico en el hardware.

11.2 COMPONENTES BÁSICOS


La OR exclusiva
La compuerta XOR se utiliza con frecuencia como un inversor controlado en la cual se aplican los
datos a una de sus dos entradas y se aplica una señal de control en la otra, como se muestra en la
figura 11-1. La ecuación lógica correspondiente y su tabla de verdad también se indican. Se ve que
cuando la señal de control es 0, el dato de salida y el de entrada son idénticos y, cuando el control
es 1, el dato de salida es el lógico inverso del dato de entrada. De este modo, se puede ver la entrada
de control como el medio para determinar si la entrada pasa a través del dispositivo en forma directa
o lógicamente invertida.

Fig. 11-1 OR exclusiva como un inversor controlado

Obsérvese que aun cuando la operación de esta compuerta se puede describir en la forma boo-
leana convencional, cuando la meta de diseño es implantar un dispositivo programable, es más útil
correr la perspectiva de uno y verlo funcionalmente como, en el presente caso, un inversor lógico
programable.

412
FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE 413

La compuerta lógica de dos entradas


La compuerta AND básica se puede ver como un interruptor controlado. Como se hizo anterior-
mente, una de sus entradas se designa para el control y la otra para los datos. La configuración
se muestra en la figura 11-2, así como la ecuación lógica y la tabla de verdad. Si la entrada de control
es 1, el dato pasa a través de la compuerta en forma directa; si la señal de control es 0, la salida
es 0 y el dato no se transmite. En lógica positiva, la compuerta NAND de dos entradas se puede
ver como un interruptor invertido controlado.
Una compuerta OR de dos entradas se puede utilizar como un interruptor controlado en una
forma similar. En este caso, si C = 0 da como resultado una señal de datos transmitida y C = 1
produce un 1 en la salida sin considerar los datos a la entrada.

Fig. 11-2 Compuerta AND vista como un interruptor controlado

El multiplexor
El uso del multiplexor como interruptor controlado se ha descrito completamente en el capítulo 5.
Este dispositivo se puede utilizar para seleccionar una de entre múltiples entradas, cuando la señal
de control apropiada se aplica en sus entradas de selección.

El dispositivo TRI-STATE®
El dispositivo TRI-STA TE® (descrito anteriormente en el capítulo 9) también se utiliza como un
interruptor controlado. Se puede configurar para que funcione ya sea como interruptor o como
buffer (sin inversión) cuando se habilita y siempre aparecerá como un circuito abierto en su salida
cuando no se habilite. Se puede obtener flexibilidad adicional sí el estado de su entrada de habilita-
ción se determina mediante una lógica como la de la figura 11-3. En este caso, un dispositivo
TRI-STA TE® con habilitación LT se controla mediante dos señales (A y B) de tal modo que el dato
aparecerá en la línea de salida sólo cuando A y B sean VERDADERAS en forma simultánea.

Fig. 11-3 Salida del dispositivo TRI-STATE® controlado lógicamente


414 FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE

Tablas de definición de una RAM


En la sección 5.4, se describió el uso de memoria sólo para lectura (ROM) para hacer lógica. Se
aprendió que en dicha aplicación, la ROM se utilizó básicamente como una tabla de definición con
una tabla de verdad de entradas que sirven como direcciones y el contenido correspondiente de la
memoria provee las salidas apropiadas. Desde el punto de vista del usuario, se puede ver que el dis-
positivo hace lógica combinacional. Recuérdese también que el contenido de una memoria RAM,
como se describió en el capítulo 8, se puede modificar a velocidades electrónicas.
Se pueden combinar estas dos funciones haciendo lateralmente un bloque de RAM y tratando
sus bits de direcciones como entradas lógicas y almacenando las salidas correspondientes de una
función lógica deseada. Si la lógica se va a cambiar, se puede cargar electrónicamente a la RAM
de manera sencilla con los datos correspondientes a la lógica modificada. En esencia, la RAM se
puede considerar como una EPROM electrónicamente programada para hacer lógica.

11.3 ARREGLOS DE COMPUERTAS PROGRAMABLES

Como se describió brevemente en el capítulo 9, hay un producto intermedio entre los dispositivos
PAL, los PLA y los "arreglos de compuertas completos. Se denomina arreglo de compuertas pro-
gramable de campo (FPGA), algunas veces referido como arreglo de celdas lógico (LCA™).* El
FPGA difiere de muchos dispositivos configurables en que se puede programar sin el requerimiento
de ningún cambio físico en las interconexiones del circuito.
Estos dispositivos contienen un registro de corrimiento de gran longitud (SRAM) el cual, du-
rante la programación, se carga con una larga cadena de bits en serie que produce el software de
programación. Esta cadena de bits implantada circula en todo el circuito y se usa para controlar
las conexiones entre los componentes que forman al FPGA. El circuito se puede reconfigurar fácil-
mente mediante el ingreso de una cadena de bits diferente.
Como un ejemplo de un FPGA, considérese el LCA de Xilinx, Inc. Consiste de tres tipos de
componentes estructurados:
1. Bloques lógicos configurables (CLB)
2. Bloques de entrada/salida (I/OB)
3. Puntos de interconexión programables (PIP)

Bloques lógicos configurables


En la figura 11-4 se muestra un elemento funcional básico que contiene una sección de lógica combi-
nacional, dos flip-flops D con un reloj común y multiplexores empleados como interruptores de
selección. También hay una sección de control interna (no se muestra) formada de elementos RAM
los cuales están para dar servicio a la cadena de bits implantada. La unidad lógica combinatoria,
representada por el rectángulo grande, puede producir varias combinaciones de las cinco variables
lógicas externas y las señales de realimentación de los dos flip-flops. El CLB se puede programar
para producir ya sea una o dos variables de salida comprimiendo varios agrupamientos de sus en-
tradas.

*LCA es marca registrada de Xilinx, Inc.


FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE 415

Fig. 11-4 Bloque lógico configurable (Impreso por cortesía de Xilinx, Inc.)

Una opción permite la creación de cualquier función sencilla de cinco de las variables; otra per-
mite la creación de dos funciones cualquiera hasta de cuatro variables (con algunas restricciones
de cómo se combinan las variables). En la práctica real, la lógica combinatoria se lleva a cabo utili-
zando una parte de la cadena de bits implantada como ¡a tabla de definición de una RAM a partir
de la tabla de verdad de la lógica que se implantará. La cadena de bits se carga durante la programa-
ción del dispositivo y solamente se lee (como una ROM) durante la ejecución. El CLB contiene tam-
bién una entrada de datos directa para los flip-flops, la cual se salta a la lógica combinatoria.
La entrada D de cada flip-flop se aisla mediante un multiplexor de modo que se pueda conectar
a la entrada de datos o a las salidas de la lógica combinatoria. Los multiplexores a la salida de los
flip-flops permiten la selección de las salidas del CLB ya sea en forma directa o registradas (a través
de los flip-flops) las cuales vienen de las salidas de la lógica combinatoria. La señal de reloj se puede
aplicar directamente o se puede invertir. Ambas señales externas de reset, tanto la controlable como
la global, se pueden enviar a los flip-flops. Los multiplexores descritos anteriormente son de dos
tipos, de 1 o 2 bits de direcciones cuyas entradas de selección están todas bajo el control de la cadena
de bits de datos implantada. La señal de salida del CLB se puede enviar a otros CLBs para utilizarse
como entradas, o se pueden enviar a los bloques de entrada/salida y abandonar (salir) al chip. Cada
416 FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE

CLB es capaz de conectarse directamente a cualquier CLB adyacente sin entrar a una matriz de inte-
rruptores.

Bloque de entrada/salida
Este es un puerto bidireccional unido a una terminal de E/S. Bajo el control de la cadena de bits
de entrada se puede configurar ya sea como un puerto de salida estándar, un puerto de salida de
tres estados o como un puerto de entrada. A través del uso de multiplexores (como interruptores
controlados) y compuertas XOR (como inversores controlados), se puede presentar al puerto una
señal de salida ya sea en forma directa o invertida, registrada o no. Cuando el bloque de E/S se
configura como un puerto de entrada, la señal de entrada aparece en ambas formas directa y regis-
trada y, se pueden enviar una o ambas de estas señales a los CLB apropiados.
En la figura 11-5 se muestra la estructura lógica interna de un bloque de entrada/salida. Los
cinco bloques de la parte superior de la figura representan los estados de los elementos RAM de
fondo los cuales controlan la programación de este elemento específico.
El flip-flop de control OUT INV (inversión de la salida) está conectado a una de las entradas
de una compuerta OR exclusiva (G1) y la otra está conectada a la salida de FPGA. De esta manera
el flip-flop OUT INV se emplea como un elemento de control para los datos de salida; cuando es
1, el flip-flop D, FF1 se carga con la variable de salida invertida, y cuando es 0, FF1 se carga con
la versión directa de la variable de salida. De una manera similar, cuando el flip-flop TS INV (habi-
litación de la salida invertida) se fija en 1, permite al diseñador utilizar la forma invertida de la señal
de control de TS (tres estados) para habilitar al buffer de salida, de esta manera hace que el elemento
sirva como una terminal de salida. Se ve que para controlar electrónicamente se hace uso tanto de
la conexión de los elementos básicos como su naturaleza.
La variable Fuente de Salida de la RAM determina la salida del buffer, cuando está habilitada,
pasará ya sea la versión directa o la registrada de la variable de salida a través del bloque de E/S.
La rapidez de respuesta (slew rate) se refiere a la velocidad con la cual responderá el circuito
a una transición de nivel lógico y se mide en volts por microsegundo (o nanosegundo). En el presen-
te caso, este tiempo de respuesta puede adoptar dos valores predeterminados.
Cuando el jalón (pull-up) pasivo, se fija en 1, hace que el elemento se conecte a la fuente de
alimentación de voltaje, a través de una resistencia y, de este modo sea "jalado" a un valor lógico
positivo VERDADERO cuando el buffer de salida sea un circuito abierto (no habilitado).
La sección inferior del bloque de E/S en la figura 11-5 abarca a las señales de entrada que van
a ser enviadas a varios lugares del FPGA. Puesto que las trayectorias de entrada y salida de la señal
comparten una conexión común en el elemento, las salidas se pueden usar para realimentación in-
terna a CLB u otros bloques de E/S. Los datos de entrada se pasan en ambas formas, directa y
registrada; esta última a través de FF2. Cualquier selección entre éstas se hace fuera del bloque de
E/S.

Interconexión programable
La interconexión programable (se muestra en forma esquemática en la figura 11-6) consiste de una
rejilla de capas múltiples de segmentos metálicos. Los interruptores de transistor, bajo el control
de la cadena de bits implantada, forman los puntos de interconexión programables (PIP) entre los
segmentos metálicos seleccionados y el bloque de terminales. Se dispone de tres tipos de recursos
metálicos:
FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE 417

Fig. 11-5 Bloque de E/S configurable (Cortesía de Xilinx, Inc.)

1. Interconexión de propósito general


2. Interconexión directa
3. Líneas largas
La interconexión de propósito general es una matriz de conmutación que consiste de cinco seg-
mentos metálicos verticales y cinco horizontales, los cuales se pueden conectar mediante PIP. Cada
segmento metálico se puede conectar a segmentos perpendiculares o adyacentes en su propia direc-
ción.
Las interconexiones directas proveen caminos entre CLB adyacentes e I/OB.
Las líneas largas unen a las matrices de conmutación y corren tanto en forma vertical como
horizontal a lo largo del área interconectada; minimizan los retardos de conmutación para las seña-
les que deben viajar grandes distancias, y sirven para igualar retardos entre las señales que deben
llegar a varios destinos con un retardo mínimo.
418 FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE

Fig. 11-6 Interconexión programable (Cortesía de Xilinx, Inc.)


Programación
El FPGA se programa bajo el control de una computadora. La lógica que se realizará se puede in-
gresar a una computadora como la captura de una lógica esquemática o en la forma de ecuaciones
lógicas para los agrupamientos lógicos (equivalente a los dispositivos PAL). El programa del FPGA
necesita etapas adicionales denominadas ubicación y envío. En el paso de ubicación, la lógica y los
registros a implantarse se asignan a varios CLB e I/OB empleando un software con un algoritmo
de ubicación. La computadora entonces intenta enviar las interconexiones, es decir, desarrollar un
conjunto de trayectorias de interconexión permisibles. En un FPGA que utiliza un gran porcentaje
de sus recursos, este proceso es a menudo iterativo y algunas veces requiere de la intervención de
interacción manual de una persona con habilidad. Cuando se necesitan pocos recursos, la ubicación
y envío automático es satisfactorio normalmente. Cuando se completa la programación, la compu-
tadora ha generado la cadena de bits necesaria la cual se puede alimentar directamente al dispositivo
físico o, más comúnmente, se carga dentro de una PROM o EPROM que se localiza cerca del
FPGA.
Un FPGA puede perder su cadena de bits cuando se suspende el suministro de energía. Para
resolver esta situación, el sistema principal se puede diseñar para que genere una señal de encendido
la cual hace que el propio FPGA cargue por si misma la cadena de bits de una PROM. Este modo
de operación ofrece la posibilidad de "cambio de servicio", modificando la configuración del
FPGA cuando se cambia la PROM. Esto también hace posible la utilización de varias PROM con
un sólo FPGA para permitir la reconfiguración durante la operación.
FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE 419

a)

b)

Fig. 11-7 (Adaptado de Herbert Taub, "Digital Circuits and Microprocessors", McGraw-Hill, Inc., Nueva
York, N Y, 1982.)
420 FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE

11.4 UNIDADES LÓGICO ARITMÉTICAS


La unidad lógico aritmética (ALU) comúnmente usada en microprocesadores es otro ejemplo de
un dispositivo programado electrónicamente. Este es uno de una familia de bloques funcionales los
cuales se emplean para desempeñar una variedad de funciones controladas sobre un pequeño número
de bits los cuales, en el presente ejemplo, incluyen adición, sustracción mediante complemento a
2, incrementar, decrementar e inversión lógica. Tales bloques funcionales a menudo son llamados
rebanadas de bits (bit slices), indicando que éstas se pueden colocar en cascada para procesar gran-
des números de bits. Las ALU, disponibles comercialmente, son muy complejas internamente. Sin
embargo, su operación se puede entender fácilmente considerando la versión simplificada que se
muestra en la figura 11-7.
La figura 11-7a muestra la lógica de una celda sencilla de una ALU, y la figura 11-76 muestra
las interconexiones internas de celdas idénticas dentro de una ALU de bit slice de cuatro celdas.
Obsérvese que el acarreo de salida de la celda i sirve como el acarreo de entrada para la celda i + 1.
El acarreo de entrada para la celda 0 está conectada a una terminal externa del mismo modo que
el acarreo de salida de la celda 3.
Las entradas de control (MODE, SELECTO y SELECT1) se conectan internamente a cada una
de las celdas las cuales tienen dos entradas, Ai y Bi y producen una salida Fi. Las entradas y salidas
están conectadas a terminales externas en el dispositivo. Si se dispone de dos de dichos dispositivos,
las dos rebanadas de 4 bits se pueden convertir en una rebanada de 8 bits mediante la conexión de
las entradas de control conjuntamente y llevando el acarreo de salida del dispositivo de bajo orden
(menos significativo) al acarreo de entrada del dispositivo de alto orden (más significativo). La rela-
ción entre las entradas y las salidas depende de las entradas de control que se apliquen. La señal
mode controla la conexión interna entre las celdas; si ésta es 0, las celdas están aisladas y, si es 1,
las celdas están enlazadas con el acarreo de salida de la celda i siendo conectada al acarreo de entrada
de la celda i + 1. Cuando MODE = 1, el circuito funciona en el modo aritmético y se puede
configurar como un sumador (consúltese al ejemplo 11.1).
SELECTO está conectado a un inversor controlado (XOR) el cual determina ya sea el Ai o su
inverso lógico se utiliza en la celda. SELECT1 está conectado a una compuerta AND la cual deter-
mina si Bi está por entrar a la celda (SELECT1 = 1) o si Bi se va a omitir (SELECT1 = 0). El
acarreo de entrada a la celda 0 también se puede considerar como una entrada especial de control.
Si el sistema está configurado como un sumador (MODE = 1), el acarreo de entrada a la celda 0
aparecerá como un acarreo inicial e incrementará el resultado en 1.

EJEMPLO 11.1 Configurando la ALU para SUMAR aritméticamente. Considérense las conexiones externas
siguientes:
MODE = 1
SELECTO = 0
SELECT1 = 1
Acarreo de entrada (0) = 0
Se presenta el siguiente análisis paso a paso con referencia a la figura 11-8:
1. MODE = 1 asegura que la salida de G 1 es C i .
2. SELECTO = 0 asegura que G2 produce A i en su salida.
FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE 421

3. SELECT1 = 1 asegura que la salida de G3 es Bi.


4. Las entradas a G4 son Ai y C i , de modo que su salida es Ai ⊕ C i .
5. Las entradas a G5 son Ai y C i , de modo que su salida es Ai C i .
6. Las entradas a G6 son Bi y Ai ⊕ C i , de modo que la salida es Bi (Ai ⊕ C i ).
7. G7 hace la operación OR de las salidas de G5 y G6, de modo que la salida (acarreo de salida) está dado por
Acarreo de salida (i) = Ai C i + Bi(Ai ⊕ C i )
8. La salida de G8 realiza la OR exclusiva de las salidas de G3 y G4 de modo que
Fi = Ai ⊕ Bi ⊕ C i
Hágase la tabla de verdad para las expresiones del acarreo de salida y F.
Esta tabla de verdad (tabla 11.1) es idéntica a la del sumador que se desarrolló en el capítulo 2. De esta
manera el sistema funciona como un sumador.

Tabla 11.1
Ai Bi Ci F¡ Acarreo de salida (i)

0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

EJEMPLO 11.2 Configurando la ALU para formar el complemento a 1 de un número binario A.


El complemento a 1 se forma invirtiendo cada bit del número. Se verá que se lleva a cabo cuando las entra-
das de control de la ALU se fijan de la siguiente manera:
MODE = 0
SELECT1 = 0
SELECTO = 1
El acarreo de entrada es irrelevante Se puede emplear la figura 11-9 para el análisis del
comportamiento de circuito paso a paso:
1. MODE = 0 asegura que la salida de G1 es 0 (aisla los bits).
2. SELECT1 = 0 asegura que la salida de G3 es 0 (elimina a Bi del circuito).
3. SELECTO = 1 asegura que G2 produce A´i en su salida.
4. Las entradas de G4 son A´i y 0, de modo que su salida es A´i.
422 FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE

5. Las entradas de G5 son A´i y 0, de modo que su salida es 0.


6. Las entradas de G6 son A´i y 0, de modo que su salida es 0.
7. G7 realiza la operación OR de las salidas de G5 y G6, de modo que su salida (acarreo de salida) es 0.
8. La salida de G8 está dada por la operación XOR de las salidas de G3 y G4, de modo que
Fi = Ai' ⊕ 0 = Ai'

Fig. 11-8 ALU configurada como un sumador

11.5 REGISTROS PROGRAMABLES

Las computadoras a menudo hacen uso de registros los cuales tendrán un diferente desempeño en
respuesta a varios comandos. Dicho registro en el cual se hace la programación con compuertas
AND, se muestra en la figura 11-10. Las líneas y señales de control se muestran en forma remarca-
FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE 423

Fig. 11-9 ALU configurada como un complementador a 1

da. La función de este registro es tomar la información de un bus, almacenarla, posiblemente ope-
rar sobre ésta y situarla de regreso en el bus bajo el comando apropiado. Las dos líneas del bus
que se muestran en la figura serán, muy a menudo, físicamente el mismo conductor.
El análisis de desempeño del registro se facilitará observando que sólo se realiza una operación
a la vez; esto es, solamente un comando es VERDADERO en todo tiempo. Por ejemplo, cuando
la señal "transfer in" es VERDADERA, las compuertas G1 y G2 de cada estado son primadas.
Las compuertas G3 y G4 ambas producen en su salida un 0 debido a que la señal "increment" es
0. Así, el contenido del bus se aplica a la entrada J del flip-flop FF(i), mientras que su complemento
se aplica a la entrada K. En esta situación, el siguiente pulso de reloj produce Q = J. De manera
similar, si sólo la línea de "reset" es VERDADERA, la salida de todas las compuertas AND es 0,
como lo es la señal "complement". Las entradas J y K son 0 y 1, respectivamente y, el siguiente
pulso de reloj fija Q a 0. Obsérvese que la señal "transfer out" es la habilitación para los buffers
TRI-STATE® los cuales conectan las salidas de los flip-flops al bus.
424 FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE

Fig. 11-10 Registro programable. (Adaptado de Herbert Taub, "Digital Circuits and Microprocessors",
McGraw-Hill, Inc., Nueva York, N Y, 1982.)
FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE 425

Es valioso describir la operación de incremento con mayor detalle. Cuando se agrega 1 a un


número binario, el bit menos significativo siempre cambiará de estado y, moviéndose hacia los bits
de mayor orden, cada uno cambiará sucesivamente hasta que se encuentra el primer 0. En este pun-
to, después de que no hay cambios de estado, el proceso se detiene. El proceso de incrementar se
presenta para todos los bits al mismo tiempo, coincidiendo con la llegada de un pulso de reloj, y
se ve que el cambio de estado de un bit dado se controla por el valor de su vecino más cercano antes
de la aplicación del reloj. En el circuito de la figura 11-10, el proceso se lleva a cabo mediante el
control de las compuertas de Increment [Gc(i)] las cuales permiten que cada etapa (bit) sucesiva de
mayor orden cambie de estado solamente si el bit precedente es un 1. Debe ser obvio que la entrada
de la etapa anterior de la compuerta de control de más bajo orden debe estar sujeta a un 1.

EJEMPLO 11.3 Increméntese el número 1001111.

1001111
+ ______1
1010000

Se ve que el resultado es equivalente a examinar el número de su bit de menor orden hacia el de mayor
orden y cambiar de estado todos los bits hasta encontrar el primer 0 inclusive.

Problemas resueltos
11.1 En la ALU de la figura 11-7a, con SELECTO, SELECT1, MODE y acarreo de entrada (0)
todos igual a 1, muéstrese que la rebanada de 4 bits lleva a cabo la sustracción con comple-
mento a 2.
Este arreglo es casi idéntico al del ejemplo 11.1 donde se demostró que el circuito funciona como
un sumador binario. En el presente caso, las diferencias radican en el hecho que SELECTO y el acarreo
de entrada (0) son ahora ls.
El uso de SELECTO = 1 como una entrada para el inversor controlado significa que la variable
Ai' será sumada a Bi en lugar de Ai. Además, haciendo acarreo de entrada (0) = 1 hace que el resultado
se incremente de modo que se tiene
Fi = Bi( + )Ai'( + )1
= Bi( + )(complemento a 2 de Ai)
= B-A
El símbolo "(+)" se emplea para distinguir la adición aritmética de la función lógica OR. Véase
el problema 11.5 para la implantación de A - B.

11.2 Demuéstrese la acción de complement del registro que se muestra en la figura 11-10.
Sólo hay una señal de control VERDADERA en todo tiempo, de modo que
Complement 'C) = 1
Increment (I) = 0
Transfer in (TI) = 0
Reset (R) = 0 Transfer
out (TO) = 0
426 FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE

La ecuación booleana para la entrada J está dada por


J = C + (TIXBUS) + Gc(i – 1)(I) = 1+ 0 • BUS + Gc • 0 = 1
K = C + R + (TI)(BUS') + Gc(i – 1)(I) = 1 + 0 + 0 • BUS' + Gc • 0 = 1
Con J y K ambas VERDADERAS, el flip-flop cambiará de estado complementando de este modo el
valor almacenado en el registro.

Fig. 11-11
FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE 427

11.3 Modifíquese el registro de la figura 11-10 de manera que el circuito pueda decrementar me-
diante un comando.
Ejemplo de decremento: Sustráigase 1 del número original.

00111001000
-1
00111000111

Obsérvese que el contenido del registro cambia de estado de derecha a izquierda hasta que se en-
cuentra el primer 1 inclusive. El circuito se puede modificar al acumular Os en la misma forma que
actualmente lo hace al acumular ls. Se agregan dos compuertas adicionales a los árboles de compuertas
AND asociados con las entradas JK de cada etapa y se obtienen las entradas para éstas de las compuer-
tas adicionales de control de decrement [Gd(i)] como se muestra en la figura 11-11. La presencia de
Os en un número binario almacenado se determina mediante la obtención de las señales de Q' del lado
de los flip-flops. La circuitería adicional (indicada mediante líneas más gruesas) no interfiere con otras
operaciones debido sólo a que una señal de control está presente en cualquier tiempo dado. En la figura
11-11 las compuertas de control de increment se ha borrado para mayor claridad.

11.4 Usando el registro que se muestra en la figura 11-10, determínense los tiempos de las señales
de control de entrada en los que se producirá la siguiente secuencia de eventos:
1. Cargar los datos de entrada del bus.
2. Hacer el complemento a 2 de los datos.
3. Transferir los datos procesados al bus.
Obsérvese que el complemento a 2 de un número binario se lleva a cabo complementando cada
bit y adicionando un 1 (incrementar), se desarrolla la secuencia detallada como sigue:

1.0 La señal transfer in se va al estado VERDADERO.


1.1 Después de por lo menos dos retardos en las compuertas más el tiempo de inicio del
flip-flop, el pulso de reloj se va al estado VERDADERO.
Datos cargados.
2.0 La señal transfer in se va al estado FALSO, el pulso de reloj se va al estado FALSO
y, la señal complement se va al estado VERDADERO.
2.1 Después de por lo menos un retardo en la compuerta más el tiempo de inicio del
flip-flop, el reloj se va al estado VERDADERO.
Datos complementados.
3.0 La señal complement se va al estado FALSO, el pulso de reloj se va al estado FAL
SO y, la señal increment se va al estado VERDADERO.
3.1 Después de por lo menos dos retardos en las compuertas más el tiempo de inicio del
flip-flop, el pulso de reloj se va al estado VERDADERO.
Datos incrementados.
4.0 La señal increment se va al estado FALSO, el pulso de reloj se va al estado FALSO
y, la señal transfer out se va al estado VERDADERO. Datos sobre el bus.
428 FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE

11.5 Una versión modificada de una celda de la ALU se muestra en la figura 11-12 en la que,
SELECTO = 0
SELECT1 = 1
SELECT2 = 1
MODE = 1
Acarreo de entrada (0) = 1

Fig. 11-12
FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE 429

Determínese la operación que se lleva a cabo y el máximo retardo desde la entrada hasta
la salida.
La única diferencia entre el circuito dado y el circuito del problema 11.1 es la adición de una com-
puerta OR exclusiva (controlada mediante SELECT2) a través de la cual pasa la entrada B¡.
Si SELECT2 = 1, B¡ se complementa y el circuito produce A¡( + )B¡'( + )1 lo cual es igual a A-B.
El máximo retardo se presenta en la parte del acarreo de salida donde la señal pasa a través de
cuatro compuertas. Obsérvese que debido a que el acarreo de salida de una etapa es el acarreo de entrada
de la siguiente, se presenta un efecto de propagación y el retardo total en un circuito (bit slice) de n
bits es igual a 4n retardos de una compuerta.

11.6 Considérese la ALU con los valores de la señales de control fijos como sigue:
SELECTO = 1
SELECT1 = 1
Acarreo de entrada (0) = 1
MODE = 0
Muéstrese que hay una salida de F = 1 solamente si A¡ y B¡ son idénticas.
MODE = 0 significa que no hay propagación del acarreo. De este modo, la operación continua
bit a bit. SELECTO = 1 significa que Ai aparece en la forma complementada Ai'. SELECT1 = 1 sig-
nifica que Bi se emplea en la forma directa. Puesto que acarreo de entrada (0) es irreevelante, el aca-
rreo de salida también es irrelevante.
Con referencia a la figura 11-13 se muestra que Fi = Ai ⊕ Bi. La construcción de una tabla de
verdad apropiada muestra que puede ser VERDADERA solamente si AB = 00 o 11.

11.7 Empleando un multiplexor, diséñese un circuito que se pueda usar para seleccionar ya sea
una señal o su complemento aparezca en la salida. Compárese su resultado con el enfoque
de la OR exclusiva que se presentó en la sección 11.2.
Cuando se usa un inversor como el que se muestra en la figura 11-14, las dos entradas de un multi-
plexor con selección única se obtienen a partir de la misma variable, una siendo directa (A) y la otra
invertida (A').
El multiplexor de dos entradas se compone de dos compuertas AND de dos entradas y una com-
puerta OR (véase la sección 5.2). La lógica se muestra en la figura 11-15.
La ecuación booleana de la XOR está dada por F = AS' + A'S donde S = selección. Se ve que
esto da exactamente la misma lógica que el multiplexor de la solución que se muestra en la figura 11 -15.
La diferencia entre el multiplexor y el enfoque a través de la OR exclusiva se ve que reside en la mente
del diseñador solamente y no en la fabricación en silicio.

11.8 Un estudiante ha diseñado el circuito programable electrónicamente que se muestra en la fi-


gura 11-16. Determínese si puede operar y coméntese sobre su eficiencia.
S1 selecciona entre A y A'. S2 selecciona entre B y B', S3 determina si se usa A o A' y S4 determina si
se usa B o B'.
Tabulando las salidas para todas las configuraciones de control (tabla 11.2), se ve que hay nueve
salidas únicas.
Si es necesario usarlas todas ellas, entonces se deben emplear las cuatro variables de selección ya
que se requieren 4 bits para designar nueve combinaciones. Si una salida (sea, F = 0) se pudiera omitir,
entonces debe ser posible realizar la función con estas tres variables en lugar de cuatro.
430 FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE

Fig. 11-13

Fig. 11-14
FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE 431

Fig. 11-15

Fig. 11-16

Tabla 11.2
S1 S2 S3 S4 F
0 0 0 0 0
0 0 0 1 B
0 0 1 0 A
0 0 1 1 A⊕B
0 1 0 0 0
0 1 0 1 B'
0 1 1 0 A
0 1 1 1 A⊕ B'
1 0 0 0 0
1 0 0 1 B
1 0 1 0 A'
1 0 1 1 A' ⊕ B
1 1 0 0 0
1 1 0 1 B'
1 1 1 0 A'
1 1 1 1 A' ⊕ B'
432 FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE

11.9 Diséñese un circuito para llevar a cabo las operaciones definidas en el problema 11.8, excep-
to la salida 0.
Estrategia: Puesto que se necesitan las ocho salidas y se van a usar tres variables de selección, cada
selección de la configuración se debe igualar con la salida deseada.
Obsérvese, a partir de la tabla 11.3, que Si divide la tabla en dos grupos. Empléese esta variable
para distinguir entre las salidas que pasan a través de compuertas XOR y las salidas de variable sencilla.
Si S2 y S3 se pueden usar para crear combinaciones únicas de A y B y sus complementos, se pueden
almacenar para crear las variables sencillas y combinadas para hacer funciones XOR.

Tabla 11.3
S1 S2 S3
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1

Si S2 se usa como el control para una XOR con A como la otra entrada, entonces A aparecerá
cuando S2 es 0 y A' cuando S2 es 1. De manera similar, S3 se puede usar para seleccionar entre B y
B'. Otra combinación de S2 y S3 para distinguir entre las variables. Un procedimiento de prueba y
error conduce a emplear S2 y S3 a través de una operación XOR (salida intermedia Y). Cuando Y =
1, W se envía hacia G7 (variable A seleccionada y B suprimida) y, cuando Y = 0, X se envía hacia
G7 (variable B seleccionada y A suprimida). Véase la tabla 11.4.

Tabla 11.4
S1 S2 S3 W = S2 ⊕ A X = S3 ⊕ B Y = S2 ⊕ S3
0 0 0 A B 0
0 0 1 A B' 1
0 1 0 A' B 1
0 1 1 A B' 0
1 0 0
1 0 1
1 1 0
1 1 1

La parte del circuito "encerrada en el cuadro punteado" que se muestra en la figura 11-17 implan-
ta la lógica descrita anteriormente. Las compuertas G1, G2 y G3 son XOR las cuales producen las salidas
intermedias W, X y Y. La inversión de Y = S2 ⊕ S3 se requiere para controlar la selección entre las
variables A y B la provee G4. La compuerta AND S5 pasa la variable B y G6 pasa la variable A; éstas
nunca están primadas simultáneamente, de manera que sus salidas se pueden combinar en una sola
línea a través de G7 la cual proporciona la variable seleccionada al final de la lógica de salida.
FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE 433

Fig. 11-17

Obsérvese que los elementos G4, G5, G6 y G7 forman un circuito que selecciona entre dos líneas
de entrada (un multiplexor de selección única) como se muestra en la figura 11-15. Esta estructura se
repite para seleccionar una variable sencilla y variables combinadas A y B a través de compuertas
XOR. En este caso, cuando la variable de control S1 = 1, la salida de la compuerta XOR, G12 se pasa
a la salida F y, cuando S1 = 0, G9 se prima para pasar una variable sencilla a la salida.
Obsérvese que aunque este diseño requiere solamente tres variables de control, utiliza una mayor
cantidad de lógica que la versión de cuatro variables del problema 11.8. A menudo éste es el caso. Una
reducción en el número de variables de control o selección normalmente incrementa la complejidad
de la lógica requerida.
También se debe poner atención en la elección de la técnica de diseño empleada en la solución
de este problema. El conocimiento y uso de los bloques funcionales ha simplificado grandemente el
diseño lógico, lo que de otra manera ha sido relativamente tedioso mediante el enfoque de seguimiento
de mapas K de cinco variables. En general, la síntesis de un circuito a partir de una especificación dada
produce muchos diseños válidos y, con frecuencia no hay una mejor solución única. La experiencia
y habilidad del diseñador es obviamente un factor clave en la utilidad y eficiencia de cualquier enfoque
de diseño.

11.10 La figura 11-18 muestra la estructura de un registro generalizado. Asumiendo que una de
las señales es VERDADERA en todo tiempo, muéstrese analíticamente, determinando las
expresiones para J y K, como funciona el registro para cada una de las siguientes operacio-
nes:
1. Transfer in
2. Reset
3. Complement
4. Increment
En general:
Ji = C + WD + I[Gc(i - 1)]
Ki = C + Z + D'W + I[Gc(i - 1)]
434 FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE

Caso 1. Transfer in: W = 1, C = I = Z = 0.


Ji = D K i = D' Después del pulso de reloj, Q i = D
Caso 2. Reset (borrado): Z = l , W = C = I = 0.
Ji = 0 Ki = 1 Después del pulso de reloj, Q i = 0
Caso 3. Complement: C = 1, Z = W = I = 0.
Ji = 1 Ki = 1 Después del pulso de reloj, Qi = Q´ i (cambia de estado)

Caso 4. Increment: I = l , C = W = Z = 0.
J i = G c (i-1) K i = G c (i-1)
El reloj causará que Qi cambie de estado si Gc(i-1) = 1, que será el caso si todos los bits de bajo
orden en el registro son 1.

Fig. 11-18
FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE 435

11.11 En la figura 11-19 se muestra un circuito lógico que se controla mediante la información al-
macenada en unas celdas de RAM programables. La celda 1 controla a Si, la celda 2 con-
trola a S2, etc. Asumiendo que los datos de entrada son estables justo antes y después de
que se presenta el pulso de reloj del sistema, determínense las señales de salida y realimenta-
ción para la siguiente configuración: celdas 1,2,3,4 = 0010.
Puesto que las celdas 1 y 2 contienen 0s, S1 = S2 = 0 y la salida que sigue después de los datos
de entrada, no se ve afectada por el reloj.
Puesto que la celda 3 = 1 y la celda 4 = 0, se selecciona la línea 2 del multiplexor y la realimenta-
ción es igual a los valores directo y complementado del dato que ha sido recientemente almacenado
en el flip-flop D después del pulso de reloj.

Fig. 11-19 Se emplea un amplificador del tipo que se muestra en la figura 9-5 para la salida realimentada

11.12 Considérese el circuito lógico del problema 11.1. El amplificador doble en la salida realimen-
tada se reemplaza por una compuerta XOR, una de las entradas es la salida realimentada
del multiplexor y la otra se conecta a una celda adicional de la RAM (5). Determínese el con-
tenido de la celda si la salida va a ser el inverso lógico de la entrada registrada y la señal de
realimentación va a ser el inverso lógico del dato no registrado. Asúmase que el dato de en-
trada es estable antes y después de que se presenta el pulso de reloj del sistema.
La línea 3 del multiplexor de salida recibe el inverso lógico del dato de entrada registrado. De esta
manera, S1 y S2 (o celdas 1 y 2) las dos deben ser 1. El dato no registrado aparece en la entrada 0 del
multiplexor de realimentación y por lo tanto, S3 y S4 (celdas 3 y 4) se deben programar a 0. La inver-
sión que se requiere se puede obtener si la entrada de control de la XOR (celda 5) se hace 1.
436 FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE

Fig. 11-20

11.13 En la figura 11-20 se muestra una macrocelda de entrada/salida la cual se controla mediante
una RAM escondida. Determínese cual debe ser el orden de los siete dígitos del contenido
de la celda RAM para que la señal 4 sea igual a una señal de entrada del pad.
Si la celda 3 es 1, el MUX 2 deshabilitará al buffer TRI-STA TE® que maneja al pad y propiciará
que se vea como un circuito abierto. Si la celda 5 es 0, el pad se conectará a la señal 4. De esta manera,
el contenido de la celda (celda 1...... ,7) debe ser XX1X0XX, donde las Xs son términos "no importa".

11.14 En el problema 11.13, determínesela función que lleva a cabo si celda 1, ...... ,7 = 1100100.
Celda 1 = 1 La salida Q del flip-flop se acopla a la entrada XOR de la compuerta G1.
Celda 2 = 1 Q se invierte para formar Q'.
Celda 3, 4 = 00 El buffer TRI-STATE® se habilita para acoplar Q' al pad.
Celda 5 = 1 La señal 1 se realimenta como la señal 4.
Celda 6, 7 = 00 El estado de q se determina mediante los valores directos de las señales 2 y 3.

11.15 La figura 11-21 muestra un circuito programable junto con sus formas de onda de entrada.
Descríbase su operación y dibújese la forma de onda en la salida F.
Q es el valor registrado de la entrada D cuando X = 0 y es el valor registrado de D'
cuando X = 1. La salida G, de la compuerta OR, es igual a D cuando M = 0 y a la operación AND
de D y la señal de reloj cuando M = 1. F = G cuando Y = 1 y F = Q cuando Y = 0.
Para dibujar la forma de onda de F, será útil construir también las formas de onda intermedias
G y Q como se muestra el la figura 11-22.
FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE 437

Fig. 11-21
438 FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE

Fig. 11-22
FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE 439

Problemas suplementarios
11.16 Los siguientes valores están almacenados en la RAM interna del bloque de E/S del FPGA que se muestra
en la figura 11-5.
OUT INV = 1 Fuente de salida = 1
TS INV = 0 Jalón pasivo = 1
Si la señal de entrada TS es 1 y se asume que la entrada de selección más cercana del multiplexor es la
línea 0,
a) ¿Qué valor lógico de TS habilita a la salida?
b) Si la salida no está habilitada, ¿qué valor lógico positivo aparece en el pad?
c) ¿La salida está en forma directa o registrada?
d) ¿La salida está en forma normal o invertida?

Fig. 11-23

Fig. 11-24
Fig. 11-26
FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE 441

11.17 Para el circuito que se muestra en la figura 11-23, encuéntrese una expresión para la salida si las señales
de control se fijan en S 1 = 1, S2 = 0 y S 3 = 1.

11.18 En el circuito que se muestra en la figura 11-24, la palabra de control A es A1, A2, A3, A4, A5, A6,
A7. ¿Cuál es el efecto de la palabra A = 0111110?

11.19 Empleando la lógica del problema 11.18, determínese la palabra de control que cual proporcionará
la versión registrada e invertida del dato en el pad como una salida y también realimentará el dato no
registrado.

11.20 Con propósitos de prueba, a menudo es deseable tener ubicado un valor conocido (como en la figura
11-24) en el pad de salida después de un pulso de reloj y realimentar el mismo valor. Determínese una
palabra de control aceptable empleando la lógica del problema 11.18.

11.21 ¿Cómo podría modificarse la lógica del problema 11.18 de modo que fuera posible realimentar el valor
invertido del pad?

11.22 Los valores de las señales de control para la ALU de la figura 11-25 se fijan como sigue: S1 = 1,
S 0 = 0, M = 1 y acarreo de entrada (0) = 1. ¿Qué función desempeña el circuito?

11.23 Un estudiante intenta crear una ALU, pero ha perdido el alambrado de algunas conexiones, como se
muestra en la figura 11-26. Dado que M = S0 = 1 y acarreo de entrada = S1 = 0, determínese una
expresión para F y C0.

11.24 Diséñese un circuito donde, dependiendo de una palabra de control, una señal presente en el pad de
entrada se pueda pasar como registrada o no registrada, invertida o no invertida.

11.25 Con referencia a la solución dada al problema 11.24, hágase una tabla de verdad para todos los posi-
bles valores de las variables de la palabra de control.

11.26 Úsense dispositivos TRI-STA TE® para modificar la solución al problema 11.24 de manera que se pue-
da usar el pad ya sea como entrada o salida.

11.27 Empléese una compuerta AND para modificar el circuito de la figura 11-27 de modo que el flip-flop
en la trayectoria de realimentación se pueda borrar sincronizadamente.

Fig. 11-27
442 FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE

Respuestas a los problemas suplementarios


11.16 a) La habilitación es HT y TS = 1 habilitará a la salida.
b) Si la salida no está habilitada, se verá como un circuito abierto. El jalón pasivo es 1 propiciando
que aparezca un voltaje alto, representando al estado VERDADERO.
c) Se selecciona la línea 1 del multiplexor y la salida es registrada.
d) Invertida.
Los comandos de la RAM crean una salida la cual está invertida, registrada y habilitada.

11.17 F = [(A 0 B) ⊕ C']'

11.18 A1 = 0 El dato no se invierte.


A2 = 1 Es irrelevante ya que A 3 = 1.
A4 = 1 Se selecciona el dato registrado mediante el segundo multiplexor.
A5 = 1 Deshabilita el manejador del pad; el pad se configura como una entrada.
A6 = 1 Se selecciona el dato de entrada del pad.
A7 = 0 Se selecciona la salida del primer multiplexor para realimentación y se ignora el pad
de entrada.
Resumen: El pad se desconecta y el dato de entrada invertido se realimenta directamente (no re-
gistrado).

11.19 A = 1X110X0 donde X representa bits irrelevantes o "no importa".

11.20 A = X(A 2 )01011.

11.21 Se pudiera agregar un inversor controlado (XOR) con una variable de control A8. Se podría ubicar
ya sea en la salida del multiplexor M3 o en la del M4.

11.22 Ai( + )Bi( + )l. El símbolo ( + ) indica la adición aritmética.

11.23 C 0 = 0 y F = A i'.

11.24 Una de las muchas posibles soluciones se muestra en la figura 11-28.

Fig. 11-28
FUNCIONES PROGRAMABLES ELECTRÓNICAMENTE 443

11.25 Véase la tabla 11.5.

Tabla 11.5

A1 A2 DATO INVERTIDO DATO REGISTRADO

0 0 NO Sí
0 1 SÍ Sí
1 0 NO NO
1 1 Sí NO

11.26 Consúltese la figura 11-29. En esta solución un dispositivo TRI-STATE6 es habilitado ALTO y el otro
BAJO de modo que una señal común siempre habilitará a uno o al otro.

11.27 Véase la figura 11-29. Cuando A» es 0, el flip-flop se borrará en el siguiente pulso de reloj.

Fig. 11-29
Apéndice A
Teoremas booleanos básicos
e identidades
A•1 =A (A.l)
A•0 =0 (A.2)
A A =A (A.3)
A • A' =0 (A.4)
(AB)' = A' + B' (Teorema de De Morgan) (A.5)
En el álgebra booleana, se aplica la dualidad. Esto significa que si en el conjunto de ecuaciones
anteriores se cambia cada AND a OR, cada OR a AND, y se intercambian los 1s por 0s, se obtiene
el segundo conjunto de identidades válidas:
A+0 =A (A.6)
A+1 =1 (A.7)
A+A =A (A.8)
A + A' =1 (A.9)
(A + B)' = A'B' (Teorema de De Morgan) (A. 10)

Otras identidades booleanas útiles


(A')' = A (A. 11)
A + AB = A (A.12)
A + A'B = A -i- B (A.13)
AB + A'B = B (A. 14)
Las identidades duales correspondientes a las ecuaciones (A. 11) hasta la (A. 14) son
A(A + B) = A (A.15)
A(A' + B) = AB (A. 16)
(A + B)(A' + B) = B (A. 17)

Teoremas útiles de tres variables


A + BC = (A + B)(A + C) (A. 18)
AB + A'C = (A + C)(A' + B) (A. 19)
(A + B + C)' = A'B'C (Teorema de De Morgan) (A.20)

444
APÉNDICE A TEOREMAS BOOLEANOS BÁSICOS E IDENTIDADES 445

Las expresiones duales de las ecuaciones (A. 18) hasta la (A.20) son:
A(B + C) = AB + AC (Ley distributiva) (A.21)
(A + B)(A' + C) = AC + A'B (A.22)
(ABC)' = A' + B' + C (Teorema de De Morgan) (A.23)
Apéndice B
Símbolos lógicos estándar
B.l INTRODUCCIÓN

En este escrito (fines de 1991), los símbolos empleados por los diseñadores y los distribuidores no
se han estandarizado completamente y, consecuentemente, va a continuar cierta confusión. Este
apéndice representa un intento por ilustrar varios tipos de símbolos típicos que se presentan en la
literatura y puntualizan algunas propiedades generales. Las publicaciones de muchos distribuidores
de hardware lógico digital contienen símbolos de lógica positiva así como la última simbolización
revisada de IEEE/IEC. Por ejemplo, la edición de 1990 del Advanced CMOS Logic Data Book,
publicada por Texas Instruments, Inc., muestra símbolos lógicos alternativos para un amplio arre-
glo de circuitos integrados digitales.

B.2 GRUPOS DE COMPUERTAS INDIVIDUALES


NAND Lógica (ejemplo, 74 X 00 compuerta NAND positiva cuádruple de dos entradas)
En la figura B-l se muestra un símbolo convencional de las terminales de salida. Los símbolos de
las compuertas que se muestran en el arreglo empaquetado designan el tipo de hardware y normal-

Fig. B-l Símbolo convencional para un chip de cuatro compuertas NAND de dos entradas

446
APÉNDICE B SÍMBOLOS LÓGICOS ESTÁNDAR 447

mente son de la variedad "genérica" de lógica positiva. Los números en los cuadros pequeños en
el perímetro del paquete son los números de las terminales vistos desde arriba. Vcc representa el
voltaje de polarización, normalmente + 5 volts, mientras que GND (ground) indica la trayectoria
de retorno común de la fuente de alimentación. Los símbolos en lógica mixta para una compuerta
NAND se describieron en el capítulo 4.
El símbolo para el mismo circuito integrado empleando la convención de IEEE/IEC se mues-
tra en la figura B-2. Este tipo de símbolo surgió durante las deliberaciones de un comité internacio-
nal y se propone que se convierta en el estándar industrial. En la presente ilustración, el símbolo
"&" designa a la AND lógica y los números entre paréntesis representan las terminales del chip.
Las cuatro secciones rectangulares (que tienen el principio de la etiqueta del grupo 1, 2, 3 y 4) significa
que hay cuatro circuitos idénticos en el chip, cada uno de los cuales tiene dos entradas etiquetadas
con A y B y una salida etiquetada con Y. Las medias flechas significan que las salidas son BAJO-
VERDADERO. Las terminales de polarización no se indican en el diagrama.

Fig. B-2 Símbolo de IEEE/IEC para un chip de cuatro compuertas NAND de dos entradas

NOR Lógica (ejemplo, 74 x 02 compuerta NOR positiva cuádruple de dos entradas)


En la figura B-3 se muestra un diagrama convencional con terminales de salida. Los símbolos inter-
nos designan compuertas NOR y, como en el ejemplo anterior, los números en los cuadros represen-
tan las terminales del chip vistas desde arriba.
448 APÉNDICE B SÍMBOLOS LÓGICOS ESTÁNDAR

Fig. B-3 Símbolo convencional para un chip de cuatro compuertas NOR de dos entradas

En la figura B-4 se muestra el símbolo lógico para un chip de cuatro compuertas NOR de dos
entradas. El símbolo " ≥ " se emplea para designar la lógica OR (inclusive) puesto que se produce
un 1 todas las veces que la suma de las entradas a cualquiera de las cuatro secciones iguala o excede
1. Una vez más, las medias flechas significan que las salidas son BAJO-VERDADERO y las termi-
nales de polarización no se indican en el diagrama.

Fig. B-4 Símbolo de IEEE/IEC para un chip de cuatro compuertas NOR de dos entradas
APÉNDICE B SÍMBOLOS LÓGICOS ESTÁNDAR 449

B.3 LÓGICA MSI


Multiplexores (ejemplo, 74 x 153 multiplexor doble de cuatro líneas de datos a una)
Este componente tiene dos multiplexores idénticos de 4 a 1 los cuales tienen entradas de selección
(A y B) comunes y habilitación individual mediante señales activo-BAJO (1G' y 2G). Las salidas
se denominan generalmente por Y, mientras que los datos de entrada se designan con la letra C.
El componente genérico se puede indicar en un diagrama con la notación convencional, como se
muestra en la figura B-5a, aunque algunos autores prefieren la versión triangular que se muestra
en la figura B-5b. En muchos casos, se emplea un círculo en lugar de la media flecha.
La notación de IEEE/IEC para el mismo circuito se muestra en la figura B-6 donde las entra-
das de selección comunes se muestra que ingresan en la parte inclinada del símbolo. Las entradas
de habilitación se etiquetan con "EN" lo cual viene de "ENable" (habilitar).

(a) (b)
Fig. B-5 Dos alternativas de notación convencional para un multiplexor doble de cuatro línea» con
habilitación
450 APÉNDICE B SÍMBOLOS LÓGICOS ESTÁNDAR

Fig. B-6 Símbolo de la IEEE/IEC para un multiplexor doble con dos líneas de selección y habi-
litación

Flip-flops (ejemplo, 7478 flip-flop JK doble)


Este componente contiene dos flip-flops JK los cuales se preinicializan individualmente, pero inter-
namente tienen líneas de borrado y reloj comunes. Un símbolo para el flip-flop genérico amplia-
mente utilizado se muestra en la figura B-7. En el símbolo de la IEEE/IEC de la figura B-8, el "blo-
que" característicamente formado para las señales de entrada comunes aparecen en la parte
superior, como se hizo con el multiplexor. Obsérvese también, los símbolos de "ángulo recto" en
las salidas del flip-flop las cuales indican que estas salidas son registradas.

B.4 EXTENSIÓN DE LA NOTACIÓN DE LA IEC PARA CIRCUITOS MÁS COMPLEJOS


Registros de corrimiento (ejemplo, 74 X 163 registro de corrimiento de 8 bits con carga en paralelo)
La notación de la IEC se extiende para circuitos más complejos de una manera directa como se
muestra en la figura B-9. Como en los casos anteriores, las señales comunes a todas las etapas ingre-
san a la única parte formada en la parte superior del bloque.
La señal de borrado común es activo-BAJO (media flecha) y está unida a la terminal 9. La señal
de corrimiento/carga cambia el modo de operación haciendo un corrimiento del reloj para que se
presente cuando sea ALTO y cargar los datos en paralelo cuando sea BAJO. Las dos entradas de
reloj se pasan a través de compuertas OR de tal manera que si una de ellas o ambas permanecen
en VERDADERO (ALTO), deshabilitan al reloj; de este modo una línea de reloj se puede usar para
la sincronización de los pulsos, mientras que el otro sirve como una habilitación.
Hay ocho etapas del registro de corrimiento, cada una indicada mediante una sección rectangu-
lar. La entrada de datos en paralelo se denotan mediante las letras A hasta la H y, las etapas del
registro de corrimiento se enlazan en orden alfabético. La etapa A tiene una segunda entrada (SER)
APÉNDICE B SÍMBOLOS LÓGICOS ESTÁNDAR 451

Fig. B-7 Fig. B-8

Fig. B-9
452 APÉNDICE B SÍMBOLOS LÓGICOS ESTÁNDAR

la cual se utiliza si se requiere la entrada de datos en serie. Solamente la última etapa (sección H)
tiene una conexión de la terminal de salida de la cual se extraen los datos en serie.

Contadores (ejemplo, 74 X 160 contador de décadas de 4 bits síncrono)


Consúltese la figura B-10 para el símbolo de la IEEE/IEC. Este dispositivo tiene varias entradas
comunes a sus cuatro etapas. Junto con el reloj común, hay un borrado común (CLR) la cual es
activo-BAJO, una señal de control de modo (LOAD) la cual, cuando es BAJA, selecciona al modo
1 (Mi) para cargar los datos en paralelo y, cuando es ALTO, selecciona el modo de conteo (M2).
Hay también dos señales comunes de habilitación ALTO-VERDADERO (ENT y ENP), las cuales
deben estar en ALTO para contar. La señal ENT sola habilita la propagación del acarreo (RCO).
Cada una de las cuatro etapas tiene una entrada para cargar los datos y una terminal de salida (eti-
quetada como Q).

Fig. B-10
Apéndice C
Algunos comentarios sobre simulación
lógica digital
C.l PROBLEMAS EN LA SIMULACIÓN DE CIRCUITOS CON REALIMENTACIÓN

La utilización de la simulación por computadora para probar circuitos es una herramienta podero-
sa, pero hay algunos inconvenientes los cuales, si no se reconocen, pueden causar serios errores.
Por ejemplo, considérese el diseño del latch con compuertas de la figura 7-8 cuya pantalla en Logic-
Works™ se reproduce en la figura C-l.

Fig. C-l
Como se discutió en la sección 7.5, se espera que se presente una condición oscilatoria, pero
¿qué se hace con los resultados que se muestran en la figura C-2? Obsérvese que las oscilaciones
no terminarán si no se toma en cuenta qué hacer con los interruptores de entrada, y persisten aun
si se inicializa el tiempo a cero en un intento por empezar nuevamente. Peor aún si se guarda el
circuito y se reinicia el programa, el problema permanece, ¡casi como si una parte se hubiera da-
ñado!
453
454 APÉNDICE C ALGUNOS COMENTARIOS SOBRE SIMULACIÓN LÓGICA DIGITAL

Fig. C-2

La dificultad viene del hecho de que los simuladores como LogicWorks, con la finalidad de
operar apropiadamente, necesitan empezar de una condición donde el estado de todas las compuer-
tas se determine sin ambigüedades. Los circuitos latch acoplados en forma cruzada (y muchos otros
circuitos con conexiones de realimentación) pueden, para ciertas combinaciones de entrada, tener
dos estados de salida los cuales son igualmente probables que se presenten. De este modo, la confu-
sión puede emerger y la simulación se va a la basura, por decirlo de alguna manera. Una fuerte señal
de que las cosas están fuera de lugar es la ocurrencia de un comportamiento imposible tal como
dos Os a la salida de un latch (figura C-l) o un inversor que tiene niveles lógicos idénticos a la entrada
y a la salida. Como en la prueba de circuitos reales, el ingeniero no debe ser muy crédulo. Los osci-
loscopios y sí, aun las computadoras pueden mentir.

La solución
Se debe agregar un reset en el circuito, máxime si existe una trayectoria de realimentación crítica,
para forzar un estado único sobre el circuito que se comporta de manera inadecuada. En el presente

Fig. C-3
APÉNDICE C ALGUNOS COMENTARIOS SOBRE SIMULACIÓN LÓGICA DIGITAL 455

ejemplo, una sencilla compuerta AND como interruptor (como se muestra en la figura C-3) será
suficiente. La compuerta de reset debe tener su retardo de tiempo fijo en cero de modo que cuando
su entrada conmutada esté en 1 lógico, ésta será totalmente transparente a la operación del circuito.

C.3 GENERACIÓN DE FORMAS DE ONDA DE ENTRADA


SINCRONIZADAS CON EL RELOJ

La señal INPUT en el problema 7.8 empieza de un 1 lógico inicial, y se requiere que cambie de nivel
en el flanco de bajada cada cuarto pulso de reloj. Esto se puede lograr muy fácilmente en simulación
usando dos fuentes de reloj (una para cada forma de onda) y ajustar los tiempos de encendido y
apagado de cada uno, como se requiera. En el presente ejemplo, el reloj se ha fijado arbitrariamente
para 10 unidades de tiempo en alto y 40 unidades de tiempo en bajo, seguidos por la definición de
fuente INPUT para tener tiempos en alto y bajo de 200 unidades de tiempo.
El arreglo se repite en el problema 8.21 con algunas modificaciones interesantes. Como se pun-
tualizó en la solución al problema 7.8, las transiciones de señal simultáneas crean una situación de
tiempo de inicio y de retención cero, haciendo imposible que el flip-flop A responda a un cambio
en la entrada hasta que se presente el siguiente pulso de reloj.* Si se va a evitar esta condición, la
señal INPUT se puede sincronizar al flanco de subida del reloj en lugar de su flanco de bajada.
Esto se logra en el simulador agregando 10 unidades de tiempo de retardo a la señal de reloj el cual
efectivamente lo recorre a la derecha, reposicionando su flanco de subida para que se alinee con
la transición de la señal INPUT. Como se muestra en la figura 8-39, se utilizan dos inversores para
tal propósito, de modo que no hay inversión neta.
En el problema 7.8 se recurre a un valor inicial de 1 para la forma de onda de entrada. En el
problema 8.21 esto pudo lograrse fácilmente en el simulador LogicWorks™ dibujando manual-
mente el nivel alto inicial en la ventana del diagrama de tiempos cuando se hizo una pausa en la
simulación. Los autores han seleccionado, en su lugar, empezar con INPUT = 0 ya que esto permite
acomodar características importantes en el diagrama de tiempos de una manera más sencilla en el
espacio disponible en la figura 8-40.

*En LogicWorks™ los flips-flops D y JK tienen un tiempo de inicio equivalente a una unidad de tiempo y un tiempo de
retención cero. Por ello, si los datos y las señales del reloj cambian simultáneamente, se usará el valor del dato inmediata-
mente anterior.
Índice

Nota: Los números entre paréntesis se refieren a los números de los problemas, no a los de las páginas.

Acarreo de entrada, 6, 29,420 Bases, conversión entre, 5-6 diseño empleando entradas a una
Acarreo de salida, 6, 29,420 Biblioteca, de componentes, 315 tabla de estados, 373
Activo bajo (definido), 104 Biblioteca de dispositivos, 315, 327, diseño para número mínimo de
Acumulación del tiempo de retardo, 329 flip-flops, 369
280 Binario: símbolos, 365
Adición: adición, 6,34, (2.13) Carta de la máquina de estado
binaria, 6, 34,420 aritmética, 6 algorítmica (Véase también,
hexadecimal, (1.8) codificado en decimal (DCB), 8 carta ASM), 365
Adición complementaria, 421 contador, 278 Ceros:
Adición mediante complemento a conversión a código Gray, 11, al inicio (a la izquierda), 8
nueves, (1.10) 160,317 cobertura de, 68, (4.14)
Adición mediante complemento a generador de secuencia, (8.14, Ceros al inicio (a la izquierda), 7
ochos, (1.14) 8.15) Circuitos digitales secuenciales
Adyacencia, 67, 70 números, 1 (Véase también, máquinas de
Álgebra booleana, 30 sistema, 1, 2 estado), (7.9, 7.10, 8.1-8.15,
identidades y teoremas sumador, diseño con PLA, (9.7) 9.4-9.6)
fundamentales, 59, Apéndice A sustracción, 7 CI a la medida, 315
jerarquía de operaciones, 32 Bit, 2 Codificador de barra, 10, 367
Alto-VERDADERO, 102-105 secuencias de, implantadas, Codificador, incremental, 367
ALU, 420 414 Código:
retardo de propagación en la, sílice, 420 Bit de signo, 7 alfanumérico, 11
(11.5) Bloque de decisión, 366 ASCII, 11 BCD, 8
Árbol, multiplicador de, 154 Bloque lógico configurable, 414 de corrección de errores, 13
Aritmética, binaria, 6 Buffer, de tres estados, 286, 319 Gray, 8
Arreglos de compuertas Burbuja, uso de, 102,104, 106 Hamming, 14
programables de campo Bus (Véase bus de datos) ponderado posicional, 8
(FPGA), 329, 414 tipos, 8
Aseguramiento (Latching), 273 Captura esquemática, 200, 329 Código alfanumérico, 11
registro de, 273, (8.13) Carta ASM, 365 Código ASCII, 11,12, (1.22) Código
ASIC, introducción a los, 315 a partir del diagrama de tiempos, DCB, 8
Asincronismo en multiplicadores de (10.13) Código Gray, 8
tasa, (8.12) a partir del diagrama lógico, aplicación en los mapas-K, 64
Asincrono: (10.9) contador, 359, 365
modo de operación de un registro, construcción, 367 conversión a binario, 27, (1.15,
278 diseño de salidas mediante 1.16,5.8)
operación de flip-flops J K, 232 ecuaciones, 371 empleo en el disco codificador de
diseño de un controlador de un posición, 10, 367
Bajo-VERDADERO, 103, 109 flip-flop por estado (one-hot), propiedad de distancia unitaria, 9
Barra de interferencia de baja 371 Código Hamming, 14, (1.19-1.21)
frecuencia (Glitch), 194, 198, diseño de un decodificador tabla de verdad para, (2.1)
201,281 incremental, 367, 373 Complemento a dos, 7, (1.11)
Base, numérica, 1, 5-8

457
458 ÍNDICE

Completo: Condicional: Conversión:


arreglos de compuertas, 327 ramificación, 366 entre códigos binarios y Gray, 11,
decodificador, 156 salida, 366 160,(1.15,5.8)
diseño a la medida, 330 Conexiones de salida, Apéndice entre sistemas numéricos, 1, 3-6,
implantación de un sumador, B.2 (1.1-1.7, 1.16)
(4.5-4.9) Contador: paralelo a serie, 278
Comportamiento metaestable, 241 binario, 278 Conversión paralelo-serie, 278
Compuerta ADN: de código Gray, 359, 365
como un interruptor controlado, de propagación, 278, (8.8) Datos:
413 de tasa máxima de pulsos, (8.8) asincronos, 242
definida, 34 determinación del diagrama de bus de, 231,285
Compuerta de control (en registros macrotemporización para el, de entrada síncrona, 278,
programables), 425 (8.1-8.3) Apéndice C.2
Compuerta de reconocimiento, 280, diseño mediante una máquina de en paralelo, 278
(8.5) estado de un, 358-361 en serie, 278
Compuerta NAND: exceso de tres, (10.2) Decodificador, 155
hardware, 101 hacia arriba y hacia abajo, 361 completo, 156, 316
interrruptor inversor controlado, inicialización del, (9.4) de direcciones, 156
412 Johnson, 287 de siete segmentos, 69, (2.2, 2.11)
inversor de voltaje, 106 Mobius, 287 Decodificador de direcciones, 235,
Compuerta NOR: secuencia a partir del diagrama de 283
hardware, (4.1) conexión de un circuito PLA, Decodificador de un exhibidor de
interrruptor inversor controlado, (9.6) siete segmentos, (2.2, 2.11)
412 símbolos para el, Apéndice B.5 Decremento, (11.3)
inversor de voltaje, 106 síncrono, 359 Demultiplexor, 155
Compuerta OR: Contador de exceso tres, (10.2, Detección y corrección de errores,
definida, 34 10.3) 13,(1.19-1.21, 1.24-1.27)
interrruptor controlado, utilizada Contador de propagación, 278, (8.3, Diagrama de macrotemporización,
como un, 413 8.5, 8.8) 199,(6.8,7.9-7.11)
Compuerta primada, 283 estados de transición en el, para circuitos con contadores,
Compuerta (Véase también, NAND 281 (8.1,8.3)
y NOR), 101 problemas con las barras de Diagrama de microtemporización,
arreglos, 327, 414 interferencia de baja 294
arreglos, programables, 281, frecuencia, 278, 280 en los inversores de voltaje, 196
414 Contador hacia arriba y hacia abajo, para mostrar riesgos, 198, (6.1)
conexiones externas, Apéndice (9.4) preparación del, 194,(6.1,6.3,
B.2 Contador Johnson, 287 6.5)
definida, 34 Contador Mobius, 288 Diagrama de tiempos, 194, (6.1,
implicaciones de hardware, 64, Controlado: 6.3-6.5)
101 interruptor, 412, 413 a partir de la carta ASM, (10.13)
primada, 283 inversor, 412, 413 Dirección, 154
reconocimiento, 280, (8.5) Controlador, 371 Disco de codificación, 10
retardo en, 199 ecuaciones de diseño, 372 Disco de codificación posicional, 10
símbolos, Apéndice B.2 Controlador de un flip-flop por Diseño de máquinas de estado:
Compuerta XOR: estado, 371 con flip-flops D, 359, 362
como un inversor diseño a partir de la carta ASM, con flip-flopsJK, 361,362
controlado, 412 (10.10) con multiplexores, (10.7)
definida, 35 inicialización, 377 con ROM, (10.2)
implantación en hardware, 107 Controlador de un motor de pasos, conversión de la implantación de
para inversión lógica, utilización (9.3) D a JK, 362
de la, 35, 412
ÍNDICE 459

de un contador de código Gray, sincronizada, 278, 369, Apéndice, Flanco delantero (del pulso del
(10.1) de un contador de C.2 reloj), 237
exceso tres, Entrada a la tabla de estados, 373 Flip-flop D, 237, 273, 276, (7.8,
(10.2) de dispositivos lógicos 7.12)
de un contador de exceso tres programables, 373 implantación mediante un JK,
empleando un PAL 16R6, software para, 371 276
(10.3) Entrada asincrona (strobe), 230 tabla de estados, 238
entradas externas, 358 Entrada de control, 420 Flip-flop de retardo, 237
inhibidor de activación en el, 377 modo de la, 420 Flip-flop JK: como un flip-flop D,
inicialización, 377 temporización, (11.4) 278
introducción al, 357 Entrada de datos en paralelo, condiciones iniciales, (6.9, 8.11)
Diseño de una celda común, 330 277 diagrama de microtemporización,
Disparo, 233, 239 Entrada/Salida (Véase E/S) 235, (6.9)
flanco de, (7.6, 7.7) Entrada serial, 275 disparo por franco, (7.6, 7.7, 7.9)
Disparo por flanco negativo, 237 Envío y ubicación, 418 limpiado de un, (6.9)
Dispositivo PAI, 319 EPROM, 316 operación de un, 233
arquitectura, 319 Equivalencia, lógica, 30, (2.5) operación síncrona y asincrona de
diagrama de conexión, (9.5, 9.6) Errores en circuitos secuenciales un, 231-234, 362
diseño a partir de una tabla de (Véase también, preinicio y limpiado de un, 234
verdad, (9.8) metaestabilidad), 241 respuesta a la transición del reloj,
programación, 319 E/S, 202, 285 235
Dispositivos de aplicación bloque, 413 tabla de estados, 229, 359
específica, introducción a los, registro, 285, 286 Flip-flop maestro-esclavo (Véase
431 Escritura a RAM, 284, 286, 287 también, flip-flop JK), 231
Dispositivo TRI-STATE*: Estado, 365 Flip-flop RS:
como un amplificador de destino, 369 con reloj, 228, (7.1)
aislamiento (buffer), 285, 319 Estado destino, 369 diagrama de microtemporización
como un interruptor controlado, Estado inicial en simulación, para el, (7.1)
413 Apéndice C. 1 implantación con compuertas
Divisor de frecuencia, 280 Estado presente, 357 NAND, (7.1)
Dualidad (Véase también, álgebra Estado prohibido, 231, 235 implantación con compuertas
booleana), Apéndice A Estado siguiente, 358 NOR, (7.4)
Estados transitorios, 281 Flip-flop RS con reloj, 228
Ecuaciones booleanas: Etapa, 273 Flip-flop 1,238,(7.8,7.13)
a partir de un diagrama de lógica Exhausión, prueba mediante, 62 tabla de estados, 238
positiva, (4.11) Exhibidor de DCB a siete Flip-flop (Véase también, D, JK,
a partir de un diagrama lógico, segmentos, 69, (2.2) latch, RS y T):
(2.14,4.11) Expresiones booleanas: arreglos de, diagrama de
definidas, 30 recuperadas a partir del diagrama microtemporización para los,
del controlador de un motor de de un multiplexor, (5.14) (8.1-8.3)
pasos, (9.3) recuperadas a partir del diagrama circuitos con, análisis de la
estructura de las, 30 lógico mixto, 111,(5.14) operación secuencial de los
lectura de, 32, 111 recuperadas a partir de una ROM, (Véase también, máquinas de
relación con tablas de verdad, 33 (5.15) estado), (7.9. 7.10, 8.2, 8.9,
EEPROM, 316 simplificación mediante 8.11,9.4)
Eje de reflexión, 9 manipulación, 63, 64 combinaciones de, 273
Elementos MSI y LSI, 150 disparo y temporización, 235,
Enlaces de fusibles, 315 Fan-in, 157 237,239,(7.6,7.7)
Entrada: Flanco de disparo (Véase también, introducción a los, 226
de control, 412, 417 flip-flop), 233, 237, (7.6, 7.7) maestro-esclavo, 233
460 ÍNDICE

símbolos, Apéndice B.4 Incremento, 425 tabla de estados, 229


tiempo de inicialización, 239 Inestabilidad, (6.7) Lectura:
tiempo de retardo de Inhibidor de activación (Lock-out) de datos de una RAM, 285-287
propagación, 235, 239 (7.1, (Véase también, paro de ecuaciones booleanas, 32
7.3) inesperado), 377 Lenguaje de programación del
tiempo de retención, 239 Inicialización: de un contador, (9.4) dispositivo PALASM®, 319
tipos de, 237 de un controlador de un flip-flop Ley conmutativa, 62
Formas de onda de entradas por estado (one-hot), 377 Ley distributiva, 37
sincronizadas, simulación de, de las máquinas de estado, 377 Limpiado (Clear), 234
Apéndice C.2 Interfase del codificador Lista Net, 202
Formas de onda de voltaje, 114, incremental, diseño con la Localización de errores, 113
(4.12) carta ASM, 367,373 Lógica:
Formas de onda: Interruptor: equivalencia, 30, (2.5)
determinación a partir del libre de vibración (chatter, inversión, 31, 113
diagrama de conexión del CI apertura-cierre repetitivo), 228 operadores, 32
de voltaje, 113,(4.12) controlado electrónicamente, 413, variables, 30
diseño a partir de, (6.10) 414 Lógica combinacional:
generación de, (8.7) Interruptor libre de vibración con multiplexores, 154, (5.11)
PAL, (9.5, 9.6) (chatter, apertura-cierre diseño de, 27, 59
simulación de entradas repetitivo), 228 Lógica mixta (Véase también,
sincronizadas con el reloj, Interruptores, utilizados para lógica positiva), 101
Apéndice C.2 visualizar las relaciones como una herramienta de diseño,
Fracción (en sistemas numéricos), 1, booleanas básicas, 60 102
5,6 Inversión, lógica, 31, 33 diagrama, construcción del, 107,
Función ADN, definida, 31 Inversor, 106-108 (4.16)
Función booleana ADN, definida, controlado, 412, 413 diagrama, conversión al diagrama
31 Inversor de voltaje, 106 de alambrado, 109, 111
Función booleana OR, definida, 31 en diagramas de inversión lógica en, 106, 107
Funciones programables microtemporización, 194 localización de errores,
electrónicamente formas del hardware, 103 aplicaciones en la, 113
(Véase también, ALU), 412 recuperación de expresiones
Función OR, definida, 31 Jerarquía de operaciones en álgebra booleanas a partir de, 111
Función OR exclusiva (Véase, booleana, 32 símbolos, 104
función XOR) Lógica positiva, 102, 112
Función XOR: Latch (Véase también, flip-flop RS), conversión a la forma de lógica
definido, 32 226, (6.4, 6.6) mixta, (4.10)
equivalente booleano, (2.4) con compuertas, 229, 232 Lógico:
mapeo de la, 72 con entrada asincrona (strobed), compuerta, definida, 34, 101
representación de la tabla de 230 conversiones, 111
verdad, (2.4, 2.10) con set dominante, (7.5) diagrama, construcción a partir
implantación de, 230 de ecuaciones lógicas, 35, 37,
Generador de secuencias binarias Latch con compuertas: 107
pseudoaleatorias, (8.14, 8.15) diseño imperfecto, 232 diagrama, creación de la carta
problema en simulación, ASM a partir del, (10.9)
Habilitar, 150,230,286,287 Apéndice C. 1 diagrama, definido, 34
Hardware (Véase también, NAND y Latch con entrada de datos en forma diagrama, recuperación de la
NOR) convención para lógica asincrona, 230 forma lógica mixta, 111
mixta, Latch RS: funciones, 30
101 estado prohibido, 229 inversor, 106, 107
de la compuerta, 101 niveles, 101, 102
ÍNDICE 461

positiva (definida), 102 Media flecha: sistema numérico, 3


símbolos, 35, símbolo (definido), 104, 107-111 sustracción, (1.14)
Apéndice, B.l uso de la, 104 Operación transparente (latch
Lógico, arreglo de celdas, 325, 416 Mediante flechas balanceadas, 107, asíncrono), 230, 237
LogicWorks TM (software para (4.14) Operadores, lógicos, 30
simulación digital), 202, 205, Medias flechas desbalanceadas, Oscilación, 203, (6.6, 6.7)
Apéndice C.l 108 en simulaciones, Apéndice C. 1
Longitud de la ruta, 197-198 Medio-sumador, (2.15)
Longitud máxima PRBS, (8.14, Memoria (Véase también, RAM y PAL16R6, 319
8.15) ROM), 227 de un registro de corrimiento
Memoria de acceso aleatorio, reversible, diseño con, (9.2)
Macros (en arreglos de compuertas (Véase RAM) de un controlador de un motor de
programables), 329 Memorias borrables, 376 pasos, diseño con, (9.3)
Mapa-K (Véase mapas de Metaestabilidad, 241, (8.13) de un contador hacia arriba y
Karnaugh) Módulo lógico universal, 150 hacia abajo, diseño con, (9.4)
Mapas de Karnaugh: Multiplexaje por división de tiempo, de una máquina de estado con
adyacencia en los, 67, 73 156 más de tres contadores,
análisis de circuitos secuenciales Multiplexor, 150 diseño con, (10.3)
con los, (8.4, 9.6, 10.1) aplicaciones en circuitos Par amplificador, 322
de cinco y seis variables, 70 secuenciales, (7.14) Paréntesis, utilización de en
de cuatro variables, 66 como selector manejado por un ecuaciones booleanas, 32
coberturas de ceros, 68 contador, (8.3) Paridad, 13,(1.18)
de árbol, 154 generador de, (2.1,2.12)
coberturas de unos, 68
direcciones en, 154 grupo de, 13, 14
coberturas que se traspalan en los,
diseño de máquinas de estado, verificación de, (5.12)
68
utilizado en el, (10.7) Paro inesperado (Hang-up) en
con el código Gray, 64, 65
diseño lógico de un, 154, 155 circuitos secuenciales (Véase
introducción a los, 64
dispositivo lógico combinacional, también, inhibidor de
no importa, manejo de los
utilizado como un, 154, (5.2- activación), (8.9, 8.11)
términos, 69, (4.17)
5.4,5.13) PLA, 325
que presentan riesgos, 197-198, arquitectura, 325
interruptor controlado, utilizado
203 de un sumador binario, diseño
como un, 154,413
rebanadas de un mapa de seis con, (9.7)
lógico, 150,(5.1)
variables, 71 diseño a partir de una tabla de
selección entre una señal y su
reducción de (asistida por verdad, (9.7)
complemento, utilizado para la,
computadora), 72 PLD, 315
(11.7)
reglas para la simplificación de,
selector lógico, 37 Ponderación:
67,68
símbolos, Apéndice B.3 en códigos, 11
relación con los multiplexores,
Multiplicador, (5.7) en sistemas numéricos, 6, 8
(5.5)
Multiplicador de tasa, 281 Preinicio, 235
representación de estado
asincronismo en el, (8.12) Programable:
presente/estado siguiente,
arreglo de compuertas (PGA),
362 No importa (términos), 69 327-329
representación de la XOR con Notación posicional, 1 arreglo lógico (PAL®), 318
los, 73
arreglo lógico programado,
simetría en espejo de los, 70,71 OR exclusiva inversa (Véase (PLA), 325
tablero patrón, 73, (4.17) equivalencia lógica) dispositivo lógico, entradas a la
Máquina de estado: Octal, 3 tabla de estados, 373
especificación del sistema, 357 conversión a binario, 4 interconexión, 416, 417
retardo del reloj en la, 375 conversión a código Gray, (1.17)
Marca diagonal (slash), uso de la,
105, 106, 108
462 ÍNDICE

lógica, en el diseño de máquinas sincronizadas, simulación de, registrada, 322,416


de estado, 361 Apéndice C.2 señal de control fuente, 416
lógica, técnicas de programación, frecuencia de, 242 valores verdaderos en las
373,417 operación con la máquina de conexiones (PAL 16R6), 322
lógico, 315 estados, 357, 377 Salida registrada, 416
Programación: periodo de, 241 Salidas no condicionadas, 366
de arreglos de compuertas, 327 pulsos de tiempo en máquinas Salidas no registradas, 319
de una ROM, 157 síncronas, 366, 375 Secuencias de bits implantadas, 415
del software, 254, 329, 375,418 retardo (Véase también, Secuencia de conteo, (8.4, 8.9, 8.11,
el FPGA, 417 temporizado), 375 8.14)
el dispositivo PAL, 319 retardo de la señal en simulación, Seis inversores, 111
Programación de arreglos de Apéndice C.2 Selección (Véase también,
compuertas programables de Reinicio, 226, 235 dirección), 150, 153, 155
campo, 417 en simulación de circuitos con Señal de control de jalón (pull-up)
Propagación de la señal en un flip- retroalimentación, Apéndice pasivo, 416
flop, 235, 241 C.l Señal de control de la tasa de
PROM,316 Reinicio global, 416 cambio de pendiente (slew
quemado de, 316 Reloj digital, 280 rate), 416
Propiedad de la distancia unitaria, 9 Retardo de propagación, flip-flop, Señal de control de modo, 420
Prueba mediante exhausión, 62 235, 239, 376 Señal de control OUT INV
Puerto: Retroalimentación en circuitos (inversión de la salida), 416
bidireccional, 416 lógicos combinacionales, 203, Señales de control para funciones
de entrada, 416 319 programables
Puerto bidireccional, 416 Riesgo (Hazard), 197,(6.2) electrónicamente, 412, 416
coberturas en los mapas-K, 198, Set, 226, 235, 239
RAM, 283 203, (6.2) latch dominante, (7.5)
dirección en una, 283-287 ROM, 157, 159,283 Símbolos:
tabla de definición, 414 dirección de una, 157, 159,(5.16) carta ASM lógica mixta, 104
Ramificación condicional, 361 memoria, utilización como una, lógicos, 36, Apéndice B. 1
Reducción de mapas-K asistido por 159 PALASM», 320
computadora, 72 programación de una, 160 Simplificación:
Registro (Véase también, arreglos relación con los diagramas de expresiones booleanas
de flip-flops y registro de lógicos, (5.9, 5.10) mediante manipulación, 63
corrimiento), 226, 240, 273, relación con las tablas de verdad, de expresiones booleanas usando
285 160 mapas-K, 65
aseguramiento (Latching), 273 utilización en circuitos reglas para los mapas-K, 67
de corrimiento, 276 E/S, 285, 286 secuenciales, (8.7) Simulación:
programable, 422 utilización en máquinas de de circuitos con realimentación,
Registro de corrimiento, 276-277, estado, (10.2) problemas, Apéndice C. 1
287 Ruido: de la respuesta de flip-flops JK,
reversible, 276 inmunidad al, 1 , 2 235
símbolos para, Apéndice B.4 margen de, 2, (1.23) formas de onda sincronizadas con
Registro de corrimiento reversible, el reloj en. Apéndice C.2
276, (9.2) Salida: Simulación de circuitos por
Registros programables, 422 condicional, 367 computadora, 200, 203
Reloj, 228, 233 ecuaciones de diseño de la (carta Síncrono:
flanco delantero del pulso, 237, ASM), 371 contador, diseño de la máquina de
Apéndice C.2 habilitar (leer), 286 estado con entrada de datos,
formas de onda de entrada no condicional, 365 278
no registrada, 319
ÍNDICE 463

operación de los flip-flop JK, 231 Tabla de estados para estados acumulación de, 376
operación de los sistemas secuenciales (para flip-flops enlaALU, (11.5)
digitales, 228 JK), 364 Tiempo de retención, 239
máquina de estado (Véase Tabla de verdad: Tiempo medio entre fallas (MTBF),
máquina de estado) construcción de la, 28, 29 241,242,(8.13)
Sistema de numeración decimal, estado presente/estado siguiente, Toggle, 232, 233, (8.5)
propiedades del, 1-4 358 flip-flop, 238
Sistema numérico hexadecimal, 3 introducción a la, 27 Transferir salida (transfer out), 423
Sistemas numéricos, 1, 5 relación con las ecuaciones
bases, 1 booleanas, 33, (2.3, 2.6, 2.7) Ubicación y envío, 418
conversión de fracciones, 5 relación con una ROM, 157 Unidad lógica aritmética (Véase
conversión de una base a otra, 1,5 Tabla de verdad de estado presente/ ALU)
ponderación en, 1, 4, 6 estado siguiente, 357 Unos:
Software para la entrada en la tabla Tablero patrón (Véanse mapas de cobertura de, 68, 70
de estados, 373 Karnaugh) complemento a, 421
SRAM, 414 Tasa de pulsos, máxima, (8.8) Utilización de la tabla de transición
Sustracción: Temporizado: de estados en el diseño de
binaria, 7 en flip-flops (Véase también, máquinas de estado, 369
complemento a dos, 7,421 disparo), 239
empleando adición en máquinas de estado, 358, Valores verdaderos, asignados de
complementaria, 7, 421 375 los, 102,322
octal, (1.14) entradas de control, (11.4) Variable de estado:
Sumador (Véase también, medio- errores de (Véase también, ecuaciones de diseño a partir de
sumador), 420 retardo del reloj), 242, (6.7) la carta ASM, (10.7)
binario, 6, 29, 34, (1.9,2.13,4.4) simulación de, 200(6.1) Variables:
módulo-2, (8.5) Teorema de absorción, 62 asignación de valores verdaderos
Sumador módulo-2, (8.15) aplicación a la simplificación de a, 102
los mapas K, 65 de control (Véase también, lógica
Tabla de cambios de estado (para un Teorema de DeMorgan, definido, programable y ALU), (11.8-
flip-flop JK), 363 62 11.14)
Tabla de definición de teclas Teoremas, del álgebra booleana, 59, de estado, 371
(información específica 62 lógicas, 30, 103
definida previamente), 160, Tiempo de inicio, 239 Variables de control (Véase
414 Tiempo de retardo de propagación, también, lógica programable y
Tabla de estados, 229, 359 194,235,239,376 ALU), (11.8-11.14)

S-ar putea să vă placă și