for more visit: www.fpgalover.com
If you like my FREE FPGA tutorials, buy me a coffee, or a biscuit or whatever you like.
En este curso trabajaremos con la tarjeta desarrollada por arrow "BeMicro Max 10" que tiene una FPGA MAX 10 de altera y tiene 8.000 LEs internos para hacer todos los diseños que nos proponemos en este curso, ademas de otras caracterisicas que usted puede ver descargando el siguiente manual.
En el manual usted encontrar las especificaciones de la tarjeta y la FPGA que usted tiene en sus manos, ahora como introduccion a esta tarjeta, procederemos a familiarizarnos con el entorno de desarrollo. Para esto usted ya debe tener instalado Quartus II 14.1 con el devices MAX 10 y modelsim.
Conecte la tarjeta a su computador y vaya al manual a la sección 2.3 "Install USB-Blaster" y siga los pasos para instalar el driver de esta tarjeta, los cuales son necesarios para poder enlazar la misma con el PC y poder programarla.
Una vez ha realizado la instalacion del driver, procederemos a familiarizarnos con el entorno de desarrollo Quartus II.
Abra el Quartus II.
Ahora seleccione "New Project Wizard"
Cree una carpeta en C:\FPGAs\Practica1 y oprima siguiente:
Oprima Siguiente:
Seleccione el modelo de la FPGA que vamos a programar, en este caso usted puede mirar las letras que estan encima de la FPGA y verificar que lo que esta escrito es cierto y corresponde a su FPGA.
Oprima siguiente:
Oprima Siguiente:
Ahora vaya a File->New y seleccione Verilog HDL File:
Escriba lo siguiente en el archivo blanco que aparece, y guarde el archivo con el mismo nombre del proyecto "Practica1"
Ahora vaya a la ventana izquierda, donde dice "Tasks" y de doble click en "Analysis & Synthesis".
Ahora vaya al icono superior en la pantalla que dice Pin_Planner
Aparecera una ventana con todos los pines que tiene la FPGA, en este caso solo vamos a utilizar aquellos que estan conectados a los LEDs, a los SW y el Reloj de 50MHz, si se da cuenta los nombres de esos pines estan en el datasheet de la tarjeta, y deben ser asignados uno a uno en el pin planner que recien usted abrio y debe verse como lo siguiente:
Una vez modificado el pin Planner, cierrelo, y dirijase a la ventana del quartus para que modifique el codigo Verilog de su Practica 1 de esta manera:
Lo que usted acabo de describir es un contador de 32 bits, y se asigna cada parte del conteo a los 8 bits de los leds multiplexando los valores usando el valor de los SW. en este caso los SW son negados cuando estan normalmente abiertos y todo lo que salga a los LEDs debe ser negado ya que estos se activan con 0 y no con 1,
Vaya de nuevo a la ventana "Tasks" y expanda "Analysis & Synthesis", de doble click donde dice "RTL Viewer", esto servira para ver el esquematico del diseño que recien describio:
Una vez de doble click, debera aparecer el esquematico de lo que se diseño:
Analice el esquematico, y explore esta ventana.
Cierre la ventana, y dirijase de nuevo a la ventana "Tasks" y de doble Click en "Fitter"==> en ese proceso el esquema que usted acabo de ver esta siendo ajustado para ver si cabe en la FPGA MAX 10, y el Quartus esta organizando los Elementos logicos de la FPGA para que se cree ese esquema.
Ahora en la misma ventana "Tasks" de doble click en "Assembler" ==> en esta parte el quartus crea el archivo para programar la FPGA que contiene todas las configuraciones para que se cree un hardware de la forma del esquematico.
Ahora es tiempo de prorgamar la FPGA!!, en la ventana "Tasks" de doble click en "Program Device" y saldra una ventana asi(Conecte la tarjeta al USB antes)
Ahora seleccione el archivo con el que va a programar la FPGA, que es de extension .sof
Oprima "Start" para programar la FPGA.
Verifique que su FPGA ha sido programada, mientras que ve el codigo en Verilog que usted diseño y oprime los SW de la FPGA, para vere que observa..
¿Por qué cuando oprimo los SW cambia la velocidad en los LEDs?
¿Cuando los LEDs cuentan mas rapido y cuando mas lento?
¿Por què los LEDs mas significativos son mas lentos que los menos significativos?¡
Resueltas las preguntas, ahora modifique de nuevo la descripcion de hardware, pero antes vaya a File->new y cree un archivo Verilog, llenelo con el siguiente modulo, que es un divisor de frecuencia, el cual hemos visto en clase.y guardelo con el nombre de "div_freq"
Ahora vaya al archivo "Practica1.v" y modifique el codigo de la siguiente manera
Genere el RTL, y analice.
Ahora, haga doble click en Fitter.
De doble click en Assembler
Programe la FPGA.
¿Que pasa cuando se oprime los SW?
¿a que velocidad esta variando el Counter?
¿Por qué la entrada IN del divisor de frecuencia esta contada a 25000000?
¿Cual es la formula del divisor de frecuencia?
Simule si es necsario usando ModelSim
Respuestas las preguntas, ahora modifique el acrhivo practica1 para que luzca de la siguiente manera:
Genere el RTL:
Haga Fitter, y assembler y programe la FPGA.
¿Que se le asigna a los LED[3:0]?
¿que se le esta asignado a los LED[7:4]?
verifique que los valores puestos a las instancias de los divisores de frecuencia correspondan a la frecuencia que estan llevando por el cable de salida a los LEDs.
Si se dio cuenta todo en la FPGA funciona en paralelo, y los modulos o chips que usted haga puede replicarlos cuantas veces sea para lo que necesite.
Ahora vaya a Compilation report y mire que solo con estas descripciones de HW, ha gastado menos del 2% de la FPGA.
Felicidades ha realizado con exito la practica #1
for more visit: www.fpgalover.com
If you like my FREE FPGA tutorials, buy me a coffee, or a biscuit or whatever you like.