Trabajando en un FPGA sin un IDE [cerrado]

3

He estado programando microcontroladores durante aproximadamente 5 años. En mi flujo de trabajo de desarrollo de MCU actual, uso emacs para editar mi firmware, compilo con arm-none-eabi-gcc , y actualizo el código con un herramienta j-link segger , todo en Linux.

Me encanta este arreglo porque puedo hacer horas de trabajo sin tocar mi mouse, y no necesito pasar por una interfaz gráfica de usuario detallada y descuidada solo para agregar marcas de compilación ( Te estoy mirando, Microchip ). En su lugar, solo puedo editar el makefile allí mismo en mi ventana de emacs.

Sin embargo, hay un proyecto de FPGA muy grande en mi futuro cercano, y aunque me encanta diseñar hardware en verilog, absolutamente no estoy deseando con la basura completa como Libero de Microsemi o Quartus de Altera (ambos tuve la desgracia de usar para proyectos muy pequeños).

¿Alguien sabe qué chip del fabricante tendré que elegir si quiero compilar mi verilog, configurar las opciones de chip y generar TODOS los archivos de programación en la línea de comandos? ¿Alguien ha tenido éxito haciendo algo como esto?

    
pregunta johnny_boy

2 respuestas

5

El estado de las herramientas EDA de FPGA es horrible, en mi opinión.

Dicho esto, aquí está mi flujo de herramientas para cada uno de los principales proveedores:

  1. El diseño / trabajo inicial se realiza con la GUI que proporcionan. No hay forma de evitar esto, especialmente si desea utilizar núcleos IP. Esto está en Windows. También puede ejecutar las GUI en Linux, pero en el pasado, las versiones de Windows han recibido la mayor atención / soporte.
  2. La compilación se realiza sin cabeza en cajas remotas de Linux.

El flujo de herramientas para cada uno se basa principalmente en Tcl, y si observa lo que hace la GUI, básicamente ejecuta los comandos Tcl. Cada proveedor tiene un manual de referencia que describe lo que puede hacer con Tcl. Además, Altera le permite escribir Makefiles GNU de vainilla para ejecutar Quartus sin cabeza.

Utilizo scons para ejecutar las compilaciones Actel y Xilinx ahora mismo: llamadas de Python a los scripts Tcl que ejecutan las herramientas. No puedo comentar sobre Lattice, pero apuesto a que tienen algo similar.

Última "queja" / nota: el control de versión puede ser complicado con la cantidad de basura adicional que escupen las herramientas GUI. Mi MO es minimizar el conjunto de archivos para el control de versiones, generar los núcleos IP / archivos de proyecto dinámicamente en cada compilación y agregarlos a .gitignore.

Resumen: puede conducir los IDE de Altera, Xilinx y Actel / Microsemi sin cabeza con scripts basados en Tcl.

    
respondido por el Krunal Desai
1

He manejado exitosamente las cadenas de herramientas Xilinx ISE y Altera Quartus desde makefiles en linux. Ocasionalmente he tenido que usar varias herramientas de gui para generar archivos de configuración para varios componentes y luego usar makefiles para impulsar la generación del hdl / netlist real a partir de eso con makefiles (coregen, megafunctions, qsys, etc.). Sin embargo, el vivado es un animal ligeramente diferente. Creo que uno puede requerir el uso de más tcl. Sin embargo, puede ser posible conectar eso con makefiles de alguna manera. No estoy familiarizado con ningún otro software de proveedor.

Los diseños de ejemplo aquí contienen flujos de makefile controlados para ISE y Quartus: enlace

    
respondido por el alex.forencich

Lea otras preguntas en las etiquetas