Lattice FPGA ICE40 UltraPlus Breakout Board (Desarrollar con APIO)

En el previo artículo se ha descrito un demo introductorio de la plataforma de desarrollo de FPGA Lattice ICE40 UltraPlus Breakout Board, la cual es una excelente herramienta para desorrollar muchas aplicaciones. La plataforma también incluye el cable de USB para conectarlo a la computadora.

image

En este demo se presenta como utilizar el sistema APIO para desarrollar en esta plataforma desde una computadora usando Linux. Esta herramienta esencialmente incluye otras herramientas en una interfaz fácil de usar, herramientas tales como (yosys, nextpnr, icepack, etc) entre otras que han sido descritas en el previo artículo. Primero, se procede a instalar APIO en la computadora de Linux. Se crea un ambiente virtual en python como sigue,

DigiKey_Coffee_Cup # python -m venv venv

DigiKey_Coffee_Cup # source venv/bin/activate

DigiKey_Coffee_Cup (venv) #

Luego se instala el APIO usando este comando,

DigiKey_Coffee_Cup (venv) # pip install apio

Se instalan los paquetes del sistema APIO,

DigiKey_Coffee_Cup (venv) # apio install -a

Ahora se activan los FTDI drivers,

DigiKey_Coffee_Cup (venv) # apio drivers --ftdi-enable

Para verificar la instalación apropiada, se verifica la version así,

DigiKey_Coffee_Cup (venv) # apio --version

La version del sistema APIO deberia ser mostrada en el terminal si fue instalada correctamente.

Se graba el siguiente archivo de verilog HDL que implementa el demo llamdo blink.v en un directorio del projecto. Esto es un contador que se usa para parpadear un LED verde en la plataforma Lattice ICE40 UltraPlus Breakout Board,

module rgb_test (input clk, output led_green);

   localparam N = 21;

   reg [N:0] counter;

   always @(posedge clk) counter <= counter + 1;

   assign led_green = counter[N];

endmodule

Entonces se define el archivo del projecto APIO llamado apio.ini en el directorio del projecto,

;APIO configuration file
[env:default]
board = ice40-up5k
top-module = rgb_test

Finalmente se crea el archivo de la definición de los PINS llamado up5k.pcf pin definition como sigue,

set_io -nowarn clk 35
set_io -nowarn led_green 40

El sistema APIO provee un conjunto de comandos con muchas funciones que facilitan el desarrollo. Para este demo se usan solamente los comandos básicos. El primero que se usa en este caso, es para verificar con lint el archivo de verilog HDL en este demo.

DigiKey_Coffee_Cup (venv) # apio lint

Este verifica el archivo HDL de posibles errores. Si no hay errores, entonces se procede a construir el projecto como sigue,

DigiKey_Coffee_Cup (venv) # apio build

Entonces se conecta la plataforma Lattice ICE40 UltraPlus Breakout Board usando el cable de USB que está incluido en el kit a la computadora de Linux. Se procede a programar la plataforma de la siguiente forma,

DigiKey_Coffee_Cup (venv) # apio upload

Es bien importante asegurarse que los “jumpers” en la plataforma del Lattice ICE40 UltraPlus Breakout Board estén presentes como se describió en el previo artículo. Ahora se sube el projecto a la plataforma Lattice ICE40 UltraPlus Breakout Board, en este momento el LED verde deberia ya estar parpadeando bien rápidamente,

Hemos completado esta introducción al sistema APIO usando la plataforma Lattice ICE40 UltraPlus Breakout Board de FPGA. El sistema APIO también provee otras funciones de prueba que son importantes en el desarrollo.

La plataforma FPGA de Lattice ICE40 UltraPlus Breakout Board es una excelente herramienta, que incluya un area de prototipo que se puede utilizar para muchas aplicaciones y está disponible en DigiKey.

Que tenga un excelente día.

Este artículo esta disponible en inglés aquí.

This article is available in english here.

1 Like