A.L.U son las siglas de Unidad Lógica y Aritmética, es la encargada de realizar las operaciones dentro de la CPU. Esta necesita de dos elementos adicionales para funcionar, los registros y los buses.
Un registro es un circuito compuesto por biestables capaz de almacenar información en formato binario. Un bus es un conjunto de líneas eléctricas, cuyo cometido es transportar información de un circuito a otro.
Los operadores con los que trabaja la A.L.U. se clasifica o bien dependiendo el número de operandos; Monádicos (Opera un solo dato) y Diádicos (Operan dos datos) o según la operación; Lógicos (AND, NOR,…), Aritméticos (Suma, Resta,…), Desplazadores (Lógicos, Aritméticos, circulares) u Otros (paridad, desbordamiento).
El tema 3 de las unidades teóricas hace una gran introducción a dicho tema, estructutura de la ALU, transferencia de registros, tipos de operadores, buses, periféricos, etc.…
Con esta práctica se buscan los siguientes objetivos:
1. Repasar brevemente el uso del entorno de diseño y simulación LOGISIM
2. Realizar el diseño de un banco de registros básico de 4 registros
3. Realizar el diseño de una ALU sencilla de 4 operaciones
4. Conformar un camino de datos compuesto por el banco de registros y ALU antes realidad, además de tres registros independientes adicionales
5. Comprobar el funcionamiento de este banco de datos para una serie de operaciones elementales simples.
6. Realizar el cronograma de algunas operaciones elementales
Ejercicio 1:
Este ejercicio era un ejercicio básico, para familiarizarnos con el programa, este consistía en crear un decodificador de dos bits binarios a base cuatro, tal como se puede ver en la imagen, y comprobar su funcionamiento.
Dentro de este ejercicio también pedía la implementación de un bus direccional y compartido de 8 bits capaz de comunicar tres registros entre sí, utilizando un dispositivo de entrada de 8 bits y un display, tal y como esta mostrado en la captura.
Ejercicio 2:
En este ejercicio ya la cosa se empezaba a complicar, pedía realizar el diseño e implantación del banco de 4 registros de 8 bits cada uno, utilizando entradas de selección de registro, de carga de datos y de control de triestado OE tal y como esta mostrado en la captura.
Ejercicio 3:
El siguiente ejercicio nos pedía realizar el diseño de una ALU de 8 bits con registro acumulador, con las siguientes operaciones:
A+B
A AND B
NOT A
DESPLAZAMIENTO DE 1 BIT:
Una vez obtenidos todos los operandos los uniremos todos a través de un multiplexor de 4 entradas con un seleccionador tal y como se muestra en la captura.
Ejercicio 4:
Una vez creados todos los elementos, este ejercicio nos pide unirlos todos y así crear un circuito capaz de realizar operaciones, es decir, una A.L.U. completa.
Ejercicio 5:
Una vez realizada la A.L.U nos pedía realizar todas estas operaciones y así poder comprobar el buen funcionamiento de esta.
- - 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.
Ejercicio 6:
Por último se nos pedía realizar el cronograma de las últimas operaciones, el cual os enseñamos a continuación.
Realizado por: Pablo Ramos Narvaez.
FAQ´s
- ¿Por qué algunas veces aparecen líneas naranjas al conectar diferentes componentes?
Porque el número de bits de datos en cada componte será distinto y debido a ello las líneas que los unen se ponen de color naranja. Para cambiar el número de bits de datos, se cambia en la barra lateral derecha que aparece al seleccionar cada componente.
- ¿Cómo añadir una letra o un nombre a un componente para diferenciarlo de otro?
Para poner una letra o un nombre a un componente del circuito, seleccionamos este componente y en la barra lateral derecha inferior, buscamos la pestaña etiqueta y en el recuadro de la derecha escribimos la letra o el nombre con el que queremos identificar dicho componente , pulsamos la tecla enter, y ya apareceria el nombre en ese componente.
- ¿Por qué el decodificador que controla los registros no funciona correctamente?
Porque en la etiqueta “Disabled Output” esta seleccionada por defecto la opción “Floating” y debemos cambiarla por la opción “Zero”. Con este cambio nuestro decodificador debería funcionar correctamente
- ¿Por qué selecciono un registro e introduzco un número y no se me carga en ese registro?
Porque puede que hayamos seleccionado un registro, por ejemplo el R1, pero no hemos activado la Carga en el registro, por tanto aunque tengamos seleccionado R1 ,el número seguirá en el bus hasta que no activemos la carga en un registro, en este caso el registro R1; una vez activada la Carga en R1 el número se cargara en dicho registro.
- ¿Puedo cambiar la orientación de los componentes?
Si ,se puede y además es muy sencillo.
Se puede hacer dos formas:
- Una forma es una vez seleccionado el componente elegir la orientación que deseemos a través de las flechas de dirección del teclado.
- Y la otra forma es: una vez seleccionado el componente elegir la orientación en la barra lateral derecha en la pestaña orientación.
- ¿Cómo seleccionar la operación que se desea realizar a través de un multiplexor?
Pues para seleccionar la operación que deseamos realizar debemos fijarnos que entrada ocupa el operador que realiza la operación que deseamos realizar, y dependiendo la entrada que ocupe debemos introducir el número de dicha entrada en formato binario en el seleccionador del multiplexor.
Realizado por: Juan García Pereira.
No hay comentarios:
Publicar un comentario