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.
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
Esta es la potencia de las FPGAs: son reconfigurables. Y por tanto tienen muchsima versatilidad.
Podemos crear circuitos con existencia fsica, a nuestro antojo.
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
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...
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
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