Buscando herramientas de desarrollo y hardware FPGA de código abierto [cerrado]

38

Investigó las placas FPGA pero no puede encontrar herramientas de desarrollo de placa abierta de fuente abierta y FPGA neutral para el proveedor:

  • El fabricante de ORSoC cuenta con código abierto en su sitio web, pero realmente no puedo encontrar pruebas sólidas, excepto webmastering OpenCores.org.
  • El dúo: Xilinx anuncia sus productos con el "Concurso de innovación de hardware de código abierto para las universidades de China continental". Aún así, sus productos son propietarios, mal soporte para * ix -. Del mismo modo, Altera tiene un soporte deficiente para * ix, solo verifique el soporte de su sistema operativo con Quartus o cómo tener su analizador lógico en el paso sintético.
  • Grupo de jugadores pequeños: te permite señalar lo mejor.

¿Hay algún fabricante fuerte con elementos de código abierto como hw y herramientas de desarrollo?

hhh
fuente
Pregunta relacionada en SO aquí .
hhh
3
Ahora hay una cadena de herramientas de código abierto para los FPGA iCE40 de Lattice Semiconductor, consulte: github.com/cseed/arachne-pnr
Cotton Seed

Respuestas:

8

Lamentablemente, no hay mucho software libre para hardware programable. Hay algunas herramientas de síntesis, como Lava (que espera en gran medida la colocación manual), Confluence, HDCaml y Atom e Icarus Verilog , pero casi sin herramientas de instalación, mapeo o ubicación y ruta (me encantaría que me demuestren lo contrario en esta). Opencircuitdesign.com ha recopilado algunas herramientas, pero probablemente requiera documentación y un generador de flujo de bits. La simulación, por otro lado, está bastante bien cubierta.

En el lado no libre, las herramientas no gratuitas pero gratuitas de Xilinx han visto algunas mejoras recientemente, al agregar soporte de libusb y soltar Wind / U (un horrible análogo de winelib no libre) a favor de Qt (pero no serán actualización para fichas retiradas). La mayoría de las otras herramientas parecen saboteadas utilizando un paquete llamado flexlm, hasta el punto de que es difícil hacer que funcionen incluso con la ayuda del proveedor. También he podido ejecutar el software Lattice Diamond en Linux, pero carecía de simulación. Para Atmel AT40KAL, la herramienta de ubicación y ruta podría ejecutarse en Wine, pero la biblioteca exige componentes no estándar (usa LPM, pero rechaza puertas de 2 entradas), por lo que se necesitaría una especie de mapeador.

Yann Vernier
fuente
5

Desafortunadamente, las herramientas de síntesis son todas de código cerrado hasta donde yo sé. El código que contienen es una gran parte de su ventaja comercial, por lo que creo que es poco probable que parezca de código abierto.

Xilinx tiene cadenas de herramientas gratuitas para Windows y Linux, y si no le gusta su IDE, puede usar sus herramientas de línea de comandos con su propio editor. He hecho esto antes, funciona bien para proyectos pequeños (por ejemplo, CPLD) donde no quieres perder el tiempo con grandes paquetes de software complejos.

Creo que Altera solo ofrece herramientas gratuitas para Windows, sus herramientas de Linux se pagan solo la última vez que lo revisé (esto puede haber cambiado, tal vez haya pasado un año más o menos desde la última vez que busqué).

davr
fuente
Tengo entendido que la síntesis, el proceso de implicar un diseño en los componentes del bloque de construcción de la tecnología, es la última capa donde es factible sustituir el suyo. Es la siguiente capa: el lugar y la ruta, el análisis de tiempo que debe acompañarlo y la generación de bitream que sigue, donde se necesita información realmente estrecha.
Chris Stratton
5

El Butterfly Board parece una buena ruta para principiantes de código abierto en FPGA. Ya han portado el núcleo AVR8 para que pueda ejecutar bocetos Arduino / código de objeto AVR en la cosa, por lo que hay una curva de aprendizaje sensata.

Actualización: ahora renombrado a Papilio Boards .

Creo que se necesita Xilinx WebPack y está disponible para Windows y Linux.

Toby Jaffey
fuente
El paquete web también debería ser gratuito para usted.
Kortuk
lo siento, pero realmente no puedo ver cuál es el "código abierto" con él. Prefiero deslizar monedas con más de la mitad más barato como: item.taobao.com/auction/… .
hhh
3
Aunque se basa en la cadena de herramientas patentada Xilinx, el Butterfly One incluye 1) un diseño de placa de código abierto, 2) un "programador" de código abierto (bitstream-> utilidad de flash) y 3) muchas IP de código abierto como ejemplos . ¡Recomendado!
¿Tal vez deberías actualizar tu enlace para apuntar a Butterfly One? Además, ¿sabe qué tan bien soportados están (como cuántas personas los usan y si son buenos para principiantes)?
Earlz
Los esquemas y todo son de código abierto para Butterfly One y lo ejecuté completamente en mi computadora Arch Linux. Tienes que compilar manualmente algunas cosas, pero no diría que es más difícil que la mayoría de los FPGA para comenzar. (y probablemente más fácil porque viene programado como un softcore AVR
Earlz
3

Todas las herramientas de desarrollo FPGA están estrechamente relacionadas con los dispositivos FPGA y dependen por completo de los detalles propietarios de la arquitectura FPGA, particularmente en los niveles de ubicación, enrutamiento y generación de flujo de bits. Como tal, la neutralidad del vendedor es en gran medida inexistente. Las herramientas de nivel superior pueden ser neutrales para el proveedor hasta cierto punto (p. Ej., Synplify, herramientas ESL, herramientas de verificación, etc.), pero ciertamente no son de código abierto.

Por otro lado, hay muchas herramientas académicas que son de código abierto. Mientras no desee desarrollar un dispositivo físico real, puede usar la cadena de herramientas VPR 5.0 .

mrkj
fuente
No compro la explicación de "estrechamente acoplado al hardware". Es lo mismo con diferentes conjuntos de instrucciones para CPU integradas.
maxy
@maxy - no, realmente no lo es. Una CPU extrae cantidades intensas de detalles de hardware que están expuestos y deben ser considerados por una cadena de herramientas FPGA. El compilador de CA realmente no necesita saber o preocuparse si la salida del multiplicador llegará al siguiente registro a tiempo, e incluso el diseñador de la placa solo tiene que mirar la velocidad de reloj máxima permitida para saber esto. Para una herramienta FPGA, debe saber cuánto tiempo tarda el multiplicador, cuál es el tiempo de configuración del registro y luego calcular el retraso entre ellos en función de dónde los coloca en el chip y cómo enruta la señal entre ellos.
Chris Stratton
3

Ni de código abierto ni compatible, pero Xilinx ofrece una API gratuita multiplataforma (Java) llamada Jbits que permite la programación directa (y la reprogramación sobre la marcha) de FPGA. Creo que solo se admiten CPLD y hasta Virtex-II, pero es lo más parecido a permitir que los desarrolladores produzcan sus propias herramientas de síntesis personalizadas. Planeando jugar un poco con esto en un futuro cercano.


fuente
Jbits fue realmente genial.
Prof. Falken