75 - Práctica 2ºSemestre 2019 PDF

Title 75 - Práctica 2ºSemestre 2019
Author Andrea Fdez
Course Fundamentos de computadores
Institution Universitat Oberta de Catalunya
Pages 16
File Size 1 MB
File Type PDF
Total Downloads 66
Total Views 388

Summary

PrácticaPresentaciónPor fin llegamos al final del curso. Esta práctica servirá para sintetizar todos losconocimientos del curso y ampliarlos con el diseño de circuitos más complejos. Enesta práctica se os pedirá el diseño de un circuito a partir de un grafo de estados y eldiseño de una máquina de es...


Description

75.562 · Fundamentos de Computadores · Práctica · 2019-20 · Estudios de Informática Multimedia y Telecomunicación

Práctica Presentación Por fin llegamos al final del curso. Esta práctica servirá para sintetizar todos los conocimientos del curso y ampliarlos con el diseño de circuitos más complejos. En esta práctica se os pedirá el diseño de un circuito a partir de un grafo de estados y el diseño de una máquina de estados en concreto. Para la primera parte, tendréis que aplicar los conocimientos que habéis adquirido en este curso como, por ejemplo, los mapas de Karnaugh o los sistemas de representación. Por lo tanto, se recomienda que les deis un vistazo.

Competencias Conocer la organización general de un computador como circuito digital y conocer las características distintivas de la arquitectura de Von Neumann.

Objetivos ‒ Conocer varios modelos de las máquinas de estados y de las arquitecturas de controlador con camino de datos. ‒ Haber adquirido una experiencia básica en la elección del modelo de máquina de estados más adecuado para la resolución de un problema concreto. ‒ Ser capaz de diseñar circuitos secuenciales a partir de grafos de transiciones de estados.

Recursos Los recursos que se recomienda usar por esta práctica son los siguientes: ‒ Básicos: El módulo 5 de los materiales. ‒ Complementarios: VerilCIRC, VerilCHART y el Wiki de la asignatura.

Criterios de valoración ‒ Razonad la respuesta en todos los ejercicios. Las respuestas sin justificación no recibirán puntuación. ‒ La valoración está indicada en cada uno de los subapartados.

1 de 16

75.562 · Fundamentos de Computadores · Práctica · 2019-20 · Estudios de Informática Multimedia y Telecomunicación

Formato y fecha de entrega ‒ Para dudas y aclaraciones sobre el enunciado, dirigíos al consultor responsable de vuestra aula. ‒ Hay que entregar la solución en un fichero PDF usando una de las plantillas entregadas junto con este enunciado. ‒ Se debe entregar a través de la aplicación de Entrega y registro de EC del apartado Evaluación de vuestra aula. ‒ La fecha límite de entrega es el 18 de diciembre, a las 24 horas.

Solución de la práctica propuesta PRIMERA PARTE [65%] Dada la máquina de estados siguiente:

Fig. 1. EFSM de un árbitro de acceso a bus.

Se pide que: a) [15%] A partir del grafo del EFSM de la fig. 1 completad, en el cronograma siguiente, la evolución de C y w, y del estado ( E) en que se encuentra la máquina en cada ciclo de reloj. Nota: Tenéis el ejercicio disponible en VerilChart, donde los valores de C (que tiene 2 bits) se representan en hexadecimal y el estado por E.

2 de 16

75.562 · Fundamentos de Computadores · Práctica · 2019-20 · Estudios de Informática Multimedia y Telecomunicación

A partir de las condiciones iniciales que hay en el cronograma (E=A1, a=0, r=1, y C=0) se puede determinar el estado siguiente y el valor en este estado para w. Al ser una señal de salida, el valor de w depende de forma exclusiva y combinacional del estado E. En cambio, C es una variable y, por lo tanto, el valor que se calcula en el estado actual será efectivo en el ciclo de reloj siguiente, es decir, en cada estado se calcula el valor que tendrá en el estado siguiente. Así pues, para determinar el estado y el valor de C a partir de t0 y hasta t1, hay que ver que, estando a A1, el valor de C para el estado siguiente será 0. Y el valor del estado siguiente es A0, puesto que se cumple a’·r porque a=0 y r=1. Con este procedimiento, se pueden determinar los valores para el periodo t1–t2 a partir de los del periodo anterior y se puede ir repitiendo el procedimiento hasta completar el cronograma, tal como se muestra a la figura siguiente.

3 de 16

75.562 · Fundamentos de Computadores · Práctica · 2019-20 · Estudios de Informática Multimedia y Telecomunicación

b) [15%] Obtened las tablas de transiciones y de salidas de la EFSM de la fig. 1, así como las codificaciones binarias de estados y salidas correspondientes. Al grafo hay dos señales de entrada, a y r, y la condición (CD) ((C=0)+(D=0))

Contenido q

q1+q0+

s_C

s_D

s_V

r

Codificación hexadecimal

11

0

1

1

01

10

01

0

0

64h

11

1

0

0

01

10

01

0

0

64h

11

1

0

1

01

10

01

0

0

64h

11

1

1

0

01

10

01

0

0

64h

11

1

1

1

