






Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Tecnología y Organización de computadores, Profesor: Oscar Garnica, Carrera: Ingeniería Informática, Universidad: UCM
Tipo: Apuntes
1 / 12
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!







Ej. 1 — Diseñar un sistema algorítmico que calcule el máximo común divisor de dos números,
1
y N 2
, basándose en el siguiente algoritmo.
1
2
, MCD 0 , Fin 0;
while A , 0 y B , 0 do
if A > B then
else
end
end
Fin 1 , MCD A ;
Ej. 2 — Diseñar un sistema algorítmio que calcule la raíz cuadrada entera, r, de un número entero
positivo, x > 1, basándose en el siguiente algoritmo.
r 1 , d 2 , s 4 , Fin 0;
while x s do
r r + 1;
d d + 2;
s s + d + 1;
end
Fin 1;
Sólo se dispone de un sumador/restador para realizar todas las sumas y también para realizar la
operación de comparación. Usar los componentes combinacionales que se consideren necesarios.
Ej. 3 — Diseñar un sistema algorítmico que controle la apertura de una cerradura. Las especifi-
caciones son:
Spec 1. Hay dos pulsadores, A y B, y la cerradura se abrirá únicamente si la secuencia de
8 pulsaciones coincide con la que tiene almacenada en un registro.
Spec 2. La secuencia de control se programa de la siguiente forma: con la cerradura abier-
ta, la secuencia AAAABBBB indica que las 8 pulsaciones siguientes son la nueva
secuencia de control.
Spec 3. Para cerrar se ha de aplicar la secuencia BBBBAAAA.
Se pueden definir las señales y condiciones de funcionamiento que se consideren necesarias.
Ej. 4 — Diseñar un sistema algorítmico que traduzca un número BCD de 4 dígitos al formato
binario puro.
Ej. 5 — Diseñar un sistema algorítmico de reconocimiento de identidad en una sucursal bancaria.
Las especificaciones son:
Spec 1. El sistema permite reconocer a 256 usuarios.
Spec 2. Cada usuario tiene asociado un código de identificación de usuario de 8 bits y
una clave de 6 bits.
Spec 3. Cuando un usuario del banco activa la señal reconocer, el sistema almacenará,
primero, su código de identificación de usuario y, en el siguiente ciclo, su clave
de acceso.
Spec 4. La clave de acceso se compara con la que tiene almacenado el sistema, si coinci-
den la identificación es correcta y se activa la señal correcto. Si no coinciden, el
sistema volverá a preguntar por el código de identificación de usuario.
Spec 5. Si la identificación ha sido correcta entonces el usuario tendrá que pulsar el botón
entrar para acceder a la entidad y el sistema activará la señal abrir durante un
ciclo de reloj.
Spec 6. Durante ese ciclo el usuario puede decidir cambiar la clave, y para ello tiene que
pulsar el botón de cambio_clave.
Spec 7. Si desea cambiar la clave, el sistema pregunta por la nueva clave y la almacena,
activándose la señal de ffin cuando el proceso concluye.
Spec 8. Si no se desea cambiar la clave, el sistema espera 5 ciclos de reloj, transcurridos
los cuales vuelve al estado inicial.
Diseñar el camino de datos, la unidad de control como una máquina Moore (especificando el
diagrama de estados y la tabla de salidas) y la interconexión entre los dos módulos.
Ej. 6 — Una máquina expendedora vende cuatro productos de distintos precios y acepta mone-
das de 1, 2, 5 y de 10 céntimos. Su comportamiento es el siguiente:
Spec 1. La máquina permanece inactiva hasta que se pulsa el botón encendido.
Spec 2. A partir de ahí, la máquina incrementa el saldo (que inicialmente es cero) cada
vez que se introduzca una moneda.
Spec 3. Si el cliente presiona el botón de petición de uno de los productos (la entrada
producto indica cual se ha solicitado), se comprueba si hay saldo suficiente y de
ser así se activa la señal entregar_producto y se devuelve el cambio.
Spec 4. En caso contrario se ignora la solicitud.
En las figuras aparecen el diagrama de ASM, el camino de datos y las entradas y salidas del siste-
ma algorítmico. Diseñar la unidad de control para que el sistema funcione tal y como se describe
en el diagrama de estados. La lógica para calcular el estado siguiente se debe implementar con un
contador módulo 4 y puertas lógicas. Las señales de control se deben implementar con puertas
lógicas.
Spec 2. En ese momento el tren se pone en marcha (avanza 1 km por ciclo de reloj) y
activa la salida tren_circulando, que permanece a 1 hasta que el tren llegue a
su destino.
Spec 3. El tren sigue su marcha hasta que llega a la estación intermedia. En ella para 10
ciclos, durante los cuales está activa la salida estación.
Spec 4. Cuando el tren llegue a su destino activa fin.
Spec 5. Si en cualquier momento el maquinista pulsa parada_emergencia el tren se de-
tiene hasta que el maquinista pulse reanudar.
Dadas las entradas y salidas del diagrama anterior se pide diseñar la unidad de control como una
máquina de Moore, usando contadores módulo 4 y puertas lógicas.
Ej. 8 — Diseñar el sistema algorítmico que controla el funcionamiento de un túnel de lavado de
coches. Las especificaciones son:
Spec 1. El sistema tiene cinco entradas: inicio, monedas (monedas de 1ø), lavar, fa (fin
del agua) y fj (fin del jabón).
Spec 2. El sistema tiene tres salidas: a (agua), j (jabón), fin (saca el coche del túnel).
Spec 3. El usuario pulsa el botón inicio y después introduce 1 ó 2 monedas de 1ø en
función del tipo de lavado que desee. Después pulsa el botón lavar. El sistema
empieza a funcionar y el usuario simplemente espera a que el coche salga del
túnel de lavado.
Spec 4. Si el número de monedas introducidas es 0, la máquina no hace nada y vuelve al
estado inicial.
Spec 5. Si el número de monedas es 1 entonces el sistema activa la señal a ( A = 1) para
que caiga agua sobre el coche. Cuando se activa la señal fa ( FA = 1) entonces el
sistema activa la señal fin y vuelve al estado inicial.
Spec 6. Si el usuario ha introducido 2 o más monedas entonces (1) el sistema primero
mojará el coche (activa señal a), (2) cuando se activa la señal fa finaliza el aclara-
do y lo enjabona activando la señal j ( j = 1) y (3) cuando se activa la señal fj y lo
aclara activando de nuevo la señal a. El aclarado finaliza cuando f a = 1, se activa
la señal fin y vuelve al estado inicial.
Spec 7. Esta máquina no devuelve cambio ni detecta cantidades mayores de 3ø.
La solución del problema consiste en:
1.Dibujar el diagrama ASM.
2.Diseñar el camino de datos utilizando los módulos combinacionales y secuenciales estudia-
dos en la asignatura, indicando claramente sus entradas, salidas y la función que realizan
(en caso de señales de control, función que realizan para cada posible valor o combinación
de valores) y en el caso de los registros, y líneas de datos, su anchura en bits.
3.Dibujar la unidad de control y el camino de datos como dos cajas negras. Sobre dicho esque-
ma, indicar todas las señales que entran y salen de las cajas (incluidas las que van de UC a
CD y viceversa) y la función que realiza cada una de ellas y momentos en que se activa en
relación al diagrama de flujo.
4.Diseñar la UC como máquina de Moore: (a) diagrama de estados en que se refleje la relación
de los estados con el diagrama de flujo del primer apartado, (b) tabla de estados y salidas
Añadir las señales de control internas del sistema diseñado y completar el cronograma si-
guiente (incluyendo el estado siguiente y el valor de las señales después de activar la señal
fin):
Nota: El tiempo programado para que caiga agua sobre el coche es 6 s (contados a partir de la
activación de la señal a), y lo mismo para el enjabonado: son 6 s a partir de la activación de las
correspondientes señales.
Ej. 9 — Diseñar un sistema algorítmico que controla un juego electrónico consistente en adivinar
un número entre 0 y 15. Debe satisfacer las siguientes especificaciones:
Spec 1. La máquina proporciona 3 oportunidades para acertar el número, y dispone de 3
premios diferentes codificados según la tabla 1.
Spec 2. El juego dispone de un contador funcionando a una frecuencia de 100MHz que
genera números del 0 al 15.
Spec 3. El funcionamiento del juego es el siguiente: En primer lugar el juego está parado
hasta que se pulsa el botón de Jugar.
Spec 4. En ese momento, el usuario introduce el número que cree va a salir, y el siste-
ma comienza a generar números a una frecuencia de 100MHz, de forma que el
usuario desconoce qué salida tiene el contador en cada momento.
Spec 5. El sistema continúa generando números hasta que el jugador decide parar el jue-
go y adivinar el número, pulsando el botón Parar.
Spec 6. Si el número introducido por el usuario no coincide con el generado, el sistema
ofrece al usuario otra oportunidad de juego (así hasta un total de 3 oportunida-
des), de modo que el usuario introduce un nuevo número y el sistema vuelve a
generar más números aleatoriamente.
Spec 7. Si tras 3 fallos el usuario no ha acertado el número, se activará la salida Pierdo
durante un ciclo de reloj, volviendo a continuación el sistema al estado inicial.
Spec 8. Si en alguna de las oportunidades permitidas el usuario acierta el número, se
activa la señal Gano hasta que el sistema ha terminado de dar el premio. Cuando
A continuación dos ejemplos de funcionamiento:
Ejemplo
Si A = 1000 y B = 0001 entonces A + B = 00001001. Si se interpreta el resultado
como dos dígitos BCD es lo mismo que decir que 08 + 01 = 09.
Ejemplo
Si A = 1000 y B = 1001 entonces A + B = 00010001 | 2
BCD
que es claramente
incorrecto. Para obtener el resultado correcto se debe sumar 6. Así, 08 + 09 = 11 y
para convertirlo a BCD 11 + 06 = 17.
El camino de datos debe realizarse con los siguientes módulos: una memoria SRAM síncrona con
un único puerto, tres registros de 8 bits, un sumador y un módulo combinacional que indique
si un número de 8 bits es menor que 10. Aparte de estos módulos únicamente se pueden utili-
zar multiplexores. La unidad de control se especificará con el diagrama de estados y la tabla de
salidas.
Ej. 12 — Diseñar un diccionario de dígitos BCD a exceso a 3. Las especificaciones del sistema
son:
Spec 1. El sistema tiene dos entradas: un dígito BCD, bcd, y la señal que marca la presen-
cia de un digito BCD nuevo, DirNueva.
Spec 2. El sistema tiene dos salidas: existe, guardado y bcd_out.
Spec 3. El valor de bcd se almacena cuando la señal DirNueva vale 1.
Spec 4. A partir del valor de bcd el sistema genera la traducción a exceso a 3 y busca la
palabra almacenada en el diccionario asociada con el dígito BCD introducido.
Spec 5. Si la palabra almacenada es igual al dígito codificado en exceso a 3 la señal exis-
te se pondrá a 1 indicando que la traducción ya existía en el diccionario, y a
continuación el sistema volverá al estado inicial.
Spec 6. De no existir, la traducción se almacena en el diccionario y cuando el proceso ha
terminado se activará la señal guardado, indicando que la traducción de BCD a
exceso a 3 del dígito de entrada se ha almacenado correctamente, y el sistema
volverá al estado inicial.
Spec 7. En cualquier caso, el dígito codificado en exceso a 3 se visualizará en la salida
bcd_out.
Diseñar el camino de datos utilizando una SRAM sincrona 16x4, un único sumador/restador, 2
registros y el mínimo número de multiplexores necesarios. El sumador/restador cuenta con una
salida Rcero que cuando vale uno indica que la salida de datos del sumador/restador está a cero.
Diseñar la unidad de control presentado su diagrama de estados y la tabla de salidas.
Nota: Un dígito en exceso a 3 es igual al dígito BCD más 3.
Ej. 13 — Diseñar un juego electrónico de cartas similar a las 7 y media. Las especificaciones del
sistema son:
Spec 1. El juego dispone de un contador que genera cartas con valores de 1 a 10.
Spec 2. Inicialmente el juego está detenido hasta que se pulsa el botón jugar.
Spec 3. Al pulsar el botón jugar, el sistema comienza a barajar las cartas hasta que el
jugador activa la señal pedir_carta.
Spec 4. La suma de todas las cartas pedidas se almacena en el registro marcador.
Spec 5. Cada vez que se pide una carta se actualiza marcador y se compara con 11. Si
marcador > 11, el jugador pierde, el sistema activa la señal pierdo y regresa al
estado inicial.
Spec 6. Si por el contrario, marcador 11, el sistema vuelve a barajar y el jugador decide
si pide o no una carta nueva.
Spec 7. Si decide no pedir carta, puede ser debido a que quiere seguir barajando o se
quiere plantar. En este último caso, se activa la señal fin y el sistema vuelve al
estado inicial.
Diseñar el camino de datos –en su implementación sólo se pueden usar sumadores, contadores,
registros (como los de las figuras) y puertas lógicas– y la Unidad de control –diagrama de estados
y la tabla de salidas–. Dibujar un cronograma que describa el estado, las salidas y las señales de
control para la siguiente secuencia de eventos:
1.Ciclo 1: jugar = 1.
2.Ciclo 2: pedir _ carta = 1 y sale un 4.
3.Ciclo 4: pedir _ carta = 1 y sale un 5.
4.Ciclo 6: pedir _ carta = 0, plantar = 1.
Ej. 14 — Diseñar el sistema algorítimico para una máquina expendedora de tickets de aparca-
miento. Las especificaciones del sistema son:
Spec 1. La máquina tiene 2 entradas: inicio (desbloquea la ranura y permite introducir
monedas de 1ø solamente) y IMPR_TICKET que ordena la impresión del ticket.
Spec 2. La máquina imprime 3 tipos de tickets: 20 min. de aparcamiento (1ø); 40 min.
(2ø) y 60 min. (3ø).
Spec 3. Si se pulsa al botón inicio y luego IMPR_TICKET y no se han introducido mone-
das, la máquina no hace nada y vuelve al estado inicial.
Spec 4. El procedimiento para sacar un ticket es:
1.Pulsar inicio.
2.Introducir 1, 2 o 3 monedas de 1ø según el tiempo deseado.
3.Pulsar IMPR_TICKET.
Diseñar el camino de datos –indicando claramente las entradas, salidas y señales de control del
sistema, así como la función que realizan los módulos utilizados para el camino de datos– y la
unidad de control.
Ej. 15 — Diseñar un multiplicador de números de 4 bits usando un contador. Describir el dia-
grama ASM y diseñar el camino de datos –indicando el tamaño de los registros, las entradas,
las salidas y las señales de control así como la función que realizan los módulos utilizados– y la
unidad de control.
tiene 16 ciclos para introducir la clave correcta. La clave consta de 4 bits que se introducen en
serie (señal clave) comenzando por el bit más significativo. El sistema comienza a leer los bits
de la clave cuando se activa la señal Inicio. Cuando los 4 bits se han introducido, esta clave se
compara con la almacenada en la puerta, y si las dos claves son iguales la puerta se abrirá, sino
el sistema permite al usuario una nueva oportunidad, así hasta 2 veces. Si tras dos intentos, el
usuario no acierta la clave la puerta se bloquea (señal Bloqueo a ‘1’). La puerta, por lo tanto, se
bloqueará si no se acierta la clave en dos intentos o si una vez introducida la clave correcta se han
superado 16 ciclos de reloj del sistema. Una vez que la puerta se bloquea permanecerá bloqueada
hasta que un empleado de seguridad active la señal Desbloqueo, volviendo en este caso el sistema
al estado inicial. Si la puerta se abre permanecerá abierta un ciclo de reloj y después el sistema
vuelve al estado inicial.
Ej. 20 — Diseñar el camino de datos y la unidad de control de un sistema algorítmico que dado
dos números enteros positivos en C2, n y m con n m , permita calcular la suma de los números
comprendidos entre n y m , ambos inclusive. Las entradas del sistema son: inicio (1 bit), n (10 bits)
y m (10 bits). Las salidas son: fin (1 bit) y resultado. En el camino de datos sólo pueden usarse
un sumador, un restador y un comparador con cero. ¿Qué tamaño deben tener los registros del
sistema algorítmico para poder calcular todos los posibles resultados con los anchos de los datos
de entrada?
A n, B m, T 0 ;
while A B do
end
resultado T ;
Ej. 21 — Un número triangular, T ( n ), es un número obtenido sumando todos los enteros posi-
tivos de valor menor o igual que un entero dado, n. Los primeros números triangulares son por
tanto 1, 1+2, 1+2+3,... Diseñar el camino de datos y la unidad de control del sistema algorítmico
que dado n permita calcular el número triangular correspondiente. Las entradas del sistema son:
inicio (1 bit) y n (10 bits). Las salidas son: fin (1 bit) y resultado. En el camino de datos sólo puede
usarse un único sumador/restador. El número triangular T(1023)=523776, ¿qué tamaño deben
tener los registros del sistema algorítmico?
A n, T 0 ;
while A , 0 do
end
resultado T ;
Ej. 22 — Diseñar la ruta de datos y la unidad de control (diagrama ASM y tabla de salidas) de un
sistema algorítmico que dados dos números, A y B (8 bits en C2), almacenados en una memoria
RAM, calcule A-B, almacene el resultado en la memoria y lo visualice en el puerto de salida Re-
sultado. Finalmente se activa la señal Fin a 1 y el sistema vuelve al estado inicial. La dirección de
memoria donde tiene que guardarse el resultado será la primera dirección a partir de la dirección
de B que tenga almacenado un cero. Suponer que siempre hay alguna posición libre. Las entra-
das del sistema son: Inicio, DirA, DirB (direcciones de memoria de A y B, respectivamente). Las
salidas del sistema son: Fin y Resultado. En la ruta de datos se debe usar una memoria SRAM(*)
de 128 palabras con un único puerto de lectura/escritura, un único sumador/restador, registros
y elementos combinacionales que se consideren necesarios. Se valorará el uso del hardware míni-
mo.
(*) La memoria SRAM será síncrona y los puertos funcionales de la memoria son los que se mues-
tran en la siguiente figura.
Ej. 23 — Diseñar la ruta de datos y la unidad de control (diagrama ASM y tabla de salidas) de un
sistema algorítmico que dados n números ( n > 1) de 4 bits en binario puro los ordene de mayor a
menor según el algoritmo de ordenamiento de burbuja.
i 1 , Fin 0;
while i n do
j 1;
while j n 2 do
if M ( j ) M ( j + 1) then
M ( j ) M ( j + 1);
M ( j + 1) M ( j );
end
j j + 1;
end
i i + 1;
end
Fin 1;
Los números estarán almacenados a partir de la posición 0x00 de una memoria SRAM
(1)
. El siste-
ma comenzará a funcionar cuando se active la señal inicio y una vez ordenados los n números se
activará la señal de salida fin. Las entradas del sistema son inicio (1 bit), n (8 bits, binario puro).
La salida es fin (1 bit). En la ruta de datos se debe usar una memoria SRAM
(1)
, comparadores del
ancho necesario, contadores ascendentes/descendentes
(2)
, sumadores, registros y multiplexores.
(1)
: El alumno puede escoger el tipo de SRAM: síncrona o asíncrona y debe indicarlo de forma
explícita. En cualquier caso, la memoria es de doble puerto: en cada puerto se puede realizar de
forma independiente una operación de lectura o escritura. Los puertos de salida conservan el va-
lor leído hasta que se realice una nueva lectura. La definición de puertos es: din{a,b}, bus de datos
de entrada; addr{a,b}, bus de direcciones; we{a,b}, write enable; en{a,b}, señal de habilitación del
puerto; dout{a,b}, bus de datos de salida.
(2)
: La definición de puertos del contador ascendente/descendente: din, bus dato de entrada; ce,
habilitación del contador; load, señal de carga; ud, cuenta arriba (ud=1) o cuenta abajo (ud=0);
dout, bus de salida.