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.
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.
