Está en la página 1de 6

UNIVERSIDAD NACIONAL AUTONOMA DE

MÉXICO
Facultad de Ingeniería

Laboratorio de Diseño Digital Moderno


Practica#5 “Diseño de una Unidad Lógica Aritmética”

Profesora: Ing. María del Pilar Valencia Montes

Alumno: De León López Alexis

No. Cuenta: 422042716

Carrera: Ingeniería en Computación

Grupo: 1

Fecha de entrega: 29-Marzo-2024

Semestre: 2024-2
Introducción
En esta práctica aprenderemos a diseñar una Arithmetic Logic Unit o Unidad Aritmética Lógica
(ALU), un circuito lógico capaz de realizar operaciones aritméticas y operaciones lógicas entre los
valores de los argumentos. Para diseñar un circuito así debemos analizar la manera más optima
de ingresar los argumentos en la FPGA.

El problema que ha sido propuesto en esta ocasión es una ALU capaz de realizar 4 operaciones
diferentes.

Desarrollo
En este caso deberemos ser capaces de elegir la operación a realizar, así como los argumentos
de entrada, que serán tan solo dos números de 4 bits, esto debido a que tomamos en cuenta las
limitaciones de la FPGA para la entrada de argumentos, dejando las ultimas dos entradas para
entrada de control de operaciones.
Para las entradas del primer numero ocuparemos los switches del 9 al 6, para el segundo numero
ocuparemos del switch 5 al 2 y para las entradas de control el switch 1 y 0.
SW 9 SW 8 SW 7 SW 6 SW 5 SW 4 SW 3 SW 2 SW 1 SW 0
A B C

El diagrama de bloques queda así:

C(1:0)

A(3:0)
R(7:0)
B(3:0)

La única tabla de verdad que ocuparemos será para las entradas de control, y quedaría:
C0 C1 R

0 0 A*B

0 1 A+B

1 0 A and B

1 1 A or B
Al desarrollar todo el problema en el código VHDL, el código quedaría:

Importamos las librerías necesarias para trabajar, creamos la entidad donde metemos las variables
para A y B y para no complicarnos los resultados serán mostrados en los LEDS del 0 al 7. En la
arquitectura colocamos la lógica para las operaciones que deseamos realizar y que entrada debe
tener las líneas de control para realizarse.
En el Pin Planner asignamos los pones para la entrada y salida, en el caso de entrada ocuparemos
todos los switches y para la salida los LED’s del 0 al 7.

Después de todo esto, compilamos viendo que el código funciona adecuadamente.


Conclusión
En mi caso me toco el numero 1 para las operaciones de multiplicación y suma binaria, en las
operaciones de AND y OR ocupare números al azar.
Imagen #1. Operación multiplicación

Al multiplicarse 1*1, el resultado es 1 o en binario de 8 bits es “00000001”

Imagen #2. Operación de sumatoria

Al sumarse 1+1, el resultado es 2 o en biniaro de 8 bits es 00000010


Imagen #3. Operación AND

Elegi el numero 0110 en binario o 6 en decimal para A y 0011 para B o 3 en binario, como en
binario solamente tienen el mismo valor en la segunda posición el LED 1 es el único que se
enciende.
Imagen #4. Operación OR

Ocupando los mismos números de la imagen anterior, al ser la operación OR solo uno de los dos
debe de los dos bits que se le mandan a la operación lógica para que el resultado sea 1, así que
por eso los LED’s del 0 al 2 son los que se encienden y el LED 3 no debido a que ninguna de sus
entradas envió un 1.
En conclusión, esta practica nos fue de ayuda para adentrarnos en las operaciones lógicas y
aritméticas, con las cuales somos capaces de realizar distintos cálculos ya sea a nivel de números
o de bits.
Bibliografía
Chávez Rodríguez, Norma Elva. Guevara Rodríguez, Socorro. Flores Olvera, Vicente. Prieto
Meléndez, Rafael. (2023). Practicas para Diseño Digital Moderno. Universidad Nacional Autónoma
de México. http://www.ptolomeo.unam.mx:8080/xmlui/handle/RepoFi/18591

También podría gustarte