jueves, 9 de mayo de 2013

Resumen T3: ALU y camino datos

Introducción

En esta práctica del tema 3 “ALU y camino de datos”, hemos aprendido a implementar una ALU con una serie de operaciones básicas y un banco de registros básicos. Además hemos tenido que comprobar el funcionamiento de un banco de datos que ya se daba implementado. Para finalizar con la realización de un cronograma de algunas operaciones elementales.

Para llevar a cabo la realización de esta práctica hemos empleado el simulador “Logisim”, que había sido empleado con anterioridad durante el curso. El programa nos permite implementar diferentes circuitos electrónicos con gran facilidad. Contiene las puertas lógicas fundamentales además de una serie de circuitos básicos tales como multiplexores, decodificadores, sumadores, contadores…

Se nos proporcionó un tutorial de “Logisim” para poder llevar a  cabo la práctica y más tarde una serie de video tutoriales en los que se resolvían la mayor parte de los ejercicios propuestos paso a paso para facilitar el trabajo.


¿Qué hemos aprendido?


Bueno pues tras esta breve introducción, entremos en materia, la práctica se distribuye en 6 ejercicios, ordenados por orden de dificultad, siendo los dos primeros una simple introducción al simulador, para facilitar la resolución de los siguientes una vez comprendido el funcionamiento básico del programa.

Lo primero que se nos pide es la implementación de un decodificador de 2 bits binarios a base 4 y comprobar su funcionamiento.

Un decodificador es un circuito formado por un habilitador, y n entradas (en este caso 2) y 2n salidas de las cuales solo una, la función principal de los decodificadores es la  de direccionar espacios de memoria.

La implementación del circuito que se nos pide en el apartado “a” es la siguiente:


Para continuar el guion nos pedía que implementásemos un bus bidireccional de 8 bits,  y que comunicase tres  registros entre sí. Además el bus debía tener un display de dos cifras hexadecimales para visualizar los datos del bus. La implementación del cicuito es la siguiente:


Como se puede observar el display muestra el número 2 hexadecimal, para ello introdujimos dicho número directamente en el bus y activamos la carga de Raux0, que es el único que tiene almacenado un dato, una vez cargado dejamos de volcar datos en el bus y desactivamos la carga de Raux0 y para finalizar abrimos el buffer triestado de este mismo registro para volcar la información nuevamente en el bus.

Los ejercicios 3 y 4 de la práctica nos piden realizar el diseño de una ALU sencilla de 8 bits con un registro acumulador y que realice además las siguientes operaciones: “A+B”, “A AND B”, “NOT A” y “desplazamiento de un bit a la izquierda” (mediante las conexiones del multiplexor).

Un multiplexor es un circuito combinacional con varias entradas y una sola salida de datos, que posee además del habilitador, un selector de entradas para elegir qué entrada de datos transmitir a la salida.



La implementación de la ALU quedaría así:


Aquí vemos los diferentes circuitos y operaciones que componen dicha ALU:


A continuación, en el ejercicio 5 llevamos a cabo una serie de operaciones a realizar con la ALU implementada, para mostrar más detenidamente el funcionamiento de este  tipo de circuitos. 

Cargar en el registro R0 el dato 1Fh:



Cargar en el registro R1 el dato 21h:




Cargar en el registro R2 el dato 4Ah:



Cargar en el registro R3 el dato 35h: 



Sumar R1 y R2 y almacenarlo en Raux0:



Hacer la operación AND entre R0 y R3 y almacenarlos en Raux1:



Desplazar dos veces en registro R1 y almacenarlo en el registro Raux2:



Llevar R2 al acumulador y complementar su valor. El resultado almacenarlo en R0:



Por último y para finalizar con la práctica se nos pide la realización de un cronograma de las 3 últimas operaciones que habíamos hecho anteriormente. Para elaborar dicho cronograma hemos tenido en cuenta que las señales de captura se realizan en los flancos de subida y que las señales de selección y triestados son activos altos y cambian en los flancos de bajada.

Para aquellos que no sepan diseñar un cronograma, hay que tener en cuenta las siguientes cuestiones:

- Las señales de captura se realizan en medio ciclo de reloj, siendo suficiente dicho tiempo para capturar el dato.

- El dato contenido en cada registro cambia inmediatamente después de la señal de captura.

- Los triestados están activos durante un ciclo de reloj completo y los datos volcados en el bus solo estarán presentes mientras dicho triestado esté activo.

- NUNCA se puede activar a un tiempo una señal de captura y triestado de un mismo elemento del circuito.

Una vez tenidas en cuenta estas cuestiones os presento el cronograma de dichas operaciones:





Conclusión


Durante esta práctica hemos estudiado fundamentalmente el funcionamiento de una ALU obteniendo previamente conocimientos más básicos, como el funcionamiento de un banco de registros. Por último, habiendo adquirido ya los conocimientos necesarios de cómo implementar una ALU y entender su funcionamiento, hemos realizado un cronograma que nos da una vista detallada de los que está sucediendo tanto en la ALU como en los registros.

En esta práctica al igual que en la de MIPS, hay que ser meticuloso, ya que en todo momento debemos tener en cuenta el número de bits que está transfiriendo y recibiendo cada dispositivo. También son necesarios unos conocimientos básicos del funcionamiento de circuitos para no activar cargas y descargas a un tiempo y que se produzcan errores en las transferencias.










No hay comentarios:

Publicar un comentario