Kit de herramientas FPGA de código abierto Symbiflow

Cualquiera que haya tenido el placer de programar FPGA sabe que es una tierra de herramientas patentadas que casi requieren un compromiso matrimonial con una plataforma específica para ser efectivas. Symbiflow espera resolver esto convirtiéndose en el CCG de FPGA.

En lugar de una herramienta creada en torno a un chip o arquitectura específicos, Symbiflow proporcionará una interfaz más universal. Los usuarios pueden programar en Verilog; Las definiciones arquitectónicas definen cómo se compilará el código para el chip correcto. Actualmente están apuntando a la popular serie Xilinx 7, la muy asequible serie grid iCE40 y las FPGA ECP5 también de Lattice.

Si te diriges a La-Tecnologia Supercon este año, [Timothy Ansell] hablará sobre cómo Symbiflow hace que este proceso sea mucho más accesible y mucho menos personal. En general, estamos muy entusiasmados con una interfaz común, especialmente porque el precio de los FPGA continúa cayendo en el territorio de los microcontroladores al mismo tiempo que aumenta.

(Hablando de Supercon, y tal vez esto sea un spoiler, la insignia no sería posible sin Symbiflow, Project Trellis, Yosys y NextPNR).

  • Alexander Wikström dice:

    Habiendo considerado hacer algunos proyectos de FPGA yo mismo, tengo que estar de acuerdo en que "es una tierra de herramientas de propiedad que casi requiere un compromiso matrimonial con una plataforma específica para ser efectiva". es una descripción bastante buena de la experiencia.

    Sería bueno tener un programa semi-software gratuito y fácil de descargar que abra la puerta a los CPLD y FPGA sin toda la molestia de exportar programas limitados, inicios de sesión crudos para empresas con términos de servicio cuestionables para simplemente registrarse para obtener una cuenta , etcétera. .

    Sin embargo, considerando lo diversos que pueden ser los FPGA y CPLD en sus implementaciones, probablemente sería semi difícil crear una cadena de herramientas que tenga un proceso de desarrollo unificado para todo tipo de dispositivos programables de todos los diferentes fabricantes.

    Pero bueno, no me quejaré si al menos puede hacer la mitad de un trabajo razonable.

    Con suerte, tiene un modo de esquema en el que puede organizar cosas como bloques lógicos, sin embargo, la dislexia y las paredes de texto no funcionan bien entre sí ... (Y el uso de esquemas y bloques / nodos lógicos es tan capaz como el texto si se implementa correctamente. Incluso el diseño paramétrico no es tan difícil de implementar para la programación basada en nodos, sin mencionar que se pueden supervisar diseños más complicados con mayor facilidad).

    Sin embargo, también sería bueno tener la oportunidad de manejar el tejido lógico usted mismo. (No digo que esto sea recomendado, ni un curso de acción efectivo, es un poco como programar en código máquina, no es óptimo, pero a veces puedes hacer las cosas más eficientes, como lo haría un compilador, porque sabes lo que quieres priorizar, en lugar de jugar con la configuración del compilador durante semanas ...)

    Al final, podría ser algo que valga la pena ver.

    • Jonathan dice:

      "es un poco como programar en código máquina, no es óptimo, pero a veces puede hacer las cosas de manera más eficiente que un compilador porque sabe lo que quiere priorizar"

      No digas esas cosas. Tendrás detrás de ti los ayudantes de la Anti Assembler Society (tm).

      Y tampoco diga que es cierto que lo empeora.

      🙂

      • Alexander Wikström dice:

        Bueno, el código de máquina a veces incluso es linchado por los miembros de la asamblea, así que supongo que tengo que evitar dos compañías en ese caso.

      • sem-geólogo dice:

        Sociedad Anti-Ensamblador ... que reúne un acrónimo realmente agradable: D. Usted creó mi día, señor (le da un sombrero).

  • Zerg dice:

    En apariencia, Symbolflow apenas está listo para la hora punta. Es solo una colección de archivos en este momento. Definitivamente no utilizable. Quizás en un año o dos podrían tener algo o no.

    Me quedaré con Quartus y Aldec hasta entonces.

    • Oliver dice:

      Si bien esto es muy severo; Tengo que estar de acuerdo mucho. Se necesita hacer mucho gusano. Es más probable que el gusano que se necesita hacer sea más sobre los elementos enviados ...
      Te seguire muy de cerca

    • cb88 dice:

      Quartus es, en última instancia, solo un editor de texto con algunos botones que le permiten controlar el compilador ... y algunas otras utilidades de GUI.

      Symbiflow no tiene la GUI, pero le brinda la mayor parte de todo lo demás ... así que decir que es solo una colección de archivos es francamente estúpido. Puede que no sea adecuado para usted, pero no se ajusta a lo que dijo.

  • Richard Lewis dice:

    El equipo de código abierto es bueno y todo, pero si no es compatible con lo que ya tengo con las versiones gratuitas de Living y Quartus, lo omitiré. Ningún soporte VHDL es un espectáculo para mí. No soporto a Verilog. Conozco a Verilog bastante bien, pero no me gusta. También para proyectos menos que triviales se dedica mucho tiempo a configurar los relojes para cumplir con los requisitos de tiempo y la planificación de pines.

    Solo para la memoria, Verilog / VHDL no es un programa en el sentido tradicional, es una descripción de hardware. C / JAVA, todo lo que se compila o interpreta en instrucciones que se ejecutan en una CPU, los conceptos son completamente diferentes y requieren una mentalidad diferente.

    El TL; DR parte:

    He estado entrando y saliendo de FPGA como un pasatiempo durante unos 10 años. Comenzó con Xilinx y ahora funciona con Intel / Altera. En cuanto al equipo, las versiones gratuitas de Vivado (e ISE) en Xilinx y Quartus en Intel son casi clones entre sí. Sí, la curva de aprendizaje inicial es muy pronunciada, pero saltar de Living a Quartus fue un máximo de uno o dos días. Son tan similares (evolución convergente). Supongo que la gente de JAVA puso esto en contexto, es como moverse entre Eclipse e IntelliJ. Además, VHDL y / o Verilog pasarán fácilmente si es razonablemente básico. Pero incluso si usa una IP patentada como un bus AXI en comparación con Avalon, realmente no es tan difícil de transferir.

    Claro, el formato de bits subyacente está vinculado al proveedor y es propietario, por lo que debe utilizar la cadena de ese proveedor. Sería bueno si hubiera un GCC como una cadena de herramientas donde pudiera dirigir mi proyecto VHDL a Intel Cyclone IV o Xilinx Zynq, por ejemplo, y funciona (por supuesto, hay asignaciones de pines de bits específicos y límites de reloj que deben abordarse) .

    En cuanto al modo esquemático, primero lo usé, pero luego lo obtuve rápidamente, ya que era difícil de sostener. Una vez que entendí que diseñar hardware usando Verilog o VHDL es una cuestión de reconocer fragmentos de código con plantillas de hardware, se volvió más fácil de simplificar y escalar. No podía imaginar proyectar algo tan simple como UART con una trampa de esquema en lugar de simplemente codificar una máquina de estado en VHDL. Esto último parece mucho más fácil.

    • cb88 dice:

      Es compatible con SystemVerilog completamente de acuerdo con lo que recuerdo, así que ... eso lo hace más utilizable al menos ese Verilog simple.

  • Jonathan Piat dice:

    Este es un proyecto muy agradable, pero no creo que tenga éxito sin el apoyo de los proveedores de FPGA. Mientras ejecutamos el proyecto LOGI, hablamos un poco con Xilinx porque no pudieron construir una comunidad de usuarios. Propusimos y creamos un prototipo de una herramienta de gráficos HDL usando síntesis en la nube con herramientas Xilinx. Se han negado a seguir adelante porque se niegan a apoyar una iniciativa que podría dañar su reputación si no funciona bien.

  • pictografo dice:

    Varios desafíos aquí, nada en principio superable, pero no será rápido. Los FPGA modernos son complicados. Tienen una amplia variedad de bloques de IP especializados. A veces hay parámetros de configuración de hardware o defectos procesados ​​en programas. Por ejemplo, secuencias de puesta en marcha de medios de radio o de viajes rápidos que, en circunstancias específicas, podrían provocar una conversación. El proveedor puede crear las herramientas para hacer lo correcto y evitar problemas, pero sin pruebas costosas, un proyecto de código abierto será difícil de descubrir y realizar ingeniería inversa. La propuesta de valor de los FPGA depende en gran medida de las bibliotecas propietarias y, a menudo, costosas. Quizás su pensamiento haya cambiado en la última década, pero los proveedores de FPGA solían ser lo suficientemente hostiles como para realizar ingeniería inversa en sus flujos de bits de configuración. Los desafíos legales son definitivamente una opción.

    • cb88 dice:

      Sí, lo hacen, sin embargo, ECP5 es un FPGA bastante complejo y están progresando bien allí. ICE40 e ICE40Ultra son FPGA relativamente simples y, sin embargo, fueron un buen punto de partida.

Joel Carrasco
Joel Carrasco

Deja una respuesta

Tu dirección de correo electrónico no será publicada.