Logo Passei Direto

UCM _ Grado en Ingeniería Geológica _ Teoría de estructuras _ Problemas_

User badge image
Diego Pereira

en

Material

Esta es una vista previa del archivo. Inicie sesión para ver el archivo original

FCproblemas1.pdf
 
Facultad de Informática 
Universidad Complutense de Madrid 
 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 1 / pág. 1 
 
PROBLEMAS DE FUNDAMENTOS DE COMPUTADORES 
 TEMA 1 
Problemas básicos: 
1. Usando aritmética binaria, realice las siguientes operaciones (todos los operandos están 
expresados en decimal): 
 695 + 272 695 – 272 272 × 23 159  10 
Compruebe que el resultado binario concuerda con el que se obtendría operando en 
decimal. 
2. Realice los siguientes cambios de base: 
(10110110)2 a hexadecimal, a decimal y a octal 
(73)8 a hexadecimal, a decimal y a binario 
(137)10 a hexadecimal, a octal y a binario 
(AF3)16 a decimal, a octal y a binario 
3. Exprese en octal y hexadecimal las siguientes secuencias de 16 bits: 
A = 0000 0110 0000 0111 B = 0000 0000 1101 0110 
C = 1100 0001 1111 0011 D = 1001 0000 0000 1010 
Calcule también el número que representan suponiendo que lo codifican en binario puro, 
en MyS, en C2 y en C1. 
4. Dados los números A = (+36)10 y B = (+54)10 determine el número de bits mínimo para 
representar ambos en el convenio C2. Realice las operaciones A+B y A-B usando 
aritmética en C2. En cada caso indique razonadamente si se produce desbordamiento. 
Exprese el resultado de la operación A-B en hexadecimal de 8 bits. 
5. Extienda a 16 bits las siguientes secuencias de 8 bits: 
A = 01110010 B = 11010110 C = 00001101 D = 11110101 
suponiendo que representan números codificados en binario puro, MyS, C2 o C1. 
Exprese en hexadecimal el resultado de cada una de las extensiones. 
6. Considere las siguientes secuencias de 8 bits: 
A = 01001001 B = 00010001 C = 10111101 D = 11110011 
a) Suponiendo que codifican números en C2, represéntelos en MyS de 8 bits. 
b) Suponiendo que codifican números en MyS, represéntelos en C2 de 8 bits. 
7. Exprese los siguientes números decimales en códigos BCD y EX-3 de 16 bits. 
 A = 1486 B = 0 C = 349 D = 37 
Problemas adicionales: 
8. Halle el valor decimal de los siguientes secuencias de 8 bits: 
A = 11100111 B = 10111111 C = 00010110 D = 11111111 
suponiendo que representan números codificados en binario puro, MyS, C2 o C1. 
 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 1 / pág. 2 
9. Considere las siguientes secuencias de 8 bits: 
A = 00101101 B = 00011011 C = 11101101 D = 11010000 
a) Suponiendo que representan números codificados en C2, realice las operaciones: A–
B, -C–D, -A–B+C indicando si se produce desbordamiento. Calcule también el valor 
decimal de los resultados 
b) Ídem, suponiendo que representan números codificados en MyS. 
10. Calcule el número mínimo de bits necesarios para representar en binario puro, MyS, C2 
y C1 cada uno de los números siguientes, así como su representación binaria en dichas 
codificaciones: 
A = -100 B = +240 C = +15 D = +16 E = -16 
11. Usando aritmética en C2, primero, y en MyS, después, realice las siguientes operaciones: 
10110111 – 10000111 
00001000 + 11100001 
Indique para cada caso si se produce desbordamiento. 
12. Halle el valor decimal de las siguientes secuencias de 16 bits suponiendo que codifican 
números en BCD: 
A = 0000 0100 1000 0010 B = 1001 0101 0111 0000 
Problemas de examen: 
13. (Febrero 2011) Dados los siguientes números A = +35 (en decimal), B = -27 (en 
decimal), C = +22 (en octal) y D = +28 (en hexadecimal): 
a) Expréselos en representación en complemento a dos con 8 bits. 
b) Efectué las operaciones (A-B) y (-C-D) indicando si hay desbordamiento o acarreo y 
el por qué. 
c) Represente (-B) en complemento a uno y en magnitud y signo ambos con 8 bits. 
14. (Septiembre 2012) Dados los números A = (11101010)C2, B = (00111101)C2, C = -(523)8 
y D = +(543)8 
a) Determinar el valor de los números en decimal. 
b) Representar C y D en notación en complemento a 2 de 10 bits. 
c) Utilizando únicamente notación en complemento a 2 de 10 bits efectuar las 
operaciones (A-B) y (-C+D), indicando si hay desbordamiento o acarreo y el por 
qué. 
 
FCproblemas2.pdf
 
Facultad de Informática 
Universidad Complutense de Madrid 
 
 
 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 2 / pág. 1 
 
 
 
PROBLEMAS DE FUNDAMENTOS DE COMPUTADORES 
TEMA 2 
Problemas básicos: 
1. Usando los mapas de Karnaugh, obtenga expresiones como mínima SDP de las 
funciones: 
a) f(a,b,c,d) = m(0,4,6,10,11,13) 
b) f(a,b,c,d) = m(3,4,7,11,12,14,15) 
c) f(a,b,c,d,e) = m(0,2,3,4,5,12,13,18,19,20,21,25,27, 28,29,31) 
2. Empleando los mapas de Karnaugh, encuentre expresiones como suma de minterms de 
las funciones: 
f1(a,b,c,d) = f(a,b,c,d) · f(a,b,c,d) 
f2(a,b,c,d) = f(a,b,c,d) + f(a,b,c,d) 
f3(a,b,c,d) = f1(a,b,c,d) · f2(a,b,c,d) 
siendo: 
 
 
3. Se desea diseñar el control de un detector de situaciones de alarma en el hogar. El 
sistema tiene como entradas: 
 FU (se activa cuando el detector de humos reconoce un fuego) 
 IN (se activa cuando el detector de agua reconoce una inundación) 
 AT (se activa cuando el detector de intrusos identifica movimiento en la terraza) 
 AP (se activa cuando el detector de intrusos identifica movimiento en la puerta) 
Las salidas que debe proporcionar el sistema son: 
 PO (llama a la policía) 
 BO (llama a los bomberos) 
El comportamiento de la alarma es: 
 El sistema debe llamar a la policía cuando se detecta movimiento en la terraza o en 
la puerta pero no hay inundación ni fuego (ya que en estos casos los detectores de 
movimiento no son fiables) 
 El sistema debe llamar a los bomberos cuando se detecte inundación o fuego 
Describa el sistema mediante expresiones de conmutación simplificadas. 
4. Obtenga una SDP simplificada equivalente a cada una de las siguientes expresiones de 
conmutación: 
a) f a, b 	 a ∙ b 	a ∙ b a ∙ b 
b) f a, b, c 	 a ∙ b 	b ∙ c a ∙ b 	b ∙ c 
c) f a, b, c 	 a b c ∙ a ∙ b ∙ c 
 cb a+bd+ab = f 
db+ba = f 
 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 2 / pág. 2 
 
 
 
d) f a, b, c 	 a b ∙ a c ∙ a ∙ b ∙ c 
e) f a, b, c a ∙ c a ∙ b ∙ c b ∙ c 
f) f a, b, c, d a ∙ b ∙ c b ∙ c ∙ d b ∙ c c ∙ d 
Problemas adicionales: 
5. Dadas las funciones de conmutación: 
 g1(a,b,c,d) = m(0,1,2,4,6,8,10,13,15) 
g2(b,c,d) = m(2,4,5,6,7) 
 g3(a,b,c,d) = m(0,2,3,4,6,10,11,12,14) 
g4(a,b,c,d) = m(1,2,4,6,12) 
 g5(a,b,c,d) = m(2,3,5,6,13) 
 complete las siguientes cadenas de igualdades: 
a) f1(a,b,c,d) = g1· g2 = m(.....) 
b) f2(a,b,c,d) = g1  g3 = m(.....) 
c) f3(a,b,c,d) = g4 NAND g5 = m(.....) 
6. Obtenga la suma de productos canónica equivalente a la expresión de conmutación: 
Z(x3, x2, x1, x0) = )xx(x)xx( 10123  
7. Obtenga una especificación mediante una EC simplificada de un sistema combinacional 
que acepta como entrada dos números binarios de dos bits, X e Y, y da salida uno si y 
solo si XY. 
8. Obtenga la especificación mediante ECs simplificadas de un conversor de código BCD a 
Exceso-3. 
9. Especifique mediante ECs simplificadas un sistema combinacional capaz de detectar 
números primos. El sistema admite como entrada números enteros en el rango 0 a 31. 
10. Un sistema combinacional tiene una entrada, X, que representa un dígito decimal. La 
salida, Z, es la entrada dividida entre 2 si X>4. En caso contrario, la salida es el doble de 
la entrada. Obtenga una especificación mediante ECs simplificadas del sistema 
suponiendo: 
a) Que la entrada y la salida se codifican en BCD 
b) Ídem en Exceso-3. 
11. Una escalera tiene cuatro pisos y un conmutador por piso para controlar la luz. Si todos 
los conmutadores están apagados la luz está apagada, pero cualquier cambio en un con-
mutador modifica el estado de la luz. Describa mediante una EC simplificada el sistema 
combinacional necesario para controlar la luz. 
12. Un estudiante será seleccionado para participar en un programa experimental si 
pertenece, al menos, a uno de los grupos siguientes: 
 Varón, no de 2º ciclo, español 
 De 2º ciclo, español,
no sabe programar 
 Varón, de 2º ciclo, español 
 Mujer, de 2º ciclo, sabe programar 
 No de 2º ciclo, español, no sabe programar 
 Mujer, no de 2º ciclo, española 
 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 2 / pág. 3 
 
 
 
 Se pide: 
a) Especifique mediante una función de conmutación un sistema digital tal que 
conocidas las características de un estudiante permita determinar 
automáticamente si será seleccionado para el programa. 
b) Halle un conjunto de requerimientos equivalente, pero más simple, para ser 
seleccionado. 
13. El ayuntamiento de Madrid quiere eliminar el peligro que suponen las fuentes 
ornamentales los días de fuerte viento para el tráfico que circula por los alrededores, para 
lo cual ha encargado un sistema digital con dos entradas T y V y una salida F, que 
cumpla las siguientes especificaciones: 
 Sensor de tráfico (T1, T0): codificado según la tabla adjunta 
 Sensor de viento (V1, V0): codificado según tabla adjunta. 
Siempre que la fuerza del viento sea alta se apaga la fuente (F = 0). Siempre que no haya 
viento o la fuerza de éste sea pequeña se mantendrá la fuente encendida (F = 1). Sólo en 
el caso de viento moderado y densidad de tráfico media o alta se apagará la fuente. 
Escribir la tabla de verdad que refleja el funcionamiento del sistema. 
T1 T0 Tráfico V1 V0 Fuerza del Viento 
0 0 Bajo 0 0 Sin viento 
0 1 Medio 0 1 Pequeña 
1 0 Alto 1 0 Moderado 
 1 1 Alta 
 
14. Un sistema para el control de un paso a nivel de la vía férrea Madrid-Segovia tiene tres 
salidas: B indica si la barrera del paso a nivel está bajada o subida, y las otras dos indican 
si está verde o rojo el semáforo que permite pasar trenes en cada uno de los dos sentidos 
(si Pm es 1 pasan trenes desde Madrid y si Ps es 1 pasan trenes desde Segovia). El 
sistema debe garantizar que sólo pasa un tren a la vez y nunca está subida la barrera 
cuando pasa un tren. 
El sistema tiene como entrada dos conjuntos de tres variables: las variables Mt, Mm y Mr 
valen 1 cuando viene un talgo procedente de Madrid, viene un mercancías procedente de 
Madrid y cuando el tren que viene de Madrid está retrasado respectivamente (sólo vale 1 
si viene algún tren y además está retrasado). Las variables St, Sm y Sr tienen el mismo 
significado pero para los trenes procedentes de Segovia. 
El funcionamiento del sistema cuando más de un tren quiere pasar es el siguiente: si sólo 
uno de los trenes lleva retraso pasa ese en primer lugar y espera el otro. En caso 
contrario, si sólo uno de los trenes es talgo, el talgo pasa primero; si ninguno es talgo, 
pasa primero el que va a Madrid y si ambos son talgo, primero pasa el que viene de 
Madrid. 
Obtenga una especificación binaria del sistema. 
15. Se desea diseñar un sistema que descodifique el rumbo de un barco. El sistema recibe el 
rumbo actual por cuatro entradas, N, S, E y W, que se activan cuando el barco lleva el 
rumbo correspondiente, de manera que, por ejemplo, la entrada NSEW=1010 se 
corresponde con el rumbo noreste (NE). La salida del sistema debe mostrar el rumbo de 
la siguiente forma codificado en binario puro: 
 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 2 / pág. 4 
 
 
 
0 
7        1 
6          2 
5        3 
  4   
Especifique el sistema mediante una tabla de verdad y obtenga las expresiones de 
conmutación simplificadas como suma de productos. 
16. Un sistema combinacional para controlar el aparcamiento de una empresa de transportes 
tiene 4 entradas y 3 salidas. Las entradas indican las características del vehículo: C 
(1=Camión; 0=Furgoneta), F (1=Aislamiento con cámara frigorífica; 0=Aislamiento 
convencional), R (1 = Remolque mayor de 5 metros de longitud; 0=Remolque reducido o 
no remolque), P (1=mercancías peligrosas; 0=mercancías convencionales). Las salidas 
indican la seguridad, lugar de aparcamiento y turno en función de estas características 
descritas: Z (1=Zona amplia; 0=Zona convencional), S (1=Seguridad reforzada; 
0=Seguridad convencional). T (1=Turno de salida prioritario, 0=Turno de acuerdo al 
programa). Las condiciones que debe de cumplir el sistema son las siguientes: 
 Los vehículos pesados (camiones con o sin remolque y furgonetas con remolque 
mayor de 5 metros) se aparcan en zona amplia siempre que no transporten 
mercancías peligrosas. El resto en zona convencional. 
 Para los vehículos que transporten mercancías peligrosas la seguridad se verá 
reforzada. También si el vehículo considerado es un camión y lleva un remolque 
mayor de 5 metros, además de cámara frigorífica. El resto llevará seguridad 
convencional. 
 Todos los vehículos cuya seguridad esté reforzada, estén aparcados en zona 
convencional y tengan cámara frigorífica saldrán de forma prioritaria. El resto de 
vehículos saldrá de acuerdo al programa. 
Se pide: 
a) Obtenga una especificación del sistema en forma de tabla de verdad. 
b) Obtenga la implementación como suma de productos mínima. 
17. Un sistema combinacional que controla una carrera de regatas tiene 4 entradas y 2 
salidas. Las entradas indican las características del barco: 
 B (1=extranjero; 0=nacional) 
 E (1=eslora mayor de 8 metros; 0=eslora menor o igual a 8 metros) 
 M (1=manga mayor de 5 metros; 0=manga menor o igual a 5 metros) 
 S (1=equipamiento superior; 0=equipamiento convencional) 
Las dos salidas indican la categoría en la que participa el barco en función de sus 
características: 
 C (1=clase I; 0=clase II) 
 I (1=instrucciones de tipo A; 0=instrucciones de tipo B) 
 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 2 / pág. 5 
 
 
 
Para organizar a los barcos se usan las siguientes condiciones: 
 Los barcos de bandera extranjera y eslora mayor de 8 metros navegan en Clase II 
junto a los de bandera española. Los demás, en Clase I. 
 Para los barcos pertenecientes a Clase II el conjunto de instrucciones depende del 
tipo de equipamiento: los barcos con equipamiento superior usan el conjunto de 
instrucciones A, mientras que los de equipamiento convencional usan el conjunto de 
instrucciones B. 
 Todos los barcos de Clase I usan el conjunto de instrucciones B, salvo que tengan 
una manga mayor de 5 metros o equipamiento superior, en cuyo caso usan el 
conjunto de instrucciones A. 
Se pide: 
a) Obtenga una especificación del sistema en forma de tabla de verdad. 
b) Obtenga la implementación como suma de productos mínima. 
18. Obtener las expresiones de conmutación que especifican un sistema para controlar la 
temperatura de una sala de computadores. 
El sistema tiene las siguientes entradas: 
 
 Temperatura ºC T1 T0 V D Modo M
de 5 a 14º 0 0 Verano 1 Día 1 Ahorro 1 
de 15 a 24º 0 1 Invierno 0 Noche 0 Normal 0 
de 25 a 34º 1 1 
de 35 a 44º 1 0 
El sistema tiene dos salidas: Una enciende el aire acondicionado y otra enciende la 
calefacción. La salida Enfriar (E) sólo puede valer 1 en verano y la salida Calentar (C) 
sólo en invierno. 
El funcionamiento del sistema es el siguiente: 
 Si está en modo ahorro de energía sólo enfría si T * 35º y sólo calienta si es de día y 
T < 15º. 
 Si no está en modo ahorro de energía, el sistema debe garantizar que la temperatura 
se mantiene entre 5 y 34º por la noche y entre 15 y 24º por el día. 
Problemas de examen: 
19. (Febrero 2011) Considere las siguientes expresiones de conmutación: 
 f x, y, z, w ∑m 0,1,8,10,11 	 
 g x, y, z, w 	 yz yz 
