Está en la página 1de 7

Laboratorio 1 - Diseño de una ALU.

Cristhiam Felipe González Méndez - Juan Sebastián Mora Zarza - Diego Armando Torres Carmona
Pontificia Universidad Javeriana
Organización de Computadores
13 de febrero de 2020

Resumen
Texto de resumen. Texto de resumen. Texto de resumen. Texto de resumen. Texto de resumen. Texto
de resumen. Texto de resumen. Texto de resumen. Texto de resumen. Texto de resumen. Texto de resumen.
Texto de resumen. Texto de resumen. Texto de resumen. Texto de resumen. Texto de resumen. Texto de
resumen. Texto de resumen. Texto de resumen. Texto de resumen. Texto de resumen. Texto de resumen.
Texto de resumen.

1. Introducción
La unidad lógica aritmética, también conocida como ALU (siglas en ingles de arithmetic logic unit), es un
circuito digital que calcula operaciones aritméticas (como suma, resta, multiplicación, etc.) y operaciones lógicas
(sí, no, o, y) entre dos números. Una ALU debe procesar números usando el mismo formato que el resto del
circuito digital. Para los procesadores modernos, este formato casi siempre es la representación del número binario
de complemento a dos. La ALU se compone básicamente de: Circuito Operacional, Registros de Entradas,Registro
Acumulador y un Registro de Estados, conjunto de registros que hacenposible la realización de cada una de las
operaciones.La mayoría de las acciones de la computadora son realizadas por la ALU.
A continuación se mostrará como se compone una ALU, como se muestra en la figura 1.

Figura 1: Unidad Aritmética lógica.

1
Donde A corresponde al primer operando y B al segundo operando, estos dos conforman el bus de datos
entrada. F es el bus de control, es decir la operación a realizar, S es el bus de estado o bandera y R es el registro
de resultado, bus de datos de salida.

2. Requerimientos y especificaciones del sistema


Se requiere el diseño de un sistema digital en el que se visualice en pantalla 8 bits, las operaciones aritméticas
(suma y resta binarias), las operaciones lógicas (AND, NOT, XOR y OR), dejar pasar el primer operando al
resultado y también una que el resultado sea libre. Tendrá por entradas de datos dos números (A, B) cada uno
de cuatro bits, y una entrada de control (F) de 2 bits para selección de las 8 distintas operaciones. El resultado
(R) será de 8 bits.
En la siguiente tabla, Cuadro 1, se puede ver lo comentado anteriormente.

F Operación a realizar Bandera S


000 R=A+B Cout
001 R=A-B 1, si R<0
010 R = A Xor B 1, si R=0
011 R = A and B 1, si R=0
010 R = A or B 1, si R=0
011 R = A not B 1, si R=0
010 R=A 1, si R=0
011 R = libre Libre

Cuadro 1: Operaciones a implementar.

3. Proceso de diseño de la ALU


Para el diseño de la ALU, tenemos que comenzar con el diagrama de entradas y salidas, o también llamado
caja negra, donde veremos que información le entra al sistema y que salidas se producen sin tener en cuenta, por
momento, el proceso interno, como se muestra en la figura 2.

Figura 2: Diagrama de entradas para el diseño de la ALU.

Vemos que al sistema tiene 3 entradas y dos salidas. Las entradas se componen por dos operandos, los cuales
tienen un tamaño de n bits, los cuales se les va a realizar las operaciones lógicas y aritméticas, y también entra el
control de operaciones que tiene un tamaño de 3 bits; como salidas tenemos el resultado imprimido en el display
7 segmentos y una bandera que en este caso será un LED.
También se encuentra el diagrama en bloques el cuál será mostrado en la figura 3.

2
Figura 3: Diagrama en bloques para el diseño de la ALU.

