Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Sistemas algorítmicos TOC, Apuntes de Ingeniería Infórmatica

Asignatura: Tecnología y Organización de computadores, Profesor: Oscar Garnica, Carrera: Ingeniería Informática, Universidad: UCM

Tipo: Apuntes

2013/2014

Subido el 13/02/2014

pepeito80
pepeito80 🇪🇸

4

(59)

16 documentos

1 / 12

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
10
Ejercicios sistemas algorítmicos
Ej. 1 Diseñar un sistema algorítmico que calcule el máximo común divisor de dos números,
N1yN2, basándose en el siguiente algoritmo.
A N1,B N2,MCD 0,Fin 0;
while A,0yB,0do
if A>Bthen
A AB;
else
B BA;
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 xsdo
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.
pf3
pf4
pf5
pf8
pf9
pfa

Vista previa parcial del texto

¡Descarga Sistemas algorítmicos TOC y más Apuntes en PDF de Ingeniería Infórmatica solo en Docsity!

Ejercicios sistemas algorítmicos

Ej. 1 — Diseñar un sistema algorítmico que calcule el máximo común divisor de dos números,

N

1

y N 2

, basándose en el siguiente algoritmo.

A N

1

, B N

2

, MCD 0 , Fin 0;

while A , 0 y B , 0 do

if A > B then

A A B ;

else

B B A ;

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.

  1. Ejercicios sistemas algorítmicos

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.

  1. Ejercicios sistemas algorítmicos

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.

  1. Ejercicios sistemas algorítmicos

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.

  1. Ejercicios sistemas algorítmicos

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

T T + A ;

A A 1;

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

T T + A ;

A A 1;

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 in do

j 1;

while jn 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.