Obtenga la forma simplificada de f x, y, z, w 	AND	g x, y, z, w . 
20. (Junio 2012) Un sistema combinacional recibe como entrada (X) un número del 1 al 6 
codificado usando el código Gray de 3 bits. El sistema tiene otra entrada de control 
(Inc/Dec) que indica si la salida Z es la entrada + 1 o la entrada – 1, es decir: 






11
01
Dec/IncsiX
Dec/IncsiX
Z 
 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 2 / pág. 6 
 
 
 
La salida también está codificada en Gray de 3 bits. Se pide: 
a) Obtener la tabla de verdad.
b) Obtener expresiones simplificadas de las salidas. 
Nota: La siguiente tabla muestra la codificación Gray de 3 bits: 
0 = (000) 1 = (001) 2 = (011) 3 = (010) 4 = (110) 5 = (111) 6 = (101) 7 = (100) 
 
FCproblemas3.pdf
 
Proble
 
Prob
1. Im
c
in
d
d
(p
m
e
u
2. A
 
 
 
 
 
 
Prob
3. D
s
4. U
c
e
p
N
5. E
h
n
m
in
d
d
v
D
p
fi
s
 
Facu
Unive
emas de Fund
P
blemas bá
mplemente 
controle el m
ndicando el
de monedas 
dos salidas, u
p.ej. cambia
monedas deb
el retardo de
utilizando lo
Analice el s
blemas ad
Demuestre 
iguiente exp
Un sistema c
complement
en complem
para codific
NAND de 2 
El sistema n
hecho de cé
neurona tien
muestra en 
nhibición. U
de sinapsis d
de sinapsis 
valor de umb
Determine l
pulsos a trav
figura, para 
alida ‘1’ s
ultad de In
ersidad Complu
damentos de C
PROBLEMA
ásicos: 
con el me
mecanismo d
l tipo de mo
que se dese
una de error
ar una mon
be entregar 
e propagaci
os datos de la
iguiente circ
dicionales
que el blo
presión de c
combinacion
to a 2, en el 
mento a 2 de
ar la salida
entradas. 
nervioso hu
élulas espec
ne sinapsis 
la figura ad
Una neurona
de excitació
de inhibició
bral de la ne
a función b
vés del cana
un valor de
i el númer
a
c
nformática 
utense de Mad
Computadores
AS DE FU
enor número
de una máqu
oneda introd
ea obtener: 0
r que se acti
eda de 0.50
la máquina 
ión (máxim
a biblioteca 
cuito y dé u
s: 
oque combi
conmutación
nal tiene po
rango -3 ≤
e forma que
a. Implemen
umano, incl
cializadas ll
(puntos de 
djunta) de 
a produce un
ón con puls
ón con pul
eurona. 
booleana f(a
l de salida (
e umbral 1. 
o de sinap
a 
b 
c 
a 
c 
b 
 
a 
drid 
(versión 7-10
NDAMENT
 TEMA
o de puerta
uina de cam
ducida: 0.20
0.05€, 0.10€
ivará cuand
0€ en mone
a a cambio d
mo) y el reta
a de celdas p
una descripc
inacional cu
n es conjunt
or entrada un
x ≤ 3. La sa
e z( x ) = -2
nte el siste
luyendo el 
lamadas ne
interconex
excitación 
na salida ‘1
os ‘1’ exce
sos ’1’ por
a,b,c,d,e) d
(axón) en el
Es decir, se
psis de exci
c
b
a
0-14)
TOS DE C
A 3 
as NAND u
mbio de mon
0€, 0.50€, 1€
€, 0.20€, 0.5
o la operaci
das de 0.20
de la moned
ardo contam
presentada e
ión de alto n
uyo compo
to universal:
n número bi
alida del sis
2x. Determin
ema usando
cerebro, es
euronas. Ca
xión, como 
y sinapsis 
’ si el núme
ede el núme
r al menos 
de emisión 
l modelo de 
e produce u
itación a ‘
OMPUTAD
un sistema 
nedas. Posee
€, 2€ y otra
50€. A su ve
ión solicitad
0€), y otra q
da introducid
minación (m
n teoría. 
nivel de la f
ortamiento 
: xxyP 
inario de 3 b
stema es tam
ne el númer
el menor 
stá 
da 
se 
de 
ero 
ero 
el 
de 
la 
na 
1’, 
f
Tema
DORES 
combinacio
erá dos entra
a para indica
ez, el sistem
da no se pue
que indicará
da. Calcule 
mínimo) del
función que 
viene dado
x . 
bits represe
mbién un nú
ero de bits n
número de
a 3 / pág. 1 
onal que 
adas, una 
ar el tipo 
ma tendrá 
eda hacer 
á cuántas 
el coste, 
l circuito 
realiza: 
o por la 
ntado en 
úmero (z) 
necesario 
e puertas 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 3 / pág. 2 
 
excede por al menos en uno el número de sinapsis de inhibición a ‘1’. Minimice 
f(a,b,c,d,e) y obtenga una implementación usando el menor número de puertas lógicas de 
no más de 3 entradas. Calcule el coste, el retardo de propagación (máximo) y el retardo 
contaminación (mínimo) del circuito utilizando los datos de la biblioteca de celdas 
presentada en teoría. 
6. Sea un sistema de seguridad para 2 puertas, tal que para que una de ellas se abra, el 
usuario debe haber insertado una tarjeta válida que identifique a la puerta y tecleado un 
cierto código de acceso. 
El sistema lee la información generada por un lector de tarjetas y por un lector de 
teclado. El sistema generará como salida las señales de apertura de cada una de las 
puertas y de activación de una alarma. Las salidas del lector de tarjetas son: no se ha 
insertado tarjeta, tarjeta válida para puerta 1, tarjeta válida para la puerta 2, tarjeta no 
válida. La salida del lector de teclado es el código introducido codificado con 2 bits. Los 
códigos autorizados para la puerta 1 son “01” y “10” y los códigos autorizados para la 
puerta 2 son “01” y “11”. El código “00” indica que no se ha tecleado nada. 
La alarma deberá sonar si la tarjeta insertada no es válida o si la tarjeta insertada es 
válida, pero el código tecleado no está autorizado para la correspondiente puerta. Una 
puerta se abrirá cuando la tarjeta y el código tecleado asociados a ella sean válidos. En el 
resto de casos, las puertas permanecerán cerradas y la alarma sin activar. 
Implemente el sistema usando el menor número de puertas AND y NAND de no más de 
3 entradas. Calcule el coste, el retardo de propagación (máximo) y el retardo 
contaminación (mínimo) del circuito utilizando los datos de la biblioteca de celdas 
presentada en teoría. 
7. Utilizando el menor número de puertas NAND implemente un sistema combinacional 
que tiene dos entradas de 2 bits cada una, X{0,1,2,3} e Y{1,2}, y una salida, Z, que 
realiza la función: Z = 2×(X + Y - 1)  Y. 
8. Se quiere un diseñar un radar. El sistema recibirá como entrada el ángulo que forma el 
objeto con la horizontal. Los ángulos se miden en sentido antihorario a partir de las 3 
horas con una resolución de 30º. Si un objeto se encuentra en la frontera entre dos 
cuadrantes se considera que pertenece al mayor de los dos. 
La salida del radar estará compuesta por 3 bits (A,B,C): 
 A se activa cuando la entrada está en el 1er o en el 3er cuadrante, no se activa en 
caso contrario. 
 B se activa cuando la entrada está entre 0 y 29º o entre 60º y 119º o entre 210º y 
299º, no se activa en caso contrario. 
 C se activa cuando sólo se activa una de las salidas anteriores y sólo una. 
Se pide: 
a) Obtener la tabla de verdad de A, B, C. 
b) Sintetizar la expresión de conmutación de cada una de las salidas del sistema 
requerido, mediante una red NAND de 2 niveles con el menor número de puertas. 
c) Calcule el coste, el retardo de propagación (máximo) y el retardo contaminación 
(mínimo) del circuito utilizando los datos de la biblioteca de celdas presentada en 
teoría. 
9. Utilizando el mínimo número posible de puertas NAND de 2 entradas, implemente las 
siguientes funciones de conmutación: 
 f(a,b,c,d)=Σm(0,1,6,7,9,13) 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 3 / pág. 3 
 
 g(a,b,c,d)=Σm(0,3,5,6,8,11,13,14) 
 h(a,b,c,d)=Σm(4,5,6,7,9,11,12,14) 
10. Se desea implementar el mecanismo de control y aviso de una presa. El sistema tiene una 
entrada, L, que indica la cantidad de lluvia que está cayendo (ver tabla) y dos entradas 
provenientes de sensores: uno ubicado a mitad de la presa, M, que devolverá ‘1’ cuando 
la presa esté completa al 50% o más y ‘0’ en caso contrario; y otro R, que devolverá ‘1’ 
cuando el 90% de la presa o más esté completa. Se desea implementar un sistema de 
alarma con una salida A codificada (según tabla) que se comporte de la siguiente manera: 
 Siempre que el nivel de la presa esté por debajo de la mitad y la lluvia no sea fuerte 
estaremos en alerta amarilla, y en caso de lluvia fuerte estaremos en el alerta naranja. 
 Siempre que el nivel este por encima del 50% pero por debajo del 90% esteremos en 
alerta naranja si y sólo si la lluvia es moderada o fuerte, en cualquier otro caso 
estaremos en alerta amarilla. 
 Siempre que el nivel esté por encima del 90% y haya lluvia estaremos en el alerta 
roja, si no, estaremos en alerta naranja. 
Además el sistema tiene un tiene una salida C que será igual a ‘1’ cuando las compuertas 
de la presa estén abiertas, estas compuertas se abrirán siempre que estemos en las 
condiciones de la entrada que generan alerta roja, se abrirán también siempre que 
estemos por encima del 50%, con condiciones de alerta naranja y haya lluvia. Además en 
caso de que los sensores de nivel de la presa den señales
inconsistentes se abrirán las 
compuertas y se fijará el nivel de alerta a amarillo. 
Se pide: 
a) Escribir la tabla de verdad que describe el sistema. 
b) Implementar la salida C utilizando el menor número de puertas lógicas de 2 
entradas. 
c) Calcule el coste, el retardo de propagación (máximo) y el retardo contaminación 
(mínimo) del circuito utilizando los datos de la biblioteca de celdas presentada en 
teoría. 
 
Entrada L1L0 Salida A1A0
No llueve 00 Amarilla 01 
Débil 01 Naranja 10 
Moderado 10 Roja 11 
Fuerte 11 
11. En un restaurante de la compañía FAST-FOOD se elaboran distintos platos de comida a 
partir de los componentes: ensalada de lechuga (E), patatas fritas (F), pescado (P) y carne 
(C). Estos componentes pesan 100, 150, 250 y 200 gramos, respectivamente. Las 
comidas se transportan por medio de una banda hasta una báscula. Si el peso indicado en 
la báscula es más de 350 gramos, entonces el cliente deberá pagar 3 euros de suplemento. 
No es posible que lleguen a la báscula ni platos vacíos, ni platos que sólo contengan 
ensalada y patatas, ni platos que contengan pescado y carne. Todas las demás 
combinaciones sí pueden llegar hasta la báscula. 
El sistema tiene 2 salidas: Suplemento (S), que vale 1 cuando debe pagar suplemento, y 
Báscula (B), que indica el peso del plato medido por la báscula medido en múltiplos de 
50 gramos. Por ejemplo, si un plato pesa 300gr la salida Báscula vale 6. Se pide: 
a) Obtenga la tabla de verdad de la salida S, que calcula el suplemento y de la salida 
B, que indica el peso. 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 3 / pág. 4 
 
b) Realice el circuito usando el menor número de inversores y puertas NAND. 
c) Calcule el coste, el retardo de propagación (máximo) y el retardo contaminación 
(mínimo) del circuito utilizando los datos de la biblioteca de celdas presentada en 
teoría. 
12. Se desea diseñar un sistema combinacional para controlar el motor de un reproductor de 
cintas de audio. El circuito dispone de 5 entradas y 3 salidas. 
Las señales de entrada son las siguientes: 
 PL, vale ‘1’ cuando se pulsa el botón de reproducción. 
 RE, vale ‘1’ cuando se pulsa el botón de rebobinado. 
 FF, vale ‘1’ cuando se pulsa el botón de avance rápido. 
 ST, vale ‘1’ cuando se pulsa el botón de parada. 
 M es una señal que proviene de un sensor especial de música que detecta música en 
la actual posición de la cinta. 
Las salidas son: 
 P, si vale ‘1’ la cinta avanza 
 R, si vale ‘1’ se rebobina 
 F, si vale ‘1’ se avanza rápido. 
Sólo puede haber una salida activa y cuando las 3 valen ‘0’, el motor está parado. 
Especificaciones de diseño: 
 Si se pulsa el botón de reproducción, el reproductor reproduce la cinta. 
 Si estando pulsado el botón de reproducción se pulsa el de rebobinado, el 
reproductor de cintas rebobinará si estamos en medio de una canción. Si no, 
reproducirá la cinta 
 Si estando pulsado el botón de reproducción se pulsa el de avance rápido, el 
reproductor de cintas avanzará rápido si estamos en medio de una canción. Si no, 
reproducirá la cinta 
 Si se presiona el botón de avance rápido o el de rebobinado estando el botón de 
reproducción sin apretar, el reproductor rebobinara o avanzara rápido. 
 Si se pulsa el botón de parada, se detiene el reproductor de cintas 
Se pide: 
a) Obtener una implementación simplificada con puertas NOT, AND, OR de 2 
entradas. 
b) Ídem con puertas NAND y AND de 2 entradas. 
c) Calcule en ambos casos el coste, el retardo de propagación (máximo) y el retardo 
contaminación (mínimo) del circuito utilizando los datos de la biblioteca de 
celdas presentada en teoría. 
13. Un operador de avionetas para rutas turísticas desea instalar un climatizador inteligente, 
para lo cual añade a los aeroplanos un sistema de calefacción (C) y un sistema de 
refrigeración (R) y los siguientes sensores: un sensor de temperatura (T) con la 
codificación que muestra la tabla, un altímetro que indica si la altura es superior a 350 
metros (A = ‘1’) y un interruptor que enciende la calefacción (I = ’1’). El operador 
encarga al fabricante las siguientes especificaciones: 
 La calefacción se encenderá automáticamente cuando haya temperaturas inferiores a 
15º y el altímetro sea superior a 350 metros. 
 La refrigeración se encenderá automáticamente cuando haya temperaturas superiores 
a 25º si el avión vuela con una altura inferior a 350 metros. 
 El interruptor de calefacción deshabilita la refrigeración (en su caso) y enciende la 
calefacción si la temperatura es inferior a 25º. 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 3 / pág. 5 
 
Temperatura Menos de 5º De 5º a 15º De 16º a 25º Más de 25º 
T “00” “01” “10” “11” 
 
a) Halle la tabla de verdad que describe el funcionamiento del circuito. 
b) Implemente el sistema utilizando el menor número posible de puertas lógicas. 
c) Calcule el coste, el retardo de propagación (máximo) y el retardo contaminación 
(mínimo) del circuito utilizando los datos de la biblioteca de celdas presentada en 
teoría. 
14. Sea un sistema que controla el riego automático de un parque. El sistema tiene como 
entradas las señales E y D que provienen de un reloj-calendario y la señal L que viene de 
un sensor de lluvia, tales que: 
 E D L 
verano 1 mañana 0 llueve 1 
no verano 0 mediodía 1 no llueve 0 
 tarde 2 
noche 3 
El sistema tiene una única salida, Z, que vale ‘1’ cuando el riego debe activarse y ‘0’ 
cuando debe desactivarse. Dicha salida viene determinada de la siguiente manera: 
 Si es invierno y mediodía, el riego se activa 
 Si es verano, el riego se activa por la mañana, mediodía y noche 
 Si llueve, el riego se desactiva 
Implemente el sistema utilizando el menor número de puertas lógicas de no más de 3 
entradas. Calcule el coste, el retardo de propagación (máximo) y el retardo contaminación 
(mínimo) del circuito utilizando los datos de la biblioteca de celdas presentada en teoría. 
15. Un sistema combinacional que controla una carrera de regatas tiene 4 entradas y 2 
salidas. Las entradas indican las características del barco: 
 B (‘1’=extranjero; ‘0’=nacional) 
 E (‘1’=eslora mayor de 8 metros; ‘0’=eslora menor o igual a 8 metros) 
 M (‘1’=manga mayor de 5 metros; ‘0’=manga menor o igual a 5 metros) 
 S (‘1’=equipamiento superior; ‘0’=equipamiento convencional) 
Las dos salidas indican la categoría en la que participa el barco en función de sus 
características: 
 C (‘1’=clase I; ‘0’=clase II) 
 I (‘1’=instrucciones de tipo A; ‘0’=instrucciones de tipo B) 
Para organizar a los barcos se usan las siguientes condiciones: 
 Los barcos de bandera extranjera y eslora mayor de 8 metros navegan en Clase II 
junto a los de bandera española. Los demás, en Clase I. 
 Para los barcos pertenecientes a Clase II el conjunto de instrucciones depende del 
tipo de equipamiento: los barcos con equipamiento superior usan el conjunto de 
instrucciones A, mientras que los de equipamiento convencional usan el conjunto de 
instrucciones B. 
 Todos los barcos de Clase I usan el conjunto de instrucciones B, salvo que tengan 
