Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ID
1
4
IC6 A B C D
7448
1 UA 9
o1 Q~ IC
Q Q 2 a$ 43 n4 n4
7
' .
z~ R2
n, cb4 oa I1 10K
B .R,
(
0 ' 9 9
1 2 1 A 7 2 1 1
A B
_ .. ,
1111111111 III III I II II 74
3V00072350
1 F
vcc
Este Documento Ha sido descargado desde la Web más completa en todo tipo de e-
books y Tutoriales.
http://www.enigmaelectronica.tk
http://www.foroenigma.tk
Libros
Manuales
Tutoriales
Cursos
Programas
Música
Películas
PROBLEMAS
DE CIRCUITOS
Y SISTEMAS DIGITALES
McGraw-Hill
MADRID • BUENOS AIRES • CARACAS • GUATEMALA • LISBOA • MÉXICO
NUEVA YORK • PANAMÁ • SAN JUAN • SANTAFÉ DE BOGOTÁ • SANTIAGO • SÁO PAULO
AUCKLAND • HAMBURGO • LONDRES • MILÁN • MONTREAL • NUEVA DELHI • PARÍS
SAN FRANCISCO • SIDNEY • SINGAPUR • ST . LOUIS • TOKIO • TORONTO
TABLA DE CONTENIDOS
PRÓLOGO vi¡
5. SUBSISTEMAS COMBINACIONALES 89
13 MISCELÁNEA 359
BIBLIOGRAFÍA 391
v
PRÓLOGO
Este ejemplar es un libro de problemas resueltos en el campo del Diseño Lógico . Como tal
libro de problemas ha sido concebido con la finalidad de enseñar cómo se aplican los
conceptos y herramientas a casos concretos . Esto significa que nuestra atención no se centra
en el desarrollo de la doctrina teórica, sino en tratar de explicar cómo interpretar enunciados
de problemas más o menos bien especificados y, empleando los conocimientos teóricos
adquiridos por otras vías, resolver ese problema en particular y no otro . Como se ve, nuestros
objetivos primarios son potenciar las capacidades de aplicación de la teoría y la de resolución
práctica de problemas .
En cuanto a la disciplina, el término Diseño Lógico alude a materias tan bien conocidas
como son los Circuitos y Sistemas Digitales o la Teoría de Conmutación . En ella se incluyen :
1) los fundamentos matemáticos usuales (álgebra de Boole, representaciones binarias de nú-
meros y su aritmética, codificación binaria) ; 2) la presentación, análisis y diseño de circuitos
a nivel de conmutación, tanto combinacionales como secuenciales ; y 3) la descripción y reali-
zación de sistemas digitales a nivel de transferencias entre registros (RT), organizando el sis-
tema como una unidad de procesado de datos y otra de control . Aunque claramente fuera del
contexto de este libro, las materias fronteras son, en el nivel inferior, el tratamiento eléctrico
de las puertas lógicas y, en el nivel superior, la arquitectura de computadores, así como los sis-
temas multiprocesadores . La proliferación de aplicaciones y el considerable aumento de la
complejidad experimentada por los circuitos digitales en los últimos años hacen inviable el cu-
brimiento completo de esta materia . Nuestro propósito ha sido desarrollar un conjunto de pro-
blemas que den soporte y fundamenten adecuadamente a todos los circuitos y técnicas de Di-
seño Lógico .
Nuestro libro está pensado para un primer curso de Diseño Lógico, con aplicación en
diversos estudios universitarios tales como Informática (fundamentos del hardware) e Ingenie-
ría Electrónica (realización de sistemas digitales) . También es útil en algunos campos cientí-
ficos, en concreto, los relacionados con la Teoría de Conmutación, la Teoría de Autómatas y
la Aritmética del Computador . Además, al estar fuertemente enfocado a la resolución de pro-
blemas, este texto también puede servir a profesionales que deseen realizar una puesta al día
vi¡
viii PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
rápida y eficiente en las realizaciones de circuitos y de sistemas digitales . El uso de este libro
no requiere conocimientos específicos previos ni en Electrónica, ni en Computadores, ni en
Matemáticas avanzadas . Sin embargo, al ser un libro de problemas, el lector debe conocer a
nivel teórico los conceptos, principios y técnicas del diseño digital . En la actualidad hay dis-
ponibles suficientes libros que cubren satisfactoriamente los aspectos teóricos de esta materia
(véanse las referencias que citamos) . A ellos deberá acceder el lector para conocer los funda-
mentos teóricos de este libro de problemas . No obstante, con el doble fin de resumir los con-
ceptos más importantes y de presentar la terminología que utilizamos, en cada Capítulo hay
una pequeña presentación teórica . Además, en los problemas que introducen materias, durante
su resolución se detallan los nuevos aspectos teóricos involucrados .
En la realización del libro hemos huido de los ejercicios puramente repetitivos, de los
excesivamente simples y de los de escasa entidad . Esto es debido a que, en nuestra experiencia,
es claramente preferible primar el nivel de profundidad de los problemas sobre la cantidad de
éstos . Por otra parte y desde un punto de vista más práctico, hemos establecido dos tipos de
ejercicios . En primer lugar hemos seleccionado un amplio conjunto de problemas para
resolverlos en detalle . Sobre ellos el lector aprenderá la metodología de resolución . Hemos
intentado que cada aspecto importante de la materia esté cubierto por problemas bien
desarrollados . Posteriormente se presenta un segundo conjunto de problemas de los que sólo
se ofrece la solución final . Con ello se pretende que el lector se aventure en la resolución de
éstos y simplemente pueda comprobar la corrección de sus resultados .
Básicamente la materia contenida en este libro de problemas está dividida en tres gran-
des bloques más un Capítulo final . El primero de los bloques (Capítulos 1 al 6) corresponde a
circuitos combinacionales, el segundo (Capítulos 7 al 10) a circuitos secuenciales y el último
(Capítulos 11 y 12), donde se aumenta significativamente la complejidad, a los sistemas digi-
tales . Dentro de cada bloque hemos ordenado los problemas procurando ordenarlos para que
el lector pueda apoyarse en los ya realizados a la hora de abordar los que vengan a continua-
ción . Así, cada bloque consta de varios Capítulos, cada uno de los cuales contiene problemas
de una materia concreta . Los problemas de estos Capítulos han sido desarrollados procurando
que el lector vaya aprendiendo a resolverlos dentro de esa materia . Por el contrario, el último
Capítulo está ideado con la finalidad de que el lector evalúe su nivel de conocimientos . Para
ello, por una parte, los problemas no se han ordenado según la materia, de forma que el lector
no los sitúe a priori en un contexto predeterminado ; por otra, se incluyen algunos que afectan
a más de una unidad temática ; y, por último, se presentan todos los enunciados juntos, cada
problema separado de su solución, con el fin de que el lector tenga que ir a buscar explícita-
mente cada solución .
PRÓLOGO ix
Capítulo 1 .- Aplicación de los conceptos básicos como son los sistemas de numeración
y la codificación binaria . Estos problemas están orientados a practicar con las representaciones
no decimales de magnitudes y las conversiones entre las distintas bases, así como la de núme-
ros con signo y fraccionarios incluyendo tanto el punto fijo como el punto flotante . También
se tratan los principales códigos binarios y decimales .
Capítulo 4.- Diseño de funciones . En él se aplican técnicas de reducción para obtener las
expresiones mínimas en suma de productos o producto de sumas (basadas en mapas de Kar-
naugh y en los métodos de Quine-McCluskey y de Petrick) . Además se presta una especial
atención a la obtención de los O's y los l's de una función cuando ésta se da a través de una
descripción verbal de su comportamiento .
Capítulo 7 .- Presentación del biestable tanto a nivel lógico (RS, JK, D y T) como a nivel
temporal (sin reloj, disparados por nivel, tipo Master-Slave y disparados por flanco) . También
se aborda el análisis de circuitos secuenciales . Se desarrollan tanto los circuitos síncronos o
con una única señal de reloj, como los asíncronos, incluyendo en éstos los que operan mediante
entradas asíncronas y los circuitos que poseen más de una señal de reloj .
Capítulo 1
Los circuitos digitales operan con dos niveles de señal, la mayoría de las veces una tensión baja
y otra alta . Desde el punto de vista matemático decimos que operan con señales binarias y los
dos niveles se representan mediante 0 y 1 . Toda la información que ha de procesar un sistema
digital ha de expresarse mediante combinaciones de esos dos valores . En consecuencia, hay
que describir cómo se representan los entes mediante 0 y 1 (codificación binaria) y, más espe-
cíficamente, por ser esencial en el cálculo, cómo se representan los números .
Un sistema numérico se caracteriza por sus símbolos básicos ; estos son llamados dígitos, cada
uno de los cuales representa una determinada cantidad de unidades . A su vez, cada cantidad
puede expresarse mediante una secuencia de tales dígitos . En algunos sistemas la posición ocu-
pada por cada uno de los dígitos dentro de la secuencia está asociada a un valor determinado
(peso) . Decimos entonces que se trata de un sistema de representación posicional .
Un sistema numérico de base r es un sistema posicional de representación donde los
pesos de los dígitos son potencias de r. Así, una magnitud M puede representarse en la base r
de la siguiente forma :
M = dn-1 d n_2 . . . d1 do . d_1 d-2 ... d_m (r
n-1
siendo d; un dígito de dicha base y cumpliéndose que d i e {0, 1, . . ., r-1} y M = d . r1 .
j -m
Para realizar cambios entre distintas bases existen diversos métodos . En este Capítulo se
usan fundamentalmente los siguientes : n -1
- Para cambiar de base r a base 10, se aplica la fórmula : M = Y, d.
r• .
j= -m
- Para cambiar de base 10 a base r, se utiliza el método de las divisiones sucesivas para
obtener la parte entera y el método de las multiplicaciones sucesivas para obtener la parte frac-
cionaria .
De entre las notaciones existentes para expresar números con signo nos hemos centrado en las
notaciones signo-magnitud, complemento a 1 y complemento a 2 . En algunos aspectos que de-
tallaremos a continuación las tres notaciones son similares . Se designa un bit especial denomi-
nado bit de signo (bs ) cuyo valor es 0 en números positivos y 1 en números negativos . En nú-
meros positivos los demás bits representan la magnitud :
A = ° n-1 a n _2 . . . al a0 . a_ 1 a_2 . . . a- m/
l T
bit de signo magnitud
La forma de representar los números negativos es distinta para las tres notaciones :
- En la notación signo magnitud b s se hace igual a 1 y el resto de bits representan de
nuevo la magnitud :
CODIFICACIÓN BINARIA
Entre los códigos más utilizados se encuentran los llamados códigos decimales . Estos
asignan a cada uno de los dígitos de la base 10 una palabra binaria . Con su utilización se evita
el proceso de conversión entre base 2 y base 10, aunque el número de bits precisado para ex-
presar una cantidad es, en general, mayor . En la siguiente tabla se muestran algunos ejemplos :
Otro código de gran interés es el código Gray (o código reflejado) de n bits . En las
siguientes tablas se muestran los casos n = 3 y n = 4 . Puede observarse en ellas la particularidad
de que las palabras asignadas a dos números consecutivos se diferencian únicamente en 1 bit .
Se trata por tanto de un código con distancia unidad .
código código código
Gray(n=3) Gray(n=4) Gray(n=4)
0 000 0 0000 8 1100
1 001 1 0001 9 1101
2 011 2 0011 10 1111
3 010 3 0010 11 1110
4 110 4 0110 12 1010
5 111 5 0111 13 1011
6 101 6 0101 14 1001
7 100 7 0100 15 1000
Como ejemplo de código alfanumérico, en este texto se usa el código ASCII . Mediante
este código de 7 bits es posible codificar las 26 letras del alfabeto, tanto mayúsculas como mi-
núsculas, los 10 dígitos decimales, caracteres como <, @ , secuencias de control como ESC,
NULL, etc . A continuación se muestran algunos ejemplos :
A cualquiera de los códigos anteriores se les puede añadir un bit de paridad . El valor de
dicho bit se asigna de forma que el número total de unos en la palabra sea par (hablamos
entonces de bit de paridad par) o impar (hablamos entonces de bit de paridad impar) .
PROBLEMAS RESUELTOS
do d i d2 d3
Solución P3.- Obtendremos en primer lugar la representación de la parte entera por el método
de las divisiones sucesivas . Para pasar a base 2 :
23
t
v 11
v 5 `I '
v C_2
0
1
1
v v
do d i d2 d3 d4
Solución P4 .- Para convertir a base 10 basta sustituir el valor de la base y de los dígitos en la
n-1
expresión M = E d . • r1 y realizar las operaciones .
j = -m
2-5
a) 100 .111010 (2 = 1 • 2 2 + 1 • 2 -1 + 1 • 2 -2 + 1 • 2-3 + 1 • = 4 .90625 (1 0
b)50 ( 8=5 • 8+0=40 (1 0
c)101 .1 (2 =1 •2 2 +1 •2 0 +1 •2 -1 =5 .5 ( 10
Problema 5.-Se cuenta que un rey, encantado con el juego, ofreció al inventor del ajedrez el
premio que desease . El inventor sólo pidió 1 grano de arroz por la primera casilla del tablero,
2 granos por la segunda, 4 por la tercera y así, el doble cada vez, hasta llegar a la última ca-
silla (la número 64) . Los matemáticos del reino concluyeron que no había arroz suficiente para
pagar al inventor. ¿Sabría decir cuántos granos de arroz se necesitaban?
Solución P5.-La cantidad pedida M es, en base 2, el número compuesto por 64 unos :
63
M=1 1 . . .1 1 1 1 ya que en ese caso M=1 •20 +1 •2 1 +1 •2 2 + . . .+1 •2
Esta cantidad es una unidad menos que la representada por un 1 seguido de 64 ceros .
19
Entonces : M = 264 - 1 = 1 .844674407 x 10
Problema 6.- ¿ Cuántos bits son necesarios como mínimo para representar cada uno de los
siguientes números decimales?
50, 1000, 5000, 100000 y 1000000.
Solución P6 .- Para calcular el número mínimo n de bits que representa la magnitud M, tenga-
mos en cuenta que n ha de cumplir la siguiente desigualdad :
2n-1-1 <M<-2 n -1
M n
50 6
1000 10
5000 13
100000 17
1000000 20
Solución P7 .- Para convertir un número de base 2 a base 4, basta agrupar a partir del punto
fraccionario de 2 en 2 bits y convertir cada grupo a base 4 . De la misma forma, para convertir
a base 8 ó 16 se agrupan de tres en tres o de cuatro en cuatro bits respectivamente . Entonces :
1 1 2 3 0 3 . 2 3 0 (4 2 6 6 3. 5 4 (8 5 B 3. B 0 (16
Para pasar de bases 4, 8 ó 16 a base 2, se hace la descomposición inversa . Por otra parte,
la conversión entre las bases 4 y 16 también se realiza de la misma forma . Sin embargo, para
pasar de base 8 a base 4 ó 16, o viceversa, conviene pasar antes a base 2 .
Por tanto :
372 .105 (8 = 011 111010 . 001 000 101 (2 = 3322 .020224 = FA .228( 16
F0.A( 16 = 11110000- 1010(2 = 3300 .22 (4 = 360 .50 (8
Problema 8.-En la colonia humana de Ganimedes la energía se obtiene con pilas atómicas
de exactamente 1 Kg de peso . Las pilas son enviadas desde Tritón en 6 cajas de 50 pilas cada
una .
a) Tras un envío se avisa a Ganimedes que, por error, una de las cajas contiene pilas
malas con 1 g de menos. Deben detectarla y reenviarla a Tritón . Los operadores de Ganime-
des deciden detectarla mediante una sola pesada . ¿Cómo?
b) Tiempo después y tras otro envío, el aviso es que una o más cajas contienen pilas
malas con 1 g de menos . ¿Cómo podrán ahora detectar las cajas erróneas con sólo una
pesada?
Solución P8.
a) Identifiquemos cada una de las seis cajas con una letra : caja A, caja B, caja C, caja D,
caja E y caja F . Si pesamos 1 pila de la caja A, 2 de B, 3 de C, 4 de D, 5 de E y 6 de F, la
cantidad de gramos que falten para un número entero de Kg indica la caja errónea .
b) En este caso será necesario tomar 1 pila de A, 2 de B, 4 de C, 8 de D, 16 de E y
32 de F . Con esto, el número de gramos que faltan para un número entero de Kg representados
en base 2 indica las cajas erróneas . Por ejemplo, supongamos que las cajas erróneas son A, B,
D y F : entonces, faltarán 1 + 2 + 8 + 32 = 43 g . El número 43 expresado en binario es : 101011
lo que señalaría a las cajas F - D - B A .
Problema 9 .- La figura representa 6 cartas con las que se pretende hacer un juego de magia .
Alguien debe pensar un número y, sin decir cuál es, debe indicar las cartas donde el numero
está presente . Conociendo sólo esto, se podrá adivinar el número pensado . Por ejemplo, si
está en las tarjetas A, D, F y G, se trata del número 75 . Sabiendo que el juego se basa en la
representación binaria de magnitudes :
a) Explíquelo .
b) ¿Cómo lo cambiaría si quiere incluir hasta el número 123?¿ Ysi incluye hasta el200?
6 17 18 19 20 21 1 ,11 8 9 10 11 12 13
' 64 65 66 67 68 69~ "'32 33 34 35 36 37~ 22 23 24 25 26 27 14 15 24 25 26 27
70 71 72 73 74 75 38 39 40 41 42 43 28 29 30 3148 49 28 29 30 31 40 41
76 77 78 79 80 81 44 45 46 47 48 49 50 51 52 53 54 55 42 43 44 45 46 47
82 83 84 85 86 87 50 51 52 53 54 55 565758596061 56 57 58 59 60 61
88 89 90 91 92 93 565758596061 62 63 80 81 82 83 62 63 72 73 74 75
94 95 96 97 98 99 62 63 96 97 98 99 84 85 86 87 88 89 76 77 78 79 88 89
A B 90 91 92 93 94 95 90 91 92 93 94 95~
Solución P9.
a) El mayor número, el 99, se representa en binario con 7 bits, concretamente como
99 (2 = 1100011 .
De aquí que haya 7 tarjetas (A, B, C, . . ., G) cada una encabezada por una potencia de 2
(2 6 = 64 para A, 25 = 32 para B, 2 4 = 16 para C, etc) . El resto de números en cada tarjeta son
aquellos cuya representación en base 2 contiene un 1 en la posición de la potencia correspon-
diente a la tarjeta . Así el 99 estará en las tarjetas A, B, F y G pero no en las otras . El número
75 (= 64 + 8 + 2 + 1) estará sólo en las tarjetas A, D, F y G ; etc .
b) El 123 precisa también 7 bits por lo que no hay que aumentar el número de tarjetas .
A cada una de éstas habría que incorporar los nuevos números (del 100 al 123) de la forma
explicada antes ; por ejemplo : el 111 (10 = 1101111 (2 se incorporaría a A, B, D, E, F y G .
Para añadir hasta el 200 se necesitaría una nueva tarjeta encabezada por 128 = 27 , ya que
para representar números mayores de 128 se precisan 8 bits .
Solución P10 .- El código Gray es un código reflejado de distancia unidad que utiliza el
mínimo número de bits necesarios . La distancia unidad implica que dos números consecutivos
tienen códigos adyacentes (sólo se diferencian en un bit) . Por otra parte, el ser un código
reflejado, implica simetría respecto a la mitad de los números representados, con lo que, dos
números simétricos tienen códigos adyacentes .
a) Para representar los números del 0 al 7 necesitaremos 3 bits . Por tanto, el código Gray
será :
0 1 2 3 4 5 6 7
(eje de simetría)
b) y c) Para representar tanto los diez números del 0 al 9, como los 16 números del 0 al
15 se necesitan 4 bits, con lo que el código Gray a utilizar es el de 4 bits . Al ser un código re-
flejado, para asignar valores del código a los diez números (0-9) lo haremos con los 10 códigos
centrales, tal como se muestra . En la codificación de los 16 números (0-15) ocupamos los 16
códigos existentes .
0000 0001 0011 0010 0110 0111 10101 0100 1100 1101 1111 1110 1010 1011 1001 1000
b) - 0 1 2 3 4 5 6 7 8 9 -
c) 0 1 2 3 4 5 7 8 9 10 11 12 13 14 15
(eje de simetría)
(ahora de n + 1 bits) sea par en el caso de paridad par o impar en el caso de paridad impar .
La posición del bit de paridad es convenida previamente ; por ejemplo, ponemos el bit
de paridad en primer lugar .
El código ASCII de paridad par para el 6 será 00110110 (añadimos un 0 para tener un
total de cuatro unos) . En hexadecimal será $36 .
f) El código ASCII de paridad impar para el 6 será 10110110 (añadimos un 1 para tener
un total de cinco unos) . En hexadecimal, $B6 .
g) El código 2-out-of-5 representa los 10 dígitos decimales mediante 5 bits de los que
tres son 0 y dos son 1 . La codificación es la mostrada a continuación :
número código
0 00011
1 00101
2 00110
3 01001
4 01010
5 01100
6 10001
7 10010
8 10100
9 11000
Problema 11 .- Determine el bit de paridad impar para cada uno de los 10 dígitos decimales
en el código 8, 4, -2, -1 .
Solución P11 .-En la siguiente tabla, se muestra la codificación para cada dígito decimal en el
código pesado 8, 4, -2, -1, junto con el bit de paridad que hay que generar para que en cada
dígito haya un número impar de 1 .
dígito 84-2-1 P
0 0000 1
1 0111 0
2 0110 1
3 0101 1
4 0100 0
5 1011 0
6 1010 1
7 1001 1
8 1000 0
9 1111 1
12 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
Solución P13.- Se define Ca9(N) = (Ion - 1) - N . De esta definición podemos inferir que si N
= Nn_1Nn_2 . . .N1N0, entonces Ca9(N) = (9 - N n_ 1 )(9 - N n_2 ) . . .(9 - N 1 )(9 - N 0) .
Por otra parte CalO(N) = 10 n - 1 = Ca9(N) + 1
Para las cantidades propuestas en el enunciado :
Problema 14.- Represente con el mínimo número de bits posibles los siguientes números de-
cimales en notación binaria, signo-magnitud, complemento a 1 y complemento a 2 :
a) ± 122, b) ± 64 ; c) ± 15; d) ± 37
Solución P14 .- La representación binaria con n bits permite representar los números compren-
didos entre 0 y 2 n-1 , siendo una representación sin signo . Esto es, no podemos representar +N
ni -N sino sólo N . En particular, operando como en el problema 2 :
a) 122 = 1111010 (2
b) 64 = 1000000(2
c) 15 = 1111(2
d) 37 = 100101(2
REPRESENTACIÓN Y CODIFICACIÓN BINARIA 13
Solución P15 .
1) + 27 .625 = 0011011 . 101(2, en este primer caso, no es necesario redondear ni truncar
la parte fraccionaria pues sólo hay tres dígitos en la parte fraccionaria del número exacto . Por
tanto, la representación con 10 bits (7 para la parte entera y 3 para la fraccionaria) sería :
010111110 1
Problema 16.- Se dispone de 30 bits para escribir números en notación exponencial . De ellos
se destinan 21 a la mantisa y 9 al exponente . Mantisa y exponente se escriben en notación
signo-magnitud.
a) Determine los rangos de valores decimales que se pueden escribir .
b) Represente en BCD los siguientes números :
1 . Velocidad de la luz en mis (3x10 8).
2. Carga del electrón en culombios (- 1,602x10 -19) .
-31) .
3. Masa del electrón en kilogramos (9,109x10
4 . Aceleración de la gravedad en mis 2 (9,807) .
5. Cero.
6. Infinito .
mantisa exponente
Sm Se
mantisa exponente
2) - 1 .602 x 10-19 , normalizado - - 0 .1602 x 10 -18 , los 30 bits serán :
1 0001101101000010010_ 0000 1
1100011 1000
5) Por convenio, cero, es el único número con el primer dígito de la mantisa a 0 . (Nor-
malmente se ponen todos los dígitos de la mantisa y el exponente a 0, pero bastaría sólo con
fijar a cero el primer dígito de la mantisa) .
6) Infinito . Con signo positivo, por convenio viene dado por el mayor número represen-
table . Con signo negativo, será el menor representable :
Solución P17 .
a) 31 .5 ( 10 = 11111 .1(2 pero hemos de escribirlo en forma exponencial de manera que la
mantisa tenga 13 bits (incluido el bit de signo) y el exponente 7 bits (incluido bit de signo) :
_7 (2
31 .5 (10 = 0111111000000 x 2
Entonces la mantisa, de 13 bits, es : 0 1111110000000 y el exponente, de 7 bits, es :
1000111 .
16 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
Problema 18.- Represente los siguientes números decimales en base 2 y compruebe el re-
sultado : a) 17,, b) 94 .
Solución P18 .
a) 17(10 = 10001(2 -
b) 94 (10 = 1011110(2 .
Problema 19.- Pase los siguientes códigos hexadecimales a código binario, octal y BCD : a)
$F2.85; b) $B02.A ; c) $25.FA ; d) $71 .02.
$F2 .B5 = F x 16 + 2 x 160 + 11 x 16 -1 + 5 x 16 -2 = 242 .70(10 _3 0010 0100 0010 .0111 (BCD) •
Procedemos de igual forma con el resto de los casos :
b) $B02 .A = 1011 0000 0010 .1010 (2 = 5402 .5 ( 8 = 2818 .625 ( 10
= 0010 1000 0001 1000 .0110 0010 0101 (BCD) .
c) $25 .FA = 0010 0101 .1111 1010 (2 = 45 .764 ( 8 = 37 .977(10
= 0011 0111 .1001 0111 0111 (BCD) •
d) $71 .02 = 0111000 1 .0000 0010 (2 = 161 .004(8 = 113 .007(10 =
= 000 1000 100 11 .0000 0000 0111 (BCD) •
REPRESENTACIÓN Y CODIFICACIÓN BINARIA 17
Problema 20.- Represente el número decimal 8620 (a) en BCD, (b) en código exceso 3,
(c) en código 2, 4, 2, 1 y (d) como número binario .
Solución P20 .
a) 8620(10 3 1000 0110 0010 0000 (BC p) .
b) 8620 (10 -3 1011 1001 0101 001 1 (exceso-3) •
c) El código 2,4,2,1 es un código pesado de 4 bits cuyos pesos son precisamente 2,4,2,1 .
dígito Pesos :
decimal 2421
0 0000
1 0001
2 0010
3 0011
4 0100
5 1011
6 1100
7 1101
8 1110
9 1111
Problema 21 .- Un código binario usa 10 bits para representar cada uno de los diez dígitos
decimales . A cada dígito le asigna un código de nueve ceros y un uno . El código binario para
el número 6, por ejemplo, es 0001000000. Determine el código binario para los números de-
cimales restantes .
Solución P21 .- Se trata del código "1-hot", también llamado "1-out-of-n" . En este caso n = 10 .
dígito bg b 8 b 7 b6 b 5 b 4b3 b2b l bo
0 0000000001
1 0000000010
2 0000000100
3 0000001000
4 0000010000
5 0000100000
6 0001000000
7 0010000000
8 0100000000
9 1000000000
Problema 22.- Obtenga un código binario pesado para los dígitos de la base 12 usando los
pesos 5421 .
Solución P22.
0 0000 6 1001
1 0001 7 1010
2 0010 8 1011
3 0011 9 1100
4 0100 A 1101
5 1000 B 1110
Problema 23.- Determine el rango de valores numéricos que pueden escribirse en palabras
de 8, 16 y 32 bits, en las diferentes notaciones de números enteros con signo .
Problema 24.- Un registro de 30 bits almacena un número decimal en punto flotante repre-
sentado en BCD. Los coeficientes ocupan 21 bits del registro y se asume como un entero nor-
malizado . Los números en el coeficiente y el exponente se asumen representados en forma
de signo-magnitud. ¿ Cuáles son las cantidades mayores y menores que pueden ser acomo-
dadas excluyendo el cero? . Repita para representación binaria, con base 2, si se representa
con fracción normalizada .
Solución P24 .
BCD normalizado entero,
99
- Cantidad mayor positiva : 99999 x 10
10 -95
-Cantidad menor positiva : 10000 x 10-99 =
Base 2 fracción normalizada,
11111111 = (1 -2 -21) x 2 255 .
- Cantidad mayor positiva : 0 .111 . . .111 x 2
2-1 -255 =2 -256
- Cantidad menor positiva : 0 .100 . . .000x2-11111111 = x2
Capítulo 2
ÁLGEBRA DE CONMUTACIÓN
0 1 0 1
0 0 1 0 0 0
1 1 1 1 0 1
OR AND
El álgebra de conmutación cumple los postulados del álgebra de Boole . De ahí que po-
damos decir que la primera es un caso particular de la segunda . Los postulados del álgebra de
Boole son los siguientes :
P1 . Ley de identidad : Existen elementos identidad (0 para la operación "+" y 1 para la
operación " ") de forma que para cualquier elemento x, se cumple :
x+0=x x • 1=*
P2. Ley conmutativa : Para cualesquiera dos elementos x e y, se cumple :
x+y=y+x x .y=y .x
P3 . Ley distributiva : Dados tres elementos x, y, z se cumple :
x+(y .z)=(x+y) .(x+z) x . (y+z)=x .y+x .z
19
P4 . Ley del complemento : Para todo elemento x existe un elemento x tal que:
x+x= 1 x • x=0
A partir de estos postulados es posible probar una serie de propiedades de interés . Estas
propiedades, que aquí simplemente se enumeran, son demostradas en el problema 1 para el
caso general del álgebra de Boole y probadas en el problema 2 para el álgebra de conmutación .
TI . Ley de idempotencia : x + x = x x • x = x
T2 . Ley de unicidad del complemento : el elemento x del postulado cuarto es único .
T3 . Ley de los elementos dominantes : x + 1 = 1 x •0 = 0
FUNCIONES DE CONMUTACIÓN
Son funciones que se definen sobre el conjunto B = (0, 1 } del álgebra de conmutación . Estric-
tamente se definen como : f: Bx . . . xBxB = Bn -4 B .
Así una función de n variables asigna un valor o imagen de B (0 ó 1) a cada punto del
espacio B ' : (x 1 ,x 2 , . . .,x,) . Por ejemplo, una función de tres variables : f(x, y, z) se puede definir
de la siguiente forma: f(0,0,0) = 0, f(0,0,1) = 1, f(0,1,0) = 0, f(0,1,1) = 1, f(1,0,0) = 0,
f(1,0,1) = 0, f(1,1,0) = 1, f (1,1,1) = 1 . A veces no todas las combinaciones de las variables tie-
nen imagen, decimos entonces que la función es incompleta o que está incompletamente espe-
cificada. Cuando esto sucede, por ejemplo, en la combinación (x 0 ,Y 0 ,z0) lo simbolizamos de
la siguiente forma : f(x0,y o,z 0 ) = d ó f(x 0 ,Y 0,z 0) = -, donde los símbolos "-" y "d" (don't care)
son llamadas inespecificaciones o indeterminaciones .
REPRESENTACIÓN DE FUNCIONES
Existen diversos modos de representar las funciones de conmutación . Algunas formas utilizan
tablas o mapas (modos gráficos) . Otras, consisten en expresiones algebraicas . A continuación
daremos algunos detalles sobre las formas de representación utilizadas en este texto .
- Tablas de verdad.
En una tabla se representan dos columnas . En la primera de ellas se escriben todas las
combinaciones de las variables de entrada en orden binario . En la otra columna se anota el va-
lor que toma la función para cada combinación de las variables de entrada . A continuación se
muestra un ejemplo para una función de tres variables . Nótese que para n variables se necesi-
taría una tabla de 2n filas . Así, este tipo de representación es más interesante para funciones de
un número reducido de variables .
ÁLGEBRA Y FUNCIONES DE CONMUTACIÓN 21
xyz f
000
001
010
011
100
101
110
111
-Mapa de Karnaugh .
Es también una forma gráfica . Las variables de la función se dividen en dos grupos . Uno
de ellos se sitúa en el eje horizontal de una tabla y el otro en el eje vertical . Las combinaciones
de cada grupo de variables se escriben en el orden del código Gray . Así, disponemos de una
cuadrícula en cuyas celdas se anota el valor de la función para la combinación de las variables
asignada . La propiedad principal es que dos celdas geométricamente adyacentes también co-
rresponden a códigos lógicos adyacentes . En el ejemplo se muestra un mapa para una función
de 4 variables . En los problemas aparecen ejemplos para 5 variables . Al igual que en el caso
de las tablas de verdad, este tipo de representación aumenta su tamaño de forma potencial con
el número de variables . Si el orden en que se escriben los valores de las variables es el binario
natural, el mapa es denominado binario .
ab
c 11 10
00 0 0 0 0
01 1 1 0 0
11 0 0 1 1
10 0 1 1 1
- Expresiones o fórmulas .
En este caso se utiliza una expresión algebraica para representar las funciones . Se
combinan las variables con los operadores NOT I , AND 2 y OR . Aquellas combinaciones de las
variables que hagan 1 (ó 0) la expresión serán las combinaciones en que la función es 1 (ó 0) .
Algunos tipos de fórmulas son de un interés particular . Entre las más destacables están
las formas canónicas y estándares . Tanto unas como otras tienen en común que son fórmulas
compuestas únicamente por suma de productos, o bien, únicamente por producto de sumas . En
las formas canónicas, además, se cumple que los productos son siempre mintérminos y las su-
1
NOT(x) = x.
2 El símbolo del operador AND ( •) puede omitirse: a • b = a b .
mas son maxtérminos . Tenemos así que las formas canónicas son sumas de mintérminos o pro-
ducto de maxtérminos . A continuación se muestra para la función de cuatro variables del ejem-
plo anterior expresiones en forma canónica y estándar tanto de sumas como de productos .
- Suma de mintérminos :
f(a,b,c,d)=abcd+abcd+abcd+abcd+abcd+abcd+abcd=
=m1+m5+m6+m10+m11+m14+m15=E(1,5,6, 10, 11, 14, 15) .
- Producto de maxtérminos :
f(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)(a+b+c+d)(a+b+c+d)=
= M0 M2 M3 M4 M7 M8 M9 M12 M13 = IT (0, 2, 3, 4, 7, 8, 9, 12, 13) .
- Suma de productos :
f(a,b,c,d)=acd+ac+bcd .
- Producto de sumas :
f(a, b, c, d) = (c + d) (á + c) (a + c + d) (a + b + c).
Mientras que las dos primeras formas son únicas para cada función (canónicas), las dos
siguientes (es- tándares) no lo son, pero presentan una mayor simplicidad .
PROBLEMAS RESUELTOS
Se han aplicado los postulados P1, P4, P3, P2, P4, P3 y P1, en ese orden .
T3 . Elementos dominantes : x + 1= 1 x • 0= 0
x+1=(x+1) •1 =(x +1) •( x+x)= x +1 • x_= x+x=1
x •0 =x •0 +0=x •0 +x •x =x(O+x)=x •x =0
Los postulados utilizados son P1, P4, P3, P2, Pl y P4 .
T4 . Lev involutiva: (x) = x
- Involutiva : x = x;
- Absorción : x + x y = x, x (x + y) = x ;
- Consenso : x + x y = x + y, x (x + y) = x y ;
- Asociativa: (x + y) + z = x + (y + z), (x y) z = x (y z) ;
-LeyDeDeMorgan : xy=x+y, x+y=xy .
En las dos tablas siguientes podemos ver la comprobación de todos los teoremas excepto
el de la ley asociativa que se prueba a continuación .
0 0 0 0 0 1 0 1 0 0 0
0 1 0 0 0 1 0 1 0 0 0
1 0 1 1 1 1 0 0 1 1 1
1 1 1 1 1 1 0 0 1 1 1
0 0 0 0 0 0 1 1 1 1
0 1 1 1 0 0 1 1 0 0
1 0 1 1 0 0 1 1 0 0
1 1 1 1 1 1 0 0 0 0
000 0 0 0 0 0 0 0 0
001 0 1 1 1 0 0 0 0
010 1 1 1 1 0 0 0 0
011 1 1 1 1 0 0 1 0
100 1 1 0 1 0 0 0 0
101 1 1 1 1 0 0 0 0
110 1 1 1 1 1 0 0 0
111 1 1 1 1 1 1 1 1
Solución P3 .
a) No se cumple, por ejemplo, para a = 0, b = 1, c = 0 .
b) No se cumple, por ejemplo, para a = 1, b = 1, c = 0 .
c) Sí se cumple . Se puede comprobar que para cualquier combinación de valores se
cumple . También se puede demostrar algebraicamente :
d)w+wx+yz=w(y+z)
e)w[x+y(z+w)]=w+xy+xz
f) (w+x+ y) (w+x+y) (y+z) (w+z)= (w+ y) (y+z)
Solución P4 .
a)xy+xz+yz=xy+xz+(x+x)yz=xy+xz+xyz+xyz=
=xy+xyz+xz+xzy=xy(1+z)+xz(1+y)=xy+xz
donde hemos aplicado P4, P3, P2, P3, T3 y P1
b)x(x+y)+z+zy=xy+z+y=y+yx+z=y+zporT6,P2yT5
c) x y + xyz = x y + z (por la ley del consenso : u + u z = u + z donde u = x y)
d)w+wx+yz=w+yz=wyz=w(y+z) porT5yT8
e)w[x+y(z+w)]=w+x+y(z+w)=w+xy(z+w)=w+x(y+z+w)=
=w+xy+xzw=w+xy+xz por T8yT6
fl(w+x+y)(w+x+y)(y+ z) (w+z)= [(w+y)+xx](y+z)(w+z)=
=(w+y)(y+z)(w+z)=(w+y) (y+z) por P2,P3,P4,PlyT10 .
Problema 5.- Reduzca las siguientes expresiones del álgebra de Boole al número de literales
solicitado al lado de cada una de ellas .
a)abc+abc+abc+abc+abc (a cinco literales)
b) b c + a c + a b+ b c d (a cuatro literales)
c)[cd+a]+a+cd+ab (a tres literales)
d) [(a + c + d) (a + c + d) (a + c+ d) (a + b)] (a cuatro literales)
Solución P5.
a) abc+abc+abc+abc+abc=
=abc+abc+abc+abc+abc+ábc= (ya que x + x = x)
=abc+abc+abc+abc+abc+ábc= (por la propiedad conmutativa)
=ab(c+c)+ab(c+c)+(a+a)b c=
Solución P6 .
a) No se cumple pues para a = 0, b = 0, c = 1, d = 0, e = 1 y f = 0 se tiene que
M(a, b, c) + M(d, e, f) = M(0, 0, 1) + M (0, 1, 0) = 0 + 0 = 0 y, sin embargo :
M(a+d,b+e,c+f)=M(0, 1, 1)=1 .
b) No se cumple, pues para a = 0, b = 1,c = 1, d = 1, e = 0 y f = 1 se tiene que
M(a, b, c) M (d, e, f) = M(0, 1, 1) • M(1, 0, 1) = 1 • 1 = 1 mientras que
M(a •d ,b e,c •f)=M(0,0,1)=0
c) Sí se cumple pues M[a, b, M(c, d, e)] = M[a, b, c d + c e + d e] _
=ab+a(cd+ce+de)+b(cd+ce+de)=ab+acd+ace+ade+bcd+bce+bde
y, por la otra parte :
M[M(a, b, c), d, M(a, b, e)] = M[a b + a c + b c, d, a b + a e + b e]=
=(ab+ac+bc)d+(ab+ac+bc)(ab+ae+b e)+d (ab+ae+b e)=
=abd+acd+bcd+ab+abe+abc+ace+ a b c e+ abce+bce+abd+ade+bde=
= a b+ a c d+ b c d+ a c e+ b c e + a d e+ b d e, luego ambas expresiones son iguales .
Solución P7 .
a) Si f = w y z + x y + w y, entonces es fácil deducir cuándo f = 1 :
/wyz=1 ==> w=1,y=1,z=1
f=1 f=> xy=1 ~x=1,y=1
\wy=1~w=1,y=1
wxyz f wxyz f
0000 0 1000
0001 • 1001
0010 • 1010
0011 • 1011
0100 • 1100
0101 • 1101
• 110 1 1110
• 111 1 1111
wxyz f wxyz f
0000 • 1000
0001 0 1001
0010 0 1010
001 1 • 1011
0100 1 1100
0101 1 1101
• 110 1 1110
0111 1 1111
Solución P8.
a) f (a, b, c, d) = E (5, 6, 7, 12) + d(1, 3, 8, 10)
c 11 10
00 0 0 1 d
01 4 d 0 o
11 d 1 0 0
10 0 1 0 4
f
ab
c 01 11 10
00 d 1 1 d
01 d 1 0 d
11 1 1 0 1
10 d 1 0 0
f
cd
00 0 0 1 1 0 0 0 0
01 1 0 0 0 0 0 0 d
11 1 0 0 0 0 0 1 0
10 1 0 0 0 0 0 0 0
a)f=(ab+ac)(ab)) b)f=xy(v+w)[(x+y) vi .
c)f=x+yz) d)f=(a+b+c)(d+a)+bc+ a c .
Solución P9.
a) (a b + a c) (a b) = a b (por la ley del consenso)
Con esto tenemos una forma en suma de productos, donde el producto p = a b es el úni-
co. También tenemos un producto de sumas, donde los términos suma son dos : s1 = a y s = b . 2
b) x y (v + w) [(x + y) v] = x y (v + w) (x + y) v = v x y (x + y) = v x y (ley de absorción) .
Con esto tenemos una forma en suma de productos, donde el producto p = v x y es único .
También tenemos un producto de sumas, donde los términos suma son tres : SI
= v, s = x,2
s 3y.
c) x + yz, es suma de dos productos, pl X, 2
= P = y z . Por otra parte, aplicando la propie-
dad distributiva : x + yz = (x + y) (x + z) . Con ello tenemos una expresión en producto de sumas :
2
s1 =x+y, s =x+z .
d)f=(a+b+ c) (d + a) + b c + a c
Para reducirlo a una forma en producto de sumas operaremos sobre la expresión de f
aplicando repetidas veces la propiedad distributiva :
(a + b + c) (a + d) + b c + a c = (a + b + c) (a+d)+(a+b)c=
=[(a+b+c)(a+d)+(a+b)] [(a+b+c)(a+d)+c]=
=[(a±b+c+a+b)+(a+d+a+b)] [(a+b+c+c)(a+d+c)]=
=(a+b+ c) (a+b+ d) (a+c+ d) .
Obtenemos por tanto un producto de tres términos suma : s1 = a + b + c, s = a + b + d 2
y s3=a+c+d.
De forma similar se puede obtener una expresión en suma de productos :
(a + b + c) (a + d) + b c + a c = [a + (b + c) d)] + a c + b c = a + a c + b c + (b + c) d=
=a+bc+bd+c d .
Son, por tanto, cuatro términos producto : pl P2 3 4
= a, = b c, p = b d, P = c d .
1 2
Solución P10.- Para expresar la función f + f como suma de mintérminos hay que tener en
1 2
consideración que todos los mintérminos de f y todos los mintérminos de f son mintérminos
1 2
de f + f ya que 1 + x = 1 . Entonces :
l 2 1 2
f + f = E (0, 4, 8, 9, 10, 11, 12, 14, 15), y por exclusión : f + f = U (1, 2, 3, 5, 6, 7, 13) .
1 2
Para expresar la función f . f , es mejor comenzar por la expresión en forma de produc-
to de maxtérminos ya que debido a que 0 • x = 0 podemos decir que todos los maxtérminos de
1 2 1 2
f y todos los de f son maxtérminos de f • f . Entonces :
l 2
f • f =11(1, 2, 3, 5, 6, 7, 11, 12, 13, 14, 15) =E (0, 4, 8, 9, 10) .
1 2 1 2
En cuanto a la función f O f , para que sea 1 es preciso que f y f sean distintas . Por
1 2 1 2
tanto, los mintérminos de f O f son los mintérminos de f que no lo son de f y los de f que 2
no lo son de f : 1
f 1 f2 = E (11, 12, 14, 15) = fI (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13) .
Problema 11 .- Sea el circuito combinacional con cuatro entradas A, B, C y D, tres salidas in-
termedias P, Q y R y dos salidas T 1 y T2, como se muestra en la figura . Sólo Q y R pueden
tener inespecificaciones .
T 1 = E (0, 1, 3, 4, 5, 7, 11,15)
T 2 = E (2, 3, 6, 7, 11,15)
a) Suponiendo que tanto G 1 como G2 son puertas AND, obtenga el mapa de la función
Pmin (es decir, la función P que tiene el menor número de mintérminos) que permite obtener
T 1 y T2.
• Obtener los mapas para Q y R correspondientes al Pmin anterior. Indique, explícita-
mente, las posiciones de las inespecificaciones .
• Suponiendo que G 1 y G2 son puertas OR obtenga el mayor Pmax (la función P con
mayor número de mintérminos) y sus mapas correspondientes para a y R.
• ¿ Pueden obtenerse Q, P y R si G 1 es una puerta AND y G2 una puerta OR? ¿ Y si G 1
es una puerta OR y G2 una puerta AND?
Solución Pll .
a) G 1 y G2 son puertas AND .
En este caso T 1 = Q . P y T2 = R • P, por tanto, Q y P tienen que tener todos los mintér-
minos de T 1 (o sea : 0, 1, 3, 4, 5, 7, 11, 15), y R y P tienen que tener todos los mintérminos de
T2 ( o sea : 2, 3, 6, 7, 11, 15) . Entonces P como mínimo tiene que contener todos esos mintér-
minos, luego : Pmin = E (0, 1, 2, 3, 4, 5, 6, 7, 11, 15) .
b) La función Q tiene al menos los mintérminos de T1 ; R tiene los de T 2 . Ahora bien, Q
tiene ceros en las celdas en que Pmin vale 1 pero T 1 no es 1 ; por ejemplo, 2 es mintérmino de
Pmin pero no lo es de T 1 , por lo que 2 es un 0 de Q . Lo mismo ocurre para R con respecto a T2
Y Pmin • Por último, en las celdas donde T 1 vale 0 y Pmin también es 0, Q está inespecificada ;
algo similar ocurre para R respecto a T 2 y P min . Por tanto :
Q = E (0, 1, 3, 4, 5, 7, 11, 15) + d (8, 9, 10, 12, 13, 14) .
R = E (2, 3, 6, 7, 11, 15) + d (8, 9, 10, 12, 13, 14) .
c) G 1 y G 2 son puertas OR .
En este caso T 1 = Q + P y T2 = R + P, por tanto donde T 1 sea cero también deben de
serlo forzosamente Q y P (o sea en 2, 6, 8, 9, 10, 12, 13, 14) y donde T2 lo sea deberán serlo
32 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
también R y P (o sea en 0, 1, 4, 5, 8, 9, 10, 12, 13, 14) . Así, P tendrá como máximo los
mintérminos que sean comunes a TI y T2 : Pmax = Y- (3, 7, 11, 15) .
Q y R contendrán los mintérminos que le faltan a P para completar los de T I y T2 :
Q = E (0, 1, 4, 5) + d (3, 7, 11, 15) .
R = E (2, 6) + d(3, 7, 11, 15) .
Las celdas en que Q está inespecificada son aquellas en las que T I vale 1 y Pmax también
es 1 . Algo similar ocurre para R respecto a T2 y Pmax •
d) No es posible, ya que si G 1 es una AND y G 2 una OR : T I = Q • P, T 2 = R + P . En-
tonces, en aquellos valores en los que T I es 1 y T 2 es 0 (como por ejemplo en 4) sería imposible
encontrar un valor adecuado para la función P . Si P valiese 1 forzaría T2 = 1 y si valiese 0 for-
zaría T I = 0) .
Si G 1 es una OR y G 2 es una AND, tampoco es posible ya que T I = R + P y T2 = Q • P .
Así, en aquellos puntos en que T I = 0 y T2 = 1 (como por ejemplo en 6) no se puede encontrar
un valor adecuado para P.
Solución P12 .
a)f=(E+c)(a+d)+(á+b) (c+d) .
b)f=bd+ábc+acd+ábc=ab+acd+bd,entonces :
f = (a + b) (á + c + d) (b + d) .
c) Operando obtenemos f = 0 luego f = 1 .
d)f=(á+b) (c+d) .
donde a 0 b= a O b .
= xlm . . . mxi E
) xi+l O+ . . . 0 x n
Solución P14 .
a) f (a, b, c) = E (0, 1, 3, 4, 5, 6, 7).
b) f (a, b, c) = E (0, 2, 3, 4, 5, 6, 7) .
c) f (a, b, c, d) = E (0, 1, 2, 3, 4, 5, 6, 7, 8, 9 10, 11) .
Solución P15 .
a) f(a, b, c, d) =11(0, 2, 4, 6, 8, 10, 12, 13, 14) .
b) f(x, y, z) =1-1(0, 1, 3, 4, 5, 6, 7) .
c) f(a, b, c, d) =11(5, 6) .
d) f(a, b, c) =11(0, 2, 4, 6) .
Problema 16.- A partir de las tablas de verdad de las siguientes funciones, obtenga sus ex-
presiones algebraicas.
xy f, xy f2 xy f3
00 1 00 0 00 1
01 0 01 1 01 1
10 1 10 1 10 1
11 0 11 0 11 0
X y z f, f2 f3 f4 f5 f6
000 0 1 0 1 1 1
001 1 0 0 1 0 0
010 0 0 0 1 1 1
011 0 1 0 0 0 0
100 0 1 1 1 1 1
101 1 1 1 1 1 0
110 0 0 0 1 1 1
1 11 0 0 0 1 1 0
Solución P17 .
f =xyz+xyz=yz .
f2 =xyz+xyz+xyz+xyz=xy+yz+xyz .
f3 =xyz+xyz=xy .
f4 =x+y+z .
f =x+z
f6 =xyz+xyz+xyz+xyz=z .
Problema 18.- Interprete las siguientes expresiones lógicas considerando que el dato tiene
n bits. (Para ayudarse puede considerar un caso particular de n, por ejemplo: n = 4) .
a)z=xo©x1(D . .
.©x,1)bz=n-0 x1(D . . .(D Xn_2 .
c) zk = xk+ 1 © Xk, k = n - 2, . . ., 1, 0, con zn _ 1 = xn - 1
d) zk = zk+ 1 (D Xk, k = n - 2, . . ., 1, 0, con zn _ 1= xn _ 1 .
e) zk = xk q) yk, k = n - 1, n-2, . . . . 1,0
donde yk = yk 1 + xk 1 , con k > 1, 2, . . ., n - 1 e yo = 0.
Solución P18 .
a) La operación XOR de n variables se hace 1 si y sólo si hay un número impar de unos
en las n variables . Por tanto, en este caso z es un detector de paridad .
b) La función z forma parte de la palabra den bits dada por : x0 x 1 x 2 . . . x n - 2 xi- 1 . En-
tonces, z es el bit de paridad par para x 0 x 1 x 2 . . . x n _ 2 .
c) Si se particulariza paran = 4 y se obtiene la tabla de verdad de las 4 funciones se pue-
de concluir fácilmente que se trata de una conversión binario-Gray .
d) Procediendo como en el apartado anterior se puede concluir que se trata de una con-
version de código Gray a binario .
e) Si se considera el caso particular de n = 4 y se obtiene la tabla puede observarse que
z 3-0 = Ca2(x3-0)
Capítulo 3
circuito
combinacional
z(t) = f(x(t))
ANÁLISIS DE CIRCUITOS
El objetivo principal del análisis de un circuito combinacional es, por tanto, obtener una repre-
sentación de la función de conmutación que implementa . A este objetivo se le llama análisis
lógico del circuito . En algunos casos es posible, además, obtener una descripción verbal de la
operación del circuito (del tipo "hace la suma", "compara números", etc) . Además, incluso
cuando es posible esta operación a partir de las tablas o expresiones lógicas es difícil salvo que
se esté sobre aviso . En este texto no se hará el paso a la descripción verbal salvo que se indique
explícitamente en el enunciado (véase, p . ej ., el problema 4) .
Aunque el análisis lógico es el objetivo principal no es el único aspecto que debe con-
templar un buen análisis de un circuito . Otros aspectos que se deben considerar son :
- El coste del circuito . Una manera de medir el coste es a través del número de puertas
lógicas y conexiones entre puertas del circuito .
- Un análisis de parámetros eléctricos . Se debe establecer la tecnología en la que se im-
35
36 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
PROBLEMAS RESUELTOS
Problema 1 .- Analice a nivel lógico el siguiente circuito combinacional . Ponga también la fun-
ción en forma de suma de productos o producto de sumas y realice el nuevo circuito a partir
de estas expresiones .
1
x +y+z)(z+y)i
z z+
00 01 11 10
0 1 1 0
0 0 0 0
z 3--
Problema 2.- Realice un análisis lógico del circuito representado en la figura . Obtenga las ex-
presiones en forma de suma de productos y producto de sumas . Liste los mintérminos y max-
términos correspondientes . Determine el coste .
xl
>_1
- f
xl
X2 - x3
x3
X2 D --X 1
x2
Solución P2.- Comencemos determinando el coste del circuito . Este se calcula : 1 .- dando el
número de puertas del circuito ; 2 .- dando el número de entradas a puertas (conexiones) del cir-
cuito y el número de salidas . Además, a veces se evalúa el "coste" temporal estableciendo los
retrasos máximos y mínimos que experimentan las señales de entrada al propagarse hasta las
salidas . Para ello, lo más habitual es considerar una unidad de retraso por puerta . En este cir-
cuito el coste es el siguiente:
38 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
coste
n° puertas 7
n° conexiones 16 entradas + 1 salida
retraso máximo 3 niveles de puertas
retraso mínimo 2 niveles de puertas
Análisis lógico . Teniendo en cuenta la función lógica que realiza cada puerta, se obtiene
la siguiente expresión para f :
x3
Problema 3.-Analice la función que realiza el circuito, encontrando una expresión reducida
en dos niveles .
3 - fi
e
3-
Solución P3 .- Todas son puertas NAND, salvo la de salida f 1 ; llamando M a la entrada desco-
nocida de esa puerta, f 1 = e M .
Ahora, M y f2 pueden obtenerse por el método específico de circuitos con sólo puertas
NAND . Este método consta de los siguientes pasos :
1 .- Hay que construir un árbol del circuito en el que los nodos representan a las puertas
y las ramas las conexiones . Las puertas se estratifican en niveles distintos comenzando por la
puerta de salida que da lugar al primer nivel del árbol . A partir de este nivel y en función de
las conexiones del circuito se van situando el resto de puertas en niveles sucesivos hasta alcan-
zar las señales de entrada .
2 .- Por la equivalencia de dos niveles de puertas NAND con dos niveles AND-OR, se
va a asociar a cada nivel de puertas del árbol la función AND o la OR alternando ambos tipos
de función y comenzando por la función OR .
3 .- Se obtendrá la función que realiza el circuito considerando sólo operaciones AND u
OR . Hay que tener en cuenta que aquellas variables de entrada que estén conectadas a puertas
que correspondan a un nivel OR deben complementarse .
A continuación se aplica este método al circuito .
Se numeran las puertas de la forma que se muestra en la figura :
a d
b 3 3
1 - f1
e
f 3- f
M M=d+c(á+b)
1
f2=c(á+b)+fg
OR AND OR
De aquí se tiene :
f, = de + ¿ice + bce
f2 =ác+bc+fg
40 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
_1
b2
a2
>_1
3--.
al ?1
- y
b
coste
n° puertas 7
Análisis lógico :
z sp = a 2 b 2 +a,b,a 2 b 2 +a,b,a 2 b 2
00 01 10 11
b2b l
00 00 10 10 10
01 01 00 10 10
zy
10 01 01 00 10
11 01 01 01 00
ANÁLISIS DE CIRCUITOS COMBINACIONALES 41
Problema 5.- Analice la función que realiza el circuito, encontrando una expresión reducida
en dos niveles .
e 3--
e
D-- f
Solución P5.- El circuito está compuesto exclusivamente por puertas NOR, por lo que vamos
a aplicar el método específico de análisis de sólo puertas NOR . Este método es el mismo que
el utilizado en el problema anterior, sólo cambian dos aspectos :
1 .- El primer nivel de puertas es de tipo AND, por lo que la expresión que se obtendrá
para f es del tipo producto de sumas de producto de sumas .
2.- Ahora son las variables de entrada que están conectadas a los niveles AND las que
deben complementarse .
Numerando a las puertas de la forma que se ve en la figura :
e
e 3 >1
D-f
a- O-
6
O-
3
7
De aquí se tiene :
Problema 6.- En el circuito de la figura todas las puertas poseen el mismo retraso, 0 .
A
D - F
C
4 D
Solución P6.
a) Vamos a obtener una expresión de F mediante análisis lógico . Nombraremos los nu-
dos internos del circuito como se muestra en la siguiente figura :
ANÁLISIS DE CIRCUITOS COMBINACIONALES 43
D- F
u=BC x=ABu
F = xy = ABC+DCB
v=u y=Dv
CD 00 01 11 10
00 0 0 1 0
01 0 0 1 0
11 0 1 1 0 F
10 0 0 0 0
u=C
A
x=v=u
f- 1-
y=v
4-
A
F=xy
-t
A
44 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
u=B
v=u
y=v
x=Bu
F=xy
u=C
v=u
4-
x=Au
y=v
F=xy
En el caso d) : ABCD pasan de 1101 a 0101 (éste durante un tiempo A), de aquí a 0111,
0111, 1111 (durante un tiempo A) y vuelven de nuevo a 1101 . La función, debe tomar los va-
lores : 1, 0, 1, 1 que es lo que se muestra en la salida . El pulso de 0 es mayor que la duración
en 0101, pero esto no es azar: la función debe pasar por el valor 0, explicándose el cambio de
duración por el distinto tiempo de retraso cuando cambia A (2 puertas) a cuando después cam-
bia C (4 puertas) .
Problema 7.- Analice a nivel lógico los siguientes circuitos combinacionales . Ponga la fun-
ción en suma de productos o producto de sumas .
a)
>_1
- f
>_1
b)
=1
- f
c)
=1
D- f
x`
00 01 11 10
Z\
0 0 0 0 f
1 0 0 1 1
b) f = xy +O (z+x) = xz+xy
00 01 11 10
0 0 0 1 o f
1 1 1 0
c) f = y O+ (y + x) = xy
00 01 11 10
0 0 0 1
0 0 0 1
Problema 8.- Realice un análisis lógico de los circuitos representados en la figura correspon-
diente. Obtenga las expresiones en forma de suma de productos y producto de sumas . Liste
los mintérminos y maxtérminos correspondientes . Determine el coste .
a)
x I-
>1
f
3-
b)
xl 1
x2 - f
3
c)
>_l
x3
X4
Solución P8 .
a) Análisis de coste :
coste
n° puertas 6
n° conexiones 10 entradas + 1 salida
retraso máximo 4 niveles de puertas
retraso mínimo 2 niveles de puertas
Análisis lógico :
fsp = x2 + x 1 x3 fps = (x2 + XI) (x3 + x2) .
f(x 1 , x 2, x3 ) = E (2, 3, 4, 6, 7)=11(0, 1, 5) .
b) Análisis de coste :
coste
n° puertas 7
n° conexiones 12 entradas + 2 salidas
retraso máximo 5 niveles de puertas
retraso mínimo 2 niveles de puertas
Análisis lógico :
fl sp = X3 X4 + x1 x2 x4 + x1 x2 X4 + x1 x2 x3 x4 + x1 X2 X3 x4 .
fips = (x3 + x4) (xl + x2 + x4) (x1 + x2 + x3 + x4) (x1 + x2 + x4) (x1 + x2 + x3 + x4) .
f2sp = x3 + XI x2 + x1 x2 f2ps =(x1+23) x+,
f l (x l , x 2 , x 3 , x4) = E (1, 3, 4, 7,8, 11, 13, 15) = II (0, 2, 5, 6, 9, 10 12, 14) .
f2(x l , x 2 , x 3 , x4 ) = E (0, 1, 2, 3, 6, 7, 10, 11, 12, 13, 14, 15) = fI (4, 5, 8, 9) .
c) Análisis de coste :
coste
n° puertas 3
n° conexiones 6 entradas + 1 salida
retraso máximo 2 niveles de puertas
retraso mínimo 2 niveles de puertas
Análisis lógico :
fsp - XI + X2 + x3 x4 fps = ( x2 + XI + x3) (x2 + x1 + x4) .
f2 (x l , x 2 , x3 , x 4 ) = E (3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15) =11(0, 1, 2) .
Problema 9.-Analice la función que realiza cada circuito encontrando una expresión sp o ps .
a)
X - VIL-
Y -
b)
d
g
C)
xl -
X2 -
x2 - 3
x3 -
xl - XI
X2 - 3
x3 x3
ANÁLISIS DE CIRCUITOS COMBINACIONALES 49
Solución P9.-
a)f = wxz+xyz+xyw+xyz .
b)z = áce+cicf+bce+bcf+áde+ádf+bde+bdf+gh .
c)f = x I x2 +x1 x3 +x ] x2x4 +x3x4x2 +x1x;x2 + 3x I x4 .
Capítulo 4
OBJETIVO DE DISEÑO
Existen diversos criterios respecto a los cuales optimizar, de manera que en función del criterio
elegido, el circuito óptimo puede ser uno u otro . En este tema los criterios según los cuales se
van a optimizar los circuitos son dos :
1 .- Minimizar el número de niveles de puertas que deben atravesar las señales de entrada
hasta alcanzar la salida, considerando que sólo se usan puertas AND y OR (o bien sólo NAND
o sólo NOR) con fan-in y fan-out ilimitados y entradas en doble rail .
2 .- Minimizar el coste de la función en cuanto : a) al número de puertas lógicas de que
consta el circuito ; b) al número de conexiones total del circuito .
De estos criterios, el primero conduce a buscar expresiones que den lugar a circuitos en
dos niveles de puertas . Expresiones de tipo suma de productos (sp) o producto de sumas (ps)
son las más apropiadas para cumplir este requisito . Para este tipo de expresiones el segundo
criterio, reducción del coste, significa reducir el número de términos productos (en expresiones
sp) o reducir el número de términos sumas (en expresiones ps) y, además, buscar términos pro-
ductos o sumas con el menor número de literales posible .
Existen expresiones que cumplen estos requisitos que son las llamadas suma mínima de
la función (expresión sp) o producto mínimo (ps) . Por otra parte, existe un teorema que indica
cómo obtener la suma o el producto mínimo y es el siguiente :
Teorema .- La suma mínima (producto mínimo) de una función de conmutación está for-
mada por el conjunto mínimo de implicantes primas (implicadas primas) con el menor número
51
52 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
Descripción
verbal
1
Descripción formal :
Tabla de verdad, mapa de Karnaugh, expresión de la función
i
Minimización :
forma sp o ps mínima
1
Circuito
En cada uno de estos pasos hay que realizar las siguientes acciones :
1 .- Dado un enunciado con palabras (descripción verbal) de la función hay que obtener
una primera representación de dicha función mediante una tabla de verdad, un mapa de Kar-
naugh o una expresión de la función . Esta representación es lo que se conoce como una des-
cripción formal de la función .
2 .- A partir de la descripción formal obtenida al finalizar el paso anterior, hay que rea-
lizar el proceso de minimización . Con este proceso se pretende obtener la expresión suma o
producto mínimo de la función . En particular, se presentan dos métodos para hacer la minimi-
zación, uno basado en el mapa de Karnaugh y el otro, tabular, que denominaremos de Quine-
McCluskey .
3 .- De la expresión suma de productos o producto de sumas mínimo de la función se ob-
tiene el circuito óptimo . En concreto, para las expresiones sp de las funciones se derivan cir-
cuitos en dos niveles AND-OR .y NAND-NAND ; si se obtienen las expresiones sp de las fun-
ciones complementadas, el circuito puede implementarse con las estructuras AND-OR-INV,
AND-NOR ó NAND-AND . Las estructuras duales (OR-AND o NOR-NOR ; y OR-AND-INV,
OR-NAND ó NOR-OR) proporcionan los circuitos cuando se obtienen expresiones ps (de f y
de f, respectivamente) .
Estos pasos del proceso se realizan antes de tener en cuenta otros aspectos como son si
la disponibilidad de las entradas es en único rail, si el fan-out es limitado, si se dispone de cir-
cuitos integrados en vez de puertas individuales, etc . Solamente no se siguen estos pasos cuan-
do el circuito final no se obtiene a partir de expresiones sp (ps) . En estos casos (p .ej . en reali-
zaciones con puertas EXOR) el diseñador debe saber cómo pasar del paso 2 a la realización de
su circuito .
El conjunto de problemas que se presentan en este Capítulo, tanto los resueltos como los
de solución resumida barren completamente los diferentes pasos del proceso . Además, se de-
dica especial atención al primer paso del proceso de diseño por ser el menos sistemático y, por
tanto, el más complejo de realizar .
PROBLEMAS RESUELTOS
Problema 1 .- Se tiene una palabra de 5 bits : los cuatro últimos bits representan un dígito
BCD; el primero es un bit de paridad impar . Obtenga la tabla de verdad (o el K-mapa) de las
funciones siguientes:
1) f, se hará "1 "para valores de entrada que no correspondan con dígitos BCD .
2) f2 se hará "1 »para palabras con paridad incorrecta .
abc abc
000 001 011 010 110 111 101 100 d 000 001 011 010 110 111 101 100
00 0 1 0 0 1 0 0 00 1 0 1 0 1 0
01 0 0 1 0 0 1 0 0 01 0 1 0 1 0 1 0 1
11 0 0 1 1 1 1 0 0 11 1 0 1 0 1 0 1 0
10 0 0 1 1 1 1 0 0 10 0 1 0 1 0 1 0 1
f, f2
PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
54
Problema 2.- Las normas de seguridad de los modernos aviones exigen que, para señales
de vital importancia para la seguridad del aparato, los circuitos deben estar triplicados para
que el fallo de uno de ellos no produzca una catástrofe . En caso de que los tres circuitos no
produzcan la misma salida, ésta se escogerá mediante votación . Diseñe el circuito "votador"
que ha de utilizarse para obtener como resultado el valor mayoritario de las tres entradas .
abc f
000 0
001 0
010 0 00 01 11 10
c
011 1
100 0 0 rol
101 1 1 ríaECó'i~
110 1
111 1 B C
En el mapa de Karnaugh seleccionamos las implicantes de la función, A, B y C y reali-
zamos un cubrimiento óptimo :
f = A+B+C = ab+bc+ac
Un circuito hecho sólo con puertas NAND es el siguiente :
Problema 3.- Se pretende diseñar un circuito combinacional que tenga como entrada un dígi-
to BCD natural y como salida la parte entera del cociente de su división por tres . Se pide :
a) expresar las funciones mínimas de salida como suma de productos y como productos
de sumas;
b) obtener el circuito correspondiente a la mínima de estas expresiones, realizado con
un solo tipo de puertas .
Solución P3.- La salida es un número, N, igual a la parte entera de dividir un dígito BCD
por 3 : N=Ent .[N2 BCD/3] . El mayor dígito BCD es 9, por tanto el mayor valor de N será 3,
mientras que el menor valor será 0 . Representaremos a N por dos bits : z1z0 = N(2 .
La entrada es el dígito BCD que está formado por 4 dígitos binarios : x3x2x1xo .
Teniendo en cuenta esto, podemos formar la tabla de verdad y, a partir de ella, el mapa
de Karnaugh de cada una de las funciones de salida sabiendo que las celdas que no correspon-
den a dígitos BCD (celdas 101- y 11--) son inespecificaciones (d) para las funciones :
A H
x3x2x 1 x0 N z 1 zp
0000 0 0 0 3 2 3x2
0 0 00 01' 11 10 00 01 11 10
0001 0 x lxo x 1 x0
0010 0 0 0
0011 1 0 1
00
01
1
1
a_~d ~l
00
01
0100 1 0 1
0101
0110
1
2
0
1
1
0
11
10
riii d I E 11
10
0111 2 1 0 IN L1
1000 2 1 0
1001 3 1 1 B4 ~ G
z1 ZO
El coste sp y ps de zo es el mismo, por lo que da igual realizarla sólo con NAND o sólo
con NOR . (En la realización mínima de z o la celda 15 es tomada como 1 para zo sp y como 0
para z ops ; no se trata de un error sino del uso más conveniente para esa inespecificación) . Por
otra parte, el coste de z1 en sp es menor que en ps por lo que la realizaremos con NAND :
x3
xo
2
X2
1 X1
x
x2
X1
Xo
ab
c\ 00 01 11 10
00 0 1 0 1
01 1 0 0 0
11 0 0 0 0
10 1 0 0 0
f
La expresión mínima en forma sp es la siguiente :
b
_1
a
b
Problema 5.- Diseñe un circuito combinacional que acepte un número de tres bits y genere
un número binario de salida igual al cuadrado del número de entrada .
Solución P5.- Con tres bits, a b y c, se representan desde el 000-0 hasta el 111-7 . En la salida
debe aparecer el cuadrado de la entrada :
abc- N . Dec . 000-0 001-1 010-2 011-3 100-4 101-5 110-6 111-7
(abc) 2 0 1 4 9 16 25 36 49
DISEÑO DE CIRCUITOS COMBINACIONALES 57
abc- N . Dec . 000-0 001-1 010-2 011-3 100-4 101-5 110-6 111-7
Z5Z4Z3z2z 000000 000001 000100 001001 010000 011001 100100 110001
De esta tabla se obtiene un mapa de Karnaugh para cada salida y, de él, una expresión
de las mismas :
00 01 11 10
í1\ 0
0 0 0 0
0 0 1 0
U
z 5 = ab z 4 = ac+ ab z 3= ábc+ abc
00 01 11 10
z2 = bc C
0 0 0 0
z1= 0 N
1 o 0 0 0
11,1 Oa >
Problema 6.- El horario laboral de una factoría es de 8 horas diarias, divididas en tres turnos :
de 8 a 11 (primer turno), de 11 a 13 (segundo turno), de 13 a 16 (descanso) y de 16 a 19 (ter-
cer turno) .
Se pretende diseñar un circuito que tenga como entradas la representación binaria
de la hora actual menos ocho y que proporcione a la salida el número de turno que está tra-
bajando (si procede) o "0" si es hora de descanso . Se pide :
a) Expresar las funciones mínimas de salida como suma de productos y como pro-
ducto de sumas .
b) Obtener las expresiones correspondientes a cada una de las anteriores funciones
realizadas con un solo tipo de puertas.
A partir de esta tabla se construyen los mapas de Karnaugh y de ellos se obtienen las
siguientes expresiones de las salidas, en forma sp y ps :
~ÍLr ~1
~ V1
-J
z 1 =a+bcd+bcd z 1 = ( a + b + c)(a + c +d)(d+ b) z0=bc+bd zp=b(c+d)
Solución P7 .- Para hacerlo exclusivamente con puertas NOR obtendremos las expresiones ps
de las tres salidas, M, 1 y m .
Del enunciado se obtienen directamente los mapas de Karnaugh de cada una de las fun-
ciones :
00 01 11 10 00 01 11 10
1
Crac=~!~1
or!~~~J
I/IV 00
LES a EN
morra
VOL:J
r-
Za- 90 0
Dula=
a ar`v~i
M I m
M = (a i +ao) (a 1 +b o ) (a 1 +E 1 ) (b 1 +ao) (bi+bo)
m = (b i +b o ) (b i +a o) (b 1 +a 1 ) (a l +bo) (a i +a o )
I =(a l +i) (á 1 +b 1 ) (ao+b0) (áo+b o )
Problema 8.- Se ha diseñado una puerta de tres entradas llamada bomba (cuyas caracterís-
ticas se muestran) con un resultado desafortunado . Experimentalmente se encuentra que las
combinaciones de entrada 101 y 010 hacen explotar la puerta . Determine si hay que inutilizar
las puertas o, por el contrario, pueden ser modificadas externamente (añadiendo un circuito)
de forma que sea funcionalmente completa y que sin embargo no explote .
ABC
1 11
BOMBA
BOMBA(A,B,C) BOMBA(A,B,C)
Solución P8.- Debemos conseguir que el circuito no explote en ninguna combinación de en-
trada de forma que no cambiemos la función de salida . Para ello vamos a añadir un circuito
con 3 entradas (a, b, c) y tres salidas (A, B, C) de manera que BOMBA(a,b,c) = BOMBA
(A,B,C) según la tabla del enunciado :
Las salidas ABC=101 y 010 deben ser evitadas para que no explote el circuito . Como
BOMBA(0,1,0) = 1, podemos hacer que para abc=010 las salidas ABC sean cualquiera de las
que dan 1 en la salida del circuito BOMBA . Esto es, ABC= 000, 011, 100 . Como
BOMBA(1,0,1)= 0, podemos hacer que para abc=101 las salidas del circuito sean cualquiera
de las que dan 0 en la salida del circuito BOMBA . Esto es, ABC= 001, 110, 111 .
Con el fin de no producir más cambios, para cualquier otra combinación de abc, hare-
mos ABC=abc .
Tenemos que hacer dos elecciones, una para abc=010 y otra para abc=101 . Una buena
solución es la que implica menos cambios en las señales :
abc = 0l0 -* ABC = 000
abc = 101 - ABC = 111
Con estas elecciones la única señal que cambia es B mientras que A y C cumplen A=a
y C=c .
Del mapa de Karnaugh se obtiene una expresión de B en función de a, b y c :
sal J
al'l~~L 1
B=ab+ac+bc
Problema 9.- Utilizando el mapa de Karnaugh, determine las expresiones mínimas en suma
de productos y producto de sumas de las siguientes funciones :
Solución P9 .
a)
z xy 00 01 11
01
a
C4:110.
ORO
00
1
nono
jlezOC
11
non 1
©© e
10
rol Enn
ro
f=(x+y+ z) (x+z+ u) (x+z+u)
f=yzu+xyz+xzu+xyz+xu
(y + z + u) (x + y + z + u)
b)
z xy 00 01 11
01
dan o
z xy
0
00 01 11
uo 01 Lle
01a
11
10
0 n0 11 nl , 111
n01» 10
f=xzu+xyz+xyz+xzú f=(y+u)(x+y+z)(x+z+u)
(x+z+ ú) (x+y+z)
DISEÑO DE CIRCUITOS COMBINACIONALES 61
Problema 10.- Simplifique f = E(1, 2, 7, 8, 19, 20, 25) + d(10, 11, 12, 13, 14, 15, 26, 27, 28)
Solución P10 .
abc
d 110 111 101 100
00 J 0 C 17 0
f=abe+abcde+ácde+
01 1 - 0 0 0 0 +acde+acde+abce+acde
11 0 G 0 0
10 CE I- - -
Problema 11 .- Razone si una OR de dos entradas con inhibición puede ser funcionalmente
completa si disponemos del "0" y del "1 ". Las variables se encuentran en único raíl . Implemen-
te f=m 1 +m3+m 4+m 6 usando este tipo de puertas .
.A -1 A+B
?1 AB
Problema 12.- Un circuito que realiza la función z(a, b, c) está compuesto de dos subcircuitos
(ver figura) . La combinación de entradas abc=001 nunca ocurre . La tabla de verdad del sub-
circuito N, es la mostrada . ¿ Es posible cambiar algunos valores de u, v, x a inespecificacio-
nes sin modificar z(a, b, c)?. Si es así, indique todos ellos y realice un buen diseño de N 1 con
puertas NOR tras obtener todos los valores inespecificados .
Solución P12 .-Llamemos P ala salida de la puerta EXOR : P = v O+ x . Busquemos las posi-
bles inespecificaciones de u, v y x, de forma que no se modifique la función z, la cual toma el
siguiente valor : z = P u . De esta manera :
1) Si u=0, entonces z=0 independientemente del valor de P . De aquí que P pueda estar
inespecificado para u=0 .
2) Si P = 0, entonces z=0 independientemente del valor de u .
3) Si u=P=1, entonces z=1 .
Por otra parte, P = v O+ x , de forma que : P=0 si v=x ; P=1 si v=x .
Las inespecificaciones pueden ocurrir en los siguientes casos :
a) Valores de entrada que nunca pueden ocurrir . En este caso en el enunciado del pro-
blema se dice que la combinación de entrada abc = 001 nunca ocurre . Por tanto para esta com-
binación de entrada u, v, x = d, d, d, siendo d inespecificación .
b) Valores de entrada para los que u=0 . En este caso P puede tomar cualquier valor, de
forma que v y x pueden ser inespecificaciones . Así, para abc = 0 0 0, 0 1 1, 1 1 0, u = 0 y
v,x=d,d .
c) Valores de entrada que hacen P=O . Esto es, valores para los que v=x . En este caso u
es inespecificación . Así, para abc = 010, 101, v=x y por tanto, u= d .
La tabla de verdad considerando las inespecificaciones sería la siguiente :
abc uvx
0 0 0 0 d d
0 0 1 d d d
0 1 0 d 1 1
011 Odd
1 0 0 1 1 0
10 1 d l l
110 Odd
1 1 1 1 0 1
DISEÑO DE CIRCUITOS COMBINACIONALES 63
Para diseñar el circuito N 1 con puertas NOR vamos a construir los mapas de Karnaugh
y obtener las expresiones mínimas ps :
arv~o
uo omaMal- 0111
u= a(b + c) v= a+ b x=á+c
>1 >1
>1 >1
>1
>_1
Problema 13.- En la tabla representada aparecen todas las implicantes primas y todos los
mintérminos de una función f(a,b,c,d) que también tiene inespecificaciones . Determine cuáles
son los mintérminos (m, m) e implicantes (A, B) desconocidos, así como todas las inespecifi-
caciones de la función .
3 5 7 8 12 m m'
ad X X X
ac X
bc X X
cd X X
A X X
B X
Solución P13 .- La resolución del problema puede efectuarse utilizando una representación de
la información que aporta la tabla del enunciado sobre un mapa de Karnaugh . En esta tabla
aparecen expresiones de todas las implicantes primas menos dos (A y B) de la función y todos
los mintérminos menos dos (m y m') . En el siguiente mapa se muestra la información de par-
tida acerca de la función :
u®=
-u
=amo
Ramo f
Implicante a d : Vale 1 cuando a = 1 y d = 0 . Son las posiciones 8, 10, 12 y 14 sobre un
mapa de Karnaugh . 8 y 12 son mintérminos de f . Como esta implicante cubre a m' este min-
término solo puede ser ó el 10 ó el 14 . El que no sea m' será una inespecificación, d .
Implicante ac : Vale 1 cuando a = 1 y c = 1 . Son las posiciones 10, 11, 14 y 15 sobre un
mapa de Karnaugh . Esta implicante sólo cubre a un mintérmino de f, m', por lo que posee tres
inespecificaciones . De la implicante anterior se sabe que m' o es el mintérmino 10 ó el 14 . De
esta forma las posiciones 11 y 15 del mapa son inespecificaciones, d .
Implicante Ec : Vale 1 cuando b = 0 y c = 1 . Son las posiciones 2, 3, 10 y 11 sobre un
mapa de Karnaugh . Esta implicante solo cubre al mintérmino 3 y al m . La posición 11 ya sa-
bemos que es inespecificación por lo que m sólo pueden ser la posición 2 o la 10 . Ahora bien
de las anteriores implicantes sabemos que la posición 10 es m' o inespecificación . Esta impli-
cante no cubre a m' por lo que la posición 10 no puede ser el mintérmino m', sino inespecifi-
cación . Por tanto el mintérmino m es el mintérmino 2 y el mintérmino m' es el mintérmino 14 .
Implicante c d : Vale 1 cuando c = 1 y d = 1 . Son las posiciones 3, 7, 11 y 15 sobre el
mapa de Karnaugh . 3 y 7 son mintérminos de f y 11 y 15 ya sabemos que son inespecificacio-
nes por lo que esta implicante no aporta más información .
Con lo que hemos obtenido hasta ahora, el mapa de karnaugh de la función f queda de
la siguiente manera :
b
d 00 01 11 10
00
..01a
01
11
.a- .
vpvR
10
=a .1 f
Cualquier otra posibilidad para A daría lugar a que alguna de las implicantes que ya co-
nocemos, no fuese prima y sabemos que sí lo son . Teniendo en cuenta que en la primera co-
lumna del mapa de Karnaugh, posiciones 0, 1, 3 y 2 todas son inespecificaciones o mintérmi-
nos menos el 1 y que no existe ninguna implicante prima que los cubra a todos (la implicante
B no posee al mintérmino m = 2) la posición 1 tiene que ser un maxtérmino . Al igual le ocurre
a las posiciones 13, 6, 9 y 4 que son maxtérminos .
Implicante B : cubre a los mintérminos 5 y 7 . Las casillas adyacentes a 5 y 7 son max-
términos (1, 6, 4, 13) por lo que B es la implicante prima que asocia exclusivamente a los min-
términos 5 y 7 . La expresión de B es ábd .
Resumiendo, el mapa de Karnaugh de f queda de la siguiente manera :
ab
m=2
c\ 00 01 11 10
00 d 0 1 m` = 14
01 0 1 0 0
A=bd
11 1 1 d d
10 1 0 1 d B=ábd
Problema 14.- El circuito de la figura ha sido diseñado para comparar las magnitudes de dos
números binarios de dos bits a 2 a l y b2 b 1 . Si z=1 e y=0, a 2 a l es el mayor. Si z=0 e y=1, b 2
b 1 es el mayor. Si z=y=0, los dos números son iguales . Sin embargo el circuito propuesto no
cumple las especificaciones solicitadas . Compruebe este hecho y modifique el diseño para
que sea correcto .
- z
a2
b
a,
00 00 10 00 00 00 00 10 10 10
01 01 00 00 00 01 01 00 10 10
11 00 00 00 01 11 01 01 00 01
zy
10 00 00 10 00 10 01 01 10 00 zy
Se observa que (zy)cir # (zy)func . En particular las diferencias están en que tanto z como
y tienen 4 mintérminos más en la función especificada que en el circuito suministrado en las
siguientes posiciones :
-- r
---DJ ----
----
---- r a-.
al a-
----
EN
z a 2b2 y
Así, las funciones correctas serán :
Z zc„ + a2b2
Y = Yc„ + a2b2
La reforma del circuito consistirá en añadir dos puertas OR para hacer las sumas ya que
los términos productos ya están en el circuito :
L >1
Zfunc
C
>_1
a2 -a C
Ycir >1
- Yfunc
bl
al
Problema 15.- Las funciones del circuito de la figura dependen, en general, de las variables
(w,x,y,z) . Sabiendo que f = E (0, 4, 9, 10, 11, 12):
a)Determine completamente las funciones f2 :# 0 y f3 :# 0 (incluyendo
inespecificaciones) .
b)Realice los circuitos que proporcionan f2 y f3.
----------------
w
x f
z
-s f
f
f
---------------
Solución P15 .
a) Analizando el circuito de la figura se obtiene que f = H + f 3 , siendo H la salida de la
puerta AND . De aquí se deriva que los maxtérminos de f son maxtérminos de H y de f 3 , mien-
tras que los mintérminos de f son mintérminos de H ó de f3 . Por tanto, los mapas de Karnaugh
de H y f 3 tienen los siguientes maxtérminos :
wx wx wx
00 01 11 10 00 01 11 10 00 01 11 10
Y\ Y\ \
y
00 1 1 1 0 00 0 00 0
01 0 0 0 1 01 0 0 0 01 0 0 0
11 0 0 0 1 11 0 0 0 11 0 0 0
10 0 0 0 1 10 0 0 0 10 0 0 0
f H f3
Por otra parte, H = f 1 f2 = (x0 z)f2 . De aquí que los mintérminos de H son mintérminos
de f 1 y de f2 , mientras que los maxtérminos de H son maxtérminos de f 1 ó de f2 .
Como f 1 es conocida, a partir de ella y de H se obtiene parte del mapa de f 2 :
wx
f2 está inespecificada
en aquellas celdas en las
queH=Oyf 1 = 0 . ----
Por otra parte, f2 = 0 en
celdas en las que H = 0 ---
yf i =1 . ---
- -
wx
00 01 11 10
Y\
=amo 00 1 0
000 01 0 0 0
000 11 0 0 0 1 f3
0 0 10 0 0 0 1
wx wx
00 01 11 10
Yz
00_1 00 0
000 01 0
n
000 = wY 11 0 0 0
f3=wyz+wxy
0 0 10 0 0 0 111
Problema 16.- En la figura se representa una función de 4 variables incompletamente espe-
cificada . Asigne valores a las inespecificaciones para conseguir especificar completamente la
función de la forma que se indica en cada uno de los casos siguientes :
ab
cd 00 01 11 10
00 1 d d d
01 d d 0 0
11 0 d 0 0
z
10 d d 0 1
Solución P16 .
a) Teniendo en cuenta que hay dos mintérminos en esquinas opuestas, para lograr que z
dependa sólo de dos variables, las inespecificaciones de las otras esquinas deben sustituirse por
ab
cd 00 01 11 10
00 1 1
z=bd
01 0 0 0 0
11 0 0 0 0
10 1 0 0 1
b) Para que no haya implicantes superiores, no puede haber dos mintérminos adyacen-
tes. El mapa quedaría de la siguiente manera :
ab
cd 00 01 11 10
00 1 0 1 0
01 0 1 0 0
11 0 0 0 0
10 0 0 1
ab Implicante
00 01 11 10 prima
cd no esencial
00 1) 1 0 H-
01 1 1 0 0
11 0 0 0 0
10 0 0 0
r
70 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
e) En el siguiente mapa existen dos implicantes primas y dos implicadas primas (impli-
cada como agrupación de maxtérminos) :
J v~a -ú
u
w~w
I
Solución P17.
a) Para realizar la función con puertas NAND vamos a obtener la expresión mínima en
forma de suma de productos (sp) que nos da una forma directa de implementarla en dos niveles
de puertas NAND .
Para obtener la expresión mínima vamos a aplicar el método de Quine-McCluskey . Este
método parte de la expresión suma de mintérminos de la función . En primer lugar, obtenemos
esa expresión a partir de la que nos dan . Para ello construimos el mapa de Karnaugh :
00 0 1 1 0 0 0 0
01 0 0 1 1 1 1 1 1
11 0 0 0 1 1 0 1 1
10 0 1 0 0 0 0 1 0
f = 1 (4,6,9,11,12,13,17,19,21,22,23,25,27,29)
Una vez con la expresión suma de mintérminos, el método consta de dos partes :
1) Obtención de las implicantes primas .
El procedimiento de obtención de las implicantes primas consta de los siguientes pasos :
1) Listar todos los mintérminos por su índice (número de unos del código
asociado a cada mintérmino) .
2) Comparar cada mintérmino de índice j (empezando por j=0) con cada
mintérmino de índice j+l . En el caso de ser adyacentes :
a) Formar una nueva pareja con ambos mintérminos e incluirla en una
nueva lista, dentro del grupo de índice j . (Cada pareja es una impli-
cante) .
b) Marcar ambos mintérminos .
DISEÑO DE CIRCUITOS COMBINACIONALES 71
3) Una vez comparados todos los mintérminos, proceder con la nueva lista
(la de implicantes) de forma similar al punto 2 . Esto es, comparar cada im-
plicante de índice j con cada implicante de índice j+l . En caso de ser adya-
centes, formar la nueva implicante que cubre a las implicantes anteriores y
añadirla a una nueva lista . Además, marcar las implicantes agrupadas .
4) Una vez comparadas todas las implicantes de todas las listas generadas,
son implicantes primas todas aquellas que están sin marcar al final del pro-
ceso .
El desarrollo de estos pasos, en este caso, es el siguiente :
(4,6)-2 J
(4,12)-8 1 (9,11,25,27)-2,16 E
índice 1 4< (9,13,25,29)-4,16 D
(6,22)-16 H (17,19,21,23)-2,4 C
6< (9,1l)-2< (17,19,25,27)-2,8 B
índice 2 9< (9,13)-4< (17,21,25,29)-4,8 A
12< (9,25)-16<
17< (12,13)-1 G Expresión de cada implicante
(17,19)-2<
11< a b c d e
(17,21)-4<
índice 3 13<
(1 7,25)-8< A 1--01 ad
19<
21< B 1-0-1 a e e
(11,27)-l6<
22< (13,29)-16< C lo— 1 abe
25< (1 9,23)-4< D -1-01 bde
(19,27)-8< E -10-1
23< b e e
(21,23)-2<
índice 4 27< F 1011- abcd
(21,29)-8<
29< G 0110- abcd
(22,23)-1 F
(25,27)-2< H -0110 bcd-e
(25,29)-4< 1 0- 100 acde
J 001-0 asee
6 9 11 12 17 13 :19 21 22 23 25 27 29
A ~{ t{ X
. . .. ... . . . . . . . . . ... . . . . . . . . . . .. . . . . . . . . . . . . . .... x X . . . . . . . .... . ... . X . . . . x ....... .. ..
C... . ..... . .. . . . . . . . . . .... . . . . . . . . .. . .. . . . . . . . . . . . .. .. . . . . . . . . . . . . . ..... . . . . . . . .l. .x . . . . . . . .. . . . . . . . . . . .... . .. . . . . ,. A
.
D X t{ X
E X X X
F X X
G X X
H X X
I X X
'
J X
4 6 12 13 22 29
A ; ;~ . .
. . . . . . . . . . .. .. . . . . . . . . . . . ..... . . . . . . . . . . . . . . . . .
0 0 S
-. . . . 0 .
F
. . . .. . . . . . . . . . . . . .. V. . . . . c.... . . . . . . .. . . . . . . .. . . . . . . . . .
1 Í
I X
Problema 18.- Florencio va a ir a una fiesta esta noche, pero no solo . Tiene cuatro nombres
en su agenda : Ana, Bea, Carmen y Diana . Puede invitar a más de una chica pero no a las
cuatro . Para no romper corazones, ha establecido las siguientes normas :
- Si invita a Bea, debe invitar también a Carmen .
- Si invita a Ana y a Carmen, deberá también invitar a Bea o a Diana .
- Si invita a Carmen o a Diana, o no invita a Ana, deberá invitar también a Bea .
Antes de llamarlas por teléfono, quiere utilizar un circuito que le indique cuándo una
elección no es correcta . Ayúdele a diseñar el circuito óptimo en dos niveles con puertas
NAND . (Utilice el método de Quine-McCluskey) .
CX = 1 si no se cumple la condición .
CX = 0 si se cumple la condición .
La condición C 1 se incumple en el caso de que no vaya ninguna chica, esto es, en el caso
de que A=0 B=0 C=0 y D=0 . En este caso C 1 =1 . El término producto asociado a esta condición
es el mintérmino 0 : C 1 =A B C D .
La condición C2 se incumple en el caso de que vayan todas las chicas, esto es, en el caso
de que A=1 B=1 C=1 y D=1 . En este caso C 2=1 . El término producto asociado a esta condición
es el mintérmino 15 : C 2=A B C D .
La condición C3 se incumple en el caso de que vaya B y no vaya C . Esto es, si B=1 y
C=0 . En este caso C3=1 . El término producto asociado a esta condición es : C3=B C .
La condición C4 se incumple en el caso de que vayan A y C y no vayan ni B ni D . Esto
es, si A=1 C=1 B=0 y D=0 . En este caso C4=1 . El término producto asociado a esta condición
es : C4=A C B D.
La condición C 5 se incumple en el caso de que vayan C o D o no vaya A y no vaya B .
Esto es, si (C=1 ó D=1 ó A=0) y B=O . En este caso C 5 =1 . El término asociado a esta condición
es : C 5 = (C+D+A)B= A B+ B C+ B D .
De esta forma se obtiene que F=ABCD+ABCD+BC+ACBD+AB+BC+BD
En forma de suma de mintérminos queda : F = E (0,1,2,3,4,5,9,10,11,12,13,15)
A continuación, vamos a obtener una expresión óptima de F mediante el método de
Quine-McCluskey que consta de dos partes .
1) Obtención de las implicantes primas . En nuestro caso, se obtiene :
Mintérminos listados Implicantes de Implicantes de
por su índice dos míntérminos cuatro míntérminos
(0,1,2,3)-2,1 11
0< (0,1)-1< (0,1,4,5)-4,1 12
índice 0
(0,2)-2<
1< (0,4)-2< (1,3,9,11)-8,2 13
2< (1,5,9,13)-8,4 14
índice 1 (1,3)-2<
4< (2,3,10,11)-8,1 15
(1,5)-4< (4,5,12,13)-8,1 16
3< (1,9)-8<
5< (2,3)-1< (9,11,13,15)-4,2 17
índice 2 9< (2,10)-8<
10< (4,5)-1 <
12< (4,12)-8<
Expresión de cada implicante
ABCD
índice 3 11 < (3,11)-8<
11 00-- ÁB
13< (5,13)-8<
(9,11)-2< 12 0-0- AC
índice 4 15< (9,13)-4< 13 -0-1 BD
(10,11)-1< 14 --01 CD
(12,13)-1<
15 -01- BC
(11,15)-4< 16 -10- BC
(13,15)-2<
17 1--1 AD
I I) Cubrimiento mínimo
Construimos la tabla de implicantes :
0 1 2 3 4 5 9 10 11 12 13 15
A X X X X
B X X X X
C X X X
D X X X X
E . . ... . :
. . . . .
k. . .
.-
. .... L
. . . . . K . . . . ..x
- -----
a
F . . . . . . . . . . . . .
o
. . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . .;
.... . . . . . . . .
.....
... . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . -. . . .i . . .....
1 0 1
X
B X X
. . . .e
...... ....
AB
Por tanto : F = IE+IF+IG+ IA = BC+BC+AD+
IB AC
x xx D
xE
x x F
x G
x X x H
La empresa quiere construir almacenes de forma que cada pueblo, o bien tenga un
almacén o bien un pueblo vecino lo tenga .
76 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
A B C D E F G H
a X X X X
b X X X X
c X X X X X
d X X X X X
e X X X
f X X X X
g X X X
h X X
A B E F G
a X X X
b X X
c X X
d X X X
e X X
f X X X
g X
X X
DISEÑO DE CIRCUITOS COMBINACIONALES 77
a X X
b X X
c X X
d X X
f X
g X
h X
Además de e se necesitan al menos dos más (por ejemplo : a y c ó b y g) . En total tres,
con lo que no son soluciones mínimas .
3.- Eligiendo f: Eliminamos las filas que cubre f: A, E y F quedando la siguiente tabla :
B G
a X
b X
c X X
d X
g X
h
Con c se cubre el resto de la tabla . Así pues con f y c se cubre todas las columnas .
Existen por tanto dos soluciones mínimas : Poner almacenes en los pueblos D y H ó
ponerlos en los pueblos C y F .
Existe otra forma de resolver la tabla de cubrimiento, aplicando el método de Petrick .
Este es un método que consiste en lo siguiente :
1 .- Se forma la función de Petrick como expresión producto de sumas, donde cada tér-
mino suma corresponde a las formas de cubrir una columna mediante filas . P.ej ., A se cubre
con (a+b+d+f) :
P = (a+b+d+f)(a+b+c+d)(b+c+d+g+h)(a+b+d+e)(d+e+f)(a+e+f+h)(c+g+h)(c+f+g+h) .
2 .- Se obtiene la función de Petrick como suma de productos . El cubrimiento mínimo se
obtiene con las filas que aparecen en los términos producto con menor número de literales :
P = cf+dh+acd+ace+ (el resto de términos producto tiene 3 o más literales) .
Por tanto, las soluciones mínimas son construir en C y F ó en D y H .
b) Si en A y G se colocan almacenes están cubiertos todos los pueblos vecinos de A y
G junto con ellos . Se pueden eliminar de la tabla de cubrimiento inicial . Al eliminar estos pue-
blos la tabla queda como sigue :
1 E
d X
e X
Hay, pues, tres soluciones mínimas en esta caso son : { A,G,E }, { A,G,D } y { A,G,F } .
Problema 20.- Diseñe, con el menor número posible de puertas, un divisor por 2 de un dígito
BCD . Dé el resultado con una cifra decimal (también en BCD) .
Solución P20 .-Debemos diseñar un circuito con 4 señales de entrada representando un dígito
BCD y que genere a la salida el resultado de dividir ese dígito por 2 . El resultado deberá tener
una cifra decimal y estará representado en BCD . Por tanto la salida tendrá 8 señales : z3 z 2z 1 _
z0 .u3u2u1u0, donde z3z2z1z0 representa el dígito BCD de la parte entera de la división y
u3u2u1u0 el dígito BCD de la parte fraccionaria .
La tabla de verdad del circuito es la siguiente :
ENTRADAS SALIDAS
N a b c d N/2 z3z2z1z0 .u3u2u1u0
0 0 0 0 0 0 .0 0 0 0 0 .0 0 0 0
1 0 0 0 1 0 .5 0 0 0 0 .0 1 0 1
2 0 0 1 0 1 .0 0 0 0 1. 0 0 0 0
3 0 0 1 1 1 .5 0 0 0 1 .0 1 0 1
4 0 1 0 0 2 .0 0 0 1 0 .0 0 0 0
5 0101 2 .5 0010 .0101
6 0 1 1 0 3 .0 0 0 1 1 .0 0 0 0
7 01 1 1 3 .5 001 1 .0101
8 1 0 0 0 4 .0 0 1 0 0 .0 0 0 0
9 1001 4 .5 0100 .0101
De la tabla de verdad se obtiene una expresión para cada salida sin más que comparar
las columnas de cada salida con las columnas de las entradas . Así se tiene :
z3=0,z2=a,z1=b, z0=c,u3=0,u2=d,u1=0,up=d .
DISEÑO DE CIRCUITOS COMBINACIONALES 79
Problema 21 .- Una cierta puerta de cuatro entradas llamada LIMON realiza la función
siguiente:
L IMON(A, B, C, D)=BC(A+D)
Suponiendo entradas en doble raíl:
a) Realice la función:
f (v, x, y, z) = E (0, 1, 6, 9, 10, 11, 14, 15)
con sólo tres LIMON y una OR .
b) ¿ Puede realizarse cualquier función en lógica LIMON/OR? .
n
090 f = vy + v x y + v x z + xyz (1)
x y z (2)
f
Tenemos dos opciones para f, (1) y (2) . Como sólo disponemos de tres puertas LIMON
y la función f tiene 4 términos productos, debemos usar una puerta LIMON para implementar
dos de los 4 términos productos . Para ellos necesitamos dos términos productos que compartan
dos variables . Esto es posible en la opción (2), con los términos productos v x y y x y z. La
suma de estos términos productos la podemos implementar con la siguiente puerta LIMON :
LIMON (v,x,y,z) = v x y + x y z = L 1
Los otros dos términos productos los implementamos cada uno de ellos con una puerta
LIMON de la siguiente manera :
LIMON (l ,v,y,1) = v y = L 2.
LIMON (v,x,z,0) =v x z = L3.
Por tanto :
f= L, +L2 +L3
b) Con la puerta LIMON podemos implementar términos productos de hasta tres varia-
bles . Para implementar un término producto de más de tres variables necesitamos más de una
puerta LIMON pero es posible implementarlo . Por tanto sí es posible implementar cualquier
función utilizando exclusivamente puertas 'LIMON (con tantos niveles como se necesiten) y
puertas OR.
80 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
Problema 22.- Se desea enviar mensajes de tres bits de una estación a otra y, para evitar en
lo posible los errores, se ha decidido añadirle al mensaje un bit de paridad impar . Disponiendo
únicamente de puertas EXOR y NO-EXOR de dos entradas :
a) Diseñe el circuito que genere ese bit de paridad impar en la estación emisora .
b) Diseñe también el circuito que compruebe en la estación receptora que el mensaje
recibido es correcto.
c) Generalice ambos apartados para n bits.
Solución P22 .
a) El enunciado nos pide diseñar un circuito que genere un bit de paridad impar a un có-
digo de 3bits :
b
P = 0 si el n°- de "1"
en abc es impar
CIRCUITO P = 1 si el n2 de "I"
COMBINACIONAL p en abc es par
b) El enunciado nos pide diseñar un circuito que detecte un error de paridad impar en un
código de 4 bits :
b
E = 0 si el n4 de "1"
en abcP es impar
CIRCUITO E = 1 si el n °- de "1"
E en abcP es par
COMBINACIONAL
o- E
Solución P23 .- Para 4 bits de entrada existen 4 bits de salida cuyas expresiones y el circuito
final son las siguientes :
A2 Ao
Co = Ao
?1 >1
C 1 =A o +OA 1
C2 = (Ao+A1) OA2
C3 = ( Ao+A 1 +A 2 ) +OA 3
C3 C2 C1 Co
A 3 A2 Al Ao C 3 C 2 C 1 C o
0 0 0 0 0 0 0 0
0 0 0 1 1 1 1 1
0 0 1 0 1 1 1 0
0 0 1 1 1 1 0 1
0 1 0 0 1 1 0 0
0 1 0 1 1 0 1 1
0 1 1 0 1 0 1 0
C 3 - o= Ca 2 (A3-o)
0 1 1 1 1 0 0 1
1 0 0 0 1 0 0 0
1 0 0 1 0 1 1 1
1 0 1 0 0 1 1 0
1 0 1 1 0 1 0 1
1 1 0 0 0 1 0 0
1 1 0 1 0 0 1 1
1 1 1 0 0 0 1 0
1 1 1 1 0 0 0 1
C3 c, Bo
A 11 A jo A9 A 8 A7 A6 A5 A4 A3 A2 Al Ao
A3 A2 Al Ao A3 A 2 Al Ao A3 A2 A1 Ao
Kout Kin Kout Kin Kout Kin 0
C3 C2 Cl CO C3 C2 Cl Co C3 C2 C1 Co
C11 C10 C9 C8 C7 C6 C5 C4 C3 C2 C1 Co
01 0 0 0 0 1 1 0 0
11 1 1 1 1 1 0 0 0
lo 0 0 0 0 0
Solución P24.-f=abe+abcd+acde+abde
Problema 25.- Diseñe de forma óptima, un circuito que genere la función f(a,b,c,d,e) y cuya
realización sea en dos niveles :
a) f = E ( 0, 1, 5, 6, 9) + d (10, 11, 12, 13, 14, 15) .
b) f = 1 ( 0, 2, 5, 7, 13, 15, 18, 26, 29, 31) + d(20, 24, 28) .
84 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
Solución P25 .
a)fsp =ábc+bcd+cd
fps =(á+d) (b+c) (c+d) (b+c+d)
b)fsp =ace+bce+atice+acde
fps =(c+ e) (c + e) (a + b + c) (a + d + e) (a+ b + e)
Problema 26.- Sea F una función de un dígito BCD y de una entrada de control X. F vale "1 "
en los siguientes casos :
1) Si X= 1 y el n° BCD es múltiplo de 3.
2) Si X=0 y el n° BCD tiene un n 2 impar de unos.
Implemente F como un circuito en dos niveles utilizando puertas NAND .
Solución P26 .- El mapa de Karnaugh y una expresión en forma sp (para implementar la fun-
ción en dos niveles NAND-NAND) son los siguientes :
Xab
d 000 001 011 010 110 111 101 100
00
01
Lp
R∎ Ei 0
11
C~ d,v f
10 1 o ~4\ d
f = Xábcd+Xbcd+Xbcd+Xbcd+Xad+Xad+Xbcd+Xbcd+Xábcd
Solución P27 .- Primero hay que analizarlo, para posteriormente buscar una expresión en suma
de productos :
f = xy+ (y+z) = x+y+yz = x+y(1 +z) = x+y = xy
DISEÑO DE CIRCUITOS COMBINACIONALES 85
Problema 28.- Diseñe un circuito cuya salida sea el resto de la división de un número A de
tres bits entre un número B de dos . El número B nunca puede ser cero .
Solución P28 .- El mapa de Karnaugh y las expresiones en forma sp para las dos salidas que
forman el "resto" de la división son los siguientes :
dd dd dd dd dd dd dd dd
00 00 00 00 00 00 00 00
r a ro
00 01 00 10 00 01 10 01
00 01 01 00 00 01 01 00
r o = ao b o +a 2 a,ao b 1 +a 2 a 1 a ob 1 +a 2 a,a o b l b o
Problema 29.- Un sistema sencillo para hacer votación secreta es utilizar un circuito combi-
nacional cuyas entradas estén controladas por interruptores que puedan accionar los miem-
bros del jurado . Cada miembro votará con un SÍ o un NO (no hay abstenciones) .
El sistema que queremos realizar es el siguiente . Hay dos tribunales : A y B. El tribunal
A tiene 4 miembros (a,b,c, y d) y el tribunal B tres (e,f, y g). El veredicto deberá ser..
- El del tribunal A en el caso de que no se produzca empate .
-4 Si se produce empate en el tribunal A, el veredicto será el del tribunal B .
Diseñe el circuito según el diagrama de bloques de la figura:
CIRCUITO A
CIRCUITO C
f CIRCUITO B
Del circuito B :
F 3 = 0 cuando gana NO en la votación del tribunal B .
F 3 = 1 cuando gana SÍ en la votación del tribunal B .
Del circuito C :
S = 0 cuando gana NO en la votación global .
S = 1 cuando gana SÍ en la votación global .
Los mapas de Karnaugh para cada una de las funciones y sus expresiones en forma sp
son los siguientes :
ab ab
cd\ 00 01 11 10 cd\ 00 01 11 10
00 0 0 1 0 00 0 0 d 0
01 0 1 0 1 01 0 d 1 d
11 1 0 0 0 11 d 1 1 1
10 0 1 0 1 10 0 d 1 d
F I = ábcd+ábcd+ábcd+ a b e d + a b c d + a b c d F2= a b + c d
u
aoo
F3 =ef+eg+fg S= F 1 F2 + F 1 F 3
El I_ P IC C
1 1 uLUL 1
Son 6 casos los que hay que representar por lo que se necesitan tres entradas : x, y, z :
REPRESENTACIONES x y z g
> 000 1
L 001 1
u
r 010 0
L
U > 011 1
g=y+z
C 100 1
L
C > 101 1
Problema 31 .- Una caja de seguridad dispone de 5 cerrojos (V,W,X,Y,Z) los cuales deben
ser desbloqueados para abrirla caja . Las llaves de la caja están distribuidas entre 5 ejecutivos
de la siguiente manera : A tiene llaves para los cerrojos V, X; B para V, Y; C para W, Y; D para
X, Z; E para V, ZZ
a) Determine todas las combinaciones mínimas de ejecutivos requeridos para abrir la
caja .
b) Determine el ejecutivo "esencial".
V X y z
A x x
B x x
C x x
D x x
E x x
Las combinaciones de ejecutivos mínimas que se obtienen con esta tabla de cubrimiento
son : (A, C, E } ( A, C, D ) { B, C, D } {C, D, E } . El ejecutivo "esencial" es el C .
Problema 32.- Dada una palabra "A" de n bits y una señal de control "C", diseñar un circuito
combinacional cuya salida sea el complemento a 1 (Ca 1) ó el complemento a 2 (Ca2), según
el valor de C . Utilice exclusivamente puertas EXOR y OR .
Si C = 0, B = Ca2(A)
Si C = 1, B = Cal (A)
n- A A
_1 An- ?l >1
=1
B n-1 -
Problema 33.- Una luz se enciende cuando su señal de excitación está en nivel bajo . Esta
señal está controlada por un circuito de cuatro entradas : x, ->orden de encender la luz, activa
en bajo ; x2 ->orden de inhibir la luz, activa en bajo ; x3 ->orden de emergencia, activa en bajo;
x4 ->aviso del estado de la luz en la calle : "1" si es de día, "0" si es de noche . La luz se debe
iluminar cuando haya orden de encenderla, el estado de la luz exterior sea el apropiado y no
haya inhibición, excepto si hay emergencia, en cuyo caso la luz se enciende independiente-
mente de las otras señales .
De una tabla de verdad del circuito que controla la luz diseñándolo con los elementos
que estime oportunos .
SUBSISTEMAS COMBINACIONALES
En este Capítulo se abordan los subsistemas combinacionales . Con este nombre se agrupa a
una gran diversidad de circuitos que, a nivel estructural son generalmente mucho más
complejos que las puertas estando integrados en al menos la escala MSI y cuya funcionalidad
va mucho más allá de las meras operaciones algebraicas . Una clasificación atendiendo a dicha
funcionalidad los divide en subsistemas de propósito específico y subsistemas de propósito
general . Los primeros realizan funciones fijas, mientras que los segundos realizan cualquier
función lógica mediante una "programación" interna o de sus entradas y salidas . Antes de
conocer uno a uno los dispositivos que componen ambos grupos, destacamos algunas
características comunes .
En cuanto a los tipos de entradas se pueden distinguir dos : las de control y las de datos .
Las primeras controlan la operación del dispositivo y suelen recibir nombres como el de señal
de habilitación (Enable) . Y las segundas corresponden a las variables independientes de las
funciones que desarrollan . Es importante destacar que en estos dispositivos, cada entrada de
dato suele poseer un peso asociado, de modo que las entradas no son intercambiables como
ocurría en las puertas . Respecto a las salidas, también existen las de control, que avisan de de-
terminadas situaciones o estados en el que se encuentra el dispositivo, y las de datos, que son
realmente las que dan respuesta al conjunto de entradas en cada instante .
Respecto a la actividad de las señales, estas pueden ser activas en bajo o en alto . Si por
ejemplo, nos referimos a la entrada de habilitación (EN), que sea activa en alta significa que
cuando ésta tenga el valor lógico 1 1 , el dispositivo realiza la función para la cual está diseñado,
y si está a 0, el dispositivo no está habilitado para desarrollar su función . En los circuitos de
esta obra, las señales activas en bajo se representan con un "círculo" (por ej ., las señales de
habilitación 1 y 2 del problema 6) y las que son en alto, sin él (por ej ., E 3 en el problema 6) .
Cuando un dispositivo no está habilitado, sus salidas estarán fijas a un valor determina-
do que, según su diseño, puede ser 0, 1 o un tercer estado de alta impedancia (HI) .
89
Decodificador :
Se trata de un dispositivo con n entradas y 2n salidas donde en función de la combinación bi-
naria de sus entradas, una y sólo una de las salidas se activa . Es decir, convierte un código bi-
nario de entrada en código "1-entre-n" . Su símbolo para el caso DEC 2 :4 con habilitación y
salidas activa en alta, su tabla de verdad y sus ecuaciones de cada salida se muestran a conti-
nuación :
EN
1 EN x1 xo do dl d2 d3
3 - d3 = x 1 .x o •EN
0 0 0 0 0
1 2- d 2 = x1 .xo •EN
1 - d1 = x 1 .x o•EN 1 0 0 1 0 0 0
o
0 - d o = x 1 .xo •EN 1 0 1 0 1 0 0
DEC 2 :4
1 1 0 0 0 1 0
1 1 1 0 0 0 1
DEC 2 :4 con salidas activas en alto
C3 C2 C1 Co Yl Yo
Y1= c3+c2
• 2 1 0 0 0
• 1 Y0= C3+c 1
Co 0 • 1 0 0
COD 4 :2 • 0 1 0
• 0 0 1
SUBSISTEMAS COMBINACIONALES 91
c3 c2 C 1 c0 Yi Yo
1
• 1
• 0 1
• 0 0 1
Convertidor de códigos :
Consiste en un subsistema combinacional que convierte un código de entrada en otro de salida .
El número de líneas de entrada y de salida depende de los códigos que se convierten . Los casos
particulares en los que uno de los códigos sea "1-entre-n" son los dispositivos antes vistos .
Comparador de magnitudes :
Es un dispositivo que compara las magnitudes de dos datos A y B de n bits, para dar como
resultado si A<B, A=B o A<B . El símbolo y la tabla son :
A>B Datos G E L
A -,>
n
A=B E A>B 1 0 0
A=B 0 1 0
B -2o( -A
A<B - L A<B 0 0 1
n
Multiplexor :
Un MUX-n o MUX 2" :1 es un dispositivo de 2" canales de entrada (datos), n entradas de se-
lección de canal y 1 salida . Su funcionalidad es dejar pasar hacia la salida la información que
entra por uno de sus canales de entrada, aquel que está seleccionado en función de la codifica-
ción binaria de las señales de selección . Un MUX-n es un módulo lógico universal de
n variables o de n+l variables si algunas de ellas está en doble raíl . El símbolo que se utilizará
en este Capítulo y su tabla de verdad son :
S i So F
Co
C1 0 0 Co
C2 F=C 0•S 1 •So+C 1 •S 1 •S o+C2 •S 1 •So +C3 •S 1 •S O
C3 0 1 C1
1 0 C2
1 1 C3
S I SO
Demultiplexor :
Realiza la función inversa al multiplexor . Un DEMUX-n o DEMUX 1 :2", posee una entrada
de dato, n entradas de selección y 2n líneas o canales de salida . Su función consiste en pasar la
información de entrada de dato a una de las líneas de salida, la determinada por la combinación
C 0= Din •S 1 •Sp S 1 So Co C1 C2 C3
C1= Din •S 1 •S o
Din 0 0 Din 0 0 0
C2= Din S, -«90
0 1 0 Din 0 0
C3= Din •S 1 -So
1 0 0 0 Din 0
siso 1 1 0 0 0 Din
entradas salidas
ROM :
Una ROM(2 n xm) posee n entradas de dirección y m salidas, que puede verse como un dispo-
sitivo que almacena 2n palabras de m bits, de forma que para cada combinación binaria de sus
n entradas se selecciona una de sus 2n palabras . En las m líneas de salida se lee la palabra al-
macenada . Del plano AND de una ROM se obtienen todos los mintérminos de las n variables
de entrada, y en función de la programación del plano OR, se eligen los que interesen para rea-
lizar la función lógica que se desee . Por tanto, una ROM es un dispositivo lógico universal de
n variables para m funciones .
SUBSISTEMAS COMBINACIONALES 93
PLA :
Un PLA(n,p,m) es un subsistema con n entradas, m salidas y p términos productos (salidas del
plano AND) . Mediante este dispositivo pueden implementarse m funciones lógicas de n varia-
bles expresadas en sumas de productos si para ello no se superan los p términos ANDs dispo-
nibles .
PAL:
En este dispositivo cada salida es la OR de un conjunto determinado de líneas AND, no estan-
do compartidas ninguna de ellas por otra salida . La implementación de una función con este
dispositivo es similar al caso anterior, salvo que en el PAL cada función de salida se trata in-
dependientemente de las otras .
PROBLEMAS RESUELTOS
x>y yl
xo x=y E
x<y
2
3
4
5
6
Solución Pl .- Si las entradas x t xo son mayores o igual a y yo, se activarán las salidas G o E,
respectivamente, del comparador de magnitudes . Estas salidas, gracias a la puerta OR, provo-
can que la entrada del demultiplexor sea un 1 lógico . Habrá, ahora, que determinar cuál es el
canal de salida, en función de las señales de selección . Puesto que x>y, la salida L del compa-
rador es 0, por tanto los canales seleccionados dependen sólo de y t (canal 1 o canal 5) . Como
puede verse, estos canales están unidos mediante una OR, por lo que la salida será 1 .
Cuando x<y, la salida L del comparador está activa . La entrada del DMUX se encuentra
a 0 e, independientemente de las entradas de selección, los canales valdrán todos 0, y la salida
también .
En resumen, si x>y, f=1 y si x<y, f=0 .
x y z do d d2 d3
0 0 0 0 0 0 0
0 0 1 1 1 1 0
0 1 0 0 1 - 0
0 1 1 1 1 1 1
1 0 0 0 0 0 0
1 0 1 1 1 1 0
1 1 0 0 1 0 0
1 1 1 1 0 - 1
que, junto con las señales de selección de canal, podemos construir el K-mapa siguiente :
xyz
000 001 011 010 110 111 101 100
uv
00 0 1 1 0 0 1 1 0
01 0 1 1 1 1 0 1 0
11 0 0 1 0 0 1 0 0
10 0 1 - 0 - 1 0
f
de donde obtenemos la expresión mínima :
f = v •z +ú •y . z+u •y -z+ú •v «y •z +ú •x •z
b
conv c
D BCD
7 seg e el l c
convertidor f
A3 D3 d
binario/BCD g
A2 D2
ROM a'
Al D b'
Ao conv fl 1
l b,
D 9
BCD
7 seg e'
f e l l c'
d'
SUBSISTEMAS COMBINACIONALES 95
Solución P3 .- Dada una entrada (A3,A 2,A 1 ,A0), se selecciona una posición de la ROM cuyo
contenido se vuelca en el bus de datos (D 4-0) . El convertidor binario a BCD, transforma el nú-
mero binario en su correspondiente BCD de 2 dígitos . Estos dígitos BCD, se muestran en sen-
dos displays de 7 segmentos . Por tanto, el sistema de la figura, sirve para mostrar el contenido
de una memoria ROM en formato decimal .
Solución P4 .
EO El E2 E3 A1 Ao Y
0 0 0 0
EO
El . c 1
A1 1 0 0 1 0
AO
E2 2 1 1 0 1 0 0
E C Y
COD 1 1 1 0 1 1 0
1 1 1 1 1
El EO
13 GS
12
I1 COD Ql
lo Qo
Solución P5.- De acuerdo con la descripción del enunciado y suponiendo que la entrada del
dispositivo con mayor prioridad es 1 3 , la tabla de verdad es :
El EO GS Q Qo
1 1 1 No habilitado
0 1 0 1 1
0 1 0 1 0 1 0
Habilitado con alguna
0 1 1 0 1 0 0 1 entrada activa
0 1 1 1 0 1 0 0 0
0 1 1 1 1 0 1 Habilitado, pero no activo
El dispositivo a realizar es una extensión de éste . Llamando con minúsculas a sus varia-
bles, nuestro objetivo es realizar el siguiente circuito :
e¡ i7 i6 i5 i4 i3 i2 il eo gs q2 q1 q0
eo 1 1 1
1
gs 0 0 1 0 1 1 1
0 1 0 1 0 1 1 0
q2 0 1 1 0 1 0 1 0 1
q1 0 1 1 1 0 1 0 1 0 0
q0 0 1 1 1 1 0 1 0 0 1 1
COD 8 :3 0 1 1 1 1 1 0 1 0 0 1 0
0 1 1 1 1 1 1 0 1 0 0 0 1
o 1 1 1 1 1 1 1 0 1 0 0 0 0
0 1 1 1 1 1 1 1 1 0 1
SUBSISTEMAS COMBINACIONALES 97
-------------------------------------------------------
e¡ El EO >
i7 C 13 GS 3 T ea
i6 c 12 H
g
I Ql
lo Qo
COD Circuito
q2
combinacional
qi
q0
-C J
'3
2
it - -~ I 1 Ql
io I Qo
COD
COD 8 :3
------------------------------------------------------
En esta solución, la habilitación externa actúa sobre el codificador H (más prioritario)
y, sólo cuando no hay petición en i 7 , o i 4 , se habilitará el codificador L (menos priorita-
rio) . Para ello, conectamos EO H con EIL .
Además existe un circuito combinacional que, recibiendo como entradas las salidas de
los codificadores, genera las salidas deseadas .
Para nuestra solución se cumplen las siguientes relaciones :
El = e;
EIL = EOH
La tabla siguiente muestra los valores de entradas del codificador completo y el valor
de las señales intermedias que serán las salidas de cada uno de los dos codificadores que esta-
mos utilizando .
e; 17 16 15 14 13 11 10 EO H GSH QIH QO EO
L
GS L QI L. Q0
1-
H
1 1 1 1 1
0 0 1 0 1 1 1 1
0 1 0 1 0 1 0 1 1
0 1 1 0 1 0 0 1 1 1
0 1 1 1 0 1 0 0 0 1 1
0 1 1 1 1 0 0 1 1 0 1 1
0 1 1 1 1 1 0 0 1 1 0 1 0
0 1 1 1 1 1 1 0 0 1 1 0 0 1
0 1 1 1 1 1 1 1 0 0 1 1 0 0 0
0 1 1 1 1 1 1 1 1 0 1 0 1
A partir de la tabla anterior se pueden obtener las relaciones algebraicas para las cinco
funciones de salidas . Se han especificado a O las inespecificaciones en las salidas de los codi-
ficadores .
eo = EOL gs = GS H • GSL q2 = EOH q1 = Q1 H + QI L q0 = QOH + Q0L
Si pasamos a la implementación de estas ecuaciones mediante puertas, el circuito global
sería el que se muestra a continuacion :
El EO )--- co
13 GS
12 H
gs
I, Ql
o CODQ0
El EO
q1
i3 c I GS
i2 1 L
I1 Ql
io q0
COD
Solución P6.- El decodificador del que disponemos, el Cl 74138, es el que se muestra a con-
tinuación :
Oo
O1
A2 02
2 03
Al 1 04
A0 0 05
06
07
A partir de él, se quiere conseguir un decodificador 4 :16 . Para ello se requiere dos de-
codificadores y una de las posibles formas de asociarlos es como se ve en la siguiente figura,
donde la nueva variable de entrada elige, según su valor lógico, cuál de los dos decodificadores
estará habilitado . Para ello, de las tres entradas de habilitación que tiene cada uno de los deco-
dificadores, dos de ellas la fijamos al valor lógico correcto para habilitar al decodificador, y la
tercera entrada de enable es con la que se pretende ir habilitando uno u otro .
Oo
O1
Ó2
04
05
06
O6
2
089
0 10
Oll
0,2
0,3
0 14
X15
Como comentario del decodificador obtenido se puede decir que no posee señales de ha-
bilitación como tenía el inicial . Si se hubiera querido conservar éstas, se tenían que haber uti-
lizado mayor número de decodificadores .
Procediendo del mismo modo se puede conseguir un decodificador 5 :32 asociando cuatro de-
codificadores y un inversor . Se muestra en la siguiente figura :
-----------------------------------
É EA
1 r-~- 1
2
3
1 4 04
0 5 5
a4 7 07
a3 -
11
É, E2E, J_ 8
1 9
2T- ~ 10
a2 -` 2
al -
a0
1 ~r
4
Ser
11
12
13
6 !- 0 14
7 -- 0 15
E, E2 E3 01 `- 16
1 ~-~- 17
2 2>-r 18
3~-~- 19
1
4° 20
0 5r- ` 0 21
822
T 23
ÉÉE 30-- 24
1>~ 25
2 2> -! - 26
3) . 27
1 4' 1 28
5 >- :- 029
0 30
7Yr 0 31
DEC 5 :3L
1
Problema 7.-La figura muestra un comparador de dos números de 1 bit y su tabla de verdad .
Se desea obtener un comparador de números de 6 bits, utilizando exclusivamente compara-
dores de 1 bit. El diseño debe contemplar que el tiempo de retraso no supere 4T, donde T es
el retraso asociado al comparador de 1 bit .
A; Bi
Ci Ai B i Ei
0 - - 0
1 0 0 1
1 0 1 0
1
1 1 0 0
1 1 1 1 Ei
Solución P7 .- Para comparar dos números de 6 bits, con estos dispositivos, necesitaremos
comparar, bit a bit, los dos números . Utilizaremos, por ello, 6 comparadores :
A2 B2
C C C2
1 1 1
EO El E2
A5 B5 A4 B4 A3 B3
1
C C
1 1 1
E5 E4 E3
Supongamos que los bits A 0 y B 0 son distintos . La salida E0 , evaluará 0 . Esto implica
que, independientemente de que los restantes bits sean iguales, la salida global debe evaluar 0 .
Nos podemos valer de las entradas de habilitación de los restantes comparadores para que sus
salidas también sean 0 . Extendemos este concepto a sólo 3 comparadores, para no superar las
restricciones temporales .
Ao BO Al B1 A2 B2
1
C C C2
E E
A4 B4 A3 B
C5 C4 C3
E5 1 E4 1 E3 1
Para las estructuras anteriores, E 2 y E3 serán distintos de 0, cuando los bits de los núme-
ros A y B sean iguales . Si alguno de ellos varía, E 2 o/y E 3 , pero al menos uno de los dos, será
0 . En efecto, supongamos que A 1 es distinto de B 1 , y todos los bits restantes son iguales . La
salida del primer comparador, E 0 , será 1 (en el supuesto de que la entrada de habilitación sea
1) . Esto habilita la comparación del segundo comparador que, como sus bits de entrada difie-
ren, generará un 0 en su salida E 1 . Esta salida inhibe al siguiente comparador, cuya salida tam-
bién será 0, independientemente de A 2 y B 2 .
A0 Bo A1 B1 A2 B2
Co C1 C2
E o E l E2
A5 B A4 B4 A3 B3
C5 C4 C3
E5 E4 E3
Nos falta, por último, generar una única salida E del comparador partir de E 2 y E3 y uti-
lizando, como mucho, un comparador más, para no superar el tiempo de respuesta (4T) . Se han
tabulado las posibles respuestas de E 2 , E 3 y de la salida a generar, E, en función de los bits de
datos y habilitación
C A,B E2 E 3 E
0 xxxxxxxxxxxx 0 0 0
1 A0-2 = B0-2 y A 3-5 = B3-5 1 1 1
1 A0-2#B0-2 y A3-5#B3-5 0 0 0
E2 E3
1 E
Cuando E 2=0 (ver tabla), la salida E vale 0, por estar este comparador inhabilitado .
Cuando E2 =1, el comparador está habilitado y sólo tenemos dos posibilidades, E 3 =1 y E3 =0 .
En la primera, el comparador activa su salida (E= 1) y en la segunda no .
Problema 8.-Realice las siguientes funciones haciendo uso de los dispositivos que se dan en
cada uno de los apartados:
a) Utilizando un decodificador con salidas activas en nivel alto y puertas OR .
• Utilizando un decodificador con salidas activas en nivel bajo y puertas AND .
• Utilizando un decodificador con salidas activas en alto y puertas NOR.
• Utilizando un decodificador con salidas activas en bajo y puertas NAND .
• E(0,9,11,15) + d(1,2,3)
F= JJ (0, 3,5) • d(1,2)
0
1
2
3
4
5
b 2 6
7
c 1 8
d 9
10
1
11
DEC 13
14
4 :16 15
2 0
1 a
DEC
4 :16
0
1
2
3
4
5
6 F
b 2
7
1 8
d 9
10
11
12
DEC 13
4 :16 14
15
0
1
2
3
4
5
b 2 6
7
F
c 1 8
d 9
10
11
12
DEC 13
4 :16
15
0
1
2
b 1 3
0
DEC F
6
3 :8 7
0
1
2 2
1 3
0 4
DEC 6
3 :8 7
0
1
2
b 3
I-
0 DEC 6
3 :8 7
Problema 9.-Encuentre un diseño mínimo para cada una de las siguientes funciones si sólo
disponemos de un decodificador 3 :8 y de puertas de dos entradas .
a) F= E(0,9,11,15) + d(1,2,3)
b) F= fi (0, 3,5) - d(1,2)
c) F = n (1, 3,4, 6, 9,11) • d(7,12,14)
d) F = n (1,2,3,7,8,9)
Solución P9.- Para dar solución a este problema, en el apartado b) se sigue el mismo proce-
dimiento que en el Problema 8, pero para los otros tres apartados, las funciones son de cuatro
variables y el decodificador del que se dispone sólo posee tres entradas . Con ello, de las salidas
de éste, se obtienen los mintérminos o maxtérminos de tres variables (dependiendo del tipo de
salida del decodificador), y añadiendo la cuarta variable (bien mediante operador AND u OR)
se consiguen los mintérminos o maxtérminos de la función que se necesiten .
abcd
1
a
b
c
abcd
c
d
m6 + m7
2
1
0
DEC
3 :8
d) F (a,b,c,d) = [1 (1,2,3,7,8,9) :
1
a 2
b 1 3 /
0 4
5
DEC 6
3 :8 7
Problema 10.- Un circuito tiene como entradas dos números binarios de dos bits cada uno :
Y= y,yo; X= x,xo . Se desea que tenga salidas 11 si Y=X, 10 si Y>X y 01 si Y<X . Diseñe un
circuito con un decodificador de 3 a 8 con salidas activas en alto, un número no determinado
de puertas NAND de dos entradas y dos puertas NAND de un número de entradas no limitado .
Añada una señal de habilitación (enable) . Las entradas están en único raíl . Utilice obligatoria-
mente el decodificador.
Solución P10 .-Las funciones del circuito, considerando E como señal de habilitación, están
representadas en la siguiente tabla :
E X Y Zi Zo
0 0 0
1 X=Y 1 1
1 X>Y 1 0
1 X<Y 0 1
Hemos elegido la salida Z 1 Z0 = 0 0 para indicar que el circuito está no activo puesto que
era la combinación de salida no utilizada en el enunciado .
Para diseñar el circuito, primero consideraremos que no tenemos señal de habilitación,
y como segundo paso añadiremos ésta al circuito ya diseñado previamente .
Para cada uno de los casos posibles de valores en las entradas X e Y conocemos los va-
lores para las señales de salida . Mostramos este resultado en el siguiente mapa de Karnaugh :
00 01 11 10
Y
00 11 01 01 01
01 10 11 01 01
11 10 10 11 10
10 10 10 01 11
Z1 Zo
A partir del mapa anterior podemos dar las expresiones de cada una de las funciones de
salida .
Z1 (x1 ,x0 ,y1 ,yo) = (0,1,2,3,5,6,7,10,11,15)=fl (4,8,9,12,13,14) .
Zo (x1 ,x0 , y1 ,yo) = (0,4,5,8,9,10,12,13,14,15) =11(1,2,3,6,7,11) .
Ambas funciones dependen de cuatro variables . Como el decodificador es de tres entra-
das y ocho salidas activas en alta, en cada salida aparece uno de los ocho mintérminos de las
tres variables que actúan como entradas en el decodificador . Esto es, dado que las salidas del
decodificador no proporcionan directamente los mintérminos de las funciones, tendremos que
realizar la operación AND de la salida del decodificador con la cuarta variable con o sin com-
plementar, según corresponda . Así tendremos:
108 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
xl'xo'Y¡ , Yo = mo
Yo
xl'x0 Yl
xl'x0'Y] 1' x0'Y1'Yo -M i
1
x1 Xo ' Yl
2
x1'xo'Y]
xo 1 3
x1 Xo' Yi
4
Yl xl'x0'Yi
5
xl'xo . Y 1
6
DEC3 :8 o - Y1
Yo Yo xo " Y F Yo =
1» m15
Yo
Al disponer de puertas NAND de dos entradas, si las puertas AND anteriores son susti-
tuidas por puertas NAND, a la salida de éstas dispondremos del complemento del mintérmino,
es decir, maxtérmino correspondiente de cuatro variables .
Además, en el problema disponemos de dos puertas NAND de un número no limitado
de entradas . Podemos realizar las dos funciones descritas por producto de sus maxtérminos .
Como para ello tenemos dichas puertas NAND, este producto es negado a la salida, por lo que
podemos usar una puerta NAND de dos entradas actuando como inversor para conseguir la
función final .
miMi . . . M k mi Mi . . . M k
Mi +mj + . . .mk
Como se puede ver en el gráfico anterior, a la salida de la primera puerta NAND pode-
mos obtener la función como suma (operación OR) de sus mintérminos, y a la salida de la se-
gunda puerta NAND se expresaría la función como producto (operación AND) de los maxtér-
minos .
Si pasamos a dar la solución para cada una de las funciones obteniéndolas como salidas
de las puertas NAND de número variable de entradas, tendrías os que elegir como entradas de
dicha puerta los maxtérminos de cuatro variables, cuyo subíndice sean las combinaciones bi-
narias que hacen 1 a la función, así quedaría expresada ésta como suma de sus mintérminos .
Mo
Yo - • &
Yo -
Yo
M
M
Yo
l M
o
XI 2
1 3 M1
4
0 5 Yo
Y1 M1
DEC 6
3 :8
M1
M1
M1
Yo [& • Yo Yo
M oiM 1
M2•M 3
M5
M M7
M10M11
M15
M1
Yo
Si incluimos la señal de habilitación E que se definió en una tabla anterior, una de las
opciones para resolverlo sería añadirle al decodificador una entrada de habilitación definida de
la siguiente forma :
110 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
00
1 01
2 02
E O ; (cada salida del decodificador) X1
Xo 1 3 03
0 todas las salidas a 0 4 04
1 sólo una de las salidas activa y1 0 5 05
DEC 6 06
3 :8 07
Problema 11 .- Diseñe un circuito de 4 entradas y 3 salidas, z0, z,, z2 que realice las siguientes
funciones :
zo vale 1 cuando tres o más entradas sean 1 .
z, vale 1 cuando haya el mismo número de unos que de ceros .
z2 vale 0 cuando dos o más entradas sean 1 .
Para ello se dispone de :
a) Un decodificador con salidas activas en nivel alto y puertas NOR .
b) Un decodificador con salidas activas en bajo y puertas NAND .
Solución P11 .- El mapa de Karnaugh para las tres funciones de salidas y el circuito final se
muestra a continuación :
00 01 11 10
zO=E (7,11,13,14,15)
00 001 001 010 001 z 1 = E (3,5,6,9,10,12)
zo z t z2
z0 = II (0,1,2,3,4,5,6,8,9,10,12) .
z 1 = 11 (0,1,2,4,7,8,11,13,14,15) .
Z2 = fI (3,5,6,7,9,10,11,12,13,14,15) .
m m°
m1
m3
m2
mp m4 zp
1 ml 6
m58 m9
2 m2
3 m3 m10 12
4 m4
5 m5
6 l m2
b 2 7 m6
m 7 4
7 zl
1 8 -- m8 11
9 m9 8
m14
10 mip
11 mil
12 m12
13 M13 m6
DEC
14 m14 m9
4 :16 m10 z2
15 m 15 11
m12 M l3
m14 15
Solución P12 .
a) Estructura general :
do
0
d1
DECOD 1 1 CODIF
d2
2 2
d3
A 3 d4
3 Z
B 2 4 4 2 Z2
d5
C 1 5 5 Decimal/ 1 zi
d6
D 6 6 Exceso3 0 Zo
d,
7 7
dR
8
BCD/Decimal 8 d9
9
BCD Exceso -3
ABCD Z3 Z2 z1 Zo
0 0 0 1 1 Z3 = E (5,6,7,8,9) = d5 +d 6+d 7+d8 +d9
1 o 1 0 0
2 0 1 0 1 Z 2 = E (1,2,3,4,9) = d l +d 2 +d 3 +d4 +d9
3 o 1 1 0
4 0 1 1 1 Z 1 = E (0,3,4,7,8) = d0+d3 +d4+d 7 +d8
5 1 0 0 0
6 1 0 0 1 Zo = E (0,2,4,6,8) = d0+d 2 +d4+d 6+d8
7 1 0 1 0
8 1 0 1 1
9 1 1 0 0
b) Estructura general :
do ,
o
d,
DECOD 1 1 CODIF
d2
2 2
d3
A- 3 d4
3 Z
B 2 4 d5 4 3 Z3
C 1 5 5 Decimal/ 2 Z2
d6
D 6 d7 6 2de5 1 ZI
7 7 0 Z
dR
8
BCD/Decimal 9 d
Convertidor BCD/ 2 de 5
SUBSISTEMAS COMBINACIONALES 113
BCD 2 de 5
ABCD Z4 Z3 Z2 Z1 ZO Z 4 = E (6,7,8,9) = d6+d7 +d 8+d9
0 0 0 0 1 1
1 0 0 1 0 1 Z3 = E (3,4,5,9)= d 3+d4+d5+d9
2 0 0 1 1 0
3 0 1 0 0 1 Z 2 = E (1,2,5,8)= d 1 +d2+d5+d8
4 0 1 0 1 0
5 0 1 1 0 0 Z 1 = E (0,2,4,7)= d0+d2+d4+d7
6 1 0 0 0 1
ZO = E (0,1,3,6)= d0+d 1+d3+d6
7 1 0 0 1 0
8 1 0 1 0 0
9 1 1 0 0 0
Cada una de las funciones de salida se realizarían con puertas OR cuyas entradas serían
las salidas correspondientes del decodificador BCD/Decimal .
Solución P13 .- Sean A, B y C los tres subsistemas que generan las señales A 1 A0, B1B0 y
C 1 CO, que indican la fase de operación de los tres subsistemas respectivamente .
El circuito a realizar debe tener dos salidas F y G que tomarán los siguientes valores :
F=1 si hay 2 o 3 subsistemas en la misma fase .
G=1 si hay exactamente dos subsistemas en la misma fase .
G=F=O en otros casos .
Para conocer si dos sistemas están en fase o no, utilizamos un comparador de
magnitudes de 2 bits :
Al
AO
B, IAB
BO
ama
EN a 10
FG
Tan sólo comentar que existen casos que no pueden darse como entrada del circuito a
diseñar con puertas . Uno de estos casos es IAB IAC e I BC = 011 . En efecto, si el subsistema A
está en fase con el C (I AC = 1), y el subsistema C está, a su vez, en fase con el subsitema B
(I BC = 1) es imposible que el subsistema A está en desfase con B .
Las ecuaciones para las funciones F y G son :
F = IAB +IAC + IBC
A
Ao IA
BI
B0
AI -
Ao 1
CI
CO -
C, G
Co IB
B,-
B0
Solución P14.- Dada la función a implementar, el proceso es el siguiente . Basta con elegir tres
variables de la función para las señales de selección del multiplexor . De esta forma, los resi-
duos que deben entrar por cada uno de los canales de éste son funciones de las otras dos varia-
bles, y estos se implementarán con las puertas que disponemos . Una de las posibles soluciones
es la que se muestra :
SUBSISTEMAS COMBINACIONALES 115
F= E (3,4,5,11,12,13,14,15,16,17,24,26,28,29,31)
Solución P15 .
a) Dibujamos el diagrama de bloque del desplazador combinacional y su tabla de
verdad :
A3 A2 A 1 Ao
1 SI SO Z3 Z2 Z1 Zp
Si 0 0 A3 A2 A1 Ao
SO 0 1 0 A3 A2 Al
y 1 0 0 0 A3 A2
Z3 Z 2 Z 1 Zp 1 1 0 0 0 A3
1 I l ü 4 I J
SI 1
So
Z3 Z Zo
S I
so
00 01 00 11 00 10
Z3
z2 J I
ZI
zo
1011 0101 1011 0001 1011 0010
Problema 16.- Rediseñe el circuito de la figura, utilizando sólo MUX s 2 :1 . Deberá reducirse
en los posible el número de multiplexores . La única entrada disponible en doble raíl es e .
1 0
0 1
e 2 o
0 3 F
1 s
e 4
1 5 c
e 6
1 7 2 1 0
1 I I
a b d
SUBSISTEMAS COMBINACIONALES 117
Solución P16.- Para resolver este problema determinaremos, en primer lugar, el K-mapa de
la función F .
00
01
11
10
F
Para obtener el circuito de menor coste que implemente la función F, utilizando
multiplexores de 2 canales, sólo podemos ir probando las diferentes realizaciones que surgan
de suponer a, b, d ó e, como variables de selección del primer multiplexor ( el que genera F
en su salida) . De todas ellas, la mejor es :
1 s Z
i
e ls
1 a - ls
b 1
a
d
Solución P17 .- La desigualdad del enunciado describe una función booleana de 6 variables
f(x1,x2,x3,x4,x 5 ,x 6 ), que toma el valor 1 cuando las asignaciones binarias de las variables
(x 1 , . .x6 ) , satisfacen la expresión anterior, y 0, cuando no . Esta función booleana puede
desarrollarse según el teorema de expansión de Shannon :
+ x4 x5 x6 f(x1,x2,x3,0,1,0) + x4 x5 x6 f(x1,x2,x3,0,1,1) +
+ x4 x5 x6 f(x1,x2,x3,1,1,0) + x4 x5 x6 f(x1,x2,x3,1,1,1)
Hemos expandido las variables x4 , x 5 y x 6 , por ser las más relevantes de la desigualdad .
Esta expansión se puede implementar con un multiplexor, cuyas señales de control son x4, x 5
y x6 , y los canales, las funciones residuo . A partir de ahora, tenemos que determinar la
expresión de las funciones residuo .
f (x 1 , x 2 , x 3 , 0, 1, 1) = 1
f (XI, x 2 , x3 , 1, 0, 1) = 1
f (x 1 , x 2 , x 3 , 1, 1, 0) = 1
--x _1x2 00 01 11 10 x 2 00 01 11 10
X3 3
0 0 1 1 1 0 0 0 1 0
1 1 1 1 1 1 1 1
f(x l , x2 , x3 , 0, 0, 1) f(x 1 , x2 , x3 , 0, 1, 0)
x3
1
1
0
x3
x3
1
00
01
IG
11
10
01
00
1
01
SUBSISTEMAS COMBINACIONALES
F
~>
- 1
F-
L >1
F-
11
D - < >
Solución P18 .- Sea F(a,b,c,d) la función a implementar cuyo mapa se muestra a continuación :
c d
ab
Para realizar esta función con el PAL de la figura tenemos que resolver tres problemas :
1) El número de entradas del PAL son tres y la función F necesita cuatro variables .
Para solucionar el problema se usa una de las entrada-salidas del PAL como entrada .
Esto se consigue poniendo un "0" (a través del producto x.x) sobre la línea de control
del inversor 3-estados correspondiente :
119
120 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
& X •X = 0
&
L >1
E}<> d
F
X X
2) El PAL del que se dispone realiza la operación AND-OR-INV . Para resolver el pro-
blema se escogerá a la función F como suma de productos y, al invertirse a la salida, se obtiene
la función F . Para que en la salida se obtenga F, el control del inversor 3-estados debe estar a
" 1 " (para ello basta con no programar ningún fusible de la AND que proporciona dicho control :
o» F
3) EL PAL sólo puede sumar (operación OR) tres términos productos y F tiene cinco .
Para resolver el problema se descompone F en dos subfunciones de forma que, en cada una de
ellas, sólo se sumen tres términos :
F = (a.b•c•d + b.c .d + a .b .c) + a•c•d + a •b •c = G + a •c •d + a •b•c .
donde G = á •b •c•d + b •c•d + a •b•c .
De esta forma, G se obtiene por una de las salidas de la PAL y es reintroducida para for-
mar F.
.9
G
ccbbaaddGG
C .C = 0
bcd
bcd
ac
acd >F
abc
Problema 19.- Se desea diseñar un circuito que tenga como entradas dos números de dos
bits a=(a, a 0) b=(b, b 0) y un bit de paridad par correspondiente a los cuatro bits anteriores . El
circuito indicará en una salida si a>b, y en otra si se ha producido una entrada ilegal (con el
bit de paridad mal) . El circuito deberá realizarse con multiplexores de dos entradas de selec-
ción y una ROM de 8 posiciones de memoria .
Solución P19 .- El circuito a diseñar posee cinco entradas, P, a1, a0, b 1 , b0 y dos salidas . Lla-
maremos G a la salida que indica cuándo el número a = al a0 es mayor o igual que el b = b 1 b o,
y salida 1 cuando se produce una entrada con el bit de paridad P erróneo .
a > b G=1
a<b G=0
error en P I=1
P correcto 1 = 0
o
b e bo 001 010 011 100 101 110 111
00 0 1 1 0 1 0 0 1 lo
01 1 0 0 1 0 1 1 0 II
10 1 0 0 1 0 1 1 0 12
11 0 1 1 0 1 0 0 1 13
[$1 1 0
P 1
0 1 al- 2
al 1
G lo
a0 o ROM 1 A P G3
2 3 x4 2 A 1 2
al 1 I0 b Ib0
3 D a0 0 ROM 0 o
3 2 1 0 12
4 2 23x4 1- 2 I
1111 5 9 3
G IG31 0 1 2 I1
6 9
b Ib0
7 E
Solución P20.- Se organizará el circuito en bloques, y se resolverá cada uno por independien-
te . El circuito global dispone de cinco variables de entrada X4 - X, , por donde se expresa el
código 2 de 5, y cinco salidas, cuatro de las cuales Z 3 - Z0 expresan el código de salida, código
BCD, y la quinta señal, E, detecta cuando hay un error en la combinación de entrada .
Detector de error • E
X
xo
XI -
o
2
Xo - 3
4
5
X 6
7 2 1 0
X 4 X 3X2
X4 X3 X2 x1 Xo 03 02 01 00
0 0 0 1 1 0 0 0 0
0 0 1 0 1 0 0 0 1
0 0 1 1 0 0 0 1 0
0 1 0 0 1 0 0 1 1
0 1 0 1 0 0 1 0 0
0 1 1 0 0 0 1 0 1
1 0 0 0 1 0 1 1 0
1 0 0 1 0 0 1 1 1
1 0 1 0 0 1 0 0 0
1 1 0 0 0 1 0 0 1
Una vez conocidas las cuatro funciones de salida basta implementar el circuito utilizan-
do un PLA . Suponiendo que todas las combinaciones de entrada que no correspondan a código
2 de 5 no ocurren nunca, y asignando un término producto para cada una de las combinaciones
de entrada obtendríamos diez términos producto para realizar en el plano AND del PLA .
A continuación, para cada función de salida se hará la operación OR de aquellos términos pro-
ducto de los que participa . Siendo P0, P 1 , P 2 , . . .P 9 cada uno de estos términos, las funciones
serán :
03 = P8 + P9
02 = P4 + P5 + P6 + P7
0 1 = P2 + P3 + P6 + P7
00=P1 +P3 +P5 +P7 +P 9
El esquema del PLA será el que se muestra :
• PI •
. P,) •
P3
•
P4
P5
P6
P7
PA
Pq
X4 X3 X2 X 1 XO
03 02 0 1 00
PLA z3
X4
X3 MERIMIO z2
X2 Convertidor código
xl ~ ~EN zl
E 2de5/BCD
xo zo
Problema 21 .- Analice el circuito de la figura describiendo con palabras la función que reali-
za. ¿ Puede diseñarse con una ROM un circuito que realice la misma tarea? En caso afirma-
tivo, indique cómo se haría, así como el contenido de la ROM para los siguientes valores en
hexadecimal de X e Y:
XY: 10, 11, 12, 67, 84, AA,DF
z3
Y3 A3
Y2 A2 A>B
A1
Yo Ao
X3 A=B
B3
x2 B2
xl B1 A<B
xO BO
zO
Solución P21 .- Si el número X>Y, la salida A<B del comparador de magnitudes, se activa .
Esto provoca que, en la batería de multiplexores, se escoja el canal 1 . Por tanto, el conjunto de
las salidas de estos multiplexores, contiene el número x . La salida del sistema dependerá de la
salida A=B del comparador . Como ésta se encuentra a 0 lógico, las salidas Z 3 _0 contienen el
número X .
De igual modo razonamos cuando el número X<Y . La salida A<B del comparador se
encuentra a O lógico, lo que provoca que en la batería de multiplexores se escoja el canal 0 .
Las salidas Z 3 _ 0 , contienen, en este caso, el número Y .
Por último, cuando X=Y, la salida A=B del comparador se encuentra a 1 lógico, por lo
que el inversor provocará que las salidas Z 3 _ 0 se encuentren a O lógico .
La función de salida de este circuito puede representarse mediante una ROM, que se
dimensiona con 8 líneas en su bus de direcciones (correspondientes a los 4 bits de los 2
números), y 4 bits por palabra . En la tabla siguiente, se han representado los contenidos de la
ROM para las direcciones indicadas en el enunciado :
POS CONT
Y3 A7
Y2 A6 $10 1
Yl A5 D3 $11 0
$12 2
Yo A4 D2
$67 7
X3 A3 D1 8
$84
x2 A2 Do $AA 0
XI Al $CB B
xo Ao ROM $DF F
$FF 0
Problema 22.- Necesitamos un circuito lógico con cuatro entradas que genere una salida z
que se activa cuando se satisface una de las dos condiciones siguientes, pero no las dos :
1) Ambas entradas, a y b, son activas .
2) o bien c o d o ambas son activas .
Diseñe este circuito en cada uno de los casos siguientes :
a) Con MUX s de 4 canales, suponiendo que a y b son activas en nivel alto, c y d activas
en bajo y z activa en bajo .
b) Con un DEC 3 :8 con salidas activas en alto, una puerta NAND de 6 entradas y un
número no mayor de 8 puertas NAND de dos entradas, suponiendo que todas las entradas y
salidas son activas en alto .
Solución P22 .- Definamos las variables booleanas C ; (i = 1, 2), de forma que tomen el valor
lógico 1 cuando la condición i se cumple y 0, en caso contrario . La salida z se puede expresar
en función de estas variables booleanas, como :
z = C1 O C2
SUBSISTEMAS COMBINACIONALES 127
cdab00 01 11 10
00 0 0
01 0 0 1 0
11 1 1 0 1
10 0 0 1 0
Z
Si implementamos la función Z con multiplexores de 4 canales, nos queda :
0
0
0
1
1
1
1
0
d
b) Ahora, todas las variables de entrada y la salida, son activas en alto . Procediendo de
forma similar al apartado anterior, obtendremos :
z = (a - b) ® (c + d) cuyo K-mapa es :
cdab00 01 11 10
00 00
00
00 00
Z
Esta función la implementaremos como producto de maxtérminos . Si escogemos a, b, c,
como entradas del decodificador y las salidas de este se llaman O ;, tenemos que :
M o = a+b+c+d = á • b . d = 00 . d
M 4 = a+b+c+d = á •b .J .d = 0 2 •d
M8 = á+b+c+d = a .b .c .d = 04 •d
M13 = á+b+c+d = a •b •c •d = 0 6 •d
M 14 = á+b+c+d = a •b •c •d = 07 .d
M 15 = á+b+c+d = a •b •c •d = 0 7 •d
1 M
a 2
3 M
b 1
c 4
M1
1 3-- Z
5
6
DEC3 :8
1 ~M •M 15 1 -
Problema 23.- Represente las salidas del siguiente circuito como suma de productos .
POS CONT
ROM _ 0 A
~- fi
b- A D3 1 2 02
a - Al D2 2 3 B
f2
c- Aó D1 sisó 4 C
5 7
6 3
7 7
Solución P23.- Las salidas f1 y f2, tienen las siguientes expresiones, donde se han sustituido
las señales de selección del demultiplexor, sl y s o, por las salidas de la ROM D 1 , y D o, respec-
tivamente.
f1 = D 3 s 1 • so +D 3 • s 1 • so +D 3 s 1 • s o = D3+D1 • Do y
f3 = D 3 ' SI ' SO = D3 ' D1 . Do
Nos falta, por tanto, determinar las relaciones entre las salidas de la ROM (D3 , D 1 y D o),
y las variables de entrada a, b y c . De la tabla de programación de la ROM, deducimos los
siguientes K-mapas para D 3, D 1 y D o:
11
ama a
ama DI
una
Do
00 01 11 10
0 o o o o
1 o 1 o o
f, f2
f, = a+cyf2 = b •a •c
s 1
fo
1 s
u d
D
d f
is
y 1
d2
2 0 1
3 d fi u
s
Problema 25.- Diseñe un convertidor de código Gray a binario natural de 4 bits utilizando
sólo tres puertas EXOR de tres entradas .
g3 g2 g1 g0 b3 b2 b1 bo g3 g2 g1 g0 b3 b2 b1 bo
0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0
0 0 0 1 0 0 0 1 1 1 0 1 1 0 0 1
0 0 1 1 0 0 1 0 1 1 1 1 1 0 1 0
0 0 1 0 0 0 1 1 1 1 1 0 1 0 1 1
0 1 1 0 0 1 0 0 1 0 1 0 1 1 0 0
0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1
0 1 0 1 0 1 1 0 1 0 0 1 1 1 1 0
0 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1
g3 b
92- b
o - 91-
o-al-a0-0 go - - bo
0 -
Solución P26.
a) Se quiere diseñar un decodificador 1 :2 con señal de habilitación activa en alta. Para
ello se dispone de uno de esas características pero con dos entradas y cuatro salidas . Una de
las posibles soluciones sería elegir una de las dos variables de entradas que tiene el decodifi-
cador dado y fijarla a un valor constante . De esta forma sólo dos de las salidas podrán activarse,
y serán éstas las salidas del decodificador que buscamos .
Disponemos del siguiente decodificador :
m0
1 m1
0 2 m2
m3
DEC2 :4 3
Si fijamos una de las entradas (por ejemplo la de mayor peso asociado) a "0" quedaría :
E
} ;
m0
1 m1
ao 0 2
DEC2 :4 3
DEC :2-
= 1---
132 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
------
m0
1 1 MI
0 2 m2
3 m3
DEC 2 :4
1
a2
2
3
DEC 2 :4 E 0
m4
al m5
ao m6
3 m7
DEC 2 :4
DEC 3 :8
'
--------------------------------------------
mo
1 1 MI
0 2 -'r-- m2
m3
DEC2 :4 3
a3
a2 - 0 2
DEC 2 :43 m4
al m5
ao 2 - m6
DEC 2 :4 m7
M8
1 Y m9
0 2 m10
DEC2 :4 Mil
m12
1 1 m13
0 2 m14
DEC 2 :4 m15
DEC 4 :16
'
Problema 27.- Utilizando multiplexores de menos entradas de selección que el dado, se pide :
a) ¿Cómo implementaría un MUX de 3 entradas de selección?
b) ¿Cómo implementaría un MUX de 2 entradas de selección?
c) ¿Cómo implementaría un MUX de 4 entradas de selección?
134 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
Co
C1
C2
C3
C4
C5
C6
C7
S iso
C
C
C
C
Co
C1
C2
C3
C4
C5
C6
C7
Cg
C9
C 10
C11
C12
C13
C14
C15
S I SO
Problema 28.- Se dispone de ROMs den líneas de dirección y m bits por palabra, todas ellas
con CS. Diseñe una ROM con CS, n líneas de dirección y 2m bits por palabra.
A(n-1) - 0
y se desea obtener una memoria del mismo número de líneas en el bus de dirección pero con
el doble número de líneas en el bus de datos, es decir, que cada palabra contenga 2m bits . Para
ello asociamos en paralelo dos memorias de las iniciales . De esta forma, cuando ambas sean
seleccionadas simultáneamente, para una misma dirección de palabra, (el bus de direcciones
es común para ambas), se accede a una palabra de cada memoria leyendo su contenido . Basta
sólo reunir los m bits de cada uno de los contenidos en un bus común que será el de datos de
la memoria final que se busca . A continuación se muestra el esquema de conexionado :
cs
cs cs
A(n-1)-0- , :\ ',
n n
o ROM
2"* m n
ROM
2n *m
m m
1 1
4
. $2m
Solución P29 .- Este problema puede tener diferentes soluciones . Presentamos, aquí, la
solución más simple . Para consturir un comparador de 16 bits haremos comparaciones a
grupos de 4 bits . Comenzaremos por los 4 bits de mayor peso de los números A y B :
A15-12
A>B
A=B
B15-12 A<B
Si de este grupo de 4, los bits del número A son mayores que los del B, no haría falta
comparar los restantes bits ; el número A es mayor que el B . De igual modo razonamos cuando
los 4 bits del número B son mayores que los respectivos del A . Podemos ver, entonces, que las
salidas de este primer comparador, pueden utilizarse como salidas del comparador de 16 bits .
Sólo en el caso en que los 4 bits más significativos de los dos números sean iguales, se
necesitará comparar los restantes bits .
4 4
A11-8 -x-30 A A15-12 -/_ A
G' G' G A>B
E E A=B
L
B11-8 -1 -> B
4
2 B15-12 f~ B 1
A<B
Si los bits A15-12, son iguales a los bits B15-12 , Y los bits A 11 - 8 son mayores que B11-8 ,
la salida G del segundo comparador, está activa, y provocará que se active la salida G del
comparador primero . De igual modo, si los bits A15-12 son iguales a los bits B15-12 Y los bits
A 11 - 8 son menores a los bits B 11 - 8 , la salida L del comprador número 2, se encontrará activa,
y provocaría la activación de la salida L del comparador 1 . Sólo en el caso de que el conjunto
de los 8 bits A15-8 y B 15-8 sean iguales, habrá que comparar el siguiente grupo de 4bits de los
2 números . La estructura del comparador de 16 bits se obtendría extendiendo el esquema
anterior para el grupo de 8 bits restante .
A A7-4 DI A
G' G'
E' E E' E
L' L L' L
B 4 B7-4 -~ B 3
Se resalta el hecho de que el comparador 4 ( el que actúa sobre los bits de menor peso),
tiene en sus entradas G',E', L', la terna (0,1,0) . Esto es necesario para el caso en que los dos
números, A y B, sean iguales, para activar la salida A=B .
L&
o
1
2
e 34 F
5
6
2107
III
abc
Problema 31 .- Una llamada de teléfono puede dirigirse a cuatro secretarias. (Nunca hay más
de una llamada simultáneamente) . La recepcionista distribuirá las llamadas según el siguiente
criterio:
Si la llamada procede de empresas de alimentación o de ropa, se pasa a la secretaria
número 4.
Si procede de una empresa de venta de ordenadores, o de un banco, se pasará a la
secretaria número 3.
Si se trata de una llamada procedente de una empresa de viajes o del aeropuerto, de-
berá sonar el teléfono de la secretaria número 2 .
En cualquier otro caso se enviará a la secretaria número 1 .
Diseñe un circuito que indique el número de la secretaria que deberá recibir la llamada,
utilizando un único codificador 8 :3, una NOR de 2 entradas y una NOR de 6 entradas.
Solución P31 .- Interpretamos cuáles serán las variables de entrada y de salida del problema .
Variables de salida:
Z 1Zp: indican la secretaria a la que va dirigida la llamada :
Z1 Zo
0 0 secretaria n4 1
0 1 secretaria n °- 2
1 0 secretaria n °- 3
1 1 secretaria n °- 4
Variables de entradas : Se nombrarán con X0, X 1 , ... a las distintas llamadas de empresas .
Xk = 1 indicará que hay llamada de la empresa "k" (ver tabla) .
Hay siete procedencias distintas de las llamadas, organizadas en cuatro grupos depen-
diendo de la secretaria que la reciba . Utilizando un codificador 8 :3 se transforman estos 8 casos
en código de tres variables de las que dependerán las variables de salida . A continuación se
muestra la tabla :
Llamada Xo XI X2 X3 X4 X5 X6 X7 C2 C1 C0 Z1 Z0
Alimentación 1 0 0 0 0 0 0 0 0 0 0 1 1
Ropa 0 1 0 0 0 0 0 0 0 0 1 1 1
Ordenadores 0 0 1 0 0 0 0 0 0 1 0 1 0
Banco 0 0 0 1 0 0 0 0 0 1 1 1 0
Viajes 0 0 0 0 1 0 0 0 1 0 0 0 1
Aeropuerto 0 0 0 0 0 1 0 0 1 0 1 0 1
Otras 0 0 0 0 0 0 1 0 1 1 0 0 0
0 0 0 0 0 0 0 1 1 1 1
Por último basta obtener las expresiones de Z 1 y Z0 en función de las salidas del codi-
ficador .
C2 C 1 C C
1 1
C 00 O1 10 C 00 01 11 10
0
0 0 1 0 0 1
1 1 1 0 1
Z Zo
Z1 = U2 Zo = C1
La realización del circuito utilizando los dispositivos de los que disponemos quedaría
como se muestra a continuación :
X0
X1 >1
X2
X3 C
X4
X5 C
0
X6 6
NC 7 COD 8 :3
NC : no conectada
SUBSISTEMAS COMBINACIONALES 1 39
Solución P32.
Sistema
1 3-0
de C.C .
4 Z
medida
Todas las salidas que genera el sistema de medida, se representan en la siguiente tabla .
Asimismo, se ha representado el equivalente en notación Ca2, y la salida Z .
T 13 12 11 10 Z
T 1 3 12 1 1 10 Z
+0 0 0 0 0 1 -8 1 0 0 0 0
+1 0 0 0 1 1 -7 1 0 0 1 0
+2 0 0 1 0 1 -6 1010 0
+3 0 0 1 1 1 -5 1 0 1 1 1
+4 0 1 0 0 1 -4 1 1 0 0 1
+5 0 1 0 1 0 -3 1 1 0 1 1
+6 0 1 1 0 0 -2 1 1 1 0 1
+7 0111 0 -1 1 1 1 1 1
Problema 33.- El bloque A de la figura pone su salida yk=1 sí y sólo si hay k entradas a 1 .
Diseñe la unidad B de forma que el bloque completo C ponga z=1 si y sólo si hay j entradas
a 1 . Utilice sólo MUX 2 :1 .
---------------------------------------
C
> YO .J- > ZO
XO
X1 Z1
Z2
X2 - 1 - B -
> Z3
X 3 _ > Z4
140 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
Xo XI X2 Yo Yi Y2 Y3 X3 zo z Z2 Z3 Z4
0 0 0 1 0 0 0 0 1 0 0 0 0
0 0 1 0 1 0 0 0 0 1 0 0 0
0 1 0 0 1 0 0 0 0 1 0 0 0
0 1 1 0 0 1 0 0 0 0 1 0 0
1 0 0 0 1 0 0 0 0 1 0 0 0
1 0 1 0 0 1 0 0 0 0 1 0 0
1 1 0 0 0 1 0 0 0 0 1 0 0
1 1 1 0 0 1 0 0 0 0 0 1 0
0 0 0 1 0 0 0 1 0 1 0 0 0
0 0 1 0 1 0 0 1 0 0 1 0 0
0 1 0 0 1 0 0 1 0 0 1 0 0
0 1 1 0 0 1 0 1 0 0 0 1 0
1 0 0 0 1 0 0 1 0 0 1 0 0
1 0 1 0 0 1 0 1 0 0 0 1 0
1 1 0 0 0 1 0 1 0 0 0 1 0
1 1 1 0 0 0 1 1 0 0 0 0 1
X3
Capítulo 6
CIRCUITOS ARITMÉTICOS
ARITMÉTICA BINARIA
141
5ét AB +
F
F
Desbordamiento (overflow )
La suma de dos números binarios con signo de n bits, expresados en cualquier notación, puede
tener un resultado erróneo en el caso de que ambos tengan el mismo signo y el valor de la suma
no pueda ser expresado en n bits . En estos casos diremos que se ha generado un
desbordamiento (overflow) . En el siguiente ejemplo se muestran dos casos de overflow . En el
primero, tenemos dos números en Cal positivos de magnitudes 13 y 8 . El resultado de la suma
es un número negativo lo cual es incorrecto . El segundo ejemplo representa la suma de dos
números negativos expresados en Ca2 . De idéntica forma, el resultado obtenido es positivo, lo
cual no representa el valor correcto :
Cal Ca2
Las celdas básicas de los circuitos sumadores habituales realizan la suma de dos bits . Existen
dos tipos : los semisumadores (Half Adder, HA) y los sumadores completos (Full Adder, FA) .
Semisumadores
Tienen dos entradas A ; y B ;, y dos salidas S ; y C ; +1 que se corresponden con el bit de suma y
de acarreo, respectivamente . El esquema de un semisumador- HA-, su tabla de verdad y su
estructura interna son :
A i Bi Si Ci+l i
Ai Bi 00 00 1
HA 01 10
Ci+I Si 10 10
y 11 01
Sumadores completos
Tienen tres entradas A; , B i y Ci que se corresponden, las dos primeras, con los bits de los
números A y B y, la última, a la entrada de acarreo, y dos salidas, S i y C i+l , con idéntico
significado que en los semisumadores . El esquema, tabla de verdad y estructura interna de un
sumador completo son : .
A i B i C i Si Ci+l Ci
Bi
000 00 Ai
001 10
010 10
011 01 Ci+I
100 10
101 01
110 01
111 11
Sumador de n bits
Los semisumadores y sumadores completos pueden unirse para formar sumadores de
2 números de n bits . Esto se consigue mediante el empleo de n sumadores completos en los
que la entrada de acarreo del sumador j+1 se conecta a la salida de acarreo del sumador j . En
la siguiente figura se muestra el esquema de bloques y constitución interna de un sumador de
4 bits .
B3-0 A3-0 A3 B3 A2 B2 Al B1 A0 B 0
14 14
1 1 1 1 1 1 1 1
a b a b a b a b
Sumador FA FA FA FA
Cout Ci n Ci+l Ci Ci+l Ci Ci+l Ci Cin
Ci+l Ci
de 4 bits S. S S. S-
4 Cout Z
Z3-0 3 2 1 0
Sumador BCD
Un tipo particular de sumadores binarios lo constituyen aquellos que aceptan números BCD
en sus entradas y generan el resultado también en BCD . El sumador BCD más básico es el que
realiza la suma de dos dígitos BCD, A y B, junto con un posible acarreo de entrada, K ;,, y
genera un acarreo de salida, K ot, t , y el resultado BCD de la suma, Z . Su estructura interna está
basada en sumadores binarios de 4 bits . Existe un circuito combinacional que detecta si el
resultado del primer sumador es un número BCD y un segundo sumador, que añade la
magnitud 6 ó 0, según corresponda, para convertir la suma binaria al valor BCD de la salida :
Kont <
i
0 0 Sumador
Cout
Sumador - de 4 bits -in n:-,-
1 r1 in
Kout BCD K'n E- Sumador c,,,, -0 f
E-, de 4 bits CinE0 Detector error
BCD
iz
I B
Transfiere/ F
Complementa
4Y
c o t Sumador s/r
V binario in
Una ALU de n bits es un circuito combinacional que realiza operaciones lógicas y aritméticas
sobre 2 datos de entrada de n bits cada uno . En la siguiente figura se presenta el esquema y
tabla funcional de una ALU de 4 bits, donde existen 3 señales de selección que permiten
escoger entre 4 operaciones lógicas y 4 operaciones aritméticas, además de acarreo de entrada
y salida para las operaciones aritméticas :
PROBLEMAS RESUELTOS
Problema 1 .-Sean A y B dos números binarios . a) Determinar en función del número de bits
de A y B el mayor números de bits de A + B y A*B . b) Realice en binario las sumas 110 + 35
y 110 +73 suponiendo que se dispone de un solo byte .
Solución Pl .
a) Supongamos que los números A y B tienen el mismo número de bits na n b=n.
Pongámonos, a su vez, en el peor de los casos a la hora de realizar la suma, esto es, los números
A y B son todo 1's . El resultado de la suma provocará un acarreo en los bits más significativos,
por lo que necesitaremos 1 bit más para almacenar el resultado, n+1 .
1 1 1 1 1 A
1 1 1 1 1 B
1 1 1 1 1 0
1 1 .. . 1 1 0 0 0 0 snb-I
. .. 0 1
Supongamos que el número A tiene más bits que el B (n a > nb). Llamemos S i , a los
resultados parciales procedentes de multiplicar el bit i del número B, por el número A (ver
figura anterior) .
El número de bits del resultado parcial S 0 es de n a ; el de S 1,n a +1 ; en general, el del S i ,
es n a + i. El resultado parcial con mayor número de bits es Snb-1, con n a + nb - 1 bits .
Por el apartado a) sabemos que la suma de los resultados parciales S 0 y SI, necesitarán
un resultado de n a +2 bits . Este resultado, sumado con S 2 ( que tiene n a +2 bits), producirá un
nuevo resultado que necesitará n a+3 bits . De forma sucesiva, llegamos sumando las resultados
parciales, hasta el último, Snb-1 . El tamaño del resultado de esta última suma, se necesitará
almacenar con un bit más de los que posee Snb-1, es decir, n a + n b -1 + 1 .
En resumen, el resultado de la multiplicación de dos números A y B de n a y nb bits,
respectivamentes es :
na x n = n a + n,
110 12
Jb 5 5 12
j 2712
131 2
1 6 ( 2
v,312
v 112.
v 0
110 (10 = 1101110 (2 , o bien , si utilizamos un byte para almacenar el número
110(10 = 01101110 (2-
73 12
`D 3 6 12
`0 181 2
`0 91 2
j 412
`0 2 2
`0 11 2
j 0
35 12.
,U 17 12
v v81 2 41 2
v 2 1 2
`0 1 1 2
v 0
35 10 = 00100011(2
Las sumas son :
01101110 110
+ 00100011 35
10010001 145
01101110 110
+ 01001001 73
10110111 183
Solución P2 .
a) Por substracción directa
1 1010 26
1101 13
01101 13
Por el complemento a 1
01 1010 +26
+ 110010 -13
1001100
L--> + 1
001101 +13
Por el complemento a 2
+ 011010 +26
110011 -13
.00 1 1 0 1 +13
í
b) Por substracción directa
11010 +26
- 1 0000 -16
01010 +10
Por el complemento a 1
011010 +26
+ 101111 -16
1001001
L--> + 1
001010 +10
Por el complemento a 2
01 1010 +26
_ + 110000 -16
>40010l0 +10
c) Por substracción directa . En este caso se genera un acarreo de salida ya que el
substraendo es mayor que el minuendo . Sabemos que el resultado debe ser un número negativo
cuya magnitud se puede obtener restando al número mayor, el menor .
Existe Borrow final 1
10010 18 10011 19
10011 19 - 10010 18
1 1 1 1 1 =9 0 0 0 0 1 1 Resultado -1
Por el complemento a 1
010010 +18
+ 101100 -19
111110 -1
Por el complemento a 2
010010 +18
+ 101101 -19
111111 -1
d) Por substracción directa
Existe Borrow 1
final . _ 000100 4 110000 48
1 10000 48 000100 4
1 1 0 1 0 0 =? 1 0 1 1 0 0 44 Resultado -44
Por el complemento a 1
0000100 +4
+ 1001111 -48
1010011 -44
Por el complemento a 2
0000100 +4
+ 1010000 -48
1010100 -44
Problema 3 .- Sea una ALU de 8 bits que entre otras operaciones realiza la suma sin signo
(SSS) y la suma en complemento a dos (SC2) . Indique justificadamente :
a) Dados dos números positivos A y B, ¿ da igual sumarlos mediante SSS que mediante
SC2?.
b) ¿En qué consisten y cómo se reconocen los errores de desbordamiento (oven7ow)?
En su caso, ¿cómo puede obtenerse el resultado correcto? .
c) Realice, si es posible, las siguientes operaciones indicando si es con SSS o SC2 .
1 . (-75) + 125
2. (-75) +(-125)
3. 75 + (-125)
4 .75+125
CIRCUITOS ARITMÉTICOS 149
Solución P3 .
a) Disponemos de dos números positivos A y B . En primer lugar determinaremos la
estructura de estos números en ambas notaciones . En SSS, los números son la representación
binaria de una magnitud . El rango oscila entre 0 y 255 para los 8 bits de la ALU . En SC2, los
datos están representados según el convenio basado en el complemento a 2 . Esto es, A y B
representan valores positivos y negativos, existe un bit de signo y sus valores van del -128
al +127 .
Para la comparación de las operaciones SSS y SC2 cabe distinguir varios rangos :
1) A+B < 127, esto es, la magnitud que representa la suma de los dos números es menor
que 128 . En este caso, tanto SSS como SC2 dan el mismo resultado .
2) 127 < A+B < 255 . En este caso el resultado que da SSS es correcto, pero no así SC2,
ya que la representación en esta notación necesitaría un bit más . El resultado sería interpretado
como un número negativo .
3) A+B > 255 . Este caso es absurdo para SC2, ya que, como máximo, la suma de dos
números positivos en Ca2 es de 254 . Para SSS existe un error en el resultado, porque las
8 salidas de la ALU son insuficientes para representar la magnitud de la suma .
b) Los errores de desbordamiento ocurren cuando se sobrepasa la capacidad de
representación de los sistemas, produciendo estos, resultados incorrectos . Para reconocer el
desbordamiento, disponemos de la señal de acarreo C 8 y de overflow V, que ofrecen la mayoría
de las ALU's . El bit de overflow es útil para operaciones en las que intervengan números
expresados en notación Ca2 . Se obtiene realizando la operación Exor entre el acarreo de la
columna de signo C 7 y el acarreo de salida C 8 : V=Exor(C 7 ,C 8) . Aclaremos este aspecto .
Supongamos que tenemos dos números positivos de 8 bits expresados en Ca2 . Si la suma de
los bits A6-0 y B6-0, es menor de 128, no se produce ningún acarreo C 7 =C8=O, y el resultado
es correcto, tal como muestra la figura :
C 8 =O C7=O
- ---------------
0 A6 A5 .. .
0 : B6 B5 .
0 : F6 F5 . . .
----------- -----------
Si la suma de los bits A6-0 y B6-0 es mayor de 127, se produce un acarreo C 7 =1 que
provocará que el resultado se interprete como un número negativo . Existe overflow o
desbordamiento . En este caso, como se puede observar, no existe acarreo de salida C 8=O .
C 8=0 C7=1
0 A6 A5 . . .
0 B6 B5 ...
0 F6 F5 ...
Cuando los dos números son negativos, se produce siempre un acarreo de salida que se
desprecia . En tal situación se producirá un overflow cuando, al producirse un C 7 =O, se obtiene
un resultado positivo :
150 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
C8=1 C7=0
: 111-
, 1
0' A6 A 5 . . .
0 B6 B5 ...
0 F6 F5 .. .
C8=1 C7 =1
`~` r- -1~
0 A6 A5 . . .
0 B6 B5 ...
0 F 6 F5 . . .
------------------------
Si damos un rápido repaso a las condiciones que producen desbordamiento V=1 en
función de C 7 y C8, comprobaremos que se cumple la expresión dada para V .
Dicho todo esto tenemos que :
1 ) En SSS sabemos que existe un desbordamiento cuando el bit de acarreo C 8 se
encuentre a 1 lógico, independientemente del bit V .
2) En SC2 sabemos que existe overflow cuando el bit V se encuentre a 1 lógico .
No obstante, en ambas notaciones es posible recuperar la suma correcta, utilizando
como noveno bit el de acarrero C 8 :
C 8F7F6F 5F4F3 F Z F 1 Fo
Mostremos a continuación la validez de esta solución para SC2 (para SSS es evidente) .
La suma A + B genera desbordamiento sólo en dos casos : si ambos sumandos son positivos
(A 7 = B7 = 0) o si ambos son negativos (A 7 = B 7 = 1) . Como el desbordamiento se elimina al
contar con suficiente número de bits, imaginemos que existe un noveno bit en la posición más
significativa (columna 8) . El valor de este hipotético bit será el del signo de los números
A 8 = B 8 = 0 en el primer caso y A 8 = B 8 = 1 en el segundo . Entonces, al sumar la columna 8
se tendrá 0 + 0 + C8 o 1 + 1 + C 8 , por lo que en ambos casos el hipotético bit de signo del
resultado correcto es F 8 = C8 .
c) Los tres primeros casos sólo pueden realizarse con SC2 ya que se trata de números
con signo, mientras que el último se realizará con SSS .
1) SC2(101 10101 + 01111101) . Las salidas de la ALU son 00110010, que representan
el número +50 . Se produce acarreo, C 8 = 1 que se desprecia en la aritmética en Ca2, y el bit de
overflow, V, se encuentra a 0 porque los acarreos C 8 y C 7 están a 1 .
2) SC2(10110101 + 10000011) . Las salidas de la ALU son 00111000, que representan
el número +56 . Pero el bit V está a 1 (C 7 = 0, C 8 = 1) indicando que existe un error de
desbordamiento . El resultado correcto se puede obtener formando un número de 9 bits,
constituido por el bit de acarreo C8 como bit de signo, y los 8 bits del resultado,
A+B = 100111000 . Esto representa el número -200, lo cual es correcto .
3) SC2(01001011 + 10000011) . Las salidas de la ALU son 1100 1110, que representan
el número -50 . No se produce acarreo C8 y V=O .
4) SSS(01001011 + 01111101) . Las salidas de la ALU son 11001000, que representan
la magnitud correcta, 200 . No se produce acarreo de salida C 8=0 . Si se hubiese realizado
SC2(01001011 + 01111101) las salidas de la ALU también son 11001000, pero V = 1
indicando desbordamiento .
Problema 4.-Muestre la palabra de 8 bits que representan los números +36 y -36 en las tres
notaciones (S-M, Cal, Ca2) . Represente también el resultado de multiplicar por dos y de
dividir por dos, esos números . ¿ Qué relación hay entre la palabra inicial y la final?
Solución P4 .
a) Para números positivos:
En las tres notaciones se representan de igual forma los números positivos . Por tanto :
+36 - 00100100 (+36) x 2 = +72 - 01001000
(+36) _ 2 = +18 -3 00010010 .
En general, la multiplicación por 2 equivale a desplazar el número hacia la izquierda
introduciendo un 0 como bit menos significativo y conservando el bit de signo ; esto puede
comprobarse comparando las representaciones de +36 y +72 . Análogamente, la división por 2
equivale a desplazar hacia la derecha introduciendo un 0 como bit más significativo de la
magnitud y conservando el bit de signo ; se puede comprobar con +36 y +18 . Gráficamente
estas operaciones admiten la siguiente ilustración :
0
x2 S c 0
=2 S?
1
(-36) --.2=-18 - 11101110 ; en general, - 2 --.2
Ur
Solución P5.
a) 22 x 18 = 396
10110 22
x10010 18
101100
101100000
110001100 396
b) Desplazamos a la izquierda tres veces los bits del número 75 e introducimos un 0 por
la derecha cada vez que realicemos un desplazamiento .
75 = 1001011 ; 75 x 8 = 1001011000
c) 18 x 40 = 720
101000 40
x10010 18
1010000
1010000000
1011010000 720
d) Dividir un número A entre una potencia de dos equivale a desplazar hacia la derecha
los bits del número A . Así 61 _ 16 = 111101 - 10000 = 11 .1101 . Este resultado representa el
número 3 .8125 .
e) 168 _ 14 = 12
1010100011110
-1110 1100
01110
- 1110
0
f) 168=20=8 .4
10101000 110100
-10100 1000 .0110 . . .
100000
- 10100
11000
-10100
01000
Problema 6.-Las sumas y restas en complemento a 10 tienen las mismas reglas que las
sumas y restas en complemento a 2 .
a) Represente +149 y -178 en complemento a 10 con 4 dígitos, el más significativo de
los cuales actúa como "dígito de signo" .
b) Sume (+ 149) +(-178) en complemento a 10 .
c) Represente+ 149 y -179 en BCD bajo complemento a 10, usando un bit como signo .
d) Sume en BCD y complemento a 10 (+ 149) + (-178), interpretando la respuesta .
Solución P6.
a) El complemento a 10 de un número A, para n dígitos, viene determinado por la
expresión CalO(A) = 10 ° - A . Por ejemplo, para n = 4 el Cal0(9876) = 104 - 9876 = 0124 ; y
el Cal0(4342) = 5658 . Para representar números decimales con signo en el convenio basado
en el Cal 0 se procede como en el caso del Ca2 ; esto es, +N se representa como N(10 y -N, como
CalO(N) . En consecuencia :
+ 149 -* 0 1 4 9 : el dígito 0 se corresponde con el signo +
- 178 - Cal 0(0178) = 9 8 2 2 : el dígito 9 corresponde con el signo -
b) Realizamos, ahora, la suma . Con idéntico criterio que en Ca2, si se produce un
acarreo, se desprecia .
0149
+9822
9971
En nuestro caso el primer dígito es 9 lo que significa que el resultado es negativo . Para
conocer la magnitud del resultado aplicamos, nuevamente, la definición del Calo :
Cal 0(9971) = 0 0 2 9 . El resultado, por tanto, es el -29 .
c) Si representamos los valores anteriores codificados en BCD, utilizando un único bit
para el signo (0 para los positivos y 1 seguido del Calo para los negativos), nos queda :
+ 149 - 0(149) B C D = 0000101001001
- 178 -* 1 Ca 10(178) BCD = 1(822) = 1100000100010
154 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
Obsérvese que, al sumar los 4 bits del dígito menos significativo, se produce un
resultado que no es BCD . La aritmética BCD exige en estos casos que se añada la cantidad 6
para obtener el resultado correcto . Esto provoca un acarreo hacia el siguiente dígito BCD . El
resultado final es 1100 10 111000 1, que corresponde a -029 (el primer bit 1 indica que es
negativo y los otros 12 bits, en BCD, equivalen a 971 por lo que el resultado es
-Ca 10(971) = -29 .
Problema 7.-La substracción binaria directa F=A-B produce una diferencia correcta si A es
mayor o igual que B. ¿ Cuál podría ser e/ resultado sí A es menor que B ? . Determine la relación
entre el resultado obtenido en F y el bit de borrow en la posición más significativa .
Borrow final=l
1010 A
-1111 B
1011 F
Problema 8.-Diseñe a nivel de puertas un sumador completo de tres bits (además de posibles
acarreos) . Utilizando el diseño anterior, realice un sumador paralelo de 3 números de n bits .
Solución P8 .- El sumador completo a diseñar debe tener como entradas en cada etapa los bits
de los tres números y el acarreo generado en la etapa anterior . Debe generar la suma de las
entradas anteriores y el acarreo de salida hacia la siguiente etapa . Para determinar el número
de bits que será necesario utilizar para el acarreo, vamos a realizar una suma de tres números
que son todos 1's :
Acarreo 2221
11111
11111
. ..11101
..
Como puede observarse, en el peor de los casos cada celda sumadora de 3 bits debe
sumar los tres l's de los números, y añadirles un acarreo de como mucho 2 . Para codificar los
posibles acarreos, necesitaremos dos bits . Por tanto la celda a diseñar tiene 5 entradas y
3 salidas . Nótese que es imposible que se genere, en ningún momento, como acarreo, la
magnitud 3 :
Xj
yi
F;
Sumador
zl completo
Co
co Cl
cl
Xi Yj Zi
c lco 000 001 011 010 110 111 101 100
00 0 1 0 1 0 1 0 1
01 1 0 1 0 1 0 1 0
Fj
11
10 0 1 0 1 0 1 0 1
Fj = x, O+y, ®z, (D c o
156 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
xi yi Zi
000 001 011 010 110 111 101 100
CICO
00 00 00 01 00 01 01 01 00
01 00 01 01 01 01 10 01 01
C' Co
11
10 01 01 10 01 10 10 10 01
Problema 9.-La ALU de 4 bits de la figura se incluye dentro de un Cl . Muestre las conexiones
entre 3 Cl pra formar una ALU de 12 bits . Asigne los arrastres de entrada y salida en la ALU
de 12 bits .
1111 1111
A 3 A2 A Ao B B B, B o s2
SI
Co E ALU
SO
F 3 F2 F I Fo Ci
W W W
Solución P9 .- Para formar una ALU de 12 bits nos basta con 3 ALU's de 4 bits . En ellas
conectaremos los distintos grupos de 4 bits de las entradas A y B de 12 bits . Por otro lado, las
señales de control de las tres deben ser idénticas, por lo que irán interconectadas . Por último,
cuando se realicen operaciones aritméticas, será necesario que cada ALU conozca si la ALU
anterior ha generado un acarreo o no para añadírselo a su suma parcial . Por tanto se sugiere
una estructura de acarreo en serie . El circuito resultante sería :
A7- B A B
A11-8 B11-8
1111 1111 1111 1111 1111 1111
S2 S2
2 S2
ALU S 1 ALU SI ALU SI
S1
So SO SO
So
Ci Ci C,
Cin
1111 1111 1111
Cout F11-8 F7-4 F3-o
Problema 10.- Diseñe un circuito aritmético con dos variables de selección s, ys o que realice
las siguientes operaciones aritméticas . Indique una solución para una etapa típica .
S 1 SO Ciñ 0 C ¡'=1
0 0 F=A+B F=A+B+1
0 1 F=A F=A+ 1
1 0 F=B F=B+1
1 1 F=A+B F=A+B+1
Solución P10.- Daremos una solución basada en un sumador de n bits con entrada de acarreo,
a cuyas entradas a y b habrá que conectar los datos adecuados en función de s1 y s o . En
concreto, si sls0 = 00, las entradas a y b tendrán los números A y B respectivamente ; si
s1s0=01,a=Ayb=0 ; si s1s0=10,a=Oyb=B ;ysislso=11,a=Ayb=B .
Una solución con subsistema consiste en utiliza dos grupos de multiplexores de
4 canales cuyas salidas se conectarán con la entrada a o b y, en función de sus señales de
control, se escogerá el canal que tenga el dato apropiado para la operación :
AAO A B OB B
S1
SO
Bi
SI
SO
Hay que diseñar el circuito combinacional (C .C .) de modo que, en función de los valores
de control s i s 0 , y los bits i de los números A y B, permita suministrar las entradas adecuadas
a; y b i del sumador completo, para que su salida se corresponda con la operación especificada .
Podemos obtener, sin mayor dificultad, el K-mapa del C .C . :
Bi
s 1 s0 00 01 11 10
00 00 01 11 10 a;=A; b ;=B ¡
01 00 00 10 10 a;=A; b 1 =0
01 00 10 11 a ;=A ; b ;=B1
11
10 01 00 00 01 a ;=0 b1 =Bi
al b i
a ¡ = A i s, +A is 0
b . = B i s l s„ + b i s 1
Problema 11 .- Se desea obtener el valor de un número binario sin signo A, de 8 bits (A=A7_ 0),
multiplicado por 129.
Solución P11 .
a) Realizaremos, en primer lugar, la multiplicación entre los dos números :
A7 A6 A5 A4 A 3 A 2 A l A0
1 0 0 0 0 0 0 1
A7 A6 A5 A4 A 3 A 2 A l A0
A7 A 6 A 5 A 4 A 3 A 2 A l A0
A 7 A 6 A5 A4 A3 A2 A l Ao
1 0 1 0 0 0
A 7 A6 A5 A4 A 3 A 2 A l A0 0 0 0
A7 A6 A5 A4 A3 A 2 A 1 A 0
Z13 Z12ZIIZIOZ9 Z 8 Z7 Z6 Z5Z4 Z3 0 0 0
Los tres bits menos significativos del resultado son 0 . Los dos bits siguientes, coinciden
con los bits menos significativos del número A . A partir de aquí, el bit Z5 debe obtenerse
sumando A 0 con A 2, lo cual puede obtenerse con semisumador ; el bit Z6 , sumando A 1 con A 3
más el posible acarreo anterior, lo cual debe hacerse con un sumador completo . Utilizaremos
sumadores completos para obtener los bits Z 5 hasta Z10 . Los bits Z11 y Z12 pueden obtenerse
con semisumadores y el bit Z 13 corresponderá con el acarreo del último semisumador . El
circuito resultante es :
A7 A A6 A4 A5 A3 A4 A 2 A3 A1 A2 A 0 A 1 A0
b b b b b b b b
HA HA FA FA _ FA FA FA HA
Co Co Co Ci Co Ci Co Ci _ Co Ci Co Ci - Co 0 0 0
s s s s s s s s
III
Z13 Z12 Z11 Z10 Z7 Z6 Z5 Z4 Z3 Z 2 Z I Z 0
Problema 12.- Se dispone de una ALU de 8 bits muy simple, ya que sólo hace las
operaciones de "suma " y " transfiere el complemento", como se indica en la figura adjunta :
A B
F
Cout
A+B
V A+B+1
A
F
Considere dos números con signo de 16 bits (K y L), representados en complemento
a dos . Cada uno está escrito en dos palabras de 8 bits, una con la parte más significativa (H)
y otra con la menos significativa (L), es decir, (K= KHKL y L=LHLD.
a) Utilizando una sola AL U, indique justificadamente, qué hay que realizar para obtener
M=K+L (M=MHMÜ incluyendo la posibilidad de desbordamiento (overflow) . No hay que
explicar cómo se almacenan los resultados intermedios, sino que, simplemente, hay que decir
que se almacenan .
b) Repita el apartado anterior para obtener M=K-L .
c) Diseñe la ALU con puertas y sumadores completos (FA) de 1 bit.
Solución P12 .
a) Para realizar la suma de los dos números de 16 bits, tendremos que hacerlo en dos
etapas : primero la parte menos significativa y, segundo, la parte más significativa . Los
números pueden ser positivos o negativos, puesto que están representados en Ca2 . Por tanto es
la salida V de la suma más significativa la que nos determinará la existencia o no de un
overflow .
1) Introducimos por las entradas A y B los bytes K L y L L , respectivamente. Las señales
de control de la ALU deben ser XC in = 00 . Por la salida F, obtendremos el byte menos
significativo del resultado, M L que se almacenará. Lo mismo se hará con el acarreo de salida
generado Cout = C8-
2) Introducimos por las entradas A y B los bytes K H y LH , respectivamente . Las señales
de control de la ALU son XCin = OC 8 , de forma que si en la etapa anterior se generó acarreo,
C 8 = 1, se calcula la operación A+B+1 y en caso contrario, A+B . La salida F corresponderá
con el byte significativo del resultado M H . Llamemos C 16 , al acarreo que se haya generado en
Cout .
3) Es en este momento cuando debemos evaluar la salida V de la ALU para determinar
la existencia de overflow :
Si V=0, no existe overflow y el resultado correcto de la suma K+L está en M .
Si V=1, existe overflow y el resultado correcto de la suma K+L está en el número de 17
bits formado por C 16M .
b) Para realizar la diferencia K-L, calculamos previamente el complemento a 2 del
número L, el cual se lo sumamos a K . La ALU no permite calcular el Ca2 de un número, sólo
Cout
S I SO Operación
SI
t
00 F = AND(A,B)
SO 01 F = A+Ci n
10 F = A+B+C in
11 F = A+B+C in
162 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
Solución P13 .- El valor pedido, IX - YI, se obtiene con X - Y si X > Y y con Y - X = -(X -Y)
si X < Y . Para obtenerlo hacemos A = X, B = Y, C i„ = 1 y s i so = 11 . Así se realiza la
operación F = X + Y + 1 = X + Ca2(Y) = X - Y . Como ambos números son positivos no hay
desbordamiento aunque existen dos opciones : X > Y, en cuyo caso F muestra IX - YI, y
C0,t = 1 ; y X < Y, en cuyo caso F = X - Y es un número negativo y C o„t = 0. Por tanto, si
C0,t = 1, la salida F proporciona directamente el módulo de la diferencia y si C o„t = 0 habrá
que realizar algunos pasos adicionales para obtener la salida deseada . Aquí presentamos dos
opciones :
a) Repetir el proceso anterior pero cambiando las entradas, esto es, A = Y, B = X,
;,,=1ys 1 so =11 .
C
b) Reintroducir el resultado anterior F = X - Y por A y aplicar las entradas C i„ = 1 y
s 1 so = 01, en cuyo caso obtendremos a la salida F = A+1 = Ca2(A) = Y - X.
Problema 14.- Realice las siguientes sumas sin pasar a la base decimal :
a)1110(2 +1001 (2
b) 100.1(2 + 111 (2
c) F02B( 16 +1021 (16
d) 1230(4 + 23(4
Solución P14.
a)
b)
1011 .1
c)
1
F02B(16
+ 1021 (16
1 0 0 4 C06
d)
1
wn
1230 (4
+ 23 (4
1313 (4
Problema 15.- Multiplique los números del problema anterior sin pasar a la base decimal .
Solución P15 .
a)
b)
100 .1
x 111
1001
1001
1001
11111 .1
F02B (1 6 2 x B = 16(16
x 1021(16 2 xF =1 E(16
F 0 2 B
1E056
F02B
F21 A 58 B(16
1230 (4 3x3=21 (4
+ 23(4 3x2=12 (4
11010 2x2=10 (4
3120
102210 (4
Solución P16.
1)
a) 1
0101010 42
• 1110010 -13 b) 0101010 42
+ 1110011 -13
0011100
• > 1 0011101 29
0011101 29
a) 0101010 42 b) 0101010 42
+0001101 13 + 0001 101 13
0110111 55 0110111 55
3)
1
a) 1010101 -42 b) X
1010110 -42
1110010 -13 -13
+ 1110011
1000111 1001001 -55
> 1
1001000 -55
4)
Problema 17.- Realice las siguientes operaciones utilizando 10 bits, 3 de ellos para la parte
fraccionaria, usando la notación en complemento a 2 . Compruebe el resultado verificando los
posibles errores.
• (+22.25) + (+13.13)
• (+22.25) - (+13.13)
• (-22 .25) + (+13.13)
• (-22.25) - (+13.13)
Solución P17.- La cantidad 22 .25 se representa en binario como 10110 .01 . La cantidad 13 .13
se representa como 1101 .00100010. .. Puesto que sólo tenemos 7 bits para almacenar la parte
entera y 3 para la parte fraccionaria de los números, su representación será
22.25 = 0010110 .010 y 13 .13 = 0001101 .001.
a)
El resultado que se lee tiene un error de 0,005 con respecto al resultado correcto, 9 .12 .
c) Determinaremos, primero, el Ca2 de 22 .25
Ca2(0010110.010) = 1101001 .110
1101001 .110 -22 .25
+ 0 0 0 1 1 0 1 .0 0 1 13.13
1110110.111 -9 .125
El resultado se obtiene con un error de 0 .005.
d)
Problema 18.- Se dispone de circuitos lógicos ITE. Estos circuitos poseen tres entradas y
una salida, y realizan la siguiente función de conmutación ITE(f,g, h)=f g + T h. Realice la etapa
típica de una unidad lógica que responde a la siguiente tabla, según la organización indicada
en la figura y utilizando, exclusivamente, MUX 4:1 en el C. C. . Las entradas se disponen en
raíl doble.
S2 S i S o F¡
0 0 0 A¡ A¡
0 0 1 B_
0 1 0 A¡Bi B¡
I
0 1 1 Ai +B ¡ S2 C .C . g T
1 0 0 A¡ B i
Si E Fi
101 A¡ +B i
1 1 0 Exor(A¡ ,B ¡ ) S
1 1 1 Nexor(A¡,Bi )
Solución P18 .- Se pueden dar múltiples soluciones a este problema. La que presentamos
consiste en hacer g = 1 y h = 0 en el ITE de salida, con lo que F i = f es la única función que
debe realizarse con el C .C . Para diseñar C .C . con multiplexores representamos F ; en un mapa
binario natural :
s2 SI s 0
01 0 0 0 1 0 1 1 0
10 1 1 0 1 1 0 1 0
11 1 0 0 1 0 1 0 1
f = F¡
1
2
310 1 g
11 0
A¡ B¡
11
s2 s1
Problema 19.- Diseñe un circuito aritmético con una variable de selección s y dos entradas
de datos A y B de 4 bits . Cuando s = 0 el circuito realiza la operación de suma F= A+B.
Cuando s = 1, el circuito realiza la operación de incremento F=A +1 .
Solución P19 .- Utilizaremos un sumador de 4 bits, en el que una de las entradas será el
número A y en la otra el número B para s = 0 y el número 0 para s = 1 . Asimismo conectaremos
S al acarreo de entrada C i „ para generar F = A+ 1 cuando s = 1 . El circuito de la figura siguiente
deja pasar aB si s=0y da un0si s= 1 :
3-
3
SS
I1.
Sumador C; n
4 bits
Problema 20.- Para la ALU de 8 bits de la figura, determine la salida F para todas las com-
binaciones posibles de s2 s, s o si las entradas A y B contienen los números binarios $23 y
$FO, respectivamente, y el acarreo de entrada es 0 .
s2 s1 s0 Operación
A7-o B7-0
000 F = AND(A,B)
001 F = OR(A,B)
s2 010 F = EXOR(A,B)
SI
t 011 F = NOT(A)
SO
100 F = A+B+C ;,,
101 F = A+ B+C ;,,
110 F = A+ $FF +C ;,,
111 F=A+C in
Solución P20 .
a) s 2 S 1 so = 000 . F = AND($23,$F0) = $20 .
b) s2 S 1 s o = 001 . F = OR($23,$F0) = $F3 .
c) s 2 s 1 so = 010 . F = EXOR($23,$F0) = $D3
d) s2 s 1 s o = 011 . F = NOT(A)=$DC .
e)s 2 s 1 so=100 .F=A+B+C;,,=$23+$F0=$13yC o „ t =1 .
f) S 2 S 1 s o = 101 . F = A + B + C ;,, = $23 + $OF = $32 y Cout=0 .
g) s2 s 1 s o = 110 . F = A + $FF+ C;,, = $23 + $FF = $22 y Cout =1
h) s2 s 1 s o = 111 . F = A + C i „ = $23 y Cout=0 .
Capítulo 7
Las "situaciones" en las que puede estar un circuito secuencial no son ilimitadas . Entonces,
para caracterizar al circuito es posible establecer un conjunto finito de estados internos (o sim-
plemente estados), S 1 , S 2, ... S k, cada uno de los cuales representa una de las "situaciones" del
circuito . La salida y la evolución del sistema quedan bien establecidas si se conoce el valor de
las entradas (estado de entradas Ij) y el estado presente (S i ). El valor de la salida O admite dos
modelos :
- De Mealy, en el que la salida depende tanto de la entrada como del estado presente,
cumpliéndose que O = O(h, Si).
- De Moore, en el que la salida depende sólo del estado presente, O = O(S i).
La evolución del sistema viene marcada por el cambio desde el estado presente S i al
próximo estado NS que en ambos modelos depende de la entrada y del estado presente :
NS = NS(Ip S i) .
La representación de una máquina secuencial suele hacerse mediante grafos o tablas de
estados/salida, de la forma siguiente :
169
NS
O(NS)
Ii O
Si NS O(S i )
Mealy Moore
CIRCUITOS SECUENCIALES
La realización de máquinas secuenciales con circuitos digitales es lo que se conoce como cir-
cuitos secuenciales . En ellos, los estados de entrada 1 corresponden a valores de las señales de
entrada X, los de salida O a las señales de salida Z y, también, los estados internos correspon-
den a valores "0" y "1" sobre un conjunto de variables llamadas de estado . Esto es, cada estado
tiene asignado un código binario sobre las variables de estado del circuito . Éste se representa
mediante la denominada tabla de transición de estados/salida, la cual es similar a las anteriores
(de estados/salida) sin más que sustituir cada estado por el código binario asignado (S i -~ q,
donde q = q l . . . qn ; análogamente, NS -> Q) .
La evolución desde un estado presente a un próximo estado, lo que simplemente es pasar
de un valor a otro en las variables de estado, puede realizarse de múltiples formas . La más
común es disponer de un circuito específico, llamado biestable porque tiene dos estados
estables (el 0 y el 1), que implementa una variable de estado .
Cada biestable muestra en su salida el estado 0 ó 1 almacenado, que corresponde al valor
presente en la variable de estado implementada en ese biestable . Para cambiar de valor alma-
cenado y así poder hacer el cambio al próximo estado, los biestables poseen unas entradas de
excitación (normalmente llamadas SR, JK, D o T) . A su vez, este cambio de estado puede ha-
cerse de forma asíncrona o síncrona, en cuyo caso el cambio de estado es controlado por una
señal de reloj (clk) . Una vez elegido el tipo de biestable, la máquina se describe por la deno-
minada tabla de excitación/salida . En esta tabla, la representación de los cambios de estado se
hace mediante el valor de las entradas de excitación que hay que poner en cada biestable para
que cambie adecuadamente su valor almacenado ; por ej ., para biestables T, la tabla de excita-
ción tiene la forma :
X Ii
Ti junto con el estado presente q i
producen el adecuado Q i
X Circuito Z
combinacional
q
Banco
de
biestables
Excitacio nes de los biestables
clk 11 (por ej T
BIESTABLES
En esta breve introducción nos centraremos únicamente en los biestables más comunes . Desde
el punto de vista lógico los cuatro biestables más usuales son :
aa 90
00 01 11 l0
1 1
SóJ - q
a aa 1 1 0 1
Q
RóK- q
q
Q
Tabla de transición biestable D Tabla de transición biestable T Símbolo lógico
Desde el punto de vista temporal, las formas síncronas de los biestables son :
- Disparados por nivel (a veces llamados latches síncronos): en estos biestables uno de
los dos niveles de la señal de reloj habilita los cambios de estado (según la tabla de estado del
biestable), mientras que durante el otro nivel no hay cambio de estados (Q = q) .
- Disparados por flancos (a veces llamados flip flops) : en estos biestables los cambios
de estado se producen siempre tras uno de los flancos de la señal de reloj . Existen dos estruc-
turas :
- Master-Slave en la que el biestable puede captar valores de entrada durante el ni-
vel previo al flanco activo .
- Edge-triggered, en el que las entradas sólo afectan en el entorno del flanco
activo .
q
clk 1 clk clk
(Latch, nivel H) (Master-Slave, flanco bajada) (Edge-triggered, flanco subida)
172 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
La mayoría de los biestables síncronos incorporan una o dos señales de excitación asín-
cronas para la puesta a 1 (preset) o a 0 (clear) del biestable . Operan de forma similar a las se-
ñales S y R . El biestable debe tener las entradas asíncronas desactivadas para poder operar sín-
cronamente .
El problema del análisis de un circuito secuencial tiene como dato el circuito y, a veces, la
secuencia de valores de entrada . Como objetivo, hay que determinar la tabla o grafo de
estados/salida ; a veces, también una descripción verbal de la operación que realiza y, en otros
casos, un diagrama temporal de la evolución entrada-salida .
Si el circuito secuencial obedece al esquema general presentado previamente, (síncrono
con una sola señal de reloj), el proceso de análisis es : 1 °-) se determinan las ecuaciones de ex-
citación y de salida por análisis de la parte combinacional del circuito global ; 22) se represen-
tan esas funciones en forma de tabla (de excitación y de salida) ; 32) a partir de ésta, se obtiene
la tabla de transición sin más que tener en cuenta la tabla de estados de los biestables involu-
crados ; 42 ) se obtiene la tabla de estados/salida, sin más que asociar un símbolo de estado a
cada código de las variables de estado ; en su caso ; 52) se dibuja el grafo y se interpreta, y 6r° )
se determina la secuencia entrada-salida .
Si el circuito secuencial no obedece al esquema general, el análisis se debe llevar a cabo
mediante la obtención de cronogramas de las señales de estado y de salida .
PROBLEMAS RESUELTOS
D
De aquí obtenemos la expresión para D : D = J • q + K q . El circuito correspondiente
se muestra en la figura:
K-
L &
J- &
F
Para el biestable T procedemos de idéntica manera .
elh D 9
q
a a u E
Q
La ecuación de entrada al biestable D es : D = T - q + T • q
L & _q 1
-1-- q
r
Problema 2.-Se pretende construir un circuito como el de la figura, el cual podrá actuar como
RS, D, T o JK dependiendo del valor de C, y C o (ver tabla). Diséñelo utilizando como único
elemento de memoria un biestable tipo T.
C, Co I, lo
C, - - Q
Co - 0 0 R S
0 1 D -
1 1 1 0 T
I1 l o 1 1 J K
Solución P2.- Este problema se reduce a obtener los distintos tipos de biestables a partir del
T . Procediendo de forma similar a como se hizo en el emblema 1, obtenemos las siguientes
ecuaciones de entrada :
T = S q + R q
T = J q+K q
T = DOq
Asociando cada ecuación con el caso correspondiente C 1 Co e identificando las entradas
1 1 e lo con las del biestable en cada caso, se tiene :
C 1 C o =00 T = l o • q+1, q
C 1Co=01 T = I, O+ q
CICO = 10 T = T
C 1 C o =11 T=1, •q +lo •q
Combinando estas expresiones en una sola :
T= (I, •q +I,, •q ) •C , •C„+(I,O+q) •C , •C„+T •C, •C„+(1, •q +l„ •q ) •C , •CO
Esta expresión, nos permite realizar el circuito utilizando un multiplexor, cuyas entradas
de selección son C 1 y Co.
clk
S 1 1 n
R 1
Solución P3.
a) El biestable Master-Slave está formado internamente por dos latches SR, tal como se
muestra en la siguiente figura :
Master Slave
S- S q Ss qs
R- R s qs
clk f
El biestable amo (Master) es disparado por el nivel alto de la señal de reloj y recibe las
entradas del conjunto Master-Slave . Sólo puede cambiar de estado cuando clk = 1 y lo hará
dependiendo de sus entradas de excitación .
El biestable esclavo (Slave) sólo lo hará si clk = 1 (clk = 0) . Sus entradas son las salidas
del amo, por lo que sólo se pueden dar las combinaciones SR=10 (puesta a 1) y SR=01 (puesta
a 0) . Las salidas q s del esclavo son las salidas del conjunto Master-Slave .
Para resolver este problema, vamos a representar las formas de onda de salida del
biestable amo y del esclavo .
to t1 t2 t3 t4 t5
clk
qm
q = qs A 1 E-
Los dos biestables comienzan por un estado desconocido representado por la banda
rayada en el gráfico anterior . Cuando clk = 1 el biestable amo puede cambiar de estado, y el
cambio ocurre como consecuencia del cambio en la señal S, dado que este valor de entrada
(S m = 1) fuerza a que q,,, = 1 . En el intervalo [t 1 ,t 2 ], clk = 0, con ello el biestable Master
mantiene su estado inalterable, y el Slave lee en sus excitaciones los valores 10
(SsRs = gmgm = 10) por lo que q s toma el valor lógico 1 . En el intervalo [t 2 ,t 3 ], clk = 1 .
A principio del intervalo, SR = 00 por lo que el Master mantiene el valor del estado en el que
estaba, pero el cambio que ocurre en Rm provoca un cambio en q,,, que toma el valor 0 . Durante
[t 3 ,t 4 ] clk = 0, el amo mantiene su estado y el esclavo cambia a 0 ya que sus entradas SsRs = 01 .
Con este razonamiento se continúa deduciendo la evolución temporal del biestable
Master-Slave la cual se muestra en la figura .
b) En los biestables disparados por flanco el proceso es diferente . Sólo se tiene en cuenta
las entradas existentes en el momento que se genera un flanco activo en la señal de reloj . Estas
entradas, y el estado presente del biestable, determinan el próximo estado . En el caso de que
exista una transición de entradas en el flanco activo, se tomarán como valores válidos, los
inmediatamente anteriores al flanco . En la siguiente figura se representan las formas de onda
del biestableRS disparado por flanco negativo .
clk
to t3
S 1 1
R 1
q 1
Hasta el instante t o , el estado del biestable es desconocido . En ese instante, las entradas
al biestable son SR = 10 por lo que, en el próximo ciclo de reloj, la salida del biestable se pone
a 1.
En el instante t 1 , las entradas son SR = 01, esto implica que, durante el siguiente ciclo
de reloj, la salida es 0 .
En el instante t 2 , las entradas son SR = 00 por lo que se mantiene el estado .
Para el instante t 3 , las entradas son nuevamente SR = 00, por lo que se mantiene el
estado .
c) Para flanco positivo se opera de igual forma .
clk
to 3
S I I
R 1
Problema 4.-Para cada uno de los circuitos de la figura, justifique razonadamente si es válido
como biestable para realizar cualquier circuito secuencial .
a & q a _1 a
L r=
1 & 1
(a)
(b) (c)
Solución P4 .- Para que los circuitos de la figura puedan ser utilizados como elementos de
memoria en los circuitos secuenciales, deben ser capaces de almacenar dos estado estables : el
0 y el 1 y permitir el cambio de uno a otro . Esto es equivalente a decir que estos elementos
deben tener la posibilidad de realizar cualquier tipo de transición : 0 ---3 0, 1 -3 1, 1 -> 0,
0 --> 1 .
El circuito de la figura (a) presenta el siguiente K-mapa, donde se puede observar que
no existe la transición 0 -3 1 .
ANÁLISIS DE CIRCUITOS SECUENCIALES 177
ab
00 Ql 11 10
0 0 0 0 0
1 0 0 1 0
Q
SI obtenemos el K-mapa para el circuito de la figura (b), podemos observar que no
existe transición de 1 - > 0 :
Q
El circuito de la figura (c), es el único que permite las cuatro transiciones posibles, por
lo que puede ser utilizado, como elemento de memoria . Su k-mapa se muestra a continuación :
ME
ama
Problema 5.-Analice el circuito de la figura :
1 q2
2 _ D3 ci
Y-
T n
q2
1 q3
0-
1
X
J q
Y
X- K q
clk
Solución P5.- Cuando se analiza un circuito secuencial se tiene como objetivo determinar su
operación .
Los pasos del método de análisis son :
a) Obtener las ecuaciones de excitación y de salida . Cada una de las entradas (excitacio-
nes) de los biestables así como las distintas salidas que posea el circuito se expresan mediante
ecuaciones algebraicas cuyas variables son las de entrada al circuito y las variables de salida
de cada uno de los biestables (variables de estado presente) . En nuestro caso :
J, = Y • q3 K,=X T2 = Y .(X+Og 3 ) = X .Y .g 3 +X .Y .g 3
XY
q 1q2q3 00 01 11 10
000 00,0,1, 1 00,0,1, 1 01,1,1, 1 01,0,1, 1
001 00,0,1, 1 10,1,1, 1 11,0,1, 1 01,0,1, 1
011 00,0,1, 0 10,1,1, 0 11,0,0, 1 01,0,0, 1
010 00,0,1, 1 00,0,1, 1 01,1,0, 1 01,0,0, 1
110 00,0,1, 1 00,0,1, 1 01,1,1, 1 01,0,1, 1
111 00,0,1, 0 10,1,1, 0 11,0,1, 1 01,0,1, 1
101 00,0,1, 1 10,1,1, 1 11,0,1, 1 01,0,1, 1
100 00,0,1, 1 00,0,1, 1 01,1,1, 1 01,0,1, 1
J I K 1 ,T2,D3 , Z
XY
g1g2q3 00 01 11 10
000 001,1 001,1 011,1 001,1
001 001, 1 111, 1 101, 1 001, 1
011 011,0 101,0 110,1 010, 1
010 011,1 011, 1 000, 1 010,1
110 111, 1 111,1 001,1 011,1
111 111,0 101,0 011,1 011, 1
101 101, 1 111, 1 001, 1 001,1
100 101, 1 101,1 011,1 001, 1
Q1Q2Q3,Z
d) Obtener la tabla de estados/salida. Cada estado de la tabla de transición está dado por
las variables de cada uno de los biestables . Ahora, asignaremos a cada combinación binaria de
esas variables un símbolo concreto que identifique a ese estado . En nuestro problema, llaman-
do 0, 1, 2, . . ., 7 a los estados según la codificación g1g2q3 = 000, 001, 010, •••, 111, se obtiene
la tabla de estados/salida que se muestra a continuación :
00 01 11 10
1, 1 1, 1 3, 1 1, 1
1,1 7,1 51 1,1
3,1 3,1 01 2,1
3,0 5,0 6, 1 2, 1
5, 1 5, 1 3, 1 1,1
5, 1 7, 1 1,1 1,1
7,1 7,1 1,1 31
7 7,0 5,0 3, 1 3, 1
NS,Z
10,1
01,0
01,1
n n 1-,1
J 00,1
f) Expresar verbalmente el funcionamiento . Esto sólo tiene sentido en casos muy espe-
ciales . En nuestro problema no es aplicable .
Solución P6.- Sí, corresponde a una estructura de circuito secuencial síncrono (con 8 o me-
nos estados) ya que la ROM es un módulo lógico universal . Así, Z puede ser cualquier función
de la entrada y del estado presente, y D 3 , D 2 y D 1 pueden ser cualquier función de excitación
de las mismas variables .
Analizamos el circuito identificando la variable asociada a cada línea de entrada y salida
de la ROM . Así, tenemos :
A3A2A1 = q3q2q1, Ao = X, D 3 D2 D 1 = d 3 d 2d 1 y Z = Do
y podemos reescribir la tabla de contenido de la ROM :
A continuación escribimos la tabla de excitación y salida del circuito que coincide con
la de transición, ya que estamos utilizando biestables tipo D para los cuales se cumple Qi = Di :
ANÁLISIS DE CIRCUITOS SECUENCIALES 181
939291 0 1
000 101,0 101,1
001 011,0 100,0
010 011,0 110,0
011 011,1 011,0
100 010,0 011,1
101 110,1 000,1
110 100,0 010,0
111 101,0 100,1
D3D2D1,Z = Q3Q2Q1,Z
Pasamos a la tabla de estados y salida llamando 0, 1, 2, 3, 4, 5, 6 y 7 a los estados cuya
codificación es g3g2q1 = 000,001,010,011, ...,111 . El resultado es el siguiente :
0 1
5,0 5, 1
3,0 4,0
3,0 6,0
3, 1 3,0
2,0 3, 1
6, 1 0,1
4,0 2,0
5,0 4,1
NS, Z
clk
x
Y 1
q1 q2 00 01 11 10
00 0, 0 0, 0 1, 0 1, 1 1, 1 1,1 1, 1 0, 0
01 0,00,1 1,01,1 1,11,1 1,10,1
11 0,00,1 1,01,1 1,11,1 1,10,1
10 0,00,0 1,01,0 1, 1 1,0 1, 10,0
D 1 , J2 K 2 , Z
q 00 01 11 10
0 01,1
01,1
10,1
10,1
10,1
10,1
11,1
11,1
00,0 10,0 11,0 11,0
QiQ2, Z
\Y XY
S 00 01 11 10 00 01 11 10
a,0 d, 1 c, 1 c, 0 a a, 0 d, 1 c, 1 c, 0
b, 1 d, 1 d, 1 c, 1 c c, 1 d, 1 d, 1 c, 1
b, 1 d, 1 d, 1 c, 1 d a,0 d, 0 c, 0 c, 0
a,0 d, 0 c, 0 c, 0 NS, Z
NS, Z
Una vez conocida la secuencia de estados por los que pasa la máquina dibujemos la for-
ma de onda de la salida . Para determinarla, basta conocer el estado presente total (XY, S) y
mirar en la tabla de salida cuál es el valor de ésta . Como es un circuito de Mealy, la salida pue-
de cambiar, tanto cuando cambie el estado (flanco negativo de clk), como cuando cambien
cualquiera de las entradas X e Y .
clk
X __
S ? d c c c c c d c
Z 1
Problema 8.-Para el circuito de la figura, dibuje la forma de onda de la salida para las secuen-
cias que se muestran . Supongamos que el sistema parte del estado (q1,g2,q 3,) = (0,0,0) .
y l
clk 1
clk2
clk 1 S
clk2
Y 1
1
X
o
q1 Fo 0 4e o o o
q2 o F® Fo o F®
0
~ OO
q3 Fo Fo F
Problema 9.-En el circuito de la figura, las entradas A, 8, y C están todas inicialmente a cero .
La salida Y también está inicialmente a cero (0) y pasa a uno (1) después de una cierta
secuencia en el cambio de A, B y C a uno (1) .
a) Determine la secuencia que hará que Y pase a uno (1).
b) Explique por qué se necesita el pulso de Start.
J1 J2
>clk clk
K K
l CL C
u
Start
ANÁLISIS DE CIRCUITOS SECUENCIALES 185
Solución P9 .- Como K 2 = 0, las entradas del biestable Y sólo pueden ser J 2K2 = 00, en cuyo
caso el biestable no cambia de estado, o J 2K2 = 10, en cuyo caso Y = 1 .
Si inicialmente Y = 0 y se desea que pase a 1 necesitamos :
1-O) que J 2 = X sea 1
22) que el reloj del biestable X : C, suba a 1 (tenga un flanco de subida) .
Para cumplir la condición primera, de forma análoga, A debe subir a 1 y, después, B (re-
loj del biestable X) también debe subir a 1 .
Por tanto, la secuencia de cambios a seguir por las señales A, B y C es :
Cuando Y = 1, como J2K2 = 00 ó 10, no puede cambiarse el estado del biestable "Y"
mediante las entradas síncronas . De aquí que sea necesario ponerlo a 0 asíncronamente (Start)
cada vez que se desee que la entrada "Y" tenga un flanco de subida .
Problema 10.- Analice el circuito de la figura donde los biestables son disparados por flanco
y obtenga la secuencia que genera partiendo del estado inicial q1q2q3q4 = 1000 .
q1 q2 q3 q4
A
Di D q2 D3 D
clk
Este circuito posee bloqueo. Usando puertas lógicas, modifique el circuito (añadiendo
lo necesario) de forma que se evite el bloqueo :
1 . Utilizando las señales asíncronas de los biestables (no mostradas en la figura) .
2. Sin utilizar las señales asíncronas de los biestables .
¿ Qué ocurriría en el caso de que los biestables fuesen disparados por nivel?
Q1Q2Q3Q4
09009000
CI Goce***
Existe bloqueo en el funcionamiento del circuito, ya que si el circuito entrase en el es-
tado 0 nunca saldría de él .
Para eliminar el bloqueo basta detectar cuándo el sistema se encuentra en dicho estado,
y realizar alguna acción que lo fuerce a salir de él .
Planteamos dos soluciones distintas :
1) Solución asíncrona :
Activar la señal de preset PR de cualquiera de los biestables . De esta forma obligamos
a que el sistema cambie de estado asíncronamente .
2) Solución síncrona :
Se trataría de introducir un 1 por la entrada de alguno de los biestables forzando igual-
mente el cambio de estado .
Para detectar que nos encontramos en el estado 0 definimos una señal Z como :
Z = ql q 2 . q 3 . q4
De esta forma las soluciones asíncrona y síncrona aplicadas al biestable 1 son respecti-
vamente :
q4 - q4
Z - q3 - q3
- q2 - q2
PR
D 1 q1 D
Analicemos qué sucede si los biestables son disparados por nivel (por ejemplo, por el
nivel alto del reloj) . Cuando clk = 0 se mantendría estable el último estado almacenado y
cuando clk = 1 iría modificándose el estado de acuerdo con el grafo de estados . Esto se haría
al ritmo fijado por los tiempos de propagación de los biestables y puertas . Así, por ejemplo, si
clk = 1 durante 4 veces el tiempo de propagación de los biestables tendríamos que en cada
pulso habría 4 cambios de estados :
clk
S 13 6 9 4 4 4 2 1 8 12 12
q
D2
P q
q2 q3 -
K q3
clk
PM Q(t+1)
0 0 Q(t)
01 1
1 0 0
1 1 Q(t)
Solución P11 .
a) Ecuaciones de excitación :
P1 = q3 M1 = q1 +q3 D2 = q1 ED q3 J3 - g2'g3 K3 = 1
Z = g2-g3
De las ecuaciones de excitación pasamos a la tabla de excitación y salida :
9392 00 01 11 10
q
0 01,0,01, 0 11,0,01, 1 01,1,11, 0 01,1,11, 0
1 01,1,01, 0 11,1,01, 1 01,0,10, 0 01,0,10, 0
J 3K3,D 2 ,P 1 MI, Z
Pasamos a la tabla de excitación, a partir de las tablas de transición de cada uno de los
distintos biestables :
Q Q
q3q2 00 01 11 10
q1 0 001, 0 101, 1 010, 0 010, 0
1 011, 0 111, 1 000, 0 000, 0
Q3Q2Q1 , Z
Y como último paso del análisis la tabla de estados y salida, donde hemos llamado a los
estados 0, 1, 2, 3, 4, 5, 6 y 7 según la codificación de las variables de estado que se muestra :
q3q2q 1 = 000, 001, 010, 011, 111
S NS Z
0 1 0
1 3 0
2 5 1
3 7 1
4 2 0
5 0 0
6 2 0
7 0 0
Z :0 0 1 0 0 1 0
T T
secuencia que se repite
q -~> Q PM
a
0
_0 ó .-1 _
01
q
o
0
-0 ó 1-
1
0 1
1 0 1 10 0-ó- 1
0-6,-1 PM
---------------------------
Una solución es :
P=D
M=D
---------------------------
JK
q 00
0 - ó 1 -
0 -0 ó 1 - 01 01
1 0-ó- 1 1 0 1 0 0-ó- 1
Q PM
•
Una solución es : J P q
P=J •q
M=K .q q
190 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
Problema 12.- Obtenga los biestables JK, T y D a partir del biestable RS.
Solución P12 .
Solución P13.
J - D-
Solución P14 .
T 9
9
9 9
Problema 15.- Para las secuencias de entrada de la figura, encuentre la forma de onda de
salida para el caso de un biestable JK disparado por flanco negativo . Repítalo para el caso de
ser disparado por flanco positivo.
clk
K
ANÁLISIS DE CIRCUITOS SECUENCIALES 191
clk
q
00/1
clk 1
q
S
d3 - K q $ (A l A 0) f$1
A
d2
d, 0 F
A0 1 0
d D3
ROM 2 2
3 B
T2
clk
Solución P16.- Si denominamos a los distintos estados por los que pasa la máquina como se
muestra a continuación, podemos dar la tabla de estados correspondiente a este circuito se-
cuencial síncrono .
192 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
NS, Z
Problema 17.- Para el circuito secuencial de la figura, obtenga la forma de onda de la salida
Z correspondiente a la forma de onda X mostrada también en la figura . Parta del estado inicial
q1 q0 = 00.
X -
- L_ J q
q0 -
Tp _
X - K q q0
q0 -
clk
q0 -
X - q0
q1
q0 -
q1 -
clk
Solución P17.- Nombraremos a los estados del circuito de la forma mostrada a continuación,
y a partir de la tabla de estados obtenida deduciremos la secuencia de salida .
X
q1 q0 =00 S=0
g1g0= 01 S=1
q1 q0 = 10 S=2
g1g0 =11 S=3
NS, Z
clk
1 1 3 0 1 3 0
Problema 18.- Analice el circuito de la figura . Si inicialmente los biestables están a 0, indique
la secuencia de salida para la siguiente secuencia de entrada :
x: 1 1 1 0 0 0 (cada bit corresponde a un ciclo de reloj)
X
_
q1 -
q2
x
X -
q1 - J3 q
q2 -
X -
q1 -
K3 q
1
q2
q J2 q2
K K2
clk
Solución P18.- Tras el análisis del circuito obtenemos el diagrama de estados al que responde
la máquina secuencial . La codificación que se ha usado para cada uno de los estados es :
g1g2q3=000 S=A
g1g2q3= 001 S=B
0;0 O
0;0 01,0 O
919293=01 1 S=C O 0,1 1,0
g1g2q3=010 S=D ,
g1g2q3=110 S=E
glg2g3=111 S=F
0010 0,1
O
0,0
1,1
g1g2q3=101 S=G 0,0
g1g2q3=100 S=H 1,1
Para dar la secuencia de salida partiremos del estado inicial A (q1q2q3 = 000) y aplica-
remos la secuencia de entrada .
clk
x
S A C H E A D G
Z
1
clk
i
Y
Solución P19 .
clk __r-
x L
Zi
ML
Z2
Problema 20.- Analice el circuito de la figura y muestre la secuencia de salida para la secuen-
cia de entrada dada .¿ Qué ocurriría si los biestables son disparados por el nivel alto del reloj?
D q1 D q2
qi q2
clk
clk I I I I 1 I I I I I I I I I I I 1
1
Solución P20 .- Tras el análisis del circuito secuencial síncrono se obtiene la siguiente tabla de
estados como resultado . La codificación de los estados de la máquina secuencia) es :
q1 q2= 00 S=0
q1 q2= 0 1 S=1
q1 q2= 10 S=2
q1 q2 =11 S=3
NS, Z
clk
x
S 0 0 0 2 1 2 3 1 0 0 2 3 3 1 2 3 1 0 0 0 0 0 0 0
Si los biestables fuesen disparados por nivel se podrían dar múltiples cambios de estado
durante el nivel activo del reloj . El circuito funcionaría respondiendo a la tabla de estados dada
en la solución si se diseña el reloj clk con una anchura de pulso suficientemente grande para
que el biestable cambie una vez por ciclo del reloj, y suficientemente estrecha para que no cam-
bie más de una vez .
Capítulo 8
Existe un procedimiento formado por un conjunto de pasos que permite realizar este proceso
de una forma lo más sistemática posible . Este conjunto de pasos es el que se muestra en la
figura:
Descripción
verbal
l
Descripción formal :
Tabla o Diagrama de estados/salida
l Reducción de estados
Tabla mínima de estados/salida
1 Asignación de estados
Tabla de transición/salida
1 Elección de bi estables
Tabla de excitación/salida
l Síntesis de fun ciones combinacionales
Ecuaciones de excitación y de salida
i
Circuito
197
198 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
PROBLEMAS RESUELTOS
Problema 1 .-Construya la tabla de estados para una máquina de Mealy con una entrada X y
una salida Z, que detecte la llegada de tres ceros o tres unos consecutivos, dando una salida
Z = 1 coincidiendo con la aparición del tercer bit .
Solución Pl .- Para construir la tabla de estados vamos a partir de un estado conocido como,
por ejemplo, aquél que representa la llegada de 2 ceros consecutivos (llamémosle estado A) .
En A :
- Si X = 0 : el próximo estado es A y la salida vale 1 .
- Si X = 1 : se pasa a un nuevo estado, que llamamos B . La salida es 0 .
B es un estado que representa el comienzo de una secuencia de 1's . En B :
Si X = 0 : se pasa a un nuevo estado, C . La salida es 0 .
Si X = 1 : se pasa a un nuevo estado, D . La salida es 0 .
C es el estado que representa el comienzo de una secuencia de 0's . Por otra parte, D es
el estado que representa la llegada de 2 unos consecutivos . En C :
- Si X = 0 : se pasa al estado A . La salida es 0 .
- Si X = 1 : se pasa al estado B . La salida es 0 .
En D :
- Si X = 0 : se pasa al estado C . La salida es 0 .
- Si X = 1 : se pasa al estado D . La salida es 1 .
De esta forma, el diagrama y la tabla de estados quedan como se observa :
499 X
Estados 0 1
1
A A, 1 B,0
W /0 B C,0 D,0
00/0
0/0 D C,0 D, 1
Obsérvese que el estado A realmente es el estado que resulta tras detectar 2 o más ceros ;
análogamente, la detección de 2 o más unos conduce al estado D .
11
Solución P3 .- Los sucesos de la vieja mansión obedecen a una máquina secuencia], de la si-
guiente forma :
- Valores (o estados) de entrada
Son las acciones que realiza "nuestro viejo amigo" . Existen 4 posibles estados de
entrada :
c r In 10 Ii ha
Sn NO NO NONO SÍ NO NO SÍ SÍ SÍ On
Sc SÍ NO SÍ SÍ NO SÍ SÍ NO NONO Oc
Sr NO SÍ NONO NONO NO SÍ NO SÍ Or
Scr SÍ SÍ SÍ SÍ SÍ SÍ SÍ NO SÍ NO Ocr
CR
l,
La respuesta a la carta debe decir lo siguiente : r minuto : Se oye risa y canto por lo que
debe quemar incienso ; 2° minuto : Se oye canto pero no risa, por lo que debe quemar incienso
y tocar el órgano ; 3` minuto : No se oye nada por lo que no debe hacer nada .
DISEÑO DE CIRCUITOS SECUENCIALES 203
Problema 4 .-Sobre una única línea X se envía una información sincronizada con una señal
de reloj Ck . Se ha convenido que la información sea correcta siempre que no haya dos o más
unos consecutivos o cuatro o más ceros consecutivos . Obtenga el diagrama de estados de
un circuito cuya salida sea uno si se detecta un error en la transmisión y que permanezca en
ese valor en tanto dure el error .
Solución P4 .- Para que la salida (señal Z) sólo indique error (con Z=1) mientras éste perma-
nezca, haremos que Z dependa de X (máquina de Mealy) .
Para construir el diagrama de estados se parte de un estado conocido, por ejemplo : sea
A el estado que indica que el último valor de X almacenado es 1 . Estando en A :
Si X=1, hay error (dos 1's consecutivos) por lo que Z=1 y el próximo estado es A ya que
el último valor recibido es 1 .
Si X=0, no hay error (Z=0) y el próximo estado será B .
El estado B indica que el último valor recibido es 0 (mientras que el penúltimo era 1) .
Estando en B :
Si X=1, no hay error (Z=0) y el próximo estado es A .
Si X=O, no hay error (sólo dos O's consecutivos) y el próximo estado es C .
El estado C corresponde a haber recibido dos ceros consecutivos . Estando en C :
Si X=1, no hay error y el próximo estado es A .
Si X=O, no hay error (sería el 3 cero) y el próximo estado es D .
El estado D refleja la existencia de tres ceros consecutivos . Estando en D :
Si X=1, no hay error y el próximo estado es A .
Si X=0 sería el cuarto 0 consecutivo con lo que hay error (Z=1) y el próximo estado es el
propio estado D .
El diagrama de estados completo es el siguiente :
1/0
s0 0/0 OVIAM
Problema 5.-Un circuito secuencial tiene dos entradas (X1 , X2) y dos salidas (Z 1 , Z2) . Las en-
tradas representan un número binario natural de dos bits, N . Si el valor presente de N es ma-
yor que el valor inmediatamente anterior, entonces, Z 1 = 1 . Si dicho valor es menor, entonces
la salida Z2 = 1 . En cualquier otro caso, Z1 = Z2 = 0. Se pide :
1) Escribir la tabla de estados correspondiente del circuito, como autómata de Mealy .
2) ¿Cuántos estados tendría el circuito como autómata de Moore?
Para comparar el valor actual con el anterior se necesita almacenar ese último valor .
Por tanto, la máquina debe tener un estado por cada posible valor de X 1 X 2 :
A estado que almacena que el último valor recibido de X 1 X2 = 00
B estado que almacena que el último valor recibido de X 1 X2 = 01
C estado que almacena que el último valor recibido de XI X2 = 10
D estado que almacena que el último valor recibido de X 1 X 2 = 11
Con esto se puede construir directamente la tabla de estados, que queda de la siguiente
manera :
00 01 10 11
A,00 B, 10 C, 10 D, 10
B A,01 B, 00 C, 10 D, 10
C A,01 B, 01 C, 00 D, 10
D A,01 B, 01 C, 01 D, 00
NS, Z 1 Z2
2 .- Como máquina de Moore, en principio se necesita un estado que almacene el último
valor recibido y si era mayor (salidas Z 1 Z2 = 10), igual (salidas Z 1 Z2 = 00), o menor (salidas
Z 1 Z2 = 01) que el anterior. En total, como pueden lleg~wl4 valores diferentes 100, 01, 10, 111,
son 4x3 = 12 estados distintos . La tabla de estados queda de la siguiente manera :
NOTA : Se comprueba que la tabla es irreducible salvo por la posible eliminación de los esta-
dos Ao y B 3 que sólo pueden alcanzarse si son estado inicial .
Problema 6.-Muestre la tabla de estados mínima de una máquina secuencial síncrona con
una entrada X y una salida Z que opera de la siguiente forma : cuando se detecta la llegada
de 110 (primero 1,después 1, después 0), Z se pone a 1, manteniendo este valor hasta de-
tectar la secuencia 010, en cuyo caso Z pasa a tomar valor 0 manteniendo este valor hasta
que llegue una nueva secuencia 110 .
0/1
á%- 1/0
0/1 ©'
Q 1/0
1/1 S 0 1
~Q 1/1 `1/
w1/1 1/0 O A B1 C1
0/0
00/0 B B1 C1
C DO El
D FO GO
Significado de cada estado E A1 El
Est . Recibido
F FO GO
A . . . .110
. . . .00 G DO HO
B (con Z = 1)
C . . . .01 (con Z = 1) A1 HO
E . . . .11 (con Z = 1)
D . . . .010 NS, Z
F . . . .00 (con Z = 0)
G . . . .1 (con Z = 0)
H . . . .11 (con Z = 0)
Para obtener la tabla de estados mínima debemos comprobar si se pueden reducir o eli-
minar estados . Para ello seguimos el proceso de reducción de estados, que consta de los si-
guientes pasos :
1 . Formar la lista de estados con salidas diferentes (son estados incompatibles) :
{ A,C ; A,D ; A,F ; A,G ; A,H ; B,C ; 13,13 ; B,F ; B,G ; B,H ; C,D ; C,E ; C,F ; C,G ; C, H ; D,E ;
D,H ; E,F ; E,G ; E,H ; F,H ; G,H} .
2 . Construir la tabla de pares compatibles o de reducción, que es una tabla en forma de
escalera asignando un escalón a cada estado como se observa en la figura del paso siguiente .
3 . En esa tabla, marcar las casillas de los pares de la lista del paso 1 . (Es obvio que esta
tabla se puede obtener sin necesidad de haber listado los estados incompatibles) :
X Tabla de reducción
Fase inicial
X .Z'~.1,-
X 091 EN 09 X H
4 . Observando la tabla de estados, escribir dentro de cada casilla de la tabla de reducción
los estados que deben ser compatibles para que el par que corresponde a dicha casilla lo sea
también :
X
X X
AB
CE X X E
Tabla de reducción
X HA, X X
X
X 011 FA P,al X H
5 . En la tabla de reducción tachar aquellas casillas en las que exista escrito algún par de
estados incompatibles . Repetir este paso de forma iterativa hasta que se hallan marcado todos
los pares incompatibles :
C
un
©-© D
LWI ©© Tabla de reducción
w=, aun Fase final
©.~' G
© .Z'©©--©
Al final de este punto, todas las celdas sin tachar corresponden a parejas de estados com-
patibles (o equivalentes si, como en este caso, la tabla de estados/salida está completamente
especificada) .
6 . Construir la lista de compatibles . Para ello hay que formar una tabla con tres colum-
nas : en la primera anotar un estado (se empieza por el del escalón más bajo) ; en la segunda se
anotan los estados equivalentes del primero (aquellos cuyas casillas no estén marcadas) ; en la
tercera se anotan los compatibles . En máquinas completamente especificadas, los compatibles
se agrupan por clases de equivalencia, por lo que la lista final de compatibles se forma fácil-
mente, agrupando todos los estados que sean compatibles entre sí.
S Equivalentes Compatibles
H {H} 0 1
• {H,G}
A partir de los A1 C 1
F {H,G,F}
• {H,G,F,E} compatibles se D 0 E 1
construye la
• F {H,G,DF,E} D 0 G 0
nueva tabla
C { H,G,DF,E,C }
de estados : A 1 E 1
B { H,G,DF,E,C,B }
A B (H, G, DF, E, C, AB) D 0 H 0
Nuevos estados :
rrTrr~
H, G, D, E, C, A
A 1 H 0 NS, Z
Problema 7.-Un circuito secuencial tiene una entrada X y una salida Z Por X se transmiten
pulsos positivos de 1, 2 ó 3 ciclos de duración . Desde un pulso al siguiente X permanece a 0
un mínimo de 10 ciclos . La salida Z se pondrá a 1 tras terminar el pulso de entrada y perma-
necerá en 1 durante 3 ciclos si el pulso de X duró un ciclo, durante 2 ciclos si X duró 2 y du-
rante 1 ciclo si X duró 3 . En otros asos Z es cero.
Obtenga la tabla de estado /salida mínima según el modelo de máquina de Mealy .
3 2
Partamos de un estado conocido . Sea el estado A aquel en el que no se ha detectado nin-
gún pulso . En A :
- Si X= 1 se detecta el primer ciclo del pulso en X . Se pasa al estado B . Z=O .
- Si X=0 se permanece en A . Z=O .
En B :
- Si X=1 se detecta el segundo ciclo del pulso en X . Se pasa a C . Z=O .
- Si X=0 fin del pulso de un ciclo de duración . Se pasa a D . Z=1 .
En C :
- Si X=1 se detecta el tercer ciclo del pulso en X . Se pasa a E. Z=O .
- Si X=0 fin del pulso de dos ciclos de duración . Se pasa a F . Z=1 .
En D, E y F, X no puede valer 1 porque, según se dice en el enunciado, el pulso mayor
es de tres ciclos y, tras finalizar un pulso, la entrada permanece a 0 un mínimo de 10 ciclos de
reloj .
En D, Z debe durar 1 durante dos ciclos más de reloj . Se pasa a G . Por tanto, Z=1 en el
estado D y en el estado G .
0/1 0 1
D,1
B,0
C,0
1/0
0 F,1
G,1
E,0
A,1
0/1 A,1
A,1
NS, Z
S 0 1
COMPATIBLES A A,0 B,0
PRMOMM {4 4 4, 1G} B
C
C,1
D,1
C,0
D,0
{A, B, C, D}
D A,1
wwdmw NS, Z
Tabla de reducción
Tabla de estados mínima
Problema 8.-Por una línea X se recibe, bit a bit, un número binario N, empezando por el me-
nos significativo.
a) Obtenga la tabla de estados mínima correspondiente al circuito que permite generar
una única salida Z con el valor Z = 2 x N .
b) Repita el apartado a) para obtener Z = 3 x N .
Comience por un estado de reset. No tenga en cuenta cuándo acaba N.
Solución P8.
a) Sea el número binario N = . . . N3 N2 N 1 N o . Entonces, el número binario
Z = 2 x N = . . . N3 N 2 N 1 N o 0, pues multiplicar en binario por 2 equivale a "poner un 0 a la
derecha" . En nuestro caso, N viene por la línea X y 2 x N sale por Z . Esto es, se cumplirá :
Ciclo 1 : En X está X0, por Z sale Z0 = 0
Ciclo 2 : En X está X 1 , por Z sale Z l = XO
Ciclo 3 : En X está X2, por Z sale Z2 = X 1
Ciclo 4 : En X está X3 , por Z sale Z3 = X2
X
X
Estado` 0 1
Estado\ 0 1
RE A,0 B,0
A A,0 B,0
A A,0 B,0
B A,1 13,1
0/1 B A,1 B,1
NS, Z
Diagrama de estados NS, Z
Tabla de estados mínima
Tabla de estados
En la tabla de estados se observa que : A y RE son el mismo estado ; A y B son incom-
patibles . La tabla de estados mínima consta de sólo dos estados, pero el inicial debe ser A .
b) En el primer ciclo (el estado presente es el de reses RE) hay que sumar N 0 + N0 + N0 ;
el resultado será Z0 = 0 (y acarreo 0) si N0 = 0 y Z 0 = 1 junto con un acarreo de 1 si No = 1 .
En el segundo ciclo deberemos sumar N 1 + N 1 + N 1 con el acarreo (0 o 1) anterior ; el resul-
tado de esta suma puede ser Z 1 = 0 o Z 1 = 1 con acarreos de 0, 1 o 2 .
En general, en el ciclo j-ésimo hay que sumar tres veces el bit presente en X (0 01) junto
con el acarreo generado anteriormente, para lo cual dicho acarreo deberá estar "almacenado"
en un estado (A si el acarreo es 0, B si es 1 y C si es 2) . La salida Z mostrará el bit de la suma,
mientras que el próximo estado informará de cuál ha sido el acarreo generado .
Con este razonamiento se obtiene la tabla de estado siguiente :
Tabla de estados Tabla de estados mínima
X
S\ 0 1
0 1
RE A,0 B, 1 \S~
A A,0 B, 1
A A,0 13,1
B A,1 C,0
B A,1 C,0
C B,0 C, 1
C B,0 C, 1
NS, Z
NS, Z
(Como antes, RE y A son el mismo estado) .
210 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
Problema 9.-Diseñe un circuito secuencia) síncrono con dos entradas X 1 y X2 y dos salidas
Z1 y Z2 . Por las entradas se reciben bit a bit dos números de n bits, N 1 y N2 , comenzando por
el bit más significativo . Las salidas deben representar lo siguiente :
Z2 = mayor(N2 ,N1 )
Z1 = menor(N2 , N1 )
Obtenga la tabla de estados/salida mínima, suponiendo el siguiente comportamiento :
X2 : 0 0 1 0 0 1 . . . .
X1 : 0 0 1 1 0 0 . . . .
Z2 : 0 0 1 1 0 0 . . . .
Z1 : 001001 . . . .
Nota. Obsérvese que en el ejemplo N 1 > N2 por lo que X1 sale por Z2 y X2 lo hace por Z1 .
Solución P9.- El número mayor entre N 1 y N 2 es aquél por el que se recibe el primer 1 mien-
tras que se recibe un 0 por el otro . Así, en el ejemplo del enunciado, el 4° bit de X 1 es 1 mientras
que el de X 2 es 0 . A partir ¿It este momento y con independencia de los bits que se reciban, el
número mayor (N I en el ejemplo) saldrá por Z2 y el menor por Z 1 . Hasta que ocurra eso
(X 1 X2 =10 ó 01) por primera vez, los bits son iguales de forma que tanto por Z 1 como por Z2
sale el bit de entrada recibido .
En el comportamiento dado en el enunciado, las salidas cambian en el mismo ciclo que
ocurre el cambio de entrada, lo que indica que Z1,2 dependen de X1,2 y, por tanto, es una má-
quina de Mealy .
Sea A el estado inicial . Al no haberse recibido ningún bit los números son "hasta ese
momento" iguales . Las posibles entradas y la respuesta del circuito son :
X 1 = X 2 : Los números continúan siendo iguales . No hay cambio de estado . Las salidas
serán : Z1 = Z2 = X1 = X2 .
X 1 X 2 = 10 : El número N 1 es mayor que el número N 2 , por lo que se pasará a un nuevo
estado B . Las salidas serán : Z 2 = X1 Y Z 1 = X 2 .
X 1 X2 = 01 : El número N 2 es mayor que el número N 1 , por lo que se pasará a un nuevo
estado C . Las salidas serán : Z 2 = X2 Y Z 1 = X 1 .
El estado B representa el caso en que N 1 >N2 , y por tanto, Z2 = X1 Y Z 1 = X 2 hasta el
final . El próximo estado de B, es B . Lo mismo ocurre para C estado en el que N 2 > N 1 . La tabla
de estado queda como sigue :
00 01 11 lo
A,00 B,10 A,11 C,10 Los estados son
Problema 10.- Diseñe una máquina secuencial que responda a la tabla de estados siguiente.
Diséñela con biestables JK atendiendo a las siguientes asignaciones :
a) Asignación 1 : A = 00, B = 01, C = 11, D = 10
b) Asignación 2: A = 00, B = 11, C = 01, D = 10
X
S\ 0 1
A A,0 C,0
B A,0 D, 1
C A,0 B,1
D D,0 D,0
NS, Z
Solución P10.
a) Dada la asignación y la tabla de estados, se obtiene la tabla' de transición/salida sin
más que sustituir los estados por los códigos que se han asignado . De esta tabla ya se pueden
obtener las ecuaciones de salida . Además, de la tabla de transición junto a la de excitación del
biestable JK, se pasa a la de excitación del circuito . De esta tabla obtenemos la ecuaciones de
excitación :
X J 1 =X
X
q1 9\ 0 1 JK K1 =q 2
q -3Q q 1 q2 0 1
A 00 00 11 0-*0 0- 0-,0_ J2 = Xq1
00 1-, 1-
B 01 00 10, 1 0-31 1-
01 0-, -1 1-, -1 K2 = Xq1
1 ->0 -1
C 11 00 01,1 -I,-0
1 --3 1 -0 11 -1, -1
D 10 10 10 Z = Xq2
10 -0,0_ -0,0_
Ecuaciones de
Q 1 Q2, Z Tabla de excitación J 1 K 1 , J2 K2 excitación y de
Tabla de transición/salida del biestable JK Tabla de excitación salida
X 1
2
K q
D A
Ck
1 Por simplicidad, en las distintas tablas sólo pondremos los mintérminos de las salidas (celdas con
Z= 1) .
X
J1 = X92
91 \q 0 1 q 1 92 0 1
K1 = X q2
00 00 01 q-*Q JK 00 0-,0_ 0-, 0-
0 -* 0 0- J2 = X91
01 00 1 1, 1 01 0-, -1 J-1_,_0
0-41 1-
11 00 10,1 11 -1, -1 -0 , _1 K2 = X+q1
1 -~ 0 -1
10 10 10 1 -* 1 -0 10 -0,0_ -0,0_ Z = X92
Q I Q2, Z J1 K1 , J2 K2
Problema 11 .- Obtenga una buena asignación para las siguientes tablas de estado :
Tabla a : Tabla b :
X
S 0 1 0 1
A A, 1 D A D, 1 B
B A D B D B
C B D C C A, 1
D C D D A C
NS, Z NS, Z
Solución Pll .- Para obtener "una buena" asignación basta con aplicar las reglas de adyacen-
cias . Estas reglas son las siguientes :
1 .- Hacer adyacentes los estados cuyos próximos estados sean iguales para cada valor
de entrada .
2 .- Hacer adyacentes los estados cuyos próximos estados sean los mismos aunque en di-
ferentes valores de entrada, siempre que esos próximos estados también se hagan adyacentes .
3 .- Hacer adyacentes los estados cuyos próximos estados sean los mismos para algún
valor de entrada .
4 .- Hacer adyacentes los próximos estados de cada estado .
5 .- Hacer adyacentes los estados que tengan los mismos valores de salida .
Aplicando las reglas a las tablas de estado obtenemos lo siguiente :
Una vez aplicadas las reglas, se forma un mapa de Karnaugh en el que las variables son
las variables de estado necesarias para la asignación . En este caso, en ambas tablas se necesitan
dos variables de estado y l e Y 2 . En este K-mapa, asignamos a cada estado un código tratando,
por prueba y error, de cumplir el máximo número posible de las reglas de adyacencia :
1. 1 (Todas) 1. 1 (Todas)
2. -- (Todas) 2. 1 (Todas)
3. 3 (de 5) 3. -- (Todas)
4. 3 (de 4) 4. 4 (Todas)
5. 3 (Todas) 5. 1 (Todas)
X : 011001011101111110
Z : 000000000100011110
De este comportamiento se obtienen los diagramas de estado, siguiendo el modelo de
Moore o el modelo de Mealy :
sCO
B,0
00
-
OLAM
Para observar las diferencias entre las máquinas de Moore y de Mealy, en la figura
siguiente se muestra un diagrama de tiempo donde se observa la secuencia de estados y de
salida de cada tipo de máquina para una misma secuencia de entrada .
Ck
ZMoore A A! B C A A': B : A B C D A 13 C D D D D A A A
A A B C A' A B A B C C A 1 13 C C C C C A
ZMeaJy
S 0 1 Z
Tabla de estados filo
A A B 0 " : 3,D
B
C
A
A
C
D
0
0
una
D A D 1 Tabla de reducción
NS
91 90 0 1 Z 91 90 0 1 Z q1 90 0 1 Z
A=0 0 00 01 0 A=0 0 00 01 0 A=0 0 00 11 0
B=0 1 00 10 0 B=01 00 11 0 C=0 1 00 10 0
D=1 1 00 11 1 C=11 00 10 0 B=1 1 00 01 0
C=1 0 00 11 0 D=1 0 00 10 1 D=1 0 00 10 1
D
1 0
NÚMERO DE UNOS
PAR IMPAR Orden del bit que se espera
10
0/0
1/1
W- 30
40
0 1
A B Ma A
B
C D
∎1ai-i.o" C
D C
D
E F
F E
©©©VIER
R,1 R
V
Tabla de reducción
R R,1
Fase final : es irreducible .
NS, Z
REGLAS Tabla
1 (E,F) Y2 , Y¡ ,YO 0 1
2 (A,B) si (C,D), (C,D) si A=000 010 011
(E,F) B=001 011 010
3
D=011 111 110
4 (A,B), 2(C,D), 2(E,F)
5 (R,A,B,C,D) C=010 110 111
Reglas de adyacencia E=110 100,1 100
101
R=100 000 001
ama La asignación cumple
todas las reglas menos
®N 3 de la regla 5 Y2Y l Y o, Z
Tabla de transición
D2 = Y i
Di = Y2
Do = x Y2Yo + xy2yo + xy i yo
Z= X Y2Ytyo + Y2Yo
Problema 14.- Se pretende diseñar un circuito secuencia) síncrono con una entrada X y dos
salidas Y, Z que cumpla la siguiente tabla de estados/salida :
X
0 1
Eo E0 ,00 13 1 ,00
El E2,00 E 1 ,01
E2 E2,10 E3 ,10
E3 E0,10 E3 ,11
NS, Y,Z
Y
Z
Solución P14.- Es una tabla con cuatro estados, todos incompatibles, por lo que es irreducible .
Se necesitan dos variables de estado . Por lo tanto, siguiendo el esquema de la figura del enun-
ciado se necesitan dos biestables D .
El tamaño de la ROM depende del número de entradas y salidas . Como entradas de di-
rección se tienen : X, entrada de datos, y q l y q0 variables de estado (salidas de los biestables
tipo D) . Como salidas se tienen : Y y Z, salidas del circuito, y D I y D0 entradas a los biestables .
Por tanto se necesita una ROM de 8x4 (8 palabras de 4 bits cada una) .
Utilizando un asignamiento cualquiera, se obtiene la tabla de transición/salida y de ella
el contenido de la ROM :
X ql q 0 Do D 1 Y Z X > A2 H > Z
X 0 0 0 0 0 0 0
A ROM 1 > Y
0 0 1 0 1 0 0 1
q 1 qo 0 1 8x4 H 2
010 0 1 1 0 Ao H
E o =00 00,00 01,00 011 0 0 1 0
E l =01 10,00 01,01 100 1 0 0 0 q0
1 0 1 1 0 0 1 D
E2= 10 10,10 11,10 110 1 1 1 0
111 1 1 1 1 q1
E3= 11 00,10 11,11
A2A 1 Ao H 3 H2 H 1 Ho Ck
Q 1 Qo=D 1 Do , Y Z
Tabla de transición/salidas Contenido de la ROM Circuito final
Problema 15.- Se desean obtener 4 señales Z 1 , Z2, Z3, Z4 a partir de una señal de reloj Ck
disponible en un determinado sistema . Realice el circuito correspondiente utilizando exclusi-
vamente: 2 biestables JK, un DEC 2 :4 y 4 puertas AND.
Ck
Z1
Z2
Z3
Z4
Za Zb Z, Zd Tabla de estados
(es irreducible)
1 0 0 0
0 1 0 0 Con Z1 , Z2 , Z3 Y Z4
0 0 1 0 tomando el valor
0 0 0 1 indicado en el punto 2 .
NS
q í q0\ Za Zb Zc Zd q 1 qo\
A=0 0 01 1 0 0 0 A=0 0 0-, 1-
B=0 1 10 0 1 0 0 B=0 1 1-, -1 J O =Ko = 1
C=1 0 11 0 0 1 0 D=1 1 -1, -1 J,=K,=q0
D=1 1 00 0 0 0 1 C=1 0 -0,1_
QiQo J 1 K 1, JOKO
DEC
1 2 :4
1
0 1
2
K K
Z4
Ck
Problema 17.- Desarrolle un diagrama de estados para un circuito de Moore que genere sa-
lida Z= 1, durante un ciclo de reloj, cuando a la línea de entrada X se han suministrado exac-
tamente tres "1 " durante los tres intervalos precedentes del reloj . Si durante cuatro o más ci-
clos del reloj hubiese "1 ", la salida será Z = 0.
DISEÑO DE CIRCUITOS SECUENCIALES 221
Problema 18.- Diseñe un circuito secuencia) síncrono con una entrada de datos X, que pro-
duzca salida "1 " durante un ciclo de reloj cuando la secuencia de los tres últimos valores de
la entrada sean : 111, 110 ó 000.
so 000
SI 001
S2 010
S3 0 1 1
S4 100
S5 101
S6 110
S7 111
NS
Problema 19.- Diseñe un autómata de Mealy que detecte la secuencia 1, 0, 0, 1, 0 ; esto es,
el circuito debe tener una única entrada X y una única salida Z En los intervalos de reloj en
los que X=0, la salida será Z= 1 si en los cuatro intervalos de reloj precedentes la entrada ha
sido 1, 0, 0, 1 .
1/0
Estado Recibido
1/0 A 1
• 10
1/0 C 100
• 1001
• Nada de la secuencia
Problema 20.- Diseñe un circuito secuencial síncrono que reciba una entrada X y produzca
una salida Z=1 después de que haya recibido las secuencias de entrada 0, 0, 1 ó 1, 0, 0 .
Comience el diseño por un estado de reset.
Estado Recibido
R No se ha recibido nada
A Primer 0 de la secuencia 0 0 1
B Primer 1 de la secuencia 1 0 0
C Segundo 0 de la secuencia 0 0 1
• Recibido 0, 0, 1
• Recibido 1, 0
F Recibido 1, 0, 0
Problema 21 .- Diseñe un autómata de Mealy con dos entradas X, Y y una salida Z cuyo fun-
cionamiento sea el siguiente :
a) si XY = 00, entonces Z = 0 .
b) si XY = 11, después de que las entradas hayan sido durante dos ciclos de reloj
XY= 01, entonces Z= 1 .
En el resto de los casos se mantiene la salida .
Nota : en cada ciclo sólo puede cambiar una variable de entrada, no las dos a la vez .
DISEÑO DE CIRCUITOS SECUENCIALES 223
11/0
00/0 SIGNIFICADO DE CADA ESTADO
Problema 22.- Se desea diseñar un autómata de Mealy con dos entradas (X1 ,X2) y una sali-
da Z, que obedezca al siguiente comportamiento :
1) En ningún caso ambas entradas pueden estar a 1 simultáneamente .
2) La salida Z alcanzará el valor 1 si y sólo si aparecen dos unos consecutivos en la
misma línea de entrada, pasando a dicho valor cuando se detecte el segundo 1 .
00/0
01/1 10/0
Problema 23.- Por una línea se envían (bit a bit) grupos de cuatro bits . Obtenga el diagrama
de estados de un circuito secuencial síncrono de Mealy que produzca una salida Z = 1 cuando
detecte las secuencias de entradas 1100 ó 0011 . Comience por un estado de reset.
Solución P23 .- El enunciado dice que la máquina es de Mealy . El diagrama de estados queda
de la siguiente manera :
/0 20
0/0 1/0
-/0
0/1
0/0 3°
1/0 0/0 /0 -/0
y
4°
Problema 24 .- Reduzca las máquinas cuyas tablas son las de la figura . ¿Se trata de máqui-
nas de Mealy o de Moore?
0 1
S
si SI S5
S2 si S5
S3 S2 S6
S4 S2 S6
S5 S3 S7,1
S6 S3 S7,1
S7 S4 S 8 ,1
S8 S4 S8,1
NS, Z NS, Z
Solución P24.-Las dos son máquinas de Mealy . Tras el proceso de reducción las tablas resul-
tantes son :
Si S2 , S3 , S4 -
S5, S 6 , S7, S s
NS, Z
NS, Z
Problema 25.- Obtenga una buena asignación para la siguiente tabla de estados . .
NS, Z
Solución P25 .-La tabla no puede reducirse . Aplicando las reglas de adyacencia se obtiene :
REGLAS Tabla
1 (S4,S6), ( S3,S5)
2 --
3 (S0,S1),(S0,S2), (S0, S3) , (SO,S4), (S0 , S5), ( SO, S6) , ( S1 , S3) ,
(S1 , S5) , (S2,S4), (S2,S6)
4 (S1 , S2) , (S2,S3),(S1,S4), 2 x(S2 , S5) , 2x(S1,S6)
5 (SO,S 1 , S2 , S3 , S4)
Tabla 1
Reglas que cumple :
1 . 2 (Todas)
aS6 so ma
2. -
3 . 5 (de 10)
4 . 4 (de 5)
®®® 5. 3
NS, Z
NS, Z
226 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
Problema 26 .- a) Para la tabla de estados siguiente, determine cuál de las tres asignaciones
que se dan es la que cumple mejor las reglas de adyacencias .
b) Para la asignación número 1, realice el circuito utilizando biestables JK y puertas .
NS
Solución P26 .
a) Las reglas de adyacencia que debe cumplir la tabla de estado son :
Reglas 1 y 2 : -
Regla 3 : (A,B), 2x(A,D), (B,C) .
Regla 4 : 2x(A,C), 4x(A,D), (C,D), 2x(A,B), (B,C), (B,D) .
Regla 5 : (A,D), (B,C)
En la siguiente tabla se muestra cuántas reglas cumple cada asignación :
R3 R4 R5
1 AB, AD, BC, CD 4 8 2
2 AB, AC, BD, CD 1 6 -
3 AC, AD, BC, BD 3 8 2
J 1 = X 2 +X 1 g2 K 1 = X2 +X 1 g 2 +X 1 g 2
J2 -X 2 K2 -q 2 +X 1 X 2
Z = q2
Ck _ J
X
9i
q2
Za
Zb
Solución P27 .- Vamos a obtener directamente la tabla de transición/salida . Como las varia-
bles de estado q 1 q2 cambian con el flanco de bajada de Ck, los biestbles serán tipo flip flop
disparados por el flanco de bajada . En cada ciclo de Ck, estamos viendo el estado presente
(q1 q2) y el valor actual de la entrada X : también el de las salidas Z a Zb se ven en ese mismo
ciclo, mientras que el valor del próximo estado se determina viendo cuánto valen q 1 y q2 en el
ciclo siguiente . Las tablas de transición y de salida quedan de la siguiente manera :
X
9 i \q 0 1
91 92 0 1
00 10 11
00 10 00
01 11 10
01 01 11
11 01 01
11 00 10
10 00 01
10 11 11
Q1 Q2 ZaZb
Tabla de transición Tabla de salida
T, = 1 Za = Xq0+g1g2+Xq2
To = Xq 1 +Xq 2 Zn = g1g2 + g2g1
Capítulo 9
SUBSISTEMAS SECUENCIALES
Las operaciones secuenciales más comunes están en circuitos integrados con una complejidad
superior a la del biestable . Así podemos encontrar contadores de n bits que incrementan o
decrementan su contenido, además de otras operaciones ; registros, como elementos
almacenadores de palabras de n bits ; PLD secuenciales que básicamente son PAL y PLA que
incluyen algunos biestables y que permiten programar funciones secuenciales ; etc. En este
Capítulo se estudiarán, fundamentalemente, los contadores y los registros, ya que la técnica de
análisis y de diseño con PLD es la de circuitos secuenciales genéricos .
CONTADORES
229
Up
111 Up Cl Ld Operación
TC=Terminal Count
Up D D D
CI Clear TC 000 Inhibición TC=1 si q2 q 1 q o =111
Ld 100 Cuenta TC=O en otros casos
n
Load
q2 q1 qo x10
xxl
Puesta a cero
clk Carga dato
clk
q0
q1
q2
DISEÑO DE CONTADORES
Hay dos formas de realizar contadores : 1) los de rizado (ripple-counter) o contadores asín-
cronos ; y 2) los síncronos . En los contadores de rizado la salida de cada biestable se utiliza
como señal de reloj del siguiente . El contador tiene bajo coste, pero debido al diferente instante
de tiempo en que cambia cada biestable, a veces presenta estados incorrectos transitorios .
clk
1 T q
clk
Las entradas de control de los biestables, descritas con anterioridad (clear, carga o
inhibición), pueden tener dos modos de operación, síncrono o asíncrono, en función de si para
su ejecución esperan o no la llegada de un flanco de reloj . En la siguiente figura se representa
la estructura interna de un contador síncrono ascendente de módulo 4, con operación de clear
asíncrono y la respuesta temporal para una secuencia de entrada de control . En ella se observa
que, inmediatamente después de que se activa clear, el contador se pone en el estado de
cuenta 0, sin esperar la llegada de un flanco activo de reloj .
X Operación
X Up/Clear
0 Puesta a cero
1 Cuenta arriba
n q 1 q0
clk Q clk
clk
X
[cont]
To q 0 T q1- .
clk
clk
[cont] l 2 1 2
REGISTROS
Los registros son circuitos capaces de almacenar palabras de n bits . Existen dos operaciones
básicas :
- Escritura (write) o carga (load) en paralelo, mediante la que los n bits del dato
son almacenados a la vez, introduciéndose por n entradas In-, -10 .
- Desplazamiento (shift), mediante la que los n bits del dato son almacenados en
serie, uno a uno . Esta operación puede ser a derecha (shift right) introduciéndose el dato por
una entrada Rin, o a izquierda (shift left) entrando el dato por la entrada L i ,, . En la siguiente
figura se muestra el esquema y estructra interna de un registro universal de 4 bits, llamado así
porque incluye todos los modos de escritura posibles .
13
c2 c l Co Operación
0 0 0 SHL Rin Lin
0 c2
0 1 SHR
C1
0 1 1 LOAD co
0 1 0 INH
1 - CLEAR
clk SOlg3 q2 q q0 SOr
Para el diseño de registros hay que tener en cuenta el modo de funcionamiento asíncrono
o síncrono que pueden tener algunas entradas de control . En la siguiente figura se muestra la
estructura de una celda genérica para el registro de la figura anterior, donde se ha supuesto que
todas las operaciones, salvo la de borrar, clear, son síncronas .
(L ;,, si i = o) q ;-1 -
(Rin si i = 3) q ;+,
Los contadores y registros pueden usarse, además de para sus propias tareas específicas, en la
realización de máquinas secuenciales cualesquiera . La forma más inmediata es usar subsiste-
mas con carga en paralelo para almacenar el estado presente mientras que el circuito combina-
cional genera y sitúa el próximo estado en las entradas de carga en paralelo ; así, el subsistema
sustituye a los biestables en el esquema general de circuito secuencial . Además, podemos citar
otras dos aplicaciones :
- Los registros de desplazamiento se usan para generar secuencias cíclicas . Para ello, el
registro es cargado a un valor inicial ; con este valor se determina qué bit hay que introducir en
el siguiente desplazamiento para aportar otro bit de la secuencia, y así sucesivamente .
- Los contadores (p .ej . los ascendentes) implementan los cambios de estado con la fun-
ción de cuenta siempre que esos estados tengan asignados códigos de estado ascendente . Tam-
bién incorporan la funcionalidad de "pasar al estado de código 0" (mediante la acción de
clear), de "permanecer en el estado actual" (acción de inhibición), etc . Si se puede realizar un
circuito combinacional que genere las señales de entrada del contador (control y datos)
adecuadas, el contador podrá ser el dispositivo de memoria de ese circuito secuencial .
PROBLEMAS RESUELTOS
Problema 1 .- Determine la secuencia de salida del contador módulo-5 de la figura en función
de la evolución de las entradas x, y.
xy operación clk
Contador up ln
00 11 +-] ~I ~l fi~ l ~ ~Fl
Y módulo-5
n 01 down
10 clear asíncrono
l x n n n,
sll-
11 inhibición y
clk
[CONTI 0
Problema 2.- Analice el circuito de la siguiente figura, considerando que la operación de clear
es síncrona .
Up/Clear
CONT[3]
q2 q 1 q0
clk
Solución P2 .-El contador sólo tiene dos modos de operación : cuenta ascendente, Up/Clear=l,
y puesta a cero síncrona, Up/Clear=0 . Como se observa en la siguiente figura, la operación de
puesta a cero se activa para los valores de cuenta 6 y 7 . Para el resto de los estados tenemos la
operación de cuenta ascendente . Se trata de un contador módulo 7 sin bloqueo .
91 11 1 1 1'
Problema 3.- Diseñe un contador módulo 4 que tenga las siguientes características :
• Ser síncrono y disparado por flanco de subida .
• Ser puesto a 0 de manera asíncrona .
c) Inhibirse de la cuenta, manteniendo el estado almacenado .
• Contar hacia arriba.
• Contar hacia abajo .
f) Cargar datos en paralelo .
Solución P3 .- Al ser un contador de módulo 4, sólo necesitaremos para su realización dos bi-
estables . Estos deberán ser disparados por flanco ascendente, tener entrada asíncrona de clear
SUBSISTEMAS SECUENCIALES 235
y disponer de una señal de reloj común . Vamos a plantear a continuación una posible solución .
Supongamos que la carga en paralelo y la inhibición son operaciones síncronas ; esto
hace un total de 4 operaciones síncronas (contando la cuenta ascendente y descendente) . Para
no tener demasiadas líneas de control, es conveniente codificar las operaciones, por lo que tres
líneas serán suficientes (2 para las operaciones síncronas y 1 para la asíncrona) . Una posible
codificación es la mostrada en la siguiente tabla :
c2 cl co Operación
0 0 0 Up
0 0 1 Down
0 1 1 Load
0 1 0 Inh
1 - - Clear
TI = q0
Si clcp = 01, tenemos cuenta descendente, por tanto las entradas serán :
To = 1
Ti = qo
Si c1cp=10, tenemos inhibición . Los biestables no deben cambiar de estado, por lo que
sus entradas deben ser 0 :
To =O
T, = 0
Si c 1 cp=11, tenemos la carga y para determinar las entradas de los biestables T i (i =0,1)
nos basamos en la siguiente estructura, siendo D i el dato a cargar en cada biestable .
Di
Di
236 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
Si el dato a cargar coincide con el estado del biestable, éste no debe cambiar de valor,
por lo que su entrada será 0 . En el caso en que difieran, la entrada será 1 .
To = q0 e Do
T 1 = q 1 ,913 1
La solución, para la parte síncrona, será la unión de las entradas de los biestables para
cada señal de control :
To = l .c 1 .c o +1 .c 1 .c o +0 .c 1 .co +(g 0 eD 0 ) c1 co
T1 = qo c1 co+go c 1 - c o +0 c 1 c o + (q 1 eD 1 )c 1 * c o
El circuito resultante es :
C1 q0 - 0 Cl
1-0 q
1- 1 q0 - 1 q
T
0 - 2 0 - 2 T1
Do- q D 1 -1 3 q
qo - 31 0 q1 10 A
II II
c 1 CO 1, 1 CO
clk
Problema 4.- Diseñe un contador módulo-60 (0-59) utilizando dos contadores, uno de los
cuales es módulo 10. Realice el segundo contador con biestables JK y puertas lógicas .
Solución P4.- El contador que tenemos que diseñar con biestables JK debe ser de módulo 6 e
incrementarse cada vez que el contador de módulo 10 alcance su último estado de cuenta .
Vamos a suponer que el contador de módulo 10 dispone de señal de carry (Cy). Daremos dos
soluciones al problema . En la primera, el carry del contador de módulo 10 se utiliza como
señal de up del segundo contador
Cy up
mod . 10 mod . 6
clk 1
En esta solución no influye el tipo de flanco que se escoja para los contadores, eso sí,
los dos deben ser iguales .
En la segunda solución, la señal de carry del primero se emplea como reloj del segundo .
Aquí, sí es necesario, para asegurar que los contadores cambien al mismo tiempo que el flanco
de disparo sea de bajada .
SUBSISTEMAS SECUENCIALES 2 37
Cy 1 P
mod . 10 mod . 6
clk
1
Para la segunda solución, el diagrama de estados es aún más simple, ya que desaparece
la dependencia con la señal de entrada (siempre está cambiando de estado) .
e
111 11 1 1 11 0
Obviaremos los pasos para la obtención del circuito secuencia¡, puesto que ya existe un
Capítulo entero dedicado a este propósito .
Problema 5.- Se dispone de un contador mod-16 con las siguientes señales de control :
CUENTA, CARGA y CLEAR .
a) Si CUENTA = 1 y CARGA = 0, el contador cuenta hacia arriba .
b) Si CARGA = 1, el contador se carga con datos en paralelo .
c) Tiene también salida de CARRY.
Construya, utilizando como dispositivo básico dicho contador-
1 . - Un contador mód. 6 que cuente de 0 a 5.
2.- Un contador mód. 6 que cuente de 10 a 15.
3.- Un contador mód. 6 que cuente de 4 a 9.
4 .- Un contador que cuente de 0 a 34 .
Solución P5 .- A partir de las especificaciones del enunciado y deduciendo que si no está activa
ninguna de las 3 señales de control existe una inhibición, obtenemos la siguiente tabla de
operación :
238 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
0 1 Cuenta
0 0 1 Clear
0 0 0 Inhibición
CARGA
CUENTA
CLEAR 3210
clk
Dado que las operaciones son síncronas, deberemos generar la operación de clear en el
estado 5, para que, cuando se reciba el siguiente flanco de reloj, el próximo estado sea el 0 .
r-W
-1
LWIEW
CUENTA
CUENTA = q 2 q0
Como anexo al apartado, podemos decir que este circuito no sufre situación de bloqueo,
porque si inicialmente se da un estado fuera del rango, sus líneas de control provocarán una
cuenta ascendente o un reset . Por tanto, siempre se llegará a la secuencia de estados prevista .
2 .- Para diseñar un contador que cuente de 10 a 15, utilizaremos las operaciones de carga
y cuenta . Las líneas de carga del contador deberán tener el número 1010 correspondiente al
estado inicial . Las señales de control deben ser : (CARGA, CUENTA, CLEAR) = (1,-,-) para
carga y (0,1,-) para cuenta ascendente . Por tanto, la línea de CUENTA la dejamos a 1, la de
CLEAR puede tomar cualquier valor y la señal de CARGA la generamos en función del estado
de cuenta del contador .
clk
CARGA = q 2 - q, - q 0
3 . Este apartado es igual que el anterior, salvo que ahora se activa la señal de CARGA
en el estado de cuenta 9, y el dato a cargar es el 0100 .
CARGA = q 3 - q 0
4. Para este apartado es necesario utilizar al menos dos contadores . La señal de carry
del primer contador la utilizaremos para incrementar al segundo . Asimismo, generamos un
clear cuando el valor del conjunto de las líneas que forman los dos contadores sea 34 o lo que
es equivalente, que las líneas q 1 de los dos contadores sean 1 y el resto 0 . Podemos deducir
directamente la expresión de la señal de clear como :
CLEAR = q¡ q
Las operaciones a realizar por el contador dos son : inhibición, cuenta ascendente y
clear, para lo que las entradas de control (CARGA,CUENTA,CLEAR) deben tomar los
valores (0,0,0), (0,1,-) y (0,0,1) . Para ello CARGA se puede poner a 0, CUENTA se conecta
con la señal de carry del primer contador y clear se activa en el estado de cuenta 34 .
Para el contador CONTI, las operaciones a realizar son : cuenta ascendente y clear, para
lo que las entradas de control deben ser (0,1,-) y (0,0,1) . Para ello podemos dejar CARGA a 0,
CLEAR a 1 y controlamos la entrada de CUENTA, de modo que cuando esté a 1, se realizará
cuenta ascendente y cuando esté a 0 un clear. La señal de CUENTA la obtendremos
invirtiendo la señal que se activa cuando se alcance el estado de cuenta 34 . En la siguiente
figura se muestra el resultado final :
CARGA - 0 Cy CARGA 0
CONT 2 CUENTA CUENTA
CONT 1
CLEAR CLEAR 1
3210 3210
1 1
clk
Solución P6.- Utilizaremos 4 biestables tipo D, disparados por flanco de subida y con entrada
asíncrona de Cl activa en alto . Todos los biestables van a utilizar la misma señal de reloj . La
codificación que podemos realizar para las 5 operaciones de control es :
L3 L2 L 1. Lo
c2 cl co Operación
0 0 0 SHL Rin Lin
0 0 1
0 1 1
0 1 0
1 xx
SHR
LOAD
INH
CLEAR
C2
C1
co
SOI
R[4]
1 I
q0
I
So r
r
q3 q2 ql
Supongamos que salvo el CLEAR, el resto de las operaciones son síncronas . Entonces,
para cada biestable D tenemos que :
Di = qi-1 i = 1, 2,3
Do = Lin
Si c2c1c0 = 001 (desplazamiento a la derecha), las entradas son :
Di = qi .1 i=0,1,2
D 3 = Rin
D i =qi
Si c2c1c0 = 011 (carga), las entradas corresponderán con las líneas de carga :
Di =Li
La expresión para la entrada de cada biestable se obtiene uniendo las expresiones
anteriores para cada entrada de control .
Do = L in C 1 co+q1 c1 .co+go .c1 0 +L o .c 1 .c o
.c 1 c o
D1 = go . c1 . co + q2 C1 co+q1 c 1 .co +L 1
D3 = q2 c, co +R in C 1 Co+q3 c 1 c o +L3 c 1 c o
c2
(Li n si i = 0) qi-I
(Ri n si i = 3) qi+1
qi
Li
Problema 7.- La figura muestra un registro de cuatro bits y sus operaciones . Utilizando
conexiones y circuitería externa adicional a ese registro :
a) Obtenga un registro universal de cuatro bits ; esto es, tendrá carga en paralelo,
desplazamiento a derecha e izquierda, y "no-cambio" (inhibición) .
SI : Entrada en serie .clk
SH: Desplazamiento a la derecha .
L : Carga en paralelo .
SO: Salida serie.
SH L REG 4- SI
0 0 REG 3 2 1 0
SH
0 1 X3-Xo REG
1 - SHR(REG,SI) L 3 2 1 0
Ck SO
q3 q2 q1 q 0
b) Construya un registro con desplazamiento circular a la derecha y complete el
diagrama temporal mostrado si cuando se activa la señal de carga (L) el valor de las entradas
es X3X2XjXo = 1010.
clk
L J
SH
SO
Solución P7 .
a) Para conseguir la única operación no disponible, el desplazamiento a la izquierda,
utilizaremos la operación de carga de forma que mediante un cableado apropiado entre las
salidas del registro con las entradas de carga se simule este desplazamiento . El registro a
diseñar debe tener dos señales de control que permitan la realización de cuatro operaciones
distintas . Llamemos a estas señales 11 e lo . En la siguiente tabla, aparece una posible
codificación de éstas y su relación con las señales a activar en el registro .
1 1 Io SH L Operación
0 0 0 0 Inhibición
0 1 0 1 Carga
1 0 1 - SHR
1 1 0 1 SHL
X 3 - D 3 . 1 +q2 1
X2 = D2 11 +q, . 1 1
X1 = D 1 . 1 1 +q0 . 1 1
Xo =DO* I I + S IL . 1
Puede observarse que en las expresiones anteriores se ha eliminado la dependencia de
lo. Esta entrada sólo sirve para distinguir entre la operación interna de carga, y las restantes
(desplazamiento a derecha e inhibición) . Cuando estas últimas están activas, los valores de las
entradas de carga son indiferentes, por lo que la ausencia de I o no afecta a la operación del
dispositivo .
Nos queda, por último, diseñar el circuito que adapte las señales de control I 1 l o a las del
registro SH y L. De la tabla inicial, podemos sacar las expresiones algebraicas siguientes :
SH =1 1 ,1 0 1
L=1 0
L=I 1 +I 0
El circuito resultante es :
- X2 X 1 Xo
I
SI 3 2 1 0
SH REG
L 3 2 1 0
Ck SO
q3 q2 q1 q0
Por último, nos falta obtener la forma de onda de la salida cuando se somete al circuito
a la secuencia de operación mostradas en la figura del enunciado .
Para dibujar la forma de onda de la salida del registro debemos tener en cuenta que los
cambios en la salida suceden en los flancos de bajada de la señal de reloj . Supongamos que
inicialmente el contenido del registro es desconocido . Cuando se recibe el primer flanco
activo, las señales de control L y SH están respectivamente a 1 y O lógicos . Esto provoca una
carga en paralelo . A partir de este ciclo ya es conocido el contenido del registro . En los cinco
flancos siguientes las señales de control provocan el desplazamiento sucesivo del contenido
del registro . La salida SO se corresponde, en cada momento con el bit menos significativo .
Para los últimos tres ciclos, el registro se inhibe por lo que no se altera el contenido .
Problema 8 .- La figura representa un registro de 8 bits cuyas funciones son las especificadas
en la tabla . Las salidas DZ deben ir conectadas a un BUS compartido . El BUS EB es
bidireccional.
a) Diseñe el registro utilizando puertas y biestables de tipo T con entradas de PRESET
y CLEAR activas en alto (H).
b) Añada al diseño realizado en el apartado anterior un circuito para que cada función
del registro se ejecute activando una única línea . En esta parte pueden utilizarse
subsistemas como elementos de diseño .
0 0 1 Lectura desde DZ
X2
0 1 0 Escritura en REG
X1
0 1 1 Lectura desde EB
xo
0 0 0 Puesta a cero síncrona
1 - - Puesta a cero asíncrona
Solución P8.- Diseñamos una celda de este registro . Las salidas al bus DZ deben soportar alta
impedancia por ser este un bus compartido . Para esta salida utilizamos buffers triestados .
Estos buffers se usan también en la salida EB, para evitar las colisiones entre la salida del
biestable y el dato de entrada . Partimos de la siguiente estructura :
SUBSISTEMAS SECUENCIALES 245
X2_o
q,
EB i
A ; y B i son las entradas de control de los buffers triestado y D i la entrada de datos que
se obtiene del bus bidireccional . El circuito combinacional C .C . debe generar las señales Ti ,
A i , B i , Cl i y Pri , en función de las señales de control Xi , del estado actual y el dato de entrada
D i . Para no extender demasiado el diseño, vamos a utilizar para el circuito C .C subsistemas
combinacionales . La tabla de funcionamiento para C .C . es :
Hemos supuesto que los buses se encuentran en alta impedancia siempre que no se haga
una operación de lectura que los afecte . En cuanto a las señales asíncronas, Pr, como se
observa, no se utiliza por lo que podemos fijarlo a 0 . A la señal Cl podemos asignarle
directamente la variable X 2 . Cuando X2 tome el valor 1, el registro se pone a 0
independientemente de las restantes señales de control . Esto nos sirve para independizar la
expresión de Ti de la variable X2 . Por tanto, podemos deducir que :
Ti = ;
q -X, X o +Di og i .X 1 .X O
Esto se podrá realizar con un multiplexor de 4 canales . Para las entradas de control de
los buffers tenemos :
A;=X2 . X, .Xo
B ; = X2 X, Xo
Problema 9 .- a) Diseñe un contador síncrono con una entrada X, de forma que sea un
contador de mod-16 para X = 0 y de mod-12 para X = 1 .
b) Diseñe un circuito que genere la secuencia de palabras dadas en el diagrama de
tiempo de la figura utilizando el contador anterior y una ROM .
16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1
secuencia para X = 1
secuencia para X = 0
Solución P9 .
a) Utilizaremos un contador módulo 16 con puesta a cero síncrona . Si la entrada X está
a 0, lo dejaremos recorrer los 16 estados ; si X está a 1, sólo le dejaremos recorrer los 12
primeros estados, para lo cual generaremos un clear cuando el estado de cuenta sea el 11 en
decimal . Si suponemos que la señal de clear (Cl) es activa en alta, tenemos :
X=1
8392
q\ 00 01 11 10
00 o o 0
01 0 0 o
11 0 o
10 0 o o
C1
C1 = g 3 q 1 q o .X
El circuito resultante es :
CI
q0 q q q3
clk
b) Para generar la secuencia deseada utilizaremos el circuito anterior y una ROM . Con
esta última será posible generar, para los 16 posibles estados, las salidas za, Zb , Zc Y zd
correspondientes . Por tanto, exigiremos que la ROM posea 16 posiciones de memoria (4 líneas
de dirección, que corresponderán con las líneas de salida del contador) y cuatro bits en cada
posición (valores de las salidas z a , . . . para cada ciclo de reloj o estado del contador) .
mód . 12/16
ROM A q q1 q q3
clk
Zd
Zc
0 0
1 1
Zb 2 2
Za 3 3
En cada ciclo de reloj tenemos un estado de cuenta para el contador y una dirección
activa de la ROM cuyo contenido se mostrará en las salidas z a, . . ., zd . Si para el ciclo 0 ( estado
de cuenta 0), las salidas (za , zb , z c , zd ) = ( 1, 0, 1, 0), la dirección 0 de la ROM deberá tener
precisamente este contenido, o sea, (1, 0, 1, 0) . Repitiendo este paso para todos los ciclos,
tenemos la siguiente tabla de programación de la ROM :
Dirección Contenido
$0 A
E
$2 $5
$3 $1
$4 $4
$5 $6
$6 $6
$7 $F
$8 $B
$9 $9
$A $5
$B $3
$C $A
$D $0
$E $C
$F $3
Problema 10.- El circuito integrado 74LS 193 es un contador síncrono de 4 bits con carga en
paralelo, señal de puesta a 0 (clear), también síncrona, e inhibición . Utilice un 74LS 193 y las
puertas necesarias para realizar el diagrama de estados de la figura .
o~~o 0
e
0 0
esta forma, salvo el paso del estado G al A, todas las transiciones (A-B, B-C, . . .) pueden ser
realizadas sin más que activar la señal de cuenta .
El segundo paso consiste en asignar el estado de cuenta cero . En general, escogeremos
aquel estado que simplifique el número de operaciones de carga . Para nuestro ejemplo, existen
varias soluciones ; asignar la cuenta 0 al estado A, al D o al G . De este modo, el número de
operaciones de carga distintas, es de dos, mientras que, si hubiéramos escogido cualquier otro
estado, el número de estas operaciones sería mayor (esto es equivalente a elegir como estado 0
a aquel estado que reciba el mayor número de transiciones) . Si escogemos, por ejemplo el A,
la tabla de asignación de códigos queda :
Estado
Podemos deducir que el contador debe disponer, para realizar el diagrama, de las señales
de control anteriores y de un mínimo de 7 estados de cuenta . Como podemos ver, el contador
de la figura cumple con todos estos requisitos . El siguiente paso consiste en obtener las
expresiones algebraicas que relacionen las señales de control a activar y datos de carga con el
estado presente del contador y la entrada X . Para simplificar esta tarea, vamos a hacer una
reducción previa ; el contador dispone de cuatro salidas, de las cuales sólo nos son útiles tres,
ya que el diagrama tiene siete estados . Vamos a hacer la asignación, por tanto, ignorando el
valor de q 3.
250 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
Estado q3 q2 q1 q0
A 0 0 0
B 0 0 1
C 0 1 0
D 0 1 1
E 1 0 0
F 1 0 1
G 1 1 0
P D 3 D2 D 1 D0
T
Clear
Load q q q q
C .C . X
-----------------------
X q2 q1 q0 Clear Load P T D2 D 0
0 0 0 0 1 1 1 1
0 0 0 1 1 1 1 1
0 0 1 0 0
0 0 1 1 1 0 1 0
0 1 0 0 1 1 0 -
0 1 0 1 1 0 0 1
0 1 1 0 0
0 1 1 1
1 0 0 0 1 1 1 1
1 0 0 1 1 1 1 1
1 0 1 0 1 1 1 1
1 0 1 1 1 1 1 1
1 1 0 0 1 1 1 1
1 1 0 1 1 1 1 1
1 1 1 0 0
1 1 1 1
En la tabla anterior, para la entrada 0100 del circuito combinacional, se han escogido
para P y T los valores 0 y - respectivamente, de forma que P .T = 0 . Las ecuaciones de salida
para el circuito combinacional son :
CLEAR = q, +qo q 2 +X q 2
LOAD = q o +q, q 2 +X
Problema 11.- Se dispone de una señal binaria con periodo de 1 minuto, contadores de
módulo 10 disparados por flanco negativo, con entrada de clear síncrona activa en alta y
salida de acarreo (carry), visualizadores de 7 segmentos con entradas BCD y puertas lógicas .
Diseñe un reloj digital que muestre las horas y minutos .
Solución P11 .-Podemos deducir, a partir del funcionamiento del reloj, que necesitaremos dos
contadores para los minutos y otros dos para las horas . La salida binaria de estos contadores
puede actuar como entrada a los displays de 7 segmentos como recoge la siguiente figura :
------------------------------------------
clk
El contador CONT1 debe ser capaz de cambiar desde el estado 0 al estado 9 en cada
minuto o ciclo de reloj .
Y CONT 1 CL 1
q3 q2 q 1 q 0
clk ('imin")
El contador CONT2, debe cambiar de estado cada 10 minutos . Los estados que puede
recorrer van desde e10 al 5 . Como las únicas operaciones que pueden realizar estos contadores
son la cuenta arriba y el clear, nos vemos obligados a dotar a este contador de una señal de
reloj de 10 minutos . Ésta la podemos conseguir a partir del carry del contador CONT1 .
Además, cuando el estado de cuenta alcance el valor cinco, activaremos la señal de clear .
CL 2 = qi qó
El superíndice de la expresión anterior hace referencia al contador del que extraemos las
salidas q ; . En este caso, el contador CONT2 .
clk
clk
CY 1 . . .... . . . . . . . .
. . .... . . . . .
CL2
CONT 1 .......... Z EX C :
CONT 2 0 > C 4 5 iC
El diseño del contador CONT3 es algo más complejo . Éste debe cambiar de estado cada
60 minutos y, en función del estado del contador CONT4, debe alcanzar hasta el valor nueve
(cuando [CONT4] < 2 ), o sólo hasta el tres (cuando [CONT4] = 2) . Para su entrada de reloj,
utilizaremos la señal de clear del contador CONT2 . Si nos fijamos en la ilustración anterior,
esta señal genera un flanco negativo, cada 60 minutos, sincronizado con la señal clk . Por otro
lado, debemos activar la señal de clear (CL 3 ) cuando [CONT4] = 2 y [CONT3] = 3 . La
ecuación para la señal CL 3 es :
CL3 = qi • qi . qó
Por último, el contador CONT4 debe tener una señal de reloj que lo haga cambiar de
estado cada diez horas, cuando [CONT4] < 2 ; o bien cuando el reloj se encuentre en la
situación 23 :59 . Esta señal de reloj la podemos obtener uniendo mediante operación OR, una
señal binaria con periodo de diez horas, con otra con periodo de cuatro cuando el
[CONT4] = 2 . Para la primera, utilizaremos la salida de carry del contador CONT3 . Para la
segunda, utilizaremos la salida q 1 del contador CONT3 (ya que las salidas de un contador
actuán como divisores de frecuencia y, por tanto, como la entrada de reloj del contador
CONT3 tiene un periodo de una hora, la señal q0 tendrá un periodo de dos horas y la q l , de
cuatro) .
CL4=q
El circuito resultante se representa en la siguiente figura :
clk3
[CONT3] . ... . . . . . . . . . .
CY3 1
3
q1
[CONT4]_ 0 >c
Problema 12.- Diseñe un circuito que genere la secuencia : 1, 1, 0, 0, 1, 0.
Solución P12 .-Existen múltiples soluciones a este problema . Vamos a plantear algunas .
a) A partir del diagrama de estados . Obteniendo el circuito utilizando el método
sistemático de síntesis de circuitos secuenciales .
b) Basado en un registro de desplazamiento, donde la salida q5 se conecta a la entrada
Lir , para la generación periódica de la secuencia .
110010
shllload Lin
g5g4q3q2qiq0 A
Z clk
En este caso, el registro necesita ser cargado con la secuencia . Esto se consigue con la
señal de control X, y colocando en las entradas de carga los bits de la secuencia . Si X = 0 se
q5
S .R[3] Lin
q2 q1 q0
C .C .
Puesto que este registro no puede almacenar la secuencia entera, tendremos que diseñar
un circuito combinacional que en función de los bits de la secuencia parcial que se encuentran
en el registro, introduzca el próximo bit de la secuencia por Li n .
Para determinar el circuito se procede de la siguiente manera . Supongamos que
inicialmente se encuentran almacenados en el registro los tres primeros bits de la secuencia, o
sea, g2 g 1 q0 = (1,1,0) . El próximo bit de la secuencia que debe ser introducido por Li n es el 0,
por lo que el circuito combinacional debe generar salida 0 para entrada (1,1,0) . Supongamos
ahora que se recibe un flanco de reloj . El contenido del registro se desplaza hacia la izquierda
y el valor de L in pasa a ocupar la posición menos significativa, g 2 g l q0 = (1,0,0) . El próximo
bit a introducir por L in será ahora 1 . Por tanto, C .C . generará salida 1 para entrada (1,0,0) . Si
repetimos este proceso, obtendremos la tabla siguiente :
q2 q1 q0 Lin
1 0
0 0
r 0 1
1 0
0 1
1 1
1 0
Como puede observarse, para cada entrada obtenemos un único valor de Li,,, por tanto
podremos generar esta función mediante un circuito combinacional . Es probable que en
muchos diseños aparezcan entradas idénticas que generen salidas distintas para Li,, . En tal
caso, deberemos aumentar progresivamente el tamaño del registro de desplazamiento hasta
que a cada entrada sólo le corresponda una única salida del circuito a diseñar . Es entonces,
cuando obtendremos el circuito asociado .
El K-mapa para nuestro problema es :
e
Lin
de donde obtenemos la siguiente expresión :
L,~ = q2 q0+q2 q1
Solución P13.- Este problema utiliza el registro como elemento almacenador de los bits de la
secuencia a detectar. En un diseño de Mealy podemos emplear la variable de entrada X en la
expresión de la salida, reduciendo el tamaño del registro a tres bits .
ShR REG
X 1 q2 qi q
Z
C .C . ,
-----------------
De este modo, el registro almacena los valores de la entrada en los últimos tres ciclos y,
junto con el valor actual de X, el C .C . puede generar la salida Z . La expresión algebraica para
Z es la misma que la del problema anterior pero cambiando q3 por X .
Problema 14 .- Represente la salida del circuito de la figura siguiente durante 5 ciclos de reloj
suponiendo que el registro tiene almacenada la palabra 110 inicialmente y que la única
operación disponible para el registro es el desplazamiento a la derecha .
La q2 q t qo D O°t
clk I I
Solución P14 .- Con carácter general podemos decir que la salida se obtiene a partir de la fun-
ción XOR entre el bit 1 y el bit 0 del registro de desplazamiento . De igual manera, el valor de
Z se toma como entrada de desplazamiento del registro . En la siguiente figura se representa la
secuencia de salida para los primeros 5 ciclos de reloj .
A
clk
[reg]
Problema 15.- Diseñe un contador de 4 bits (módulo 16) que permita carga de datos en
paralelo. El contador debe ser slncrono y podrá ser puesto a 0 (clear) . Diséñelo con biestables
JK y puertas lógicas .
Solución P15.- En esta solución se ha supuesto que el clear y el load son asíncronos y activos
en alta .
Load
Clear
CI Pr C1 Pr C1 Pr CI Pr
J q0 J q, J q2 J q3
1
clk
V v
q0 q, q2 q3
Problema 16.- Se desea disponer de un contador con dos entradas de control (1 y D) que
realice las siguientes funciones :
a) Si I=D=O, el contador está inactivo (no cuenta) .
b) Si 1=1, el contador se incrementa (cuenta hacia arriba) .
c) Si D=1, el contador se decrementa (cuenta hacia abajo) .
Se prohibe que las entradas l y D sean simultáneamente 1 .
1 . Diseñe uno de 4 bits, síncrono, con biestables tipo T (no utilice la tabla de estados
global pues tiene 16 estados) .
2. Indique qué ocurre si por error u otra causa hay entradas ID= 11 .
3 . Generalice el diseño para n bits .
Solución P16.
1) Las ecuaciones para las entradas de los cuatro biestables son :
T o =I+D
T, = I' qo+D' qo
T 2 = 1 . q, .go+D - go'q,
T3 = I . g2 . q, .go+D . g2 . q, .go
affs o
3) Generalizando para n bits :
n-1 n-1
T; = I . flg i + D . [J q; (i= 1, . . .,n)
i=0 i=0
To = I+D
Problema 17.- Se dispone de contadores módulo 16 con dos señales X, y X 2 que controlan
su funcionamiento :
x, Xp Operación
0 0 Puesta a cero
0 1 Carga en paralelo
1 - Cuenta ascendente
Tomando como base este tipo de contadores, realice los diseños siguientes :
a) Un contador mod-7 que cuente de 0 a 6 .
b) Un contador mod-7 que cuente de 9 a 15 .
c) Un contador mod-7 que cuente de 4 a 10 .
d) Un contador que cuente de 2 a 34.
Solución P17 .- En las siguientes soluciones no se han tenido en cuenta los problemas de
bloqueo y además, se ha supuesto que las operaciones de clear y carga son asíncronas .
a) Contador módulo 7 (de 0 a 6) :
1 1 1 1
3 2 1 0
CONT[41
xo
q3 q2 q1 q 0
clk
1 0 0 1
I I I I
3 2 1 0
CONT[41 xó 1
q3 q2 9 i q 0
clk
d) Contador de 2 a 34 :
0 0 1 0
1 1 1 1 I 1 1 1
3 2 1 0 3 2 1 0 X
CONT[4] Xó CONT[4] Xó
93 q2 9 i qo A 93 q2 q 190
I
clk
Operación
Puesta a 0 asíncrona
Inhibición
Desplazamiento a izquierda
A
Desplazamiento a derecha
Carga en paralelo
A 1 Ao Operación
y que posea una señal de lectura (R) activa en alta, de forma que, cuando no esté activa
ponga al dispositivo en alta impedancia .
1) Diseñe el registro utilizando las puertas necesarias y el 74198 .
2) Suponiendo que inicialmente el registro contiene el dato 10101010, indique qué
ocurre para la siguiente secuencia de entradas (cada valor corresponde a un ciclo de reloj) .
R A,A 0 : 0-0, 110, 011, 001, 100 .
Solución P18 .
Ap
I[7-0]
07
Ds1
A1 -
Dsr
00 - 1
c MR
1 74198
A1
Ao %~ [8]
O[7-0]
clk
8
R V
Y
Z[7-0]
[CONTI 10101010
Z[7-01 ( 01010101) ( 11010101
Problema 19.- Un sistema tiene una única entrada y dos salidas. El sistema puede estar
fuera de servicio o en servicio . Entra en servicio tras recibir la secuencia 1, 1, 1 y se pone fuera
de servicio tras 0, 0, 0. Una vez que está en servicio, el sistema detecta la secuencia 1, 0, 1
Solución P19 .
1/00
0/10
Estado q2 qt q0
a 0 0 0
b 0 0 1
c 0 1 0
d 0 1 1
e 1 0 0
f 1 1 1
1 0 1
h1 1 1 0
Con la asignación anterior, se requieren las señales de control que aparecen codificadas
en la siguiente tabla :
c 1 co Operación
00 Up
01 Inh
10 Clear
11 Load
2 1 0
CONT[31 cl
co
q2 ql q 0
ROM
clk 0 0 Zb
Za
X
262 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
X q2 ql q0 D i ci c0 Za Zb
0 0 0 0 0 1 1 0
0 0 0 1 1 0 1 0
0 0 1 0 1 0 1 0
0 0 1 1 0 0 0 0
0 1 0 0 1 1 1 0 0
0 1 0 1 0 0 0 0
0 1 1 0 0 0 0 0
0 1 1 1 0 0 1 0
1 0 0 0 0 0 1 0
1 0 0 1 0 0 1 0
1 0 1 0 0 0 0 0
1 0 1 1 0 1 1 0 0
1 1 0 0 0 0 0 0
1 1 0 1 0 1 0 0
1 1 1 0 0 1 1 0 1
1 1 1 1 0 1 1 0 0
Problema 20.- Se desea detectar el envío del número diez que llega por una única línea
comenzando por el bit LSB . Suponemos el caso de existencia de solapamiento en la cadena
de bits . De un diseño con módulos combinacionales, módulos secuenciales y el menor núme-
ro de puertas lógicas posibles .
Solución P20 .
Con un registro de desplazamiento a la derecha y una puerta AND de tres entradas :
X
Rin SHR[3] ShR
clk
Capítulo 10
MEMORIAS SEMICONDUCTORAS
263
16 Bus de direcciones
1 1
cc I1 14 CC . j131éc1 13 1cC1 12 IccI 1211 ccI 12 CC 12
-> y W
Chip 2 Chip 3 Chip 4 Chip 5 Chip 6 Chip 7 Chip 8
RAM RAM ROM ROM RAM RAM RAM
16K 8K 8K 4K 4K 4K 4K
. .. ......... ......... ........ ........ . ........... ......... ........ ........ ......... .......
líneas de dirección de palabra
selección física (en cada chip)
de chip
EL MAPA DE MEMORIA
De las conexiones mencionadas entre la CPU y la unidad de memoria, las únicas que cambian
de un problema multichip a otro son las del circuito de decodificación que selecciona cada
chip . Este circuito resulta de una u otra forma según se asocie cada chip con una región con-
creta del espacio de direcciones . A esto nos referimos como "mapa de memoria" . Un ejemplo
de mapa es el que se ilustra a continuación . El él se observa que, si la palabra lógica (esto es,
la direccionada por la CPU) es $A018, la palabra física a la que se accede es la $0018 del
chip 4, cuyo contenido es, en este caso $07 (00000111) . Dicha forma de representar mapas de
memoria es poco efectiva . En su lugar utilizaremos una descripción basada en los bits más sig-
nificativos de las líneas de direcciones con las que se divide fácilmente el espacio global en
regiones de 2 k palabras . En la figura que se presenta, además de esta forma de representar el
mapa, hemos incluido cuáles son los valores de las salidas del circuito de decodificación
(CS 1 , CS 2 , . . ., CS 8) . Como se observa, en cada región sólo hay un chip seleccionado evitándo-
se así los problemas de colisión .
MEMORIAS SEMICONDUCTORAS 265
0 0000
Chip 1
} RAM 16K
16383 3FFF
16384 4000
Chip 2
} RAM 16K
Dirección Chip 4 Dirección
32767 7FFF del mapa . ROM 8K interna
32768 8000 de memoria del chip
} Chip 3
RAM 8K
9FFF A000 0000
Registro de 40959
dirección 40960 A000
Chip 4
A018 } ROM 8K A018 07 0018
49151 BFFF
49152 0000
Chip 5 BFFF 1FFF
} ROM 4K
53247 CFFF
53248 D000
Chip 6
} RAM 4K
57343 DFFF
57344 E000
Chip 7
} RAM 4K
61439 EFFF
61440 F000
} Chip 8
RAM 4K
65535 FFFF
A 15 A 14 A 13 A 12 CS 1 CS 2 CS 3 CS 4 CS 5 CS 6 CS7 CS 8 Chip
0 0 - - 1 0 0 0 0 0 0 0 1 (16K)
0 1 - - 0 1 0 0 0 0 0 0 2(16K)
0 - 0 0 1 0 0 0 0 0 3(8K)
1 0
1 - 0 0 0 1 0 0 0 0 4 (8K)
0 1 0 0 0 0 1 0 0 0 5(4K)
0 1 0 0 0 0 0 1 0 0 6(4K)
1 1
1 0 0 0 0 0 0 0 1 0 7 (4K)
1 1 0 0 0 0 0 0 0 1 8(4K)
266 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
Hay, entre otros, dos tipos de memoria de acceso secuencial que son la memoria LIFO (Last
In First Out) y la memoria FIFO (First In First Out) . Ambas poseen, además de la "no opera-
ción" (NOP), operaciones de escritura, por la que se almacena un nuevo dato en la memoria,
y de lectura, que es una operación destructiva en el sentido de que desaparece el dato leído . El
orden de lectura de datos coincide con el orden de escritura en la FIFO y es al revés en las
LIFO . Con las memorias LIFO se hacen memorias tipo "pila" y las operaciones se llaman
PUSH (escritura o apilamiento de un nuevo dato) y PULL o POP (lectura o extracción de un
dato apilado) .
PROBLEMAS RESUELTOS
A15
Solución Pl .
A15
0
A14 - 1
A13 - 0 2 o--
A15
DEC 2 :4 3
CS CS
A12-A0 ~ a12-a0 g lo D7 -Do A 1 2-A0 -+~-~ al 2-ao -,-> D7 - Do
13 9> 13
ROM RAM
0 1 RAM (8Kx 8)
0
0 RAM (8Kx 8)
1
1 - - ROM (8Kx 8)
CS 1
A 11 -A0
a l ,-a0
-2 }
0 M
A13 - 1
A12- 0 2
3
DEC 2 :4
A15 - 1
A14 - 0 2 Ajo-A0
D
a to -a0
DEC 2 :43 8
0
1
2
3
DEC 2 :4
z
CS
Ajo-A0
a jo -a0
I1 8
M3
V
DO - D7
Solución P2 .
Sean CS 1 , CS 2 y CS 3 las señales de selección de chip correspondientes a ROM 1 , ROM2
y ROM3 respectivamente . Sean a; las líneas de dirección de las memorias M i .
Directamente del diagrama del circuito :
M 1 (2 12 x 8) =M I (4K x 8)
La ecuación para la señal de selección de la memoria es :
CS1 = A 1 5+A 14 +A 1 3+A 1 2
Las líneas que componen el bus de direcciones interno :
al,-, = A11-o
M 2 (2 '1 x 8) = M 2 (2K x 8)
Ecuación para la señal de selección :
CS 2 = (A13+A12+A,5+A14) • (A13+A„ + [A15+A,4] - [A15+A141) _
M3 (2" x 8) = M 3 (2K x 8)
Señal de selección de chip : _
CS3 = ( A 13 +A 11 + [ A 15 +A 141 . [A ,5+A141) _ (A14+A13+A11)
Líneas de dirección :
a,o-o = Ato-o
A partir de las ecuaciones obtenidas para CS i , podemos evaluar cuándo se selecciona
cada memoria . Para ello basta analizar para qué combinación de las líneas de dirección se tiene
CS i = 0 . Así obtenemos el mapa de memoria que se muestra a continuación . Como se observa,
M 1 (4Kx8) ocupa 4K posiciones en el espacio de memoria : $0000 - $OFFI-
M 2 (2Kx8) ocupa 12K posiciones en el espacio de memoria :
$2000 - $2FFF
$4800 - $4FFF
$5800 - $5F1-}
$C800 - $CFFF
$D800 - $DFFF
Esto quiere decir que aunque el chip físicamente sólo contiene 2K direcciones, existen
12K direcciones del espacio de memoria que hacen que se seleccione el chip M2 . Por ejemplo,
si en el bus de direcciones externo se fijan las direcciones $2000, $4800, $5800, $C800 ó
$D800, estaremos leyendo una única dirección física en M 2 , la $0000 .
M3 (2Kx8) ocupa 8K posiciones en el espacio de memoria :
$6000 - $67FF
$7000 - $77FF
$E000 - $E7FF
$F000 - $F7FF
MEMORIAS SEMICONDUCTORAS 269
0
0
1
0
0 (4K)
1
1
0 0
0
1 N
0
0
1
1 (2K)
1
0 M3 (2K)
0
1
1
0 M3 (2K)
1
1
0
0
1 M, (2 K)
0
0
1
1 M, (2 K)
1 1
0 M3 (2K)
0
1
1
0 M3 (2K)
1
1
CS CS CS
A 15 ,A 13 -A D -D7 A 15 -A DO-D7 A 14 -A D -D7
a14-0 a14-0 a14-0
15 8
Solución P3.
Caso a)
La RAM se selecciona cuando su señal de selección de chip CS = 0 .
CS = A14 . A13 + A14 .A13, por tanto se puede acceder a la memoria en las combinaciones
A14 A13 = 01 ó 10, y está no seleccionada cuando A14 A13 = 00 ó 11 .
Se comprueba por tanto, que no hay conflicto de selección con las memorias RAM ni
ROM previamente posicionadas . En ninguna ocasión se selecciona más de una memoria si-
multáneamente .
Las líneas de dirección de la RAM (a14-0) son : a14 = A15 , a13-0 = A13-0 . Dado que la
línea A 13 forma parte simultáneamente del conjunto de líneas de dirección de la memoria y del
circuito de selección de chip (CS = A140+A13) es necesario hacer ciertas consideraciones . Para
los 8K que ocupan las primeras posiciones de la RAM se tiene que a14 = A15 = 0 Y
a13 = A13 = 0 . Para que CS = 0 será necesario A 14 = 1 . Por tanto, los primeros 8K de la RAM
ocupan las posiciones del mapa en que A15A14A13 = 010 . Los siguientes 8K son posiciones
en las que de nuevo a14 = A15 = 0 pero a13 = A13 =, con lo que para que se cumpla CS = 0 se
ha de fijar A 14 = 0 . En este caso se estarán ocupando las posiciones del mapa en que
A15A14A13 = 001 . Razonando de igual modo se concluye que los 16K de la RAM con las po-
siciones más altas se direccionana para A15A14A13 = 101 y 110 .
El mapa, para el caso a) queda :
Para A15-0 = $ABCD se selecciona la sección R1 de la RAM (A14 A13 = 01, y por tanto
a14a13=01) .
Asimismo se tiene A14-0 = $2BCD, de donde se deduce que la dirección interna de la
memoria a la que podemos acceder es a14-0 = $2BCD .
272 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
Por último, para acceder a la dirección interna de la memoria RAM a14-0 = $4680 que
pertenece al tramo de R2 sólo hace falta determinar A 15 , que puede valer 0 ó 1, como se quiera .
Esto es, se accede a la dirección requerida tanto para A 15 -0 = $4680 como para A 15 - 0 = $C680 .
A 13 -Ao Do - D 7
1lo
o 14 8
1 16K
A15 2
3
A14 4
5
A12 6 A13,A11 - A0 D - D7
DEC 3 :8 7 -f-->
13 8
8K
A13,A11 - A Do - D7
1 10
13 8 8 Do - D7
8K
Solución P4 .- Primero obtenemos el mapa de memoria para conocer las direcciones fuente (de
M 2 y M 3 ) y destino (M 1 ) .
Analizando el circuito combinacional de decodificación :
A15A14A12 = 000 ó 001 selecciona M 1
A15A14A12 = 011 selecciona M2
A15A14A12 = 110 selecciona M3
A continuación formamos las instrucciones TRANSFIERE (, , ) necesarias . Para ello
dibujamos el mapa de memoria .
MEMORIAS SEMICONDUCTORAS 273
Problema 5.- Utilizando circuitos de memoria de 8Kx8, realice una asociación de 32Ka partir
de la posición $6000 .
Solución P5 .- Para ocupar 32K bytes de memoria con chips de memoria de 8Kx8 necesitamos
4 de estos (M I , M2 , M3 , M4) . Sean CS i el terminal de selección de chip y a 12- 0 sus líneas de
dirección .
Conectaremos las líneas del bus de direcciones AB = A15-0 de forma que a12-0 = A12-0,
y la selección de memoria la realizaremos con A15 , A14, A13 . Repartiremos las posiciones de
las distintas memorias como muestra la siguiente tabla :
A1 1
2 D-
A14 3
4 a
A1 5
0
6
DEC 7
n n
CS CS 2 CS4
a12-0 0 DI
a12-0 a12-0 0 DI a12-0
13 13 13
M1 M2 M3 M4
A15-A0
16 A12 - Ao
Problema 6.- Se desea diseñar un sistema microcomputador que tenga 64Kbytes de memo-
ria, de los cuales, 40K sean RAM y 16K ROM . Se dispone de chips de los siguientes tipos :
ROM: 16Kx4
RAM: 16Kx8
RAM : 4Kx8
Diseñe el circuito de decodificación necesario .
MEMORIAS SEMICONDUCTORAS 275
cs
cs
a13 0 a13-0
7-0
14 16Kx4 16Kx4 16Kx8
210 3210
L 7161514 3)2)J0)
D7-0
Buscamos ahora la forma de situar 40K de memoria RAM y 16K de ROM en un mapa
completo que ocupa 64K .
De todas las posibles soluciones adoptamos aquella en la que se ocupa el espacio de me-
moria desde las posiciones más bajas para la RAM y las últimas posiciones de memoria para
la ROM . El mapa de memoria queda con la siguiente distribución :
0 0 - - M1 RAM 16Kx8 0 1 1 1 1
0 1 - - M2 RAM 16Kx8 1 0 1 1 1
0 0 M3 RAM 4Kx8 1 1 0 1 1
1 M4 RAM 4Kx8 1 1 1 0 1
1 0
1 Libre 1 1 1 1 1
1 1 - - M5 ROM 16Kx8 1 1 1 1 0
Las señales de selección de chip para cada una de las memorias las obtenemos con el
siguiente circuito de decodificación :
0
A15 1 1
A14 0 2
DEC 2 :4 3
EN
0 CS 3
1 CS 4
DEC 2 :4
Problema 7.- Se dispone de 3 circuitos de memoria con entrada de selección activa en nivel
bajo, dos son de 8K palabras y el tercero de 32K. Estos circuitos van a estar direccionados
por un procesador de 16 señales de dirección (A 15- 0) . Se requiere que los circuitos de 8K ocu-
pen las direcciones menores y las mayores .
a) Proponga un mapa de memoria que utilice los tres circuitos y deje libre las 16K pa-
labras de dirección sobrantes . Diseñe el circuito que realiza ese mapa .
b) Indique el circuito de memoria y la posición en dicho circuito que se activa con cada
una de las siguientes direcciones ($A 15-o, en hexadecimal) : $0123, $2345, $4567, $6789,
$89AB, $ABCD, $CDEF y $EF01 .
Solución P7 .-Descomponemos las 64K direcciones del bus de direcciones externo AB, en
grupos de 8K, cada uno de los cuales está definido por uno de los posibles valores de A15 , A14 ,
y A 13 . La tabla indica una de las posibles soluciones, donde la memoria de 32K ocupa las po-
siciones intermedias . Para realizar el circuito, describamos cómo son las memorias :
M 1 y M2 son de 8K, por tanto tienen 13 líneas en su bus de dirección (a12-0) .
M 3 es de 32K con 15 líneas de dirección (a14-0) . _
Asumimos que todas tienen su señal de selección CS M ; .
• 0 0 8K de M 1
• 0 1 Libre
0 1 0
• 1 1
32K de M 3
1 0 0
1 0 1
1 1 0 Libre
1 1 1
A15 >1
A14 esMI
A13
A15
A14 CSM3 o- USM2
A13
=1
USM3
CS MI CSM2 CSM3
Ml M2 M3
a12-0 a12-0 a12-0
8K 8K 32K
Problema 8.- En una memoria LIFO de fondo 6 se va a realizar la siguiente secuencia de op-
eraciones:
3 PUSH, 1 NOP', 1 PULL, 2 PUSH, 2 NOP, 1 PULL, 1 PUSH .
La memoria está vacía en el instante inicial. La anchura de la memoria es de 8 bits . Por
su bus de entrada vienen caracteres ASCII con paridad par, concretamente, los valores du-
rante las sucesivas operaciones de escritura son : N, E, G, 1, C, B.
a) Muestre el contenido de la LIFO al realizar la secuencia de operaciones.
b) Supuesta vacía la LIFO y siguiendo un proceso de 2 operaciones de escritura y 1 de
lectura (después otras 2 de escritura y 1 de lectura, . . .), indique la secuencia de entradas a la
LIFO para que en la pila esté escrita la palabra FINAL en algún momento .
Solución P8.- Para conocer el contenido final de la pila vamos a obtener los resultados
parciales después de cada operación de escritura (PUSH) o lectura (PULL) sobre la pila . En la
siguiente figura aparecen los distintos pasos ; encima de la flecha se escribe el tipo de operación
y debajo el dato de entrada (X significa que no importa el dato) .
instante inicial
-V -
-A - PUSH PUSH PUSH
-C- N E G
X X I C
NOP : no operación .
PUSH PUSH
L < Vacía
A L
En definitiva, la secuencia de datos necesaria para utilizar en la secuencia de operacio-
nes es : L, A, X, A, N, X, N, 1, X, 1, F . Y como resultado de la octava operación de escritura
(PUSH), que es la 11 2 operación, se consigue tener la palabra "FINAL" en el contenido de la
LIFO . Los caracteres ASCII con el bit paridad par como bit más significativo que aparecen en
este problema son (en hexadecimal) :
A : $41 B :$42 C : $C3 E : $C5 F : $C6
G :$47 1 : $C9 L : $CC N : $4E
A13
0
cs
0
A ,A12,A1o- A o
A15 - 1 2 fi RAM -- 90130-D7
1 MUX 4 :1 13
A12 - 2
o 8Kx8
DEC 2 :43 :)
A14 A11
0
0
0
1 5 800-$4FFF a12-0 = $0000'-$07FF
0
0
1
1 $5800-$5FFF 0 = $0800401-1-1
1
0
1
1
0
0
0 -$ 000-$9'/H a12-0 = $1800411`14;
1
1 115.)=$9800-$9FFa'1~ a 0=$1800-$1FFF
0
0
1
1
1
0 -$ 000-$C7FF a12-0=$1000-$17FF
0
1
0
1
1
Problema 10.- Para el circuito de la figura, determine las distintas secuencias de salida,
indicando las direcciones en que ocurren cada una de ellas, dentro de un mapa de memoria
de 64K.
[$1
A15 0 0
1 2
2 F
3 B
1 4 F
A14 2 5 D
3 a3 CS d3 -> 6 E
A13 4
a2 d2 > 7 B
5 0
A12 0 A11 - al d1-> 8
6 A to -ao do - > 9 1
DEC3 :8 7 2
ROM(24x4) A
B 3
q
CONTADOR C A
CLK MOD-4 D B
q1 F
E
F C
Solución P10 .- Las secuencias que se obtienen a la salida de la ROM dependerán de los valo-
res de a3 _0 . Las líneas a l y a o están fijas a A11 y Ajo mientras que a3 y a 2 , al estar conectadas
a las salidas del contador, van cambiando ciclo a ciclo . Analizando los distintos casos se ob-
tiene :
Direcciones internas de la memoria RAM Secuencia de Salida
a3 a2 al ao d3 d2 d l do
0 0 0 0 0 0 0 0
A11 Ajo = 00
0 1 0 0 1 1 1 1
1 0 0 0 0 0 0 0
1 1 0 0 1 0 1 0
0 1 0 0 1 0
A11 Ajo = 01 0 0
0 1 0 1 1 1 0 1
1 0 0 1 0 0 0 1
1 1 0 1 1 0 1 1
A l , A jo - 10 0 0 1 0 1 1 1 1
0 1 1 0 1 1 1 0
1 0 1 0 0 0 1 0
1 1 1 0 1 1 1 1
0 0 1 1 1 0 1 1
A11 Ajo = 11
0 1 1 1 1 0 1 1
1 0 1 1 0 0 1 1
1 1 1 1 1 1 0 0
Solución P11 .- Solucionamos primero la obtención de memoria de 8 bits por palabra a partir
de memorias de 4 bits por palabra .
CS
CS
a13-0 a13-0
a13-0 / 7-0
14 16Kx4 14 16Kx4
3210 3210
l7~6l5l4 3)2)1)C)
~ g
D7-0
Las cuatro memorias se colocarán a partir de la dirección A15-0 = $ 1000, es decir :
A 15 = 0, A 14 = 0, A13 = 0, A12 = 1 y A11-0 = 000 (en hexadecimal) . De esta forma, las señales
CSi de cada memoria deberán activarse según la siguiente tabla :
A15
CS 1
A14
CS 2
CS3
A13
CS 4
A12
DEC 3 :8
Solución P12.- Tenemos que situar 3 memorias RAM de capacidad 8Kx8 y un EPROM de
8Kx8 en un mapa de 64K . Para ello damos uno de los posibles circuitos de decodificación .
Hemos colocado las cuatro memorias una a continuación de otra empezando desde la primera
dirección del mapa completo .
A1 - Ap D -D7
13 1 a12-a0 8
RAM I
8
A12- Í Da - D 7
0
13
3 a,2- a0
1
1
A15 2 RAM2
3
A14 4 A
5 Do - D 7
A13 - 0
6
A 12 -A0 .
DI
a12 -a, ) -r
DEC 3 :8 7 13 8
RAM3
A
A 1 2-A0
a 12-al)
13 Do - D 7
ROM
Para este circuito de decodificación la mitad del mapa queda vacía . Sólo se ocupan los
primeros 32K del mapa . Otra opción en donde se ocuparía el mapa completo de los 64K, ya
que cada una de las memorias cubre 16K, es la siguiente :
A
A12-A0 D o - D7
-a,1
a 12
13 8
RAM I
8
A12-A0 Do - D7
A
A12- / Do - D 7
a 12-a„
13 8 Do - D 7
ROM
Solución P13 .- En primer lugar, hay que obtener memorias de 8 bits/palabra a partir de las de
4 bits/palabra (véase problema 11) .
Una de las posibles soluciones sería situar las 4 memorias de la siguiente forma :
0 1 0 0 M 2 : RAM (4Kx8)
0 1 0 1 M 3 : RAM (4Kx8)
1 1 1 M4 : ROM (8Kx8)
Circuito de decodificación :
0
A15 1 1
A14 0 2 EN 0 CS 2
DEC 2 :4 3 1 1 CS 3
0 2
DEC 2 :4 3
EN
0
1
DEC 1 :2
CS 4
Problema 14.- Utilizando circuitos de memoria 2Kx4, realice una configuración 8Kx8 que
ocupe 8K posiciones a partir de la 4096 (10 en un mapa de memoria de 64K .
Solución P14 .- Una vez que tengamos todas las memorias de 8 bits por palabra para lo que
hemos tenido que hacer una asociación de memorias de la forma en la que se hizo en problemas
anteriores, hacemos la distribución de estas memorias a partir de la dirección 4096, es decir,
A15-0 = $ 1000 con lo que : A15 = 0, A 14 = 0, A 13 = 0, A 12 = 1 y A 11 - 0 = 000 (en hexadecimal) .
El mapa de memoria es :
1000 0 0 0 1 0 a jo -0 M1 0 1 1 1
0 0 0 1 1 ato-0 M2 1 0 1 1
a 1 0 0 a jo -0 M3 1 1 0 1
0 0
2FFF 0 0 1 0 1 ato-0 M4 1 1 1 0
3000
a restantes combinaciones 1 1 1 1
HF1-F
El circuito de decodificación :
CSi
1
RAM¡
CS 1
CS2 A jo-A0 -- T-> a10-a0 -yD o -D7
1
CS 3
2Kx8
CS 4
Problema 15.- Diseñe un circuito decodificador que permita situar 20Kbytes de RAM a partir
de la dirección $5000 dentro de un mapa de memoria de 64K . Para ello se dispone de chips
de 8Kx8 y 4Kx4 .
Solución P15 .- En primer lugar se obtienen todas las memorias de 8 bits por palabra realizan-
do una asociación para los casos en los que sea necesario .
Damos a continuación, el mapa de la distribución de las memorias . Todas están conse-
cutivamente dispuestas a partir de la dirección $5000 (A 15 = 0, A 14 = 1, A 13 = 0, A 12 = 1
y A11-0 = 000 (en hexadecimal)) .
Mapa de memoria :
Circuito de decodificación :
A15 CS 1
A14
A13
Solución P16 .
a) Primero asociamos las memorias necesarias para tener todas las memorias de 8 bits
por palabra :
CS
CS
C$a Cs n
all-0
a11-0 7-0
12 4Kx4 4Kx4
3210 3210
17t I
6 4 3)2)1) J
A15 CS1
A14 .
CS2
CS 3
A13
CS 4
A12
b) Las direcciones de memoria leídas para las direcciones propuestas en el bus exterior
de líneas A 15 -0 son :
A15-0 = $4567 M 1 ha sido seleccionada a 12 -0 = $0567
A15-0 = $CAFE Ninguna memoria seleccionada
c) Para leer la dirección $0123 de de las memoria de 4Kx4 tendríamos que poner en el
bus de direcciones la palabra A15-0 = $A123 .
d) Para tener un bus de datos de 4 bits por palabra, una solución es conectar al bus de
datos sólo 4 de los 8 bits que teníamos antes . El mapa anterior es válido pero se desaprovecha
la mitad de cada una de las memorias .
Otra opción es utilizar sólo memorias RAM de 4Kx4 . Así, para sustituir las memorias
M1, M2 Y M3 anteriores que eran de 8K, hacemos una asociación de dos RAM de 4K para cada
una de ellas Mi (con i=1, 2, 3) como se indica a continuación :
A12
A15 A14 A13 A12
A15i Al4i A131 0 M2a CS i
Al5i A141 Alai 1 M2b
7 CSib
CSi a
CS
M ia
4Kx4
A12-0 3-
CS
Mib
4Kx4
288 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
Problema 17.- Diseñe una memoria tipo LIFO de 8 bits de anchura y un fondo de 6 en los
siguientes casos:
a) Con registros de carga en paralelo .
b) Con registros de desplazamiento .
Solución P17 .
a) Dado que la memoria LIFO tiene 8 bits de anchura y un fondo de 6, el sistema debe
disponer de 6 registros con carga en paralelo de 8 bits cada uno de ellos . La conexión que se
lleva a cabo entre los distintos subsistemas es la siguiente :
PUSH
8
> OUT[81
0
0
1
0
1
0
0
1
1
Rx
Rx - Rx
OUT
HI
R x E- Rx+I, R6 - 0 [R1]
R x E- Rx-1, R6 <-- 1 HI
'ppw
1
OUT[8]
PUSH
PULL
0 0 00 HI
0 1 01 R x F-- SHR(R x ,O) [R0 Ro . . . Rp] (desplazamiento a derecha)
1 0 10 Rx F- SHL(Rx>Ix) HI (desplazamiento a izquierda)
Capítulo 11
El incremento en la complejidad de los circuitos digitales, provoca que las técnicas de descrip-
ción y diseño estudiadas hasta aquí (máquinas de estados finitos, K-mapa, .. .) sean poco útiles .
Esto viene motivado, fundamentalmente, por el elevado número de estados y señales que po-
seería un circuito de estas características . Por tanto hay que introducir herramientas alternati-
vas que permitan el manejo de estos "circuitos complejos" a los que nos referiremos en ade-
lante como sistemas digitales .
Unidad Zout
de )1
control x : cualificadores o
entradas de control
x z : comandos
Unidad Dout D :datos
de
proceso
En la siguiente tabla aparece un estudio comparativo entre sistemas digitales (SD) y cir-
cuitos digitales (CD) . La diferencia esencial entre ellos es la unidad de información : la palabra
(o conjunto de bits) para los SD, y el bit para los CD . De aquí que el funcionamiento de los SD
sea descrito mediante la transferencia de las palabras o datos a través de los elementos que los
almacenan (registros) . Para ello se utiliza el nivel de descripción llamado "nivel RT" (Register
Transfer) .
291
Circuitos Sistemas
El nivel RT trata a todos los dispositivos capaces de almacenar información como regis-
tros . Así, un biestable se considera como un registro de un bit ; un contador es un registro con
capacidad de incrementar o decrementar su dato ; una memoria es un banco de registros cada
uno identificado por un nombre lógico (dirección) ; y, propiamente, los registros se incluyen
dentro de este concepto .
Con el lenguaje RT podemos describir el contenido de un registro o las operaciones que
se realizan sobre él . Estas últimas pueden ser de tres categorías :
- Escritura : cambio de dato almacenado en el registro (R) . Es una operación
secuencia) y se realiza cuando el reloj está activo . Su formato es :
R F- nuevo dato
- Lectura : salida del dato almacenado . Es una operación combinacional . Su
formato es :
Dout = dato presente
- Control : establece cómo opera el registro (esto es, bajo qué valores lógicos de las
señales de operación "s" se escribe y se lee) . Su formato es :
f(s) : operación (f es combinacional)
Las transferencias de datos entre los registros se realizan mediante líneas que los inter-
conectan . Este conjunto de líneas se denomina bus . En un bus se pueden realizar dos operacio-
nes de interés :
- Lectura del bus, en la que algún registro lee el dato que contiene el bus para al-
macenarlo (corresponde a una operación de escritura en el registro) .
- Escritura en el bus, en la que algún registro "vuelca" su contenido al mismo (ope-
ración de lectura en el registro) .
Existen diversos métodos de interconexión para los registros, dependiendo de las
características de lectura/escritura de estos . Principalmente los métodos son por multiplexado/
demultiplexado y por conexión vía alta impedancia (buses triestado) . En los problemas se
detallan estos métodos .
El diseño de sistemas digitales es una tarea compleja para la que no existe ningún método
sistemático . Sin embargo, se pueden aplicar algunas guías de diseño que faciliten el trabajo,
como la de seguir una metodología top-down . En primer lugar, se especifica el conjunto de
instrucciones que debe realizar el sistema . Se propone, seguidamente, una arquitectura para
Caja de decisión
PROBLEMAS RESUELTOS
Describa qué operaciones se hacen (a nivel RT) así como la operación global en los
seis ciclos de reloj.
Si- 1 0 1 2 3
So 0 nxMUX4 :1
1-
n fn
n1 n1 n1 n1
w A w B w C w D
n/ n/ n n/
A 1
0
d1 1
DEC 1
d o- 0 2 .4 2
3
1
EN
3. A - B
4 .B-C
5 . NOP
6 .C<--D
Globalmente, por tanto, la operación realizada es : D F- A y A - B E- C
Problema 3.-Sobre un registro A deben realizarse las tres operaciones siguientes, siendo B
el contenido de n bits de un bus de datos :
TNOR : A - A + B
TNAND: A F- A•B
TEQ : A<- A O+ B
Diseñe una etapa del registro A de n bits con biestables JK .
TNAND : Aj <-- A i • B i
TEQ : Aj - AJ O+ Bj
Entonces en función de los valores de TNOR, TNAND, TEQ y B j y del valor actual de
Aj , podemos escribir el mapa de Karnaugh para el valor próximo de Aj (tabla de estados de la
etapa j) :
TNOR TNAND TEQ
Aj B j 000 001 011 010 110 111 101 100
(Aj = qj)
00 0 1 - 1 - 1
01 0 0 - 1 - - - 0
11 1 1 - 0 - - - 0
10 1 0 - 1 - - - 0
0- 0- -- 1- - 0-
-0 -0 -1 -1
-0 -1 -0 -1
Jj Kj 1
TEQ
Bj q
TNOR
A j A 0 Operación
00 LSR
01 ASR
1- ROR
X7-o
18
MR S I S o Operación
sr
0-- Puesta a 0 asíncrona
c MR 74198 100 Inhibición
SI [81
101 Desplazamiento izqda .
S
110 Desplazamiento dcha .
111 Carga en paralelo
Ck
07-0
Solución P4 .
a) A nivel RT las operaciones son las siguientes (donde B es un registro de desplaza-
miento a la derecha) :
LSR : SHR(B, 0)
ASR : SHR(B, B,-i) 1
ROR : SHR(B, B 0)
1
n-1 B
B B
b) En los tres casos será necesario utilizar el circuito 74198 en modo de desplazamiento
a la derecha, para ello se fijarán las entradas MR, S 1 y S o a 1, 1 y 0 respectivamente . La entrada
D sr deberá ser conectada a 0, B i - 1 ó Bp según la operación que se desee realizar . En los circui-
tos que se muestran a continuación, las siglas NC indican "no conectado" .
NC NC
sr 7-0
C MR
1 S1 B 74198
S
Ck 07 (- B7)
07-0
NC NC
0 0 (= B0)
Ck
c) Ya que la única diferencia para los tres casos (apartado b) radica en la entrada Dsr ,
bastará multiplexar a dicha entrada la señal correspondiente :
A1 A0 Dsr
00 0 r
01 07
1- 00
INTRODUCCIÓN A LOS SISTEMAS DIGITALES 299
07 00
A1 10
00 0
01 L DSr = A100 + Á 1 Ao 07
11
10 0
Problema 5.-Se dispone de cuatro registros con datos (R o, R 1 , R2 y R3) y una ALU, todos de
n bits. Se desea diseñar un sistema que permita a cualquiera de los registros ser datos-ope-
randos y/o destino del resultado . El registro fuente del dato A es seleccionado por dos bits, A 1
y A o; el de B, por 8 1 y B O; y el de destino, por D 1 y Do. Muestre la estructura del sistema e
indique cómo se realiza una operación en los siguientes casos :
1) Un esquema de conexión basado en multiplexado, usando registros con terminales
de entrada y salida separados.
2) Un esquema de conexión basado en buses triestado, usando registros con termina-
les de entrada y salida separados .
3) Usando registros con terminales de datos bidireccionales .
Añada en cada caso los dispositivos que se necesiten . Indique, también en cada caso,
la secuencia de activación de las señales de control de los dispositivos indicando de dónde
provienen.
Solución P5.
1) Solución basada en multiplexores .
Los registros utilizados son como el que se describe a continuación :
IN
w=1 :REG4-IN
w = 0 : REG E- REG
OUT = [REG]
OUT
Los datos A y B se obtienen multiplexando los datos de los cuatro registros RO, R1, k2
y R 3 . El destino se obtiene decodificando D 1 D O , lo que permite activar la escritura w de sólo
uno de los registros .
EW n/
3
DI - 1
DEC 2
Do - 0 2 :4 1 y
0 R0 R2 R
n/ n
Al- 0 1 2 3 B I- 1 0 1 2 3
A0-0 n x MUX 4 :1 B0- 0 n x MUX 4 :1
ALU SEL OP
n n
wo w w2 w
ro Ro rW ) R1 r2 r3 3 R3
EW
n n n n
3 > w3
Di -
DEC 2 > w2
D o - 0 2 :4 1 >w1
RT
0 > wo
r3
A l /13 1 -
2 r2
DEC ALU SEL OP
A 0/13 0 - 0 2 :4 1 rl
0 ro
rw REG E- DAT
0 0 REG HI
01 DAT entradas
10 REG [REG]
11 prohibida prohibida
DAT
Como por un bus sólo puede haber un dato y necesitamos tres (A, B y A * B), se nece-
sitan dos registros más para el almacenamiento temporal . De estos, uno se destina a almacenar
un dato-operando (por ejemplo B) y el otro puede :
1) almacenar el otro dato-operando (A), en cuyo caso el resultado A * B puede almace-
narse en el registro de destino R D
2) almacenar el resultado A*B, en cuyo caso el dato-operando A es suministrado
por RA .
Solución 1) :
wo w w W
ro Ro r, R, r22 R2 r33 R3
A
TA TB
B
ALU SEL OP
CB
La salida de la ALU debe poseer buffer triestado con el fin de que no haya problemas
de cableado con el bus triestado cuando R A o R B viertan datos . El control de los buffers (CB)
debe activarlo la unidad de control cuando realice la escritura en R D .
Una operación requiere tres microoperaciones :
1 . TA -R A
2 .TB <-- RB
3 .R D E-TA*TB
Es obligatorio incluir EW, que sólo se activaría en la microoperación 3 . En lo demás, la
generación de w es como en los casos anteriores .
n n
WB
TB
B
ALU SEL OP
Solución P6.- Este es el caso más sencillo de realización de cartas ASM . Se trata de describir
un biestable como un sistema con dos salidas (acciones en la carta) y dos entradas .
JK Q
00 q
01 0
10 1
11 q
Ck
Problema 7.-Construya la carta ASM del circuito secuencial dado en las siguientes tablas .
Asimismo describa ambas máquinas usando el lenguaje HDL .
a) b) X1X0
q1 q 0,, 0 1 z 1 z2 z3
q1 01 11 10
00 00,0 01,1 00 00 10 10 00
01 11,0 01,1
01 00 01 01 00
11 10,0 11,0
11 01 01 01 01
10 10,0 00,0
10 10 11 01 10 0 1 1
Q]Q0, z
QlQo
Solución P7 .
a) Cada estado de la tabla dará lugar a una caja de estado en la carta ASM ; las señales
de entrada al circuito (en este caso sólo hay una : X) darán lugar a posibles cajas condicionales ;
las salidas tipo Moore serán señales a activar en las cajas de estado, mientras que las salidas
tipo Mealy se activarán en cajas de acción condicional .
Descripción HDL :
0 x 0
x z
1 x 3
x z 1
2 x 2
x 0
3 x -j 2
x 3
b) Es una máquina de Moore, por tanto todas las salidas se activarán en cajas de estado .
00
Descripción HDL :
1
0 x0 Z 1 Z3 0
x0 Z 1 Z3 2
1 XO Z I Z2 0
XO Z1Z2 1
2 xO_ Z 2Z3 2
x0x1 Z2Z3
xOx1 Z2Z3 1
3 t - 1
Problema 8.-La figura muestra una carta ASM de un sistema así como la unidad de datos cor-
respondiente . En dicha carta, x e y son entradas que pueden tener cualquier valor binario, per-
maneciendo constantes desde que Xs se hace 1 .
Especifique todos los errores de esta carta comentándolos brevemente .
Ra R b Rc
Wa~ A B ~ C
Za Zb~ Z~
t i
B 4- C
A 4- B
C4-0 A4-C
Cf-A
sí no
v
( B-AD A~B
Solución P8.- Hay cuatro errores en la carta ASM . Estos se muestran en la siguiente figura
en tramos más gruesos .
Error (1) : El camino "0" nunca se toma, ya que si x • y = 1, x + y no puede valer 0 .
Error (2) : Se trata de un bucle infinito . La estructura de este bucle es, en general, correc-
ta aunque en este caso es errónea . Esto es debido a que según el enunciado del problema, los
valores de x e y permanecen consantes desde que X s se hace 1 . Así, en este caso, el sistema se
queda permanentemente en ese bucle (2) lo que es causa de error.
Error (3)_ : En este bucle no se pasa por ninguna caja de estado .
Error (4) : Lectura simultánea de los registros A y B (no es posible pues hay un único
bus de datos) . Además, A es leído y escrito en el mismo ciclo ; esto es un error ya que A tiene
I/O bidireccional .
error (2)
C - B
error (3)
1
1
error (1)
A - B
C<-0 A C
C <- A
si no
error (4)
B <-A A<-B
Problema 9 .-Se desea construir un sistema digital que realice todas las operaciones posibles
de suma y resta entre dos números que se encuentran inicialmente en los registros A y B, y
que almacene el resultado en cualquiera de ellos . (No hay que obtener la unidad de control,
sólo la unidad de proceso y el conjunto de microoperaciones que realiza) .
FIN
-> U . PROCESADO
CONTROL Z A
IR B
usuario sistema
Como componentes claros de la unidad de proceso están los registros A y B, que con-
tienen inicialmente los datos, y la ALU, que permite operar con estos . El conjunto de opera-
ciones que debe realizar este sistema son :
• A E- A+B • B E- A+B • A E- A-B • B E- A-B
•A E- -A+B • B E- -A+B • A E- -A-B • B E- -A-B
Por lo que sólo se necesitan 3 bits para codificarlas .
Una posible arquitectura de la unidad de proceso que posibilite la ejecución de estas ma-
crooperaciones se muestra en la siguiente figura . Todos los buses y componentes que aparecen
son de n bits . Se han distinguido dos tipos de buses, los que se han dibujado en gris son unidi-
reccionales y dedicados, mientras que los que se han dibujado en negro son bidireccionales,
compartidos y triestado .
-------------------------------------------------------------------------------------
DB : Bus de datos
T
RA
A
: WA
a±b
RB
[AC] B
: WB
-0- RAC
AQ f- WAC
I -- ZAC
UNIDAD DE PROCESADO
(del controlador)
RA WA RB WB WT s r RAC WAC ZAC
INTRODUCCIÓN A LOS SISTEMAS DIGITALES 309
Se realiza a continuación una descripción de todos los elementos que componen esta
unidad con el objeto de eliminar posibles ambigüedades en el funcionamiento de los mismos .
Registro X (X es A o B) Registro T
IN
Rx
DD ~j X
E- Wx T `«_ WT
OUT
Rx Wx X- DD=
0 0 X HI T<-- OUT=
WT
0 1 DD Entrada 0 T [T]
1 0 X [X] 1 IN [T]
1 1 Prohibida
Registro AC (ACumulador)
IN ZAC RAC WAC AC - OUT ] = OUT2 =
0 0 0 AC [ACI HI
OUT 1 1 0 0 0 [ACI HI
RAC
0 1 0 AC [AC] [ACI
WAC
0 0 1 IN [AC] HI
ZAC
Otras Prohibidas
IN, IN2
s r OUT =
0 0 (No importa)
0 1 IN, - IN 2
1 0 IN, + IN2
1 1 Prohibida
OUT
Para la unidad de procesado propuesta y para cada una de las macrooperaciones defini-
das, se obtiene el conjunto de microoperaciones o "pasos" necesarios a realizar en cada ciclo
de reloj, para obtener la ejecución de cada macrooperación . Por simplicidad, sólo se detallará
el caso de A - A+B .
Observando la arquitectura, deducimos que para obtener la suma de A y B, hay que
situar el primer operando en el registro AC, y sumarlo posteriormente con el segundo
310 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
operando . Nótese, además, que el dato que se transfiere al acumulador es la suma o resta del
contenido del registro T con el contenido del propio acumulador . Por tanto, en primer lugar,
se transfiere el contenido del registro A hacia el registro T y, simultáneamente, ponemos a 0
el acumulador .
1 .T-A,AC-O
En el segundo ciclo de reloj, podemos transferir al acumulador el contenido de T
([TI = A), e incluso traernos el segundo operando al registro T .
2 . T<-B,ACE--AC+T
Sumamos a continuación los dos operandos :
3 .AC-AC+T
En el ciclo de reloj siguiente, podemos ordenar el almacenamiento del resultado en el
registro A .
4 .A<--AC
Si este proceso se repite para las macrooperaciones restantes obtenemos la siguiente
tabla :
1 AC<-0, T<--A
2 T<--B, AC-AC+T
3 AC-AC+T AC<-AC-T
1 AC-O, T<--A
2 TAB, AC-AC-T
3 AC-AC+T AC-AC-T
De forma equivalente obtenemos la tabla que representa las señales de control a activar
por la unidad de control :
1 ZAC,WT,RA
2 WT, RB,WAC,s
3 WAC, s WAC, r
1 ZAC,WT,RA
2 WT, RB,WAC, r
3 WAC, s WAC, r
Problema 10 .- Considere un sistema con tres registros (A, B, C) de ocho bits . Ha de tener
lugar la siguiente secuencia de operaciones en el orden que se describen :
Cuando se activa una señal de comienzo (X5) los datos de entrada se cargan en A . El
complemento de los datos de A se cargan en C . Finalmente, los datos de C se almacenan en
B . Con los datos de A y B se hace la operación OR y el resultado se almacena en C . Final-
mente, los datos de C son situados en las líneas de salida, tras lo cual el sistema va al estado
de espera .
a) Describa las operaciones a nivel RT.
b) Diseñe la unidad de datos que pueda realizarlas .
c) Haga la carta ASM de las señales a activar por el control.
d) ¿Habría que hacer algún cambio para imponer que las líneas de salida estuviesen
en alta impedancia cuando no mostraran el dato? En su caso, ¿cuáles son?
Solución P10 .
a) La secuencia de operaciones descritas a nivel RT es la siguiente :
0. Xs 0
Xs (1)
1. A E- DIN (2)
2. C E- tk (3)
3. B E- C (4)
4. CE-A+B(5)
5. OUT = [C] (0)
Los estados que aparecen entre paréntesis podrían suprimirse en notación RT .
b) Para diseñar la unidad de datos debemos tener en cuenta que el registro A debe recibir
su entrada de D IN, el registro B debe recibir el contenido de C, el registro C debe recibir f1 y
A+B . En la siguiente figura se muestra cómo hay que conectar los registros entre sí . También
se describen los registros a nivel RT.
I DIN
WA W
x A B
8 8
8
WK x OR
K 8 x INV
8
z 0 1
SEL 8 x MUX 2 :1
WK K <-- z=
0 K [K]
1 x [K] C
RC
8 x BUF tri-estados
OUT
e) La carta ASM del controlador es inmediata . Basándonos en las soluciones obtenidas
para los apartados a) y b) obtenemos :
So
WA SI
WC S2
WB
1
SEL, WC S4
RC S5
1
Solución P11 .- El contador ha de ser de 6 bits, una posible descripción a nivel RT sería la si-
guiente :
DIN5-0
S I SO Z5_0 = C E- Cy
S1 00 [C] C
So Cy
01 [C] C+1 859493929190
Ck
10 [C] DIN
11 [C] 0
Problema 12.- Un registro A con n etapas individuales se acopla a un bus cuyas líneas llevan
los bits B . Los componentes del registro A son biestables SR. Dibuje el diagrama lógico de un
circuito asociado a una etapa del registro que nos permita ordenar la transferencia A ; E- A;B; .
Solución P12 .
Suponiendo T=0 : A - A
T = 1: A - A * B (* = AND, OR, XOR, XNOR), se obtiene :
B;
0-
AND
1
A; A;
R
Ck Ck
XOR XNOR
314 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
s i so Z7 -o = RU8 -
So 0 0 [RU8] RU8
Ck 0 1 [RU8] SHR (RU8,XR )
10 [RU8] SHL (RU8,XL)
11 [RU8] X7-o
Solución P13.- El registro equivalente, RE[8], tendrá 3 señales de control, W para la carga en
paralelo, SR para desplazamiento a la derecha y SL para desplazamiento a la izquierda . Su des-
cripción y su diseño a partir del RU[8] se muestran a continuación :
DIN7_o L
W SR SL ZRE _ RE <r-
000
001
010
100
Otras
[RE]
[RE]
[RE]
[RE]
RE
SHL (RE,L)
SHR (RE,R)
DIN A - o
Prohibidas
1- RU8[8]
RE = Registro Equivalente
Problema 14.- Se dispone de un registro con terminales de entrada y salida separados que
posee una única señal de control para escritura, W. Se pretende incorporar este registro a un
sistema ya dado a través de un bus 3-estados bidireccional . Describa cómo se implementa la
incorporación .
a incluir
Sol . A DB
W o-
H
SISTEMA
F
R
a incluir
SISTEMA
Sol . B
Solución P15 .- En la figura se muestra cómo interconectar M, EXR y MBR para poder realizar
las microoperaciones que se piden . A la derecha del circuito se describen los tres dispositivos
a nivel RT.
Memoria :
E DIN
EN R/W DOUT = M-
R R/W M
EXR[n] 0 - 0 M <- M
k 2 k xn 1 0 0 M($A) F- DIN
A
1 1 [M($A)] M E- M
DOUT
MBR :
SEL 1
n x MUX 2 :1 L Salidas = MBR -
n
0 [MBRI MBR
1 [MBRI Entradas
MBR[ ]
EXR : Salidas = [EXRI
1
Problema 16.- Determine la carta ASM para un contador ascendente que dispone de una
entrada de control G que, cuando está activa, provoca que éste funcione como un contador
Gray, y si está inactiva, como un contador binario . Describir como carta de Moore y como
carta de Mealy.
Solución P16 .- En una realización como máquina de Moore, no hay cajas de acción condicio-
nal . Son necesarias ocho cajas de estados que representan todos los estados posibles del con-
tador y un conjunto de cajas de decisión que, dependiendo del valor de G, marcarán el flujo
hacia los próximos estados . En la figura se puede observar que la evolución de estados corres-
ponde a la de un contador binario para G=O, y a la de un contador Gray para G=1 .
INTRODUCCIÓN A LOS SISTEMAS DIGITALES 317
zo
z l zo
z2
0
z2 zo
z2 zi
z 2 z 1 zo
Ck
Solución P17 .- Los estados son : So (g1g2 = 00), SI (g1g0 = 01), S2 (g1g2 = 10),
S3 (glg2 = 11) . Tras analizar el circuito y obtener su tabla de estados se obtiene la siguiente
carta ASM :
Descripción HDL :
0. x 0
x z 2
1. x Z 0
x Z
2. x 1
x z
3. x z 3
x z 1
Problema 18.- Desarrolle una carta ASM y una tabla de transición para un generador de
formas de onda controlable que dependiendo de dos entradas X, y X2 generará las cuatro
formas de onda que se muestran en la figura . El periodo de las dos primeras formas de onda
es cuatro ciclos de reloj, el de la tercera es de dos ciclos de reloj y el de la cuarta es de tres
ciclos.
XIX2
0 0
0 1
1 0
Solución P18 .
X 1 X2
9190 00 01 11 10
D Q1Q0 , z
Solución P19.
a) En el bloque k se evalúan los valores de T 0 , T 1 , T 2 , T3 y se realizan las transferencias
necesarias . Posteriormente se pasa al bloque k+1 .
b . 1) Las salidas de cada uno de los registros B i se conectan a las entradas de A mediante
multiplexores . Un codificador se encarga de seleccionar el registro B ; correspondiente al T i ac-
tivo .
8 8
T 0
T1
T2
1 COD 1
al
-~] f7,
1 2 3 8 x MUX 4 :1
4 :2
T3 3
A[8]
A[81
Problema 20.- Diseñe el sistema digital que permita realizar de la operación A <-- 4*(A+B) .
(No diseñe la unidad de control) .
Solución P20 .- En este caso, el sistema digital sólo tiene una macrooperación que realizar .
Para ello se puede plantear una arquitectura similar a la del problema 9 :
DB : Bus de datos
T
WT
RA
A
WA
b
a±
RB
[AC] B
f WB
AC f WAC
SHL
I ZAC
UNIDAD DE PROCESADO
Sólo se ha añadido una señal al registro AC (SHL) que simplifica el proceso del cálculo
de la multiplicación por cuatro . Dos desplazamientos hacia la izquierda generan este producto
de forma rápida .
La descripción de los registros de esta unidad de proceso es idéntica a la realizada en el
problema 9 salvo por el registro acumulador, que ahora tiene una nueva señal de control . Por
tanto, obviamos la descripción de los demás registros y sólo presentamos la del acumulador .
S CIR
74298
CIR[41 0 CIR 4- IA
1 CIR 4- IB
Q3-0
Solución P21 .
a) Las transferencias hacia MAR y hacia IR a nivel RT :
LPC : MAR 4- PC
LMDR : MAR 4- MDR15-0
TMDR : IR 4- MDR23-16
El diagrama de bloques del procesador :
23-0 24 J16
1
8
23-16 15-0 . . 15-0
4
LPC
TMDR IR[8] MAR[16]
LMDR
b) 8 circuitos integrados (3 para MDR, 2 para PC, 2 para MAR y 1 para IR) .
c) Diseño de MAR con el C .I . 74198
MDR 15-0 PC 15-0
16 x MUX 2 :1
8 MSB 16 / 8 LSB
1 -c MR --cMR
LMDR
LPC
r S1
S,
MAR15-8
S1
S
74198
MAR7 - 0
4
15-12 y
/4 / 4 /4
7-4
LPC ' S A 74298 B SA
74298
B
- cA 74298 B
4 4 4 /4
Ckint
MAR15-12 MAR11-8 MAR7-4 MAR3-0
--------------------------------------
CkMAR
LMDR
- adapta flanco activo
LPC - realiza la NOP por parada del reloj interno Ck i „ t
-------------------------------------
Capítulo 12
Como ya exponíamos en el Capítulo anterior, los sistemas digitales se componen de dos partes :
unidad de procesado y unidad de control . En éste se aborda fundamentalmente el diseño de esta
última. En el Capítulo anterior se introdujeron las cartas ASM y los lenguajes de descripción
de hardware como herramientas para la descripción de sistemas digitales y se usaron para la
descripción de unidades de procesado . Las unidades de control también son descritas mediante
cartas ASM o lenguajes de descripción de hardware de un modo análogo . La única diferencia
es que las acciones a realizar consisten, en este caso, en señales a activar por el controlador .
En los problemas de este Capítulo, cuando se utilicen cartas ASM para describir controladores
se mantendrá la información relativa a la unidad de procesado (transferencias a nivel RT) aña-
diéndose la relativa a la unidad de control (señales a activar) .
Existen diversas estrategias para la realización de unidades de control, desde el diseño
como máquinas de estados finitos, hasta estructuras microprogramadas que usan PLA o ROM .
En esta obra nos centraremos básicamente en dos modalidades :
- Diseño con mínimo número de biestables .
- Diseño con un biestable por estado .
Esta estrategia se basa en considerar al controlador como una máquina secuencial síncrona y
diseñarla utilizando los métodos del Capítulo 8 . Para ello, es necesario obtener un diagrama de
estados a partir de la carta ASM . La equivalencia entre ambas formas de descripción es la si-
guiente : por cada caja de estados de la carta ASM se tiene un estado en la máquina ; por cada
señal que aparezca en alguna caja de acción condicional se tiene una entrada de la máquina ;
las salidas a activar por el controlador son las salidas de la máquina . Las salidas que aparecen
en cajas de estado son salidas tipo Moore y las que aparecen en cajas de acción condicional
son salidas tipo Mealy . En los problemas 4 y 5 se detalla este método .
Si el proceso de síntesis se realiza minimizando el número de estados y utilizando una
codificación con el mínimo número de variables posible, se obtiene un diseño para el contro-
325
326 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
lador que utiliza el número mínimo de biestables . Esta alternativa de diseño proporciona rea-
lizaciones muy buenas (incluso óptimas) a costa de un proceso complejo, costoso en tiempo y
quizá excesivamente específico .
En esta estrategia de diseño se obtiene el circuito mediante una aproximación formal a la carta
ASM . Por cada elemento de la carta se obtiene un elemento de circuito . En concreto, por cada
estado se incluye un biestable, de ahí la denominación "un biestable por estado" . Este método
se basa en una codificación de los estados de la carta mediante el código 1-out-of-n (excepto
para el estado de espera al que se asigna el código 0) . Así, la codificación de estados es :
estado código
gog1q2q3 . . qn
So 0000 . . .0
SI 1000 . . .0
S2 0100 . . .0
S3 0010 . . .0
S4 0001 . . .0
Sn 0000 . . . 1
Con una codificación de este tipo la transición entre estados puede realizarse fácilmente
mediante un registro de desplazamiento en el cual se introducen ciertas modificaciones . En la
siguiente figura se muestra el esquema básico de dicho registro . Se ha omitido la señal de reloj
que es común a todos los biestables . Por otra parte, en cada biestable aparece un número 'J"
indicando que la variable de estado correspondiente es % . Esto se ha hecho por simplicidad y
se mantiene en el resto del Capítulo .
Xs q -
-D D D D D
4
q q
----------------------------------------------------------------------------------------------------
q
D
q
D
i
q
D
k
------------------------------------------------------------------------------------------------------
Si q
q
Por último, las salidas de la unidad de control son señales que se activan bien en uno o
más estados (salidas tipo Moore ; por ejemplo, una salida W AC que se activase en los estados
S 2 y S 5 ), bien cuando ocurre cierta condición de entrada en un estado (salida tipo Mealy ; por
ejemplo, que W AC se activase para X 3 = 0 en S 3 ) . Como estas señales suelen estar accesibles
en el registro de desplazamiento modificado (en el ejemplo serían q 2 , q5 y la salida del canal 0
del demultiplexor de q3 : q 30 ), para obtener la salida deseada WAC bastaría sumar (OR) esas
señales : WAC = q2 + q5 + q30 .
Aunque esta técnica de diseño no optimiza el coste en puertas y proporciona controla-
dores específicos al problema, la técnica en sí es muy genérica, válida para todas las unidades
de control, y consiste en una mera traslación formal desde las cartas ASM o programas HDL .
Por ello el tiempo diseño es muy corto .
PROBLEMAS RESUELTOS
Problema 1 .- Para la unidad de datos de la figura, diseñe un controlador que permita escribir
en B el número de "1 " que hay en A . El contador C, es de tres bits (mod . 8) y el C2 de 8 bits
(mod. 256). ¿ Qué cambio hay que introducir para escribir en 8 el número de "0" de A?
Nota: Z; = Puesta a 0 síncrona, 1¡ = Incrementar, CY; = CARRY.
A[8] - WA - WB
B[81
- RA - RB
A
8
3
1
RD CY 1 CY 2
WD REG . DESP. C1 C2
SHR -
OR R1 W1 11 Z1 R2 W 2 12 Z2
WxRx BUS 7_ 0 = x E-
00 HI x
01 [x] x
10 entrada BUS7-0
11 prohibida prohibida
BUS7-0
- Registros C 1 y C 2 :
Wi R i I i Z i Wi R i I i Z i CY i = BUSn-1,0 = Ci-
- Registro de desplazamiento D :
r
SHR 100 entrada BUS7-0
010 [D] D
R
001 HI SHR(D,iR )
7_
DISEÑO DE UNIDADES DE CONTROL 329
El número de "1" en A puede variar entre 0 y 8 . Para contarlos necesitamos 4 o más bits .
C2 [81 (módulo 256) realizará esta cuenta . La idea que sustenta la solución es :
a) Transferimos A a D, preguntando por OR sabremos si el bit más a la derecha es 1 o no .
b) Si OR es 1 incrementamos C 2.
c) Desplazamos el registro D para acceder al siguiente bit del dato A original . Esto hay
que hacerlo 8 veces .
d) Para conocer el número de desplazamientos, utilizamos el contador C 1 que es
módulo 8 .
La carta ASM (incluyendo simultáneamente RT y control) es :
NOP
X
D D 1 D D
CY 1
0
y 1
W D , RA , Z 1 , Z 2 FIN
WB , R2
SHR, 1 1 OR
- ISP
IPC PC[ 161 SP[ 16]
DSP
1 1 IDB [8]
A
8
A[8] RA
-
1 WA
WPC - MAR[ 16]
WSP -
RI
CS R W MDR[81 WI
1 RE
1 WE
AB [ 16]
MEM
EDB[8]
Solución P2 .- Según el enunciado, la pila se va llenando desde las direcciones más bajas a las
más altas . Las dos operaciones de pila implican direccionar la memoria MEM con la dirección
que indica el puntero de pila, SP . De aquí que, tras apuntar SP a la dirección adecuada, habrá
que transferir SP hacia MAR . En ambas operaciones la transferencia entre MEM y A debe pa-
sar por MDR .
Operación PUSH (1 1 lo = 00) : Como SP apunta a la dirección vacía, es ahí donde hay que
transferir A y, después, se incrementa SP para que continúe apuntando a la primera dirección
vacía .
microoperación señales a activar
Operación PULL (I l Io = 01) : Hay que decrementar SP para que apunte a la última di-
rección llena . Sólo entonces se lleva SP a MAR para, después, leer de MEM hacia MDR y, de
este registro, llevar el dato leído hacia A .
microoperación señales a activar
1 .SPF-SP-1 DSP
2 . MAR F- SP WSP
3 . MDR E- MEM CS/R/WE
4 . A F MDR R I /WA
332 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
Representemos ahora una posible carta ASM para reunir ambas operaciones teniendo
en cuenta que los códigos 1 1 = 1 x están reservados para otras operaciones :
Otras
operaciones
SP - SP -
MAR E- SP / MDR f- A
DSP
WSP / R A / Wl
MDR - MEM
CS/R/WE
A E- MDR
R /W
q
D D D D
X
D
1
q
D
U U
' y
WSP W I DSP W W E CS W FIN
RE A
RA
ISP
Problema 3.- Un número decimal de dos dígitos se almacena en dos registros de cuatro bits
en forma BCD . El registro M contiene los dígitos más significativos ; el L, los menos . Los
números se transfieren para que aparezcan en un registro R de ocho bits . Para efectuar la
transferencia se dispone de un bus de cuatro bits accesible a M y L, pero sólo a las cuatro
posiciones de más a la derecha del registro R. La operación de transferencia se realiza
respondiendo a un conmutador .
a) Establezca una arquitectura para el sistema especificando los terminales de control
de cada registro.
b) Construya la carta ASM .
c) Diseñe el controlador del sistema usando el mínimo de biestables y dibuje el circuito
lógico .
Solución P3.- a) Para que M[4] y L[4] puedan escribir sus datos en el único bus de 4 bits
(BUS) hay dos soluciones :
1 . Conexión por multiplexado : Las salidas de M y L son estándares (Z M = [ M] y
ZL = [ L]) por lo que no se necesitan señales de lectura de los registros .
Mediante 4 x MUX 2 :1 se escribe el contenido de L (para S = 0) ó de M (para S = 1) en
el BUS .
S : BUS = [L]
S : BUS = [M]
2 . Conexión de bus único (BUSU) : Las salidas de M y L tienen HI por lo que se nece-
sitan señales de lectura . Sólo una de ellas puede activarse en cada ciclo .
RM
M[4]
RL
L[4]
R1 1
. k ZM ZL 4
RX : Z x = HI
RX : Zx = [X]
1
BUSU[41
El registro R[8], además de la carga en paralelo de los 4 últimos bits, necesita estar do-
tado de desplazamiento a la izquierda para transferir datos a sus 4 bits más significativos :
WR SL Operación
R[8] 00 Rf-R
WR 10 R3-0 - X3-0 , R7-4 E- R7-4
SL
01 R - SHL(R,0)
Observemos que :
- La carga en paralelo deja sin cambio a los 4 bits más significativos .
- El bit serie que entra en el desplazamiento puede ser cualquiera aunque nosotros he-
mos optado por introducir un 0 .
Con todo ello la arquitectura del sistema es :
RL
RM
M[4] L[4]
Xs
CONTROL
WR
SL R[8]
Ck
donde suponemos que Xs , salida del conmutador, es un pulso de duración 1 ciclo de reloj .
DISEÑO DE UNIDADES DE CONTROL 335
1
Con la señal del conmutador X S se pasa
1
R E- SHL(R,O)
S4
SL
R F- SHL(R,0)
S5
SL
R3_ 0 4- L
S6
RL, WR
1
R L R MW R SL Ecuaciones de excitación :
a
So 0000 T2 = 9190 + q2q 1
®s 0 1 1 0 Codificación
g2g1q0
T 1 = g0 + 9291 _
T0 = q0 + q2q1 + Xs + 9281
®s 00 0 1 S 0 : 000
S1 : 0 0 1
mu 00 0 1
S2 : 0 1 0
S3 : 0 1 1
Ecuaciones de salida :
RL = 9291
®N 00 0 1
S4 : 1 0 0 RM = 829190- _
WR =_g2g1+ g2g190
s
S6 00 0 1
S5 : 1 0 1
S6 : 1 1 0 SL = q2q1 + q2 q1
s
so 1 0 1 0
Problema 4 .- Un sistema digital tiene como unidad de datos la representada en la figura . Ini-
cialmente, al menos uno de los bits de A es un cero . El sistema debe dar como salida el núme-
ro binario de la posición del "0" menos significativo de la palabra almacenada en el registro A .
a) Describa, a nivel RT, los componentes de esta unidad de datos .
b) De la carta ASM y diseñe el controlador (basado en la técnica de un biestable por
estado).
c) Si el valor inicial de A es : 10101011, represente en el tiempo (hasta que se ha gene-
rado la salida deseada) los siguientes parámetros : BUS, señales de control (RA , S,, So , CLC,
UP) y las salidas del sistema digital. ¿ Cuál es el contenido de RU8 y de CONT tras regresar
al estado de espera?
A[81
CLC CY S I SO operación
CONT mod-8
UP
R
u= RU8
00
01
10
inhibición
carga paralelo
despl . izquierda
0 2-0 11 despl . derecha
Solución P4.
a) Descripción de componentes :
RA BUS7_0 = A <--
0 HI A
1 [A1 A
u:
R
RU[81 L
S I SO
00
01
10
Z7-0 =
[RU8]
[RU8]
[RU8]
RU8 E-
RU8
BUS 7- 0
SHL(RU8, BUS O )
11 [RU8] SHR(RU8, BUS 7 )
FIN
1
El controlador pedido es :
xs L/ L D 0 D
D
b zo
V
RA S FIN
CLC UP
c) BUS está en HI salvo en el ciclo del estado S b . Las señales de control R A , S o y CLC
se activan en S b y S 1 , S o y UP en los ciclos de reloj en que se permanece en S c . [A] = 10101011
siempre .
Sa Sb Se Se SC SF Sa Sa Sa
SI
So
CLC
UP
BUS7 _0 HI 10101011 HI HI ; HI HI ; HI HI
1 2 3
1 . En el bit más significativo de RU8 (esto es, en RU8 7 ) se almacena un valor descono-
cido, 0 ó 1, debido a que BUS 7 está en HI . (Otra solución posible es leer A, RA = 1, en la caja
de acción condicional del estado S 2, en cuyo caso '7" se sustituye por "1" que es el valor de
BUS 7 = A7)-
2 . Como Zo = 0, no se activa ninguna señal y se pasa a S F .
3 . Al volver a S o (estado de espera), [RU8] = ??101010 con ? = 0 ó 1 .
[CONTI = 010, que es la posición del cero menos significativo de A (A2 ) .
DISEÑO DE UNIDADES DE CONTROL 339
9 q
1
X I . XZ
Nota : Este controlador no tiene señal de comienzo ni estado de espera inicial . Resuelva el
apartado (b) sin preocuparse de este hecho .
Solución P5 .
a) La carta se obtiene directamente del controlador :
b) Para hacer el controlador en lógica discreta hemos de obtener a partir de la carta ASM
la tabla de estados y seguir con los pasos del proceso de síntesis de circuitos secuenciales sín-
cronos . En la siguiente figura se muestran la tabla de estados junto con la codificación de es-
tados y la tabla de transición obtenida .
X 1 X2 X1X2
S 01 11 10 q 1 q0 00 01 11 10
NS, z Q1Q0 , z
Problema 6.- Un sistema digital debe analizar su línea de entrada X con objeto de contabilizar
el número de pulsos de esa señal que tiene de anchura 1, 2 ó 3 ciclos de reloj . El sistema
dispone de tres salidas (z 1 , z2, z3) con las que se indica cuál de los tres tipos de pulsos es
más numeroso . (Por ejemplo, si se han recibido siete pulsos de un ciclo de reloj, cuatro pulsos
de dos ciclos y nueve pulsos de tres ciclos, el sistema generaría como salida z 1 z2z3 = 001).
Desde que se le da la orden de comienzo, se deberán analizar 256 ciclos de reloj, volviéndose
después al estado inicial. Diseñe dicho sistema, utilizando los subsistemas habituales .
Solución P6.- La organización del sistema es la mostrada, con una unidad de control y una
unidad de datos o de procesado :
X - . ZI
unidad unidad
de de z2
control datos
Ck . z3
-
CL I CL2- CL 3-
UP I - C1 UP 2- C2 UP 3 - C3
Ck- Ck Ck
CL256 7 7
Ck
CY
a
1
G12 E12 L12 G23 E23 L23 G13 E13 L13
so
NOP
0
1
C256 , C I, C2, C - 0
CL256, CLI, CL2, CL3
si
S3
C - C +1 S4
C <_- C +1
FIN
1
> ZI
Circuito Combinacional > Z2
> z3
Problema 7.- Un sistema digital (ver figura) consiste en una cerradura electrónica que se
abre mediante una combinación adecuada de 8 bíts . La combinación está almacenada en el
sistema . El modo de operación es como sigue . La señal RESET lleva al sistema al estado ini-
cial (no hay que incluirla dentro de la carta ASM ya que se considera asíncrona) . La señal BIT
indica el bit correspondiente de la combinación (comenzando por el más significativo) . La
señal LEE (al activarse) indica que se puede leer la entrada BIT . La señal INTENTA (al acti-
varse) indica que ya se ha introducido la combinación y si es correcta se abrirá la caja (ponién-
dose la salida ABRE a 1) .
RESET
LEE
INTENTA ABRE
BIT
Solución P7 .-Existen muchas posibles soluciones . De ellas, vamos a presentar una, en la que
almacenaremos los 8 bits en un registro de desplazamiento (A) y, tras activar la señal INTEN-
TA, compararemos la palabra almacenada en A con la combinación correcta mediante un com-
parador (COMP) de 8 bits. Un contador (CONT) módulo 8 con salida de carry (CY) contará
los 8 bits . En caso de que se introduzcan 9 bits o más se regresará al estado inicial sin activar
la señal ABRE .
a) La arquitectura del sistema (unidades de control y de procesado) será :
BIT
RESET U . de procesado
r
ABRE
LEE- SHL A[81 combinación
Unidad correcta
de control
INTENTA
UP CONT COMP[81
CY I
E
donde RESET se conecta a la puesta a 0 asíncrona de A, de CONT y de la unidad de control .
Cuando esta puesta a 0 no está activa :
SHL OA = A E-
SHL
0 [Al A
1 [Al SHL(A, BIT)
344 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
UP CY = CONT E-
UP CONT
0 1 si CONT
1 [CONTI = 111 CONT + 1
0 1
S1
S2
44*1y
-04WV
ABRE
Suponemos que al conectar el sistema por primera vez se activa RESET . Esto hace que
se comience en So y que CONT = 0 (y A = 0) . Realizamos la carta para que, al volver, siempre
CONT = 0 en S0.
Al avivarse "LEE" procedemos a almacenar BIT y a incrementar CONT . Esto puede
hacerse en el mismo estado S O (por lo que es caja de acción condicional) .
Problema 8.- Un sistema digital controla el proceso de llamadas telefónicas a través de la red
telefónica . Las llamadas pueden ser provinciales (7 dígitos) o nacionales (9 dígitos) . Tras ac-
tivarse la señal de comienzo Xg, en cada ciclo de reloj llega el dígito correspondiente del
número marcado . El usuario activa una señal (YA) cuando termina de teclear . El sistema debe
responder de la siguiente forma : si el número de dígitos recibidos es incorrecto, durante un
ciclo de reloj debe activarse una señal de error (E) ; si el número de dígitos es correcto, durante
un ciclo de reloj debe activarse la señal de llamada (LLAMA) y una señal adicional que indi-
cará si la llamada es provincial (P) o nacional (N) . El sistema recibe una señal, (COM), que
indica si el teléfono de destino comunica . En este caso deberá volver a realizar la llamada has-
ta tres veces sin necesidad de volver a marcar. Diseñe el sistema .
CL CL UP CY = Ci d
Ci
UP
00 C;
W 01 1 si [Ci ] = 11 . . .l l C; + 1
CY 1- 0
So
C2,C3 - 0
C1 L ,CL 2 ,CL
í
Cl - Ci+l, C2 F- C2+1 S1
UP 1 , UP2
S3
C3 E- C3+1
CL LAMA, UP
FIN
1
> a So
El controlador es :
q LLAMA
D P
ACL,,CL 2 ,CL3 2p
1 D
i>
1 1 CY
cY, 1 COM
YA CY
q
D
UP, 2n v v
LLAMA E LLAMA FIN
UP2
Problema 9.- Para la unidad de datos de la figura, diseñe un controlador que permita realizar
la operación de intercambio de información entre los registros A, B y C de la siguiente forma :
A-> B--3C
T
Rt - RT
wt- Ra
A
a
Rb
A B
ALU Wb
c
RAC C
WAC AC
ZAC 8
8
SHL
Xs = I
1
AC E- 0 / RTF-A SI
AC E- AC + RT / A<-C S2
1 -.-- 2 3 4 5
C E- B S3
1
B E- AC Ck
S4
1
Zac Rt Rb R ac FIN
FIN Ra A Wac Wc
a So Wb
Wt Rc Wa
Problema 10.- Para la unidad de datos del problema anterior, diseñe un controlador basado
en registro de desplazamiento que permita realizar la operación C = 4 - (A + B) .
Nota : La entrada SHL del acumulador produce un desplazamiento lógico hacia la izquierda,
introduciendo un "0" por la derecha .
ACE-0/RTE-A
S5
Zac , Wt , Ra S1
AC E- AC + RT S6
S2
Wac, A, R t
1
RTE-B S7
Wt , Rb
AC E- AC + RT
Wac, A, Rt a So
Controlador :
xs
1 - •-- 2 3 -1 4 -r- 5 6 7 F
Rt Rb SHL Wc FIN
Zac wt
Ra A Rac
Wac
Problema 11 .- Para la unidad de datos de la figura, diseñe una unidad de control basada en
registro de desplazamiento de forma que, en función de dos bits de entrada 1 1 e lo, pueda
elegirse entre una de las cuatro macrooperaciones siguientes :
1)A-A+28 3)CF-A-2B
2) A*-A-2B 4)C<-- 2A+2B
Rt Rsh
RT SHIFT REG . Wsh
Wt - Ra
SHL
a
Rb
SEL MUX 1 B
Wb
ALU a C
C
c
8
Rac
Wac ACUM
Zac
Solución Pll .
Si escogemos la siguiente codificación para cada una de las macrooperaciones :
1 1 10 macrooperación
00 A-A+2B
01 AE-A-2B
11 CE-A-2B
10 CE-2A+2B
ACUM E- 0 / RTE-A SI
ACUM E- ACUM + RT / SR - B
SR <-- SHL(SR,O)
1
ACUM 4-ACUM + SR a ACUM F-ACUM - SR S4
C - ACUM S6
FIN SF
a So
El controlador :
1
q5a
0
q3
q5b
1 5b
4b
q31
FIN
Problema 12.- En la unidad de datos de la figura se han representado todos los componentes
y los caminos de datos . Suponga que, además, existe disponible una señal, FIN, que se pone
a 1 cuando se han sumado n bits. Se desea realizar las tres macrooperaciones siguientes :
CE-A+B CE-A CE-B
a) Especifique las señales de control y operaciones de los registros y el biestable .
b) Diseñe el controlador .
A[n]
Ao / 1 B> in
Sumador
B[n] completo C[n]
b
Cout
IN
Biestable
OUT
Solución P12.
a) Descripción de componentes :
Rin X = A, B
CLEAR IN
SR X
CL X- x Biestable
Wbiest OUT
0 0 C-A+B
0 1 C-A
1 0 C E- B
1 1 otras
xs 1
2
FIN
IR1IR o
V V V Wbiest SR A
CLEAR CLB CL A SRC SR B
Problema 13.- Para la unidad de datos que se presenta, se quiere realizar un sistema digital
capaz de comparar dos números de 8 bits (A y B), y almacenar en A el mayor de ellos y en B
el menor. Tras finalizar la operación, el sistema generará una señal de FIN .
a) Defina correctamente las operaciones de los registros .
b) Obtenga la carta ASM y el controlador .
c) Sin añadir elementos nuevos, ¿se puede simplificar la arquitectura de
esta unidad de proceso? Razone la respuesta .
8 £ 8
A[81 C[8]
E E>F -
8 8 E=F
B[8] / I •/ I D[8] F E<F
]1
8 1
CONT. mod-8
Solución P13.
a)
Rx
w X[81 UP HCY
CL CONT. mod-64
X = A,B I/O
jo
00 HI X 00 1 sü CONT
01 [X] X 01 [CONTI 0
10 entradas entradas 10 = 1 . . .11 CONT + 1
11 prohibida prohibida 11 prohibida
354 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
0 0 0 HI Y
001 HI SHL (RU8,YL )
010 [Y] Y
1 0 0 entradas entradas
b)
NOP so
CONT4- 0 / C E-A
SI
CL / W c , R A
v
D 4- B
WD, RB S2
t
C 4- SHL(C, X) / D 4- SHL(D, X) / CONT4-CONT +
Wc , SL c / WD, SL D / UP
C 4- A
Wc , RA
1
A4-B
WA , RB
B 4- C
WB , Rc
FIN
a So
C
E>F E F
V
>,- T
V
-
RD=O
V
CL RA WD RB SL C WA RC FIN
SL D
WC WB
UP
Problema 14.- La figura muestra la solución al último apartado del problema anterior. Recor-
demos que se trata de almacenar en A el mayor y en B el menor de los datos previamente
almacenados en A y B. Determine la carta ASM para esta unidad .
A
Ra -
8 8 -__ Rc
Wa - A[8] me 11* I> q4 11 I> C[8]
SHLa - - Wc
Rb 8
Wb - B[8]
SHL b 8 UP
CONT. mod-8 CY
CL
Solución P14.
NOP so
v
CONTÉ- 0 / C E-A SI
CL, W,RA
S2
00,11 01,10
A E- SHL(A,A 7 ) / SHL>
B E- SHL(B,B 7 ) / SHLb B E- SHL(B,B 7 )/ Wb,SHLb
\ONT E- CONT + 1 / Ulj S3
CONTÉ- CONT + 1 / UP
0 0 1
CY CY
v
B E- A AE-C
Ra,Wh Re' Wa
v
B E- C
Re , Wb
NOP SF
1
Problema 15.- Diseñe un sistema digital (ver figura), que opere como sigue . Sincronizado
con Ck 1 , recibe por XS un pulso de un ciclo de duración y, a continuación, 8 bits de datos en
serie por una línea Din
.
El sistema, deforma sincronizada con Ck2, en primer lugar debe generar por Xo un pul-
so de un ciclo de duración y, seguidamente, retransmitir por Dout los 8 bits de datos recibidos .
xs
Din SISTEMA
Ck DIGITAL
out
Ck
CLK
DIN
SR R DOUT = REG F-
R
0 0 HI REG
SR 0 1 REG 0 REG
1 0 HI SHR (REG, DIN)
11 REG0 SHR (REG, DIN)
DOUT
1
Ck
1 0
0 0
[CONT]
= 11 . .1
CONT + 1
CONT
a los Ck
NOP
%Biest 4- 0, CONT F- 0
btest, CLEAR
Biest E- 1
XO, Sbiest
v
REG E- SHR(REG, D IN), CONT F- CONT + 1, DOUT = REG
SR, Rbiest, INC
NOP
FIN
1
El controlador :
1
\I 3
4
CY
Xs ---J CY
V y V
CLEAR INC xo FIN
SR Sbiest Rbiest
Capítulo 13
MISCELÁNEA
y q y
S 0 1
0 0
q 1 q A B B Tabla de estados
B C A,1
1
Ck C B D
Elemento de memoria y su D C B, 1
tabla de comportamiento
NS, Z
359
contar es con una puerta NAND de ocho entradas además del decodificador previsto . Obten-
ga el circuito equivalente al dado con el material disponible.
b) El día que va el grupo P ya disponemos de los multiplexores necesarios, pero ahora
han desaparecido los decodificadores . Obtenga un circuito equivalente al dado utilizando un
sólo multiplexor como el previsto en la práctica .
Nota 1 : Disponemos de las variables en único raíl .
Nota 2: La entrada de habilitación del multiplexor hace : F=0 si E=0 y F=MUX si E=1
CLA uP CONT
CK > mod-16
4
La entrada CLA pone a cero el dispositivo de forma asíncrona . Por la línea X se reciben
pulsos positivos de uno o más ciclos de reloj. Con independencia de la duración de cada pulso
y contando a partir de la última vez que se activó CLA, se desea activar Z, a partir del final del
segundo pulso recibido por X y activar Z2 a partir del comienzo del quinto pulso . Una vez
activada cada salida, se mantendrá activa hasta que se active CLA otra vez .
Diseñe el circuito combinacional (CC en la figura) utilizando exclusivamente puertas
NAND y suponiendo variables en doble raíl .
Problema 5.- Se desea diseñar una calculadora que realice las siguientes operaciones :
1 .A-2A+B 3 .B-2A+28
2.A'-A-B 4 . BOA-28 .
MISCELÁNEA 36 1
Para ello se dispone de la unidad de datos de la figura en la que todas las salidas de
los registros son condicionales. Se pide:
a) Especificar completamente la unidad de datos .
b) Diseñar la unidad de control correspondiente .
Problema 6 .- En el circuito de la figura hay, entre otros, un sumador paralelo de "n" bits y un
bloque TRANSFIERE/COMPLEMENTA B (representado por n XOR) . Describa funcional-
mente el circuito . (Esto es, represente formalmente su operación y explíquela verbalmente) .
A B
xi
x3
x2
Problema 7.- Un sistema digital de 4 entradas recibe sincronizado con una señal de reloj,
caracteres de 4 bits . El sistema genera z = 1, durante un ciclo de reloj, tras recibir cuatro
caracteres seguidos idénticos .
¿ Cuántos elementos (bits) de memoria deberá tener, el sistema? Diseñe dicho sistema
utilizando registros de 4 bits, comparadores de magnitud y puertas .
Problema 9.- Sean A= A 4A3A2A 1 A o y 8=B4B3B28 1 B 0 dos números binarios que nunca pue-
den representar el valor "-0" . Hay dos señales S 1 y So, que indican el tipo de representación
numérica, de acuerdo con el siguiente código .
S 1 S0 =00 A y B números sin signo
S 1 SO=01 A y B números en signo-magnitud
S 1 S0 =10 A y 8 números en Ca2
S 1 S0 =11 A y B números en Ca 1
Diseñe un comparador (A>B, A=B, A<B) utilizando un comparador de magnitudes de
4 bits y los MUX 4 :1 que se necesiten .
AB [ 16] (a Memoria)
A15 - A0
MARH[8] MARL[8]
IR[8] ALU
AC[81
CONTROL
MDR[81
MISCELÁNEA 363
- MDR (Memory Data Register) : de 8 bits, su finalidad es servir como registro interme-
dio entre el procesador y la memoria externa . Todo dato que entre o salga del procesador de-
berá ser almacenado previamente en MDR .
- IR (Instruction Register): es de 8 bits .
- PC (Program Counter) : es de 16 bits y está formado por la concatenación de dos
registros de 8 bits : PCH y PCL .
- AC (Acumulador) : es de 8 bits .
- RT (Registro Tampón) : es de 8 bits y es utilizado para el cálculo de operaciones
intermedias .
Obtenga la secuencia de microoperaciones necesarias para realizar la siguiente
instrucción indicando cuáles corresponden al ciclo de FETCH y cuáles al de EXECUTE :
LDA $B043
Nota : Cada instrucción ocupa 3 palabras de 8 bits consecutivas de la memoria . En la primera
aparece el código de operación (LDA) ; en la segunda aparecen los 8 bits de dirección más
significativos del operando (A 15 - A8); y en la tercera aparecen los 8 bits de dirección menos
significativos (A 7 - A 0) .
Problema 11 .- Una puerta umbral (ver figura 1) activa su salida, Z = 1, si el valor de sus
entradas tomadas como número binario A110 = (aí- 1 , . . .,a 1 , a 0)(2 es mayor o igual al umbral
interno "i".
a) Diseñe una puerta umbral de n entradas, utilizando subsistemas combinacionales y
puertas lógicas .
En la figura 2, aparece un circuito formado, únicamente, por puertas umbrales .
b) Analice dicho circuito.
c) Rediséñelo utilizando, exclusivamente, MUX de 4 canales .
1 si A>i
OsiA<i
Figura 1 Figura 2
Problema 13.- Obtenga la carta ASM de un circuito secuencial síncrono con una entrada x .
La única salida, z, es 0 a menos que la entrada x haya permanecido constante (a 1 ó a 0)
durante los últimos cuatro ciclos de reloj . La salida se pondrá a 1 coincidiendo con el cuarto 1
(ó 0) de la entrada . Suponiendo que el circuito se dispara en el flanco de bajada, dibuje la
forma de onda de salida para la secuencia de entrada de la figura, indicando las cajas de
estado por las que pasa .
Ck
Problema 14.- En la figura se muestra una tabla de implicantes primas para f(a,b,c,d) en la
que se desconocen algunos de los encabezamientos de las filas y columnas . Se sabe que
todos los mintérminos y las implicantes primas de la función están en la tabla .
a) Determine los mintérminos e implicantes primas que corresponden a las filas y
columnas desconocidas. ¿Es única la solución?
b) Escriba los maxtérminos de f y obtenga la expresión óptima para f .
0 7 8 10 15 cl c2
A=b d X X X
B= ? X X
C=bcd X X
D=? X X
E=? X
F=? X
Problema 15.- Un perro puede estar tranquilo, irritado, asustado o irritado y asustado
simultáneamente, con lo cual muerde . Si le damos un hueso se queda tranquilo. Si le
MISCELÁNEA 365
quitamos uno de sus huesos se pone irritado, y si ya estaba asustado, nos morderá . Si le
amenazamos se asusta, y si ya estaba irritado también nos morderá . No es posible realizar
dos acciones simultáneamente sobre el perro . Obtenga el diagrama de Moore y realice un
circuito que simule la conducta del perro .
Problema 16.- Diseñe un circuito combinacional que tenga como entradas tres números sin
signo A, B y C de n bits cada uno, y una salida Z que indique cuál de los números B o C es
más próximo al número A . Haga un diseño con subsistemas combinacionales . Suponga que
A# B, A#CyC ;, ,-- B.
Problema 17.- Considere el circuito de la figura . Inicialmente los biestables están en el esta-
do 0. La operación del circuito empieza con un pulso de "Start" aplicado a las entradas de
PRESET de los biestables X e Y. Determine las secuencias o las formas de onda en A, B, C,
X, Y, A, Z y W para 20 ciclos de reloj después del comienzo de la operación .
C B J A-
K C 1-K B K A X
CLK Y
W PR PR
Zr
S tart
X D Y
Problema 18 .- Para un sistema con 16 líneas de dirección se necesitan 40K de memoria de-
jando libre el resto . Se dispone de una _
RAM de 32K y otra de 8K, ambas con señal de selec-
ción de chip CS, de lectura/escritura R/W y buses compartidos . La memoria resultante deberá
tener señales de lectura R y de escritura W separadas y activas en alta, sin selección de chip .
a) Diseñe el circuito .
b) Determine qué palabras de memoria se corresponden con las direcciones lógicas si-
guientes: $FOCA, $4342, $9CAD.
c) ¿ Cuál es la dirección lógica que hay que poner para acceder a la palabra $7531 de
la RAM de 32K?. ¿ Cuál sería para la $0246 de la RAM de 8K? .
Solución Pl .
a) Directamente de la tabla de estados del biestable se obtiene su tabla de excitación :
q-Q
0->0 La transición 1 ---> 0 se puede conseguir
0-> 1 con cualquier valor de y, 0 ó 1 .
1-40
1-> 1
o ID 0 0
El estado B es el que más transiciones recibe (tres) . Teniendo en cuenta que en el ele-
mento de memoria el problema es la transición q ; : 1 -> 1, le asignaremos el código glg2 = 00
(de esta forma evitamos la transición problemática hacia el estado B) . La única transición que
parte del estado A va hacia el estado B . Por tanto, no se produce la transición problemática si
le asignamos a A : q1q2 = 11 . Por último, como C y D son próximos estados uno del otro, le
asignamos códigos complementados, por ejemplo C : q1 q2 = 01 y D : q1 q2 = 10 .
Una vez realizada la asignación, de forma que se ha evitado que existan transiciones que
no pueden implementarse con el elemento de memoria, el proceso de diseño continúa como
siempre .
X X
q 1 q\ 0 1 q 1 q\ 0 1
y1 =X
B=0 0 01,0 1 1,1 00 01 11
C=O 1 00,0 10,0 01 Od ld y2 =X91
A=1 1 00,0 00,0 11 dd dd Z=Xq2
D=1 0 01,0 00,1 10 dl d0
Q1 Q2 YiY2
Ecuaciones de excitación
Tabla de transición/salida Tabla de excitación y salida
MISCELÁNEA 367
Z
1 2
Solución P2 .- El primer paso es calcular una expresión de la función F(x,y,z), para lo cual hay
que analizar el circuito . Daremos nombre a cada una de las líneas .
x
y
z
b) Para este apartado tenemos que usar el multiplexor que aparece en el enunciado .
Como estamos en único raíl, vamos a buscar qué disposición de variables es válida para que
no encontremos residuos de la función que posean variables complementadas .
Residuos Residuos
de F : Z 1 z 1 de F : y 1 1 y
xz
Solución P3 .- Para contar los pulsos recibidos, como la duración de estos es variable, dos flan-
cos consecutivos en la entrada (subida y bajada) representan un pulso . Cada pulso, pues, nece-
sita dos estados : uno que reconoce el flanco de subida en X y otro, el de bajada. El diagrama
de estados para la máquina será :
0/00 1/00
ó ó 1/00 0/00
0/00
lo 1/00
1/00
¿0/10
0/ 0
Ó
411 0 0 1 0 0/10
0/10 1/10
0 0 0 lo
donde el estado "0" es el de ausencia de pulso ; el estado "1" se alcanza cuando X = 1 (comien-
zo de pulso) y en él se permanece hasta que X = 0 (final del pulso) ; tras este primer pulso se
permanece en un estado "2" hasta la llegada del nuevo pulso (X = 1) ; etc .
Para realizar estos cambios de estado utilizaremos el contador . Si asignamos los valores
0000, 0001, 0010, . . . a los estados 0, 1, 2, . . ., respectivamente, el estado coincide con el valor
del contador y los cambios de estado del grafo se llevan a cabo activando o no la entrada UP
según :
UP=O UP =
MISCELÁNEA 369
q2
q1 q0 000 001 011 010 110 111 101 100
00 000 010 --- 010 111 --- 110 100
UP Z 1 Z2
Las expresiones de las que se obtiene el circuito son :
UP = X - qO+X . g3 . g0 Z1 = X'g1'g0 + q2 + q3 Z2 = g0 'g 3 +X •q 3
Solución P4.
Como número binario : 10100110 = 166 (1 0
Como signo-magnitud : 10100110 =- (0100110) =- 38 (10
Como complemento a l : 10100110 = - (01011001) = - 89 (10
Como complemento a 2 : 10100110 = - (01011010) = - 90(10
En código ASCII : problema mal formulado, pues el código ASCII es sólo de 7 bits .
En código ASCII con paridad par : 10100110 - & .
En código ASCII con paridad impar: 10100110 no puede estar escrito como código de
paridad impar pues tiene 4 unos .
En código BCD : un dígito sería 1010 y otro 0110, pero como 1010 no es un dígito BCD,
el problema está mal formulado .
Solución P5 .
a) Desarrollaremos las instrucciones mediante microoperaciones y, de aquí, iremos im-
plicando algunas necesidades de operaciones en los registros . Previamente, analizaremos la
unidad de datos de la que disponemos :
Hay dos buses compartidos (BI y BD), por lo tanto, las salidas de los registros A, B y
AC son salidas con buffers triestado . Como las salidas son condicionales, los registros tienen
señales de lectura: única para RT (señal RT) y AC (señal RAC) y doble para A y B, según se
lea en BI (señales RA I, RBI) o en BD (señales RAD, RB D).
La ALU opera sumando o restando entre BD, con el que se pueden leer los contenidos
de los registros A, o B, o AC, y el contenido de RT que puede ser cargado desde el registro A
o el B .
Hay que especificar cuál es el sustraendo en caso de resta ; en nuestro caso, elegimos RT
como sustraendo . Con ello, la descripción de la ALU es :
(RT) (BD)
s r out
0 0
0 1 a-b
1 0 a+b
11
out (BD)
000 A HI HI 00 AC HI
001 BD HI entrada 01 in HI
010 A HI [A] 10 AC [ACI
100 A [A] HI 11 in [AC]
101 BD [A] entrada
110 A [Al [Al
-11 proh . proh . prohibida
MISCELÁNEA 371
µop 4 A E- AC AC E- AC + RT AC E- AC - RT
µop 5 B E- AC
b) La carta ASM, señalando en ella tanto las microoperaciones como las señales a acti-
var por el controlador, queda como sigue :
372 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
También podrían haberse reunido los estados S3a Y S3b según se muestra :
MISCELÁNEA 373
RB D
A
93a0 q
q q
D
D2 q2 D3a FIN
9a
93a1
q
910 XI DF
X q 93bC
911
D
q
0 q q q
D D
3b 1
93b1
V XI WB
RA I
0 - q50
q2 1
911 - q51
> RBI
93a 93b
q5
q1
WT WAC
93al
93a
q2 93b
93b
951 D
> r
q50 -~
s
q6
XI x 2 x3 F
0 0 A+13
0 1 A+B+1
0 1 - A+B
1 1 - A+B+ 1
Solución P7 .- Este sistema digital debe tener, por un lado, capacidad de almacenamiento para
un carácter de 4 bits, con el objeto de poder hacer comparaciones con los caracteres que
incidan en posteriores ciclos de reloj . Además, el sistema debe llevar la cuenta de las
coincidencias existentes, por lo que necesitaríamos un contador de cuatro estados o 2 bits . En
total, y como mínimo, necesitaremos seis biestables . No obstante, a la hora de implementar el
sistema, no disponemos de contadores, sólo de registros . En este caso, utilizaremos los
registros para almacenar los caracteres en distintos ciclos de reloj . Los registros están
conectados entre sí de modo que en conjunto simulan un registro de desplazamiento de
caracteres . Sólo es necesario utilizar 3 registros ; con ellos y la entrada actual se conocen los
caracteres correspondientes a cuatro ciclos de reloj .
X3 :0
R[4] R[4] R[4] -1
y • y
El sistema debe generar salida 1 durante un ciclo de reloj, cuando se detecte una
secuencia consecutiva de cuatro caracteres idénticos . Cuando se recibe esta secuencia, tanto
la entrada como los registros, contienen el mismo dato . Utilizando comparadores de magnitud
se puede detectar cuándo se ha recibido la secuencia correcta . Estos dispositivos tomarán la
entrada y el contenido de los distintos registros y los compara por parejas, de forma que en total
necesitaremos 3 comparadores .
a b b a b
El
z = El . E 2 • E3
Solución P8 .
a) Los pesos son : d 3 -* 4, d 2 -* 3, d, -* 1, do -* 1 . (Se obtiene de forma inmediata : do
de código del 1 ; d 2 del 3 ; d3 del 4 ; y d l de, por ejemplo, el 2) .
MISCELÁNEA 375
dígito d 3 d 2 d 1 dp Ca9 d3 d2 d i do
0 0000 9 1111
1 0001 8 1110
2 0011 7 1100
3 0100 6 1011
4 1000 5 0111
5 0111 4 1000
6 1011 3 0100
7 1100 2 0011
8 1110 1 0001
9 1111 0 0000
SOLUCIÓN 1 : SOLUCIÓN 2
A3-0
B3-0
Sean G, E y L las señales que comparan los números con signo A4-0 y B4-0 . Podemos
obtener, en función de S 1 , S 0, A4 y B4 la siguiente tabla :
A4B 4
S~ 00 01 10 11
00 gel 001 100 gel
gel 100 001 leg
01
gel 100 001 gel
10
11 gel 100 001 gel
GEL
Para números sin signo, S I S O = 00, tenemos las siguientes posibilidades :
a) A4B 4 = 00 y A4B 4 = 11 el resultado de la comparación depende de los 4 bits menos
significativos, esto es, GEL = gel.
b) A 4B 4 = 01, el número B es mayor que el A, por tanto L = 1 .
c) A4 B 4 = 10, el número A es mayor que el B, G = 1 .
Para números en notación S-M, tenemos las siguientes posibilidades :
a) A 4B 4 = 00, los dos números tienen el mismo signo y, por tanto, el resultado de la
MISCELÁNEA 377
comparación depende de la magnitud, de forma que el que tenga mayor magnitud, será el más
grande (GEL = gel) .
b) A4 B 4 = 01, el número A es positivo y el B, negativo, el mayor es el primero, G = 1 .
c) A4B 4 = 10, el mayor es el número B, por ser positivo, L = 1 .
d) A 4B 4 = 11, los dos números son negativos y, por tanto, el mayor será el que tenga
menor magnitud, GEL = leg .
Para números en notación Cal, tenemos las siguientes posibilidades .
a) A4 B 4 = 00, los dos números son positivos : por tanto, el mayor de los dos será el que
tenga mayor magnitud, GEL = gel .
b) A 4B 4 = 01, el número A es mayor por ser positivo, G = 1 .
c) A4 B 4 = 10, el número B es el mayor por ser positivo, L = 1 .
d) A4B 4 = 11, los dos números son negativos . Hay que determinar la magnitud de ambos
para saber cuál es el mayor . Para resolver este caso, observemos primeramente un ejemplo de
números negativos de 4 bits en esta notación .
- 7 : 1000 - 3 : 1100
- 6 : 1001 - 2: 1101
- 5 : 1010 - 1 : 1110
- 4 : 1011 - 0: 1111
Apartando el bit de signo, las magnitudes de los bits restantes son tanto mayores cuando
el número es mayor . Por tanto, las salidas GEL = gel .
Por último, se puede demostrar que, para números en notación Ca2, obtenemos los
mismos resultados que en Cal .
Podemos ya determinar el circuito resultante, utilizando MUX de 4 canales :
g o
0 1
1 2
g 3 1 0
0 0
1 1
2 2
3 10 3 10
0
1
• 2
3 10
0
• 1
• 2
A3-0
3 10
11
0
1
B3-0 2
3 10
0 l
0 1 2
1 2 3 10
g 3 10
0
1 SISO
2
3 10
II
A4 B 4
Solución P10 .- En el ciclo de fetch (búsqueda) se debe encontrar la posición a la que apunta
inicialmente el contador de programa (PC), (por ejemplo, la dirección $K) . A continuación
buscará la siguiente ($K+1) y, por último, la dirección $K+2 .
Ahí terminaría el ciclo de búsqueda y habrá que dejar al contador de programa (PC)
apuntando a la siguiente dirección de memoria $K+3 .
De esta forma, la secuencia de microoperaciones a realizar es :
1. MARH - PCH Almacena parte H de $K .
5. MARH 4- PCH
Similar a 1, 2 y 3, ahora para traer
6. MARL F- PCL "BO" a MDR y poner PC a K+2 .
7. MDR E- MEMORIA, PC 4- PC + 1
9. MARH 4- PCH
Similar a 1, 2 y 3, ahora para traer
10 . MARL F- PCL "43" a MDR y dejar a PC apuntando
a la siguiente instrucción K+3 .
11 . MDR 4- MEMORIA, PC E- PC + 1
Aquí termina el ciclo de fetch . Comienza, por tanto, el ciclo execute de la instrucción
LDA, que consiste en cargar el acumulador con la palabra de dirección $B043 :
AC 4- MEMORIA($B043)
Para ello :
12. MARH E- RT
Pone la dirección de la palabra en el registro MAR .
13 . MARL 4- MDR
Con ello se termina la ejecución . Ahora volvería a iniciarse el siguiente ciclo de fetch .
MISCELÁNEA 379
Solución P11 .
a) Dada la expresión de la puerta umbral en la figura 1, para su realización basta con un
comparador de magnitud de n bits que compare "A" e "i" y un inversor para obtener la salida Z .
En la siguiente figura se muestra dicho esquema :
n
Comparados
de "n" bits
Z
b) Para analizar el circuito de la figura 2, construimos la tabla de verdad para cada una
de las salidas de las puertas umbrales : Z2 es la de la puerta con umbral en 2, Z 1 la del umbral
en 1, Z 3 en 3 y F es la de la puerta con umbral en 5 y cuyas entradas son Z 2 , Z 1 y Z3 . Partiendo
de estos datos se obtienen los siguientes resultados :
a b Z2 c d Zi e d Z3 Z2 Z1 Z3 F
0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 1 1 0 1 0 0 0 1 0
1 0 1 1 0 1 1 0 0 0 1 0 0
1 1 1 1 1 1 1 1 1 0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
De estas tablas se puede obtener la función F(a, b, c, d, e) . Para ello, dada una combina-
ción de las cinco variables, se evalúa cada una de las funciones Z2 , Z 1 y Z3 y posteriormente
se obtiene el valor de la función de salida del circuito F . Realizando este cálculo para todas
las combinaciones de entrada se obtiene el siguiente mapa binario :
F
c) Del mapa anterior, usando "a, b" como entradas de selección del MUX-2 cuya salida
es la función F y diseñando el residuo R 2 con un MUX-2 de entradas de selección "c, d", se
llega al circuito final que se muestra a continuación :
\d 00 01 10 11 1 0 1
e 1
2 T 2
0 1 1 1
310 310
1 0 1 1 1
Residuos
de R 2 : 0 1 1 1
II II
a b
c d
0 0
0 1 F
d 2
1
ac
Solución P12.
a) En los mapas de Karnaugh se ven las diferencias entre la solución y la función :
CIRCUITO FUNCIÓN
ESPECIFICADA
ab ab
cd 00 01 11 10 cd\ 00 01 11 10
00 0 1 0 00 d 0
01 1 0 1 0 01 1 0 d 0
11 1 1 1 0 11 1 0 d 1
10 0 1 1 0 10 d 0 1 1
z f
Los errores son que la solución considera que las posiciones 6 y 7 son mintérminos y en
realidad son maxtérminos . En cambio, en la solución las posiciones 10 y 11 son maxtérminos
cuando deben ser mintérminos .
La función correcta es : f = a b + a c + á b . Por tanto, para corregir los errores, en la puer-
ta central en vez de conectar b y c hay que conectar a y c . Por otra parte, es posible eliminar la
conexión de la señal d en la puerta de más abajo del circuito, ya que las celdas 0 y 2 están ines-
pecificadas .
MISCELÁNEA 381
M=b z=MN
c
1
L= b
L- N=L
d 1
M=L
~5 n$~ 5ns s
i
N
-4 _4-- --4 '1-- -4
5ns 5 n n1-
Esto es, z presenta un azar (estático) de 5ns de duración, que aparece l Ons después del
cambio de bajada en b .
A ( . . .000)
B (. . I )
C ( . .11) E ( . . .0)
D ( . . .111)
F ( . . .00)
Ck
S ? ? B C D F A B C D D D E
Solución P14 .- La resolución del problema puede efectuarse utilizando una representación de
la información que aporta la tabla del enunciado sobre un mapa de Karnaugh . En esta tabla
aparecen expresiones de dos implicantes primas y faltan por conocer expresiones de las otras
cuatro (B, D, E y F) . Además, aparecen todos los mintérminos menos dos (c l y c2) . Con los
mintérminos conocidos el mapa queda como sigue :
MISCELÁNEA 383
=..o
....
.am.
...=
Implicante A = b d : Vale 1 cuando b = 0 y d = 0 . Son las posiciones 0, 2, 8 y 10 sobre
un mapa de Karnaugh . Como 0, 8 y 10 son mintérminos de f y esta implicante no cubre ni á
c 1 ni a c 2, en la posición 2 del mapa hay una inespecificación, d .
La implicante prima B cubre al mintérmino 0 y a c l . Además, B es la única implicante
que cubre al mintérmino c 1 , de forma que no puede agruparse con ningún otro mintérmino dis-
tinto del 0 . Por tanto, el mintérmino c 1 sólo podría estar o en la posición 1 ó en la posición 4
del mapa .
La implicante C = bcd cubre sólo a los mintérminos 7 y 15 .
La implicante D cubre al 15 y a c 2. Por lo que c 2 tiene que ser adyacente al 15 y, por
tanto, sólo puede ser el 11 ó el 13 ó el 14 . Como no existe ninguna implicante prima que cubra
ni al mintérmino 10 ni a c 2, no pueden ser ni el 11 ni el 14 (ambos adyacentes del 10) . Por
tanto, c2 es el 13 .
La implicante E cubre al mintérmino 8 . Como es implicante prima debe cubrir, además,
alguna inespecificación . Esta puede estar en celdas adyacentes al 8, esto es, en el 9 ó en el 12 .
La implicante F cubre a c2 = 13 . Además, debe cubrir alguna inespecificación que podrá
estar situada en las celdas 5 ó 9 ó 12 . Si la celda 5 fuese inespecificación, la implicante C no
sería prima. Por tanto, sólo puede estar en la 9 ó 12 .
Con lo que hemos deducido el mapa queda como sigue :
d?
U
Resta por determinar si el mintérmino c 1 es el 1 ó el 4 y si hay inespecificación en el 9
ó el 12 . Existen dos soluciones posibles .
La primera es considerando que c 1 = 1 . En este caso, la inespecificación está situada en
la celda 12 . El mapa quedaría de la siguiente manera :
B=(0,1) =aEc
00 01 11 10 D=(13,15)=abd
a LU]
E=(8,12) =acd
F=(12,13) = a b c
B=(0,4) =ácd
r«
_ D=(13,15)=abd
E = (8,9) = a Ec
F=(9,13) = a c d
-0
CJ
L f = 1(0,4,7,8,10,13,15)+ d(2,9)
Solución P15.- El comportamiento del perro puede emularse mediante una máquina secuen-
cial, de la siguiente forma :
- Estados de entrada .
Son las acciones que se pueden hacer al perro . Existen 4 posibles estados de entrada :
Jo : Darle un hueso .
1 1 : Quitarle un hueso .
12 : Amenazarle .
13 : Nada.
- Estados de salida .
Son las posibles acciones del perro :
Op : No muerde .
0 1 : Muerde .
MISCELÁNEA 385
- Estados de la máquina .
Son los estados del perro :
T : Tranquilo .
1 : Irritado .
A : Asustado .
IA : Irritado y asustado .
Como el perro muerde (O 1 ) si y sólo si está irritado y asustado (IA), la tabla de estados
sigue el modelo de Moore . La tabla se obtiene directamente del enunciado y se muestra en la
figura:
Z
lo 11 12 13
T T 1 A T 00
I T I IA 1 00
A T IA A A 00
IA T IA IA IA 01
NS
Los cuatro estados de entrada se codifican mediante dos entradas de forma que se tiene
X1X0 : 00 (I 0 ), 01 (I 1 ), 10 (I 2 ), 11 (1 3 ) . Entonces, las tablas de transición/salida :
Utilizando biestables D las tablas de excitación son las mismas que las de transición . De
ellas se obtienen las ecuaciones de excitación/salida, para cada asignación :
Para la asignación 1 :
D 1 = Xo g l + X1 X0
Do = X 1 X 0 g 1 +X 1 X 0 g o +X 1 g 1 g 0 +X 1 X D g 1 g 0
Z=g 1 g o
Para la asignación II :
D 1 = X 0 g 1 +X 1 X 0
D =X 1 X0 +X
o 1 80
Z= g1g0
Para la asignación III
D 1 =X 1 X0 •g 0 +X 1 .X0 .g 1 +X0 .g 1 •q 0 +X 1 X 0 • q 1 •q 0
D o - X 1 X 0 +X 180
Z=q 1 •q 0
X
X D D
1 0
X xl
X
Solución P16.- Supongamos que Z = 1 indica que el número B es más cercano que C, al
número A ; y Z = 0, indica que C está más cerca .
La salida Z la podemos obtener a partir de un comparador de magnitudes, cuyas entradas
sean las distancias de los números B y C, al A .
IA-BI
IA-CI
MISCELÁNEA 387
Ahora debemos obtener el circuito que realice las operaciones ¡A-B1 y ¡A-CI . La
definición del valor absoluto de A-B es la siguiente :
A - B si A>B
IA-BI =
B-AsiB>A
B o Minuendo
A RESTADOR IA-BI
Sustraen d o
B
A --, - x x>y
n
x=y
B y x<y
B Minuendo
A
A RESTADOR
Sustraendo ¡A-B¡
Solución P17 .- Cuando Start = O, los biestables D se ponen a 1 de forma asíncrona . Los biesta-
bles D, tras un pulso Start, operarán con cada flanco negativo de W según la secuencia :
w
puesto que D x = Y y D y = X .
Si X + Y = 1, los tres biestables JK tienen como entradas JK = 1 1 y operan como un
contador de rizado (A es el menos significativo) .
Si X + Y = 0, el biestable A tiene J A KA = 00 y no cambia de estado por lo que ningún
otro biestable JK cambia de estado .
W = B + C produce un flanco negativo (de 1 a 0) cuando B •C pasa de 0 - ó - 0 a 11 .
De todo lo anterior se obtiene la siguiente secuencia de señales :
Start L I
CLK
A
B
C
X I
Y J
Z J
w
Solución P18 .
a) Queremos conseguir una memoria de 16 líneas de entrada con dos señales de control
independientes para lectura y escritura . Para ello, tenemos que relacionar las nuevas señales de
control con las correspondientes a cada una de las memorias de las que partimos por separado .
Mostramos el siguiente diagrama de bloque y la relación entre las distintas señales :
R W
a14-0 CS R/W CS RIW
a12-0
0 0 Inhibición
32Kx8 8Kx8
0 1 Escritura
1 0 Lectura
1 1 Prohibido
Para resolver el problema, primero determinamos la relación entre las distintas señales
de control de cada una de las memorias . Para ello, seguimos la siguiente tabla :
MISCELÁNEA 389
R W CS CS 2 R/W R/W2
0 0 1 1 * : según el mapa de diseño que haremos
0 1 * * 0 0 a continuación .
1 0 * 1 1
1 1
0 - - Mi
1 0 0 M2
1 0 1
1 1 0 Vacío
1 1 1
La puerta NOR (R,W) habilita los decodificadores de memorias si hay acceso (RW = 01
o 10) e inhabilita dichos decodificadores si no hay acceso (RW = 00) .
Para la señal CS 2 se ha utilizado un decodificador 2 :4 dejando así libres las líneas 1, 2
y 3 de salida para posibles expansiones del circuito . Si se desea reducir el coste se puede
eliminar dicho decodificador y poner en su lugar una puerta OR (m, A14 , A13) donde m es la
salida 1 del decodificador 1 :2 .
390 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
A14 - - CS 2
A13
b) Analizamos las palabras que se leerían de las memorias si en el bus externo de datos
colocamos las siguientes direcciones :
A 15 - A0 = $FOCA A15 A14 A13 = 111 No hay palabra física seleccionada .
A 15 - A0 = $ 4342 A15 =0 Acceso a M 1
A 14 - A0 = $ 4342 Se accede a la palabra $4342 de M 1 .
A 15 - A0 = $ 9CAD A15 A14 A13 = 100 Acceso a M 2
A12 Al 1 - A0 = $ 1 CAD Se accede a la palabra $1 CAD de
M2
c) Para poder acceder a la dirección $7531 de M 1 tenemos que poner A 15 = 0 y así se-
leccionar dicha memoria . Para el resto de las líneas de entradas A 14 - A 0 = $ 7531 . Por tanto,
la dirección que se necesita fijar en el bus externo es A 15 - A0 = $ 7531 .
De forma análoga, para acceder a la palabra $0246 de M2 tenemos que fijar
A15 A14 A13 = 100 y el resto de las líneas tomarían los valores siguientes :
A12=0yA 11 -A0 =$246 .
Por tanto, uniendo todos los valores de las 16 líneas que componen el bus externo, la
dirección que necesitamos colocar en dicho bus para acceder a la que nos planteamos es
A 15 - A0 = $ 8246 .
BIBLIOGRAFÍA
Nuestro propósito aquí es citar un pequeño conjunto de textos, a través de los cuales se pueden
alcanzar dos objetivos : 1) que el lector pueda estudiar en ellos la teoría de la materia que se
aplica en este libro ; 2) que en ellos se aporten suficientes líneas y enfoques como para que el
lector pueda profundizar en los aspectos que desee o necesite . Somos conscientes de que puede
haber otras selecciones apropiadas, pero confiamos en que la que ahora damos sea suficiente-
mente adecuada.
La materia correspondiente al nivel de conmutación (Capítulos 1-10) está suficiente-
mente soportada en textos : existen muchos y poseen un variado enfoque, lo que garantiza el
progreso en cualquier línea . Nosotros hemos tenido que seleccionar los que consideramos me-
jores . En cuanto a la materia correspondiente al nivel RT la situación es bien distinta . Aunque
el número de autores que la tratan va aumentando cada vez más, todavía no está adecuadamen-
te delimitado el cuerpo de doctrina . De aquí que esta materia se encuentre mucho menos es-
tructurada en los libros existentes .
Los fundamentos matemáticos (Capítulos 1, 2 y, en parte, el 6) suelen estar bien presen-
tados tanto en los textos más recientes [Garc92, Haye96, Llor96, Mano9l, Nels95, Sand90,
Wake94], como en otros más clásicos [Cava86, Givo70, Haye86] . En cualquiera de ellos pue-
den estudiarse la mayor parte de las cuestiones de estos temas . Para profundizar, en particular,
la codificación binaria está ampliamente estudiada en [Garc92] ; un tratamiento elegante, sim-
ple y riguroso del álgebra y de las funciones de conmutación se da en [Givo70] ; los aspectos
relacionados con la aritmética del computador se desarrollan ampliamente en [Cava86] ; y un
buen equilibrio se encuentra en [Haye86/96, Nels95, Wake94] . Además, para ampliar conoci-
mientos sobre funciones especiales puede estudiarse [Unge89] .
En el bloque relativo a los circuitos combinacionales, nuestro Capítulo 3 dedicado al
análisis lógico (incluyendo circuitos sólo NAND (NOR)) y temporal (incluyendo azares) está
bien tratado en [Garc92, Katz94, Mano91, Nels95, Wake94] . El diseño de circuitos a nivel de
puertas (Capítulo 4) está tratado mediante mapas de Karnaugh en todos los textos
mencionados ; en [Givo70, Mano9l, Nels95, Wake94] se da una visión más acorde con
nuestros contenidos, incluyendo el método de Quine-McCluskey, las diferentes formas de
implementar expresiones sp o ps e incluso las realizaciones con puertas XOR . Para el lector
interesado, el diseño ayudado por computador (CAD) puede encontrarse en [Haye96, Katz94,
391
392 PROBLEMAS DE CIRCUITOS Y SISTEMAS DIGITALES
[Cava86] J .J .F. Cavanagh : "Digital computer arithmetic : Design and implementation ".
McGraw-Hill, 1986 .
[Haye96] J .P. Hayes : "Introducción al Diseño Lógico Digital ". Addison-Wesley, 1996 .
BIBLIOGRAFÍA 393
[Hi1193] F.J . Hill and G .R . Peterson : "Computer aided logical design with emphasis on
VLSI ". Wiley, 1993 .
[Katz94] R.H. Katz : "Contemporary Logic Design ". The Benjamin/Cummings Publishing
Company, 1994 .
[Lync93] M . A. Lynch : "Microprogrammed State Machine Design ". CRC Press, Inc ., 1993 .
[Nels95] V.P. Nelson et al . : "Digital Logic Circuit Analysis and Design" . Prentice Hall,
1995 .
[Pros87] F.P. Prosser and D .E . Winkel : "The art of digital design : An introduction to
top - down design " . Prentice-Hall, 1987 .
[Unge89] S.H. Unger : "The essence of logic circuits " . Prentice-Hall, 1989 .
[Wake94] J .F. Wakerly : "Digital Design : Principies and Practices ". Prentice-Hall, 1994 .
http://www.enigmaelectronica.tk
http://www.foroenigma.tk
Libros
Manuales
Tutoriales
Cursos
Programas
Música
Películas