¿Pueden los FPGA modificar dinámicamente su lógica?

13

En teoría, sería posible que un FPGA escriba una imagen de configuración en una memoria externa y que cargue la imagen de configuración de la memoria para reconfigurarse. Esto sería una reconfiguración "no dinámica".

¿Los FPGA tienen la capacidad de volver a cablear su tejido lógico dinámicamente? De hecho, aunque los flip-flops pueden tener su valor modificado, no he oído hablar de la reconfiguración dinámica de las tablas de consulta y los cableados internos que conforman la estructura lógica.

¿Se puede modificar dinámicamente la lógica interna de FPGA (aparte de las memorias)? Si no, ¿por qué no?

    
pregunta Randomblue

2 respuestas

11

Sí, sé que al menos Xilinx tiene partes que admiten la reconfiguración dinámica, y los otros proveedores importantes probablemente también lo hagan.

Sin embargo, es una tarea importante hacerlo, así que realmente necesitas asegurarte de que lo necesitas. Debe dividir el chip físicamente en dos o más áreas, al menos una de las cuales no es reconfigurable, y "sujetar" físicamente todas las interfaces internas entre las áreas para que las herramientas de síntesis puedan hacer todas las conexiones correctas. / p>     

respondido por el Dave Tweed
2

Hay dos enfoques generales que se pueden usar. Muchos tipos de FPGA mantienen su configuración en pestañas que se recuperan desde un dispositivo externo (generalmente una EEPROM) en el inicio; el FPGA no necesita el dispositivo externo después de haberlo leído. Los cambios en la EEPROM durante la operación del dispositivo no entrarán en vigencia hasta que se le indique a FPGA que vuelva a cargar su contenido. Por lo tanto, es posible que un dispositivo que esté completamente inoperable sin un FPGA reprograme ese FPGA durante la operación; sin embargo, si algo sale mal durante la escritura de la EEPROM, el dispositivo puede estar inoperable a menos que un dispositivo externo pueda reescribirlo (un estado a veces denominado "bloqueado").

Un enfoque alternativo, que a menudo es útil con CPLD cuyas celdas EEPROM "directamente" controlan su funcionalidad (a diferencia de ser copiadas a pestillos) es tener un sistema que pueda operar con funcionalidad limitada incluso cuando el dispositivo programable está en una estado inútil. Si tal funcionalidad limitada es suficiente para reprogramar el CPLD, el dispositivo puede ser inmune a "bricking". Por ejemplo, un dispositivo inalámbrico puede usar un CPLD para controlar su funcionalidad inalámbrica y otras características. El método normal para reprogramar el CPLD podría ser recibir una imagen en la RAM a través del enlace inalámbrico y luego usar esa imagen para reprogramar el CPLD. Si está programando archivos, el enlace inalámbrico puede ser inutilizable hasta que el CPLD se reprograme. Sin embargo, para permitir que el sistema se recupere, el procesador podría contener una imagen "predeterminada" para el CPLD que incluiría suficiente funcionalidad para operar el enlace inalámbrico.

    
respondido por el supercat

Lea otras preguntas en las etiquetas