01

10

01

0

0

64h

La figura siguiente muestra la implementación con una ROM de estas dimensiones. La entrada M@ de la ROM se configura con el valor del estado actual (los 2 bits de más peso) y el valor de las entradas (los 2 bits de menos peso). Para guardar el estado actual se usan 2 biestables.

La otra opción es usando dos ROM, una para el cálculo del estado siguiente y la otra para las salidas. En este caso, la ROM de cálculo del estado siguiente tiene el mismo número de bits de dirección que el anterior (es decir, 5) pero sólo dos bits para el contenido, puesto que sólo se almacena el código del estado siguiente:

Posición de memoria q1q0

(C>D) ((C=0)+(D=0))

Contenido q

q1+q0+

Codificación hexadecimal

00

0

0

0

00

0h

00

0

0

1

01

1h

00

0

1

0

00

0h

00

0

1

1

01

1h

00

1

0

0

00

0h

8 de 16

75.562 · Fundamentos de Computadores · Práctica · 2019-20 · Estudios de Informática Multimedia y Telecomunicación

Posición de memoria q1q0

Contenido

(C>D) ((C=0)+(D=0))

q

q1+q0+

Codificación hexadecimal

00

1

0

1

01

1h

00

1

1

0

00

0h

00

1

1

1

01

1h

01

0

0

0

10

2h

01

0

0

1

10

2h

01

0

1

0

00

0h

01

0

1

1

00

0h

01

1

0

0

11

3h

01

1

0

1

11

3h

01

1

1

0

00

0h

01

1

1

1

00

0h

10

0

0

0

01

1h

10

0

0

1

01

1h

10

0

1

0

01

1h

10

0

1

1

01

1h

10

1

0

0

01

1h

10

1

0

1

01

1h

10

1

1

0

01

1h

10

1

1

1

01

1h

11

0

0

0

01

1h

11

0

0

1

01

1h

11

0

1

0

01

1h

11

0

1

1

01

1h

11

1

0

0

01

1h

11

1

0

1

01

1h

11

1

1

0

01

1h

11

1

1

1

01

1h

La ROM del cálculo de las salidas tiene direcciones de dos bits (el código de estado) y contenidos de 6 bits para las salidas: Posición

Contenido

q1q0

S_C

s_D

s_V

r

Codificación hexadecimal

00

00

00

0

1

01h

01

01

01

1

0

16h

10

01

10

0

0

18h

11

10

01

0

0

24h

9 de 16

75.562 · Fundamentos de Computadores · Práctica · 2019-20 · Estudios de Informática Multimedia y Telecomunicación

El circuito que usa dos ROM es el siguiente:

Con esta última versión se usan menos bits de memoria ROM: de 256 (32x8) con una única ROM a 88 (32x2 + 4x6).

10 de 16

75.562 · Fundamentos de Computadores · Práctica · 2019-20 · Estudios de Informática Multimedia y Telecomunicación

