Computing">
Nothing Special   »   [go: up one dir, main page]

Informe ALU 9969 Narvaez

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 14

UNIVERSIDAD DE LAS FUERZAS ARMADAS – ESPE

DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA MATERIA:

MATERIA: SISTEMAS BASADOS EN MICROCONTROLADOR

INFORME DE LABORATORIO N# 1

TEMA: DISEÑO DE UNA ALU

NOMBRE: Bryan Narváez

NRC: 9969

DOCENTE: Ing. Pablo Francisco Ramos

FECHA: 12/11/2021

SANGOLQUÍ – 2021
1. TÍTULO.

Diseño de una ALU

2. OBJETIVO GENERAL.
● Diseñar y realizar la implementación virtual de una ALU (unidad aritmética
lógica), vista en clase, considerando la salida necesaria y utilizando circuitos
de mediana y baja escala de integración vistas en clase.

3. OBJETIVO ESPECÍFICOS.
● se llevan a cabo a través de compuertas y circuitos digitales.
● Conocer que papel cumple la ALU en un CPU, su arquitectura y
funcionamiento.
● Realizar el diseño y simulación de una ALU de 4 bits.

4. MARCO TEÓRICO.
Una ALU es una unidad aritmética lógica. Es una unidad de creación fundamental de cualquier
procesador de CPU en el mundo informático actual. Lógicamente, su rendimiento y aplicación son
relativamente fáciles de entender. Dos números enteros en forma de bits se aplican a la entrada de
la ALU y otro terminal recibe las instrucciones para manipular dicha entrada. Estas instrucciones,
como el nombre de unidades lo indica, son cálculos matemáticos tales como la adición o
sustracción. Una vez que la ALU ha realizado la manipulación ordenada, emite el valor correcto.
Las dos entradas se llaman más apropiadamente operandos o la información que será operada.
La instrucción para la operación requerida se conoce como el codop (código de operación). Los
dispositivos ALU modernos pueden realizar una gran cantidad de funciones simples de los
operandos suministrados. Además de la adición y sustracción básica pueden cambiar los datos de
izquierda a derecha, invertir datos Y/O datos, enviar datos intactos, incrementar o disminuir por 1,
rotar los datos de alguna forma y aún muchas más posibilidades. El único requisito de que la
mayoría de los diseños tienen en la ALU es que estas operaciones siguen siendo muy sencillas y
rápidas. Para conocer los requisitos matemáticos más complejos a menudo hay un circuito de
procesamiento de nivel superior, que utiliza los simples mecanismos de la ALU para encontrar en
última instancia la respuesta, pero la propia ALU no realiza estas complejidades

5. PLANTEAMIENTO DEL PROBLEMA.

En una ALU se llevan a cabo todas las operaciones aritméticas y lógicas de una
computadora.
La ALU recibe datos binarios los cuales se almacenan en la memoria y ejecutan
operaciones aritméticas y lógicas con dichos datos, de acuerdo a las
instrucciones provenientes a la unidad de control.
Diseñar una ALU de 2 bits de acuerdo al diseño estudiado en las diapositivas de clase.

6. DISEÑO.
Se presenta las diferentes etapas de resolución del problema planteado por medio
de un diagrama de bloques:

1.- Diseño de 2.- Diseño de la


la selección parte lógica y
lógica y aritmética de la 3.- Implementación y
simulación
aritmética de ALU
la ALU

5.- Comprobación 4.- Simulación


de de la ALU en
funcionamiento lenguaje VHDL.
de la ALU.

Para el diseño, partimos de las diapositivas vistas en clase. Donde requerimos de una unidad
aritmética lógica que consta de parte lógica y aritmética. El control lo realizará un Switch que nos
indicará si el ALU realiza una operación lógica o aritmética.
PARTE LÓGICA.
Para la parte lógica de la ALU, partimos de la tabla de verdad.

Para la implementación, nos bastará utilizar las compuertas lógicas que ya conocemos realizando
las operaciones bit a bit para los cuatro bits necesarios. Y los resultados obtenidos, serán la
entrada de un multiplexor y todo estará definido por las entradas de selección.
Desarrollo de las operaciones lógicas.

Switch selector de datos.

Multiplexores utilizados.

Finalmente, realizamos las conexiones a los leds indicadores de salida.

