Programación personalizada para placas FPGA

0

¿Es posible escribir su propia herramienta para programar placas FPGA, o están bloqueadas para ser programadas únicamente por las herramientas del fabricante?

En otras palabras, ¿puedo escribir mi propia herramienta para programar / flashear una placa FPGA que compre a un gran proveedor (por ejemplo, Intel o Xillix)?

    
pregunta Jas

2 respuestas

5

La mayoría de los proveedores de FPGA no comparten la información necesaria para crear herramientas de software personalizadas que pueden compilar diseños para generar archivos de "flujo de bits" de configuración para el FPGA, o al menos no fuera de una NDA con un proveedor de herramientas que es un socio estratégico. Hay algunos casos únicos en los que se ha obtenido suficiente información para que esto sea posible, pero para Xilinx o Altera (Intel), se queda atascado compilando su diseño con las herramientas del proveedor o con los comerciales de terceros aprobados.

Sin embargo, casi todos los proveedores de FPGA publican Application Notes con información sobre cómo cargar un flujo de bits creado por las herramientas aprobadas del proveedor en el propio dispositivo FPGA en tiempo de ejecución. Una posible excepción podría ser la FPGA tipo flash o anti-fusible, pero para las FPGA basadas en SRAM tradicionales, esta información es necesaria para ser competitivo en el mercado porque hay muchos diseños en los que un procesador inyectaría el flujo de bits después de leerlo en un disco. o dispositivo de almacenamiento.

Los FPGA basados en SRAM modernos suelen admitir muchos métodos de configuración: una carga esclava de un procesador, una carga maestra de un flash SPI único o estándar, extensiones JTAG, incluso cosas novedosas como USB.

E incluso los chips flash de configuración especializada suministrados por el proveedor pueden incluir suficiente información para crear sus propias herramientas para su programación.

Dicho esto, por lo general, tendrá la experiencia más sencilla utilizando un cable / adaptador de programación propio del proveedor, o una opción de trabajo similar o de un tercero aprobado, especialmente si desea hacer cosas como usar un analizador lógico compilado que necesita Comunícate con las herramientas de desarrollo a través de este cable. Sin embargo, incluso allí puede tener opciones, por ejemplo, las herramientas a veces pueden representar la comunicación con el programador a través de una red, y eso puede haber dado a alguien la oportunidad de realizar ingeniería inversa del protocolo e implementar su propia versión.

Poner un FPGA en un tablero personalizado tiende a no ser en absoluto trivial. Cuando recién comienza, haría todo lo posible para obtener una evaluación o un panel de experimentación para la familia de FPGA que está considerando. Con suerte, esto solo tomaría un cable USB o vendría con un cable adaptador de programación compatible. ¡Asegúrese de que el tablero que compre esté respaldado por el nivel gratuito de las herramientas del proveedor!

    
respondido por el Chris Stratton
1

Es posible si conoce el circuito del cable (o puede diseñarlo y probarlo usted mismo) y conoce el protocolo de programación. Utilizo el clon ByteBlaster II (gracias a que su diseño está bien documentado) para programar EPCS y otros dispositivos flash serie usando software personalizado escrito en BASIC (sí, en BASIC!). Desarrollé este software basándose en el manual FPGA de Altera y la hoja de datos del chip EPCS. Parece que el código se aplica a otros chips estándar de flash serie. Por cierto, los chips marcados con EPCS parecían estar hechos por GigaDevice (código de fabricante 0xc8), siendo EPCS16 realmente GD25Q16. Y a la hoja de datos EPCS le faltan algunos comandos estándar documentados que están disponibles para dispositivos flash serie estándar. Y al comando 0x9F de Altera ASMI IP le falta la lectura de los bits de ID de fabricante y de dispositivo [15: 8] del chip adjunto. Aquí está mi Q & A al respecto en SE.EE al respecto.

Y, por supuesto, Altera / Intel quiere obligarlo a usar chips, herramientas y software genuinos. Por lo tanto, si desea ser "100% compatible", tendrá que atenerse a lo que desea el fabricante, a menos que le den un permiso por escrito, o puede sobrevivir con su soporte respondiendo "tiene una configuración no compatible".

Finalmente, el dispositivo de programación personalizado NO lo excluye al usar dispositivos originales para programar y probar FPGA. Las interfaces seriales / JTAG / activas están bien documentadas, por lo tanto, solo necesita tener el conector estándar para conectar su dispositivo personalizado o estándar de programación / solución de problemas.

    
respondido por el Anonymous

Lea otras preguntas en las etiquetas