El bloque Control se encarga de gestionar el funcionamiento de cada bloque interno, además de eso, también
se encarga de realizar las operaciones lógicas como lo son la Xor, Not, Or y la And. A este bloque le entran los
dos operandos, los cuales son A y B, y además de esto un selector de operaciones llamado F; y le salen los dos
operandos, y una señal llamada Sel, que puede tomar el valor de uno o cero, siendo uno para la suma y cero para
la realización de la resta, también se encuentra la salida R que es el resultado a mostrar posteriormente en el
display de 7 segmentos y por último una salida LED.
El bloque ADDER SUBTRACT, se encarga de realizar las operacion aritméticas entre los dos operandos. A
este bloque le entran dichos operandos (A y B) y añadido a esto una señal llamada Sel, que le indicará a este
bloque si debe realizar una suma o resta, siendo uno suma y cero la resta; a este bloque le salen dos señales
RRS donde se mostrará el resultado de la operación aritmética sea suma o resta, y en la señal S, se mostrará el
overflow en caso de la suma o si es negativo en caso de la resta.
El bloque BCD, es el encargado de mostrar el resultado en el display de 7 segmentos las unidad y decenas (en
caso de que se presente el caso). A este bloque le entran la señal del resultado, y le salen dos señales; SSEGU
para el caso de las unidades y SSEGD para el caso de que haya decenas.

4. Resultado de ssíntesis
Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido
de la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección.
Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido de
la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección.
Contenido de la sección.
Este es un ejemplo de como referenciar la Figura 7. Si no es una figura propia, se debe referenciar a la respectiva
fuente 1 .

5. Análisis del diagrama RTL


Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido
de la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección.
1 Tomado de http://www.jps-pcb.com/blog/3-main-failure-modes-of-electronics.html

3
pcb.png

Figura 4: Un ejemplo para incluir una figura.

Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido de


la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección.
Contenido de la sección.
Este es un ejemplo de como referenciar la Figura 7. Si no es una figura propia, se debe referenciar a la respectiva
fuente 2 .

pcb.png

Figura 5: Un ejemplo para incluir una figura.

2 Tomado de http://www.jps-pcb.com/blog/3-main-failure-modes-of-electronics.html

4
6. Simulaciones
Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido
de la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección.
Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido de
la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección.
Contenido de la sección.
Este es un ejemplo de como referenciar la Figura 7. Si no es una figura propia, se debe referenciar a la respectiva
fuente 3 .

pcb.png

Figura 6: Un ejemplo para incluir una figura.

7. Análisis de resultados
Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido
de la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección.
Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido de
la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección. Contenido de la sección.
Contenido de la sección.
Este es un ejemplo de como referenciar la Figura 7. Si no es una figura propia, se debe referenciar a la respectiva
fuente 4 .

8. Anexo
Ejemplo de como incluir código en VHDL y referencia el código fuente 1:

Listing 1: Ejemplo de como incluir código fuente.


library IEEE ;
3 Tomado de http://www.jps-pcb.com/blog/3-main-failure-modes-of-electronics.html
4 Tomado de http://www.jps-pcb.com/blog/3-main-failure-modes-of-electronics.html

5
pcb.png

Figura 7: Un ejemplo para incluir una figura.

use IEEE . STD_LOGIC_1164 . ALL ;


use IEEE . S TD _LO GI C_ UNS IG NE D . ALL ;

entity up_dn_ counter_ top is


Port ( CLK : in STD_LOGIC ; -- input clock
LED : out STD_LOGIC_VECTOR (7 downto 0);
DIR : in STD_LOGIC ); -- direction of counter ( up or down )
end up_ dn_count er_top ;

architecture Behavioral of up_dn_c ounter_t op is


signal count : STD_LOGIC_VECTOR (7 downto 0) := X "00";
begin
process ( CLK , DIR )
begin
if ( CLK ’ Event and CLK = ’1 ’) then
if ( DIR = ’1 ’) then
count <= count + ’1 ’; -- counting up
elsif ( DIR = ’0 ’) then
count <= count - ’1 ’; -- counting down
end if ;
end if ;
end process ;
-- display count on LEDs
LED <= not count ;
end Behavioral ;

Referencias
Referencia 1. Libro. Editorial. AÑo.

6
Referencia 2. Libro. Editorial. Año.

También podría gustarte