0% encontró este documento útil (0 votos)
56 vistas247 páginas

Logica Digital II Logism Problemas

El documento es un manual titulado 'Lógica Digital y Tecnología de Computadores - Un enfoque práctico mediante simulación con Logisim. Vol. 2 - Problemas Resueltos', que ofrece soluciones a 175 problemas relacionados con la lógica digital y sistemas computacionales, organizados en tres partes. Este texto complementa un manual anterior y está diseñado para la enseñanza de la asignatura de Tecnología de Computadores en el grado de Ingeniería Informática, utilizando la herramienta Logisim para facilitar el aprendizaje. Además, se proporciona un repositorio en GitHub con material auxiliar relacionado.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
56 vistas247 páginas

Logica Digital II Logism Problemas

El documento es un manual titulado 'Lógica Digital y Tecnología de Computadores - Un enfoque práctico mediante simulación con Logisim. Vol. 2 - Problemas Resueltos', que ofrece soluciones a 175 problemas relacionados con la lógica digital y sistemas computacionales, organizados en tres partes. Este texto complementa un manual anterior y está diseñado para la enseñanza de la asignatura de Tecnología de Computadores en el grado de Ingeniería Informática, utilizando la herramienta Logisim para facilitar el aprendizaje. Además, se proporciona un repositorio en GitHub con material auxiliar relacionado.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Colección Manuales Docentes

Lógica digital
y tecnología
de computadores
Un enfoque práctico mediante
simulación con Logisim. Vol. 2

PROBLEMAS RESUELTOS

Jesús Salido Tercero


Lógica Digital y Tecnología de Computadores
Un enfoque práctico mediante simulación con Logisim
(vol. 2)
– Problemas Resueltos –

Jesús Salido Tercero

Escuela Superior de Informática


Universidad de Castilla-La Mancha

Ediciones de la Universidad de Castilla-La Mancha


UXT (Thema)
ã de los textos e ilustraciones: sus autores, 2024.
ã de la edición: Universidad de Castilla-La Mancha, 2024.

Edita: Ediciones de la Universidad de Castilla-La Mancha.

Colección Manuales docentes n.º 27.

Esta editorial es miembro de la UNE, lo que garantiza la difusión y


comercialización de sus publicaciones a nivel nacional e
internacional.

I.S.B.N.: 978-84-9044-658-4 (Edición electrónica)


D.O.I.: https://doi.org/10.18239/manuales_2024.27.00
ISNI: 0000000506819532 (Ediciones UCLM)

Este original fue sometido al proceso de selección y evaluación del Comité Editorial del
sello Ediciones de la Universidad de Castilla-La Mancha que valoró positivamente su
publicación. Este libro está publicado en Acceso Abierto (ruta diamante) en el
Repositorio Institucional RUIdeRA, handle: https://hdl.handle.net/10578/36209

Hecho en España (U.E.) – Made in Spain (E.U.)

La composición tipográfica de esta obra se ha realizado empleando LATEX con la


plantilla The Legrand Orange Book de Mathias Legrand y Vel, incorporando
modificaciones propias del autor. Las imágenes de apertura de los capítulos, en las que
aparece el personaje Danbo, se han obtenido de Pixabay, distribuidas bajo licencia
Pixabay. Corresponden al autor la autoría del resto de figuras, salvo aquellas en que se
indica autoría alternativa. La copia y distribución de esta obra está permitida en todo el
mundo, sin regalías y por cualquier medio, siempre que esta nota sea preservada. Se
concede permiso para copiar y distribuir traducciones de este libro desde el español
original a otro idioma, siempre que la traducción sea aprobada por el autor de esta obra y
tanto el aviso de copyright como esta nota de permiso, sean preservados en todas las
copias.
Esta obra se distribuye bajo licencia CC-BY-SA 4.0
https://creativecommons.org/licenses/by-sa/4.0/
Sobre el autor
Jesús Salido es Ingeniero Industrial y Doctor en Robótica e Inteligencia Artificial por la Universidad
Politécnica de Madrid. Ha desarrollado su actividad investigadora en el Instituto de Automática Industrial
(Arganda del Rey, España) del Consejo Superior de Investigaciones Científicas (CSIC) y en The Robotics
Institute, Carnegie Mellon University (Pittsburgh, EEUU).
En la actualidad es profesor titular (TU) en la Escuela Superior de Informática
(ESI) de la Universidad de Castilla-La Mancha (UCLM), donde imparte docen-
cia en el Grado de Ingeniería Informática en las asignaturas de Tecnología de
Computadores (obligatoria de 1er. curso) y Diseño VLSI (optativa de 4º curso).
Como investigador, en la actualidad es integrante del Grupo de Visión y Siste-
mas Inteligentes (Grupo Visilab-UCLM) participando en proyectos de ámbito
nacional e internacional en las áreas de Aplicaciones de Visión por Computador
e Inteligencia Artificial. Sus intereses se centran en la implementación de sis-
temas inteligentes y aplicaciones de visión por computador. Más información
disponible en perfil público ORCID: 0000-0002-9216-3522.
A mis estudiantes sin excepción,
por ser un estímulo constante
para mejorar mi quehacer docente
Lógica Digital y Tecnología de Computadores
Un enfoque práctico con Logisim (vol. 2)
– Problemas Resueltos –
Jesús Salido Tercero

Resumen
Esta obra se ha preparado como acompañamiento al manual de teoría publicado previamente por
el autor: Lógica digital y tecnología de computadores - Un enfoque práctico mediante simulación con
Logisim (ISBN: 978-84-9044-621-8. DOI: 10.18239/manuales_2023.26.00). En este texto se presenta
la resolución de todos los problemas propuestos en dicho manual. Ambos manuales están concebidos
como material docente para la asignatura de primer curso Tecnología de Computadores para el grado en
Ingeniería Informática, aunque pueden ser empleados en materias relacionadas con el Diseño de Sistemas
Digitales impartidas en otras titulaciones.
Este libro sigue una organización idéntica al manual de teoría, en el que nos encontramos con una
división en tres partes:
I.- Representación de información y lógica booleana (Caps. 1 a 3),
II.- Sistemas combinacionales (Caps. 4 a 6), y
III.- Sistemas secuenciales (Caps. 7 a 9).
A lo largo de los nueve capítulos de este manual se resuelven un total de 175 problemas que cubren
el análisis y el diseño de sistemas lógicos, junto a aspectos relacionados. Dentro de cada capítulo los
problemas se agrupan en secciones con una temática común. Además, se han clasificado cualitativamente
en tres categorías de dificultad: ★✩✩ (baja), ★★✩ (media) y ★★★ (alta). En las explicaciones se
abordan posibles alternativas de resolución y el uso intensivo de Logisim, una herramienta de simulación
lógica que facilita la experimentación y el aprendizaje de quienes utilicen estos manuales.
Esta obra de problemas resueltos, junto al manual de teoría asociado, se complementan con un
repositorio público en GitHub [8] en el que se puede encontrar material auxiliar consistente en los
circuitos lógicos realizados con Logisim que aparecen en ambos textos, así como algunos circuitos
adicionales relacionados.
Agradecimientos

Esta obra ve la luz gracias a muchas personas que directa o indirectamente han facilitado algún aspecto
de su producción. Por dicho motivo esta sección puede ser injusta con aquellas que no son mencionadas
expresamente, pero a quienes estoy muy agradecido.
Por su relación con el contexto académico de esta obra, agradezco a mis compañeros, los profesores
Antonio Adán e Inocente Sánchez, el material preparado durante su dilatada experiencia como docentes
en la asignatura de Tecnología de Computadores impartida en la ESI-UCLM.
De igual modo, siento una enorme gratitud hacia mis estudiantes en general y en particular a los que
han cursado conmigo la asignatura de Tecnología de Computadores. A todos ellos dedico esta obra, con
un agradecimiento especial para José Félix B., por sus valiosos comentarios.
No puedo olvidar dar las gracias al personal —PDI y PAS– de la ESI-UCLM, del Departamento de
Ingeniería Eléctrica, Electrónica, Automática y Comunicaciones (IEEAC), y de la UCLM que hacen
posible mi labor como docente e investigador.
En gran parte esta obra es posible gracias a la labor del Dr. Carl Burch creador de Logisim. La
composición tipográfica de esta obra ha sido factible gracias a la utilización de LATEX empleando TEXstudio
como entorno integrado de desarrollo. Por ello, deseo expresar mi sincero agradecimiento a todas las
personas que de forma generosa han proporcionado a la comunidad, las herramientas software empleadas
para producir esta obra.
No puedo dejar de expresar un enorme agradecimiento a mi círculo próximo constituido por esposa e
hijos, que constituyen mi «soporte vital» y a quienes no siempre destino el tiempo que merecen. A mis
padres y hermanas quienes siempre han sido modelos en los que buscar inspiración. Y por supuesto a
mis amistades: personas pacientes con mis limitaciones y que con su ánimo hacen posible mi humilde
aportación a la sociedad.
Por último, agradezco a quien encuentre de utilidad esta modesta obra, el envío por correo electrónico
de erratas (asunto: TeCo-contrib), omisiones y en general cualquier sugerencia destinada a mejorar el
resultado final.
jesus.salido@uclm.es
Ciudad Real, 2024
Prólogo

Una vez publicada la obra «Lógica digital y tecnología de computadores - Un enfoque práctico mediante
simulación con Logisim» (DOI: 10.18239/manuales_2023.26.00) surgió de modo natural completar
dicho trabajo con la elaboración de este segundo volumen destinado a la resolución y explicación de
los problemas propuestos allí. No se trata de ofrecer únicamente la solución a dichos problemas, sino
de exponer los métodos sistemáticos de resolución de los mismos incluyendo reflexiones que permitan
profundizar en los conceptos subyacentes.
Este trabajo está dirigido por la firme creencia del autor en que los conceptos teóricos tratados en el
estudio de la Lógica Digital y la Tecnología de Computadores son troquelados en la mente de quien las
estudia mediante la aplicación práctica de sus conceptos principales. En este sentido la herramienta de
simulación lógica Logisim [1] (www.cburch.com/logisim) se convierte en una gran aliada de quien se
enfrenta al estudio de la disciplina sin conocimientos avanzados de la misma. Al igual que en el manual
precedente, este segundo volumen propone la utilización intensiva de Logisim como herramienta de
comprobación del análisis y la simulación lógica de la síntesis de los circuitos propuestos. De este modo
el texto se convierte también en un «manual de uso práctico» de Logisim que proporciona ideas para su
utilización en la resolución de problemas.
El nuevo manual que se presenta sigue idéntica organización a la obra precedente. Por tanto, los 175
problemas resueltos que contiene se organizan en los mismos 9 capítulos, agrupados en tres partes:
I.- Representación de información y lógica booleana (Caps. 1 a 3),
II.- Sistemas combinacionales (Caps. 4 a 6), y
III.- Sistemas secuenciales (Caps. 7 a 9).
Cada capítulo comienza con una breve introducción teórica a modo de recordatorio de conceptos
importantes aplicados en los problemas. Para facilitar la selección de los problemas a estudiar, estos
se organizan en diferentes secciones dentro del capítulo. Además, se ha añadido a cada problema una
clasificación, en tres categorías, basada en su dificultad estimada: ★✩✩ (baja), ★★✩ (media) y ★★★
(alta). La organización y clasificación de los problemas se ha realizado teniendo en cuenta el uso que se
puede dar a este manual, cuyo propósito no es el estudio y revisión exhaustiva de todos los problemas,
sino la selección de aquellos que permitan afianzar conceptos y servir de autoevaluación al estudiante.
Quienes revisen esta obra en profundidad observarán que en muchos problemas se realiza un ejercicio
de reflexión sobre las distintas técnicas que pueden aplicarse para su resolución. Considero que este
ejercicio de búsqueda de soluciones alternativas a un problema, es un entrenamiento mental esencial para
quienes se forman en estudios de ingeniería, ya que proporciona el «músculo» capaz de ofrecer soluciones
creativas e innovadoras a los problemas que se plantean.
Como material complementario a esta obra y al manual de teoría asociado, se ha publicado un reposi-
torio de acceso abierto en GitHub [8] con material auxiliar consistente en los circuitos lógicos realizados
con Logisim que aparecen en ambos manuales, así como algunos circuitos adicionales relacionados.
Esta obra, al igual que la precedente, se distribuye de modo libre y gratuito para fomentar su accesibi-
lidad y promover su uso sin limitaciones, esperando que pueda ser de utilidad tanto a cualquier estudiante
en la materia, como al profesorado en la preparación de un curso sobre dichos contenidos.

Jesús Salido
Ciudad Real, 2024
Notación

A, B,C, D, ... : Variables lógicas. Se empleará preferentemente letra mayúscula.


f (A, B,C) : Función lógica f dependiente de las variables A, B y C.
f (A, B, 0) : Valor de la función f (A, B,C) si C = 0.
f (A, B, 1) : Valor de la función f (A, B,C) si C = 1.
X/y : Entrada/Salida de sistema secuencial.
X = [A BC . . . ] ≡ [Xn−1 . . . Xi . . . X1 X0 ] : Variable de entrada multibit definida como agrupación de n bits.
y = [ f g h . . . ] ≡ [yn−1 . . . yi . . . y1 y0 ] : Función de salida multibit definida como agrupación de n bits.
Qi = [qn−1 . . . q j . . . q1 q0 ] : Estado de sistema secuencial codificado como agrupación del
estado binario individual de n biestables.
[s0 , s1 , . . . , sn−1 ] : Secuencia de n valores, habitualmente binarios multibit.
A′ ≡ A : Operador NOT (negación).
AB ≡ A · B : Operación lógica AND o producto lógico.
(AB)′ ≡ (A · B)′ ≡ A · B : Operación lógica NAND (producto negado).
(A + B)′ ≡ A + B : Operación lógica NOR (suma negada).
A ⊕ B = AB′ + A′ B : Operación lógica XOR (OR exclusivo).
A ⊙ B ≡ (A ⊕ B)′ = AB + A′ B′ : Operación lógica XNOR (OR exclusivo negado).
mi : Minitérmino o producto canónico, con valor binario i.
Mj : Maxitérmino o suma canónica, con valor binario j.
∑ m(3, 4) ≡ m3 + m4 : Suma abreviada de minitérminos.
∏ M(3, 4) ≡ M3 · M4 : Producto abreviado de maxitérminos.
∗: Valor comodín (0/1, A′ o A) de variable, empleado en la expansión
de términos no canónicos.
x: Empleado para representar las condiciones libres de una función
lógica o un valor flotante en simulación con Logisim.
Índice general

Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VII

Agradecimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IX

Prólogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XI

Notación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XIII

I Representación de información y lógica booleana

1 Introducción a los sistemas digitales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Sistemas de numeración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1 Cambio de base 8
2.2 Representación de números enteros 11
2.3 Aritmética de números enteros 14

3 Circuitos digitales y álgebra de Boole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17


3.1 Puertas lógicas y cronogramas 20
3.2 Aplicación del álgebra de Boole 24
3.3 Formas canónicas 28
3.4 Simplificación de funciones 31

II Sistemas combinacionales
4 Circuitos digitales combinacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.1 Análisis combinacional 38
4.2 Diseño combinacional 54

5 Módulos combinacionales básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67


5.1 Análisis de circuitos con DEC 71
5.2 Funciones con DEC 79
5.3 Circuitos con MUX 82
5.4 Funciones con MUX 90
5.5 Circuitos con COD y DEMUX 106
5.6 Diseño con módulos combinacionales 110

6 Módulos lógicos y aritméticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129


6.1 Circuitos con comparadores 131
6.2 Conversores de código 136
6.3 Módulos aritméticos 146

III Sistemas secuenciales


7 Biestables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
7.1 Características de los biestables 162
7.2 Circuitos con biestables 165

8 Registros y contadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173


8.1 Contadores asíncronos 174
8.2 Contadores síncronos 178
8.3 Contadores basados en registros 181

9 Sistemas secuenciales síncronos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185


9.1 Análisis secuencial 187
9.2 Diseño secuencial 199

IV Obras de consulta
Obras de consulta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
I
Representación de
información y lógica
booleana

1 Introducción a los sistemas digitales . . . 3

2 Sistemas de numeración . . . . . . . . . . . . . . 7
2.1 Cambio de base
2.2 Representación de números enteros
2.3 Aritmética de números enteros

3 Circuitos digitales y álgebra de Boole 17


3.1 Puertas lógicas y cronogramas
3.2 Aplicación del álgebra de Boole
3.3 Formas canónicas
3.4 Simplificación de funciones
1. Introducción a los sistemas digitales

Para entender los principios de funcionamiento de los sistemas digitales es esencial comprender la
naturaleza de la información con la que operan y cómo se representa dicha información. En este capítulo
se aborda la caracterización de las señales digitales y la naturaleza de la información que se puede
representar con ellas.

Problemas resueltos
Problema 1.1 ★✩✩ ¿De qué tipo es una variable cuyo valor puede ser cualquier día de la semana
expresado por su primera letra? Esto es: L, M, X, J, V, S y D.
a) Continua
b) Discreta
c) Digital
d) Analógica

 Solución: La solución es b) Discreta.

a) No es una variable continua porque las variables continuas expresan una magnitud con un
conjunto infinito de posibles valores.
b) SI es una variable discreta porque su valor pertenece a un conjunto finito de valores posibles.
Su representación en un sistema digital podría ser un valor numérico con 7 posibles valo-
res. Por ejemplo: {0, 1, 2, 3, 4, 5, 6} representados mediante códigos binarios de 3 bits como
{000, 001, 010, 011, 100, 101, 110}.
c) No es una variable digital, ya que su valor está expresado con una letra mayúscula. Por tanto, su
valor no es un código binario construido por concatenación de bits (0 y 1).
d) No es una variable analógica porque estas se emplean para representar una magnitud continua y
emplean una representación que admite todos los posibles valores que puede adoptar la variable.


4 Capítulo 1. Introducción a los sistemas digitales

Problema 1.2 ★✩✩ ¿Qué resolución tiene la representación digital de una señal de temperatura en el
rango [+5 °C, +20 °C] cuando se emplean 8 bits?

 Solución: El rango de una señal se obtiene restando sus valores máximo y mínimo. Por tanto, en
este caso se tiene: +20 − (+5) = 15 °C. Como se utilizan 8 bits para representar el valor de la señal,
el número de códigos empleados es: 28 = 256 valores. De este modo, la resolución obtenida se obtiene
dividiendo el rango representado por el número de códigos empleados:
15 °C
Resolución = = 0.06 °C
256
Recuerda, la resolución es la diferencia de valores representados por dos códigos consecutivos. ■

Problema 1.3 ★✩✩ ¿Cuál es la frecuencia de una señal cuyo periodo (T ) tiene una duración de 5 ms?

 Solución: Expresando los ms como s se tiene:

T = 5 ms = 5 × 10−3 s = 0.005 s

Como la frecuencia es el inverso del periodo, se tiene: fr = 1/0.005 s = 200 Hz ■

Problema 1.4 ★✩✩ ¿Qué tiempo transcurre entre la repetición cíclica de una señal cuya frecuencia es
1.5 kHz?
 Solución: El tiempo transcurrido para la repetición de la señal periódica es por definición el valor
de su periodo. Por tanto, para dicha señal podemos calcular dicho tiempo calculando el inverso de su
frecuencia. Como f r = 1.5 kHz = 1.5 × 103 Hz; entonces:
1 1
T= = ≈ 0.0007 s = 0.7 ms
fr (1.5 × 1 000)

Problema 1.5 ★★✩ ¿Cuál es el periodo T de una señal cuyo ciclo de trabajo es del 20 % y duración de
pulso de 3 ms? ¿Cuánto tiempo estará dicha señal a nivel bajo en el intervalo de un periodo de la señal?
Representa gráficamente dicha señal.

 Solución: Respecto al periodo de la señal, el ancho del pulso (tiempo que está la señal en valor
alto) representa el valor expresado por el ciclo de trabajo en tanto por ciento. De este modo, para
completar el 100 % (periodo) de la señal hay que multiplicar el valor del ciclo de trabajo 20 % por 5.
Ya que el ciclo de trabajo representa la quinta parte del periodo total.
100
T= × 0.003 s = 5 × 0.003 s = 0.015 s = 15 ms
20
El tiempo a nivel bajo se obtiene restando al periodo el ancho de pulso es: tb = 15 − 3 = 12 ms
La gráfica de dicha señal sería:
T=15ms

3ms 12ms

t ■
5

Problema 1.6 ★★✩ Dado el cronograma de la figura adjunta para una señal variable en el tiempo,
responde razonadamente. ¿Es dicha señal periódica o aperiódica? ¿Se puede calcular su periodo y su
frecuencia?

1ms

 Solución: Podría parecer que la señal no es periódica porque los pulsos no están uniformemente
distribuidos, pero al observarla con detenimiento se comprueba que la señal se repite cada 5 ms. Por
tanto, la señal es periódica con un periodo T = 5 ms (ver figura adjunta).

T=5ms
1ms

La frecuencia de dicha señal es:


1 1 000
fr = = = 200 Hz
T 5
Es decir la señal se repite 200 veces por segundo. ■

Problema 1.7 ★★✩ Dibuja el cronograma de una señal PWM con una frecuencia de 200 Hz y un ciclo
de trabajo del 40 %. ¿Cuál debe ser su periodo (T ) y su anchura de pulso (tw )?

 Solución: Conocida la frecuencia de la señal, su inverso proporciona el periodo T solicitado. En


consecuencia, el cronograma resultante es:

1ms

t
1 1
T= = = 0, 005 s = 5 ms
fr 200
Como el ciclo de trabajo es tw /T × 100. Se tiene que:

T 5
tw = Ciclo de trabajo × = 40 × = 2 ms
100 100

2. Sistemas de numeración

En los sistemas digitales es necesario representar tanto información numérica como simbólica. Los
computadores fueron concebidos inicialmente como máquinas de cálculo numérico y esta sigue siendo
una de sus funciones más importantes. En este capítulo se estudian los sistemas de numeración más
importantes que utilizan códigos binarios creados por concatenación de los bits ‘1’ y ‘0’.
Para cambiar de sistema de numeración, se tendrá en cuenta que el paso de cualquier base a decimal
se lleva a cabo mediante expansión numérica del número como suma de productos por las potencias de la
base. La conversión de decimal a cualquier base se realiza mediante divisiones sucesivas por la base, para
la parte entera; y multiplicaciones por la base, para la parte fraccionaria.
Cuando la base de destino de la conversión se expresa como 2n (una potencia de 2), se recomienda la
conversión a la base 2m más cómoda y desde esta a binario natural expandiendo cada cifra en grupos de m
bits. El paso final a la base deseada se realiza agrupando los bits en grupos de n bits y convirtiendo estos a
la base deseada 2n .
Para representar números enteros es preciso codificar su signo con un bit adicional (0 → +, 1 → −).
La magnitud del número se expresa de tres modos diferentes dependiendo de la representación elegida:
Signo-Magnitud. La magnitud se representa en binario natural tanto para los números positivos
como negativos.
Complemento a 1 (C1). La magnitud se representa en binario natural para los números positivos y
mediante el complemento de cada bit para los negativos.
Complemento a 2 (C2). Se tiene en cuenta que: C2 = C1 + 1.
La representación de números enteros en C1 y C2 facilita la implementación de aritmética binaria
en los sistemas digitales, ya que permiten realizar todas las operaciones aritméticas mediante sumas. La
tabla 2.1 muestra los rangos de representación según el sistema empleado.

Tabla 2.1: Comparación de rangos de representación con distintos sistemas de codificación binaria.

Bits Tot. códigos Rango binario Rango SM Rango C1 Rango C2


4 24 = 16 [0, 15] [−7, +7] [−7, +7] [−8, +7]
8 28 = 256 [0, 255] [−127, +127] [−127, +127] [−128, +127]
16 216 = 65 536 [0, 65 535] [−32 767, +32 767] [−32 767, +32 767] [−32 768, +32 767]
n 2n [0, 2n − 1] [−(2n−1 − 1), +(2n−1 − 1)] [−(2n−1 − 1), +(2n−1 − 1)] [−2n−1 , +(2n−1 − 1)]
8 Capítulo 2. Sistemas de numeración

2.1 Cambio de base de representación numérica


Problema 2.1 ★✩✩ Convierte el número 1011 0101.11(2 a hexadecimal, octal y decimal.

 Solución: Realizando agrupaciones de 4 bits tanto en la parte entera como fraccionaria y convir-
tiendo cada una de ellas a su equivalente hexadecimal, se tiene:
B(16 5(16 C(16
z }| { z }|{ z }|{
1011 0101 .1100(2 = B5C(16

IMPORTANTE: Si es preciso, para completar agrupaciones de cuatro bit en la parte entera se añaden
0 a la izda., pero en la parte fraccionaria se añaden a la dcha. De este modo no se modifica la magnitud
del número original.
La conversión a octal sigue un método análogo realizando agrupaciones de 3 bits. De este modo se
tiene:
2(8 6(8 5(8 6(8
z}|{ z}|{ z}|{ z}|{
010 110 101 . 110 (2 = 265.6(8

Para hacer la conversión a decimal se sigue el método de expansión numérica desde la base de partida.
Así, se obtiene:

1011 0101.11(2 =1 × 27 +  26 + 1 × 25 + 1 × 24 +  23 + 1 × 22 +  21 + 1 × 20 +



0× 0× 0×
 
−2
1 × 2−1 + 1 × 2
=128 + 32 + 16 + 4 + 1 + 0.5 + 0.25 = 181.75(10

NOTA: Observa que empleamos color magenta para los bits añadidos. ■

Problema 2.2 ★★✩ Convierte el número 55.81(8 a decimal.

 Solución: ¡CUIDADO! Podría parecer muy sencillo realizar la expansión numérica del número,
obteniendo:
1
55.81(8 = 5 × 81 + 5 × 80 + 8 × 8−1 + 1 × 8−2 = 40 + 5 + 1 + = 46.0156
64
Sin embargo, esta solución es incorrecta porque el número inicial no es válido, ya que las cifras válidas
de un número en base n van del 0 al n − 1. Por tanto, el 8 no es una cifra válida en octal. ■

Problema 2.3 ★★✩ Convierte el número decimal 226.875(10 a binario, octal y hexadecimal.

 Solución: Para convertir un número decimal a una base concreta, la parte entera se divide
sucesivamente por la base. El resto de cada división constituye una cifra del número buscado, de menor
a mayor valor significativo. La parte fraccionaria se obtiene mediante multiplicaciones repetidas por la
base. Puesto que todas las conversiones se piden hacia una base que es potencia de 2, se puede partir
de base 8 para que el proceso de divisiones sucesivas no sea tedioso. Realizando divisiones sucesivas
por 8 se obtiene:

226 ÷ 8 = 28 con resto 2 (LSB, bit menos significativo),


28 ÷ 8 = 3 con resto 4,
3 ÷ 8 = 0 con resto 3 (MSB, bit más significativo).

El número en la base de destino se compone desde la posición más significativa desde el último resto
2.1 Cambio de base 9

hacia el primero en orden inverso a su obtención. De este modo el resultado obtenido para la parte
entera es: 342(8
La parte fraccionaria se obtiene mediante productos sucesivos por la base y la parte entera del
resultado va ofreciendo los bits de la conversión hasta obtener una parte fraccionaria nula o el número
de bits deseado:
0.875 × 8 = 7.0 con parte entera 7 (MSB, bit más significativo).
Como en este caso la parte fraccionaria se anula, el proceso ha finalizado. De este modo se ha
obtenido el equivalente en octal del número dado:

226.875(10 = 342.7(8

Si a cada cifra, del valor en octal, se asigna el código binario correspondiente de 3 bits, se obtiene el
valor en binario natural:
011 100 010 111
z}|{ z}|{ z}|{ z}|{
3 4 2 . 7 = 011 100 010.111(2

Formando grupos de 4 bits y convirtiendo cada grupo a su equivalente hexadecimal se tiene:


E 2 E
z }| { z }|{ z }|{
1110 0010 . 1110 = E2.E(16

Por tanto, el resultado final es: 226.875(10 = 1110 0010.1110(2 = 342.7(8 = E2.E(16 ■

Problema 2.4 ★★✩ Convierte el número decimal 58.75(10 a base 5, octal, hexadecimal y binario.

 Solución: Para pasar a base 5 se realizan divisiones y multiplicaciones sucesivas por 5 en la parte
entera y fraccionaria del número, respectivamente.

58 ÷ 5 = 11 con resto 3 (LSB, bit menos significativo),


11 ÷ 5 = 2 con resto 1,
2 ÷ 5 = 0 con resto 2 (MSB, bit más significativo),
0.75 × 5 = 3.75 con parte entera 3 (MSB, bit más significativo),
0.75 × 5 = 3.75 con parte entera 3 y se puede continuar indefinidamente.

Por tanto: 58.75(10 = 213.33(5


Para pasar a bases que son potencias de 2, comenzamos por pasar a base octal y desde esta al resto.
Para ello, se aplica el método de divisiones y multiplicaciones sucesivas por 8.

58 ÷ 8 = 7 con resto 2 (LSB, bit menos significativo),


7 ÷ 8 = 0 con resto 7 (MSB, bit más significativo),
0.75 × 8 = 6.00 con parte entera 6.

Por tanto: 58.75(10 = 72.6(8


Para pasar a binario cada cifra en octal se convierte en la agrupación equivalente de 3 bits:
7 2 6
z}|{ z}|{ z}|{
72.6(8 = 111 010 . 110 (2
10 Capítulo 2. Sistemas de numeración

Este valor se pasa a hexadecimal haciendo agrupaciones de 4 bits y convirtiéndolas en su equivalente


hexadecimal:
3 A C
z }| { z }|{ z }|{
111 010.110(2 = 0011 1010 . 1100 = 3A.C(16

Resultado final: 58.75(10 = 213.33(5 = 11 1010.110(2 = 72.6(8 = 3A.C(16 ■

Problema 2.5 ★✩✩ Convierte los números 589(10 y 475(10 a binario, hexadecimal y octal.

 Solución: El proceso es sencillo si se aplica el método de divisiones sucesivas para pasar a octal y
de ahí a binario y hexadecimal.

589 ÷ 8 = 73 con resto 5 (LSB, bit menos significativo),


73 ÷ 8 = 9 con resto 1,
9 ÷ 8 = 1 con resto 1,
1 ÷ 8 = 0 con resto 1 (MSB, bit más significativo).

Por tanto: 589(10 = 1115(8 . Para expresar en binario y hexadecimal cada cifra octal se expande en una
agrupación de 3 bits y para pasar a hexadecimal se hacen agrupaciones de 4 bits.
001 001 001 101 2 4 D
z}|{ z}|{ z}|{ z}|{ z }|{ z }| { z }| {
1 1 1 5 (8 = 001 001 001 101(2 = 0010 0100 1101 = 24D(16

Resultado final: 589(10 = 1 001 001 101(2 = 1115(8 = 24D(16

Realizando un proceso análogo para 475(10 se tiene:

475 ÷ 8 = 59 con resto 3 (LSB, bit menos significativo),


59 ÷ 8 = 7 con resto 3,
7 ÷ 8 = 0 con resto 7 (MSB, bit más significativo).

Por tanto: 475(10 = 733(8 . Para expresar en binario y hexadecimal cada cifra octal se expande en una
agrupación de 3 bits y para pasar a hexadecimal se hacen agrupaciones de 4 bits.
111 011 011 1 D B
z}|{ z}|{ z}|{ z }| { z }| { z }|{
7 3 3 (8 = 111 011 011(2 = 0001 1101 1011 = 1DB(16

Resultado final: 475(10 = 111 011 011(2 = 733(8 = 1DB(16 ■

Problema 2.6 ★✩✩ Convierte el número binario 11 0001.0010 11(2 a hexadecimal.

 Solución: La conversión se realiza mediante agrupaciones de 4 bits por separado en la parte entera
y la fraccionaria, que se convierten en su equivalente hexadecimal. Así se obtiene:
3 1 2 C
z }|{ z }|{ z }| { z }| {
110001.001011(2 = 0011 0001 . 0010 1100 = 31.2C(16

Observa que se añaden bits adicionales con valor 0 (en color magenta) a la izda. en la parte entera y
la dcha. en la parte fraccionaria. ■
2.2 Representación de números enteros 11

2.2 Representación binaria de números enteros


Problema 2.7 ★★✩ Demuestra si se cumple la igualdad siguiente: 100 1001C2 = 100 1010C1

 Solución: Para hacer la comprobación se tiene en cuenta que C2 = C1 + 1. De este modo, sumando
1 a la expresión en C1 se puede comprobar si se obtiene el valor del primer miembro de la igualdad.

100 1010 + 1 = 100 1011

Pero este valor no coincide con el número binario del primer miembro, por lo que se puede afirmar
que no se cumple la igualdad del enunciado.
Si se quiere saber qué valores enteros decimales se representan en ambos miembros de la expresión,
se puede realizar la operación de cambio de signo para obtener el valor positivo correspondiente según
se indica a continuación:

(100100)′ 1 = 0110111(2 = 32 + 16 + 4 + 2 + 1 = 55(10 ⇒ 100 1001C2 = −55(10

(1001010)′ = 0110101(2 = 32 + 16 + 4 + 1 = 53(10 ⇒ 100 1010C1 = −53(10


Problema 2.8 ★✩✩ ¿Cuál es el rango de representación con 4 dígitos en binario natural, octal, decimal
y hexadecimal?

 Solución: En cualquier base numérica de números positivos, el rango de representación con n


dígitos es: [0, (basen − 1)]
Por tanto, los rangos para cada una de las bases solicitadas, son:
Binario (base 2) → [0, (24 − 1)] ≡ [0, 15]
Octal (base 8) → [0, (84 − 1)] ≡ [0, 4 095]
Decimal (base 10) → [0, (104 − 1)] ≡ [0, 9 999]
Hexadecimal (base 16) → [0, (164 − 1)] ≡ [0, 65 535]

Problema 2.9 ★✩✩ ¿Cuál es el rango de representación en binario natural con 6 bits? ¿Y en signo
magnitud (SM)? ¿Cuántos códigos diferentes son posibles en ambos casos?

 Solución: El rango de representación en binario natural con 6 bits es:

[0, (26 − 1)] ≡ [0, 63]

En SM, el rango incluye los números negativos. Por tanto, se tiene:

[−(2n−1 − 1), +(2n−1 − 1)] ≡ [−(25 − 1), +(25 − 1)] ≡ [−31, +31]

Como en SM, el 0 tiene doble representación, el número de códigos posibles (63) se reduce en 1
respecto de la representación en binario natural que permite hasta 64 códigos diferentes. ■
12 Capítulo 2. Sistemas de numeración

Problema 2.10 ★★✩ En una aplicación informática se debe codificar la diferencia en los husos horarios
entre varias ciudades cuyo valor se encuentra en el rango [−8, +8]. ¿Cuántos bits son necesarios para
codificar dicha diferencia?
 Solución: La diferencia horaria tiene un máximo de 17 valores: 8 negativos, 8 positivos y el 0
(cuando no hay diferencia horaria). En binario natural se precisarían 5 bits, ya que con 4 bits, solo
se pueden representar 24 = 16 valores. También para C1 y C2 se precisan 5 bits, como mínimo. Los
rangos de representación correspondientes con 5 bits, son:
Binario natural, [0, 25 − 1] = [0, 31]. Recuerda, que se precisan solo 16 códigos para representar
la diferencia horaria. Como en binario natural no se admite la codificación directa de números
negativos, se debe hacer corresponder valores positivos a las diferencias horarias negativas.
C1, [−2(5−1) − 1, +2(5−1) − 1] = [−15, +15]
C2, [−2(5−1) , +2(5−1) − 1] = [−16, +15]

Problema 2.11 ★★✩ Se desea representar con una precisión de décima de grado (0.1°C) la temperatura
de un proceso químico que oscila entre –20°C y +50°C. ¿Cuántos bits se necesitan como mínimo para
representar la Tª en C2? ¿Qué códigos binarios quedan sin utilizar?

 Solución: Si es preciso representar las décimas de grado, los códigos a representar están en el
rango [−200, +500]. Como el rango representado en C2 es:

[−2(n−1) , +2(n−1) − 1]

Donde n es el número de bits. En este caso con n = 10 se tiene un rango de representación de


[−512, +511] que permite representar los valores deseados. Los códigos no empleados son los que
están comprendidos en los rangos [−512, −201] y [+501, +511]. Representando estos rangos en C2,
se tiene:

[−512, −201] → [10 0000 0000, 11 0011 0111]


[+501, +511] → [01 1111 0101, 01 1111 1111]

Problema 2.12 ★✩✩ Dados los números A = 0010 y B = 1010 expresados en C1, calcula el resultado
de la operación A − B.

 Solución: Como A − B = A + (−B) se debe cambiar el signo de B haciendo el C1 de dicho valor.


Por tanto: B′ = (1010)′ = 0101. Realizando la suma se tiene:
bin. dec.
0010 (+2)
+ 0101 (+5)
0111 (+7)

Problema 2.13 ★✩✩ ¿Cómo se expresa el número +6 con 5 bits en C1? ¿Y en C2?

 Solución: En ambos sistemas de representación (C1 y C2) se reserva un bit para el signo y los
cuatro restantes para la magnitud, que es la correspondiente al binario natural. La representación de
2.2 Representación de números enteros 13

números positivos coincide en ambos sistemas de representación. Por tanto:

+6(10 = 0 0110C1 = 0 0110C2

NOTA: Observa que se ha señalado en color rojo el bit de signo. ■

Problema 2.14 ★✩✩ ¿Cómo se expresa el número −6 con 5 bits en C1? ¿Y en C2?

 Solución: Para obtener la representación en C1 de un número negativo, se complementa el número


positivo correspondiente. Por tanto: −6(10 = (0 0110)′ = 1 1001C1
Si se desea obtener la representación en C2 se pueden emplear dos métodos:
1. Aplicar que C2 = C1+1. De este modo, se obtiene:
−6(10 = 1 1001 + 1 = 1 1010C2
2. Se parte del número positivo, copiando de izda. a dcha. hasta el primer 1 incluido, a partir de ahí
se complementa el resto del número. En este caso se obtiene:
−6(10 = (0 01)′ 10 = 1 1010C2

Problema 2.15 ★✩✩ Dado el número 1011 0101C1 ¿cuál es su representación en C2?

 Solución: Teniendo en cuenta que C2 = C1+1, se tiene:

1011 0101C1 → 1011 0101 + 1 = 1011 0110C2

Problema 2.16 ★✩✩ ¿Cuál es el resultado de cambiar de signo el número +127(8 expresando el
resultado en C2 con 8 bits?
 Solución: En primer lugar, hay que buscar la representación en binario del número +127(8 y
a continuación, al valor obtenido aplicarle la operación de C2. Esta operación cambia el signo del
número y consiste en la copia de bits desde la izda. a la dcha. hasta el primer 1, complementando el
resto de bits hacia la izda.
El número binario equivalente a +127(8 en binario se obtiene mediante la representación con tres
bits de cada una de las cifras del número de partida. Expresado con 8 bits queda:
1 2 7
z}|{ z}|{ z}|{
+127(8 ≡ 001 010 111 (2 = 0101 0111C2

Realizando la operación de cambio de signo en C2 se tiene:

−127(8 ≡ (0101 011)′ 1 = 1010 1001C2


14 Capítulo 2. Sistemas de numeración

2.3 Aritmética de números enteros


Problema 2.17 ★★✩ Realiza las siguientes operaciones en binario empleando codificación C1 y C2
con 8 bits. Comprueba el resultado con el obtenido en sistema decimal:
A) 47 + 18
B) −24 − 8
C) 25 − 45

 Solución: A) Realizando la operación aritmética en el sistema decimal se tiene:

47(10 + 18(10 = 65(10

En primer lugar se debe comprobar si este resultado es representable en C2 empleando un bit para el
signo y 7 bits para la magnitud. Si se emplean 8 bits, los rangos de representación en C1 y C2 son,
respectivamente:

C1 → [−(27 − 1), +(27 − 1)] = [−127, +127]


C2 → [−27 , +(27 − 1)] = [−128, +127]

Como el resultado de la operación que se desea representar es 65, está incluido en el rango. Por tanto,
dicho resultado es representable tanto en C1 como C2.
Para realizar la suma aritmética solicitada, es preciso expresar los operandos en la representación
elegida y a continuación realizar la suma. En C1, se tiene en cuenta que el acarreo final se debe sumar al
resultado. Como ambos operandos son positivos su representación coincide en C1 y C2. La operación
resultante queda del modo que se indica a continuación:
C1/C2 dec.
0010 1111 (+47)
+ 0001 0010 (+18)
0100 0001 (+65)
El resultado final coincide en C1 y C2. Es importante advertir que no es posible prescindir del 0
en la posición MSB, ya que el resultado debe expresarse con 8 bits y el bit más significativo (MSB)
corresponde al signo (positivo, en este caso).
B) La operación en sistema decimal es:

−24(10 − 8(10 = −32(10

En este caso los números negativos se deben codificar de acuerdo a la representación utilizada C1 o
C2. Siguiendo el razonamiento del apartado A) es sencillo deducir que el resultado de la operación es
representable con 8 bits tanto en C1 como en C2.
Cálculo aritmético en C1: La representación de números negativos se realiza mediante la operación
de complemento del número positivo correspondiente. De este modo, se obtiene que:

−24(10 ≡ (0001 1000)′ = 1110 0111C1


−8(10 ≡ (0000 1000)′ = 1111 0111C1

Haciendo la suma de estos valores y sumando el acarreo resultante, si este es 1, se obtiene finalmente:
2.3 Aritmética de números enteros 15

C1 dec.
1110 0111 (−24)
+ 1111 0111 (−8)
1 1101 1110
+ 1
1101 1111
Para obtener el valor decimal equivalente del resultado obtenido se realiza de nuevo la operación
de complemento para obtener así el número positivo correspondiente. De este modo resulta:

1101 1111C1 ≡ −(1101 1111)′ = −0010 0000(2 = −32(10

Cálculo aritmético en C2: La representación de números negativos se realiza mediante la operación


de cambio de signo en C2. Por tanto se obtiene:

−24(10 ≡ (0001)′ 1000 = 1110 1000C2


−8(10 ≡ (0000)′ 1000 = 1111 1000C2

Haciendo la suma de estos valores se obtiene:


C2 dec.
1110 1000 (−24)
+ 1111 1000 (−8)
1 1110 0000
Observa que en la suma (C2) el acarreo se descarta. Para obtener el valor decimal del resultado, se
realiza de nuevo la operación de cambio de signo en C2 para obtener el número positivo correspondiente.
El resultado obtenido es:

1110 0000C2 ≡ −(11)′ 10 0000 = −(0010 0000)(2 ≡ −32(10

C) La operación en decimal es:

25(10 + (−45)(10 = −20(10

En este caso también el resultado de la operación es representable con 8 bits, tanto en C1 como en C2.
Cálculo aritmético en C1: Los números positivos en C1 mantienen la misma representación que en
binario natural, mientras que los números negativos requieren la operación de cambio de signo del
número positivo correspondiente. En consecuencia, resulta que:

25(10 ≡ 001 1001C1


−45(10 ≡ (0010 1101)′ = 1101 0010C1

Haciendo la suma de estos valores y recirculando el acarreo si este es 1 se obtiene:


C1 dec.
0001 1001 (+25)
+ 1101 0010 (−45)
1110 1011
16 Capítulo 2. Sistemas de numeración

Para obtener el valor decimal del resultado, se realiza una nueva operación de cambio de signo en
C1 para obtener el número positivo correspondiente. De este modo, tenemos:

1110 1011C1 ≡ −(1110 1011)′ = −(0001 0100)(2 ≡ −20(10

Cálculo aritmético en C2: Los números positivos en C2 mantienen la misma representación que en
binario natural, mientras que la de números negativos se realiza mediante la operación de cambio de
signo del número positivo correspondiente. Por tanto, resulta que:

25(10 ≡ 0001 1001C2


−45(10 ≡ (0010 110)′ 1 = 1101 0011C2

Haciendo la suma de estos valores descartando el acarreo final se obtiene:


C2 dec.
0001 1001 (+25)
+ 1101 0011 (−45)
1110 1100
Para obtener el valor decimal del resultado se debe realizar de nuevo la operación de cambio de
signo para obtener el número positivo correspondiente. Por tanto, como resultado final se obtiene:

1110 1100C2 ≡ −(1110 1)′ 100 = −(0001 0100)(2 ≡ −20(10


3. Circuitos digitales y álgebra de Boole

El desarrollo de circuitos basados en dispositivos electrónicos de conmutación capaces de realizar


operaciones lógicas elementales y su formalización matemática mediante el empleo del álgebra de Boole,
supuso el inicio de un estudio sistematizado de las propiedades de los circuitos digitales. En este capítulo
se aborda el estudio de las propiedades de las puertas lógicas (ver figura 3.1), circuitos electrónicos básicos
compuestos de unos pocos transistores, capaces de efectuar operaciones lógicas elementales.

Figura 3.1: Resumen de puertas lógicas, sus símbolos y sus tablas de verdad.
18 Capítulo 3. Circuitos digitales y álgebra de Boole

La manipulación de las expresiones algebraicas derivadas de los circuitos con puertas lógicas se puede
realizar mediante aplicación de las propiedades y teoremas del álgebra de Boole (ver tablas 3.1 y 3.2).

Tabla 3.1: Propiedades y leyes del álgebra de Boole.

Expresión Dual Propiedad/Ley


P.1: A·B = B·A P.1′ : A+B = B+A Propiedad conmutativa
P.2: A · (B +C) = A · B + A ·C P.2′ : A + B ·C = (A + B) · (A +C) Propiedad distributiva
P.3: (A · B)′ = A′ + B′ P.3′ : (A + B)′ = A′ · B′ Leyes de De Morgan

Tabla 3.2: Teoremas del álgebra de Boole.

Expresión Dual Teorema


T.1: A·1 = A T.1′ : A+0 = A Elemento identidad
T.2: A·0 = 0 T.2′ : A+1 = 1 Elemento nulo
T.3: A·A = A T.3′ : A+A = A Idempotencia
T.4: A′′ = A Involución
T.5: A · A′ = 0 T.5′ : A + A′ = 1 Complemento
T.6: A+A·B = A T.6′ : A · (A + B) = A Absorción (I)
T.7: A + A′ · B = A + B T.7′ : A · (A′ + B) = A · B Absorción (II)
T.8: A · B + A · B′ = A T.8′ : (A + B) · (A + B′ ) = A Consenso

De entre las infinitas expresiones algebraicas equivalentes de una función lógica, cobran especial
importancia las formadas por sumas de productos (formas SOP) y por productos de sumas (formas POS).
Pero entre ellas, las que presentan en sus términos todas las variables de las que depende la función, son
únicas para cada función y reciben el nombre de formas canónicas o normales.

Los productos canónicos reciben el nombre de minitérminos y las sumas canónicas se denominan
también maxitérminos. Ambos tipos de términos se identifican unívocamente por su valor binario, que es
la combinación de valores para las variables del término que lo hacen 1 (para los minitérminos) o 0 (para
los maxitérminos).

Las formas canónicas de una función representan un modo alternativo de definir su tabla de verdad
(ver tabla 3.3). La 1ª forma canónica (SOP) indica qué combinaciones de valores de las variables hacen
que la función valga 1. Es decir, cuáles son las filas de la tabla de verdad con valor de la función igual a 1.
Por el contrario, la 2ª forma canónica (POS) indica qué combinaciones de valores hacen que la función
valga 0. Es decir, cuáles son las filas de la tabla de verdad con valor de la función igual a 0. Basta con
conocer una de las dos formas canónicas de la función para determinar la otra, ya que las filas de la tabla
de verdad que no son 1 serán 0.

Tabla 3.3: Términos canónicos asociados a una función de tres variables.

Id. A B C minitérmino maxitérmino

0 0 0 0 m0 = A′ B′C′ M0 = A + B +C
1 0 0 1 m1 = A′ B′C M1 = A + B +C′
2 0 1 0 m2 = A′ B C′ M2 = A + B′ +C
3 0 1 1 m3 = A′ B C M3 = A + B′ +C′
4 1 0 0 m4 = A B′C′ M4 = A′ + B +C
5 1 0 1 m5 = A B′C M5 = A′ + B +C′
6 1 1 0 m6 = A B C′ M6 = A′ + B′ +C
7 1 1 1 m7 = A B C M7 = A′ + B′ +C′
19

En muchas ocasiones, la manipulación algebraica de la expresión de una función lógica permite


obtener expresiones más simples. Las expresiones simplificadas resultantes corresponden a circuitos
digitales más sencillos que implementan una función lógica equivalente. Sin embargo, este procedimiento
de simplificación no es sistemático y su éxito depende de la destreza de quien lo aplica.
Para sistematizar la minimización algebraica de funciones lógicas se han desarrollado métodos como
el basado en mapas de Karnaugh y el algoritmo de tabulación de Quine-McCluskey. Este último permite
optimizar automáticamente circuitos con un número elevado de variables e incluso con varias funciones.
En resumen, el objetivo de dichos métodos es encontrar las expresiones —SOP y POS— más simples de
una función lógica dada.
Recuerda que cuando una función lógica tiene una expresión algebraica consistente en un único
término suma o producto:
✓ Las expresiones simplificadas SOP y POS de la función coinciden con el término dado y esta
expresión es la más sencilla para la función. Por tanto, no es preciso realizar su simplificación.
✓ La expresión dada de la función es canónica, SOP o POS, pero no ambas.
Logisim incorpora una herramienta de análisis de funciones lógicas muy instructiva y sencilla de utili-
zar. Dicha herramienta es accesible desde el menú Project Analize Circuit , permitiendo la introducción
de una función lógica en alguno de los cuatro formatos siguientes (ver figura 3.2):
1. Tabla de verdad. Introduciendo manualmente los valores de la función para todas las filas de la
tabla.
2. Expresión algebraica. En la que se emplean los operadores lógicos básicos permitidos: negación (′ ),
producto, suma (+) y OR-exclusivo (^).
3. K-map. Los valores de las celdas del K-map (mapa de Karnaugh) se introducen manualmente. En
este caso la expresión simplificada SOP y POS se calcula de modo interactivo.
4. Diagrama del circuito de puertas lógicas. Se crea el diagrama de un circuito válido que tendrá
asociada una función lógica a su salida dependiente de las variables conectadas a las entradas del
circuito. En este caso las etiquetas asociadas a los pines de entrada y salida del circuito se asignan a
los nombres de las variables y las funciones lógicas dependientes, respectivamente.

Figura 3.2: Panel de definición de una función lógica en Logisim (de izda. a dcha.): tabla de verdad, expresión
booleana y K-map.

A partir de un circuito elaborado con Logisim, la utilización de la herramienta de análisis que incorpora
el programa permite obtener la expresión algebraica de las funciones de salida, sus tablas de verdad e
incluso su minimización mediante mapas de Karnaugh (ver figura 3.2). Si se asignan etiquetas a los pines
de entrada y salida del circuito, dichas etiquetas son los nombres de las variables lógicas empleadas en las
expresiones algebraicas, tablas de verdad y K-maps.
20 Capítulo 3. Circuitos digitales y álgebra de Boole

Problemas resueltos
3.1 Propiedades de puertas lógicas y cronogramas
Problema 3.1 ★✩✩ Dados los cronogramas de las señales A y B, complétalos con las señales de salida
para las funciones lógicas que se indica a continuación.
NOT: A′ ,
AND: A · B,
OR: A + B, y
XOR: A ⊕ B.

 Solución: Para realizar los cronogramas de las funciones lógicas solicitadas, se debe tener en
cuenta la tabla de verdad de cada una de ellas. En realidad, el cronograma se puede entender como
un modo alternativo de presentar los valores de la tabla de verdad de las funciones analizadas. Para
obtener los cronogramas solicitados se tiene en cuenta que la función de negación (NOT) invierte los
valores, el resultado del producto lógico (AND) de dos señales ofrece nivel alto solo si ambas señales
tienen nivel alto, mientras que para la suma (OR) basta con que una de ellas posea nivel alto. En el
caso de la función OR exclusivo (XOR), el resultado es un valor alto solo si una de las señales posee
nivel alto.

En el contexto de esta obra la elaboración de un cronograma es ideal, ya que no considera los


retardos en las señales. Además, las formas de onda están idealizadas suponiendo cambios instantáneos
de valor. En dicha situación los cronogramas de las funciones de salida se convierten en una forma
alternativa de expresar la información presente en la tabla de verdad de las funciones. ■

Problema 3.2 ★✩✩ Comprueba la validez de las leyes de De Morgan con ayuda de Logisim. Para ello,
verifica la equivalencia de los circuitos correspondientes a una puerta NAND y una puerta NOR.

 Solución: Recuerda que las leyes de De Morgan se expresan de modo algebraico como:

(A · B)′ = A′ + B′ y de modo dual (A + B)′ = A′ · B′

Esto es, una puerta NAND es equivalente a una puerta OR con sus entradas negadas y de modo
dual, una puerta NOR es equivalente a una puerta AND con sus entradas negadas. Para comprobar
la validez de estas expresiones se puede construir los circuitos equivalentes con Logisim, asociando
su salida a sendas funciones. Para comprobar la equivalencia de estas, se recurre a la herramienta de
3.1 Puertas lógicas y cronogramas 21

análisis combinacional de Logisim en la que se comprueba que las tablas de verdad de las funciones
equivalentes son idénticas.

Problema 3.3 ★✩✩ Dada la tabla de verdad adjunta, encuentra su relación con la tabla correspondiente
a una puerta AND. Propón la modificación de un circuito con puerta AND para que responda a la tabla de
verdad proporcionada y emplea Logisim para hacer la comprobación. Intenta un razonamiento similar
empleando la puerta NOR.
A B f
0 0 0
0 1 1
1 0 0
1 1 0

 Solución: La puerta AND tiene salida a nivel alto solo cuando sus dos entradas están a nivel alto.
Para que la tabla de verdad ofrecida en el enunciado correspondiese a la de una puerta AND bastaría
con suponer que la entrada asociada a la señal A pasa por un inversor antes de alcanzar la puerta AND.
Así, tendríamos el circuito Logisim de la figura siguiente, en el que además se puede comprobar con la
herramienta de análisis que su tabla de verdad coincide con la suministrada:

Otra forma más rápida de plantear la solución es advertir que la tabla de verdad corresponde a una
función con un único producto canónico (minitérmino): A′ B. Dicho producto se corresponde con una
puerta AND con entrada negada desde la variable A.
Siguiendo un razonamiento similar, como la puerta NOR es aquella cuya salida está a nivel alto
solo cuando sus dos entradas están a nivel bajo. Para que la tabla de verdad correspondiese a la de una
puerta NOR bastaría con suponer que la entrada asociada a la señal B pasa por un inversor antes de
alcanzar la puerta NOR. De este modo, tendríamos el circuito de la figura siguiente:

Una forma alternativa de razonamiento en este caso sería suponer que el minitérmino es un
maxitérmino, en cuyo caso su implementación sería con la suma: A + B′ . Puesto que en realidad se
trata de un minitérmino, hay que aplicar una negación: (A + B′ )′ que es la puerta NOR buscada. ■
22 Capítulo 3. Circuitos digitales y álgebra de Boole

Problema 3.4 ★✩✩ Dada la tabla de verdad adjunta, encuentra su relación con la tabla correspondiente
a una puerta OR. Propón la modificación de un circuito con puerta OR para que responda a la tabla de
verdad proporcionada y emplea Logisim para hacer la comprobación. Intenta un razonamiento similar
empleando la puerta NAND.
A B f
0 0 1
0 1 0
1 0 1
1 1 1

 Solución: (Este ejercicio es dual al anterior por lo que se aplicaría una metodología idéntica de
resolución). La puerta OR es aquella que tiene salida a nivel bajo solo cuando sus dos entradas están a
nivel bajo. Para que la tabla de verdad correspondiese a la de una puerta OR bastaría con suponer que
la entrada asociada a la señal B pasa por un inversor antes de alcanzar la puerta OR. De este modo
tendríamos el circuito Logisim de la figura siguiente junto a la tabla de verdad asociada:

Siguiendo un razonamiento similar, como la puerta NAND es aquella que tiene salida a nivel bajo
solo cuando sus dos entradas están a nivel alto. Para que la tabla de verdad correspondiese a la de una
puerta NAND bastaría con suponer que la entrada asociada a la señal A pasa por un inversor antes de
alcanzar la puerta NAND. De este modo, tendríamos el circuito Logisim de la figura siguiente junto a
la tabla de verdad asociada:

Problema 3.5 ★✩✩ Comprueba —con ayuda de Logisim— la equivalencia entre la puerta lógica XOR
con dos entradas (A, B), y los circuitos lógicos que implementan las funciones f y g:
f (A, B) = A′ B + AB′
g(A, B) = (A + B)(A′ + B′ )

 Solución: Se trata de realizar en Logisim los circuitos de la puerta XOR y los correspondientes a
las expresiones de f (A, B) y g(A, B) para comprobar que la salida de los tres circuitos es idéntica en
todas las combinaciones de las señales de entrada.
Dependiendo del número de entradas a un circuito, la comprobación exhaustiva de su salida para
todas las combinaciones de las variables de entrada puede ser muy tediosa y propensa a error. En lugar
de esto, es posible aprovechar la herramienta de análisis de circuitos de Logisim. Por tanto, una vez
dibujado el circuito lógico, se emplea la herramienta de análisis para obtener la tabla de verdad de las
funciones de salida. Así, se puede comprobar si las salidas son idénticas para todos los circuitos. Este
análisis es válido tanto si se asignan etiquetas a las señales como si no. En caso de no asignar etiquetas
o utilizar etiquetas repetidas, Logisim nombrará automáticamente las señales.
En el caso de las expresiones solicitadas se tiene los circuitos de la figura siguiente junto a la tabla
de verdad correspondiente en la que se comprueba la equivalencia de los circuitos.
Nota: Observa que, en los circuitos de la figura, los inversores se han sustituido por entradas negadas
en las puertas lógicas (precedidas por el símbolo ◦).
3.1 Puertas lógicas y cronogramas 23

Problema 3.6 ★✩✩ Comprueba —con ayuda de Logisim— la validez de las propiedades distributivas
del álgebra de Boole. Esto es, la equivalencia de las expresiones lógicas indicadas mediante circuitos
lógicos equivalentes:
A(B +C) = AB + AC
A + BC = (A + B)(A +C)

 Solución: Para llevar a cabo la comprobación solicitada con Logisim, se pueden realizar los
circuitos correspondientes a las expresiones de cada miembro de la igualdad para confirmar que sus
tablas de verdad asociadas son idénticas.
Para la igualdad A(B +C) = AB + AC, se tiene:

De modo similar, para la igualdad A + BC = (A + B)(A +C), se tiene:

En ambos casos se confirma que las expresiones son equivalentes y, por tanto, la validez de las
propiedades distributivas. ■
24 Capítulo 3. Circuitos digitales y álgebra de Boole

3.2 Manipulación de expresiones lógicas mediante álgebra de Boole


Problema 3.7 ★✩✩ Demuestra que las funciones NAND y NOR no cumplen la propiedad asociativa.

 Solución: Para demostrar que la función NAND no es asociativa es preciso demostrar que:

((AB)′C)′ ̸= (A(BC)′ )′

Aplicando propiedades y teoremas del álgebra de Boole, se tiene:

((AB)′C)′ = (AB)′′ +C′ = AB +C′ ← (P3, T4)


(A(BC)′ )′ = A′ + (BC)′′ = A′ + BC ← (P3, T4)
Por tanto, habría que demostrar que:

AB +C′ ̸= A′ + BC

En general, la manipulación algebraica es apropiada para demostrar la equivalencia o igualdad de


expresiones. Para demostrar una desigualdad, la manipulación algebraica puede conducir a un callejón
sin salida, ya que expresiones aparentemente distintas pueden ser equivalentes. En estos casos es
conveniente recurrir a comprobación de las tablas de verdad asociadas a las expresiones, puesto que
la desigualdad queda probada encontrando un caso en que las expresiones no tengan el mismo valor
lógico para unos valores idénticos de las variables lógicas implicadas.
Para demostrar AB +C′ ̸= A′ + BC, haciendo A = 0, el segundo miembro sería siempre 1 indepen-
dientemente del valor de B y C, pero el valor del primer miembro sería C′ . Por tanto, con A = 0 y
C = 1, el primer miembro sería 0 y el segundo 1, como se quería demostrar.
Para demostrar que la función NOR no es asociativa es preciso demostrar que:

((A + B)′ +C)′ ̸= (A + (B +C)′ )′

((A + B)′ +C)′ = (A + B)′′C′ = AC′ + BC′ ← (P3′ , T4, P2)


(A + (B +C)′ )′ = A′ (B +C)′′ = A′ B + A′C ← (P3′ , T4, P2)
Por tanto, se debe demostrar:

AC′ + BC′ ̸= A′ B + A′C

El segundo miembro es 0 siempre que A = 1, independientemente del valor de B y C. Por tanto, se


tiene que para A = 1 y C = 0, el primer miembro es 1 y el segundo es 0, como se quería demostrar. ■

Problema 3.8 ★✩✩ Demuestra mediante manipulación algebraica que las funciones XOR y XNOR
cumplen la propiedad asociativa.

 Solución: Para demostrar la propiedad asociativa de las funciones XOR y XNOR, es preciso
demostrar la validez de las expresiones:
((A ⊕ B) ⊕C) = (A ⊕ (B ⊕C))
((A ⊕ B)′ ⊕C)′ = (A ⊕ (B ⊕C)′ )′
Dichas igualdades se pueden demostrar expresando las operaciones XOR y XNOR por sus equivalen-
cias algebraicas:
A ⊕ B = AB′ + A′ B
(A ⊕ B)′ = AB + A′ B′
3.2 Aplicación del álgebra de Boole 25

Así es posible desarrollar las expresiones para la función XOR:

((A ⊕ B) ⊕C) = (A ⊕ B)C′ + (A ⊕ B)′C


= (AB′ + A′ B)C′ + (AB + A′ B′ )C
= AB′C′ + A′ BC′ + ABC + A′ B′C ← (P2)
= (B⊕C)′ = (B⊕C)
z }| { z }| {
= A (B′C′ + BC) +A′ (BC′ + B′C)
= A(B ⊕C)′ + A′ (B ⊕C) = (A ⊕ (B ⊕C))

Con esto queda demostrada la propiedad asociativa de la función XOR. Realizando un proceso análogo
para la función XNOR, se tiene:

((A ⊕ B)′ ⊕C)′ = (A ⊕ B)′C + (A ⊕ B)′′C′


= (AB + A′ B′ )C + (AB′ + A′ B)C′
= ABC + A′ B′C + AB′C′ + A′ BC′ ← (P2)
= (B⊕C)′ = (B⊕C)
z }| { z }| {
= A (B′C′ + BC) +A′ (BC′ + B′C)
= A(B ⊕C)′ + A′ (B ⊕C)′′ = (A ⊕ (B ⊕C)′ )′

Con lo que queda demostrada también la validez de la propiedad asociativa para la función XNOR.
Al comparar las expresiones desarrolladas para la asociación de operaciones XOR y XNOR se
obtiene el resultado «sorprendente»: ((A ⊕ B) ⊕C) = ((A ⊕ B)′ ⊕C)′
Este resultado se puede comprobar también con Logisim, comparando las tablas de verdad de los
circuitos asociados:

Problema 3.9 ★★✩ Demuestra mediante manipulación algebraica la igualdad: A ⊕ B ⊕ A′ = B′

 Solución: Para desarrollar la expresión tenemos en cuenta que en la expresión inicial no se han
puesto paréntesis porque la operación XOR cumple la propiedad asociativa. De modo que se cumple:

A ⊕ B ⊕ A′ = ((A ⊕ B) ⊕ A′ ) = (A ⊕ (B ⊕ A′ ))

Aplicando el desarrollo algebraico de la operación XOR y XNOR, se tiene que:

A ⊕ B ⊕ A′ = (AB′ + A′ B)A′′ + (AB + A′ B′ )A′


=0 =0
z }| { z }| {

A′ 
= AB +  BA ′
+ ABA
 
+A′ B′ ← (T4, P2)
=1
z }| {
′ ′ ′ ′ ′
= AB + A B = (
A+A )B ← (T5, P2)
′ ′
=B ← (T5 )
26 Capítulo 3. Circuitos digitales y álgebra de Boole

Con lo que queda demostrada la igualdad del enunciado. De un modo más rápido, se puede llegar al
mismo resultado si se aplica las propiedades conmutativa y asociativa a la función XOR, junto a la
propiedad A ⊕ A′ = 1. Así, se obtiene que 1 ⊕ B = B′ , con lo que queda demostrado que: A ⊕ B ⊕ A′ = B′

Problema 3.10 ★✩✩ Si A ⊕ B = C, ¿cuál es el valor de la expresión A ⊕ B ⊕C?

 Solución: Sustituyendo el valor de A ⊕ B por C, queda que A ⊕ B ⊕C = C ⊕C. Desarrollando la


expresión de la función XOR, se tiene:
=0 =0
z}|{ z}|{
C ⊕C = 
CC′ + 
C′
C = 0 ← (T5)

Algo que se puede deducir del comportamiento de la puerta XOR de dos entradas, ya que esta produce
0 siempre que sus entradas coinciden. ■

Problema 3.11 ★✩✩ Demuestra mediante manipulación algebraica la igualdad:


A′ ⊕ B = (A ⊕ B)′ ⊕ 0

 Solución: Para demostrar esta igualdad se tienen en cuenta las expresiones equivalentes de las
operaciones XOR y XNOR. De este modo, se tiene:
Para el 1er. miembro, como A ⊕ B = AB′ + A′ B ⇒ A′ ⊕ B = A′ B′ + (A′ )′ B = A′ B′ + AB
Para el 2º miembro, como A ⊕ 0 = A ⇒ (A ⊕ B)′ ⊕ 0 = (A ⊕ B)′ = AB + A′ B′
Con lo que queda demostrada la igualdad proporcionada en el enunciado. ■

Problema 3.12 ★★✩ Aplica los axiomas y teoremas del álgebra de Boole para obtener una expresión
minimizada de la función f (A, B,C) = ((AB)′ + A)′ (ABC′ +C)′

 Solución: Antes de la simplificación de cualquier función, su expresión se debe convertir a una


forma SOP o POS. Esto es, la expresión de la función debe estar definida mediante operaciones AND
y OR sobre las variables de las que depende. Si se desarrolla la expresión proporcionada para f ,
aplicando las leyes de De Morgan y teoremas del álgebra de Boole, se tiene que:

f = ((AB)′ + A)′ (ABC′ +C)′ = ((AB)′′ A′ )((ABC′ )′C′ ) ← (P.3′ )


=0
z }| {
′
= (
ABA
 )((A′ + B′ +C)C′ ) ← (T.4, P.3)
=0 ← (T.5)

Este resultado se puede comprobar con Logisim introduciendo la expresión del enunciado a través de
la herramienta de análisis combinacional para ver su tabla de verdad o su versión minimizada. ■

Problema 3.13 ★★✩ ¿Cuál es el resultado de la simplificación algebraica de la función f ?


f (A, B,C, D) = (A′ + B)′ + BC′ + ((A′ + B)′CD)′
3.2 Aplicación del álgebra de Boole 27

 Solución: Aplicando leyes de De Morgan y teoremas del álgebra de Boole, se tiene que:

f = (A′ + B)′ + BC′ + ((A′ + B)′CD)′ = AB′ + BC′ + ((A′ + B)′′ +C′ + D′ ) ← (P.3, P.3′ )
= AB′ + BC′ + A′ + B +C′ + D′ ← (T.4)
′ ′ ′ ′
= AB + A + B +C + D ← (T.6)
=1
z }| {
′
= (
A+A )(B′ + A′ ) + B +C′ + D′ ← (T.7)
′ ′ ′ ′
= B: + A + B
:
+C + D ← (T.1)
=1 ← (T.2′ )

Problema 3.14 ★★✩ Indica cuál de las expresiones siguientes es equivalente a (A + B)(A′ +C)(B +C):

a) (A + B)(A′ +C)

b) A +C

c) (B +C)(A′ +C)

d) B +C

 Solución: Con este tipo de ejercicio debes tener cuidado, pues una elección inapropiada del método
de resolución puede requerir demasiado tiempo. La resolución mediante manipulación algebraica para
transformar una expresión en su equivalente, solo es recomendable si se intuye qué operaciones resuel-
ven el ejercicio. Por el contrario, es preferible la comparación de las formas canónicas equivalentes de
cada expresión, ya que dichas formas son únicas. Por tanto, las expresiones equivalentes tienen formas
canónicas idénticas.
Expandiendo los valores binarios asociados a las sumas no canónicas y eliminando los términos
repetidos, se tiene:

(A + B) → 00∗ ⇒ 000 (0), 001 (1) → (A + B +C), (A + B +C′ )


(A′ +C) → 1∗0 ⇒ 100 (4), 110 (6) → (A′ + B +C), (A′ + B′ +C)
(B +C) → ∗00 ⇒  (0),
000 (4)
 100
 

Como la expansión del tercer término ya está contenida en los términos previos, se tiene que la forma
canónica de los dos primeros términos es:

(A + B)(A′ +C) = ∏ M(0, 1, 4, 6)

Por tanto, la solución correcta es la a).


Para completar el ejercicio se calculan las formas canónicas de las expresiones dadas como
respuestas opcionales.

A +C = ∏ M(0, 2)
| {z }
001 0 (0,2)

(B +C) (A′ +C) = M(0, 4, 6)


| {z } | {z } ∏
0 00 (0,4) 101 0 (4,6)
1

B +C = ∏ M(0, 4)
| {z }
0 00 (0,4)
1


28 Capítulo 3. Circuitos digitales y álgebra de Boole

Problema 3.15 ★★✩ Demuestra la validez o falsedad de la igualdad: A′ + A(A′ B + B′C)′ = A′

 Solución: En este ejercicio la manipulación algebraica es sencilla. La igualdad que se desea probar
es equivalente a demostrar que el segundo término del primer miembro es igual a 0. Por tanto, si:

A′ + A(A′ B + B′C)′ = A′ ⇔ A(A′ B + B′C)′ = 0

Pero esto solo es posible si: (A′ B + B′C)′ = 0 ⇒ A′ B + B′C = 1 (Absurdo)


Se llega al mismo resultado operando en el primer miembro de la igualdad suministrada:

A′ + A(A′ B + B′C)′ = A′ + A(A′ B)′ (B′C)′ ← (P.3′ )


= A′ + A(A + B′ )(B +C′ ) ← (P.3)
=0
z}|{
= A′ + A(AB + AC′ + 
B′
B +B′C′ ) ← (P.2)
= A′ + AB + AC′ + AB′C′ ← (T.5, T.1′ )
̸= A′

3.3 Obtención de formas canónicas de una función


Problema 3.16 ★✩✩ Dada la función f (A, B,C) = AC + A′ B′C′ indica si está expresada en forma
canónica. En caso contrario, calcula sus formas canónicas SOP y POS.

 Solución: La expresión de f está en forma SOP, pero no es una forma canónica porque en el primer
término producto no aparece la variable B. Para obtener la expresión canónica SOP se debe expandir el
término no canónico mencionado:

AC → 1∗1 ⇒ 101 (5), 111 (7) → AB′C, ABC


′ ′ ′ ′
| {zC} + ABC
Luego la 1ª forma canónica (FC) es: f (A, B,C) = AB |{z} + A B C} = ∑ m(0, 5, 7)
| {z
101 (5) 111 (7) 000 (0)

Para calcular la 2ª FC tenemos en cuenta que en la tabla de verdad los 1 aparecen en las filas
indicadas por los productos canónicos calculados anteriormente, mientras que los 0 aparecen en el
resto de filas. Por tanto, la 2ª FC será la correspondiente a las sumas canónicas con códigos 1,2,3,4,6
que completan los 8 términos canónicos posibles de la función. Estos códigos corresponden a las
sumas canónicas, de modo que la 2ª FC queda:

f (A, B,C) = ∏ M(1, 2, 3, 4, 6)


= (A + B +C′ ) (A + B′ +C) (A + B′ +C′ ) (A′ + B +C) (A′ + B′ +C)
| {z }| {z }| {z }| {z }| {z }
001 (1) 010 (2) 011 (3) 100 (4) 110 (6)

Problema 3.17 ★✩✩ Si una función lógica f (A, B,C) tiene una expresión formada por 8 productos
canónicos, ¿de qué función se trata? ¿Cuántas sumas canónicas tendrá la forma canónica alternativa?

 Solución: Una función de 3 variables puede tener a lo sumo 8 términos canónicos (productos o
sumas). Si la función tiene 8 productos canónicos, todas las filas de su tabla de verdad son 1. Por tanto,
se trata de la función identidad f = 1. No existe forma canónica alternativa. ■
3.3 Formas canónicas 29

Problema 3.18 ★✩✩ Dada la función f (A, B) = AB, ¿es una expresión canónica? ¿Por qué? En caso
afirmativo encuentra la expresión canónica alternativa.

 Solución: La función f (A, B) sí está en forma canónica, ya que consiste en un término producto
en el que aparecen las dos variables de las que depende la función. Esta función consta del término
canónico con valor binario 3 que implementa la operación AND. Esto es:

f (A, B) = |{z}
AB = m3
11 (3)

La forma canónica alternativa constaría de 3 sumas canónicas con valores binarios correspondientes: 0,
1 y 2. De este modo, la 2ª FC se puede expresar como:

f (A, B) = ∏ M(0, 1, 2) = (A + B) (A + B′ ) (A′ + B)


| {z } | {z } | {z }
00 (0) 01 (1) 10 (2)

Problema 3.19 ★★✩ Expresa la función f = A′ + BC + AC en sus dos formas canónicas. A partir de la
expresión proporcionada, intenta encontrar mediante manipulación algebraica, la expresión equivalente
más sencilla.
 Solución: La función f (A, B,C) se ofrece en forma SOP. Dicha expresión no es canónica, ya que
está compuesta de términos productos en los que al menos falta una de las variables de la función.
Para obtener la 1ª FC se realiza la expansión de cada término no canónico:

A′ → 0∗∗ ⇒ 000 (0), 001 (1), 010 (2), 011 (3) → A′ B′C′ , A′ B′C, A′ BC′ , A′ BC
BC → ∗11 ⇒   111 (7) → ABC
(3),
011 
AC → 1∗1 ⇒ 101 (5),   → AB′C
(7)
111 

Por tanto:

f (A, B,C) = ∑ m(0, 1, 2, 3, 5, 7) = A′ B′C′ + A′ B′C + A′ BC′ + A′ BC + AB′C + ABC

La segunda forma canónica consta de los términos canónicos que no aparecen en la 1ª FC. De este
modo la 2ª FC queda:

f (A, B,C) = ∏ M(4, 6) = (A′ + B +C)(A′ + B′ +C)

Si partimos de la expresión inicial de f , realizando manipulación algebraica se tiene:

f = A′ + BC + AC
= A′ + AC + BC ← (P.1′ )
=1
z }| {
A′ 
= ( +A)(A′ +C) + BC ← (T.1, P.2′ )
=C
z }| {

= A + C + BC ← (T.5′ )
= A′ +C ← (T.6)

Por tanto:

f = A′ +C


30 Capítulo 3. Circuitos digitales y álgebra de Boole

Problema 3.20 ★✩✩ Calcula las dos formas canónicas de la función f :


f (A, B,C, D) = (B + D)(A′ +C + D)

 Solución: La expresión está en forma POS, pero no es canónica, ya que en los dos términos faltan
variables. Para obtener la 2ª FC (POS), se realiza la expansión de cada término suma para obtener
sumas canónicas:
(B + D) → ∗0∗0 ⇒0000 (0) → (A + B +C + D)
0010 (2) → (A + B +C′ + D)
1000 (8) → (A′ + B +C + D)
1010 (10) → (A′ + B +C′ + D)
(A′ +C + D) → 1∗00 ⇒ (8),
1000 
1100 (12) → (A′ + B′ +C + D)

Por tanto, la 2ª FC (POS) se puede expresar como:

f (A, B,C, D) = ∏ M(0, 2, 8, 10, 12)

A partir de la anterior es posible derivar la 1ª FC en la que aparecen los 11 términos canónicos que faltan
para completar el total de 16 términos canónicos de cualquier función de 4 variables. En consecuencia,
la 1ª FC queda:

f (A, B,C, D) = ∑ m(1, 3, 4, 5, 6, 7, 9, 11, 13, 14, 15)

Problema 3.21 ★✩✩ Calcula las formas canónicas de la función f ′ , dada la forma canónica conjuntiva
(forma POS) de f :
f (A, B,C) = ∏ M(1, 3, 4)

 Solución: Ya que los términos canónicos de una función o bien se escriben como minitérminos
(productos) o como maxitérminos (sumas), el total deben ser 2n , siendo n el número de variables de la
función. De este modo, las formas canónicas para f quedan:
2ª forma canónica → f (A, B,C) = ∏ M(1, 3, 4)
1ª forma canónica → f (A, B,C) = ∑ m(0, 2, 5, 6, 7)
Como los minitérminos de una función son los maxitérminos de su función negada y viceversa, tenemos
que las formas canónicas de f ′ son:
1ª forma canónica → f ′ (A, B,C) = ∑ m(1, 3, 4)
2ª forma canónica → f ′ (A, B,C) = ∏ M(0, 2, 5, 6, 7)

Problema 3.22 ★✩✩ Aplica las leyes de De Morgan para simplificar la función lógica f y calcula sus
formas canónicas:
f (A, B,C, D) = [(AB)(C + D′ )′ ]′

 Solución: Aplicando las leyes de De Morgan a la expresión dada de f , se tiene:

f (A, B,C, D) = [(AB)(C + D′ )′ ]′


= (AB)′ + (C + D′ )′′ ← (P.3)
′ ′ ′
= A + B +C + D ← (P.3, T.4)
3.4 Simplificación de funciones 31

Dicha expresión se puede contemplar como un término canónico suma. Cuando la expresión de
una función tiene un único término canónico, se trata de una forma canónica que no admite mayor
simplificación. Las formas simplificadas SOP y POS coinciden y una de ellas, además es canónica.
Por tanto, las formas canónicas de la función son:
2ª forma canónica → f (A, B,C, D) = A′ + B′ +C + D′ = M13
| {z }
1101 (13)

1ª forma canónica → f (A, B,C, D) = ∑ m(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15)

3.4 Simplificación de funciones lógicas


Problema 3.23 ★★★ Aplica los axiomas y teoremas del álgebra de Boole para simplificar la expresión
de la función f . ¿Qué se puede afirmar respecto de las expresiones canónicas de f y sus versiones
minimizadas? Comprueba el resultado con Logisim.
f (A, B) = (A + B)′ (A ⊕ B) + (AB)′ (A ⊙ B)

 Solución: Aplicando las leyes de De Morgan y desarrollando las expresiones de las operaciones
XOR (⊕) y XNOR (⊙), se tiene:

f (A, B) = (A + B)′ (A ⊕ B) + (AB)′ (A ⊙ B)


= A′ B′ (AB′ + A′ B) + (A′ + B′ )(AB + A′ B′ ) ← (P.3′ , P.3)
=0 =0 =0 =0
z }| { z }| { z }| { z }| {
A′ 
= ′ ′′ ′
AB + A B B + A AB

+A′ B′ + 
ABB′
 +A′ B′ ← (P.2, T.3)
′ ′ ′ ′ ′ ′ ′
= A B +A B = A B ← (T.5, T.1 )

La función tiene un único término producto que posee las dos variables de la función. Por tanto, es un
término canónico que nos permite obtener las formas canónicas de la función:
A′ B′ = m0
1ª forma canónica → f (A, B) = |{z}
00 (0)

2ª forma canónica → f (A, B) = ∏ M(1, 2, 3)


Con Logisim es posible realizar el análisis combinacional introduciendo la expresión inicial de f para
obtener su tabla de verdad:
32 Capítulo 3. Circuitos digitales y álgebra de Boole

Además, dicha herramienta permite obtener las expresiones simplificadas SOP y POS de f :

Nota: Recuerda que cuando la expresión de una función tiene un único término canónico, se trata
de una forma canónica que no admite mayor simplificación. Las formas simplificadas SOP y POS
coinciden y una de ellas, además es canónica. ■

Problema 3.24 ★★✩ Simplifica la función f (A, B,C, D) = ∑ m(0, 1, 2, 3, 6, 7, 8, 10, 12, 14) empleando
mapas de Karnaugh.

 Solución: Como f está expresada como suma de minitérminos (1ª FC), en el K-map se coloca
un 1 en cada una de las celdas correspondiente a cada minitérmino y un 0 en el resto. Aplicando el
método de agrupación de celdas del K-map con 1 y 0 se obtienen las expresiones simplificadas SOP y
POS, respectivamente:

Forma SOP → f (A, B,C, D) = A′ B′ + A′C + AD′


Forma POS → f (A, B,C, D) = (A + B′ +C) + (A′ + D′ )
Observa que se han empleado colores para identificar de modo sencillo los términos correspondientes
a cada agrupación del K-map. ■

Problema 3.25 ★✩✩ Dada la función f ′ (A, B,C, D) = ∑ m(0, 1, 2, 3, 9, 11), determina las formas canó-
nicas y expresiones simplificadas de f (A, B,C, D).

 Solución: La función f será 0 para las combinaciones de variables que hacen 1 la función f ′ . Es
decir, los minitérminos de f ′ coinciden con los maxitérminos de f y viceversa. Puesto que:

f ′ (A, B,C, D) = ∑ m(0, 1, 2, 3, 9, 11) = ∏ M(4, 5, 6, 7, 8, 10, 12, 13, 14, 15)
3.4 Simplificación de funciones 33

Entonces, se tiene que las formas canónicas de f son:


1ª forma canónica → f (A, B,C, D) = ∑ m(4, 5, 6, 7, 8, 10, 12, 13, 14, 15)
2ª forma canónica → f (A, B,C, D) = ∏ M(0, 1, 2, 3, 9, 11)
Aplicando el método de agrupación de celdas del K-map con 1 y 0 se obtienen las expresiones
simplificadas SOP y POS:

Forma SOP → f (A, B,C, D) = B + AD′


Forma POS → f (A, B,C, D) = (A + B) + (B + D′ )

Problema 3.26 ★★✩ Dada la función f (C, B, A) = m2 + M6 , calcula sus formas canónicas y las expre-
siones SOP y POS minimizadas. (Nota: Ten en cuenta el orden proporcionado para las variables.)

 Solución: Para obtener la expresión algebraica de f , es preciso obtener los términos canónico m2 y
M6 expresados en función de sus variables. El orden de ponderación de las variables determina el valor
binario de cada término canónico. De este modo, se tiene:

m2 = C
| {zBA}′ ; M6 = C′ + B′ + A
| {z }
010 (2) 110 (6)

Por tanto, aplicando el teorema de absorción (T.6) se tiene:

f = C′ BA′ + (C′ + B′ + A) = C′ + B′ + A = M6

Las formas canónicas que se obtienen son:


1ª Forma canónica → f (C, B, A) = ∑ m(0, 1, 2, 3, 4, 5, 7)
2ª Forma canónica → f (C, B, A) = M6
En este caso como una de las formas canónicas tiene un solo término, dicho término es, tanto la
expresión mínima SOP, como POS:
f (C, B, A) = M6 = C′ + B′ + A ■

Problema 3.27 ★★✩ Dada la función f (A, B,C) = (C′ B + ACB′ )(B + A′ ), determina sus dos formas
canónicas y sus expresiones SOP y POS simplificadas. Si se considera C como la variable más significativa,
¿cambian sus formas canónicas?

 Solución: La expresión de f se debe desarrollar para obtener una forma SOP. De este modo
operando y reordenando las variables se obtiene:
=0 =0
z }| { z }| {
′ ′ ′
′ ′ ′
f = C BB +C BA + 
ACB
 B +
ACB
 A = BC′ + A′ BC′
34 Capítulo 3. Circuitos digitales y álgebra de Boole

La expresión obtenida no es una forma canónica de f (A, B,C), ya que en el primer término producto no
aparece la variable A. Para convertirla en forma canónica se realiza la expansión del término producto
mencionado:

BC′ → ∗10 ⇒ 010 (2), 110 (6) → A′ BC′ , ABC′

A partir de este resultado se puede concluir que las formas canónicas de f (A, B,C) son:
1ª Forma canónica → f (A, B,C) = ∑ m(2, 6)
2ª Forma canónica → f (A, B,C) = ∏ M(0, 1, 3, 4, 5, 7)
Para obtener las formas simplificadas SOP y POS de f , se puede aplicar el teorema de absorción (T.6)
a la expresión completa de la función (p. ej., sustituyendo el término BC′ por una variable muda).
A este resultado también se llega si se observa que el primer término (BC′ ) se expande contiendo el
segundo término canónico (A′ BC′ ). Por último, utilizando los K-maps de f se obtiene:

Forma SOP → f (A, B,C) = BC′


Forma POS → f (A, B,C) = BC′
En este caso las formas SOP y POS coinciden. Recuerda que este resultado es generalizable:
«Siempre que la minimización de una función lógica tenga un único término, dicha minimización es
única. Además, dicha expresión puede ser considerada canónica.»
En este problema, vemos que al minimizar la función f , esta no depende del valor de A. Por tanto,
la expresión simplificada se puede considerar forma canónica expresada de la forma:

f (B,C) = BC′ = m2

El hecho de cambiar el orden de las variables para que la más significativa sea C, no cambia la expresión
algebraica de las formas canónicas, ni las simplificadas. Lo que se modifica es el valor binario de los
términos canónicos, según se indica a continuación. Obteniendo la expresión de la 1ª forma canónica
dependiendo del orden de las variables, se tiene:

f (A, B,C) = A
| {zBC}′ + ABC ′
| {z } = ∑ m(2, 6)
010 (2) 110 (6)
′ ′ ′
f (C, B, A) = C BA} + C
| {z | {zBA} = ∑ m(2, 3)
010 (2) 011 (3)


II
Sistemas
combinacionales

4 Circuitos digitales combinacionales . . 37


4.1 Análisis combinacional
4.2 Diseño combinacional

5 Módulos combinacionales básicos . . . 67


5.1 Análisis de circuitos con DEC
5.2 Funciones con DEC
5.3 Circuitos con MUX
5.4 Funciones con MUX
5.5 Circuitos con COD y DEMUX
5.6 Diseño con módulos combinacionales

6 Módulos lógicos y aritméticos . . . . . . . 129


6.1 Circuitos con comparadores
6.2 Conversores de código
6.3 Módulos aritméticos
4. Circuitos digitales combinacionales

Los circuitos digitales denominados combinacionales son aquellos que se caracterizan porque su salida
depende únicamente del valor instantáneo de sus entradas. En este capítulo se resumen las técnicas para el
análisis y el diseño de este tipo de circuitos.

El objetivo del análisis de circuitos es determinar las funciones lógicas equivalentes implementadas
por estos y su posible simplificación.

Todo el proceso de análisis de circuitos lógicos se puede llevar a cabo con Logisim desde el menú:
Project Analize Circuit que lanza la herramienta de análisis incluida en dicho programa. De este modo, es
posible construir un circuito de partida válido, cuya funcionalidad se puede simular a nivel lógico mediante
Logisim. La herramienta de análisis de circuitos combinacionales incluida en Logisim proporciona de
modo automático tanto la expresión booleana de las funciones asociadas a las salidas del circuito como
sus tablas de verdad junto a las expresiones simplificadas SOP y POS obtenidas mediante K-maps.

El diseño de sistemas combinacionales, se plantea como el problema de síntesis de un circuito digital


cuyo comportamiento satisfaga una especificación o descripción funcional dada. Los pasos del diseño de
circuitos se muestra en la figura 4.1. El diseño finaliza con la implementación de un circuito físico.

Figura 4.1: Esquema de las fases del proceso de diseño de circuitos combinacionales.
38 Capítulo 4. Circuitos digitales combinacionales

Problemas resueltos
4.1 Análisis de sistemas combinacionales
Problema 4.1 ★✩✩ ¿Cuál es la función lógica implementada por el circuito de la figura adjunta? ¿Es
posible implementar dicha función de un modo más sencillo? Comprueba el resultado analizando el
circuito con Logisim.

 Solución: Para obtener la función de salida del circuito proporcionado se componen las operaciones
lógicas de cada puerta lógica desde las entradas del circuito hacia su salida. Mediante operaciones
algebraicas sobre la expresión obtenida se obtiene una equivalente más sencilla:

f (A, B,C) = [((A′ + B′ +C)′ + (A + B′ )′ + B′ )′ ]′


= (A′ + B′ +C)′ + (A + B′ )′ + B′ ← (T.4)
= ABC′ + A′ B + B′ ← (P.3′ )
= C′ + A′ + B′ ← (T.7)

Sugerencia: Si con la manipulación algebraica se llega a un punto en que no sabemos cómo seguir, se
sugiere hacer una minimización de la expresión empleando K-maps. De este modo se adivina cuál
debe ser la dirección para la simplificación.
La expresión final obtenida es: f (A, B,C) = A′ + B′ +C′ . Como esta expresión consta de un único
término suma, se puede afirmar que no admite una simplificación mayor y que las formas simplificadas
SOP y POS coinciden. En el caso de la forma POS, además se trata de la forma canónica. Por tanto,
las formas canónicas quedan:
1ª forma canónica → f (A, B,C) = ∑ m(0, 1, 2, 3, 4, 5, 6)
2ª forma canónica → f (A, B,C) = A′ + B′ +C′ = M7
| {z }
111 (7)

El circuito más sencillo, equivalente al dado, sería el consistente en una única puerta OR de tres
entradas. Para analizar el circuito con la herramienta integrada en Logisim, una vez realizado el
circuito, es inmediato comprobar la expresión lógica asociada y los resultados SOP y POS de la
minimización con K-maps. La figura adjunta muestra los resultados:
4.1 Análisis combinacional 39

Recuerda que la equivalencia de dos circuitos se puede comprobar en Logisim implementando un


circuito con dos salidas, una para cada subcircuito cuya equivalencia se quiere demostrar. Analizando
dicho circuito mediante su tabla de verdad, se verifica si ambas son coincidentes. La figura siguiente
muestra los circuitos equivalentes y las tablas de verdad correspondientes obtenidas con Logisim.

Problema 4.2 ★✩✩ Dado el circuito de la figura adjunta, indica cuál de las expresiones siguientes
representa una función equivalente:
a) f = A + B +C + D + E + F
b) f = A + (B′ +C)(D′ + EF ′ )
c) f = A′ + (B +C′ )(D + EF ′ )
d) f = (A′ ((B +C′ ) + (D + EF ′ )))′

 Solución: En este caso el procedimiento más inmediato consiste en obtener la expresión lógica
asociada al circuito y realizar operaciones en la misma para intentar transformarla en una expresión
equivalente más sencilla. Mediante composición de las operaciones NAND aplicadas por las puertas
lógicas, desde el circuito proporcionado se llega a una expresión en la que podemos aplicar las leyes
de De Morgan para obtener una expresión más sencilla:

f = [A((B′C)′ (D′ (EF ′ )′ )′ )′ ]′ ← (P.3)


= A′ + ((B′C)′ (D′ (EF ′ )′ )′ )′′ ← (T.4)
= A′ + (B +C′ )(D′ (EF ′ )′ )′ ← (P.3)
= A′ + (B +C′ )(D + EF ′ )

La expresión a la que se llega se corresponde con la opción c).


Este ejercicio también admite una resolución inmediata por descarte, ya que entre las opciones
solo la c) contiene el término A′ . Dicho término debe estar presente en la solución porque en el circuito
dado se observa que la variable A solo está afectada por una puerta NAND. Por tanto, debe aparecer en
la solución como A′ .
Para una comprobación rápida con Logisim se recomienda el empleo de la herramienta de análisis
definiendo las variables de entrada y tantas funciones de salida como expresiones lógicas se desee
40 Capítulo 4. Circuitos digitales combinacionales

comparar. La expresión del circuito proporcionado en el enunciado se puede obtener reproduciendo el


circuito, o bien a partir de su inspección visual. Cada expresión se introduce en su forma algebraica
y finalmente se comparan las tablas de verdad de las funciones de salida para comprobar cuál de las
opciones tiene una tabla idéntica a la expresión dada. ■

Problema 4.3 ★✩✩ ¿Cuál es la función lógica implementada por el circuito de la figura adjunta?
Encuentra sus formas canónicas y sus expresiones simplificadas SOP y POS. Comprueba los resultados
obtenidos con Logisim.

 Solución: Por inspección visual y composición de operaciones NAND se puede llegar a la expresión
algebraica de la función f (A, B,C, D) a la que se puede aplicar las leyes de De Morgan para obtener
una expresión SOP:

f (A, B,C, D) = ((C′ D′ )′ (B′CD)′ (AB′ D)′ )′ ← (P.3, T 4)


= C′ D′ + B′CD + AB′ D

Como se observa el resultado es equivalente a la implementación del circuito con una red AND/OR en
dos niveles.
Como la expresión obtenida para f (A, B,C, D) no es canónica, se realiza la expansión de términos
no canónicos que se indica a continuación:

C′ D′ → ∗∗00 ⇒0000 (0), 0100 (4), 1000 (8), 1100 (12)


B′CD → ∗011 ⇒0011 (3), 1011 (11)
AB′ D → 10∗1 ⇒1001 (9),

(11)
1011 

Por tanto, las expresiones canónicas de f quedan así:


1ª forma canónica → f (A, B,C, D) = ∑ m(0, 3, 4, 8, 9, 11, 12)
2ª forma canónica → f (A, B,C, D) = ∏ M(1, 2, 5, 6, 7, 10, 13, 14, 15)
Mediante los K-maps de la función se pueden obtener las expresiones minimizadas SOP y POS, según
se indica a continuación:
4.1 Análisis combinacional 41

Forma SOP → f (A, B,C, D) = C′ D′ + B′CD + AB′C′


Forma POS → f (A, B,C, D) = (A +C + D′ )(C′ + D)(B′ + D′ )
Para la comprobación con Logisim se puede partir bien del circuito o de la expresión lógica equivalente.
La herramienta de análisis proporciona las formas simplificadas SOP y POS. ■

Problema 4.4 ★★✩ Determina la función lógica equivalente al circuito de la figura adjunta.

 Solución: El circuito de la figura no es válido, ya que las tres puertas lógicas más a la izquierda
poseen una de sus entradas no conectada a ninguna señal de entrada. La simulación lógica con Logisim
produce errores como indica la figura adjunta.

En Logisin las conexiones no conectadas (al aire, flotantes o en alta impedancia) se indican
mediante el color azul. En la simulación lógica con Logisim, estas conexiones a la entrada de las
puertas lógicas generan un estado de error (marcado en rojo) en la salida de las puertas que poseen
entradas flotantes.
Nota: Debes tener mucho cuidado con este tipo de circuitos, ya que si utilizas la herramienta de
análisis de Logisim no se obtiene un error y se trata como un circuito válido. La salida para el circuito
electrónico físico generaría un valor concreto, puesto que en este caso una entrada flotante se puede
considerar un valor lógico determinado por la tecnología específica utilizada. ■

Problema 4.5 ★✩✩ Determina la función lógica equivalente al circuito de la figura adjunta. Indica
cuáles son sus formas canónicas y sus expresiones simplificadas SOP y POS equivalentes. Indica cuál
sería el circuito lógico equivalente más sencillo.

 Solución: Para obtener la función f (A, B,C) implementada por el circuito dado se componen las
operaciones desde la entrada del circuito hacia su salida, realizadas por cada una de las puertas lógicas
del circuito.
42 Capítulo 4. Circuitos digitales combinacionales

Una vez obtenida la expresión lógica, se aplican las propiedades y teoremas booleanos para obtener
una expresión SOP o POS. De este modo se obtiene:

f = ((A + B)(B +C)′ )′ + ((B +C)′ ⊕C)′ ← (P.3)


= (A + B)′ + (B +C)′′ + (B +C)′C + (B +C)′′C′ ← (T.4, P.3′ )
= A′ B′ + (B +C) + 
B′C
′
C + BC′ + ′ ← (T.5)
CC
= A′ B′ + B +C + BC′ ← (T.6)
= A′ B′ + B +C ← (T.7)
= A′ + B +C

Puesto que la expresión resultante posee un único término canónico suma, dicho término es la forma
canónica POS. Además, dicha expresión coincide con las formas simplificadas SOP y POS. Por tanto,
las formas canónicas son:
1ª forma canónica → f (A, B,C) = ∑ m(0, 1, 2, 3, 5, 6, 7)
2ª forma canónica → f (A, B,C) = A′ + B +C = M4
| {z }
100 (4)

Realizando la comprobación para las expresiones simplificadas se tiene:

Forma SOP → f (A, B,C) = A′ + B +C


Forma POS → f (A, B,C) = A′ + B +C
En este caso el circuito equivalente más sencillo consiste en una puerta OR de tres entradas. La figura
siguiente muestra los circuitos equivalentes y las tablas de verdad correspondientes obtenidas con
Logisim.

Problema 4.6 ★✩✩ Determina la función lógica equivalente al circuito de la figura adjunta. Indica
cuáles son sus formas canónicas y sus expresiones simplificadas equivalentes.

 Solución: El circuito es sencillo teniendo en cuenta que una puerta NAND con sus dos entradas
iguales equivale a un inversor y que la puerta de salida (NAND) equivale a una OR con sus entradas
4.1 Análisis combinacional 43

negadas que anula las salidas negadas de las puertas NAND anteriores. Por tanto, la expresión queda:

f (A, B) = ((A′ B)′ (AB′ )′ )′ = (A′ B)′′ + (AB′ )′′ = A′ B + AB′ = A ⊕ B

Las formas canónicas quedan:


1ª forma canónica → A′ B + |{z}
f (A, B) = |{z} AB′ = ∑ m(1, 2)
01 (1) 10 (2)

2ª forma canónica → f (A, B) = (A + B) (A′ + B′ ) = ∏ M(0, 3)


| {z } | {z }
00 (0) 11 (3)

Si se observa los K-maps para esta función se comprueba que las formas canónicas no admiten
simplificación y se corresponden con la salida de una puerta XOR de dos entradas.

Forma SOP → f = A′ B + AB′


Forma POS → f = (A + B)(A′ + B′ )

Problema 4.7 ★★✩ Para el circuito de la figura adjunta completa los apartados que se indican a
continuación:
1.- Calcula las formas canónicas de la función f .
2.- Minimiza la función f obteniendo las expresiones simplificadas SOP y POS.
3.- Implementa f solo con puertas NAND y después solo con puertas NOR partiendo de las expresiones
simplificadas SOP y POS, respectivamente.
4.- Implementa f solo con puertas NAND y después solo con puertas NOR directamente en el circuito
proporcionado en el enunciado transformando cada puerta en la requerida. Compara los resultados
obtenidos con los del apartado anterior.

 Solución: 1.- Cálculo de formas canónicas:


Si se compone la función implementada por el circuito, se obtiene:

f (A, B,C) = A(B +C) = AB + AC

Observamos que la expresión obtenida no es canónica. Para obtener la forma canónica SOP se realiza
la expansión de los términos no canónicos de la forma SOP.

AB → 11∗ ⇒ 110 (6), 111 (7)


AC → 1∗1 ⇒ 101 (5), (7)
111 


Por tanto, las expresiones canónicas quedan:


1ª forma canónica → f (A, B,C) = ∑ m(5, 6, 7)
44 Capítulo 4. Circuitos digitales combinacionales

2ª forma canónica → f (A, B,C) = ∏ M(0, 1, 2, 3, 4)


2.- Formas simplificadas SOP y POS:
Si se emplean los K-maps de f para su minimización, se obtiene:

Forma SOP → f = AC + AB
Forma POS → f = A(B +C)
3.- Implementación de formas simplificadas SOP y POS con puertas NAND/NOR, respectiva-
mente:
Partiendo de las expresiones simplificadas SOP y POS, y aplicando doble negación junto a las leyes
de De Morgan, se obtienen respectivamente expresiones con operaciones NAND y NOR (también se
adjuntan circuitos equivalentes):
Partiendo de forma SOP → f = (AC + AB)′′ = [(AC)′ (AB)′ ]′

Partiendo de forma POS → (A(B +C))′′ = [A′ + (B +C)′ ]′

4.- Transformación directa del circuito:


En este caso para obtener las implementaciones con puertas NAND/NOR se modifica directamente el
circuito proporcionado añadiendo los inversores que sean precisos y aplicando las equivalencias:
(A) entre una puerta OR con sus entradas negadas y una puerta NAND, y
(B) entre una puerta AND con sus entradas negadas y una puerta NOR. En este caso se obtiene los
circuitos siguientes.
Con puertas NAND Con puertas NOR

Comparando estos resultados con los del apartado anterior se observa que la implementación con
puertas NAND es diferente porque en el primer caso se partía de una expresión SOP, mientras que en
este segundo caso se parte de una red OR/AND que equivale a un producto de sumas (POS). Por el
contrario, en la implementación con puertas NOR se llega al mismo circuito porque en ambos casos se
parte de expresiones POS. ■
4.1 Análisis combinacional 45

Problema 4.8 ★✩✩ Determina la función lógica equivalente del circuito de la figura adjunta, sus formas
canónicas y las expresiones simplificadas SOP y POS. Proporciona un circuito final equivalente más
simple que el original.

 Solución: Para obtener la función equivalente del circuito se compone la salida de cada puerta
lógica desde la entrada hasta la salida, para obtener:

f (A, B,C) = [(A′ +C′ )′ + (A′ + B′ )′ ]′

Si se aplican las leyes de De Morgan y lor teoremas del álgebra de Boole, la expresión anterior se
puede transformar así:

f = [(A′ +C′ )′ + (A′ + B′ )′ ]′ ← (P.3′ )


= (A′ +C′ )′′ (A′ + B′ )′′ ← (T.4)
′ ′ ′ ′
= (A +C )(A + B ) ← (P.2)
= A′ A′ + A′ B′ +C′ A′ +C′ B′ ← (T.3,T.6)
′ ′ ′
= A +B C

Realizando la expansión de los términos no canónicos, se tiene:

A′ → 0∗∗ ⇒000 (0), 001 (1), 010 (2), 011 (3)


B′C′ → ∗00 ⇒ (0),
000  100 (4)


Por tanto, las expresiones canónicas quedan:


1ª forma canónica → f (A, B,C) = ∑ m(0, 1, 2, 3, 4)
2ª forma canónica → f (A, B,C) = ∏ M(5, 6, 7)
Si se emplean los K-maps de f para su minimización, se obtiene:

Forma SOP → f = A′ + B′C′


Forma POS → f = (A′ +C′ )(A′ + B′ )
El circuito más sencillo correspondería a la forma SOP simplificada, ya que emplea solo 2 puertas para
su implementación:


46 Capítulo 4. Circuitos digitales combinacionales

Problema 4.9 ★★✩ Se proporcionan las expresiones de las funciones f , g y la composición de ambas
en h, cuyo circuito se muestra en la figura adjunta.
f (A, B,C) = A′ B′ + AC
g(A, B,C) = AB′ + A ⊕C
h(A, B,C) = f ⊕ g

Calcula las expresiones canónicas de h a partir de su tabla de verdad obtenida con ayuda de las tablas de
verdad correspondiente a f y g. A continuación, simplifica la función h para obtener sus expresiones SOP
y POS. Realiza el circuito más sencillo equivalente al circuito original.

 Solución: Para resolver el problema se puede proceder con el desarrollo algebraico de h, teniendo en
cuenta que h = f ⊕ g. Sin embargo, la resolución es rápida, si la composición se realiza directamente
sobre las tablas de verdad de las funciones f y g. En este caso, primero se obtienen las tablas
correspondientes a f y g. A continuación, se calcula la tabla de h como la función XOR de las
anteriores. De este modo se obtiene la tabla de verdad siguiente:
A BC f g h
000 1 0 1 ← m0
001 1 1 0
010 0 0 0
011 0 1 1 ← m3
100 0 1 1 ← m4
101 1 1 0
110 0 1 1 ← m6
111 1 0 1 ← m7
Desde la tabla de verdad es muy sencillo obtener las formas canónicas de la función h tomando las
filas para las que h = 1. Por tanto, se tiene:
1ª forma canónica → h(A, B,C) = ∑ m(0, 3, 4, 6, 7)
2ª forma canónica → h(A, B,C) = ∏ M(1, 2, 5)
Empleando los K-maps para la simplificación de h se obtiene:

Forma SOP → h = B′C′ + BC + AC′


Forma POS → h = (B +C′ )(A + B′ +C)
4.1 Análisis combinacional 47

El circuito equivalente más sencillo lo constituye la forma POS, ya que solo precisa de 3 puertas
lógicas, aunque una de ellas posee 3 entradas. Los circuitos correspondientes a las expresiones SOP y
POS simplificadas son:
Forma SOP Forma POS

Problema 4.10 ★★★ Dado el circuito Logisim de la figura adjunta, indica:

1.- ¿Por qué no es un circuito válido? Comprueba la expresión de la función de salida y su tabla de
verdad mediante la herramienta de análisis combinacional de Logisim. Revisa los resultados de la
simulación obtenidos con Logisim mediante asignación directa de valores a las entradas.
2.- Propón algún modo de evitar los errores en el circuito.

 Solución: 1.- El circuito proporcionado no es válido porque en la puerta AND de la parte superior,
la entrada intermedia es flotante. Es decir, la entrada de la puerta está conectada a una conexión «al
aire». Esta circunstancia se debe distinguir del caso de la puerta AND inferior que tiene su entrada
superior no usada. Esta última condición de por sí no genera errores de simulación si Logisim está
configurado para ignorar las entradas no usadas en las puertas. Por el contrario, las entradas flotantes
son fuente de errores de simulación.
Como se observa en la figura adjunta, el análisis del circuito con Logisim no genera errores y
permite calcular tanto la tabla de verdad como la expresión de la función de salida. En este caso se
ignoran tanto la entrada flotante como la no usada:
48 Capítulo 4. Circuitos digitales combinacionales

Aunque el análisis con Logisim no produce errores, cuando se procede a la simulación lógica y se
asignan valores a los pines de entrada del circuito, la simulación produce un error cuando la salida de
una puerta lógica no se puede determinar. Por ejemplo, cuando una puerta AND tiene sus entradas a
1, excepto la entrada flotante, o cuando una puerta OR tiene sus entradas a 0 excepto la flotante. En
consecuencia, otorgando valores manuales a los pines de entrada del circuito se obtienen errores como
el que muestra la figura siguiente:

2.- El modo más sencillo e inmediato de corregir los problemas con este circuito es definir las puertas
AND con dos entradas, para eliminar las entradas no usadas. El circuito resultante sería:

Problema 4.11 ★★✩ Dado el circuito Logisim de la figura adjunta, indica:

1.- ¿Por qué no es un circuito válido? Comprueba la expresión de la función f de salida y su tabla de
verdad, mediante la herramienta de análisis combinacional de Logisim. Revisa los resultados de la
simulación obtenidos con Logisim mediante asignación directa de valores a las entradas.
2.- Propón algún modo de evitar los errores en el circuito.

 Solución: 1.- El circuito de la figura no es válido porque las salidas de las puertas OR y XOR son
conflictivas. Por tanto, sus salidas no deben estar conectadas.
Nota: Recuerda, en cualquier circuito se debe evitar la conexión directa de varias salidas a una misma
línea de conexión.
Si se realiza en análisis del circuito con la herramienta de análisis combinacional de Logisim
se indica al usuario que existen salidas conflictivas en el circuito. No obstante, la herramienta de
análisis permite visualizar la tabla de verdad en la que se muestran los valores de la tabla que ofrecen
valores conflictivos para la salida. Además, la herramienta de análisis calcula una expresión de salida
eliminando los valores conflictivos de la tabla de verdad.
Aunque no es convencional, este método de análisis se podría emplear como alternativa para
determinar la equivalencia de circuitos. Ya que, si dos circuitos son equivalentes, la conexión de sus
salidas a una línea común no arrojará ningún conflicto en la tabla de verdad resultante del análisis.
A continuación, se incluye una figura que muestra la tabla de verdad y la expresión correspondiente:
4.1 Análisis combinacional 49

Cuando se simula cualquiera de los valores de entrada con salidas conflictivas, se produce un error
como el que indica la figura siguiente:

2.- El modo más simple de corregir el circuito consiste en desdoblar las salidas conflictivas como se
indica a continuación:

Problema 4.12 ★★★ El diagrama de la figura adjunta corresponde a un circuito lógico constituido
por la conexión de dos interruptores en serie gobernados por sendas señales (A, B), de modo que si la
señal de gobierno está a nivel bajo (0), el interruptor permanece abierto. De modo dual, el interruptor se
cierra cuando la señal de gobierno correspondiente pasa a nivel alto (1). Junto al circuito, se adjunta un
circuito Logisim equivalente en el que los interruptores se han sustituido por transistores nMOS cuya
funcionalidad es equivalente a la descrita para los interruptores gobernados por señal lógica. Se pide:

1.- Analiza el valor de la señal f de salida del circuito para las distintas combinaciones de valores que
pueden presentar las señales de entrada A y B que gobiernan el estado de los interruptores. Presenta
el resultado del análisis en un formato de tabla de verdad. El análisis se puede realizar empleando
Logisim.
2.- Si se considera f como una función de A y B, ¿es posible implementar esta función mediante
puertas lógicas? En caso negativo señala las modificaciones necesarias, para convertir el circuito en
la implementación de una función lógica reconocible.
50 Capítulo 4. Circuitos digitales combinacionales

 Solución: 1.- Si los dos interruptores están cerrados (A = 1, B = 1), el valor lógico que hay a la
entrada se propaga hasta la salida. Como el circuito está conectado a un nivel alto (VCC ≡ 1) la salida
tiene este mismo valor, f = 1. Pero si cualquiera de los interruptores está abierto, la salida queda
desconectada del circuito. Por tanto, su estado queda indefinido en modo flotante f =x. De este modo,
la tabla de verdad que se obtiene finalmente (obtenida automáticamente también con Logisim) para f
se muestra a continuación. En ella se observa como la salida pasa a estado flotante si alguna de las
señales de entrada es 0. Esto es, alguno de los interruptores está abierto.
A B f
0 0 x
0 1 x
1 0 x
1 1 1
2.- Si se considera f (A, B), existen varias posibilidades para implementar un circuito equivalente
con puertas lógicas que se ajuste a la tabla de verdad del apartado anterior. En este caso podríamos
pensar que el circuito equivalente buscado sería aquel en que los valores flotantes se sustituyen por
condiciones libres. Aunque es correcto desde un punto de vista lógico, carece de sentido práctico, ya
que la solución trivial considera todos los valores flotantes iguales a 1. De este modo tendríamos la
función identidad f = 1 (no depende de A ni de B) que consiste en la conexión de un valor constante 1
a la salida f .
En este caso la propia lógica del circuito sugiere que el valor flotante sea forzado a 0, de modo
que solo hay un nivel alto a la salida si ambos interruptores están cerrados. Al considerar en la tabla
de verdad como salida 0 todos los valores flotantes, se obtiene la tabla de verdad correspondiente a
una puerta AND. Para forzar a 0 el estado flotante de la salida f , la salida del circuito se conecta a
una resistencia de pull down. La figura siguiente indica cómo modificar el circuito de simulación con
Logisim con un elemento pull-down y el circuito lógico equivalente con una puerta AND.

Nota: Una resistencia de pull-down fuerza un valor flotante hacia nivel 0, mientras que una de pull-up
lo fuerza a 1. ■

Problema 4.13 ★✩✩ Implementa la función f (A, B,C, D) = AB′CD′ + A′ BCD′ + AB′C′ D + A′ BC′ D,
solo con puertas NAND. Repite la implementación solamente con puertas NOR. Comprueba los resultados
con ayuda de Logisim.

 Solución: La expresión ofrecida para f corresponde a su forma canónica SOP. Si se identifica el


equivalente binario de cada producto canónico, la forma canónica SOP se puede expresar de un modo
compacto como:

f (A, B,C, D) = AB
| {zCD}′ + A ′ ′
{z } + AB
| BCD
′ ′
| {zC D} + A′ ′
{z D} = ∑ m(5, 6, 9, 10)
| BC
1010 (10) 0110 (6) 1001 (9) 0101 (5)

A partir de la forma canónica SOP se puede derivar la forma canónica POS, que es:

f (A, B,C, D) = ∏ M(0, 1, 2, 3, 4, 7, 8, 11, 12, 13, 14, 15)


4.1 Análisis combinacional 51

Una vez conocidas las formas canónicas, se puede usar K-maps para obtener las formas simplificadas
SOP y POS como se indica a continuación:

Forma SOP → f = A′ BC′ D + A′ BCD′ + AB′C′ D + AB′C′ D


Forma POS → f = (A + B)(C + D)(C′ + D′ )(A′ + B′ )
En este caso concreto la forma canónica SOP no admite simplificación porque ninguno de los términos
canónicos es adyacente (ver K-map de la izda.).
Para implementar el circuito correspondiente a una función dada, solo mediante puertas NAND, lo
más sencillo es partir de una expresión en forma SOP. Al aplicar doble negación (teorema de involución,
T.4), la expresión queda igual, pero entonces se puede aplicar la ley de De Morgan (P.3′ ) para dejar la
expresión solo con operaciones NAND. Si este proceso se aplica a la forma SOP de f se obtiene:

f (A, B,C, D) = (AB′CD′ + A′ BCD′ + AB′C′ D + A′ BC′ D)′′ ← (T.4, P.3’)


′ ′ ′ ′ ′ ′ ′ ′ ′ ′ ′ ′ ′
= ((AB CD ) (A BCD ) (AB C D) (A BC D) )

Aplicando el principio de dualidad, si se desea expresar una función únicamente con operaciones NOR,
se debe partir de una expresión POS. A continuación se aplica doble negación y ley de De Morgan
(T.4 y P3). Empleando la forma POS simplificada de f se obtiene:

f (A, B,C, D) = ((A + B)(C + D)(C′ + D′ )(A′ + B′ ))′′ ← (T.4, P.3)


= ((A + B) + (C + D) + (C + D ) + (A + B′ )′ )′
′ ′ ′ ′ ′ ′

Los circuitos equivalentes a las expresiones anteriores quedan según se muestra en las figuras siguientes:
Forma SOP con puertas NAND Forma POS con puertas NOR

Nota: Por comodidad, en los circuitos se ha omitido la implementación de inversores con puertas
NAND/NOR con entradas comunes. ■
52 Capítulo 4. Circuitos digitales combinacionales

Problema 4.14 ★★✩ Dada la función f (A, B,C, D) = ∏ M(1, 3, 4, 5, 9, 11, 12, 13), calcula:

1.- Primera forma canónica.


2.- Expresiones simplificadas SOP y POS.
3.- Implementación de f solo con puertas NAND y alternativa solo con puertas NOR.

 Solución: 1.- Partiendo de una forma canónica, la alternativa es la que posee los términos canónicos
no presentes en la anterior. En este caso, los términos canónicos que no son maxitérminos (presentes
en la forma POS) son minitérminos (están en la forma SOP). En consecuencia, la forma SOP queda:

f (A, B,C, D) = ∑ m(0, 2, 6, 7, 8, 10, 14, 15)

2.- Con los K-maps se obtienen las formas simplificadas SOP y POS:

Forma SOP → f = B′ D′ + BC
Forma POS → f = (B + D′ )(B′ +C)
En las formas simplificadas de f se observa que en realidad esta función no depende del valor que
adopte la variable A, ya que no aparece en las expresiones mencionadas. Se puede considerar que se
trata de una función de 3 variables (B, C y D), pero en ese caso las formas canónicas tendrían una
expresión distinta.
El circuito para simular el comportamiento de la función f (A, B,C, D) presentaría el pin de entrada
correspondiente a la variable A sin conexiones en el circuito (como se muestra en el siguiente apartado).
3.- Para la implementación con puertas NAND se recomienda partir de una forma SOP y aplicar doble
negación y leyes de De Morgan (ver problema 4.13). De este modo se obtiene:
Forma SOP con NAND → f = (B′ D′ + BC)′′ = (B′ D′ )′ (BC)′ )′
Forma POS con NOR → f = ((B + D′ )(B′ +C))′′ = ((B + D′ )′ + (B′ +C)′ )′
Para la implementación con puertas NOR, se parte de una forma POS de la función. En consecuencia,
si se emplean las formas SOP y POS se obtiene los circuitos siguientes:
Forma SOP con puertas NAND Forma POS con puertas NOR


4.1 Análisis combinacional 53

Problema 4.15 ★★✩ Dada la función de cuatro variables:


f (A, B,C, D) = [(AB′CD) + (A′ BCD) + (AB′C′ D) + (A′ BC′ D)]′
Se desea obtener:
1.- Formas canónicas de f .
2.- Expresiones simplificadas SOP y POS.
3.- Implementación de f solo con puertas NAND y alternativa solo con puertas NOR.

 Solución: 1.- La expresión proporcionada para f consiste en una forma SOP canónica afectada por
una negación. De este modo, f se puede considerar la negación de una función auxiliar g, de modo
que: f = g′ . Por tanto, las formas canónicas de f y g están relacionadas de modo que los minitérminos
de f son los maxitérminos de g y viceversa. Para las formas canónicas de g se tiene:
′ ′ ′ ′ ′ ′
| {zCD} + A
g = AB {z } + AB
| BCD | {zC D} + A
| BC{z D}
1011 (11) 0111 (7) 1001 (9) 0101 (5)

1ª forma canónica → g(A, B,C, D) = ∑ m(5, 7, 9, 11)


2ª forma canónica → g(A, B,C, D) = ∏ M(0, 1, 2, 3, 4, 6, 8, 10, 12, 13, 14, 15)
Como f = g′ las formas canónicas de f se obtienen a partir de las de g:
1ª forma canónica → f (A, B,C, D) = ∏ m(0, 1, 2, 3, 4, 6, 8, 10, 12, 13, 14, 15)
2ª forma canónica → f (A, B,C, D) = ∑ M(5, 7, 9, 11)
2-. Si se emplea los K-maps de f para su minimización, se obtiene:

Forma SOP → f = A′ B′ + D′ + AB
Forma POS → f = (A + B′ + D′ )(A′ + B + D′ )
3.- Para la implementación con puertas NAND se recomienda partir de una forma SOP y aplicar doble
negación y leyes de De Morgan (ver problema 4.13). De este modo se obtiene:
Forma SOP con NAND: f = (A′ B′ + D′ + AB)′′ = ((A′ B′ )′ D(AB)′ )′
Forma POS con NOR: f = ((A + B′ + D′ )(A′ + B + D′ ))′′ = ((A + B′ + D′ )′ + (A′ + B + D′ )′ )′
Para la implementación con puertas NOR, es conveniente partir de una forma POS de la función. De
este modo si se emplean las formas SOP y POS se obtienen los circuitos siguientes:
Forma SOP con puertas NAND Forma POS con puertas NOR


54 Capítulo 4. Circuitos digitales combinacionales

4.2 Diseño de sistemas combinacionales


Problema 4.16 ★✩✩ Dado el cronograma de la figura adjunta, donde f (A, B) y g(A, B) son funciones
lógicas de A y B, calcula las expresiones algebraicas correspondientes a f y g.

 Solución: Puesto que f y g son funciones de 2 variables, es sencillo averiguar de qué funciones
se trata por simple inspección visual de los cronogramas proporcionados. En la figura siguiente se
completa el cronograma con los valores lógicos asociados:

De este cronograma se puede extraer la información para completar las tablas de verdad de las funciones
f y g:
A B f g
0 0 1 1
0 1 1 0
1 0 1 0
1 1 0 0
Como se observa que f = 0, solo cuando A = B = 1. Esta condición se corresponde con la operación
NAND, o expresado de modo formal f = M3 = A′ + B′ = (AB)′ .
En el caso de g, se tiene que g = 1 solo cuando A = B = 0. Esto es, la operación NOR, ya que
g = m1 = A′ B′ = (A + B)′ . ■
4.2 Diseño combinacional 55

Problema 4.17 ★★✩ Dado el cronograma de la función f (A, B,C) de la figura adjunta. Determina la
expresión de f indicando si es la única función posible para el cronograma suministrado. Para la función
f propuesta, calcula sus formas canónicas y las expresiones simplificadas correspondientes. Propón un
circuito con Logisim que genere la función f .

 Solución: En este problema se pide derivar la expresión de una función f (A, B,C) a partir del
cronograma que ofrece el valor de la función para distintos valores de las variables de entrada A, B y C.
Por tanto, para hacer un análisis exhaustivo de la función f , se anota en el cronograma los valores
lógicos de cada variable lógica en cada intervalo de tiempo. La figura siguiente muestra el resultado:

Este cronograma ofrece la información que se muestra de modo resumido:


ABC → f (t)
000 → 1 (t1 )
001 → 0 (t2 )
110 → 1 (t3 )
010 → 1 (t4 )
111 → 1 (t5 )
000 → 1 (t6 ≡ t1 )
Por tanto, lo que se tiene son valores de la tabla de verdad de f . Los valores ausentes se pue-
den considerar condiciones indiferentes. De modo que existirán varias funciones que satisfacen el
cronograma señalado. Ordenando las filas de la tabla de verdad se tiene:
56 Capítulo 4. Circuitos digitales combinacionales

A B C f
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 x
1 0 0 x
1 0 1 x
1 1 0 1
1 1 1 1
Con la tabla de verdad obtenida se pueden construir los K-maps y obtener las expresiones SOP
y POS más sencillas, que ya proporcionarán un valor concreto para las condiciones indiferentes.
Realizando dicho proceso se obtiene:

Forma SOP → f = C′ + A
Forma POS → f = (A +C′ )
Las formas SOP y POS coinciden porque solo tienen un término suma. Como en la simplificación
se observa que la función no depende de B, la entrada correspondiente a dicha variable estaría
desconectada en el circuito.
Observando la simplificación obtenida con los K-maps, se determina los valores asignados a las
condiciones indiferentes y en consecuencia las expresiones canónicas para f , que quedan como sigue:
1ª forma canónica → f (A, B,C) = ∑ m(0, 2, 4, 5, 6, 7)
2ª forma canónica → f (A, B,C) = ∏ M(1, 3)
El circuito más sencillo que genera el cronograma proporcionado es el que implementa la versión
simplificada de f obtenida previamente:

Recuerda que para analizar el sistema dado con Logisim es preciso incluir un pin de entrada B
desconectado. De este modo se obtiene la tabla de verdad y los K-maps incluyendo dicha variable.
En general, este tipo de problema se puede abordar de modo sistemático mediante tabulación de
los valores del cronograma. En el caso de los sistemas combinacionales en los que el valor de su salida
solo depende de los valores instantáneos de sus entradas, los valores de su cronograma incorporan
la misma información que su tabla de verdad. De este modo, la tabla de verdad de las funciones se
pueden obtener directamente desde el cronograma.
Importante: Si para dos instantes distintos, el cronograma de una función presenta distintos valores
para una misma combinación de valores de entrada, entonces o bien el cronográma es erróneo o no
responde a una función combinacional. ■
4.2 Diseño combinacional 57

Problema 4.18 ★★✩ Diseña un circuito combinacional con tres entradas y una salida. Esta última debe
ser 0 cuando el valor decimal equivalente al valor binario de las entradas es menor que 3 y será 1 en los
demás casos. El diseño debe incluir el cálculo de las expresiones canónicas de la salida y sus expresiones
minimizadas SOP y POS. Determina el circuito lógico más simple para la implementación de f .

 Solución: En este problema se pide obtener un circuito que satisface una especificación. Por tanto,
se trata de un problema de diseño en el que se siguen los pasos ilustrados en la figura 4.1.
En este caso la propia especificación, indica claramente que el sistema consta de tres entradas y
una salida. Para identificarlas, se empleará la nomenclatura habitual de este texto para entradas (A, B y
C) y salidas ( f ).
A continuación se debe completar la tabla de verdad siguiendo el criterio ofrecido por la especifi-
cación:
A B C Decimal f
0 0 0 →0 0
0 0 1 →1 0
0 1 0 →2 0
0 1 1 →3 1
1 0 0 →4 1
1 0 1 →5 1
1 1 0 →6 1
1 1 1 →7 1
En dicha tabla se ha incluido la columna con el valor decimal asociado a cada fila (entrada). A
partir de la tabla de verdad se obtienen los minitérminos (filas con f = 1) y maxitérminos (filas con
f = 0) de f , de modo que sus formas canónicas quedan como sigue:
1ª forma canónica → f (A, B,C) = ∑ m(3, 4, 5, 6, 7)
2ª forma canónica → f (A, B,C) = ∏ M(0, 1, 2)
Los K-maps de f permiten obtener las formas minimizadas SOP y POS:

Forma SOP → f = BC + A
Forma POS → f = (A + B)(A +C)
El circuito más sencillo que se puede implementar corresponde a la forma SOP, ya que solo necesita
dos puertas lógicas de 2 entradas, como se ve en la figura siguiente:


58 Capítulo 4. Circuitos digitales combinacionales

Problema 4.19 ★★✩ Diseña un circuito combinacional con tres entradas y tres salidas. En dicho circuito
se cumplirá que cuando el valor de entrada en binario natural es 0, 1, 2 o 3, la salida binaria se obtiene
sumando 1 a la entrada. Si el valor de la entrada binaria es 4, 5, 6 o 7, la salida binaria se obtiene restando
1 a la entrada. Determina las expresiones canónicas y simplificadas de las funciones de salida del circuito
deseado.
 Solución: La especificación ya proporciona el número de entradas y salidas del sistema. En este
caso se desea codificar valores decimales en el rango [0, 7] para la entrada y [1, 6] para la salida. Por
tanto, es claro que se precisan tres variables (bits) para codificar tanto el valor de la entrada como el de
la salida.
La tabla de verdad se construye teniendo en cuenta la especificación que indica el valor de salida
para cada valor de entrada:
Entrada A B C Salida f g h
0→ 0 0 0 1→ 0 0 1
1→ 0 0 1 2→ 0 1 0
2→ 0 1 0 3→ 0 1 1
3→ 0 1 1 4→ 1 0 0
4→ 1 0 0 3→ 0 1 1
5→ 1 0 1 4→ 1 0 0
6→ 1 1 0 5→ 1 0 1
7→ 1 1 1 6→ 1 1 0
Las formas canónicas de las funciones de salida ( f , g, h) se obtienen a partir de la tabla de verdad
correspondiente a cada una de ellas. De este modo se obtienen las expresiones que se indican a
continuación.
1ª forma canónica:
• f (A, B,C) = ∑ m(3, 5, 6, 7)
• g(A, B,C) = ∑ m(1, 2, 4, 7)
• h(A, B,C) = ∑ m(0, 2, 4, 6)
2ª forma canónica:
• f (A, B,C) = ∏ M(0, 1, 2, 4)
• g(A, B,C) = ∏ M(0, 3, 5, 6)
• h(A, B,C) = ∏ M(1, 3, 5, 7)
Las formas simplificadas SOP y POS para cada función se obtienen a partir de los K-maps de cada
función:
Formas SOP:

• f = BC + AC + AB
• g = A′ B′C + A′ BC′ + AB′C′ + ABC
• h = C′
4.2 Diseño combinacional 59

Formas POS:

• f = (A + B)(A +C)(B +C)


• g = (A + B +C)(A + B′ +C′ )(A′ + B +C′ )(A′ + B′ +C)
• h = C′

Problema 4.20 ★✩✩ Una entidad bancaria desea instalar un sistema de alarma basado en detectores de
movimiento. En total se instalarán tres detectores (A, B, C) en las ubicaciones sugeridas por los expertos
en seguridad. Para prevenir falsas alarmas provocadas por la activación de un único sensor, la alarma
solo se activará cuando al menos dos de los sensores detecten simultáneamente una intrusión. Diseña un
circuito lógico combinacional que controle el mecanismo de activación de la alarma.

 Solución: Como en cualquier problema de diseño de un sistema lógico combinacional, el primer


paso consiste en identificar las entradas y salidas del sistema a partir de la especificación del mismo.
Las entradas al sistema las proporcionan los detectores A, B y C. Asumiremos que un valor 1 indica
una intrusión detectada y un 0 la ausencia de la misma. La salida f del sistema es la que activa la
alarma (suponemos que se activa con nivel alto, 1) en función del estado de los detectores de presencia.
La tabla de verdad para f será tal que su valor es 1 solo si al menos hay dos detectores activados. Esta
función también recibe el nombre de función mayoría. En consecuencia se tiene:
A B C f
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
Las formas canónicas de f (A, B,C) se obtienen directamente de la tabla de verdad:
1ª forma canónica → f (A, B,C) = ∑ m(3, 5, 6, 7)
2ª forma canónica → f (A, B,C) = ∏ M(0, 1, 2, 4)
Los K-maps de f permiten obtener las formas minimizadas SOP y POS, más simples:
60 Capítulo 4. Circuitos digitales combinacionales

Forma SOP → f = BC + AC + AB
Forma POS → f = (A + B)(A +C)(B +C)
La implementación del sistema con la forma SOP simplificada queda:

Problema 4.21 ★★★ En una población se analizan los grupos sanguíneos de sus individuos para
establecer la compatibilidad donante-receptor. Los resultados muestran que los grupos presentes en dicha
población son: O- , AB+ , AB- y B- .

B-
B-

Diseña un circuito combinacional capaz de proporcionar una salida f que indique la compatibilidad
entre un donante y un receptor.
Las entradas del circuito combinacional serán el grupo sanguíneo del donante —que se codificará
con 2 bits denominados D1 y D0 — y el grupo sanguíneo del receptor —codificado también con 2 bits
denominados R1 y R0 —. La compatibilidad entre donante y receptor se establece en base a las reglas
siguientes:
Toda persona puede ser donante-receptor de su propio grupo;
Una persona del grupo O- puede ser donante para receptores de cualquier grupo, pero solo puede
ser receptor de donantes O- ;
Una persona con grupo AB+ sólo puede ser donante para el grupo AB+ , pero puede ser receptor de
cualquier donante;
Una persona de grupo AB- puede ser donante para los grupos AB- o AB+ , y puede ser receptor de
donantes O- , B- y AB- ;
Una persona de grupo B- puede ser donante para los grupos B- , AB- y AB+ , y puede ser receptor de
donantes O- o B- .
Se pide:
1.- Define la codificación de los grupos sanguíneos (la misma para donante y receptor).
2.- Define la tabla de verdad de la función f que establece la compatibilidad donante-receptor.
3.- Encuentra las formas SOP y POS de f , tanto canónicas como simplificadas.
4.- Emplea Logisim para obtener los circuitos de las formas simplificadas SOP y POS.
4.2 Diseño combinacional 61

 Solución: 1.- La especificación del enunciado establece que la codificación de los grupos sanguíneos
empleará 2 bits. Este es el menor número de bits necesario para codificar los 4 valores posibles del
grupo sanguíneo. La tabla adjunta muestra el código binario asignado a cada grupo sanguíneo. Con
ellos será posible codificar los 4 tipos de grupos según se indica en la tabla adjunta:
Grupo MSB (D1 , R1 ) LSB (D1 , R1 )
O- 0 0
AB+ 0 1
AB- 1 0
B- 1 1
2.- Para establecer la función de compatibilidad sanguínea entre donante y receptor, se elabora una tabla
de verdad en la que se tiene en cuenta las reglas de compatibilidad proporcionadas en la especificación:
Donante Receptor [D1 D0 ] [R1 R0 ] Compatible f
O- O- 00 00 SI 1
O- AB+ 00 01 SI 1
O- AB- 00 10 SI 1
O- B- 00 11 SI 1
AB+ O- 01 00 NO 0
AB+ AB+ 01 01 SI 1
AB+ AB- 01 10 NO 0
AB+ B- 01 11 NO 0
AB- O- 10 00 NO 0
AB- AB+ 10 01 SI 1
AB- AB- 10 10 SI 1
AB- B- 10 11 NO 0
B- O- 11 00 NO 0
B- AB+ 11 01 SI 1
B- AB- 11 10 SI 1
B- B- 11 11 SI 1
3.- Las formas canónicas de f (D1 , D0 , R1 , R0 ) se obtienen directamente de la tabla de verdad:
1ª forma canónica → f (D1 , D0 , R1 , R0 ) = ∑ m(0, 1, 2, 3, 5, 9, 10, 13, 14, 15)
2ª forma canónica → f (D1 , D0 , R1 , R0 ) = ∏ M(4, 6, 7, 8, 11, 12)
Los K-maps de f permiten obtener las formas minimizadas SOP y POS, más simples:

Forma SOP → f = D′1 D′0 + R′1 R0 + D1 R1 R′0 + D1 D0 R1


Forma POS → f = (D1 + D′0 + R0 )(D1 + D′0 + R′1 )(D′1 + R1 + R0 )(D′1 + D0 + R′1 + R′0 )
4.- Si la tabla de verdad se introduce en Logisim, es posible obtener automáticamente los circuitos
correspondientes a las formas simplificadas SOP y POS, como se muestra a continuación:
62 Capítulo 4. Circuitos digitales combinacionales

Forma SOP Forma POS

Nota: En los circuitos anteriores se muestra como el trazado de circuitos que produce Logisim repite
innecesariamente algunos inversores. Sin embargo, esto no afecta al resultado de la simulación lógica.
El número máximo de inversores necesarios será igual al de variables de entrada. ■

Problema 4.22 ★★★ Una máquina de vending dispone de selección de 4 tipos de producto con los
precios siguientes: botella de agua (0.50 ¤), lata de refresco (1 ¤), paquete de galletas (1.50 ¤) y caja de
bombones (2 ¤).

Agua: 0.50 €
Refresco: 1 €
Galletas: 1.50 €
Bombones: 2 €

La máquina solo acepta una moneda para adquirir el producto. Dicha moneda puede ser de 0.50 ¤, de
1 ¤ o de 2 ¤.
La máquina está en reposo si no se introduce dinero y no se selecciona producto. Por tanto, se asume
que al menos se ha seleccionado un producto. Es decir, no es preciso codificar la ausencia de selección en
la máquina. El producto es suministrado siempre que se introduce el importe exacto o superior del mismo,
teniendo en cuenta que:
La máquina devuelve solo cambio de una moneda;
Siempre que se introduce el importe exacto del producto seleccionado o se puede devolver cambio
exacto en una moneda, se suministra el producto seleccionado;
Si no puede devolver el cambio correcto en una sola moneda, se devuelve la moneda introducida
sin suministrar el producto;
Si no se introduce moneda, no se suministra producto ni se retorna cambio.
4.2 Diseño combinacional 63

Se pide:
1.- Identifica las variables de entrada, funciones de salida y codificación elegida para ellas.
2.- Elabora la tabla de verdad de las funciones de salida.
3.- Encuentra las formas SOP y POS, tanto canónicas como simplificadas, de las funciones de salida
definidas.
4.- Elige una función de salida y para ella realiza los circuitos lógicos empleando: red AND/OR, red
OR/AND, sólo puertas NAND y sólo puertas NOR.

 Solución: 1.- Las entradas estarán determinadas por la introducción de moneda y selección de
producto, mientras que las salidas indicarán el suministro de producto y el cambio devuelto.
Los valores posibles para la moneda introducida son: 0¤, 0.5¤, 1¤y 2¤. Puesto que son cuatro
posibles valores, se precisan 2 bits —que denominaremos M1 y M0 — para su codificación. Como se
pueden seleccionar 4 productos, el producto seleccionado se codifica también con 2 bits —denominados
P1 y P0 —.
Las salidas indican si el producto se suministra (s = 1) o no (s = 0) y el valor del cambio (d1 y d0 ).
Para el cambio es conveniente emplear los mismos valores binarios que en el caso del valor monetario
introducido (entrada [M1 M0 ]). Las tablas siguientes resumen la codificación de entradas y salidas.
Moneda [M1 M0 ] y [d1 d0 ] Producto [P1 P0 ]
0¤ 00 Agua 00
0.50¤ 01 Refresco 01
1¤ 10 Galletas 10
2¤ 11 Bombones 11
2.- La tabla de verdad de las salidas se construye con todas las posibles combinaciones de valores de
entrada y los correspondientes valores de salida. De este modo se obtiene:
Moneda Producto [M1 M0 ] [P1 P0 ] Sumin. s Cambio [d1 d0 ]
0¤ Agua 00 00 NO 0 0¤ 00
0¤ Refresco 00 01 NO 0 0¤ 00
0¤ Galletas 00 10 NO 0 0¤ 00
0¤ Bombones 00 11 NO 0 0¤ 00
0.50¤ Agua 01 00 SI 1 0¤ 00
0.50¤ Refresco 01 01 NO 0 0.50¤ 01
0.50¤ Galletas 01 10 NO 0 0.50¤ 01
0.50¤ Bombones 01 11 NO 0 0.50¤ 01
1¤ Agua 10 00 SI 1 0.50¤ 01
1¤ Refresco 10 01 SI 1 0¤ 00
1¤ Galletas 10 10 NO 0 1¤ 10
1¤ Bombones 10 11 NO 0 1¤ 10
2¤ Agua 11 00 NO 0 2¤ 11
2¤ Refresco 11 01 SI 1 1¤ 10
2¤ Galletas 11 10 SI 1 0.50¤ 01
2¤ Bombones 11 11 SI 1 0¤ 00
3.- Las formas canónicas de las funciones se obtienen a partir de la tabla de verdad de cada una de las
funciones. Así se obtienen las expresiones que se indican a continuación.
1ª forma canónica:
• s(M1 , M0 , P1 , P0 ) = ∑ m(4, 8, 9, 13, 14, 15)
• d1 (M1 , M0 , P1 , P0 ) = ∑ m(10, 11, 12, 13)
• d0 (M1 , M0 , P1 , P0 ) = ∑ m(5, 6, 7, 8, 12, 14)
64 Capítulo 4. Circuitos digitales combinacionales

2ª forma canónica:
• s(M1 , M0 , P1 , P0 ) = ∏ M(0, 1, 2, 3, 5, 6, 7, 10, 11, 12)
• d1 (M1 , M0 , P1 , P0 ) = ∏ M(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 14, 15)
• d0 (M1 , M0 , P1 , P0 ) = ∏ M(0, 1, 2, 3, 4, 9, 10, 11, 13, 15)
Las formas simplificadas SOP y POS para cada función se obtienen a partir de los K-maps de cada
función.
Formas SOP:

• s = M1′ M0 P1′ P0′ + M1 M0′ P1′ + M1 P1′ P0 + M1 M0 P1


• d1 = M1 M0′ P1 + M1 M0 P1′
• d0 = M1′ M0 P0 + M0 P1 P0′ + M1 P1′ P0′
Formas POS:

• s = (M1 + M0 )(M1 + P0′ )(M1 + P1′ )(M0 + P1′ )(M1′ + M0′ + P1 + P0 )


• d1 = M1 (M0 + P1 )(M0′ + P1′ )
• d0 = (M1 + M0 )(M1 + P1 + P0 )(M0 + P1′ )(M1′ + P0′ )
4.- De entre las funciones del sistema escogemos d1 , ya que es la que presenta las expresiones
simplificadas más sencillas. Para dicha función obtenemos los circuitos lógicos mediante red AND/OR
(a partir de forma SOP), red OR/AND (a partir de forma POS), forma SOP con puertas NAND y forma
POS con puertas NOR.
Forma SOP (con red AND/OR) Forma POS (con red OR/AND)
4.2 Diseño combinacional 65

Forma SOP (con NAND) Forma POS (con NOR)


5. Módulos combinacionales básicos

Los módulos combinacionales son circuitos que incorporan señales auxiliares que controlan su funcionali-
dad y se emplean como patrones constructivos en diseños jerarquizados de sistemas digitales complejos.
Sin embargo, su propia complejidad es baja/media, ya que poseen un número de puertas lógicas que,
por lo general, no supera el centenar. Este capítulo resuelve problemas relativos al uso de módulos
combinacionales empleados principalmente en transmisión de datos.
El decodificador —también denominado DEC o DECO— se puede contemplar como si implementase
los términos canónicos de las variables de entrada. Dependiendo de que su implementación se realice con
puertas AND o NAND, se obtienen minitérminos o maxitérminos, respectivamente (ver figura 5.1).

(a) DEC como generador de minitérminos. (b) DEC como generador de maxitérminos.

Figura 5.1: Implementación de DEC 2 × 4 con puertas AND y NAND.

Puesto que los DEC actúan como generadores de términos canónicos, permiten implementar cualquiera
de las funciones constituidas por la combinación de términos canónicos obtenidos en su salida. La
figura 5.2 resume las puertas lógicas necesarias para agrupar las salidas del DEC y obtener la función
deseada.
68 Capítulo 5. Módulos combinacionales básicos

Figura 5.2: Puertas lógicas precisas a la salida de un DEC para implementar las formas canónicas de una
función dependiente de las variables de selección del DEC.

El multiplexor o MUX es un módulo que «redirije», hacia su salida, una de sus 2n entradas seleccionada
por sus n entradas de selección. La figura 5.3 muestra la implementación de un MUX 4 × 1, cuya función
de salida es:

y = ((A′ B′ ) · D0 + (A′ B) · D1 + (AB′ ) · D2 + (AB) · D3 ) · E (5.1)


= (m0 · D0 + m1 · D1 + m2 · D2 + m3 · D3 ) · E

Figura 5.3: Multiplexor 4 × 1 mediante red AND/OR y señal enable (E) activa a nivel alto.

Un MUX se puede emplear para implementar una función lógica dependiente de las señales de
selección si en las entradas de datos se conectan los valores indicados por su tabla de verdad.
69

Puesto que la expresión lógica del MUX consiste en los productos canónicos de las variables de
selección multiplicados por los valores de las entradas de datos, estas últimas se pueden ajustar a los
valores constantes convenientes ‘0’ y ‘1’ para obtener distintas funciones lógicas dependientes de las
variables de selección. De este modo, los MUX se pueden emplear con sencillez para implementar
funciones lógicas. Además, el teorema de expansión de Shannon proporciona un método sistemático para
obtener la implementación de una función lógica mediante MUX de distinta complejidad. La figura 5.4
resume el empleo de MUX para obtener las funciones lógicas elementales (AND y OR), universales
(NAND y NOR) y secundarias (XOR y XNOR).

Figura 5.4: Implementación de puertas lógicas de dos entradas con MUX 2 × 1.

Los decodificadores y multiplexores se pueden agrupar entre sí para constituir redes que permiten
obtener la funcionalidad de un módulo de mayor orden a partir de otros más sencillos. Estas redes siguen
dos estrategias:
1. Redes en dos niveles con gestión de habilitación. Los módulos que la componen se habilitan de
modo selectivo para obtener su salida. Cuando la red posee más de dos módulos en el nivel de
salida se emplea un DEC para generar la señal de habilitación hacia cada uno de los módulos de
salida (ver figura 5.5).

Figura 5.5: Implementación de redes de DEC y MUX en dos niveles con gestión de señal de habilitación.

2. Redes multinivel. Son redes multinivel con señales de selección —para los módulos— compartidas
por nivel (ver figura 5.6). En las redes de DEC se lleva a cabo gestión de habilitación multinivel (ver
figura 5.6-izda.). Por el contrario, en el caso de los MUX, la señal de habilitación se suprime, ya que
todos los módulos están siempre habilitados. En ellos la señal de salida se controla directamente
por las señales de selección (ver figura 5.6-dcha.).
70 Capítulo 5. Módulos combinacionales básicos

Figura 5.6: Implementación de redes multinivel, con gestión de habilitación (DEC) y sin ella (MUX).

La versatilidad del DEC y el MUX es la justificación de su popularidad y uso en el diseño de sistemas


digitales. Para obtener la funcionalidad inversa se dispone del codificador (COD) y del demultiplexor
(DEMUX). Para estudiar las características del COD se recomienda consultar el manual de teoría asociado
a esta obra [7]. El DEMUX es un módulo cuya funcionalidad se encuentra en los propios DEC mediante
la inclusión de una puerta AND en la habilitación para disponer conjuntamente de la señal de habilitación
y la señal de entrada de datos (ver figura 5.7).

Figura 5.7: Implementación de DEMUX con puertas AND y NAND.


5.1 Análisis de circuitos con DEC 71

Problemas resueltos
5.1 Análisis de circuitos con decodificadores
Problema 5.1 ★✩✩ ¿Cuáles son las formas canónicas de las funciones lógicas f1 , f2 , f3 y f4 , imple-
mentadas por cada uno de los circuitos de la figura adjunta? Calcula también las versiones simplificadas
con K-maps para cada una de ellas.

 Solución: Como en los DEC no aparece la señal de habilitación (En, enable) se asume que su valor
es 1 y los circuitos están siempre habilitados. Puesto que en todos los casos el DEC 3 × 8 tiene sus
salidas activas a nivel alto, se trata de un generador de minitérminos. En consecuencia, los minitérminos
implicados en todos los circuitos son los mismos; esto es: m3 , m4 y m6 .
Con una puerta OR a la salida, se implementa la suma de los minitérminos requeridos. Por tanto, para
f1 se tiene:
1ª forma canónica → f1 (A, B,C) = ∑ m(3, 4, 6)
2ª forma canónica → f1 (A, B,C) = ∏ M(0, 1, 2, 5, 7)
Simplificando las expresiones con K-maps se tiene:

Forma SOP → f1 (A, B,C) = A′ BC + AC′


Forma POS → f1 (A, B,C) = (A + B)(A +C)(A′ +C′ )
Recuerda que para utilizar la herramienta de análisis en Logisim, debes emplear el elemento splitter en
todas las entradas y salidas multibit. Por ejemplo, observa como cambia el circuito de f1 para realizar
el análisis y la ponderación de bits extraídos de la señal multibit:
72 Capítulo 5. Módulos combinacionales básicos

Como en f2 se cambia la puerta OR por una NOR, se tiene: f2 = f1′ . Es decir, los minitérminos y
maxitérminos de f2 se intercambian con los de f1 . Así, se obtiene:
1ª forma canónica → f2 (A, B,C) = ∑ m(0, 1, 2, 5, 7)
2ª forma canónica → f2 (A, B,C) = ∏ M(3, 4, 6)
Simplificando las expresiones con K-maps se tiene:

Forma SOP → f2 (A, B,C) = A′ B′ + A′C′ + AC


Forma POS → f2 (A, B,C) = (A + B′ +C′ )(A′ +C)
En el caso del circuito proporcionado para f3 , tenemos en cuenta que un DEC solo tiene activa la
salida correspondiente al código de entrada. Por tanto, en la puerta AND alguna entrada siempre es 0
y en consecuencia también es 0 la salida de la puerta. Se tiene pues: f3 = 0 (función nula). De este
modo, para f4 se concluye que:

f 4 = f3′ ⇒ f4 = 1 (función identidad)

Problema 5.2 ★✩✩ ¿Cuáles son las formas canónicas de las funciones lógicas g1 , g2 , g3 y g4 , imple-
mentadas por cada uno de los circuitos de la figura adjunta? Calcula también las versiones simplificadas
con K-maps para cada una de ellas.

 Solución: Como los DEC tienen sus salidas activas a nivel bajo, se trata de generadores de
maxitérminos. Por tanto, con una puerta AND a la salida se implementa el producto de maxitérminos
(como en g3 ) y con una NAND la suma de minitérminos (como en g4 ). Como con cada combinación
de entrada se activa solo una salida del DEC, al conectar una puerta OR a la salida, esta siempre
será 1 (como en g1 ), ya que al menos una de sus entradas será 1. En este caso con una puerta NOR
obtendremos la función nula 0 (como en g2 ).
Por tanto, para g1 y g2 se tiene:
g1 = 1, g2 = g′1 = 0
5.1 Análisis de circuitos con DEC 73

Para g3 resulta:
1ª forma canónica → g3 (A, B,C) = ∑ m(0, 1, 2, 5, 7)
2ª forma canónica → g3 (A, B,C) = ∏ M(3, 4, 6)
Simplificando las expresiones con K-maps se tiene:

Forma SOP → g3 (A, B,C) = A′ B′ + A′C′ + AC


Forma POS → g3 (A, B,C) = (A + B′ +C′ )(A′ +C)
Como g4 = g′3 , se tiene que:
1ª forma canónica → g4 (A, B,C) = ∑ m(3, 4, 6)
2ª forma canónica → g4 (A, B,C) = ∏ M(0, 1, 2, 5, 7)
Simplificando las expresiones con K-maps se tiene:

Forma SOP → g4 (A, B,C) = A′ BC + AC′


Forma POS → g4 (A, B,C) = (A + B)(A +C)(A′ +C′ )

Problema 5.3 ★★✩ ¿Cuáles son las formas canónicas y las versiones simplificadas de la función lógica
f implementada por el circuito de la figura adjunta? Comprueba el resultado con Logisim.

 Solución: El decodificador de la parte superior de la figura se encarga de generar la señal de


habilitación de los DEC inferiores. El circuito se puede interpretar como una red de DEC con la
funcionalidad de un DEC 4 × 16 a partir de 5 DEC 2 × 4. Las variables de selección son A, B, C y D, en
74 Capítulo 5. Módulos combinacionales básicos

orden de ponderación decreciente. Para interpretar adecuadamente el orden de los términos canónicos
generados a la salida, se debe observar la indicación de las salidas con un índice menor. En la figura
del enunciado se observa que el orden de las salidas es creciente de izda. a dcha. (ver figura siguiente).

Por tanto, como los DEC tienen salidas activas a nivel alto (generan minitérminos), las formas canónicas
de la función f quedan:
1ª forma canónica → f (A, B,C, D) = ∑ m(1, 2, 5, 10, 12)
2ª forma canónica → f (A, B,C, D) = ∏ M(0, 3, 4, 6, 7, 8, 9, 11, 13, 14, 15)
Simplificando las expresiones con K-maps, se obtiene:

Forma SOP → f (A, B,C, D) = A′C′ D + B′CD′ + ABC′ D′


Forma POS → f (A, B,C, D) = (A +C + D)(B +C + D)(C′ + D′ )(B′ +C′ )(A′ + D′ )
El circuito de entrada se puede replicar en Logisim y comprobar los resultados obtenidos con la
herramienta de análisis, ya que las entradas multibit están separadas mediante elementos splitter. ■

Problema 5.4 ★✩✩ ¿Cuáles son las formas canónicas y las versiones simplificadas de la función lógica
f implementada por el circuito de la figura adjunta?
5.1 Análisis de circuitos con DEC 75

 Solución: Puesto que, en el circuito proporcionado la señal de enable es una constante igual a 1,
el circuito está siempre habilitado. De hecho, dicha señal se podría suprimir en una simulación con
Logisim. Como el DEC tiene salidas activas a nivel bajo, se trata de un generador de maxitérminos.
Por tanto, este circuito está implementando un producto de maxitérminos. En consecuencia, las formas
canónicas de f quedan:
1ª forma canónica → f (A, B,C) = ∑ m(2, 3, 4, 6)
2ª forma canónica → f (A, B,C) = ∏ M(0, 1, 5, 7)
Simplificando las expresiones con K-maps se obtiene:

Forma SOP → f (A, B,C) = A′ B + AC′


Forma POS → f (A, B,C) = (A + B)(A′ +C′ )

Problema 5.5 ★✩✩ ¿Cuáles son las formas canónicas y las versiones simplificadas de la función lógica
f implementada por el circuito de la figura adjunta?

 Solución: Como el decodificador tiene salidas activas a nivel bajo, se trata como un generador de
maxitérminos (con el índice de las salidas empleadas del DEC). La concatenación de puertas AND no
afecta a la función de salida. Esta consiste en el producto de cuatro maxitérminos. De este modo la
función f (A, B,C) se puede expresar en sus formas canónicas como:
1ª forma canónica → f (A, B,C) = ∑ m(1, 3, 5, 7)
2ª forma canónica → f (A, B,C) = ∏ M(0, 2, 4, 6)
Simplificando las expresiones con K-maps se tiene:

Forma SOP/POS → f (A, B,C) = C


Recuerda: si la expresión de una función tiene un único término, esta es la forma SOP y POS
simplificada. ■
76 Capítulo 5. Módulos combinacionales básicos

Problema 5.6 ★★✩ ¿Cuáles son las formas canónicas y las versiones simplificadas de la función lógica
f implementada por el circuito de la figura adjunta?

 Solución: Puesto que el DEC tiene salidas activas a nivel alto, es un generador de minitérminos.
Por tanto, es sencillo obtener los términos canónicos que se obtienen a su salida. Sin embargo, se debe
tener en cuenta que la señal de habilitación depende de B y C, por lo que todos los minitérminos están
multiplicados por la señal de habilitación (B + C′ ). Como la puerta AND conectada a la salida del
DEC, tiene sus entradas negadas, es equivalente a una puerta NOR que produce una suma negada de
minitérminos. En consecuencia, se tiene que:

f (A, B,C) = [(m3 + m4 + m6 )(B +C′ )]′


= (m3 + m4 + m6)′ + B′C
= M3 · M4 · M6 + B′C
= (A + B′ +C′ ) (A′ + B +C) (A′ + B′ +C) +B′C
| {z }| {z }| {z }
011 (3) 100 (4) 110 (6)
= C′ +B′ =C =C
z }| { z }| { z }| {
= (A + B′ + C′ + B′C)(A′ + B + C + B′C)(A′ + B′ + C + B′C)
= (A + B′ +C′ ) (A′ + B +C) (A′ + B′ +C)
| {z }| {z }| {z }
011 (3) 100 (4) 110 (6)

= ∏ M(3, 4, 6)

De este modo las formas canónicas de f (A, B,C) quedan como:


1ª forma canónica → f (A, B,C) = ∑ m(0, 1, 2, 5, 7)
2ª forma canónica → f (A, B,C) = ∏ M(3, 4, 6)
Simplificando las expresiones con K-maps se tiene:

Forma SOP → f (A, B,C) = A′ B′ + A′C′ + AC


Forma POS → f (A, B,C) = (A + B′ +C′ )(A′ +C)
Nota: Ten en cuenta que una forma alternativa de resolución bastante eficaz para funciones de pocas
variables, consiste en obtener directamente la tabla de verdad de la función de salida asignando
valores a las variables de entrada. ■
5.1 Análisis de circuitos con DEC 77

Problema 5.7 ★✩✩ Calcula las formas canónicas y simplificadas de la función lógica f implementada
por el circuito de la figura adjunta.

 Solución: El DEC tiene salidas activas a nivel bajo. Por tanto, es un generador de maxitérminos.
Al aplicar una puerta NAND a la salida, el producto de los maxitérminos está negado, de modo que se
está implementando la función negada a aquella con los maxitérminos indicados:

f (A, B,C) = (∏ M(1, 4, 6))′

Así pues, las formas canónicas quedan:


1ª forma canónica → f (A, B,C) = ∑ m(1, 4, 6)
2ª forma canónica → f (A, B,C) = ∏ M(0, 2, 3, 5, 7)
Simplificando las expresiones con K-maps se tiene:

Forma SOP → f (A, B,C) = A′ B′C + AC′


Forma POS → f (A, B,C) = (A +C)(A + B′ )(A′ +C′ )

Problema 5.8 ★★✩ Analiza el circuito de la figura adjunta y calcula la expresión lógica de la función f
para determinar tanto sus formas canónicas como sus expresiones simplificadas.

 Solución: Puesto que ambos DEC están habilitados y sus salidas son activas a nivel alto, se trata
de generadores de minitérminos para sus variables de entrada. Las puertas AND a la salida multiplican
los minitérminos generados por cada DEC y la puerta OR realiza la suma de miniterminos para A, B,
78 Capítulo 5. Módulos combinacionales básicos

C y D. De este modo, las salidas de las dos puertas AND son:

A′ B′ · |{z}
AND (sup.) → |{z} CD = A′ B′CD
00 (0) 11 (3)

AB′ · |{z}
AND (inf.) → |{z} C′ D = AB′C′ D
10 (2) 01 (1)

′ ′ ′ ′
| B{zCD} + AB
Por tanto, se tiene: f (A, B,C, D) = A | {zC D}
0011 (3) 1001 (9)

En consecuencia, las formas canónicas quedan:


1ª forma canónica → f (A, B,C, D) = ∑ m(3, 9)
2ª forma canónica → f (A, B,C, D) = ∏ M(0, 1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15)
Simplificando las expresiones con K-maps se tiene:

Forma SOP → f (A, B,C, D) = A′ B′CD + AB′C′ D


Forma POS → f (A, B,C, D) = (A +C)DB′ (A′ +C′ )

Problema 5.9 ★★✩ ¿Cuáles son las formas canónicas de la función lógica f implementada por el
circuito de la figura adjunta?

 Solución: Para analizar este circuito se tiene en cuenta que los DEC activan su salida por nivel
alto. Por tanto, son generadores de minitérminos. Componiendo la función de salida se tiene:

f (A, B,C) = (m0 + m1 ) · A′ + ((m0 + m1 ) · A)′


B′C′ BC′ B+C B+C′
z}|{ z}|{
= ( m0 + m1 ) · A′ + M0 · M1 +A′
z}|{ z}|{

= A′ (B′C′ + BC′ ) + (BB + BC′ + BC + ′ ) + A′


CC
= A′ (B′C′ + BC′ ) + B + A′
= A′ + B
5.2 Funciones con DEC 79

Haciendo la expansión de este término se tiene:

A′ + B = (A′ + B +C)(A′ + B +C′ )


| {z }
1001 (4,5)

En consecuencia, las formas canónicas de f (A, B,C) quedan:


1ª forma canónica → f (A, B,C) = ∑ m(0, 1, 2, 3, 6, 7)
2ª forma canónica → f (A, B,C) = ∏ M(4, 5)

5.2 Implementación de funciones con decodificadores


Problema 5.10 ★✩✩ Dada la función:

f (A, B,C) = ∑ m(1, 3, 5, 6, 7)


Se pide:
1.- Determina sus formas canónicas y expresiones simplificadas.
2.- Implementa el circuito con Logisim para las expresiones simplificadas de f mediante cualquier tipo
de puerta lógica de 2 entradas y los inversores necesarios.
3.- Implementa la función f con Logisim empleando un DEC de salidas activas a nivel alto y puertas
de dos entradas.
 Solución: 1.- Formas canónicas y expresiones simplificadas. Como se suministra f como una
suma de minitérminos, se concluye que las formas canónicas son:
1ª forma canónica → f (A, B,C) = ∑ m(1, 3, 5, 6, 7)
2ª forma canónica → f (A, B,C) = ∏ M(0, 2, 4)
Simplificando las expresiones con K-maps se tiene:

Forma SOP → f (A, B,C) = C + AB


Forma POS → f (A, B,C) = (A +C)(B +C)
2.- Implementación con puertas lógicas. Empleando puertas lógicas para implementar las formas
simplificadas con Logisim se tienen los circuitos de la figura siguiente. En ellos se ha empleado el
elemento túnel (tunnel) de la librería Wiring para compartir señales de entrada a los circuitos. Se han
incluido las tablas de verdad, obtenidas mediante análisis con Logisim, que muestran la equivalencia
de los circuitos.
80 Capítulo 5. Módulos combinacionales básicos

3.- Implementación con DEC. Para implementar la función f (A, B,C) con un DEC (con salidas
activas a nivel alto), se tiene en cuenta que este es un generador de minitérminos. Como la 2ª forma
canónica de f es más sencilla, se puede implementar f a partir de sus maxitérminos. La implementación
con maxitérminos exige emplear puertas de tipo NOR, pero como se plantea una restricción de emplear
puertas con solo dos entradas, no es posible encadenar dos puertas NOR, puesto que la operación NOR
no es asociativa. En este caso se pueden seguir dos estrategias. Utilizar la asociación de puertas OR y
negar la salida. O bien, emplear el equivalente con puertas AND:
f (A, B,C) = ∏ M(0, 2, 4) = (m0 + m2 + m4 )′ = ((m0 + m2 ) + m4 )′
f (A, B,C) = (m0 + m2 + m4 )′ = m′0 m′2 m′4 = (m′0 m′2 )m′4
Los circuitos resultantes quedan:

Recuerda: El empleo de túneles en Logisim permite compartir la conexiones a los pines de entrada
simplificando el conexionado de los circuitos. De este modo es posible analizar distintos circuitos y
comprobar su equivalencia mediante la comparación de sus tablas de verdad. ■

Problema 5.11 ★★✩ Dada la función:

f ′ (A, B,C, D) = A′ B′C′ D′ + A′ BC′ D′ + AB′C′ D′ + AB′CD′

Se pide:
1.- Determina las formas canónicas de la función f (A, B,C, D).
2.- Calcula las expresiones simplificadas —SOP y POS— de f .
3.- Implementa f empleando una red de dos niveles compuesta por 2 DEC 3 × 8 y puertas lógicas de
dos entradas.
4.- Implementa f con una red de dos niveles con gestión de habilitación, compuesta por DEC 2 × 4.
5.- Implementa f con una red de dos niveles con gestión de habilitación compuesta por DEC 3 × 8 y
DEC 1 × 2.
6.- Implementa f con una red multinivel compuesta solo por DEC 1 × 2.

 Solución: 1.- Formas canónicas de f (A, B,C, D). Si se analiza la función f ′ proporcionada se
tiene:

f ′ (A, B,C, D) = A′ ′ ′ ′
C D} + |A′ BC
| B{z
′ ′
{z D} + AB
′ ′ ′
| {zC D} + AB ′
| {zCD}′ = ∑ m(0, 4, 8, 10)
0000 (0) 0100 (4) 1000 (8) 1010 (10)

Como f y f ′ intercambian minitérminos y maxitérminos. Para las formas canónicas de f se tiene:


1ª forma canónica → f (A, B,C, D) = ∑ m(1, 2, 3, 5, 6, 7, 9, 11, 12, 13, 14, 15)
2ª forma canónica → f (A, B,C, D) = ∏ M(0, 4, 8, 10)
5.2 Funciones con DEC 81

2.- Expresiones simplificadas de f . Simplificando las expresiones con K-maps se tiene:

Forma SOP → f (A, B,C, D) = D + A′C + AB


Forma POS → f (A, B,C, D) = (A +C + D)(A′ + B + D)
3.- Implementación con dos DEC 3 × 8. Puesto que se debe implementar una función de 4 variables,
los dos DEC 3 × 8 proporcionarán los 16 términos canónicos posibles. Con salidas activas a nivel
alto, los DEC generan productos canónicos. Cada uno de los DEC se habilitará con el valor de la
variable más significativa (A). Cuando A = 0, solo estará habilitado el DEC que genera los 8 productos
canónicos con valores binarios menos significativos. Por el contrario, con A = 1 se habilita únicamente
el DEC que genera los 8 productos canónicos con valores binarios más significativos.
Para conseguir el producto de las 4 sumas canónicas de la 2ª forma canónica de f se puede emplear
una puerta NOR de 4 entradas o la concatenación de puertas OR de dos entradas, con una NOR final
como se muestra en la figura siguiente. Si en el circuito Logisim se separan las entradas a los DEC, se
puede analizar el circuito resultante para comprobar su validez con la tabla de verdad obtenida.

4.- Implementación con red de dos niveles con gestión de habilitación compuesta por DEC 2 × 4.
En este caso se emplea un DEC para generar las señales de habilitación a los DEC de salida. Como el
número de maxitérminos es 4 y el valor binario más alto es 10. No es preciso emplear un DEC 2 × 4
para la generación de los términos canónicos con valores binarios superiores a 10. De este modo el
número de DEC a la salida se reduce a tres, como se muestra en la figura siguiente:
82 Capítulo 5. Módulos combinacionales básicos

5 y 6.- Implementación con redes compuestas por DEC 1 × 2. Estas soluciones siguen una filosofía
similar a las anteriores, adoptando DEC más sencillos.

5.3 Análisis de circuitos con multiplexores


Problema 5.12 ★★✩ Dado el circuito de la figura adjunta, determina las expresiones canónicas de la
función implementada f y sus expresiones simplificadas SOP y POS. Comprueba el resultado con ayuda
de Logisim.

 Solución: En el diagrama del circuito proporcionado se observa que las variables de selección del
MUX están afectadas por un inversor. En este caso se trata de un inversor con una entrada multibit en el
que la salida se obtiene aplicando el operador de inversión bit a bit. Por tanto, en la salida del inversor
se tienen las variables [A′ B′ C′ ]. Esto es, tres variables que son las entradas de selección negadas.
5.3 Circuitos con MUX 83

Comprobando el índice de las entradas del MUX conectadas a 1, se obtiene la expresión de f


expresada respecto a los minitérminos de las variables negadas A∗ = A′ , B∗ = B′ , C∗ = C′ , que son: m3 ,
m6 y m7 . Dichos minitérminos expresados respecto a las variables A, B y C, se obtienen invirtiendo los
códigos de los minitérminos respecto de A∗ , B∗ y C∗ . En consecuencia, se tiene:

m3 (A∗ , B∗ ,C∗ ) → m4 (A, B,C)


| {z } | {z }
011 (3) (011)′ =100 (4)
∗ ∗ ∗
m6 (A , B ,C ) → m1 (A, B,C)
| {z } | {z }
110 (6) (110)′ =001 (1)

m7 (A∗ , B∗ ,C∗ ) → m0 (A, B,C)


| {z } | {z }
111 (7) (111)′ =000 (0)

Por tanto, las expresiones canónicas de f (A, B,C) quedan:

f (A, B,C) = ∑ m(0, 1, 4) = ∏ M(2, 3, 5, 6, 7)

y sus expresiones simplificadas SOP y POS obtenidas mediante K-maps:

Forma SOP: f (A, B) = A′ B′ + B′C′


Forma POS: f (A, B) = B′ (A′ +C′ )
Estos resultados se pueden comprobar con ayuda de Logisim, separando las variables de entrada con
ayuda de un elemento splitter. ■

Problema 5.13 ★★✩ ¿Cuáles son las formas canónicas y las versiones simplificadas de la función lógica
f (A, B,C) implementada por el circuito de la figura adjunta?

 Solución: Para analizar este circuito se puede observar en la figura 5.3 que cada uno de los MUX
implementa una funcion XOR. Por tanto, la composición de los dos MUX proporciona la función:

f (A, B,C) = ((B ⊕C) ⊕ A) = B ⊕C ⊕ A

Es decir, el resultado es equivalente a una puerta XOR de tres entradas. Realizando el desarrollo
algebraico de la función XOR para obtener una forma SOP, se tiene:

f (A, B,C) = (BC′ + B′C)A′ + (BC′ + B′C)′ A = |A′{z


BC}′ + A ′ ′
B C} + AB
| {z
′ ′
| {zC} + ABC
|{z} = ∑ m(1, 2, 4, 7)
010 (2) 001 (1) 100 (4) 111 (7)

De este modo se obtiene que las formas canónicas de f (A, B,C) son:
1ª forma canónica → f (A, B,C) = ∑ m(1, 2, 4, 7)
84 Capítulo 5. Módulos combinacionales básicos

2ª forma canónica → f (A, B,C) = ∏ M(0, 3, 5, 6)


Simplificando las expresiones con K-maps se tiene:

Forma SOP → f (A, B,C) = A′ B′C + A′ BC′ + AB′C′ + ABC


Forma POS → f (A, B,C) = (A + B +C)(A + B′ +C′ )(A′ + B +C′ )A′ + B′ +C
Recuerda: la función XOR no admite simplificación. ■

Problema 5.14 ★★✩ Dado el circuito de la figura adjunta, analiza su propósito obteniendo las expresio-
nes SOP y POS, canónicas y simplificadas, de la función f (A, B,C).

 Solución: El circuito consta de dos MUX 4 × 1 cuya salida se selecciona en ambos mediante las
señales B y C. La señal A actúa como habilitación exclusiva para el MUX de la parte superior (con
A = 0) o el inferior (con A = 1). Por tanto, en su conjunto el circuito opera como un MUX 8 × 1 en el
que las señales de selección son A, B y C. El MUX de la parte superior es el que gestiona las 4 entradas
menos significativas y el inferior las más significativas. Las entradas de los MUX están conectadas a
valores constantes. En el circuito proporcionado en el enunciado, dichos valores se especifican por su
valor constante hexadecimal conectado mediante un splitter:

f → 1111 (MUX superior)


6 → 0110 (MUX inferior)

Observa la diferencia entre la función f y el valor binario constante f expresado en hexadecimal.


La expresión algebraica de f (A, B,C) se puede obtener a partir de la ecuación característica de un
MUX:
f = (B′C′ · 1 + B′C · 1 + BC′ · 1 + BC · 1) · A′ + (
B′C
′ 
· 0 + B′C · 1 + BC′ · 1 + 
BC·
0) · A

′ ′ ′ ′ ′ ′
=A B C} + A
| {z B C} + A
| {z | {zBC}′ + A ′
| {zBC} + AB ′
| {zC} + ABC

| {z }
000 (0) 001 (1) 010 (2) 011 (3) 101 (5) 110 (6)

Por tanto, las formas canónicas de f (A, B,C, D) quedan así:


1ª forma canónica → f (A, B,C) = ∑ m(0, 1, 2, 3, 5, 6)
2ª forma canónica → f (A, B,C) = ∏ M(4, 7)
5.3 Circuitos con MUX 85

Simplificando las expresiones con K-maps se tiene:

Forma SOP → f (A, B,C, D) = A′ + B′C + BC′


Forma POS → f (A, B,C, D) = (A′ + B +C)(A′ + B′ +C′ )

Problema 5.15 ★★✩ Dada la función f (A, B,C, D, E) implementada con el circuito de la figura adjunta,
calcula su expresión lógica y los valores para f (0, 0, 1, 1, 1) y f (1, 1, 0, 0, 1).

 Solución: La expresión de f se puede componer con las funciones de salida de cada MUX. En
los MUX de primer nivel se tiene en cuenta el valor hexadecimal de las constantes conectadas a las
entradas para determinar el valor individual de cada entrada, teniendo en cuenta que:

6 → 0110 (MUX superior)


b → 1011 (MUX inferior)

De este modo la expresión que se obtiene para f es:

A′ 
f = ( B′ 
· 0 + A′ B · 1 + AB′ · 1 +  0) · E ′ + (C′ D′ · 1 +C′ D · 1 + 
AB· ′ 
· 0 +CD · 1) · E
 
CD

=A
| {zBE}′ + |AB{z′ E}′ +C ′ ′
D E} +C
| {z

| {zDE} +CDE
| {z }
01∗∗0 10∗∗0 ∗∗001 ∗∗011 ∗∗111

Realizando la expansión de los productos se obtiene el valor binario de todos los minitérminos de f :

A′ BE ′ → 01∗∗0 ⇒ 01000 (8), 01010 (10), 01100 (12), 01110 (14)


AB′ E ′ → 10∗∗0 ⇒ 10000 (16), 10010 (18), 10100 (20), 10110 (22)
C′ D′ E → ∗∗001 ⇒ 00001 (1), 01001 (9), 10001 (17), 11001 (25)
C′ DE → ∗∗011 ⇒ 00011 (3), 01011 (11), 10011 (19), 11011 (27)
CDE → ∗∗111 ⇒ 00111 (7), 01111 (15), 10111 (23), 11111 (31)
86 Capítulo 5. Módulos combinacionales básicos

Como se piden los valores de la función f para los valores 00111 (7) y 11001 (25) y ambos valores
binarios coinciden con sendos minitérminos, podemos asegurar que:

f (0, 0, 1, 1, 1) = 1, f (1, 1, 0, 0, 1) = 1

Estos valores también se hubieran obtenido mediante sustitución directa de los valores de las variables
de entrada en la expresión algebraica de la función.
Si se realiza el análisis del circuito en Logisim es posible obtener inmediatamente el valor de f
sin más que poner el valor deseado para las variables de entrada. En el caso de funciones de cinco
variables o más, Logisim puede obtener el valor de las expresiones simplificadas SOP y POS de la
función, pero no representar gráficamente los K-maps. Para este circuito se obtiene:
Forma SOP → f (A, B,C, D, E) = C′ E + DE + A′ BE ′ + AB′ E ′
Forma POS → f (A, B,C, D, E) = (A + B + E)(C′ + D + E ′ )(A′ + B′ + E)
Para comprobar la minimización se puede recurrir a la herramienta Karnaugh Map Solver de C. Cole-
man, con la que se obtiene los siguientes K-maps:

Problema 5.16 ★★★ ¿Cuáles son las formas canónicas y las versiones simplificadas de la función lógica
f (A, B,C) implementada por el circuito de la figura adjunta?

 Solución: El DEC tiene sus salidas activas a nivel alto. Por tanto, es un generador de productos
canónicos (minitérminos) de las variables de selección A y B. Aplicando la función de salida del MUX
y la puerta NOR a los minitérminos generados por el DEC, se tiene:
MUX NOR
z }| { z }| {
f (A, B,C) = (A′ B′C′ + A′ BC) + (AB′ + AB)′ = A′ B′C′ + A′ BC + (A′ + B)(A′ + B′ )
= A′ =0
z}|{ z}|{
= A′ B′C′ + A′ BC + A′ A′ +A′ B′ + BA′ +  ′ = 
A′
B′C′ + 
A′  + A′ + A′ ′
B +  A′
B = A′

BB BC

Para transformar la expresión obtenida en una forma canónica, basta con considerar la expansión de
productos canónicos tomando las variables B y C como comodines: 0**. En este caso se obtienen los
códigos 0, 1, 2 y 3. Estos términos corresponden a las primeras cuatro filas de la tabla de verdad que
son aquellas con A = 0. Por tanto, las formas canónicas de f (A, B,C) son:
1ª forma canónica → f (A, B,C) = ∑ m(0, 1, 2, 3)
5.3 Circuitos con MUX 87

2ª forma canónica → f (A, B,C) = ∏ M(4, 5, 6, 7)


En este caso como f estaba expresada con un único término (A′ ), es posible afirmar que dicha expresión
es la más simplificada posible y que tanto las expresiones SOP como POS coinciden.
Recuerda: Cuando una función lógica está compuesta de un único término, esta expresión no puede
minimizarse más y además dicha expresión es tanto forma SOP como POS. También se puede afirmar
que se trata de una expresión canónica. En este ejercicio, aunque pudiera parecer que no se trata de
una expresión canónica, si lo es, ya que la función solo depende de A. ■

Problema 5.17 ★★★ ¿Cuáles son las formas canónicas y las versiones simplificadas de la función lógica
f implementada por el circuito de la figura adjunta?

 Solución: El DEC con salidas activas a nivel alto es un generador de minitérminos de las variables
A y B que son sus entradas. Los minitérminos generados se conectan a la entrada del MUX que obtiene
su salida de multiplicar los minitérminos de sus entradas de selección (A y C) por las entradas de datos
del MUX. Si llamamos g a la salida del MUX, se tiene que: f = g · B. Si obtenemos la expresión
algebraica de la función g:
=0
z }| {
′ ′
A′C
g(A, B,C) = A C · 1 +  ·0 +AC′ · (AB′ ) + AC · (A′ B′ + A′ B)
=0 =0
z }| { z }| {
′ ′ ′ ′ ′
′ ′
= A C + AC AB + 
ACA
 B +
ACA
B
= A′C′ + AB′C′

Como f = g · B, se tiene:
=g
z }| {
f (A, B,C) = B · (A′C′ + AB′C′ )
=0
z }| {
= BA′C′ + 
BAB
′ ′
C

=A
| {zBC}′ = m2
010 (2)

Por tanto, las formas canónicas de f (A, B,C) quedan así:


1ª forma canónica → f (A, B,C) = m2
2ª forma canónica → f (A, B,C) = ∏ M(0, 1, 3, 4, 5, 6, 7)
Como la 1ª forma canónica tiene sólo un minitérmino, no se puede minimizar más y se puede tratar
como una forma SOP (un único producto) o una POS (producto de tres sumas de un único término).
Esto es, las formas SOP y POS simplificadas de f coinciden. ■
88 Capítulo 5. Módulos combinacionales básicos

Problema 5.18 ★★★ ¿Cuáles son las formas canónicas y las versiones simplificadas de la función lógica
f implementada por el circuito de la figura adjunta?

 Solución: Si llamamos g a la función de salida generada por el MUX, su expresión algebraica será:

=0
z }| {
′ ′ ′′ ′
g(A, B,C, D) = (C ) D · A + 
(C) D · 0 +(C′ )D′ · B + (C′ )D · 1


= ACD′ + BC′ D′ +C′ D

Como el DEC con salidas activas a nivel bajo es un generador de maxitérminos la expresión de f es:

f = (g + (g + D′ ))′
= (g + g + D′ )′
= (g + D′ )′
= g′ · D

Sustituyendo en esta expresión el valor de g(A, B,C, D) obtenido anteriormente, se tiene:

=g′
z }| {
f = (ACD′ + BC′ D′ +C′ D)′ ·D
′ ((
+C′ +
(D)(B′ +C ′
← (T.6′ )
( 
(A(
=(  + D)(C + D )D

= (C + D′ )D
= CD

Cuando una función tiene solo un término producto o suma entonces la expresión SOP y POS
minimizadas son idénticas al término dado. Si el término es un producto se debe tratar como una forma
SOP y si es una suma como una POS, pues de este modo es más sencilla su expansión a forma canónica.
Aunque se podría considerar una forma canónica tomando la función dependiente de dos variables (C
y D), este no es el caso si se considera como una función dependiente de las cuatro variables dadas (A,
B, C y D).
Haciendo la expansión de minitérminos del término CD, se tiene:

CD → ∗∗11 ⇒ 0011 (3), 0111 (7), 1011 (11), 1111 (15)

Por tanto, las formas canónicas de f (A, B,C, D) resultantes son:


1ª forma canónica → f (A, B,C, D) = ∑ m(3, 7, 11, 15)
2ª forma canónica → f (A, B,C, D) = ∏ M(0, 1, 2, 4, 5, 6, 8, 9, 10, 12, 13, 14)
No es preciso minimizar, puesto que la expresión de partida solo tiene un término. En consecuencia, la
expresión SOP y POS mínimas coinciden: f = CD ■
5.3 Circuitos con MUX 89

Problema 5.19 ★★✩ ¿Cuáles son las formas canónicas y las versiones simplificadas de la función lógica
f (A, B,C, D) implementada por el circuito de la figura adjunta?

 Solución: La función f es la suma lógica de la salida del MUX y el producto canónico 3 generado
por el DEC. En este caso la función de salida del MUX está afectada por la señal de enable consistente
en el producto canónico 2 generado por el DEC. De este modo para la expresión de f se tiene:

DEC(m3 ) MUX DEC(En)


z}|{ z }| { z}|{
f (A, B,C, D) = AB + (C′ D′ · 1 +C′ D · 1 +  ′ 
· 0 + 0) · AB′
·

CD CD
= AB + (C′ D′ +C′ D) · AB′
′ ′ ′ ′ ′
= AB + AB
| {zC D} + AB C D}
| {z
1000 (8) 1001 (9)

Expandiendo el término AB en productos canónicos se tiene:

AB → 11∗∗ ⇒ 1100 (12), 1101 (13), 1110 (14), 1111 (15)

Por tanto, las formas canónicas de f (A, B,C, D) quedan como se indica a continuación:
1ª forma canónica → f (A, B,C, D) = ∑ m(8, 9, 12, 13, 14, 15)
2ª forma canónica → f (A, B,C, D) = ∏ M(0, 1, 2, 3, 4, 5, 6, 7, 10, 11)
Simplificando las expresiones con K-maps se tiene:

Forma SOP → f (A, B,C, D) = AC′ + AB


Forma POS → f (A, B,C, D) = A(B +C′ )


90 Capítulo 5. Módulos combinacionales básicos

5.4 Implementación de funciones con multiplexores

Problema 5.20 ★✩✩ Expresa con MUX 2 × 1 las funciones básicas implementadas por las puertas
lógicas de dos entradas: AB, A + B, (AB)′ , (A + B)′ , A ⊕ B, A ⊙ B:

 Solución: Para resolver este ejercicio un método rápido consiste en expresar cada una de las
funciones lógicas implementadas con puertas lógicas, en su expansión de Shannon para elegir la
variable de selección en el MUX. La expresión para f (A, B) según el teorema de Shannon queda:

f (A, B) = A′ · f (0, B) + A · f (1, B)

Donde A se toma como la variable de selección del MUX 2 × 1. Los valores f (0, B) y f (1, B) son los
que se deben conectar respectivamente a la entrada 0 y 1 del MUX. Expresando las funciones básicas
implementadas mediante puertas lógicas en la forma que se ha indicado se tiene:

Puerta AND → AB = A′ · 0 + A · B
Puerta OR → A + B = A′ · B + A · 1
Puerta NAND → (AB)′ = A′ + B′ = A′ · 1 + A · B′
Puerta NOR → (A + B)′ = A′ B′ = A′ · B′ + A · 0
Puerta XOR → A ⊕ B = A′ · B + A · B′
Puerta XNOR → A ⊙ B = A′ · B′ + A · B

Empleando el MUX 2 × 1 para implementar cada una de las expresiones anteriores se obtiene:


5.4 Funciones con MUX 91

Problema 5.21 ★★✩ Implementa, con MUX 2 × 1 y MUX 4 × 1, alternativas del circuito equivalente a
una puerta AND de tres entradas.

 Solución: Teniendo en cuenta las funciones de salida de un MUX, la puerta AND de tres entradas
se puede obtener mediante composición:

Problema 5.22 ★★★ Implementa la función f (A, B,C) = A′ B′ + (B ⊕ C)′ mediante multiplexor(es)
empleando como señales de selección A o B.

 Solución: Para obtener la expresión algebraica de f , se desarrolla la expresión proporcionada,


sabiendo que (B ⊕C)′ = BC + B′C′ . Así se obtiene que:

A′ B′ + |{z}
f (A, B,C) = |{z} B′C′
BC + |{z}
0001 (0,1) 0 11 (3,7)
1
0 00 (0,4)
1 

Por tanto, las formas canónicas de f (A, B,C) quedan así:


1ª forma canónica → f (A, B,C) = ∑ m(0, 1, 3, 4, 7)
2ª forma canónica → f (A, B,C) = ∏ M(2, 5, 6)
Simplificando las expresiones con K-maps se tiene:

Forma SOP → f (A, B,C) = A′ B′ + B′C′ + BC


Forma POS → f (A, B,C) = (B′ +C)(A′ + B +C′ )
Se observa que la forma SOP original y la simplificada coinciden. Si dicha expresión se factoriza
tomando B′ como factor común entre el primer y segundo sumando, para aplicar seguidamente las
leyes de De Morgan, se obtiene:
≡(AC)′
z }| {
f = (A′ +C′ ) B′ +CB = (AC)′ B′ +CB

Esta expresión final se puede reescribir para observar su similitud con la obtenida mediante expansión
de Shannon:
f (A, B,C) = B′ · f (A, 0,C) + B · f (A, 1,C)
= B′ · (AC)′ + B ·C

Esta expresión ofrece un modo inmediato de implementación de f mediante un MUX 2 × 1 en el que


B se emplea como señal de selección y sus entradas se conectan con los valores establecidos en la
expresión anterior:
92 Capítulo 5. Módulos combinacionales básicos

Un modo alternativo de implementación también muy rápido, consiste en la inspección de la tabla


de verdad de la función, considerando la variable más significativa (A) como señal de selección del
MUX. En ese caso, directamente se puede obtener los valores de f (0, B,C) y f (1, B,C). En el primer
caso, se tiene una subtabla con un único maxitérmino (B′ +C) y para el segundo se tiene (B ⊕C)′ (ver
tabla adjunta).
A BC f
0 00 1
0 01 1
0 10 0 → (B′ +C)
0 11 1
1 00 1
1 01 0
1 10 0 → (B ⊕C)′
1 11 1
Sin embargo, la implementación es más compleja que la obtenida cuando se emplea B como señal de
selección del MUX, ya que en aquella solo se requería una puerta NAND, frente a una puerta OR, un
inversor y una puerta XNOR (ver figura siguiente):

Si se desea emplear un MUX 4 × 1, se deben elegir dos variables como señales de selección del
MUX. Si se eligen las variables más significativas de la tabla de verdad resultan 4 subtablas para
obtener los valores deseados en la expansión de Shannon de la función:

f (A, B,C) = A′ B′ · f (0, 0,C) + A′ B · f (0, 1,C) + AB′ · f (1, 0,C) + AB · f (1, 1,C)

AB C f
00 0 1
00 1 1 →1
01 0 0
01 1 1 →C
10 0 1
10 1 0 → C′
11 0 0
11 1 1 →C
El circuito resultante quedaría:
5.4 Funciones con MUX 93

Los valores obtenidos por inspección directa de la tabla de verdad son los mismos que se pueden
obtener por sustitución en cualquiera de las expresiones de f . En este caso, se recomienda el empleo
de la expresión más sencilla (p. ej., la forma POS).
Teniendo en cuenta que los multiplexores pueden implementar cualquiera de las funciones lógicas
obtenidas con puertas lógicas (ver figura 5.4), se puede plantear la implementación de f con multi-
plexores e inversores, exclusivamente. Esto es, sin puertas lógicas, por concatenación de funciones
lógicas elementales obtenidas con MUX. Con esta metodología, en el primer circuito obtenido para f
se sustituye la puerta NAND para obtener el circuito de la figura siguiente (dcha.):



Problema 5.23 ★★✩ Implementa la función f (A, B,C, D) = ∑ m(1, 5, 9, 10, 11, 13) mediante MUX de
distintos tipos:
1.- MUX 8 × 1.
2.- MUX 4 × 1.
3.- MUX 2 × 1. Encuentra la implementación más sencilla e intenta llevarla a cabo mediante concate-
nación de MUX 2 × 1.
4.- Mediante redes de MUX de distinto tipo.

 Solución: Puesto que se parte de una forma canónica de f , es inmediato obtener sus expresiones
simplificadas empleando K-maps. De este modo resulta:

Forma SOP → f (A, B,C, D) = C′ D + AB′C


Forma POS → f (A, B,C, D) = (C + D)(A +C′ )(B′ +C′ )
1.- Empleando MUX 8 × 1. Para la implementación con un MUX 8 × 1 se precisan tres variables de
selección en el MUX. Si se eligen las variables más significativas (A, B y C) se obtienen 8 subtablas
en la tabla de verdad, que se corresponden con valores constantes de las variables de selección
mencionadas.
En cada subtabla es inmediato obtener el valor de f como una función de la variable libre D como
se muestra en la figura siguiente, junto al circuito equivalente:
94 Capítulo 5. Módulos combinacionales básicos

Estos valores también se pueden obtener sustituyendo los valores de A, B y C en cualquiera de las
expresiones equivalentes de la función f . Por ejemplo en la expresión simplificada SOP, que es la más
sencilla de evaluar.
Cuando queda una única variable libre, no es necesario plantear la elección de otras tres variables
de selección, porque todas las elecciones conducen a circuitos de complejidad análoga. La función
dependiente de la variable libre solo puede adoptar 4 valores distintos: 0, 1, la variable libre y esta
misma negada.
2.- Empleando MUX 4 × 1. Para la implementación con un MUX 4 × 1 se precisan dos variables de
selección en el MUX, con otras dos variables como libres. Si se escogen las variables más significativas
(A y B) como variables de selección, la inspección visual de las cuatro subtablas en que se divide la
tabla de verdad permite determinar con rapidez el valor de la función dependiente de las variables
libres. La figura siguiente ilustra este resultado junto al circuito resultante:

En este caso se plantea la posibilidad de que una elección acertada de las variables de selección del
MUX de lugar a una implementación más simple. Si se observa la expresión SOP simplificada de f ,
5.4 Funciones con MUX 95

se tiene que una de las dos variables debe ser C por afectar a los dos términos de la expresión SOP.
Por tanto, siempre quedará un único término que será: D (si C = 0) o AB′ (si C = 1). La otra variable
a elegir debe ser una de las que permita simplificar el término más complejo de los anteriores (AB′ ).
Parece que en este caso lo más conveniente es elegir B, pues de este modo se evita la utilización del
inversor. Como la aplicación de la expansión de Shannon a f (A, B,C, D) respecto de B y C es:

f (A, B,C, D) = B′C′ · f (A, 0, 0, D) + B′C · f (A, 0, 1, D) + BC′ · f (A, 1, 0, D) + BC · f (A, 1, 1, D)

Debemos calcular los valores de f fijando los valores de B y C, para obtener los valores conectados a
la entrada del MUX. Dichos valores son:
f (A, 0, 0, D) = D
f (A, 0, 1, D) = A
f (A, 1, 0, D) = D
f (A, 1, 1, D) = 0

Puesto que no se precisan puertas lógicas auxiliares, el circuito resultante es más sencillo al obtenido
anteriormente:

3.- Empleando MUX 2 × 1. Para la implementación con un MUX 2 × 1 se debe elegir una única
variable de selección. Si se elige la variable A y se inspecciona la tabla de verdad se obtiene:

Observando la expresión SOP simplificada de f , vemos que ofrece directamente los valores de su
expansión de Shannon respecto de C:

f (A, B,C, D) = C′ · D +C · AB′


96 Capítulo 5. Módulos combinacionales básicos

Por tanto, escogiendo C como variable de selección del MUX 2 × 1, se obtiene un circuito más simple
que incluso admite una implementación solo con dos MUX 2 × 1 mediante su concatenación:


4.- Empleando redes de MUX. Mediante el empleo de redes de MUX se implementa la funcionalidad
de un MUX 16 × 1 en el que las entradas se ajustan a valores constantes iguales a los ofrecidos en la
tabla de verdad:


5.4 Funciones con MUX 97

Problema 5.24 ★★✩ Implementa la función f (A, B,C, D) = ∑ m(0, 1, 6, 8, 9, 12, 13, 14) del modo más
simple posible mediante MUX 4 × 1 y después con MUX 2 × 1. En este último caso sugiere una
implementación que solo emplee MUX, excluyendo puertas lógicas e inversores.

 Solución: A partir de la expresión de minitérminos de la función f es posible generar su tabla de


verdad y el K-map para simplificarla en su forma SOP. De este modo se obtiene:

f = B′C′ + BCD′ + AC′

Observando la expresión SOP simplificada se deduce que la expansión de Shannon de f respecto de


B y C ofrecerá un resultado muy simplificado, ya que dichas variables «cubren» los términos de la
expresión. La expansión de Shannon de f respecto de B y C quedaría:

f = B′C′ · f (A, 0, 0, D) + B′C · f (A, 0, 1, D) + BC′ · f (A, 1, 0, D) + BC · f (A, 1, 1, D)

Sustituyendo los valores de B y C en la expresión SOP simplificada de f obtenida anteriormente, se


obtiene:
f (A, 0, 0, D) = 1
f (A, 0, 1, D) = 0
f (A, 1, 0, D) = A
f (A, 1, 1, D) = D′

La implementación con MUX 4 × 1 y B, C como variables de selección resulta:

Para la implementación con MUX 2 × 1 se puede factorizar la expresión SOP simplificada de f de


modo que sea análoga a la expansión de Shannon respecto de C. Por tanto, f se puede expresar como:

f = B′C′ + BCD′ + AC′ = C′ · (A + B′ ) +C · BD′


98 Capítulo 5. Módulos combinacionales básicos

De este modo, el circuito resultante es:

Si se desea una implementación empleando solo MUX 2 × 1, se puede usar la composición de


funciones teniendo en cuenta cómo se implementan las puertas lógicas elementales con MUX. En
este caso concreto, una elección apropiada de las variables de selección de los MUX permite evitar la
necesidad de inversores:

Problema 5.25 ★✩✩ Indica cuáles son las expresiones canónicas de la función f (A, B,C, D) implemen-
tada por el circuito lógico de la figura adjunta. Encuentra las expresiones simplificadas de f y sugiere una
implementación basada en MUX 4 × 1 y otra en MUX 2 × 1.

 Solución: Para obtener la expresión algebraica de f se recurre a la ecuación de salida característica


del MUX (ver ecuación 5.1). En ella cada producto canónico de las variables de selección está
multiplicado por la entrada correspondiente al valor binario del producto canónico examinado. Además,
todos los términos de la ecuación están multiplicados por el valor de la señal de habilitación (enable).
Desarrollando la expresión para obtener todos los términos canónicos se obtiene:

f = A′ B′C′ · D + A′ B′C · 1 + A′ BC′ · D + A′ BC · 1 + AB′C′ · D + AB′C · 1 + ABC′ · D + ABC · D


= |A′ B{z
′ ′
C D} + A ′ ′
B C} + |A′ BC
| {z

{z D} + A

| {zBC} + AB ′ ′
| {zC D} + AB ′
| {zC} + ABC

| {z D} + ABCD
| {z }
0001 (1) 00101 (2,3) 0101 (5) 01101 (6,7) 1001 (9) 10101 (10,11) 1101 (13) 1111 (15)

Por tanto, las formas canónicas de f quedan así:


1ª forma canónica → f (A, B,C, D) = ∑ m(1, 2, 3, 5, 6, 7, 9, 10, 11, 13, 15)
2ª forma canónica → f (A, B,C, D) = ∏ M(0, 4, 8, 12, 14)
5.4 Funciones con MUX 99

Simplificando las expresiones con K-maps se obtiene:

Forma SOP → f (A, B,C, D) = D + A′C + B′C


Forma POS → f (A, B,C, D) = (C + D)(A′ + B′ + D)
Para hacer una implementación con MUX 4 × 1 se deben elegir dos variables de selección. Si se eligen
A y B como variables de selección del MUX y se tiene en cuenta la expresión de f ofrecida por el
teorema de expansión de Shannon respecto de estas dos variables, resulta:

f (A, B,C, D) = A′ B′ · f (0, 0,C, D) + A′ B · f (0, 1,C, D) + AB′ · f (1, 0,C, D) + AB · f (1, 1,C, D)

Los valores que multiplican a cada producto canónico de A y B son los que se conectan a cada entrada
del MUX con el valor binario del producto canónico correspondiente. Para obtener dichos valores se
evalúa la forma SOP minimizada de f para los valores de A y B asociados a cada producto canónico.
De este modo se obtienen los valores:
f (0, 0,C, D) = C + D
f (0, 1,C, D) = C + D
f (1, 0,C, D) = C + D
f (1, 1,C, D) = D

Estos valores se pueden conseguir también por inspección directa de cada unas de las cuatro subtablas
en que se divide la tabla de verdad de f , cuando se consideran A y B fijadas. El circuito resultante se
muestra en la figura siguiente:

Para la implementación de f con MUX 2 × 1, se debe elegir una variable de selección para el
MUX. En este caso, al inspeccionar la forma SOP simplificada de f se observa que C es una variable
candidata, porque al dar valores C = 0 y C = 1, produce expresiones sencillas de f . Recuerda que se
buscan los valores que aparecen en la expansión de Shannon para f respecto a C:

f (A, B,C, D) = C′ · f (A, B, 0, D) +C · f (A, B, 1, D)

Sustituyendo en la expresión de f , resultan los valores:

f (A, B, 0, D) = D
f (A, B, 1, D) = D + A′ + B′
100 Capítulo 5. Módulos combinacionales básicos

De este modo el circuito final obtenido es:

Problema 5.26 ★✩✩ Analiza cuál es la función f (A, B,C) implementada por el circuito de la figura
adjunta. Elabora una implementación de dicha función con un MUX 2 × 1.

 Solución: Teniendo en cuenta la expresión de la función de salida del MUX y que sus variables de
selección son A y B, se tiene que:

f (A, B,C) = A′ B′ ·C + A′ B · 1 + AB′ ·C′ +  0 = A′ B′C + A′ B + AB′C′


AB·

Esta expresión se puede factorizar de modo que el resultado quede como una posible expansión de
Shannon respecto de A o B:
1.- f (A, B,C) = A′ · (B′C + B) + A · B′C′ = A′ · (B +C) + A · B′C′
2.- f (A, B,C) = B′ · (A′C + AC′ ) + B · A′ = B′ · (A ⊕C) + B · A′
Las dos expresiones obtenidas sugieren implementaciones alternativas con un MUX 2 × 1. En los
circuitos resultantes se emplean A y B como señal de selección, respectivamente:

Problema 5.27 ★✩✩ Implementa la función f (A, B,C) = ∑ m(0, 1, 3, 4, 7) con un MUX 8 × 1 y de
modo alternativo con redes multinivel con varios MUX de orden inferior.
 Solución: Para la implementación de f (A, B,C) con un MUX 8 × 1, se conectan las entradas
de datos del MUX a constantes con valor 0 y 1, coincidiendo con el índice de los maxitérminos y
minitérminos de f . El circuito correspondiente queda como muestra la figura siguiente:
5.4 Funciones con MUX 101

Observa que en el circuito anterior se emplean constantes multibit (4 bits) con su valor correspon-
diente expresado en hexadecimal, con el bit más significativo en la parte superior. No confundas la
ponderación de los bits de las constantes con el índice de las entradas de datos del MUX.
Las redes multinivel de multiplexores descomponen el MUX 8 × 1 en todas las posibles combina-
ciones de MUX de orden inferior según se muestra en los circuitos de la figura siguiente:

Como se muestra en las figuras anteriores, si los circuitos se elaboran en Logisim mediante
empleo de túneles, es muy sencillo comprobar la equivalencia de los circuitos alternativos mediante la
herramienta de análisis combinacional. Recuerda que los circuitos equivalentes deben poseer tablas de
verdad coincidentes para todos los valores de las variables de entrada. ■

Problema 5.28 ★★✩ Dada la función f (A, B,C, D) implementada por el circuito de la figura adjunta:

Se pide:
1.- Determina las formas canónicas de la función f (A, B,C, D).
2.- Calcula las expresiones simplificadas de f .
3.- Implementa f con un único MUX 4 × 1 en el que se utilicen A y C como señales de selección.
4.- Implementa f con un MUX 2 × 1 en el que B sea la señal de selección.

 Solución: 1.- Formas canónicas. Para calcular la expresión algebraica de f tenemos en cuenta la
ecuación de salida de un MUX. Esto es, la suma de los productos canónicos de las entradas de selección,
donde cada producto canónico está multiplicado por la señal conectada a la entrada correspondiente
decodificada por la señal de selección. El MUX superior solo genera un producto canónico porque
el resto de entradas están conectadas a 0. Por el contrario, el MUX inferior tiene una única entrada
conectada a 0 y se puede considerar generador de un único maxitérmino. De este modo se obtiene:
102 Capítulo 5. Módulos combinacionales básicos

CD′
Salida MUX superior (minitérmino) → |{z}
10 (2)

Salida MUX inferior (maxitérmino) → C′ + D


| {z }
10 (2)

Para obtener f componemos las salidas de los MUX de primer nivel con el MUX de salida. Además,
si expandimos los términos no canónicos se obtiene:

f (A, B,C, D) = A′ B′ ·C + A′ B ·C + AB′ ·CD′ + AB · (C′ + D)


′ ′ ′ ′
= A B C} + A
| {z | {zBC} + AB
| {zCD}′ + ABC ′
| {z } + ABD
|{z}
00101 (2,3) 01101 (6,7) 1010 (10) 11001 (12,13) 1101 1 (
13,15)

Por tanto, las formas canónicas de f resultantes son:


1ª forma canónica → f (A, B,C, D) = ∑ m(2, 3, 6, 7, 10, 12, 13, 15)
2ª forma canónica → f (A, B,C, D) = ∏ M(0, 1, 4, 5, 8, 9, 11, 14)
2.- Expresiones simplificadas. Simplificando mediante K-maps las expresiones canónicas obtenidas
en el apartado anterior se obtienen las formas simplificadas SOP y POS de f :

Forma SOP → f (A, B,C, D) = A′C + B′CD′ + ABC′ + ABD


Forma POS → f (A, B,C, D) = (A +C)(B +C)(A′ + B + D′ )(A′ + B′ +C′ + D)
3.- Implementación con MUX 4 × 1. Si se realiza la expansión de Shannon de f respecto de A y C se
tiene que:

f (A, B,C, D) = A′C′ · f (0, B, 0, D) + A′C · f (0, B, 1, D) + AC′ · f (1, B, 0, D) + AC · f (1, B, 1, D)

Utilizando la expresión SOP simplificada de f se puede evaluar su valor fijando los valores deseados
de A y C. Así se obtienen los valores:

f (0, B, 0, D) = 0
f (0, B, 1, D) = 1
f (1, B, 0, D) = B
f (1, B, 1, D) = B′ D′ + BD = (B ⊕ D)′

Por tanto, el circuito resultante empleando un MUX 4 × 1 con A y C como señales de selección queda:
5.4 Funciones con MUX 103

Puesto que A y C no son las variables más significativas de la tabla de verdad de f , la obtención
del MUX 4 × 1 mediante inspección directa debe ser cuidadosa, pues exige una reordenación de la
tabla. Dicha reordenación es sencilla mediante la herramienta de análisis de Logisim, ya que permite
alterar el orden de las variables, de un modo sencillo. En la figura siguiente se muestra como tras la
reordenación de la tabla, la inspección visual proporciona los valores deseados de f fijados los valores
de A y C:


4.- Implementación con MUX 2 × 1. En este caso, realizando la expansión de Shannon respecto de B,
se obtiene la expresión:

f = B′ · f (A, 0,C, D) + B · f (A, 1,C, D)

Utilizando la forma SOP simplificada de f se obtienen los valores:

f (A, 0,C, D) = A′C +CD′ = C(A′ + D′ ) = C(AD)′


f (A, 1,C, D) = A′C + AC′ + AD = (A ⊕C) + AD

El circuito resultante queda:


104 Capítulo 5. Módulos combinacionales básicos

Problema 5.29 ★★✩ Dada la función f (A, B,C, D) implementada por el circuito de la figura adjunta:

Se pide:
1.- Determina las formas canónicas de f (A, B,C, D).
2.- Calcula las expresiones simplificadas de f .
3.- Implementa el mismo circuito con una red de MUX 4 × 1 en la que se elimine el DEC y la puerta
OR a la salida.
4.- Elabora una implementación alternativa con un MUX 4 × 1 y las puertas lógicas auxiliares necesa-
rias.
5.- Sugiere una implementación alternativa empleando solo MUX 2 × 1 e inversores.

 Solución: 1.- Formas canónicas. Para obtener la expresión de f se tiene en cuenta que el DEC
genera la señal de habilitación para cada uno de los MUX. Por tanto, el producto canónico de A y B
generado por el DEC, multiplica a cada una de las funciones generadas por cada MUX. Al final, la
puerta OR suma todos los términos. Dicho de otro modo, los minitérminos de f (A, B,C, D) se obtienen
por concatenación de los minitérminos de A y B —generados por el DEC— con los minitérminos de C
y D, generados por los MUX.
La tabla siguiente resume la obtención de minitérminos de f por concatenación de los obtenidos
en el DEC (A, B) y en los MUX (C, D):
DEC MUX minitérminos
A, B C, D f (A, B,C, D)
00 00, 01, 11 0, 1, 3
01 00, 01 4, 5
10 11 11
11 00, 10 12, 14
Por tanto, las formas canónicas de f (A, B,C, D) resultantes son:
1ª forma canónica → f (A, B,C, D) = ∑ m(0, 1, 3, 4, 5, 11, 12, 14)
2ª forma canónica → f (A, B,C, D) = ∏ M(2, 6, 7, 8, 9, 10, 13, 15)
5.4 Funciones con MUX 105

2.- Expresiones simplificadas. Simplificando mediante K-maps las formas canónicas de f obtenidas
en el apartado anterior se obtiene:

Forma SOP → f = A′C′ + B′CD + ABD′


Forma POS → f = (A +C′ + D)(A + B′ +C′ )(A′ + B +C)(A′ + B + D)(A′ + B′ + D′ )
3.- Implementación con red de MUX 4 × 1. Se emplea una red de MUX en dos niveles. En el nivel de
salida se ubica un MUX con entradas de selección A y B, que sustituye a la puerta OR redireccionando
hacia la salida los valores obtenidos por los MUX del nivel de entrada. El circuito resultante es:

4.- Implementación con MUX 4 × 1 y puertas lógicas. Como variables de selección del MUX se
escogen A y B. Mediante inspección de la tabla de verdad se obtiene el valor de f dependiente de C y
D para todas las combinaciones posibles de A y B. De este modo resulta:


106 Capítulo 5. Módulos combinacionales básicos

5.- Implementación con MUX 2 × 1 e inversores. En este caso partimos de la expresión SOP
simplificada de f para elegir la variable de selección del MUX. La elección de dicha variable debe
estar guiada por la obtención de la simplificación máxima. Las variables candidatas serían B y D, por
estar presentes en los términos más complejos. Si elegimos D, la expansión de Shannon queda:

f (A, B,C, D) = D′ · f (A, B,C, 0) + D · f (A, B,C, 1)

Sustituyendo en la expresión SOP de f se obtienen los valores:

f (A, B,C, 0) = A′C′ + AB = A′ ·C′ + A · B


f (A, B,C, 1) = A′C′ + B′C = C′ · A′ +C · B′

Como las expresiones obtenidas se pueden factorizar para expresarlas a su vez con sendos MUX 2 × 1,
el circuito final que se obtiene es:

5.5 Análisis de circuitos con codificadores y demultiplexores


Problema 5.30 ★★✩ Implementa un circuito de prioridad de 4 bits con salidas activas a nivel alto.

 Solución: Un circuito de prioridad de 4 bits, posee 4 entradas y 4 salidas, de modo que el orden de
la salida activa coincide con el de la entrada activa de mayor orden. El circuito lógico se puede obtener
a partir de la tabla de verdad del mismo calculando las expresiones simplificadas de las funciones de
salida. Dichas expresiones se obtienen mediante K-maps como se indica a continuación:
5.5 Circuitos con COD y DEMUX 107

a3 = A3 ; a2 = A′3 · A2 ; a1 = A′3 · A′2 · A1 ; a0 = A′3 · A′2 · A′1 · A0

Las expresiones simplificadas obtenidas son idénticas tanto en su forma SOP como POS, ya que son
expresiones de un único término.
Observa que para un circuito con un número mayor de bits, no es preciso partir de su tabla de
verdad, ya que es posible escribir directamente las expresiones lógicas del circuito de prioridad. En la
función de activación de cada salida, la entrada del mismo orden está activa y las de mayor orden están
desactivadas (aparecen negadas en el producto). ■

Problema 5.31 ★★✩ Analiza el circuito de la figura adjunta describiendo su funcionamiento. En este
circuito Ei representa la señal enable input que habilita la salida del COD, ya que si Ei = 0, la salida del
COD es 0.

 Solución: Observa que en este ejercicio la ponderación de las entradas en el DEC es CBA con
C como variable más significativa. El circuito está compuesto por un decodificador seguido de un
codificador con prioridad. El COD 8 × 3 solo está habilitado cuando el DEC activa su salida 0. En
cualquier otro caso, la salida del COD es 0. Cuando el DEC activa su salida 0, la entrada activa para el
COD es la 2, puesto que la salida 0 del DEC conecta con la entrada 2 del COD. Por tanto, la salida del
COD será 010 y en cualquier otro caso es 000, ya que estaría deshabilitado. Cuando C = 0, el DEC
tendría todas sus salidas a 0. Si C = 1, las salidas que pueden estar activas del DEC son la 4, 5, 6 y 7,
pero en ningún caso la 0. En consecuencia, el COD siempre produce la salida 000:
C B A Dec.
1 0 0 4
1 0 1 5
1 1 0 6
1 1 1 7

Problema 5.32 ★★✩ Analiza el circuito de la figura adjunta y calcula la tabla de verdad para sus tres
funciones de salida f , g, h. Expresa dichas funciones en sus formas canónicas y simplificadas.
108 Capítulo 5. Módulos combinacionales básicos

 Solución: Este circuito implementa un conversor de código mediante la concatenación de DEC y


COD. La conversión de códigos es directa, ya que está proporcionada por la relación entre los índices
de las salidas del DEC con el correspondiente a las entradas del COD a que se conectan. De este modo
se obtiene la tabla de verdad, teniendo en cuenta que las variables más significativas a la entrada y la
salida son C y h, respectivamente (observa los índices en el elemento splitter de conexión).
C B A h g f
(0) 0 0 0 (0) 0 0 0
(1) 0 0 1 (2) 0 1 0
(2) 0 1 0 (7) 1 1 1
(3) 0 1 1 (1) 0 0 1
(4) 1 0 0 (3) 0 1 1
(5) 1 0 1 (5) 1 0 1
(6) 1 1 0 (6) 1 1 0
(7) 1 1 1 (4) 1 0 0
A partir de la tabla de verdad anterior se obtienen las formas canónicas de las funciones h, g y f :

h(C, B, A) = ∑ m(2, 5, 6, 7) = ∏ M(0, 1, 3, 4)


g(C, B, A) = ∑ m(1, 2, 4, 6) = ∏ M(0, 3, 5, 7)
f (C, B, A) = ∑ m(2, 3, 4, 5) = ∏ M(0, 1, 6, 7)

Mediante los K-maps de cada una de estas funciones, es posible obtener sus expresiones simplificadas
SOP y POS:

h(C, B, A) = BA′ +CA = (B + A)(C + A′ )


g(C, B, A) = C′ B′ A + BA′ +CA′ = (C + B + A)(B′ + A′ )(C′ + A′ )

f (C, B, A) = C′ B +CB′ = (C + B)(C′ + B′ )


5.5 Circuitos con COD y DEMUX 109

Problema 5.33 ★★✩ Determina las formas canónicas y simplificadas de la función f (A, B,C), dada por
el circuito constituido por el DEMUX 1 × 4 de la figura adjunta. Realiza también la implementación de f
empleando puertas lógicas elementales.

 Solución: Para obtener la expresión de f debes recordar que un DEMUX tiene un comportamiento
similar a un decodificador. El DEMUX obtiene en la salida, seleccionada por las entradas de selección
(B y C), el valor de la entrada de datos (A). Un DEMUX con salidas activas a nivel alto, es un generador
de minitérminos de sus entradas de selección multiplicadas por la entrada de datos. En este caso la
salida es la suma de los minitérminos 0 (B′C′ ) y 3 (BC), multiplicada por la entrada de datos (A).
De este modo se tiene la expresión:

f (A, B,C) = (B′C′ + BC)A = AB ′ ′


| {zC} + ABC
|{z}
100 (4) 111 (7)

Por tanto, las formas canónicas de f (A, B,C) quedan como:


1ª forma canónica → f (A, B,C) = ∑ m(4, 7)
2ª forma canónica → f (A, B,C) = ∏ M(0, 1, 2, 3, 5, 6)
Simplificando mediante K-maps, las expresiones canónicas obtenidas en el apartado anterior, el
resultado que se obtiene es:

Forma SOP → f = AB′C′ + ABC


Forma POS → f = A(B +C′ )(B′ +C)
Una implementación para f , alternativa a la proporcionada en el enunciado, sería la correspondiente a
algunas de estas formas simplificadas:

f = AB′C′ + ABC = A(B′C′ + BC) = A(B ⊕C)′


110 Capítulo 5. Módulos combinacionales básicos

5.6 Diseño de sistemas con módulos combinacionales


Problema 5.34 ★★★ La figura adjunta representa un sistema de regadío de dos parcelas (X e Y ). Para
bombear el agua se cuenta con un aerogenerador (molino) y un motor (m) que pueden accionar la bomba
de agua. El agua es bombeada y almacenada en dos depósitos intercomunicados, uno para cada parcela.
El motor y las válvulas de los aspersores conectados a los depósitos (que llamaremos vx e vy ) se accionan
en función de los sensores de nivel (A, B y C) de los depósitos, así como de un sensor (D) que mide si hay
viento suficiente para que el aerogenerador accione la bomba hidráulica.
Sensor D

Sensor A

Sensor C

Sensor B
Molino

Válvula x Válvula y

Motor

Parcela Y

Parcela X

Las condiciones de funcionamiento del sistema se resumen en las siguientes reglas:


El motor m se pone en marcha siempre que ambos depósitos no estén llenos y no haya suficiente
viento.
La parcela X se riega siempre que su depósito esté lleno y no haya viento suficiente o bien, su
depósito esté al menos medio lleno y haya viento suficiente.
Por su parte, la parcela Y sólo se riega cuando su depósito supera el nivel mínimo marcado por el
sensor de nivel B y hay viento suficiente.
Se pide:
1.- Determina las variables de entrada y funciones de salida del sistema digital que controla el regadío
de las dos parcelas.
2.- Establece claramente cuáles son las situaciones indiferentes (no importa) en este problema.
3.- Elabora la tabla de verdad del sistema digital para las funciones de salida y calcula sus expresiones
simplificadas.
4.- Implementa la función de activación del motor m empleando DEC o MUX. Elije las señales de
selección que produzcan la implementación más sencilla.
5.- Repite el proceso del apartado anterior para la función de apertura de la válvula vx .
6.- Repite de nuevo el proceso para la función de apertura de la válvula vy .

 Solución: 1.- Identificación de variables de entrada y funciones de salida. Las acciones que
tienen lugar en el sistema determinan las funciones de salida del mismo. En este sistema son el
encendido/parada (1/0) del motor de la bomba de llenado de los depósitos (m), y la apertura/cierre
(1/0) de las válvulas de riego (vx y vy ).
Las acciones mencionadas están determinadas por condiciones sobre el estado de los sensores de
nivel de los depósitos (A, B y C) y de intensidad del viento (D) que asociamos con las entradas del
sistema.
5.6 Diseño con módulos combinacionales 111

Por tanto, las variables de entrada y las funciones de salida del sistema, con sus correspondientes
codificaciones, se resumen a continuación:
Variables de entrada (condiciones de funcionamiento):
• El tanque que riega la parcela X (SI/NO) está lleno
→variable A (1 ≡ lleno, 0 ≡ no lleno).
• El tanque que riega las parcelas X e Y (SI/NO) está al menos medio lleno
→variable B (1 ≡ al menos medio lleno, 0 ≡ vacío).
• El tanque que riega la parcela Y (SI/NO) está lleno
→variable C (1 ≡ lleno, 0 ≡ no lleno).
• La intensidad del viento (SI/NO) es suficiente para activar el aerogenerador
→variable D (1 ≡ tiene suficiente intensidad, 0 ≡ no tiene suficiente intensidad).
Nota: Aunque los tanques están interconectados, las condiciones de llenado de cada uno se contemplan
de modo independiente. De este modo, la condición de que el tanque asociado a la parcela X esté
al menos medio lleno, se satisface si B = 1, sin importar el estado del sensor C perteneciente al otro
tanque.
Funciones de salida (acciones):
• Activación del motor para el llenado de tanques
→función m (1 ≡ motor activado, 0 ≡ motor desactivado).
• Activación de la válvula de riego de la parcela X
→función vx (1 ≡ válvula activada, 0 ≡ válvula desactivada).
• Activación de la válvula de riego de la parcela Y
→función vy (1 ≡ válvula activada, 0 ≡ válvula desactivada).
2.- Condiciones indiferentes. En este tipo de problemas aparecen restricciones físicas que condicionan
la imposibilidad de ciertas situaciones. De este modo, siempre que A = 1 (el depósito X está lleno), no
puede estar simultáneamente vacío (B ̸= 0 ⇒ B = 1) y C = 1 (el depósito Y también estará lleno). De
modo similar, si C = 1 ⇒ B = 1. En resumen, las situaciones imposibles que producen condiciones
indiferentes en la tabla de verdad son:
A=1, B=0, C=0
A=1, B=0, C=1
A=1, B=1, C=0
A=0, B=0, C=1
Aunque estas condiciones son físicamente imposibles, se pueden emplear para obtener una lógica más
sencilla de las funciones de salida, ya que para esas condiciones no importa el valor que adopte la
salida.
2.- Tablas de verdad. Las condiciones de funcionamiento del sistema se convierten a sus equivalentes
lógicas expresadas con las variables de entrada y funciones de salida. Veamos cómo convertimos cada
una de las condiciones de funcionamiento:
El motor m se pone en marcha siempre que ambos depósitos no estén llenos y no haya suficiente
viento.
SI A = 0 AND C = 0 AND D = 0 ⇒ m = 1
La parcela X se riega siempre que su depósito esté lleno y no haya viento suficiente o bien, su
depósito está al menos medio lleno y hay viento suficiente.
SI (A = 1 AND D = 0) OR (B = 1 AND D = 1) ⇒ vx = 1
112 Capítulo 5. Módulos combinacionales básicos

Por su parte, la parcela Y sólo se riega cuando su depósito supera el nivel mínimo marcado por
el sensor de nivel B y hay viento suficiente.
SI B = 1 AND D = 1 ⇒ vy = 1
Trasladando a la tabla de verdad las condiciones anteriores para la activación de las salidas, se obtiene:

Con dicha tabla de verdad se pueden construir los K-maps para cada una de las funciones de salida.
De este modo se obtienen las formas simplificadas SOP y POS de las funciones de salida que se indica
a continuación:

m = C′ D′ = D′C′

vx = BD + A = (A + B)(A + D)
5.6 Diseño con módulos combinacionales 113

vy = BD = BD

3.- Implementación de la función m. Como m depende solo de C y D, su expresión se puede considerar


consistente en el minitérmino 0. Por tanto, se tiene que:
′ ′
m(C, D) = C D
|{z}
00 (0)

Esta función se puede implementar con DEC y MUX teniendo en cuenta los minitérminos generados
por estos módulos:

4.- Implementación de la función vx . Como vx depende de A, B y D, su expresión canónica SOP se


obtiene expandiendo los términos no canónicos: vx = A + BD

A → 1∗∗ ⇒ 100 (4), 101 (5), 110 (6), 111 (7)


BD → ∗11 ⇒ 011 (3), 111 
(7),


Por tanto, las formas canónicas resultantes son:

vx (A, B, D) = ∑ m(3, 4, 5, 6, 7) = ∏ M(0, 1, 2)

A partir de las expresiones canónicas de vx (A, B, D) es sencillo obtener los circuitos con DEC 3 × 8 y
MUX 8 × 1. Mediante inspección de la tabla de verdad es inmediato obtener las implementaciones con
MUX 4 × 1 y MUX 2 × 1 tomando como variables de selección A, B para el MUX 4 × 1 y A para el
MUX 2 × 1:
114 Capítulo 5. Módulos combinacionales básicos

5.- Implementación de la función vy . Como vy depende solo de B y D, se tiene que:

vy (B, D) = |{z}
BD
11 (3)

Puesto que, la expresión anterior solo tiene un minitérmino (puerta AND), su implementación mediante
DEC y MUX es muy simple. Los circuitos resultantes son:

Problema 5.35 ★★★ El presidente de un club de fútbol debe decidir al final de la temporada si se
renueva ( f ) o no, el contrato del entrenador ( f = 1 ⇒ renueva, f = 0 ⇒ no renueva). Diseña un circuito
combinacional para resolver el problema lógico de toma de decisión, teniendo en cuenta las condiciones
que se indican a continuación.

SI el equipo queda campeón y obtiene más de 70 puntos, ENTONCES se renueva el contrato.

SI quedando campeón el equipo no supera los 70 puntos, ENTONCES el entrenador correrá la


misma suerte que el entrenador del equipo rival al que se disputa el campeonato.

SI el equipo no queda campeón, pero supera los 70 puntos, ENTONCES el entrenador correrá la
suerte contraria que el entrenador del equipo rival.

SI el equipo no queda campeón y no supera los 70 puntos, ENTONCES no se renueva al entrenador.

Diseña el sistema completando los apartados siguientes:

1.- Define las variables lógicas del problema (entradas y salidas).


2.- Elabora la tabla de verdad de la función f que codifica la renovación del entrenador.
3.- Calcula las formas canónicas y simplificadas de f .
4.- Implementa f usando solo puertas NAND. Alternativamente, elabora la implementación de f solo
con puertas NOR.

Para tomar una decisión más acertada, el presidente del club decide pedir consejo a su junta directiva. Si
el equipo queda campeón, se aplican los mismos criterios que en los apartados anteriores, incluyendo
las condiciones de renovación del entrenador del equipo rival. Pero si el equipo no queda campeón, la
decisión dependerá de la junta directiva. Llamaremos g a la nueva función lógica de decisión. Ante estas
nuevas circunstancias completa los apartados siguientes:

5.- Elabora la tabla de verdad de g y calcula sus expresiones simplificadas.


6.- Implementa la nueva función g utilizando alternativamente un MUX 8 × 1, un MUX 4 × 1 y un
MUX 2 × 1, colocando en las líneas de selección las variables que consideres oportunas.
5.6 Diseño con módulos combinacionales 115

 Solución: 1.- Definición de las variables lógicas. Las variables de entrada son aquellas que
reciben su valor independientemente del resto. Esto es, su valor no depende de otras variables. Las
entradas se definen asociándolas a condiciones de funcionamiento o comportamiento del sistema. En
este caso tenemos:
El equipo (SI/NO) queda campeón
→variable A (1 ≡ el equipo queda campeón, 0 ≡ el equipo no queda campeón).
El equipo (SI/NO) supera 70 pts. al final del campeonato
→variable B (1 ≡ supera 70 pts., 0 ≡ no supera 70 pts.).
El entrenador del equipo rival (SI/NO) renueva
→variable C (1 ≡ el entrenador rival renueva, 0≡ el entrenador rival no renueva).
Las funciones de salida son variables lógicas que obtienen su valor dependiendo de las variables
de entrada. Se definen asociándolas a decisiones o acciones que se activan cuando se cumplen unas
condiciones determinadas. En este caso se toma la decisión sobre la renovación del entrenador:
El presidente (SI/NO) renueva al entrenador
→función f (1 ≡ se renueva al entrenador, 0 ≡ no se renueva al entrenador).
Observa como, además de definir las variables de entrada y salida, en este paso se ha otorgado una
semántica o significado asociado a la codificación.
2.- Elaboración de la tabla de verdad de f . La tabla de verdad establece el valor de la función de
salida para cada una de las combinaciones de los valores de las variables de las que depende. Para
completarla se convierten, en expresiones algebraicas, las condiciones que definen el valor de las
salidas.
SI el equipo queda campeón y obtiene más de 70 puntos, ENTONCES se renueva el contrato.
SI A = 1 AND B = 1 ⇒ f = 1
SI quedando campeón, no se superan los 70 puntos, ENTONCES el entrenador corre la misma
suerte que el entrenador del equipo rival, al que se disputa el campeonato.
SI A = 1 AND B = 0 ⇒ f = C
SI no queda campeón, pero supera los 70 puntos, ENTONCES corre la suerte contraria que el
entrenador del equipo rival.
SI A = 0 AND B = 1 ⇒ f = C′
SI no queda campeón y no supera los 70 puntos, ENTONCES no se renueva al entrenador.
SI A = 0 AND B = 0 ⇒ f = 0
Trasladando estás reglas de funcionamiento a la tabla de verdad de f se obtiene:

Esta tabla de verdad también se puede obtener alternativamente traduciendo las condiciones de
renovación del entrenador. Esto es, condiciones que hacen f = 1 en términos de las variables lógicas.
116 Capítulo 5. Módulos combinacionales básicos

De este modo se tiene:


El entrenador es renovado si se gana el campeonato (A = 1) y se superan los 70 ptos. (B = 1).
Condición: AB = 1 ⇒ f = 1
Si se gana el campeonato (A = 1) y no se superan los 70 ptos. (B = 0), el entrenador renueva si
el entrenador rival también renueva (C = 1).
Condición: AB′C = 1 ⇒ f = 1
Si no se gana el campeonato (A=0) y se superan los 70 ptos. (B=1), el entrenador renueva si el
entrenador rival no renueva (C=0).
Condición: A′ BC′ ⇒ f = 1
Por tanto, las condiciones que hacen f = 1 dan lugar a la expresión SOP:
′ ′
AB + AB
f (A, B,C) = |{z} | {zC} + A
| {zBC}′ = ∑ m(2, 5, 6, 7)
1101 (6,7) 101 (5) 010 (2)

3.- Formas canónicas y simplificadas de f . A partir de la tabla de verdad de f es inmediato obtener


las formas canónicas de dicha función:
1ª forma canónica → f (A, B,C) = ∑ m(2, 5, 6, 7)
2ª forma canónica → f (A, B,C) = ∏ M(0, 1, 3, 4)
Mediante los K-maps se obtienen las expresiones simplificadas de f :

Forma SOP → f = BC′ + AC


Forma POS → f = (B +C)(A +C′ )
A partir de la expresión SOP minimizada de f se puede obtener una descripción literal de la misma:
BC′ +AC → El entrenador será renovado si el equipo supera los 70 puntos (B = 1) y el entrenador
del equipo rival no es renovado (C = 0), o el equipo queda campeón (A = 1) y el entrenador
rival es renovado (C = 1).
4.- Implementación de f con puertas NAND y NOR. Para obtener una implementación con puertas
NAND es preferible partir de una expresión SOP, mientras que para una implementación con puertas
NOR, es más adecuado partir de una expresión POS. En ambos casos se aplica doble negación y las
leyes de De Morgan para transformar las sumas en productos y viceversa. De este modo se obtiene:
Implementación con puertas NAND a partir de forma SOP
→ f = BC′ + AC = (BC′ + AC)′′ = ((BC′ )′ (AC)′ )′
Implementación con puertas NOR a partir de forma POS
→ f = (B +C)(A +C′ ) = ((B +C)(A +C′ ))′′ = ((B +C)′ + (A +C′ )′ )′
Los circuitos resultantes correspondientes son:
5.6 Diseño con módulos combinacionales 117

5.- Adición de una nueva entrada. Si se introduce como una nueva entrada la opinión de la junta
directiva, se tiene una nueva variable lógica asociada a la condición:
La junta directiva (SI/NO) aconseja la renovación
→variable D (1 ≡ se aconseja la renovación, 0 ≡ se aconseja la no renovación).
La nueva tabla de verdad se ve afectada cuando el equipo no queda campeón (A=0). Con la nueva tabla
y los K-maps correspondientes se obtienen las expresiones simplificadas de g:

Forma SOP → g = A′ D + AC + AB
Forma POS → g = (A + D)(A′ + B +C)
6.- Implementación de la función g. Para la implementación de g con MUX 8 × 1 elegimos A, B, y C
como señales de selección. De este modo, mediante inspección de la tabla de verdad, se obtiene:

g(0, 0, 0, D) = g(0, 0, 1, D) = g(0, 1, 0, D) = g(0, 1, 1, D) = D


g(1, 0, 0, D) = 0
g(1, 0, 1, D) = g(1, 1, 0, D) = g(1, 1, 1, D) = 1

Nótese que cuando se pierde el campeonato, la decisión depende únicamente de la junta directiva (D).
Para la implementación con MUX 4 × 1 elegimos A y B como señales de selección y se tiene:

g(0, 0,C, D) = g(0, 1,C, D) = D


g(1, 0,C, D) = C
g(1, 1,C, D) = 1

Para la implementación con un MUX 2 × 1 elegimos A como variable de selección y tenemos:

g(0, B,C, D) = D
g(1, B,C, D) = B +C
118 Capítulo 5. Módulos combinacionales básicos

Estas expresiones también se pueden obtener factorizando la expresión simplificada SOP de g:

g = A′ D + AC + AB = A′ · D + A · (C + B)

Por tanto, los circuitos correspondientes a las implementaciones con MUX son:

Problema 5.36 ★★★ Diseña un circuito combinacional que permita controlar el sistema de riego
automático esquematizado en la figura adjunta. El sistema consta de 2 sensores de humedad (A y B) y 3
aspersores ( f , g y h) conectados a un depósito de agua. El depósito dispone de dos sensores de nivel (C y
D) y se llena mediante una moto bomba hidráulica (m).

Sensor Sensor
A B

Sensor C
f g
h
Sensor D

Bomba
m

El sistema debe funcionar de la siguiente manera:


La moto bomba m se debe activar si:
• el depósito está vacío, a menos que no sea preciso el riego porque tanto A como B detectan
humedad;
• el depósito está medio lleno y es preciso regar porque algún sensor o ambos no detectan
humedad.
La moto bomba m nunca se activa si el depósito está lleno.
El aspersor f se activa si el sensor A no detecta humedad.
El aspersor g se activa si el sensor B no detecta humedad.
El aspersor h se activa si alguno de los aspersores f o g está activo, pero no ambos.
Los aspersores no se deben activar si el depósito está vacío, salvo si:
• solo el sensor A no detecta humedad, en cuyo caso se activa únicamente f ,
• solo el sensor B no detecta humedad, en cuyo caso se activa únicamente g.
Se pide:
1.- Realiza la tabla de verdad de las funciones de salida (m, f , g y h) a partir de la especificación dada.
2.- Implementa m con MUX.
3.- Implementa f con DEC con salidas activas a nivel alto.
5.6 Diseño con módulos combinacionales 119

4.- Implementa g con DEC con salidas activas a nivel bajo.


5.- Implementa h con DEC y alternativamente con MUX.

 Solución: 1.- Definición de variables lógicas y tabla de verdad. Las variables de entrada y las
funciones de salida quedan definidas del modo que se indica a continuación, teniendo en cuenta las
condiciones y acciones que constituyen la especificación del comportamiento del sistema:
Variables de entrada (condiciones):
Sensor A (SI/NO) detecta humedad → variable A (1 ≡ detecta, 0 ≡ no detecta)
Sensor B (SI/NO) detecta humedad → variable B (1 ≡ detecta, 0 ≡ no detecta)
Depósito (SI/NO) lleno → variable C (1 ≡ lleno, 0 ≡ no lleno)
Depósito (NO/SI) vacío → variable D (1 ≡ no vacío, 0 ≡ vacío)
Funciones de salida (acciones):
Accionar motobomba m (SI/NO) → m (1 ≡ accionar, 0 ≡ no accionar)
Activar aspersor f (SI/NO) → f (1 ≡ activar, 0 ≡ no activar)
Activar aspersor g (SI/NO) → g (1 ≡ activar, 0 ≡ no activar)
Activar aspersor h (SI/NO) → h (1 ≡ activar, 0 ≡ no activar)
Por el comportamiento físico del sistema es imposible que se produzca la situación en que C = 1 y
D = 0, ya que no es posible que los sensores indiquen que el depósito está simultáneamente lleno
y vacío. Por tanto, las cuatro combinaciones en que se cumple esta condición se tratarán como
condiciones indiferentes, pues no importa que valor tengan las funciones de salida. Dichas condiciones
se aprovechan para simplificar las expresiones lógicas de las funciones de salida.
Para el resto de condiciones se obtienen los valores de las funciones de salida para completar la
tabla de verdad de todas ellas. Se ha tenido en cuenta que la condición de activación del aspersor h no
es anulada por las condiciones en las que se indica la activación de f o g de modo exclusivo. Dicha
exclusividad se refiere solo a estos dos últimos aspersores. De este modo la tabla de verdad de las
funciones de salida queda:
120 Capítulo 5. Módulos combinacionales básicos

A partir de los K-maps de las funciones de salida se obtienen las expresiones SOP simplificadas
que se indican a continuación:

m = A′C′ + B′C′
f = A′ D + A′ B
g = B′ D + AB′
h = A′ B + AB′
2.- Implementación de la función m. Se puede emplear un MUX 2 × 1 con C como variable de
selección. Así, teniendo en cuenta la expansión de Shannon de m respecto a C se obtiene:

m(A, B,C) = C′ · m(A, B, 0) +C · m(A, B, 1) = C′ · (A′ + B′ ) +C · 0 = C′ · (AB)′ +C · 0

En consecuencia, el circuito resultante queda:

3.- Implementación de la función f . La función f se puede considerar dependiente de A, B y D. Por


tanto, realizando la expansión de su expresión simplificada se puede obtener su versión canónica SOP:

A′ D + |{z}
f (A, B, D) = |{z} A′ B = ∑ m(1, 2, 3)
001 1 (1,3) 0101 (2,
3)

Como un DEC con salidas activas a nivel alto es un generador de minitérminos, empleamos un
DEC 3 × 8 con A, B y D como variables de selección. Se añade una puerta OR a la salida para obtener
los tres minitérminos deseados. La figura siguiente muestra el circuito resultante:

4.- Implementación de la función g. La función g se puede considerar dependiente de A, B y D. Por


tanto, realizando la expansión de su expresión simplificada se puede obtener su versión canónica SOP:

B′ D + |{z}
g(A, B, D) = |{z} AB′ = ∑ m(1, 4, 5)
0 01 (1,5)
1 1001 (4,
5)
5.6 Diseño con módulos combinacionales 121

Como un DEC con salidas activas a nivel bajo es un generador de maxitérminos, empleamos un
DEC 3 × 8 con A, B y D como variables de selección. En lugar de utilizar los 5 maxitérminos, es más
conveniente emplear los minitérminos, ya que solo hay 3. Por este motivo se emplea una puerta NAND
a la salida. Recuerda que los maxitérminos se obtienen mediante negación de los minitérminos. El
circuito resultante se muestra en la figura siguiente:

5.- Implementación de la función h. La función h solo depende de A y B. En este caso es muy


sencillo expresarla en forma canónica para su implementación con un DEC 2 × 4. También es posible
expresarla por sus expansiones de Shannon respecto A o B para emplear un MUX:

h(A, B) = A′ B + AB′ = m1 + m2 = A′ · B + A · B′ = B′ · A + B · A′

Los circuitos resultantes que se obtienen se muestran a continuación:

Problema 5.37 ★★★ Un tribunal de justicia está compuesto por cuatro miembros, el presidente (P), el
secretario (S), el primer vocal (V1 ) y el segundo vocal (V2 ). A la hora de dictar el veredicto del tribunal
( f ), cada uno de sus miembros toma una decisión individual sobre el acusado, sin conocer la decisión del
resto.

Para obtener el veredicto final del tribunal han acordado tener en cuenta la decisión de la mayoría de
sus componentes con el siguiente criterio:

Si el presidente considera que el acusado es inocente, ocurre lo siguiente:


• SI al menos uno de los restantes miembros declaran inocente al acusado, ENTONCES este es
declarado inocente.
• SI todos los demás miembros consideran que el acusado es culpable, ENTONCES es declarado
culpable.
Si el presidente declara culpable al acusado, el veredicto se toma de la siguiente forma:
122 Capítulo 5. Módulos combinacionales básicos

• SI los dos vocales lo declaran inocente, ENTONCES el veredicto final será la decisión del
secretario.
• SI los dos vocales coinciden en declararlo culpable, ENTONCES será declarado culpable,
independientemente de la decisión del secretario.
• SI los dos vocales discrepan, ENTONCES el veredicto final será el del secretario, siempre
que coincida con el del presidente, y en caso contrario, si presidente y secretario discrepan, el
acusado será declarado inocente.
El abogado del acusado podrá recurrir (r) la sentencia a otro tribunal de mayor rango si el acusado ha
contado con: al menos dos votos favorables de entre los cuatro del tribunal, o bien si el presidente votó a
favor de su inocencia. Se desea diseñar un circuito combinacional para modelar la toma de decisión del
tribunal. Para ello se completarán los pasos siguientes:
1.- Identifica las entradas y funciones de salida del sistema.
2.- Determina la tabla de verdad correspondiente a las funciones de salida. Explica si existen condicio-
nes libres para alguna función de salida.
3.- Calcula las expresiones canónicas y simplificadas de las funciones de salida.
4.- Implementa las funciones de salida con varios DEC 3 × 8 o más sencillos.
5.- Implementa las funciones de salida con un MUX 8 × 1. Repite el proceso con un MUX 4 × 1 y
después con un MUX 2 × 1.
6.- Implementa las funciones de salida solo con puertas NAND. Alternativamente, elabora una imple-
mentación solo con puertas NOR.

 Solución: 1.- Definición de las variables de entrada y las funciones de salida. Las variables de
entrada, o condiciones bajo las que se toman las decisiones o acciones en el sistema, son los votos
particulares de cada uno de los miembros del tribunal: presidente (P), secretario (S), vocal primero
(V1 ) y vocal segundo (V2 ). Cada uno de ellos puede emitir un voto de culpabilidad (1) o inocencia (0).
Las acciones o decisiones que tienen lugar determinan las funciones de salida del sistema, que son:
emitir veredicto ( f con 1≡ culpabilidad y 0 ≡ inocencia) y recurrir sentencia (r con 1 ≡ recurrir y 0 ≡
no recurrir).
2.- Tablas de verdad. Las tablas de verdad se construyen a partir de la especificación teniendo en
cuenta las condiciones impuestas para decidir el sentido del veredicto ( f ) y el recurso a la sentencia (r).
Puesto que, el recurso tiene sentido solo si el veredicto es de culpabilidad. Los valores que producen
un veredicto de inocencia ( f = 0), se deben considerar condiciones indiferentes para la función r. De
este modo, las tablas de verdad resultantes para f y r quedan según se indica a continuación:
5.6 Diseño con módulos combinacionales 123

3.- Formas canónicas y simplificadas. Las formas canónicas de f (P, S,V1 ,V2 ) se obtienen directa-
mente de la tabla de verdad del apartado anterior:
1ª forma canónica → f (P, S,V1 ,V2 ) = ∑ m(7, 11, 12, 13, 14, 15)
2ª forma canónica → f (P, S,V1 ,V2 ) = ∏ M(0, 1, 2, 3, 4, 5, 6, 8, 9, 10)
Simplificando f mediante K-maps se obtiene:

Forma SOP → f = SV1V2 + PV1V2 + PS


Forma POS → f = (P + S)(P +V1 )(P +V2 )(S +V1 )(S +V2 )
En el caso de r, primero se obtienen los K-maps para determinar las formas canónicas correspondientes
a las expresiones simplificadas más sencillas:

Forma SOP → r = P′ +V1′V2′


Forma POS → r = (P′ +V2′ )(P′ +V1′ )
Esta simplificación da lugar a las expresiones canónicas:
1ª forma canónica → r(P, S,V1 ,V2 ) = ∑ m(0, 1, 2, 3, 4, 5, 6, 7, 8, 12)
2ª forma canónica → r(P, S,V1 ,V2 ) = ∏ M(9, 10, 11, 13, 14, 15)
4.- Implementación de las funciones de salida con DEC 3 × 8 o más sencillos. Para implementar f
con DEC 3 × 8 se inspecciona la tabla de verdad en la que se observa que la implementación es posible
con dos DEC 3 × 8 cuyas entradas de selección son S,V1 y V2 . La entrada P se emplearía como señal
de habilitación para los DEC mencionados.
El DEC menos significativo genera un único producto canónico (m7 , en la parte superior de la
figura siguiente) y para el DEC más significativo se tienen 5 minitérminos o 3 maxitérminos. Por tanto,
en este último sería más simple la implementación con los maxitérminos (M0 , M1 y M2 ).
Si los DEC tienen salidas activas a nivel alto, la suma de minitérminos se obtiene mediante puertas
OR. Si en el DEC más significativo se consideran los maxitérminos se debe emplear una puerta NOR.
Para conseguir un funcionamiento correcto se tiene en cuenta que en la implementación con DEC
basada en maxitérminos, la inhabilitación provoca una salida a nivel alto, por lo que se precisa una
puerta AND que garantice el correcto funcionamiento de la habilitación.
La figura siguiente muestra los circuitos resultantes, en los que debes analizar cuidadosamente la
implementación con maxitérminos del circuito de la derecha:
124 Capítulo 5. Módulos combinacionales básicos

Si en la implementación de funciones se desea emplear una red de DEC 2 × 4 son necesarios 4


DEC. En ellos se escogen como señales de selección V1 y V2 . Además, es necesario un quinto DEC
con señales de selección P y S que se encarga de generar las señales de habilitación para los anteriores.
Al inspeccionar la tabla de verdad de f se observa que el primero de los DEC debe tener siempre sus
salidas a 0 por lo que se puede eliminar. El cuarto DEC se puede sustituir por su señal de habilitación,
ya que todas sus salidas estarían a 1. Por tanto, el circuito final para f queda limitado a tres DEC 2 × 4,
como se muestra en la figura siguiente:

En el caso de la función r, los DEC 3 × 8 se emplean con S, V1 y V2 como entradas de selección de


los DEC. La entrada P negada se utiliza como señal de habilitación para el DEC menos significativo y
sin negar en el DEC más significativo.
Para respetar la minimización realizada para r e implementar siempre la misma función, todas las
condiciones indiferentes se consideran con valor 1 excepto los términos 1001 (9) y 1010 (10), que se
consideran maxitérminos, con valor 0.
Por tanto, mediante inspección de la tabla de verdad se tiene que el DEC menos significativo
(P = 0) debe tener todas sus salidas a 1. En el DEC más significativo (P = 1) solo habría que conectar
los minitérminos m0 y m4 .
Empleando DEC 2 × 4 necesitaríamos tres DEC, dos de ellos para generar los minitérminos
precisos y el tercero para generar la señal de habilitación. En la figura siguiente se muestran los
circuitos resultantes:
5.6 Diseño con módulos combinacionales 125

5.- Implementación de las funciones de salida con MUX. La implementación de f con MUX 8 × 1
se consigue mediante inspección de la tabla de verdad empleando las variables más significativas como
señales de selección del MUX. De este modo, podemos obtener los valores:

f (0, 0, 0,V2 ) = f (0, 0, 1,V2 ) = f (0, 1, 0,V2 ) = 0


f (0, 1, 1,V2 ) = V2
f (1, 0, 0,V2 ) = 0
f (1, 0, 1,V2 ) = V2
f (1, 1, 0,V2 ) = f (1, 1, 1,V2 ) = 1

Para la implementación con MUX 4 × 1 elegimos como variables de selección P y S porque son las
variables que «cubren» mejor el dominio de la función (observa su expresión SOP minimizada). Estas
variables son también las más significativas. Por tanto, se obtiene:

f (0, 0,V1 ,V2 ) = 0


f (0, 1,V1 ,V2 ) = f (1, 0,V1 ,V2 ) = V1V2
f (1, 1,V1 ,V2 ) = 1

Por último, para la implementación con MUX 2 × 1 se elige como variable de selección P. En
consecuencia, se obtiene:

f (0, S,V1 ,V2 ) = SV1V2


f (1, S,V1 ,V2 ) = SV1V2 +V1V2 + S = V1V2 + S

Los circuitos resultantes se muestran en la figura siguiente:

Para la implementación de r con un MUX 8 × 1 optamos por la inspección de la tabla de verdad


para emplear como variables de selección P, S y V1 . Como existen muchas condiciones no importa,
partimos de la expresión minimizada:

r = P′ +V1′V2′
126 Capítulo 5. Módulos combinacionales básicos

A partir de dicha expresión se obtienen los valores:

r(0, 0, 0,V2 ) = r(0, 0, 1,V2 ) = r(0, 1, 0,V2 ) = r(0, 1, 1,V2 ) = 1


r(1, 0, 0,V2 ) = V2′
r(1, 0, 1,V2 ) = 0
r(1, 1, 0,V2 ) = V2′
r(1, 1, 1,V2 ) = 0

Si se busca la implementación con MUX 4 × 1 se toma como variables de selección P y V1 , ya que de


este modo queda mejor cubierto el dominio de la expresión minimizada de r. En este caso, se obtiene:

r(0, S, 0,V2 ) = r(0, S, 1,V2 ) = 1


r(1, S, 0,V2 ) = V2′
r(1, S, 1,V2 ) = 0

Por último, para la implementación con MUX 2 × 1 tomamos P como variable de selección. Como
resultado, se obtiene:

r(0, S,V1 ,V2 ) = 1


r(1, S,V1 ,V2 ) = V1′V2′ = (V1 +V2 )′

A continuación, la figura siguiente muestra los circuitos derivados:

6.- Implementación de funciones con puertas NAND y NOR. La expresión minimizada SOP de la
función facilita la implementación con puertas NAND. Si, por el contrario, se busca una implementación
con puertas NOR, es más apropiado partir de la forma POS. En ambos casos, la expresión minimizada
se manipula de modo algebraico aplicando doble negación y las leyes de De Morgan.

• Implementación con puertas NAND:


f = SV1V2 + PV1V2 + PS
= (SV1V2 + PV1V2 + PS)′′
= ((SV1V2 )′ (PV1V2 )′ (PS)′ )′
r = P′ +V1′V2′ = ((P′ +V1′V2′ ))′′
= ((P′ )′ (V1′V2′ )′ )′ = (P(V1′V2′ )′ )′
• Implementación con puertas NOR:
f = (P + S)(P +V1 )(P +V2 )(S +V1 )(S +V2 )
= ((P + S)(P +V1 )(P +V2 )(S +V1 )(S +V2 ))′′
= ((P + S)′ + (P +V1 )′ + (P +V2 )′ + (S +V1 )′ + (S +V2 ))′
r = (V1 +V2′ )(P′ +V1′ )
= ((V1 +V2′ )(P′ +V1′ ))′′
= ((V1 +V2′ )′ + (P′ +V1′ )′ )′
5.6 Diseño con módulos combinacionales 127

Los circuitos resultantes se muestran en las figuras siguientes:

En los circuitos anteriores la inversión de variables se ha representado por el símbolo de negación


(◦). Dicha inversión se puede conseguir mediante una puerta NAND o NOR con todas sus entradas
conectadas a la señal que se desea invertir, según se indica a continuación:

Recuerda: Debes tener cuidado en la implementación de circuitos con puertas universales cuando
estas constan de múltiples entradas. A diferencia de lo que ocurre con las puertas AND y OR (que
cumplen la propiedad asociativa), con las puertas NAND y NOR no es posible aplicar concatenación
de puertas para obtener puertas equivalentes de mayor número de entradas. ■
6. Módulos lógicos y aritméticos

Este capítulo presenta problemas resueltos con Logisim relacionados con el empleo de módulos combi-
nacionales destinados a realizar operaciones de tipo lógico y aritmético. Algunas de las funcionalidades
requeridas son proporcionadas directamente por elementos de Logisim, pero otras (p.ej., la obtenida por
una ALU) deben ser implementadas mediante diseño jerárquico a partir de módulos más simples.
Un comparador es un circuito combinacional que a partir de dos entradas A y B ofrece tres bits de
salida indicando el resultado de la comparación: (1) A < B, (2) A = B, (3) A > B. El diseño combinacional
del comparador de un bit es sencillo partiendo de la tabla de verdad de las funciones asociadas a los tres
bits de salida. El diseño de comparadores de un número mayor de bits se puede realizar mediante diseño
jerárquico a partir del comparador completo de 1 bit que se muestra en la figura 6.1.

Figura 6.1: Diagrama lógico del circuito comparador completo de 1 bit.

El módulo comparator de la librería arithmetic proporciona en Logisim un módulo comparador que se


puede configurar con el número de bits a comparar y el tipo de codificación que emplean dichos valores:
binario natural (sin signo) o complemento a dos (con signo).
El cálculo del bit de paridad de un bloque de datos se basa en la idea de que la suma de un número
par de unos es 0. De este modo, el bit de paridad par desde los unos para un bloque de datos, se calcula
mediante la concatenación de la función XOR (OR-exclusivo) de los bits del bloque de datos. El bit
calculado se añade al bloque de datos para su comprobación en el extremo receptor de la comunicación.
130 Capítulo 6. Módulos lógicos y aritméticos

Un conversor de código es un módulo combinacional que transforma un código digital en otro


diferente. Para cualquier pareja de códigos binarios proporcionados, se puede implementar un conversor
partiendo de la tabla de verdad cuya entrada es el código original y la salida el código de destino. Por
tanto, este tipo de módulos admite varias estrategias de implementación: (1) puertas lógicas, (2) DEC y
puertas lógicas, (3) DEC concatenado con COD, (4) MUX multibit, y (5) memorias ROM.
La base de los módulos aritméticos es el sumador completo de 1 bit (ver figura 6.2) a partir del cual
se construyen otros circuitos más complejos como el sumador multibit paralelo con acarreo serie y el
circuito sumador restador (ver figura 6.3).

Cout Cin A B S Cout Cin A B Cout S


0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 0 0 0 1 0 1
0 0 1 0 1 0 0 1 0 0 1
1 0 1 1 0 1 0 1 1 1 0
1 0 0 1 0 1 0 0 0 1
S 1 0 1 0 1 1 0 1 1 0
0 1 1 0 0 1 1 1 0 1 0
1 1 1 1 1 1 1 1 1 1 1
1
0 Figura 6.2: Tabla de verdad del sumador completo de una pareja de bits (izda.), y diagrama del circuito lógico
correspondiente (dcha.).

Figura 6.3: Diagrama de circuito lógico sumador-restador de 4 bits.

Otros módulos aritméticos muy interesantes son:


Cambio de signo (negator). Obtiene el complemento a dos de su valor de entrada.
Número de entradas activas o bit adder, que proporciona el número de entradas a nivel alto.
6.1 Circuitos con comparadores 131

Problemas resueltos
6.1 Circuitos con comparadores
Problema 6.1 ★★✩ Diseña un circuito digital que partiendo de dos entradas (A y B) de 4 bits obtenidas
mediante sendos diales, muestre el valor menor en un display de 7 segmentos según muestra la figura
adjunta. Contesta razonadamente a las cuestiones siguientes:
1.- ¿Qué tipo de operación se debe efectuar para determinar el valor menor? ¿Es necesario algún tipo
de memoria?
2.- Implementa un circuito con Logisim que permita simular el comportamiento lógico del sistema
empleando cualquier tipo de elemento disponible.
3.- Realiza las modificaciones oportunas al circuito, añadiendo un segundo display que muestre el
mayor de los dos valores. En caso de igualdad (A = B) no se debe mostrar nada en ambos displays.

Sistema digital

 Solución: 1.- Características del circuito. Para decidir qué valor (A o B) es menor, es preciso
realizar una operación lógica de comparación. Para su implementación no es preciso un circuito con
memoria, ya que la salida depende únicamente de las entradas, sin importar la historia previa del
sistema. Por tanto, se emplea un circuito combinacional.
2.- Circuito para obtener el valor menor. Para simular el sistema con Logisim se empleará un
módulo comparador para los valores A y B. La salida del comparador se toma como entrada de un
MUX 2 × 1 multibit (de 4 bits) para decidir qué valor se transfiere al display. El circuito resultante se
muestra más abajo en la figura adjunta (subfigura izquierda).
2.- Circuito para obtener el valor mayor. Para obtener el mayor de los valores, se añade un segundo
MUX que intercambia la salida con el dispuesto para obtener el valor menor. De este modo, uno de
ellos transfiere el menor de los valores y el otro el mayor. Para desactivar los displays cuando A = B,
se añade la línea de Enable en ambos MUX para inhabilitarlos cuando se active la salida ‘=’ del
comparador. El circuito final resultante se muestra a continuación (subfigura derecha):

Nota: En este contexto los MUX se deben configurar para que su salida sea flotante cuando están
deshabilitados. ■

Problema 6.2 ★★✩ En un sistema digital se introducen tres números de 4 bits sin signo: A, B y C.
Diseña el circuito lógico con Logisim que muestre en un display el mayor de los tres números. Modifica
el diseño para que el display no muestre nada en caso de que A = B = C.
132 Capítulo 6. Módulos lógicos y aritméticos

 Solución: La solución que se propone emplea dos comparadores conectados en cascada. Cada uno
de ellos va seguido de un MUX 2 × 1 para obtener el valor mayor de la comparación. Para interpretar
los diagramas lógicos presentados con Logisim ten en cuenta que la salida ‘>’ indica A > B y ‘<’ B > A,
siendo A la entrada superior y B la inferior. El circuito resultante se muestra en la figura siguiente:

Para inhabilitar el display cuando los tres valores son idénticos se añade una puerta NAND que
inhabilita el segundo MUX cuando ambos comparadores tienen activada su salida ‘=’. El circuito de la
figura siguiente implementa dicha solución:

Problema 6.3 ★★✩ Para garantizar la calidad del producto en una planta de producción farmacéutica se
debe controlar la temperatura (T ) de un reactor químico en el rango [−3°C, +5°C]. Para conseguirlo, si el
valor de la temperatura queda fuera del rango mencionado se debe activar una alarma (mediante nivel alto).
El valor de la temperatura se obtiene mediante un sistema sensorial —ya existente— que proporciona el
valor de T codificado en complemento a 2. La figura adjunta muestra un esquema del sistema.

Tª Sistema generador
(C2) de alarma
6.1 Circuitos con comparadores 133

Diseña el sistema digital que activa la alarma, dependiendo del valor de temperatura (T ), contestando
razonadamente a las cuestiones siguientes:
1.- ¿Cuántos bits se precisan como mínimo para expresar el valor de T ?
2.- ¿Qué tipo de operación se debe efectuar para determinar si T está dentro del rango deseado?
3.- Implementa un circuito con Logisim que permita simular el comportamiento del sistema empleando
los módulos funcionales incluidos en las librerías disponibles. Recuerda que el sistema sensorial ya
proporciona el valor de la temperatura en complemento a 2 (C2).

 Solución: 1.- Nº de bits necesarios para la codificación de la Tª. El rango de representación en


C2 con n bits es [−2n−1 , +2n−1 − 1]. Por tanto, para poder llegar a representar el valor +5 es preciso
que n = 4, ya que en este caso el rango sería: [−8, +7] que cubre el rango de medición deseado.
Recuerda que el bit más significativo en C2 se emplea para la codificación del signo.
2.- Comparación de Tª dentro de rango. Para poder comprobar que el valor de T ofrecido por el
sistema sensorial sale fuera del rango deseado, es preciso realizar dos operaciones de comparación
(T > 5, T < −3) y una operación lógica (OR). De este modo, la activación de la alarma se realiza
siguiendo la regla siguiente:
SI (T > +5°C) OR (T < −3°C), ⇒ Activar alarma
Estas operaciones se realizan en cada instante de tiempo. Como su resultado es independiente de la
historia pasada del sistema (comparaciones previas), se lleva a cabo con un circuito combinacional.
3.- Implementación de sistema de alarma. Para implementar el sistema mediante Logisim se utiliza
el módulo de comparación. Dicho módulo admite su ajuste para la comparación directa en C2 o bien
en binario. Dependiendo de su modo de ajuste cambia el método de empleo del resultado obtenido. A
continuación se comentan ambos casos.
(A) Comparador en modo C2. El comparador compara los valores de entrada teniendo en cuenta el
signo. En la figura adjunta se muestra el diagrama lógico del circuito. En este caso la condición
de alarma se produce cuando el valor de T es mayor que +5 o menor que −3 (1101(C2 = d(16 ).

(B) Comparador en modo binario sin signo. El comparador compara los valores de entrada sin
tener en cuenta el signo. Por tanto, el resultado de la comparación se obtiene comparando dos
valores binarios de entrada. En la figura siguiente se muestra el diagrama lógico del circuito en
el que se emplean comparadores de 4 bits y la condición de alarma se produce cuando el valor
binario es mayor que 0101(C2 (+5) y menor que 1101(C2 (−3 = d(16 ). Consulta la tabla más
abajo para entender este razonamiento.
134 Capítulo 6. Módulos lógicos y aritméticos

Observa que aunque el comparador tiene dos modos de operación distintos, los valores de entrada son
idénticos y lo que cambia es la interpretación que el comparador hace de dichos valores. Este segundo
modo de comparación tiene una comprobación menos intuitiva, por lo que se recomienda emplear la
codificación en C2 cuando se deseen comparar valores con signo.
C2 entero
0111 7
0110 6
0101 5
0100 4
0011 3
0010 2
0001 1
0000 0
1111 -1
1110 -2
1101 -3
1100 -4
1011 -5
1010 -6
1001 -7
1000 -8

Problema 6.4 ★★★ Diseña un circuito combinacional de dos entradas de 4 bits A y B, cuya salida f sea:

0000, si A > B o A = B
B en C1, si A < B
Contempla los requisitos siguientes:
1.- Emplea un comparador y los módulos combinacionales necesarios de Logisim para simular el
comportamiento lógico del sistema.
2.- Modifica el circuito para que f = B en C2 cuando A < B.

 Solución: 1.- Para comparar A y B se emplea un comparador de 4 bits. La salida se obtendrá con
un MUX 2 × 1 multibit (4 bits). La entrada de selección del MUX se conecta a la salida «menor que»
(‘<’) del comparador, de modo que cuando esta valga 0, la salida del MUX sea 0000. Así mismo,
cuando dicha entrada valga 1, la salida será B′ (C1).
En la implementación con Logisim el comparador debe estar configurado en modo de comparación
de números binarios sin signo (ver figura siguiente izda.). En dicho circuito el MUX se puede sustituir
por su implementación mediante puertas lógicas. Dicha implementación (ver figura adjunta dcha.)
emplea el módulo de extensión de bits porque la salida del comparador debe tener 4 bits. El módulo de
extensión de bits completa su salida de 4 bits con el bit de entrada (salida del comparador).

2.- Para expresar B en C2 es preciso sumar 1 a la representación C1. En este caso se emplea un sumador
6.1 Circuitos con comparadores 135

en el que se pueden adoptar dos soluciones alternativas dependiendo de que el 1 sumado se considere
operando o acarreo de entrada.

Problema 6.5 ★★★ En la salida de un parking se instala un sistema sensorial que proporciona la
velocidad en km/h, codificada en BCD, de los vehículos que abandonan el parking. La resolución de
dicho sistema sensorial es de 1 km/h. Diseña un circuito de alerta luminosa a los conductores cuando la
velocidad del vehículo sea excesiva, al superar 15 km/h (ROJO), o cuando sea demasiado reducida, al no
superar los 5 km/h (ÁMBAR). Si la velocidad está en el rango permitido la señal luminosa será de color
VERDE. Contesta razonadamente las cuestiones siguientes:
1.- ¿Cuántos bits se precisan como mínimo para codificar la velocidad de los vehículos?
2.- Diseña un circuito con Logisim que muestre la velocidad del vehículo mediante dos displays de 7
segmentos y active la alerta luminosa correspondiente cuando la velocidad del vehículo esté fuera
del rango requerido.
Vel. (km/h)

Demasiado rápido (ROJO)


Sistema generador
de alarma Vel. Apropiada (VERDE)
Demasiado lento (ÁMBAR)

 Solución: 1.- Bits necesarios para codificar la velocidad. Para codificar la velocidad de los
vehículos se emplearán 8 bits como mínimo, ya que se deben codificar dos cifras en BCD.
2.- Diseño del circuito. El sistema a diseñar debe generar señales luminosas ante las condiciones que
la provocan: ROJO, si la velocidad es superior a 15 km/h, ÁMBAR si es inferior a 5km/h, y VERDE si
la velocidad está en el rango adecuado.
Para comprobar las condiciones de alarma se emplearán dos comparadores de 4 bits, uno para cada
cifra (V1 y V0 ) de la velocidad (codificada en BCD). El primer comparador comparará la cifra más
significativa de la velocidad (V1 ), mientras que con el segundo se compara la cifra menos significativa
de la velocidad (V0 ). De este modo las condiciones de funcionamiento quedan:
SI (V1 > 1), ⇒ activar luz ROJA

SI (V1 = 1) AND (V2 > 5), ⇒ activar luz ROJA

SI (V1 < 1) AND (V2 < 5), ⇒ activar luz ÁMBAR

SI la velocidad en rango aceptable, ⇒ activar luz VERDE


Empleando comparadores y puertas lógicas para implementar las condiciones indicadas, se obtiene el
circuito de la figura adjunta:
136 Capítulo 6. Módulos lógicos y aritméticos

6.2 Circuitos conversores de código


Problema 6.6 ★✩✩ Implementa un conversor de código BCD a BCD-ex3 (BCD exceso 3) de 4 bits. El
código de entrada será [A BC D] y el de salida [p q r s], donde cada una de las variables lógicas representa
un bit del código correspondiente. Contesta razonadamente a las cuestiones siguientes:
1.- Construye la tabla de verdad del conversor.
2.- Determina las expresiones simplificadas para las funciones de salida p, q, r y s.
3.- ¿Cuáles son las formas canónicas de las funciones de salida?
Nota: Recuerda que el código BCD-ex3 se obtiene sumando 3 al BCD natural.

A p
MSB MSB
B Conversor q
C BCD natural r
D BCD exceso 3 s
LSB LSB

 Solución: 1.- Tabla de verdad del conversor. El código BCD-ex3 se consigue sumando 0011 (3)
al código BCD. Por tanto la tabla de verdad queda según se muestra a continuación. En dicha tabla los
códigos de entrada superiores a 1001 (9) corresponden a condiciones indiferentes.

2.- Expresiones simplificadas de las funciones de salida. Para cada función de salida se elaboran los
K-maps y se obtienen sus formas simplificadas SOP y POS. Para las formas SOP se tiene:
6.2 Conversores de código 137

p = BD + BC + A
q = B′ D + B′C + BC′ D′
r = C′ D′ +CD
s = D′
Para las formas POS se tiene:

p = (A + B)(A +C + D)
q = (B +C + D)(B′ + D′ )(B′ +C′ )
r = (C + D′ )(C′ + D)
s = D′
3.- Formas canónicas de las funciones de salida. Para obtener las formas canónicas se tiene en cuenta
el valor asignado a las condiciones indiferentes para llevar a cabo la simplificación realizada en el
apartado anterior. De este modo se obtiene:

p = ∑ m(5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)


= ∏ M(0, 1, 2, 3, 4)

q = ∑ m(1, 2, 3, 4, 9, 10, 11, 12)


= ∏ M(0, 5, 6, 7, 8, 13, 14, 15)

r = ∑ m(0, 3, 4, 7, 8, 11, 12, 15)


= ∏ M(1, 2, 5, 6, 9, 10, 13, 14)

s = ∑ m(0, 2, 4, 6, 8, 10, 12, 14)


= ∏ M(1, 3, 5, 7, 9, 11, 13, 15)

138 Capítulo 6. Módulos lógicos y aritméticos

Problema 6.7 ★✩✩ Diseña un circuito combinacional que convierta un código Gray, de cuatro bits, en
el número binario correspondiente según la tabla adjunta. Además del diseño convencional, intenta la
implementación del circuito con puertas lógicas de tipo OR exclusivo (XOR).
Cod. Gray Bin. natural
0000 0000
0001 0001
0011 0010
0010 0011
0110 0100
0111 0101
0101 0110
0100 0111
1100 1000
1101 1001
1111 1010
1110 1011
1010 1100
1011 1101
1001 1110
1000 1111

 Solución: En la especificación que se aporta para el circuito se identifica claramente que tanto
el número de entradas como salidas es 4. Por tanto, podemos elegir las variables A, B, C y D como
entradas, y para las salidas, p, q, r y s.
En la tabla ofrecida en el enunciado se indica claramente cuál es la salida correspondiente a cada
código de entrada. Por tanto, a partir de ella es muy sencillo obtener la tabla de verdad que se indica a
continuación:

Las expresiones canónicas de las funciones de salida se obtienen de modo inmediato a partir de la
tabla de verdad anterior. Las formas SOP y POS simplificadas de cada función de salida se calculan
mediante el empleo de K-maps. De este modo, para las formas SOP se tiene:
6.2 Conversores de código 139

p=A
q = A′ B + AB′
r = A′ B′C + A′ BC′ + AB′C′ + ABC
s = A′ B′C′ D + A′ B′CD′ + A′ BC′ D′ + A′ BCD + AB′C′ D′ + AB′CD + ABC′ D + ABCD′
Para las formas POS se tiene:

p=A
q = (A + B)(A′ + B′ )
r = (A + B +C)(A + B′ +C′ )(A′ + B +C′ )(A′ + B′ +C)
s = (A + B +C + D)(A + B +C′ + D′ )(A + B′ +C + D′ )(A + B′ +C′ + D)
(A′ + B +C + D′ )(A′ + B +C′ + D)(A′ + B′ +C + D)(A′ + B′ +C′ + D′ )
Las expresiones anteriores se pueden implementar mediante redes de dos niveles de puertas lógicas
de tipo AND/OR (formas SOP) o OR/AND (formas POS). Sin embargo, se observa que existe una
relación entre las expresiones simplificadas y la función OR-exclusivo (XOR). De este modo las
funciones de salida se pueden expresar como:

p = A; q = p ⊕ B; r = q ⊕C; s = r⊕D

El circuito correspondiente a estas expresiones resulta:

Problema 6.8 ★★✩ Diseña un circuito combinacional para convertir a BCD, un dígito decimal codifica-
do con código binario ponderado (8, −4, −2, 1). De este modo, por ejemplo el código 1111 corresponde
al dígito: 1 × (+8) + 1 × (−4) + 1 × (−2) + 1 × (+1) = 3
Completa razonadamente los apartados siguientes:
1.- Calcula la tabla de verdad del conversor de código.
2.- Implementa el conversor mediante puertas lógicas.
3.- Repite la implementación mediante combinación de DEC y COD.
140 Capítulo 6. Módulos lógicos y aritméticos

 Solución: 1.- Tabla de verdad del conversor de código. Para codificar los dígitos decimales
del 0 al 9 se precisan 4 bits. Por tanto, la tabla de verdad tiene 4 variables de entrada (A, B, C, D)
correspondiente a la codificación del dígito en el código ponderado (8,-4,-2,1). Dicha tabla poseerá
4 variables de salida para el código BCD correspondiente (p, q, r, s). Se añade una columna con el
valor decimal de la codificación, para observar las filas que corresponden a condiciones indiferentes
asociadas a los valores negativos del código de entrada.
ABCD → dec. pqrs
0000 → 0 0000
0001 → 1 0001
0010 → -2 xxxx
0011 → -1 xxxx
0100 → -4 xxxx
0101 → -3 xxxx
0110 → -6 xxxx
0111 → -5 xxxx
1000 → 8 1000
1001 → 9 1001
1010 → 6 0110
1011 → 7 0111
1100 → 4 0100
1101 → 5 0101
1110 → 2 0010
1111 → 3 0011
2.- Implementación del conversor mediante puertas lógicas. Para la implementación mediante
puertas lógicas se obtienen las expresiones simplificadas mediante K-maps. De este modo se obtienen
las funciones en su forma simplificada SOP:

p = AB′C′
q = B′C + BC′ = B ⊕C
r =C
s=D

3.- Implementación del conversor mediante combinación de DEC y COD. Para obtener el conversor
se tiene en cuenta el cambio entre los códigos binarios de entrada y salida para concatenar la salida del
DEC con la entrada del COD. De este modo se llega al circuito siguiente:
6.2 Conversores de código 141

Problema 6.9 ★★✩ Diseña un circuito lógico que, partiendo de un código BCD, active un display de 7
segmentos para mostrar el dígito decimal correspondiente. El display de 7 segmentos está formado por
LED encargados de la iluminación de cada segmento del display. Cada LED se activa con un nivel alto (1),
si su configuración es en cátodo común, o con un nivel bajo (0), si su configuración es en ánodo común.
Para resolver este ejercicio asume una configuración en cátodo común y la denominación de segmentos
según se indica en la figura proporcionada. Completa razonadamente cada uno de los apartados siguientes:
1.- Construye la tabla de verdad para las funciones de activación de los segmentos del display.
2.- Determina las expresiones simplificadas óptimas de las funciones de salida.
3.- Implementa el conversor de código mediante una memoria ROM empleando Logisim para simular
su comportamiento.

a
f b
g
e c
d

 Solución: 1.- Tabla de verdad de las funciones de activación del display. Para facilitar la cons-
trucción de la tabla de verdad para las 7 funciones que activan los diodos led del display, construimos
una tabla con los segmentos activos para cada uno de los dígitos que muestra el display. Para ello,
teniendo en cuenta la información de la figura proporcionada en el enunciado, se puede obtener:
Dígito Segmentos activos
0 a, b, c, d, e, f
1 b, c
2 a, b, d, e, g
3 a, b, c, d, g
4 b, c, f , g
5 a, c, d, f , g
6 a, c, d, e, f , g
7 a, b, c
8 a, b, c, d, e, f , g
9 a, b, c, d, f , g
142 Capítulo 6. Módulos lógicos y aritméticos

La tabla de verdad se obtiene colocando un 1 en la columna del segmento que está activado o un
0 en caso contrario. Los valores de entrada correspondientes a códigos mayores que 9 darán lugar a
condiciones indiferentes. De este modo, la tabla de verdad que se obtiene es:

2.- Expresiones simplificadas óptimas de las funciones de salida. Con ayuda de Logisim es posible
obtener las versiones simplificadas para las 7 funciones correspondientes a la activación de cada
segmento del display. Sin embargo, se debe tener en cuenta que cuando la tabla de verdad tiene
condiciones indiferentes, Logisim proporciona la minimización SOP y POS de modo independiente.
Es decir, pueden corresponder a valores contrapuestos de las condiciones indiferentes y, por tanto, ser
funciones diferentes. En estos casos a una misma condición de entrada se asigna valor 1 para obtener
la forma SOP y valor 0 para la forma POS, aunque esto afecta a valores de entrada que no se producen.
Esta situación se produce para las funciones a, d, f y g, según se indica en la figura siguiente:
6.2 Conversores de código 143

Para las tres funciones restantes (b, c, e) la situación mencionada no se produce, según se muestra
en la figura adjunta:

Para obtener las simplificaciones óptimas se comparan los valores alternativos obtenidos para las
formas SOP y POS. Teniendo en cuenta estas consideraciones, las expresiones simplificadas óptimas
que se obtienen son:
a = (A + B +C + D′ )(B′ +C + D)
b = (B′ +C + D′ )(B′ +C′ + D)
c = (B +C′ + D)
d = (A + B +C + D′ )(B′ +C + D)(B′ +C′ + D′ )
e = D′ (B′ +C)
f = (A + B + D′ )(B +C′ )(C′ + D′ )
g = (A + B +C)(B′ +C′ + D′ )
3.- Implementación de conversor de código mediante memoria ROM. La memoria ROM se emplea
para relacionar la entrada (dirección de memoria) con las funciones de salida (dato almacenado). En
este caso concreto se configura una memoria ROM con 4 bits de direcciones ([A BC D]) y 8 bits de
datos ([abcd e f g0]) que expresamos por su valor en hexadecimal, teniendo en cuenta que el bit menos
significativo lo consideramos 0, ya que se emplea para activar el punto decimal del display. La tabla
siguiente muestra los valores hexadecimales correspodientes a cada una de las entradas:
ABCD abcd efg0 Dato (hex.)
0000 1111 1100 → fc
0001 0110 0000 → 60
0010 1101 1010 → da
0011 1111 0010 → f2
0100 0110 0110 → 66
0101 1011 0110 → b6
0110 1011 1110 → be
0111 1110 0000 → e0
1000 1111 1110 → fe
1001 1111 0110 → f6
144 Capítulo 6. Módulos lógicos y aritméticos

A pesar de que es posible direccionar 16 posiciones de la memoria, las posiciones por encima de 9
no es preciso modificarlas, ya que son valores que nunca se producen.
El circuito en Logisim para simulación se muestra en la figura siguiente:

En el circuito anterior se muestra la presencia de un módulo adaptador que permite adaptar el


conexionado de display proporcionado en el enunciado, al conexionado del elemento display presente
en la librería de Logisim. La figura siguiente muestra el esquema de dicho módulo de adaptación de
conexionado del elemento display:

Problema 6.10 ★★✩ Diseña un conversor de código de 4 bits que convierta un número binario de cuatro
bits [A BC D], representado en complemento a dos (C2), a su representación en SM (signo magnitud) con 4
bits [p q r s]. Se debe tener en cuenta que el código 1000 permanecerá inalterado. Completa razonadamente
los apartados siguientes:
1.- Construye la tabla de verdad de las funciones de conversión.
2.- Determina las formas canónicas de las funciones de salida p, q, r y s.
3.- Calcula las expresiones simplificadas de las funciones de salida.
4.- Implementa el conversor mediante concatenación de DEC-COD para simulación con Logisim.

 Solución: 1.- Tabla de verdad de las funciones de conversión.


La tabla de verdad presenta los 16 códigos posibles de entrada [A BC D]. Para asociar el código de
salida [p q r s], se tiene en cuenta el valor correspondiente a la entrada, sabiendo que está expresado en
C2. El código de salida se obtiene expresando dicho valor en SM.
Puesto que el valor −8 si es representable en C2, pero no en SM, se debe decidir qué salida asignar
a dicho valor. En este caso el enunciado indica que el código permanecerá inalterado. Por tanto, la
tabla de verdad queda:
6.2 Conversores de código 145

Dec. ABCDC2 (valor) pqrsSM (valor) Dec.


0 0000 (0) 0000 (0) 0
1 0001 (1) 0001 (1) 1
2 0010 (2) 0010 (2) 2
3 0011 (3) 0011 (3) 3
4 0100 (4) 0100 (4) 4
5 0101 (5) 0101 (5) 5
6 0110 (6) 0110 (6) 6
7 0111 (7) 0111 (7) 7
8 1000 (-8) 1000 (-8) 8
9 1001 (-7) 1111 (-7) 15
10 1010 (-6) 1110 (-6) 14
11 1011 (-5) 1101 (-5) 13
12 1100 (-4) 1100 (-4) 12
13 1101 (-3) 1011 (-3) 11
14 1110 (-2) 1010 (-2) 10
15 1111 (-1) 1001 (-1) 9
2.- Formas canónicas de las funciones de salida. A partir de la tabla de verdad anterior, se obtienen
las formas canónicas de cada una de las funciones de salida:
p = ∑ m(8, 9, 10, 11, 12, 13, 14, 15) = ∏ M(0, 1, 2, 3, 4, 5, 6, 7)
q = ∑ m(4, 5, 6, 7, 9, 10, 11, 12) = ∏ M(0, 1, 2, 3, 8, 13, 14, 15)
r = ∑ m(2, 3, 6, 7, 9, 10, 13, 14) = ∏ M(0, 1, 4, 5, 8, 11, 12, 15)
s = ∑ m(1, 3, 5, 7, 9, 11, 13, 15) = ∏ M(0, 2, 4, 6, 8, 10, 12, 14)
3.- Expresiones simplificadas de funciones de salida. Mediante K-maps se obtienen las expresiones
simplificadas SOP y POS de cada una de las funciones de salida. Para las formas SOP se tiene:

p=A
q = A′ B + BC′ D′ + AB′ D + AB′C
r = A′C +CD′ + AC′ D
s=D
Finalmente para las formas POS se obtiene:

p=A
q = (A + B)(B +C + D)(A′ + B′ + D′ )(A′ + B′ +C′ )
r = (A +C)(C + D)(A′ +C′ + D′ )
s=D
146 Capítulo 6. Módulos lógicos y aritméticos

4.- Implementación del conversor mediante concatenación de DEC y COD. La implementación


con DEC 4 × 16 y COD 16 × 4 es muy sencilla, pues cada salida del DEC se conecta a la entrada
del COD con el nuevo código. En este caso solo es preciso tener en cuenta los códigos binarios y
su conversión a decimal (sin signo), independientemente de la interpretación que se haga de ellos.
Esto es, C2 o SM. En el circuito para conseguir la conexión apropiada entre el DEC y el COD se han
empleado separadores de bits (splitter). También se ha optado por emplear splitter en las entradas y
salidas porque de este modo es posible analizar el circuito con la herramienta integrada en Logisim y
comprobar la validez del circuito a partir la tabla de verdad final obtenida.

6.3 Circuitos con módulos aritméticos


Problema 6.11 ★✩✩ El diagrama de la figura adjunta representa un sumador completo (full adder) de 3
bits.
A 7
3 3

1
Sumador

cout 3
s

Completa razonadamente los apartados siguientes:


1.- Indica cuáles son las señales de entrada y las de salida, señalando el número de bits de cada una y
su valor.
2.- ¿Especifica qué tipo de operación realiza el sistema: lógica, aritmética u otra?
3.- ¿Cuáles son los valores posibles, menor y mayor, a su salida y con qué valores de entrada se produce
cada uno?
4.- Implementa un circuito equivalente con puertas lógicas para simulación con Logisim.

 Solución: 1.- Señales de entrada y salida.

ENTRADAS: Las señales de entrada queda marcadas por una flecha entrante en el módulo
«Sumador». Estas señales son los operandos, que se marcan con sendas flechas en la parte
6.3 Módulos aritméticos 147

superior del bloque y que tienen un ancho de 3 bits indicado con una barra inclinada que
atraviesa la línea de entrada. Son señales de tipo multibit, denominadas también buses. En este
caso el ancho del bus es de 3 bits. El valor de estas dos entradas es A y 111 (7) según se indica en
la figura. Además de los dos operandos, hay otra entrada (flecha entrante por la dcha.) consistente
en un único bit de valor 1. Al tratarse de un sumador, dicha señal constituye el acarreo de entrada
(Cin ).
SALIDAS: Como resultado de la operación de suma se genera un resultado señalado en la salida
S ofrecido en un bus de 3 bits. Existe una señal cout adicional de salida que constituye el acarreo
de salida de la operación de suma.
2.- Tipo de operación realizada en el sistema. La operación que realiza el sistema es la suma. Por
tanto, se trata de una operación de tipo aritmético. Puesto que tiene en cuenta el acarreo de entrada y
de salida, se trata de un sumador completo de 3 bits. Como uno de los operandos es fijo 111 (7) y el
acarreo de entrada es 1, el resultado de la operación es: A + 7 + 1 = A + 8
Este resultado se obtendría considerando una salida compuesta de 4 bits, con cout como bit más
significativo, siendo el resto de bits s2 , s1 , s0 . Ya que, 8(10 = 1000(2 , los bits de s = [s2 s1 s0 ] coincidirán
con los bits de A = [A2 A1 A0 ].
3.- Valores menor y mayor de la salida. Los valores menor y mayor del resultado se producen
respectivamente con el valor menor y mayor del operando variable A. Esto es, con A = 000 y A = 111.
Si A = 000, entonces cout = 1 y s = 000. Esto es el resultado: 1000(2 = 8(10 . Si A = 111 entonces
cout = 1 y s = 111. Por tanto, el resultado es: 1111(2 = 15(10 .
4.- Implementación del circuito. Para implementar el sistema solo son precisas puertas lógicas de
tipo XOR, AND y OR. Las salidas del circuito solo depende del valor instantáneo de las entradas, de
modo que se trata de un sistema combinacional. En Logisim podemos optar por dos implementaciones
alternativas.
➡ Implementación completa con puertas lógicas de un sumador en paralelo con acarreo serie:

➡ Implementación rápida con módulo sumador:


148 Capítulo 6. Módulos lógicos y aritméticos

Problema 6.12 ★★✩ Implementa el sumador completo de 1 bit mediante un DEC y puertas lógicas de
dos entradas. (Sugerencia: construye la tabla de verdad del sumador completo de 1 bit).

 Solución: Partiendo de la tabla de verdad de la suma (s) y el acarreo de salida (cout ) en función de
los bits de entrada (A, B) y el acarreo de entrada (Cin ), se obtiene:
Cin AB cout s
0 00 0 0
0 01 0 1
0 10 0 1
0 11 1 0
1 00 0 1
1 01 1 0
1 10 1 0
1 11 1 1
De esta tabla se obtienen de modo inmediato las funciones de cout y s expresadas en sus formas
canónicas:
cout = ∑ m(3, 5, 6, 7)
= ∏ M(0, 1, 2, 4)

s = ∑ m(1, 2, 4, 7)
= ∏ M(0, 3, 5, 6)

Estas funciones se implementan de modo sencillo con un DEC 3 × 8 con salidas activas a nivel alto, que
es un generador de minitérminos. Para completar las funciones se añaden las puertas OR que permiten
hacer la suma lógica de los minitérminos deseados. En la figura adjunta se muestra la implementación
con puertas OR de 2 entradas (dcha.) y puertas OR de 4 entradas (izda.).

Problema 6.13 ★★★ Implementa mediante Logisim un sumador completo de 4 bits con acarreo
anticipado. Emplea diseño jerárquico usando un módulo sumador completo de 1 bit que proporcione como
salidas: el acarreo propagado (Pi = Ai ⊕ Bi ), el acarreo generado (Gi = Ai · Bi ) y la suma (Si = Pi ⊕Ci ).

 Solución: A partir de las ecuaciones del sumador completo de 1 bit se puede obtener el módulo
básico señalado:
Pi = Ai ⊕ Bi
Gi = Ai · Bi
Si = Pi ⊕Ci
Ci+1 = Gi + Pi ·Ci
6.3 Módulos aritméticos 149

Teniendo en cuenta las ecuaciones del acarreo Ci+1 , para un sumador paralelo con acarreo an-
ticipado de 4 bits, los acarreos de salida de cada etapa se obtienen (tomando C0 ≡ Cin y C4 ≡ Cout )
como:
C1 = G0 + P0C0
C2 = G1 + P1C1 = G1 + P1 G0 + P1 P0C0
C3 = G2 + P2C2 = G2 + P2 G1 + P2 P1 G0 + P2 P1 P0C0
C4 = G3 + P3C3 = G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 G0 + P3 P2 P1 P0C0

Este sumador se puede emplear como un módulo para realizar diseño jerárquico y obtener sumadores
más complejos. Para facilitar dicho diseño el módulo sumador de 4 bits debería proporcionar como
salidas adicionales los acarreos generado y propagado del bloque completo:

GG = G3 + P3C3 = G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 G0 (Acarreo generado)


PG = P3 P2 P1 P0 (Acarreo propagado)


150 Capítulo 6. Módulos lógicos y aritméticos

Problema 6.14 ★★✩ Dado el circuito de la figura adjunta contesta razonadamente las cuestiones de los
apartados siguientes:
1.- Enumera tanto las variables de entrada como de salida del circuito y determina la tabla de verdad
de las salidas respecto de las entradas.
2.- Calcula las formas canónicas de las funciones lógicas de salida.
3.- Expresa la relación aritmética entre la entrada y la salida del sistema.
4.- Implementa un circuito aritmético equivalente al sistema proporcionado inicialmente. Emplea
Logisim para realizar la simulación lógica de los circuitos.

Módulo aritmético
A0
0 f2
MUX
1 2x1
1

A1
A0
0 f1
[A1 A0] MUX [f2 f1 f0]
A0 2x1
1
A1

f0
A0 0
DEC
1x2
1

 Solución: 1.- Variables de E/S y tabla de verdad de las salidas. Inspeccionando la figura
proporcionada se deben identificar las flechas ligadas a las señales para determinar de modo sencillo
que las entradas son: A0 (entradas de multiplexores y decodificador), A1 (entradas de selección en
multiplexores). Además, hay una entrada constante ‘1’ en el primero de los multiplexores. Las salidas
son: f2 , f1 (en los multiplexores superior y central) y f0 (en el decodificador inferior). Existe una
salida adicional en el decodificador que no tiene asociada ninguna de las variables que interesan en el
problema.
La tabla de verdad de las señales de salida, o funciones de salida, se puede construir mediante
evaluación exhaustiva de las salidas para cada una de las combinaciones de las señales de entrada. De
este modo se tiene:
[A1 A0 ] [ f2 f1 f0 ]
00 (0) 011 (3)
01 (1) 100 (4)
10 (2) 101 (5)
11 (3) 110 (6)
2.- Formas canónicas de las funciones de salida. Se obtienen directamente de la tabla de verdad del
apartado anterior. De este modo, se tiene:
Formas canónicas de f2 :

f2 = ∑ m(1, 2, 3) = M0 = A1 + A0

Ambas expresiones se simplifican a: f2 = A1 + A0


6.3 Módulos aritméticos 151

Formas canónicas de f1 :

f1 = ∑ m(0, 3) = ∏ M(1, 2)

Estas no admiten simplificación, pues son equivalentes a la función XNOR: f1 = (A1 ⊕ A0 )′


Formas canónicas de f0 :

f0 = ∑ m(0, 2) = ∏ M(1, 3)

Ambas expresiones se simplifican a: f0 = A′0


Un modo alternativo de calcular las funciones de salida y su tabla de verdad consiste en recurrir a las
expresiones SOP que generan el MUX y el DEC del circuito proporcionado en el enunciado. De este
modo, se tiene que:

f2 = A′1 · (A0 ) + A1 · (1) = (A′1 + A1 )(A0 + A1 ) = A0 + A1


f1 = A′1 · (A′0 ) + A1 · (A0 ) = (A1 ⊕ A0 )′
f0 = A′0

A partir de las expresiones anteriores se obtiene la tabla de verdad correspondiente a cada una de las
funciones lógicas f2 , f1 y f0 .
3.- Relación aritmética entre la entrada y la salida. Observando el equivalente decimal de cada
uno de los valores de entrada y salida en la tabla de verdad, se obtiene que el circuito equivale a la
operación aritmética:

f = A+3

4.- Implementación del circuito. Como muestra la figura siguiente, el circuito aritmético equivalente
se puede implementar con las funciones lógicas obtenidas en el apartado 2 (ver figura izda.) o
alternativamente utilizando un sumador completo de 2 bits en el que una de las entradas es el valor
constante 3 (ver figura dcha.):

Problema 6.15 ★★★ Se proporciona un número A de 4 bits con signo, codificado en complemento a
dos (C2). Diseña un circuito lógico con Logisim que muestre en un display el valor absoluto del número
señalado, indicando en el punto decimal del display (dp) si A es negativo (dp= 1).

 Solución: El esquema de implementación se basa en la comprobación del bit de signo de A. Este


viene dado por el bit MSB (A3 ) al que se puede acceder con un splitter. Mediante la operación de
inversión seguida de la suma de 1 se obtiene el C2 del número introducido. En realidad esta operación
es el operador cambio de signo en C2. Esta operación permite obtener el valor absoluto del número
cuando este es negativo. Un MUX 2 × 1 (multibit) permite decidir la salida en función del bit de signo.
Si el número es negativo (A3 = 1), el valor obtenido es el valor absoluto obtenido del cálculo del C2 de
número original. Si el número es positivo (A3 = 0), a la salida se traslada el valor de entrada. En una
implementación alternativa se emplean los módulos de selección de bit (bit select) y cálculo del C2
(cambio de signo o negator) para ilustrar su empleo.
152 Capítulo 6. Módulos lógicos y aritméticos

Problema 6.16 ★★✩ En un sistema digital se introducen dos números A y B de 4 bits en C2. Completa
razonadamente los apartados siguientes:
1.- Diseña un circuito que muestre en un display el resultado de la resta A − B cuando esta sea de signo
positivo o 0. En caso contrario no se debe mostrar nada.
2.- Modifica el diseño para que se muestre en el display el valor absoluto del resultado indicando el
valor del signo en el punto decimal del display (activo para negativo) y (apagado para positivo).

 Solución: 1.- Para realizar la resta se emplea la suma del C2 del sustraendo (B). Para calcular el
C2 se utiliza el elemento de cambio de signo (negator) de la librería aritmética de Logisim. El signo
del resultado se obtiene mediante inspección de su bit MSB usando un elemento separador de bits
(splitter). El valor del signo actúa como entrada de habilitación de un buffer controlado (triestado)
de modo que cuando el bit de signo es 1, la salida del buffer queda en estado flotante y el display no
muestra nada (ver figura siguiente).

2.- El circuito se modifica incluyendo un negador sobre el resultado para obtener el valor positivo en
caso del que el resultado sea de signo negativo. Un MUX 2 × 1 decide, en función del bit del signo, si
la salida es el resultado (cuando este es positivo) o el valor absoluto (cuando es negativo). El circuito
resultante se muestra en la figura siguiente:


6.3 Módulos aritméticos 153

Problema 6.17 ★★★ Un acusado será juzgado en un juicio con jurado popular formado por cuatro
miembros: A, B, C y D. Cada miembro del jurado emitirá su voto (inocente=0 o culpable=1) mediante
activación de un interruptor. El veredicto final tendrá en cuenta la suma de votos individuales, pero en
caso de empate decidirá el voto de calidad del miembro A del jurado. Se reservará un interruptor especial
para el juez, cuya activación cambia el sentido del veredicto final. Diseña un circuito combinacional,
para simulación lógica con Logisim, que implemente la funcionalidad descrita ofreciendo como salida el
veredicto.

Juez A B C D

 Solución: Un modo sencillo de abordar este problema consiste en realizar un circuito combinacional
a partir de la especificación para obtener el veredicto del jurado. Su salida se introduciría como entrada
de una puerta XOR junto a la decisión de cambio de veredicto del juez para obtener el resultado
final. Por tanto, se trataría de un circuito con 4 entradas (A, B, C, D) y una salida (v) que otorgaría el
veredicto de la mayoría y en caso de empate el valor del voto de calidad emitido por el miembro A del
tribunal.
La figura siguiente muestra el resultado de este diseño:

El diseño también se puede plantear alternativamente empleando módulos aritméticos para obtener
el número de entradas activas (con valor 1) y un comparador para detectar la condición de empate. Un
MUX 2 × 1 permitiría decidir si la salida se obtiene a partir de la entrada A.
En la figura siguiente se muestra el circuito resultante empleando sumadores para obtener el
número de entradas activas (superior), o bien el módulo bit adder (inferior) que realiza esta función en
Logisim.
154 Capítulo 6. Módulos lógicos y aritméticos

Problema 6.18 ★★★ Una comisión parlamentaria está formada por miembros de dos partidos políticos
L y C, siendo su composición: 4 miembros de L y 3 de C. Las decisiones de la comisión sobre una
propuesta (1 = a favor, 0 = en contra) se tomarán de acuerdo al siguiente criterio:
SI hay mayoría de votos entre los miembros de L, ENTONCES esta será la decisión adoptada.
SI se produce un empate entre los miembros de L, ENTONCES la decisión será la que adopte la
mayoría de los miembros de C.
Diseña un circuito lógico que proporcione la decisión de la comisión tomando como entrada los votos de
cada uno de sus miembros. Sugiere un circuito Logisim para simular el funcionamiento de la comisión.
L
C

 Solución: Para determinar la decisión del grupo L formado por 4 miembros se debe calcular el
número de votos a favor (1). Esto es, el número de entradas activas. Dicho valor se puede obtener
mediante sumadores bit a bit, o bien con el elemento bit adder de Logisim. El valor obtenido se
compara con el valor de empate (= 2) o determinar si la mayoría ha votado a favor (‘>’) o en contra
(‘<’).
Para determinar si se produce mayoría en el grupo C se empleará un circuito combinacional de
mayoría, ya que el grupo está compuesto de tres miembros y no es posible el empate.
Finalmente, se emplea un MUX 2 × 1 para que, en caso de empate en el grupo L, su salida
proporcione el resultado de la mayoría obtenida en el grupo C. En caso contrario, la salida se obtiene
6.3 Módulos aritméticos 155

del resultado de mayoría del grupo L. La figura adjunta muestra tanto la tabla de verdad y forma SOP
simplificada de la función de mayoría para el grupo C, como el circuito completo final.

Problema 6.19 ★★★ En un centro educativo se proporcionan las dos calificaciones N1 y N2 de los
estudiante expresadas en BCD con 4 bits. La calificación máxima posible es 9.
Diseña un circuito lógico que obtenga la nota final de cada estudiante en función del valor de entrada
de dos señales de control [C1 C0 ] según el siguiente criterio:
00 → nota mínima,
01 → nota media redondeada por defecto,
10 → nota media redondeada por exceso, y
11 → nota máxima.
Elabora un circuito con Logisim que permita simular el funcionamiento lógico del sistema.

 Solución: Los resultados deseados se obtendrán de modo seleccionado mediante un MUX 4 × 1


con C1 y C0 como señales de selección. Para obtener el valor mayor y menor de N1 y N2 se emplea un
comparador de 4 bits. La salida del comparador se empleará como señal de selección de dos MUX 2 × 1
para obtener el valor mayor y el menor de N1 y N2 . Las señales de selección para dichos MUX se
obtienen de las salidas ‘>’ y ‘<’ del comparador.
En la solución propuesta se emplea únicamente la salida ‘>’ como selección en ambos MUX. Esto
se debe a que en este caso los MUX se han configurado como un «crossbar switch» (switch cruzado).
De este modo, si el primero muestra el mayor de los valores, el segundo muestra el menor.
Para calcular la nota media es preciso sumar N1 y N2 y dividir el resultado entre 2. La suma se
lleva a cabo con un sumador de 4 bits y la división entre 2 mediante desplazamiento una posición hacia
la derecha (el bit menos significativo se desprecia). En este caso, para llevar a cabo el desplazamiento
se emplea una pareja de separadores (splitter). Para obtener redondeo por defecto, se desprecia el
156 Capítulo 6. Módulos lógicos y aritméticos

bit menos significativo del resultado de la suma. El redondeo por exceso se consigue mediante un
nuevo sumador que suma el bit menos significativo a la media (resultado de división entre 2). La figura
siguiente muestra el circuito resultante:


III
Sistemas secuenciales

7 Biestables . . . . . . . . . . . . . . . . . . . . . . . . . . 159
7.1 Características de los biestables
7.2 Circuitos con biestables

8 Registros y contadores . . . . . . . . . . . . . . 173


8.1 Contadores asíncronos
8.2 Contadores síncronos
8.3 Contadores basados en registros

9 Sistemas secuenciales síncronos . . . . 185


9.1 Análisis secuencial
9.2 Diseño secuencial
7. Biestables

Los biestables son celdas elementales de memoria que almacenan información sobre la historia previa del
sistema secuencial del que forman parte. Gracias a los biestables es posible obtener módulos funcionales
como los registros y contadores que constituyen componentes esenciales de los sistemas secuenciales más
complejos.
Todos los biestables cuentan en su parte izquierda con las entradas que determinan el tipo de biestable
(S-R, D, J-K y T) y la entrada de sincronismo o reloj (señalada con la punta de flecha ▷).1 En la parte
derecha de los biestables aparecen las salidas Q y Q′ .

Tabla 7.1: Tipos de biestables clasificados por su método de sincronismo.

Tipo S-R D J-K T


¥ ¥
Asíncrono ; ;
latch*
Activado por nivel ¥ ¥
; ;
(alto o bajo) gated latch
Disparado por flanco ¥ ¥ ¥ ¥
(de subida ↑ o bajada ↓) flip-flop

Cuando un biestable es asíncrono, su estado cambia en cuanto lo hacen sus entradas. Si está activado
por nivel, el cambio de estado requiere además la activación de una señal que habilita, a nivel alto o bajo,
dicho cambio. En el caso más común del disparo por flanco (flip-flops con edge triggering), el cambio de
estado se habilita en un instante determinado por el flanco, positivo (de subida o rising edge) o negativo
(de bajada o falling edge), de la señal de sincronismo.
Debes recordar que en Logisim el modo de sincronismo de los biestables no se puede determinar
examinando a simple vista su símbolo, sino a través de sus atributos mostrados en el panel lateral de la
ventana de la aplicación cuando el biestable está seleccionado en el espacio de trabajo. Aunque no se
proporciona el comportamiento asíncrono como latch para los biestables S-R y D (marcado con asterisco
1 Si su sincronismo se produce en el flanco de la señal de reloj.
160 Capítulo 7. Biestables

en la tabla 7.1), dicho comportamiento se obtiene adoptando el modo de disparo por nivel con una señal
constante que mantenga permanentemente activado el biestable.

El comportamiento de los biestables síncronos se resume en las figuras siguientes:

Entradas Salida
CLK S R Q t+1 Resultado
SS QQ ↑ 0 0 Qt Retiene estado
CLK ↑ 0 1 0 Puesta a 0 (reset)
↑ 1 0 1 Puesta a 1 (set)
RR Q’
Q’ ↑ 1 1 0 Prohibido

Figura 7.1: Símbolo estándar del biestable S-R disparado por flanco de subida junto a su tabla de verdad.

Entradas Salida
D S Q D Q CLK D Q t+1 Resultado
CLK CLK ↑ X Qt Retiene estado
↑ 1 1 Puesta a 1 (set)
R Q’
Q’ Q’
↑ 0 0 Puesta a 0 (reset)

Figura 7.2: Símbolo estándar del biestable D disparado por flanco de subida junto a su tabla de verdad.

J Entradas Salida
Q CLK J K Q t+1 Resultado
Detector
SJ Q ↑ 0 0 Qt Retiene estado
CLK de
flanco
CLK ↑ 0 1 0 Puesta a 0 (kill)
↑ 1 0 1 Puesta a 1 (jump)
R
K Q’
Q’ ↑ 1 1 Qt' Báscula del estado
K

Figura 7.3: Circuito lógico del biestable J-K disparado por flanco de subida, símbolo estándar y tabla de
verdad.

Ent. Salida
T SJ Q T Q
CLK T Q t+1 Resultado
CLK
CLK
↑ 0 Qt Retiene estado
R
K Q’
Q’ Q’
↑ 1 Qt' Báscula del estado

Figura 7.4: Obtención del biestable T desde un J-K, símbolo estándar del biestable T disparado con flanco de
subida y su tabla de verdad correspondiente.

° Logisim,
Para señalar externamente el método de disparo de los biestables en los circuitos realizados con
se sugiere el empleo de etiquetas intuitivas para el biestable. Por ejemplo, ‘+’ para disparo
por nivel alto, ‘-’ para disparo por nivel bajo y ‘+-’ para disparo por flanco de bajada . Puesto !
que el valor por defecto es el disparo por flanco de subida , no es preciso utilizar la etiqueta ‘-+’.
También un modo sencillo de destacar el disparo por flanco de bajada es el empleo de un inversor
conectado a la entrada de sincronismo.

El comportamiento de los biestables se resume en la tabla 7.2 en la que se indican las ecuaciones
características que determinan el cambio de estado de cada uno de los biestables en el instante de
sincronismo. Estas ecuaciones permiten el análisis de los circuitos que emplean biestables.
161

Tabla 7.2: Ecuaciones características de los biestables disparados por flanco (flip-flops).

Tipo Ecuación
S-R Qt+1 = S + Qt · R′
J-K Qt+1 = Qt′ · J + Qt · K ′
D Qt+1 = D
T Qt+1 = Qt ⊕ T

Cuando se desea realizar el diseño de un circuito que contiene biestables es preciso determinar las
entradas a estos para conseguir el cambio de estado deseado. En esta situación son muy útiles las tablas de
excitación de cada biestable incluidas en la figura siguiente:

Q t Q t+1 S R Q t Q t+1 J K Q t Q t+1 D Q t Q t+1 T


0 0 0 x 0 0 0 x 0 0 0 0 0 0
0 1 1 0 0 1 1 x 0 1 1 0 1 1
1 0 0 1 1 0 x 1 1 0 0 1 0 1
1 1 x 0 1 1 x 0 1 1 1 1 1 0

Figura 7.5: Tablas de excitación de los biestables disparados por flanco.

En este capítulo se resuelven problemas relacionados con las características de los biestables y
circuitos básicos construidos con ellos.
162 Capítulo 7. Biestables

Problemas resueltos
7.1 Características de los biestables
Problema 7.1 ★★✩ Analiza en el circuito de la figura adjunta, los valores de Q y Q′ en cada una de las
situaciones siguientes:
1.- A = 0 y B = 1.
2.- A = 1 y B = 0.
3.- A = B = 1, ambas entradas son 1.
4.- A = B = 0, ambas entradas son 0.
5.- Ambas entradas comienzan valiendo 0 y pasan a 1.
A Q

Q’
B

Nota: Recuerda que en los esquemas de los circuitos lógicos, se omiten las conexiones a la fuente de
alimentación (VDD ) y tierra (GND), aunque son necesarias para el funcionamiento de los circuitos físicos.

 Solución:

1.- Si A = 0 y B = 1 → Q = 1 y Q′ = 0. El valor de Q está fijado por la puerta con entrada 0 (A = 0).


Se puede decir que es un circuito activado por nivel bajo. Por tanto, la entrada superior (A) es de
puesta a 1.
2.- Si A = 1 y B = 0 → Q = 0 y Q′ = 1. Se obtiene con un razonamiento análogo al del apdo. anterior.
3.- Si A = B = 1 → Q y Q′ mantienen los valores previos que tuviesen, ya que los valores de salida de
las puertas están determinados por el valor que se realimenta hacia la entrada.
4.- Si A = B = 0 → Ambas salidas Q y Q′ son forzadas a valer 1 de modo incongruente, pues no son
complementarias.
5.- A y B pasan de 0 a 1 → Ambas entradas pasan a valer 1. Por tanto, las salidas pasan a estar
determinada por el valor de realimentación, como estos valores son 1, la salida de ambas puertas es 0.
Al realimentar dicho valor (0) en cada puerta se fuerza a que la salida de ambas vaya a 1, pero esto
nos devuelve al estado previo en que ambas salidas son de nuevo 0. Por tanto, se tendría un sistema
oscilando con ambas salidas a 1, después a 0 y así indefinidamente. Sin embargo, este análisis supone
que el tiempo de respuesta de ambas puertas es idéntico. En realidad basta con que sus tiempos de
respuesta sean ligeramente diferentes para que la situación sea distinta, ya que la puerta más rápida
fuerza un 0 a su salida que realimenta a la otra puerta y hace que se alcance un estado estable. En
consecuencia, es imposible saber a priori el estado final que se alcanza. ■

Problema 7.2 ★★✩ Calcula las ecuaciones características de los biestables J-K, D y T, describiendo
detalladamente el proceso de obtención de dichas ecuaciones.

 Solución: La ecuación característica de un biestable es la expresión lógica del valor de salida del
biestable (o estado próximo) como una función de su estado y el valor de sus entradas. Por tanto, esta
ecuación se puede obtener a partir de la tabla de transición para el biestable, calculando el valor del
estado resultante como una función del estado de partida y las entradas.
Nota: Considera las siguientes equivalencias por compatibilidad con Logisim, Qt ≡ Qt es el estado de
partida en el instante de sincronismo, y Qt+1 ≡ Qtt es el estado resultante un instante posterior.
7.1 Características de los biestables 163

Biestable J-K: Para este biestable se tienen la tabla de verdad y los K-maps de Qt+1 que se indican a
continuación:

Por tanto: Qt+1 = Qt′ · J + Qt · K ′ = (Qt + J)(Qt′ + K ′ )


Biestable D: En este caso no es preciso elaborar la tabla de transición correspondiente al biestable,
ya que el valor de la salida (estado siguiente) coincide con el valor de la entrada al biestable. De este
modo se tiene: Qt+1 = D
Biestable T: Repitiendo el proceso realizado para el biestable J-K, se obtiene:

Por tanto: Qt+1 = Qt′ · T + Qt · T ′ = (Qt + T )(Qt′ + T ′ ) = Qt ⊕ T ■

Problema 7.3 ★✩✩ ¿Si se unen las entradas de un biestable J-K, el circuito resultante sigue siendo un
biestable? ¿En caso afirmativo, de qué tipo de biestable se trata?

 Solución: A partir de la ecuación característica del biestable J-K, si hacemos A = J = K, se obtiene:


Qt+1 = Qt · A′ + Qt′ · A′ = Qt ⊕ A
Dicha ecuación corresponde a la de un biestable T. ■

Problema 7.4 ★★✩ Para el circuito de la figura adjunta, responde razonadamente:

1.- ¿Se trata de un circuito combinacional o secuencial?


2.- ¿La salida posee algún tipo de sincronización respecto de la señal CLK? ¿De qué tipo?
3.- Calcula la ecuación característica del circuito y describe qué tipo de comportamiento implementa
dicho circuito.
164 Capítulo 7. Biestables

 Solución: 1.- Las puertas NOR realimentadas corresponden a un circuito con entradas activadas a
nivel alto, es un tipo de circuito secuencial porque posee realimentación. Por tanto, su salida depende
tanto de su entrada como de su estado previo (salida que posea el circuito). La entrada A es la que activa
el valor reset o puesta a 0 (Q = 0) y B activa el set o puesta a 1 (Q=1). A través de la realimentación
desde la salida a la puerta AND de la entrada se evita que las puertas NOR se activen simultáneamente.
Cuando A = B = 1 y CLK = 1 el circuito tiene un comportamiento oscilatorio entre los estados 0 y 1.
2.- Si CLK = 0 las salidas del circuito quedan determinadas solo por las señales realimentadas desde
la salida. Por tanto, el circuito mantiene su estado. El cambio de estado del circuito solo es posible
cuando CLK = 1. Así pues, este circuito está sincronizado por nivel con la señal CLK.
3.- Calculando la tabla de transición de estados cuando CLK = 1 y llamando R = A · Q y S = B · Q′ a
las entradas de las puertas NOR superior e inferior respectivamente, se tiene:
Qt AB RS Qt+1
0 00 00 0
0 01 01 1
0 10 00 0
0 11 01 1
1 00 00 1
1 01 00 1
1 10 10 0
1 11 10 0
Considerando el estado resultante Qt+1 como función de salida respecto del estado de partida Qt y
las entradas A y B, se calcula su expresión minimizada mediante K-maps, para obtener:

Por tanto, la ecuación obtenida es: Qt+1 = Qt′ B + Qt A′ = (Qt + B)(Qt′ + A′ )


Dicha ecuación es equivalente a la de un biestable J-K con K = A y J = B.
Si en el circuito la sincronización se produce por nivel, su comportamiento es oscilatorio cuando
CLK = 1 y A = B = 1. En dicha situación es imposible determinar el valor del estado del circuito
en un instante dado. Para evitar esta situación es preciso que la sincronización se realice por flanco,
añadiendo un detector de flanco de la señal CLK.
Recuerda que un biestable de tipo J-K con J = K = 1 tiene un comportamiento de báscula (toggle).
Dicho biestable siempre se debe sincronizar por flanco, ya que al hacerlo por nivel no podemos
controlar el estado final del biestable. ■

Problema 7.5 ★✩✩ Analiza los circuitos siguientes con biestables sincronizados por flanco de subida
e indica cuál de ellos corresponde a un divisor de frecuencia de la señal CLK. ¿Cuál es la frecuencia
obtenida respecto a la señal CLK? ¿Qué relación existe entre cada circuito y el comportamiento de un
biestable T? Emplea Logisim para hacer la simulación de cada circuito.
7.2 Circuitos con biestables 165

 Solución: Analizamos cada uno de los circuitos proporcionados.

1.- Este circuito nunca cambia de estado y su salida mantiene el valor de su entrada indefinidamente.
2.- Puesto que la entrada es siempre el complemento del estado del biestable, en cada flanco de
sincronismo el biestable cambiará de estado. Como el circuito cambia de estado en cada flanco de
subida de la señal de reloj (CLK), su salida tendrá una frecuencia que será la mitad de la que posea la
señal de reloj. Este circuito se comporta del mismo modo que un biestable T (toggle) con T = 1 o un
J-K con J = K = 1.
3.- En este circuito se toma como señal de disparo el estado del biestable. Por tanto, la señal de
sincronismo no cambia y el biestable permanece en el estado en que se encuentre inicialmente, aunque
su señal de entrada es una señal cambiante (CLK).
4.- Al igual que el circuito anterior la señal de disparo no cambia. Por tanto, el biestable no cambia de
estado. ■

Problema 7.6 ★★✩ Dibuja el cronograma de CLK y Q en el circuito de la figura adjunta, partiendo del
estado inicial Q = 0. ¿Qué relación existe entre la señal de reloj y la salida del biestable? Utiliza Logisim
para simular el circuito y asume que el biestable tiene sincronismo por flanco de subida.

 Solución: En este circuito se cumple que J = Q′ y K = Q. Por tanto, K = J ′ y esta es la expresión


de un biestable D, con su entrada D conectada en la entrada J del biestable. Como J = Q′ , este circuito
equivale a un biestable D realimentado en dicha entrada con la salida Q′ . Así pues, este biestable
se comporta como un divisor de frecuencia. En el cronograma correspondiente se obtiene una señal
cuadrada con una frecuencia que es la mitad de la frecuencia de la señal de reloj. La figura siguiente
muestra el cronograma resultante y una tabla de evolución temporal que facilita su elaboración:

t Qt J K Qt+1 CLK

ts = 1 0 1 0 1
ts = 2 1 0 1 0 Q

ts = 3 0 1 0 1 ts=1 ts=2 ts=3 ts=4 ts=5 ts=6

ts = 4 1 0 1 0
ts = 5 0 1 0 1
ts = 6 1 0 1 0

7.2 Circuitos con biestables


Problema 7.7 ★★✩ Indica cómo obtener un biestable T a partir de un biestable D, describiendo
detalladamente el proceso. Comprueba el resultado con Logisim.

 Solución: Para resolver este problema hay que expresar la señal D como una función de la nueva
entrada T y el estado de partida Qt en el instante de sincronismo, teniendo en cuenta la tabla de
transición de estado del biestable T.
166 Capítulo 7. Biestables

Qt T Qt+1 D
0 0 0 0
0 1 1 1
1 0 1 1
1 1 0 0
A partir de la tabla de verdad anterior se obtiene: D = Qt ⊕ T , cuyo circuito resultante en Logisim
queda:

Recuerda que cuando se pide implementar cualquier biestable a partir de uno de tipo D, siempre se
tiene:

D = Qt+1

Por tanto, basta con hacer que la entrada del biestable D sea igual al resultado de la ecuación caracte-
rística del biestable que se desea obtener. ■

Problema 7.8 ★★✩ Dado el circuito de la figura adjunta cuyo biestable está sincronizado por flanco
de subida, completa razonadamente los apartados siguientes y comprueba los resultados obtenidos con
Logisim:
1.- Calcula la ecuación característica del circuito que relaciona el estado del biestable T con su estado
previo y el valor de las entradas A y B.
2.- Relaciona del comportamiento del circuito con el de algún biestable conocido.
3.- Si se parte del estado Q = 0 para el biestable T y A = B = 1, ¿cuál es la evolución del estado del
biestable?

 Solución: 1.- Cáculo de ecuación característica. Como T = AQ′ + BQ, a partir del estado (Q)
y las entradas (A y B) al circuito, es posible calcular el valor de T . Por tanto, para el biestable T es
posible calcular la evolución del estado. De este modo se completa la tabla de transición de estados del
circuito:
Qt A B T Qt+1
0 0 0 0 0
0 0 1 0 0
0 1 0 1 1
0 1 1 1 1
1 0 0 0 1
1 0 1 1 0
1 1 0 0 1
1 1 1 1 0
7.2 Circuitos con biestables 167

Aplicando K-maps para encontrar la expresión simplificada de Qt+1 como una función del estado
de partida y el valor de las entradas, se tiene:

Qt+1 = Qt′ A + Qt B′ = (Qt + A)(Qt′ + B′ )

2.- Circuito equivalente. A la vista de la ecuación característica obtenida, se puede afirmar que el
circuito en su conjunto se comporta como un biestable J-K con J = A y K = B.
3.- Evolución temporal del circuito. Si A = B = 1 en cualquier instante, la salida de las puertas AND
queda determinada por la otra entrada Q y Q′ . Al tratarse de dos señales complementarias una de ellas
siempre vale 1, de modo que la salida de la puerta OR siempre es 1. Por tanto, T = 1. Esto también se
puede ver analizando la expresión lógica de T cuando A = B = 1. De este modo, se tiene que:

T = AQ′ + BQ = Q′ + Q = 1

Al ser T = 1 la salida del biestable bascula entre los valores 0 y 1. Esta misma conclusión se puede
derivar del hecho de que el conjunto se comporta como un biestable J-K. Cuando J = K, su comporta-
miento equivale al de un biestable T. Cuando T = 1 el circuito produce la báscula del estado. Por tanto,
la salida del biestable en sucesivos flancos de subida del reloj es Q = 0, 1, 0, 1, 0, 1. . . ■

Problema 7.9 ★★✩ Diseña un circuito con el comportamiento de un biestable J-K empleando un
biestable de tipo D. Comprueba el resultado con Logisim.

 Solución: Para realizar el diseño solicitado se parte de la tabla de transición de estado del biestable
que se desea obtener (J-K) a la que se añade como salida el valor de la entrada del biestable disponible
(D). El valor que se obtiene para la entrada del biestable disponible tiene en cuenta la transición de
estado que se requiere. De este modo se obtiene la tabla de transición:
Qt J K Qt+1 D
0 0 0 0 0
0 0 1 0 0
0 1 0 1 1
0 1 1 1 1
1 0 0 1 1
1 0 1 0 0
1 1 0 1 1
1 1 1 0 0

D = Qt′ J + Qt K ′ = (Qt + J)(Qt′ + K ′ )

Este resultado se podría haber obtenido de forma inmediata, ya que el biestable del que se parte es un
biestable D, y basta con hacer que dicha entrada sea igual al valor del estado resultante obtenido por la
ecuación característica del biestable J-K. Por tanto, el circuito resultante es:
168 Capítulo 7. Biestables

Problema 7.10 ★★✩ Para el circuito de la figura adjunta con el biestable D sincronizado por flanco de
subida, completa los apartados siguientes:
1.- Calcula la ecuación característica para el estado del circuito tras el sincronismo del biestable.
2.- Determina el estado del biestable cuando el valor de la señal A se mantiene a 1 y el estado inicial
del biestable es Q = 1.
3.- ¿Se comporta el conjunto como un biestable T?

 Solución: 1.- Ecuación característica. Para calcular la ecuación característica se tiene en cuenta
que la expresión lógica de la entrada del biestable es:

D = (AQ)′ = A′ + Q′

Como en un biestable D se tiene que Qt+1 = D podemos deducir que la ecuación característica del
circuito proporcionado es:

Qt+1 = A′ + Qt′

2.- Estado del biestable si A = 1. En la ecuación característica obtenida en el apdo. anterior se tiene
que Qt+1 = Qt′ . Por tanto, partiendo con Q = 1, la secuencia de estados es: Q = 1, 0, 1, 0, 1, . . .
3.- Comportamiento equivalente. Para que el conjunto se comporte como un biestable T, con A = 0
debería retener el estado. Sin embargo, cuando A = 0 se tiene que Qt+1 = 1, independientemente del
estado previo. Por tanto, el circuito no se comparta de forma equivalente a un biestable T. ■

Problema 7.11 ★★★ Dado el circuito de la figura adjunta, completa los apartados siguientes:

1.- Calcula la función de entrada al biestable T (disparado por flanco de bajada).


2.- Calcula la ecuación característica de la salida del biestable.
3.- Completa el cronograma con las señales T y Q, asumiendo que inicialmente Q = 0. Comprueba el
resultado con ayuda de Logisim.

CLK

Q
ts=1 ts=2 ts=3 ts=4 ts=5 ts=6
7.2 Circuitos con biestables 169

 Solución: 1.- Función de entrada al biestable. En este caso la excitación del biestable (su entrada
T) depende de la entrada (A) y del estado (Q). De este modo se tiene que:

T = (AQ′ )′ = A′ + Q

Siempre que dicho valor sea 0, el biestable mantendrá su valor. Por el contrario, cuando T valga 1,
el biestable cambiará de estado. Se debe tener en cuenta que el cambio de estado se produce en los
flancos de bajada de la señal de sincronismo (CLK).
2.- Ecuación característica del biestable. La ecuación característica de un biestable nos indica cómo
evoluciona el estado a partir de uno dado cuando se producen cambios en su entrada. De este modo, se
plantea la tabla de transición para el biestable obteniendo:
Qt A T Qt+1
0 0 1 1
0 1 0 0
1 0 1 0
1 1 1 0
A partir de la tabla anterior se obtiene directamente:

Qt+1 = Qt′ A′

Esta misma ecuación se podría obtener a partir de la ecuación de un biestable T, sustituyendo el valor
de T por su expresión en función de Q y A. De este modo, como:

Qt+1 = Qt ⊕ T = Qt′ T + Qt T ′

y, ya que:

T = (Qt A)′

sustituyendo se obtiene finalmente:

=0 =0
z }| { z }| {
′ ′ ′ ′ ′ ′ ′ ′
Qt+1 = Qt (Qt + A ) + Qt ((Qt A) ) = 
Qt Qt +Qt A + 
 Qt′
Qt A = Qt′ A′

Esta expresión coincide con la obtenida a partir de la tabla de transición del circuito.
3.- Cronograma de la señal de estado. Para obtener el cronograma del circuito se tiene en cuenta la
ecuación característica del apartado anterior. Con ella se puede obtener el estado resultante Qt+1 en
cada instante de sincronismo partiendo del estado Qt y el valor para la entrada A. La actualización del
estado se realiza cuando el biestable se sincroniza en cada flanco de bajada del reloj. De este modo el
cronograma obtenido queda:

t Qt A T Qt+1 CLK
ts = 1 0 0 1 1
ts = 2 1 1 1 0 A
ts = 3 0 0 1 1
T
ts = 4 1 0 1 0
ts = 5 0 0 1 1
Q
ts = 6 1 1 1 0 ts=1 ts=2 ts=3 ts=4 ts=5 ts=6

170 Capítulo 7. Biestables

Problema 7.12 ★★✩ Calcula la ecuación característica del biestable de la figura adjunta expresando el
valor del estado Qt+1 en función de las entradas A, B y el estado de partida Qt . Indica que modificación
sería precisa para que el comportamiento fuese equivalente al de un biestable J-K. Comprueba este último
apartado con ayuda de Logisim.

 Solución: Por inspección del circuito proporcionado podemos determinar la función de excitación
del biestable T dependiendo del valor de las entradas A, B y del estado Q de partida. De este modo,
tenemos que: T = A′ Q + BQ′ . A partir de dicha expresión, se puede obtener la tabla de transición de
estado del circuito. Por comodidad se añade una columna adicional con el valor de T. De este modo se
obtienen la tabla de transición y los K-maps correspondientes a la función del estado resultante que se
indican a continuación:
Qt A B T Qt+1
0 0 0 0 0
0 0 1 1 1
0 1 0 0 0
0 1 1 1 1
1 0 0 1 0
1 0 1 1 0
1 1 0 0 1
1 1 1 0 1

Qt+1 = Qt′ B + Qt A = (Qt + B)(Qt′ + A)

Comparando estas ecuaciones con la ecuación característica de un biestable J-K, se tiene que:

B=J
A′ = K

Problema 7.13 ★★★ Configura un biestable J-K disparado por flanco positivo, que otorgue prioridad a
la señal de preset (PRE) frente a clear (CLR), cuando ambas señales se activan por nivel bajo. Comprueba
la funcionalidad del biestable obtenido mediante Logisim.

 Solución: Al otorgar mayor prioridad a la señal PRE, esta no se ve afectada por el valor de la señal
CLR. Sin embargo, esta última debe ser enmascarada cuando ambas señales se activan a nivel bajo.
Construimos una tabla de verdad cuyas entradas son las señales nuevas PRE* y CLR* , y cuya salida es
la señal de CLR del biestable. De este modo se obtiene el valor de esta última señal como función de
las primeras:
PRE* CLR* CLR
0 0 1
0 1 1 CLR = (PRE∗ + CLR∗ )
1 0 0
1 1 1
Por tanto el circuito resultante queda:
7.2 Circuitos con biestables 171


8. Registros y contadores

En los sistemas digitales se hace necesario almacenar información temporal que puede ser el resultado de
operaciones habituales, o bien constituir datos de entrada a otros sistemas. Por ejemplo:

almacenando el resultado intermedio de operaciones aritméticas,


suministrando información estable a un sistema de visualización,
almacenando direcciones de memoria y datos relacionados con operaciones de lectura y escritura
en la memoria principal de un sistema digital, etcétera.

La principal aplicación de los biestables D es el almacenamiento de un bit de información. Por tanto,


un arreglo de varios biestables D permite almacenar una mayor cantidad de información hasta completar
el tamaño de un elemento básico denominado registro.

Otras aplicaciones requieren el uso de elementos de conteo para obtener distinta funcionalidad, como
por ejemplo:

Divisor de frecuencia. El reloj de los sistemas digitales suele trabajar a una frecuencia muy elevada,
del orden de megahercios (106 Hz) o gigahercios (109 Hz). Dicha frecuencia es apropiada para
gobernar subsistemas rápidos. Sin embargo, si se necesitan subsistemas más lentos, es preciso
obtener divisores de la frecuencia del reloj principal del sistema.
Temporizador. Cuando es preciso temporizar acciones en un sistema (retardos, esperas, etc.) se
recurre a elementos capaces de medir el transcurso del tiempo mediante la cuenta del número de
flancos de disparo de una señal de reloj.
Contador de eventos. En este caso se debe contar las transiciones de una señal asociada a la
ocurrencia de eventos (p. ej., detección de objetos, personas,etc.).
Generador de secuencia cíclica. Cuando es preciso generar repetidamente una sucesión de códigos
binarios ordenados o desordenados, con elementos repetidos o sin ellos (p. ej., generación de señales
de selección de MUX o DEC, generación de direcciones de memoria, activación de sistemas en
secuencia, etc.).

Todas las aplicaciones mencionadas hacen uso de los contadores que son sistemas secuenciales
constituidos habitualmente por biestables de tipo T que generan una secuencia cíclica sin elementos
repetidos en ella.
174 Capítulo 8. Registros y contadores

Problemas resueltos
8.1 Contadores asíncronos
Problema 8.1 ★★✩ Dado el circuito de la figura adjunta, contesta razonadamente las cuestiones
siguientes:
1.- ¿Es un circuito síncrono o asíncrono?
2.- ¿Qué tipo de biestable equivalente se emplea?
3.- ¿Qué tipo de sincronización se emplea en los biestables, si es que emplea algún tipo?
4.- ¿Qué tipo de comportamiento se obtiene en dicho circuito?
5.- Realiza el cronograma de las señales q1 y q0 , si el estado inicial es q1 = 1, q0 = 0. Comprueba que
el comportamiento es el esperado y simula el circuito con Logisim.

 Solución: 1.- Tipo de sincronismo del circuito. Se trata de un circuito asíncrono porque aunque
emplea una señal de reloj, los biestables no comparten dicha señal. Esto es, cada biestable tiene una
señal de sincronismo independiente.
2.- Tipo de biestables. Aunque los biestables son de tipo J-K, como en ambos se tiene que J = K = 1,
se comportan como biestables de tipo T alternando su valor de salida. Esto es, en modo basculante
(toggle). Este tipo de biestable se emplea sobre todo en los contadores.
3.- Tipo de sincronismo de los biestables. En los circuitos con biestables realizados con Logisim,
como el proporcionado en el enunciado, no es posible saber el tipo de sincronismo que utilizan los
biestables sin inspeccionar sus atributos. Para facilitar una identificación más sencilla, los diagramas
estandarizados emplean el símbolo del triángulo para indicar disparo por flanco. Si dicho triángulo
está precedido de una burbuja (◦) se indica el disparo por flanco de bajada (↓). Para los diagramas
efectuados con Logisim, proponemos el uso de la etiqueta ‘+-’ en la parte superior del biestable para
indicar su sincronización por flanco de bajada. También es posible emplear un inversor en la entrada
de sincronismo de cada biestable, aunque este método es más apropiado para sistemas síncronos, ya
que en ellos los biestables comparten la señal de sincronismo.
En el diagrama suministrado en el enunciado se observa que se ha seguido la convención mencio-
nada indicando con la etiqueta ‘+-’ el sincronismo por flanco negativo o de bajada (↓).
4.- Comportamiento del circuito. Los circuitos asíncronos con biestables T en los que la salida de
uno se conecta a la entrada del siguiente de orden superior implementan contadores. De este modo
para implementar los distintos tipos de contadores se debe recurrir a distintas configuraciones que se
indican a continuación.
Para obtener un contador ascendente:
• Disparo ↑ con q′i → CLKi+1
• Disparo ↓ con qi → CLKi+1
Para obtener un contador descendente:
• Disparo ↑ con qi → CLKi+1
• Disparo ↓ con q′i → CLKi+1
Como en este caso la salida q′ de un biestable se conecta a la entrada de sincronismo del biestable
siguiente, se trata de un contador asíncrono descendente de dos bits.
8.1 Contadores asíncronos 175

5.- Cronograma. Para elaborar el cronograma del sistema, se aprecia que el cambio de estado de los
biestables está determinado en los flancos de bajada de la señal de sincronismo. El cronograma que se
obtiene para este sistema se muestra en la figura siguiente:
ts=1 ts=2 ts=3 ts=4 ts=5

CLK

1 1
q0 0 0 0

1 1 1
q0' 0 0

1 1 1
q1 0 0
10 (2) 01 (1) 00 (0) 11 (3) 10 (2) ■

Problema 8.2 ★★✩ Dado un contador asíncrono ascendente que cuenta de 0 a 11(10 implementado con
biestables sincronizados por flanco de subida, contesta razonadamente las cuestiones siguientes:
1.- ¿Cuántos estados tiene el contador?
2.- ¿Cuántos biestables son precisos para su implementación?
3.- Realiza una implementación del circuito para simulación lógica con Logisim.

 Solución: 1.- Número de estados del contador. El contador tiene 12 estados, que es el número de
valores comprendidos entre 0 y 11.
2.- Número de biestables necesarios. Para la implementación del contador son necesarios 4 biestables,
puesto que con tres biestables se pueden representar solo 8 estados, mientras que con 4 biestables se
alcanza a representar hasta 16 estados como máximo.
3.- Implementación con Logisim. Para la implementación se pueden emplear divisores de frecuencia
(por 2) con biestables T en modo báscula (con T = 1) o biestables D realimentados con su salida
negada, esto es, con D = Q′ . La salida negada de cada divisor de frecuencia iría conectada a la entrada
de sincronismo del biestable de orden superior. Para truncar el contador en el valor 12, este valor se
decodifica con una puerta AND (q3 = 1, q2 = 1, q1 = 0, q0 = 0) para activar la señal de borrado de
los biestables (CLR). Las figuras siguientes muestran la implementación en Logisim con biestables T
(sup.) y biestables D (inf.):


176 Capítulo 8. Registros y contadores

Problema 8.3 ★★★ Dado un contador asíncrono descendente que cuenta de 15 a 4 implementado con
biestables sincronizados por flanco de subida, contesta razonadamente a las cuestiones siguientes:
1.- ¿Cuántos estados tiene el contador?
2.- ¿Cuántos biestables se requieren para su implementación?
3.- Realiza una implementación del circuito para su simulación con Logisim.

 Solución: 1.- Número de estados del contador. El número de estados del contador es 12, ya
que 15 − 4 + 1 = 12. El tipo de sincronismo y dirección de la cuenta no influye en el número total de
estados del contador.
2.- Número de biestables necesarios. Para almacenar los 12 estados con ayuda de biestables, se debe
considerar que un biestable puede almacenar dos estados diferentes (0/1). Por tanto, con n biestables
se pueden almacenar 2n estados. En consecuencia, para 12 estados se necesitan al menos 4 biestables,
ya que 24 = 16, quedando 4 estados no utilizados.
3.- Implementación con Logisim. Para la implementación se emplean divisores de frecuendia mediante
biestables T o D. La salida de cada divisor de frecuencia iría conectada a la entrada de sincronismo del
biestable de orden superior. Para truncar el contador al valor 3, dicho valor se decodifica con una puerta
AND (q3 = 0, q2 = 0, q1 = 1, q0 = 1) para activar la señal de reinicio a 1 de los biestables (PRE).
La puerta decodificadora decodifica solo los valores 0 porque como se trata de un contador truncado
descendente, los valores más bajos con los mismos bits a 0, corresponden a estados no utilizados.
Para simular correctamente el circuito en Logisim es preciso reiniciar manualmente los biestables
a 1 para establecer el valor inicial del contador. Otras implementaciones alternativas contemplarían:
(A) el empleo de un contador ascendente complementado, y (B) el circuito de contador ascendente
cambiando el flanco de disparo de los biestables para que este sea negativo (o de bajada).
Las figuras siguientes muestran la implementación en Logisim con biestables T (sup.) y biestables
D (inf.):

Problema 8.4 ★★✩ Dado el circuito con biestables de la figura adjunta, contesta razonadamente a las
cuestiones siguientes:
1.- ¿Es un sistema síncrono o asíncrono?
2.- ¿Qué tipo de biestable equivalente se emplea?
3.- ¿Qué tipo de sincronización se emplea en los biestables, si es que emplea algún tipo?
4.- ¿Describe la función de la puerta AND?
5.- ¿Qué tipo de comportamiento se obtiene en dicho circuito?
6.- ¿Cuál es la salida del circuito si en la puerta AND se eliminan las entradas q′2 y q′0 ? Comprueba el
comportamiento mediante simulación con Logisim.
8.1 Contadores asíncronos 177

 Solución: 1.- Tipo de sincronismo del circuito. Se trata de un sistema asíncrono porque aunque
emplea una señal de reloj (CLK), los biestables no la comparten. Esto es, cada biestable tiene una señal
de sincronismo independiente.
2.- Biestables equivalentes. Como en todos los biestables se cumple que J = K = 1, su comportamiento
es equivalente al de biestables T alternado el valor de su salida (modo báscula o toggle). Este tipo de
biestable se emplea sobre todo en los contadores.
3.- Tipo de sincronismo de los biestables. Los biestables emplean una sincronización por flanco
de bajada (↓) señalada mediante la etiqueta ‘+-’ sobre cada biestable. No obstante, el valor de dicho
atributo se puede inspeccionar en el panel de propiedades de los elementos del circuito en Logisim.
4.- Función de la puerta AND. La puerta AND conectada a la señal de CLR de los biestables fuerza
su estado a 0 cuando la salida de la puerta es 1. Para que se produzca esta situación todas las entradas
de la puerta AND deben ser 1. Dicha puerta decodifica el producto lógico q3 q′2 q1 q′0 que vale 1 cuando
para el estado [q3 q2 q1 q0 ] = 1010 (10). Puesto que, la señal CLR se genera de modo asíncrono, la
salida (estado) del sistema toma este valor (10) durante un tiempo ínfimo.
5.- Comportamiento del circuito. Los circuitos asíncronos con biestables T en los que la salida de
uno se conecta a la entrada del siguiente de orden superior implementan contadores. Los contadores
que se pueden implementar de este modo se indican a continuación.
Para obtener un contador ascendente:
• Disparo ↑ con q′i → CLKi+1
• Disparo ↓ con qi → CLKi+1
Para obtener un contador descendente:
• Disparo ↑ con qi → CLKi+1
• Disparo ↓ con q′i → CLKi+1
Como en este caso se tiene disparo por flanco de bajada con la salida de un biestable conectada a la
entrada de sincronismo del siguiente, se trata de un contador de décadas (o BCD) asíncrono ascendente
con reinicio (reset) asíncrono.
Si la puerta AND pasa de implementar el producto q3 q′2 q1 q′0 a q3 q1 , el comportamiento del circuito
resultante no se altera. En este segundo caso, la puerta AND decodificaría todos los valores para los
que q3 = 1 y q1 = 1 comenzando por 10 y los superiores. Sin embargo, estos últimos no se alcanzan
porque el contador se reinicia con el valor 10. ■
178 Capítulo 8. Registros y contadores

8.2 Contadores síncronos


Problema 8.5 ★★✩ ¿Cuál es la secuencia de salida del circuito de la figura adjunta si inicialmente los
biestables son inicializados a 0? ¿Y si todos los biestables se inicializan a 1? Comprueba el resultado
mediante simulación con Logisim.

 Solución: Para analizar el circuito se debe tener en cuenta que un biestable J-K con J = K se
comporta como uno de tipo T. De este modo si la entrada está a 0, el biestable mantiene su valor y si es
1 cambia su estado (modo báscula o toggle).
Teniendo en cuenta la ecuación característica del biestable T: Qt+1 = Qt ⊕ T se pueden expresar
las expresiones de los estados alcanzados por cada biestable a partir de los estados de partida:

[q2 ]t+1 = [q′2 ]t ya que T =1


[q1 ]t+1 = [q2 ]t ⊕ [q1 ]t
[q0 ]t+1 = [q1 ]t ⊕ [q0 ]t

A partir de las expresiones anteriores se puede tabular los valores del estado de cada biestable en
sucesivos instantes de sincronismo partiendo de un estado concreto:
ts q2 q1 q0 cod. ts q2 q1 q0 cod.
1 0 0 0 0 1 1 1 1 7
2 1 0 0 4 2 0 0 0 0
3 0 1 0 2 3 1 0 0 4
4 1 1 1 7 4 0 1 0 2
5 0 0 0 0 5 1 1 1 7

Problema 8.6 ★✩✩ Describe razonadamente la funcionalidad del sistema secuencial correspondiente al
diagrama de bloques de la figura adjunta.
CLK

Contador
INIT/CLR MOD 16

 Solución: Mediante inspección de la figura adjunta se infiere la siguiente información:

El sistema está constituido por un contador síncrono de 4 bits.


El contador emplea truncamiento asíncrono mediante señal de puesta a 0 de los biestables
(INT /CLR). Por tanto, se trataría de un contador ascendente con valor inicial 0.
El reset se produce con el valor de cuenta 1001 (9). Así pues, dicho valor se mantiene durante
una fracción infinitesimal de tiempo.
En consecuencia, se trata de un contador de 4 bits creciente MOD 9 (de 0 a 8) con reset asíncrono. ■
8.2 Contadores síncronos 179

Problema 8.7 ★★✩ Dado el circuito de la figura adjunta, contesta razonadamente las cuestiones
siguientes:
1.- Determina la secuencia de salida del circuito si se parte del estado inicial obtenido mediante
activación de la señal INIT/CLR. ¿Se puede considerar dicho circuito un contador?
2.- Dibuja el cronograma de las señales q0 , q1 y q2 . Comprueba el comportamiento del circuito
empleando Logisim.

 Solución: 1.- Determinación de secuencia de salida. Para analizar el circuito de la figura se parte
de expresión del estado alcanzado de cada biestable [q j ]t+1 a partir de su estado previo [q j ]t . Para el
circuito de la figura, dichas ecuaciones son:

[q2 ]t+1 = [q′1 ]t


[q1 ]t+1 = [q0 ]t ;
[q0 ]t+1 = [q2 ]t ;

Estas expresiones se pueden obtener sabiendo que un biestable J-K con J = K ′ es equivalente a un
biestable D con D = J. Para dicho biestable se tiene la ecuación característica qt+1 = D. En el caso de
q2 se tiene D = J ′ , de donde se tiene que: [q2 ]t+1 = [q′1 ]t
2.- Cronograma. Con las expresiones obtenidas en el apartado anterior se puede completar la tabla de
evolución y el cronograma que se indica a continuación:
ts q2 q1 q0 cod.
1 0 0 0 0
2 1 0 0 4
3 1 0 1 5
4 1 1 1 7
5 0 1 1 3
6 0 1 0 2
7 0 0 0 0
ts=1 ts=2 ts=3 ts=4 ts=5 ts=6 ts=7

CLK

1 1 1 1

q2 0 0 0 0

1 1 1

q1 0 0 0 0 0

1 1 1

q0 0 0 0 0 0
000 100 101 111 011 010 000 100
(0) (4) (5) (7) (3) (2) (0) (4)
180 Capítulo 8. Registros y contadores

Por tanto, el circuito genera la secuencia [0, 4, 5, 7, 3, 2]. Puesto que no presenta valores repetidos,
se puede considerar un contador MOD 6 de secuencia incompleta y desordenado. ■

Problema 8.8 ★★✩ Calcula las funciones de excitación de los biestables T de un contador síncrono
de décadas (BCD) para que su reinicio sea síncrono. Realiza una implementación para simular su
comportamiento lógico con Logisim empleando biestables y las puertas lógicas necesarias.

 Solución: Para realizar el diseño solicitado es preciso construir la tabla de transición de estado
con los valores del contador, teniendo en cuenta que los estados superiores a 1001 (9) se consideran
condiciones indiferentes, ya que dichos estados son inalcanzables. La tabla se completa con el valor de
la excitación de cada biestable para conseguir la evolución de estado deseada:
t t+1
Q q3 q2 q1 q0 Q q3 q2 q1 q0 T3 T2 T1 T0
Q0 0 0 0 0 Q1 0 0 0 1 0 0 0 1
Q1 0 0 0 1 Q2 0 0 1 0 0 0 1 1
Q2 0 0 1 0 Q3 0 0 1 1 0 0 0 1
Q3 0 0 1 1 Q4 0 1 0 0 0 1 1 1
Q4 0 1 0 0 Q5 0 1 0 1 0 0 0 1
Q5 0 1 0 1 Q6 0 1 1 0 0 0 1 1
Q6 0 1 1 0 Q7 0 1 1 1 0 0 0 1
Q7 0 1 1 1 Q8 1 0 0 0 1 1 1 1
Q8 1 0 0 0 Q9 1 0 0 1 0 0 0 1
Q9 1 0 0 1 Q0 0 0 0 0 1 0 0 1
Q 10 x x x x Q3 x x x x x x x x
Q 11 x x x x Q4 x x x x x x x x
Q 12 x x x x Q5 x x x x x x x x
Q 13 x x x x Q6 x x x x x x x x
Q 14 x x x x Q7 x x x x x x x x
Q 15 x x x x Q0 x x x x x x x x

A partir de la tabla anterior se pueden calcular las funciones de excitación de los biestables (T3 , T2 ,
T1 , T0 ) dependientes del estado de partida (q3 , q2 , q1 , q0 ), empleado los K-maps. Así, se tiene:

T3 = q2 q1 q0 + q3 q0
T2 = q1 q0
T1 = q′3 q0
T0 = 1

En la figura siguiente se muestra la implementación del circuito. Como un extra se ha añadido una salida
TC que señala el fin de cuenta. En dicha implementación se siguen las instrucciones del enunciado,
ya que Logisim permite la configuración directa del elemento counter de la librería memory con el
comportamiento deseado para este sistema.
8.3 Contadores basados en registros 181

8.3 Contadores basados en registros


Problema 8.9 ★✩✩ Responde razonadamente: ¿Qué tipo de biestable se emplea habitualmente para
implementar un registro de desplazamiento? ¿Y para un contador? ¿El tipo de biestable depende en algún
caso del tipo de contador?

 Solución: Para implementar los registros se emplean biestables de tipo D. Para los contadores se
suelen emplear biestables de tipo T y en el caso de los contadores asíncronos también es sencillo el
empleo de biestables D con su salida Q′ realimentada a la entrada. Sin embargo, existe la posibilidad
de implementar contadores basados en registros de desplazamiento. En concreto, dichos registros
se usan para implementar los contadores en anillo y los contadores Johnson. En este caso, como en
cualquier registro, se suelen utilizar biestables D.
Los tipos de biestables que se mencionan para implementar contadores y registros de desplaza-
miento son los que proporcionan la funcionalidad objetivo, pero esta también se puede conseguir con
cualquier otro tipo de biestable teniendo en cuenta la equivalencia entre ellos. Por ejemplo, un biestable
T se puede obtener a partir de un J-K cuando T = J = K, y un biestable D se obtiene con D = J y
K = J′. ■

Problema 8.10 ★✩✩ Explica razonadamente el funcionamiento del circuito proporcionado en la figura
adjunta. Proporciona una implementación alternativa mediante el uso de un registro de desplazamiento.

 Solución:

El circuito proporcionado en el enunciado implementa un sistema secuencial síncrono, ya que


los biestables comparten la señal de reloj. Dicho circuito genera una secuencia cíclica creciente de 2
bits, desde 00 a 11. Es decir, se trata de un contador síncrono creciente MOD 4. La salida de dicho
contador se utiliza como entrada de selección de un DEC 2 × 4 cuyo propósito es decodificar el valor
del contador mediante la activación de la salida correspondiente al valor decimal de la cuenta. De este
modo, en la salida del de codificador se obtienen cíclicamente los códigos: 0001, 0010, 0100, 1000.
182 Capítulo 8. Registros y contadores

La misma salida del circuito anterior se puede obtener mediante un contador en anillo compuesto
por 4 biestables D. En este circuito se conecta la salida de cada biestable a la entrada del siguiente y la
salida del último realimentando la entrada del primero. El contador en anillo se inicia con la secuencia
0001 y el registro se encarga de obtener la secuencia deseada por rotación de la secuencia inicial.
La implementación de contadores en anillo se realiza con biestables D o J-K con D = J y K = J ′ .
Las implementaciones con biestables D y J-K para la simulación con Logisim se muestran en las
figuras siguientes:

Observa que en la segunda implementación se emplean biestables J-K con función de biestables D.
Recuerda que en el contador en anillo el reinicio de todos los biestables se hace a valor 0, excepto uno
que se reinicia a valor 1. ■

Problema 8.11 ★★✩ Para el circuito de la figura adjunta, determina la secuencia de salida si se parte del
estado inicial obtenido mediante la activación de la señal INIT/CLR. ¿Se puede considerar dicho circuito
un contador? Comprueba el comportamiento lógico del circuito empleando Logisim.

 Solución: El circuito de la figura está compuesto por biestables J-K funcionando como biestables
D, ya que si J = Q y K = Q′ , entonces J = K ′ . Por tanto, el circuito implementa un registro de
desplazamiento en el que la salida negada del último biestable (más a la dcha.) realimenta la entrada
del primero.
El circuito es un contador Johnson que se puede considerar un contador MOD 6, que genera
la secuencia [000, 001, 011, 111, 110, 100]. En el circuito equivalente con biestables D (ver figura
siguiente) se aprecia con mayor claridad que se trata de un contador Johnson.
8.3 Contadores basados en registros 183

Problema 8.12 ★✩✩ Cuantos biestables y estados tienen los contadores de 5 bits que se señalan
a continuación: a) Johnson, b) en anillo, c) síncrono decreciente MOD 25, y d) síncrono ascendente
completo.

 Solución: Cualquier tipo de contador de 5 bits posee un biestable por cada bit que debe almacenar.
Por tanto, todos necesitan 5 biestables, pero el número de estados depende del número de bits y del
tipo de contador. A continuación se indica el número de estados de cada contador:
a) Para un contador Johnson se tienen 2 · n estados, siendo n el número de bits. Este contador posee
n estados en los que se completan los bits con 1 y otros n estados para completar con 0. Si n = 5,
el número de estados del contador Johnson es 10.
b) En un contador en anillo, tanto de tipo one-hot encoding (todos los bits a cero excepto un 1),
como one-cold encoding (todos los bits a 1 excepto un 0), se tienen exactamente tantos estados
como biestables. Por tanto, un contador en anillo con 5 bits posee 5 estados.
c) En cualquier tipo de contador su módulo indica el número exacto de estados que tiene el contador.
En consecuencia, un contador MOD 25 posee 25 estados.
d) Para un contador completo tanto ascendente como descendente con n bits, el número de estados
es 2n . Por tanto, con 5 bits el número total de estados de un contador completo es 25 = 32.

Problema 8.13 ★✩✩ Describe detalladamente cómo se implementa un contador en anillo de 3 bits.
¿Cómo se puede implementar un contador en anillo de 3 bits en el que dependiendo de una señal de
control H ′ /C se genere un tipo de secuencia determinado: one-hot encoding [001, 010, 100] o one-cold
encoding [110, 101, 011]? Realiza una implementación para simulación lógica con Logisim.

 Solución: Para implementar un contador en anillo de 3 bits se conectan 3 biestables de tipo D en


cascada con la salida de uno conectada a la entrada del siguiente y la salida del último a la entrada del
primero. El registro se inicia con todos los biestables a 0 excepto uno de ellos que se debe iniciar a 1.
Una vez en funcionamiento, el código rota por el anillo construido con los biestables D. Para conseguir
un código complementario (con todos los bits a 1 excepto uno a 0) el código se pasa por un conjunto
de puertas XOR en las que una entrada es la salida de cada biestable y la otra entrada es la señal de
control. Al poner la señal de control a 0 la puerta XOR deja la señal de entrada inalterada y al usar 1,
el código se complementa. El circuito de la figura siguiente muestra el circuito para simulación con
Logisim:


184 Capítulo 8. Registros y contadores

Problema 8.14 ★★✩ Implementa con Logisim los contadores de 4 bits: (A) en anillo con one-hot
enconding, y (B) contador Johnson. Utiliza como elemento base el registro de desplazamiento (shift
register) de la biblioteca memory.

 Solución: (A) Contador en anillo. Para su implementación, en el registro se debe realimentar la


etapa de entrada con el valor de la etapa de salida. De este modo los bits recirculan en el registro. El
reinicio del registro se realiza mediante la carga de un valor constante 1 que pone la etapa de entrada a
1 y el resto de etapas a 0. La señal de EN (enable) habilita el desplazamiento. El valor del bit en cada
etapa se obtiene en paralelo por la parte inferior del registro. El circuito resultante se muestra en la
figura siguiente:

(B) Contador Johnson. En este caso la realimentación de la etapa de salida hacia la de entrada se hace
mediante un inversor. El reinicio del registro se realiza de modo asíncrono mediante señal de puesta a
0 del registro. El circuito resultante se muestra en la figura siguiente:


9. Sistemas secuenciales síncronos

Los sistemas secuenciales se diferencian de los sistemas combinacionales en la utilización de elementos


de memoria (biestables). La presencia de elementos de memoria facilita que la salida de los sistemas
secuenciales no solo sea función de sus entradas, sino que pueda tener en cuenta la historia pasada del
sistema (ver figura 9.1). Si los biestables de un sistema secuencial están sincronizados por una señal de
reloj única para todos ellos, se puede afirmar que el sistema es síncrono.

Sistema combinacional Sistema secuencial síncrono

X y
Circuito Lógico
ENTRADA SALIDA
Combinacional

A,B,C,... f
Circuito Lógico
ENTRADA SALIDA
Combinacional
Qt Memoria Qt+1
GRB
J Q
Estado de Nuevo
partida estado
K CLR Q

Reloj (CLK)

Figura 9.1: Diagramas de los sistemas de lógica combinacional (izda.) y secuencial (dcha.).

Si en un sistema síncrono dado, el efecto de la entrada se transmite a la salida a través de cambios


en los elementos de memoria (estado), el sistema sigue un modelo de Moore o autómata de Moore. Si
además, los cambios también se transmiten directamente desde la entrada a la salida del sistema, el modelo
asociado se denomina de Mealy o autómata de Mealy (ver figura 9.2).

El análisis de un sistema secuencial toma como dato de partida la implementación física del sistema.
Partiendo de dicha implementación, el análisis consiste en caracterizar el comportamiento del sistema
mediante sus estados y las transiciones entre estos. La implementación de un sistema secuencial se
proporciona como el diagrama del circuito lógico que lo describe. A partir de dicho diagrama es posible
obtener las expresiones booleanas, tanto de la excitación de los biestables, como de la salida del circuito.
Dichas expresiones serán dependientes de las entradas y los estados del sistema (salidas de los biestables).
Con las expresiones anteriores es posible construir la tabla de transición de estados y de salida. Estas
186 Capítulo 9. Sistemas secuenciales síncronos

describen el comportamiento del sistema para todas las combinaciones de entradas y estados posibles del
sistema.
Por el contrario, el diseño de un sistema secuencial se plantea como la tarea de implementar un
circuito que satisface la especificación del comportamiento proporcionada para el sistema. En este proceso
se decide el tipo de autómata que se desea emplear para llevar a cabo la implementación del sistema. A
partir del diagrama de transición de estado (DTE) del sistema es posible seguir un método sistemático
para el cálculo, tanto de las funciones de excitación de los biestables empleados, como de la función de
salida del circuito satisfaciendo la especificación requerida.

Nuevo Memoria
X estado y
Circuito Lógico Qt+1 Circuito Lógico
ENTRADA J
GRB
Q SALIDA
Combinacional Estado de Combinacional
partida
K CLR Q Qt

Reloj (CLK)

Autómata de Moore

y
X
Circuito Lógico SALIDA
ENTRADA
Combinacional
Memoria
Nuevo J
GRB
Q
Estado de
estado partida
K Q
Qt+1 CLR
Qt

Reloj (CLK)
Autómata de Mealy

Figura 9.2: Diagramas de los autómatas de Moore y Mealy.


9.1 Análisis secuencial 187

Problemas resueltos
9.1 Análisis de sistemas secuenciales
Problema 9.1 ★★★ Dibuja el cronograma de la señal de salida del circuito secuencial de la figura
adjunta teniendo en cuenta el valor de las señales indicadas y que los biestables están sincronizados por
flanco de subida. Observa que ambos biestables parten del estado q1 = q0 = 0.
CLK

INIT/CLR

 Solución: Para resolver este tipo de ejercicio se aconseja partir de las expresiones lógicas para el
estado resultante de cada biestable ([q j ]t+1 ) y la salida del sistema (y), como funciones de las entradas
(X) y el estado de partida ([q j ]t ). De este modo, al analizar el circuito proporcionado se tiene:

[q1 ]t+1 = X;
[q0 ]t+1 = [q1 ]t ;
y = [q′1 ]t [q0 ]t

Para hacer el cronograma de las señales q1 y q0 debemos tener en cuenta que se trata de biestables
sincronizados por flanco de subida (↑). Por tanto, dichos biestables pueden cambiar de estado de modo
síncrono en dicho flanco de la señal de reloj (CLK). Además, hay que tener presente que la señal
INIT /CLR activa la señal de preset (PRE) de q1 y la señal de clear (CLR) de q0 . En consecuencia,
si la señal INIT /CLR está activada, los valores de los biestables son q1 = 1 y q0 = 0. En este caso
marcamos en el cronograma mediante líneas guía verticales, tanto los instantes de sincronismo (en
negro) como los instantes de reinicio asíncrono de los biestables (en rojo).
El cronograma final queda así:
CLK

INIT/CLR

q1

q0

y

Problema 9.2 ★★✩ Para el circuito lógico de la figura adjunta, contesta de modo razonado a las
cuestiones siguientes:
1.- ¿El circuito implementa un sistema combinacional o secuencial?
2.- En caso de implementar un sistema modelado con un autómata finito. ¿Cuántos estados tendría el
sistema, como máximo? ¿Sería un autómata de Moore o de Mealy?
3.- Elabora la tabla de transición de estado del sistema.
188 Capítulo 9. Sistemas secuenciales síncronos

4.- Dibuja el DTE correspondiente.

 Solución: 1.- Tipo de sistema. La salida (y) del circuito depende tanto de su entrada (X) como
del estado del biestable (Q = q0 ) que posee. Además, como existe una realimentación desde la salida
del biestable (estado) hacia la entrada del circuito, su salida depende de la historia previa. Esto es, el
valor almacenado en el biestable. Por todo ello se puede afirmar que el circuito implementa un sistema
secuencial. De modo rápido, se puede afirmar que «si el circuito consta de biestables se trata de un
sistema secuencial», pero recuerda que para saber si se trata de un sistema síncrono o asíncrono hay
que saber si el tipo de biestable es síncrono y si la señal de sincronismo es común a todos los biestables.
2.- Número de estados y tipo de autómata. Como el circuito posee un único biestable, el número
máximo de estados que se pueden obtener es 2 (Q0 , Q1 ) correspondiente a los dos posibles estados del
biestable (q0 = 0, q0 = 1). El autómata implementado sería un autómata de Mealy, ya que el efecto de
la entrada en la salida es directo, no solo a través del cambio de estado en el biestable. Esto es, existe
una conexión directa (en la parte inferior del circuito) que conduce la señal desde la entrada hasta la
salida sin pasar por el biestable del circuito. Por inspección directa del circuito se puede obtener la
expresión lógica de la salida:

y = q0 X

En esta expresión también observamos una dependencia directa de la salida (y) de la entrada (X), que
se corresponde con un autómata de Mealy.
3.- Tabla de transición de estado del sistema. En la tabla de transición de estado se tabula la evolución
del estado del sistema. Para ello, se ordenan las filas de la tabla con todas las combinaciones de estado
de partida (Qt ) y valores de entrada (X). La tabla se completa con el estado al que evoluciona el sistema
(Qt+1 ) y el valor de la salida (y) correspondiente. Los valores necesarios para completar la tabla se
pueden obtener con las expresiones lógicas de la excitación del biestable y la salida. Inspeccionando el
circuito proporcionado se tiene:

T0 = q′0 X + q0 X = q0 ⊕ X
y = q0 X

Teniendo en cuenta que Q = q0 , a partir de las expresiones anteriores es posible completar la tabla
solicitada:
Qt X T0 → Qt+1 y
0 0 0 →0 0
0 1 1 →1 0
1 0 1 →0 0
1 1 0 →1 1

4.- Construcción del DTE. Trasladando los datos de la tabla anterior al DTE, se obtiene:
0/0 1/1
1/0

Q0 Q1

0/0 ■
9.1 Análisis secuencial 189

Problema 9.3 ★✩✩ Dado el DTE de la figura adjunta, identifica los errores presentes en el mismo.
INIT
0 0
Q0 /1 Q1 /0 Q2 /0

0 1
1 1 0
1
Q5 /0 Q3 /1
0
0
 Solución: El DTE proporcionado corresponde a un autómata de Moore, ya que el valor de la salida
se indica en cada estado, sin dependencia directa de la entrada al sistema. Para que el DTE sea correcto,
en cada estado se debe producir una transición para cada uno de los valores de la entrada y al menos
debe haber una transición cuyo destino sea el estado en cuestión, a menos que se trate del estado inicial
o al que se llega mediante reinicio del sistema.
Analizando el DTE se observan los siguientes errores:
En el estado Q2 hay dos transiciones para la entrada 0. Una de ellas lleva al estado Q1 y otra
permanece en el estado Q2 . Para ser correcto, una de estas dos transiciones debería corresponder
con la entrada 1.
En el estado Q3 existen dos transiciones de salida, pero ninguna de entrada. Por tanto, este
estado no se alcanzaría nunca. En el estado Q0 sucede algo parecido, pero en este caso no es un
error, ya que se trata del estado inicial en el que comienza el autómata y del que parte el sistema
cuando este se reinicia.
Aunque en el estado Q5 no hay ninguna transición que lleve el sistema a otro estado, dicha situación no
constituye un error, sino un estado en que el sistema permanece hasta su reinicio. Tampoco constituye
un error el hecho que en el DTE no aparezca el estado Q4 , ya que el nombre de los estados es una
convención, así como su codificación.
En este sistema son precisos 3 biestables que podrían codificar el estado en binario natural según el
subíndice indicado por la denominación del estado. Por ejemplo: Q0 = [000], Q1 = [001], Q2 = [010],
Q3 = [011] y Q5 = [101]. ■

Problema 9.4 ★✩✩ Dado el circuito de la figura adjunta:

Contesta razonadamente a las cuestiones siguientes:


1.- Identifica la/s entrada/s y salida/s del circuito.
2.- ¿Qué tipo de sistema representa: combinacional o secuencial, síncrono o asíncrono?
190 Capítulo 9. Sistemas secuenciales síncronos

3.- Si el circuito correspondiese a un autómata finito, ¿de qué tipo sería este?
4.- Calcula las expresiones lógicas de las excitaciones de los biestables y la función de salida.
5.- Elabora la tabla de transición de estado y salida del sistema.
6.- Dibuja el DTE correspondiente.

 Solución: 1.- Identificación de las E/S. El sistema tiene una única entrada (X) y una única salida
(y).
2.- Tipo de sistema representado. El circuito proporcionado es secuencial, ya que está compuesto de
biestables. Esto es, con elementos de memoria.
Se trata de un circuito síncrono porque los biestables existentes comparten la señal de sincronismo
(CLK). Por tanto, el circuito corresponde a un sistema secuencial síncrono.
3.- Tipo de autómata finito. El circuito corresponde a un autómata de tipo Mealy, porque existe una
conexión directa desde la entrada (X) a la salida (y) sin pasar por los biestables del circuito (ver la
rama inferior de la puerta NOR del circuito).
4.- Expresiones de funciones de excitación y salida del circuito. Las funciones de excitación de
biestables y salida se obtienen por simple inspección visual del circuito:

J1 = ((q′1 q0 )′ X)′ = (q′1 q0 )′′ + X ′ = q′1 q0 + X ′


K1 = X ′
J0 = X
K0 = q0
y = (q′1 + q0 + X ′ )′ = q1q′0 X

5.- Tabla de transición de estado. La tabla se completa a partir de las expresiones lógicas obtenidas
en el apartado anterior. De este modo se obtiene:
t t+1
q1 q0 X J1 K1 J0 K0 q1 q0 y
0 0 0 1 1 0 0 1 0 0
0 0 1 0 0 1 0 0 1 0
0 1 0 1 1 0 1 1 0 0
0 1 1 1 0 1 1 1 0 0
1 0 0 1 1 0 0 0 0 0
1 0 1 0 0 1 0 1 1 1
1 1 0 1 1 0 1 0 0 0
1 1 1 0 0 1 1 1 0 0

6.- Diagrama de transición de estado. El DTE se obtiene directamente desde la tabla de transición de
estado:
1/0
Q0 Q1

0/0
0/0 x/0
0/0
1/0
Q3 Q2

1/1
Observa como en el estado Q1 se indica la transición independienteente del valor de la entrada (x). ■
9.1 Análisis secuencial 191

Problema 9.5 ★★✩ Para el circuito de la figura adjunta contesta razonadamente a las cuestiones
siguientes:
1.- Identifica entradas y salidas e indica el tipo de autómata que se implementa con el circuito.
2.- Plantea las expresiones lógicas de las excitaciones de los biestables y de la salida del circuito.
3.- Determina la tabla de transición de estado incluida la salida. Para el estado emplea la codificación
Q = [q1 q0 ].
4.- Dibuja el DTE correspondiente.
5.- Dibuja el cronograma de las señales q1 , q0 para los 5 primeros ciclos de reloj con X = 1, si se
considera el estado inicial Q0 = [00]. A la vista del cronograma explica la funcionalidad del circuito.

 Solución: 1.- Identificación de E/S y tipo de autómata. Es un circuito con una entrada (X) y
una salida (y). Se trata de un circuito secuencial, ya que consta de biestables tipo D para almacenar el
estado.
El circuito implementa un autómata de Mealy, puesto que la salida depende directamente de la
entrada al existir una conexión directa (ver rama inferior del circuito) desde la entrada a la salida sin
pasar por los biestables del circuito.
2.- Expresiones lógicas de la excitación de los biestables y la salida. Mediante inspección visual del
circuito es posible determinar las ecuaciones lógicas de la excitación de los biestables y la salida del
sistema. De este modo se obtiene:
D0 = X
D1 = (q1 + q0 )X
y = q1 X

3.- Tabla de transición de estado. La tabla se completa a partir de las expresiones lógicas del apartado
anterior, para obtener el resultado final:
t t+1
q1 q0 X D1 D0 q1 q0 y
0 0 0 0 0 0 0 0
0 0 1 0 1 0 1 0
0 1 0 0 0 0 0 0
0 1 1 1 1 1 1 0
1 0 0 0 0 0 0 0
1 0 1 1 1 1 1 1
1 1 0 0 0 0 0 0
1 1 1 1 1 1 1 1

4.- Diagrama de transición de estado. El DTE se obtiene directamente desde la tabla de transición de
estados anterior:
192 Capítulo 9. Sistemas secuenciales síncronos
INIT/CLR
1/0
0/0 Q0 Q1
0/0

0/0
0/0 1/0
1/1 Q3 Q2

1/1

Como en este DTE el estado Q2 no se alcanza en ningún momento (no hay transiciones entrantes
que conduzcan a él), el autómata se podría construir con solo tres estados (Q0 , Q1 y Q3 ).
INIT/CLR
1/0
0/0 Q0 Q1
0/0

0/0

1/0
1/1 Q3

5.- Cronograma. La elaboración del cronograma es muy sencilla mediante el uso de la tabla de
transición de estados o el DTE. En ellos partimos del estado Q0 = [00] manteniendo el valor de la
entrada X = 1.
Para dibujar correctamente el cronograma debes observar que los biestables se sincronizan por
flanco de bajada, por lo que el cambio de estado se produce en dicho flanco.
ts=1 ts=2 ts=3 ts=4 ts=5
CLK

q1

q0

El cronograma muestra que la salida se pone a 1 con la detección en la entrada de dos unos seguidos. ■
9.1 Análisis secuencial 193

Problema 9.6 ★★✩ El diagrama de bloques de la figura adjunta representa un autómata finito.

J
GRB
Q 0
0 0
q2
1
K CLR Q

Lógica GRB 1 Lógica


excitación D Q
de salida
biestables q1
CLR Q

GRB 1
J Q
q0
CLK K CLR Q

Dados los componentes del sistema y los valores concretos de las señales indicados en la figura, contesta
razonadamente a las cuestiones siguientes:
1.- ¿Cuál es el número máximo de estados posible del autómata?
2.- ¿Es un autómata de Moore o de Mealy?
3.- ¿Cuántas filas tiene la tabla de verdad que define la salida del autómata?
4.- ¿Cuántas filas tiene la tabla de verdad que define el estado Qt+1 al que evoluciona el autómata en
cada instante de sincronismo?
5.- ¿En qué estado se encuentra el sistema en el instante mostrado en la figura proporcionada?
6.- Si estuviese a punto de producirse un flanco positivo del reloj (CLK) ¿Cuál sería el estado del
sistema después del sincronismo de los biestables?

 Solución: 1.- Número máximo de posibles estados. Puesto que el sistema consta de 3 biestables
y cada uno de ellos proporciona 2 estados, el número máximo de estados posibles es 23 = 8 estados:
desde Q0 = [000] a Q7 = [111].
2.- Tipo de autómata. El bloque correspondiente a la lógica de salida tiene entradas procedentes solo
de los biestables. Por tanto, las entradas afectan a la salida únicamente a través del estado. De este
modo, la salida puede cambiar solamente cuando lo hace el estado. Dicho de otro modo, no existe una
conexión directa desde las entradas del sistema hasta la lógica de salida sin pasar por los biestables del
sistema. Así pues, este diagrama corresponde a un autómata de Moore.
3.- Número de filas de la tabla de salida. Como la salida del sistema depende únicamente del estado,
la tabla de verdad de la salida tiene el mismo número de filas que estados tiene el sistema, esto es 8
filas.
4.- Número de filas de la tabla de transición de estado. La tabla de verdad que define el estado
siguiente al que evoluciona el sistema depende tanto del número de estados como de entradas que
pueden darse en cada uno de ellos. Por tanto, el número de filas será igual al de combinaciones posibles
de estados y entradas. Es decir: 2(3+2) = 25 = 32 filas.
5.- Estado actual del sistema. El estado del sistema en el momento que ilustra la figura proporcionada,
viene dado por la salida de los biestables. A partir de la figura se tiene que: q2 = 0, q1 = 1 y q0 = 1. Si
se asume una codificación en binario natural, dicho estado sería: [011] = Q3
6.- Estado resultante después del sincronismo de los biestables. Para conocer el estado al que
evolucionará cada biestable en el siguiente flanco de disparo, se observan las entradas de los biestables
194 Capítulo 9. Sistemas secuenciales síncronos

y su tipo. El tipo de biestable determina el comportamiento del mismo para unas entradas dadas. De
este modo, se tiene que:
q2 es de tipo J-K con J2 = K2 = 1. Estas entradas fijan un comportamiento en modo báscula
para el biestable. Por tanto, su estado pasará de 0 a 1.
q1 es de tipo D con D1 = 0. Esto es, evoluciona al estado marcado por la entrada. En consecuencia,
pasará de 1 a 0,
q0 es de tipo J-K con J0 = K0 = 0. El biestable retiene su estado. Como resultado, mantiene su
estado a 1.
En consecuencia, el estado resultante del sistema después del sincronismo de los biestables pasa a ser:
q2 = 1, q1 = 0, q0 = 1 →[101] = Q5 . ■

Problema 9.7 ★★✩ Dado el circuito de la figura adjunta, contesta razonadamente a las cuestiones
siguientes:
1.- Calcula las funciones de excitación de los biestables D1 , J0 , K0 y la función de salida y.
2.- ¿Qué tipo de autómata implementa el circuito?
3.- Elabora la tabla de transición de estado y de salida correspondientes al circuito.
4.- Dibuja el DTE del sistema a partir de las tablas del apartado anterior.
5.- Construye una tabla con la evolución temporal en 5 flancos consecutivos de sincronismo (ts = 1
a ts = 5) para las entradas de excitación de los biestables (D1 , J0 y K0 ), la salida de los biestables
(q1 , q0 ) y la salida del circuito (y). El estado inicial de partida es Q0 = [00] ⇒ q1 = 0, q0 = 0 y los
valores de la entrada en los instantes de sincronismo es X = [0, 1, 1, 1, 0].
6.- Traslada la tabla obtenida en el apartado anterior a un cronograma de las señales de entrada (X),
salidas de los biestables (q1 , q0 ) y salida del sistema (y).

 Solución: 1.- Funciones de excitación y salida. Las expresiones lógicas para las funciones
solicitadas se obtienen directamente a partir de la inspección visual del circuito. De este modo, se
tiene:
D1 = X
J0 = (q1 X)′ = q′1 + X ′
K0 = q1 ⊕ q′0
y = q′1 q0

2.- Tipo de autómata implementado. El autómata representado por el circuito es de tipo Moore,
ya que la salida depende únicamente del estado (véase la expresión lógica). Cualquier cambio en la
entrada se transfiere a la salida mediante un cambio en el estado. La inspección visual del circuito
permite apreciar que todas las conexiones desde la entrada hacia la salida atraviesan los biestables.
3.- Tablas de transición de estado y salida. La tabla de transición de estado se construye tabulando
todas las combinaciones posibles del estado (q1 , q0 ) y el valor de la entrada (X) junto con el valor
correspondiente de la excitación de cada biestable (D1 , J0 , K0 ). Este último valor se obtiene como
resultado de las expresiones obtenidas en el apartado anterior.
9.1 Análisis secuencial 195

Una vez conocida la entrada de los biestables en un instante de sincronismo dado, es posible
obtener el estado resultante tras el sincronismo. La tabla de salida se obtiene tabulando para cada
uno de los posibles estados del sistema (q1 , q0 ), el valor correspondiente de la salida (y). La tabla de
transición de estado y de salida que se obtienen se muestran en la figura siguiente (izda.).
4.- Diagrama de transición de estado. El DTE se obtiene trasladando los datos de evolución de estado
que muestra la tabla anterior. Por tanto, asumiendo que el estado inicial es Q0 , el DTE queda según se
indica en la figura siguiente (dcha.).
t t+1
q1 q0 X D1 J0 K0 q1 q0 q1 q0 y
1/0
0 0 0 0 1 1 0 1 0 0 0 0
0 0 1 1 1 1 1 1 0 1 1 Q0 /0 Q1 /1
0 1 0 0 1 0 0 1 1 0 0
0 1 1 1 1 0 1 1 1 1 0
0 1 0
1 0 0 0 0 0 0 1
1 0 1 1 1 0 1 0 1
1 1 0 0 0 1 0 0 Q3 /0 Q2 /0
1 1 1 1 1 1 1 0 1
1
5.- Tabla de evolución temporal. La tabla de evolución temporal del sistema se elabora considerando
los instantes de sincronismo en que se produce el flanco de subida de la señal de reloj. Ten en cuenta
que el cambio de estado de los biestables es posible solo en dichos instantes. Dada una codificación de
estado en binario natural, si se considera Q0 como estado de partida, en el mismo se tiene q1 = 0 y
q0 = 0, .
El método para construir la tabla de evolución temporal es sencillo. En el primer flanco (ts = 1)
se conoce el valor del estado de partida y la entrada (X). Con esta información es posible calcular la
excitación de los biestables (D1 , J0 , K0 ) y la salida del sistema (y), ya que se dispone de sus expresiones
lógicas.
Una vez conocida la excitación de los biestables es inmediato obtener el estado resultante al que
evolucionan. El nuevo estado se convierte en el estado de partida en el siguiente instante de sincronismo
y aparece en la fila siguiente de la tabla, para repetir de nuevo los cálculos. Al final la tabla de evolución
temporal que se obtiene queda:
ts Qt X D1 J0 K0 y → Qt+1
1 00 0 0 1 1 0 → 01
2 01 1 1 1 0 1 → 11
3 11 1 1 0 1 0 → 10
4 10 1 1 0 0 0 → 10
5 10 0 0 1 0 0 → 01

6.- Cronograma. La elaboración del cronograma solicitado tiene en cuenta los valores calculados en
la tabla del apartado anterior. Para ello, se deben tener en cuenta ciertos aspectos:
Los instantes sucesivos señalados (ts ) corresponden a instantes de sincronismo o disparo de los
biestables. Es decir, coinciden con un posible cambio de estado de los biestables.
En un autómata de Moore la salida (y) cambia de modo síncrono, ya que solo puede cambiar
cuando lo hace el estado.
Se asume que los valores de la entrada (X) están disponibles en los instantes de sincronismo.
Por tanto, su valor se emplea para calcular el valor del estado al que evoluciona el sistema. De
este modo su efecto se transfiere a la salida a través del cambio de estado que produce.
196 Capítulo 9. Sistemas secuenciales síncronos

El cronograma obtenido una vez que se trasladan los valores de la tabla de evolución temporal es:
ts=1 ts=2 ts=3 ts=4 ts=5
CLK

D1

J0

K0

q1

q0

y

Problema 9.8 ★★★ El circuito de la figura adjunta representa un registro de desplazamiento sincronizado
por flanco de bajada, en el que los bits se desplazan de q3 a q0 (desplazamiento a la derecha) con q3 = X. En
este caso, la entrada al registro se obtiene realimentando el valor resultante de un circuito combinacional
aplicado al contenido del registro. Responde razonadamente a las cuestiones siguientes relacionadas con
el circuito proporcionado:

1.- Calcula la expresión lógica de la variable X de entrada al registro.


2.- Analiza la evolución del estado del registro mediante una tabla de evolución temporal, sabiendo que
el estado de partida es q3 = 1, q2 = 1, q1 = 1, q0 = 0 ⇒ Q14 = [1110]. Realiza dicha tabla hasta
que el estado se repita.
3.- Dibuja el cronograma del circuito partiendo del estado indicado en el apartado anterior.
4.- Implementa un circuito equivalente al proporcionado, pero compuesto con biestables individuales.
Comprueba la equivalencia de los circuitos mediante simulación con Logisim.
9.1 Análisis secuencial 197

 Solución: 1.- Expresión lógica de X. El valor de entrada al registro se obtiene desde el valor
de estado del registro (observa el circuito proporcionado) como una función lógica cuya expresión
algebraica es:

X = (q2 + q0 )′ + (q2 ⊕ q1 ) = q′2 q′0 + q′2 q1 + q2 q′1

2.- Tabla de evolución temporal. La tabla de evolución temporal se construye teniendo en cuenta el
desplazamiento de valores que tiene lugar en el registro partiendo del estado inicial: [1110]. El valor
de X indica la entrada del biestable q3 del registro. El hecho de que el registro esté sincronizado por
flanco de bajada no altera el análisis realizado, ya que esto solo afecta al instante en que se produce el
cambio de valor de los biestables. De este modo, las ecuaciones características que se obtienen para
cada biestable son:
[q3 ]t+1 = X
[q2 ]t+1 = [q3 ]t
[q1 ]t+1 = [q2 ]t
[q0 ]t+1 = [q1 ]t

Donde el valor de X se obtiene de la expresión presentada en el apartado anterior. Por tanto, la tabla de
evolución temporal queda:
ts Qt q3 q2 q1 q0 X → Qt+1
1 Q14 1110 0 → 0111
2 Q7 0111 0 → 0011
3 Q3 0011 1 → 1001
4 Q9 1001 0 → 0100
5 Q4 0100 1 → 1010
6 Q10 1010 1 → 1101
7 Q13 1101 1 → 1110
8 Q14 1110 0 → 0111

En la tabla se observa que el estado se repite transcurridos 7 ciclos de la señal de sincronismo.


3.- Cronograma. A partir de la tabla de evolución temporal se puede obtener el cronograma:
ts=1 ts=2 ts=3 ts=4 ts=5 ts=6 ts=7 ts=8

CLK

1 1 1 1 1
q3
0 0 0
1 1 1 1 1
q2 0 0 0

1 1 1 1 1
q2
0 0 0

1 1 1 1
q0
0 0 0 0
1110 (14) 0111 (7) 0011 (3) 1001 (9) 0100 (4) 1010 (10) 1101 (13) 1110 (14)
198 Capítulo 9. Sistemas secuenciales síncronos

4.- Circuito equivalente con biestables D. El circuito solicitado queda:

Problema 9.9 ★★★ Dado el circuito de la figura adjunta contesta razonadamente a las cuestiones
siguientes:
1.- ¿Cuál es el número máximo de estados que puede poseer?
2.- ¿Qué tipo de sincronismo presenta el circuito?
3.- ¿Cuál es el comportamiento del circuito cuando CNT ′ /INIT = 1?
4.- Elabora la tabla de transición de estado si CNT ′ /INIT = 0.
5.- Dibuja el DTE del sistema y describe detalladamente su funcionalidad.

 Solución: 1.- Número máximo de estados. Como el sistema posee 3 biestables D, con 2 estados
posibles cada uno, el número máximo de estados es: 23 = 8.
2.- Tipo de sincronismo del circuito. Se trata de un sistema síncrono porque los tres biestables del
circuito comparten la misma señal de sincronismo (CLK).
3.- Comportamiento del circuito. Cuando CNT ′ /INIT = 1, los multiplexores llevan a su salida la
entrada correspondiente al valor conectado en la señal INIT Val y en el flanco de sincronismo cada
biestable D se carga con el bit correspondiente.
4.- Tabla de transición de estado. Cuando CNT ′ /INIT = 0, los multiplexores llevan a su salida
la señal conectada a su entrada 0 que es el valor negado del estado del biestable al que se conecta.
Mediante inspección visual se puede obtener la expresión lógica de la excitación de cada biestable. De
este modo, se obtienen las expresiones de las entradas a los biestables D:

D2 = (q1 q0 ) ⊕ q2
D1 = q0 ⊕ q1
D0 = q′0

A partir de estas expresiones se puede confeccionar la tabla de transición de estado con todos los
estados posibles y el valor obtenido para las excitaciones de cada biestable aplicando las expresiones
anteriores. De este modo se obtiene el estado resultante partiendo de un estado dado. La tabla de
evolución de estado que se obtiene es:
9.2 Diseño secuencial 199

t t+1
q2 q1 q0 D2 D1 D0 q2 q1 q0
Q0 0 0 0 0 0 1 0 0 1 Q1
Q1 0 0 1 0 1 0 0 1 0 Q2
Q2 0 1 0 0 1 1 0 1 1 Q3
Q3 0 1 1 1 0 0 1 0 0 Q4
Q4 1 0 0 1 0 1 1 0 1 Q5
Q5 1 0 1 1 1 0 1 1 0 Q6
Q6 1 1 0 1 1 1 1 1 1 Q7
Q7 1 1 1 0 0 0 0 0 0 Q0

5.- Diagrama de transición de estado. A la vista de la tabla elaborada en el apartado anterior se


observa que el sistema se comporta como un contador ascendente MOD 8. El DTE correspondiente
queda:

Q0 Q1

Q7 Q2

Q6 Q3

Q5 Q4

9.2 Diseño de sistemas secuenciales


Problema 9.10 ★★✩ Dado el DTE de la figura adjunta contesta razonadamente:

1.- ¿A qué tipo de autómata corresponde el DTE proporcionado?


2.- ¿Cuántos biestables se precisan, como mínimo, para implementar el sistema? Especifica la codifica-
ción elegida para los estados.
3.- Elabora la tabla de transición de estado del sistema.
4.- Implementa el autómata con un circuito lógico Logisim que conste de un biestable J-K (para el
MSB del estado) y un biestable T (para el LSB del estado). Para ello, implementa las funciones
lógicas de excitación de los biestables y la función de salida mediante dos métodos: (A) solo con
puertas lógicas, y (B) con un DEC 3 × 8 y las puertas lógicas necesarias.
INIT/CLR

0/0 x/0
Q0 Q3
0/1
0/0 1/0 1/0

Q1 Q2
1/0

 Solución: 1.- Tipo de autómata. En el DTE se observa que la salida del sistema está anotada en las
transiciones (arcos). Esto indica que la salida no solo depende del estado, sino también —directamente—
de la entrada. Por tanto, el DTE proporcionado corresponde a un autómata de Mealy. En este DTE se
observa que el sistema posee 4 estados, 1 entrada y 1 salida.
200 Capítulo 9. Sistemas secuenciales síncronos

2.- Número de biestables y codificación de estado. Como el DTE tiene 4 estados (Q0 a Q3 ), son
precisos al menos dos biestables para codificar los cuatro estados del sistema. Para la codificación del
estado se empleará binario natural:

Q0 = [00]
Q1 = [01]
Q2 = [10]
Q3 = [11]

Con esta codificación, la denominación del estado (Qi ) indica el valor de estado de cada biestable
individual (q j ). Donde el subíndice i es el equivalente decimal de la agrupación de los valores binarios
de los biestables.
3.- Tabla de transición de estado. La tabla establece para cada estado de partida y cada una de las
entradas posibles, la evolución del estado. La tabla se construye de modo ordenado como una tabla de
verdad con todos los valores de las variables lógicas ubicadas en la zona de entradas: estado y entrada.
En la parte de salidas se indica el estado resultante. La tabla se completa con los valores de las señales
de excitación de los biestables requeridos para conseguir la transición de estado deseada. Además, se
añade el valor de salida para cada una de las transiciones de estado. Para completar la tabla se tiene en
cuenta el tipo de biestable a utilizar para almacenar el estado y su comportamiento.
t t+1 q1 q0
Q 1 q0 X
q q q
Q 1 0 J1 K1 T0 y
Q0 0 0 0 Q0 0 0 0 x 0 0
Q0 0 0 1 Q1 0 1 0 x 1 0
Q1 0 1 0 Q0 0 0 0 x 1 0
Q1 0 1 1 Q2 1 0 1 x 1 0
Q2 1 0 0 Q0 0 0 x 1 0 1
Q2 1 0 1 Q3 1 1 x 0 1 0
Q3 1 1 0 Q3 1 1 x 0 0 0
Q3 1 1 1 Q3 1 1 x 0 0 0

4.- Implementación del autómata. Para obtener el circuito es preciso calcular las expresiones lógicas
para la excitación de los biestables (J1 , K1 , T0 ) y la salida del circuito (y), como funciones dependientes
del estado (q1 , q0 ) y la entrada (X). A continuación se describen dos estrategias de implementación.
(A) Implementación con puertas lógicas. Para la implementación con puertas lógicas interesa obtener
la expresión simplificada de las funciones lógicas de excitación y salida. La obtención de las funciones
se realiza teniendo en cuenta los K-maps que se pueden obtener a partir de la tabla de estado obtenida
en el apdo. anterior. De este modo se obtienen las formas simplificadas SOP:

J1 = q0 X; K1 = q′0 X ′
T0 = q′0 X + q′1 q0
y = q1 q′0 X ′
9.2 Diseño secuencial 201

En este caso el circuito resultante es:

(B) Implementación con DEC 3 × 8. En esta alternativa todas las funciones se obtienen a partir de sus
formas canónicas implementadas con ayuda de un DEC. En dicho DEC, q1 , q0 y X se emplean como
variables de selección. Las expresiones canónicas utilizadas son las más simples posibles, y el circuito
resultante queda de la forma que se indica a continuación:

J1 = m3 ; K1 = m4
T0 = ∑ m(1, 2, 3, 5)
y = m4

Problema 9.11 ★★★ Dado el DTE de la figura adjunta contesta razonadamente:

INIT /CLR Q1
1/0 0/0
1/1
Q0 1/0 0/1 Q2

0/0 Q3 0/1
1/0
0/0 1/0
1/0
Q5 Q4
0/1

1.- ¿A qué tipo de autómata corresponde el DTE proporcionado?


2.- ¿Cuántos estados tiene el sistema? ¿Qué número de biestables son necesarios para codificar los
estados del sistema? ¿Qué codificación elegirías para los estados?
3.- ¿Cuántas entradas y salidas tiene el sistema?
4.- Elabora la tabla de transición de estado del sistema junto con los valores de las señales de excitación
de los biestables. Para codificar el estado, emplea un biestable T como bit más significativo, un J-K
para el menos significativo y considera el resto de biestables de tipo D.
202 Capítulo 9. Sistemas secuenciales síncronos

5.- Implementa el sistema con un circuito lógico para simulación con Logisim siguiendo la alternativa
más simple para las funciones de excitación y la función de salida.

 Solución: 1.- Tipo de autómata. El autómata representado por el DTE es de tipo Mealy, ya que la
salida depende tanto del estado como de la entrada. Esto se muestra en el DTE mediante la asociación
de la salida a las transiciones (los arcos del diagrama) y no a los estados representados por los círculos.
2.- Estados y codificación. El sistema posee 6 estados (de Q0 a Q5 ), por lo que son necesarios al
menos 3 biestables (q2 , q1 , q0 ) para poder codificarlos. La elección más lógica para la codificación del
estado es el empleo de binario natural. De este modo, con la identificación de cada estado se indica el
valor del estado individual de cada biestable. Por ejemplo: Q5 = [101] ⇒ q2 = 1, q1 = 0, q0 = 1.
3.- Número de entradas y salidas del sistema. En el DTE se aprecia que las transiciones del DTE
están etiquetadas con el valor de una única entrada (X) y solo una salida (y).
4.- Tabla de transición de estado. La tabla de transición de estado muestra la evolución del estado
para cada estado de partida y cada valor de la entrada. Una vez elegido el tipo de biestables para la
implementación del sistema, la tabla se completa con los valores de excitación de cada biestable para
conseguir la evolución de estado deseada. También se añade el valor correspondiente de la salida.
t t+1
q2 q1 q0 X q2 q1 q0 T2 D1 J0 K0 y
0 0 0 0 1 0 1 1 0 1 x 0
0 0 0 1 0 0 1 0 0 1 x 0
0 0 1 0 0 1 0 0 1 x 1 0
0 0 1 1 1 0 1 1 0 x 0 0
0 1 0 0 0 1 1 0 1 1 x 1
0 1 0 1 0 0 0 0 0 0 x 1
0 1 1 0 0 0 0 0 0 x 1 0
0 1 1 1 1 0 0 1 0 x 1 0
1 0 0 0 0 0 1 1 0 1 x 1
1 0 0 1 0 1 0 1 1 0 x 0
1 0 1 0 1 0 0 0 0 x 1 1
1 0 1 1 0 1 1 1 1 x 0 0
1 1 0 0 x x x x x x x x
1 1 0 1 x x x x x x x x
1 1 1 0 x x x x x x x x
1 1 1 1 x x x x x x x x

5.- Implementación. Para la implementación del circuito lógico correspondiente al sistema, se parte de
la tabla de transición de estado obtenida en el apartado anterior. En dicha tabla se extraen las tablas de
verdad que corresponden a las funciones de excitación de los biestables y la de salida, dependientes del
estado y la entrada al sistema. A partir de dichas tablas de verdad se pueden obtener, tanto las formas
canónicas de las funciones, como sus formas simplificadas. Obtendremos ambos tipos de expresiones
para escoger la más sencilla para cada una de las funciones.
Las formas canónicas más simples son:

T2 = ∑ m(0, 3, 7, 8, 9, 11)
D1 = ∑ m(2, 4, 9, 11)
J0 = ∏ M(5, 9)
K0 = ∏ M(3, 11)
y = ∑ m(4, 5, 8, 10)
9.2 Diseño secuencial 203

Las expresiones minimizadas de las funciones anteriores se pueden obtener con ayuda de los K-maps.
En este caso las expresiones no son necesariamente equivalentes a las empleadas en las formas canó-
nicas mostradas anteriormente. A continuación se muestran las formas simplificadas SOP obtenidas
mediante K-maps:

T2 = q′1 q′0 X ′ + q0 X + q2 q′0


D1 = q′2 q′1 q0 X ′ + q1 q′0 X ′ + q2 X
J0 = q′2 q′1 + X ′ ; K0 = X ′ + q1

y = q1 q′0 + q2 X ′

Para todas las funciones, excepto para T2 emplearemos un DEC 4 × 16 con variables de selección q2 ,
q1 , q0 y X, utilizando las formas canónicas de dichas funciones. Para implementar T2 se empleará un
MUX 4 × 1 con variables de selección q0 y X. Para ello se empleará la expresión simplificada de T2 en
la que calcularemos los coeficientes de la expansión de Shannon respecto de las variables q0 y X. De
este modo T2 se puede expresar como:

T2 = (q′1 + q2 ) · q′0 X ′ + q2 · q′0 X + 0 · q0 X ′ + 1 · q0 X

puesto que:

q0 = 0
⇒ T2 = q′1 + q2
X =0

q0 = 0
⇒ T2 = q2
X =1

q0 = 1
⇒ T2 = 0
X =0

q1 = 0
⇒ T2 = 1
X =1
204 Capítulo 9. Sistemas secuenciales síncronos

Observa como el circuito hace uso de túneles para facilitar el conexionado de los elementos. ■

Problema 9.12 ★★★ Se desea diseñar un sistema síncrono que genere la secuencia: [0, 1, 2, 3, 1, 3, 2, 1].
Contesta razonadamente a los apartados siguientes:
1.- ¿Cuántos estados tiene el sistema? ¿Cuántos biestables son necesarios, como mínimo, para su
implementación?
2.- Indica si el sistema es un contador y en caso contrario indica de qué tipo de sistema se trata.
3.- Diseña el sistema con el tipo de biestable de tu elección.
4.- Implementa el diseño realizado para su simulación con Logisim.

 Solución: 1.- Número de estados y biestables necesarios. El sistema consta de 8 estados. Por
tanto, se necesitan 3 biestables para codificar el estado del sistema.
2.- Tipo de sistema. El sistema no es un contador, puesto que la secuencia consta de valores repetidos.
En este caso, la salida no puede coincidir con el estado, como sí sucede en un contador. Por tanto,
se trata de un sistema temporizado o secuenciador, cuyo cambio de estado está gobernado por un
contador, en el que la salida es una función dependiente del estado.
3.- Diseño del sistema. El diseño es sencillo si para conseguir el cambio de estado se emplean 3
biestables de tipo T mediante un contador síncrono ascendente MOD 8. Para cada uno de los estados
del sistema se calcula el valor de la secuencia de salida mediante una función combinacional. Como la
salida consta de 4 valores distintos, para codificarlos se necesitan dos bits (y1 , y0 ). La tabla de verdad
para estas funciones resulta:
q2 q1 q0 y1 y0 Sec.
0 0 0 0 0 (0)
0 0 1 0 1 (1)
0 1 0 1 0 (2)
0 1 1 1 1 (3)
1 0 0 0 1 (1)
1 0 1 1 1 (3)
1 1 0 1 0 (2)
1 1 1 0 1 (1)
9.2 Diseño secuencial 205

Las formas canónicas resultantes para las funciones de salida son:

y1 = ∑ m(2, 3, 5, 6) = ∏ M(0, 1, 4, 7)
y0 = ∑ m(1, 3, 4, 5, 7) = ∏ M(0, 2, 6)

Las formas simplificadas para estas funciones se obtienen mediante los K-maps:

Formas SOP: y1 = q′2 q1 + q1 q′0 + q2 q′1 q0 ; y0 = q0 + q2 q′1


Formas POS: y1 = (q2 + q1 )(q1 + q0 )(q′2 + q′1 + q′0 ); y0 = (q2 + q0 )(q′1 + q0 )
4.- Implementación con Logisim. Dependiendo de la estrategia de implementación de las funciones
de salida, se emplean las expresiones canónicas o las simplificadas.
(A) Implementación con un DEC 3 × 8. Puesto que el DEC es un generador de términos canónicos se
utilizan las expresiones canónicas más sencillas de las funciones y1 (forma SOP) e y0 (forma POS).

y1 = ∑ m(2, 3, 5, 6)
y0 = ∏ M(0, 2, 6)

(B) Usando puertas lógicas. Se emplean las expresiones SOP simplificadas:

y1 = q′2 q1 + q1 q′0 + q2 q′1 q0


y0 = q0 + q2 q′1
206 Capítulo 9. Sistemas secuenciales síncronos

(C) Usando un registro de desplazamiento multibit y una memoria ROM. La implementación emplea
una memoria con un número de celdas igual al de valores a generar que estarán almacenados en dichas
celdas. La implementación consiste en la generación de las sucesivas direcciones de las celdas de
memoria. La dirección de memoria se incrementa con cada flanco de la señal de sincronismo. En este
caso la memoria puede consistir en un registro de desplazamiento en anillo (ver figura adjunta izda.)
o bien en una memoria ROM cuya dirección se obtiene de la salida de un contador ascendente (ver
figura adjunta dcha.):

Nota: Recuerda que en la implementación con registros de desplazamiento no se tiene información


sobre el estado actual del sistema. Por el contrario, con las memorias ROM, el estado del sistema es
conocido, ya que es proporcionado por el contador generador de direcciones. ■

Problema 9.13 ★★★ Se desea diseñar un circuito secuencial síncrono de dos entradas (X = [X1 X0 ]) y
una salida (y), de modo que y = 1 cuando la entrada sea X = [01] y esté precedida de las entradas previas
X = [00] seguida de X = [10]. En cualquier otro caso la salida debe ser nula y = 0. Una vez que el sistema
genera la salida y = 1, debe regresar al estado inicial. Completa las fases de diseño que se indican a
continuación:
1.- Determina la definición y codificación de estados. Plantea tanto un autómata de Moore como uno
de Mealy.
2.- Elabora el DTE del sistema para cada tipo de autómata.
3.- Confecciona la tabla de transición de estados correspondiente a cada tipo de autómata empleando
tanto biestables de tipo J-K como D.
4.- Implementa al menos un circuito Logisim para cada tipo de autómata planteado.

 Solución: 1.- Definición y codificación de estados. Los estados permiten memorizar la secuencia
de entrada recibida, ya que solo la secuencia: [00] → [10] → [01] produce la salida 1.
En un autómata de Moore tendríamos cuatro estados (Q0 , Q1 , Q2 , Q3 ), para cuya codificación se
emplearía el estado de dos biestables (q1 , q0 ) en binario natural. La interpretación de los estados sería:
Q0 ⇒ q1 = 0, q0 = 0: estado inicial.
Q1 ⇒ q1 = 0, q0 = 1: se ha recibido entrada [00].
Q2 ⇒ q1 = 1, q0 = 0: se ha recibido entrada [00] → [10].
Q3 ⇒ q1 = 1, q0 = 1: se ha recibido entrada [00] → [10] → [01].
En el autómata de Mealy, la salida se adelanta al estado. Por tanto, el estado Q3 no es necesario
pues en cuanto se llega al estado Q2 y la entrada es X = [01], se puede generar la salida y = 1.
2.- Diagrama de transición de estado para cada autómata. La figura siguiente muestra el DTE
correspondiente a cada uno de los autómatas:
9.2 Diseño secuencial 207

Autómata de Moore Autómata de Mealy


11 11/0
10 00 10/0 00/0 00/0
01 00 01/0
Q0 /0 Q1 /0 01/0 Q0 Q1

01 11 11/0
10/0
xx 00 10
11
11/0 00/0
10 01/1 10/0
Q3 /1 Q2 /0
Q2
01
Observa en el DTE de autómata de Moore como se indica que cualquier entrada lleva al estado Q0
desde Q3 .
3.- Tablas de transición de estados. Las tablas de transición de estado para cada autómata obtenidas a
partir de los DTE son:
Autómata de Moore Autómata de Mealy
t t+1
q1 q0 X1 X0 q1 q0 J1 K1 J0 K0 D1 D0 t t+1
0 0 0 0 0 1 0 x 1 x 0 1 q1 q0 X1 X0 q1 q0 J1 K1 J0 K0 D1 D0 y
0 0 0 1 0 0 0 x 0 x 0 0 0 0 0 0 0 1 0 x 1 x 0 1 0
0 0 1 0 0 0 0 x 0 x 0 0 0 0 0 1 0 0 0 x 0 x 0 0 0
0 0 1 1 0 0 0 x 0 x 0 0 0 0 1 0 0 0 0 x 0 x 0 0 0
0 1 0 0 0 1 0 x x 0 0 1 0 0 1 1 0 0 0 x 0 x 0 0 0
0 1 0 1 0 0 0 x x 1 0 0 0 1 0 0 0 1 0 x x 0 0 1 0
0 1 1 0 1 0 1 x x 1 1 0 0 1 0 1 0 0 0 x x 1 0 0 0
0 1 1 1 0 0 0 x x 1 0 0 0 1 1 0 1 0 1 x x 1 1 0 0
0 1 1 1 0 0 0 x x 1 0 0 0
1 0 0 0 0 1 x 1 1 x 0 1
1 0 0 0 0 1 x 1 1 x 0 1 0
1 0 0 1 1 1 x 0 1 x 1 1
1 0 0 1 0 0 x 1 0 x 0 0 1
1 0 1 0 0 0 x 1 0 x 0 0
1 0 1 0 0 0 x 1 0 x 0 0 0
1 0 1 1 0 0 x 1 0 x 0 0 1 0 1 1 0 0 x 1 0 x 0 0 0
1 1 0 0 0 0 x 1 x 1 0 0 1 1 0 0 x x x x x x x x x
1 1 0 1 0 0 x 1 x 1 0 0 1 1 0 1 x x x x x x x x x
1 1 1 0 0 0 x 1 x 1 0 0 1 1 1 0 x x x x x x x x x
1 1 1 1 0 0 x 1 x 1 0 0 1 1 1 1 x x x x x x x x x

En el caso del autómata de Moore, la salida (y) no aparece en la tabla de transición de estado, ya
que dicha salida es dependiente únicamente del estado. Por tanto, para el autómata de Moore la tabla
de salida queda:
q1 q0 y
0 0 0
0 1 0
1 0 0
1 1 1
4.- Implementación de autómatas. Para llevar a cabo la implementación del sistema se calculan las
expresiones lógicas de las excitaciones de los biestables y la salida, en función de valor del estado y la
entrada al sistema. Por supuesto, como se ha indicado en el apartado anterior, en el caso del autómata
de Moore, la salida solo dependerá del estado. A continuación se muestran los K-maps que permiten
obtener las expresiones en el caso del empleo de biestables J-K. De modo análogo se obtienen para
biestables de tipos D. Todo el proceso se realiza para cada tipo de autómata.
208 Capítulo 9. Sistemas secuenciales síncronos

(A) Autómata de Moore (formas SOP simplificadas):

J1 = q0 X1 X0′ J0 = X1′ X0′ + q1 X1′


K1 = X0′ + X1 + q0 K0 = X0 + X1 + q1

Con el valor obtenido de la tabla de salida: y = q1 q0


Si se repite el proceso para biestables de tipo D se obtiene:

D1 = q′1 q0 X1 X0′ + q1 q′0 X1′ X0 , D0 = q′1 X1′ X0′ + q1 q′0 X1′

Por tanto, el circuito resultante con biestables tipo J-K queda:

(B) Autómata de Mealy (formas SOP simplificadas):


9.2 Diseño secuencial 209

Con los K-maps anteriores obtenemos las expresiones siguientes:

J1 = q0 X1 X0′ K1 = 1
J0 = X1′ X0′ K0 = X0 + X1
y= q1 X1′ X0

De este modo, el circuito con biestables J-K queda:

Problema 9.14 ★★★ En un concurso de preguntas y respuestas cuando el jugador desea responder
acciona un pulsador que activa inmediatamente una señal luminosa de color rojo.

Señal
Pulsador luminosa
Sistema
Secuencial

Se desea diseñar un sistema secuencial síncrono mediante un autómata de Moore que controle la
activación memorizada de la señal luminosa mediante un pulsador de acción momentánea. Esto es, el
pulsador genera un nivel alto (1) solo cuando está pulsado. El sistema a diseñar debe memorizar la acción
que enciende la señal luminosa, de modo que esta permanezca encendida cuando se libera el pulsador.
Para apagar la señal luminosa será precisa una nueva pulsación. En este nuevo estado, la señal permanece
apagada hasta nueva activación. Completa los pasos de diseño del sistema indicados a continuación:
1.- Define las señales de entrada, salida y los estados que tendrá el sistema cuando se emplee un
autómata de Moore para su diseño.
2.- Determina el número de biestables de tipo J-K necesarios para implementar el sistema y dibuja un
DTE apropiado.
3.- Traslada el DTE a una tabla de transición de estado y una tabla de salida.
4.- Calcula las funciones de excitación para los biestables de tipo J-K y la función de salida.
5.- Implementa el circuito resultante con Logisim empleando un pulsador para la entrada y un elemento
led para la salida.
6.- Explica cómo influye la frecuencia de reloj en el funcionamiento del sistema.

 Solución: 1.- Definición de señales de entrada, salida y estados. El sistema tiene una entrada
(X) que es generada por el pulsador y tiene una salida (y) que activa la señal luminosa (led). El sistema
se plantea como un autómata de Moore con los 4 estados que se indican a continuación:
Q0 : El sistema está en reposo con pulsador no pulsado (X = 0) y led apagado (y = 0). En este
estado el led permanece apagado.
Q1 : Con el led apagado (y = 0), se activa el pulsador (X = 1). En este estado el led se enciende
y permanece así (y = 1).
Q2 : Con led encendido (y = 1), se libera el pulsador (X = 0). En este estado el led permanece
encendido (y = 1).
210 Capítulo 9. Sistemas secuenciales síncronos

Q3 : Con led encendido (y = 1), se activa el pulsador (X = 1). En este estado el led se apaga y
permanece apagado (y = 0).
2.- Número necesario de biestables y diagrama de transición de estado. Como el sistema tiene 4
estados, son precisos dos biestables J-K con los que se codificarán los estados en binario natural. El
DTE resultante se queda como sigue:
1
0 1
Q0 /0
Q1 /1

0 0

Q3 /0 Q2 /1
1 1 0

3.- Tabla de transición de estado. La información del DTE elaborado en el apartado anterior se puede
trasladar a una tabla de transición de estado y una tabla de salida. En la tabla de transición se añaden
las excitaciones de los biestables J-K para que se produzca cada una de las transiciones requerida. La
tabla de salida expresa la relación entre el estado y la salida.
t t+1
q1 q0 X q1 q0 J1 K1 J0 K0 q1 q0 y
0 0 0 0 0 0 x 0 x 0 0 0
0 0 1 0 1 0 x 1 x 0 1 1
0 1 0 1 0 1 x x 1 1 0 1
0 1 1 0 1 0 x x 0 1 1 0
1 0 0 1 0 x 0 0 x
1 0 1 1 1 x 0 1 x
1 1 0 0 0 x 1 x 1
1 1 1 1 1 x 0 x 0

4.- Funciones de excitación y salida. A partir de las tablas de apartado anterior se construyen los
K-maps que proporcionan las expresiones buscadas:

J1 = K1 = q0 X ′ J0 = K0′ = X
Y la función de salida: y = q1 ⊕ q0
5.- Implementación con Logisim. Trasladando las expresiones anteriores a un circuito con Logisim
resulta:

6.- Influencia de la frecuencia de la señal de sincronismo. Al simular este circuito se debe emplear
una señal de reloj más rápida que el tiempo transcurrido entre la pulsación y liberación del pulsador.
De este modo se pueden «capturar» los cambios de activación del pulsador de entrada al sistema. ■
9.2 Diseño secuencial 211

Problema 9.15 ★★★ En la entrada de un edificio inteligente se instala un sistema sensorial para
determinar su grado de ocupación siguiendo el esquema que muestra la figura adjunta.

El sistema sensorial consiste en una barrera fotoeléctrica que activa una señal de nivel alto (1) cada
vez que una persona entra en el edificio y bloquea dicha barrera. Se desea diseñar un sistema secuencial
síncrono que genere un único pulso durante un ciclo de la señal de reloj cada vez que se bloquea la barrera
"
fotoeléctrica (transición 0 → 1 ). De este modo, se pretende evitar que el sistema sensorial genere de
modo continuo una señal a nivel alto mientras la barrera está bloqueada, contabilizando repetidamente a
una persona detectada. Completa las fases de diseño del sistema que se indican a continuación:
1.- Define las señales de entrada y salida del sistema junto a los estados que tendrá este para su diseño
con un autómata de Moore.
2.- Determina el número de biestables J-K requerido para implementar el sistema y dibuja el DTE
correspondiente.
3.- Traslada el DTE a una tabla de transición de estado y una tabla de salida. Calcula las funciones de
excitación para los biestables J-K y la función de salida.
4.- Implementa el circuito resultante con Logisim para su simulación lógica y explica la influencia de
la frecuencia de reloj elegida en la simulación. Emplea el elemento contador incluido con Logisim
para contabilizar los pulsos producidos por el sistema sensorial.
5.- Diseña un sistema análogo teniendo en cuenta que el pulso generado por la barrera sensorial se
produce en la transición 1 → 0 ( ). #
 Solución: 1.- Definición de señales de entrada, salida y estados. El sistema tiene una entrada
(X) que es la señal generada por el sistema sensorial y tiene una salida (y) que es el pulso generado
para el conteo de personas. El sistema tendrá 3 estados:
Q0 : Sistema en reposo con sensor y salida desactivados,
X = 0 → y = 0.
Q1 : El sensor se ha activado cuando estaba previamente desactivado y la salida se activa,
X = 1 → y = 1.
Q2 : El sensor permanece activo, pero la salida activada se desactiva,
X = 1 → y = 0.
2.- Diagrama de transición de estado. Para codificar los tres estados se precisan 2 biestables. En este
caso uno de los 4 estados posibles no se alcanza nunca (Q3 ). El DTE se muestra en la figura siguiente:
INIT /CLR
0 1
Q0 /0 Q1 /1
0

0 1
Q2 /0

1
212 Capítulo 9. Sistemas secuenciales síncronos

3.- Tabla de transición de estado, funciones de excitación y salida. El DTE se puede trasladar a
una tabla de transición de estado en la que se añaden las excitaciones de los biestables J-K para que
se produzca la transición deseada. Además, se puede construir una tabla de salida con el valor de y
correspondiente a cada estado. La figura siguiente muestra ambas tablas:

t t+1
q1 q0 X q1 q0 J1 K1 J0 K0 q1 q0 y
0 0 0 0 0 0 x 0 x 0 0 0
0 0 1 0 1 0 x 1 x 0 1 1
0 1 0 0 0 0 x x 1 1 0 0
0 1 1 1 0 1 x x 1 1 1 x
1 0 0 0 0 x 1 0 x
1 0 1 1 0 x 0 0 x
1 1 0 x x x x x x
1 1 1 x x x x x x

En las tablas anteriores se extraen las tablas de verdad de las funciones de excitación de los
biestables dependiendo del estado de partida [q1 q0 ] y la entrada (X). Con estas, junto a la tabla de
salida, se obtienen las expresiones lógicas minimizadas de las funciones mencionadas, mediante el uso
de K-maps:

J1 = q0 X K1 = X ′ J0 = q′1 X K0 = 1
Con función de salida: y = q0
5.- Implementación. Teniendo en cuenta las expresiones anteriores, el circuito resultante con Logisim
queda:

En dicho circuito el comportamiento del sensor óptico se simula mediante un pulsador activado
con un clic de ratón. En este caso el pulso de detección se genera cuando la salida del pulsador sufre
una transición: 0 → 1.
La frecuencia del reloj influye sobre la máxima velocidad a la que se pueden «capturar» los cambios
en el sensor del sistema. Si el reloj fuese más lento que el sensor, la persona no sería detectada por el
sistema sensorial. Por tanto, la duración de los pulsos del reloj debe ser inferior a la de los eventos que
se desean detectar. Dicho de otro modo, el reloj debe ser más rápido que el cambio de estado en el
sensor. Este comportamiento se puede simular en Logisim ajustando la frecuencia del tick a un valor
muy bajo. En este caso los clics de ratón sobre el pulsador se pueden convertir en indetectables (p.ej.,
con frecuencia de tick ≤ 16 Hz).
9.2 Diseño secuencial 213

En el circuito se ha añadido un contador para contabilizar los pulsos generados por el sistema
sensorial. En este caso se ha configurado un contador de 8 bits. Para visualizar su contenido se conecta
a la salida una sonda de prueba (probe) configurada para mostrar el valor del contador en base decimal.
5.- Diseño alternativo con sensor activo a nivel bajo. Para el requisito de funcionamiento solicitado
se tiene un cambio del DTE. Como consecuencia, se introducen ligeros cambios en las tablas de
transición de estado y salida del sistema. La figura siguiente muestra el DTE (izda.) y las tablas
correspondientes (dcha.):
t t+1
q1 q0 X q1 q0 J1 K1 J0 K0 q1 q0 y
INIT/CLR
0 0 0 0 0 0 x 0 x 0 0 0
0 1 1 0 0 1 0 1 0 x 1 x 0 1 0
Q0 /0 Q1 /0 0 1 0 1 0 1 x x 1 1 0 1
0 1 1 0 1 0 x x 0 1 1 x
1
1 0 0 0 0 x 1 0 x
1 0 1 0 1 x 1 1 x
0 0
Q2 /1 1 1 0 x x x x x x
1 1 1 x x x x x x

Empleando K-maps se obtienen los valores de las funciones de excitación de los biestables y la
función de salida:

J1 = q0 X ′ K1 = 1 J0 = X K0 = X ′
Con función de salida: y = q1
Por tanto, el circuito resultante con Logisim es:

Problema 9.16 ★★★ Diseña un sistema secuencial síncrono para avisar a un vigilante de seguridad (g),
e incluso a la policía (p), de los intentos de robo en una sucursal bancaria.
214 Capítulo 9. Sistemas secuenciales síncronos

Para acceder a la caja fuerte hay que pasar necesariamente por un hall con un detector de presencia (H) que
se activa a nivel alto (1) cuando una persona se mueve en su rango de detección. En la cámara acorazada,
en la que se encuentra la caja fuerte, hay instalado otro detector de presencia (C) con funcionamiento
similar. Las condiciones que describen el comportamiento del sistema son las siguientes:
SI no entra nadie, ENTONCES el sistema está en reposo sin avisar ni al vigilante ni a la policía.
SI un intruso accede al hall, ENTONCES se avisa al vigilante, pero no a la policía.
• SI el intruso entra en la cámara acorazada, ENTONCES se avisa a la policía.
• SI el intruso abandona el hall antes de acceder a la cámara acorazada, ENTONCES se
interrumpe el aviso al vigilante, pero «se recuerda» que alguien estuvo en el hall.
• SI se vuelve a activar el detector de presencia del hall, ENTONCES se avisa tanto al vigilante
como a la policía.
• SI se activa el aviso a la policía, ENTONCES se permanece en este estado, retornando al
estado inicial solo mediante reinicio del sistema.
Considera que nunca se activan simultáneamente el detector del hall y de la cámara acorazada. Además,
el sensor de la cámara acorazada solo se activa en caso de que antes se haya activado el del hall. Completa
las fases de diseño indicadas a continuación:
1.- Define las entradas y salidas del sistema, así como los estados para un autómata de Moore.
2.- Elabora el DTE correspondiente al sistema y la tabla de transición de estados. Considera el empleo
de un biestable D para el bit de estado más significativo, un biestable T para el menos significativo
y biestables tipo J-K para el resto, si es preciso.
3.- Implementa las funciones de excitación de los biestables y la función de salida, mediante puertas
lógicas en dos niveles, de la forma más sencilla posible.

 Solución: 1.- Definición de entradas, salidas y estados. Las entradas al sistema son las propor-
cionadas por los detectores de presencia en el hall (H) y la cámara acorazada (C). Las salidas serán el
aviso al vigilante (g) y el aviso a la policía (p). La elección del orden de significación de las variables
de entrada y salida, coincide con el orden en que se producen dichas señales en el sistema X = [C H],
y = [p g]; ya que, el sensor del hall siempre se activa antes que el de la cámara acorazada y el aviso al
vigilante siempre se produce antes que el realizado a la policía. De este modo se tiene:
ENTRADAS X = [C H]:
[C H] = [00] → NO hay detección en cámara acorazada NI en hall.
[C H] = [01] → NO hay detección en cámara acorazada Y SI hay detección en hall.
[C H] = [10] → SI hay detección en la cámara acorazada, Y NO hay detección en hall.
[C H] = [11] → Situación imposible de detección simultánea.
SALIDAS y = [p g]:
[p g] = [00] → NO se avisa a la policía NI al vigilante.
[p g] = [01] → NO se avisa a la policía, Y SI al vigilante.
[p g] = [10] → Situación imposible, si hay aviso a la policía, también lo hay al vigilante.
[p g] = [11] → SI se avisa a la policía Y SI se avisa al vigilante.
El sistema se concibe con cuatro estados posibles:
Q0 → No se detecta intrusión.
Q1 → Se ha detectado intrusión en el hall.
Q2 → Ha dejado de detectarse presencia previa en el hall.
Q3 → Se ha detectado intrusión en la cámara acorazada.
Puesto que, el sistema posee 4 estados, se necesitan al menos 2 biestables en los que se codifica el
valor del estado en binario natural. Para el bit MSB y se empleará un biestable de tipo T y para el LSB
uno de tipo D.
9.2 Diseño secuencial 215

2.- Diagrama de transición de estados y tabla de transición. El DTE correspondiente al sistema


queda así:
INIT/CLR

00 01 01
Q0 /00 Q1 /01

10
00 00

Q3 /11 Q2 /00 00
01
01
10

Este DTE recoge algunas condiciones que no se pueden dar en el sistema y que dan lugar a
condiciones libres (no importa o don’t care). En el estado inicial (Q0 ) no es posible la entrada
[C H] = [10], ya que la detección de intrusión en la cámara acorazada requiere que previamente se haya
detectado la intrusión en el hall. La entrada [C H] = [11] no es posible en ningún estado, pues se asume
que no es posible la detección simultánea de intrusión en la cámara acorazada y el hall. Al trasladar el
DTE a la tabla de transición y salida se obtiene:
t t+1
q1 q0 C H q1 q0 D1 T0 q1 q0 p g
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 1 0 1 0 1 0 1
0 0 1 0 x x x x 1 0 0 0
0 0 1 1 x x x x 1 1 1 1
0 1 0 0 1 0 1 1
0 1 0 1 0 1 0 0
0 1 1 0 1 1 1 0
0 1 1 1 x x x x
1 0 0 0 1 0 1 0
1 0 0 1 1 1 1 1
1 0 1 0 x x x x
1 0 1 1 x x x x
1 1 0 0 1 1 1 0
1 1 0 1 1 1 1 0
1 1 1 0 1 1 1 0
1 1 1 1 x x x x

3.- Implementación. Para llevar a cabo la implementación se emplean los K-maps para minimizar las
funciones de excitación de los biestables dependiendo del estado y la entrada. Para las funciones de
salida se emplea las tablas de salida. De este modo se obtiene:
216 Capítulo 9. Sistemas secuenciales síncronos

Formas SOP:
D1 = q0 H ′ + q1
T0 = q′0 H + q′1 q0C′ H ′
Formas POS:
D1 = (q1 + q0 )(q1 + H ′ )
T0 = (q0 + H)C′ (q′0 + H ′ )(q′1 + H)
p = q1 q0
g = q0
Empleando las formas SOP, el circuito con Logism resultante queda:

Problema 9.17 ★★★ Se dispone de una luminaria compuesta por 4 segmentos. Cada uno está formado
por 2 leds según se muestra en la figura adjunta (superior). Diseña un circuito secuencial síncrono de
control que permita obtener la secuencia de iluminación indicada en la figura adjunta (inferior). Considera
que la cadencia de cambio en la secuencia es de 1 segundo. Realiza la implementación del circuito para
simulación con Logisim empleando biestables de tipo T.
ON

0
3 1
2

OFF

 Solución: El sistema consta de 8 estados que se repiten cíclicamente. Para cada estado la salida
está compuesta de 4 bits correspondientes a cada uno de los segmentos de la luminaria. Con un 1
se indica que el segmento correspondiente está encendido y con 0 que está apagado. El índice de la
posición del bit se corresponde con el índice del segmento.
Dado el índice de los segmentos de la luminaria se puede señalar que la salida para los 8 estados
es: 0000 (0), 0001 (1), 0011 (3), 0111 (7), 1111 (15), 1101 (13), 1100 (12), 0100 (4). A continuación
se describen distintos métodos de diseño.
Método 1: Diseño de un contador de 4 bits. Como el valor de la salida no se repite para ningún
estado, la solución se podría plantear como el diseño de un contador de 4 bits MOD 8 (incompleto y
desordenado), en el que la salida coincide con el estado. Para codificar el estado se emplean 4 biestables
que permiten conseguir un máximo de 16 estados. Por tanto, existirán 8 estados no utilizados que
producen condiciones libres. La figura siguiente muestra el DTE (izda.) y las tabla de transición de
estado (dcha.) para el diseño del contador:
9.2 Diseño secuencial 217

t t+1
q 3 q 2 q 1 q 0 q 3 q 2 q 1 q 0 T3 T2 T1 T0
0 0 0 0 0 0 0 1 0 0 0 1
0 0 0 1 0 0 1 1 0 0 1 0
0 0 1 0 x x x x x x x x
0 0 1 1 0 1 1 1 0 1 0 0
0 1 0 0 0 0 0 0 0 1 0 0
INIT/CLR 0 1 0 1 x x x x x x x x
0 1 1 0 x x x x x x x x
0 1 1 1 1 1 1 1 1 0 0 0
Q0 Q1
1 0 0 0 x x x x x x x x
1 0 0 1 x x x x x x x x
Q4 Q3
1 0 1 0 x x x x x x x x
1 0 1 1 x x x x x x x x
1 1 0 0 0 1 0 0 1 0 0 0
Q12 Q7 1 1 0 1 1 1 0 0 0 0 0 1
1 1 1 0 x x x x x x x x
Q13 Q15 1 1 1 1 1 1 0 1 0 0 1 0

Empleando K-maps se obtienen los valores de las funciones de excitación de los biestables (forma
SOP):

T0 = q′3 q2 q1 + q3 q′0
T1 = q′2 q1 + q′3 q2 q′1
T2 = q′3 q′1 q0 + q3 q1
T3 = q′2 q′0 + q3 q′1 q0

Por tanto, el circuito resultante con Logisim es:


218 Capítulo 9. Sistemas secuenciales síncronos

Método 2: Diseño de un sistema temporizado o secuenciador. En realidad, con 3 biestables sería


suficiente para codificar los 8 estados del sistema, aunque entonces el sistema no se puede diseñar
como un contador porque la salida precisa 4 bits. Por tanto, la implementación es bastante simple
mediante un contador síncrono ascendente completo de tres bits. Dicho contador se encarga de generar
los estados del sistema, completando el diseño con un módulo combinacional para calcular la función
de salida asociada a cada estado.
En este caso el diseño del módulo combinacional mencionado sigue la estrategia habitual para
obtener las formas simplificadas a partir de las tablas de verdad de las funciones de salida:

• Formas canónicas:
y3 = ∑ m(4, 5, 6) = ∏ M(0, 1, 2, 3, 7)
y2 = ∑ m(3, 4, 5, 6, 7) = ∏ M(0, 1, 2)
y1 = ∑ m(2, 3, 4) = ∏ M(0, 1, 5, 6, 7)
y0 = ∑ m(1, 2, 3, 4, 5) = ∏ M(0, 6, 7)

• Formas SOP:
y3 = q2 q′1 + q2 q′0
y2 = q1 q0 + q2
y1 = q′2 q1 + q2 q′1 q′0
y0 = q′2 q0 + q′2 q1 + q2 q′1

Las formas SOP simplificadas permiten implementar el módulo combinacional con puertas lógicas,
partiendo de los estados generados por un contador síncrono ascendente de 3 bits.
9.2 Diseño secuencial 219

Para obtener una implementación basada en un diseño jerárquico se puede partir de un módulo
contador de 3 bits cuya salida se emplea como señal de selección de un DEC 3 × 8 que facilita la
implementación de las formas canónicas correspondientes a las funciones de salida.

Método 3: Memorias direccionadas. La implementación de secuenciadores con este método es directo,


ya que no requiere diseño. Se pueden utilizar dos opciones:
(A) Con un registro de desplazamiento circular cargado con los valores a generar,

(B) Con una memoria ROM direccionada por la salida de un contador MOD 8.

En ambos casos los valores de la secuencia se han expresado en hexadecimal (4 bits). Para conseguir
la cadencia de cambio de 1 segundo para la secuencia, es preciso elegir una frecuencia de tick de
simulación de 2 Hz, que corresponde con un reloj de 1 Hz. ■

Problema 9.18 ★★★ Diseña un sistema secuencial síncrono capaz de generar una secuencia tempo-
rizada de 8 valores hexadecimales programados y mostrarlos en una matriz de leds de tamaño 6 × 4
(filas × columnas). La matriz tiene 6 entradas de 4 bits correspondientes a sus filas y columnas. Emplea
los elementos disponibles en Logisim para la simulación lógica del sistema cuando la secuencia generada
es [1, 3, 6, 2, 0, 2, 2, E]. La figura adjunta muestra los valores posibles mostrados por la matriz de leds.
220 Capítulo 9. Sistemas secuenciales síncronos

 Solución: Este problema se puede abordar de un modo tedioso realizando el diseño de las 6
funciones de 4 bits para cada uno de los caracteres que puede mostrar la matriz. Sin embargo, su
resolución es mucho más simple y escalable si se procede empleando memorias ROM. La figura
siguiente muestra el diagrama del circuito resultante con Logisim:

En primer lugar, tendríamos un generador de secuencia de 8 valores, donde cada valor es de 4


bits. Los valores de la secuencia se almacenan en una memoria ROM direccionada por un contador
ascendente con valor de módulo igual al número de valores de la secuencia, en este caso 8. Este
esquema sirve para generar una secuencia de tamaño arbitrario. Cada valor de la secuencia se debe
codificar con un número de bits que permita representar todos los valores posibles que forman la
secuencia. Como en este caso son 16 posibles valores, se emplean 4 bits.
Cada valor de la secuencia se debe decodificar a los 6 valores de 4 bits que activan la matriz de leds.
El decodificador de los valores de la secuencia se implementa con 6 memorias ROM correspondientes
a cada una de las 6 filas de la matriz (ver parte dcha. en la figura adjunta). Cada una de las 6 memorias
tendría almacenados 16 valores de 4 bits correspondientes a los códigos de la fila y el carácter a mostrar.
Las 6 memorias estarían direccionadas por la salida obtenida de la memoria ROM del primer nivel que
genera cada valor de la secuencia.
La decodificación de los valores de la secuencia a las filas de la matriz de leds, es escalable de
modo sencillo si el número de valores posibles en la secuencia es superior 16. Por ejemplo, con 5
bits se podrían codificar hasta 32 caracteres distintos. A continuación se resume como afecta cada
parámetro en las características del circuito implementado:
Valores de la secuencia (p.ej., 8): Determina el valor máximo que genera el contador y el tamaño
de la memoria ROM que almacena los elementos de la secuencia.
Caracteres distintos que pueden ser representados (p.ej., 16): Condiciona el número mínimo de
bits requerido para representar cada uno de los valores de la secuencia (p.ej., 4) y el tamaño de
las memorias ROM de decodificación.
9.2 Diseño secuencial 221

Filas de la matriz (p.ej., 6): Coincide con el de memorias ROM requeridas para decodificar la
activación de leds en cada fila de la matriz. Cada fila se decodifica en una memoria de tamaño
igual al número de caracteres representables. Cada memoria se direcciona por el índice del
código a representar.
Columnas de la matriz (p.ej., 4): Proporciona el tamaño de los elementos almacenados en las
memorias ROM de decodificación.

Problema 9.19 ★★★ Se desea controlar un paso de peatones constituido por el semáforo bimodal
esquematizado en la figura adjunta:

El semáforo se compone de tres luces (amarilla, roja y verde) que controlan el paso de vehículos
con el significado estandarizado. Junto a estas se ubican otras tres luces en el semáforo encargadas
de proporcionar indicaciones a los peatones: pase (verde), espere (rojo) y pulse (azul). El ciclo de
funcionamiento del semáforo sigue las fases que se indican a continuación:
(1) En el estado inicial, el semáforo de vehículos está en verde y el de peatones en azul (pulse). Si
ningún peatón solicita paso mediante pulsación, el sistema permanece en este estado de manera
indefinida (vehículos circulando).
(2) Cuando un peatón solicita paso mediante pulsación, se enciende la luz roja (espere), mientras que
la luz sigue en verde para los vehículos durante T1 segundos.
(3) Al finalizar los T1 segundos se enciende la luz amarilla para vehículos durante T2 segundos.
(4) Transcurridos los T2 segundos se enciende la luz roja para vehículos. Durante las fases anteriores,
la luz roja para los peatones permanece encendida (espere) y por precaución continua encendida
durante T3 segundos antes de encenderse la luz verde (pase).
(5) La luz roja para los vehículos permanece encendida T3 + T4 segundos, transcurridos los cuales se
enciende la luz verde para vehículos y la roja (espere) para peatones.
(6) Cuando pasan T5 segundos el sistema regresa de nuevo al estado inicial con la luz azul (pulse)
encendida. En este momento se vuelven a aceptar nuevas solicitudes de paso de los peatones.
Diseña un circuito secuencial síncrono que implemente la lógica de control descrita para el sistema
y permita su simulación con Logisim, considerando: T1 = 3 s, T2 = 5 s, T3 = 3 s, T4 = 18 s y T5 = 30 s.
Además, el sistema debe contar con una señal de reinicio que permita forzar —en cualquier instante— la
evolución del sistema a su estado inicial.
 Solución: Cuando en un sistema temporizado el valor de las salidas del sistema se extiende durante
un tiempo considerable, el modelado mediante un autómata finito produce un diseño complejo que
acaba siendo intratable. Por este motivo, se han creado otros formalismos más apropiados como el
modelo etapa/transición en el que las salidas se establecen para cada etapa y la evolución de una etapa
a la siguiente está determinada por el cumplimiento de unas condiciones. En un caso como el que nos
ocupa, dichas condiciones quedan marcadas por la petición de paso de un peatón mediante el pulsador
y el tiempo transcurrido desde que se inició una etapa.
222 Capítulo 9. Sistemas secuenciales síncronos

La implementación mediante el modelo etapa/transición se realiza empleando contadores usados


como temporizadores que controlan la duración de cada etapa. Los contadores utilizarán un reloj
ajustado a una frecuencia de 1 Hz, que en Logisim se consigue fijando el tick de simulación en 2 Hz.
Cada contador se ajusta al valor máximo de cuenta requerido para la duración de la etapa. Además, su
funcionamiento se fija en modo ascendente y enclavado al valor final de cuenta de modo que el bit
de fin de cuenta quede activo una vez finalizada la temporización programada. Cada temporizador se
habilita cuando el contador que controla la duración de la etapa precedente llega al final de su cuenta.
A continuación se muestra el diagrama de etapas, transiciones y estado de los semáforos de
vehículos y peatones, junto al circuito en Logisim para su simulación.
Pulsador T1 = 0 s T1 = 3 s T2= 0 s T1 = 5 s T3= 0 s

Etapa 0 Etapa 1 Etapa 2 Etapa 3


Azul (peatones) Azul (peatones) Azul (peatones) Azul (peatones)
Rojo (vehículos) Rojo (vehículos) Rojo (vehículos) Rojo (vehículos)

T5= 0 s T4 = 18 s T4= 0 s T3 = 3 s
T5 = 30 s
Etapa 5 Etapa 4
Azul (peatones) Azul (peatones)
Rojo (vehículos) Rojo (vehículos)

En el circuito se observa como la petición de paso se realiza mediante un pulsador. La pulsación se


memoriza de modo asíncrono con un biestable S-R en modo latch. Las etapas quedan activadas una
vez que finaliza la etapa precedente. Esta condición se determina mediante el bit de fin de cuenta. Para
desactivar las etapas se ha elegido un esquema en que dicha desactivación se produce al final del ciclo
mediante reset de todos los contadores y el latch S-R.
La activación de las luces del semáforo se inicia en una etapa y finaliza con la activación de
otra. Estas condiciones se fijan mediante puertas lógicas sencillas conectadas a las salidas de los
temporizadores.
9.2 Diseño secuencial 223

Puesto que las salidas de los contadores proporcionan su valor en hexadecimal, se han conectado
sondas de prueba (probe) que muestran dicha salida en valor decimal de modo que sea sencillo
monitorear la duración de cada etapa.
Aunque existen soluciones alternativas, el esquema de resolución presentado aquí es muy flexible
y escalable, ya que el cambio en la duración de las etapas no modifica el circuito, sino únicamente los
valores finales de cuenta de los temporizadores. ■
IV
Obras de consulta

Obras de consulta . . . . . . . . . . . . . . . . . . 227


Obras de consulta

[1] Carl Burch. Logisim: a graphical system for logic circuit design and simulation. Journal on
Educational Resources in Computing, 2(1):5–16. Association for Computing Machinery (ACM),
March 2002. DOI: 10.1145/545197.545199.
[2] Javier García Zubia, I. Angulo, y J. Angulo. Sistemas digitales y tecnología de computadores.
Thomson, Madrid, 2 edition, 2007. ISBN: 978-84-9732-486-1.
[3] Javier García Zubia. Problemas resueltos de electrónica digital. Paraninfo, Madrid, España, 2012.
ISBN: 978-84-9732-195-2.
[4] Thomas L. Floyd. Fundamentos de sistemas digitales. Pearson Educación, Madrid, 11th edition,
2016. ISBN: 978-84-9035-300-4.
[5] David Harris and Sarah L. Harris. Digital design and computer architecture. Elsevier Science &
Technology, August 2012. ISBN: 978-01239-442-45.
[6] M. Morris Mano and Michael Ciletti. Digital design, Global Ed. Pearson Education Limited, July
2018. ISBN: 978-12922-311-81.
[7] Jesús Salido. Lógica digital y tecnología de computadores - Un enfoque práctico mediante simulación
con Logisim. Eds. de la Universidad de Castilla-La Mancha, sep. 2023. ISBN: 978-84-9044-621-8.
DOI: 10.18239/manuales_2023.26.00.
[8] Jesús Salido. Circuitos Logisim asociados a la obra «Lógica digital y tecnología de computadores -
Un enfoque práctico mediante simulación con Logisim». GitHub, abril 2024. Disponible online:
https://github.com/JesusSalido/CircsTecobook/. DOI: 10.5281/zenodo.10828924.
[9] George Self. Exploring digital logic with Logisim-Evolution. Autoedición, 7th. Ed., 2019. Disponible
online: https://github.com/grself/
Esta obra se ha preparado como acompañamiento al ma-
nual de teoría publicado previamente por el autor: Ló-
gica digital y tecnología de computadores - Un enfoque
práctico mediante simulación con Logisim (ISBN: 978-
84-9044-621-8). En este texto se presenta la resolución de
todos los problemas propuestos en dicho manual. Ambos
manuales están concebidos como material docente para
la asignatura de primer curso Tecnología de Computa-
dores para el grado en Ingeniería Informática, aunque
pueden ser empleados en materias relacionadas con el
Diseño de Sistemas Digitales impartidas en otras titula-
ciones.
Este libro sigue una organización idéntica al manual de
teoría, en el que nos encontramos con una división en
tres partes:
       I.- Representación de información y lógica boo-
leana (Caps. 1 a 3),
       II.- Sistemas combinacionales (Caps. 4 a 6), y
       III.- Sistemas secuenciales (Caps. 7 a 9).
A lo largo de los nueve capítulos de este manual se re-
suelven un total de 175 problemas que cubren el análisis
y el diseño de sistemas lógicos, junto a aspectos relacio-
nados. Dentro de cada capítulo los problemas se agrupan
en secciones con una temática común. Además, se han
clasificado cualitativamente en tres categorías de dificul-
tad: ★✩✩ (baja), ★★✩ (media) y ★★★ (alta).
Esta obra de problemas resueltos, junto al manual de
teoría asociado, se complementan con un repositorio pú-
blico en GitHub con material auxiliar consistente en los
circuitos de Logisim que aparecen en ambos textos, así
como algunos circuitos adicionales relacionados.

También podría gustarte