Ensayo Sobre El Curso de Fpga y Lenguaje de Programacion Vhd1

20
SEP. SEST. DGEST. INSTITUTO TECNOLOGICO DE LA PIEDAD INGENIERIA ELECTRONICA 6º E. MAQUINAS ELECTRICAS PROFESOR: RODOLFO HERNANDEZ RODRIGUEZ ALUMNO: LAUREANO CHICUELLAR DELÍN Ensayo sobre el curso de fpga y lenguaje de programación vhdl

Transcript of Ensayo Sobre El Curso de Fpga y Lenguaje de Programacion Vhd1

Page 1: Ensayo Sobre El Curso de Fpga y Lenguaje de Programacion Vhd1

SEP. SEST. DGEST.

INSTITUTO TECNOLOGICO DE LA PIEDAD

INGENIERIA ELECTRONICA

6º E.

MAQUINAS ELECTRICAS

PROFESOR: RODOLFO HERNANDEZ RODRIGUEZ

ALUMNO:

LAUREANO CHICUELLAR DELÍN

Ensayo sobre el curso de fpga y lenguaje de programación vhdl

LA PIEDAD MICHOACAN 18-04-2010

Page 2: Ensayo Sobre El Curso de Fpga y Lenguaje de Programacion Vhd1

Los FPGAs por sus siglas en ingles Field Programmable Gate Array que quiere decir arreglo de compuertas programables, Es un dispositivo semiconductor que contiene bloques de lógica cuya interconexión y funcionalidad se puede programar. El cual puede realizar operaciones básicas hasta algunas mas complejas.

Las FPGAs se utilizan en aplicaciones similares a los ASICs sin embargo son más lentas, tienen un mayor consumo de potencia y no pueden abarcar sistemas tan complejos como ellos. A pesar de esto, las FPGAs tienen las ventajas de ser reprogramables (lo que añade una enorme flexibilidad al flujo de diseño), sus costes de desarrollo y adquisición son mucho menores para pequeñas cantidades de dispositivos y el tiempo de desarrollo es también menor.

Y el lenguaje de programación que se utiliza para programas estas maravillosas tarjetas es el vhdl el cual se uso en el curso y por sus siglas en ingles Hardware Description Language significa lenguaje de descripción de hardware y pues de gran utilidad para programar nuestras tarjetas, además de ser un lenguaje definido por el IEEE usado por ingenieros para describir circuitos digitales.

En nuestro curso el FPGA que utilizamos fue la tarjeta basys 2 y el programa que se utilizo fue el ISE 10.1 de xilinx.

Page 3: Ensayo Sobre El Curso de Fpga y Lenguaje de Programacion Vhd1

El programa que se utilizo fue el ISE 10.1 de xilinx.

Bueno ya descrito un poco acerca de los FPGAs y el lenguaje de programación pasaremos a lo que se llevo a cabo en el curso.

Como primer ejercicio fue hacer un diseño de un sumador utilizando el programa ISE de xilinx .

El primer paso fue crear el código de nuestro sumador el cual se muestra a continuación

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_SIGNED.ALL;

entity sum_res_beh_cs is

Page 4: Ensayo Sobre El Curso de Fpga y Lenguaje de Programacion Vhd1

Port ( a : in STD_LOGIC_VECTOR (3 downto 0);

b : in STD_LOGIC_VECTOR (3 downto 0);

c : out STD_LOGIC_VECTOR (4 downto 0);

s_r : in std_logic);

end sum_res_beh_cs ;

architecture Behavioral of sum_res_beh_cs is

begin

process (s_r, a, b)

begin

if s_r ='0' then

c<= (a(3) & a) + (b(3) & b);

else

c<= (a(3) & a) - (b(3) & b);

end if;

end process;

end Behavioral;

Al igual que todos los códigos de programación existen librerías declaramos variables, se cumplen condiciones etc.

Ya creado nuestro código sin errores, pasamos a lo que es la asignación de los pines o las patitas de la tarjeta que utilizaremos para nuestro diseño.

Para esto creamos un archivo .ufc, con ayuda de los manuales de la targeta asignaremos los pines que utilizaremos para nuestro diseño.

A continuación se muestra la asignación de dichos pines en el archivo.ucf

# entrada operando a (switches, bits 3 a 0)

Page 5: Ensayo Sobre El Curso de Fpga y Lenguaje de Programacion Vhd1

NET "a<0>" LOC = "P11"; # Bank = 2, Pin name = IP, Sch name = SW0

NET "a<1>" LOC = "L3"; # Bank = 3, Pin name = IP, Sch name = SW1

NET "a<2>" LOC = "K3"; # Bank = 3, Pin name = IO(3S100E)/IP(3S250E),Sch name = SW2

NET "a<3>" LOC = "B4"; # Bank = 3, Pin name = IP Sch name = SW3

# entrada operando b (switches, bits 7 a 4)

NET "b<0>" LOC = "G3"; # Bank = 3, Pin name = IP, Sch name = SW4

NET "b<1>" LOC = "F3"; # Bank = 3, Pin name = IP/VREF_3, Sch name = SW5

NET "b<2>" LOC = "E2"; # Bank = 3, Pin name = IO(3S100E)/IP(3S250E),Sch name = SW6

NET "b<3>" LOC = "N3"; # Bank = 3, Pin name = IP, Sch name = SW7

# salida resultado c

