DÉCIMA EDICIÓN
Sistemas Digitales
Principios y Aplicaciones
2/.!,$ *4/##)
.%!, 37)$-%2
'2%'/29 , -/33
Sistemas digitales
Principios y aplicaciones
DÉCIMA EDICIÓN
Sistemas digitales
Principios y aplicaciones
Ronald J. Tocci
Monroe Community College
Neal S. Widmer
Purdue University
Gregory L. Moss
Purdue University
Traducción
Alfonso Vidal Romero Elizondo
Ingeniero en Electrónica y Comunicación
Instituto Tecnológico y de Estudios Superiores de
Monterrey - Campus Monterrey
Revisión técnica
Reynaldo Félix Acuña
Profesor investigador
Departamento de Ingeniería Eléctrica
y Electrónica
Instituto Tecnológico y de Estudios
Superiores de Monterrey
Campus Estado de México
Marcos de Alba
Profesor investigador
Departamento de Ingeniería Eléctrica
y Electrónica
Instituto Tecnológico y de Estudios
Superiores de Monterrey
Campus Estado de México
TOCCI, RONALD J., NEAL S. WIDMER,
GREGORY L. MOSS
Sistemas digitales.
Principios y aplicaciones
Décima edición
Pearson Educación, México, 2007
ISBN: 978-970-26-0970-4
Área: Ingeniería
Formato: 21 27 cm
Páginas: 968
Authorized traslation from the English language edition, entitled Digital systems: principles and applications
by Ronald J. Tocci, Neal S. Widmer and Gregory L. Moss, published by Pearson Education, Inc., publishing as
Prentice Hall, Inc., Copyright ©2007, All rights reserved.
ISBN 0131725793
Traducción autorizada de la edición en idioma inglés titulada Digital systems: principles and applications por
Ronald J. Tocci, Neal S. Widmer and Gregory L. Moss, publicada por Pearson Education, Inc., publicada como
Prentice Hall Inc., Copyright ©2007. Todos los derechos reservados.
Edición en español
Editor:
Luis Miguel Cruz Castillo
e-mail: luis.cruz@pearsoned.com
Editor de desarrollo:
Bernardino Gutiérrez Hernández
Supervisor de producción: Adriana Rida Montes
DÉCIMA EDICIÓN, 2007
D.R. © 2007 por Pearson Educación de México, S.A. de C.V.
Atlacomulco 500-5o. piso
Industrial Atoto
53519, Naucalpan de Juárez, Edo. de México
Cámara Nacional de la Industria Editorial Mexicana. Reg. Núm. 1031.
Prentice Hall es una marca registrada de Pearson Educación de México, S.A. de C.V.
Reservados todos los derechos. Ni la totalidad ni parte de esta publicación pueden reproducirse, registrarse
o transmitirse, por un sistema de recuperación de información, en ninguna forma ni por ningún medio, sea
electrónico, mecánico, fotoquímico, magnético o electroóptico, por fotocopia, grabación o cualquier otro, sin
permiso previo por escrito del editor.
El préstamo, alquiler o cualquier otra forma de cesión de uso de este ejemplar requerirá también
la autorización del editor o de sus representantes.
ISBN 10: 970-26-0970-4
ISBN 13: 978-970-26-0970-4
Impreso en México. Printed in Mexico.
1 2 3 4 5 6 7 8 9 0 - 10 09 08 07
A ti, Cap, por amarme tanto tiempo; y por las mil y una maneras
de iluminar las vidas de todos los que tocas.
—RJT
A mi esposa Kris y a nuestros hijos John, Brad, Blake, Matt y
Katie: por prestarme el tiempo y atención que les quité al realizar
esta revisión.
—NSW
A mi familia: Marita, David y Ryan.
—GLM
P R E FAC I O
Este libro es un estudio completo sobre los principios y las técnicas de los sistemas digitales modernos. Enseña los principios fundamentales sobre los sistemas
digitales y cubre con amplitud los métodos tradicional y moderno para aplicar las
técnicas de diseño y desarrollo digital, incluyendo cómo administrar un proyecto
a nivel de sistemas. El libro está planeado para utilizarse en programas de dos y
cuatro años relacionados con tecnología, ingeniería y ciencias computacionales.
Aunque sería de utilidad tener conocimientos sobre electrónica básica, la mayor
parte del material no lo requiere. Se pueden omitir las partes del texto en las que
se utilizan conceptos sobre electrónica sin peligro de afectar la comprensión de los
principios de lógica.
Mejoras generales
La décima edición de Sistemas digitales refleja los puntos de vista de los autores en
relación con la dirección de la electrónica digital moderna. En la industria actual
podemos ver la importancia de liberar un producto en el mercado lo más rápido
posible. El uso de herramientas de diseño modernas, dispositivos lógicos programables complejos, CPLD, y arreglos de compuertas programables por campo (FPGA)
permite a los ingenieros progresar de los conceptos al silicón funcional con mucha
rapidez. Los microcontroladores se están haciendo cargo de muchas aplicaciones
que antes se implementaban mediante circuitos digitales, por lo que se ha estado
usando la DSP para sustituir muchos circuitos análogos. Es sorprendente que los
microcontroladores, la DSP y todos los componentes lógicos necesarios puedan
ahora consolidarse en una sola FPGA mediante el uso de un lenguaje de descripción de hardware con herramientas de desarrollo avanzadas. Ahora, los estudiantes
deben estar expuestos a estas modernas herramientas, inclusive hasta en un curso
introductorio. Es responsabilidad de cada educador encontrar la mejor forma de
preparar a los graduandos para el trabajo que encontrarán en su vida profesional.
Las piezas SSI y MSI estándar que han servido como “ladrillos y mortero” en
la construcción de sistemas digitales durante más de 40 años ahora se están volviendo obsoletas. Muchas de las técnicas que se han enseñado se enfocan en la
optimización de circuitos que se crean a partir de estos dispositivos fuera de moda.
Los temas que se adaptan en forma única a la aplicación de la antigua tecnología
pero que no contribuyen a una comprensión de la nueva tecnología deben eliminarse
del currículum. No obstante y desde un punto de vista educativo, estos pequeños
vii
VIII
PREFACIO
circuitos integrados (CI) ofrecen una forma de estudiar los circuitos digitales simples, además de que el cableado de circuitos mediante el uso de “breadboards”
(tarjetas experimentales o tableros experimentales) es un ejercicio pedagógico
valioso. Estos ejercicios nos ayudan a reforzar conceptos tales como las entradas y
salidas binarias, la operación de un dispositivo físico y las limitaciones prácticas,
mediante el uso de una plataforma muy simple. En consecuencia hemos optado
por seguir presentando las descripciones conceptuales de los circuitos digitales
y ofrecer ejemplos en los que se utilicen piezas lógicas estándar convencionales.
Para los instructores que deseen seguir enseñando los fundamentos mediante el
uso de circuitos SSI y MSI, este libro retiene esas cualidades que han provocado
una amplia aceptación de las ediciones pasadas. Incluso muchas herramientas de
diseño de hardware proporcionan una técnica introductoria de diseño fácil de usar,
en la que se emplea la funcionalidad de las piezas estándar convencionales con
la flexibilidad de los dispositivos lógicos programables. Un diseño digital puede
describirse mediante el uso de un dibujo esquemático con bloques de construcción
predefinidos, los cuales son equivalentes a las piezas estándar convencionales, que
pueden compilarse y después programarse directamente en un PLD de destino con
la capacidad adicional de poder simular con facilidad el diseño dentro de la misma
herramienta de desarrollo.
Creemos que los graduandos podrán aplicar los conceptos que se presentan en
este libro mediante el uso de métodos de descripción de nivel superior y dispositivos programables más complejos. El cambio más importante en el campo es una
mayor necesidad de comprender los métodos de descripción, en vez de enfocarse
en la arquitectura de un dispositivo específico. Las herramientas de software han
evolucionado a un punto en el que hay muy poca necesidad de preocuparse por el
funcionamiento interno del hardware y es mucho más necesario enfocarse en qué
es lo que entra, qué es lo que sale y cómo puede el diseñador describir lo que se
supone debe hacer el dispositivo. También creemos que los graduandos se involucrarán con proyectos en los que se utilice lo más nuevo en herramientas de diseño
y soluciones de hardware.
Este libro ofrece una ventaja estratégica para enseñar el nuevo y vital tema de
los lenguajes de descripción de hardware a los principiantes en el campo digital.
En estos momentos, VHDL es sin duda un lenguaje estándar en la industria, pero
también es muy complejo y con una curva de aprendizaje bastante pronunciada.
A menudo los estudiantes principiantes se desalientan debido a los rigurosos requerimientos de diversos tipos de datos, y luchan por comprender los eventos de disparo por borde que se utilizan en VHDL. Por fortuna Altera ofrece el AHDL, un
lenguaje menos exigente que utiliza los mismos conceptos básicos que el VHDL
pero más sencillo de dominar para los principiantes. Así, los instructores pueden
optar por utilizar AHDL para enseñar a los estudiantes principiantes, o VHDL para
las clases más avanzadas. Esta edición ofrece más de 40 ejemplos con AHDL, otros
tantos con VHDL y muchos ejemplos de prueba de simulación. Todos estos archivos de
diseño están disponibles en el CD-ROM que acompaña al libro.
El sistema de desarrollo de software más reciente de Altera es Quartus II. El
software MAX+ PLUS II que se ha utilizado durante muchos años aún sigue siendo
popular en la industria y cuenta con soporte por parte de Altera. Su principal desventaja es que no programa los dispositivos más recientes. El material de este texto
no está enfocado a enseñar una plataforma específica de hardware ni los detalles
acerca del uso de un sistema de desarrollo de software. Las nuevas revisiones de
software aparecen con tanta frecuencia que un libro de texto no podría mantenerse
actualizado si tratara de describir todos los detalles. Hemos tratado de demostrar
lo que esta herramienta puede hacer, en vez de enseñar al lector cómo utilizarla.
Sin embargo, en el CD-ROM que viene con este libro hemos incluido tutoriales para
facilitar el aprendizaje de cualquiera de estos dos paquetes de software. Los ejemplos de AHDL y VHDL son compatibles con los sistemas Quartus o MAX+ PLUS.
Las simulaciones de temporización se desarrollaron mediante el uso de MAX+
PLUS, pero también pueden realizarse con Quartus.
Hay muchas opciones de hardware de laboratorio disponibles para los usuarios de este libro. Existen muchas tarjetas de desarrollo CPLD y FPGA para que
PREFACIO
IX
FIGURA P-1 La
tarjeta de desarrollo
UP3 de Altera.
los estudiantes puedan usarlas en el laboratorio. También se dispone de varias
tarjetas de generaciones anteriores que son similares a la UP2 de Altera y que
contienen CPLDs de la familia MAX7000. Un ejemplo más reciente de una de las
tarjetas disponibles es la tarjeta UP3 del programa universitario de Altera (vea la
figura P-1), que contiene una FPGA más grande, proveniente de la familia Cyclone.
La tarjeta DE2 es una de las más reciente de Altera (vea la figura P-2), la cual
cuenta con una nueva y poderosa FPGA Cyclone II de 672 terminales y una variedad de características básicas tales como interruptores, LEDs y pantallas, así como
muchas características adicionales para proyectos más avanzados. Cada año entran
al mercado más tarjetas de desarrollo, y muchas de ellas tienen un costo realmente
bajo. Estas tarjetas, junto con el poderoso software educativo, ofrecen una excelente manera de enseñar y demostrar la implementación práctica de los conceptos que
presentamos en este texto.
Las mejoras más considerables en esta décima edición se encuentran en el
capítulo 7. Aunque los contadores asincrónicos (ondulación) ofrecen una buena
introducción a los circuitos secuenciales, en el mundo real se utilizan los circuitos
contadores sincrónicos. Hemos rediseñado el capítulo 7 y los ejemplos subsiguientes
FIGURA P-2 La
tarjeta de desarrollo
DE2 de Altera.
X
PREFACIO
para enfatizar los CIs de contadores sincrónicos e incluimos técnicas para analizarlos, conectarlos en cascada y utilizar HDL para describirlos. También se ha agregado
una sección para mejorar la cobertura de las máquinas de estado y las características de HDL que se utilizan para describirlas. Otras de las mejoras son: la inclusión
de técnicas de análisis para los circuitos combinacionales, la cobertura expandida de
aplicaciones del temporizador 555 y una mejor cobertura de los números binarios
con signo.
Nuestro enfoque sobre el HDL y los PLDs proporciona a los instructores varias
opciones:
1. El material relacionado con el HDL puede omitirse por completo sin afectar la
continuidad del texto.
2. El HDL puede enseñarse como un tema separado si se omite el material inicial
y después se regresa a las últimas secciones de los capítulos 3, 4, 5, 6, 7 y 9, para
después cubrir el 10.
3. Los temas relacionados con el HDL y el uso de los PLDs pueden cubrirse a
medida que se desarrolle el curso (capítulo por capítulo) y pueden irse entremezclando en las prácticas de laboratorio o las lecturas.
De entre todos los lenguajes de descripción de hardware específicos, es evidente que VHDL es el estándar en la industria, por lo cual es muy probable que
los graduandos lo vayan a utilizar en sus profesiones. No obstante, siempre hemos
creído que es muy pesado tratar de enseñar VHDL en un curso introductorio. La
naturaleza de la sintaxis, las sutiles distinciones en los tipos de objetos y los mayores niveles de abstracción pueden convertirse en obstáculos para un principiante.
Por esta razón hemos incluido el AHDL de Altera como el lenguaje de introducción
recomendado para los cursos de primero y segundo años. También hemos incluido
el VHDL como lenguaje recomendado para clases más avanzadas o cursos introductorios que se ofrecen a estudiantes con más madurez. No recomendamos tratar
de cubrir ambos lenguajes en el mismo curso. Las secciones del texto que cubren
los detalles específicos de un lenguaje se identifican claramente con una barra
gris en el margen. Sin duda hemos creado un libro que puede usarse en múltiples
cursos y que servirá como una excelente referencia después de que se gradúen los
estudiantes.
Organización de los capítulos
Es raro que un instructor utilice los capítulos de un libro de texto en la secuencia
en la que se presentan. Este libro se escribió de manera que, en su mayor parte,
cada capítulo se basa en el material anterior, pero es posible alterar la secuencia
de capítulos hasta cierto punto. La primera parte del capítulo 6 puede cubrirse
justo después del capítulo 2, aunque esto significa que habrá un largo intervalo
antes de llegar a los circuitos aritméticos del capítulo 6. La mayor parte del material del capítulo 8 puede cubrirse antes (por ejemplo, después del capítulo 4 o 5)
sin problemas graves.
Este libro puede utilizarse ya sea en un curso de un solo ciclo escolar o en una
secuencia de dos ciclos. En un curso de un ciclo escolar tal vez haya que omitir
algunos temas, debido a los límites en cuanto a las horas de clase disponibles. Es
obvio que la elección de los temas a eliminar dependerá de factores tales como los
objetivos del programa o del curso y los antecedentes de los estudiantes. A continuación se muestra una lista de las secciones y capítulos que pueden eliminarse con
la menor probabilidad de trastornos:
■
■
■
■
Capítulo
Capítulo
Capítulo
Capítulo
1: Todo.
2: Sección 6.
3: Secciones 15 a 20.
4: Secciones 7, 10 a 13.
PREFACIO
■
■
■
■
■
■
■
■
■
Capítulo
Capítulo
Capítulo
Capítulo
Capítulo
Capítulo
Capítulo
Capítulo
Capítulo
XI
5: Secciones 3, 23 a 27.
6: Secciones 5 a 7, 11, 13, 16 a 23.
7: Secciones 9 a 14, 21 a 24.
8: Secciones 10, 14 a 19.
9: Secciones 5, 9, 15 a 20.
10: Todo.
11: Secciones 7, 14 a 17.
12: Secciones 17 a 21.
13: Todo.
CONJUNTOS DE PROBLEMAS En esta edición se incluyen seis categorías de
problemas: básicos (B), avanzados (A), diagnóstico de fallas (F), nuevos (N), diseño
(D) y HDL (H). Los problemas sin designación se consideran como de dificultad
intermedia, entre los básicos y los avanzados. Los problemas para los cuales se
imprime la solución al final del libro o en el CD-ROM incluido están marcados con
un asterisco (vea la figura P-3).
ADMINISTRACIÓN DE PROYECTOS Y DISEÑO A NIVEL DE SISTEMA En el
capítulo 10 se incluyen varios ejemplos reales para describir las técnicas que se
utilizan para administrar proyectos. Por lo general, estas aplicaciones son familiares
para la mayoría de los estudiantes de electrónica, y el primer ejemplo de un reloj
digital es familiar para todos. Muchos textos hablan sobre el diseño de arriba-abajo,
pero este texto demuestra las características clave de este método y cómo utilizar
las modernas herramientas para desarrollarlo.
HOJAS TÉCNICAS Hemos eliminado el CD-ROM que contenía hojas técnicas de
Texas Instruments de la novena edición. La información que contenía este CD-ROM
se encuentra ahora disponible en línea.
ARCHIVOS DE SIMULACIÓN En esta edición también se incluyen archivos de
simulación que pueden cargarse en el programa Electronics Workbench Multisim®.
Los diagramas esquemáticos de los circuitos de muchas de las figuras que se muestran en el texto se han capturado como archivos de entrada para esta popular herramienta de simulación. Cada archivo demuestra en cierta forma la operación del
circuito o refuerza un concepto. En muchos casos se adjuntan instrumentos al circuito y se aplican secuencias de entrada para demostrar el concepto presentado en
una de las figuras del texto. Estos circuitos pueden modificarse según se desee para
profundizar sobre los temas o crear asignaturas y tutoriales para los estudiantes.
FIGURA P-3 Las letras
denotan categorías
de problemas, y los
asteriscos indican
que se proporcionan
las soluciones
correspondientes al
final del texto.
02/",%-!3
3%##)¼.
#
#
$POTVMUF MB GJHVSB %FUFSNJOF MPT OJWFMFT FO MB TBMJEB EF DBEB EFDPEJGJ
DBEPS QBSB MPT TJHVJFOUFT DPOKVOUPT EF DPOEJDJPOFT EF FOUSBEB
B 5PEBT MBT FOUSBEBT FO #"+0
C 5PEBT MBT FOUSBEBT FO CBKP FYDFQUP & "-50
D 5PEBT MBT FOUSBEBT FO "-50 FYDFQUP & & #"+0
E 5PEBT MBT FOUSBEBT FO "-50
{$VÈM FT FM OÞNFSP EF FOUSBEBT Z TBMJEBT EF VO EFDPEJGJDBEPS RVF BDFQUB
EJTUJOUBT DPNCJOBDJPOFT EF FOUSBEB
%NCONTRARÈ LAS RESPUESTAS A LOS PROBLEMAS MARCADOS CON UN ASTERISCO AL lNAL DEL LIBRO
XII
PREFACIO
FIGURA P-4 El
icono denota que
la figura tiene su
correspondiente archivo
de simulación
en el CD-ROM.
'*(63" %JBHSBNB
HFOFSBM EF VO
EFDPEJGJDBEPS
Todas las figuras en el texto que tienen su correspondiente archivo de simulación en
el CD-ROM se identifican mediante el icono que se muestra en la figura P-4.
TECNOLOGÍA DE CI Esta nueva edición continúa la práctica que empezamos
con las últimas tres ediciones que se refiere a dar más prominencia a la tecnología
CMOS como principal tecnología de CI en aplicaciones de integración de pequeña
y media escala. Hemos logrado esta profundidad en la cobertura, al mismo tiempo
que pudimos retener una amplia cobertura de la lógica TTL.
Cambios específicos
A continuación se muestran los principales cambios en la cobertura de los temas:
■
■
■
■
■
■
Capítulo 1 Hemos actualizado y mejorado muchas explicaciones que tratan
sobre cuestiones análogas/digitales.
Capítulo 2 Eliminamos el sistema numérico octal y agregamos el código de
Gray. Incluimos una tabla de códigos ASCII estándar completa, junto con nuevos ejemplos relacionados con los caracteres ASCII, la representación hexadecimal y los archivos de transferencia de código objeto de las computadoras.
También agregamos nuevo material sobre las tramas de caracteres ASCII para
la transferencia asincrónica de datos.
Capítulo 3 Además de algunos nuevos ejemplos prácticos de funciones lógicas,
la principal mejora en el capítulo 3 es una nueva técnica de análisis que utiliza
tablas para evaluar puntos intermedios en el circuito lógico.
Capítulo 4 En el capítulo 4 sólo fue necesario realizar unos cuantos cambios.
Capítulo 5 Hay una nueva sección que trata acerca de los pulsos digitales y las
definiciones asociadas, tales como: anchura de pulso, periodo, tiempo de elevación y tiempo de caída. Se modificó la terminología utilizada para las entradas
de los circuitos de latch, de Clear (Borrar) a Reset (Restablecer) para que fuera
compatible con las descripciones de los componentes de Altera. También se
eliminó la definición de un flip-flop maestro/esclavo. Se mejoró la explicación
sobre las aplicaciones de circuitos disparadores de Schmitt (Schmitt trigger)
para enfatizar su papel en cuanto a la eliminación de los efectos del ruido.
Ahora se explica el funcionamiento interno del temporizador 555 y se proponen
ciertos circuitos de temporización mejorados que hacen que el dispositivo sea
más versátil. Se rediseñó la cobertura sobre el HDL para los latches SR y D,
para utilizar una descripción más descriptiva de su comportamiento, y se modificó la cobertura de los contadores para enfocarse en las técnicas estructurales
para interconectar bloques de flip-flops.
Capítulo 6 En esta edición se cubren con más detalle los números con signo,
en especial todo lo relacionado con la extensión de signo en los números con
complemento a 2 y el desbordamiento aritmético. Una nueva sugerencia de
calculadora simplifica la negación de números binarios representados en hexadecimal. Se utiliza un modelo de círculo de números para comparar los formatos
PREFACIO
■
■
■
■
■
■
■
XIII
de números con y sin signo, lo cual ayuda a los estudiantes para que visualicen
la operación de suma/resta mediante el uso de ambos formatos.
Capítulo 7 Este capítulo se revisó con mucho detalle para enfatizar los circuitos de contadores sincrónicos. Se siguen introduciendo los contadores de ondulación simple para proporcionar una comprensión básica del concepto de
conteo y la conexión en cascada asincrónica. Después de examinar las limitaciones de los contadores de ondulación en la sección 2, se presentan los contadores
sincrónicos en la sección 3 y se utilizan en todos los ejemplos subsiguientes a lo
largo del texto. Los contadores de CI que se presentan son: 74160, ’161, ’162 y
’163. Estos dispositivos comunes ofrecen una excelente diversidad de características que enseñan la diferencia entre las entradas de control sincrónicas y
asincrónicas, y las técnicas de conexión en cascada. Los circuitos 74190 y ’191
se utilizan como ejemplo de un CI de contador sincrónico arriba/abajo, con lo
cual se refuerzan aún más las técnicas requeridas para la conexión sincrónica
en cascada. Hay una nueva sección dedicada a las técnicas de análisis para circuitos sincrónicos mediante el uso de flip-flops JK y D. Las técnicas de diseño
sincrónico ahora incluyen también el uso de registros de flip-flop D que representan la mejor manera en que se implementan los circuitos secuenciales en la
tecnología PLD moderna. Se mejoraron las secciones sobre HDL para demostrar la implementación de las operaciones sincrónicas/asincrónicas de cargar,
borrar y conectar en cascada. Otra de las novedades es un énfasis en la simulación
y la prueba de los módulos de HDL. Ahora las máquinas de estado se presentan
como un tema, se definen los modelos tradicionales de Mealy y Moore y se presenta un nuevo sistema de control de semáforos como ejemplo. También se
hicieron pequeñas mejoras en la segunda mitad del capítulo 7 y se rediseñaron
todos los problemas al final del capítulo 7 para reforzar los conceptos.
Capítulo 8 Este capítulo sigue siendo una descripción muy técnica de la tecnología disponible en las familias lógicas estándar y los componentes digitales. Se
mejoraron las secciones de interfaz de voltaje mixto para cubrir la tecnología
de bajo voltaje. La curva de ciclo de vida más reciente de Texas Instruments
muestra el historial y la posición actual de diversas series lógicas, desde su
introducción hasta su obsolescencia. También se presenta la señalización diferencial de bajo voltaje (LVDS).
Capítulo 9 Este capítulo trata todavía acerca de los fundamentos de los sistemas digitales y su demostración mediante el uso de HDL. También se introducen muchas otras técnicas de HDL, como las salidas de tres estados y diversas
estructuras de control de HDL. Se describe un circuito 74ALS148 como otro
ejemplo de codificador. Se actualizaron todos los ejemplos de sistemas que utilizan contadores para la operación sincrónica. En especial, se mejoró el sistema
de transmisión en serie mediante el uso de MUX y DEMUX. Se explica la técnica de cómo utilizar un MUX para implementar expresiones SOP en una forma
más estructurada, como un ejercicio de estudio independiente en los problemas
al final del capítulo.
Capítulo 10 Este capítulo, que se introdujo como novedad en la novena edición, no sufrió cambios considerables.
Capítulo 11 Se mejoró el material sobre DACs bipolares, y se presentó un
ejemplo sobre el uso de DACs como control de amplitud digital para formas
de onda analógicas. En esta edición se explica la especificación de precisión de
convertidores A/D más común en forma de / LSB.
Capítulo 12 Se realizaron pequeñas mejoras en este capítulo para consolidar
y comprimir algo del material sobre tecnologías antiguas de memoria, tales
como la UV EPROM. Aún se presenta la tecnología flash mediante el uso de
un ejemplo de primera generación, pero también se describen las mejoras más
recientes, así como algunas de las aplicaciones de la tecnología flash en los
dispositivos modernos disponibles para el consumidor.
Capítulo 13 Este capítulo, nuevo en la novena edición, se actualizó para introducir la nueva familia Cyclone de PLDs.
XIV
PREFACIO
Características que se retuvieron
Esta edición retiene todas las características que contribuyeron a la amplia aceptación de las ediciones anteriores. Utiliza un enfoque de diagrama de bloques para
enseñar las operaciones lógicas básicas sin confundir al lector con los detalles de
su operación interna. Se conservan todas las características eléctricas de los CIs
lógicos, excepto las más básicas, hasta que el lector cuente con una sólida comprensión de los principios lógicos. En el capítulo 8 se introducen los CI internos. En
ese punto, el lector podrá interpretar las características de entrada y salida de un
bloque lógico y “ajustarlo” en forma apropiada a un sistema completo.
Por lo general, el tratamiento de cada nuevo tema o dispositivo sigue estos
pasos: se presenta el principio de operación; se presentan ejemplos y aplicaciones
con una explicación detallada, a menudo mediante el uso de CIs reales; se plantean preguntas cortas de repaso al final de la sección; y por último se presentan
problemas a profundidad al final del capítulo. Estos problemas, que van desde lo
más simple hasta lo más complejo, ofrecen a los instructores una amplia elección
para los estudiantes. El principal objetivo de estos problemas es reforzar el material pero no sólo con repetir los principios, ya que requieren que los estudiantes
demuestren la comprensión de estos principios al aplicarlos a distintas situaciones.
Este enfoque también ayuda a los estudiantes a desarrollar confianza y a expandir
su conocimiento sobre el material.
El material relacionado con los PLDs y HDLs se distribuye a lo largo del texto,
con ejemplos en los que se enfatizan las características clave en cada aplicación.
Estos temas aparecen al final de cada capítulo, lo que facilita relacionar cada tema
con el texto general al principio del capítulo, o se puede analizar por separado el
material que trata sobre los conceptos de PLD/HDL.
La extensa cobertura relacionada con la detección y solución de problemas se
extiende desde el capítulo 4 hasta el 12, incluyendo la presentación de los principios y las técnicas de detección y solución de problemas, ejemplos prácticos,
25 ejemplos de detección y solución de problemas, y además, 60 problemas reales
relacionados con este mismo tema. Si se complementa con los ejercicios prácticos
de laboratorio, este material puede ayudar a impulsar el desarrollo de buenas habilidades para la detección y solución de problemas.
La décima edición ofrece más de 200 ejemplos resueltos, más de 400 preguntas
de repaso y más de 450 problemas/ejercicios de capítulo. Algunos de estos problemas son aplicaciones que muestran cómo se utilizan en un típico sistema de microcomputadora los dispositivos lógicos presentados en el capítulo. Después del
Glosario están las respuestas a la mayoría de los problemas. El Glosario provee
definiciones concisas de todos los términos que están resaltados en el texto, en
negritas.
Al final del libro hay un índice de CIs para ayudar a que los lectores localicen
con facilidad el material sobre cualquier CI citado o utilizado en el texto. Las últimas hojas del libro contienen tablas de los teoremas de álgebra Booleana más usados, síntesis de compuertas lógicas y tablas de verdad de flip-flops para una rápida
referencia al resolver problemas o trabajar en el laboratorio.
Suplementos (en inglés)
Para acompañar a este libro de texto se ha desarrollado un detallado complemento
con herramientas de enseñanza y aprendizaje. Cada componente provee una función
única, y cada uno de ellos puede usarse ya sea en forma independiente o en conjunto con los demás.
CD-ROM
■
Cada libro incluye un CD-ROM, con lo siguiente:
MAX+PLUS® II, software versión Educativa de Altera. Éste es un entorno
integrado de desarrollo completamente funcional, de calidad profesional para
sistemas digitales, el cual se ha utilizado durante muchos años y sigue teniendo
soporte por parte de Altera. Los estudiantes pueden utilizarlo para escribir,
PREFACIO
XV
compilar y simular sus diseños en casa, antes de ir al laboratorio. Pueden usar
el mismo software para programar y probar un CPLD de Altera.
■
Quartus II, software Versión Web de Altera. Éste es el software de sistema de
desarrollo más reciente de Altera, el cual ofrece características más avanzadas
y soporta los nuevos dispositivos PLD, tales como la familia Cyclone de FPGAs,
que se encuentran en muchas de las tarjetas educacionales más recientes.
■
Tutoriales. Gregory Moss ha desarrollado tutoriales que se han utilizado con
éxito durante varios años para enseñar a los estudiantes principiantes a utilizar
el software MAX+PLUS II de Altera. Estos tutoriales están disponibles en los
formatos PDF y PPT (presentación de Microsoft® PowerPoint®), y también se
han adaptado para enseñar Quartus II. Con la ayuda de estos tutoriales, cualquiera puede aprender a modificar y probar todos los ejemplos que se presentan en este texto, así como a desarrollar sus propios diseños.
■
Archivos de diseño de las figuras del libro de texto. Hay más de 40 archivos
de diseño en cada lenguaje que se presenta en figuras a lo largo del texto. Los
estudiantes pueden cargar estos archivos en el software de Altera y probarlos.
■
Soluciones a problemas selectos: archivos de diseño de HDL. Algunas de las
soluciones a los problemas al final del capítulo se encuentran disponibles (en
inglés) para los estudiantes. (Todas las soluciones de HDL están disponibles
para los instructores en el Manual para el instructor.) Las soluciones para los
problemas del capítulo 7 incluyen algunos archivos de gráficos extensos y de
HDL que no se publican en el libro, pero están disponibles en el CD-ROM.
■
Circuitos del texto modelizados en Multisim®. Es posible abrir y trabajar en
forma interactiva con cerca de 100 circuitos para incrementar su comprensión
de los conceptos y prepararse para las actividades de laboratorio. Se proporcionan archivos de circuitos Multisim para cualquiera que tenga este software.
Quienes no tengan el software Multisim y deseen comprarlo para usar los archivos de circuitos pueden ordenarlo en el sitio Web www.prenhall.com/ewb.
■
Material suplementario de introducción a los microprocesadores y los
microcontroladores. Para tener flexibilidad al dar servicio a las diversas
necesidades de las distintas escuelas, se presenta una introducción a este tema
como una conveniente interfaz entre un curso de sistemas digitales y un curso
de introducción a los microprocesadores/microcontroladores.
RECURSOS PARA LOS ESTUDIANTES (en inglés)
■
Sitio Web complementario (www.pearsoneducacion.net/tocci). Este sitio ofrece a los estudiantes una guía de estudio en línea gratuita, con la cual pueden
revisar el material tratado en el texto y comprobar su comprensión de los temas
clave.
RECURSOS PARA EL INSTRUCTOR (en inglés)
■
■
■
■
Manual para el instructor. Este manual contiene las soluciones para todos los
problemas de final de capítulo que vienen en este libro de texto.
Manual de soluciones de laboratorio. Se incluyen los resultados de ambos
manuales de laboratorio.
Presentaciones en PowerPoint®. Las figuras del texto, además de Notas para el
orador para cada capítulo.
TestGen. Hay un banco de pruebas computarizado.
XVI
PREFACIO
Para acceder a los materiales suplementarios en línea, los instructores deberán
solicitar un código de acceso, luego ir a www.pearsoneducacion.net/tocci, haga clic
en el vínculo Instructor Resource Center y después haga clic en Register para obtener un código de acceso de instructor. Después de registrarse, en un plazo no mayor
a 48 horas recibirá un correo electrónico de confirmación en el que se incluirá el
código de acceso. Cuando haya recibido su código, vaya al sitio e inicie sesión para
obtener las instrucciones completas sobre cómo descargar los materiales que desee
utilizar.
AGRADECIMIENTOS
Agradecemos a todas aquellas personas que evaluaron la novena edición y proporcionaron respuestas para un extenso cuestionario: Ali Khabari, Wentworth Institute
of Technology; Al Knebel, Monroe Community College; Rex Fisher, Brigham Young
University; Alan Niemi, LeTourneau University; y Roger Sash, University of
Nebraska. Se tomaron muy en cuenta sus comentarios, críticas y sugerencias, cuyo
incalculable valor nos fue de utilidad para determinar el formato final de la décima
edición.
También estamos muy agradecidos con el profesor Frank Ambrosio, Monroe
Community College, por su usual labor de alta calidad en los índices y en el Manual
de recursos para el instructor; con Thomas L. Robertson, Purdue University, por proveer su sistema de levitación magnética como ejemplo; y con los profesores Russ
Aubrey y Gene Harding, Purdue University, por la revisión técnica de los temas
y muchas sugerencias para realizar mejoras. Apreciamos la cooperación de Mike
Phipps y de Altera Corporation por su apoyo al otorgar el permiso para usar su
paquete de software y las figuras de sus publicaciones técnicas.
Un proyecto de esta magnitud requiere de un soporte editorial exhaustivo
y profesional, y una vez más Prentice Hall logró su cometido con excelencia.
Agradecemos al personal en Prentice Hall y TechBooks/GTS por su ayuda para
hacer que esta publicación sea un éxito.
Por último, queremos hacer saber a nuestras esposas e hijos cuánto apreciamos
su apoyo y su comprensión. Esperamos poder reponer gradualmente todas las horas
que pasamos alejados de ellos mientras trabajábamos en esta revisión.
Ronald J. Tocci
Neal S. Widmer
Gregory L. Moss
RESUMEN
DE CONTENIDO
CAPÍTULO 1
Conceptos introductorios
2
CAPÍTULO 2
Sistemas y códigos numéricos
24
CAPÍTULO 3
Descripción de los circuitos lógicos
54
CAPÍTULO 4
Circuitos lógicos combinacionales
118
CAPÍTULO 5
Flip-flops y dispositivos relacionados
208
CAPÍTULO 6
Aritmética digital: operaciones y circuitos
296
CAPÍTULO 7
Contadores y registros
360
CAPÍTULO 8
Familias lógicas de circuitos integrados
488
CAPÍTULO 9
Circuitos lógicos MSI
576
CAPÍTULO 10 Proyectos de sistemas digitales mediante el uso de HDL 676
CAPÍTULO 11 Interface con el mundo analógico
718
CAPÍTULO 12 Dispositivos de memoria
784
CAPÍTULO 13 Arquitecturas de los dispositivos lógicos programables 868
Glosario
898
Respuestas a los problemas seleccionados
911
Índice de CIs
919
Índice
922
xvii
CONTENIDO
CAPÍTULO 1
Conceptos introductorios
1-1
Representaciones numéricas 4
1-2
Sistemas digitales y analógicos
1-3
Sistemas numéricos digitales
1-4
Representación de cantidades binarias
1.5
Circuitos digitales/circuitos lógicos
15
1-6
Transmisión en paralelo y en serie
17
1-7
Memoria 18
1-8
Computadoras digitales 19
CAPÍTULO 2
2
5
10
13
Sistemas y códigos numéricos
2-1
Conversiones de binario a decimal
26
2-2
Conversiones de decimal a binario
26
2-3
Sistema numérico hexadecimal
2-4
Código BCD
33
2-5
Código gray
35
2-6
Integración de los sistemas numéricos
2-7
Byte, nibble y palabra
2-8
Códigos alfanuméricos
2-9
Método de paridad para la detección de errores
2-10
Aplicaciones
24
29
37
37
39
41
44
xix
XX
CONTENIDO
CAPÍTULO 3
Descripción de los circuitos lógicos
54
3-1
Constantes y variables booleanas
3-2
Tablas de verdad
3-3
Operación OR con compuertas OR
3-4
Operación AND con compuertas AND
3-5
Operación NOT 65
3-6
Descripción de circuitos lógicos en forma algebraica
3-7
Evaluación de las salidas de circuitos lógicos
3-8
Implementación de circuitos a partir de expresiones booleanas
3-9
Compuertas NOR y NAND
3-10
Teoremas booleanos 76
3-11
Teoremas de DeMorgan
3-12
Universalidad de las compuertas NAND y NOR
3-13
Representaciones alternas de compuertas lógicas
3-14
Cuál representación de compuerta se debe usar
3-15
Símbolos lógicos del estándar IEEE/ANSI
3-16
Resumen de los métodos para describir circuitos lógicos
3-17
Comparación entre lenguajes de descripción y lenguajes de
programación 98
3-18
Implementación de circuitos lógicos con PLDS
3-19
Formato y sintaxis del HDL
3-20
Señales intermedias 105
CAPÍTULO 4
57
57
58
62
66
68
71
73
80
83
86
89
95
96
100
102
Circuitos lógicos combinacionales
4-1
Forma de suma de productos
4-2
Simplificación de circuitos lógicos
4-3
Simplificación algebraica 121
4-4
Diseño de circuitos lógicos combinacionales
4-5
Método de mapas de Karnaugh
4-6
Circuitos OR exclusivo y NOR exclusivo
4-7
Generador y comprobador de paridad
4-8
Circuitos de habilitación/deshabilitación
4-9
Características básicas de los CIS digitales
153
4-10
Diagnóstico de fallas de sistemas digitales
160
4-11
Fallas internas en los circuitos integrados digitales
4-12
Fallas externas 166
4-13
Ejemplo práctico de diagnóstico de fallas
4-14
Dispositivos lógicos programables
170
4-15
Representación de datos en HDL
177
4-16
Tablas de verdad mediante el uso de HDL
4-17
Estructuras de control de decisiones en HDL
118
120
121
127
133
144
149
151
168
181
184
162
CONTENIDO
CAPÍTULO 5
XXI
Flip-flops y dispositivos relacionados
5-1
Latch de compuerta NAND
5-2
Latch de compuerta NOR
5-3
Ejemplo práctico de diagnóstico de fallas
5-4
Pulsos digitales 220
5-5
Señales de reloj y flip-flops sincronizados por reloj
5-6
Flip-flop sincronizado por reloj en S-R
224
5-7
Flip-flop sincronizado por reloj en J-K
227
208
211
216
219
221
5-8
Flip-flop sincronizado por reloj en D
5-9
Latch D (latch transparente)
5-10
Entradas asíncronas 233
5-11
Símbolos IEEE/ANSI 236
5-12
Consideraciones de sincronización de los flip-flops
5-13
Problema potencial de sincronización en circuitos con FF
5-14
Aplicaciones de los flip-flops
5-15
Sincronización de los flip-flops
5-16
Detección de una secuencia de entrada
5-17
Almacenamiento y transferencia de datos
5-18
Transferencia de datos en serie: registros de desplazamiento
5-19
División y conteo de frecuencia
5-20
Aplicación de microcomputadora
5-21
Dispositivos disparadores de Schmitt
5-22
One-shot (multivibrador monoestable)
5-23
Circuitos generadores de reloj
5-24
Diagnóstico de fallas en circuitos con flip-flops
264
5-25
Circuitos secuenciales mediante el uso de HDL
268
5-26
Dispositivos disparados por flanco
5-27
Circuitos de HDL con varios componentes
CAPÍTULO 6
230
232
238
241
243
243
244
245
247
250
254
256
256
260
272
277
Aritmética digital: operaciones
y circuitos
6-1
Suma binaria 298
6-2
Representación de números con signo
6-3
Suma en el sistema de complemento a 2
306
6-4
Resta en el sistema de complemento a 2
307
6-5
Multiplicación de números binarios
6-6
División binaria 311
6-7
Suma BCD 312
6-8
Aritmética hexadecimal 314
6-9
Circuitos aritméticos 317
6-10
Sumador binario en paralelo
6-11
Diseño de un sumador completo
299
310
318
320
296
XXII
CONTENIDO
6-12
Sumador completo en paralelo con registros
323
6-13
Propagación del acarreo
6-14
Sumador en paralelo de circuito integrado
6-15
Sistema de complemento a 2
6-16
Circuitos integrados tipo ALU
6-17
Ejemplo práctico de diagnóstico de fallas
6-18
Uso de las funciones de la biblioteca TTL con Altera
325
326
328
331
335
6-19
Operaciones lógicas con arreglos de bits
6-20
Sumadores en HDL 340
6-21
Expansión de la capacidad de bits de un circuito
CAPÍTULO 7
7-1
7-2
7-3
7-4
7-5
7-6
7-7
7-8
7-9
7-10
7-11
7-12
7-13
7-14
7-15
7-16
7-17
7-18
7-19
7-20
7-21
7-22
7-23
7-24
338
343
Contadores y registros
360
Contadores asíncronos (de rizo) 362
Retraso de propagación en contadores de rizo 365
Contadores síncronos (en paralelo) 367
Contadores con números mod < 2N 370
Contadores síncronos descendentes y ascendentes/descendentes 377
Contadores preajustables 379
Contadores síncronos de CI 380
Decodificación de un contador 389
Análisis de los contadores síncronos 393
Diseño de un contador síncrono 396
Contadores básicos mediante el uso de HDL 405
Contadores con todas las características en HDL 412
Cómo alambrar módulos de HDL en conjunto 417
Máquina de estados 425
Registros de circuito integrado 437
Entrada en paralelo/salida en paralelo: 74ALS174/74HC174 437
Entrada en serie/salida en serie: 74ALS166/74HC166 439
Entrada en paralelo/salida en serie: 74ALS165/74HC165 441
Entrada en serie/salida en paralelo: 74ALS164/74HC164 443
Contadores de registro de desplazamiento 445
Diagnóstico de fallas 450
Registros en HDL 452
Contadores de anillo en HDL 459
Monoestables en HDL 461
CAPÍTULO 8
8-1
8-2
8-3
8-4
337
Familias lógicas de circuitos
integrados
Terminología de CIS digitales 490
La familia lógica TTL 498
Hojas técnicas TTL 502
Características de las series TTL 506
488
CONTENIDO
8-5
8-6
8-7
8-8
8-9
8-10
8-11
8-12
8-13
8-14
8-15
8-16
8-17
8-18
8-19
Capacidad de carga de la familia TTL 509
Otras características de la familia TTL 514
Tecnología MOS 518
Lógica de MOS complementario 521
Características de las series CMOS 523
Tecnología de bajo voltaje 530
Salidas de colector abierto/drenador abierto 533
Salidas lógicas triestado (tres estados) 538
Lógica de interfase de bus de alta velocidad 541
La familia ECL de CIS digitales 543
Compuerta de transmisión CMOS (interruptor bilateral)
Interfase de CIS 548
Interfase de voltaje mixto 553
Comparadores de voltaje analógico 554
Diagnóstico de fallas 556
CAPÍTULO 9
9-1
9-2
9-3
9-4
9-5
9-6
9-7
9-8
9-9
9-10
9-11
9-12
9-13
9-14
9-15
9-16
9-17
9-18
9-19
9-20
XXIII
Circuitos lógicos MSI
576
Decodificadores 577
Decodificadores/controladores de BCD a 7 segmentos 584
Pantallas de cristal líquido 587
Codificadores 591
Diagnóstico de fallas 597
Multiplexores (selectores de datos) 599
Aplicaciones de los multiplexores 604
Demultiplexores (distribuidores de datos) 610
Más diagnóstico de fallas 617
Comparador de magnitud 621
Convertidores de código 624
Buses de datos 628
El registro triestado 74ALS173/HC173 629
Operación del bus de datos 632
Decodificadores mediante el uso de HDL 638
El decodificador/controlador de 7 segmentos en HDL 642
Codificadores mediante el uso de HDL 645
Multiplexores y demultiplexores en HDL 648
Comparadores de magnitud en HDL 652
Convertidores de código en HDL 653
CAPÍTULO 10 Proyectos de sistemas digitales
mediante el uso de HDL
10-1
10-2
10-3
546
Administración de pequeños proyectos 678
Proyecto de controlador de motor de pasos 679
Proyecto de codificador de teclado numérico 687
676
XXIV
CONTENIDO
10-4
10-5
Proyecto de reloj digital 693
Proyecto de contador de frecuencia
710
CAPÍTULO 11 Interface con el mundo analógico
11-1
11-2
11-3
11-4
11-5
11-6
11-7
11-8
11-9
11-10
11-11
11-12
11-13
11-14
11-15
11-16
11-17
Repaso de la comparación entre digital y analógico
Conversión digital-analógica (DAC) 721
Circuitos convertidores D/A 728
Especificaciones de un DAC 733
Un DAC de circuito integrado 735
Aplicaciones de los DACS 736
Diagnóstico de fallas en los DACS 738
Conversión analógica-digital (ADC) 739
ADC de rampa digital 740
Adquisición de datos 745
ADC de aproximaciones sucesivas 749
ADCS tipo flash 755
Otros métodos de conversión A/D 757
Circuitos de muestreo y retención 761
Multiplexaje 762
Osciloscopio de almacenamiento digital 764
Procesamiento digital de señales (DSP) 765
CAPÍTULO 12 Dispositivos de memoria
12-1
12.2
12-3
12-4
12-5
12-6
12-7
12-8
12-9
12-10
12-11
12-12
12-13
12-14
12-15
12-16
12-17
12-18
12-19
Terminología de memoria 786
Operación general de la memoria 790
Conexiones entre CPU y memoria 793
Memorias de sólo lectura 795
Arquitectura de la ROM 796
Sincronización de la ROM 799
Tipos de ROMS 800
Memoria flash 808
Aplicaciones de la ROM 811
RAM semiconductora 814
Arquitectura de la RAM 815
RAM estática (SRAM) 818
RAM dinámica (DRAM) 823
Estructura y operación de la RAM dinámica 824
Ciclos de lectura/escritura de la DRAM 829
Refresco de la DRAM 831
Tecnología de la DRAM 834
Expansión de tamaño de palabra y capacidad 836
Funciones especiales de la memoria 844
718
719
784
CONTENIDO
12-20 Diagnóstico de fallas en sistemas de RAM
12-21 Prueba de la ROM 852
XXV
847
CAPÍTULO 13 Arquitecturas de los dispositivos
lógicos programables
13-1
13-2
13-3
13-4
13-5
13-6
13-7
Árbol familiar de los sistemas digitales 870
Fundamentos de los circuitos de un PLD 875
Arquitecturas de PLDS 877
El GAL 16V8 (matriz lógica genérica) 881
El CPLD EPM7128S de Altera 885
La familia FLEX10K de Altera 890
La familia Cyclone de Altera 894
Glosario 898
Respuestas a los problemas seleccionados 911
Índice de CIs 919
Índice 922
868
Sistemas digitales
Principios y aplicaciones
C A P Í T U L O
1
CONCEPTOS
INTRODUCTORIOS
■
CONTENIDO
1-1
1-2
Representaciones numéricas
Sistemas digitales y
analógicos
Sistemas numéricos
digitales
Representación de
cantidades binarias
1-3
1-4
1-5
1-6
1-7
1-8
Circuitos digitales/circuitos
lógicos
Transmisión en paralelo y
en serie
Memoria
Computadoras digitales
■
OBJETIVOS
Al terminar este capítulo, usted podrá:
■
Diferenciar entre la representación analógica y la digital.
■
Citar las ventajas y desventajas de las técnicas digitales en comparación con
las analógicas.
■
Comprender la necesidad de los convertidores analógicos-digitales (ADC) y los
convertidores digitales-analógicos (DAC).
■
Reconocer las características básicas del sistema número binario.
■
Convertir un número binario en su equivalente decimal.
■
Contar en el sistema numérico binario.
■
Identificar las señales digitales comunes.
■
Identificar un diagrama de tiempos.
■
Establecer las diferencias entre la transmisión en paralelo y la
transmisión en serie.
■
Describir las propiedades de las memorias.
■
Describir las partes principales de una computadora digital y comprender sus
funciones.
■
Diferenciar entre microcomputadoras, microprocesadores y
microcontroladores.
■
INTRODUCCIÓN
En el mundo actual, el término digital se ha convertido en parte de nuestro
vocabulario común, debido a la dramática forma en que los circuitos y las
técnicas digitales se han vuelto tan utilizados en casi todas las áreas de la vida:
computadoras, automatización, robots, ciencia médica y tecnología, transporte,
telecomunicaciones, entretenimiento, exploración en el espacio, etcétera. Usted
está a punto de empezar un emocionante viaje educativo, en el cual descubrirá
los principios fundamentales, conceptos y operaciones que son comunes para
todos los sistemas digitales, desde el interruptor de encendido/apagado más
simple hasta la computadora más compleja. Si el libro logra su cometido, usted
deberá tener una comprensión detallada de la manera en que funcionan todos los
sistemas digitales, y deberá ser capaz de aplicar este conocimiento en el análisis y
la detección de fallas en cualquier sistema digital.
Primero presentaremos algunos conceptos subyacentes que forman una
parte vital de la tecnología digital (estos conceptos se ampliarán a medida que
se requieran más adelante en el libro). Además, presentaremos parte de la
terminología que se necesita cuando uno inicia un nuevo campo de estudio,
para agregarla a la lista de términos importantes de cada capítulo.
3
4
CAPÍTULO 1/CONCEPTOS INTRODUCTORIOS
1-1
REPRESENTACIONES NUMÉRICAS
En los campos de la ciencia, la tecnología, los negocios y en la mayoría de los campos de trabajo, constantemente tratamos con cantidades. Estas cantidades se miden,
se monitorean, se manipulan en forma aritmética, se observan, o de alguna otra
forma se utilizan en los sistemas físicos. Es importante que al tratar con varias cantidades se puedan representar sus valores con eficiencia y precisión. Básicamente
existen dos maneras de representar el valor numérico de las cantidades: analógica
y digital.
Representaciones analógicas
En la representación analógica una cantidad se representa mediante un indicador proporcional que varía en forma continua. Un ejemplo es el velocímetro de
los automóviles clásicos de las décadas de 1960 o 1970. La deflexión de la aguja es
proporcional a la velocidad del automóvil y sigue cualquier cambio que se produzca a medida que el vehículo aumente o reduzca su velocidad. En los automóviles
antiguos se utilizaba un eje mecánico flexible para conectar la transmisión con el
velocímetro en el tablero. Es interesante observar que en automóviles recientes, por
lo general, se prefiere la representación analógica, aun y cuando la velocidad ahora
se mide en forma digital.
Los termómetros anteriores a la revolución digital utilizaban la representación
analógica para medir la temperatura, y muchos de ellos todavía se usan actualmente. Esos termómetros utilizan una columna de mercurio, cuya altura es proporcional
a la temperatura. Estos dispositivos están desapareciendo del mercado debido a
problemas con el medio ambiente, pero sin duda son un excelente ejemplo de la
representación analógica. Otro ejemplo es el termómetro de exteriores, en el cual
la posición del apuntador gira alrededor de un disco a medida que un serpentín de
metal se expande y se contrae con base en los cambios de temperatura. La posición
del apuntador es proporcional a la temperatura. Sin importar qué tan pequeño sea
el cambio en la temperatura, habrá un cambio proporcional en el indicador.
En estos dos ejemplos las cantidades físicas (velocidad y temperatura) se acoplan a un indicador a través de un medio mecánico solamente. En los sistemas analógicos eléctricos, la cantidad física que se mide o se procesa se convierte en un voltaje
o corriente proporcional (señal eléctrica). Entonces el sistema utiliza este voltaje o
corriente para fines de visualización, procesamiento o control.
El sonido es un ejemplo de una cantidad física que puede representarse mediante una señal analógica eléctrica. Un micrófono es un dispositivo que genera un voltaje de salida proporcional a la amplitud de las ondas sonoras que lo golpean. Las
ondas sonoras producen variaciones en el voltaje de salida del micrófono. De esta
manera, las grabaciones en cinta pueden almacenar ondas sonoras mediante el uso
del voltaje de salida del micrófono para cambiar en forma proporcional el campo
magnético en la cinta.
Las cantidades analógicas como las antes mencionadas tienen una importante característica: sin importar cómo se representen: pueden variar a través de un
intervalo continuo de valores. La velocidad de un automóvil puede tener cualquier
valor entre 0 y 100 km/hora, por ejemplo. De manera similar, la salida del micrófono
podría tener cualquier valor dentro del intervalo de 0 a 10 mV (por ejemplo: 1 mV,
2.3724 mV, 9.9999 mV).
Representaciones digitales
En la representación digital las cantidades se representan no mediante indicadores
que varían en forma continua, sino mediante símbolos llamados dígitos. Considere
como ejemplo el reloj digital, que indica la hora del día en forma de dígitos decimales que representan horas y minutos (y algunas veces segundos). Como es sabido, la
hora del día cambia en forma continua pero la lectura del reloj digital no cambia
así, sino que cambia en intervalos de uno por minuto (o por segundo). En otras palabras, esta representación digital de la hora del día cambia en incrementos discretos,
SECCIÓN 1-2/SISTEMAS DIGITALES Y ANALÓGICOS
5
en comparación con la representación de la hora que proporciona un reloj de pared
operado mediante corriente alterna analógica, en donde la lectura de la carátula
cambia en forma continua.
Así, la principal diferencia entre las cantidades analógicas y digitales puede
plantearse de la siguiente manera:
analógica ⬅ continua
digital ⬅ discreta (paso por paso)
Debido a la naturaleza discreta de las representaciones digitales, no existe ambigüedad cuando se lee el valor de una cantidad digital, mientras que el valor de una
cantidad analógica, por lo general, se deja abierto a la interpretación. En la práctica, cuando se mide una cantidad analógica, siempre se “redondea” a un nivel de precisión conveniente. En otras palabras, se digitaliza la cantidad. La representación
digital es el resultado de asignar un número de precisión limitada a una cantidad
que varía en forma continua. Por ejemplo, cuando usted toma su temperatura con un
termómetro analógico, es común que la columna de mercurio se encuentre entre dos
líneas de graduación, pero usted elije la línea más cercana y le asigna un número,
por decir, 36.7 °C (98.6 °F).
EJEMPLO 1-1
¿Cuáles de las siguientes cantidades son analógicas y cuáles son digitales?
(a)
(b)
(c)
(d)
(e)
Un interruptor de diez posiciones.
La corriente que fluye a través de un contacto eléctrico.
La temperatura de una habitación.
Granos de arena en la playa.
El medidor de combustible de un automóvil.
Solución
(a)
(b)
(c)
(d)
Digital.
Analógica.
Analógica.
Digital, ya que el número de granos sólo puede tener ciertos valores discretos
(enteros) y no cualquier valor posible en un rango continuo.
(e) Analógico, en caso de ser del tipo con aguja; digital, si tiene indicador numérico
o de barra de gráficos.
PREGUNTAS DE REPASO *
1. Describa en forma concisa la principal diferencia entre las cantidades analógicas y digitales.
1-2
SISTEMAS DIGITALES Y ANALÓGICOS
Un sistema digital es la combinación de dispositivos diseñados para manipular información lógica o cantidades físicas que se representan en forma digital; es decir, las
cantidades sólo pueden tener valores discretos. Estos dispositivos, por lo general, son
* Las respuestas a las preguntas de repaso se encuentran al nal del capítulo correspondiente.
6
CAPÍTULO 1/CONCEPTOS INTRODUCTORIOS
electrónicos, pero también pueden ser mecánicos, magnéticos o neumáticos. Algunos
de los sistemas digitales más comunes son las computadoras y las calculadoras digitales, los equipos de audio y video digital, y el sistema telefónico (el sistema digital
más grande del mundo).
Un sistema analógico contiene dispositivos que manipulan cantidades físicas
que se representan en forma analógica. En un sistema analógico, las cantidades
pueden variar sobre un intervalo continuo de valores. Por ejemplo, la amplitud de la
señal de salida a la bocina en un receptor de radio puede tener cualquier valor entre
cero y su límite máximo. Otros sistemas analógicos comunes son los amplificadores
de audio, los equipos de grabación y reproducción de cintas magnéticas, y un simple
interruptor regulador de luz.
Ventajas de las técnicas digitales
Cada vez hay más aplicaciones en la electrónica, al igual que en la mayoría de las
otras tecnologías, que utilizan técnicas digitales para hacer operaciones que antes
se realizaban mediante métodos analógicos. Las razones principales del cambio
hacia la tecnología digital son:
1. Generalmente los sistemas digitales son más fáciles de diseñar. Los circuitos que
se utilizan en los sistemas digitales son circuitos de conmutación, en donde no
importan los valores exactos de voltaje o de corriente, sino sólo el intervalo
(ALTO o BAJO) en el que se encuentren.
2. Es fácil almacenar información. Esto se logra mediante dispositivos y circuitos
especiales que pueden fijar la información digital y almacenarla durante el
tiempo que sea necesario, y las técnicas de almacenamiento masivo pueden
guardar miles de millones de bits de información en un espacio físico relativamente pequeño. En contraste, la capacidad de almacenamiento de las técnicas
analógicas es extremadamente limitada.
3. Es más fácil mantener la precisión y la exactitud en todo el sistema. Una vez que
se digitaliza una señal, la información que contiene no se deteriora a medida
que se procesa. En los sistemas analógicos, las señales de voltaje y de corriente
tienden a distorsionarse debido a los efectos de temperatura, humedad y por
variaciones de tolerancia de los componentes en los circuitos que procesan la
señal.
4. La operación puede programarse. Es bastante sencillo diseñar sistemas digitales
cuya operación esté controlada por un conjunto de instrucciones almacenadas,
a lo cual se le conoce como programa. Los sistemas analógicos también pueden
programarse, pero la variedad y la complejidad de las operaciones disponibles
son muy limitadas.
5. Los circuitos digitales son más resistentes al ruido. Las fluctuaciones espurias en
el voltaje (ruido) no son tan críticas en los sistemas digitales, ya que el valor
exacto del voltaje no es importante, siempre y cuando el ruido no sea tan fuerte
como para evitar que podamos distinguir entre un nivel ALTO y un nivel BAJO.
6. Pueden fabricarse más circuitos digitales en los chips de CI. Es cierto que los circuitos analógicos también se han beneficiado con el desarrollo de la tecnología de
los circuitos integrados, pero su complejidad relativa y uso de dispositivos que
no pueden integrarse de manera económicamente conveniente (capacitores de
alto valor, resistencias de precisión, inductancias, transformadores) han hecho
imposible alcanzar el mismo grado de integración en los sistemas analógicos.
Limitaciones de las técnicas digitales
En realidad existen muy pocas desventajas al utilizar técnicas digitales. Los dos
problemas principales son:
El mundo real es analógico.
El procesamiento de las señales digitales lleva tiempo.
7
SECCIÓN 1-2/SISTEMAS DIGITALES Y ANALÓGICOS
La mayoría de las cantidades físicas son analógicas por naturaleza, y a menudo estas
cantidades son las entradas y salidas que un sistema monitorea, opera o controla.
Algunos ejemplos son: temperatura, presión, posición, velocidad, nivel de líquido y
flujo, entre otros. Estamos habituados a expresar estas cantidades en forma digital,
como cuando decimos que la temperatura es de 32° (31.8° si queremos ser más precisos), pero en realidad estamos haciendo una aproximación digital de una cantidad
que es sin duda analógica.
Para aprovechar las técnicas digitales al procesar entradas y salidas analógicas,
se deben seguir cuatro pasos:
1.
2.
3.
4.
Convertir la variable física en una señal eléctrica (analógica).
Convertir la señal eléctrica (analógica) a su forma digital.
Procesar (operar con) la información digital.
Convertir las salidas digitales nuevamente a la forma analógica del mundo
real.
Se podría escribir todo un libro únicamente para explicar el paso 1. Existen
muchos tipos de dispositivos que convierten diversas variables físicas en señales eléctricas analógicas (sensores). Éstos se utilizan para medir cosas que se encuentran en
nuestro mundo analógico “real”. Tan sólo en un automóvil hay sensores de nivel de
líquido (tanque de gasolina), temperatura (control del clima y del motor), velocidad
(velocímetro), aceleración (detección de colisión con bolsa de aire), presión (aceite,
múltiple de admisión) y flujo (combustible), por mencionar unos cuantos.
Para ilustrar un sistema típico que utiliza este enfoque, la figura 1-1 describe un
sistema de precisión para regulación de temperatura. Un usuario oprime botones
para aumentar o reducir la temperatura en incrementos de 0.1° (representación
digital). Un sensor de temperatura en el espacio que se está calentando convierte la
temperatura medida en un voltaje proporcional. Este voltaje analógico se convierte
en una cantidad digital mediante un convertidor analógico-digital (ADC). Después,
este valor se compara con el valor deseado y se utiliza para determinar un valor
digital que representa cuánto calor se necesita. El valor digital se convierte en una
cantidad analógica (voltaje) mediante un convertidor digital-analógico (DAC). Este
voltaje se aplica a un elemento de calentamiento, el cual producirá el calor correspondiente al voltaje aplicado y afectará la temperatura del espacio.
Entrada digital:
Establece la temperatura deseada
Señal digital que representa
la potencia (voltaje) para el calentador
Procesador digital
Conversión
digital-analógica
Espacio con temperatura
controlada
Sensor
Calor
Señal digital que representa
la temperatura actual
FIGURA 1-1
Conversión
analógico-digital
Señal analógica que representa
la temperatura actual
Diagrama de bloques de un sistema digital de precisión para control de temperatura.
Otro buen ejemplo en donde se lleva a cabo la conversión entre valores analógicos y digitales es en la grabación de audio. Los discos compactos (CD) han sustituido
a las cintas magnéticas debido a que proporcionan un medio mucho más conveniente
8
CAPÍTULO 1/CONCEPTOS INTRODUCTORIOS
para la grabación y reproducción de música. El proceso funciona más o menos así:
(1) los sonidos provenientes de los instrumentos y de las voces humanas producen
una señal analógica de voltaje en un micrófono; (2) esta señal analógica se convierte
en un formato digital mediante el uso de un proceso de conversión analógico-digital;
(3) la información digital se almacena en la superficie del CD; (4) durante la reproducción, el reproductor de CD toma la información digital de la superficie del CD y
la convierte en una señal analógica, que a su vez se amplifica y se alimenta a una
bocina, en donde puede ser detectada por el oído humano.
La segunda desventaja de los sistemas digitales es que se requiere tiempo para
procesar las señales digitalizadas (listas de números). Además es necesario realizar
conversiones entre las formas analógica y digital de la información, lo cual hace que
el sistema sea más complejo y costoso. Entre más precisos necesiten ser los números,
más tiempo se requerirá para procesarlos. En muchas aplicaciones, estos aspectos se
minimizan con las numerosas ventajas del uso de las técnicas digitales, por lo cual
la conversión entre cantidades analógicas y digitales se ha vuelto bastante común
en la tecnología actual.
No obstante, existen situaciones en las que es más sencillo o económico utilizar
técnicas analógicas. Por ejemplo, hace varios años un colega (Tom Robertson) decidió crear una demostración de un sistema de control para los grupos de visitantes.
Planeaba suspender un objeto metálico en un campo magnético, como se muestra
en la figura 1-2. Para implementar un electroimán enredó alambre en una bobina,
al tiempo que controlaba la cantidad de corriente que pasaba a través de ésta. Para
medir la posición del objeto metálico pasaba un rayo de luz infrarroja a través del
campo magnético. A medida que el objeto se acercaba al electroimán, empezaba a
bloquear el rayo de luz. Para controlar el campo magnético se medían los pequeños
cambios en el nivel de luz, logrando así mantener el objeto metálico flotando y estacionario, sin usar cordones. Todos los intentos por utilizar una microcomputadora
para medir estos cambios tan pequeños, realizar los cálculos de control y excitar
el electroimán resultaban demasiado lentos, aún y cuando se utilizaba la PC más
rápida y potente disponible en ese entonces. En la solución final sólo utilizó un
par de amplificadores operacionales y otros componentes que costaron sólo unos
cuantos dólares: un método completamente analógico. Hoy en día tenemos acceso a
procesadores que son lo suficientemente veloces y a técnicas de medición lo bastante precisas como para lograr esta hazaña, pero la solución más simple sigue siendo
analógica.
(a)
(b)
FIGURA 1-2 Un sistema de levitación magnético suspendiendo: (a) un globo
terráqueo con una placa de acero incrustada, y (b) un martillo.
Es común ver que se emplean técnicas tanto analógicas como digitales dentro
del mismo sistema para beneficiarse de las ventajas de ambas. En estos sistemas
híbridos, una de las partes más importantes de la fase de diseño implica determinar
cuáles partes del sistema deben ser analógicas y cuáles digitales. La tendencia en
SECCIÓN 1-2/SISTEMAS DIGITALES Y ANALÓGICOS
9
la mayoría de los sistemas es digitalizar la señal lo más pronto posible y convertirla
de nuevo en analógica lo más tarde posible, a medida que las señales fluyen a través
del sistema.
El futuro es digital
Los avances en la tecnología digital durante las últimas tres décadas han sido fenomenales, y hay razones fuertes para creer que todavía hay más por venir. Piense
en los artículos de uso diario que han cambiado del formato analógico al digital en
el transcurso de su vida. Ahora puede comprar un termómetro digital inalámbrico
para interiores/exteriores por menos de 10.00 dólares. Los automóviles han pasado
de tener muy pocos controles electrónicos a ser vehículos controlados en su mayor
parte por la tecnología digital. El audio digital nos ha llevado a usar el disco compacto y el reproductor MP3. El video digital trajo consigo al DVD. Las cámaras de
video y fotográficas digitales para el hogar; la grabación digital con sistemas como
TiVo; los teléfonos celulares digitales y el tratamiento digital de imágenes en los
rayos X; el tratamiento de imágenes de resonancia magnética (MRI) y los sistemas
de ultrasonido en los hospitales son sólo unas cuantas de las aplicaciones que han
sido invadidas por la revolución digital. Tan pronto como se cuente con la infraestructura apropiada, los sistemas de teléfono y televisión se harán digitales. La tasa
de crecimiento en el ámbito digital continúa sorprendiendo. Tal vez su automóvil
esté equipado con un sistema tal como On Star de GM, el cual convierte el tablero en un centro de comunicación, información y navegación inalámbrica. Tal vez
ya esté utilizando comandos de voz para enviar o recibir correo electrónico, pedir
un reporte de tráfico, revisar las necesidades de mantenimiento del automóvil o sólo
cambiar de estación de radio o de CD; todo sin necesidad de quitar sus manos del
volante o su vista del camino. Los automóviles pueden reportar su posición exacta
en caso de emergencia o de una falla mecánica. En los años por venir la comunicación inalámbrica seguirá expandiendo su cobertura para ofrecerle conectividad en
donde quiera que se encuentre. Los teléfonos podrán recibir, ordenar y tal vez responder a las llamadas entrantes, al igual que una secretaria altamente capacitada.
La revolución de la televisión digital le proveerá no sólo de una mayor definición de
la imagen, sino también mucha más flexibilidad en la programación. Usted podrá
seleccionar el programa que desea ver y cargarlo en la memoria de su televisor, con
lo cual podrá congelar la imagen o reproducir escenas a placer, como si estuviera
viendo un DVD. A medida que la realidad virtual continúe mejorando, usted podrá
interactuar con la materia que esté estudiando. Tal vez esto no suene tan emocionante cuando se estudia electrónica, pero imagine estudiar la historia como si fuera
un participante, o aprender las técnicas apropiadas para todo lo relacionado con
temas que vayan desde el atletismo hasta la cirugía, por medio de simulaciones
basadas en su desempeño actual.
La tecnología digital continuará su incursión de alta velocidad en las actividades diarias de nuestras vidas, además de que abrirá nuevas fronteras en formas
que tal vez nunca hayamos imaginado. Estas aplicaciones (y muchas más) se basan
en los principios que presentamos en este libro. Las herramientas de software para
desarrollar sistemas complejos se actualizan constantemente y están disponibles
para cualquier persona a través de la Web. También estudiaremos los fundamentos
técnicos necesarios para comunicarnos con cualquiera de estas herramientas y lo
prepararemos para que pueda disfrutar de una carrera fascinante y llena de satisfacciones.
PREGUNTAS DE REPASO
1. ¿Cuáles son las ventajas de las técnicas digitales, en comparación con las analógicas?
2. ¿Cuál es la principal limitación en cuanto al uso de las técnicas digitales?
10
CAPÍTULO 1/CONCEPTOS INTRODUCTORIOS
1-3
SISTEMAS NUMÉRICOS DIGITALES
En la tecnología digital se utilizan muchos sistemas numéricos. Los más comunes
son los siguientes: decimal, binario, octal y hexadecimal. Evidentemente el sistema
decimal es el más conocido, ya que es el que utilizamos a diario. Analicemos algunas
de sus características para ayudarnos a comprender los demás sistemas numéricos.
Sistema decimal
El sistema decimal está compuesto de 10 números o símbolos. Estos 10 símbolos son:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9; al utilizar estos símbolos como dígitos de un número, podemos
expresar cualquier cantidad. El sistema decimal se conoce también como sistema de
base 10 ya que tiene 10 dígitos, y ha evolucionado en forma natural debido al hecho
de que las personas tenemos 10 dedos. De hecho, la palabra dígito se deriva de la
palabra “dedo”.
El decimal es un sistema de valor posicional, en el cual el valor de un dígito
depende de su posición. Por ejemplo, considere el número decimal 453. Por la posición de los dígitos sabemos que el 4 en realidad representa 4 centenas, el 5 representa 5 decenas y el 3 representa 3 unidades. En esencia, el 4 lleva el mayor peso de los
tres dígitos y se le conoce como el dígito más significativo (MSD) mientras que el 3
lleva el menor peso y se le conoce como el dígito menos significativo (LSD).
Considere otro ejemplo, 27.35. Este número en realidad es igual a 2 decenas
más 7 unidades más 3 décimas más 5 centésimas, o bien 2 10 7 1 3 0.1
5 0.01. El punto decimal se utiliza para separar las partes entera y fraccional del
número.
Dicho de forma más rigurosa, las diversas posiciones relativas al punto decimal
llevan pesos que pueden expresarse como potencias de 10. Esto se ilustra en la
figura 1-3, en donde se representa el número 2745.214. El punto decimal separa las
potencias positivas de 10 de las potencias negativas. El número 2745.214 es, por lo
tanto, igual a:
(2 * 10 + 3) + (7 * 10 + 2) + (4 * 101) + (5 * 100)
+ (2 * 10-1) + (1 * 10-2) + (4 * 10-3)
FIGURA 1-3 Valores de
posición decimal como
potencias de 10.
Valores posicionales
(pesos)
10 –110 –2 10 –3
103 102 101 100
2
MSD
7
4
5
.
2
Punto
decimal
1
4
LSD
En general, cualquier número es sólo la suma de los productos del valor de cada
dígito y su valor posicional.
Conteo decimal
Al contar en el sistema decimal, empezamos con 0 en la posición de las unidades y
tomamos cada símbolo (dígito) en forma progresiva hasta llegar al 9. Luego agregamos un 1 a la siguiente posición más alta y empezamos de nuevo con 0 en la prime-
11
SECCIÓN 1-3/SISTEMAS NUMÉRICOS DIGITALES
ra posición (vea la figura 1-4). Este proceso continúa hasta llegar al conteo de 99.
Después agregamos un 1 a la tercera posición y continuamos de nuevo con 0s en
las primeras dos posiciones. El mismo patrón se sigue hasta llegar al número que
deseamos contar.
FIGURA 1-4
Conteo decimal.
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
28
29
30
103
199
200
99
100
101
102
999
1000
Es importante observar que en el conteo decimal, la posición de las unidades
(LSD) cambia hacia arriba con cada paso en el conteo, la posición de las decenas
cambia hacia arriba cada 10 pasos en el conteo, la posición de las centenas cambia
hacia arriba cada 100 pasos en el conteo, y así sucesivamente.
Otra característica del sistema decimal es que si utilizamos sólo dos lugares
decimales, podemos contar hasta 102 100 números distintos (0 a 99).* Con tres
lugares podemos contar hasta 103 1000 números (0 a 999), y así sucesivamente. En
general, con N lugares o dígitos podemos contar hasta 10N números distintos. Empezando con cero, el número más grande siempre será 10N 1.
Sistema binario
Desafortunadamente, el sistema numérico decimal no se presta para una implementación conveniente en los sistemas digitales. Por ejemplo, es muy difícil diseñar
equipo electrónico de manera que pueda trabajar con 10 niveles de voltaje distintos (cada uno representando un carácter decimal, del 0 al 9). Por otro lado, es muy
sencillo diseñar circuitos electrónicos simples y precisos que operen sólo con dos
niveles de voltaje. Por esta razón casi cualquier sistema digital utiliza el sistema
numérico binario (base 2) como el sistema numérico básico de sus operaciones. Frecuentemente se utilizan otros sistemas numéricos para interpretar o representar
cantidades binarias, para ayudar a las personas que trabajan con estos sistemas
digitales y los utilizan.
En el sistema binario sólo hay dos símbolos o posibles valores de dígitos: 0 y 1.
Aún así, este sistema de base 2 puede usarse para representar cualquier cantidad
que pueda representarse en decimal o en otros sistemas numéricos. Sin embargo, se
requeriría de un mayor número de dígitos binarios para expresar una determinada
cantidad.
* El cero se cuenta como número.
12
CAPÍTULO 1/CONCEPTOS INTRODUCTORIOS
FIGURA 1-5 Los valores
posicionales binarios como
potencias de 2.
Valores
posicionales
23
22
21
20
1
0
1
1
MSB
2–1 2–2 2–3
1
Punto
binario
0
1
LSB
Todas las aseveraciones mencionadas con respecto al sistema decimal pueden
aplicarse de igual forma al sistema binario. Este sistema también es de valor posicional, en donde cada dígito binario tiene su propio peso expresado como potencia
de 2. Esto se ilustra en la figura 1-5, donde los lugares a la izquierda del punto binario (contraparte del punto decimal) son potencias positivas de 2, y los lugares a la
derecha son potencias negativas de 2. El número 1101.101 se representa en la figura.
Para encontrar su equivalente en el sistema decimal, sólo tomamos la suma de los
productos del valor de cada dígito (0 o 1) y su valor posicional.
1011.1012 = (1 * 23) + (0 * 22) + (1 * 21) + (1 * 20)
+ (1 * 2-1) + (0 * 2-2) + (1 * 2-3)
= 8 + 0 + 2 + 1 + 0.5 + 0 + 0.125
= 11.62510
En la operación anterior podemos observar que se utilizaron subíndices (2 y 10)
para indicar la base en la cual se expresa el número. Esta convención evita la confusión que se crea siempre que se emplea más de un sistema numérico.
En el sistema binario es muy común que el término dígito binario se abrevie
con el término bit, el cual utilizaremos a partir de ahora. Por ende, en el número
expresado en la figura 1-5 hay cuatro bits a la izquierda del punto binario, los cuales
representan la parte entera del número, y tres bits a la derecha del punto binario,
los cuales representan la parte fraccional. El bit más significativo (MSB) es el bit
más a la izquierda (de mayor peso). El bit menos significativo (LSB) es el bit más a
la derecha (de menor peso). Éstos se indican en la figura 1-5. Aquí, el MSB tiene un
peso de 23 y el LSB tiene un peso de 23.
Conteo binario
Al tratar con números binarios, por lo general, nos restringimos a un número específico de bits. Esta restricción se basa en los circuitos que utilicemos para representar
los números binarios. Utilicemos números binarios de cuatro bits para ilustrar el
método para contar en binario.
La secuencia que se muestra en la figura 1-6, comienza con todos los bits en 0; a
esto se le conoce como cuenta cero. Para cada cuenta sucesiva se alterna la posición
de las unidades (20); es decir, cambia de un valor binario al otro. Cada vez que el
bit de las unidades cambie de 1 a 0 se alternará la posición de los dos (21), es decir,
cambiará de estado. Cada vez que la posición de los dos cambie de 1 a 0, se alternará
la posición de los cuatros (22) (cambiará de estado). De igual forma, cada vez que la
posición de los cuatros pase de 1 a 0, se alternará la posición de los ochos (23). Si el
número binario tuviera más de cuatro bits, este mismo proceso continuaría para las
posiciones de los bits de mayor orden.
La secuencia de conteo binario tiene una característica importante, como se
muestra en la figura 1-6. El bit de las unidades (LSB) cambia ya sea de 0 a 1 o de 1
a 0 con cada conteo. El segundo bit (posición de los dos) permanece en 0 durante
dos conteos, después en 1 durante dos conteos, después en 0 durante dos conteos,
y así sucesivamente. El tercer bit (posición de los cuatros) permanece en 0 durante
SECCIÓN 1-4/REPRESENTACIÓN DE CANTIDADES BINARIAS
FIGURA 1-6 Secuencia
de conteo binario.
Pesos
23 = 8 22 = 4 21 = 2 20 = 1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
13
Equivalente decimal
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
LSB
cuatro conteos, después en 1 durante cuatro conteos, y así sucesivamente. El cuarto bit (posición de los ochos) permanece en 0 durante ocho conteos, después en 1
durante ocho conteos. Si quisiéramos contar aún más, agregaríamos más lugares y
este patrón continuaría con los 1s y los 0s alternando en grupos de 2N1. Por ejemplo, si utilizamos un quinto lugar binario, el quinto bit alternaría dieciséis 0s, después dieciséis 1s, y así en lo sucesivo.
Al igual que para el sistema decimal, para el sistema binario también aplica que
si se utilizan N bits o lugares, podemos realizar 2N conteos. Por ejemplo, con dos bits
podemos realizar 22 4 conteos (de 002 hasta 112); con cuatro bits podemos realizar
24 16 conteos (de 00002 hasta 11112); y así sucesivamente. En la última cuenta todos
los bits serán 1s y será igual a 2N–1 en el sistema decimal. Por ejemplo, si se utilizan
cuatro bits, el último número será 11112 241 1510.
EJEMPLO 1-2
¿Cuál es el mayor número que se puede representar si se utilizan ocho bits?
Solución
2N - 1 = 28 - 1 = 25510 = 111111112.
Ésta fue una breve introducción al sistema numérico binario y su relación con el
sistema decimal. En el siguiente capítulo invertiremos mucho más tiempo en estos
dos sistemas numéricos y otros más.
PREGUNTAS DE REPASO
1. ¿Cuál es el equivalente decimal de 11010112?
2. ¿Cuál es el binario que sigue al 101112 en la secuencia de conteo?
3. ¿Cuál es el mayor valor decimal que se puede representar si se utilizan 12 bits?
1-4 REPRESENTACIÓN DE CANTIDADES BINARIAS
En los sistemas digitales, la información que se procesa, por lo general, está presente
en formato binario. Las cantidades binarias pueden representarse mediante cualquier dispositivo que sólo tenga dos estados de operación o condiciones posibles.
14
CAPÍTULO 1/CONCEPTOS INTRODUCTORIOS
Por ejemplo, un interruptor sólo tiene dos estados: abierto o cerrado. De manera
arbitraria podemos permitir que un interruptor abierto represente el 0 binario y
que un interruptor cerrado represente el 1 binario. Con esta asignación podemos
ahora representar cualquier número binario. La figura 1-7(a) muestra un número en
código binario para un dispositivo de apertura de puertas de garaje. Los pequeños
interruptores están ajustados para formar el número binario 1000101010. La puerta
se abrirá sólo si coinciden los patrones de bits en el receptor y en el transmisor .
FIGURA 1-7
(a) Opciones de
configuración binaria
para un dispositivo de
apertura de puertas
de garaje. (b) Audio
digital en un CD.
(a)
(b)
La figura 1-7(b) muestra otro ejemplo, en el cual se almacenan números binarios
en un CD. La superficie interior (debajo de una capa de plástico transparente) se
recubre con una capa de aluminio con alta capacidad de reflexión. Se queman hoyos
a través de esta cubierta reflectora para formar “pozos” que no reflejan la luz de
la misma manera que las áreas no quemadas. Estas áreas en las que se queman los
pozos se consideran como “1s” y las áreas reflectoras son “0s”.
Existen muchos otros dispositivos que sólo tienen dos estados de operación, o
que pueden operarse en dos condiciones extremas. Entre ellos están: la bombilla de
luz (brillante u oscura), el diodo (conductor o no conductor), el electroimán (energizado o desenergizado), el transistor (en corte o saturado), la fotocelda (iluminada u
oscura), el termostato (abierto o cerrado), el embrague mecánico (enganchado o desenganchado), y un área en un disco magnético (magnetizada o desmagnetizada).
En los sistemas digitales electrónicos la información binaria se representa
mediante voltajes (o corrientes) que están presentes en las entradas y salidas de los
diversos circuitos. Por lo general, el 0 y el 1 binarios se representan mediante dos
niveles de voltaje nominal. Por ejemplo, cero Volts (0 V) podrían representar el 0
binario y 5 V podrían representar el 1 binario. En realidad y debido a las variaciones en los circuitos, el 0 y el 1 se representan mediante intervalos de voltaje. Esto se
ilustra en la figura 1-8(a), en donde cualquier voltaje entre 0 y 0.8 V representa un 0
y cualquier voltaje entre 2 y 5 V representa un 1. Por lo general, todas las señales de
entrada y salida se encuentran dentro de alguno de estos intervalos, excepto durante las transiciones de un nivel a otro.
Ahora podemos notar otra diferencia importante entre los sistemas digitales y
los analógicos. En los sistemas digitales, el valor exacto de un voltaje no es impor-
15
SECCIÓN 1-5/CIRCUITOS DIGITALES/CIRCUITOS LÓGICOS
Volts
5V
1 binario
1
4V
2V
0.8 V
Voltajes
inválidos
0 binario
0V
(a)
1
No
utilizado
0V
t0
0
0
t1
t2
t
t3
t4
t5
(b)
FIGURA 1-8 (a) Asignaciones comunes de voltaje en un sistema digital; (b) diagrama
común de sincronización de una señal digital.
tante; por ejemplo, para las asignaciones de voltaje de la figura 1-8(a) un voltaje de
3.6 V significa lo mismo que un voltaje de 4.3 V. En los sistemas analógicos el valor
exacto de un voltaje es importante. Por ejemplo, si el voltaje analógico es proporcional a la temperatura medida por un transductor, 3.6 V representaría una temperatura distinta que 4.3 V. En otras palabras, la magnitud del voltaje lleva información
importante. Dicha característica significa que, por lo general, es más difícil diseñar
circuitos analógicos precisos que circuitos digitales, debido a la manera en la que se
ven afectados los valores exactos de voltaje por las variaciones en los valores de los
componentes, la temperatura y el ruido (fluctuaciones aleatorias de voltaje).
Las señales digitales y los diagramas de tiempos
La figura 1-8(b) muestra una señal digital común y la forma en que ésta varía a través del tiempo. En realidad es un gráfico de voltaje contra tiempo (t) y se le conoce
como diagrama de tiempos. La escala de tiempo horizontal está graduada en intervalos regulares que comienzan desde t0 y avanzan hasta t1, t2 y así sucesivamente.
Para el ejemplo del diagrama de tiempos que se muestra aquí, la señal empieza en
0 V (un 0 binario) en el tiempo t0 y permanece ahí hasta el tiempo t1. En t1 la señal
realiza una transición (salto) hasta 4 V (un 1 binario). En t2 regresa a 0 V. En t3 y t5
ocurren transiciones similares. Observe que la señal no cambia en t4, sino que permanece en 4 V desde t3 hasta t5.
Las transiciones en este diagrama de tiempos se dibujan como líneas verticales,
por lo que parecen ser instantáneas cuando en realidad no lo son. Sin embargo, en
muchas situaciones los tiempos de transición son tan cortos en comparación con
los tiempos entre transiciones que podemos mostrarlos en el diagrama como líneas
verticales. Más adelante nos encontraremos con situaciones en las que será necesario mostrar las transiciones con más precisión, en una escala de tiempo a mayor
detalle.
Los diagramas de tiempos se utilizan mucho para mostrar cómo cambian las
señales digitales con el tiempo, y en especial para mostrar la relación entre dos o
más señales digitales en el mismo circuito o sistema. Al mostrar una o más señales
digitales en un osciloscopio o analizador lógico podemos comparar las señales con sus
diagramas de tiempos esperados. Ésta es una parte muy importante de los procedimientos de prueba y detección de fallas que se utilizan en los sistemas digitales.
1.5
CIRCUITOS DIGITALES/CIRCUITOS LÓGICOS
Los circuitos digitales están diseñados para producir voltajes de salida que se
encuentran dentro de los intervalos de voltaje prescritos para 0 y 1, como los que
se definen en la figura 1-8. De igual forma, los circuitos digitales están diseñados
para responder en forma predecible a los voltajes de entrada que se encuentran
16
CAPÍTULO 1/CONCEPTOS INTRODUCTORIOS
dentro de los intervalos definidos de 0 y 1. Esto significa que un circuito digital
responderá de igual forma a todos los voltajes de entrada que se encuentren dentro
de los valores permitidos para 0; de manera similar, no habrá distinción entre los
voltajes de entrada que se encuentren dentro del intervalo permitido para 1.
La figura 1-9 representa un circuito digital típico con una entrada vi y una salida vo. La salida se muestra para dos formas de onda de señal de entrada distintas.
Observe que vo es igual para ambos casos, pues aunque las dos formas de onda de
entrada difieren en sus niveles exactos de voltaje, se encuentran en los mismos niveles binarios.
FIGURA 1-9 Un
circuito digital responde
a un nivel binario de
entrada (0 o 1) y no a su
voltaje real.
Caso I
5V
vi
0V
t
4V
vo
0V
vi
Circuito
digital
vo
Caso II
3.7 V
vi
0.5 V
t
4V
vo
0V
Circuitos lógicos
La forma en que un circuito digital responde a una entrada se conoce como lógica
del circuito. Cada tipo de circuito digital obedece un cierto conjunto de reglas lógicas. Por esta razón a los circuitos digitales se les conoce también como circuitos
lógicos. A lo largo del libro utilizaremos ambos términos sin distinción. En el capítulo 3 veremos con mayor claridad el significado del término “lógica” de un circuito.
Vamos a estudiar todos los tipos de circuitos lógicos que se utilizan en la actualidad en los sistemas digitales. Primero enfocaremos nuestra atención sólo en la
operación lógica que realizan estos circuitos; es decir, la relación entre las entradas
y las salidas del circuito. Dejaremos pendiente cualquier discusión acerca de la operación interna de los circuitos lógicos hasta que hayamos entendido completamente
su operación lógica.
Circuitos digitales integrados
Casi todos los circuitos digitales que se utilizan en los sistemas digitales modernos son circuitos integrados (CI). La amplia variedad de circuitos integrados lógicos
disponibles, ha hecho posible la construcción de sistemas digitales complejos que
son más pequeños y confiables que sus contrapartes fabricados con componentes
discretos.
Existen varias tecnologías de fabricación de circuitos integrados utilizadas para
producir circuitos integrados digitales, de las cuales las más comunes son CMOS,
TTL, NMOS y ECL. Cada una difiere en cuanto al tipo de circuito utilizado para proporcionar la operación lógica deseada. Por ejemplo, TTL (lógica de transistor-transistor) utiliza el transistor bipolar como el elemento principal en el circuito, mientras
que CMOS (semiconductor de metal óxido complementario) utiliza el MOSFET en
modo mejorado como el elemento principal del circuito. Aprenderemos sobre las
diversas tecnologías de CIs, sus características, ventajas y desventajas a medida que
vayamos dominando los tipos básicos de circuitos lógicos.
SECCIÓN 1-6/TRANSMISIÓN EN PARALELO Y EN SERIE
PREGUNTAS DE REPASO
17
1. Verdadero o falso: El valor exacto de un voltaje de entrada es imprescindible
para un circuito digital.
2. ¿Puede un circuito digital producir el mismo voltaje de salida para distintos
valores del voltaje de entrada?
3. Un circuito digital también se conoce como circuito __________.
4. Un gráfico que muestra cómo cambian una o más señales digitales a través del
tiempo se llama ___________.
1-6 TRANSMISIÓN EN PARALELO Y EN SERIE
Una de las operaciones más comunes que ocurre en cualquier sistema digital es la
transmisión de información de un lugar a otro. La información puede transmitirse
a través de una distancia tan pequeña como una fracción de un centímetro en la
misma tarjeta de circuitos, o a través de muchos kilómetros cuando el operador
de una terminal de computadora se comunica con una ubicada en otra ciudad. La
información que se transmite se encuentra en formato binario y, por lo general, se
representa como voltajes en las salidas de un circuito emisor, las cuales se conectan
a las entradas de un circuito receptor. La figura 1-10 ilustra los dos métodos básicos
para la transmisión de información digital: en paralelo y en serie.
FIGURA 1-10 (a) La
transmisión en paralelo
utiliza una línea de
conexión por bit, y todos
los bits se transmiten al
mismo tiempo;
(b) la transmisión en
serie utiliza sólo una
línea de señal y los
bits individuales se
transmiten en forma
consecutiva (uno a la
vez).
“H”
“i”
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
MSB
LSB
(a)
“H”
00010010
LSB
“i”
10010110
MSB
LSB
MSB
(b)
La figura 1-10(a) demuestra el uso de la transmisión de datos en paralelo desde una
computadora hacia una impresora mediante el uso del puerto paralelo de impresora
(LPT1) de la computadora. En este escenario vamos a suponer que queremos imprimir
18
CAPÍTULO 1/CONCEPTOS INTRODUCTORIOS
la palabra “Hi” en la computadora. El código binario para la “H” es 01001000 y el código binario para la “i” es 01101001. Cada carácter (la “H” y la “i”) está formado de ocho
bits. Mediante el uso de la transmisión en paralelo, los ocho bits se envían al mismo
tiempo a través de ocho alambres. La “H” se envía primero, seguida de la “i”.
La figura 1-10(b) demuestra el uso de la transmisión en serie como cuando se
utiliza un puerto COM serial en la computadora para enviar datos a un módem,
o cuando se utiliza un puerto USB (Bus Serie Universal) para enviar datos a una
impresora. Aunque los detalles acerca de los formatos de los datos y la velocidad
de la transmisión son bastante distintos entre un puerto COM y un puerto USB, los
datos en sí se envían de la misma forma: un bit a la vez, a través de un solo alambre.
Los bits se muestran en el diagrama como si en realidad se desplazaran sobre el
alambre en el orden mostrado. El bit menos significativo de la “H” se envía primero
y el bit más significativo de la “i” se envía al último. Desde luego que en la realidad
sólo puede haber un bit en el alambre en cualquier instante y, por lo general, el
tiempo se dibuja empezando por la izquierda y avanzando hacia la derecha. Esto
produce un gráfico de bits lógicos contra tiempo de la transmisión en serie, al cual se
le conoce como diagrama de tiempos. Observe que en esta presentación el bit menos
significativo se muestra a la izquierda, ya que se envió primero.
La principal diferencia entre las representaciones en paralelo y en serie es la
pérdida de velocidad a cambio de simpleza en el circuito. La transmisión de datos
binarios desde una parte del sistema digital a otra puede realizarse con más rapidez si se utiliza el método en paralelo ya que todos los bits se transmiten al mismo
tiempo, mientras que en el método serie se transmite un bit a la vez. Por otro lado,
la transmisión en paralelo requiere más líneas de señal conectadas entre el emisor
y el receptor de los datos binarios que la transmisión en serie. En otras palabras,
la transmisión en paralelo es más rápida y la transmisión en serie requiere menos
líneas de señal. A lo largo del libro encontraremos muchas veces esta comparación
entre los métodos paralelo y serie para representar información binaria.
PREGUNTAS DE REPASO
1. Describa las ventajas de la transmisión de datos binarios en paralelo y en serie.
1-7
MEMORIA
Cuando se aplica una señal de entrada a la mayoría de los dispositivos o circuitos,
la salida cambia de cierta forma en respuesta a la entrada, y cuando se elimina la
señal de entrada la salida regresa a su estado original. Estos circuitos no exhiben
la propiedad de la memoria debido a que sus salidas regresan a su estado normal.
En los circuitos digitales, ciertos tipos de dispositivos y circuitos tienen memoria.
Cuando se aplique una entrada a dicho circuito la salida cambiará su estado, pero
permanecerá en el nuevo estado aún y cuando se elimine la entrada que lo provocó.
Esta propiedad de retener su respuesta a una entrada momentánea se conoce como
memoria. La figura 1-11 ilustra las operaciones con y sin memoria.
FIGURA 1-11
Comparación entre la
operación sin memoria
y con memoria.
Circuito sin
memoria
Circuito con
memoria
19
SECCIÓN 1-8/COMPUTADORAS DIGITALES
Los circuitos y dispositivos de memoria juegan un importante papel en los sistemas digitales, ya que proporcionan los medios para almacenar números binarios ya
sea en forma temporal o permanente, con la habilidad de modificar la información
almacenada en determinado momento. Como veremos, los diversos elementos de
memoria incluyen los de tipo magnético y óptico, y aquellos que utilizan circuitos
de fijación electrónica (llamados latches y flip-flops).
1-8
COMPUTADORAS DIGITALES
Las técnicas digitales han encontrado aplicación en una innumerable variedad de
áreas de tecnología, pero el de las computadoras digitales automáticas es hasta ahora la más notable y extensa. Aunque las computadoras digitales afectan en alguna
forma la vida de todos nosotros, es poco probable que todos sepamos con exactitud
qué es lo que hace una computadora. En términos simples, una computadora es un
sistema de hardware que realiza operaciones aritméticas, manipula datos (por lo general
en formato binario) y realiza decisiones.
En su mayoría los humanos podemos hacer todo lo que hacen las computadoras,
pero éstas lo hacen con mucha más velocidad y precisión, a pesar del hecho de que
las computadoras realizan todos sus cálculos y operaciones un paso a la vez. Por
ejemplo, un ser humano puede tomar una lista de 10 números y encontrar la suma
en una sola operación, con sólo colocar los números uno sobre otro y sumarlos columna por columna. Por otro lado, una computadora sólo puede sumar dos números a la
vez, por lo que para sumar esa misma lista de números tendría que realizar nueve
pasos. Desde luego el hecho de que la computadora sólo requiera de unos cuantos
nanosegundos por cada paso es algo que compensa su aparente ineficiencia.
Una computadora es mucho más veloz y precisa que las personas pero, a diferencia de nosotros, debe recibir un conjunto completo de instrucciones que le indiquen
con exactitud qué debe hacer en cada paso. Este conjunto de instrucciones, llamado
programa, lo preparan una o más personas para cada trabajo que la computadora
debe realizar. Los programas se colocan en la unidad de memoria de la computadora, en formato codificado en binario, y cada instrucción tiene un código único. La
computadora toma estos códigos de instrucción de la memoria uno por uno y realiza
la operación designada.
Principales partes de una computadora
Existen varios tipos de sistemas computacionales, pero cada uno puede descomponerse en las mismas unidades funcionales. Cada unidad realiza funciones específicas, y todas las unidades funcionan en conjunto para llevar a cabo las instrucciones
que se dan en el programa. La figura 1-12 muestra las cinco partes funcionales prinUnidad central de
procesamiento (CPU)
Artméticalógica
Datos,
información
Entrada
Control
Salida
Datos,
C Señales de control
Memoria
FIGURA 1-12 Diagrama funcional de una computadora digital.
D Datos o información
20
CAPÍTULO 1/CONCEPTOS INTRODUCTORIOS
cipales de una computadora digital y su interacción. Las líneas sólidas con flechas
representan el flujo de datos e información. Las líneas punteadas con flechas representan el flujo de sincronización y las señales de control.
Las principales funciones de cada unidad son:
1. Unidad de entrada. A través de esta unidad se alimenta un conjunto completo
de instrucciones y datos al sistema computacional y la unidad de memoria, para
almacenarlos hasta que se requieran. Por lo general, la información se introduce
a la unidad de entrada desde un teclado o un disco.
2. Unidad de memoria. La memoria almacena las instrucciones y los datos que
se reciben de la unidad de entrada. Almacena los resultados de las operaciones
aritméticas que se reciben de la unidad aritmética. También suministra información a la unidad de salida.
3. Unidad de control. Esta unidad recibe instrucciones de la unidad de memoria, una por una y las interpreta. Después envía las señales de sincronización y
control apropiadas a todas las demás unidades para hacer que se ejecute una
determinada instrucción.
4. Unidad aritmética-lógica. En esta unidad se realizan todos los cálculos aritméticos y las decisiones lógicas, para después almacenar los resultados en la unidad
de memoria.
5. Unidad de salida. Esta unidad recibe los datos de la unidad de memoria y los
imprime, los muestra en pantalla o los presenta de cualquier otra forma al operador (o proceso, en caso de una computadora de control de procesos).
Unidad central de procesamiento (CPU)
Como se muestra en el diagrama de la figura 1-12, por lo general, las unidades de control y aritmética-lógica se consideran como una sola unidad, a la cual se le conoce como
unidad central de procesamiento (CPU). La CPU contiene todos los circuitos requeridos para obtener e interpretar las instrucciones y para controlar y realizar las diversas
operaciones que requieren las instrucciones.
TIPOS DE COMPUTADORAS Todas las computadoras están compuestas por las
unidades básicas antes descritas, pero pueden diferir en cuanto al tamaño físico, la
velocidad de operación, la capacidad de memoria y la capacidad de cómputo, entre
otras características. Hoy en día los sistemas computacionales están configurados
en muchas y muy diversas formas, con muchas características comunes y también
diferencias. Tanto empresas como universidades utilizan sistemas computacionales
grandes instalados de manera permanente en varios gabinetes, para el soporte de
tecnología de información. Las computadoras personales de escritorio se utilizan
en nuestros hogares y oficinas para ejecutar programas útiles que mejoran nuestras
vidas y proporcionan comunicación con otras computadoras. En los PDA se utilizan
computadoras portátiles, y en los sistemas de videojuegos se utilizan computadoras especializadas. La forma más prevalente de computadoras se encuentra realizando tareas de rutina dedicadas en electrodomésticos y demás sistemas a nuestro
alrededor.
En la actualidad, todos los sistemas con excepción de los más grandes, utilizan
tecnología que ha evolucionado a partir de la invención del microprocesador. Este
componente es en esencia una unidad central de procesamiento (CPU) en un circuito integrado, el cual puede conectarse a los demás bloques de un sistema computacional. Por lo general, a las computadoras que utilizan un microprocesador como
CPU se les denomina microcomputadoras. Las microcomputadoras de propósito
general (por ejemplo: las PC, las PDA, etc.) realizan una variedad de tareas en una
amplia gama de aplicaciones, dependiendo del software (programas) que ejecuten.
En contraste tenemos a las computadoras dedicadas que realizan actividades tales
como operar el motor de un automóvil, controlar el sistema de frenos antibloqueo u
operar el horno de microondas. El usuario no puede programar estas computadoras
ya que sólo realizan una tarea de control: se les conoce como microcontroladores.
21
TÉRMINOS IMPORTANTES
Como estos microcontroladores son una parte integral de un sistema más grande
y sirven un propósito dedicado, también se les llama controladores embebidos. Por
lo general, los microcontroladores tienen todos los elementos de una computadora
completa (CPU, memoria y puertos de entrada/salida), todo lo cual está contenido
dentro de un solo circuito integrado. Los microcontroladores embebidos se encuentran en los electrodomésticos de su cocina, en el equipo de entretenimiento, en las
fotocopiadoras, en los cajeros automáticos del banco, en el equipo automatizado de
fabricación, en la instrumentación médica, entre muchas otras aplicaciones.
Como puede ver, aún las personas que no tienen una PC o que no utilizan una
en la escuela o el trabajo utilizan a diario microcomputadoras, ya que muchos dispositivos electrónicos, electrodomésticos, equipo de oficina y muchos otros aparatos
están fabricados con base en microcontroladores embebidos (integrados). En esta
era digital, si usted trabaja, juega o va a la escuela, no podrá escapar: con toda seguridad en alguna parte estará utilizando una microcomputadora.
PREGUNTAS DE REPASO
1.
2.
3.
4.
Explique la diferencia ente un circuito digital con memoria y uno sin memoria.
Nombre las cinco unidades funcionales principales de una computadora.
¿Cuáles son las dos unidades que conforman la CPU?
Un chip de CI que contiene un CPU se llama __________.
RESUMEN
1. Las dos formas básicas de representar el valor numérico de las cantidades físicas son la analógica (continua) y la digital (discreta).
2. La mayoría de las cantidades en el mundo real son analógicas, pero, por lo general, las técnicas digitales son superiores a las técnicas analógicas, y se pronostica que la mayor parte de los avances estarán en el ámbito digital.
3. El sistema numérico binario (0 y 1) es el sistema básico que se utiliza en la tecnología digital.
4. Los circuitos digitales o lógicos operan con voltajes que se encuentran dentro de
intervalos prescritos, los cuales representan ya sea un 0 o un 1 binario.
5. Las dos formas básicas de transferir información digital son: en paralelo (todos
los bits simultáneamente) y en serie (un bit a la vez).
6. Las partes principales de todas las computadoras son las unidades: de entrada,
de control, de memoria, de aritmética-lógica y de salida.
7. La CPU es la combinación de la unidad aritmética-lógica y la unidad de control.
8. Por lo general, una microcomputadora tiene una CPU que se encuentra en un
solo chip, y se le llama microprocesador.
9. Un microcontrolador es una microcomputadora diseñada de manera especial
para aplicaciones de control dedicadas (no de propósito general).
TÉRMINOS IMPORTANTES*
bit
circuitos digitales/circuitos
lógicos
computadoras digitales
microcomputadoras
microcontroladores
microprocesador
programa
sistema digital
transmisión en paralelo
transmisión en serie
unidad aritmética-lógica
* Encontrará estos términos en negritas a lo largo del capítulo; además están deÀnidos en el Glosario al
Ànal del libro. Esto aplica en todos los capítulos.
22
CAPÍTULO 1/CONCEPTOS INTRODUCTORIOS
convertidor analógicodigital (ADC)
convertidor digitalanalógico (DAC)
diagrama de tiempos
memoria
representación
analógica
representación digital
sistema analógico
sistema binario
sistema decimal
unidad central de
procesamiento (CPU)
unidad de control
unidad de entrada
unidad de memoria
unidad de salida
PROBLEMAS
SECCIÓN 1-2
1-1.* ¿Cuáles de las siguientes cantidades son analógicas y cuáles digitales?
(a) El número de átomos en una muestra de material.
(b) La altitud de una aeronave.
(c) La presión en la llanta de una bicicleta.
(d) La corriente que pasa a través de una bocina.
(e) La configuración del temporizador en un horno de microondas.
1-2. ¿Cuáles de las siguientes cantidades son analógicas y cuáles digitales?
(a) La anchura de una pieza de madera.
(b) La cantidad de tiempo transcurrido antes de que se apague el timbre.
(c) La hora del día que se muestra en un reloj de cuarzo.
(d) La altitud por encima del nivel del mar, si se mide desde una escalera.
(e) La altitud por encima del nivel del mar, si se mide desde una rampa.
SECCIÓN 1-3
1-3.* Convierta los siguientes números binarios a sus valores decimales equivalentes.
(a) 110012
(b) 1001.10012
(c) 10011011001.101102
1-4. Convierta los siguientes números binarios a decimal.
(a) 100112
(b) 1100.0101
(c) 10011100100.10010
1-5.* Muestre la secuencia de conteo binario de 000 a 111, usando tres bits.
1-6. Muestre la secuencia de conteo binario de 000000 a 111111, usando seis
bits.
1-7.* ¿Cuál es el máximo número que podemos contar si utilizamos 10 bits?
1-8. ¿Cuál es el máximo número que podemos contar si utilizamos 14 bits?
1-9.* ¿Cuántos bits se necesitan para contar hasta 511?
1-10. ¿Cuántos bits se necesitan para contar hasta 63?
SECCIÓN 1-4
1-11.* Dibuje el diagrama de tiempos para una señal digital que alterne en forma
continua entre 0.2 V (0 binario) durante 2 ms y 4.4 V (1 binario) durante
4 ms.
1-12. Dibuje el diagrama de tiempos para una señal que alterne entre 0.3 V (0
binario) durante 5 ms y 3.9 V (1 binario) durante 2 ms.
* Encontrará las respuestas a los problemas marcados con un asterisco al Ànal del libro.
RESPUESTAS A LAS PREGUNTAS DE REPASO DE LAS SECCIONES
23
SECCIÓN 1-6
1-13.* Suponga que se van a transmitir en binario los valores enteros decimales
desde el 0 hasta el 15.
(a) ¿Cuántas líneas se necesitan si se utiliza la representación en paralelo?
(b) ¿Cuántas líneas se necesitan si se utiliza la representación en serie?
SECCIONES 1-7 Y 1-8
1-14. ¿Cuál es la diferencia entre un microprocesador y una microcomputadora?
1-15. ¿Cuál es la diferencia entre un microcontrolador y una microcomputadora?
RESPUESTAS A LAS PREGUNTAS DE REPASO DE LAS SECCIONES
SECCIÓN 1-1
1. Las cantidades analógicas pueden tomar cualquier valor sobre un intervalo continuo; las
cantidades digitales sólo pueden tomar valores discretos.
SECCIÓN 1-2
1. Es más fácil de diseñar; es más fácil de almacenar información; tiene mayor precisión;
capacidad de programación; se ve menos afectado por el ruido; tiene un mayor grado de
integración.
2. Las cantidades físicas del mundo real son analógicas. El procesamiento digital requiere
tiempo.
SECCIÓN 1-3
1. 10710
2. 110002
3. 409510
SECCIÓN 1-5
1. Falso.
2. Sí, siempre y cuando los dos voltajes de entrada estén dentro del mismo
intervalo de niveles lógicos.
3. Lógico.
4. Diagrama de tiempos.
SECCIÓN 1-6
1. La transmisión en paralelo es más rápida; la transmisión en serie sólo requiere una línea
de señal.
SECCIÓN 1-8
1. Si hay un cambio instantáneo en la señal de entrada, el circuito que tiene memoria
cambiará su salida y permanecerá con ese cambio.
2. Entrada, salida, memoria,
aritmética-lógica, de control.
3. Unidad de control y unidad aritmética-lógica.
4. Microprocesador.
C A P Í T U L O
2
SISTEMAS Y CÓDIGOS
NUMÉRICOS
■
CONTENIDO
2-1
Conversiones de binario a
decimal
Conversiones de decimal a
binario
Sistema numérico
hexadecimal
Código BCD
Código Gray
2-2
2-3
2-4
2-5
2-6
2-7
2-8
2-9
2-10
Integración de los sistemas
numéricos
Byte, nibble y palabra
Códigos alfanuméricos
Método de paridad para la
detección de errores
Aplicaciones
■
OBJETIVOS
Al terminar este capítulo, usted podrá:
■
Convertir un número de un sistema numérico (decimal, binario, hexadecimal)
a su equivalente en uno de los otros sistemas numéricos.
■
Citar las ventajas del sistema numérico hexadecimal.
■
Contar en hexadecimal.
■
Representar números decimales mediante el código BCD; y citar las ventajas
y desventajas en cuanto al uso del código BCD.
■
Comprender la diferencia entre BCD y binario directo.
■
Entender el propósito de los códigos alfanuméricos tales como el código
ASCII.
■
Explicar el método de paridad para la detección de errores.
■
Determinar el bit de paridad que se adjuntará a una cadena de datos
digitales.
■
INTRODUCCIÓN
El sistema numérico binario es el más importante en los sistemas digitales,
aunque también hay otros que son importantes. El sistema decimal es importante
ya que se utiliza de manera universal para representar cantidades fuera de
un sistema digital. Esto significa que habrá situaciones en las que los valores
decimales deban convertirse en valores binarios antes de introducirse en el
sistema digital. Por ejemplo, cuando oprime un número decimal en su calculadora
de bolsillo (o computadora), los circuitos en el interior de la máquina convierten
el número decimal en un valor binario.
De igual forma, habrá situaciones en las que los valores binarios en las salidas
de un sistema digital deberán convertirse en valores decimales para presentarlos
al mundo exterior. Por ejemplo, su calculadora (o computadora) utiliza números
binarios para calcular la solución a un problema y después convierte los resultados
en dígitos decimales antes de mostrarlos en pantalla.
Como verá más adelante, no es fácil ver un número binario y convertirlo
en su valor decimal equivalente. Resulta muy tedioso tener que introducir una
larga secuencia de unos (1s) y ceros (0s) en un teclado numérico, o escribir
números binarios extensos en papel. En especial es difícil tratar de comunicar una
cantidad binaria cuando se habla con otra persona. El sistema numérico
hexadecimal (base 16) se ha convertido la forma estándar de comunicar valores
numéricos en los sistemas digitales. La gran ventaja es que los números
hexadecimales pueden convertirse con facilidad a binario y viceversa.
Se han ideado otros métodos para representar cantidades decimales con
dígitos codificados en binario, los cuales no son en sí verdaderos sistemas
numéricos, pero ofrecen la facilidad de conversión entre el código binario y el
sistema numérico decimal. A esto se le conoce como decimal codificado en binario.
Es muy importante que usted pueda interpretar los valores en cualquier sistema
y realizar conversiones entre cualquiera de estas representaciones numéricas, ya
25
26
CAPÍTULO 2/SISTEMAS Y CÓDIGOS NUMÉRICOS
que las cantidades y los patrones de bits podrían estar representadas mediante
cualquiera de estos métodos en cualquier sistema dado y en todo el material
escrito de soporte para esos sistemas. También cubriremos otros códigos que
utilizan 1s y 0s para representar cosas tales como caracteres alfanuméricos, ya que
son muy comunes en los sistemas digitales.
2-1 CONVERSIONES DE BINARIO A DECIMAL
Como se explicó en el capítulo 1, el sistema numérico binario es un sistema posicional, en el cual cada dígito binario (bit) lleva un cierto peso basado en su posición
relativa al LSB. Cualquier número binario puede convertirse en su equivalente decimal con sólo sumar todos los pesos de las diversas posiciones en el número binario
que contengan 1. Para ilustrar esto, vamos a convertir el número 110112 a su equivalente decimal.
1
1
0
1
12
2 ⫹ 2 ⫹ 0 ⫹ 2 ⫹ 20 ⫽ 16 ⫹ 8 ⫹ 2 ⫹ 1
⫽ 2710
4
3
1
Hagamos ahora otro ejemplo con un mayor número de bits:
1
0
1
1
0
1
0
12
27 0 25 24 0 22 0 20 18110
Observe que el procedimiento es encontrar los pesos (es decir, potencias de 2)
para cada posición de bit que contenga un 1, y después hay que sumarlos. Observe
también que el MSB tiene un peso de 27, aun y cuando es el octavo bit; esto se debe
a que el LSB es el primer bit y tiene un peso de 20.
PREGUNTAS DE REPASO
1. Convierta el número 1000110110112 en su equivalente decimal.
2. ¿Cuál es el peso del MSB de un número de 16 bits?
2-2 CONVERSIONES DE DECIMAL A BINARIO
Existen dos métodos para convertir un número entero decimal en su representación
equivalente en el sistema binario. El primer método es el proceso inverso al que
se describió en la sección 2-1. El número decimal tan sólo se expresa como una suma
de potencias de 2, y después se escriben 1s y 0s en las posiciones de bit apropiadas.
Para ilustrar lo anterior veamos lo siguiente:
4510 32 8 4 1 25 0 23 22 0 20
1
0
1
1
0
12
Observe que se coloca un 0 en las posiciones 21 y 24, ya que todas las posiciones
deben tomarse en cuenta. Veamos otro ejemplo:
7610 64 8 4 26 0 0 23 22 0 0
1
0 0
1
1
0 02 .
27
SECCIÓN 2-2/CONVERSIONES DE DECIMAL A BINARIO
División repetida
El segundo método para convertir enteros decimales a binario es el que utiliza la
división entre 2. Para la conversión, que se muestra a continuación para el número
2510, se requiere dividir en forma repetida el número decimal entre 2 y anotar el
residuo después de cada división hasta que se obtenga un cociente de 0. El resultado binario se obtiene al escribir el primer residuo como el LSB y el último como
el MSB. Este proceso, que se ilustra en el diagrama de flujo de la figura 2-1, puede
usarse también para convertir de decimal a cualquier otro sistema numérico, como
veremos más adelante.
25
12 residuo de 1
2⎯⎯⎯⎯⎯⎯⎯⏐
LSB
↑ ↑
⏐ ⏐
⏐ ⏐
⏐
⏐
⏐
⏐
↑
⏐
⏐
⏐
⏐
⏐
⏐
⏐
⏐
⏐
↑
⏐
⏐
⏐
⏐
⏐
⏐
⏐
⏐
⏐
⏐
⏐
⏐
⏐
↑
⏐
⏐
⏐
⏐
⏐
⏐
⏐
⏐
⏐
⏐
⏐
⏐
⏐
⏐
⏐
⏐
⏐
1
0
0
12
↓
12
6 residuo de 0
2 ⎯⎯⎯⎯⎯⏐
↓
6
3 residuo de 0
2⎯⎯⎯⎯⎯⏐
↓
3
1 residuo de 1
2
⏐
⎯⎯⎯⎯
⎯
↓
1
0 residuo de 1
2
MSB
2510 1
FIGURA 2-1 Diagrama
de flujo para el método de
división repetida de la
conversión de enteros
decimales a binarios. Puede
usarse el mismo proceso para
convertir un entero decimal
a cualquier otro sistema
numérico.
INICIO
Dividir entre
2
Registrar cociente
(Q) y residuo (R)
¿Es
Q 0?
NO
SÍ
Reunir los residuos (R)
para formar el número
binario deseado, en donde
el primer R es el LSB y el
último R es el MSB
FIN
28
CAPÍTULO 2/SISTEMAS Y CÓDIGOS NUMÉRICOS
SUGERENCIA PARA EL USO DE CALCULADORA:
Si utiliza una calculadora para realizar las divisiones entre 2, podrá saber si el residuo es 0 o 1 y si el resultado tiene o no una parte fraccionaria. Por ejemplo, 25/2
produciría 12.5. Como hay una parte fraccionaria (.5), el residuo es un 1. Si no hubiera parte fraccionaria, como en 12/2 6, entonces el residuo sería 0. El siguiente
ejemplo demuestra esto.
EJEMPLO 2-1
Convierta el número 3710 en binario. Trate de resolverlo por su cuenta antes de ver
la solución.
Solución
37
18. 5 ⎯→ residuo de 1 (LSB)
2
↑
18
9.0 ⎯→
2
0
9
4.5 ⎯→
2
1
4
2.0 ⎯→
2
0
2
1.0 ⎯→
2
0
1
0.5 ⎯→
2
1 (MSB)
Por lo tanto, 3710 1001012.
Alcance de conteo
Recuerde que si utilizamos N bits, podemos contar hasta 2N números decimales distintos que van desde 0 hasta 2N 1. Por ejemplo, para N 4 podemos contar desde
00002 hasta 11112, 010 hasta 1510, para un total de 16 números distintos. Aquí, el
valor decimal más grande es 24 1 15, y hay 24 números distintos.
Entonces, en general, podemos decir que:
Si utilizamos N bits, podemos representar números decimales que van desde 0
hasta 2N 1, un total de 2N números distintos.
EJEMPLO 2-2
(a) ¿Cuál es el intervalo de valores decimales que pueden representarse en ocho
bits?
(b) ¿Cuántos bits se necesitan para representar valores decimales que van desde 0
hasta 12,500?
Solución
(a) Aquí tenemos que N 8. Por ende, podemos representar números decimales
desde 0 hasta 28 1 255. Para verificar lo anterior podemos comprobar si
111111112 se convierte en 25510.
29
SECCIÓN 2-3/SISTEMA NUMÉRICO HEXADECIMAL
(b) Con 13 bits podemos contar desde el 0 decimal hasta 213 – 1 8191. Con 14 bits
podemos contar desde 0 hasta 214 – 1 16,383. Es evidente que no son suficientes 13 bits, pero 14 bits nos llevarán más allá de 12,500. Por ende, el número de
bits requerido es 14.
PREGUNTAS DE REPASO
1. Convierta 8310 en binario usando ambos métodos.
2. Convierta 72910 en binario usando ambos métodos. Revise su respuesta y convierta el resultado de vuelta en decimal.
3. ¿Cuántos bits se requieren para contar hasta 1 millón decimal?
2-3
SISTEMA NUMÉRICO HEXADECIMAL
El sistema numérico hexadecimal utiliza la base 16. En consecuencia, tiene 16 símbolos posibles para los dígitos. Utiliza los dígitos del 0 al 9 más las letras A, B, C, D,
E y F como símbolos para los 16 dígitos. Las posiciones de los dígitos se ponderan
como potencias de 16, como se muestra a continuación, en lugar de ponderarse como
potencias de 10, como en el sistema decimal.
164
163
162
161
160
161
162
163
164
Punto hexadecimal
La tabla 2-1 muestra las relaciones entre hexadecimal, decimal y binario. Observe
que cada dígito hexadecimal representa un grupo de cuatro dígitos binarios. Es
importante recordar que los dígitos hex (abreviación de “hexadecimal”) de la A a la F
son equivalentes a los valores decimales del 10 al 15.
TABLA 2-1
Hexadecimal
Decimal
Binario
0
0
0000
1
1
0001
2
2
0010
3
3
0011
4
4
0100
5
5
0101
6
6
0110
7
7
0111
8
8
1000
9
9
1001
A
10
1010
B
11
1011
C
12
1100
D
13
1101
E
14
1110
F
15
1111
Conversión de hexadecimal a decimal
Es posible convertir un número hexadecimal a su equivalente decimal gracias a que
la posición de cada dígito hexadecimal tiene un peso equivalente a una potencia
30
CAPÍTULO 2/SISTEMAS Y CÓDIGOS NUMÉRICOS
de 16. El LSD tiene un peso de 160 1; la siguiente posición de dígito tiene un
peso de 161 16; la siguiente tiene un peso de 162 256; y así sucesivamente. En el
siguiente ejemplo demostraremos el proceso de conversión.
SUGERENCIA PARA EL USO DE CALCULADORA:
Puede usar la función yx de la calculadora para evaluar las potencias de 16.
356 16 3 162 5 161 6 16 0
768 80 6
85410
2AF16 2 162 10 161 15 16 0
512 160 15
68710
Observe que en el segundo ejemplo, el valor 10 se sustituyó por A y el valor 15 por F
en la conversión a decimal.
Para practicar, verifique que 1BC216 sea igual a 710610.
Conversión de decimal a hexadecimal
Recuerde que para realizar la conversión de decimal a binario utilizamos la división repetida entre 2. De igual forma, la conversión de decimal a hexadecimal
puede realizarse mediante el uso de la división repetida entre 16 (figura 2-1). El
siguiente ejemplo contiene dos casos de esta conversión.
(a) Convierta 42310 a hexadecimal.
Solución
423
26 residuo de 7
1↑6
26
1 residuo de 10
16
↑
1
0 residuo de 1
16
↑↑↑
⏐⏐
⏐⏐
⏐⏐
⏐⏐
⏐
⏐
⏐⏐
⏐⏐
⏐
⏐
⏐
⏐
423 10 1A716
(b) Convierta 21410 a hexadecimal.
Solución
214
13 residuo de 6
16↑
13
0 residuo de 13
16
↑↑
⏐⏐
⏐
⏐
⏐
⏐
EJEMPLO 2-3
214 10 D6 16
31
SECCIÓN 2-3/SISTEMA NUMÉRICO HEXADECIMAL
Observe de nuevo que los residuos de los procesos de división forman los dígitos
del número hexadecimal. Observe también que cualquier residuo mayor de 9 se
representa por las letras de la A a la F.
SUGERENCIA PARA EL USO DE CALCULADORA:
Si utiliza una calculadora para realizar las divisiones en el proceso de conversión,
los resultados incluirán una fracción decimal en vez de un residuo. Para obtener el
residuo multiplique la fracción por 16. En el ejemplo 2-3(b) la calculadora habría
producido lo siguiente:
214
= 13.375
16
El residuo se convierte en (0.375) 16 6.
Conversión de hexadecimal a binario
El sistema numérico hexadecimal se utiliza principalmente como método “abreviado” para representar números binarios. En realidad es muy sencillo convertir un
número hexadecimal en binario. Cada dígito hexadecimal se convierte en su equivalente binario de cuatro bits (tabla 2-1). Esto se ilustra a continuación para el número
9F216.
9F216
9
↓
1 0 0 1
1
100111110010 2
F
↓
1
2
↓
1
1
0
0
1
0
Para practicar, verifique que BA616 1011101001102.
Conversión de binario a hexadecimal
Esta conversión es sólo el inverso del proceso antes mencionado. El número binario
se separa en grupos de cuatro bits, y cada grupo se convierte en su dígito hexadecimal equivalente. Se agregan ceros (los que se muestran ensombrecidos) según sea
necesario para completar un grupo de cuatro bits en el MSD.
1 1 1 0 1 0 0 1 1 02 0 0 1 1 1 0 1 0 0 1 1 0
⎪⎫
⎬
⎭⎪
⎪⎫
⎬
⎭⎪
⎪⎫
⎬
⎭⎪
3
3A616
A
6
Para hacer las conversiones entre hexadecimal y binario es necesario conocer
los números binarios de cuatro bits (del 0000 hasta el 1111) y sus dígitos hexadecimales correspondientes. Una vez que memorize, la conversión podrá realizarse con
rapidez sin necesidad de hacer cálculos. Esto explica por qué el sistema hexadecimal es tan útil para representar números binarios extensos.
Para practicar, verifique que 1010111112 15F16.
Conteo en hexadecimal
Al contar en hexadecimal, puede incrementarse (en 1) la posición de cada dígito, desde el 0 hasta la F. Una vez que la posición de un dígito llega al valor F, se restablece
32
CAPÍTULO 2/SISTEMAS Y CÓDIGOS NUMÉRICOS
a 0 y se incrementa la posición del siguiente dígito. En las siguientes secuencias de
conteo hexadecimal se ilustra esto:
(a) 38, 39, 3A, 3B, 3C, 3D, 3F, 40, 41, 42
(b) 6F8, 6F9, 6FA, 6FB, 6FC, 6FD, 6FE, 6FF, 700
Observe que cuando hay un 9 en la posición de un dígito, se convierte en A cuando
se incrementa.
Con N posiciones de dígitos hexadecimales podemos contar desde el 0 decimal
hasta 16N 1, para un total de 16N valores distintos. Por ejemplo, con tres dígitos
hexadecimales podemos contar desde 00016 hasta FFF16, 010 hasta 409510, para un
total de 4096 163 valores distintos.
Utilidad de los números hexadecimales
Los números hexadecimales se utilizan a menudo en un sistema digital como una
manera “abreviada” de representar cadenas de bits. Al trabajar con las computadoras, es muy común usar cadenas de hasta 64 bits. Estas cadenas binarias no siempre
representan un valor numérico, sino que, como veremos más adelante, pueden indicar algún tipo de código que conlleve información no numérica. Al trabajar con un
número extenso de bits es más conveniente y menos errático escribir los números
binarios en hexadecimal, ya que, como hemos visto, es bastante sencillo realizar
conversiones entre hexadecimal y binario, o viceversa. Para ilustrar la ventaja de la
representación hexadecimal de una cadena binaria, suponga que tiene en su poder
una impresión del contenido de 50 ubicaciones de memoria, cada una de las cuales es un número de 16 bits y usted tiene que revisarlas comparándolas con una
lista. ¿Qué preferiría revisar, 50 números como éste: 0110111001100111, o 50 números como éste: 6E67? ¿Y con cuál sería más probable equivocarse? No obstante, es
importante tener en cuenta que todos los circuitos digitales trabajan en binario. Los
números hexadecimales sólo se utilizan como una conveniencia para los humanos
involucrados. Sería conveniente que memorizara el patrón binario de 4 bits para
cada dígito hexadecimal. Sólo entonces se dará cuenta de la utilidad de esta herramienta en los sistemas digitales.
EJEMPLO 2-4
Convierta el número 378 decimal en un número binario de 16 bits, primero convirtiendo el número en hexadecimal.
Solución
378
23 residuo de 1010 A16
16
↑
23
1 residuo de 7
1↑6
1
0 residuo de 1
16
Por lo tanto, 37810 17A16. Este valor hexadecimal puede convertirse con facilidad
en el número binario 000101111010. Por último, podemos expresar el número 37810
como un número de 16 bits si le agregamos cuatro 0s a la izquierda:
37810 0000 0001 0111 10102
SECCIÓN 2-4/CÓDIGO BCD
EJEMPLO 2-5
33
Convierta el número B2F16 en decimal.
Solución
B2F16 = B * 162 + 2 * 161 + F * 160
= 11 * 256 + 2 * 16 + 15
= 286310
Resumen de las conversiones
En estos momentos es probable que su cabeza esté dando vueltas a medida que
trata de mantener el sentido con todas estas distintas conversiones de un sistema
numérico a otro. Tal vez se haya dado cuenta que muchas de estas conversiones
pueden realizarse en forma automática en su calculadora con sólo oprimir una tecla,
pero es importante que las domine para que pueda comprender el proceso. Además,
¿qué pasaría si su calculadora se quedara sin energía en un momento crucial y no
tuviera un reemplazo a la mano? El siguiente resumen le ayudará, pero nada se
compara con la práctica continua.
1. Al convertir de binario (o hexadecimal) a decimal, utilice el método de tomar la
suma ponderada de la posición de cada bit.
2. Al convertir de decimal a binario (o hexadecimal), utilice el método de la división repetida entre 2 (o 16) y recolectar los residuos (figura 2-1).
3. Al convertir de binario a hexadecimal, divida el número en grupos de cuatro
bits y convierta cada grupo en el dígito hexadecimal correcto.
4. Al convertir de hexadecimal a binario, convierta cada dígito en su equivalente
de cuatro bits.
PREGUNTAS DE REPASO
Convierta el número 24CE16 en decimal.
Convierta el número 311710 en hexadecimal y después de hexadecimal a binario.
Convierta el número 10010111101101012 en hexadecimal.
Escriba los siguientes cuatro números en esta secuencia de conteo hexadecimal:
E9A, E9B, E9C, E9D, _____, _____, _____, _____.
5. Convierta el número 352716 en binario.
6. ¿Qué rango de valores decimales puede representarse mediante un número hexadecimal de cuatro dígitos?
1.
2.
3.
4.
2-4
CÓDIGO BCD
Cuando se representan números, letras o palabras mediante un grupo especial de
símbolos, decimos que están siendo codificados, y al grupo de símbolos se le llama
código. Tal vez uno de los códigos más conocidos sea el Morse, en el cual una seria de
puntos y rayas representan las letras del alfabeto.
Hemos visto que cualquier número decimal puede representarse mediante un
número binario equivalente. El grupo de 1s y 0s en el número binario puede considerarse como un código que representa el número decimal. Cuando un número decimal se representa por su número binario equivalente, le llamamos código binario
directo.
34
CAPÍTULO 2/SISTEMAS Y CÓDIGOS NUMÉRICOS
Todos los sistemas digitales utilizan cierta forma de números binarios para su
operación interna, pero el mundo externo es decimal por naturaleza. Esto significa
que con frecuencia se realizan conversiones entre los sistemas decimal y binario.
Hemos visto que las conversiones entre decimal y binario pueden volverse extensas
y complicadas cuando se manejan números grandes. Por esta razón, en ciertas situaciones se utiliza un medio para codificar números decimales que combina algunas
características tanto del sistema decimal como del sistema binario.
Código decimal codificado en binario
Si cada dígito de un número decimal se representa mediante su equivalente binario,
el resultado es un código que se conoce como decimal codificado en binario (que en lo
sucesivo abreviaremos como BCD). Como un dígito decimal puede llegar hasta el 9, se
requieren cuatro bits para codificar cada dígito (el código binario para el 9 es 1001).
Para ilustrar el código BCD, considere como ejemplo el número decimal 874.
Cada dígito se cambia a su equivalente binario de la siguiente manera:
8
↓
1000
7
↓
0111
4
↓
0100
(decimal)
(BCD)
Como segundo ejemplo, vamos a cambiar el número 943 a su representación en
código BCD:
9
↓
1001
4
↓
0100
3
↓
0011
(decimal)
(BCD)
Una vez más, cada dígito decimal se cambia a su equivalente binario directo.
Observe que siempre se utilizan cuatro bits para cada dígito.
Así, el código BCD representa cada dígito del número decimal mediante un
número binario de cuatro bits. Es evidente que sólo se utilizan los números binarios
de cuatro bits del 0000 al 1001. El código BCD no utiliza los números 1010, 1011,
1100, 1101, 1110 y 1111. En otras palabras, sólo se utilizan 10 de los 16 posibles
grupos de código binario de cuatro bits. Si llega a aparecer uno de los números “prohibidos” de cuatro bits en una máquina que utilice el código BCD, por lo general, es
una indicación de que se produjo un error.
EJEMPLO 2-6
Convierta el número 0110100000111001 (BCD) en su equivalente decimal.
Solución
Divida el número BCD en grupos de cuatro bits y convierta cada grupo en decimal.
3
⎫
⎫
⎫
⎫
8
⎫
⎬
6
⎫
⎬
9
Convierta el número BCD 011111000001 en su equivalente decimal.
Solución
7
⎫
⎫
⎬
⎫
⎬
0111 1100 0001
⎫
EJEMPLO 2-7
⎫
⎬
⎫
⎬
0110 1000 0011 1001
↓
1
El grupo con el código prohibido
indica un error en el número BCD
35
SECCIÓN 2-5/CÓDIGO GRAY
Comparación entre BCD y binario
Es importante entender que BCD no es otro sistema numérico como el binario, el
decimal o el hexadecimal. De hecho, se utiliza el sistema decimal pero cada dígito
está codificado en su equivalente binario. También es importante comprender que
un número BCD no es lo mismo que un número binario directo. Un número binario
directo toma el número decimal completo y lo representa en binario; el código BCD
convierte cada dígito decimal en binario de manera individual. Para ilustrar esto,
tome el número 137 y compare sus códigos binario directo y BCD:
13710 100010012
(binario)
13710 0001 0011 0111
(BCD)
Para representar el 137, el código BCD requiere 12 bits, mientras que el código binario directo sólo requiere de ocho bits. El código BCD requiere más bits que el binario
directo para representar números decimales de más de un dígito, ya que no utiliza
todos los grupos de cuatro bits posibles, como se indicó antes, y es, por lo tanto, algo
ineficiente.
La principal ventaja del código BCD es la relativa facilidad de convertir BCD en
decimal y viceversa. Sólo necesitan recordarse los grupos de código de cuatro bits
para los dígitos decimales del 0 al 9. Esta facilidad de conversión es muy importante
desde el punto de vista del hardware, ya que en un sistema digital son los circuitos
lógicos los que realizan las conversiones hacia y desde decimal.
PREGUNTAS DE REPASO
1. Represente el valor decimal 178 mediante su equivalente binario directo. Luego
codifique el mismo número decimal en BCD.
2. ¿Cuántos bits se requieren para representar un número decimal de ocho dígitos
en BCD?
3. ¿Cuál es la ventaja de codificar un número decimal en BCD, en lugar de hacerlo
en binario directo? ¿Cuál es la desventaja?
2-5
CÓDIGO GRAY
Los sistemas digitales operan a velocidades muy elevadas y responden a los cambios
que se producen en las entradas digitales. Al igual que en la vida real, cuando varias
condiciones de entrada están cambiando al mismo tiempo la situación puede malinterpretarse, con lo cual se puede llegar a producir una reacción errónea. Cuando se
ven los bits en una secuencia de conteo binario, a menudo hay varios bits que deben
cambiar estados al mismo tiempo. Por ejemplo, considere cuando el número binario
de tres bits correspondiente al 3 decimal cambia a 4: los tres bits deben cambiar de
estado.
Para reducir la probabilidad de que un circuito digital malinterprete una entrada cambiante, se desarrolló el código Gray como una manera de representar una
secuencia de números. El aspecto único del código Gray es que, entre dos números
sucesivos en la secuencia sólo un bit cambia. La tabla 2-2 muestra la traducción
entre el valor del código binario de tres bits y el código Gray. Para convertir de binario a Gray sólo hay que empezar en el bit más significativo y usarlo como el MSB
de Gray, como muestra la figura 2-2(a). Después se compara el MSB binario con el
siguiente bit binario (B1). Si son iguales, entonces G1 0; si son distintos, entonces
G1 1. Para encontrar G0 se compara B1 con B0.
36
TABLA 2-2
Equivalencia entre el
código binario de tres
bits y el código Gray.
CAPÍTULO 2/SISTEMAS Y CÓDIGOS NUMÉRICOS
B2
B1
B0
G2
G1
G0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
Binario
MSB
B2
B1
LSB
B0
¿Diferente?
¿Diferente?
G1
G0
G2
FIGURA 2-2
Gray
MSB
G2
G1
LSB
G0
¿Diferente?
¿Diferente?
B1
B0
B2
Gray
Binario
(a)
(b)
Conversión de (a) binario a Gray y de (b) Gray a binario.
La figura 2-2(b) muestra la conversión del código Gray a binario. Observe que el
MSB en Gray siempre es el mismo que el MSB en binario. El siguiente bit binario se
encuentra comparando el bit binario a la izquierda con el bit correspondiente en código
Gray. Los bits similares producen un 0 y los bits distintos un 1. La aplicación más
común del código Gray es en los codificadores de posición de eje, como muestra la
figura 2-3. Estos dispositivos producen un valor binario que representa la posición de
un eje mecánico giratorio. Un codificador de eje práctico utiliza mucho más de tres
bits y divide la rotación en mucho más de ocho segmentos, por lo que puede detectar
incrementos de rotación mucho más pequeños.
FIGURA 2-3 Un
codificador de eje de
ocho posiciones y tres
bits.
G2
G1
G0
37
SECCIÓN 2-7/BYTE, NIBBLE Y PALABRA
PREGUNTAS DE REPASO
1. Convierta el número 0101 (binario) en su equivalente en código de Gray.
2. Convierta el número 0101 (código de Gray) en su número binario equivalente.
2-6 INTEGRACIÓN DE LOS SISTEMAS NUMÉRICOS
La tabla 2-3 muestra la representación de los números decimales del 1 al 15 en los
sistemas numéricos binario y hexadecimal, y también en los códigos BCD y Gray.
Examine esta tabla con cuidado y asegúrese de comprender de dónde proviene.
Observe en especial cómo la representación en BCD siempre usa cuatro bits para
cada dígito decimal.
TABLA 2-3
Decimal
Binario
Hexadecimal
BCD
GRAY
0
0
0000
0000
1
1
1
0001
0001
2
10
2
0010
0011
3
11
3
0011
0010
4
100
4
0100
0110
5
101
5
0101
0111
6
110
6
0110
0101
0
7
111
7
0111
0100
8
1000
8
1000
1100
9
1001
9
1001
1101
10
1010
A
0001 0000
1111
11
1011
B
0001 0001
1110
12
1100
C
0001 0010
1010
13
1101
D
0001 0011
1011
14
1110
E
0001 0100
1001
15
1111
F
0001 0101
1000
2-7
BYTE, NIBBLE Y PALABRA
Bytes
La mayoría de las microcomputadoras maneja y almacena datos binarios e información en grupos de ocho bits, por lo que una cadena de ocho bits tiene un nombre
especial: byte. Un byte consiste de ocho bits y puede representar cualquier tipo de
datos o de información. Los siguientes ejemplos ilustrarán este punto.
EJEMPLO 2-8
¿Cuántos bytes hay en una cadena de 32 bits?
Solución
32/8 4; por lo tanto, hay cuatro bytes en una cadena de 32 bits.
38
CAPÍTULO 2/SISTEMAS Y CÓDIGOS NUMÉRICOS
EJEMPLO 2-9
¿Cuál es el valor decimal más grande que puede representarse en binario si se utilizan dos bytes?
Solución
Dos bytes son 16 bits, por lo que el valor binario más grande será equivalente al
número decimal 216 1 65,535.
EJEMPLO 2-10
¿Cuántos bytes se necesitan para representar el valor decimal 846,569 en BCD?
Solución
Cada dígito decimal se convierte en un código BCD de cuatro bits. Por ende, un
número decimal de seis dígitos requiere 24 bits. Esos 24 bits corresponden a tres
bytes. El diagrama para este caso se muestra a continuación:
8 4 6 5 6 9
(decimal)
⎫
⎪
⎫
⎪
byte 2
⎫
⎪
⎬
byte 1
⎫
⎪
⎬
⎫
⎪
⎬
⎫
⎪
1000 0100 0110 0101 0110 1001 (BCD)
byte 3
Nibbles
A menudo los números binarios se descomponen en grupos de cuatro bits, como
hemos visto con los códigos BCD y las conversiones a números hexadecimales. En los
primeros días de los sistemas digitales surgió un término para describir un grupo de
cuatro bits. Como abarca la mitad de un byte, se le denominó nibble. Los siguientes
ejemplos ilustran el uso de este término.
EJEMPLO 2-11
¿Cuántos nibbles hay en un byte?
Solución
2
EJEMPLO 2-12
¿Cuál es el valor hexadecimal del nibble menos significativo del número binario
1001 0101?
Solución
1001 0101
El nibble menos significativo es 0101 5.
Palabras
Los términos bit, nibble y byte representan un número fijo de dígitos binarios.
A medida que los sistemas han ido creciendo a través de los años, también ha crecido
SECCIÓN 2-8/CÓDIGOS ALFANUMÉRICOS
39
su capacidad (¿apetito?) de manejar datos binarios. Una palabra es un grupo de bits
que representa una cierta unidad de información. El tamaño de la palabra depende
del tamaño de la ruta de datos en el sistema que utiliza la información. El tamaño
de palabra puede definirse como el número de bits en la palabra binaria con el que
opera un sistema digital. Por ejemplo, tal vez la computadora en su horno de microondas sólo pueda manejar un byte a la vez. Tiene un tamaño de palabra de ocho bits.
Por otro lado, la computadora personal en su escritorio puede manejar ocho bytes a
la vez, por lo que tiene un tamaño de palabra de 64 bits.
PREGUNTAS DE REPASO
1. ¿Cuántos bytes se necesitan para representar el número 23510 en binario?
2. ¿Cuál es el valor decimal más grande que puede representarse en BCD, si se
utilizan dos bytes?
3. ¿Cuántos dígitos hexadecimales puede representar un nibble?
4. ¿Cuántos nibbles hay en un dígito BCD?
2-8
CÓDIGOS ALFANUMÉRICOS
Además de los datos numéricos, una computadora debe ser capaz de manejar información no numérica. En otras palabras, una computadora debe reconocer códigos
que representen letras del alfabeto, signos de puntuación y otros caracteres especiales, además de los números. A estos códigos se les denomina códigos alfanuméricos.
Un código alfanumérico completo debe incluir las 26 letras minúsculas, las 26 letras
mayúsculas, los 10 dígitos numéricos, 7 signos de puntuación y de 20 a 40 caracteres
adicionales, como , /, #, %, *, y así sucesivamente. Podemos decir que un código
alfanumérico representa a todos los caracteres y funciones que se encuentran en el
teclado de una computadora.
Código ASCII
El código alfanumérico más utilizado es el Código estándar estadounidense para el
intercambio de información (ASCII). Este código es de siete bits, por lo cual tiene
27 128 código posibles. Más que suficiente para representar todos los caracteres
estándar del teclado, así como las funciones de control tales como retorno de carro
(RETURN) y avance de línea (LINEFEED). La tabla 2-4 muestra un listado del código ASCII estándar de siete bits. La tabla proporciona los equivalentes en hexadecimal y decimal. Para obtener el código binario de siete bits para cada carácter hay
que convertir el valor hexadecimal en binario.
EJEMPLO 2-13
Use la tabla 2-4 para encontrar el código ASCII de siete bits para el carácter de
barra diagonal inversa (\).
Solución
El valor hexadecimal que aparece en la tabla 2-4 es 5C. Al traducir cada dígito hexadecimal en código binario de cuatro bits produce el valor 0101 1100. Los siete bits de
menor peso representan el código ASCII para \, o 1011100.
40
CAPÍTULO 2/SISTEMAS Y CÓDIGOS NUMÉRICOS
TABLA 2-4 Código ASCII estándar.
Caracter
HEX Decimal
Caracter
HEX Decimal
Caracter
HEX Decimal
Caracter HEX Decimal
.
60
96
NUL (nulo)
0
0
Espacio
20
32
@
40
64
Inicio del
encabezado
1
1
!
21
33
A
41
65
a
61
97
Inicio del texto
2
2
“
22
34
B
42
66
b
62
98
Fin del texto
3
3
#
23
35
C
43
67
c
63
99
Fin de la transmisión
4
4
$
24
36
D
44
68
d
64
100
Consulta
5
5
%
25
37
E
45
69
e
65
101
Reconocimiento
6
6
&
26
38
F
46
70
f
66
102
Timbre
7
7
`
27
39
G
47
71
g
67
103
Retroceso
8
8
(
28
40
H
48
72
h
68
104
Tabulación
horizontal
9
9
)
29
41
I
49
73
i
69
105
Avance de línea
A
10
*
2A
42
J
4A
74
j
6A
106
Tabulación vertical
B
11
+
2B
43
K
4B
75
k
6B
107
Avance de hoja
de impresión
C
12
,
2C
44
L
4C
76
l
6C
108
Retorno de carro
D
13
-
2D
45
M
4D
77
m
6D
109
Mayúsculas
desactivadas
E
14
.
2E
46
N
4E
78
n
6E
110
Mayúsculas
activadas
F
15
/
2F
47
O
4F
79
o
6F
111
Escape de enlace
de datos
10
16
0
30
48
P
50
80
p
70
112
Control directo 1
11
17
1
31
49
Q
51
81
q
71
113
Control directo 2
12
18
2
32
50
R
52
82
r
72
114
Control directo 3
13
19
3
33
51
S
53
83
s
73
115
Control directo 4
14
20
4
34
52
T
54
84
t
74
116
ACK
(reconocimiento)
negativo
15
21
5
35
53
U
55
85
u
75
117
Sincronía en
estado inactivo
16
22
6
36
54
V
56
86
v
76
118
Fin de Bloque de
Transmisión
17
23
7
37
55
W
57
87
w
77
119
Cancelar
18
24
8
38
56
X
58
88
x
78
120
Fin de medio
19
25
9
39
57
Y
59
89
y
79
121
Sustituir
1A
26
:
3A
58
Z
5A
90
z
7A
122
Escape
1B
27
;
3B
59
[
5B
91
{
7B
123
Separador
de formas
1C
28
<
3C
60
\
5C
92
|
7C
124
Separador
de grupos
1D
29
=
3D
61
]
5D
93
}
7D
125
Separador
de registros
1E
30
>
3E
62
^
5E
94
~
7E
126
Separador de
unidades
1F
31
?
3F
63
5F
95
Suprimir
7F
127
SECCIÓN 2-9/MÉTODO DE PARIDAD PARA LA DETECCIÓN DE ERRORES
41
El código ASCII se utiliza para la transferencia de información alfanumérica
entre una computadora y los dispositivos externos, tales como una impresora u otra
computadora. La computadora también utiliza ASCII en forma interna para almacenar la información que escribe un operador en el teclado. El siguiente ejemplo
ilustra lo anterior.
EJEMPLO 2-14
Un operador está escribiendo un programa en lenguaje C en el teclado de cierta
microcomputadora, la cual convierte cada pulsación de tecla en su código ASCII, y
lo almacena como un byte en memoria. Determine las cadenas binarias que se introducirán en memoria cuando el operador escriba la siguiente instrucción en C:
if (x>3)
Solución
Localice cada carácter (incluyendo el espacio) en la tabla 2-4 y escriba su código
ASCII.
i
f
espacio
(
x
>
3
)
69
66
20
28
78
3E
33
29
0110
0110
0010
0010
0111
0011
0011
0010
1001
0110
0000
1000
1000
1110
0011
1001
Observe que se agregó un 0 al bit más a la izquierda de cada código ASCII, ya que
los códigos deben almacenarse como bytes (ocho bits). A este proceso de agregar un
bit adicional se le denomina rellenar con 0s.
PREGUNTAS DE REPASO
1. Codifique el siguiente mensaje en código ASCII utilizando la representación
hexadecimal: “COSTO $72.”
2. El siguiente mensaje en código ASCII con bits de relleno se almacena en ubicaciones contiguas de memoria en una computadora:
01010011
01010100
01001111
01010000
¿Cuál es el mensaje?
2-9 MÉTODO DE PARIDAD PARA LA DETECCIÓN DE ERRORES
El movimiento de datos binarios y códigos de un lugar a otro es la operación más
frecuente que se realiza con los sistemas digitales. A continuación se listan solo unos
cuantos ejemplos:
■
■
■
La transmisión de voz digitalizada a través de un enlace de microondas.
El almacenamiento de datos y la recuperación de los mismos desde dispositivos
de memoria externos, como el disco magnético y el disco óptico.
La transmisión de datos digitales desde una computadora hacia otra computadora remota, a través de líneas telefónicas (mediante el uso de un módem). Ésta es
una de las principales formas de enviar y recibir información en Internet.
Siempre que se transmite información desde un dispositivo (el transmisor) hasta otro (el receptor), existe la posibilidad de que puedan producirse errores tales
42
CAPÍTULO 2/SISTEMAS Y CÓDIGOS NUMÉRICOS
x
Transmisor
Receptor
FIGURA 2-4 Ejemplo del ruido que produce un error en la transmisión
de datos digitales.
que causen que el receptor no reciba la información idéntica tal y como la envió el
transmisor. La principal causa de errores de transmisión es el ruido eléctrico, el cual
consiste en fluctuaciones espurias en el voltaje o en la corriente, dichas señales de
ruido están presentes en todos los sistemas electrónicos en diversos grados. La figura 2-4 es una ilustración simplificada de un tipo de error de transmisión.
El transmisor envía una señal digital en serie que está relativamente libre de
ruido, a través de una línea de señal hacia un receptor. No obstante, para cuando
la señal llega al receptor contiene un cierto grado de ruido acumulado a la señal
original. En ocasiones, el ruido es tan grande en amplitud que altera el nivel lógico
de la señal, como se ve en el punto x. Cuando esto ocurre, el receptor puede interpretar en forma incorrecta ese bit como un 1 lógico, que no corresponde con lo que
el transmisor ha enviado.
La mayoría del equipo digital moderno está diseñado relativamente libre de
errores, y la probabilidad de que ocurran errores como el que se muestra en la figura
2-4 es muy baja. No obstante, debemos considerar que los sistemas digitales frecuentemente transmiten miles, incluso millones de bits por segundo, por lo que
incluso hasta una relación muy baja de ocurrencia de errores puede producir un
error ocasional que podría llegar a ser molesto, si no es que desastroso. Por esta
razón, muchos sistemas digitales emplean algún método para la detección (y en
ocasiones corrección) de errores. Uno de los esquemas más simples y utilizados para
este fin es el método de paridad.
Bit de paridad
Un bit de paridad es un bit que se agrega al grupo de bits del código que se está
transfiriendo de un lugar a otro. El bit de paridad se hace 0 o 1, dependiendo del
número de 1s que contenga el grupo de bits del código. Se utilizan dos métodos distintos.
En el método de paridad par, el valor del bit de paridad se elije de manera que
el número total de 1s en el grupo de bits del código, incluyendo el bit de paridad,
sea par. Por ejemplo, suponga que el grupo es 1000011. Éste es el carácter “C” en
ASCII. El código tiene tres 1s. Por ende, agregaremos un bit de paridad de 1 para
que el número total de 1s sea par. El nuevo código incluyendo el bit de paridad sería
entonces:
1 1 0 0 0 0 1 1
↑
bit de paridad agregado*
Si el grupo de bits del código contiene un número par de 1s para empezar, el bit
de paridad recibe un valor de 0. Por ejemplo, si el código fuera 1000001 (el código
ASCII para la “A”), el bit de paridad asignado sería 0 y el nuevo código incluyendo el
bit de paridad sería 01000001.
El método de paridad impar se utiliza de la misma forma, sólo que el bit de paridad se elije de manera que el número total de 1s, incluyendo el bit de paridad, sea
impar. Por ejemplo, para el código 1000001, el bit de paridad asignado sería un 1.
Para el código 1000011, el bit de paridad sería un 0.
* El bit de paridad puede colocarse en cualquier extremo del grupo de código, pero, por lo general, se
coloca a la izquierda del MSB.
SECCIÓN 2-9/MÉTODO DE PARIDAD PARA LA DETECCIÓN DE ERRORES
43
Ya sea que se utilice la paridad par o impar, el bit de paridad se convierte en
parte de la palabra de código. Por ejemplo, al agregar un bit de paridad al código
ASCII de siete bits se produce un código de ocho bits. Por lo tanto, el bit de paridad
se trata justo igual que cualquier otro bit en el código.
El bit de paridad se transmite para detectar cualquier error de un solo bit que
ocurra durante la transmisión de un código de un lugar a otro. Por ejemplo, suponga que el carácter “A” se va a transmitir y se va a utilizar paridad impar. El código
transmitido sería
1 1 0 0 0 0 0 1
Cuando el circuito receptor reciba el código, verificará que éste contenga un número impar de 1s, incluyendo el bit de paridad. De ser así, el receptor supondrá que el
código se ha recibido de manera correcta. Ahora suponga que debido a cierto ruido
o falla el receptor en realidad recibe el siguiente código:
1 1 0 0 0 0 0 0
El receptor descubrirá que este código tiene un número par de 1s. Esto indica al
receptor que debe haber un error en el código, ya que se presume que el transmisor
y el receptor han acordado utilizar paridad impar. Sin embargo, no hay forma de que
el receptor sepa cuál bit tiene error, ya que no sabe cuál se supone que va a ser el
código.
Podemos asumir que este método de paridad no funciona si dos bits tienen error,
ya que dos errores no cambiarían la característica de “par” o “impar” en el número
de 1s en el código. En la práctica, el método de paridad se utiliza sólo en situaciones
en las que la probabilidad de un solo error es muy baja y la probabilidad de doble
error es prácticamente cero.
Cuando se utiliza el método de paridad, el transmisor y el receptor deben acordar antes de la transmisión si se va a utilizar la paridad par o impar. No hay ventaja
de un método sobre el otro, aunque parece que la paridad par se utiliza más a
menudo. El transmisor debe agregar el bit de paridad apropiado a cada unidad de
información que transmita. Por ejemplo, si el transmisor está enviando datos codificados en ASCII, deberá agregar el bit de paridad a cada grupo de código ASCII de
siete bits. Cuando el receptor examine los datos que reciba del transmisor, comprobará cada grupo de código para ver si el número total de 1s, incluyendo el bit de
paridad, es consistente con el tipo de paridad acordado. A esto se le conoce comúnmente como comprobar la paridad de los datos. En caso de que detecte un error, el
receptor puede enviar un mensaje al transmisor para pedirle que vuelva a transmitir el último conjunto de datos. El procedimiento a seguir cuando se detecta un
error depende de cada sistema.
EJEMPLO 2-15
Es común que las computadoras se comuniquen con otros equipos remotos a través
de líneas telefónicas. Así es como se lleva a cabo la comunicación por acceso telefónico a través de Internet. Cuando una computadora transmite un mensaje a otra, esa
información, por lo general, se codifica en ASCII. ¿Cuáles serían las cadenas de bits
que transmitiría una computadora para enviar el mensaje HOLA, utilizando ASCII
con paridad par?
Solución
Primero, vea los códigos ASCII para cada carácter del mensaje. Después, para cada
código cuente el número de 1s. Si es un número par añada un 0 como el MSB, o un 1
44
CAPÍTULO 2/SISTEMAS Y CÓDIGOS NUMÉRICOS
si es un número impar. Por ende, los códigos de ocho bits (bytes) resultantes tendrán
un número par de 1s (incluyendo la paridad).
bits de paridad agregados
T
PREGUNTAS DE REPASO
H
0
1
0
0
1
0
0
0
O
1
1
0
0
0
1
0
1
L
1
1
0
0
1
1
0
0
A
0
1
0
0
0
0
0
1
1. Agregue un bit de paridad impar al código ASCII para el símbolo $ y exprese el
resultado en hexadecimal.
2. Adjunte un bit de paridad par al código BCD para el 69 decimal.
3. ¿Por qué el método de paridad no puede detectar un doble error en los datos
transmitidos?
2-10 APLICACIONES
A continuación se presentan algunas aplicaciones que servirán como repaso de algunos conceptos que vistos en este capítulo. El objetivo de estas aplicaciones es que
usted se dé una idea de cómo se utilizan los diversos sistemas y códigos numéricos
en el mundo digital. En los problemas al final del capítulo presentaremos más aplicaciones.
APLICACIÓN 2-1
Un CD-ROM ordinario puede almacenar 650 megabytes de datos digitales. Como
mega 220, ¿cuántos bits de datos puede almacenar un CD-ROM?
Solución
Recuerde que un byte tiene ocho bits. Por lo tanto, 650 megabytes son 650 220
8 5,452,595,200 bits.
APLICACIÓN 2-2
Para poder programar la mayoría de microcontroladores, las instrucciones binarias
se almacenan en un archivo de una computadora personal, de una manera especial
que se conoce como Formato Hexadecimal Intel. La información hexadecimal se
codifica en caracteres ASCII, de manera que pueda mostrarse con facilidad en la
pantalla de una PC, imprimirse o transmitirse de una manera sencilla, carácter por
carácter, a través de un puerto COM serial de la PC. A continuación se muestra una
línea de un archivo en Formato Hexadecimal Intel:
:10002000F7CFFFCF1FEF2FEF2A95F1F71A95D9F7EA
El primer carácter enviado es el código ASCII correspondiente a los dos puntos,
seguido de un 1. A cada uno se le adjunta un bit de paridad como el bit más significativo. Un instrumento de prueba captura el patrón binario de bits a medida que
pasa a través del cable hacia el microcontrolador.
(a) ¿Qué apariencia debe tener el patrón binario de bits incluyendo la paridad?
(MSB-LSB.)
45
SECCIÓN 2-10/APLICACIONES
(b) El valor 10, que va después de los dos puntos, representa en número hexadecimal el total de bytes que se van a cargar en la memoria del microcontrolador.
¿Cuál es el número decimal de bytes que se van a cargar?
(c) El número 0020 es un valor hexadecimal de cuatro dígitos que representa la
dirección en la que se va a almacenar el primer byte. ¿Cuál es la mayor dirección posible? ¿Cuántos bits se requerirían para representar esta dirección?
(d) El valor del primer byte de datos es F7. ¿Cuál es el valor (en binario) del nibble
menos significativo de este byte?
FFFF
1111 1111 1111 1111
16 bits
Solución
(a) Los códigos ASCII son 3A (para el :) y 31 (para el 1)
00111010
10110001
bit de paridad par
(b) 10 hex 1 16 0 1 16 bytes decimales.
(c) FFFF es el mayor valor posible. Cada dígito hexadecimal es de 4 bits, por lo que
necesitamos 16 bits.
(d) El nibble menos significativo (4 bits) se representa mediante el 7 hexadecimal.
En binario sería 0111.
APLICACIÓN 2-3
Una pequeña computadora de control de procesos utiliza códigos hexadecimales
para representar sus direcciones de 16 bits de memoria.
(a) ¿Cuántos dígitos hexadecimales se requieren?
(b) ¿Cuál es el intervalo de direcciones en hexadecimal?
(c) ¿Cuántas localidades de memoria hay?
Solución
(a) Como 4 bits se convierten en un dígito hexadecimal, se necesitan 16/4 4 dígitos hexadecimales.
(b) El intervalo binario es de 00000000000000002 a 11111111111111112. En hexadecimal sería de 000016 a FFFF16.
(c) Con 4 dígitos hexadecimales, el número total de direcciones es 164 65,536.
APLICACIÓN 2-4
En un sistema basado en microcontrolador, los números se introducen en BCD pero
se almacenan en binario directo. Como programador, usted debe decidir si necesita
una ubicación de almacenamiento de un byte o de dos bytes.
(a) ¿Cuántos bytes necesita si el sistema recibe una entrada decimal de dos dígitos?
(b) ¿Qué pasaría si tuviera que introducir tres dígitos?
Solución
(a) Con dos dígitos puede introducir valores hasta el 99 (1001 1001BCD). En binario
este valor es 01100011, el cual cabe en una ubicación de memoria de ocho bits.
También puede utilizar un solo bit.
(b) Tres dígitos pueden representar hasta 999 (1001 1001 1001). En binario este
valor es 1111100111 (10 bits). Por lo tanto, no puede usar un solo byte; necesita
dos bytes.
46
CAPÍTULO 2/SISTEMAS Y CÓDIGOS NUMÉRICOS
APLICACIÓN 2-5
Cuando hay que transmitir caracteres ASCII entre dos sistemas independientes
(como una computadora y un módem), debe haber una manera de indicar al receptor
cuándo va a llegar un nuevo carácter. A menudo también se tiene la necesidad de
detectar errores en la transmisión. El método de transferencia se llama comunicación asíncrona de datos. El estado normal de inactividad de la línea de transmisión
es un 1 lógico. Cuando el transmisor envía un carácter ASCII, debe “encapsularse”
para que el receptor sepa en dónde comienzan y terminan los datos. El primer bit
debe ser siempre un bit de inicio (0 lógico). A continuación se envía el código ASCII,
en donde el LSB va primero y el MSB al último. Después del MSB se adjunta un bit
de paridad para comprobar errores en la transmisión. Para terminar la transmisión
se envía un bit de paro (1 lógico). En la figura 2-5 se muestra una transmisión asíncrona ordinaria del código ASCII de siete bits para el signo # (23 Hex) con paridad par.
inactiva
inactiva
I
N
I
C
I
O
FIGURA 2-5
D
0
L
S
B
D
1
D
2
D
3
D
4
D
5
D
6
M
S
B
P
a
r
i
d
a
d
P
A
R
O
Datos seriales asíncronos con paridad par.
RESUMEN
1. El sistema numérico hexadecimal se utiliza en los sistemas y las computadoras
digitales como una manera eficiente de representar cantidades binarias.
2. En las conversiones entre hexadecimal y binario, cada dígito hexadecimal
corresponde a cuatro bits.
3. El método de división repetida se utiliza para convertir números decimales en
binario o hexadecimal.
4. Mediante el uso de un número binario de N bits podemos representar valores
decimales desde el 0 hasta 2N – 1.
5. Para formar el código BCD de un número decimal se convierte cada dígito del
número decimal en su equivalente binario de cuatro bits.
6. El código Gray define una secuencia de patrones de bits, en los que sólo un bit
cambia entre patrones sucesivos en la secuencia.
7. Un byte es una cadena de ocho bits. Un nibble es de cuatro bits. El tamaño de
una palabra depende del sistema.
8. Un código alfanumérico utiliza grupos de bits para representar a todos los caracteres y funciones que forman parte del teclado ordinario de una computadora.
El código ASCII es el código alfanumérico más utilizado.
9. En el método de paridad para la detección de errores se adjunta un bit de paridad especial a cada grupo de bits que se transmite.
47
PROBLEMAS
TÉRMINOS IMPORTANTES
bit de paridad
byte
códigos alfanuméricos
código binario directo
código decimal codificado
en binario (BCD)
Código estándar
estadounidense para
el intercambio de
información (ASCII)
código Gray
método de paridad
nibble
palabra
sistema numérico
hexadecimal
tamaño de palabra
PROBLEMAS
SECCIONES 2-1 Y 2-2
2-1. Convierta los siguientes números binarios en decimales.
(d) 01101011
(g)* 1111010111
(a)* 10110
(b) 10010101
(e)* 11111111
(h) 11011111
(c)* 100100001001
(f) 01101111
2-2. Convierta los siguientes valores decimales en binarios.
(a)* 37
(d) 1000
(g)* 205
(b) 13
(e)* 77
(h) 2133
(c)* 189
(f) 390
(i)* 511
2-3. ¿Cuál es el valor decimal más grande que puede representarse mediante
(a)* un número binario de ocho bits? (b) un número de 16 bits?
SECCIÓN 2-4
2-4. Convierta cada número hexadecimal en su equivalente decimal.
(a)* 743
(d) 2000
(g)* 7FF
(b) 36
(e)* 165
(h) 1204
(c)* 37FD
(f) ABCD
2-5. Convierta cada uno de los siguientes números decimales en hexadecimales.
(a)* 59
(d) 1024
(g)* 65,536
(b) 372
(e)* 771
(h) 255
(c)* 919
(f) 2313
2-6. Convierta cada uno de los valores hexadecimales del problema 2-4 en números binarios.
2-7. Convierta los números binarios del problema 2-1 en hexadecimales.
2-8. Liste los números hexadecimales en secuencia, desde 19516 hasta 28016.
2-9. Cuando se va a convertir un número decimal grande en binario, algunas
veces es más fácil convertirlo primero en hexadecimal y después en binario.
Pruebe este procedimiento para el número 213310 y compárelo con el procedimiento usado en el problema 2-2(h).
2-10. ¿Cuántos dígitos hexadecimales se requieren para representar los números
decimales del 0 hasta el 20,000?
2-11. Convierta los siguientes valores hexadecimales en decimales.
(a)* 92
(d) ABCD
(g)* 2C0
(b) 1A6
(e)* 000F
(h) 7FF
(c)* 37FD
(f) 55
* Encontrará las respuestas a los problemas marcados con un asterisco al nal del libro.
48
CAPÍTULO 2/SISTEMAS Y CÓDIGOS NUMÉRICOS
2-12. Convierta los siguientes valores decimales en hexadecimales.
(a)* 75
(d) 24
(g)* 25,619
(b) 314
(e)* 7245
(h) 4095
(c)* 2048
(f) 498
2-13. Tome cada número binario de cuatro bits en el orden en el que están escritos y escriba el dígito hexadecimal equivalente sin realizar ningún cálculo
manual o mediante la calculadora.
(a) 1001
(e) 1111
(i) 1011
(m) 0001
(b) 1101
(f) 0010
(j) 1100
(n) 0101
(c) 1000
(g) 1010
(k) 0011
(o) 0111
(d) 0000
(h) 1001
(l) 0100
(p) 0110
2-14. Tome cada dígito hexadecimal y escriba su valor binario de cuatro bits sin
realizar ningún cálculo manual ni mediante la calculadora.
(a) 6
(e) 4
(i) 9
(m) 0
(b) 7
(f) 3
(j) A
(n) 8
(c) 5
(g) C
(k) 2
(o) D
(d) 1
(h) B
(l) F
(p) 9
2-15.* Convierta los números binarios del problema 2-1 en hexadecimales.
2-16.* Convierta los valores hexadecimales del problema 2-11 en binarios.
2-17.* Liste los números hexadecimales en secuencia, desde 280 hasta 2A0.
2-18. ¿Cuántos dígitos hexadecimales se requieren para representar números decimales hasta 1 millón?
SECCIÓN 2-5
2-19. Codifique los siguientes números decimales en BCD.
(a)* 47
(d) 6727
(g)* 89,627
(b) 962
(e)* 13
(h) 1024
(c)* 187
(f) 529
2-20. ¿Cuántos bits se requieren para representar los números decimales en el
intervalo de 0 a 999 si se utiliza: (a) código binario directo, y (b) código
BCD?
2-21. Los siguientes números están en BCD. Conviértalos en decimales.
(a)* 1001011101010010
(d) 0111011101110101
(b) 000110000100
(e)* 010010010010
(c)* 011010010101
(f) 010101010101
SECCIÓN 2-7
2-22.* (a) ¿Cuántos bits hay en ocho bytes?
(b) ¿Cuál es el número hexadecimal más grande que puede representarse
en cuatro bytes?
(c) ¿Cuál es el valor decimal codificado en BCD más grande que puede
representarse en tres bytes?
2-23. (a) Consulte la tabla 2-4. ¿Cuál es el nibble más significativo del código
ASCII para la letra X?
(b) ¿Cuántos nibbles pueden almacenarse en una palabra de 16 bits?
(c) ¿Cuántos bytes se requieren para formar una palabra de 24 bits?
49
PROBLEMAS
SECCIONES 2-8 Y 2-9
2-24. Represente la instrucción “X 3 Y” en código ASCII. Adjunte un bit de
paridad impar.
2-25.* Adjunte un bit de paridad par a cada uno de los códigos ASCII del problema
2-24, y muestre los resultados en hexadecimal.
2-26. Los siguientes bytes (mostrados en hexadecimal) representan el nombre de
una persona según como se almacenaría en la memoria de una computadora. Cada byte es código ASCII con relleno. Determine el nombre de cada
persona.
(a)* 42 45 4E 20 53 4D 49 54 48
(b) 4A 6F 65 20 47 72 65 65 6E
2-27. Convierta los siguientes números decimales en código BCD y después adjunte un bit de paridad impar.
(a)* 74
(c)* 8884
(e)* 165
(b) 38
(d) 275
(f) 9201
2-28.* En cierto sistema digital, los números decimales del 000 al 999 se representan en código BCD. También se incluye un bit de paridad impar al final
de cada grupo. Examine cada uno de los códigos que se muestran a continuación y suponga que cada uno acaba de transferirse de un lugar a otro.
Algunos de los grupos contienen errores. Suponga que no se han producido
más de dos errores en cada grupo. Determine cuáles de los siguientes casos
tienen un solo error y cuáles tienen en definitiva un error doble. (Sugerencia:
recuerde que éste es código BCD).
(a) 1001010110000
bit de paridad
(b) 0100011101100
(c) 0111110000011
(d) 1000011000101
2-29. Suponga que el receptor recibió los siguientes datos del transmisor del ejemplo 2-16:
01001000
11000101
11001100
11001000
11001100
¿Qué errores puede determinar el receptor en los datos que recibió?
PREGUNTAS DE PRÁCTICA
2-30.* Realice cada una de las siguientes conversiones. Si desea puede probar
varios métodos en algunas de ellas para ver con cuál se adapta mejor. Por
ejemplo, una conversión de binario a decimal puede realizarse en forma
directa, o también mediante una conversión de binario a hexadecimal seguida de una conversión de hexadecimal a decimal.
(a) 141710 ______2
(b) 25510 ______2
(c) 110100012 ______10
(d) 11101010001001112 ______10
50
CAPÍTULO 2/SISTEMAS Y CÓDIGOS NUMÉRICOS
(e) 249710 ______16
(f) 51110 ______ (BCD)
(g) 23516 ______10
(h) 431610 ______16
(i) 7A916 ______10
(j) 3E1C16 ______10
(k) 160010 ______16
(l) 38,18710 ______16
(m) 86510 ______ (BCD)
(n) 100101000111 (BCD) ______10
(o) 46516 ______2
(p) B3416 ______2
(q) 01110100 (BCD) ______2
(r) 1110102 ______ (BCD)
2-31.* Represente el valor decimal 37 en cada una de las siguientes formas.
(a) Binario directo.
(b) BCD.
(c) Hexadecimal.
(d) ASCII (es decir, trate cada dígito como un carácter).
2-32.* Llene los espacios en blanco con la palabra o palabras correctas.
(a) Para convertir de decimal a _________ se requiere de la división repetida entre 16.
(b) Para convertir de decimal a binario se requiere de la división repetida
entre __________.
(c) En el código BCD, cada ______ se convierte en su equivalente binario de
cuatro bits.
(d) El código ______ tiene la característica de que sólo cambia un bit al
avanzar de un paso al siguiente.
(e) Un transmisor adjunta un _______ a un código para permitir que el
receptor detecte _________.
(f) El código _______ es código alfanumérico más común que se utiliza en
los sistemas computacionales.
(g) ________ se utiliza a menudo como una manera conveniente de representar números binarios extensos.
(h) Una cadena de ocho bits se llama _________.
2-33. Escriba el número binario que se produce cuando cada uno de los siguientes
números se incrementa en uno.
(a)* 0111
(b) 010011
(c)
1011
2-34. Decremente cada uno de los siguientes números binarios.
(a)* 1110
(b) 101000
(c)
1110
2-35. Escriba el número que se produce cuando se incrementa cada una de las
siguientes cifras.
(a)* 777916
(c)* 0FFF16
(e)* 9FF16
(b) 999916
(d) 200016
(f)
100A16
2-36.* Repita el problema 2-35 para la operación de decremento.
RESPUESTAS A LAS PREGUNTAS DE REPASO DE LAS SECCIONES
51
EJERCICIOS AVANZADOS
2-37.* En una microcomputadora, las direcciones de las localidades de memoria son
números binarios que identifican cada uno de los circuitos de memoria
en donde se almacena un byte. El número de bits que forman cada dirección
depende de cuántas localidades de memoria haya. Como el número de bits
puede ser muy extenso, a menudo las direcciones se especifican en hexadecimal, en lugar de binario.
(a) Si una microcomputadora utiliza una dirección de 20 bits, ¿cuántas localidades de memoria distintas hay?
(b) ¿Cuántos dígitos hexadecimales se necesitan para representar la dirección de una localidad de memoria?
(c) ¿Cuál es la dirección hexadecimal de la localidad de memoria número
256? (Nota: la primera dirección siempre es 0.)
2-38. En un CD de audio, la señal de voltaje de audio, por lo general, se muestrea
aproximadamente 44,000 veces por segundo, y el valor de cada muestra se
graba en la superficie del CD como número binario. En otras palabras, cada
número binario que se graba representa un punto de voltaje individual en
la forma de onda de la señal de audio.
(a) Si los números binarios tienen una longitud de seis bits, ¿cuántos valores de voltaje distintos pueden representarse mediante un solo número
binario? Repita para ocho y diez bits.
(b) Si se utilizan números de diez bits, ¿cuántos bits se grabarán en el CD en
un segundo?
(c) Si un CD puede almacenar, por lo general, 5 mil millones de bits, cuántos
segundos de audio pueden grabarse si se utilizan diez bits?
2-39.* Una cámara digital en blanco y negro coloca una rejilla fina sobre una imagen para después medir y registrar un número binario que representa el
nivel de gris que ve en cada celda de la rejilla. Por ejemplo, si se utilizan
números de cuatro bits el valor de negro se establece en 0000 y el valor de
blanco en 1111, y cualquier nivel de gris puede tener algún valor entre 0000
y 1111. Si se utilizan números de seis bits, el negro es 000000 y el blanco es
111111, y todos los grises se encuentran entre estos dos valores.
Suponga que queremos diferenciar entre 254 niveles de gris dentro de cada
una de las celdas de la rejilla. ¿Cuántos bits necesitaríamos usar para representar estos niveles de gris?
2-40. Una cámara digital de 3 megapixeles almacena un número de ocho bits para
el brillo de cada uno de los colores primarios (rojo, verde, azul) que se encuentran en cada elemento de imagen (pixel). Si se almacenan todos los bits, sin
compresión de datos, ¿cuántas imágenes pueden almacenarse en una tarjeta
de memoria de 128 Megabytes? (Nota: en los sistemas digitales, Mega significa 220).
2-41. Construya una tabla que muestre las representaciones en binario, hexadecimal y BCD de todos los números decimales del 0 al 15. Compare sus resultados con la tabla 2-3.
RESPUESTAS A LAS PREGUNTAS DE REPASO DE LAS SECCIONES
SECCIÓN 2-1
1. 2267
2. 32768
SECCIÓN 2-2
1. 1010011
2. 1011011001
3. 20 bits
52
CAPÍTULO 2/SISTEMAS Y CÓDIGOS NUMÉRICOS
SECCIÓN 2-3
1. 9422
2. C2D; 110000101101
5. 11010100100111
6. 0 a 65,535
3. 97B5
4. E9E, E9F, EA0, EA1
SECCIÓN 2-4
1. 1011001092; 000101111000 (BCD)
2. 32
sión. Desventaja: el código BCD requiere más bits.
3. Ventaja: facilidad de conver-
SECCIÓN 2-5
1. 0111 2. 0110
SECCIÓN 2-7
1. Uno
2. 9999
3. Uno
4. Uno
SECCIÓN 2-8
1. 43, 4F, 53, 54, 20, 3D, 20, 24, 37, 32
2. STOP
SECCIÓN 2-9
1. A4
2. 001101001
3. Dos errores en los datos no cambiarían la característica impar o par del número de 1s en los datos.
C A P Í T U L O
3
DESCRIPCIÓN DE LOS
CIRCUITOS LÓGICOS
■
CONTENIDO
3-1
Constantes y variables
booleanas
Tablas de verdad
Operación OR con
compuertas OR
Operación AND con
compuertas AND
Operación NOT
Descripción de circuitos
lógicos en forma algebraica
Evaluación de las salidas
de circuitos lógicos
Implementación de circuitos
a partir de expresiones
booleanas
Compuertas NOR y NAND
Teoremas booleanos
Teoremas de DeMorgan
3-2
3-3
3-4
3-5
3-6
3-7
3-8
3-9
3-10
3-11
3-12
3-13
3-14
3-15
3-16
3-17
3-18
3-19
3-20
Universalidad de las
compuertas NAND y NOR
Representaciones alternas
de compuertas lógicas
Cuál representación de
compuerta se debe usar
Símbolos lógicos del estándar
IEEE/ANSI
Resumen de los métodos
para describir circuitos
lógicos
Comparación entre lenguajes
de descripción y lenguajes de
programación
Implementación de circuitos
lógicos con PLDs
Formato y sintaxis del HDL
Señales intermedias
■
OBJETIVOS
Al terminar este capítulo, usted podrá:
■ Realizar las tres operaciones lógicas básicas.
■ Describir la operación y construir las tablas de verdad para las compuertas
AND, NAND, OR y NOR, y el circuito NOT (INVERSOR).
■ Dibujar diagramas de tiempos para las diversas compuertas de los circuitos
lógicos.
■ Escribir la expresión booleana para las compuertas lógicas y combinaciones
de compuertas lógicas.
■ Implementar circuitos lógicos mediante el uso de compuertas AND, OR y NOT.
■ Apreciar el potencial del álgebra booleana para simplificar circuitos lógicos
complejos.
■ Usar los teoremas de DeMorgan para simplificar las expresiones lógicas.
■ Usar cualquiera de las compuertas universales (NAND y NOR) para
implementar un circuito representado por una expresión booleana.
■ Explicar las ventajas de construir un diagrama de circuitos lógicos mediante
el uso de los símbolos alternos de las compuertas, en comparación con los
símbolos estándar de las compuertas lógicas.
■ Describir el concepto de las señales lógicas, activa en BAJO y activa en ALTO.
■ Dibujar e interpretar los símbolos de las compuertas lógicas del estándar
IEEE/ANSI.
■ Usar varios métodos para describir la operación de los circuitos lógicos.
■ Interpretar circuitos simples definidos mediante un lenguaje de descripción
de hardware (HDL).
■ Explicar la diferencia entre un HDL y un lenguaje de programación de
computadoras.
■ Crear un archivo de HDL para una compuerta lógica simple.
■ Crear un archivo de HDL para circuitos combinacionales con variables
intermedias.
■
INTRODUCCIÓN
En los capítulos 1 y 2 presentamos los conceptos de niveles lógicos y circuitos
lógicos. En circuitos lógicos sólo existen dos posibles condiciones para cualquier
entrada o salida: verdadero o falso. El sistema numérico binario utiliza sólo
dos dígitos: 1 y 0, por lo que es perfecto para representar relaciones lógicas.
Los circuitos lógicos digitales utilizan intervalos de voltaje predefinidos para
representar estos estados binarios. Si utilizamos estos conceptos podemos crear
circuitos compuestos de algo más que arena de playa procesada y alambre, con
lo cual se pueden realizar decisiones lógicas consistentes e inteligentes. Es muy
importante que tengamos un método para describir las decisiones lógicas que
realizan estos circuitos. En otras palabras, debemos describir la forma en que
operan. En este capítulo estudiaremos muchas formas para describir su operación.
55
56
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
Cada uno de estos métodos de descripción es importante, ya que todos los métodos
aparecen muchas veces en la literatura técnica y la documentación de sistemas, y
se utilizan en conjunto con las herramientas modernas de diseño y desarrollo.
La vida está llena de ejemplos de casos que se encuentran en un estado o en otro.
Por ejemplo, una criatura puede estar viva o muerta, una luz puede estar encendida
o apagada, una puerta puede estar cerrada o abierta, y puede estar lloviendo o no. En
1854, un matemático llamado George boole escribió el libro Una investigación sobre
las leyes del pensamiento, en donde describía la manera en que realizamos decisiones
lógicas con base en circunstancias verdaderas o falsas. Los métodos que describió
se conocen actualmente como lógica booleana, y el sistema de usar símbolos y
operadores para describir estas decisiones se llama álgebra booleana. De la misma
forma que utilizamos símbolos tales como x y y para representar valores numéricos
desconocidos en el álgebra tradicional, el álgebra booleana utiliza símbolos para
representar una expresión lógica que tiene uno de dos valores posibles: verdadero o
falso. La expresión lógica podría ser puerta está cerrada, botón está oprimido, o nivel
de combustible está bajo. Es muy tedioso escribir estas expresiones, por lo que se
acostumbra sustituirlas por símbolos tales como A, B y C.
El propósito principal de estas expresiones lógicas es describir la relación
entre la salida de un circuito lógico (la decisión) y sus entradas (las condiciones).
En este capítulo estudiaremos los circuitos lógicos más básicos (compuertas
lógicas), que son los elementos a partir de los cuales se construyen todos los demás
circuitos lógicos y sistemas digitales. Veremos cómo la operación de las distintas
compuertas lógicas y los circuitos más complejos formados por combinaciones
de compuertas lógicas pueden describirse y analizarse mediante el uso del álgebra
booleana. También veremos un breve adelanto sobre cómo puede usarse dicha
álgebra para simplificar una expresión booleana de un circuito determinado, de
manera que éste pueda reconstruirse con menos compuertas lógicas y/o menos
conexiones. En el capítulo 4 veremos mucho más acerca de la simplificación de
circuitos.
El álgebra booleana no sólo se utiliza como herramienta para analizar y
simplificar sistemas lógicos. También puede usarse como herramienta para crear
un circuito lógico con una relación de entrada/salida deseada. Por lo general,
este proceso se conoce como síntesis de circuitos lógicos, en vez de análisis. Se
han utilizado otras técnicas en el análisis, síntesis y documentación de sistemas
y circuitos lógicos, como tablas de verdad, símbolos esquemáticos, diagramas de
tiempos y (por último, pero no menos importante) el lenguaje. Para categorizar
estos métodos, podríamos decir que el álgebra booleana es una herramienta
matemática, las tablas de verdad son herramientas para organización de datos, los
símbolos esquemáticos son herramientas de representación gráfica, los diagramas
de tiempos son herramientas para graficar la respuesta y el lenguaje es la
herramienta universal de descripción.
Actualmente puede usarse cualquiera de estas herramientas para proporcionar
la entrada a una computadora. Éstas pueden utilizarse para simplificar y traducir
entre estas diversas formas de descripción y, en última instancia, proveer
una salida en la forma necesaria para implementar un sistema digital. Para
aprovechar los poderosos beneficios del software computacional, primero debemos
comprender por completo las formas aceptables para describir estos sistemas en
términos que la computadora pueda entender. En este capítulo veremos las bases
para un estudio más detallado de estas herramientas vitales para la síntesis y el
análisis de los sistemas digitales.
Es evidente que las herramientas que describiremos aquí son invaluables para
describir, analizar, diseñar e implementar circuitos digitales. El estudiante que
tenga la expectativa de trabajar en el campo digital deberá esforzarse mucho por
comprender y familiarizarse con el álgebra booleana (aunque no lo crea, es mucho
más sencilla que el álgebra convencional) y con todas las demás herramientas.
Resuelva todos los ejemplos, ejercicios y problemas, incluso los que no le asigne
su instructor. Cuando acabe con todos ellos, haga los suyos. Bien valdrá la pena
el tiempo que invierta en ello, ya que usted verá cómo mejoran sus habilidades y
aumenta su confianza.
57
SECCIÓN 3-2/TABLAS DE VERDAD
3-1
CONSTANTES Y VARIABLES BOOLEANAS
El álgebra booleana difiere en gran medida del álgebra ordinaria, ya que a las constantes y variables booleanas sólo se les permite tener dos valores posibles: 0 y 1.
Una variable booleana es una cantidad que puede ser (en distintas ocasiones) igual
a 0 o a 1. Las variables booleanas se utilizan a menudo para representar el nivel de
voltaje presente en un alambre o en las terminales de entrada/salida de un circuito.
Por ejemplo, en cierto sistema digital el valor booleano 0 podría asignarse a cualquier voltaje en el intervalo de 0 a 0.8 V, mientras que el valor booleano 1 podría
asignarse a cualquier voltaje entre 2 y 5 V.*
Por lo tanto, el 0 y el 1 booleanos no representan números reales, sino el estado
de una variable de voltaje, o lo que se conoce como su nivel lógico. Se dice que un
voltaje en un circuito digital está en el nivel 0 lógico o en el nivel 1 lógico, dependiendo de su valor numérico actual. En la lógica digital se utilizan otros términos
más como sinónimos de 0 y 1. La tabla 3-1 muestra algunos de los más comunes. La
mayor parte del tiempo utilizaremos las designaciones 0/1 y BAJO/ALTO.
TABLA 3-1
0 lógico
1 lógico
Falso
Verdadero
Apagado
Encendido
Bajo
Alto
No
Sí
Interruptor abierto
Interruptor cerrado
Como dijimos en la introducción, el álgebra booleana es el medio para expresar
la relación entre las entradas y las salidas de un circuito lógico. Las entradas se consideran variables lógicas cuyos niveles lógicos en cualquier momento determinan
los niveles de salida. En todo el trabajo que veremos utilizaremos símbolos de letras
para representar variables lógicas. Por ejemplo, la letra A podría representar una
cierta entrada o salida de un circuito digital, y en un determinado momento debemos tener A 0 o A 1; alguno de los dos estados.
Como sólo dos valores son posibles, en realidad es muy sencillo trabajar con el
álgebra booleana en comparación con el álgebra ordinaria. En el álgebra booleana
no hay fracciones, decimales, números negativos, raíces cuadradas, raíces cúbicas,
logaritmos, números imaginarios, etc. De hecho, en el álgebra booleana sólo hay tres
operaciones básicas: OR, AND y NOT.
A estas operaciones básicas se les conoce como operaciones lógicas. Los circuitos
digitales, llamados compuertas lógicas, pueden construirse a partir de diodos, transistores y resistencias conectados de manera que la salida del circuito sea el resultado
de una operación lógica básica (OR, AND, NOT) que se lleva a cabo con las entradas.
Utilizaremos primero el álgebra booleana para describir y analizar las compuertas
lógicas básicas, y después para analizar y diseñar combinaciones de compuertas lógicas conectadas para formar circuitos lógicos.
3-2 TABLAS DE VERDAD
Una tabla de verdad es una herramienta para describir la forma en que la salida
de un circuito lógico depende de los niveles lógicos presentes en las entradas del
circuito. La figura 3-1(a) muestra una tabla de verdad para un tipo de circuito lógico
de dos entradas. La tabla lista todas las posibles combinaciones de niveles lógicos
* Los voltajes entre 0.8 y 2 V están indenidos (no son 0 ni 1) y bajo circunstancias normales no deben
presentarse.
58
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
FIGURA 3-1 Ejemplo
de tablas de verdad
para circuitos de
(a) dos entradas,
(b) tres entradas y
(c) cuatro entradas.
Salida
A
0
0
0
0
1
1
1
1
Entradas
A
0
0
1
1
B
0
1
0
1
x
1
0
1
0
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
(b)
A
B
?
(a)
x
x
0
1
1
0
0
0
0
1
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
x
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
(c)
presentes en las entradas A y B, junto con el correspondiente nivel en la salida x.
La primera entrada en la tabla muestra que cuando A y B se encuentran en el nivel 0,
la salida x se encuentra en el nivel 1 o, de manera equivalente, en el estado 1. La
segunda entrada muestra que cuando la entrada B se cambia al estado 1, de manera
que A 0 y B 1, la salida x se vuelve un 0. De manera similar, la tabla muestra qué
ocurre con el estado de salida para cualquier conjunto de condiciones de entrada.
Las figuras 3-1(b) y (c) muestran ejemplos de tablas de verdad para circuitos
lógicos de tres y cuatro entradas. De nuevo, cada tabla enlista todas las posibles
combinaciones de niveles lógicos de las entradas a la izquierda, con el nivel lógico
resultante para la salida x a la derecha. Desde luego que los valores reales para x
dependerán del tipo de circuito lógico.
Observe que hay 4 combinaciones para la tabla de verdad de dos entradas,
8 combinaciones para una tabla de verdad de tres entradas y 16 combinaciones para
la tabla de verdad de cuatro entradas. El número de combinaciones de entrada será
igual a 2N para una tabla de verdad con N entradas. Observe también que la lista
de todas las posibles combinaciones de entrada va de acuerdo con la secuencia de
conteo binario, por lo que es fácil anotar todas las combinaciones sin que falte una.
PREGUNTAS DE REPASO
1. ¿Cuál es el estado de salida del circuito de cuatro entradas representado en la
figura 3-1(c) cuando todas las entradas excepto B son 1?
2. Repita la pregunta 1 para las siguientes condiciones de entrada: A 1, B 0,
C 1, D 0.
3. ¿Cuántas combinaciones se necesitan en la tabla para un circuito de cinco
entradas?
3-3 OPERACIÓN OR CON COMPUERTAS OR
La operación OR (O) es la primera de las tres operaciones booleanas básicas que
estudiaremos. El horno de cocina es un buen ejemplo. La luz dentro del horno debe
encenderse si el interruptor de la luz del horno está encendido “O” si la puerta está
abierta. La letra A podría usarse para representar la condición interruptor de la luz
del horno encendido y B podría representar la condición puerta abierta. La letra x
podría representar la condición luz encendida. La tabla de verdad de la figura 3-2(a)
muestra lo que ocurre cuando se combinan dos entradas lógicas (A y B) mediante
el uso de la operación OR para producir la salida x. La tabla muestras que x es un 1
lógico para cada una de las combinaciones de niveles de entrada en donde una o más
entradas sea 1. El único caso en el que x es un 0 es cuando ambas entradas son 0.
SECCIÓN 3-3/OPERACIÓN OR CON COMPUERTAS OR
FIGURA 3-2 (a) Tabla
de verdad que define
la operación OR;
(b) símbolo del circuito
para una compuerta OR
de dos entradas.
59
OR
A
0
0
1
1
B
0
1
0
1
x=A+B
0
1
1
1
x=A+B
A
B
Compuerta OR
(a)
(b)
La expresión booleana para la operación OR es
xAB
En esta expresión, el signo no indica la suma ordinaria; indica la operación OR.
Esta operación es similar a la suma ordinaria, excepto para el caso en el que tanto A
como B son 1; la operación OR produce 1 1 1, no 1 1 2. En el álgebra booleana 1 es el valor más alto, por lo que nunca tendremos un resultado mayor que 1. Lo
mismo aplica cuando se combinan tres entradas mediante el uso de la operación OR.
Aquí tenemos que x A B C. Si consideramos el caso en el que las tres entradas
son 1, tenemos
x1111
La expresión x A B se lee como “x es igual a A OR B”, lo cual significa que x
será 1 cuando A o B o ambas sean 1. De igual forma, la expresión x A B C se
lee como “x es igual a A OR B OR C”, lo cual significa que x será 1 cuando A o B o
C o cualquier combinación de ellas sean 1. Para describir este circuito en el idioma
español podríamos decir que x es verdadera (1) CUANDO A es verdadera (1) OR B es
verdadera (1) OR C es verdadera (1).
Compuerta OR
En los circuitos digitales, una compuerta OR* es un circuito que tiene dos o más
entradas y cuya salida es igual a la combinación OR de las entradas. La figura 3-2(b)
muestra el símbolo lógico para una compuerta OR de dos entradas. Las entradas A y
B son niveles lógicos de voltaje y la salida x es un nivel lógico de voltaje cuyo valor
es el resultado de la operación OR sobre A y B; es decir, x A B. En otras palabras,
la compuerta OR opera de manera que su salida esté en ALTO, 1 lógico, si cualquiera
de las entradas A o B o ambas se encuentran en el nivel 1 lógico. La salida de la compuerta OR estará en BAJO, 0 lógico, sólo si todas sus entradas están en 0 lógico.
Esta misma idea puede extenderse a más de dos entradas. La figura 3-3 muestra
una compuerta OR de tres entradas y su tabla de verdad. Si examinamos esta tabla
de verdad podremos ver de nuevo que la salida será 1 para cada caso en el que una o
más entradas sean 1. Este principio general es el mismo para las compuertas OR con
cualquier número de entradas.
FIGURA 3-3 Símbolo
y tabla de verdad para
una compuerta OR de
tres entradas.
A
B
C
x=A+B+C
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
x=A+B+C
0
1
1
1
1
1
1
1
* El término compuerta proviene de la operación de inhibición/habilitación que se describe en el capítulo 4.
60
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
Si utilizamos el lenguaje del álgebra booleana, la salida x podemos expresarla
como x A B C, en donde hay que enfatizar otra vez que el símbolo representa la operación OR. Así, la salida de cualquier compuerta OR puede expresarse
como la combinación OR de sus diversas entradas. Pondremos esto en práctica a la
hora de analizar los circuitos lógicos.
Resumen de la operación OR
Los puntos importantes que debemos recordar en relación con la operación OR y las
compuertas OR son:
1. La operación OR produce un resultado (salida) de 1 siempre que cualquiera de
sus entradas sea 1. En cualquier otro caso, la salida será 0.
2. Una compuerta OR es un circuito lógico que realiza una operación OR sobre las
entradas del circuito.
3. La expresión x A B se lee como “x es igual a A OR B”.
EJEMPLO 3-1
FIGURA 3-4 Ejemplo
del uso de una
compuerta OR en un
sistema de alarma.
En muchos sistemas de control industriales se requiere activar una función de salida
cada vez que se activa una de varias entradas. Por ejemplo, en un proceso químico tal
vez sea conveniente que se active una alarma cada vez que la temperatura del proceso exceda un valor máximo O cada vez que la presión pase cierto límite. La figura 3-4
es un diagrama de bloques del caso descrito. El circuito transductor de temperatura
produce un voltaje de salida proporcional a la temperatura del proceso. Este voltaje
VT se compara con un voltaje de referencia de temperatura VTR en un circuito comparador de voltajes. Por lo general, la salida del comparador TH es de un voltaje bajo
(0 lógico) pero cambia a un voltaje alto (1 lógico) cuando VT excede a VTR, lo cual
indica que la temperatura del proceso es demasiado alta. Para la medición de presión se utiliza un arreglo similar, de manera que su salida asociada del comparador
PH cambie de BAJO a ALTO cuando la presión es demasiado alta.
Transductor
de
temperatura
VT
Comparador
TH
Alarma
VTR
Transductor
de presión
VP
Comparador
PH
Proceso químico
VPR
Dado que se quiere que la alarma se active cuando la temperatura o la presión estén
demasiado altas, es indudable que las dos salidas del comparador pueden alimentarse a una compuerta OR. Por ende, la salida de la compuerta OR cambia a ALTO
(1) para cualquiera de las dos condiciones de alarma activándola. Es obvio que esta
misma idea puede extenderse a situaciones con más de dos variables del proceso.
61
SECCIÓN 3-3/OPERACIÓN OR CON COMPUERTAS OR
EJEMPLO 3-2
FIGURA 3-5
3-2.
Ejemplo
Determine la salida de la compuerta OR de la figura 3-5. Las entradas A y B de
la compuerta OR están variando de acuerdo con los diagramas de tiempos que se
muestran. Por ejemplo, A empieza en nivel BAJO en el tiempo t0, cambia a ALTO en
t1, regresa a BAJO en t3 y así sucesivamente.
A
1
A
Salida= A + B
0
B
1
B
0
1
Salida
0
t0
t1
t2 t3
t4 t5
t6 t7
Tiempo
Solución
La salida de la compuerta OR estará en ALTO siempre que cualquiera de las entradas esté en ALTO. Entre los tiempos t0 y t1 ambas entradas están en BAJO, por lo
cual SALIDA BAJO. En t1 la entrada A cambia a ALTO mientras que la entrada B
permanece en BAJO. Esto hace que SALIDA cambie a ALTO en t1 y permanezca así
hasta t4, ya que durante este intervalo una o ambas entradas están en ALTO. En t4 la
entrada B cambia de 1 a 0, por lo que ambas entradas están en BAJO haciendo que
SALIDA cambie nuevamente a BAJO. En t5 A cambia a ALTO, con lo cual SALIDA
regresa a BAJO y permanece así durante el resto del tiempo mostrado.
EJEMPLO 3-3A
FIGURA 3-6 Ejemplos
3-3A y B.
Para la situación que se describe en la figura 3-6, determine la forma de onda en la
salida de la compuerta OR.
1
A
0
B
A
1
0
B
1
C
C
A+B+C
0
1
SAL
0
SAL
t1
Tiempo
Solución
Las tres entradas A, B y C de la compuerta OR están variando, según se muestra en
sus diagramas de tiempos. La salida de la compuerta OR se determina concluyendo
62
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
que estará en ALTO cada vez que al menos una de las tres entradas esté en un nivel
ALTO. Si utilizamos este razonamiento, la forma de onda de la salida de la compuerta OR es como se muestra en la figura. Se debe poner especial atención a lo que
ocurre en el tiempo t1. El diagrama muestra que, en ese instante, la entrada A está
cambiando de ALTO a BAJO mientras que la entrada B está cambiando de BAJO a
ALTO. Como estas entradas están realizando sus transiciones casi al mismo tiempo,
y como estas transiciones tardan cierta cantidad de tiempo, hay un pequeño intervalo durante el cual estas entradas de la compuerta OR se encuentran en la región
indefinida entre 0 y 1. Cuando esto ocurre, la salida de la compuerta OR también
adquiere un valor en este intervalo, como se puede ver por la deformación o pico
en la forma de onda de salida en t1. La ocurrencia de esta deformación y su tamaño
(amplitud y anchura) dependen de la velocidad con la que ocurren las transiciones
de entrada.
EJEMPLO 3-3B
¿Qué le pasaría a la deformación en la salida de la figura 3-6 si la entrada C se asentara en el estado ALTO mientras que A y B estuvieran cambiando en el tiempo t1?
Solución
Con la entrada C en nivel ALTO en t1 la salida de la compuerta OR permanecerá en
ese estado sin importar lo que ocurra en las otras entradas, ya que cualquier entrada
en ALTO mantendrá la salida de la compuerta OR en ALTO. Por lo tanto, la deformación no aparecerá en la salida.
PREGUNTAS DE REPASO
1. ¿Cuál es el único conjunto de condiciones de entrada que producirá una salida
en BAJO para cualquier compuerta OR?
2. Escriba la expresión booleana para una compuerta OR de seis entradas.
3. Si la entrada A en la figura 3-6 se mantiene de manera permanente en el nivel 1,
¿cuál será la forma de onda de salida?
3-4
OPERACIÓN AND CON COMPUERTAS AND
La operación AND es la segunda operación booleana básica. Como ejemplo del uso
de la lógica AND, considere una secadora de ropa ordinaria: seca ropa (calienta y
gira) sólo si el temporizador está por encima de cero “Y ” la puerta está cerrada. Vamos a
asignar A para representar cuando el temporizador está activado, B para representar
cuando la puerta está cerrada y x puede representar cuando el calentador y el motor
están encendidos. La tabla de verdad de la figura 3-7(a) muestra lo que ocurre cuando
dos entradas lógicas A y B se combinan mediante el uso de la operación AND para
producir la salida x. La tabla muestra que x es un 1 lógico sólo cuando A y B están
en el nivel 1 lógico. Para cualquier caso en el que una de las entradas sea 0, la salida
será 0.
La expresión booleana para la operación AND es
xAB
En esta expresión, el signo indica la operación AND booleana y no la operación
de multiplicación. No obstante, la operación AND sobre variables booleanas opera de
la misma forma que la multiplicación ordinaria según nos muestra el análisis de la
tabla de verdad, por lo que podemos considerarlas como iguales. Esta característica
puede ser útil al evaluar expresiones lógicas que contengan operaciones AND.
SECCIÓN 3-4/OPERACIÓN AND CON COMPUERTAS AND
FIGURA 3-7 (a) Tabla
de verdad para la
operación AND;
(b) símbolo de la
compuerta AND.
63
AND
A
0
0
1
1
B
0
1
0
1
x=A•B
0
0
0
1
A
x = AB
B
Compuerta AND
(a)
(b)
La expresión x A B se lee como “x es igual a A AND B”, lo cual significa que
x será 1 sólo cuando A y B sean 1. Por lo general, se omite el signo de manera que la
expresión se vuelve x AB. Para el caso en el que se aplica la operación AND con tres
entradas, tenemos que x A B C ABC. Esto se lee como “x es igual a A AND B
AND C”, lo cual significa que x será 1 sólo cuando A y B y C sean todas 1.
Compuerta AND
La figura 3-7(b) muestra el símbolo lógico para una compuerta AND de dos entradas.
La salida de la compuerta AND es igual al producto AND de las entradas lógicas;
es decir, x AB. En otras palabras, la compuerta AND es un circuito que opera de
manera que su salida esté en ALTO sólo cuando todas sus entradas se encuentren en
ALTO. Para todos los demás casos, la salida de la compuerta AND estará en BAJO.
Esta misma operación es característica de compuertas AND con más de dos
entradas. Por ejemplo, la figura 3-8 muestra una compuerta AND de tres entradas y
su tabla de verdad correspondiente. Una vez más, observe que la salida de la compuerta es 1 sólo para el caso en el que A B C 1. La expresión para la salida es
x ABC. Para una compuerta AND de cuatro entradas, la salida es x ABCD, y así
sucesivamente.
FIGURA 3-8 Tabla de
verdad y símbolo para
una compuerta AND de
tres entradas.
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
x = ABC
0
0
0
0
0
0
0
1
A
B
C
x = ABC
Observe la diferencia entre los símbolos para la compuerta AND y la compuerta OR. Cada vez que vea el símbolo AND en el diagrama de un circuito lógico, le
indicará que la salida estará en ALTO sólo cuando todas las entradas estén en ALTO.
Cada vez que vea el símbolo OR, le indicará que la salida estará en ALTO cuando
cualquiera de sus entradas esté en ALTO.
Resumen de la operación AND
1. La operación AND se realiza de la misma forma que la multiplicación ordinaria
de 1s y 0s.
2. Una compuerta AND es un circuito lógico que realiza la operación AND sobre
las entradas.
3. La salida de una compuerta AND será 1 sólo para el caso en el que todas las
entradas sean 1; para todos los demás casos la salida será 0.
4. La expresión x AB se lee como “x es igual a A AND B”.
64
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
EJEMPLO 3-4
FIGURA 3-9
3-4.
Determine la salida x de la compuerta AND en la figura 3-9, para las formas de onda
de entrada dadas.
EJEMPLO
1
A
0
A
1
B
x = AB
B
0
1
x
0
t0
t1
t2
t3 t4
t5
t6 t7
Solución
La salida de una compuerta AND se determina con base en la consideración de
que estará en ALTO sólo cuando todas las entradas se encuentren en ALTO al mismo tiempo. Para las formas de onda de entrada dadas, la condición se cumple sólo
durante los intervalos t2 t3 y t6t7. En todos los demás intervalos, sólo una o más
de las entradas son 0, con lo cual se produce una salida en BAJO. Observe que los
cambios en el nivel de entrada que se producen mientras la otra entrada está en
BAJO no tienen efecto sobre la salida.
EJEMPLO 3-5A
Determine la forma de onda de salida para la compuerta AND que se muestra en la
figura 3-10.
FIGURA 3-10
Ejemplos 3-5A y 3-5B.
A
A
B
B
x
x
Solución
La salida x será 1 sólo cuando A y B se encuentren en ALTO al mismo tiempo. Si nos
basamos en este hecho podemos determinar la forma de onda de x como se muestra
en la figura.
Observe que la forma de onda de x es 0 siempre que B es 0, sin importar el nivel
de la señal en A. Observe también que siempre que B es 1, la forma de onda de x es
igual que la de A. En consecuencia podemos considerar la entrada B como una entrada de control cuyo nivel lógico determina si la forma de onda de A pasa o no hacia la
salida x. En esta situación, la compuerta AND se utiliza como un circuito inhibidor.
Podemos decir que B 0 es la condición de inhibición que produce una salida de 0.
Por otro lado, B 1 es la condición de habilitación, la cual permite que A llegue a la
salida. Esta operación de inhibición es una aplicación importante de las compuertas
AND, que veremos más adelante con mayor detalle.
EJEMPLO 3-5B
¿Cómo se modifica la forma de onda de la salida x en la figura 3-10 si la entrada B
se mantiene en el nivel 0?
Solución
Con B en BAJO, la salida x también permanecerá en BAJO. Esto puede razonarse de
dos maneras distintas. Primero, con B 0 tenemos que x AB A0 0, ya que
65
SECCIÓN 3-5/OPERACIÓN NOT
cualquier cosa que se multiplique por 0 (AND) será igual a 0. Otra manera de ver
esto es que una compuerta AND requiere que todas las entradas estén en ALTO para
que la salida esté en ALTO, y esto no puede ocurrir si B se mantiene en BAJO.
PREGUNTAS DE REPASO
1. ¿Cuál es la única combinación de entrada que producirá un nivel ALTO en la
salida de una compuerta AND de cinco entradas?
2. ¿Qué nivel lógico debe aplicarse a la segunda entrada de una compuerta AND
de dos entradas si se desea inhibir la señal lógica en la primera entrada para
evitar que llegue a la salida?
3. Verdadero o falso: la salida de una compuerta AND siempre será distinta de la
salida de una compuerta OR para las mismas condiciones de entrada.
3-5
OPERACIÓN NOT
La operación NOT es distinta de las operaciones OR y AND, ya que puede realizarse
sobre una sola variable de entrada. Por ejemplo, si la variable A está sujeta a la operación NOT, el resultado x puede expresarse así:
xA
En donde la barra superior representa la operación NOT. Esta expresión se lee como
“x es igual a NOT A” o “x es igual al inverso de A” o “x es igual al complemento de A”.
Cada una de estas expresiones es de uso común y todas indican que el valor lógico
de x A es el opuesto del valor lógico de A. La tabla de verdad de la figura 3-11(a)
aclara esto para los dos casos en que A 0 y A 1. Esto es,
01
porque 0 no es 1
10
porque 1 no es 0
y
La operación NOT también se conoce como inversión o complementación, términos
que utilizaremos de manera indistinta en este libro. Aunque siempre utilizaremos el
indicador de barra superior para representar la inversión, es importante mencionar
que el símbolo primo () es otro indicador para la inversión. Esto es,
A A
Ambos deben reconocerse como símbolos que indican la operación de inversión.
FIGURA 3-11 (a) Tabla
de verdad; (b) símbolo
para el INVERSOR
(compuerta NOT);
(c) ejemplos de formas
de onda.
NOT
A
0
1
x=A
1
0
(a)
A
NOT
1
0
x=A
A
x
La presencia de un
círculo pequeño siempre
denota la inversión
(b)
1
0
(c)
66
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
Circuito NOT (INVERSOR)
La figura 3-11(b) muestra el símbolo para un circuito NOT, al cual se le conoce más
comúnmente como INVERSOR. Este circuito siempre tiene una sola entrada y su
nivel lógico de salida siempre es opuesto al nivel lógico de esta entrada. La figura
3-11(c) muestra la forma en que el INVERSOR afecta a una señal de entrada. Invierte (complementa) la señal de entrada en todos los puntos de la forma de onda, por
lo que siempre que la entrada 0, la salida 1, y viceversa.
APLICACIÓN 3-1
FIGURA 3-12 Una
compuerta NOT que
indica que un botón no
está oprimido cuando su
salida es verdadera.
La figura 3-12 muestra una aplicación ordinaria de la compuerta NOT. El botón está
cableado para producir un 1 lógico (verdadero) cuando se oprime. Algunas veces es
conveniente saber si el botón no está oprimido, por lo que este circuito proporciona
una expresión que es verdadera cuando el botón no está oprimido.
+5 V
Botón
Nivel lógico 1 (verdadero) cuando está oprimido
(falso cuando el botón no está oprimido).
Oprimido
No oprimido
Nivel lógico 1 (verdadero) cuando no está oprimido
(falso cuando el botón está oprimido).
Resumen de las operaciones booleanas
Las reglas para las operaciones OR, AND y NOT pueden resumirse de la siguiente
manera:
PREGUNTAS DE REPASO
OR
AND
NOT
000
000
01
011
101
111
010
100
111
10
1. La salida del INVERSOR de la figura 3-11 está conectada a la entrada de un
segundo INVERSOR. Determine el nivel de salida del segundo INVERSOR para
cada nivel de entrada A.
2. La salida de la compuerta AND de la figura 3-7 está conectada a la entrada de
un INVERSOR. Escriba la tabla de verdad que muestre la salida, y, del INVERSOR para cada combinación de entradas A y B.
3-6 DESCRIPCIÓN DE CIRCUITOS LÓGICOS EN FORMA
ALGEBRAICA
Cualquier circuito lógico, sin importar qué tan complejo sea, puede describirse por
completo mediante el uso de las tres operaciones booleanas básicas ya que las compuertas OR, AND y el circuito NOT son los bloques fundamentales para la construc-
SECCIÓN 3-6/DESCRIPCIÓN DE CIRCUITOS LÓGICOS EN FORMA ALGEBRAICA
FIGURA 3-13 (a)
Circuito lógico con su
expresión booleana.
(b) Circuito lógico cuya
expresión requiere
paréntesis.
A
67
A•B
x=A•B+C
B
C
(a)
A
A+B
x = ( A + B) • C
B
C
(b)
ción de sistemas digitales. Por ejemplo, considere el circuito de la figura 3-13(a),
el cual tiene tres entradas A, B y C, y una sola salida x. Si utilizamos la expresión
booleana para cada compuerta podemos determinar con facilidad la expresión para
la salida.
La expresión para la salida de la compuerta AND se escribe como A B. Esta
salida AND está conectada como entrada para la compuerta OR junto con C, otra
entrada. La compuerta OR opera sobre sus entradas de manera que su salida es la
suma OR de las entradas. Por lo tanto, podemos expresar la salida OR como x AB
C. Esta expresión final podría haberse escrito también como x C AB, ya que
no importa cuál término de la suma OR se escriba primero.
Precedencia de operadores
En ocasiones puede haber confusión acerca de cuál operación debe llevarse a cabo
primero en una expresión. La expresión A B C puede interpretarse de dos maneras: (1) Se aplica un OR entre A B y el término C; o (2) Se aplica un AND entre A
y el término B C. Para evitar esta confusión debe quedar claro que si una expresión contiene las operaciones AND y OR, la operación AND se realiza primero, a
menos que haya paréntesis en la expresión, en cuyo caso la operación encerrada
entre paréntesis es la que se debe realizar primero. Esta regla es la misma que se
utiliza en el álgebra ordinaria para determinar el orden de las operaciones.
Para ilustrar mejor este concepto, considere el circuito de la figura 3-13(b). La
expresión para la salida de la compuerta OR es A B. Esta salida sirve como entrada para la compuerta AND junto con otra entrada C. Por ende, expresamos la salida
de la compuerta AND como x (A B) C. Observe el uso de los paréntesis aquí
para indicar que primero se aplica la operación OR entre A y B, antes de que a su
suma OR se le aplique un AND con C. Sin los paréntesis se interpretaría de manera
incorrecta, ya que A BC significa que a la entrada A se le aplica un OR con el
producto B C.
Circuitos que contienen INVERSORES
Siempre que haya un INVERSOR presente en el diagrama de un circuito lógico, la
expresión de su salida es en sí igual a la expresión de la entrada con una barra sobre
ella. La figura 3-14 muestra dos ejemplos que utilizan INVERSORES. En la figura
3-14(a) la entrada A se alimenta a través de un INVERSOR, cuya salida es, por lo
tanto A. La salida del INVERSOR se alimenta a una compuerta OR junto con B, de
manera que la salida OR es igual a A B. Observe que la barra sólo está sobre A,
lo cual indica que A primero se invierte y después se alimenta a la compuerta OR
junto con B.
FIGURA 3-14
Circuitos que utilizan
INVERSORES.
A
A
x=A+B
B
A
A+B
B
(a)
x=A+B
(b)
68
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
En la figura 3-14(b) la salida de la compuerta OR es igual a A B y se alimenta a través de un INVERSOR. Por lo tanto, la salida del INVERSOR es igual a
(A B) ya que invierte toda la expresión de entrada. Observe que la barra cubre toda
la expresión (A B). Esto es importante ya que, como veremos más adelante, las
expresiones (A B) y (A B) no son equivalentes. La expresión (A B) indica que
primero se aplica un OR entre A y B, y después su suma OR se invierte, mientras
que la expresión (A B) indica que primero se invierten A y B, y después se aplica
un OR a los resultados de las dos inversiones.
La figura 3-15 muestra dos ejemplos más, que deben estudiarse con cuidado.
Note el uso de dos conjuntos separados de paréntesis en la figura 3-15(b). Observe
además en la figura 3-15(a) que la variable de entrada A está conectada como entrada para dos compuertas distintas.
A
A
B
C
ABC
A+D
A
x = ABC ( A + D)
A+D
D
(a)
A
A+B
( A + B) C
B
C
( A + B) C
D + ( A + B)C
D
E
x = [D + ( A + B) C] • E
(b)
FIGURA 3-15
PREGUNTAS DE REPASO
Más ejemplos.
1. En la figura 3-15(a) cambie cada compuerta AND por una compuerta OR, y cambie la compuerta OR por una compuerta AND. Después escriba la expresión
para la salida x.
2. En la figura 3-15(b) cambie cada compuerta AND por una compuerta OR y cada
compuerta OR por una compuerta AND. Después escriba la expresión para la
salida x.
3-7 EVALUACIÓN DE LAS SALIDAS DE CIRCUITOS LÓGICOS
Una vez que tengamos la expresión booleana para un circuito lógico, podremos obtener el nivel lógico de salida para cualquier conjunto de niveles de entrada. Por
ejemplo, suponga que deseamos conocer el nivel lógico de la salida x del circuito
de la figura 3-15(a), para el caso en el que A 0, B 1, C 1 y D 1. Como en el
álgebra ordinaria, podemos encontrar el valor de x si “conectamos” los valores de
SECCIÓN 3-7/EVALUACIÓN DE LAS SALIDAS DE CIRCUITOS LÓGICOS
69
las variables en la expresión y realizamos las operaciones indicadas como se muestra a continuación:
x =
=
=
=
=
=
ABC(A + D)
0 # 1 # 1 # (0 + 1)
1 # 1 # 1 # (0 + 1)
1 # 1 # 1 # (1)
1#1#1#0
0
Como otro ejemplo, vamos a evaluar la salida del circuito de la figura 3-15(b) para
A 0, B 0, C 0, D 1 y E 1.
x =
=
=
=
=
=
=
[D + (A + B)C] # E
[1 + (0 + 0) # 1] # 1
[1 + 0 # 1] # 1
[1 + 0] # 1
[1 + 1] # 1
1#1
1
En general, siempre debemos seguir las siguientes reglas cuando se evalúa una
expresión booleana:
1. Primero realice todas las inversiones de términos individuales; es decir, 0 1 o
1 0.
2. Después realice todas las operaciones que estén encerradas entre paréntesis.
3. Realice una operación AND antes de una operación OR, a menos que haya
paréntesis que indiquen lo contrario.
4. Si una expresión tiene una barra sobre ella, primero realice las operaciones
dentro de la expresión y después invierta el resultado.
Como práctica, determine las salidas de ambos circuitos de la figura 3-15 para
el caso en el que todas las entradas sean 1. Las respuestas son x 0 y x 1, respectivamente.
Análisis mediante el uso de una tabla
Siempre que tenga un circuito lógico combinacional y desee saber cómo funciona, la
mejor manera de analizarlo es mediante el uso de una tabla de verdad. Las ventajas
de este método son:
Le permite analizar una compuerta o combinación lógica a la vez.
Le facilita una segunda comprobación de su trabajo.
Cuando termine tendrá una tabla que será de un beneficio incalculable cuando
se busquen fallas en el circuito lógico.
Recuerde que una tabla de verdad lista todas las posibles combinaciones de las
entradas en orden numérico. Para cada combinación posible de entrada, podemos
determinar el estado lógico en cada punto (nodo) del circuito lógico, incluyendo la
salida. Consulte la figura 3-16(a). Hay varios nodos intermedios en este circuito, los
cuales no son entradas ni salidas. Tan sólo son conexiones entre la salida de una
compuerta y la entrada de otra. En este diagrama se han etiquetado como u, v y w.
El primer paso después de listar todas las combinaciones de entradas es crear una
columna en la tabla de verdad para cada señal intermedia (nodo), como se muestra
en la figura 3-16(b). El nodo u se ha llenado como el complemento de A.
70
FIGURA 3-16 Análisis
de un circuito lógico
mediante el uso de
tablas de verdad.
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
A
u=A
B
v = AB
x
w = BC
C
(a)
A
B
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
C u= v=
A AB
0 1
1 1
0 1
1 1
0 0
1 0
0 0
1 0
w= x=
BC v+w
A
B
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
(b)
A
B
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
C u= v=
A AB
0 1
0
1 1
0
0 1
1
1 1
1
0 0
0
1 0
0
0 0
0
1 0
0
(d)
C u= v=
A AB
0 1
0
1 1
0
0 1
1
1 1
1
0 0
0
1 0
0
0 0
0
1 0
0
w= x=
BC v+w
(c)
w= x=
BC v+w
0
0
0
1
0
0
0
1
A
B
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
C u= v=
A AB
0 1
0
1 1
0
0 1
1
1 1
1
0 0
0
1 0
0
0 0
0
1 0
0
w= x=
BC v+w
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
(e)
El siguiente paso es llenar los valores para la columna v, como se muestra
en la figura 3-16(c). Del diagrama podemos ver que v AB. El nodo v debe estar en
ALTO cuando A (nodo u) está en ALTO Y B está en ALTO. Esto ocurre cada vez que
A está en BAJO Y B está en ALTO. El tercer paso es predecir los valores en el nodo
w, que es el producto lógico de BC. Esta columna está en ALTO cada vez que B está
en ALTO Y C está en ALTO, como se muestra en la figura 3-16(d). El último paso es
combinar en forma lógica las columnas v y w para predecir la salida x. Como x v
w, la salida x estará en ALTO cuando v esté en ALTO O w esté en ALTO, como se
muestra en la figura 3-16(e).
Si usted construyera este circuito y no se produjera la salida correcta para x
bajo todas las condiciones, podría utilizar esta tabla para encontrar el problema.
El procedimiento general es probar el circuito bajo cada combinación de entradas.
Si cualquier combinación de entradas produce una salida incorrecta (es decir, una
falla), compare el estado lógico actual de cada nodo intermedio en el circuito con
el valor teórico correcto en la tabla mientras aplica esa condición de entrada. Si el
estado lógico para un nodo intermedio es correcto, el problema debe estar más a la
derecha de ese nodo. Si el estado lógico de un nodo intermedio es incorrecto, el problema debe estar a la izquierda de ese nodo (o ese nodo está en corto con algo). En
el capítulo 4 veremos con más detalle los procedimientos de detección de errores y
las posibles fallas en los circuitos.
71
SECCIÓN 3-8/IMPLEMENTACIÓN DE CIRCUITOS A PARTIR DE EXPRESIONES. . .
EJEMPLO 3-6
Analice la operación de la figura 3-15(a) mediante la creación de una tabla que
muestre el estado lógico en cada nodo del circuito.
Solución
Para llenar la columna t, escriba un 1 para todas las entradas en las que A 0
Y B 1 y C 1.
Para llenar la columna u, escriba un 1 para todas las entradas en las que A 1
O D 1.
Para llenar la columna v, complete todas las entradas de la columna u.
Para llenar la columna x, escriba un 1 para todas las entradas en las que t 1
y v 1.
PREGUNTAS DE REPASO
A
B
C
D
t ABC
uAD
vA D
x tv
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1. Use la expresión de x para determinar la salida del circuito de la figura 3-15(a),
para las condiciones en que A 0, B 1, C 1 y D 0.
2. Use la expresión de x para determinar la salida del circuito de la figura 3-15(b),
para las condiciones en que A B E 1 y C D 0.
3. Determine las respuestas a las preguntas 1 y 2 encontrando los niveles lógicos
presentes en la salida de cada compuerta mediante el uso de una tabla, como en
la figura 3-16.
3-8 IMPLEMENTACIÓN DE CIRCUITOS A PARTIR DE
EXPRESIONES BOOLEANAS
Cuando la operación de un circuito se define mediante una expresión booleana,
podemos dibujar el diagrama de un circuito lógico de manera directa a partir de esa
expresión. Por ejemplo, si necesitáramos un circuito que estuviera definido por x
A B C, de inmediato sabríamos que todo lo que se requiere es una compuerta AND
de tres entradas. Si necesitáramos un circuito definido por x A B, utilizaríamos
una compuerta OR de dos entradas con un INVERSOR en una de ellas. El mismo
razonamiento que se utiliza para estos casos puede extenderse hacia circuitos más
complejos.
72
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
Suponga que deseamos construir un circuito cuya salida sea y AC BC ABC.
Esta expresión booleana contiene tres términos (AC, BC, ABC), a los cuales se les
aplica una operación OR. Esto nos indica que se requiere una compuerta OR de tres
entradas, en donde éstas son iguales a AC, BC y ABC. En la figura 3-17(a) se ilustra
esto, en donde está dibujada una compuerta OR de tres entradas etiquetadas como
AC, BC y ABC.
FIGURA 3-17
Construcción de un
circuito lógico a partir
de una expresión
booleana.
AC
BC
ABC
y = AC + BC + ABC
(a)
A
AC
C
B
B
BC
y = AC + BC + ABC
C
C
A
ABC
B
C
(b)
Cada entrada de la compuerta OR es un término del producto de AND, lo cual
significa que puede usarse una compuerta AND con las entradas apropiadas para
generar cada uno de estos términos. Esto se muestra en la figura 3-17(b), que corresponde al diagrama del circuito final. Observe el uso de INVERSORES para producir
los términos A y C requeridos en la expresión.
Siempre puede seguirse este mismo enfoque general, aunque más adelante
veremos que existen técnicas más inteligentes y eficientes. No obstante, por ahora
utilizaremos este método simple y directo para minimizar el número de elementos
nuevos que deberá aprender.
EJEMPLO 3-7
Dibuje el diagrama del circuito para implementar la expresión x (A B)(B C).
Solución
Esta expresión muestra que los términos A B y B C son entradas para una compuerta AND, y cada uno de estos términos se genera a partir de una compuerta OR
separada. La figura 3-18 muestra un dibujo del resultado.
FIGURA 3-18 Ejemplo
3-7.
A
A+B
x = (A + B)(B + C)
B
B
B+C
C
73
SECCIÓN 3-9/COMPUERTAS NOR Y NAND
PREGUNTAS DE REPASO
1. Dibuje el diagrama del circuito que implemente la expresión x ABC(A D)
mediante el uso de compuertas con no más de tres entradas.
2. Dibuje el diagrama del circuito para la expresión y AC BC ABC.
3. Dibuje el diagrama del circuito para x [D (A B)C)] E.
3-9
COMPUERTAS NOR Y NAND
En los circuitos digitales se utilizan mucho otros dos tipos de compuertas lógicas:
NOR y NAND. Estas compuertas combinan las operaciones básicas AND, OR y NOT,
por lo que es muy sencillo escribir sus expresiones booleanas.
Compuerta NOR
La figura 3-19(a) muestra el símbolo para una compuerta NOR de dos entradas. Es
igual que el símbolo de la compuerta OR, sólo que tiene un pequeño círculo en la
salida. El pequeño círculo representa la operación de inversión. Por ello, la compuerta NOR opera de manera similar a una compuerta OR seguida de un INVERSOR, de
manera que los circuitos en las figuras 3-19(a) y (b) son equivalentes, y la expresión
de salida para la compuerta NOR es x A B.
FIGURA 3-19 (a) símbolo NOR;
(b) circuito equivalente; (c) tabla de
verdad.
x=A+B
A
B
Indica
inversión
(a)
A+B
A
x=A+B
B
(b)
A
0
0
1
1
B
0
1
0
1
OR
NOR
A+B
0
1
1
1
A+B
1
0
0
0
(c)
La tabla de verdad de la figura 3-19(c) muestra que la salida de la compuerta
NOR es el inverso exacto de la salida de la compuerta OR para todas las posibles
condiciones de entrada. La salida de una compuerta OR cambia a ALTO cuando cualquiera de sus entradas se encuentra en ALTO; la salida de la compuerta NOR cambia
a BAJO cuando cualquiera de sus entradas se encuentra en ALTO. Esta misma operación puede aplicarse a las compuertas NOR con más de dos entradas.
74
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
EJEMPLO 3-8
FIGURA 3-20 Ejemplo
3-8.
Determine la forma de onda en la salida de una compuerta NOR para las formas de
onda de entrada que se muestran en la figura 3-20.
1
A
0
A
1
B
x=A+B
B
0
1
x
0
Solución
Una manera de determinar la forma de onda de salida NOR es encontrando primero
la forma de onda de salida OR y luego invirtiéndola (cambiar todos los 1s por 0s y
viceversa). Otro sistema utiliza el hecho de que la salida de una compuerta NOR
estará en ALTO sólo cuando todas sus entradas estén en BAJO. Por lo tanto, puede examinar las formas de onda de entrada, encontrar esos intervalos en los que
todas están en BAJO, y hacer que la salida de la compuerta NOR esté en ALTO para
esos intervalos. La salida de la compuerta NOR estará en BAJO para todos los demás
intervalos. La figura muestra la forma de onda de salida resultante.
EJEMPLO 3-9
Determine la expresión booleana para una compuerta NOR de tres entradas, seguida de un INVERSOR.
Solución
Consulte la figura 3-21, en donde se muestra el diagrama del circuito. La expresión
en la salida de la compuerta NOR es (A B C), la cual se alimenta después a través de un INVERSOR para producir
x = (A + B + C)
La presencia de los signos de doble inversión indica que se invirtió la cantidad (A
B C) y se invirtió una vez más. Debe quedar claro que esto sólo hace que la expresión (A B C) permanezca sin cambios. Esto es,
x = (A + B + C) = (A + B + C)
Siempre que hay dos barras de inversión sobre la misma variable o cantidad, una
cancela a la otra, como en el ejemplo anterior. No obstante, en casos tales como
A B las barras de inversión no se cancelan. Esto se debe a que las barras de inversión más pequeñas invierten las variables individuales A y B, mientras que la barra
larga invierte la cantidad (A B). En consecuencia, A B
A B. De manera
similar, A B AB.
FIGURA 3-21
Ejemplo 3-9.
A
B
C
A+B+C
x=A+B+C=A+B+C
75
SECCIÓN 3-9/COMPUERTAS NOR Y NAND
Compuerta NAND
La figura 3-22(a) muestra el símbolo para una compuerta NAND de dos entradas. Es
el mismo que el de la compuerta AND más un pequeño círculo en la salida. De nuevo, este pequeño círculo denota la operación de inversión. Así, la compuerta NAND
opera igual que una compuerta AND seguida de un INVERSOR, de manera que los
circuitos de la figura 3-22(a) y (b) son equivalentes y la expresión de salida para la
compuerta NAND es x AB.
FIGURA 3-22
(a) Símbolo NAND;
(b) circuito equivalente;
(c) tabla de verdad.
x = AB
A
AND
NAND
AB
0
0
0
1
AB
1
1
1
0
B
(a)
A
AB
B
0
1
0
1
A
0
0
1
1
Indica
inversión
AB
(c)
B
(b)
La tabla de verdad de la figura 3-22(c) muestra que la salida de la compuerta
NAND es el inverso exacto de la compuerta AND para todas las posibles condiciones de entrada. La salida AND cambia a nivel ALTO sólo cuando todas las entradas
se encuentran en ALTO, mientras que la salida NAND cambia a BAJO sólo cuando
todas las entradas se encuentran en ALTO. Esta misma característica puede aplicarse a las compuertas NAND que tienen más de dos entradas.
EJEMPLO 3-10
FIGURA 3-23
3-10.
Determine la forma de onda de salida de una compuerta NAND que tiene las entradas que se muestran en la figura 3-23.
Ejemplo
A
A
B
B
x = AB
x
Solución
Una manera es dibujar primero la forma de onda de salida para una compuerta
AND y después invertirla. Otra técnica utiliza el hecho de que una salida NAND
estará en BAJO sólo cuando todas las entradas estén en ALTO. De esta forma, puede
encontrar todos esos intervalos durante los cuales todas las entradas están en ALTO
y hacen que la salida NAND esté en BAJO para esos intervalos. La salida estará en
ALTO en todos los demás tiempos.
76
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
EJEMPLO 3-11
Implemente el circuito lógico que tiene la expresión x AB (C D) utilizando sólo
compuertas NOR y NAND.
Solución
El término (C D) es la expresión para la salida de una compuerta NOR. A este término se le aplica la operación NAND junto con A y B, y el resultado se invierte; ésta
es, desde luego, la operación NAND. Así, el circuito se implementa como se muestra
en la figura 3-24. Observe que la compuerta NAND primero aplica un AND a los términos A, B y (C D), y después invierte todo el resultado.
FIGURA 3-24
Ejemplos 3-11 y 3-12.
1
C
C+D
0
0
1
1
D
x = AB(C + D)
B
1
A
EJEMPLO 3-12
Determine el nivel de salida de la figura 3-24 cuando A B C 1 y D 0.
Solución
En el primer método utilizamos la expresión para x.
x = AB(C + D)
= 1 # 1 # (1 + 0)
= 1 # 1 # (1)
= 1#1#0
= 0 = 1
En el segundo método, anotamos los niveles lógicos de entrada en el diagrama del
circuito (los cuales se muestran en gris en la figura 3-24) y seguimos estos niveles a
través de cada compuerta, hasta la salida final. La compuerta NOR tiene entradas
de 1 y 0 para producir una salida de 0 (un OR hubiera producido una salida de 1).
Entonces la compuerta NAND tiene niveles de entrada de 0, 1 y 1 para producir una
salida de 1 (al igual que AND hubiera producido una salida de 0).
PREGUNTAS DE REPASO
1. ¿Cuál es el único conjunto de condiciones de entrada que producirá una salida
en ALTO en una compuerta NOR de tres entradas?
2. Determine el nivel de salida en la figura 3-24 cuando A B 1, C D 0.
3. Cambie la compuerta NOR de la figura 3-24 por una compuerta NAND y cambie la compuerta NAND por una compuerta NOR. ¿Cuál es la nueva expresión
para x?
3-10 TEOREMAS BOOLEANOS
Hemos visto cómo puede utilizarse el álgebra booleana para ayudar a analizar un circuito lógico y expresar su operación en forma matemática. Para continuar con nuestro estudio del álgebra booleana vamos a investigar los diversos teoremas booleanos
(también conocidos como reglas booleanas) que pueden ayudarnos a simplificar las
77
SECCIÓN 3-10/TEOREMAS BOOLEANOS
x
x
x
0
0
0
(1)
(5)
x•0=0
x+0=x
x
x
1
x
1
1
(2)
(6)
x•1=x
x+1=1
x
x
x
x
(3)
(7)
x•x=x
x+x=x
x
x
1
0
(4)
(8)
x•x=0
x+x=1
FIGURA 3-25 Teoremas con una sola variable.
expresiones lógicas y los circuitos lógicos. El primer grupo de teoremas se muestra
en la figura 3-25. En cada teorema, x es una variable lógica que puede ser un 0 o un 1.
Cada teorema se acompaña por el diagrama de un circuito lógico que demuestra su
validez.
El teorema (1) establece que si se aplica un AND entre cualquier variable y 0,
el resultado es 0. Esto es fácil de recordar ya que la operación AND es como la multiplicación ordinaria, en donde sabemos que cualquier cantidad multiplicada por 0
es igual a 0. También sabemos que la salida de una compuerta AND será 0 siempre
que una entrada sea 0, sin importar el nivel en la otra entrada.
El teorema (2) también es obvio si se le compara con la multiplicación ordinaria.
El teorema (3) puede demostrarse si se prueba cada caso. Si x 0, entonces
0 0 0; si x 1 entonces 11 1. Por lo tanto, xx x.
El teorema (4) puede probarse de la misma forma. No obstante, también podemos razonar que en cualquier momento ya sea x o su inverso, x, deben estar en el
nivel 0 y, por lo tanto, su producto AND siempre será 0.
El teorema (5) es bastante directo, ya que cualquier cantidad que se sume con 0
no afecta su valor, ya sea en la suma ordinaria o en la operación OR.
El teorema (6) establece que si se aplica un OR entre cualquier variable y 1, el
resultado siempre será 1. Comprobamos esto para ambos valores de x: 0 1 1 y
1 1 1. También es importante recordar que la salida de una compuerta OR será 1
cuando cualquiera de sus entradas sea 1, sin importar el valor de la otra entrada.
El teorema (7) puede probarse si se comprueban ambos valores de x: 0 0 0
y 1 1 1.
El teorema (8) puede probarse de manera similar, o basta con razonar que en
cualquier momento ya sea x o x estará en el nivel 1, de manera que siempre se esté
aplicando un OR entre 0 y 1, lo cual siempre produce un 1.
Antes de presentar más teoremas, debemos recalcar que cuando se aplican los
teoremas (1) a (8) la variable x puede llegar a representar una expresión que contiene más de una variable. Por ejemplo, si tenemos que AB(AB), podemos invocar
el teorema (4) si hacemos que x AB. Por ende, podemos decir que AB(AB). Esta
misma idea puede aplicarse al uso de cualquiera de los teoremas.
Teoremas con múltiples variables
Los teoremas que presentamos a continuación involucran más de una variable:
(9)
(10)
xyyx
x#y = y#x
78
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
(11)
(12)
(13a)
(13b)
(14)
(15a)
(15b)
x (y z) (x y) z x y z
x(yz) (xy)z xyz
x(y z) xy xz
(w x)(y z) wy xy wz xz
x xy x
x + xy = x + y
x + xy = x + y
Los teoremas (9) y (10) se conocen como leyes conmutativas, ya que indican que el
orden en el que se aplican las operaciones OR y AND a dos variables no importa;
el resultado es el mismo.
Los teoremas (11) y (12) son las leyes asociativas, las cuales establecen que podemos agrupar las variables en una expresión AND o en una expresión OR de cualquier forma que necesitemos.
El teorema (13) es la ley distributiva, la cual establece que para expandir una
expresión se multiplica término por término, de igual forma que en el álgebra ordinaria. Este teorema también indica que podemos factorizar una expresión. Esto es,
si tenemos una suma de dos (o más) términos, cada uno de los cuales contiene una
variable común, esta variable común puede factorizarse de igual forma que en el
álgebra ordinaria. Por ejemplo, si tenemos la expresión ABC A B C podemos factorizar la variable B:
ABC + A B C = B(AC + A C)
Como otro ejemplo, considere la expresión ABC ABD. Aquí los dos términos tienen
en común las variables A y B, por lo que AB puede factorizarse de ambos términos.
Esto es,
ABC ABD AB(C D)
Los teoremas (9) a (13) son fáciles de recordar y de utilizar, ya que son idénticos
a los del álgebra ordinaria. Por otro lado, los teoremas (14) y (15) no tienen contrapartes en el álgebra ordinaria. Para demostrar cada uno de ellos hay que probar
todos los casos posibles para x y y. Para ilustrar lo anterior (para el teorema 14)
vamos a crear una tabla de análisis para la ecuación x xy, como se muestra a continuación:
x
y
xy
x xy
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
Observe que el valor de toda la expresión (x xy) es siempre el mismo que
para x.
El teorema (14) también puede demostrarse mediante la factorización y el uso
de los teoremas (6) y (2), como se muestra a continuación:
x xy x(1 y)
x1
x
[usando el teorema (6)]
[usando el teorema (2)]
Todos estos teoremas booleanos pueden ser útiles para simplificar una expresión lógica; es decir, para reducir el número de términos en la expresión. Con esto,
la expresión reducida produce un circuito que es menos complejo que el que habría
producido la expresión original. Una buena porción del siguiente capítulo estará
dedicada al proceso de simplificación de los circuitos. Por ahora, los siguientes
79
SECCIÓN 3-10/TEOREMAS BOOLEANOS
ejemplos servirán para ilustrar cómo pueden aplicarse los teoremas booleanos.
Nota: encontrará todos los teoremas booleanos en la parte interior de la cubierta
posterior del libro.
EJEMPLO 3-13
Simplifique la expresión y ABD AB D.
Solución
Factorice las variables comunes AB mediante el uso del teorema (13):
y AB(D D)
Si utilizamos el teorema (8), el término entre paréntesis es equivalente a 1. Así,
y AB 1
AB
EJEMPLO 3-14
[utilizando el teorema (2)]
Simplifique la expresión z (A B)(A B).
Solución
Podemos expandir la expresión si multiplicamos los términos [teorema (13)]:
zAAABBABB
Si invocamos el teorema (4), el término A A 0. Además, B B B [teorema
(13)]:
z 0 A B B A B AB AB B
Si factorizamos la variable B [teorema (13)] tenemos que:
z B(A A 1)
Por último, utilizando los teoremas (2) y (6),
zB
EJEMPLO 3-15
Simplifique x ACD ABCD.
Solución
Si factorizamos las variables comunes CD, tenemos que
x CD(A AB)
Utilizando el teorema (15a) podemos sustituir A AB por A B, de manera que
x CD(A B)
ACD BCD
80
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
PREGUNTAS DE REPASO
1. Use los teoremas (13) y (14) para simplificar y AC ABC.
2. Use los teoremas (13) y (8) para simplificar y A B C D A B C D.
3. Use los teoremas (13) y (15b) para simplificar y AD ABD.
3-11 TEOREMAS DE DEMORGAN
Dos de los teoremas más importantes del álgebra booleana fueron aportación de un
gran matemático apellidado DeMorgan. Los teoremas de DeMorgan son extremadamente útiles para simplificar expresiones en las cuales se invierte un producto o la
suma de variables. Los dos teoremas son:
(16)
(17)
(x y) x y
(x y) x y
El teorema (16) establece que cuando se invierte la suma OR de dos variables,
es lo mismo que invertir cada variable en forma individual y después aplicar una
operación AND a estas dos variables invertidas. El teorema (17) establece que cuando
se invierte el producto AND de dos variables, es lo mismo que invertir cada variable en forma individual y después aplicar una operación OR a estas dos variables.
Cada uno de los teoremas de DeMorgan puede demostrarse con facilidad si se comprueban todas las posibles combinaciones para x y y. Dejaremos esta comprobación
como un ejercicio de final de capítulo.
Aunque estos teoremas están declarados en términos de las variables individuales x e y, son también válidos en situaciones en las que x y/o y son expresiones
que contienen más de una variable. Por ejemplo, vamos a aplicarlas a la expresión
(AB C) como se muestra a continuación:
(AB + C) = (AB) # C
Aquí utilizamos el teorema (16) y tratamos a AB como x y a C como y. El resultado
puede simplificarse aún más ya que tenemos un producto AB que está invertido. Si
utilizamos el teorema (17), la expresión se convierte en
AB # C = (A + B) # C
Ahora, si sustituimos B por B, al final nos queda
(A + B) # C = A C + BC
Este resultado final sólo contiene signos de inversión para invertir una sola variable.
EJEMPLO 3-16
Simplifique la expresión z (A C) (B D) en una en la que sólo haya variables
individuales invertidas.
Solución
Si utilizamos el teorema (17) y tratamos a (A C) como x y a (B D) como y, tenemos que
z = (A + C) + (B + D)
SECCIÓN 3-11/TEOREMAS DE DEMORGAN
81
En esta expresión se partió el signo inversor grande a la mitad y se cambió el signo
AND () por un signo OR (). Ahora el término (A C) puede simplificarse mediante
la aplicación del teorema (16). El término (B D) también puede simplificarse:
z = (A + C) + (B + D)
= (A # C) + B # D
Aquí se partieron los signos inversores grandes de cada expresión a la mitad y se
cambiaron los () por (). Cancelando las dobles inversiones nos queda por último
z = AC + BD
El punto clave en el ejemplo 3-16 es que cuando se utilizan los teoremas de
DeMorgan para reducir una expresión, podemos descomponer un signo inversor en
cualquier punto de la expresión y cambiar el signo del operador en ese punto por su
opuesto ( se cambia por , y viceversa). Este procedimiento se continúa hasta que
la expresión se reduce a una en la que sólo haya variables individuales invertidas.
A continuación se proporcionan dos ejemplos más.
Ejemplo 1
z =
=
=
=
A + B#C
A # (B # C)
A # (B + C)
A # (B + C)
Ejemplo 2
1A + BC2 1D + EF2
= (A + BC) + (D + EF)
= (A # BC) + (D # EF)
= [A # (B + C)] + [D # (E + F)]
= AB + AC + DE + DF
Los teoremas de DeMorgan pueden extenderse fácilmente a más de dos variables. Por ejemplo, puede demostrarse que
x + y + z = x#y#z
x#y#z = x + y + z
Aquí podemos ver que el signo inversor grande se descompone en dos puntos de la
expresión y que el signo del operador se cambia por su opuesto. Esto puede extenderse a cualquier número de variables. De nuevo, debemos tener en cuenta que las
variables en sí pueden ser expresiones, en lugar de variables individuales. A continuación se muestra otro ejemplo.
x = AB # CD # EF
= AB + CD + EF
AB CD EF
Implicaciones de los teoremas de DeMorgan
Examinemos los teoremas (16) y (17) desde el punto de vista de los circuitos lógicos.
Primero vamos a considerar el teorema (16):
x + y = x#y
El lado izquierdo de la ecuación puede considerarse como la salida de una compuerta NOR cuyas entradas son x y y. Por otra parte, el lado derecho de la ecuación es el
82
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
FIGURA 3-26
(a) Circuitos
equivalentes implicados
por el teorema (16);
(b) símbolo alternativo
para la función NOR.
x
x
x+y
y
y
x
y
x•y=x+y
(a)
x
x•y=x+y
y
(b)
resultado de primero invertir ambas variables x y y, y después pasarlas a través de
una compuerta AND. Estas dos representaciones son equivalentes y se ilustran en la
figura 3-26(a), lo que significa que una compuerta AND con INVERSORES en cada
una de sus entradas es equivalente a una compuerta NOR. De hecho, ambos símbolos se utilizan para representar a la función NOR. Cuando se utiliza la compuerta
AND con entradas invertidas para representar a la función NOR, por lo general, se
dibuja en la forma que se muestra en la figura 3-26(b), en donde los pequeños círculos en las entradas representan la operación de inversión.
Ahora consideremos el teorema (17):
x#y = x + y
Podemos implementar el lado izquierdo de la ecuación mediante una compuerta NAND con entradas x y y. Para implementar primero el lado derecho se invierten
las entradas x e y, y después se pasan a través de una compuerta OR. En la figura
3-27(a) se muestran estos dos símbolos equivalentes. La compuerta OR con INVERSORES en cada una de sus entradas es equivalente a la compuerta NAND.También
ambas representaciones se utilizan para la función NAND. Cuando se utiliza la compuerta OR con entradas invertidas para representar a la función NAND, por lo general, se dibuja en la forma que se muestra en la figura 3-27(b), en donde los círculos
en las entradas nuevamente representan la operación de inversión.
FIGURA 3-27
(a) Circuitos
equivalentes implicados
por el teorema (17);
(b) símbolo alternativo
para la función NAND.
x
x
xy
y
y
x
y
x + y = xy
(a)
x
x + y = xy
y
(b)
EJEMPLO 3-17
FIGURA 3-28 Ejemplo
3-17.
Determine la expresión de salida para el circuito de la figura 3-28 y simplifíquelo
mediante el uso de los teoremas de DeMorgan.
A
B
C
z=A•B•C=A+B+C=A+B+C
C
83
SECCIÓN 3-12/UNIVERSALIDAD DE LAS COMPUERTAS NAND Y NOR
Solución
La expresión para z es z ABC. Utilizamos el teorema de DeMorgan para descomponer el signo de inversión grande:
z = A + B + C
Ahora cancelamos la doble inversión en C para obtener
z = A + B + C
PREGUNTAS DE REPASO
1. Utilice los teoremas de DeMorgan para convertir la expresión z (A B) C por
una que sólo tenga inversiones de variables individuales.
2. Repita la pregunta 1 para la expresión y RST Q.
3. Implemente un circuito que tenga la expresión de salida z A B C utilizando
sólo una compuerta NOR y un INVERSOR.
4. Use los teoremas de DeMorgan para convertir y A B CD en una expresión
que contenga sólo inversiones de variables individuales.
3-12 UNIVERSALIDAD DE LAS COMPUERTAS NAND Y NOR
Todas las expresiones booleanas consisten de varias combinaciones de las operaciones básicas de OR, AND e INVERSOR. Por lo tanto, cualquier expresión puede implementarse mediante el uso de combinaciones de compuertas OR, AND e
INVERSOR. No obstante, es posible implementar cualquier expresión lógica utilizando sólo compuertas NAND. Esto se debe a que si las compuertas NAND se combinan en forma apropiada, pueden usarse para realizar cada una de las operaciones
booleanas OR, AND e INVERSOR. La figura 3-29 demuestra este concepto.
x=A•A=A
A
A
(a)
A
1
INVERSOR
x = AB
AB
A
2
B
B
AND
(b)
A
A
1
x=AB=A+B
A
3
2
FIGURA 3-29
booleana.
B
B
B
(c)
OR
Las compuertas NAND pueden usarse para implementar cualquier función
84
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
En primer lugar, en la figura 3-29(a) tenemos una compuerta NAND de dos
entradas, las cuales se conectaron juntas a propósito, de manera que la variable A
se aplique a ambas. En esta configuración, la compuerta NAND actúa tan sólo como
INVERSOR, ya que su salida es x A A A.
En la figura 3-29(b) tenemos dos compuertas NAND conectadas de manera que
se realice la operación AND. La compuerta NAND 2 se utiliza como INVERSOR para
cambiar AB por AB AB, que es la función AND deseada.
Para implementar la operación OR se pueden utilizar compuertas NAND conectadas como se muestra en la figura 3-29(c). Aquí las compuertas NAND 1 y 2 se
utilizan como INVERSORES para las entradas, de manera que la salida final sea
x A B, lo cual puede simplificarse como x A B mediante el uso del teorema
de DeMorgan.
De una manera similar, podemos demostrar que se pueden crear arreglos de
compuertas NOR para implementar cualquiera de las operaciones booleanas. Esto
se ilustra en la figura 3-30. La parte (a) muestra que una compuerta NOR con sus
entradas conectadas entre sí se comporta como un INVERSOR, debido a que la salida es x A A A.
x=A+A=A
A
A
(a)
INVERSOR
A+B
A
A+B
1
A
2
B
B
OR
(b)
A
1
A
x = A + B = AB
3
B
B
B
2
(c)
FIGURA 3-30
booleana.
A
AND
Las compuertas NOR pueden utilizarse para implementar cualquier operación
En la figura 3-30(b) hay dos compuertas NOR conectadas de tal forma que se
lleve a cabo la operación OR. La compuerta NOR 2 se utiliza como un INVERSOR
para cambiar A B por A B A B, que es la función OR deseada.
La operación AND puede implementarse con compuertas NOR, como se muestra
en la figura 3-30(c). Aquí las compuertas NOR 1 y 2 se utilizan como INVERSORES
para las entradas de manera que la salida final sea x A B, que puede simplificarse, mediante el uso del teorema de DeMorgan, como x A B.
Como cualquiera de las operaciones booleanas pueden implementarse con sólo
utilizar compuertas NAND, puede construirse cualquier circuito si se utilizan sólo compuertas NAND. Lo mismo aplica para las compuertas NOR. Esta característica de las
compuertas NAND y NOR puede ser muy útil en el diseño de circuitos lógicos, como se
muestra en el ejemplo 3-18.
EJEMPLO 3-18
En cierto proceso de manufactura, una banda transportadora se apaga cada vez que
ocurren determinadas condiciones, las cuales se supervisan y reflejan con base en
85
SECCIÓN 3-12/UNIVERSALIDAD DE LAS COMPUERTAS NAND Y NOR
los estados de cuatro señales lógicas de la siguiente manera: la señal A estará en
ALTO siempre que la velocidad de la banda transportadora sea demasiado alta; la
señal B estará en ALTO cada vez que el recipiente recolector al final de la banda
se encuentre lleno; la señal C estará en ALTO cuando la tensión de la banda esté
demasiado alta; la señal D estará en ALTO cuando esté desconectado el sobrepaso
manual.
Se necesita un circuito lógico para generar una señal x que cambie a ALTO
siempre que las condiciones A y B se presenten al mismo tiempo, o cada vez que las
condiciones C y D se presenten al mismo tiempo. Podemos deducir que la expresión
lógica para x es x AB CD. El circuito debe implementarse con la menor cantidad
de circuitos integrados que sea posible. Los circuitos integrados TTL que se muestran en la figura 3-31 están disponibles. Cada CI es cuádruple, lo que significa que
contiene cuatro compuertas idénticas en un solo chip.
14 13
VCC
12
11
10
9
8
2
3
4
5
6
GND
7
14 13
VCC
12
11
10
9
8
2
3
4
5
6
GND
7
74LS00
1
14 13
VCC
12
11
10
9
8
74LS08
74LS32
1
FIGURA 3-31
2
3
4
5
6
GND
7
1
Circuitos integrados disponibles para el ejemplo 3-18.
Solución
El método directo para implementar la expresión obtenida utiliza dos compuertas
AND y una compuerta OR, como se muestra en la figura 3-32(a). Esta implementación utiliza dos compuertas del CI 74LS08 y una sola compuerta del CI 74LS32. Los
números entre paréntesis en cada entrada y salida son los números de terminal del
CI respectivo, los cuales siempre se muestran en cualquier diagrama de cableado
de circuitos lógicos. Para nuestros fines, la mayoría de los diagramas lógicos no mostrarán los números de terminal a menos que se necesiten en la descripción de la
operación del circuito.
Se puede lograr otra implementación si se toma el circuito de la figura 3-32(a)
y se sustituye cada compuerta AND y OR por la implementación equivalente con la
compuerta NAND de la figura 3-29. El resultado se muestra en la figura 3-32(b).
A primera vista, este nuevo circuito parece requerir siete compuertas NAND.
No obstante, las compuertas NAND 3 y 5 están conectadas como INVERSORES en
serie y pueden eliminarse del circuito, ya que realizan una doble inversión de la
señal que sale de la compuerta NAND 1. De manera similar, las compuertas NAND
4 y 6 pueden eliminarse. En la figura 3-32(c) se muestra el circuito final, después de
eliminar los dobles INVERSORES.
Este circuito final es más eficiente que el de la figura 3-32(a), ya que utiliza tres
compuertas NAND de dos entradas que están incluidas en un solo CI, el 74LS00.
86
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
FIGURA 3-32 Posibles
implementaciones para
el ejemplo 3-18.
74LS08
(1)
A
B
(3)
(2)
74LS32
(1)
(3)
(a)
x = AB + CD
(2)
74LS08
(4)
C
D
(6)
(5)
AND
A
1
3
5
B
(b)
x
7
C
2
4
6
D
AND
OR
Después de eliminar
las inversiones dobles
(1)
74LS00
A
B
(3)
(2)
(9)
74LS00
(8)
(10)
(c)
(4)
C
D
PREGUNTAS DE REPASO
x
74LS00
(6)
(5)
1. ¿Cuántas maneras tenemos ahora para implementar la operación de inversión
en un circuito lógico?
2. Implemente la expresión x (A B)(C D) mediante el uso de compuertas OR
y AND. Implemente después la expresión utilizando sólo compuertas NOR, convirtiendo cada compuerta OR y AND a su implementación con NOR de la figura
3-30. ¿Cuál circuito es más eficiente?
3. Escriba la expresión de salida para el circuito de la figura 3-32(c) y utilice los
teoremas de DeMorgan para demostrar que es equivalente a la expresión para
el circuito de la figura 3-32(a).
3-13 REPRESENTACIONES ALTERNAS DE COMPUERTAS LÓGICAS
Hemos presentado las cinco compuertas lógicas básicas (AND, OR, INVERSOR,
NAND y NOR) y los símbolos estándar que se utilizan para representarlas en los
diagramas de circuitos lógicos. Aunque tal vez algunos diagramas de circuitos aún
87
SECCIÓN 3-13/REPRESENTACIONES ALTERNAS DE COMPUERTAS LÓGICAS
utilicen estos símbolos estándar de manera exclusiva, cada vez es más común encontrar diagramas de circuitos en los que se emplean los símbolos lógicos alternativos
además de los símbolos estándar.
Antes de hablar sobre las razones para utilizar un símbolo alternativo para una
compuerta lógica, presentaremos los símbolos alternativos para cada compuerta
y demostraremos que son equivalentes a los símbolos estándar. Consulte la figura
3-33; el lado izquierdo muestra el símbolo estándar para cada compuerta lógica y el
lado derecho muestra el símbolo alternativo. El símbolo alternativo para cada compuerta se obtiene a partir del símbolo estándar mediante el siguiente proceso:
1. Invertir cada entrada y salida del símbolo estándar. Para ello se agregan burbujas (pequeños círculos) en las entradas y salidas que no tienen burbujas y se
quitan las de las entradas y salidas que si tienen.
2. Cambiar el símbolo de la operación de AND a OR, o de OR a AND. En el caso
especial del INVERSOR, el símbolo de la operación no se cambia.
FIGURA 3-33
Símbolos estándar y
alternativos para varias
compuertas lógicas y
para el inversor.
A
A•B
AND
A + B = AB
B
B
A
A
A+B
A
A•B=A+B
OR
B
B
A
AB
NAND
B
A
A
A + B = AB
B
A+B
A
A•B=A+B
NOR
B
INV
A
B
A
A
A
Por ejemplo, el símbolo NAND estándar es un símbolo AND con una burbuja
en su salida. Siguiendo los pasos antes mencionados, eliminamos la burbuja de la
salida y agregamos una en cada entrada. Después cambiamos el símbolo AND por
un símbolo OR. El resultado es un símbolo OR con burbujas en sus entradas.
Podemos demostrar con facilidad que este símbolo alternativo es equivalente
al símbolo estándar mediante el uso de los teoremas de DeMorgan y recordando
que la burbuja representa una operación de inversión. La expresión de salida del
símbolo NAND estándar es AB A B, que es lo mismo que la expresión de salida
para el símbolo alterno. Podemos seguir este mismo procedimiento para cada par de
símbolos de la figura 3-33.
Debemos recalcar varios puntos en relación con las equivalencias de los símbolos lógicos:
1. Las equivalencias pueden extenderse a las compuertas con cualquier número de
entradas.
2. Ninguno de los símbolos estándar tiene burbujas en sus entradas, y todos los
símbolos alternativos sí.
88
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
3. Los símbolos estándar y alternativos para cada compuerta representan el mismo
circuito físico; no hay diferencia en los circuitos representados por los dos símbolos.
4. Las compuertas NAND y NOR son inversoras, por lo que tanto los símbolos
estándar como los alternativos para estas compuertas tendrán una burbuja ya
sea en la entrada o en la salida. Las compuertas AND y OR son no inversoras, por
lo que los símbolos alternativos para cada una de ellas tendrá burbujas tanto en
las entradas como en las salidas.
Interpretación de los símbolos lógicos
Cada uno de los símbolos de las compuertas lógicas de la figura 3-33 ofrece una interpretación única de la manera en que opera la compuerta. Antes de demostrar estas
interpretaciones debemos establecer el concepto de los niveles lógicos activos.
Cuando una línea de entrada o de salida en el símbolo de un circuito lógico no
tiene burbuja, se dice que está activa en ALTO. Cuando una línea de entrada o de
salida tiene una burbuja, se dice que está activa en BAJO. Por lo tanto, la presencia
o ausencia de una burbuja determina el estado activo en BAJO /activo en ALTO respectivamente, de las entradas y la salida de un circuito, y se utiliza para interpretar
la operación del mismo.
Para ilustrar lo anterior, la figura 3-34(a) muestra el símbolo estándar para una
compuerta NAND. Este símbolo estándar tiene una burbuja en su salida y no tiene
burbujas en sus entradas. Por lo tanto, tiene una salida activa en BAJO y entradas
activas en ALTO. En consecuencia, la operación lógica que representa este símbolo
puede interpretarse de la siguiente manera:
La salida cambia a BAJO sólo cuando todas las entradas están en ALTO.
Observe que esto dice que la salida cambiará a su estado activo sólo cuando
todas las entradas se encuentren en sus estados activos. Se utiliza la palabra todas
debido al símbolo AND.
FIGURA 3-34
Interpretación
de los dos símbolos de
compuertas NAND.
A
La salida cambia a BAJO
sólo cuando todas las
entradas están en ALTO.
AB
B
Activa en ALTO
El estado BAJO es
el estado activo.
(a)
La salida está en ALTO
cuando cualquier entrada
está en BAJO.
A + B = AB
A
B
Activa en BAJO
El estado ALTO es
el estado activo.
(b)
El símbolo alterno para una compuerta NAND que se muestra en la figura 3-34(b)
tiene una salida activa en ALTO y entradas activas en BAJO, por lo que su operación
puede declararse así:
La salida cambia a ALTO cuando cualquier entrada está en BAJO.
Esto quiere decir que la salida estará en su estado activo cuando cualquiera de
las entradas se encuentre en su estado activo. Se utiliza la palabra cualquiera debido
al símbolo OR.
Si lo analiza un poco, podrá ver que las dos interpretaciones para los símbolos
NAND de la figura 3-34 son maneras distintas de decir lo mismo.
SECCIÓN 3-14/CUÁL REPRESENTACIÓN DE COMPUERTA SE DEBE USAR
89
Resumen
En estos momentos tal vez se esté preguntando por qué la necesidad de tener dos
símbolos e interpretaciones distintas para cada una de las compuertas lógicas. Esperamos que las razones para ello se aclaren después de que lea la siguiente sección.
Por ahora vamos a resumir los puntos importantes en relación con las representaciones de las compuertas lógicas.
1. Para obtener el símbolo alternativo para una compuerta lógica, tome el símbolo
estándar y cambie su símbolo de operación (OR a AND, o AND a OR). Cambie
también las burbujas tanto en las entradas como en la salida (es decir, elimine
las burbujas que estén presentes y agregue otras en donde no haya).
2. Para interpretar la operación de una compuerta lógica, primero observe cuál
estado lógico (0 o 1) es el activo para las entradas y cuál es el activo para la salida. Después tome en cuenta que el estado activo de la salida se produce al tener
todas las entradas en su estado activo (si se utiliza un símbolo AND) o cualquiera
de las entradas en su estado activo (si se utiliza un símbolo OR).
EJEMPLO 3-19
Proporcione la interpretación de los dos símbolos de compuerta OR.
Solución
Los resultados se muestran en la figura 3-35. Observe que se utiliza la palabra cualquiera cuando el símbolo de operación es un OR y la palabra todas cuando se usa un
AND.
FIGURA 3-35
Interpretación
de los dos símbolos de
compuerta OR.
A
La salida cambia a ALTO
cuando cualquiera de sus
entradas se encuentra en ALTO.
A+B
B
Activa en ALTO
El estado ALTO
es el estado activo.
(a)
A
A•B=A+B
B
Activa en BAJO
La salida cambia a BAJO
sólo cuando todas sus
entradas están en BAJO.
El estado BAJO
es el estado activo.
(b)
PREGUNTAS DE REPASO
1. Escriba la interpretación de la operación que realiza el símbolo estándar de la
compuerta NOR de la figura 3-33.
2. Repita la pregunta 1 para el símbolo alternativo de la compuerta NOR.
3. Repita la pregunta 1 para el símbolo alternativo de la compuerta AND.
4. Repita la pregunta 1 para el símbolo estándar de la compuerta AND.
3-14 CUÁL REPRESENTACIÓN DE COMPUERTA SE DEBE USAR
Algunos diseñadores de circuitos lógicos y algunos libros de texto sólo utilizan los
símbolos estándar de las compuertas lógicas en los diagramas esquemáticos de sus
circuitos. Aunque esta práctica es correcta, no facilita el seguimiento de la operación del circuito. El uso apropiado de los símbolos de compuerta alternativos en el
90
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
FIGURA 3-36
(a) Circuito original
que utiliza símbolos
NAND estándar;
(b) representación
equivalente en la
cual la salida Z es
activa en ALTO;
(c) representación
equivalente en la cual
la salida Z es activa
en BAJO; (e) tabla de
verdad.
A
1
B
3
Z
C
2
D
(a)
A
1
X
B
3
C
Z
Activa en ALTO
2
Y
D
(b)
A
1
X
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Z
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
(d)
B
3
Z
C
2
D
Y
Activa en BAJO
(c)
diagrama puede hacer mucho más clara la operación del circuito. Para ilustrar lo
anterior consideremos el ejemplo que se muestra en la figura 3-36.
El circuito de la figura 3-36(a) contiene tres compuertas NAND conectadas para
producir una salida Z que depende de las entradas A, B, C y D. El diagrama del circuito utiliza el símbolo estándar para cada una de las compuertas NAND. Aunque
la lógica de este diagrama es correcta, no facilita una comprensión de la manera en
que funciona el circuito. Sin embargo, las representaciones que se muestran en las
figuras 3-36(b) y (c) pueden analizarse con más facilidad para determinar la operación del circuito.
La representación de la figura 3-36(b) se obtiene a partir del diagrama del circuito original, sustituyendo la compuerta NAND 3 con su símbolo alternativo. En
este diagrama la salida Z se toma del símbolo de una compuerta NAND que tiene
una salida activa en ALTO. Por ende, podemos decir que Z cambiará a ALTO cuando
X o Y estén en BAJO. Ahora, como X y Y aparecen cada una en la salida de símbolos
NAND que tienen salidas activas en BAJO, podemos decir que X cambiará a BAJO
sólo si A B 1, y que Y cambiará a BAJO sólo si C D 1. Ahora podemos describir la operación del circuito de la siguiente manera:
La salida Z cambiará a ALTO siempre que A B 1 o cuando C D 1
(o en ambos casos).
Esta descripción puede traducirse al formato de tablas de verdad si se establece Z 1 para aquellos casos en los que A B 1 y para aquellos casos en los que
C D 1. Para todos los demás casos, Z se hace 0. La tabla de verdad resultante se
muestra en la figura 3-36(d).
La representación de la figura 3-36(c) se obtiene a partir del diagrama del circuito original, sustituyendo las compuertas NAND 1 y 2 por sus símbolos alternativos.
91
SECCIÓN 3-14/CUÁL REPRESENTACIÓN DE COMPUERTA SE DEBE USAR
En esta representación equivalente, la salida Z se toma de una compuerta NAND
en la cual su salida sea activa en BAJO. Por lo tanto, podemos decir que Z cambiará
a BAJO sólo cuando X Y 1. Como X y Y son salidas activas en ALTO, podemos
decir que X cambiará a ALTO cuando A o B estén en BAJO, y que Y cambiará a ALTO
cuando C o D estén en BAJO. De todo esto podemos concluir que la operación del
circuito es la siguiente:
La salida Z cambiará a BAJO sólo cuando A o B estén en BAJO y C o D
estén en BAJO.
Esta descripción puede traducirse al formato de tablas de verdad si hacemos
que Z 0 para todos los casos en los que cuando menos una de las entradas A o B
esté en BAJO al mismo tiempo que cuando menos una de las entradas C o D esté en
BAJO. Para todos los demás casos, Z se hace 1. La tabla de verdad resultante es la
misma que la que obtuvimos para el diagrama del circuito de la figura 3-36(b).
¿Cuál diagrama de circuito debe usarse?
La respuesta a esta pregunta depende de la función específica que vaya a realizar la
salida del circuito. Si se va a utilizar para producir cierta acción (por ejemplo, encender un LED o activar otro circuito lógico) cuando la salida Z cambia al estado 1,
entonces decimos que Z debe ser activa en ALTO, y debemos usar el diagrama
del circuito de la figura 3-36(b). Por otro lado, si el circuito se va a utilizar para producir cierta acción cuando Z cambia al estado 0, entonces Z debe ser activa en
BAJO, y debemos usar el diagrama de la figura 3-36(c).
Desde luego que habrá situaciones en las que se utilicen ambos estados de la
salida para producir distintas acciones, y cualquiera de ellos podría considerarse
como el estado activo. Para estos casos puede utilizarse cualquiera de las dos representaciones del circuito.
Colocación de las burbujas
Consulte la representación del circuito de la figura 3-36(b) y observe que se seleccionaron los símbolos para las compuertas NAND 1 y 2 de manera que tengan salidas
activas en BAJO, para hacer que coincidan con las entradas activas en BAJO de la
compuerta NAND 3. Consulte la representación del circuito de la figura 3-36(c) y
observe que se seleccionaron los símbolos para las compuertas NAND 1 y 2 de manera que tengan salidas activas en ALTO, para hacer que coincidan con las entradas
activas en ALTO de la compuerta NAND 3. Esto nos conduce a la siguiente regla
general para preparar diagramas esquemáticos de circuitos lógicos:
Siempre que sea posible, seleccione símbolos de compuerta de manera
que las salidas con burbuja se conecten a las entradas con burbuja, y las
salidas sin burbuja se conecten a las entradas sin burbuja.
Los siguientes ejemplos demostrarán cómo aplicar esta regla.
EJEMPLO 3-20
El circuito lógico de la figura 3-37(a) se utiliza para activar una alarma cuando la
salida Z cambie a ALTO. Modifique el diagrama del circuito de manera que represente la operación del mismo de una manera más eficiente.
A
A
Z
2
B
C
Z
ALARMA
2
B
C
1
1
D
D
(a)
FIGURA 3-37
Ejemplo 3-20.
(b)
ALARMA
92
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
Solución
Como la condición Z 1 activa la alarma, Z debe ser activa en ALTO. Por ende, el
símbolo de la compuerta AND 2 no tiene que cambiarse. El símbolo de la compuerta
NOR debe cambiarse por su símbolo alternativo con una salida sin burbuja (activa
en ALTO) para que concuerde con la entrada sin burbuja de la compuerta AND 2,
como se muestra en la figura 3-37(b). Observe que ahora el circuito tiene salidas sin
burbuja conectadas a las entradas sin burbuja de la compuerta 2.
EJEMPLO 3-21
FIGURA 3-38 Ejemplo
3-21.
Cuando la salida del circuito lógico de la figura 3-38(a) cambia a BAJO, activa otro
circuito lógico. Modifique el diagrama del circuito para representar la operación del
mismo más eficazmente.
A
A
1
1
B
B
C
Z
C
Z
2
2
D
D
E
E
(a)
(b)
Solución
Como Z debe ser activa en BAJO, debemos cambiar el símbolo para la compuerta
OR 2 por su símbolo alterno, como se muestra en la figura 3-38(b). El nuevo símbolo
de la compuerta OR 2 tiene entradas con burbujas, por lo que los símbolos de la
compuerta AND y de la compuerta OR 1 deben cambiarse por símbolos que tengan
salidas con burbuja, como se muestra en la figura 3-38(b). El INVERSOR ya tiene
una salida con burbuja. Ahora el circuito tiene todas sus salidas con burbuja conectadas a las entradas con burbuja de la compuerta OR 2.
Análisis de circuitos
Cuando se dibuja el diagrama esquemático de un circuito lógico utilizando las reglas
que hemos seguido en estos ejemplos, es mucho más fácil para un ingeniero, técnico
o estudiante seguir el flujo de la señal a través del circuito y determinar las condiciones de entrada necesarias para activar la salida. Ilustraremos esto en los siguientes ejemplos que, por coincidencia, utilizan diagramas de circuitos tomados de los
diagramas esquemáticos lógicos de una microcomputadora real.
EJEMPLO 3-22
El circuito lógico de la figura 3-39 genera una salida llamada MEM que se utiliza para activar los circuitos integrados de memoria en cierta microcomputadora.
Determine las condiciones de entrada necesarias para activar a MEM.
93
SECCIÓN 3-14/CUÁL REPRESENTACIÓN DE COMPUERTA SE DEBE USAR
FIGURA 3-39
3-22.
Ejemplo
X
RD
MEM
ROM-A
W
ROM-B
Y
RAM
V
Solución
Una manera de hacerlo sería escribir la expresión para MEM en términos de las
entradas RD, ROM-A, ROM-B y RAM, y evaluarla para las 16 combinaciones posibles
de estas entradas. Aunque este método sí funcionaría, se requeriría mucho más trabajo del necesario.
Un método más eficiente es interpretar el diagrama del circuito utilizando las
ideas que hemos desarrollado en las últimas dos secciones. Éstos son los pasos:
1.
2.
3.
4.
5.
6.
EJEMPLO 3-23
FIGURA 3-40
3-23.
MEM es activa en BAJO y cambará a BAJO sólo cuando X y Y estén en ALTO.
X estará en ALTO sólo cuando RD 0.
Y estará en ALTO cuando W o V estén en ALTO.
V estará en ALTO cuando RAM 0.
W estará en ALTO cuando ROM-A o ROM-B 0.
Con todo esto podemos deducir que MEM cambiará a BAJO sólo cuando RD 0
y cuando menos una de las tres entradas ROM-A, ROM-B o RAM esté en BAJO.
El circuito lógico de la figura 3-40 se utiliza para controlar el motor de control del
eje de una unidad de disco flexible cuando la microcomputadora envía o recibe
datos hacia o desde el disco. El circuito encenderá el motor cuando UNIDAD 1.
Determine las condiciones necesarias de entrada para encender el motor.
Ejemplo
A1
Nota: Todas las compuertas son CMOS
A2
A3
A4
W
74HC30
Y
A5
74HC32
74HC02
A6
A7
A0
ENTRADA
X
74HC02
SALIDA
UNIDAD
94
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
Solución
Una vez más, interpretaremos el diagrama paso por paso:
UNIDAD estará activa en BAJO y cambiará a ALTO sólo cuando X Y 0.
X estará en BAJO cuando ENTRADA o SALIDA estén en ALTO.
Y estará en BAJO sólo cuando W 0 y A0 0.
W estará en BAJO sólo cuando todas las entradas de la A1 a la A7 estén en
ALTO.
5. De todo esto podemos deducir que UNIDAD estará en ALTO cuando A1 A2
A3 A4 A5 A6 A7 1 y A0 0, y cuando ni ENTRADA o SALIDA ni ambas
estén en 1.
1.
2.
3.
4.
Observe el extraño símbolo para la compuerta NAND CMOS de ocho entradas (74HC30);
observe además que la señal A7 está conectada a dos de las entradas NAND.
Niveles asignados
Hemos estado describiendo las señales lógicas como activas en BAJO o activas en
ALTO. Por ejemplo, la salida MEM en la figura 3-39 es activa en BAJO y la salida
UNIDAD en la figura 3-40 es activa en ALTO, ya que son los estados de salida que
hacen que ocurra algo. De manera similar, la figura 3-40 tiene las entradas de la A0
a la A7 activas en ALTO y la entrada A0 activa en BAJO.
Cuando una señal lógica se encuentra en su estado activo, podemos decir que
está asignada. Por ejemplo, cuando decimos que la entrada A0 está asignada, significa que se encuentra en su estado de activa en BAJO. Cuando una señal no se encuentra en su estado activo, se dice que está no asignada. Por ende, cuando decimos que
UNIDAD está no asignada, significa que se encuentra en su estado inactivo (bajo).
Es evidente que los términos asignado y no asignado son sinónimos de activo e
inactivo, respectivamente:
asignado activo
no asignado inactivo
Ambos conjuntos de términos son de uso común en el campo digital, por lo que usted
debe ser capaz de reconocer ambas formas de describir el estado activo de una señal
lógica.
Etiquetado de señales lógicas activas en BAJO
El uso de una barra superior para etiquetar las señales activas en BAJO se ha convertido en práctica común. La barra superior sirve como otra indicación de que la
señal es activa en BAJO; desde luego que la ausencia de una barra superior indica
que la señal es activa en ALTO.
Como ejemplo, todas las señales de la figura 3-39 son activas en BAJO y pueden
etiquetarse de la siguiente manera:
RD,
ROM-A,
ROM-B,
RAM ,
MEM
Recuerde que la barra superior es sólo una manera de enfatizar que estas señales son activas en BAJO. Emplearemos esta convención para etiquetar las señales
lógicas siempre que sea apropiado.
Etiquetado de señales biestado
Es muy común que una señal de salida tenga dos estados activos; es decir, que tiene
una función importante en el estado ALTO y otra en el estado BAJO. Es costumbre
etiquetar dichas señales de manera que ambos estados activos sean aparentes. Un
ejemplo común es la señal de lectura/escritura RD/WR, la cual se interpreta de la
siguiente manera: cuando esta señal está en ALTO se realiza la operación de lectura
(RD); cuando está en BAJO se realiza la operación de escritura (WR).
SECCIÓN 3-15/SÍMBOLOS LÓGICOS DEL ESTÁNDAR IEEE/ANSI
PREGUNTAS DE REPASO
95
1. Use el método de los ejemplos 3-22 y 3-23 para determinar las condiciones de
entrada necesarias para activar la salida del circuito de la figura 3-37(b).
2. Repita la pregunta 1 para el circuito de la figura 3-38(b).
3. ¿Cuántas compuertas NAND se muestran en la figura 3-39?
4. ¿Cuántas compuertas NOR se muestran en la figura 3-40?
5. ¿Cuál será el nivel de salida en la figura 3-38(b) cuando todas las entradas estén
asignadas?
6. ¿Qué entradas se requieren para asignar la salida de alarma en la figura 3-37(b)?
7. ¿Cuál de las siguientes señales es activa en BAJO: RD, W, R/W?
3-15 SÍMBOLOS LÓGICOS DEL ESTÁNDAR IEEE/ANSI
Los símbolos lógicos que hemos utilizado hasta ahora en este capítulo son los símbolos estándar tradicionales utilizados en la industria digital durante muchos, muchos
años. Estos símbolos tradicionales utilizan una forma distintiva para cada compuerta lógica. En 1984 se desarrolló un estándar más reciente para los símbolos lógicos;
a éste se le conoce como Estándar IEEE/ANSI 91-1984 para símbolos lógicos. El
estándar IEEE/ANSI utiliza símbolos rectangulares para representar todas las compuertas y circuitos lógicos. Una notación de dependencia especial dentro del símbolo
rectangular indica cómo dependen las salidas del dispositivo de sus entradas. La
figura 3-41 muestra los símbolos IEEE/ANSI a un lado de los símbolos tradicionales
para las compuertas lógicas básicas. Observe los siguientes puntos:
1. Los símbolos rectangulares utilizan un pequeño triángulo rectángulo ( ) en
lugar de la pequeña burbuja de los símbolos tradicionales para indicar la inversión del nivel lógico. La presencia o ausencia del triángulo también indica si una
entrada o salida es activa en nivel BAJO o ALTO.
FIGURA 3-41
Símbolos lógicos
estándar:
(a) tradicionales;
(b) IEEE/ANSI.
NOT
x
A
A
1
x
&
x
≥1
x
&
x
≥1
x
AND
A
A
x
B
B
OR
A
A
x
B
B
NAND
A
A
x
B
B
NOR
A
A
x
B
B
(a)
(b)
96
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
2. Una notación especial dentro de cada símbolo rectangular describe la relación
lógica entra las entradas y la salida. El “1” dentro del símbolo INVERSOR denota un dispositivo con sólo una entrada; el triángulo en la salida indica que ésta
cambiará al estado activo en BAJO cuando la entrada se encuentre en su estado
activo en ALTO. El “&” dentro del símbolo AND significa que la salida cambiará a su estado activo en ALTO cuando todas las entradas se encuentren en el
estado activo en ALTO. El “ ” dentro de la compuerta OR indica que la salida
cambiará a su estado activo (ALTO) siempre que cualquiera de las entradas se
encuentre en su estado activo (ALTO).
3. Los símbolos rectangulares para las compuertas NAND y NOR son los mismos
que para las compuertas AND y OR, respectivamente, con la adición del pequeño triángulo inversor en la salida.
¿Tradicional o IEEE/ANSI?
El estándar IEEE/ANSI no ha sido muy aceptado todavía en el campo digital, aunque
tal vez se encuentre con él en algunos diagramas esquemáticos de equipos recientes.
La mayoría de los libros de datos de CI digitales incluyen los símbolos tradicionales y
también los de IEEE/ANSI, ya que es posible que este estándar, más reciente, se utilice cada vez más. En la mayoría de los diagramas de circuitos de este libro emplearemos los símbolos tradicionales.
PREGUNTAS DE REPASO
1. Dibuje todas las compuertas lógicas básicas tanto con los símbolos tradicionales
como con los símbolos IEEE/ANSI.
2. Dibuje el símbolo IEEE/ANSI para una compuerta NOR con la salida activa en
ALTO.
3-16 RESUMEN DE LOS MÉTODOS PARA DESCRIBIR CIRCUITOS
LÓGICOS
Los temas que hemos visto en este capítulo están centrados alrededor de sólo tres
funciones lógicas simples que conocemos como AND, OR y NOT. El concepto no es
nuevo, ya que todos usamos estas funciones lógicas en nuestra vida diaria cuando
tomamos decisiones. He aquí algunos ejemplos lógicos. Si está lloviendo O (OR) el
periódico dice que podría llover, entonces llevaré mi paraguas. Si recibo mi cheque
de nómina hoy Y (AND) llego al banco, entonces tendré dinero para gastar esta tarde.
Si tengo una calificación aprobatoria en teoría Y (AND) NO (NOT) he fallado en el
laboratorio, entonces aprobaré mi clase de circuitos digitales. En estos momentos
tal vez usted se pregunte por qué hemos invertido tantos esfuerzos para describir
estos conceptos familiares. La respuesta puede resumirse en dos puntos clave:
1. Debemos ser capaces de representar estas decisiones lógicas.
2. Debemos ser capaces de combinar estas funciones lógicas y de implementar un
sistema de toma de decisiones.
Hemos aprendido a representar cada una de las funciones lógicas básicas mediante
el uso de:
Declaraciones lógicas en nuestro propio lenguaje.
Tablas de verdad.
Símbolos lógicos gráficos tradicionales.
97
SECCIÓN 3-16/RESUMEN DE LOS MÉTODOS PARA DESCRIBIR CIRCUITOS. . .
Símbolos lógicos del estándar IEEE/ANSI.
Expresiones de álgebra booleana.
Diagramas de tiempos.
EJEMPLO 3-24
La siguiente expresión describe la manera en que un circuito lógico necesita operar
para poder controlar un indicador de advertencia del cinturón de seguridad de un
automóvil.
Si el conductor está presente Y (AND) el conductor NO (NOT) tiene el
cinturón enganchado Y (AND) el interruptor de encendido está activado,
ENTONCES encender la luz de advertencia.
Describa el circuito utilizando álgebra booleana, diagramas esquemáticos con símbolos lógicos, tablas de verdad y diagramas de tiempos.
Solución
Vea la figura 3-42.
Expresión booleana
luz_advertencia 5 conductor_presente • cinturon_enganchado • interruptor_encendido
(a)
Diagrama esquemático
conductor_presente
cinturon_enganchado
Luz_advertencia
interruptor_encendido
(b)
Tabla de verdad
conductor_presente cinturon_enganchado interruptor_encendido
Luz_advertencia
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
(c)
Diagrama de tiempos
Nombre
Val
ignition_on
0
buckled_up
0
1.0 ms
2.0 ms
3.0 ms
4.0 ms
5.0 ms
6.0 ms
7.0 ms
8.0 ms
9.0 ms
10 m
driver_present 1
warning_light
0
(d)
FIGURA 3-42 Métodos para describir circuitos lógicos: (a) expresión booleana; (b) diagrama esquemático;
(c) tablas de verdad; (d) diagrama de tiempos.
98
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
La figura 3-42 muestra cuatro maneras distintas de representar el circuito lógico que
se describió verbalmente en el problema del ejemplo 3-24. Hay muchas otras formas
en que podríamos representar la lógica para esta decisión. Como ejemplo podríamos
idear todo un conjunto nuevo de símbolos gráficos, o enunciar la relación lógica en
un idioma diferente como francés o japonés. Desde luego que no podemos cubrir
todas las formas posibles de describir un circuito lógico, pero debemos comprender
los métodos más comunes para poder comunicarnos con otras personas en esta profesión. Lo que es más, ciertas situaciones son más fáciles de describir si utilizamos
un método en lugar de otro. En algunos casos una imagen vale más que mil palabras;
en otros las palabras son lo bastante concisas y se comunican con más facilidad a los
demás. El punto importante aquí es que necesitamos formas de describir y comunicar la operación de los sistemas digitales.
PREGUNTAS DE REPASO
1. Nombre cinco formas de describir la operación de los circuitos lógicos.
3-17 COMPARACIÓN ENTRE LENGUAJES DE DESCRIPCIÓN
Y LENGUAJES DE PROGRAMACIÓN*
Las tendencias recientes en el campo de los sistemas digitales están a favor de la
descripción de los circuitos digitales mediante el lenguaje basado en texto. Tal vez
usted haya notado que cada método de descripción de la figura 3-42 presenta obstáculos para introducir los datos a la computadora, ya sea por las barras superiores,
los símbolos, el formato o el dibujo de líneas. En esta sección empezaremos a conocer algunas de las herramientas más avanzadas que utilizan los profesionales en el
área de sistemas digitales para describir los circuitos que implementan sus ideas. A
estas herramientas se les conoce como lenguajes de descripción de hardware (HDL).
Aún con las poderosas computadoras que tenemos actualmente, no es posible describir un circuito lógico en lenguaje común (como español o inglés) y esperar que
la computadora lo entienda. Las computadoras necesitan un lenguaje definido con
más rigidez. En este libro nos enfocaremos en dos lenguajes: el lenguaje de descripción de hardware de Altera (AHDL) y el lenguaje de descripción de hardware para
circuitos integrados de muy alta velocidad (VHDL).
VHDL y AHDL
VHDL no es un lenguaje nuevo. El Departamento de Defensa de los Estados Unidos
lo desarrolló a principios de la década de 1980 como una forma concisa de documentar los diseños en el proyecto de circuitos integrados de muy alta velocidad
(VHSIC). Como era demasiado adjuntar HDL a este acrónimo (incluso hasta para
los militares), el lenguaje se abrevió como VHDL. Se desarrollaron programas de
computadora para tomar los archivos de lenguaje VHDL y simular la operación
de los circuitos. Con el crecimiento de los dispositivos lógicos programables complejos en los sistemas digitales, VHDL ha evolucionado para convertirse en uno de
los principales lenguajes de descripción de hardware de alto nivel para diseñar
e implementar circuitos digitales (síntesis). El IEEE estandarizó este lenguaje, con
lo cual se hizo atractivo para los ingenieros, así como para los fabricantes de herramientas de software que traducen los diseños a los patrones de bits utilizados para
programar los dispositivos reales.
AHDL es un lenguaje desarrollado por Altera Corporation para ofrecer una forma conveniente de configurar los dispositivos lógicos que ofrecen. Altera fue una de
las primeras compañías en introducir dispositivos lógicos que pueden reconfigurarse
* Se pueden omitir todas las secciones que hablan sobre los lenguajes de descripción de hardware sin
perder la continuidad en el balance de los capítulos del 1 al 12.
SECCIÓN 3-17/COMPARACIÓN ENTRE LENGUAJES DE DESCRIPCIÓN Y. . .
99
mediante electrónica. A estos dispositivos se les conoce como dispositivos lógicos programables (PLDs). A diferencia del VHDL, este lenguaje no está diseñado para usarse
como un lenguaje universal para describir cualquier circuito lógico, sino para programar sistemas digitales complejos en PLDs de Altera, en un lenguaje que se perciba
en general como más sencillo de aprender, pero que es muy similar al VHDL. También
cuenta con características que aprovechan por completo la arquitectura de los dispositivos de Altera. En todos los ejemplos de este libro utilizaremos el software Altera
MAX PLUS II o Quartus II para desarrollar archivos de diseño en AHDL y VHDL.
Podrá ver la ventaja de usar el sistema de desarrollo de Altera para ambos lenguajes
cuando programe un dispositivo real. El sistema de Altera facilita el desarrollo de
circuitos en forma considerable; además, contiene todas las herramientas necesarias
para traducir el archivo de diseño de HDL a uno listo para cargarse en un PLD de Altera. También le permite desarrollar bloques de construcción mediante la introducción
de diagramas esquemáticos, AHDL, VHDL y otros métodos, para después interconectar esos bloques y formar un sistema completo.
Hay otros HDLs disponibles que son más adecuados para programar dispositivos lógicos más simples. Después de que, con la ayuda de este libro, aprenda los
fundamentos de AHDL o VHDL, le parecerá fácil utilizar cualquiera de los otros
lenguajes.
Lenguajes de programación de computadoras
Es importante diferenciar entre los lenguajes de descripción de hardware, que están
diseñados para describir la configuración de hardware de un circuito, y los lenguajes de programación que representan una secuencia de instrucciones que deben
ser llevadas a cabo por una computadora para realizar cierta tarea. En ambos casos
utilizamos un lenguaje para programar un dispositivo. No obstante, las computadoras son sistemas digitales complejos que se fabrican a partir de circuitos lógicos.
Las computadoras operan mediante el seguimiento de una lista de tareas (es decir,
instrucciones o “el programa”), cada una de las cuales debe realizarse en un orden
secuencial. La velocidad de operación se determina con base en la rapidez de la
computadora para ejecutar cada instrucción. Por ejemplo, si una computadora fuera
a responder a cuatro entradas distintas, requeriría cuando menos cuatro instrucciones (tareas secuenciales) para detectar e identificar cuál entrada cambió de estado.
Por otro lado, la velocidad de un circuito lógico digital está limitada sólo por la rapidez con la que la circuitería pueda cambiar las salidas en respuesta a los cambios en
las entradas. Supervisa todas las entradas en forma concurrente (al mismo tiempo)
y responde a cualquier cambio.
La siguiente analogía le ayudará a comprender la diferencia entre la operación
de una computadora y la operación de un circuito lógico digital, junto con el papel de
los elementos de lenguaje que se utilizan para describir lo que hacen los sistemas.
Considere el reto de describir lo que se le hace a un auto de carreras durante
una parada en los pits. Si una sola persona realizara todas las tareas necesarias, una
por una, tendría que ser muy rápida. Ésta es la forma en la que opera una computadora: una tarea a la vez, pero con mucha rapidez. Desde luego que en las competencias
de autos hay todo un equipo de mecánicos en los pits que invade el auto, y cada
miembro realiza su tarea mientras los demás realizan la suya. Todos los miembros del
equipo operan en forma concurrente, al igual que los elementos de un circuito digital. Ahora considere la forma en que usted describiría a alguien más lo que se está
haciendo al auto de carreras durante la parada en los pits, utilizando (1) el enfoque
del mecánico individual o (2) el enfoque del equipo de mecánicos. ¿No serían muy
similares las dos descripciones verbales de lo que se está haciendo? Como veremos,
los lenguajes que se utilizan para describir el hardware digital (HDL) son muy similares a los lenguajes que describen los programas de computadora (por ejemplo,
BASIC, C, JAVA), aún y cuando la implementación resultante opera en formas muy
distintas. No es necesario conocer cualquiera de estos lenguajes de programación
para comprender el HDL. Lo importante es que cuando usted haya aprendido a usar
tanto el HDL como un lenguaje de computadora, deberá comprender el papel particular de cada uno en los sistemas digitales.
100
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
EJEMPLO 3-25
Compare la operación de una computadora y un circuito lógico al realizar la operación lógica simple de y AB.
Solución
El circuito lógico es una simple compuerta AND. La salida y estará en ALTO dentro
de un lapso aproximado de 10 nanosegundos después del punto en el que A y B estén
en ALTO al mismo tiempo. La salida y estará en BAJO dentro de un lapso aproximado
de 10 nanosegundos después de que cualquiera de las entradas cambie a BAJO.
La computadora debe ejecutar un programa de instrucciones que realice decisiones. Suponga que cada instrucción toma 20 ns (bastante rápido). Cada figura del
diagrama de flujo que se muestra en la figura 3-43 representa una instrucción. Es
evidente que se requerirá un mínimo de dos o tres instrucciones (40-60 ns) para responder a los cambios en las entradas.
FIGURA 3-43 El
proceso de decisiones
de un programa de
computadora.
No
¿Está A en ALTO?
Sí
No
Hacer que y
cambie a BAJO
¿Está B en ALTO?
Hacer que y
cambie a BAJO
Sí
Hacer que y
cambie a ALTO
Regresar y repetir
PREGUNTAS DE REPASO
1.
2.
3.
4.
¿Qué significa HDL?
¿Cuál es el propósito de un HDL?
¿Cuál es el propósito de un lenguaje de programación de computadoras?
¿Cuál es la diferencia clave entre el HDL y los lenguajes de programación de
computadoras?
3-18 IMPLEMENTACIÓN DE CIRCUITOS LÓGICOS CON PLDS
En la actualidad, muchos circuitos digitales se implementan mediante el uso de
dispositivos lógicos programables (PLDs). Estos dispositivos no son como las microcomputadoras o los microcontroladores, los cuales “ejecutan” un programa de instrucciones. En vez de ello se configuran en forma electrónica y sus circuitos internos
están “alambrados” entre sí en forma electrónica para formar un circuito lógico.
Este alambrado programable puede considerarse como miles de conexiones que
están conectadas (1) o no conectadas (0). La figura 3-44 muestra una pequeña área
de conexiones programables. Cada cruce de una fila (alambre horizontal) y una
columna (alambre vertical) es una conexión programable. Es fácil imaginar lo difícil
SECCIÓN 3-18/IMPLEMENTACIÓN DE CIRCUITOS LÓGICOS CON PLDS
FIGURA 3-44
Configuración de
las conexiones
de hardware con
los dispositivos lógicos
programables.
101
ENTRADAS A
B
digitales
C
D
E
F
G
H
Circuitos
lógicos
Matriz de conexiones programables
que sería tratar de configurar estos dispositivos mediante la colocación de 1s y 0s en
una matriz en forma manual (que es como se hacía en la década de 1970).
El papel del lenguaje de descripción de hardware es proporcionar una manera
concisa y conveniente para que el diseñador describa la operación del circuito en
un formato que una computadora personal pueda manejar y almacenar adecuadamente. La computadora ejecuta una aplicación de software especial llamada compilador para traducir el lenguaje de descripción de hardware en la matriz de 1s y
0s que pueden cargarse en el PLD. Si una persona puede dominar el lenguaje de
descripción de hardware de mayor nivel, le será más fácil programar los PLDs que
tratar de usar álgebra booleana, dibujos esquemáticos o tablas de verdad. En forma muy parecida a como aprendemos un idioma, empezaremos por expresar cosas
simples y poco a poco iremos aprendiendo los aspectos más complicados de estos
lenguajes. Nuestro objetivo es que aprenda lo suficiente sobre HDL como para que
se comunique con los demás y realice tareas simples. La total comprensión de todos
los detalles sobre estos lenguajes es algo que está fuera del alcance de este libro, ya
que sólo puede dominarse mediante la práctica regular.
En las secciones de este libro que tratan acerca de los HDLs presentaremos
tanto a AHDL como a VHDL en un formato que le permita omitir un lenguaje y concentrarse en el otro sin perderse de información importante. Desde luego que esto
implica que habrá cierta información redundante presente si usted opta por leer
sobre ambos lenguajes. Sentimos que esta redundancia vale el esfuerzo de proporcionarle la flexibilidad de enfocarse en cualquiera de los dos lenguajes, o de aprender ambos al comparar y contrastar ejemplos similares. La forma recomendada de
utilizar el libro es enfocarse en un lenguaje. Es cierto que la manera más sencilla
de volverse bilingüe y eficiente en ambos lenguajes es crecer en un entorno en el
que ambos lenguajes se hablen de manera rutinaria. No obstante, también es muy
fácil confundir los detalles, por lo que mantendremos los ejemplos específicos separados e independientes. Esperamos que este formato le brinde la oportunidad de
aprender un lenguaje ahora y, más adelante, utilizar este libro como referencia, en
caso de que necesite aprender el segundo lenguaje.
PREGUNTAS DE REPASO
1. ¿Qué significa PLD?
2. ¿Cómo se reconfiguran los circuitos en forma electrónica en un PLD?
3. ¿Qué hace un compilador?
102
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
3-19 FORMATO Y SINTAXIS DEL HDL
Todos los lenguajes tienen sus propiedades particulares, sus similitudes con otros
lenguajes y su propia sintaxis. Cuando estudiamos gramática en la escuela, aprendemos convenciones tales como el orden de las palabras como elementos en una
oración y la puntuación apropiada. A esto se le conoce como la sintaxis del lenguaje. Un lenguaje diseñado para que la computadora lo interprete debe seguir reglas
estrictas de sintaxis. Una computadora es tan sólo un conjunto de alambre y arena
de playa procesada (silicio) que no tiene idea de lo que uno “quiere” darle a entender, por lo que debemos presentar las instrucciones usando la sintaxis exacta que el
lenguaje de computadora espera y comprende. El formato básico de la descripción
de cualquier circuito de hardware, en cualquier lenguaje, implica dos elementos
vitales:
1. La definición de lo que entra al circuito y lo que sale de éste, es decir las especificaciones de entradas/salidas.
2. La definición de la forma en que las salidas responden a las entradas, es decir
su operación.
FIGURA 3-45
Descripción de un
diagrama esquemático.
a
b
ENTRADA
AND2
SALIDA
ENTRADA
y
Un ingeniero o técnico competente podría leer un diagrama esquemático como
el de la figura 3-45, ya que ambos comprenderían el significado de cada uno de los
símbolos en el dibujo. Si usted comprende cómo funciona cada elemento y cómo se
conectan los elementos entre sí, podrá comprender la forma en que opera el circuito.
En el lado izquierdo del diagrama está el conjunto de entradas y a la derecha está
el conjunto de salidas. Los símbolos del centro definen su operación. El lenguaje
basado en texto debe transmitir la misma información. Todos los HDLs utilizan el
formato que se muestra en la figura 3-46.
FIGURA 3-46 Formato
de los archivos de HDL.
Documentación
Definiciones de E/S
Descripción funcional
En un lenguaje basado en texto, el circuito que se describe debe tener un nombre. Se deben asignar nombres a las entradas y las salidas (algunas veces llamadas
puertos), y se deben definir de acuerdo con la naturaleza del puerto. ¿Es un bit
individual de un interruptor? ¿O es un número de cuatro bits que proviene de un
teclado numérico? El lenguaje basado en texto debe transmitir de alguna forma la
naturaleza de estas entradas y salidas. El modo de un puerto define si es de entrada,
de salida o de entrada/salida. El tipo se refiere al número de bits y la manera en que
éstos se agrupan y se interpretan. Si el tipo de entrada es de un solo bit, entonces
sólo puede tener dos valores posibles: 0 y 1. Si el tipo de entrada es un número binario de cuatro bits que proviene de un teclado numérico, puede tener cualquiera de
16 valores distintos (00002 11112). El tipo determina el intervalo de valores posibles. En un lenguaje basado en texto, la definición de la operación del circuito está
SECCIÓN 3-19/FORMATO Y SINTAXIS DEL HDL
103
DESCRIPCIÓN BOOLEANA MEDIANTE EL USO DE AHDL
Consulte la figura 3-47. La palabra clave SUBDESIGN asigna un nombre al bloque
del circuito, que en este caso es compuerta_and. El nombre del archivo también debe
ser compuerta_and.tdf. Observe que la palabra clave SUBDESIGN está en mayúsculas. El software no lo requiere, pero el uso de un estilo consistente en cuanto a las
mayúsculas y minúsculas facilita en forma considerable la lectura del código. La guía
de estilo que se incluye con el compilador de Altera para AHDL sugiere el uso de
letras mayúsculas para las palabras clave del lenguaje. Las variables que nombre el
diseñador deben estar en minúsculas.
FIGURA 3-47 Elementos
esenciales en AHDL.
SUBDESIGN compuerta and
(
a, b
:INPUT;
y
:OUTPUT;
)
BEGIN
y a & b;
END;
La sección SUBDESIGN define las entradas y salidas del bloque del circuito
lógico. Algo debe encerrar al circuito que estamos tratando de describir, al igual que
un diagrama de bloques encierra a todo lo que forma parte del diseño. En AHDL,
esta definición de entrada/salida se encierra entre paréntesis. La lista de variables
utilizadas como entradas para este bloque se separa mediante comas y va seguida
de :INPUT;. En AHDL se asume el uso del tipo bit individual, a menos que la variable se designe como varios bits. El bit de salida individual se declara con el modo
:OUTPUT;. Aprenderemos la forma correcta de describir otros tipos de entradas,
salidas y variables a medida que lo vayamos necesitando.
El conjunto de instrucciones que describe la operación del circuito en AHDL
está contenido en la sección lógica, entre las palabras clave BEGIN y END. En este
ejemplo, la operación de hardware se describe mediante una ecuación de álgebra
booleana muy simple, la cual establece que a la salida (y) se le debe asignar () el
nivel lógico producido por a AND b. A esta ecuación de álgebra booleana se le conoce como instrucción de asignación concurrente. Cualquier instrucción (sólo hay una
en este ejemplo) entre BEGIN y END se evaluará en forma constante y concurrente.
El orden en el que se listen no tiene nada que ver. Los operadores booleanos básicos
son:
&
#
!
$
PREGUNTAS DE REPASO
AND
OR
NOT
XOR
1. ¿Qué aparece dentro de los paréntesis ( ) después de SUBDESIGN?
2. ¿Qué aparece entre BEGIN y END?
AHDL
contenida dentro de un conjunto de instrucciones que van después de la definición
de entrada/salida (E/S) del circuito. En las siguientes dos secciones describiremos
el circuito simple de la figura 3-45 e ilustraremos los elementos críticos del AHDL
y del VHDL.
104
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
VHDL
DESCRIPCIÓN BOOLEANA MEDIANTE EL USO DE VHDL
Consulte la figura 3-48. La palabra clave ENTITY asigna un nombre al bloque del
circuito, que en este caso es compuerta_and. Observe que la palabra ENTITY está
en mayúsculas pero compuerta_and no. El software no requiere esto, pero el uso
de un estilo consistente en cuanto a las mayúsculas y minúsculas facilita en forma
considerable la lectura del código. La guía de estilo que se incluye con el compilador
de Altera para VHDL sugiere el uso de letras mayúsculas para las palabras clave del
lenguaje. Las variables que nombra el diseñador deben estar en minúsculas.
FIGURA 3-48 Elementos
esenciales en VHDL.
ENTITY compuerta and IS
PORT (
a, b
:IN BIT;
y
:OUT BIT);
END compuerta and;
ARCHITECTURE ckt OF compuerta and IS
BEGIN
y <= a AND b;
END ckt;
La declaración ENTITY puede considerarse como la descripción de un bloque.
Algo debe encerrar al circuito que estamos tratando de describir, al igual que un
diagrama de bloques encierra a todo lo que forma parte del diseño. En VHDL, la
palabra clave PORT indica al compilador que estamos definiendo entradas y salidas
para el bloque de este circuito. Se listan los nombres utilizados para las entradas
(separados por comas) y se termina con un punto y coma, junto con una descripción
del modo y del tipo de entrada (:IN BIT). En VHDL, la descripción BIT indica al compilador que cada una de las variables en la lista es un bit individual. Aprenderemos
la forma apropiada de describir otros tipos de entradas, salidas y variables a medida
que lo vayamos necesitando. La línea que contiene END compuerta_and; termina la
declaración ENTITY.
La declaración ARCHITECTURE se utiliza para describir la operación de todo
lo que se encuentra dentro del bloque. El diseñador inventa un nombre para esta
descripción arquitectónica del funcionamiento interno del bloque ENTITY (ckt
en este ejemplo). Todo bloque ENTITY debe tener cuando menos una declaración
ARCHITECTURE asociada a él. Las palabras OF e IS son palabras clave en esta
declaración. El cuerpo de la descripción de la arquitectura va encerrado entre las
palabras clave BEGIN y END. END va seguida del nombre que se asignó a esta arquitectura. Dentro del cuerpo (entre BEGIN y END) está la descripción de la operación
del bloque. En este ejemplo, la operación del hardware se describe mediante una
ecuación de álgebra booleana muy simple, la cual establece que a la salida (y) se le
debe asignar (<) el nivel lógico producido por a AND b. A esto se le conoce como
una instrucción de asignación concurrente, lo cual significa que todas las instrucciones (sólo hay una en este ejemplo) entre BEGIN y END se evaluarán en forma
constante y concurrente. El orden en el que se listen no es relevante.
PREGUNTAS DE REPASO
1. ¿Cuál es la función de la declaración ENTITY?
2. ¿Qué sección clave define la operación del circuito?
3. ¿Cuál es el operador de asignación que se utiliza para asignar un valor a una
señal lógica?
105
SECCIÓN 3-20/SEÑALES INTERMEDIAS
3-20
SEÑALES INTERMEDIAS
En muchos diseños se tiene la necesidad de definir puntos de señal “dentro” del
bloque del circuito. Son puntos en el circuito que no son entradas ni salidas para
el bloque, pero que pueden ser útiles como punto de referencia. Puede ser una señal
que necesite conectarse a muchos otros lugares dentro del bloque. En un diagrama
esquemático analógico o digital se llamarían puntos de prueba o nodos. En un HDL
se conocen como nodos ocultos o señales locales. La figura 3-49 muestra un circuito
muy simple que utiliza una señal intermedia llamada m. En el HDL estos nodos
(señales) no se definen con las entradas y salidas, sino en la sección que describe la
operación del bloque. Las entradas y salidas están disponibles para otros bloques
de circuito en el sistema, pero estas señales locales se reconocen sólo dentro de este
bloque.
Señal intermedia m
a
b
ENTRADA
m
ENTRADA
SALIDA
c
y
ENTRADA
FIGURA 3-49
Diagrama de un circuito lógico con una variable intermedia.
NODOS OCULTOS EN AHDL
El Código AHDL que describe el circuito de la figura 3-49 se muestra en la figura
3-50. Los comentarios en AHDL pueden ir encerrados entre caracteres %, como
podemos ver entre las líneas 1 y 4. Esta sección del código permite al diseñador
escribir muchas líneas de información que serán ignoradas por los programas de
computadora que utilicen este archivo, pero para cualquier persona que trate
de descifrar el código serán muy útiles. Observe que los comentarios al final de
las líneas 9, 10, 13, 15 y 16 van precedidos por dos guiones cortos (--). El texto después de los guiones cortos es sólo para documentación. Puede usarse cualquiera
de estos símbolos para comentarios, pero los signos de porcentaje deben usarse en
pares para abrir y cerrar un comentario. Los dos guiones cortos indican un comentario que se extiende hasta el final de la línea.
En AHDL las señales locales se declaran en la sección VARIABLE, la cual se
coloca entre la sección SUBDESIGN y la sección lógica. La señal intermedia m
se define en la línea 11, después de la palabra clave VARIABLE. La palabra clave
NODE designa la naturaleza de la variable. Observe que un signo de dos puntos
AHDL
En el código de ejemplo que viene a continuación, observe la información en la
parte superior. El propósito de esta información es sólo con fines de documentación.
En definitiva es imprescindible que el diseño se documente con todos los detalles
posibles. Como mínimo, debe describir el proyecto en el que se está usando, quién lo
escribió y la fecha. Por lo general, a esta información se le conoce como el encabezado. En este libro vamos a mantener nuestros encabezados breves para que sea más
ligero cuando lo lleve a su clase, pero recuerde que el espacio en memoria casi no
cuesta y la información es valiosa, así que no tenga miedo de documentar sus proyectos
con todo el detalle posible. También hay comentarios enseguida de instrucciones en
el código. Estos comentarios sirven al diseñador para recordar lo que estaba tratando de hacer, además ayudan a que cualquier otra persona comprenda el significado
del código.
106
FIGURA 3-50 Las
variables intermedias
en AHDL, descritas en
la figura 3-49.
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
% Variables intermedias en AHDL
Sistemas digitales 10a ed
NS Widmer
MAYO 23, 2005
%
SUBDESIGN fig3 50
(
a,b,c
:INPUT;
define
y
:OUTPUT;
define
)
VARIABLE
m
:NODE;
nombra
BEGIN
m a & b;
genera
y m # c;
genera
END;
(Figura 3 49)
las entradas del bloque
la salida del bloque
una señal intermedia
término de producto oculto
suma en la salida
separa el nombre de la variable de su designación de nodo. En la descripción de
hardware de la línea 13, la variable intermedia se asigna (se conecta) a un valor
(m a & b;) y después m se utiliza en la segunda instrucción en la línea 14 para
asignar (conectar) un valor a y (y m # c;). Recuerde que las instrucciones de asignación son concurrentes y por ende no importa el orden en el que se proporcionan.
Para que los humanos podamos leerlas, es más lógico asignar valores a variables
intermedias antes de usarlas en otras instrucciones de asignación, tal y como se
muestra en este ejemplo.
VHDL
PREGUNTAS DE REPASO
1.
2.
3.
4.
5.
¿Cuál es la designación que se utiliza para las variables intermedias?
¿En dónde se declaran estas variables?
¿Importa si la ecuación m o y se declara primero?
¿Qué carácter se utiliza para limitar un bloque de comentarios?
¿Qué caracteres se utilizan para comentar una sola línea?
SEÑALES LOCALES DE VHDL
El código de VHDL que describe el circuito de la figura 3-49 se muestra en la figura
3-51. Los comentarios en VHDL van después de dos guiones cortos (--). Al escribir
dos guiones cortos sucesivos, el diseñador puede escribir información desde ese
punto hasta el final de la línea. La información que vaya después de estos dos guiones será ignorada por los programas de computadora que utilicen este archivo, pero
cualquier persona que trate de descifrar el código podrá leerla.
La señal intermedia m se define en la línea 13, después de la palabra clave SIGNAL. La palabra clave BIT designa el tipo de la señal. Observe que un signo de dos
puntos separa el nombre de la señal de su designación de tipo. En la descripción de
hardware de la línea 16, la señal intermedia se asigna (se conecta) a un valor (m < a
AND b;) y después m se utiliza en la instrucción de la línea 17 para asignar (conectar) un valor a y (y < m OR c;). Recuerde que las instrucciones de asignación son
107
RESUMEN
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Variables intermedias en VHDL (Figura 3 49)
Sistemas digitales 10a ed
NS Widmer
MAYO 23, 2005
ENTITY fig3 51 IS
PORT( a, b, c
:IN BIT;
y
:OUT BIT);
END fig3 51;
define las entradas del bloque
define la salida del bloque
ARCHITECTURE ckt OF fig3 51 IS
SIGNAL m
BEGIN
m <= a AND b;
y <= m OR c;
END ckt;
FIGURA 3-51
:BIT;
nombra una señal intermedia
genera término de producto oculto
genera suma en la salida
Señales intermedias en VHDL, descritas en la figura 3-49.
concurrentes y no importa el orden en el que se proporcionen. Para que los humanos
podamos leerlas, es más lógico asignar valores a las señales intermedias antes de
utilizarlas en otras instrucciones de asignación, como se muestra aquí.
PREGUNTAS DE REPASO
1.
2.
3.
4.
¿Cuál es la designación utilizada para las señales intermedias?
¿En dónde se declaran estas señales?
¿Importa si la ecuación m o y se declara primero?
¿Qué caracteres se utilizan para comentar una sola línea?
RESUMEN
1. El álgebra booleana es una herramienta matemática que se utiliza en el análisis
y diseño de circuitos digitales.
2. Las operaciones booleanas básicas son OR, AND y NOT.
3. Una compuerta OR produce una salida en ALTO cuando cualquier entrada está
en ALTO. Una compuerta AND produce una salida en ALTO sólo cuando todas
las entradas están en ALTO. Un circuito NOT (INVERSOR) produce una salida
que es el nivel lógico opuesto al de la entrada.
4. Una compuerta NOR es igual que una compuerta OR con su salida conectada a
un INVERSOR. Una compuerta NAND es igual que una compuerta AND con su
salida conectada a un INVERSOR.
108
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
5. Los teoremas y las reglas booleanas pueden usarse para simplificar la expresión
de un circuito lógico y pueden producir una manera más simple de implementar
el circuito.
6. Las compuertas NAND pueden usarse para implementar cualquiera de las operaciones booleanas básicas. Las compuertas NOR pueden usarse en forma similar.
7. Pueden usarse los símbolos alternativos o estándar para cada compuerta lógica,
dependiendo de si la salida va a ser activa en ALTO o activa en BAJO.
8. El estándar IEEE/ANSI para los símbolos lógicos utiliza símbolos rectangulares para
cada dispositivo lógico, con notaciones especiales dentro de los rectángulos
para mostrar cómo dependen las salidas de las entradas.
9. Los lenguajes de descripción de hardware se han convertido en un método
importante para describir circuitos digitales.
10. El código HDL siempre debe contener comentarios que documenten sus características más importantes, de manera que cualquier persona que lo lea después
pueda comprender lo que hace.
11. Toda descripción de un circuito en HDL contiene una definición de las entradas
y salidas, seguida de una sección que describe la operación del circuito.
12. Además de las entradas y salidas, pueden definirse conexiones intermedias inaccesibles desde fuera del circuito. A estas conexiones intermedias se les conoce
como nodos ocultos o señales locales.
TÉRMINOS IMPORTANTES
activa en ALTO
activa en BAJO
AHDL –lenguaje de
descripción de hardware
de Altera
álgebra booleana
ARCHITECTURE
asignada
BIT
circuito NOT
(INVERSOR)
compilador
compuerta AND
compuerta NAND
compuerta NOR
compuerta OR
concurrente
ENTITY
HDLs –lenguajes de
descripción de hardware
IEEE/ANSI
instrucción de asignación
concurrente
inversión (complementación)
modo
nivel lógico
niveles lógicos activos
no asignado
NODE
nodos ocultos (señales
locales)
operación AND
operación NOT
operación OR
PLDs –dispositivos lógicos
programables
símbolos lógicos
alternativos
sintaxis
SUBDESIGN
tabla de verdad
teoremas booleanos
teoremas de DeMorgan
tipo
VARIABLE
VHDL –lenguaje de
descripción de
hardware para circuitos
integrados de muy alta
velocidad (VHSIC)
PROBLEMAS
Las letras en gris que van antes de algunos de los problemas se utilizan para indicar
la naturaleza o el tipo de éstos, como se indica a continuación:
B problema básico.
F problema de diagnóstico de fallas.
D problema de diseño o modificación de circuito.
N nuevo concepto o técnica que no se cubre en el libro.
A problema avanzado.
H problema de HDL.
109
PROBLEMAS
SECCIÓN 3-3
3-1.* Dibuje la forma de onda de salida para la compuerta OR de la figura 3-52.
B
FIGURA 3-52
A
A
B
C
B
x
C
B
3-2. Suponga que la entrada A en la figura 3-52 se conectó a tierra en forma inadvertida (es decir, A 0). Dibuje la forma de onda de salida resultante.
B
3-3.* Suponga que la entrada A en la figura 3-52 se pone en corto en forma inadvertida con la línea de suministro de 5 V (es decir, A 1). Dibuje la forma
de onda de salida resultante.
C
3-4. Lea las siguientes aseveraciones con respecto a una compuerta OR. Al principio tal vez parezcan válidas, pero después de analizarlas se dará cuenta
que ninguna es verdadera siempre. Demuestre esto mediante un ejemplo
específico para refutar cada aseveración.
(a) Si la forma de onda de salida de una compuerta OR es igual que la
forma de onda en una de sus entradas, la otra entrada se mantendrá de
manera permanente en BAJO.
(b) Si la forma de onda de salida de una compuerta OR siempre está en
ALTO, una de sus entradas se mantendrá de manera permanente
en ALTO.
B
3-5. ¿Cuántas combinaciones distintas de condiciones de entrada producirán
una salida en ALTO en una compuerta OR de cinco entradas?
SECCIÓN 3-4
B
3-6. Cambie la compuerta OR en la figura 3-52 por una compuerta AND.
(a)* Dibuje la forma de onda de salida.
(b) Dibuje la forma de onda de salida si la entrada A se conecta de manera
permanente a tierra.
(c) Dibuje la forma de onda de salida si A se pone en corto de manera permanente con 5 V.
D
3-7.* Consulte la figura 3-4. Modifique el circuito de manera que la alarma se
active sólo cuando la presión y la temperatura excedan sus límites máximos
al mismo tiempo.
B
3-8.* Cambie la compuerta OR en la figura 3-6 por una compuerta AND y dibuje
la forma de onda de la salida.
B
3-9. Suponga que tiene una compuerta desconocida de dos entradas, que puede
ser OR o AND. ¿Qué combinación de niveles de entrada debe aplicar a las
entradas para determinar qué tipo de compuerta es?
B
3-10. Verdadero o falso: sin importar cuántas entradas tenga, una compuerta AND
producirá una salida en ALTO para sólo una combinación de niveles de
entrada.
* Encontrará las respuestas a los problemas marcados con un asterisco al nal del libro.
110
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
SECCIONES 3-5 A 3-7
B
B
FIGURA 3-53
3-11. Aplique la forma de onda A de la figura 3-23 a la entrada de un INVERSOR. Dibuje la forma de onda de salida. Repita el proceso para la forma
de onda B.
3-12. (a)* Escriba la expresión booleana para la salida x en la figura 3-53(a).
Determine el valor de x para todas las posibles condiciones de entrada
y liste los valores en una tabla de verdad.
(b) Repita el proceso para el circuito de la figura 3-53(b).
A
B
x
C
(a)
A
B
C
x
D
(b)
B
B
B
3-13.* Cree una tabla de análisis completa para el circuito de la figura 3-15(b);
para ello encuentre los niveles lógicos presentes en la salida de cada compuerta, para todas las 32 posibles combinaciones de entrada.
3-14. (a)* Cambie cada compuerta OR por una compuerta AND y cada compuerta
AND por una compuerta OR en la figura 3-15(b). Después escriba la
expresión para la salida.
(b) Complete una tabla de análisis.
3-15. Cree una tabla de análisis completa para el circuito de la figura 3-16; para
ello encuentre los niveles lógicos presentes en la salida de cada compuerta,
para todas las 16 posibles combinaciones de niveles de entrada.
SECCIÓN 3-8
B
3-16. Para cada una de las siguientes expresiones, construya el circuito lógico
correspondiente utilizando compuertas AND y OR e INVERSORES.
(a)* x AB(C D)
(b)* z A B CDE) BCD
(c) y (M N PQ)
111
PROBLEMAS
(d) x W PQ
(e) z MN(P N)
(f) x (A B)(A B)
SECCIÓN 3-9
B
3-17.* (a) Aplique las formas de onda de entrada de la figura 3-54 a una compuerta NOR y dibuje la forma de onda de salida.
(b) Repita el procedimiento manteniendo C de manera permanente en
BAJO.
(c) Repita el procedimiento manteniendo C en ALTO.
FIGURA 3-54
A
B
C
B
C
3-18. Repita el problema 3-17 para una compuerta NAND.
3.19.* Escriba la expresión para la salida de la figura 3-55 y utilícela para determinar la tabla de verdad completa. Después aplique las formas de onda de
la figura 3-54 a las entradas del circuito y dibuje la forma de onda de salida
resultante.
FIGURA 3-55
A
X
B
C
B
B
3-20. Determine la tabla de verdad para el circuito de la figura 3-24.
3-21. Modifique los circuitos que se construyeron en el problema 3-16 de manera
que se utilicen compuertas NAND y NOR en donde sea apropiado.
SECCIÓN 3-10
C
B
3-22. Demuestre los teoremas (15a) y (15b) probando todos los casos posibles.
3-23.* PREGUNTA DE EJERCICIO
Complete cada una de las expresiones.
(a) A 1 __________
(b) A A __________
(c) B B __________
(d) C C __________
(e) x 0 __________
(f) D 1 __________
(g) D 0 __________
(h) C C __________
(i) G GF __________
(j) y wy __________
112
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
C
3-24. (a)* Simplifique la siguiente expresión usando los teoremas (13b), (3)
y (4):
x (M N)(M P)(N P)
(b) Simplifique la siguiente expresión utilizando los teoremas (13a), (8)
y (6):
z ABC ABC BCD
SECCIONES 3-11 Y 3-12
C
B
B
C
C
B
B
C
3-25. Demuestre los teoremas de DeMorgan probando todos los casos posibles.
3-26. Simplifique cada una de las siguientes expresiones usando los teoremas de
DeMorgan.
(a)* ABC
(d) A B
(g)* A(B C)D
(b) A BC
(e)* AB
(h)
(M N)(M N)
(c)* ABCD
(f) A C D
(i)
ABCD
3-27.* Use los teoremas de DeMorgan para simplificar la expresión de salida de la
figura 3-55.
3-28. Convierta el circuito de la figura 3-53(b) en uno que utilice sólo compuertas
NAND. Después escriba la expresión de salida para el nuevo circuito, simplifíquelo utilizando los teoremas de DeMorgan y compárelo con la expresión
para el circuito original.
3-29. Convierta el circuito de la figura 3-53(a) en uno que utilice sólo compuertas NOR. Después escriba la expresión para el nuevo circuito, simplifíquelo
utilizando los teoremas de DeMorgan y compárelo con la expresión para el
circuito original.
3-30. Muestre cómo puede construirse una compuerta NAND de dos entradas a
partir de dos compuertas NOR de dos entradas.
3-31. Muestre cómo puede construirse una compuerta NOR de dos entradas a
partir de compuertas NAND de dos entradas.
3-32. Un jet emplea un sistema para monitorear los valores de revoluciones por
minuto (rpm), presión y temperatura de sus motores mediante el uso de
motores que operan de la siguiente manera:
salida del sensor de RPM 0 sólo cuando la velocidad 4800 rpm
salida del sensor P 0 sólo cuando la presión 220 psi
salida del sensor T 0 sólo cuando la temperatura 200° F
La figura 3-56 muestra el circuito lógico que controla una luz de advertencia
en cabina para ciertas combinaciones de condiciones del motor. Suponga
que un nivel ALTO en la salida W activa la luz de advertencia.
(a)* Determine qué condiciones del motor darán una advertencia al piloto.
(b) Cambie este circuito por uno que utilice sólo compuertas NAND.
FIGURA 3-56
Sensor de
temperatura
Sensor de
presión
Sensor
de RPM
T
W
P
R
Luz de
advertencia
113
PROBLEMAS
SECCIONES 3-13 Y 3-14
B
3-33. Para cada una de las siguientes instrucciones, dibuje el símbolo de compuerta lógica (estándar o alternativo) apropiado para la operación dada.
(a) Una salida en ALTO ocurre sólo cuando las tres entradas están en
BAJO.
(b) Una salida en BAJO ocurre cuando alguna de las cuatro entradas está
en BAJO.
(c) Una salida activa en BAJO ocurre sólo cuando las ocho entradas están
en ALTO.
3-34. Dibuje las representaciones estándar para cada una de las compuertas lógicas básicas. Después dibuje las representaciones alternativas.
3-35. Suponga que el circuito de la figura 3-55 es un candado de combinación
digital simple, cuya salida generará una señal ABRIR activa en BAJO para
sólo una combinación de entradas.
(a)* Modifique el diagrama del circuito de tal forma que represente la operación del circuito de una manera más efectiva.
(b) Use el nuevo diagrama del circuito para determinar la combinación
de entradas que activará la salida. Para ello, trabaje regresando desde
la salida y utilizando la información que proporcionan los símbolos de
las compuertas, como se hizo en los ejemplos 3-22 y 3-23. Compare los
resultados con la tabla de verdad que se obtuvo en el problema 3-19.
3-36. (a) Determine las condiciones de entrada necesarias para activar la salida Z en la figura 3-37(b). Para ello, trabaje regresando desde la salida,
como se hizo en los ejemplos 3-22 y 3-23.
(b) Suponga que el estado BAJO de Z es el que debe activar la alarma.
Cambie el diagrama del circuito para reflejar lo anterior y después utilice el diagrama revisado para determinar las condiciones de entrada
necesarias para activar la alarma.
3-37. Modifique el circuito de la figura 3-40, de manera que se necesite que A1 0
para producir UNIDAD 1, en lugar de A1 1.
3-38.* Determine las condiciones de entrada necesarias para hacer que la salida
en la figura 3-57 cambie a su estado activo.
B
C
C
D
B
FIGURA 3-57
A
B
x
C
D
E
B
B
N
3-39.* ¿Cuál es el estado asignado para la salida de la figura 3-57?, ¿para la salida
de la figura 3-36(c)?
3-40. Use los resultados del problema 3-38 para obtener la tabla de verdad completa para el circuito de la figura 3-57.
3-41.* La figura 3-58 muestra una aplicación de compuertas lógicas que simula un
interruptor de dos vías, como los que utilizamos en nuestros hogares para
encender o apagar una luz desde dos interruptores distintos. Aquí la luz
114
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
es un LED que estará ENCENDIDO (en conducción) cuando la salida de
la compuerta NOR esté en BAJO. Observe que esta salida está etiquetada
como LUZ para indicar que es activa en BAJO. Determine las condiciones de
entrada necesarias para encender el LED. Después verifique que el circuito
opere como un interruptor de dos vías, utilizando los interruptores A y B.
(En el capítulo 4 aprenderá a diseñar circuitos como éste para producir una
relación dada entre las entradas y las salidas.)
FIGURA 3-58
+5 V
+5 V
A
LUZ
+5 V
B
SECCIÓN 3-15
B
3-42. Vuelva a dibujar los circuitos de (a)* la figura 3-57 y (b) la figura 3-58
mediante el uso de los símbolos IEEE/ANSI.
SECCIÓN 3-17
PREGUNTAS DE PRÁCTICA DE HDL
H
3.-43.* Verdadero o falso:
(a) VHDL es un lenguaje de programación de computadoras.
(b) VHDL puede hacer lo mismo que AHDL.
(c) AHDL es un lenguaje del estándar IEEE.
(d) Cada intersección en una matriz de conmutación puede programarse
como un circuito abierto o cerrado, entre un alambre de fila con uno de
columna.
(e) El primer elemento que aparece en la parte superior de un listado de
HDL es la descripción funcional.
(f) El tipo de un objeto indica si es una entrada o una salida.
(g) El modo de un objeto determina si es una entrada o una salida.
(h) Los nodos ocultos son nodos que se han eliminado y que nunca se utilizarán de nuevo.
(i) Las señales locales son otro nombre para las variables intermedias.
(j) El encabezado es un bloque de comentarios que documentan información vital sobre el proyecto.
SECCIÓN 3-18
B
3-44. Vuelva a dibujar la matriz de conexiones programable de la figura 3-44.
Etiquete las señales de salida (líneas horizontales) de la matriz de conexión
115
RESPUESTAS A LAS PREGUNTAS DE REPASO DE LAS SECCIONES
H
(desde la fila superior hasta la fila inferior) de la siguiente manera: AAABADHE. Dibuje una X en las intersecciones apropiadas para poner en corto
circuito una fila con una columna y crear estas conexiones hacia el circuito
lógico.
3-45.* Escriba el código de HDL en el lenguaje de su preferencia, para que produzca las siguientes funciones de salida:
XAB
Y AB
ZABC
H
3-46. Escriba el código de HDL en el lenguaje de su preferencia, para implementar el circuito lógico de la figura 3-39.
(a) Use una sola ecuación booleana.
(b) Use las variables intermedias V, W, X y Y.
APLICACIÓN DE MICROCOMPUTADORA
C
3-47.* Consulte la figura 3-40 en el ejemplo 3-23. Las entradas de A7 a A0 son entradas de dirección que se suministran a este circuito desde las salidas del
microprocesador de una microcomputadora. El código de dirección de ocho
bits A7 – A0 selecciona cuál dispositivo desea activar el microprocesador. En
el ejemplo 3-23, el código de dirección requerido para activar la unidad de
disco era A7 a A0 111111102 FE16.
Modifique el circuito de manera que el microprocesador deba enviar
un código de dirección de 4A16 para activar la unidad de disco.
EJERCICIOS AVANZADOS
C
C
3-48. Muestre cómo puede implementarse x ABC con una compuerta NOR de
dos entradas y una compuerta NAND de dos entradas.
3-49.* Implemente y ABCD usando sólo compuertas NAND de dos entradas.
RESPUESTAS A LAS PREGUNTAS DE REPASO DE LAS SECCIONES
SECCIÓN 3-2
1. x 1
2. x 0
3. 32
SECCIÓN 3-3
1. Las entradas en BAJO.
2. x A B C D E F
3. Nivel ALTO constante.
SECCIÓN 3-4
1. Todas las cinco entradas 1.
2. Una entrada en BAJO mantendrá la salida en
BAJO.
3. Falso; vea la tabla de verdad para cada compuerta.
SECCIÓN 3-5
1. La salida del segundo INVERSOR será igual que la entrada A.
sólo para A B 1.
SECCIÓN 3-6
1. x A B C AD
2. x D(AB C) E
2. y estará en BAJO
116
CAPÍTULO 3/DESCRIPCIÓN DE LOS CIRCUITOS LÓGICOS
SECCIÓN 3-7
1. x 1
2. x 1
3. x 1 para ambos casos.
SECCIÓN 3-8
1. Vea la figura 3-15(a).
2. Vea la figura 3-17(b).
3. Vea la figura 3-15(b).
SECCIÓN 3-9
1. Todas las entradas en BAJO.
2. x 0
3. x A B CD
SECCIÓN 3-10
1. y AC
2. y A B D
3. y AD BD
SECCIÓN 3-11
1. z AB C
2. y (R S T)Q
3. Igual que la figura 3-28, sólo que la
compuerta NAND se sustituye por una compuerta NOR.
4. y AB(C D)
SECCIÓN 3-12
1. Tres.
2. El circuito NOR es más eficiente, ya que puede implementarse con solo un CI
74LS02.
3. x (AB)(CD) AB (CD) AB CD
SECCIÓN 3-13
1. La salida cambia a BAJO cuando cualquier entrada está en ALTO.
2. La salida
cambia a ALTO sólo cuando todas las entradas están en BAJO.
3. La salida cambia a
BAJO cuando cualquier entrada está en BAJO.
4. La salida cambia a ALTO sólo cuando
todas las entradas están en ALTO.
SECCIÓN 3-14
1. Z cambiará a ALTO cuando A B 0 y C D 1.
B 0, E 1 y C o D o ambas sean 1.
3. Dos.
0, C D 1
7. W
2. Z cambiará a BAJO cuando A
4. Dos.
5. BAJO.
6. A B
SECCIÓN 3-15
1. Vea la figura 3-41.
2. Rectángulo con & en su interior y triángulos en las entradas.
SECCIÓN 3-16
1. Ecuación booleana, tabla de verdad, diagrama lógico, diagrama de tiempos, lenguaje.
SECCIÓN 3-17
1. Lenguaje de descripción de hardware.
2. Para describir un circuito digital y su operación.
3. Para dar a una computadora una lista secuencial de tareas.
4. El HDL
describe los circuitos concurrentes de hardware; las instrucciones de computadora se ejecutan una a la vez.
SECCIÓN 3-18
1. Dispositivo lógico programable.
2. Se cierran y se abren conexiones en una matriz
de conmutación.
3. Traduce el código de HDL en un patrón de bits para configurar la
matriz de conmutación.
SECCIÓN 3-19
AHDL
1. Las definiciones de entrada y de salida.
2. La descripción de la forma en que opera.
117
RESPUESTAS A LAS PREGUNTAS DE REPASO DE LAS SECCIONES
VHDL
1. Para dar un nombre al circuito y definir sus entradas y salidas.
ARCHITECTURE.
3.
2. La descripción
SECCIÓN 3-20
AHDL
1. NODE.
2. Después de la definición de E/S y antes de BEGIN.
4. %.
5. --
3. No.
VHDL
1. SIGNAL.
2. Dentro de ARCHITECTURE, antes de BEGIN.
3. No.
4. --
C A P Í T U L O
4
CIRCUITOS LÓGICOS
COMBINACIONALES
■
CONTENIDO
4-1
4-2
Forma de suma de productos
Simplificación de circuitos
lógicos
Simplificación algebraica
Diseño de circuitos lógicos
combinacionales
Método de mapas de
Karnaugh
Circuitos OR exclusivo y NOR
exclusivo
Generador y comprobador de
paridad
Circuitos de habilitación/
deshabilitación
Características básicas de los
CIs digitales
4-3
4-4
4-5
4-6
4-7
4-8
4-9
4-10
4-11
4-12
4-13
4-14
4-15
4-16
4-17
Diagnóstico de fallas en
sistemas digitales
Fallas internas en los
circuitos integrados digitales
Fallas externas
Ejemplo práctico de
diagnóstico de fallas
Dispositivos lógicos
programables
Representación de datos en
HDL
Tablas de verdad mediante el
uso de HDL
Estructuras de control de
decisiones en HDL
■
OBJETIVOS
Al terminar este capítulo, usted podrá:
■
Convertir una expresión lógica en una expresión de suma de productos.
■
Realizar los pasos necesarios para reducir una expresión de suma de
productos a su forma más simple.
■
Utilizar el álgebra booleana y el mapa de Karnaugh como herramientas para
simplificar y diseñar circuitos lógicos.
■
Explicar la operación de los circuitos OR exclusivo y NOR exclusivo.
■
Diseñar circuitos lógicos simples sin la ayuda de una tabla de verdad.
■
Implementar circuitos de habilitación.
■
Citar las características básicas de los CIs digitales TTL y CMOS.
■
Utilizar las reglas básicas de diagnóstico de fallas de los sistemas digitales.
■
Deducir las fallas a partir de los resultados observados en circuitos lógicos
combinacionales.
■
Describir la idea fundamental de los dispositivos lógicos programables (PLDs).
■
Describir los pasos implicados en la programación de un PLD para realizar
una función lógica combinacional simple.
■
Consultar los manuales de usuario de Altera para adquirir la información
necesaria para realizar un experimento de programación simple en el
laboratorio.
■
Describir los métodos de diseño jerárquico.
■
Identificar los tipos de datos apropiados para las variables con valores de un
solo bit, arreglos de bits y numéricas.
■
Describir los circuitos lógicos mediante el uso de las estructuras de control de
HDL IF/ELSE, IF/ELSIF y CASE.
■
Seleccionar la estructura de control apropiada para un problema dado.
■
INTRODUCCIÓN
En el capítulo 3 estudiamos la operación de todas las compuertas lógicas básicas,
y utilizamos el álgebra booleana para describir y analizar circuitos formados de
combinaciones de compuertas lógicas. Estos circuitos pueden clasificarse como
circuitos lógicos combinacionales ya que, en cualquier momento, el nivel lógico
de la salida depende de la combinación de los niveles lógicos presentes en las
entradas. Un circuito combinacional no tiene característica de memoria, por lo
que su salida depende sólo del valor actual de sus entradas.
En este capítulo continuaremos con nuestro estudio de los circuitos
combinacionales. Para empezar, veremos más detalles sobre la simplificación de
los circuitos lógicos. Analizaremos dos métodos: el primero utiliza los teoremas
del álgebra booleana; el segundo utiliza una técnica de mapeo. Además,
119
120
CAPÍTULO 4/CIRCUITOS LÓGICOS COMBINACIONALES
estudiaremos técnicas simples de diseño de circuitos lógicos combinacionales
para satisfacer un conjunto dado de requerimientos. El estudio completo del
diseño de circuitos lógicos no es uno de nuestros objetivos, pero los métodos que
presentaremos le brindarán una excelente introducción al diseño lógico.
Una buena porción de este capítulo está dedicada al diagnóstico de fallas de
los circuitos combinacionales. Con esta primera exposición al diagnóstico de fallas,
usted podrá empezar a desarrollar el tipo de habilidades analíticas necesarias para
tener éxito al realizar sus diagnósticos de fallas. Para que este material sea lo más
práctico posible, primero presentaremos algunas de las características básicas de
los CIs de compuertas lógicas en las familias lógicas TTL y CMOS, junto con una
descripción de los tipos más comunes de fallas que se encuentran en los circuitos
integrados digitales.
En las últimas secciones de este capítulo ampliaremos nuestro conocimiento
sobre los dispositivos lógicos programables y los lenguajes de descripción de
hardware. Reforzaremos el concepto de las conexiones de hardware programables
y brindaremos más detalles en relación con la función del sistema de desarrollo.
Usted conocerá los pasos que se siguen actualmente para el diseño y desarrollo de los
sistemas digitales. Le proporcionaremos suficiente información para que pueda elegir
los tipos de datos correctos para usarlos en proyectos simples que presentaremos
más adelante en este capítulo. Por último explicaremos varias estructuras de control,
junto con algunas instrucciones relacionadas con su uso apropiado.
4-1 FORMA DE SUMA DE PRODUCTOS
Los métodos de simplificación y diseño de circuitos lógicos que estudiaremos requieren que la expresión lógica se encuentre en forma de suma de productos (SOP).
Algunos ejemplos de esta forma son:
1. ABC + ABC
2. AB + ABC + C D + D
3. AB + CD + EF + GK + HL
Cada una de estas expresiones de suma de productos consiste de dos o más términos AND (productos) a los que se les aplica la operación OR. Cada término AND
consiste de una o más variables que aparecen de manera individual, ya sea en forma complementada o no complementada. Por ejemplo, en la expresión de suma de
productos ABC ABC el primer producto AND contiene las variables A, B y C en su
forma no complementada (no invertida). El segundo término AND contiene a A y C
en su forma complementada (invertida). En una expresión de suma de productos, un
signo de inversión no puede cubrir más de una variable en un término (por ejemplo,
no podemos tener ABC o RST).
Producto de las sumas
Algunas veces se utiliza otra forma general para las expresiones lógicas en el diseño de circuitos lógicos. A esta forma se le llama producto de las sumas (POS) y consiste de dos o más términos OR (sumas) a los que se les aplica una operación AND.
Cada término OR consiste de una o más variables en su forma complementada o no
complementada. He aquí algunas expresiones de producto de sumas:
1. (A + B + C)(A + C)
2. (A + B)(C + D)F
3. (A + C)(B + D)(B + C)(A + D + E)
Los métodos de simplificación y diseño de circuitos que utilizaremos se basan
en la forma de suma de productos (SOP), por lo que no veremos muchos ejemplos
121
SECCIÓN 4-3/SIMPLIFICACIÓN ALGEBRAICA
con la forma de producto de sumas (POS). No obstante, de vez en cuando se presentará esta forma para algunos circuitos lógicos que tengan una cierta estructura.
PREGUNTAS DE REPASO
1. ¿Cuál de las siguientes expresiones se encuentra en la forma SOP?
(a) AB CD E
(b) AB(C D)
(c) (A B)(C D F)
(d) MN PQ
2. Repita la pregunta 1 para la forma POS.
4-2 SIMPLIFICACIÓN DE CIRCUITOS LÓGICOS
Una vez que se obtiene la expresión para un circuito lógico, podemos reducirla a una
forma más simple que contenga menos términos, o menos variables en uno o más términos. Así, la nueva expresión puede utilizarse para implementar un circuito equivalente al circuito original, pero que contenga menos compuertas y conexiones.
Para ilustrar esto, el circuito de la figura 4-1(a) puede simplificarse para producir el circuito de la figura 4-1(b). Ambos circuitos realizan la misma lógica, por lo
que debe ser obvio que el más simple es más conveniente, ya que contiene menos
compuertas y, por lo tanto, será más pequeño y económico que el original. Lo que es
más, la confiabilidad del circuito aumentará, ya que hay menos interconexiones que
pueden provocar fallas potenciales en el circuito.
FIGURA 4-1 A menudo
es posible simplificar
un circuito lógico de
tal forma que en la
parte (a) se produzca
una implementación
más eficiente, la cual se
muestra en (b).
A + BC
A
B
x = A B(A + BC)
BC
C
(a)
A
B
x=ABC
C
C
(b)
En las siguientes secciones estudiaremos dos métodos para simplificar los circuitos lógicos. Uno de ellos utiliza los teoremas de álgebra booleana y, como veremos, depende mucho de la inspiración y la experiencia. El otro método (mapeo de
Karnaugh) tiene un enfoque sistemático, paso a paso. Tal vez algunos instructores
deseen omitir este último método debido a que es algo mecánico y es posible que no
contribuya a una mejor comprensión del álgebra booleana. Esto puede hacerse sin
afectar la continuidad o la claridad del resto del libro.
4-3
SIMPLIFICACIÓN ALGEBRAICA
Podemos utilizar los teoremas de álgebra booleana que estudiamos en el capítulo 3
para que nos ayuden a simplificar la expresión para un circuito lógico. Desafortunadamente, no siempre es obvio cuáles teoremas deben aplicarse para producir
122
CAPÍTULO 4/CIRCUITOS LÓGICOS COMBINACIONALES
el resultado más simple. Lo que es más, no hay una manera sencilla de saber si la
expresión simplificada se encuentra en su forma más simple o si todavía puede simplificarse más. Por ende, la simplificación algebraica se vuelve a menudo un proceso
de prueba y error. Sin embargo, con experiencia uno puede volverse un adepto para
obtener resultados bastante razonables.
Los ejemplos que se muestran a continuación ilustrarán muchas de las maneras
en las que pueden aplicarse los teoremas booleanos para tratar de simplificar una
expresión. Estos ejemplos contienen dos pasos esenciales:
1. La expresión original se coloca en forma SOP mediante la aplicación repetida
de los teoremas de DeMorgan y la multiplicación de los términos.
2. Una vez que la expresión original se encuentre en la forma SOP, se comprueba
si hay factores comunes en los términos de productos y se lleva a cabo la factorización en donde sea posible. Este proceso de factorización deberá ayudar a
eliminar uno o más términos.
EJEMPLO 4-1
Simplifique el circuito lógico que se muestra en la figura 4-2(a).
AC
A
A B(A C)
A
z = ABC + AB(AC)
C
B
A
ABC
B
(a)
B
B+C
z = A(B + C)
C
A
(b)
FIGURA 4-2
Ejemplo 4-1.
Solución
El primer paso es determinar la expresión para la salida, utilizando el método que
se presentó en la sección 3-6. El resultado es
z ABC AB (A C)
Una vez que se obtiene la expresión, por lo general, es conveniente descomponer
todos los signos inversores grandes mediante el uso de los teoremas de DeMorgan, y
después multiplicar todos los términos.
z ABC AB(A C)
[teorema (17)]
ABC AB(A C)
[se cancelan las inversiones dobles]
ABC ABA ABC
[se realizan las multiplicaciones]
ABC AB ABC
[A A A]
SECCIÓN 4-3/SIMPLIFICACIÓN ALGEBRAICA
123
Ahora que la expresión se encuentra en la forma SOP, debemos buscar variables
comunes entre los diversos términos con la intención de factorizar. Los términos
primero y tercero de arriba tienen a AC en común, lo cual puede factorizarse:
z = AC(B + B) + AB
Como B B 1, entonces
z = AC(1) + AB
= AC + AB
Ahora podemos factorizar A, lo cual produce
z = A(C + B)
Este resultado ya no puede simplificarse más. En la figura 4-2(b) se muestra la
implementación de su circuito. Es fácil observar que el circuito de la figura 4-2(b) es
mucho más simple que el de la figura 4-2(a).
EJEMPLO 4-2
Simplifique la expresión z AB C ABC ABC.
Solución
La expresión ya se encuentra en la forma SOP.
Método 1: Los primeros dos términos de la expresión tienen el producto AB en
común. Por lo tanto,
z = AB(C + C) + ABC
= AB(1) + ABC
= AB + ABC
Podemos factorizar la variable A de ambos términos:
z = A(B + BC)
Utilizando el teorema (15b):
z = A(B + C)
Método 2: La expresión original es z AB C ABC ABC. Los primeros dos
términos tienen a AB en común. Los últimos dos tienen a AC en común. ¿Cómo
podemos saber si debemos factorizar AB de los primeros dos términos, o AC de
los últimos dos términos? En realidad podemos hacer ambas cosas si utilizamos el
término ABC dos veces. En otras palabras, podemos reformular la expresión de la
siguiente manera:
z = AB C + ABC + ABC + ABC
en donde hemos agregado un término ABC. Esto es válido y no cambia el valor de la
expresión, ya que ABC ABC ABC [(teorema (7)]. Ahora podemos factorizar AB
de los primeros dos términos y AC de los últimos dos:
z = AB(C + C) + AC(B + B)
= AB # 1 + AC # 1
= AB + AC = A(B + C)
124
CAPÍTULO 4/CIRCUITOS LÓGICOS COMBINACIONALES
Desde luego que este resultado es el mismo que se obtuvo con el método 1. Este
truco de usar el mismo término dos veces puede usarse siempre. De hecho, el mismo
término puede usarse más veces si es necesario.
EJEMPLO 4-3
Simplifique z AC(ABD) ABC D ABC.
Solución
Primero, utilizamos el teorema de DeMorgan en el primer término:
z AC(A B D) ABC D ABC
(paso 1)
La multiplicación produce lo siguiente:
z ACA ACB ACD ABC D ABC
(2)
Como A A 0, se elimina el primer término:
z A BC ACD ABC D ABC
(3)
Ésta es la forma SOP deseada. Ahora debemos buscar factores comunes de entre
los diversos términos de productos. La idea es buscar el factor común más grande
entre dos o más términos de productos. Por ejemplo, los términos primero y último
tienen el factor común BC y los términos segundo y tercero tienen el factor común
A D. Podemos factorizar estos términos de la siguiente manera:
z BC(A A) A D(C BC)
(4)
Ahora, como A A 1, y C BC C B [teorema (15a)], tenemos que
z BC A D(B C)
(5)
Este mismo resultado podría obtenerse si eligiéramos otros términos para la factorización. Por ejemplo, podríamos haber factorizado C de los términos de productos
primero, segundo y cuarto, en el paso 3, para obtener:
z C(A B A D AB) ABC D
La expresión dentro de los paréntesis puede factorizarse aún más:
z C(B[A A] A D) ABC D
Y como A A 1, esta expresión se convierte en:
z C(B A D) ABC D
Después de multiplicar, nos queda
z BC AC D ABC D
SECCIÓN 4-3/SIMPLIFICACIÓN ALGEBRAICA
125
Ahora podemos factorizar A D de los términos segundo y tercero para obtener
z BC A D(C BC)
Si utilizamos el teorema (15a), la expresión entre paréntesis se convierte en B C.
Por lo tanto, queda
z BC A D(B C)
Este resultado es el mismo que obtuvimos antes, pero nos llevó muchos más pasos.
Aquí se ilustra el porqué debemos buscar los factores comunes más grandes: por lo
general, nos llevará a la expresión final en menos pasos.
El ejemplo 4-3 ilustra la frustración que se encuentra a menudo en la simplificación booleana. Como hemos llegado a la misma ecuación (que parece irreducible)
por dos métodos distintos, podría parecer razonable concluir que esta ecuación final
es la forma más simple. De hecho, la forma más simple de esta ecuación es
z ABD BC
Pero no hay una manera aparente de reducir el paso (5) para llegar a esta versión
más simple. En este caso nos faltó una operación en el proceso, la cual nos podría
haber conducido a la forma más simple. La pregunta es, “¿Cómo hubiéramos podido
saber que omitimos un paso?” Más adelante examinaremos una técnica de mapeo
que siempre nos llevará a la forma SOP más simple.
EJEMPLO 4-4
Simplifique la expresión x (A B)(A B D)D.
Solución
La expresión puede colocarse en la forma de suma de productos mediante la multiplicación de todos los términos. El resultado es
x AAD ABD ADD BAD BBD BDD
El primer término puede eliminarse, ya que AA 0. De igual forma, los términos
tercero y sexto pueden eliminarse debido a que DD 0. El quinto término puede
simplificarse a BD, ya que BB B. Esto nos da
x ABD ABD BD
Podemos factorizar BD de cada término para obtener
x BD(A A 1)
Es evidente que el término dentro de los paréntesis siempre es 1, por lo que al último nos queda
x BD
126
CAPÍTULO 4/CIRCUITOS LÓGICOS COMBINACIONALES
EJEMPLO 4-5
FIGURA 4-3
4-5.
Ejemplo
Simplifique el circuito de la figura 4-3(a).
A
A
z
B
z
B
(a)
(b)
Solución
La expresión para la salida z es
z (A B)(A B)
Si multiplicamos para obtener la forma de suma de productos, obtenemos
z AA A B BA BB
Podemos eliminar AA 0 y BB 0 para terminar con
z A B AB
Esta expresión se implementa en la figura 4-3(b), y si la comparamos con el circuito
original veremos que ambos circuitos contienen el mismo número de compuertas y
conexiones. En este caso, el proceso de simplificación produjo un circuito equivalente pero más simple.
EJEMPLO 4-6
Simplifique x ABC ABD C D.
Solución
Inténtelo, pero no podrá simplificar más esta expresión.
PREGUNTAS DE REPASO
1. Indique cuáles de las siguientes expresiones no se encuentran en la forma de
suma de productos:
(a) RST RST T
(b) ADC ADC
(c) MNP (M N)P
(d) AB ABC A B C D
2. Simplifique el circuito de la figura 4-1(a) para obtener el circuito de la figura
4-1(b).
3. Cambie cada compuerta AND en la figura 4-1(a) por una compuerta NAND.
Determine la nueva expresión para x y simplifíquela.
127
SECCIÓN 4-4/DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES
4-4 DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES
Cuando se da el nivel de salida deseado de un circuito lógico para todas las posibles
condiciones de entrada, los resultados pueden mostrarse de manera conveniente
en una tabla de verdad. La expresión booleana para el circuito requerido puede
entonces derivarse de la tabla de verdad. Por ejemplo, considere la figura 4-4(a), en
donde se muestra la tabla de verdad para un circuito que tiene dos entradas A y B,
y la salida x. La tabla muestra que la salida x estará en el nivel 1 sólo para el caso
en el que A 0 y B 1. Ahora lo que resta es determinar qué circuito lógico producirá esta operación deseada. Debería ser evidente que una de las posibles soluciones
es la que se muestra en la figura 4-4(b). Aquí se utiliza una compuerta AND con las
entradas A y B, de manera que x A B. Es obvio que x será 1 sólo si ambas entradas
de la compuerta AND son 1, a saber, A 1 (lo cual significa que A 0) y B 1. Para
todos los demás valores de A y B, la salida x será 0.
FIGURA 4-4 Circuito que
produce una salida de
1 sólo para la condición
en la que A 0 y B 1.
A
0
0
1
1
B
0
1
0
1
(a)
x
0
1
0
0
A
A
x = AB
B
(b)
Puede usarse un enfoque similar para las demás condiciones de entrada. Por
ejemplo, si x fuera a estar en nivel alto sólo para la condición A 1, B 0, el circuito resultante sería una compuerta AND con entradas A y B. En otras palabras,
para cualquiera de las cuatro posibles condiciones de entrada, podemos generar
una salida x en nivel alto mediante el uso de una compuerta AND con las entradas
apropiadas para generar el producto AND requerido. En la figura 4-5 se muestran
los cuatro casos. Cada una de las compuertas AND que se muestran genera una
salida que es 1 sólo para una condición de entrada dada y la salida es 0 para todas
las demás condiciones. Hay que recalcar que las entradas AND son invertidas o no
invertidas, dependiendo de los valores que tengan las variables para la condición
dada. Si la variable es 0 para la condición dada, se invierte antes de entrar a la compuerta AND.
FIGURA 4-5 Una
compuerta AND con las
entradas apropiadas
puede usarse para
producir una salida
de 1 para un conjunto
específico de niveles de
entrada.
A
AB
ALTO sólo cuando A = 0, B = 0
AB
ALTO sólo cuando A = 0, B = 1
AB
ALTO sólo cuando A = 1, B = 0
B
A
B
A
B
A
AB
ALTO sólo cuando A = 1, B = 1
B
Ahora consideremos el caso que se muestra en la figura 4-6(a), en donde tenemos una tabla de verdad que indica que la salida x debe ser 1 para dos casos distintos: A 0, B 1 y A 1, B 0. ¿Cómo puede implementarse esto? Sabemos que
el término AND A B generará un 1 sólo para la condición A 0, B 1, y que el
término AND A · B generará un 1 para la condición A 1, B 0. Como x debe estar
128
CAPÍTULO 4/CIRCUITOS LÓGICOS COMBINACIONALES
en ALTO para cualquiera de esas condiciones, debe quedar claro que se debe aplicar
una operación OR a estos términos para producir la salida x deseada. Esta implementación se muestra en la figura 4-6(b), en donde la expresión resultante para la
salida es x AB AB.
FIGURA 4-6 Cada
conjunto de condiciones
de entrada que
debe producir una
salida en ALTO se
implementa mediante
una compuerta AND
separada. Se aplica
una operación OR a las
salidas de la compuerta
AND para producir la
salida final.
A
A
0
0
1
1
B
0
1
0
1
x
0
1
1
0
AB
B
x = AB + AB
A
AB
B
(b)
(a)
En este ejemplo se genera un término AND para cada caso en la tabla donde la
salida x va a ser un 1. Después se aplica un OR a las salidas de la compuerta AND
para producir la salida total x, que será 1 cuando cualquiera de los términos de la
operación AND sea 1. Este mismo procedimiento puede extenderse a los ejemplos
con más de dos entradas. Considere la tabla de verdad para un circuito de tres entradas (tabla 4-1). Aquí hay tres casos en donde la salida x debe ser 1. Se muestra el
término AND requerido para cada uno de estos casos. Observe nuevamente que para
cada caso en el que una variable es 0, ésta aparece invertida en el término AND. La
expresión de suma de productos para x se obtiene aplicando una operación OR a los
tres términos AND.
x ABC ABC ABC
TABLA 4-1
A
B
C
x
0
0
0
0
0
0
1
0
0
1
0
1
: ABC
0
1
1
1
: ABC
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
: ABC
Procedimiento completo de diseño
Cualquier problema lógico puede resolverse mediante el uso del siguiente procedimiento:
1. Interprete el problema y establezca una tabla de verdad para describir su operación.
2. Escriba el término AND (producto) para cada caso en el que la salida sea 1.
3. Escriba la expresión de suma de productos (SOP) para la salida.
4. Simplifique la expresión de salida, si es posible.
5. Implemente el circuito para la expresión final simplificada.
SECCIÓN 4-4/DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES
129
El siguiente ejemplo ilustra el procedimiento completo de diseño.
EJEMPLO 4-7
Diseñe un circuito lógico que tenga tres entradas A, B y C, y cuya salida esté en
ALTO sólo cuando la mayoría de sus entradas estén en ALTO.
Solución
Paso 1.
Establezca la tabla de verdad.
Con base en el enunciado del problema, la salida x deberá ser 1 siempre que dos o
más entradas sean 1; para todos los demás casos, la salida deberá ser 0 (tabla 4-2).
TABLA 4-2
A
B
C
x
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
: ABC
1
1
0
1
: ABC
1
1
1
1
: ABC
: ABC
Paso 2. Escriba el término AND para cada caso en el que la salida sea un 1.
Hay cuatro casos así. Los términos AND se muestran enseguida de la tabla de verdad (tabla 4-2). Observe de nuevo que cada término AND contiene cada variable de
entrada en su forma invertida o no invertida.
Paso 3. Escriba la expresión de suma de productos para la salida.
x ABC ABC ABC ABC
Paso 4.
Simplifique la expresión de salida.
Esta expresión puede simplificarse de varias formas. Tal vez la más rápida sea considerar que el último término ABC tiene dos variables en común con cada uno de los
otros términos. Por ende, podemos usar el término ABC para factorizarlo con cada
uno de los demás términos. La expresión se reformula de manera que el término
ABC ocurra tres veces (recuerde del ejemplo 4-2 que es posible hacer esto en el
álgebra booleana):
x ABC ABC ABC ABC ABC ABC
Si factorizamos los pares de términos apropiados, tenemos que
x BC(A A) AC(B B) AB(C C)
Cada término en paréntesis es igual a 1, por lo que nos queda
x BC AC AB
130
CAPÍTULO 4/CIRCUITOS LÓGICOS COMBINACIONALES
Paso 5. Implemente el circuito para la expresión final.
Esta expresión se implementa en la figura 4-7. Como la expresión se encuentra en
la forma SOP, el circuito consiste de un grupo de compuertas AND conectadas con
una sola compuerta OR.
FIGURA 4-7
Ejemplo 4-7.
B
BC
C
A
AC
x = BC + AC + AB
AB
EJEMPLO 4-8
Consulte la figura 4-8(a), en donde un convertidor analógico-digital está monitoreando el voltaje de corriente directa de una batería de almacenamiento de 12 V
en una nave espacial en órbita. La salida del convertidor es un número binario de
4 bits identificado como ABCD, que corresponde al voltaje de la batería en intervalos de 1 V, en donde A es el MSB. Las salidas binarias del convertidor se alimentan a
un circuito lógico que debe producir una salida en ALTO siempre y cuando el valor
binario sea mayor que 01102 610; esto es, que el voltaje de la batería sea mayor
que 6 V. Diseñe este circuito lógico.
MSB
Convertidor A
analógico- B
C
digital
D
VB
A
B Circuito
C lógico
D
LSB
(a)
A
z = A + BCD
B
C
D
(c)
FIGURA 4-8
z
(0)
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
z
0
0
0
0
0
0
0
1→ ABCD
1→ ABCD
1→ ABCD
1→ ABCD
1→ ABCD
1→ ABCD
1→ ABCD
1→ ABCD
1→ ABCD
(b)
Ejemplo 4-8.
Solución
La tabla de verdad se muestra en la figura 4-8(b). Para cada caso en la tabla de verdad hemos indicado el equivalente decimal del número binario representado por la
combinación ABCD.
La salida z es igual a 1 para todos aquellos casos en los que el número binario
sea mayor que 0110. Para todos los demás casos, z es igual a 0. Esta tabla de verdad
nos da la siguiente expresión de suma de productos:
z = ABCD + AB C D + AB CD + ABCD + ABCD + ABC D
+ ABCD + ABCD + ABCD
131
SECCIÓN 4-4/DISEÑO DE CIRCUITOS LÓGICOS COMBINACIONALES
La simplificación de esta expresión será una formidable tarea, pero con un poco de
cuidado puede lograrse. El proceso paso a paso implica factorizar y eliminar términos de la forma A A:
z =
=
=
=
=
=
ABCD
ABCD
ABCD
ABCD
ABCD
ABCD
+
+
+
+
+
+
AB C(D + D) + ABC(D + D) + ABC(D + D) + ABC(D + D)
AB C + ABC + ABC + ABC
AB(C + C) + AB(C + C)
AB + AB
A(B + B)
A
Esta expresión puede reducirse aún más si aplicamos el teorema (15a), el cual nos
dice que x xy x y. En este caso x A y y BCD. Por lo tanto,
z = ABCD + A = BCD + A
Esta expresión final se implementa en la figura 4-8(c).
Como lo demuestra este ejemplo, el método de simplificación algebraica puede
ser bastante largo cuando la expresión original contiene un gran número de términos. Ésta es una limitación que no comparte el método de mapeo de Karnaugh,
como veremos más adelante.
EJEMPLO 4-9
Observe la figura 4-9(a). En una copiadora simple, se debe generar una señal de paro S
para detener la operación de la máquina y encender una luz indicadora cada vez
que exista una de las siguientes condiciones: (1) que no haya papel en la bandeja
alimentadora; o (2) que se activen los dos microinterruptores en la ruta del papel, lo
cual indica un atasco. La presencia de papel en la bandeja alimentadora se indica
Sensor de
bandeja
alimentadora
P
P
Circuito
lógico
+5 V
Q
Interruptores
para detección
del papel
S = P + QR
S
Q
R
1 k⍀
(b)
R
1 k⍀
(a)
OR
P
S
P
S = P + QR
AND
Q
Q
R
R
(c)
FIGURA 4-9
Ejemplo 4-9.
(d)
132
CAPÍTULO 4/CIRCUITOS LÓGICOS COMBINACIONALES
mediante un nivel ALTO en la señal lógica P. Cada microinterruptor produce una
señal lógica (Q y R, respectivamente) que cambia a ALTO cada vez que el papel pasa
por el interruptor y lo activa. Diseñe el circuito lógico para producir un nivel ALTO
en la señal de salida S para las condiciones antes mencionadas, e impleméntelo utilizando el chip con cuatro compuertas NAND de dos entradas 74HC00 CMOS.
Solución
Utilizaremos el proceso de cinco pasos indicado en el ejemplo 4-7. La tabla de verdad se muestra en la figura 4-3. La salida S será un 1 lógico siempre que P 0, ya
que esto indica que no hay papel en la bandeja alimentadora. S también será un 1
para los dos casos en los que Q y R sean ambas 1, lo cual indica un atasco de papel.
Como la tabla indica, hay cinco condiciones de entrada distintas que producen una
salida en ALTO.
(Paso 1)
TABLA 4-3
P
Q
R
S
0
0
0
1
PQR
0
0
1
1
P QR
0
1
0
1
PQR
0
1
1
1
PQR
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
PQR
Se muestran los términos AND para cada uno de estos casos.
La expresión de suma de productos sería
S P Q R P QR PQR PQR PQR
(Paso 2)
(Paso 3)
Podemos empezar la simplificación factorizando P Q de los términos 1 y 2, y factorizando PQ de los términos 3 y 4:
S P Q(R R) PQ(R R) PQR
(Paso 4)
Ahora podemos eliminar los términos R R ya que son iguales a 1:
S P Q PQ PQR
Si factorizamos P de los términos 1 y 2 podemos eliminar Q:
S P PQR
Aquí, podemos aplicar el teorema (15b) (x xy x y) para obtener
S P QR
Como una comprobación adicional de esta ecuación booleana simplificada, veamos si concuerda con la tabla de verdad con la que comenzamos. Esta ecuación dice
que la salida S estará en ALTO siempre que P esté en BAJO OR cuando Q AND R
estén en ALTO. Consulte la tabla 4-3 y observe que la salida está en ALTO para los
cuatro casos en los que P está en BAJO. S también está en ALTO cuando Q AND R
133
SECCIÓN 4-5/MÉTODO DE MAPAS DE KARNAUGH
están ambas en ALTO, sin importar el estado de P. Lo anterior concuerda con la
ecuación.
La implementación AND/OR para este circuito se muestra en la figura 4-9(b).
(Paso 5)
Para implementar este circuito usando el chip NAND de dos entradas 74HC00,
debemos convertir cada una de las compuertas y el INVERSOR en sus compuertas
NAND equivalentes (con base en la sección 3-12). Esto se muestra en la figura 4-9(c).
Es evidente que podemos eliminar los inversores dobles para producir la implementación con compuertas NAND que se muestra en la figura 4-9(d).
El circuito alambrado final se obtiene mediante la conexión de dos de las compuertas NAND en el chip 74HC00. Este chip CMOS tiene la misma configuración de
compuertas y los mismos números de terminales que el chip 74LS00 TTL de la figura
3-31. La figura 4-10 muestra el circuito alambrado con números de terminales, incluyendo las terminales 5 V y tierra (GND). También incluye un transistor excitador
de salida y un LED para indicar el estado de la salida S.
FIGURA 4-10 Circuito
para la figura 4-9(d)
implementado mediante
el uso del chip NAND
74HC00.
+5 V
100 ⍀
74HC00
4
P
14
6
33 k⍀
S
5
Q
7
1
3
R
2
74HC00
(e)
PREGUNTAS DE REPASO
Nota: las otras dos compuertas
en el chip no están
conectadas.
1. Escriba la expresión de suma de productos para un circuito con cuatro entradas
y una salida que debe estar en ALTO sólo cuando la entrada A esté en BAJO al
mismo tiempo que dos de las otras entradas estén en BAJO.
2. Implemente la expresión de la pregunta 1 utilizando sólo compuertas NAND de
cuatro entradas. ¿Cuántas se requieren?
4-5 MÉTODO DE MAPAS DE KARNAUGH
El mapa de Karnaugh (mapa K) es una herramienta gráfica que se utiliza para simplificar una ecuación lógica o convertir una tabla de verdad en su correspondiente circuito lógico mediante un proceso simple y ordenado. Aunque un mapa K puede usarse
para problemas en los que se involucre cualquier número de variables de entrada,
su utilidad práctica está limitada a cinco o seis variables. Los siguientes problemas
estarán limitados a un máximo de cuatro entradas, ya que los problemas con cinco o
más entradas son demasiado complicados y se resuelven mejor mediante el uso de un
programa de computadora.
134
CAPÍTULO 4/CIRCUITOS LÓGICOS COMBINACIONALES
Formato del mapa de Karnaugh
Al igual que una tabla de verdad, el mapa K es un medio para mostrar la relación
entre las entradas lógicas y la salida deseada. La figura 4-11 muestra tres ejemplos de
mapas K para dos, tres y cuatro variables, junto con sus correspondientes tablas
de verdad. Estos ejemplos ilustran los siguientes puntos importantes:
1. La tabla de verdad proporciona el valor de la salida X para cada combinación
de valores de entrada. El mapa K proporciona la misma información en un formato distinto. Cada caso en la tabla de verdad corresponde a una casilla en el
mapa K. Por ejemplo, en la figura 4-11(a) la condición A 0, B 0 corresponde
la casilla A B en el mapa K. Como la tabla de verdad muestra X 1 para este
caso, se coloca un 1 en la casilla A B del mapa K. De manera similar, la condición
A 1, B 1 en la tabla de verdad corresponde a la casilla AB del mapa K. Como
X 1 para este caso, se coloca un 1 en la casilla AB. Todas las demás casillas se
llenan con 0s. Esta misma idea se utiliza en los mapas con tres y cuatro variables
que se muestran en la figura.
2. Las casillas del mapa K se etiquetan de manera que las casillas adyacentes en
forma horizontal difieran sólo por una variable. Por ejemplo, la casilla de la
esquina superior izquierda en el mapa de cuatro variables es A B C D, mientras
que la casilla que se encuentra justo a su derecha es A B C D (sólo la variable
D es distinta). De manera similar, las casillas adyacentes verticalles sólo difie-
FIGURA 4-11 Mapas
de Karnaugh y tablas de
verdad para (a) dos,
(b) tres y (c) cuatro
variables.
X
1 → AB
0
0
1 → AB
B
0
1
0
1
A
0
0
1
1
B
B
A
1
0
A
0
1
C
C
AB
1
1
AB
1
0
AB
1
0
AB
0
0
CD
CD
CD
CD
AB
0
1
0
0
AB
0
1
0
0
AB
0
1
1
0
AB
0
0
0
0
x = AB + AB
(a)
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
X
1 → ABC
1 → ABC
1 → ABC
0
0
0
1 → ABC
0
X = ABC + ABC
+ ABC + ABC
(b)
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
X
0
1 → ABCD
0
0
0
1 → ABCD
0
0
0
0
0
0
0
1 → ABCD
0
1 → ABCD
X = ABCD + ABCD
+ ABCD + ABCD
(c)
135
SECCIÓN 4-5/MÉTODO DE MAPAS DE KARNAUGH
ren por una variable. Por ejemplo, la casilla de la esquina superior izquierda es
A B C D, mientras que la casilla que está justo debajo es A B C D (sólo la variable
B es distinta).
Observe que cada casilla en la fila superior se considera como adyacente
a una casilla correspondiente en la fila inferior. Por ejemplo, la casilla A BCD
en la fila superior es adyacente a la casilla ABCD en la fila inferior, ya que sólo
difieren por la variable A. Podemos considerar que la parte superior del mapa se
dobla para tocar su parte inferior. De manera similar, las casillas de la columna
más a la izquierda son adyacentes a las correspondientes en la columna más a
la derecha.
3. Para que las casillas adyacentes en forma vertical y horizontal difieran sólo por
una variable, el etiquetado de arriba hacia abajo debe realizarse en el orden
mostrado: A B, AB, AB, AB. Lo mismo aplica para el etiquetado de izquierda a
derecha: C D, CD, CD, CD.
4. Una vez que se ha llenado un mapa K con 0s y 1s, puede obtenerse la expresión
de suma de productos para la salida X mediante la aplicación de la operación
OR a todas las casillas que contengan un 1. En el mapa de tres variables de la
figura 4-11(b), las casillas A B C, A BC, ABC y ABC contienen un 1, de manera que
X A B C A BC ABC ABC.
Agrupamiento
La expresión para la salida X puede simplificarse mediante la combinación apropiada de las casillas en el mapa K que contengan 1s. Al proceso para combinar estos 1s
se le conoce como agrupamiento.
Agrupamiento de pares (grupos de dos)
La figura 4-12(a) es el mapa K para cierta tabla de verdad de tres variables. Este mapa
contiene un par de 1s que son adyacentes en forma vertical; el primero representa a
ABC y el segundo a ABC. Observe que en estos dos términos, sólo la variable A aparece
FIGURA 4-12
Ejemplos de
agrupamientos de pares
de 1s adyacentes.
C
C
AB
0
0
AB
1
0
AB
1
0
AB
0
0
X = ABC + ABC
= BC
C
C
AB
0
0
AB
1
1
AB
0
0
AB
0
0
(a)
X = ABC + ABC
= AB
(b)
C
C
AB
1
0
AB
0
0
CD
CD
CD
CD
AB
0
0
1
1
AB
0
0
0
0
X = ABC + ABC = BC
AB
0
0
AB
0
0
0
0
AB
1
0
AB
1
0
0
1
(d)
(c)
ABC
X = ABCD + ABCD
+ ABCD + ABCD
= ABC + ABD
ABD
136
CAPÍTULO 4/CIRCUITOS LÓGICOS COMBINACIONALES
tanto en forma normal como complementada (invertida), mientras que B y C permanecen sin cambios. Estos dos términos pueden agruparse (combinarse) para obtener
un resultante que elimine la variable A, ya que aparece tanto en forma complementada como no complementada. Es fácil demostrarlo de la siguiente manera:
X = ABC + ABC
= BC(A + A)
= BC(1) = BC
Este mismo principio se aplica para cualquier par de 1s adyacentes en forma
vertical u horizontal. La figura 4-12(b) muestra un ejemplo de dos 1s adyacentes en
forma horizontal; los cuales pueden agruparse, y la variable C puede eliminarse ya
que aparece tanto en su forma no complementada como en su forma complementada, para obtener un resultante de X AB.
La figura 4-12(c) muestra otro ejemplo. En un mapa K, la fila superior y la fila
inferior de casillas se consideran adyacentes. Por ende, los dos 1s en este mapa pueden agruparse para obtener un resultante de A B C AB C B C.
La figura 4-12(d) muestra un mapa K que tiene dos pares de 1s que pueden
agruparse. Los dos 1s en la fila superior son adyacentes en forma horizontal. Los
dos 1s en la fila inferior también son adyacentes ya que, en un mapa K la columna
más a la izquierda y la columna más a la derecha se consideran adyacentes. Cuando
se agrupa el par de 1s de la parte superior se elimina la variable D (ya que aparece
como D y como D) para producir el término A BC. Al agrupar el par de la parte inferior se elimina la variable C para producir el término AB D. Después se aplica una
operación OR a estos dos términos para obtener el resultado final para X.
En resumen:
Al agrupar un par de 1s adyacentes en un mapa K se elimina la variable que
aparece tanto en forma no complementada como en forma complementada.
Agrupamiento de cuádruples (grupos de cuatro)
Un mapa K puede contener un grupo de cuatro 1s que sean adyacentes. A este grupo
se le conoce como cuádruple. La figura 4-13 muestra varios ejemplos de este tipo. En
la figura 4-13(a), los cuatro 1s son adyacentes en forma vertical y en la figura 4-13(b)
son adyacentes en forma horizontal. El mapa K de la figura 4-13(c) contiene cuatro
1s en una casilla y se consideran adyacentes entre sí. Los cuatro 1s de la figura
4-13(d) también son adyacentes, al igual que los de la figura 4-13(e) ya que, como
dijimos antes, las filas superior e inferior se consideran como adyacentes entre sí, al
igual que las columnas más a la izquierda y más a la derecha.
Cuando se agrupa un cuádruple, el término resultante sólo contendrá las variables que no cambian su forma en todas las casillas del cuádruple. Por ejemplo, en
la figura 4-13(a) las cuatro casillas que contienen un 1 son A BC, ABC, ABC y ABC.
Si examinamos estos términos descubriremos que sólo la variable C permanece sin
cambios (tanto A como B aparecen en forma complementada y no complementada).
Por ende, la expresión resultante para X es tan sólo X C. Esto puede demostrarse
de la siguiente manera:
X =
=
=
=
A BC + ABC + ABC + ABC
AC(B + B) + AC(B + B)
AC + AC
C(A + A) = C
137
SECCIÓN 4-5/MÉTODO DE MAPAS DE KARNAUGH
FIGURA 4-13
Ejemplos de
agrupamiento de
cuádruples.
C
C
AB
0
1
AB
AB
0
1
AB
0
AB
0
CD
CD
CD
CD
CD
AB
0
0
0
0
0
AB
0
1
1
0
1
1
AB
0
1
1
0
0
0
AB
0
0
0
0
CD
CD
CD
0
0
0
0
AB
0
0
0
1
AB
1
1
1
AB
0
0
X=C
X = BD
X = AB
(a)
(c)
(b)
CD
CD
CD
CD
CD
CD
CD
CD
AB
0
0
0
0
AB
1
0
0
1
AB
0
0
0
0
AB
0
0
0
0
AB
1
0
0
1
AB
0
0
0
0
AB
1
0
0
1
AB
1
0
0
1
X = BD
X = AD
(d)
(e)
Como otro ejemplo, considere la figura 4-13(d), en donde las cuatro casillas que
contienen 1s son ABC D, AB C D, ABCD y ABCD. Al analizar estos términos podemos
ver que sólo las variables A y D permanecen sin cambios, de manera que la expresión simplificada para X es
X AD
Lo que puede demostrarse de la misma forma que se hizo antes. El lector deberá
comprobar cada uno de los otros casos de la figura 4-13 para verificar las expresiones indicadas para X.
En resumen:
Al agrupar un cuádruple de 1s adyacentes se eliminan las dos variables que
aparecen tanto en forma complementada como en forma no complementada.
Agrupamiento de octetos (grupos de ocho)
A un grupo de ocho 1s adyacentes entre sí se le conoce como octeto. La figura 4-14
muestra varios ejemplos de octetos. Cuando se agrupa un octeto en un mapa de cuatro variables se eliminan tres de ellas, ya que sólo una permanece sin cambios. Por
ejemplo, si examinamos las ocho casillas agrupadas en la figura 4-14(a) podremos
ver que sólo la variable B se encuentra en la misma forma para las ocho casillas: las
demás variables aparecen en su forma complementada y no complementada. En
consecuencia, para este mapa X B. El lector puede verificar los resultados para
los demás ejemplos de la figura 4-14.
En resumen:
Al agrupar un octeto de 1s adyacentes se eliminan las tres variables que
aparecen tanto en su forma complementada como en su forma no complementada.
138
FIGURA 4-14
Ejemplos de
agrupamiento
de octetos.
CAPÍTULO 4/CIRCUITOS LÓGICOS COMBINACIONALES
CD
CD
CD
CD
CD
CD
CD
CD
AB
0
0
0
0
AB
1
1
0
0
AB
1
1
1
1
AB
1
1
0
0
AB
1
1
1
1
AB
1
1
0
0
AB
0
0
0
0
AB
1
1
0
0
X=B
(a)
X=C
(b)
CD
CD
CD
CD
1
0
0
1
AB
1
0
0
1
0
AB
1
0
0
1
1
AB
1
0
0
1
CD
CD
CD
CD
AB
1
1
1
1
AB
AB
0
0
0
0
AB
0
0
0
AB
1
1
1
X=B
(c)
X=D
(d)
Proceso completo de simplificación
Hemos visto cómo se puede utilizar el agrupamiento de pares, cuádruples y octetos
en un mapa K para obtener una expresión simplificada. Podemos resumir la regla
para los agrupamientos de cualquier tamaño, de la siguiente manera:
Cuando una variable aparece tanto en su forma complementada como no
complementada dentro de un grupo, esa variable se elimina de la expresión.
Las variables que son iguales para todas las casillas del grupo deben aparecer en la expresión final.
Debe quedar claro que un agrupamiento mayor de 1s elimina más variables.
Para ser exacto, un agrupamiento de dos elimina una variable, un agrupamiento de
cuatro elimina dos variables y un agrupamiento de ocho elimina tres. Ahora utilizaremos este principio para obtener una expresión lógica simplificada a partir de un
mapa K que contenga cualquier combinación de 1s y 0s.
Primero describiremos el procedimiento y después lo aplicaremos en varios
ejemplos. Los siguientes pasos son el procedimiento mediante el uso del método del
mapa K, para simplificar una expresión booleana:
Paso 1 Construya el mapa K y coloque 1s en las casillas que correspondan a los 1s
en la tabla de verdad. Coloque 0s en las demás casillas.
Paso 2 Examine el mapa en busca de 1s adyacentes y marque los que no sean adyacentes con cualquier otro 1. A éstos se les conoce como 1s aislados.
Paso 3 A continuación busque los 1s que sean adyacentes sólo con otro 1. Agrupe
cualquier par que contenga este tipo de 1s.
Paso 4 Agrupe cualquier octeto, aún y cuando contenga algunos 1s que ya se hayan
agrupado.
Paso 5 Agrupe cualquier cuádruple que contenga uno o más 1s que no se hayan
agrupado ya, asegurándose de utilizar el número mínimo de grupos.
139
SECCIÓN 4-5/MÉTODO DE MAPAS DE KARNAUGH
Paso 6 Agrupe cualquier par necesario para incluir todos los 1 que no se hayan agrupado todavía, asegurándose de utilizar el número mínimo de agrupamientos.
Paso 7 Forme la suma OR de todos los términos generados, uno por cada grupo.
En los siguientes ejemplos seguiremos al pie de la letra cada uno de estos pasos
y haremos referencia a ellos. En cada caso, la expresión lógica resultante estará en
su forma de suma de productos más simple.
EJEMPLO 4-10
La figura 4-15(a) muestra el mapa K para un problema con cuatro variables. Supondremos que el mapa se obtuvo de la tabla de verdad del problema (paso 1). Las
casillas están numeradas para identificar cada uno de los grupos.
FIGURA 4-15
Ejemplos 4-10 al 4-12.
CD
AB
CD
0
0
1
AB
0
1
0
1
3
1
1
0
0
6
9
AB
CD
2
5
AB
CD
0
7
1
10
0
13
4
8
0
11
1
14
X=
ABCD
+
ACD
grupo 4
+
BD
grupo
11, 15
12
grupo 6,
7, 10, 11
0
15
16
(a)
CD
AB
CD
0
0
1
AB
1
1
1
0
3
1
1
0
1
6
9
AB
CD
2
5
AB
CD
1
7
0
10
0
13
4
8
0
11
0
14
12
X=
AB
+
grupo 5,
6, 7, 8
BC
+
ACD
grupo
3, 7
grupo 5,
6, 9, 10
0
15
16
(b)
CD
AB
CD
0
1
1
AB
0
1
1
1
1
8
X=
0
ABC
9, 10
+
ACD
2, 6
+
ABC
7, 8
+
ACD
11, 15
12
11
1
14
4
7
10
0
13
0
3
1
1
0
0
6
9
AB
CD
2
5
AB
CD
0
15
16
(c)
Paso 2 La casilla 4 es la única que contiene un 1 que no es adyacente con cualquier
otro 1. Se agrupa y se identifica como grupo 4.
Paso 3 La casilla 15 es adyacente sólo con la casilla 11. Este par se agrupa y se identifica como grupo 11, 15.
Paso 4 No hay octetos.
Paso 5 Las casillas 6, 7, 10 y 11 forman un cuádruple. Este cuádruple se agrupa (grupo 6, 7, 10, 11). Observe que la casilla 11 se utiliza de nuevo, aun y cuando
forma parte del grupo 11, 15.
140
CAPÍTULO 4/CIRCUITOS LÓGICOS COMBINACIONALES
Paso 6 Ya se han agrupado todos los 1s.
Paso 7 Cada grupo genera un término en la expresión para X. El grupo 4 es A BCD.
El grupo 11, 15 es ACD (se elimina la variable B). El grupo 6, 7, 10, 11 es BD
(se eliminan A y C).
EJEMPLO 4-11
Considere el mapa K de la figura 4-15(b). Una vez más podemos suponer que ya se
ha realizado el paso 1.
Paso 2 No hay 1s aislados.
Paso 3 El 1 en la casilla 3 es adyacente sólo con el 1 en la casilla 7. Al agrupar este
par (grupo 3, 7) se produce el término ACD.
Paso 4 No hay octetos.
Paso 5 Hay dos cuádruples: El primero lo forman los cuadros 5, 6, 7 y 8 . Al agrupar
este cuádruple se produce el término AB. El segundo está compuesto por
las casillas 5, 6, 9 y 10. Se debe agrupar este cuádruple, ya que contiene dos
casillas que no se han agrupado antes. Al agruparlo se produce BC.
Paso 6 Ya se han agrupado todos los 1s.
Paso 7 Se aplica la operación OR a los términos generados por los tres grupos y se
obtiene la expresión para X.
EJEMPLO 4-12
Considere el mapa K de la figura 4-15(c):
Paso 2 No hay 1s aislados.
Paso 3 El 1 en la casilla 2 es adyacente sólo para el 1 en la casilla 6. Este par se agrupa para producir A CD. De manera similar, la casilla 9 es adyacente sólo con
la casilla 10. Al agrupar este par se produce ABC. De igual forma, los grupos
7, 8 y 11, 15 producen los términos ABC y ACD, en forma correspondiente.
Paso 4 No hay octetos.
Paso 5 Sólo hay un cuádruple formado por las casillas 6, 7, 10 y 11. No obstante, este
cuádruple no se agrupa debido a que todos los 1s que contiene ya se han
incluido en otros grupos.
Paso 6 Ya se han agrupado todos los 1s.
Paso 7 La expresión para X se muestra en la figura.
EJEMPLO 4-13
FIGURA 4-16 El
mismo mapa K con dos
soluciones correctas
similares.
Considere el mapa K de la figura 4-16(a).
CD
CD
CD
CD
CD
CD
CD
CD
AB
0
1
0
0
AB
0
1
0
0
AB
0
1
1
1
AB
0
1
1
1
AB
0
0
0
1
AB
0
0
0
1
AB
1
1
0
1
AB
1
1
0
1
X = ACD + ABC + ABC + ACD
(a)
X = ABD + BCD + BCD + ABD
(b)
141
SECCIÓN 4-5/MÉTODO DE MAPAS DE KARNAUGH
Paso 2 No hay 1s aislados.
Paso 3 No hay 1s que sean adyacentes sólo con otro 1.
Paso 4 No hay octetos.
Paso 5 No hay cuádruples.
Pasos 6 y 7 Hay muchos pares posibles. El agrupamiento debe utilizar el número mínimo de grupos para tomar en cuenta a todos los 1s. Para este mapa
hay dos grupos posibles, los cuales requieren sólo cuatro pares agrupados.
La figura 4-16(a) muestra una solución y su expresión resultante. La figura
4-16(b) muestra la otra. Observe que ambas expresiones son de la misma
complejidad, por lo cual ninguna es mejor que la otra.
Cómo llenar un mapa K a partir de una expresión de salida
Cuando la salida deseada se presenta como expresión booleana en vez de tabla de
verdad, el mapa K puede llenarse mediante el uso de los siguientes pasos:
1. Cambie la expresión a su forma SOP, en caso de que no se encuentre ya en esa
forma.
2. Para cada término de productos en la expresión SOP, coloque un 1 en cada casilla del mapa K cuya etiqueta contenga la misma combinación de variables de
entrada. Coloque un 0 en todas las demás casillas.
El siguiente ejemplo ilustra este procedimiento.
EJEMPLO 4-14
Use un mapa K para simplificar la expresión y C(A B D D) ABC D.
Solución
1. Multiplique el primer término para obtener y A B C D CD ABC D, que
se encuentra ahora en la forma SOP.
2. Para el término A B C D sólo necesita colocar un 1 en la casilla A B C D del mapa
K (figura 4-17). Para el término CD coloque un 1 en todas las casillas que tengan
CD en sus etiquetas: A B CD, ABCD, ABCD, AB CD. Para el término ABC coloque
un 1 en todas las casillas que tengan un ABC en sus etiquetas: ABCD, ABCD. Para
el término D coloque un 1 en todas las casillas que tengan una D en sus etiquetas: en todas las casillas de las columnas más a la izquierda y más a la derecha.
FIGURA 4-17
4-14.
Ejemplo
CD
CD
CD
CD
AB
1
1
0
1
AB
1
1
0
1
AB
1
1
0
1
AB
1
1
1
1
y = AB + C + D
Ahora el mapa K está lleno y puede agruparse para simplificar la expresión. Verifique que un agrupamiento apropiado produzca la expresión y AB C D.
142
CAPÍTULO 4/CIRCUITOS LÓGICOS COMBINACIONALES
Condiciones “No importa”
Algunos circuitos lógicos pueden diseñarse de manera que haya ciertas condiciones
de entrada para las cuales no existan niveles de salida especificados, por lo general,
debido a que estas condiciones de entrada nunca ocurrirán. En otras palabras, habrá
ciertas combinaciones de niveles de entrada en las que “no importa” si la salida está
en ALTO o en BAJO. Esto se ilustra en la tabla de verdad de la figura 4-18(a).
FIGURA 4-18 Las
condiciones “No
importa” deben
cambiarse por 0 o 1
para producir un
agrupamiento del
mapa K que genere la
expresión más simple.
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
(a)
z
0
0
0
x
x
1
1
1
“no
importa”
C
C
AB
0
0
AB
0
AB
AB
C
C
AB
0
0
x
AB
0
0
1
1
AB
1
1
x
1
AB
1
1
(b)
z=A
(c)
Aquí la salida z no se especifica como 0 o 1 para las condiciones A, B, C 1, 0,
0 y A, B, C 0, 1, 1. En vez de ello se muestra una x para estas condiciones. La x
representa la condición de “no importa”. Este tipo de condición puede surgir debido
a varias razones; es la más común que en algunas situaciones nunca podrán ocurrir
ciertas combinaciones de entradas, por lo que no hay una salida especificada para
estas condiciones.
Un diseñador de circuitos tiene la libertad de hacer que la salida para cualquier
condición de “no importa” sea un 0 o un 1 para producir la expresión de salida más
simple. Por ejemplo, el mapa K para esta tabla de verdad se muestra en la figura
4-18(b), con una x en las casillas AB C y ABC. Aquí la mejor opción para el diseñador
sería cambiar la x de la casilla AB C por un 1 y la x de la casilla ABC por un 0, ya
que esto produciría un cuádruple que puede agruparse para producir z A, como se
muestra en la figura 4-18(c).
Siempre que ocurran condiciones de “no importa”, debemos decidir cuál x se va
a cambiar por 0 y cuál por 1 para producir el mejor agrupamiento del mapa K (es
decir, el grupo más grande que resulta en la expresión más simple). Esta decisión no
siempre es fácil. Varios de los problemas al final del capítulo le ayudarán a aumentar su experiencia para tratar los casos de “no importa”. He aquí otro ejemplo.
EJEMPLO 4-15
Vamos a diseñar un circuito lógico que controla la puerta de un elevador en un
edificio de tres pisos. El circuito de la figura 4-19(a) tiene cuatro entradas. M es una
señal lógica que indica cuando se mueve el elevador (M 1) o cuando está detenido
(M 0). F1, F2 y F3 son señales indicadoras de cada piso que, por lo general, están
en BAJO, y cambian a ALTO sólo cuando el elevador está posicionado en ese piso.
Por ejemplo, cuando el elevador está alineado con el segundo piso, F2 1 y F1
F3 0. La salida del circuito es la señal ABIERTO que, por lo general, está en BAJO
y cambia a ALTO cuando se va a abrir la puerta del elevador.
Podemos llenar la tabla de verdad para la salida ABIERTO [Figura 4-19(b)] de la
siguiente manera:
1. Como el elevador no puede alinearse con más de un piso a la vez, sólo una de las
entradas de los pisos puede estar en ALTO en un momento dado. Esto significa
que todos aquellos casos en la tabla de verdad en los que más de una entrada de
piso esté en 1 serán condiciones de “no importa”. Podemos colocar una x en la
143
SECCIÓN 4-5/MÉTODO DE MAPAS DE KARNAUGH
FIGURA 4-19
4-15.
Ejemplo
M
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
M F1 F2 F3
Moviendo
el elevador
ABIERTO
F1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
(a)
F2
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
F3
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
ABIERTO
0
1
1
X
1
X
X
X
0
0
0
X
0
X
X
X
(b)
F2 F3 F2 F3 F2 F3 F2 F3
F2 F3 F2 F3 F2 F3 F2 F3
M F1
0
1
X
1
M F1
0
1
1
1
M F1
1
X
X
X
M F1
1
1
1
1
M F1
0
X
X
X
M F1
0
0
0
0
M F1
0
0
X
0
M F1
0
0
0
0
OPEN = M (F1 + F2 + F3)
(c)
(d)
columna de la salida ABIERTO para los ocho casos en los que más de una entrada F es 1.
2. Si analizamos los otros ocho casos, cuando M 1 el elevador se está moviendo,
por lo que ABIERTO debe ser un 0 ya que no deseamos que se abra la puerta del
elevador. Cuando M 0 (el elevador está detenido) queremos que ABIERTO 1
siempre y cuando una de las entradas de piso sea 1. Cuando M 0 y todas las
entradas de piso son 0, el elevador está detenido pero no está alineado en forma
apropiada con ninguno de los pisos, por lo que queremos que ABIERTO 0 para
mantener la puerta cerrada.
Ahora la tabla de verdad está completa y podemos transferir su información
al mapa K de la figura 4-19(c). El mapa sólo tiene tres 1s, pero ocho condiciones
de “no importa”. Al cambiar cuatro de estas casillas de “no importa” por 1s, podemos producir grupos de cuádruples que contengan los 1s originales [Figura 4-19(d)].
Esto es lo mejor que podemos hacer en cuanto a minimizar la expresión de salida.
Verifique que los agrupamientos produzcan la expresión de salida que se muestra
para ABIERTO.
Resumen
El proceso de mapa K tiene varias ventajas en comparación con el método algebraico. El mapeo K es un proceso más ordenado, con pasos bien definidos en comparación
con el proceso de prueba y error que se utiliza algunas veces en la simplificación algebraica. Por lo general, el mapeo K requiere menos pasos, en especial para las expresiones que contienen muchos términos, y siempre produce una expresión mínima.
144
CAPÍTULO 4/CIRCUITOS LÓGICOS COMBINACIONALES
Sin embargo, algunos instructores prefieren el método algebraico debido a que
requiere un profundo conocimiento del álgebra booleana y no es tan sólo un procedimiento mecánico. Cada método tiene sus ventajas y, aunque la mayoría de los
diseñadores lógicos son adeptos en ambos, ser proficiente en uno de ellos es todo lo
que se necesita para producir resultados aceptables.
Existen otras técnicas más complejas que utilizan los diseñadores para minimizar circuitos lógicos con más de cuatro entradas. Estas técnicas se adecuan en
forma especial a los circuitos con grandes cantidades de entradas, en donde no puede considerarse el método algebraico ni el mapeo K. La mayoría de estas técnicas
puede traducirse a un programa de computadora que realizará la minimización con
base en los datos de entrada que suministre la tabla de verdad o la expresión sin
simplificar.
PREGUNTAS DE REPASO
1. Utilice el mapeo K para obtener la expresión del ejemplo 4-7.
2. Utilice el mapeo K para obtener la expresión del ejemplo 4-8. Aquí se debe enfatizar la ventaja del mapeo K para expresiones que contengan muchos términos.
3. Obtenga la expresión del ejemplo 4-9, utilizando un mapa K.
4. ¿Qué es una condición de “no importa”?
4-6 CIRCUITOS OR EXCLUSIVO Y NOR EXCLUSIVO
Dos de los circuitos lógicos especiales que se presentan con mucha frecuencia en los
sistemas digitales son el OR exclusivo y el NOR exclusivo.
OR exclusivo
Considere el circuito lógico de la figura 4-20(a). La expresión de salida de este circuito es
x AB AB
FIGURA 4-20
(a) Circuito OR
exclusivo y su tabla
de verdad; (b) símbolo
tradicional de la
compuerta XOR;
(c) símbolo IEEE/ANSI
para la compuerta XOR.
A
A
B
B
AB
A
x = AB + AB
A
0
0
1
1
B
0
1
0
1
AB
B
(a)
Símbolos de compuerta XOR
x=A⊕B
= AB + AB
A
A
=1
B
B
(b)
(c)
x=A⊕B
x
0
1
1
0
SECCIÓN 4-6/CIRCUITOS OR EXCLUSIVO Y NOR EXCLUSIVO
145
La tabla de verdad que acompaña a este circuito muestra que x 1 para dos casos:
A 0, B 1 (el término AB) y A 1, B 0 (el término AB). En otras palabras:
Este circuito produce una salida en ALTO siempre que las dos entradas se
encuentran en los niveles opuestos.
Éste es el circuito OR exclusivo, que de aquí en adelante se abreviará como XOR.
Esta combinación específica de compuertas lógicas se produce con mucha frecuencia y es muy útil en ciertas aplicaciones. De hecho, al circuito XOR se le ha
otorgado su propio símbolo, el cual se muestra en la figura 4-20(b). Se asume que este
símbolo contiene toda la lógica dentro del circuito XOR y, por lo tanto, tiene la misma expresión lógica y la misma tabla de verdad. Por lo general, al circuito XOR se le
conoce como compuerta XOR, y lo consideramos como otro tipo de compuerta lógica.
En la figura 4-20(c) se muestra el símbolo IEEE/ANSI para una compuerta XOR. El
símbolo de notación de dependencia ( 1) dentro del bloque indica que la salida
será activa en ALTO sólo cuando una de las entradas esté en ALTO.
Una compuerta XOR sólo tiene dos entradas; no hay compuertas XOR de tres
ni de cuatro entradas. Las dos entradas se combinan de manera que x AB AB.
Una forma abreviada que se utiliza algunas veces para indicar la expresión de salida
XOR es
xAB
en donde el símbolo representa la operación de la compuerta XOR.
A continuación se sintetizan las características de una compuerta XOR:
1. Sólo tiene dos entradas y su salida es
x AB AB A B
2. Su salida está en ALTO sólo cuando las dos entradas se encuentran en niveles
distintos.
Hay varios CIs disponibles que contienen compuertas XOR. Los que se listan a
continuación son chips que contienen cuatro compuertas XOR.
74LS86
74C86
74HC86
Chip con cuatro compuertas XOR (familia TTL)
Chip con cuatro compuertas XOR (familia CMOS)
XOR (CMOS de alta velocidad)
NOR exclusivo
El circuito NOR exclusivo (que se abrevia como XNOR) opera en forma completamente opuesta al circuito XOR. La figura 4-21(a) muestra un circuito XNOR y su
tabla de verdad correspondiente. La expresión de salida es
x AB A B
lo cual indica junto con la tabla de verdad que x será 1 para dos casos: A B 1 (el
término AB) y A B 0 (el término A B). En otras palabras:
El circuito XNOR produce una salida en ALTO siempre que las dos entradas
se encuentran en el mismo nivel.
De todo esto podemos deducir que la salida del circuito XNOR es el inverso
exacto de la salida del circuito XOR. El símbolo tradicional para una compuerta
146
FIGURA 4-21
(a) Circuito NOR
exclusivo; (b) símbolo
tradicional para la
compuerta XNOR;
(c) símbolo IEEE/ANSI.
CAPÍTULO 4/CIRCUITOS LÓGICOS COMBINACIONALES
A
A
A
0
0
1
1
AB
B
B
B
0
1
0
1
x
1
0
0
1
x = AB +AB
B
AB
A
(a)
Símbolos de compuerta XNOR
x = A ⊕ B = AB + AB
A
A
=1
B
x=A⊕B
B
(b)
(c)
XNOR se obtiene con sólo agregar un pequeño círculo en la salida del símbolo XOR
[figura 4-21(b)]. El símbolo IEEE/ANSI agrega el pequeño triángulo en la salida del
símbolo XOR. Ambos símbolos indican una salida que cambia a su estado de activo
en BAJO cuando sólo una de las entradas está en ALTO.
La compuerta XNOR también tiene sólo dos entradas, y las combina de manera
que su salida sea
x AB A B
Una forma abreviada de indicar la expresión de salida de la compuerta XNOR es
xAB
la cual es el inverso de la operación XOR. La compuerta XNOR se puede sintetizar
de la siguiente manera:
1. Sólo tiene dos entradas y su salida es
x AB A B A B
2. Su salida está en ALTO sólo cando las dos entradas se encuentran en el mismo
nivel.
Hay varios CIs disponibles que contienen compuertas XNOR. Los que se listan
a continuación son chips que contienen cuatro compuertas XNOR.
74LS266
74C266
74HC266
Chip con cuatro compuertas XNOR (familia TTL)
Chip con cuatro compuertas XNOR (CMOS)
Chip con cuatro compuertas XNOR (CMOS de alta velocidad)
147
SECCIÓN 4-6/CIRCUITOS OR EXCLUSIVO Y NOR EXCLUSIVO
Sin embargo, cada uno de estos chips consta de circuitos con salida especial que
limita su uso a ciertos tipos especiales de aplicaciones. Es muy común que un diseñador lógico obtenga la función XNOR con sólo conectar la salida de una compuerta
XOR a un INVERSOR.
EJEMPLO 4-16
FIGURA 4-22
4-16.
Determine la forma de onda de salida para las formas de onda de entrada que se
muestran en la figura 4-22.
Ejemplo
A
A
x
B
B
x
t0
t1
t2
t3
Solución
La forma de onda de salida se obtiene mediante el hecho de que la salida XOR estará en ALTO sólo cuando sus entradas se encuentren en distintos niveles. La forma
de onda de salida resultante revela varios puntos interesantes:
1. La forma de onda de x concuerda con la forma de onda de entrada A durante
los intervalos de tiempo en los que B 0. Esto ocurre durante los intervalos de
tiempo t0 a t1 y t2 a t3.
2. La forma de onda de x es el inverso de la forma de onda de entrada A durante los
intervalos de tiempo en los que B 1. Esto ocurre durante el intervalo t1 a t2.
3. Estas observaciones muestran que una compuerta XOR puede utilizarse como
INVERSOR CONTROLADO; es decir, que una de sus entradas puede utilizarse
para controlar si se va a invertir o no la señal de la otra entrada. Esta propiedad
puede ser útil en ciertas aplicaciones.
EJEMPLO 4-17
La notación x1x0 representa un número binario de dos bits que puede tener cualquier valor (00, 01, 10 o 11); por ejemplo, cuando x1 1 y x0 0 el número binario es
10, y así sucesivamente. De manera similar, y1y0 representa otro número binario de
dos bits. Diseñe un circuito lógico en el que utilice las entradas x1, x0, y1 y y0, y cuya
salida esté en ALTO sólo cuando los dos números binarios x1x0 y y1y0 sean iguales.
Solución
El primer paso es construir una tabla de verdad para las 16 condiciones de entrada
(tabla 4-4). La salida z debe estar en ALTO siempre que los valores de x1x0 concuerden con los valores de y1y0; esto es, siempre que x1 y1 y x0 y0. La tabla muestra
que hay cuatro de esos casos. Ahora podríamos continuar con el procedimiento normal, que sería obtener una expresión de suma de productos para z, trat