Logica Digital II Logism Problemas
Logica Digital II Logism Problemas
Lógica digital
y tecnología
de computadores
Un enfoque práctico mediante
simulación con Logisim. Vol. 2
PROBLEMAS RESUELTOS
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
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
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VII
Agradecimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IX
Prólogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XI
Notación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XIII
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
II Sistemas combinacionales
4 Circuitos digitales combinacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.1 Análisis combinacional 38
4.2 Diseño combinacional 54
IV Obras de consulta
Obras de consulta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
I
Representación de
información y lógica
booleana
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
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
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?
T = 5 ms = 5 × 10−3 s = 0.005 s
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
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 )?
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.
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:
NOTA: Observa que empleamos color magenta para los bits añadidos. ■
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:
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
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.
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.
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
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
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
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.
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:
Problema 2.8 ★✩✩ ¿Cuál es el rango de representación con 4 dígitos en binario natural, octal, decimal
y hexadecimal?
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?
[−(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]
Problema 2.12 ★✩✩ Dados los números A = 0010 y B = 1010 expresados en C1, calcula el resultado
de la operación A − B.
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
Problema 2.14 ★✩✩ ¿Cómo se expresa el número −6 con 5 bits en C1? ¿Y en C2?
Problema 2.15 ★✩✩ Dado el número 1011 0101C1 ¿cuál es su representación en C2?
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
■
14 Capítulo 2. Sistemas de numeración
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:
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:
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:
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:
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:
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:
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:
■
3. Circuitos digitales y álgebra de Boole
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).
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.
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
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.
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:
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:
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
Solución: Para demostrar que la función NAND no es asociativa es preciso demostrar que:
((AB)′C)′ ̸= (A(BC)′ )′
AB +C′ ̸= A′ + BC
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
Con esto queda demostrada la propiedad asociativa de la función XOR. Realizando un proceso análogo
para la función XNOR, se tiene:
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:
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′ ))
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′
■
Algo que se puede deducir del comportamiento de la puerta XOR de dos entradas, ya que esta produce
0 siempre que sus entradas coinciden. ■
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)′
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. ■
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:
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 +C = ∏ M(0, 2)
| {z }
001 0 (0,2)
B +C = ∏ M(0, 4)
| {z }
0 00 (0,4)
1
■
28 Capítulo 3. Circuitos digitales y álgebra de Boole
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:
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:
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:
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:
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:
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′ + 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
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)
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:
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′ )′ ]′
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)
Solución: Aplicando las leyes de De Morgan y desarrollando las expresiones de las operaciones
XOR (⊕) y XNOR (⊙), se tiene:
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)
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:
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
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)
f = C′ BA′ + (C′ + B′ + A) = C′ + B′ + A = M6
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:
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:
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
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.
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:
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
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:
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:
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:
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:
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)
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:
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.
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.
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.
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)′ ]′
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:
Si se aplican las leyes de De Morgan y lor teoremas del álgebra de Boole, la expresión anterior se
puede transformar así:
■
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:
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
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:
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.
A partir de la forma canónica SOP se puede derivar la forma canónica POS, que es:
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:
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:
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:
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:
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
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)
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
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:
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:
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.
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:
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:
■
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.
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:
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).
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).
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:
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:
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:
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.
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:
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:
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:
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:
= ∏ M(3, 4, 6)
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:
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
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)
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:
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. ■
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)
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.
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
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:
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:
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
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:
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:
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 :
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
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)
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
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
=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:
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:
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:
■
90 Capítulo 5. Módulos combinacionales básicos
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:
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.
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
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
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:
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:
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:
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.
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.
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, 0, D) = D
f (A, B, 1, D) = D + A′ + B′
100 Capítulo 5. Módulos combinacionales básicos
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:
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)
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:
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:
■
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:
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:
Como las expresiones obtenidas se pueden factorizar para expresarlas a su vez con sendos MUX 2 × 1,
el circuito final que se obtiene es:
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
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
Mediante los K-maps de cada una de estas funciones, es posible obtener sus expresiones simplificadas
SOP y POS:
■
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:
■
110 Capítulo 5. Módulos combinacionales básicos
Sensor A
Sensor C
Sensor B
Molino
Válvula x Válvula y
Motor
Parcela Y
Parcela X
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
Esta función se puede implementar con DEC y MUX teniendo en cuenta los minitérminos generados
por estos módulos:
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
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 no queda campeón, pero supera los 70 puntos, ENTONCES el entrenador correrá la
suerte contraria que el entrenador del equipo rival.
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:
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
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:
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, B,C, D) = D
g(1, B,C, D) = B +C
118 Capítulo 5. Módulos combinacionales básicos
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
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:
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:
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:
h(A, B) = A′ B + AB′ = m1 + m2 = A′ · B + A · B′ = B′ · A + B · A′
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 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:
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:
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:
Por último, para la implementación con MUX 2 × 1 se elige como variable de selección P. En
consecuencia, se obtiene:
r = P′ +V1′V2′
126 Capítulo 5. Módulos combinacionales básicos
Por último, para la implementación con MUX 2 × 1 tomamos P como variable de selección. Como
resultado, se obtiene:
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.
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.
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).
(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)
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
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:
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
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:
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.
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
1
Sumador
cout 3
s
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:
■
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:
■
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
Formas canónicas de f1 :
f1 = ∑ m(0, 3) = ∏ M(1, 2)
f0 = ∑ m(0, 2) = ∏ M(1, 3)
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).
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.
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
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′ .
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.
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:
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:
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:
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: 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:
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
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.
t Qt J K Qt+1 CLK
ts = 1 0 1 0 1
ts = 2 1 0 1 0 Q
ts = 4 1 0 1 0
ts = 5 0 1 0 1
ts = 6 1 0 1 0
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:
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
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:
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)′
=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
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:
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
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:
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
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:
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
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:
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.
■
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.
(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
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.).
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
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
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]. ■
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:
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
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:
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:
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
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
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
Q0 Q1
Q7 Q2
Q6 Q3
Q5 Q4
■
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
(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
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
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:
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:
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
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:
y1 = ∑ m(2, 3, 5, 6)
y0 = ∏ M(0, 2, 6)
(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.):
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
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
J1 = q0 X1 X0′ K1 = 1
J0 = X1′ X0′ K0 = X0 + X1
y= q1 X1′ X0
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
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
• 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.
(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:
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
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)
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
[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.