una manga mayor de 5 metros o equipamiento superior, en cuyo caso usan el 
conjunto de instrucciones A. 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 3 / pág. 6 
 
Se pide: 
a) Obtenga una especificación del sistema en forma de tabla de verdad. 
b) Obtenga la implementación con puertas de su suma de productos mínima. 
c) Calcule el coste, el retardo de propagación (máximo) y el retardo contaminación 
(mínimo) del circuito utilizando los datos de la biblioteca de celdas presentada en 
teoría. 
16. Obtenga un circuito con el menor número de puertas lógicas equivalente al circuito 
mostrado en la figura, siendo M un bloque combinacional cuya salida vale 1 cuando en 
sus entradas hay más unos que ceros (función mayoría). 
Problemas de examen: 
17. (Febrero 2013) Se desea realizar un circuito combinacional que permita clasificar, según
su forma, las piezas que se sitúan en un receptáculo. 
Para ello, las entradas del sistema están conectadas a una matriz de 4 células 
fotoeléctricas dispuestas como se muestra en la figura. 
 Cuando no hay pieza en el receptáculo, todas las células generan valor ‘0’. 
 Cuando la hay, unas células generan valor ‘0’ y otras ‘1’ según la forma de la pieza 
(véanse algunos ejemplos en la figura). 
El sistema generará un vector de 2 bits indicando si la pieza es cuadrada (00), triangular 
(01), en forma de L (10) o defectuosa (11), es decir, no es una de las anteriores. 
Considérese que todas las piezas encajan en el receptáculo pero que podrán estar rotadas 
90º, 180 ó 270º. 
Se pide: 
a) Indicar la tabla de verdad del sistema. 
b) Diseñarlo utilizando el menor número de puertas NAND e inversores. 
18. (Febrero 2014) Se desea implementar un sistema combinacional que regule el tiempo que 
debe estar en funcionamiento una secadora industrial. La secadora funcionará durante 
más o menos tiempo de acuerdo con la cantidad de ropa introducida y el nivel de 
humedad que tenga. 
A = 0
D = 0
C = 0
B = 0
A B
C D
A = 1
D = 0
C = 1
B = 1
A B
C D
A = 0
D = 1
C = 1
B = 0
A B
C D
A = 1
D = 1
C = 1
B = 1
A B
C D
clasificador F
A
D
C
B 2
A B
C D
M M
M M
A
B
1
A
D
C
D
C
F
Proble
 
E
d
b
S
E
s



S
 
 
 
 
 
 
emas de Fund
El sistema re
de volumen:
baja (0), med
Si, por ejemp
El sistema, d
ecado codif
 Menor o
 Mayor d
 Mayor o
Se pide: 
a) Indic
b) Diseñ
damentos de C
ecibe estos 
 poca ropa 
dia (1), alta 
tiempo( vo
plo, hay poc
tiem
de acuerdo 
ficado en bin
o igual que 3
de 30’ y men
o igual a 60’
car la tabla d
ñarlo utiliza
Computadores 
datos codifi
(0), cantida
(2). El tiem
olumen, hum
ca ropa y su
mpo( 0, 2 ) = 
con el tiem
nario que de
30’, program
nor que 60’
’, programa 
de verdad de
ando el men
(versión 7-10
ficados en b
ad media (1)
mpo de secad
medad ) = 30
u humedad e
30’ + (0+2)
mpo calculad
ebe realizar 
ma corto (0)
, programa 
a largo (2). 
el sistema. 
nor número d
0-14)
binario por 2
), mucha rop
do se calcula
0’ + (volume
es alta, el tie
)×10’ = 30’
do, indicará 
la secadora
); 
normal (1) 
de puertas N
2 entradas q
pa (2); y el 
a con la sigu
en+humedad
mpo de seca
+ 20’ = 50’
por una sa
. Si el tiemp
NAND e inv
Tema
que indican 
tramo de h
uiente funció
d)×10’ 
ado será: 
’ 
alida el prog
po es: 
versores. 
a 3 / pág. 7 
el tramo 
humedad: 
ón: 
grama de 
FCproblemas4.pdf
 
Facultad de Informática 
Universidad Complutense de Madrid 
 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 4 / pág. 1 
FUNDAMENTOS DE COMPUTADORES 
 TEMA 4 
Problemas básicos: 
1. Los computadores disponen de un circuito 
combinacional capaz de realizar las ope-
raciones más elementales AND, OR, Suma 
Aritmética, etc. sobre dos configuraciones 
binarias de n bits. Dicho circuito se denomi-
na Unidad Aritmético Lógica (UAL). 
Diseñe una UAL como la mostrada en la 
figura, capaz de realizar las siguientes 
funciones: A AND B, A OR B, C1 B, A+B 
(suma aritmética), desplazamiento de B un 
bit a la derecha, desplazamiento de B un bit 
a la izquierda. 
El diseño se realizará para n=4 bits. La función que en cada caso realiza la UAL se selec-
ciona mediante las entradas de control s2, s1, s0. 
2. Diseñe un multiplexor de 8 a 1 usando: 
a) 4 multiplexores de 2 a 1 y el mínimo número de puertas. 
b) 1 decodificador 3 a 8 y el menor número de puertas. 
3. Considere la implementación en una ROM de un sumador de números naturales 
codificados en binario puro con 3 bits que codifica el resultado en BCD. Discuta 
razonadamente el tamaño mínimo de la ROM e indique el contenido de la ROM en las 
direcciones (3E)16 y (1D)16. 
4. Usando un sumador y puertas lógicas diseñe un conversor de MyS a C2 de 8 bits. Ídem 
para un conversor de C2 a MyS que tenga una salida adicional de overflow. Generalice el 
diseño para que el tipo de conversión sea seleccionable por una entrada de control. 
Problemas adicionales: 
5. Para la construcción de un teclado de 24 teclas (T0, T1, ... T23) se dispone de 
codificadores de prioridad de 8 entradas. Diseñe el circuito de codificación del teclado 
usando dichos codificadores más las puertas lógicas que se consideren necesarias, 
teniendo en cuenta que el circuito funcionará de la siguiente forma: 
 Si sólo se pulsa la tecla Ti, entonces la salida tomará el valor i. 
 Si se pulsan simultáneamente varias teclas, entonces la salida tomará el valor 
correspondiente al mayor subíndice de las teclas pulsadas. 
6. Implemente un sistema que tiene 6 entradas de datos (x5…x0), 2 entradas de control 
(s1,s0), 4 salidas de datos (z3...z0) y cuyo comportamiento viene descrito de la forma 
siguiente: 
(z3…z0) = (x5…x2) si (s1,s0) = (01) 
 = (x3…x0) si (s1,s0) = (10) 
 = (x4…x1) si (s1,s0) = (11) 
 = (0000) si (s1,s0) = (00) 
n bits n bits
n bits
carry
UAL
s2
s1
s0
A B
F(A,B)
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 4 / pág. 2 
 
7. Diseñe un conversor de código BCD a código Exceso-3 usando: 
a) Un codificador y un descodificador. 
b) Un descodificador y puertas OR. 
c) Multiplexores de 16 a 1. 
d) Multiplexores de 4 a 1 y puertas lógicas. 
e) Una ROM de tamaño mínimo. 
8. Un sistema combinacional tiene una entrada X de 4 bits y una salida Z de 4 bits. Los 
datos, tanto a la entrada como a la salida, son números enteros codificados en C2. El 
sistema tiene otra entrada de control C que determina la función del sistema de acuerdo 
con la siguiente tabla: 
 
C Z 
0 X+1 
1 X+2 
2 X-1 
3 X-2 
 
Diseñe el circuito que tenga la estructura mostrada en la figura y use únicamente un 
sumador binario de 4 bits, multiplexores e inversores. Se valorará que el número y 
tamaño de los multiplexores sea el menor posible. 
9. Se desea implementar un conversor de números de 8 bits en binario puro a números en 
BCD mediante una memoria ROM: 
a) Determine el tamaño mínimo necesario de la memoria, y el esquema de 
implementación. Indicando claramente el significado de las líneas de 
direcciones y salida de la ROM. 
b) Obtenga el contenido de la ROM en las direcciones (41)10 y (2F)16 
10. Dado el circuito de la figura, obtenga la especificación de Z en función de X. Justifique 
la respuesta. 
 
11. Calcule el número de puertas AND, OR y NOT necesarias para diseñar 
implementaciones directas de un: 
a) Decodificador 3 a 8. 
b) Multiplexor 8 a 1. 
c) Codificador de prioridad 16 a 4. 
12. Calcule el número de: 
a) Multiplexores 4 a 1 necesarios para implementar en árbol uno de 256 a 1. 
b) Multiplexores 2 a 1 necesarios para implementar en árbol uno de 16 a 1. 
0
1
2
E
0
1x0
x
1
x
2
2
3
4
5
7
6
1
0
1
2
E
z
0
z
1
z
2
0
1
2
3
4
5
7
6
1
0
1
2
E
0
1x0
x
0
x
1
x
1
x
2
x
2
2
3
4
5
7
6
1
0
1
2
E
z
0
z
0
z
1
z
1
z
2
z
2
0
1
2
3
4
5
7
6
0
1
2
3
4
5
7
6
1
Z 
+ 
X 
C
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 4 / pág. 3 
 
c) Multiplexores 2 a 1 necesarios para implementar uno vectorial de 4 a 1 de 8b. 
d) Decodificadores 1 a 2 necesarios para implementar en árbol uno de 4 a 16. 
e) Decodificadores 2 a 4 necesarios para implementar en árbol uno de 8 a 256. 
13. Diseñe una ROM de 210×16 bits (2 KiB) usando un decodificador 2 a 4 y el número de 
módulos ROM de 28×8 bits (256 B) que estime necesarios. 
14. Diseñe 3 módulos combinacionales que calculen el máximo de 2 números de 8 bits 
considerando, en cada caso, que ambos números están codificados: 
a) En binario puro. 
b) En MyS. 
c) En C2. 
En todos ellos se utilizará un multiplexor vectorial 2 a 1, un restador binario y el menor 
número posible de puertas lógicas. 
15. Diseñe un multiplicador combinacional de números binarios sin signo de 4 bits. El 
multiplicador tiene 2 entradas de 4 bits para los operandos y una salida de 8 bits para el 
resultado. Use únicamente puertas AND de
2 entradas para calcular los productos 
parciales y sumadores completos de 4 bits para sumar en cascada dichos productos. 
16. Diseñe un conversor de códigos BCD y EX3 usando un sumador/restador de 4 bits, un 
multiplexor 2 a 1 y las puertas que estime necesarias. El conversor tendrá una entrada de 
datos de 4 bits, una señal de control para seleccionar si el dato a la entrada debe 
convertirse de BCD a EX3 o de EX3 a BCD, una salida de datos de 4 bits y una salida de 
error para indicar si el código que hay a la entrada no puede convertirse por ser inválido. 
Es decir, esta salida de error deberá activarse cuando habiendo seleccionado una 
conversión BCD a EX3, en la entrada de datos haya, por ejemplo, 1011 (dado que no es 
un código BCD válido), sin embargo no deberá hacerlo si la conversión EX3 a BCD ha 
sido seleccionada (dado que representa a un 8 en EX3). 
17. Diseñe un módulo combinacional que ordene 3 números enteros codificados en binario 
puro con 8 bits. El modulo tendrá 3 entradas de 8 bits para los operandos y 3 salidas de 8 
bits para los resultados (por una de ellas siempre saldrá el mayor de los tres operandos, 
por otra siempre el intermedio y por la última siempre el menor). Utilice el menor 
número posible de comparadores de magnitud, multiplexores vectoriales 2 a 1 de 8 bits y 
puertas lógicas. 
18. Calcule el coste, el retardo de propagación (máximo) y el retardo contaminación 
(mínimo) de un sumador binario de 4 bits utilizando los datos de la biblioteca de celdas 
presentada en teoría. Ídem para un sumador de 8 bits. Obtenga expresiones genéricas de 
coste y retardo para un sumador de n bits. 
 
FCproblemas5.pdf
 
Facultad de Informática 
Universidad Complutense de Madrid 
 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 5 / pág. 1 
 
PROBLEMAS DE FUNDAMENTOS DE COMPUTADORES 
 TEMA 5 
Problemas básicos: 
1. Especifique como máquina de Moore un sistema secuencial cuya salida z se comporta, 
en función del valor su entrada x, de la forma siguiente: 
 Si x = ‘1’, entonces z sigue cíclicamente la siguiente secuencia de 4 valores: 0, 3, 7, 
7. La salida pasa de un valor de la secuencia al siguiente cada vez que el sistema 
recibe un pulso de reloj. 
 Si x = ‘0’, entonces la llegada de un pulso de reloj no altera el valor de la salida. Por 
tanto, z(t+1) = z(t). 
Obtenga una descripción binaria del sistema codificando las salidas en binario puro y 
exprese las funciones de transición de estados y salida en forma de sumas de productos 
mínimas. 
2. Sea un sistema secuencial con una entrada binaria x, una salida binaria z y el siguiente 
comportamiento temporal: 
	 		1 	 3… "0111"
		0 	 	
 
Especifique el sistema como máquina de Mealy, y exprese las funciones de transición de 
estados y salida en forma de sumas de productos mínimas. 
3. Considere el diagrama de estados del sistema secuencial especificado como máquina de 
Mealy mostrado en la figura. Se pide: 
a) Obtener el diagrama de estados equivalente como máquina de Moore. 
b) Completar el cronograma. 
 
4. Sea un sistema secuencial con una entrada x{a,b}, una salida z{s,n} y el siguiente 
comportamiento temporal: 
	 		 	 3… 	 1 " "	 	" "	
		 	 	
 
 
S0
S1
S2
b/n
a/n
a/n
b/n
a/mb/ninicial
entrada
clk
estado
a
S0
salida
s
n
b
estado S0
salida
s
n
m
á
q
u
in
a
d
e 
M
o
o
re
m
á
q
u
in
a
d
e 
M
ea
ly
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 5 / pág. 2 
 
 Se pide: 
a) Completar el cronograma 
b) Expresar las funciones de transición de estados y salida en forma de sumas de 
productos mínimas. 
 
Problemas adicionales: 
5. Un contador reversible módulo p, es un sistema secuencial capaz de contar en sentido 
ascendente o descendente, en función del valor de una entrada de control que 
denominamos "Sentido". Especifique un contador reversible módulo 6 tal que: 
 Si Sentido = ‘0’, entonces cuente en sentido ascendente. 
 Si Sentido = ‘1’, entonces cuente en sentido descendente. 
Exprese las funciones de transición de estados y salida en forma de sumas de productos 
mínimas. 
6. Obtenga el diagrama de estados como máquina de Mealy de un sistema secuencial con 
una entrada x{a,b} y una salida z{m,n}, tal que z(t)=m, si y solo si la secuencia 
formada por x(t-2), x(t-1), x(t) comienza o termina con "aa". 
7. Un sistema secuencial posee una entrada x{0,1,2} y una salida z{0,1}. La salida toma 
el valor ‘1’ si y sólo si la secuencia de entradas contiene un número impar de ceros y un 
número par de unos. Se pide: 
a) Especificar el sistema como una máquina de Mealy usando un diagrama de 
estados. 
b) Realizar una implementación del sistema con un registro de estado y una ROM. 
8. Especifique como máquina de Mealy un sistema secuencial con una entrada x{a,b,c} y 
una salida z{0,1}, de forma que la salida toma el valor ‘1’ si por la entrada se reciben 
secuencialmente un número impar de ‘a’, una ‘c’ y un número par de ‘b’. La salida toma 
valor ‘0’ en cualquier otro caso. Por ejemplo, para la secuencia de entrada 
“aaacbbbbaccbb...”, la salida toma los valores “0000010100000...”. 
9. Especifique como máquina de Mealy un sistema secuencial con una entrada binaria x y 
una salida binaria z. Inicialmente la salida vale ‘0’ y pasa a valer ‘1’ cuando el sistema 
detecta el tercer ‘0’ consecutivo en la entrada. Desde ese momento, la salida sigue 
valiendo ‘1’ hasta que se reciben por la entrada dos ‘1’ consecutivos. Una vez recibido el 
par de ‘1’ el sistema vuelve a su estado inicial. 
x
clk
estado
a
S0
z
s
n
b
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 5 / pág. 3 
 
10. Especifique como máquina de Mealy un sistema secuencial con una entrada binaria y 
una salida binaria, tal que la salida vale ‘1’ siempre que, tomando las entradas en bloques 
de 3 bits consecutivos, el sistema detecta el patrón “111” en uno de dichos bloques. Por 
ejemplo: 
x(t) = 011 111 101 110 111 111 011 
z(t) = 000 001 000 000 001 001 000 
 
11. El funcionamiento de un semáforo está regulado por un sistema secuencial cuyas 
entradas y salidas se muestran en la figura y tiene el comportamiento siguiente: 
 Inicialmente el sistema se encuentra en el estado S0 y continúa en él mientras que no 
se detecte la presencia de un peatón dispuesto a cruzar la calle, es decir, mientras 
peatón valga ‘0’. La salida del sistema en el estado S0 es “100” (en correspondencia 
a las señales Verde, Ámbar y Rojo). Cuando la señal peatón vale ‘1’ el sistema pasa 
al estado S1. 
 En el estado S1 la salida es “010”. Del estado S1 el sistema pasa al estado S3 si la 
