ALU Y CAMINO DE DATOS
En esta práctica aprendemos a realizar un circuito en el que intervienen una ALU, un banco de registros y tres registros independientes adicionales, y todos ellos unidos por un camino de datos. Seguidamente enumeramos los objetivos de dicha práctica y el desarrollo de cada punto para un mejor aprendizaje.
Objetivos a conseguir:
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 realizada, 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.
Primeramente, recordaremos el uso y funcionamiento básico del simulador LOGISIM donde describo a continuación una ligera presentación y uso del simulador.

Construir un circuito es más fácil insertando las puertas primero a modo de esqueleto para más tarde añadir el cableado al circuito. A medida que vayas dibujando cables, podrías encontrarte con algunos de color azul o gris. El azul en Logisim indica que el valor en ese punto es desconocido, y el gris indica que el cable no
está conectado a nada. Una vez que tu circuito esté acabado, ningún cable podrá estar ni azul ni gris.
Pero una vez que tu circuito esté acabado, ningún cable podrá estar ni azul ni gris. Todos los cables insertados deberían mostrarse verde clarito u oscuro.
Por otro lado no es necesario añadir comentarios al circuito para que funcione; pero si quieres enseñar tu circuito a alguien, en ese caso poner algunas etiquetas ayudará a entender el propósito de las diferentes partes de tu circuito. Cuando cambies el valor de entrada, Logisim te mostrará que valor viaja a través de un cable pintándolo de verde muy claro para indicar un 1 o verde oscuro para indicar un 0. Aquí os dejo un video de un ejemplo en Logisim:
Seguidamente vamos realizando lo que se pide en la práctica con una imagen de como iría quedando cada apartado y unos vídeos para complementar la comprensión.
DECODIFICADOR DE 2 BITS BINARIO A BASE 4.

BUS BIDIRECCIONAL Y COMPARTIDO DE 8 BITS COMUNICANDO TRES REGISTROS ENTRE SÍ.

BANCO DE 4 REGISTROS DE 8 BITS CADA UNO.

DISEÑAR LA ALU.

CIRCUITO FINAL
A continuación está el mismo circuito señalando lo que corresponde a cada parte que hemos ido diseñando.
Seguidamente en la práctica debemos realizar operaciones con el circuito anterior.
Antes de realizar las operaciones explicaré un poco como realizarlas y luego mostrare el resultado de cada una de ellas a través de unas imágenes que mostrarán el resultado final de cada dato introducido en su correspondiente registro.
Para guardar un dato en un registro que son los 4 puntos siguientes seguiremos los siguientes pasos:
-Primero ha de introducirse en el bus de datos el número que queremos meter en el registro.
-Luego seleccionamos a través del decodificador con D1 y D0 el registro donde queremos guardar el dato. - A continuación activamos la carga del banco para almacenar el dato. Siempre cargará cuando se pasa de 0 a 1 en la carga, lo que quiere decir que el flanco activo es el de subida.
1) Cargar en el registro R0 el dato 1Fh
2) Cargar en el registro R1 el dato 21h
3) Cargar en el registro R2 el dato 4Ah
4) Cargar en el registro R3 el dato 35h
Los siguientes apartados son operaciones que se hacen con los datos antes introducidos a través de la ALU, donde finalmente se guardará el resultado en un registro especificado.
5) Sumar R1 y R2 y almacenarlo en Raux0.

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

Debemos primero llevar el dato de R0 al Reg A y R3 al bus. Seguidamente hacer la operación AND seleccionando en el multiplexor 01 y cargando en el registro para almacenar el resultado. Cerrar el triestrado de salida de datos del banco de registro y abrir el que está a continuación del registro que almacena el resultado y activar la carga del Raux1.
7) Desplazar dos veces en registro R1 y almacenarlo en el registro Raux2

Para esta operación sencillamente seleccionamos R1 lo guardamos en Reg A seleccionamos la operación de desplazamiento que sería 11, cargamos en el registro siguiente la pasamos al bus activando el triestrado y metemos el nuevo dato en Reg A, hacemos lo mismo y cuando ya está el resultado final en el bus activamos carga de Raux2.
8) Llevar R2 al acumulador y complementar su valor. El resultado almacenarlo en R0

Para éste último seleccionamos R2 lo llevamos al acumulador (Res A) seleccionamos la operación de complementar (10) y lo guardamos en el registro posterior. Después lo pasamos al bus, teniendo en cuenta que el bus no contiene anteriormente otro dato (si hace falta cerrar el triestrado del banco de registros), y seleccionamos R0 y cargamos almacenando el dato.
A continuación dejo un video donde se realizan las operaciones anteriores para una mayor aclaración.
Finalmente y la parte más importante de este tema es la realización de cronogramas. En éstos queda reflejado las distintas activaciones y desactivaciones de las partes del circuito para que éste funcione en un tiempo de reloj lo menor posible. Para realizarlo debemos tener en cuenta las distintas señales que podemos utilizar en los cronogramas:
· Flanco de subida (Carga)

·De nivel (Triestado)

· Flanco de subida (Carga)

·De nivel (Triestado)

En el último ejercicio nos pide hacer un cronograma de las tres últimas operaciones. A continuación lo realizamos para cada uno de ellos. Debemos saber que las que empiezan por C son de carga y las que empiezan por T de control de triestado.
-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
FAQs
¿ Que es el Logisim ?
Logisim es un simulador lógico que permite diseñar y simular circuitos electrónico
digitales mediante una interfaz gráfica de usuario. Lo podremos encontrar para
windows, linux y mac.
¿ Donde puedo descargarlo ?
Podréis encontrarlo aquí,
http://ozark.hendrix.edu/~burch/logisim/es/index.html
¿ Que significan los colores de los cables ?
Verde oscuro o claro, no te preocupes el diseño esta correcto.
Rojo, estas dando dos datos distintos en un mismo cable.
Azul indica que el valor en ese punto es desconocido.
Gris indica que el cable no está conectado a nada
Naranja, anchos incompatibles
¿ Que significa ancho incompatible y como lo soluciono ?
Debes revisar las dos piezas indicadas ya que el numero de bits de datos sera distinto
en estas piezas.
¿ Como consigo unir varias salidas en una sola entrada o al contrario ?
En el panel del explorador vais a wiring dentro encontrareis una pieza llamada
separador.
No hay comentarios:
Publicar un comentario