NET "c<0>" LOC = "M5"; # Bank = 3, Pin name = IO_L4N_3/GCLK21 Sch name = LD0

NET "c<1>" LOC = "M11"; # Bank = 3, Pin name = IO_L4P_3/GCLK20 Sch name = LD1

Page 6: Ensayo Sobre El Curso de Fpga y Lenguaje de Programacion Vhd1

NET "c<2>" LOC = "P7"; # Bank = 3, Pin name = IO_L3N_3, Sch name = LD2

NET "c<3>" LOC = "P6"; # Bank = 3, Pin name = IO_L3P_3, Sch name = LD3

NET "c<4>" LOC = "N5"; # Bank = 3, Pin name = IO_L2N_3/VREF_3, Sch name = LD4

# Selección (botón 0)

NET "s_r" LOC = "G12"; # Bank = 2, Pin name = IP, Sch name = BTN0

Como podemos ver aqui se muestran la asignacion de las patas para los switch de entradas de solidas , y el boton seleccionador de suma o resta. Ya teniendo los dos archivos los guardamos en una carpeta donde sea factible encontrarlos para después usarlos.

Ahora para crear nuestro diseño, ejecutamos el programa de ISE

Ya ejecutado nos aparecerá el programa .

Page 7: Ensayo Sobre El Curso de Fpga y Lenguaje de Programacion Vhd1

Ahora nos vamos a la barra de tareas y le damos click en file y ahí mismo le damos click a new proyect.

Page 8: Ensayo Sobre El Curso de Fpga y Lenguaje de Programacion Vhd1

Aparecera una nueva ventana donde podemos ponerle el nombre y la hubicacion de nuestro proyecto se recomienda situarlo en la carpeta que contiene nuestro código y el archivo.ucf.

Le damos next la siguiente ventana que aparece se muestra a continuación:

Page 9: Ensayo Sobre El Curso de Fpga y Lenguaje de Programacion Vhd1

Aquí solo se modifica la parte de arriba con excepción de produc category la siguente la familia depende de la tarjeta en este caso es spartan 3E

Después en device también depende de la tarjeta en este caso es la de XC35100

Page 10: Ensayo Sobre El Curso de Fpga y Lenguaje de Programacion Vhd1

El empaquetamiento en la parte de atrás de la tarjeta lo muestra en este caso CP132.

Y la velocidad en -5 como se muestra en la figura.

Page 11: Ensayo Sobre El Curso de Fpga y Lenguaje de Programacion Vhd1

Los demás recuadros se quedan tal y como aparecen.

Después damos next y se mostrara una nueva ventana.

En la cual no se le modifica nada.

Page 12: Ensayo Sobre El Curso de Fpga y Lenguaje de Programacion Vhd1

Damos next en esta ventana agregaremos al proyecto los dos archivos que habíamos guardado, el .vhd y el .ufc.

Le damos add source y seleccionamos nuestros archivos que guardamos.

Le damos abrir.

Page 13: Ensayo Sobre El Curso de Fpga y Lenguaje de Programacion Vhd1

Ahora next y nos abrirá un resumen de los archivos cargados.

Le damos finish y abrirá una nueva ventana que nos dira que se cargaron correctamente nuestros archivos.

Page 14: Ensayo Sobre El Curso de Fpga y Lenguaje de Programacion Vhd1

Le damos ok y la suiguente ventana se muestra ya los archivos agregados

En el lado derecho muestra un resumen de todo lo que hemos hecho anteriormente a lado izquierdo se muestra los archivos agregados y en proces los pasos para generar nuestro archivo de programa, que son: Sintetizar, implementar, generar archivo de configuración y configurar fpga.

Ahora se le da doble click en synthesize-XST que es el primer paso para crear nuestro proyecto

Aquí se muestra como esta cargando para verificar que no haya errores en el código o en el archivo .ucf

Page 15: Ensayo Sobre El Curso de Fpga y Lenguaje de Programacion Vhd1

Aquí se muestra que no hay errores en los archivos.

También podemos observar nuestro diseño.

Solo le damos click a synthesize-XST el el simbolito de + y le damos click a view synthesis repor, y veremos nuestro diseño de un sumador

Page 16: Ensayo Sobre El Curso de Fpga y Lenguaje de Programacion Vhd1

También podemos ver la coneccion dentro de nuestro diseño dándole doble click al sumador.

Page 17: Ensayo Sobre El Curso de Fpga y Lenguaje de Programacion Vhd1

Ahora seguimos y damos doble click en implement dising y también se muestra correcto-

Page 18: Ensayo Sobre El Curso de Fpga y Lenguaje de Programacion Vhd1

Ahora damos doble click en generate programming file. Aquí se generara el archivo que se cargara a la tarjeta .

Después de generar el archivo que se cargara en la tarjeta para demostrar nuestro diseño instalamos el programa de adept que nos ayuda a grabar la memoria de la tarjeta.

Page 19: Ensayo Sobre El Curso de Fpga y Lenguaje de Programacion Vhd1

Cargamos el archivo que creó el programa y que se encuentra en nuestra carpeta de sumador pero necesitamos tener conectada la tarjeta.

También se realizaron otros proyectos como lo son: un contador de 4 bits, contador del 0 al 9 ascendente y descendente, contador de 4 dígitos a vcd, memoria suma sin signo.

Y para realizar estos proyectos se siguen los mismos pasos que el sumador explicado anteriormente.

Solo falta demostrarlo con videos

Que se mostraran más adelante.