0% encontró este documento útil (0 votos)
170 vistas43 páginas

Fpga

Este documento proporciona una introducción a las FPGAs libres. Explica que las FPGAs son chips programables que permiten diseñar circuitos digitales de forma flexible. Describe las herramientas de código abierto como Icestorm, APIO e Icestudio que permiten programar FPGAs libres como la Lattice iCE40 usando lenguajes HDL. También presenta placas de desarrollo como Icezum Alhambra y proyectos como Rasty y Larby para aprender sobre FPGAs libres de forma práctica.

Cargado por

RUBIK
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)
170 vistas43 páginas

Fpga

Este documento proporciona una introducción a las FPGAs libres. Explica que las FPGAs son chips programables que permiten diseñar circuitos digitales de forma flexible. Describe las herramientas de código abierto como Icestorm, APIO e Icestudio que permiten programar FPGAs libres como la Lattice iCE40 usando lenguajes HDL. También presenta placas de desarrollo como Icezum Alhambra y proyectos como Rasty y Larby para aprender sobre FPGAs libres de forma práctica.

Cargado por

RUBIK
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

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]

También podría gustarte