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.
muy buen documento...!! gracias por la buena explicacion ..!! :D
ResponderExcluirmuy bien explicado, solo la ultima imagen ami me aparece diferente clk y c no estan conectadas tampoco Q con led
ResponderExcluirExcelente, me fue de mucha ayuda.
ResponderExcluir