señal de parpadeo vale ‘1’, en caso contrario el sistema pasa al estado S2. 
 En el estado S3 la salida es “000”, e independientemente de los valores de las 
señales de entrada el sistema vuelve al estado S1. 
 En S2 la salida del sistema es “001”. El sistema permanece en el estado S2 mientras 
que la señal peatón valga ‘1’. En caso contrario vuelve al estado inicial S0. 
Considerando la especificación anterior: 
a) Especifique el sistema anterior mediante su diagrama de estados. 
b) Obtenga expresiones de conmutación mínimas para las funciones de transición 
de estados y de salida. 
12. Mi perro puede estar contento (C), tranquilo (T), nervioso (N) o asustado (A). Si está 
contento y le doy un hueso lo agradece moviendo el rabo (r). Cuando está tranquilo si le 
doy un hueso (h) se pone contento y lo indica moviendo el rabo; sin embargo si está 
nervioso o asustado se tranquiliza y ladra (l). Si le tocan (t) estando tranquilo o contento 
se pone nervioso y ladra, estando nervioso se asusta y ladra, pero si está asustado muerde 
(m). Modele el comportamiento del animal como una máquina de Mealy. 
13. Realice el diagrama de estados como máquina de Moore del sistema de apertura de una 
puerta de garaje controlada por un mando a distancia. 
El sistema tiene 3 entradas binarias, M, S1 y S2. M vale ‘1’ cuando recibe la orden del 
mando, y ‘0’ en caso contrario. Las entradas
S1 y S2 valen ‘1’ cuando la puerta está, 
respectivamente, completamente cerrada o completamente abierta y valen ‘0’ durante las 
operaciones de apertura o cierre. 
Controlador 
de un semáforo 
Peatón 
Parpadeo 
Verde
Ámbar
Rojo
r 
h 
l 
h/t 
 
PERRO 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 5 / pág. 4 
 
El sistema tiene 2 salidas, F1 y F2. Si F1 vale ‘1’ el motor se pone en marcha, mientras 
que si vale ‘0’ se detiene. Si el motor está en marcha, lo hace en sentido apertura cuando 
F2 vale ‘1’ y en sentido contrario cuando F2 vale ‘0’. 
El sistema de apertura tiene el siguiente comportamiento: 
 Cuando la puerta está cerrada y recibe una orden del mando, el motor se pone en 
marcha abriendo la puerta hasta que la entrada S2 indique que está totalmente 
abierta. 
 Cuando la puerta está abierta y recibe una orden del mando, el motor se pone en 
marcha cerrando la puerta hasta que la entrada S1 indique que está totalmente 
abierta. 
 Si durante la apertura o cierre de la puerta, y antes de que se haya completado la 
operación, se recibe una nueva orden del mando, ésta será ignorada. 
14. En una estación de tren se va a instalar una máquina automática de venta de billetes con 
el siguiente modo de funcionamiento: 
 Sólo existen dos tipos de billetes: sencillo e ida-y-vuelta, cuyos precios son 
respectivamente 1 y 2 euros. El usuario pulsa el botón correspondiente al tipo de 
billete que desea y, a continuación, aparece en un display la cantidad de monedas de 
1 euro necesarias para su adquisición. 
 Esta cantidad va disminuyendo a medida que el usuario introduce monedas de 1 
euro. Cuando se completa el importe, la máquina emite el billete correspondiente. 
 Una vez elegido el tipo de billete no se puede cambiar a otro. Si se introduce una 
moneda antes de seleccionar el tipo de billete, la máquina devuelve la moneda. 
El sistema que implementa este dispositivo tiene 1 entrada y 4 salidas. 
La entrada, X, vale 
 “00” cuando no hay ningún botón pulsado ni se introduce moneda 
 “01” cuando se introduce una moneda de 1 euro 
 “10” cuando se pulsa el botón de billete sencillo 
 “11” cuando se pulsa el botón de billete de ida-y-vuelta. 
Las salidas son las siguientes: 
 IS – Imprime billete sencillo 
 IV – Imprime billete ida-y-vuelta 
 DM – Devuelve moneda de 1 euro 
 P – Cantidad pendiente (codificada en binario) 
Se pide: 
a) Especificar el sistema como una máquina de Mealy. 
b) Especificar el sistema como una máquina de Moore. 
15. Especifique un sistema secuencial que controle los intermitentes de un coche. El vehículo 
dispone de dos bombillas, una izquierda (BI) y otra derecha (BD), que lucen de forma 
intermitente cuando se activan. El sistema se controla a partir de una palanca con tres 
posiciones, izquierda (I), derecha (D) y centro (C) y la llave de encendido (LL). El 
intermitente de cada lado debe activarse cuando el usuario indique dicha dirección con la 
palanca, siempre y cuando se haya accionado la llave de encendido del vehículo. 
Además, el sistema incorporará un botón de emergencia (E), que hará que las luces de los 
lados izquierdo y derecho parpadeen de forma simultánea mientras esté pulsado. El 
sistema de emergencia funcionará incluso si se retira la llave de encendido. 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 5 / pág. 5 
 
16. Obtener el diagrama de estados como máquina de Moore de un sistema secuencial que 
controla el funcionamiento de un coche teledirigido. 
El sistema tiene 2 entradas de 1 bit: izquierdo (I) y derecho (D) que valen ‘1’ cuando se 
presionan los correspondientes pulsadores del mando a distancia. El sistema tiene una 
salida, Z, de 2 bits para indicar al coche el tipo de movimiento que debe hacer: 
 “00” parar 
 “01” girar a la derecha 
 “10” girar a la izquierda 
 “11” avanzar recto. 
Si el coche está parado y se pulsa cualquier botón empieza a moverse: si se presiona I, va 
hacia la izquierda; si se presiona D, va a la derecha y si se presionan ambos pulsadores a 
la vez, avanza recto. 
Si el coche va en una dirección no cambia su movimiento cuando se presiona el pulsador 
correspondiente a esa dirección o no se presiona ningún pulsador. En cambio, cambia el 
movimiento en los siguientes casos: 
 Si el coche va hacia la derecha y se pulsa I, el coche avanzará recto. 
 Si el coche va hacia la izquierda y se pulsa D, el coche avanzará recto. 
 Si el coche avanza recto y se pulsan I o D el coche girará hacia la izquierda o 
derecha respectivamente. 
 El coche se parará independientemente de la dirección que llevara si apretamos I y D 
simultáneamente. 
Problemas de examen: 
17. (Febrero 2012) El diagrama de estados de la figura representa un reconocedor de patrón. 
a) ¿Qué tipo de sistema secuencial es: Mealy o Moore? 
b) ¿Qué patrón reconoce? 
c) Complete el cronograma. 
 
 
18. (Junio 2012) Sea el siguiente sistema secuencial: 
 


 

contrariocasoen
abbóbba=t1,t2,tx
)t(z
0
1
 
a) Dibuje su diagrama de estados. 
S0 S1
S2S3
a/0
b/0
b/0
a/0
b/0
a/1
a/0
b/0
inicial
entrada
clk
estado
b
a
S0
salida
1
0
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 5 / pág. 6 
 
b) Complete el siguiente cronograma: 
 
 
19. (Septiembre 2012) Sea el siguiente sistema secuencial: 
 


 

contrariocasoen
bbbóaaa=ttx
tz
0
t1,2,1
)( 
a) Dibuje su diagrama de estados como máquina Mealy. 
b) Complete el siguiente cronograma: 
 
 
 
x
clk
estado 
a
S0
z
1
0
b
x
clk
estado
a
S0
z
1
0
b
FCproblemas6.pdf
 
Facultad de Informática 
Universidad Complutense de Madrid 
 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 6 / pág. 1 
 
PROBLEMAS DE FUNDAMENTOS DE COMPUTADORES 
 TEMA 6 
 
Problemas básicos: 
1. Los dispositivos USB transmiten los datos en serie utilizando un formato denominado 
non-return-to-zero inverted (NRZI). Se desea diseñar un circuito secuencial con una 
entrada, x, y una salida, z, ambas de 1 bit, que convierta una secuencia binaria en una 
secuencia equivalente en formato NRZI. Lo hará de la siguiente manera: 
 Si x vale ‘1’, la salida conservará su valor anterior. 
 Si x vale ‘0’, la salida cambiará de polaridad, es decir, si valía ‘1’ pasará a ‘0’ y si 
valía ‘0’ pasará a ‘1’. 
Por ejemplo, asumiendo que el valor inicial de la salida es ‘1’, la secuencia de entrada 
“10001110011010...” deberá transformarse en la secuencia “10100001000110...” 
Se pide: 
a) Especificar el sistema como máquina de Mealy. 
b) Implementar el conversor usando biestables D y puertas lógicas. 
c) Encontrar una implementación equivalente como máquina de Moore. 
2. Un sistema secuencial síncrono tiene una entrada, x, y una salida, z, ambas de 1 bit. 
Inicialmente la salida vale ‘0’ y no pasa a valer ‘1’ hasta que no recibe tres ‘0’ 
consecutivos. Desde ese momento, la salida vale 1 durante dos ciclos de reloj con 
independencia del valor que tome la entrada. Después vuelve al estado inicial. 
Implemente el sistema como máquina de Moore usando el menor número de puertas y 
biestables D. Calcule el coste y la frecuencia de reloj máxima a la que podría funcionar el 
circuito utilizando los datos de la biblioteca de celdas presentada en teoría. 
3. Implemente un sistema secuencial que realice el complemento a 2 de números de 
longitud variable recibidos en serie y en orden creciente de pesos (primero el bit menos 
significativo). El sistema tiene una entrada de datos, x, una salida de datos, z, y una 
entrada de control, inicio, que se pone a 1 para indicar el comienzo y el final del número 
a complementar. El comportamiento esperado es el siguiente: 
t 0 1 2 3 4 5 6 7 8 9 10 11 12 
inicio(t) 1 1 0 0 0 0 0 1 0 0 0 0 1 
x(t) - - 0 0 1 0 1 - 0 1 1 1 - 
z(t) 0 0 0 0 1 1 0 0 0 1 0 0 0 
4. Usando el menor número de puertas lógicas y series de biestables D encadenados, diseñe 
como máquina de Mealy un reconocedor de secuencias que responda a las
siguientes 
especificaciones: 
 Tiene una entrada, x de 3 bits, por la que en cada ciclo de reloj llega un dígito 
decimal del conjunto {0,1,...,7} codificado en binario. 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 6 / pág. 2 
 
 La salida binaria, z de 1 bit, toma el valor ‘1’ si y solo si los últimos 4 dígitos 
recibidos forman la secuencia (0,3,4,7). 
Problemas adicionales: 
5. Un circuito secuencial con dos biestables D, dos entradas, x e y, y una salida, z, está 
definido por las siguientes ecuaciones lógicas: 
 ⋅ ⋅ 
 ̅ ⋅ ⋅ 
 ̅ ⋅ 
Se pide: 
a. Dibuje el circuito. 
b. Obtenga la tabla de transición de estados. 
c. Dibuje el diagrama de estados que lo define. 
d. Convierta el diagrama Mealy a un diagrama Moore equivalente. Obtenga la tabla 
de transición de estados y el circuito resultante. 
6. Diseñe un circuito secuencial síncrono que genere la secuencia “00000001” cada vez que 
su entrada, x, valga ‘1’. Una vez que la secuencia comienza, debe completarse con 
independencia del valor que tome la entrada. Si la entrada vale 0, la salida debe 
mantenerse constantemente a ‘1’. 
Se pide: 
a. Especificar el sistema como máquina de Moore. 
b. Diseñe el circuito utilizando biestables D y puertas lógicas. No olvide distribuir 
adecuadamente la señal de reset para que el circuito se inicialice al estado inicial 
(en donde lee el valor de la entrada para determinar si debe comenzar a generar la 
secuencia o debe mantener a ‘1’ la salida). 
7. Usando el menor número de puertas lógicas y series de biestables D encadenados, diseñe 
un circuito con una entrada de 4 bits, x, por la que en cada ciclo de reloj recibe un dígito 
BCD y una salida, z, que puede tomar, codificados en binario, los siguientes valores: 
 0 si {x(t-2), x(t-1), x(t)} forman un número múltiplo de 5. 
 1 si {x(t-2), x(t-1), x(t)} forman un número mayor o igual que 400. 
 2 si se cumplen las dos anteriores condiciones a la vez. 
 3 en cualquier otro caso. 
Para el diseño se utilizarán biestables y puertas lógicas. Calcule el coste y la frecuencia 
de reloj máxima a la que podría funcionar el circuito utilizando los datos de la biblioteca 
de celdas presentada en teoría. 
8. Se desea diseñar un sistema secuencial síncrono con una entrada x{Norte, Sur, Este, 
Oeste} y una salida z{0,1}. La salida z(t) tomará el valor ‘1’ si: 
{ x(t-2), x(t-1), x(t) } = { Norte, Este, Este } o { Sur, Este, Este } 
En todos los demás casos el valor de z(t) será ‘0’. Se pide: 
a) Construir el diagrama de estados del sistema en la forma de una máquina 
Mealy. Explique el significado de cada estado. 
b) Implemente el sistema con el menor número posible de biestables D y puertas 
lógicas. 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 6 / pág. 3 
 
9. Implemente un sistema secuencial que realice la suma de 2 de números de longitud 
variable recibidos en serie y en orden creciente de pesos (primero el bit menos 
significativo). El sistema tiene dos entradas de datos, x e y, una salida de datos, z, y una 
entrada de control, inicio, que se pone a ‘1’ para indicar el comienzo y el final de los 
números sumar. El comportamiento esperado es el siguiente: 
t 0 1 2 3 4 5 6 7 8 9 10 11 12 
inicio(t) 1 1 0 0 0 0 0 1 0 0 0 0 1 
x(t) - - 0 0 1 0 1 - 0 1 1 1 - 
y(t) - - 0 1 1 0 1 - 0 1 1 1 - 
z(t) 0 0 0 1 0 1 0 1 0 0 1 1 1 
10. Diseñe un comparador para números de números binarios de n bits sin signo, A y B, 
según el esquema mostrado en la figura. Los números llegan en serie por las entradas x e 
y, comenzando por el bit menos significativo. El circuito es capaz de analizar diversas 
relaciones de comparación entre A y B, mediante las entradas de control (a, b, c) de 
acuerdo con la tabla. La salida, z, toma el valor ‘1’ si la relación es cierta y ‘0’ en otro 
caso. Use puertas y biestables D. Calcule el coste y la frecuencia de reloj máxima a la 
que podría funcionar el circuito utilizando los datos de la biblioteca de celdas presentada 
en teoría. 
11. Un sistema secuencial tiene una entrada, x, de 2 bits y dos salidas, z y m. La salida z vale 
‘1’ cuando el valor actual de la entrada es igual al valor anterior de la misma. Cuando el 
valor actual y anterior de x no coinciden, la salida m vale ‘1’ si el valor actual de la 
entrada es mayor que el anterior. En el resto de casos z y m valen ‘0’. Implemente el 
sistema como máquina de Mealy usando el menor número de biestables D y puertas 
lógicas. Ídem como máquina de Moore. Calcule en cada caso el coste y la frecuencia de 
reloj máxima a la que podría funcionar el circuito utilizando los datos de la biblioteca de 
celdas presentada en teoría. 
12. Se desea diseñar el sistema de control de una escalera mecánica bidireccional que puede 
estar parada, subiendo o bajando. 
El sistema tiene 2 entradas conectadas a dos 
sensores de presión, P1 y P2, situados en las 
posiciones mostradas en la figura. Cuando se 
activa un sensor, la escalera empieza a moverse en 
sentido al otro sensor y no para hasta que dicho 
sensor se active. No se considera la situación de 
que se activen simultáneamente ambos sensores ya 
que cuando se activa uno, se desactiva 
automáticamente y no vuelve a activarse hasta que 
se ha activado el contrario y viceversa. 
x
y
Ck
a b cClear
z
abc
relación
analizada
000
001
010
011
100
101
A=B
A#B
A>B
A>=B
A<B
A<=B
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 6 / pág. 4 
 
El sistema tiene 2 salidas: encendido, E, (si E vale ‘1’ la escalera se mueve) y sentido, S, 
(si S vale ‘1’ la escalera sube y si vale ‘0’ la escalera baja). 
Diseñe el sistema como máquina de Moore usando el menor número de biestables D y 
puertas lógicas. 
13. Diseñe como máquina de Moore un sistema capaz de detectar los flancos de una señal 
digital que transmite a baja velocidad datos en serie (es decir, el tiempo transcurrido entre 
dos cambios sucesivos de polaridad es bastante superior al periodo del reloj del sistema). 
El sistema tendrá una entrada, x, y dos salidas, up y down. La salida up valdrá 1 durante 
un ciclo de reloj cada vez que detecte una transición de 0 a 1 en la entrada. La salida 
down valdrá 1 durante un ciclo de reloj cada vez que detecte una transición de 1 a 0 en la 
entrada. 
14. Despreciando los retardos, complete el cronograma mostrado en la figura para un latch D 
(biestable D síncrono por nivel en alta) y un flip-flop D (biestable D síncrono por flanco 
de subida). Suponga que el valor inicial de la salida de ambos biestables es ‘0’. 
 
