Sie sind auf Seite 1von 16

1

UNIVERSIDAD NACIONAL SAN AGUSTIN DE AREQUIPA

ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA

LABORATORIO DE MICROELECTRONICA:

UNIDAD ARITMETICA LOGICA

Alexander B. Hilario T.

Ccayllahua Huamani Jesus


Lopez Quispe Marx
Luque Lopez Gidel
Phocco Chuchullo Dante

5 de abril de 2019
1. OBJETIVOS

• Utilizar la descripción estructural y la descripción concurrente en VHDL.


• Probar circuitos combinacionales en un FPGA.

2. CODIFICACION EN VHDL

• Revise el material del curso

3. DESARROLLO DE LA PRACTICA

• Problema: Unidad aritmética lÓgica de 4 bits. Este circuito selecciona entre operaciones
aritméticas (Valor absoluto y suma) y operaciones lógicas (XOR y AND). Solo un resultado
(valor hexa decimal) puede ser mostrado en un display de 7 segmentos. Este es seleccionado
por la entrada sel(1..0).
• Entrada EN: Si EN = 1, el resultado aparece en el display de 7 segmentos. Si EN = 0, todos
los LEDs en el display de 7 segmentos están apagados. Operaciones aritméticas: Las entradas
A y B de 4 bits son tratadas como números unsigned.

A+B

|A + B|

• Operaciones lógicas (A xnor B, A nand B). Estas operaciones son bit a bit.
• Nexys-4 DDR: Cada display de 7 segmentos tiene entradas activas- bajas y una habilitación
activa - baja. Asegúrese de que solo esta activada una pantalla de 7 segmentos (por ejemplo:
AN0 = 0, AN1-AN7 = 1 para usar solo la pantalla de 7 segmentos mas a la derecha).

4. FLUJO DE DISEÑO

• Crear un nuevo proyecto ISE. Seleccionar el dispositivo: XC7A100T- 1CSG324 Artix-7 FPGA.
• Escriba el codigo VHDL para el circuito de la Figura 1.

Para los circuitos A+B y |A − B| se debe utilizar sumadores completos y compuertas


lógicas.

Para implementar el MUX y el decoder, es fuertemente recomendado usar las sentencias


concurrentes del VHDL. Para implementar el programa principal, use la descripción es-
tructural: Crear un archivo separado para los circuitos aritméticos y lógicos, el MUX y el
decodicador de 7 segmentos.

• Escriba el test-bench VHDL para probar el circuito y pruebe los casos mas representativos.
• Realice la Functional Simulation y la Timing Simulation (Simu- lacion de comportamiento y
temporal).

• Asignación de entradas y salidas: Crear un archivo UCF. Use SW0 a SW7 en la placa Nexys-4
DDR para las entradas A y B, SW8 a SW10 para las entradas se1 y EN y CACG para la salida
de 7-bits.

• Generar el archivo bitstream.


• Descargar el bitstream en el FPGA.

1
DESARROLLO DE LA PRACTICA

Para el desarrollo de esta práctica primero vamos crear por separado los códigos correspondien-
tes a las distintas operaciones planteadas ( suma,valor absoluto, xnor y nand). Como se vera a
continuación.

VALOR ABSOLUTO

2
3
4
SUMADOR

5
6
COMPUERTA NAND

7
XNOR

8
MULTIPLEXOR

9
10
11
12
DIVISOR DE FRECUENCIA
Para poder visualizar resultados por encima del valor Fhexadecimal se implementó un divisor
de frecuencia a través del cual lo que se conseguía era temporizar el encendido de dos display que
al ojo humano diera la apariencia que ambos estaban encendido al mismo tiempo. La frecuencia
utilizada fu de 1KHz(cada 1milisegundo) y el código desarrollado fue el siguiente:

13
CONCLUSIONES

• El diseño estructural nos da mayor entendimiento al momento de crear un tipo de proyecto


mas complejo.
• El diseño estructural permite que los códigos se puedan reutilizar en otros proyectos con tan
solo declarar sus variables
• El uso de los divisores de frecuencia no son necesarios, debido a que la tarjeta opera a muy
alta frecuencia .

14

Das könnte Ihnen auch gefallen