Un entorno de desarrollo FPGA es el conjunto de herramientas que sintetiza, implementa, simula y carga nuestros diseños en una placa concreta.
Tenemos dos caminos muy distintos, y tu elección dependerá totalmente de la placa FPGA que tengas en tu mesa.
- El camino de los gigantes (Vendor Tools): Usar el software oficial del fabricante (Vivado para Xilinx, Quartus para Intel).
- El camino de la libertad (Open Source): Usar herramientas libres, ligeras y comunitarias.
En este curso, y siguiendo la filosofía maker, apostamos fuertemente por el entorno Open Source siempre que el hardware lo permita.
El ecosistema open source: IceStorm
Hace unos años, un héroe llamado Clifford Wolf logró mediante ingeniería inversa descifrar cómo se configuraban las FPGAs de la familia Lattice iCE40. Esto dio lugar al proyecto IceStorm.
Gracias a esto, hoy tenemos un toolchain libre para iCE40. Apio también integra flujos para ECP5 y Gowin, entre otras placas compatibles:
- Yosys: Para la síntesis (el “compilador”).
- Nextpnr: Para el Place & Route (el “enrutador”).
- IcePack: Para generar el bitstream.
Apio como gestor del entorno
Instalar esas herramientas una a una puede ser tedioso. Por eso, nosotros vamos a usar Apio.
Apio es un gestor de proyectos de código abierto (similar a PlatformIO) que descarga, instala y gestiona todo el toolchain por nosotros. Además, se integra de maravilla con Visual Studio Code.
Instalación de Apio
Apio 1.0 y versiones posteriores ofrecen instaladores y paquetes autocontenidos para varios sistemas. También puedes instalarlo con Python 3 y pip:
Abre tu terminal (o consola de comandos) y ejecuta:
pip install apioLas versiones actuales de Apio gestionan las herramientas necesarias desde sus propios paquetes. Comprueba la instalación abriendo una terminal nueva y ejecutando apio; para ver las placas disponibles, utiliza apio boards.
Configuración de drivers
Si estás en Windows, es posible que necesites configurar los drivers USB para que el ordenador reconozca tu placa FPGA. Apio también nos ayuda con esto. Con la placa conectada, ejecuta:
apio drivers install ftdiSegún la placa, puedes necesitar el controlador ftdi o serial. Consulta primero apio devices y la documentación de tu placa, porque muchas funcionan sin instalar un controlador adicional.
El entorno de desarrollo
Para escribir nuestro código Verilog, mi recomendación absoluta es Visual Studio Code. Es ligero, potente y tiene extensiones para todo.
Para trabajar con comodidad, te recomiendo instalar estas extensiones desde el Marketplace de VS Code:
- Verilog-HDL/SystemVerilog: Para tener resaltado de sintaxis (colores) en el código.
- Apio IDE: Nos añade botones en la barra inferior de VSCode para “Verificar”, “Construir” y “Subir” con un solo clic, sin tener que recordar comandos de terminal.
Si usas la extensión Apio IDE, el flujo es idéntico al de Arduino: escribes código, pulsas el botón de “Build” y luego el de “Upload”.
¿Y si tengo una placa AMD o Intel?
Si tienes una placa basada en chips de AMD (antes Xilinx), como la Arty S7 o Basys 3, o de Altera, como la DE10-Nano, las herramientas del fabricante siguen ofreciendo el soporte más completo. Existen flujos libres para algunas familias, pero su cobertura depende del dispositivo.
Xilinx Vivado
Es el estándar para chips modernos (Series 7 y UltraScale).
- Pros: Potentísimo, incluye simulador y analizador lógico integrado (ILA).
- Contras: La descarga ocupa unos 50GB. La instalación tarda una eternidad. Es muy pesado de mover para ordenadores modestos.
Intel Quartus Prime (Lite Edition)
Es el entorno para FPGAs Cyclone y MAX.
- Pros: Interfaz algo más amigable que Vivado para algunos.
- Contras: Similar a Vivado, descarga muy pesada (15-20GB) y requiere registro en la web de Intel.
FPGAs Gowin (Sipeed Tang Nano)
Estas placas se han vuelto muy populares por su precio. Tienen su propio IDE (Gowin EDA) que es más ligero que Vivado, pero también existe un proyecto open source llamado Apicula que permite usar Yosys/Nextpnr con ellas.
Recomendación para el curso
- Si puedes elegir hardware, busca una placa con Lattice iCE40 (como la IceZUM Alhambra, iCEBreaker o TinyFPGA).
- Instala Apio y Visual Studio Code.
- Olvídate de licencias y descargas gigantes.