15. Usando un biestable D disparado por flanco y las puertas necesarias, implemente un 
biestable T cuyo comportamiento coincida con el de la tabla siguiente: 
 
T(t) Q(t+1)
0 Q(t) 
1 Q(t) 
16. Usando un biestable D disparado por flanco y las puertas necesarias, implemente un 
biestable JK cuyo comportamiento coincida con el de la tabla siguiente: 
J(t) K(t) Q(t+1)
0 0 Q(t) 
0 1 0 
1 0 1 
1 1 Q(t) 
Problemas de examen: 
17. (Junio 2012) Se desea diseñar un sistema que permita fotografiar las matrículas de 
aquellos coches que circulen con exceso de velocidad por una carretera. 
El sistema tendrá 2 entradas (A y B) conectadas a sensores de presión ubicados debajo 
del pavimento y una salida (F) conectada al disparador de una cámara. En ausencia de 
D
Q
QG
D
Q
Q
D
clk / G
QA
QB
B
A
Proble
 
c
c
n
a
U
tr
c
S
a
b
18. (F
fu
e


S
c
e
S
emas de Fund
coches las en
correspondie
nunca ambas
alternando (e
Un coche ir
ranscurren d
caso deberá 
Se pide: 
a) Especific
b) Impleme
Febrero 201
fuentes (llam
encienden de
 Si el va
encendi
encendi
 Si el val
Siempre que
correspondie
están apagad
Se pide: 
a) Espe
b) Indic
estad
c) Impl
mínim
damentos de C
ntradas vald
ente entrada
s entradas v
es decir, tras
rá a más v
desde la act
ser fotograf
car el sistem
entarlo utiliz
13) Se quier
madas a, b, 
epende de u
alor de S e
das; c y d
das; a y b: a
lor de S es ‘
e cambia el
ente. El sist
das y desde
ecificar el sis
car las tablas
dos del sistem
ementar el 
mo. 
Computadores 
drán ‘0’ y ca
a se activará
valdrán simu
s un pulso e
velocidad de
tivación de 
fiado (véase 
ma como má
zando 2 bies
re diseñar el
c y d) que h
una señal de 
es ‘1’, la se
d: apagadas
apagadas)...
0’, la secuen
l valor de 
tema tiene a
el que salta 
stema media
s de verdad 
ma. 
sistema me
(versión 7-10
ada vez que
á (valdrá ‘1’
ultáneament
en A vendrá 
e la permit
A hasta la 
 la figura).
áquina de M
stables D y e
l sistema qu
hay en un p
control S. 
ecuencia es
s), (b y c: 
ncia es: ad, 
S, se empie
además un 
a la corresp
ante un diag
que especif
ediante biest
0-14)
e un coche p
’ durante un
te ‘1’ y que
siempre un 
tida si el n
activación 
Mealy. 
el menor nú
ue controla e
parque. La s
: ab, bc, cd
encendidas
bc, ad, bc…
eza por el 
estado inic
pondiente se
grama de est
fican las fun
tables D y u
pase por enc
n ciclo de re
e los pulsos 
pulso en B 
número de 
de B es me
úmero de pu
el encendido
ecuencia en
d, ab, bc…
s; a y d: 
… 
primer esta
ial en el qu
ecuencia seg
tados como 
nciones de sa
una memor
Tema
cima de un s
eloj). Supón
en A y en B
y viceversa
ciclos de r
enor que 3, 
uertas lógica
o y apagado
n la que se a
… Es decir
apagadas), 
ado de la s
ue todas las
gún el valor 
máquina de
alida y trans
ria ROM de
a 6 / pág. 5 
sensor la 
gase que 
B se irán 
a). 
reloj que 
en cuyo 
as. 
o de las 4 
apagan y 
r (a y b: 
(c y d: 
ecuencia 
s fuentes 
de S. 
e Moore. 
sición de 
e tamaño 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 6 / pág. 6 
 
19. (Junio 2013) Se quiere diseñar un circuito digital que controle el funcionamiento de una 
máquina expendedora de caramelos. Dicho controlador recibe una señal de entrada S 
procedente de un sensor que toma el valor (00)2 mientras no se introduzca ninguna 
moneda en la máquina, o la moneda introducida no sea de 5 o 10 céntimos. Cuando se 
introduce una moneda de 5 o 10 céntimos la señal S toma los valores (01)2 y (10)2 
respectivamente. Para expender un caramelo el controlador deberá activar la señal de 
salida z. La máquina se comporta de la siguiente manera: 
 Cada caramelo cuesta 15 céntimos. 
 El cliente puede ir introduciendo monedas en el orden que quiera. 
 Cuando el saldo introducido alcanza o supera los 15 céntimos la máquina expende 
un caramelo, quedando almacenado el saldo restante por si el cliente quiere comprar 
otro caramelo. Por ejemplo, si un cliente introduce dos monedas de 10 céntimos 
seguidas, al introducir la segunda moneda la máquina expende un caramelo y deja 
almacenados los 5 céntimos sobrantes por si el cliente quiere seguir comprando. 
 El cliente puede pulsar en cualquier momento un botón de reinicio, la máquina le 
devolverá entonces el saldo actual y quedará a la espera de que algún nuevo cliente 
comience a usar la máquina. 
Se pide: 
a) Especificar el sistema mediante un diagrama de estados como máquina de Moore. 
b) Indicar las tablas de verdad que especifican las funciones de salida y transición de 
estados del sistema. 
c) Implementar el sistema mediante biestables D y una memoria ROM de tamaño 
mínimo. 
20. (Septiembre 2013) Se quiere diseñar un circuito digital para arbitrar el acceso de tres 
dispositivos a un bus, con el interfaz indicado en la figura. El árbitro recibirá una señal de 
petición por cada canal, X = (x2, x1, x0): si xi vale ‘1’ hay petición por el canal i, si vale ‘0’ 
no la hay. El canal 0 es más prioritario que el 1, que a su vez es más prioritario que el 2. 
El árbitro concederá el bus activando la correspondiente señal de grant: G = (g2, g1, g0): 
si gi vale ’1’ se concede el uso del bus al dispositivo conectado al canal i, si vale ‘0’ el 
dispositivo no puede hacer uso del bus. El comportamiento del árbitro debe ser el 
siguiente: 
 Mientras no haya petición por ninguno de los canales el árbitro permanece Inactivo, 
dejando las tres señales de grant a ‘0’. 
 Si estando Inactivo se recibe petición por alguno de los canales (puede haber varias 
peticiones simultáneas), el árbitro debe conceder el uso del bus al canal más 
prioritario, activando su señal de grant. 
 Una vez concedido el bus a un dispositivo, la señal de grant correspondiente debe 
permanecer activa hasta que el dispositivo que está siendo atendido desactive la 
petición (incluso si otro dispositivo más prioritario solicita el uso del bus). Por 
ejemplo, si se ha concedido el bus al dispositivo del canal 1, la señal g1 debe 
permanecer activa hasta que x1 se ponga a ‘0’. Cuando el dispositivo desactiva la 
petición el árbitro pasará a estado Inactivo para iniciar un nuevo ciclo de bus. 
 Se pide: 
a) Especificar el sistema mediante un diagrama de estados como máquina de Moore. 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 6 / pág. 7 
 
b) Indicar las tablas de verdad que especifican las funciones de salida y transición de 
estados del sistema. 
c) Implementar el sistema usando biestables D y puertas. 
21. (Febrero 2014) Se desea diseñar un sistema secuencial para controlar la velocidad de 
circulación en un túnel por el que únicamente pueden circular coches y camiones (ambos 
vehículos de dos ejes). Para ello se instala un sensor de presión que ofrece tres lecturas: 
eje de coche detectado, eje de camión detectado y eje no detectado. 
Para comprobar si un vehículo circula a la velocidad permitida el sistema mide los ciclos 
de reloj que transcurren entre la detección del eje delantero y el trasero aplicando las 
siguientes reglas: 
 En caso de que se haya detectado el eje delantero de un coche, deberá transcurrir al 
menos 1 ciclo de reloj hasta la detección del trasero. 
 En caso de detección de eje delantero de un camión, deberán transcurrir al menos 2 
ciclos de reloj hasta la detección del eje trasero. 
En caso de que no se cumplan los márgenes de tiempo el sistema activará una señal de 
salida multa (M) y volverá al estado inicial. En caso de que la detección del eje trasero no 
corresponda al mismo tipo de vehículo que el delantero activará una señal de error (E) y 
volverá al estado inicial. La figura muestra un ejemplo del comportamiento esperado. 
Se pide: 
a) Especifique el sistema mediante un diagrama de estados como máquina de 
Mealy, definiendo las entradas, salidas y estados. 
b) Implemente el sistema utilizando biestables D y una memoria ROM. 
 
clk
sensor
M
1
0
no
eje
eje
coche
no
eje
no
eje
no
eje
no
eje
eje
coche
eje
coche
eje
coche
detectado
eje delantero
coche 1
detectado
eje trasero
coche 1
detectado
eje delantero
coche 2
detectado
eje trasero
coche 2
ha transcurrido
1 ciclo: no hay multa
no ha transcurrido
1 ciclo: hay multa
FCproblemas7.pdf
 
Facultad de Informática 
Universidad Complutense de Madrid 
 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 7 / pág. 1 
 
PROBLEMAS DE FUNDAMENTOS DE COMPUTADORES 
 TEMA 7 
Problemas básicos: 
1. Utilizando un contador con carga paralela módulo 8 y el menor número de puertas 
lógicas, diseñe un dado electrónico cuyo diagrama de bloques se muestra en la figura 
siguiente: 
El sistema tiene una entrada, J, conectada a un pulsador. Cuando esta entrada vale ‘1’, el 
contador sigue cíclicamente una secuencia de 6 valores distintos cada uno codificando 
una cara diferente del dado; cuando vale ‘0’, el contador se detiene. La salida del 
contador está conectada a un conversor que, para cada valor de la secuencia, enciende los 
leds que correspondan según la cara del dado representada. Para evitar que el usuario 
pueda averiguar cuál es el valor que está marcando el dado mientras mantiene presionado 
el pulsador, la frecuencia de la señal de reloj debe ser lo suficientemente alta (por 
ejemplo, 1 KHz). Así, como el valor final del dado está determinado por el tiempo que la 
entrada permanece a ‘1’ y este no puede ser controlado con exactitud por un humano, se 
consigue la deseada sensación de
aleatoriedad. 
2. Complete un cronograma, como el mostrado en la figura, para cada uno de los diseños 
basados en contadores mostrados en la misma. 
3. Utilizando un contador con carga en paralelo y el mínimo número de puertas lógicas, 
implemente un sistema secuencial cuya salida repita la secuencia: 0, 1, 4, 4, 7, 7. 
4. Utilizando un contador con carga en paralelo y el menor número de puertas lógicas, 
implemente un sistema secuencial con una entrada binaria que se comporte de acuerdo 
con el diagrama de la figura siguiente: 
S
clk
ld
cl
1
0
1
0
5 6
4
CONT MOD 16
ld
cl
0
4
3
0
4
CONT MOD 16
ld
cl
0
4
3
1
conversor
de código
contadorJ
3 7
0 1 4 5 6
0
7
2 3
1
0
1
 
Proble
 
5. U
p
v
1
6. D
e
re
7. D
ti
s





S
 
emas de Fund
Usando pue
paralela cone
vale 1 duran
1 KHz. 
Diseñar un r
en paralelo, E
ealizar segú
Diseñe un si
iene las 2 e
iguientes es
 En el est
inicial si
‘1’, mom
 Durante 
dependie
del valor
siempre 
 Durante 
En el seg
mueven 
 Durante 
del aclar
 Durante 
Se pide: 
a) Esp
Mo
b) Dis
damentos de C
rtas lógicas
ectados a un
nte un ciclo d
registro de d
E1 y E2. El
ún la siguien
stema secue
entradas y 
specificacion
tado inicial, 
iempre que 
mento en com
su funcion
endo del va
r de la tecl
al estado ini
el lavado en
gundo ciclo
las aspas. 
el aclarado 
ado. 
el secado se
pecifique el
oore. 
señe el sistem
Computadores 
s y contado
n reloj de 60
de cada 60).
desplazamie
l registro ten
nte tabla: 
S
000
00
010
01
100
10
110
11
encial que c
5 salidas m
nes: 
todas las sa
la tecla on/
mienza desd
namiento, e
lor de la te
a ciclo rápi
icial. 
ntra agua du
o se abre el 
entra agua 
e activa la sa
 sistema m
ma usando u
(versión 7-10
ores módulo
0 Hz, diseñ
. Ídem para 
ento bidirec
ndrá una en
 Q(t+
0 Q(t
1 Q(t)
0 Q(t)
1 C1( Q
0 E1(
1 E2(
0 Q(t) and
1 not Q
ontrole el fu
mostradas en
alidas valen 
/off vale ‘0’
de el princip
el aparato p
cla ciclo rá
ido) y seca
urante el pr
cajetín del 
el primer c
alida secar.
mediante un
un contador
0-14)
o 16 con c
ñe un tempor
el caso de q
ccional de 3
ntrada de con
+1) 
t) 
× 2 
 2 
Q(t) ) 
(t) 
(t) 
d E2(t)
Q(t) 
uncionamien
n la figura 
‘0’. Desde 
, y allí se p
pio el ciclo d
pasa por 3 
ápido), aclar
ado (1 ciclo
imer ciclo, 
detergente. 
ciclo. Se mu
 
n diagrama 
r y el mínim
apacitación 
rizador de 1
que la frecue
bits con do
ntrol, S, que
nto de un la
y debe com
cualquier es
ermanece h
de lavado. 
etapas: lav
rado (1 ó 2 
). Después 
y durante el
Todos los 
ueven las as
de estados 
mo número d
Tema
n de cuenta 
1 segundo (
encia de rel
os entradas 
e indica la f
avaplatos. El
mportarse s
stado se va a
hasta que on
vado (2 ó 
ciclos depe
del secado
l mismo se 
ciclos del la
spas todos lo
como máq
de puertas po
a 7 / pág. 2 
y carga 
su salida 
oj sea de 
de datos 
función a 
l sistema 
egún las 
al estado 
n/off vale 
4 ciclos 
endiendo 
o se pasa 
calienta. 
avado se 
os ciclos 
quina de 
osible. 
 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 7 / pág. 3 
 
Problemas adicionales: 
8. Utilizando como bloque básico un contador con carga paralela módulo 16, implemente 
un contador ascendente programable módulo m (siendo 1 < m < 16). El sistema tendrá 
una entrada de capacitación de cuenta, una entrada de 4 bits por la que se indicará el 
valor máximo alcanzable en la cuenta y una salida de saturación que tomará el valor ‘1’ 
cuando el contador alcance dicho valor máximo y adicionalmente su entrada de 
capacitación valga ‘1’. 
9. Diseñe un cronómetro digital que visualiza sobre 5 displays 7-segmentos los minutos, 
segundos y décimas de segundo transcurridos. El cronómetro tiene una entrada 
asíncrona, reset, para puesta a cero y una entrada, stop, que cuando toma el valor ‘0’ 
detiene la cuenta y cuando vale ‘1’ la reanuda. En su diseño use contadores como los 
desarrollados en el ejercicio anterior y conversores de BCD a 7-segmentos. Suponga que 
la frecuencia del reloj del sistema es de 100 Hz. 
10. Se desea implementar un sistema secuencial que controle un rótulo luminoso formado 
por 8 leds. El sistema tendrá una señal de control C. Si C vale ‘0’, los 8 leds 
permanecerán apagados. Si C vale ‘1’, el sistema hará que los leds se iluminen siguiendo 
cíclicamente la secuencia mostrada en la figura, al ritmo fijado por la frecuencia del reloj 
del sistema. 
Se pide: 
a) Implemente el sistema usando un contador y una ROM 16×8. 
b) Amplíe el sistema para que los leds puedan iluminarse siguiendo 4 secuencias 
distintas, seleccionables a través de una entrada de 2 bits. 
c) Amplíe el sistema para que el usuario, a través de un entrada de 2 bits, pueda 
seleccionar la velocidad a la que se sigue la secuencia (normal, ×2, ×4 y ×8). 
11. La luminosidad de un led puede regularse digitalmente mediante la técnica conocida 
como led dimming. Dado que la intensidad suministrada por la salida de un sistema 
digital es fija para encender un led y nula para apagarlo, esta técnica consiste modificar al 
porcentaje de tiempo durante el que sistema digital suministra intensidad al led cuando 
éste debe estar encendido. Así, el sistema digital en lugar de enviar una señal constante 
para encender el led (que daría lugar a un encendido de máxima luminosidad) envía una 
señal periódica de anchura de pulso variable cuyo factor de trabajo (el tiempo que está a 
‘1’) determina la luminosidad del led. Diseñe un circuito con una señal de carga paralela, 
una entrada para el valor de luminosidad (0-100) codificado en binario y una salida por la 
que generar la señal que regula la luminosidad de un led. Para diseñar el circuito 
t
t+1
t+2
t+8
t+9
t+10
...
t+13
t+14
t+15
...
control de
luces
C leds
8
 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 7 / pág. 4 
 
