Anda di halaman 1dari 10

FPGAwars 17/07/17 21'26

FPGA
wars
Explorando el lado libre de las FPGAs...
foro Github wiki

Te imaginas aprender cmo funcionan "las tripas" de los chips? Te imaginas hacer tus propios chips?
Todo esto es posible gracias a las FPGAs. Con ellas podrs sumergirte de lleno en el diseo de
electrnica digital avanzada.

Viaje al interior de los chips digitales


La electrnica digital es la base sobre la que estn diseados todos los chips digitales actuales:
procesadores, controladores, unidades de comunicacin, etc. Los circuitos digitales slo trabajan con bits,
(0, 1), y se encargan de manipularlos, almacenarlos y transportarlos

Los circuitos digitales estn formados por tres elementos: puertas lgicas, para manipular bits,
biestables, para almacenarlos y cables para unir los componentes y transportar los bits

http://obijuan.github.io/intro-fpga.html Pgina 1 de 10
FPGAwars 17/07/17 21'26

Tecnologa FPGA
Las FPGAs son chips que contienen en su interior todos estos elementos bsicos sin conectar,
organizados en una retcula

Las conexiones a los cables son programables, de manera que se pude configurar qu elementos se unen
a cuales, formando as el circuito digital que queremos. Tambin se pueden configurar las conexiones con
los pines de la FPGA, determinando por qu pines entra la informacin y por cules sale

http://obijuan.github.io/intro-fpga.html Pgina 2 de 10
FPGAwars 17/07/17 21'26

Si ahora establecemos otras conexiones diferentes, obtenemos un circuito diferente. Simplemente


reconfigurando las uniones de los cables!. Por eso, a este procese se le denomina reconfiguracin de la
FPGA. Circuitos reales, que aparecen y desaparecen a nuestro antojo...

Esta es la potencia de las FPGAs: son reconfigurables. Y por tanto tienen muchsima versatilidad.
Podemos crear circuitos con existencia fsica, a nuestro antojo.

Las FPGAs son las impresoras 3D de los circuitos digitales

Bits de configuracin
Cada una de las conexiones tiene asociado un bit de configuracin que determina su estado: Conectado
(1) o NO Conectado (0)

http://obijuan.github.io/intro-fpga.html Pgina 3 de 10
FPGAwars 17/07/17 21'26

En este ejemplo, la conexin se aplica entre los cables izquierdo e inferior. Pero hay un bit de
configuracin por cada una de las posibles conexiones (No estn puestos en el esquema por simplicidad)

La reconfiguracin de las FPGAs se consigue asignando valores a sus bits de configuracin. Iniciamente
estn todos a 0, por lo que no hay conexiones establecidas y la FPGA est "en blanco". Al dar valores a
sus bits de configuracin, se establecen las conexiones y aparece nuestro circuito

Bitstream
Todos los valores para los bits de configuracin se agrupan en una tira de bits llamada bitstream, que se
carga desde el exterior

http://obijuan.github.io/intro-fpga.html Pgina 4 de 10
FPGAwars 17/07/17 21'26

El bitstream se transmite por un bus serie (spi), bit a bit, configurndose las conexiones de la FPGA

Memoria de configuracin
Las FPGA son voltiles: al quitar la alimentacion pierden su configuracin. Al alimentarlas de nuevo,
estn en blanco y se quedan esperando a recibir un bitstream para reconfigurarse

http://obijuan.github.io/intro-fpga.html Pgina 5 de 10
FPGAwars 17/07/17 21'26

Por eso, junto a la FPGA se sita una memoria serie externa, no voltil, llamada memoria de
configuracin, que almacena el bitstream. As, al alimentar la FPGA lo primero que hace es
reconfigurarse con el bitstream de la memoria de configuracin

El bitstream se graba en la memoria de configuracin desde un dispositivo externo: ordenador, arduino,


raspberry pi, ubuntu phone, etc.

Diseando circuitos digitales

Cul es el proceso de diseo de un circuito digital? Cmo generamos el bitstream?

Los circuitos digitales modernos se disean utilizando lenguajes de descripcin hardware (HDL). Los
ms extendidos son VHDL y Verilog

http://obijuan.github.io/intro-fpga.html Pgina 6 de 10
FPGAwars 17/07/17 21'26

Desde una descripcin en HDL podemos simular el circuito, generar el bitstream para FPGAs o
fabricar el circuito integrado

En las FPGAs, obtenemos circuitos reales a partir de ficheros de texto escritos en un lenguaje HDL. Los
circuitos "se materializan" a partir del cdigo HDL. A este proceso lo denominamos sntesis

http://obijuan.github.io/intro-fpga.html Pgina 7 de 10
FPGAwars 17/07/17 21'26

Esto es un salto importantsimo. Podemos disear hardware real escribiendo "lneas de cdigo"!
Podemos usar las mismas herramientas software para disear hardware!: repositorios, editores,
bibliotecas de hardware...

En las FPGAs, el hardware es ahora "software"! Hemos convertido el hardware en software!

FPGAs: Slo personal autorizado!


Las FPGAs se inventaron hace ms de 30 aos, por la empresas Xilinx. Sin embargo, es una tecnologa
que NO se ha popularizado entre los makers y la comunidad de hardware libre en general.

Se trata de una tecnologa muy cerrada, rodeada de software privativo, en la que slo puedes usar lo
que el fabricante te diga en las condiciones que te diga. No hay lugar para la innovacin. No hay lugar
para la comunidad. No estn publicados los detalles internos de la FPGA, ni del formato de los
bitstreams

http://obijuan.github.io/intro-fpga.html Pgina 8 de 10
FPGAwars 17/07/17 21'26

Las FPGAs son una tecnologa muy cerrada, donde hay muy pocos fabricantes y todo el software es
privativo. Nadie conoce el formato de los bitstreams

FPGAs libres: El renacimiento


Sin embargo, Clifford Wolf, hizo Ingeniera inversa de las FPGAs iCE40 de Lattice y en Marzo del
2015 cre el PROYECTO ICESTORM y se liber la primera toolchain de herramientas que permiten
pasar de Verilog al bitstream usando slo Herramientas libres

http://obijuan.github.io/intro-fpga.html Pgina 9 de 10
FPGAwars 17/07/17 21'26

http://obijuan.github.io/intro-fpga.html Pgina 10 de 10

Anda mungkin juga menyukai