Reconfiguración parcial en FPGA

1

He estado haciendo un proyecto que involucra la reconfiguración parcial de un FPGA desde hace algún tiempo. Tengo problemas para entender qué se entiende por términos como 'archivo de bits parcial', 'flujo de bits', etc. ¿Cómo puede ser parcial un archivo .bit? Además, sé que Xilinx proporciona la herramienta PlanAhead para la reconfiguración, pero ¿requiere algún tipo de licencia para que funcione? Sé que para la reconfiguración, tendría que separar mi tejido en dos partes: estática y dinámica. Mientras que la parte estática es lo que generalmente se hace, ¿hay una manera específica de codificar mi lógica dinámica en HDL? ¡Cualquier ayuda sería apreciada! Gracias!

    
pregunta mac93

2 respuestas

2

La idea detrás de la reconfiguración parcial es que básicamente puedes intercambiar una parte de tu diseño sobre la marcha sin tener que reconfigurar todo el FPGA. Sin embargo, no he usado la reconfiguración parcial. Y es posible que necesite la Edición del sistema de ISE para obtener acceso a PlanAhead.

El flujo de bits es la información de configuración que informa al FPGA de cómo configurar todos sus elementos de lógica y enrutamiento internos y las RAM de bloque para implementar su diseño. La idea con la reconfiguración parcial es que no especifica una configuración para todo el FPGA, solo para una parte de él. Ciertamente, existen limitaciones en cuanto a la cantidad de chip que se puede reconfigurar sobre la marcha y cómo la parte reconfigurable debe interactuar con el resto del diseño.

En cuanto a cómo codificar la parte dinámica, bueno, no es realmente 'dinámico' per se, solo es reconfigurable. Por lo tanto, probablemente tendría que generar un proyecto separado para cada configuración, y cada proyecto tendría la implementación de esa configuración. Las salidas de esos serían archivos de bits parciales. Cuando carga uno de los archivos de bits parciales, reemplazaría la implementación del bloque configurable en consecuencia.

Supongamos que tiene un diseño para una radio definida por software que puede hablar varios estándares inalámbricos diferentes. Puede tener una interfaz común para la ruta de datos y los ADC y DAC, y tal vez incluso un softcore o dos en la parte no reconfigurable. Luego implementas los modems específicos en la sección reconfigurable. Sobre la marcha, puede cargar un archivo de bit parcial, apagar la radio e intercambiar el módem mientras las memorias de software aún se están ejecutando.

Me temo que no puedo ser de mucha ayuda en los detalles, ya que no tengo experiencia con la reconfiguración parcial.

    
respondido por el alex.forencich
2

Sólo una breve expansión de la respuesta de Alex. El flujo de herramientas que describe es el sugerido por Xilinx, que es probablemente donde debería comenzar. Sin embargo, siempre que pueda generar flujos de bits parciales, puede volver a configurar el FPGA a voluntad. Las restricciones que Xilinx coloca en la reconfiguración parcial del tiempo de ejecución están más relacionadas con sus herramientas que lo que el hardware FPGA es capaz de hacer.

Nuestro grupo de investigación ha estado trabajando en la implementación de la especialización de circuitos dinámicos, que genera nuevos circuitos especializados en tiempo de ejecución y actualiza la configuración de FPGA para adaptarse al nuevo circuito. Es útil cuando el número de módulos posibles es muy grande, por ejemplo cuando se implementa un filtro FIR adaptable. Si está interesado en esto, nuestro flujo de herramientas se puede encontrar en github .

    
respondido por el Cassiel

Lea otras preguntas en las etiquetas