utilícese un contador, un registro y un comparador. La frecuencia de reloj es de 100 Hz 
(frecuencias inferiores hacen que el ojo humano detecte el parpadeo). 
12. Diseñe un circuito secuencial que elimine los rebotes de un pulsador. El circuito 
funcionará a 1 MHz, tendrá una entrada, x, por la que entra la señal con rebotes y una 
salida, z, por la que sale la señal filtrada. Su comportamiento, que se muestra en la figura, 
será el siguiente: 
 En reposo, mientras la entrada valga ‘1’ (es decir, mientras el pulsador no se 
presione), la salida debe valer ‘1’. 
 Tras la detección del primer flanco de bajada (provocado por la presión del 
pulsador), la salida debe permanecer estable a ‘0’ durante 100 ms con independencia 
de los valores que tome la entrada durante ese intervalo. 
 Transcurridos los 100 ms y mientras que la entrada valga ‘0’ (es decir, mientras se 
mantenga el pulsador presionado), la salida debe valer ‘0’. 
 Tras la detección del primer flanco de subida (provocado por la depresión del 
pulsador), la salida debe permanecer estable a ‘1’ durante 100 ms con independencia 
de los valores que tome la entrada durante ese intervalo. 
 Transcurridos los 100 ms, el sistema volverá al estado de reposo. 
Para medir un intervalo de 100 ms utilícese un temporizador formado por un contador y 
un comparador. El sistema constará de una máquina de estados que convenientemente 
lea la entrada, escriba la salida, arranque el temporizador y espere su finalización. 
13. Se desea ampliar la funcionalidad de un banco de 4 registros de 8 bits añadiéndole una 
función de copia. Para ello, dispondrá de una entrada de control adicional, copy. Cuando 
vale ‘0’ el banco de registros debe comportarse normalmente y cuando vale ‘1’ (y we 
también vale ‘1’) debe copiar el contenido del registro indicado por ra en el registro 
indicado por ra ignorando el valor presente en di. 
14. Un watchdog es un temporizador que se utiliza para la detección y recuperación de 
posibles errores de funcionamiento en un computador. Durante un funcionamiento 
normal, el computador reinicia regularmente el watchdog para
evitar que este consuma 
su tiempo. Si el watchdog alcanza el time-out, activa una señal que dispara una acción 
correctiva (típicamente el reinicio del computador). Diseñe un watchdog con time-out 
REG FILE
di
do
8
8
we
clk
ra
2
wa
2
copy
< 100 ms
x
< 100 ms
z
 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 7 / pág. 5 
 
seleccionable (1s, 500ms, 250ms, 125ms) a través de una entrada de 2 bits. Además el 
sistema tendrá una entrada para reiniciar la cuenta y una salida que se activará al alcanzar 
el time-out. El sistema funcionará a 50 KHz y se diseñará usando un contador, un 
comparador y un multiplexor 4 a 1. 
15. Diseñe el sistema para controlar la apertura y cierre de una caja fuerte mostrado en la 
figura. Las entradas, code y newCode, están conectadas a un teclado, la salida trials a un 
display y la salida lock al motor del cerrojo. El sistema debe comportarse según las 
siguientes especificaciones: 
 El cerrojo permanece abierto mientras lock vale ‘0’ y cerrado en caso contrario. 
 Inicialmente la caja fuerte debe estar abierta. 
 Cada vez que el usuario teclee una clave de 4 dígitos, el teclado pondrá en code un 
código de 16 bits (codificando en BCD las 4 teclas pulsadas) y pondrá la señal 
newCode a ‘1’ durante un único ciclo de reloj para que el sistema lea en paralelo la 
clave introducida. 
 El primer código enviado hará que el sistema almacene la clave y cierre el cerrojo. 
 Los sucesivos códigos permitirán abrir el cerrojo siempre y cuando la clave leída 
coincida con la clave almacenada. 
 Se tendrán un máximo de 3 intentos para acertar la clave almacenada. 
 Tras fallar los 3 intentos el cerrojo quedará indefinidamente cerrado. 
 El sistema indicará a través de trials el número de intentos restantes hasta el bloqueo 
del cerrojo. 
Para diseñar el sistema utilícese un registro de 16 bits, un comparador de igualdad de 
16 bits y una máquina de estados. 
16. Una UART (Universal Asynchronous Receiver-Transmitter) es uno de los dispositivos 
de E/S serie más comunes. Consta de un transmisor que serializa los datos paralelos que 
se quieren enviar, un receptor que paraleliza los datos serie que se reciben y un 
controlador que comunica ambos elementos con el computador. Se desea diseñar el 
circuito que efectúa la transmisión serie asíncrona de datos de 8 bits. El circuito tiene las 
entradas y salidas mostradas en la figura y debe comportarse según las siguientes 
especificaciones: 
 En inactividad, la señal Tx debe valer ‘1’. 
 Los datos se transmitirán en una trama de 11 bits que comenzará con un bit de start a 
‘0’, los 8 bits de datos comenzando por el bit menos significativo, un bit de paridad 
impar (el patrón formado por este bit y los 8 bits de datos debe tener siempre un 
número impar de ‘1’) y un bit de stop a ‘1’. 
 El sistema, cada vez que detecte que la señal start vale ‘1’, cargará de data el dato a 
transmitir y comenzará a transmitirlo en serie. 
 La señal ready debe valer ‘0’ mientras que se esté transmitiendo el dato y ‘1’ en caso 
contrario 
La frecuencia de reloj es de 5 MHz y los datos deberán transmitirse a 9600 baudios 
(bits/segundo). Para diseñar el circuito utilícese un registro de desplazamiento de 11 
bits (para la conversión paralelo-serie de los datos), un contador 0-11 (para la cuenta 
controlador de 
caja fuerte
newCode lock
trials
2
code
16
 
Problemas de Fundamentos de Computadores (versión 7-10-14) Tema 7 / pág. 6 
 
del número de bits desplazados), un contador del tamaño que considere oportuno (para 
la cuenta del número de ciclos que deben transcurrir entre un desplazamiento y otro 
calculados como el cociente entre la frecuencia de reloj y la velocidad de transmisión) 
y las puertas lógicas que estime necesarias. 
17. Un buffer LIFO (last in, first out) es un almacén de datos no accesibles por dirección sino 
legibles en orden inverso al orden en que se escribieron (es decir, el primer dato que se 
puede leer es siempre el último que se ha escrito). Usando un contador 
ascendente/descendente, 2 RAM 256×8 bits y otros componentes que estime necesarios, 
diseñe una LIFO capaz de almacenar un máximo de 256 datos de 16 bits. El sistema 
tendrá una entrada/salida de datos, d, de 16 bits, 3 señales de control, ce, we y oe, para 
capacitar el módulo, la escritura y la lectura respectivamente y 2 señales de estado, full y 
empty, para indicar cuándo la LIFO está llena y cuándo está vacía. 
18. Usando un sumador/restador y un registro, diseñe un acumulador genérico que opere con 
números enteros con signo codificados en C2 con n bits. El sistema acepta un operando, 
y lo suma/resta al resultado calculado en con anterioridad. El sistema tiene un puerto de 
datos de entrada, x, un puerto de datos de salida, z, dos entradas de control, ld y op, y una 
salida de estado, ov. Si ld vale ‘1’, el dato en la entrada x debe acumularse; si vale ‘0’, 
no. Si la entrada op vale ‘0’, el dato debe sumarse; si vale ‘1’, restarse. La salida ov debe 
activarse cuando el resultado no sea representable en C2 con n bits. 
19. Usando multiplicadores, sumadores, multiplexores y registros, diseñe 3 rutas de datos sin 
controlador tal que cada una pueda realizar una de las siguientes expresiones, donde x, a 
y b son puertos de entrada de n bits y z es un puerto de salida de n bits: 
a) z 	∑ a ∙ x ≡ 1 a ∙ x 
b) z 	∑ a ∙ x b 	≡ 1 a ∙ x b 
c) z 	∑ x x b 	≡ 1 x x b 
Rediseñe las rutas de datos b) y c) de modo que utilicen un único sumador. Discuta por 
qué estos diseños con solo un sumador requieren tener controlador y no pueden aceptar 
datos nuevos y generar resultados en todos los ciclos. 
20. Diseñar un circuito secuencial capaz de calcular iterativamente el elemento i-ésimo de la 
serie de Fibonacci. El circuito tendrá una entrada, i de 5 bits, para indicar el elemento de 
la serie; una entrada, inicio, para indicar el comienzo del cálculo; una salida, fin, para 
indicar el fin del cálculo y una salida z de 20 bits, para indicar el valor del elemento de la 
serie indicado. La serie de Fibonacci se define recursivamente de la siguiente manera: 
fib(0)=0, fib(1)=1, fib(i)=fib(i-1) + fib(i-2). El sistema deberá diseñarse usando circuito 
realizará el cálculo iterativamente. Tendrá 1 sumador de 20 bits, 2 registros para 
almacenar los 2 últimos elementos de la serie y un contador que llevará la cuenta del 
índice. 
transmisor
serie
start
ready
data
8
Tx
LIFO
d
16
empty
we
full
oe
ce
 
Proble
 
21. D
c
E
p
s
fi
Prob
22. (F
q
d
p
tr
E
d
tr
fu




S
in
emas de Fund
Diseñar un s
codificados e
begin 
Div
Div
Co
 wh
 end
 C :
 R :
end; 
El sistema te
para indicar 
alidas, c y 
figura y utili
blemas de
Febrero 201
que dispone 
diseñar un si
permita que 
ramo superi
El sistema ti
durante un c
rayectos cir
función del v
 Cuando 
 Cuando 
 Cuando 
 Cuando 
Suponiendo 
ndicados en
a) Espe
damentos de C
sistema secu
en binario u
videndo := D
visor := Dvs
ociente := 0;
hile Dividen
Dividendo
Cociente 
d while; 
:= Cociente
:= Dividend
endrá dos en
el comienzo
r de 8 bits,
izará 2 regis
e examen:
12) Sea un t
de un senso
istema que, 
el tren rea
ior, dos vuel
ene como e
ciclo de rel
culares supe
valor en las 
C1=’0’ y C
C1=’1’ y C
C1=’0’ y C
C1=’1’ y C
que el tre
n la figura, s
ecificar el sis
Computadores 
uencial que 
utilizando el 
Dvnd; 
sr; 
 
ndo >= Divis
o := Dividen
:= Cociente
; 
do; 
ntradas, dvn
o del cálcul
 para result
stros, 1 cont
: 
tren eléctric
or de presen
leyendo el 
alice indefin
ltas por el tr
ntrada P y c
oj) cuando 
erior e infer
salidas C1 y
C2=’0’, el tre
C2=’1’, el tre
C2=’1’, el tre
C2=’0’, el tre
en se encue
e pide: 
stema como
(versión 7-10
implemente
 algoritmo d
sor do begin
ndo - Diviso
e + 1; 
d y dvsr de 
lo; una salid
tados. El si
ntador y 1 re
co de juguet
ncia (P) y do
valor del se
nidamente l
ramo inferio
como salida
el tren pas
rior. Por su 
y C2: 
en realiza re
en realiza re
en pasa del 
en
pasa del 
entra en la 
o máquina d
0-14)
e la división
de restas suc
n 
or; 
8 bits, para
da, fin, para 
stema tendr
estador. 
e con un tra
os cambios 
ensor y cont
la siguiente
or, una vuelt
as C1 y C2. 
sa por el tra
parte el tren
ecorridos cir
ecorridos cir
tramo super
tramo infer
posición i
de Moore 
D
n entera de 2
cesivas sigu
operandos;
indicar el f
rá los puert
azado de vía
de agujas (
trolando los
secuencia:
ta en ocho. 
La entrada P
amo de vía 
n seguirá un
rculares por
rculares por
rior al inferi
ior al superi
nicial y cir
Divisor
Dvnd
C
8
8
Tema
2 números n
uiente: 
; una entrad
fin del cálcu
tos mostrad
as en forma
C1 y C2). 
s cambios de
 dos vuelta