d) [20%] Implementad el circuito completo de la EFSM de la fig. 2: Construid el camino de datos usando las puertas lógicas y los bloques necesarios e incorporad la unidad de control obtenida en el apartado anterior. Indicad y razonad, para cada bus, su dimensión en bits teniendo en cuenta que las señales de entrada A y B son de 4 bits y representan a un valor binario natural, es decir, sin signo. Nota: Tenéis el ejercicio disponible en VerilCIRC. En el circuito, se han introducido las señales CGD, CD0 y E del apartado anterior también como señales de salida para poder comprobar más fácilmente el correcto funcionamiento. Tened en cuenta que VerilCIRC no soporta la verificación de subcircuitos diseñados por el usuario. Por lo tanto, tendréis que copiar en vuestra solución el circuito de la unidad de control diseñada en el apartado anterior. El camino de datos se tiene que ocupar de generar las señales necesarias para las transiciones, que en este caso vienen determinadas por las señales ( C>D) y ((C=0)+(D=0)) y la entrada q, de actualizar y almacenar el valor de las variables que se usen y de generar los resultados de las operaciones que sean necesarias. En este caso, se usan las variables C, D, y V, y la señal r. El valor de la señal r depende sólo del estado. Las entradas A y B son de 4 bits y representan un valor binario natural. Por lo tanto, el rango de valores en decimal va de 0 a 15(10. Los valores de estas entradas se almacenan a las variables C y D cuando se pasa al estado CHECK desde el estado READ. Los valores que tendrán C y D serán siempre menores o iguales al valor de A y B, respectivamente, y nunca serán inferiores a 0. Por lo tanto, las variables C y D deben ser de 4 bits. La variable V, en cambio, tomará el valor C+D un ciclo de reloj después de llegar al estado CHECK. Por lo tanto, el valor máximo que puede tener que almacenar es 30(10, es decir, la suma de los valores máximos que podemos tener en las entradas A y B. Por lo tanto, harán falta 5 bits para la variable V. (En realidad, V podría ser de sólo 4 bits, dado que, para este algoritmo, el desbordamiento que se podría producir no afectaría al cálculo que se hace para obtener el MCD.) El valor para la variable C se elige con el selector s_C de acuerdo con la tabla siguiente: Operación

Selector s_C

Efecto sobre la variable

C+ = A

00

Almacenar el valor de la entrada A

C+ = C

01

Mantener el valor

C+ = C−D

10

Almacenar el resultado de la operación C−D

--

11

No se usa

11 de 16

75.562 · Fundamentos de Computadores · Práctica · 2019-20 · Estudios de Informática Multimedia y Telecomunicación

El valor para la variable D se elige con el selector s_D de acuerdo con la tabla siguiente: Operación

Selector s_D

Efecto sobre la variable

D+ = B

00

Almacenar el valor de la entrada B

D+ = D

01

Mantener el valor

D+ = D−C

10

Almacenar el resultado de la operación D−C

--

11

No se usa

Por último, el valor que toma la variable V se elige con el selector s_V según la tabla siguiente: Operación

Selector s_V

Resultado

V=V

0

Mantener el valor

V = C+D

1

Almacenar el resultado de la operación C+D

La operación de suma de C y D la haremos con un sumador de 4 bits y añadiremos al resultado el bit de transporte de la última etapa para obtener el resultado correcto, que puede llegar a ser de 5 bits. Para hacer las operaciones de resta aprovecharemos las características de los operandos que intervienen. Analizando el algoritmo se puede ver que el sustraendo siempre es menor o igual que el minuendo. Esto comporta que el resultado será un número menor que el minuendo. Consiguientemente, se podrá representar con 4 bits. Por lo tanto, podemos usar un sumador, con el bit de transporte de entrada a 1, para sumar el minuendo con el sustraendo complementado bit a bit. Es decir, haremos la operación como una resta en Ca2. El resultado será correcto, porque siempre será un número positivo y como mucho de 4 bits significativos. Por último, necesitaremos un comparador para conseguir la señal (C>D) y un par de puertas NOR y una OR para conseguir la señal ((C=0)+(D=0)). Con todo esto, el circuito completo para el EFSM de la fig. 2 queda de la forma siguiente:

12 de 16

75.562 · Fundamentos de Computadores · Práctica · 2019-20 · Estudios de Informática Multimedia y Telecomunicación

13 de 16

75.562 · Fundamentos de Computadores · Práctica · 2019-20 · Estudios de Informática Multimedia y Telecomunicación

SEGUNDA PARTE [35%] Se tiene que diseñar el controlador de llenado de un depósito de agua de 100cm de altura de forma que lo mantenga lleno. Cada vez que detecte que la altura del agua (H) baje del 50% de la capacidad del depósito, activará una bomba de llenado que estará en funcionamiento hasta que se supere el 95%. También se ocupará de avisar si el depósito está por debajo del 20% o por encima del 95%. El diagrama del sistema es el siguiente:

El controlador tiene tres salidas: ‒ A, para comunicar el estado de la alarma, que puede ser 00 para indicar que todo está funcionando correctamente, 01 para indicar que la bomba está parada y el depósito lleno (>95%), 10 para indicar que el depósito está por debajo del nivel de reserva ( 60. Si no lo es, hay que comprobar que la altura no sea superior a 95cm, es decir, que D < 15. Si es así, se tiene que pasar a un estado que cambie el valor de A (FULL) y, si no, debe mantenerse en INIT. Desde el estado FULL también se tienen que hacer las mismas comprobaciones de forma que, a medida que se vacíe el depósito, pueda abandonar este estado y pasar a INIT, con la alarma a 00. Para poner en marcha la bomba cuando la altura del agua es inferior al 50% (D>60) se pasa a PUMP. En este estado se guarda el valor que viene del sensor ( D), se pone en marcha la bomba (p=1), se inicia el temporizador (b=1) y se asigna el valor 00 a A que, de hecho, ya es el valor que tiene cuando se llega a ese estado. Seguidamente se espera a que la señal e pase a 0 para evaluar cómo ha evolucionado el nivel del depósito. En este estado de espera, WAIT, lo único que se hace es poner la señal b a 0, dejar p a 1 i mantener el valor de las variables. Cuando la señal e pasa a 1, se evalúa el nivel del depósito. Se pueden dar las situaciones siguientes: ‒

Que el nivel esté por debajo del nivel de reserva. Si, además, el nivel ha bajado respecto del último nivel registrado, se pasa al estado ALARM, donde se pone A a 11, se mantiene la bomba en marcha (p=1), se guarda de nuevo el valor del nivel, se pone el temporizador en marcha otra vez (b=1) y pasa a esperar que la señal e sea 1. En cambio, si el nivel no ha bajado, se pasa al estado RSRVOIR, donde la diferencia con ALARM es que se asigna el valor 10 a A, en vez del 11.

15 de 16

75.562 · Fundamentos de Computadores · Práctica · 2019-20 · Estudios de Informática Multimedia y Telecomunicación



Que el nivel no haya bajado del umbral de la reserva. En este caso, se evalúa si se ha superado el 95% de capacidad. Si es así, se pasa al estado FULL, donde se para la bomba. Si no, se vuelve al estado PUMP.

El diagrama de la ASM resultante es el siguiente:

16 de 16...


Similar Free PDFs