FPGAs libres
Juan González Gómez (Obijuan)
[Link]
El Evento 2016
24 de Octubre de 2016
Universidad Carlos III de Madrid [Link]
Chips digitales
● El gran invento del siglo XX ● Son cajas negras
● Están por todos lados ● No los podemos estudiar
● Muy baratos ● No los podemos modificar
● Los compramos y los usamos ● No los podemos compartir
FPGAs
¿Te imaginas hacer tus propios chips?
¿Quieres aprender cómo son sus tripas?
¿Cómo se diseñan?
Una primera aproximación es
usar FPGAs
Viaje al interior de los chips digitales
● Nivel de electrónica digital
● Información: Sólo 1s y 0s (Bits)
● Función: Manipular, almacenar y transportar bits
Elementos en circuitos digitales
Cualquier circuito digital, por muy complejo que sea,
se descompone en estos 3 tipos de componentes
elementales
Tecnología FPGA
FPGA: Chip “en blanco” que contiene una matriz con los 3 componentes
básicos: puertas lógicas, biestables y cables
Configuración
Las uniones entre cables son configurables
FPGA no configurada
Configuración
Circuito creado configurando las uniones
entre los elementos básicos de la FPGA
FPGA configurada
Re-configuración
¡Sólo con cambiar las uniones, aparece
otro circuito diferente!
Circuito 1 Circuito 2
¡FPGAs = Impresoras 3D de circuitos digitales!
Bitstream
Bitstream
...1001111100010011001010101…..
● La configuración se hace cargando
un bitstream en la FPGA
● Estos bits determinan qué cables se
conectan y cuales no
Memoria de configuración
● FPGA volátiles: pierden su configuración al quitar alimentación
● El bitstream se guarda en una memoria externa: memoria de configuración
● Al arrancar la FPGA se carga con el bitstream de la memoria de configuración
● Desde un ordenador externo se carga el bitstream en la memoria de config.
Demo 1: Contador
Tarjeta Icezum Alhambra
[Link]
Diseñando circuitos digitales
HDL
Los circuitos digitales modernos se diseñan usando lenguajes de
Descripción Hardware (HDL)
Descripción en lenguajes HDL
Desde una descripción en HDL podemos simular el circuito, generar el
bitstream para FPGAs o fabricar el circuito integrado
El hardware es software
HDL
● El hardware libre es igual al software libre
● Muy fácil de compartir
● Telecopias del hardware
● Desarrollo de hardware en comunidad
FPGAs: Sólo personal autorizado
● Sólo el fabricante conoce los detalles internos
● Sólo se puede usar lo que el fabricante haya previsto
● Atados de por vida al fabricante
FPGAs libres: El renacimiento
● Proyecto Icestorm (Mayo, 2015)
● La primera toolchain que permiten pasar de Verilog al bitstream
usando sólo Herramientas libres
FPGAs libres
● Definición:
Denominamos FPGAs libres a aquellas FPGAs que disponen de una
toolchain totalmente libre
● FPGAs libres actualmente:
● Familia Lattice iCE40
● Sólo Lenguaje Verilog
[Link]
Proyecto Icestorm
● Herramientas programadas en C/C++
● Bajar del repo y compilar
● Línea de comandos
● Se usan típicamente junto con make
● (bajo nivel)
[Link]
[Link]
APIO
● Autor: Jesús Arroyo
● Multiplataforma (Linux, Mac, Windows, Raspberry)
● Línea de comandos
● Programado en python
● Multiplaca: icestick, icezum, icoboard, go-board
Comandos
APIO
Icestorm
[Link] Demo
APIO-ide
● Autores: Jesus Arroyo/Obijuan
● Plug-in para Atom
APIO-ide ● No línea de comandos
● Llama a apio
● Apicable a otros IDEs/editores
APIO ● Descripción en Verilog
Icestorm
[Link]
APIO ide
Demo
Platformio
● Autores: Jesus Arroyo / Obijuan
Platformio ● FPGAs libres en Platformio
APIO-ide
IDE ● Linea de comandos
● IDE basado en Atom
● Apicable a otros IDEs/editores
Platformio APIO
Icestorm
[Link]
Platformio
APIO-ide Icestudio
IDE ● Autor: Jesús Arroyo
● Electrónica digital para todos
● Sin conocimientos de verilog
Platformio APIO
● Herramienta visual
Icestorm ● Traduce a verilog
[Link]
Icestudio: Demo
Tarjetas entrenadoras con FPGAs libres
Icestick
iCE40-HX8K Breakout Board Icezum Alhambra
Go-board
● Conexión directa al PC (USB)
● Soportadas por Apio/Icestudio
Tarjetas entrenadoras FPGA
icoboard Mystorm iCE40HX1K-EVB
● Conexión a Raspberry PI
NO Soportadas por Apio/Icestudio
● Soportada por Apio/Icestudio
Icezum Alhambra v1.1
● Autor: Eladio Delgado
● Diseñada en Pinos del Valle
(Granada)
● Arduino de las FPGAs
● Compatible Arduino
● Fácil conexión de circuitos
externos/sensores/servos
● Reutilización de los shields de
arduino
● 20 entradas/salidas de 5v
● 3A corriente de entrada
● Perfecta para hacer robots
[Link]
Icezum Alhambra v1.1
8 leds de pruebas Pulsadores Conexión directa de
de prueba Sensores / actuadores
Conector
micro-usb 4 entradas
analógicas i2c
Pines io 3v3
Alimentación
6-17v 3A
Pulsador de
Interruptor reset
On/off
Alhambra-led
● Autor: Obijuan
● Periférico “Hola mundo”
● 1 led + 1 transistor
● ¡PCB Imprimible!
[Link]
Rasty
● FPGA Fun!
● 8 Alhambra-leds
● Alimentación: power bank
Circuito de prueba de Rasty
Sonidos simples con Zumbador
● Conexión a una placa con
Zumbador
● Melodías básica
● ¡Fácil meter varios canales!
Larby: Robot modular
● Servos conectados directamente a
Icezum Alhambra
● Configuración mínima pitch-pitch
● Módulo impresos en 3D
Comunidad FPGAwars
● Comunidad para compartir conocimiento
relacionado con FPGAs libres
● Es el clonewars de las FPGAs, pero en
modesto :-)
● Idioma: Castellano
● 185 miembros
● Cualquier pregunta / comentario /
sugerencia → Correo a la lista :-)
[Link]
Icezum Alhambra peregrina
● A.k.a CalmaSAV
● Empieza:
[Link]
● Ámbito: Toda España
● Coordinado desde la lista
de FPGAwars
Me molan las FPGAs libres…
¿Por dónde empiezo?
Paso 1: Consigue una placa con FPGA libre
Icestick Go-board
Icezum Alhambra
Peregrina
iCE40-HX8K Breakout Board
Icezum Alhambra
Me molan las FPGAs libres…
¿Por dónde empiezo?
Paso 2: Instálate Apio / Icestudio
Paso 3: Empieza a aprender verilog
Tutorial: Diseño Digital para FPGAs, con herramientas libres
Me molan las FPGAs libres…
¿Por dónde empiezo?
Paso 4: Apúntate al grupo de FPGAwars y haz preguntas
● Las FPGAs libres evolucionan muy rápido y
en seguida la información se queda
obsoleta
● En FPGAwars es donde se cuece lo último
de lo último
Paso 5: Haz tus propios proyectos con FPGAs libres
Paso 6: ¡Comparte tu proyecto con la comunidad! :-)
FPGAs en Patrimonio Tecnológico de la humanidad
Software
Libre
Ha Libr
ra
p
rd e
Re
wa
re
FP re
G s
lib
s
As
tr o
O
FPGAs libres
Juan González Gómez (Obijuan)
[Link]
El Evento 2016
24 de Octubre de 2016
Universidad Carlos III de Madrid [Link]