P se activa 
a que compa
na trayectori
r el tramo su
r el tramo in
ior. 
ior. 
rcula en el
r
Dvsr
8
R
8
a 7 / pág. 7 
naturales 
da, inicio, 
ulo y dos 
dos en la 
a de ocho 
Se desea 
e agujas, 
as por el 
(vale ‘1’ 
arten los 
ia que es 
uperior. 
nferior. 
l sentido 
inicio
fin
 
Proble
 
23. (
s
h
p
ig
U
e
c
“
te
“
m
“
S
emas de Fund
b) Impl
lógic
Septiembre 
istema tiene
haya ruido y
parte, la salid
gual a ‘1’) o
Una vez enc
estímulos, n
chupete (hay
“dormida”. 
ener el chu
“asustada”. 
mantenga. C
“tranquila” e
Se pide: 
a) Esp
b) Imp
lógi
damentos de C
ementarlo u
cas. 
2012) Se d
e 2 entradas
y la entrada C
da G habilit
o bien algun
cendida, la 
i habla, ni l
ya o no ruid
En el estad
upete puesto
En el est
Cuando el r
en función d
pecificar el s
plementarlo 
icas. 
Computadores 
utilizando u
desea diseña
s y 2 salidas
C lo hará cu
ta un genera
nas palabras 
muñeca se
llora. Si se h
do), dejará d
do “dormida
o, se escuch
tado “asust
ruido desapa
de si tiene o
sistema com
utilizando 
(versión 7-10
un contador 
ar el sistema
s, todas ella
uando haya u
ador de soni
(si L es igu
e encontrará
hace ruido, 
de hablar (s
a” no hace 
he un ruido
tada” perm
arezca deja
o no el chup
mo máquina 
un contado
0-14)
módulo-8
a de control
as binarias. L
un chupete 
idos que rep
ual a ‘0’). 
á en estado
sigue “tran
i lo estuvier
nada y per
o. En ese c
manecerá llo
ará de llorar
pete puesto.
de Mealy. 
or mod-4 y
y el menor 
l de una mu
La entrada R
en la boca d
produce o bi
o “tranquila
nquila” y hab
ra haciendo
rmanecerá e
caso llorará 
orando mie
r y pasará a
y el menor 
Tema
r número de
uñeca intera
R valdrá ‘1
de la muñec
ien un llanto
a” donde, si
abla. Si se le
o) y pasará a
en él hasta 
y pasará a
entras el r
a estar “dor
número de
a 7 / pág. 8 
e puertas 
activa. El 
’ cuando 
a. Por su 
o (si L es 
i no hay 
e pone el 
al estado 
que, sin 
al estado 
ruido se 
rmida” o 
e puertas 
FC_2_2_Problemas_V2.pdf
PROBLEMAS DE FUNDAMENTOS DE COMPUTADORES (HOJA 2.2) 
PROGRAMACIÓN EN ENSAMBLADOR 
	
1. Indica cuál es el resultado de ejecutar las siguientes instrucciones, dando el contenido final de los registros y 
posiciones de memoria para cada instrucción. Se supone que para cada instrucción a ejecutar el contenido de los 
registros y posiciones de memoria es el siguiente: 
 
 
Registros 
r0	 0000	0016h	
r1	 0000	0054h	
r2	 FFFF	FFFFh	
r3	 0000	0000h	
r4	 0000	0004h	
 
Memoria 
00h	 0339	3826h	
04h	 EA00	63AFh	
08h	 17FA	8912h	
0Ch	 BC98	3304h	
10h	 7845	F34Ah	
14h	 534B	4AAAh	
Las instrucciones a ejecutar son: 
1. add		r3,	r0,	r1	
2. add		r2,	r2,	#1	
3. sub		r4,	r1,	r0	
4. sub		r4,	r0,	r1	
5. mul		r4,	r0,	r1	
6. or			r3,	r1,	r0	
7. mov		r4,	#0	
8. lsr		r2,	r0,	r4	
9. ldr		r0,	[r4]	
10. ldr		r0,	[r4,#-4]	
11. str		r2,	[r4,r3]	
12. str		r2,	[r0]	
2. Codifica en ensamblador la siguiente condición IF-THEN: 
if	(x	>=	y)	{	
	 x	=	x+2;	
	 y	=	y-2;	
}	
	
3. Codifica en ensamblador la siguiente condición IF-THEN-ELSE: 
if	(x	>=	y)	{	
	 x	=	x+2;	
	 y	=	y+2;	
}	
else	{	
	 x	=	x-2;	
	 y	=	y-2;	
} 
4. Codifica en ensamblador el siguiente bucle REPEAT-UNTIL: 
a	=	81;	
b	=	18;	
do	{	
	 a	=	a-b;	
}	while	(a	>	0);	
 
5. Codifica en ensamblador el siguiente bucle WHILE-DO: 
n	=	5;	
fant	=	1;	
f	=	1;	
i	=	2;	
while	(i	<=	n)	{	
	 faux	=	f;	
	 f	=	f	+	fant;	
	 fant	=	faux;	
	 i	=	i+1;	
}	
 
6. Codifica en ensamblador el siguiente bucle FOR: 
for	(i=2;	i<=n;	i++)	{	
	 f=f+f;	
}	
 
7. El siguiente programa calcula el máximo común divisor de dos números a y b según el algoritmo de restas de 
Euclides. Traducirlo a ensamblador del ARM: 
 
int	a=5,	b=15,	mcd;	
	
While	(a≠b){	
	 if	(a>b)	
	 	 a=a-b;	
	 else	
	 	 b=b-a;	
}	
mcd=a;	
 
8. Traduce la siguiente sentencia en C a ensamblador, donde f, g y h son enteros contenidos en memoria y B es un 
vector de 10 componentes: f=g+h+B[4]. 
 
9. Tenemos un vector de 10 componentes almacenado en la posición de memoria etiquetada como V. Diseña un 
programa en ensamblador que sume uno a cada una de sus componentes. 
 
10. Tenemos un vector de 6 componentes almacenado en la posición de memoria etiquetada como V. Diseña un 
programa en ensamblador que cuente el número de valores mayores que 0 que contiene. 
 
11. Implementar un programa en ensamblador que calcule la sucesión de Fibonacci y la almacene en un vector V de 
longitud arbitraria N. Esta sucesión infinita de números naturales queda definida como V(0)=0,	V(1)=1,	
V(n)=V(n-1)+V(n-2). Se proporciona como ayuda el siguiente código de alto nivel: 
 
Nota: definir una constante N que almacene el número de elementos del vector V. 
	
for	i	from	0	to	N-2	do:	
	 V[i+2]	=	V[i]	+	V[i+1]	
end	for	
 
12. Dado un vector A de 12 componentes se desea generar otro vector B, tal que B sólo contiene las componentes de A 
que son números pares mayores que cero. Ejemplo: 
 
A	=	(0,1,2,7,-8,4,5,12,11,-2,6,3)	à	B	=	(2,4,12,6).		
 
Escriba un programa en lenguaje de alto nivel que implemente el procesamiento descrito y calcule el número de 
componentes del vector B. Traduzca el programa al lenguaje ensamblador del ARM. 
 
13. Dados dos vectores A y B de 10 componentes cada uno se desea construir otro vector C tal que: 
 
C(i)	=	|A(i)	+	B(9-i)|,		i	=	0,...,9.	
 
Escriba un programa en lenguaje de alto nivel que construya el vector C. Traduzca el programa al lenguaje 
ensamblador del ARM. 
 
 
14. Traduce el siguiente programa escrito en un lenguaje de alto nivel a lenguaje ensamblador. La órden swap(a,	
b) intercambia los valores de las variables a y b. 
 
int	a=13,	b=16;	
	
While	(a>10){	
	 a=a-1;	
	 b=b+2;	
}	
if	(a<b)		
	 swap	(a,	b);	
else	
	 b=	a-1;	
 
 
15. Escribe un programa para el ensamblador del ARM que llame a una subrutina, swap(int	*a,	int	*b), 
encargada de intercambiar el contenido de dos posiciones de memoria. La subrutina recibirá como parámetros de 
entrada las posiciones de memoria correspondiente a a y b y deberá preservar el contenido de todos los registros 
que se empleen para realizar la operación. 
 
Cuestión: ¿Qué registros debemos utilizar dentro de la función para evitar tener que salvar y restaurar registros 
durante el proceso? 
 
 
16. Escribe un programa para el ensamblador del ARM que cuente el número de 0’s de un vector de longitud 
arbitraria. Emplea para ello una subrutina llamada cuenta0s que reciba como parámetros de entrada toda la 
información necesaria para llevar a cabo la tarea. 
 
 
17. Implementar el algoritmo de ordenación de la burbuja o bubble sort en ensamblador. Este sencillo algoritmo 
ordena los elementos de un vector de menor a mayor por medio de un procedimiento muy sencillo: recorre 
repetidas veces el vector, intercambiado posiciones sucesivas si V(i)>V(i+1), hasta que no se realiza ningún 
cambio. Se proporciona como ayuda el siguiente código de alto nivel: 
 
Nota: definir una constante N que almacene el número de elementos del vector V. 
 
do	
	 swapped=0	
	 for	i	from	0	to	N-2	do:	
	 	 if	V[i]	>	V[i+1]	then	
	 	 	 swap(	V[i],	V[i+1]	)	
	 	 	 swapped	=	true	
	 	 end	if	
	 end	for	
while	swapped	
 
 
18. Escriba un programa en lenguaje de alto nivel que llame a una función fact que calcule el factorial de un 
número n usando un bucle. Traduzca el programa al lenguaje ensamblador del ARM.
19. Escriba un programa en lenguaje de alto nivel que calcule el factorial de un número n usando recursividad, 
sabiendo que fact(n)=n*fact(n-1). Traduzca el programa al lenguaje ensamblador del ARM. 
 
 
20. Ejercicio 1 (3 puntos). Supongamos que definimos que un número natural es “bonito” si es menor que cien mil y 
además su valor puede obtenerse como una suma de números naturales de la forma 1+2+3+4+5+… 
Se pide: 
a) (1,5 puntos) Escribir un programa en lenguaje ensamblador del ARM tal que dado un número natural N 
decida si es o no bonito. El programa escribirá en la variable B un 1 si el número es bonito y un 0 en caso 
contrario. 
b) (1,5 puntos) Convertir el código anterior en una subrutina que reciba como entrada un número natural N y 
devuelva como salida un 1 si el número N es bonito y un 0 si no lo es. Escribir un programa en lenguaje 
ensamblador del ARM que llame a la subrutina, y tal que dado un vector A de M números naturales sea 
capaz de hallar cuántos números bonitos hay en el vector. El programa debe almacenar la cantidad de 
números bonitos hallada en la variable “cuenta_bonitos”. 
Nota: Se debe respetar el convenio del ARM visto en clase para llamadas a subrutinas. Además, en ambos 
apartados se deben incluir las directivas para reservar memoria y declarar las secciones (.data, .bss y .text) 
correspondientes. 
 
 
21. Responde a las cuestiones suponiendo que el vector V está almacenado a partir de la dirección de memoria 
0x0C000000, que el código se encuentra a continuación de los datos y que las pseudo-instrucciones ocupan el 
mismo espacio que las instrucciones. 
 
# Codigo 1 
.global start 
 
.data 
V: .word 12,21,13,14,5,9 
N: .word 6 
 
.bss 
CuentaTotal: .space 4 
 
.text 
start: ldr R0,=V 
 ldr R2,=N 
 ldr R1,[R2] 
 mov R2,#0 
 mov R3,#0 
bucle: cmp R2,R1 
 beq fin_bucle 
 ldr R4,[R0] 
 and R4,R4,#1 
 add R3,R3,R4 
 add R2,R2,#1 
 add R0,R0,#4 
 b bucle 
fin_bucle: ldr R1,=CuentaTotal 
str R3, [R1] 
b . 
 
.end 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
#Código 2 
.global start 
 
.data 
V: .word 12,21,13,14,5,9 
N: .word 6 
 
.bss 
CuentaTotal: .space 4 
 
.text 
start: mov sp,#0x0C200000 
ldr R0,=V 
ldr R2,=N 
ldr R1,[R2] 
bl Cuenta 
ldr R2,=CuentaTotal 
str R0,[R2] 
b . 
 
Cuenta: PRÓLOGO_1 
mov R4,#0 
mov R5,#0 
mov R6,R0 
mov R7,R1 
bucle: cmp R4,R7 
beq fin_bucle 
ldr R0, [R6] 
bl Comprobar 
add R5,R5,R0 
add R4,R4,#1 
add R6,R6,#4 
b bucle 
fin_bucle: mov R0,R5 
EPÍLOGO_1 
mov pc,lr 
 
Comprobar: PRÓLOGO_2 
mov R4,#1 
and R0,R0,R4 
EPÍLOGO_2 
mov pc,lr 
 
.end 
 
 
a) ¿En qué dirección de memoria del código 1 está almacenada la variable N? ¿Y la primera instrucción del 
bucle para el código 1? Razona las respuestas. 
b) ¿Cuál es el contenido final de la variable de memoria CuentaTotal en el código 1? ¿Y de los registros R0, 
R1 y R2? Razona la respuesta. 
c) Supongamos que queremos estructurar el código con subrutinas, y lo rescribimos en código 2. Completa 
el prólogo y epílogo de cada una de las dos subrutinas, explicando por qué incluyes cada instrucción. 
 
22. Dado un vector V de N componentes se dice que es Melchoriforme si posee al menos un elemento Rubio. Un 
elemento V[i] es Rubio si satisface la siguiente expresión: 
 
Se pide: 
a) Una subrutina SumaVector( V, N ) que sume los N elementos del vector V, respetando el convenio de 
llamadas a subrutinas visto en clase. 
b) Un programa que dado un vector V y su dimensión N decida si es Melchoriforme, utilizando la subrutina 
SumaVector. 
 
23. Un vector V de N números naturales es noeliano si es una secuencia monótona creciente y sus elementos suman 
en total 45. Por ejemplo: 0-1-2-3-4-5-6-7-8-9 es noeliano porque 0≤1≤2≤3≤4≤5≤6≤7≤8≤9 y 
1+2+3+4+5+6+7+8+9=45. También: 3-5-5-7-10-15 es noeliano, ya que 3≤5≤5≤7≤10≤15 y 3+5+5+7+10+15=45. 
Se pide: 
a) Escribir una subrutina en ensamblador de ARM Sum45(A, N) que reciba la dirección de comienzo de un 
vector A como primer parámetro, el número N de elementos del vector como segundo parámetro y 
devuelva 1 si su suma es 45 y 0 en otro caso. La subrutina debe programarse de acuerdo con el estándar 
de llamadas a subrutinas que hemos estudiado en clase. 
b) Escribir un programa ARM que, utilizando la subrutina anterior, determine si un vector de entrada es 
noeliano o no. 
 
 
 
FC_2_1_Solucion_V2.pdf
 
Problemas de Fundamentos de Computadores (Hoja 2.1) pág. 1 
 
PROBLEMAS DE FUNDAMENTOS DE COMPUTADORES (HOJA 2.1) 
ISA Y DISEÑO DE CPU 
 
1.- ¿Qué modificaciones hay que realizar en la ruta de datos y en la máquina de estados para 
añadir la instrucción bne (bifurcar si no igual) que se comporta de manera similar a beq? 
Solución: 
En la ruta de datos multiciclo no habrá que añadir nada, sólo habrá cambios en la unidad de 
control. Habrá que añadir nuevos estados: 
 
 
2.- Añadir los elementos y puntos de control necesarios a la ruta de datos y a la máquina de 
estados finitos para implementar la instrucción addiu. 
addiu ri, rj, inmediato // ri = rj + SignExt(inmediato) 
Solución 
No es necesario realizar ningún cambio en la ruta de datos. En cuanto a la FSM habría que 
añadir dos estados: 
 
 
3.- Deseamos añadir la instrucción j a la ruta de datos. Añadir los elementos y puntos de 
control necesarios para realizar esta instrucción. Mostrar los añadidos a la máquina de 
ALUout¬ A	funct B
BR(	rd	)	¬ ALUout
A		- B
IR	¬Memoria(	PC	)
PC	¬ PC	+	4
A	¬ BR(	rs )
B	¬ BR(	rt )
ALUout	¬ A	+	SignExt(	inmed	)
MDR	¬Memoria(	ALUout )
Memoria(	ALUout	)	¬ BBR(	rt	)	¬MDR
op =	‘lw’
0
1
2
3
4
57
8
9
PC	¬ PC	+	4·SignExt(	inmed	)
10
Zero	=	1
Zero	=	0
ALUout	¬ A	+	SignExt(	inmed	)
6
A		- B
Zero	=	1
Zero	=	0
11
ALUout¬ A	+	SignExt(inmediato)
11
op =	‘addiu’
BR(rt)	¬ ALUout
12
0
 
Problemas de Fundamentos de Computadores (Hoja 2.1) pág. 2 
 
estados finitos que se implementó en clase para realizar esta operación. 
j dirección // PC=4*dirección, los 4 bits más significativos son los del PC+4 
El código de operación de la instrucción j es 000001. 
Solución: 
 
 
M
em
or
ia
ADDR
DR
DW
MemRead
MemWrite
0
1
M
U
X
IorD
Ba
nc
o	
de
re
gi
st
ro
s
busA
busB
RA
RB
RW
busW
RegWrite
AL
U
Zero
Ex
te
ns
ió
n	
de
	si
gn
o
<<
2
PC
A
B
1
0
3
2
0
1
M
U
X
M
U
X
AL
U
ou
t
IR
M
DR
RegDst
0
1
M
U
X
0
1
M
U
X
Instrucción	[25-21]
Instrucción	[20-16]
Instrucción	[15-11]
Instruc.	[15-0]
4
PCWrite IRWrite ALUSrcA
ALUSrcB
MemtoReg
AWrite
BWrite
OutWrite
MDRWrite
Control	
de	ALU
ALUop
Instrucción	[25-0] 28
<<
2
(PC+4)	[31-28] 4
32
JUMP
1
0
ALUout¬ A	funct B
BR(	rd	)	¬ ALUout
A		- B
IR	¬Memoria(	PC	)
PC	¬ PC	+	4
A	¬ BR(	rs )
B	¬ BR(	rt )
ALUout	¬ A	+	SignExt(	inmed	)
MDR	¬Memoria(	ALUout )
Memoria(	ALUout	)	¬ BBR(	rt	)	¬MDR
op =	‘lw’
0
1
2
3
4
57
8
9
PC	¬ PC	+	4·SignExt(	inmed	)
10
Zero	=	1
Zero	=	0
ALUout	¬ A	+	SignExt(	inmed	)
6
PC	¬ 4	*	Inst[25-0]
11
op =	‘j’
 
Problemas de Fundamentos de Computadores (Hoja 2.1) pág. 3 
 
 
 
4.- Deseamos añadir la instrucción jal a la ruta de datos multiciclo. Añadir los elementos y 
puntos de control necesarios para realizar esta instrucción. Mostrar los añadidos a la 
máquina de estados finitos. 
jal dirección // ($31= PC+4; PC=4*dir., los 4 bits más significativos son los del PC+4) 
El código de operación de la instrucción jal es 0000011. 
Solución: 
 
M
em
or
ia
ADDR
DR
DW
MemRead
MemWrite
0
1
M
U
X
IorD
Ba
nc
o	
de
re
gi
st
ro
s
busA
busB
RA
RB
RW
busW
RegWrite
AL
U
Zero
Ex
te
ns
ió
n	
de
	si
gn
o
<<
2
PC
A
B
1
0
3
2
0
1
M
U
X
M
U
X
AL
U
ou
t
IR
M
DR
Instrucción	[25-21]
Instrucción	[20-16]
Instrucción	[15-11]
Instruc.	[15-0]
4
PCWrite IRWrite ALUSrcA
ALUSrcB
AWrite
BWrite
OutWrite
MDRWrite
Control	
de	ALU
ALUop
Instrucción	[25-0] 28
<<
2
(PC+4)	[31-28] 4
32
JUMP
1
0
MemtoReg
RegDst
2
11111
2
0
1
2
0
2
1
 
Problemas de Fundamentos de Computadores (Hoja 2.1)
pág. 4 
 
 
 
 
5.- Se está considerando la ampliación del repertorio MIPS con la instrucción addm Rt, Rs, 
despl. que suma el contenido del registro Rt con el contenido de la posición de memoria 
BR[Rs] + SignExt(despl) y deposita el resultado en Rt. Modifica la ruta de datos y la FSM de 
control para incluir esta nueva instrucción. 
 
 
 
 
Problemas de Fundamentos de Computadores (Hoja 2.1) pág. 5 
 
Solución 
 
 
 
6.- Se desea añadir al procesador multiciclo la instrucción MOVZ, de tipo R: 
movz rd, rs, rt # si (BR[rt]==0) entonces BR[rd]ßBR[rs] 
Se pide: 
a) (1 punto) Completar la ruta de datos de la figura con los elementos que faltan para que 
se puedan ejecutar las instrucciones del procesador MIPS estudiadas en clase, 
incluyendo además los cambios que tendrían que realizarse para poder ejecutar esta 
instrucción. 
 
 
 
 
 
 
 
Solución 
 
Problemas de Fundamentos de Computadores (Hoja 2.1) pág. 6 
 
Las operaciones a realizar son: 
1. IR ß Mem[PC]; PC ß PC+4 
2. A ß BR[rs]; B ß BR[rt] 
3. 0-B (zero?) # AluSrcA 3 entradas 
4. si zero=1, BR[rd] ß A # MemtoReg 3 entradas 
Se amplían entonces los multiplexores ALUSrcA y MemtoReg con una tercera entrada. 
 
 
b) (1 punto) Añadir los estados necesarios a la máquina de estados (ver figura siguiente) 
para poder implementar el control de esta instrucción. 
Solución 
 
c) Indicar los valores que van tomando todos los registros implicados en la ejecución de la 
instrucción MOVZ R1, R2, R3. El código de operación de la función MOVZ es 000000 y 
el valor de los campos SHAMT y FUNCT son 00000 y 100110, respectivamente. El 
estado actual de la máquina es: 
• R1=0x00000017 
 
Problemas de Fundamentos de Computadores (Hoja 2.1) pág. 7 
 
• R2=0x00110011 
• R3=0x00000000 
• PC=0x00003400 
 
Tras el estado 0: 
• PC=0x00003404 
• IR=0x00430826 (000000|00010|00011|00001|00000|100110) 
Tras el estado 1: 
• A=0x00110011 
• B=0x00000000 
Tras el estado 11: 
• ALUOut=0x00000000 
Tras el estado 12: 
• R1=0x00110011 
 
