0% encontró este documento útil (0 votos)
2 vistas14 páginas

Tutorial Gowin

Este tutorial explica cómo utilizar el IDE Gowin para programar un FPGA que controla LEDs. Se detallan los pasos para crear un proyecto, preparar el código en Verilog, sintetizarlo, establecer restricciones de pines y descargar el firmware al dispositivo. Al finalizar, los LEDs parpadearán como resultado de la programación exitosa.

Cargado por

Rubén Romero
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2 vistas14 páginas

Tutorial Gowin

Este tutorial explica cómo utilizar el IDE Gowin para programar un FPGA que controla LEDs. Se detallan los pasos para crear un proyecto, preparar el código en Verilog, sintetizarlo, establecer restricciones de pines y descargar el firmware al dispositivo. Al finalizar, los LEDs parpadearán como resultado de la programación exitosa.

Cargado por

Rubén Romero
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

LED emisor de Luz

Editado el 2022.07.13

Este tutorial le guiará a través de los fundamentos del IDE Gowin que usaremos para
crear un programa simple para mostrar los LEDs de a bordo.

1. Crear Proyecto
Crear proyecto:File----NEW---Proyecto de diseño de la FPGA--OK
Establezca el nombre del proyecto y la ruta del proyecto (el nombre de archivo y la
ruta del proyecto deben ser en inglés, no necesariamente)

Elija el dispositivo correcto:


2. Prepare el código
Después de crear el proyecto, podemos empezar a editar el código.
Para crear un nuevo archivo, podemos hacer clic en el icono marcado (arriba a la izquierda
de la ventana) o utilizar Ctrl-N. Elija Verilog File en la ventana emergente.

Nombre el archivo (lo mejor es usar inglés para esto, no necesariamente)


Haga doble haga clic en el archivo creado para abrirlo, luego editarlo en la ventana derecha.

Aquí está todo el código que estamos usando para este ejemplo, ya sea copiarlo/buscar
en su archivo o introducirlo manualmente.
1 module led (
2 input sys_clk, // clk input
3 input sys_rst_n, // reset input
4 output reg [5:0] led // 6 LEDS pin
5 );
6
7 reg [23:0] counter;
8
9 always @(posedge sys_clk or negedge sys_rst_n)
10 begin
11 if (!sys_rst_n)
12 counter <= 24'd0;
13 else if (counter < 24'd1349_9999) //
14 0.5s delay
15 counter <= counter + 1'b1;
16 else
17 counter <= 24'd0;
18 end
19
20 always @(posedge sys_clk or negedge sys_rst_n)
21 begin
22 if (!sys_rst_n)
23 led <= 6'b111110;
else if (counter == 24'd1349_9999) //
0.5s delay
led[5:0] <= {led[4:0],led[5]};
else
led <= led;
end

endmodule

Una vez que terminemos con el código, tenemos que marcar Use DONE como IO regular
en Project--Configuration-----Place--Dual-Purpose Pin que se encuentra en la barra
de menús superior para evitar un error.

3. Sintesis, limitación, place&route


3.1. Sintetizar
Después de terminar los pasos anteriores, vaya a la interfaz "Proceso" y haga clic doble
en "Synthesize" para sintetizar nuestro código. También puede hacer clic derecho
"Synthesize" para ver su otra función

Si el resultado es el mismo que se muestra a continuación, entonces podemos pasar


a establecer nuestras restricciones.

Si su síntesis falla, entonces compruebe la consola - debe indicarle dónde está el error.

3.2. Constrain.
Limitación de reloj no está involucrada aquí

Para que nuestro código haga realmente cualquier cosa, debemos unir los puertos que
definimos a los pines reales del chip FPGA.

Haz doble clic en el FloorPlanner en la interfaz Proceso para establecer restricciones de


pin (Si la síntesis falla no podemos hacer este paso).

La primera vez que abrimos FloorPlanner provocará falta de un archivo ".cst", sólo
haremos clic en ok.

Puedes descargar el esquema completo aquí


Aquí está la parte de esquema sobre los LEDs en el nano 9k:
.
En esta interfaz GUI tenemos dos maneras de limitar los pines:

• Arrastre el puerto correspondiente al pin del chip

• Introduzca el número de pin correspondiente al puerto en restricciones de IO

Consulte esta guía para obtener más información sobre

FloorPlanner: SUG935-1.3E-Gowin Diseño Physical Constraints

Customs User [Link]

No olvides atar el puerto de reloj y reiniciar el puerto a sus alfileres marcados en el


esquema

La siguiente figura muestra la restricción de los pines de este proyecto


3.3. Place&Route

Si muestra error, asegúrese de que ha habilitado Use DONE as

regular IO (ver preparar el código )

Haga doble clic en Place&Route para ejecutarlo, se mostrará lo siguiente:


4. Descargar en el dispositivo
Visite aquí para ver documentos sobre programador si lo necesita.

4.1. Empieza a

Conecte su tablero a su PC y seleccione el dispositivo como se muestra en la imagen:

Usaremos la descarga a SRAM como ejemplo.

Siga los pasos en la figura siguiente para seleccionar esa operación:


Haz clic en el botón mostrado en la figura para iniciar el proceso de descarga de firmware:
4.2. Resultado
Una vez que se complete, los LED empiezan a parpadear así:

5. Otros
Si necesita almacenar firmware sin energía, simplemente cambie el modo Acceso y elija
su destino archivo .fs .
Visita Preguntas&respuestas si tienes problemas

6. Termina.
Has llegado al final del tutorial. Si tiene alguna sugerencia, deje su mensaje.

También podría gustarte