FACULTAD DE CIENCIAS EXACTAS, FÍSICAS Y NATURALES

Año 2012 – 1º Cuatrimestre

Electrónica Digital 1
Trabajos Prácticos de Laboratorio
Informe:

Unidad Aritmética y Lógica

Comisión Nº 9 (Nueve)

Sambataro, Pablo.
Batallan Facundo.
Colombo, Agustín.

R = A&B bit a bit . y salida R de 4 bits.idem anteriores pero con saturación al máximo positivo o máximo negativo .R = A|B bit a bit La ALU debe además tener un bit de salida que indique cuando hubo carry de salida. implementar. permitiendo las siguientes funciones: -R=A+B -R=A-B . y otro bit de salida que indique cuándo hubo overflow. la función a realizar por la ALU se define con 4 bits individuales de control C. simular y comprobar en la placa FPGA el funcionamiento de una ALU con operandos A y B de 4 bits. Como se ve en la figura. CONSIGNA El objetivo de este trabajo fue diseñar. .

OVF. Del circuito anterior creamos un bloque de la ALU completa: .end if. utilizamos los bloques ya incluidos en las librerías. SAT2<=ADSU2. los conectamos coherentemente quedando un circuito similar al planteado anteriormente. else SAT0<=ADSU0. end process. ADSU1. SAT3<=ADSU3. if ADSU3='0' then SAT3<='1'. SAT) begin if OVF='1' and SAT='1' then if ADSU3='0' then SAT0<='0'. Por otro lado. else SAT0<='1'. if ADSU3='0' then SAT2<='0'.end if. el bloque Saturador lo implementamos con el siguiente código en VHDL: architecture Behavioral of Sat is begin process (ADSU0. Al tener todos los bloques listos. else SAT0<='1'. else SAT0<='1'. end Behavioral. else SAT0<='0'. end if.end if. los multiplexores y el sumador binario. ADSU2. SAT1<=ADSU1. if ADSU3='0' then SAT1<='0'. DESARROLLO Para la implementación de los AND y OR. ADSU3.end if.

.

Pasada la prueba de simulación. . para comprobar que el bloque programado por nosotros funcionaba correctamente y estaba conectado de manera coherente al resto del circuito.bit. y los bits de salida de carry y overflow con LD0 y LD4 respectivamente. que es el archivo que finalmente vamos a instalar en la FPGA para finalizar el proyecto comprobando ya de manera practica y definitiva el correcto funcionamiento de nuestra Unidad Aritmética y Lógica. decidimos generar el archivo . El siguiente paso fue hacer una simulación del circuito. los bits de control C con BTN0 a BTN3(de C1 a C4 respectivamente).Luego asignamos los distintos inputs y outputs del bloque ALU a las diferentes posibilidades de entrada y salida que tiene la FPGA de que disponemos. siguiendo el siguiente esquema: Asignamos el operando A a los SW0 (bit menos significativo) a SW3 (bit mas significativo) y el B a los SW4 (bit menos significativo) a SW7 (bit mas significativo). pudiendo de esta manera asegurarnos de que todo andaba como debería.

podemos decir que a pesar de que a simple vista y con la primera lectura el proyecto parecía sencillo. al final no lo fue tanto. A fin de cuentas las horas de trabajo sirvieron para aprender sobre este nuevo lenguaje y sobre las posibilidades de implementación que ofrece trabajar con placas FPGA. a la vez que afianzamos y pusimos en práctica los conocimientos sobre aritmética binaria adquiridos durante las clases previas. . DESCRIPCION DE LA EXPERIENCIA A manera de conclusión. Tuvimos algunos problemas para adaptarnos al lenguaje VHDL pero pudimos solucionarlos y seguir adelante.