PARTE ARITMÉTICA.
Para realizar estas operaciones lo importante es el sumador de 4 bits, pues a partir de este
integrado es posible realizar todas las operaciones necesarias. Además, hay que considerar que
para ciertos casos necesitamos de un acarreo inicial para completar con las operaciones.
Con propósitos de optimización utilizaremos el acarreo inicial como la entrada de selección más
significativa. Por tanto al reacomodar la tabla de verdad, y especificar lo que debe suceder con los
números en las operaciones, obtenemos la siguiente tabla optimizada.

Para la implementación es necesario diseñar un circuito de control que nos permita obtener el
número necesario dependiendo de la operación y combinación.
CIRCUITO DE CONTROL DE A.
Basándonos en la tabla de verdad, nos podemos dar cuenta que en 6 combinaciones el número A
se mantiene igual. En la combinación 6, necesitamos que A sea negado, y que A sea cero en la
combinación 7.
Para lograrlo necesitaremos de compuertas XOR, pues será nuestro control para permitir el paso
del número original o del número negado.
Si sabemos que al ingresar bits de 0 el número A pasará igual, pero al ingresar un bit 1 el número
A se negará. Para la activación de la compuerta XOR consideramos la combinación necesaria de
las entradas de selección. En este caso la función lógica que activará o no la negación es:
X = S2 * S1 * S0’

A partir de la salida de estas compuertas XOR, conectaremos a una compuerta nand donde
controlaremos que el número A sea 0 o no. En nuestro caso, solo necesitamos un cero en la
combinación 7. Por tanto, la función lógica es:
Y = S2 * S1 * S0
La conexión a los bits ingresados.

Por tanto:

Finalmente, las salidas se dirigirán al sumador de 4 bits.

CIRCUITO DE CONTROL DE B.
Basándonos en la tabla de verdad, nos podemos dar cuenta que en 2 primeras combinaciones: 0 y
1 el número B se mantiene igual. En la combinación 4, 5 y 7, necesitamos que B sea negado, que
B sea cero en la combinación 3. Mientras que en la combinación 2 requerimos de que B sea el
equivalente a F, es decir, que sea 1111. Finalmente en la combinación 6, necesitamos que el bit
menos significativo sea 1 y el resto 0.
Para lograr el paso del número B negado o no necesitaremos de compuertas XOR, pues será
nuestro control para permitir el paso del número original o del número negado.
Si sabemos que al ingresar bits de 0 el número B pasará igual, pero al ingresar un bit 1 el número
B se negará. Para la activación de la compuerta XOR consideramos la combinación necesaria de
las entradas de selección. En este caso la función lógica que activará o no la negación es:
X1 = S2 * (S1’ + S0)

A partir de la salida de estas compuertas XOR, conectaremos a una compuerta nand donde
controlaremos que el número B sea 0 o no. En nuestro caso, solo necesitamos un cero en la
combinación 3. Por tanto, la función lógica es:
Y1 = S2’ * S1 * S0

La conexión a los bits ingresados.

Para controlar que el número B sea 0xF requerimos de compuertas and, que controlen la
activación de esta función, solamente cuando las entradas de selección estén en la combinación 3.
Ahora, la función lógica que permitirá la obtención es:
T0 = S2’ * S1 * S0’

Finalmente, en la combinación 7 tendremos que obtener un número 1 en el bit menos significativo,


mientras que en los demás necesitaremos de 0. Por tanto, para el bit menos significativo la función
será.
H0 = S2 * S1 * S0
Para los bits más significativos necesitaremos de la siguiente función. H1 = (S2 * S1 * S0)’

Ahora para escoger que operación será ocupada utilizaremos un mux 4 a 1, donde las entradas
serán las funciones que desarrollamos, es decir Y, H, T. las entradas de selección determinarán
que variación de B obtendremos.

La función I0, determina la activación del número B, B negado y el dígito 0 en todos sus bits. Por
tanto, su función resultante es:
I0 = E = S1 * S0’

La entrada I1 asegura que el número B tenga 0xF. La función resultante es: W1 = S2’ * S1 * S0’
I2 controla que el bit menos significativo sea 1 y el resto sea 0. La función resultante es: W2 = S2 *
S1 * S0’

Para las entradas de selección colocaremos la función E, pues nos asegura que obtendremos la
función de I0. La otra entrada de selección será definida por W, que es:
W = W2 * (W1 + W2)

Por tanto, los multiplexores utilizados son:

Ahora las salidas de los multiplexores serán conectadas a un sumador que se encargará de
realizar todas las operaciones de acuerdo a lo requerido.

Por tanto, el circuito de control para B es:


