domingo, 24 de novembro de 2013

Ejemplo 1 : Crear un proyecto en Xilinx ISE 14.6

El primer ejemplo que realizaremos será de crear  una aplicacion de encender 8 leds con el uso de un dipswitch(8 pines).

Paso 1: Crear un nuevo proyecto, esta ubicado en la parte izquierda del programa
             (FILE->New Project), nuestro proyecto se llamará "Encender_leds"



Paso 2: Vamos a programar una FPGA Spartan 6(Nexys3) y por eso tenemos que dejar la siguiente ventana como sigue, estas configuraciones son para seleccionar que tipo de FPGA es y para seleccionar el tipo de programacion, existen 2 tipos, Verilog y VHDL en este Blog usaremos la programacion VHDL para todos los proyectos.


Paso 3: Despues será mostrado la siguiente ventana


Paso 4: Con esto estará creado nuestro proyecto usando una arquitectura Spartan 6




Paso 5: Ahora hacemos click en Project->New Source, y seleccionamos la opción VHDL Module, el nombre de nuestro programa será "test" y tendra la extención vhd.




Paso 6: Creamos las variables que vamos a usar, "clk" es la variable para el clock del FPGA y es de tipo entrada(in), "led" serán los 8 leds que tenemos que encender y es tipo salida (out), y "sw" es el dipswitch de 8 pines y será tipo entrada(in), para las variables led y sw necesitamos darle check en el cuadrado de la opcion Bus para almacenar 8 bits en cada uno de ellos.



Paso 7: Con esto estara creado nuestro archivo "test.vhd" para programar en VHDL. 


Paso 8: Luego nuestro programa estara  con declaracion de las variables, falta adicionar un proceso que pase los datos de "SW" a la variable "LED". Cuando programamos en VHDL las mayusculas y minusculas son lo mismo, todo lo contrario que cuando programamos en C.


Paso 9: Modificamos nuestro programa adicionando un proceso(mas adelante será explicado) para hacer que en cada cambio de 0 a 1 del clock el valor de "sw" pase al valor de "led".
Damos doble click sobre "Synthesize-XST" que esta en la parte izquierda, esa es la forma de compilar en VHDL. Si todo está correcto aparecerá el siguiente mensaje en la parte inferior:

 Process "Synthesize-XST" completed successfully



Paso 10: Para simular nuestro proyecto, seleccionamos la opcion "Simulation", damos click sobre nuestro programa y luego en la parte inferior damos doble click sobre "Simulate Behavioral  Model"



Paso 11: Se abrirá una nueva ventana en la cual podemos observar las variables que acabamos de crear, las simulaciones que vamos hacer serán con un clock = 1us, para poder observar esto tendremos que ajustar nuestra ventana de simulación seleccionando el siguiente boton:


Paso 12: Realizamos varios click en la lupa con simbolo menos en su interior para ajustar espacios de 1 us


Paso 13: Ahora llegó el proceso de simulacion, damos click derecho sobre el valor de "clk" y escogemos la opcion "Force Clock" es para simular un clock.



Paso 14: Dejamos los parametros como sigue


Paso 15: Hacemos click derecho sobre el valor de "sw" y escogemos la opcion "Force Constant", es atribuir un valor constante a "sw"


Paso 16: Colocamos el valor de "11110000" para "sw"


Paso 17: Ahora simulamos por 1us 


Paso 18: Moviendo la barra vertical amarilla, podemos obtener los valores de cada variable en cada instante de tiempo.


Paso 19: Expandiendo los valores de "sw[7:0]" y "led[7:0]"  podemos ver bit por bit como varian en cada instante de tiempo.


Paso 20: Por ultimo podemos ver la arquitectura de nuestro programa haciendo doble click sobre "View RTL Schematic", es observado que nuestra arquitectura es formado por un flip flop tipo D para cada bit.




3 comentários:

  1. muy buen documento...!! gracias por la buena explicacion ..!! :D

    ResponderExcluir
  2. muy bien explicado, solo la ultima imagen ami me aparece diferente clk y c no estan conectadas tampoco Q con led

    ResponderExcluir