Práctica 2 (Tema 3)

 Resumen


- Qué se necesita para realizar la práctica
Lo primero que necesitaremos es el programa Logisim, si no lo tenemos lo podemos descargar aquí: http://sourceforge.net/projects/circuit/files/2.7.x/ 2.7.1/logisim-win-2.7.1.exe/download

- Cómo implementar un decodificador
 Primeros añadimos 2 entradas  ( H:Habilitador y S:Selector) (Atajo: Ctrl-4),. Luego nos vamos a “Plexores’’ y añadimos un “Decodificador”. Unimos las 2 entradas H y S con el Decodificador y añadimos 4 salidas( S1,S2,S3,S4) (Atajo: Ctrl-5) .





- Cómo implementar el camino de datos
Añadimos una entrada de datos (D) con 8 bits de datos. Luego, nos vamos a “Puertas” y añadimos un triestado , “Buffer controlado” en Logisim junto a su entrada de control (T). A continuación, añadiremos tres registros implementados con Biestables D. Para ello vamos a “Memoria” y agregamos 3 Biestables tipo D, y para cada uno añadiremos 1 entrada de control de carga (C1, C2, C3) y un triestado, en Logisim un Buffer controlado con su respectiva entrada de control (T1, T2, T3). Por último, añadiremos un “Display Hexadecimal” para visualizar los datos que circulan por el camino de datos. Para ello, necesitaremos dos Display Hexadecimal, ya que nuestros datos son de 8 bits se necesitan 8/4=2 dígitos hexadecimales. Vamos a “Input/Output” y añadimos 2 “Hex Digit Display”. Por último, debemos añadir un separador para llevar los 4 bits menos significativos al dígito hexadecimal de la izquierda y los 4 restantes al otro.







- Cómo implementar una ALU en Logisim?
Pasos para implementar una ALU de 8 bits en Logisim con las siguientes operaciones:

● A + B
● A AND B
● NOT A
● Desplazamiento 1 bit a la izquierda

- Paso 1: Implementar cada operación por separado

1º) A + B
Primeros añadimos 2 entradas ( A y B ) (Atajo: Ctrl-4), luego seleccionamos cada una y le damos click derecho y le damos a “Mostrar atributos’’ y cambiamos los bits de datos a 8. Luego nos vamos
a “Aritmética’’ y añadimos un “Sumador”. Unimos las 2 entradas A y B con el Sumador y añadimos una salida ( A+B ) (Atajo: Ctrl-5) cambiándole los bits de datos a 8 en “Mostrar atributos”. Por último, para el acarreo previo, añadimos otra entrada ( C ) y una salida para el acarreo final ( Cf ).

2º) A AND B
Primeros añadimos 2 entradas ( A y B ) (Atajo: Ctrl-4), luego seleccionamos cada una y le damos click derecho y le damos a “Mostrar atributos’’ y cambiamos los bits de datos a 8. Luego nos vamos
a “Puertas’’ y añadimos una “Puerta AND”. Unimos las 2 entradas A y B con la puerta AND y añadimos una salida ( A AND B ) (Atajo: Ctrl-5) cambiándole los bits de datos a 8 en “Mostrar atributos”.

3º) NOT A
Primeros añadimos 1 entrada ( A ) (Atajo: Ctrl-4), luego la seleccionamos y le damos click derecho y le damos a “Mostrar atributos’’ y cambiamos los bits de datos a 8. Luego nos vamos a “Puertas’’ y añadimos una “Puerta NOT”. Unimos la entrada A con la puerta NOT y añadimos una salida ( NOT A ) (Atajo: Ctrl-5) cambiándole los bits de datos a 8 en “Mostrar atributos”.

4º) Desplazamiento de 1 bits a la izquierda:
Primeros añadimos 1 entrada ( A ) (Atajo: Ctrl-4), luego la seleccionamos  le damos click derecho y le damos a “Mostrar atributos’’ y cambiamos los bits de datos a 8. Luego nos vamos a “Wiring’’ y añadimos
dos “Separadores”, luego en “Mostrar atributos” cambiamos tanto “Fan Out” como “Bits de entrada” a 8 bits en cada separador. Unimos el primer separador a la entrada (A), luego unimos los dos separadores como indica la figura, añadiendo una salida (D7) y una entrada ( D0 ). Por último, añadimos una salida (S) cambiando los bits de datos a 8 en “Mostrar atributos”.






Paso 2: Crear un nuevo circuito y cargar las librerías de cada operación. Para ello, hacemos click en Proyecto > Cargar Librería > Librería Logisim. Repetimos la misma operación para agregar las 4 operaciones al proyecto.



Paso 3: Implementar la ALU con las 4 operaciones
Una vez que hemos incorporado a nuestro proyecto las librerías de nuestras 4 operaciones procedemos a implementar la ALU. Primero, añadimos los dos operandos A y B con 8 bits de datos. Luego, añadimos cada una de las operaciones (A+B, A AND B, NOT A, Desp izq). Añadimos un multiplexor, en la pestaña “Plexores” y seleccionamos “Añadir multiplexor”, para poder seleccionar el resultado de la operación deseada mediante los bits de selección (S), que se trata de una entrada con 2 bits de datos, como se muestra en la figura. Luego, habría que añadir un habilitador para que el multiplexor este activo. Por último, añadimos la salida para el resultado de la operación seleccionada.





Trabajo realizado por Salvador Carmona Roman




FAQ

1ª) ¿Es necesario tener instalado logisim para su utilización?
No, puesto que es un ejecutable.


2ª) ¿Qué tipo de operaciones se llevan a cabo dentro de la ALU?
Se llevan a cabo los siguientes tipos de operaciones: Aritméticas, Lógicas, Desplazamientos y otros.

3ª) ¿Se realizan simultáneamente todas las operaciones dentro de la ALU?
Sí, puesto que el multiplexor es el que selecciona el resultado de la operación deseada, por tanto, todos han
de llevarse a cabo a la vez.


4ª) ¿Por qué no se obtienen los resultados correctamente de la ALU?
Si se han seguido correctamente las instrucciones, posiblemente el fallo se deba a que no se ha activado el habilitador del multiplexor.
Se resuelve poniendo el habilitador a 1.


5ª) ¿Por qué no se muestra correctamente el display del camino de datos?
Posiblemente se deba a que el separador no esta correctamente implementado. Debemos configurar el
separador estableciendo el parámetro “Fan Out” a 2 con “Bits de datos” a 8 y luego uniendo la primera salida (0-3) con el display de la izquierda y la otra salida (4-7) unida al otro display.


Trabajo realizado por Francisco Javier Tizon Caro

No hay comentarios:

Publicar un comentario