Adicionalmente consideramos el circuito de anti rebosamiento.
Para obtener los resultados, consideramos un multiplexor de 4 a 1 que determine que salidas
serán necesarias.

Finalmente, realizamos las conexiones a los leds indicadores de salida.

Por tanto, el circuito diseñado.


7. CODIGO

• Test-bench

library IEEE;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity test_ALU is end test_ALU;

architecture test of test_ALU is component ALU


port(
S,A,B : in std_logic_vector(3 downto 0); Cout: out std_logic;
Resul: out std_logic_vector(3 downto 0)
);
end component ALU;

signal A,B,S, Resul: std_logic_vector(3 downto 0);


signal Cout: std_logic;
begin
operation:ALU
port map(A=>a, B=>b, S=>s, Resul=> resul, Cout => cout); --Maps ports
from component to test bench

stimulus: process
begin -- process stimulus
a<="1010"; b<="0100"; s<= "0000"; wait for 20 ns;
a<="1010"; b<="0100"; s<= "0001"; wait for 20 ns;
a<="1010"; b<="0100"; s<= "0010"; wait for 20 ns;
a<="1010"; b<="0100"; s<= "0011"; wait for 20 ns;
a<="1010"; b<="0100"; s<= "0100"; wait for 20 ns;
a<="1010"; b<="0100"; s<= "0101"; wait for 20 ns;
a<="1010"; b<="0100"; s<= "0110"; wait for 20 ns;
a<="1010"; b<="0100"; s<= "0111"; wait for 20 ns;
a<="1010"; b<="0100"; s<= "1000"; wait for 20 ns;
a<="1010"; b<="0100"; s<= "1001"; wait for 20 ns;
a<="1010"; b<="0100"; s<= "1010"; wait for 20 ns;
a<="1010"; b<="0100"; s<= "1011"; wait for 20 ns;
a<="1010"; b<="0100"; s<= "1100"; wait for 20 ns;
a<="1010"; b<="0100"; s<= "1101"; wait for 20 ns;
a<="1010"; b<="0100"; s<= "1110"; wait for 20 ns;
a<="1010"; b<="0100"; s<= "1111"; wait for 20 ns;
end process stimulus;
end test;

8. CAPTURAS DE LA SIMULACION

Implementación
Ilustración 17: Implementación de la ALU

Ilustración 18: Implementación de la ALU

Ilustración 19: Implementación de la ALU

Ilustración 20: Implementación de la ALU

9. CONCLUSIONES.
● La ALU puede realizar varias operaciones ya sean lógicas o aritméticas a través de
circuitos integrados y compuertas lógicas que realicen la función que se desee a
través de selectores.
● Las operaciones que se llevan a cabo en la parte lógica de la ALU son de bit a bit
por lo que el número de compuertas depende del número de bits en los operandos
A y B que ingresen a la misma. Los resultados también son influenciados por el
número de bits de los operandos ya que por cada bit se necesita un multiplexor.
● La parte aritmética de la ALU utiliza mucho hardware, ya que por cada operación es
necesario realizar su respectivo circuito digital, por lo que resulta muy eficiente
realizar la optimización del diseño.

10. RECOMENDACIONES.

• Se recomienda realizar el respectivo análisis y simulación del circuito en Proteus


para la ALU de 2 bits, con el fin de no obtener mayores dificultades en la
implementación del circuito.
• Para la correcta simplificación se debe realizar un buen análisis con respecto a las
tablas operacionales de cada función que se a de realizar, ya que esto nos beneficia
en la implementación por la disminución de compuertas a utilizarse, sobre todo en la
parte aritmética.
11. BIBLIOGRAFÍA.

• (Argüello,2015) Argüello, D.,Pérez, S., Facchini, H., “Arquitectura de computadores”,


Universidad Tecnológica Nacional – Facultad Regional Mendoza, 2015, accedida 07
Noviembre 2021, online available:
https://www.researchgate.net/publication/305993554_ Arquitectura_de_Com
putadoras_-_7_Version

• (Ruz, 2019) Ruz, J., Curso “Estructura de computadores”, Universidad Complutense


de Madrid,2019, accedida 07 Noviembre 2021, online available:
http://www.fdi.ucm.es/profesor/jjruz/EC-IS/

• J.Tocci, R. (2007). Sistemas Digitales (10.aed.). Pearson Educación.


“Sistemas digitales”. Recuperado desde:
https://doi.org/10.1177/0269881118806297

También podría gustarte