7.- Se desea añadir al procesador multiciclo la instrucción JALR Rd, Rs, con el formato tipo R 
pero código de operación 001001: 
JALR Rd, Rs # Temp <- BR[Rs], BR[Rd] <- PC+8 , PC <- Temp 
Nótese que Temp no es un registro físico, sino que se introduce en la descripción para 
aclarar qué ocurre en el caso de que Rs=Rd: en PC se escribe el valor antiguo de Rs, antes de 
que este mismo registro se actualice con el valor PC+8. 
 
a) Indica todos los cambios que tendrían que realizarse a la ruta de datos para poder ejecutar 
esta instrucción. 
Solución: 
Hay dos posibles soluciones, A y B. 
A. Añadiendo un nuevo mux para seleccionar lo que se va a escribir en PC, con su señal de 
control 
5. IR ß Mem[PC]; PC ß PC+4 
6. A ß BR[rs]; B ß BR[rt] 
7. AluOut <- PC + 4, PC <- A # Es necesario un nuevo mux para PC 
8. BR[Rd] <- AluOut 
 
 
Problemas de Fundamentos de Computadores (Hoja 2.1) pág. 8 
 
 
B. Modificando la selección del operando B para poder seleccionar 0 
1. IR ß Mem[PC]; PC ß PC+4 
2. A ß BR[rs]; B ß BR[rt] 
3. AluOut <- PC + 4 
4. BR[Rd] <- AluOut, PC<-A+0 
 
b) Describir los cambios necesarios en la máquina de estados del controlador para poder 
ejecutar correctamente esta instrucción. 
Las modificaciones en el controlador son similares en los dos casos también: 
A 
M
em
or
ia
(
ADDR$
DR$
DW$
MemRead'
MemWrite'
0$
1$
M
U
X(
IorD'
Ba
nc
o(
de
(
re
gi
st
ro
s(
busA$
busB$
RA$
RB$
RW$
busW$
RegWrite'
AL
U
(
Zero'
Ex
te
ns
ió
n(
(
de
(si
gn
o(
<<
2(
PC
(
A(
B(
1$
0$
3$
2$
0$
1$
M
U
X(
M
U
X(
AL
U
ou
t(
IR
(
M
DR
(
RegDst'
0$
1$
M
U
X(
0$
1$
M
U
X(
Instrucción$[25721]$
Instrucción$[20716]$
Instrucción$[15711]$
Instruc.$[1570]$
4"
PCWrite' IRWrite' ALUSrcA'
ALUSrcB'
MemtoReg'
AWrite'
BWrite'
OutWrite'
MDRWrite'
Control((
de(ALU(
ALUop'
M
U
X(
0$
1$
PCSrc'
M
em
or
ia
(
ADDR$
DR$
DW$
MemRead'
MemWrite'
0$
1$
M
U
X(
IorD'
Ba
nc
o(
de
(
re
gi
st
ro
s(
busA$
busB$
RA$
RB$
RW$
busW$
RegWrite'
AL
U
(
Zero'
Ex
te
ns
ió
n(
(
de
(si
gn
o(
<<
2(
PC
(
A(
B(
1$
0$
3$
2$
0$
1$
M
U
X(
M
U
X(
AL
U
ou
t(
IR
(
M
DR
(
RegDst'
0$
1$
M
U
X(
0$
1$
M
U
X(
Instrucción$[25721]$
Instrucción$[20716]$
Instrucción$[15711]$
Instruc.$[1570]$
4"
PCWrite' IRWrite' ALUSrcA'
ALUSrcB'
MemtoReg'
AWrite'
BWrite'
OutWrite'
MDRWrite'
Control((
de(ALU(
ALUop'
0$
1$
M
U
X(
0"
ALUSrcB2l'
 
Problemas de Fundamentos de Computadores (Hoja 2.1) pág. 9 
 
 
 
B 
 
 
c) (1 punto) Indica los valores que van tomando todos los registros implicados en la ejecución 
de la instrucción JALR R1,R3, sabiendo que los campos Rt, SHAMT y FUNCT se dejan a 0. 
El estado actual de la máquina es: 
• R0=0x000000FA 
• R1=0x00000030 
• R2=0x0C001600 
• R3=0x0C00E040 
• PC=0x0C000020 
Apartado C: 
 
Problemas de Fundamentos de Computadores (Hoja 2.1) pág. 10 
 
Caso A: 
1. En Fetch: 
• PC toma el valor 0x0C000024 
• IR toma el valor 0x24600800 
2. En Deco: 
• A toma el valor 0x0C00E040 
• B toma el valor 0x000000FA 
3. En Exe; 
• AluOut toma el valor 0x0C000028 
• PC toma el valor 0x0C00E040 
4. En WB: 
• R1 toma el valor 0x0C000028 
Caso B: 
5. En Fetch: 
• PC toma el valor 0x0C000024 
• IR toma el valor 0x24600800 
6. En Deco: 
• A toma el valor 0x0C00E040 
• B toma el valor 0x000000FA 
7. En Exe; 
• AluOut toma el valor 0x0C000028 
8. En WB: 
• R1 toma el valor 0x0C000028 
• PC toma el valor 0x0C00E040 
 
 
8.- Sobre la ruta de datos vista en clase, indicar los valores de todas las líneas de datos y los 
registros, en los siguientes casos: 
a) Ejecución de la instrucción OR r1, r2, r3, al final de cada una de sus cuatro etapas 
Estado actual de la máquina: 
r1=0x00000017 
r2=0x001100FF 
r3=0xFF000345 
PC=0x00003400 
b) Ejecución de la instrucción JAL 1024 (1024 en decimal) al final de las tres etapas 
Estado actual de la máquina: 
r0=0x00000017 
PC=0x00003400 
 
Solución 
OR: 
a) Tras el estado 0: 
a. PC=0x00003404 
 
Problemas de Fundamentos de Computadores (Hoja 2.1) pág. 11 
 
b. IR=0x00430825 (Codificación de la or: 
000000|00010|00011|00001|00000|100101) 
b) Tras el estado 1: 
a. A=0x001100FF 
b. B=0xFF000345 
c) Tras el estado 7: 
a. ALUOut=0xFF1103FF 
d) Tras el estado 8: 
a. R1=0xFF1103FF 
JAL: 
a) Tras el estado 0: 
a. PC=0x00003404 
b. IR=0x0C000400 (Codificación de jal: 000011|00000000000000010000000000) 
b) Tras el estado 1: 
a. A=0x00000017 
b. B=0x00000017 
c) Tras el estado último del jal: 
a. R31=0x00003404 
b. PC=0x00001000 
 
 
9.- Para el computador MIPS estudiado en clase, responder a las siguientes preguntas: 
a) Qué instrucción/es, del repertorio de instrucciones del procesador MIPS estudiado en 
clase, se ven afectada/s y no se podrían ejecutar si se elimina de la ruta de datos el 
registro MDR, la entrada 1 del Mux que selecciona el dato que se escribe en el banco de 
registros, y por lo tanto dicho Multiplexor. 
La instrucción load, porque con ese cambio la ruta de datos no permite escribir el dato 
leído de memoria en el banco de registros 
b) Partiendo de la ruta de datos completa del MIPS, se desea añadir una nueva instrucción 
Store con Direccionamiento Absoluto (SMDA). Se añade para ello un nuevo formato de 
instrucción con los siguientes campos (Op, Rs, dirección): 
 
El comportamiento de la instrucción SMDA sería el siguiente: 
SMDA Rs, dirección Mem[ExtCeros(dirección)] ß BR[rs] 
donde ExtCeros(dirección) extiende la dirección de 21 bits a 32 bits añadiendo ceros 
por la izquierda. Añade a la ruta de datos los cambios que tendrían que realizarse para 
poder ejecutar esta instrucción. 
 
Problemas de Fundamentos de Computadores (Hoja 2.1) pág. 12 
 
 
c) Añade los cambios necesarios en el diagrama de transición de estados del controlador 
para poder ejecutar correctamente esta nueva instrucción. 
 
d) Indicar los cambios necesarios en la tabla de verdad del controlador (añadir las filas y 
columnas
necesarias). 
 
10.- Suponer que los tiempos de operación para las principales unidades funcionales de una 
implementación MIPS son: 
• Lectura unidad de memoria: 10 ns 
• Escritura unidad de memoria: 5 ns 
• ALU: 10 ns 
• Banco de registros (lectura o escritura): 5 ns 
• Multiplexores: 2 ns 
• Extensor de signo: 1 ns 
• Desplazador:0.5 ns 
a) Suponiendo que el resto de elementos no tengan retardo (no hay retardo de la unidad 
 
Problemas de Fundamentos de Computadores (Hoja 2.1) pág. 13 
 
de control, de la lectura o escritura de los registros temporales, del cableado, etc.), 
calcula la frecuencia de reloj máxima a la que podría trabajar este procesador. 
b) Calcula el tiempo de ejecución en el procesador multiciclo de un programa con la 
siguiente frecuencia de uso de las diferentes instrucciones y que conste de 1000 
instrucciones: 
• Carga: 22% 
• Almacenamiento: 11% 
• Formato R: 49% 
• Salto condicional: 18%, donde la mitad de los saltos se toman. 
Solución 
Estado 0: 
a. Escritura del PC: 2+10 
b. Escritura de IR: 2+10 
Estado 1: 5 
Estado 2: 1+2+10 (la extensión de signo se puede asumir que ya esté calculada de antes) 
Estado 3: 2+10 
Estado 4: 2+5 
Estado 5: 1+2+10 (la extensión de signo se puede asumir que ya esté calculada de antes) 
Estado 6: 2+5 
Estado 7: 2+10 
Estado 8: 2+5 
Estado 9: 2+10 
Estado 10: 1+0.5+2+10 (la extensión y el x4 se puede asumir ya calculado de antes) 
La etapa más lenta limita el tiempo de ciclo 
Tciclo = 13.5 ns => f = 1/13.5 GHz = 74 MHz 
El número de ciclos promedio por instrucción viene dado por 
(lw: 5, sw/r: 4, beq:3) 
CPI = 0.22*5+0.11*4+0.49*4+0.18*3.5 = 4.13 
De donde 
Tcpu = NI*CPI*Tciclo = 1000*4.13*13.5 = 55755 ns 
 
11.- Un programa tiene 140 instrucciones de las cuales 70 tardan en ejecutarse en un 
determinado procesador cuatro ciclos, 35 tardan cinco ciclos, 20 tardan tres ciclos y las 15 
restantes tardan siete ciclos. Calcule el CPI promedio para dicho programa. Si el procesador 
funciona a una frecuencia de 2.0 GHz, determine el tiempo de ejecución del programa. 
SOLUCIÓN: 
Tipo instr nºinst nºciclos/inst 
A 70 4 
B 35 5 
C 20 3 
D 15 7 
 
Nº total inst=140 
CPI=(70*4+35*5+20*3+15*7)/140=4.4285 ciclos 
Tiempo_ejecucion=CPI*nºint/frecuencia=140*4.4285/2*109=310ns 
 
Problemas de Fundamentos de Computadores (Hoja 2.1) pág. 14 
 
 
12.- Se dispone de los siguientes datos de dos procesadores y de su rendimiento en la 
ejecución de una determinada tarea: 
• PowerPC que funciona a una frecuencia de 1.8 GHz y obtiene 700 MIPS. 
• Pentium 4 que funciona a 1.6 GHz y 850 MIPS. 
Calcule el CPI de cada procesador. 
 
SOLUCIÓN: 
Procesador Frecuencia MPIS 
PowerPc 1.8GHz 700 
Pentium4 1.6GHz 850 
 
CPIPowerPC=1.8*109 [ciclos/s] / 700*106 [instr/s] = 2.57 [ciclos/instr] 
CPIPentium4=1.6*109 [ciclos/s] / 850*106 [instr/s] = 1.88 [ciclos/instr] 
 
13.- Considere los dos procesadores del ejercicio anterior. En la ejecución de un determinado 
programa los procesadores obtienen un CPI de 5.5 (PowerPC) y 7 (Pentium 4). El 
compilador genera un código máquina para dicho programa que tiene 9 millones de 
instrucciones (PowerPC) y 7.2 millones de instrucciones (Pentium) ¿Qué computador 
ejecutará más rápidamente la tarea? 
 
SOLUCIÓN: 
TiempoPowerPC= 9*106 [instr] *5.5 [ciclos/instr] / 1.8*109 [ciclos/s] = 0.0275s = 27.5ms 
TiempoPentium4=7.2*106 [instr] * 7 [ciclos/instr] / 1.6*109 [ciclos/s] = 0.0315s = 31.5ms 
 
 
14.- Se desea añadir al procesador multiciclo la instrucción BEQAL Rs, Rt, Offset con código de 
operación 000001, cuyo comportamiento es: 
Si Rs = Rt 
 R31 <- PC + 4; 
 PC <- PC + 4 + 4*Offset; 
Si no 
 PC <- PC + 4 
Se pide: 
a) Indica todos los cambios que tendrían que realizarse a la ruta de datos para poder 
ejecutar esta instrucción. 
b) Describir los cambios necesarios en el diagrama de transición de estados del controlador 
para poder ejecutar correctamente esta instrucción. 
c) Indicar los cambios necesarios en las tablas de verdad del controlador. 
 
Solución : 
a) La instrucción tendrá formato I, ya que el offset se da como operando inmediato. Los 
movimientos registro a registro que hay que hacer son: 
1. IR ß Mem[PC]; PC ß PC+4 
2. A ß BR[rs]; B ß BR[rt] 
3. A - B 
4. PC<- PC + 4*SignExt( Inmediato ) y BR(31) <- PC (PCorig + 4 ) 
 
Problemas de Fundamentos de Computadores (Hoja 2.1) pág. 15 
 
 
b) Las modificaciones en el controlador son: 
 
 
Problemas de Fundamentos de Computadores (Hoja 2.1) pág. 16 
 
c) 
 
 
15.- Ejercicio 4 Un mismo programa se ejecuta en dos computadores A y B que tienen 
frecuencias de reloj de 1 GHz y 1.5 GHz, respectivamente. Para ejecutar el programa en A es 
necesario ejecutar un cierto número de instrucciones repartidas de la siguiente manera: 
 
 Aritmética Load Store Salto tomado Salto no 
tomado 
Frecuencia 50% 25% 10% 10% 5% 
Ciclos 4 5 4 4 3 
 
a) Calcula el CPI del programa en el computador A. 
b) En el computador B el número de instrucciones ejecutadas es el 60% de las ejecutadas en 
A y el tiempo de ejecución es la mitad que en A. ¿Cuál es el CPI obtenido en la ejecución 
del programa en el computador B? 
 
SOLUCIÓN 
Solución: 
CPI(A) = 4x0,5 + 5x0,25 + 4x0,10 + 4x0,10 + 3x0,05 = 4,2 
 
Datos: T(B) = 0,5xT(A); NI(B) = 0,6xNI(A) 
 
Tiempo en A: T(A) = NI(A) x CPI(A) / f(A) 
Tiempo en B: 0,5xT(A) = 0,6xNI(A) x CPI(B) / f(B) 
E
st
ad
o 
ac
tu
al
 
op
 
Ze
ro
 
E
st
ad
o 
si
gu
ie
nt
e 
IR
W
rit
e 
P
C
W
rit
e 
A
W
rit
e 
B
W
rit
e 
A
LU
S
rc
A
 
A
LU
S
cr
B
 
A
LU
O
p 
O
ut
W
rit
e 
M
em
W
rit
e 
M
em
R
ea
d 
Io
rD
 
M
D
R
W
rit
e 
M
em
to
R
eg
 
R
eg
D
es
t 
R
eg
W
rit
e 
0000 XXXXXX X 0001 1 1 0 01 00 (add) 0 1 0 0 
0001 100011 (lw) X 0010 
0 0 1 1 0 0 0 
0001 101011 (sw) X 0101 
0001 000000 (tipo-R) X 0111 
0001 000100 (beq) X 1001 
0001 000001 (beqal) X 1011 
0010 XXXXXX X 0011 0 0 1 10 00 (add) 1 0 0 0 
0011 XXXXXX X 0100 0 0 0 1 1 1 0 
0100 XXXXXX X 0000 0 0 0 0 01 00 1 
0101 XXXXXX X 0110 0 0 0 1 10 00 (add) 1 0 0 0 
0110 XXXXXX X 0000 0 0 1 0 1 0 
0111 XXXXXX X 1000 0 0 1 00 10 (funct) 1 0 0 0 
1000 XXXXXX X 0000 0 0 0 0 00 01 1 
1001 XXXXXX 0 0000 
0 0 1 00 01 (sub) 0 0 0 
1001 XXXXXX 1 1010 
1010 XXXXXX X 0000 0 1 0 11 00 (add) 0 0 0 
1011 XXXXXX 0 0000 0 0 1 00 01 (add) 0 0 0 
1011 XXXXXX 1 1100 0 0 1 00 01 (add) 0 0 0 
1100 XXXXXX X 0000 0 1 0 11 00 (add) 0 0 10 10 1 
 
 
Problemas de Fundamentos de Computadores (Hoja 2.1) pág. 17 
 
 
0,5 = [0,6xCPI(B) / f(B)] / [ CPI(A) / f(A)] = 0,6 x CPI(B) x f(A) / CPI(A) x f(B) 
CPI(B) = 0,5 x CPI(A) x f(B) / 0,6 x f(A) = 0,5x4,2x1,5x109 / 0,6x1x109 = 3,15 / 0,6 = 5,25