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

15

Teóricamente sería posible que un FPGA escribiera una imagen de configuración en una memoria externa y cargara la imagen de configuración desde la memoria para reconfigurarse. Esta 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, si bien los flip-flops pueden modificar su valor, no he oído hablar de la reconfiguración dinámica de las tablas de búsqueda y los cables internos que conforman la estructura lógica.

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

Randomblue
fuente
"reconfiguración dinámica" es de hecho la frase que estás buscando :)
Martin Thompson
¿Está buscando FPGA que puedan reconfigurarse a sí mismos (como pueden hacer algunos microcontroladores) o que puedan reconfigurarse (tiempo de ejecución) desde un componente externo?
Trygve Laugstøl

Respuestas:

12

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

Sin embargo, es una tarea importante hacerlo, por lo que realmente debe asegurarse de que lo necesita. Debe dividir el chip físicamente en dos o más áreas, al menos una de las cuales no es reconfigurable, y físicamente "fijar" todas las interfaces internas entre las áreas para que las herramientas de síntesis puedan hacer todas las conexiones correctas.

Dave Tweed
fuente
1
¡Busque en el sitio web de Xilinx la "reconfigurabilidad"!
Leon Heller
3

Hay dos enfoques generales que uno puede usar. Muchos tipos de FPGA mantienen su configuración en pestillos que se obtienen de un dispositivo externo (generalmente una EEPROM) al inicio; FPGA no necesita el dispositivo externo después de haberlo leído. Los cambios en la EEPROM durante el funcionamiento del dispositivo no surtirán efecto hasta que se indique al FPGA que vuelva a cargar su contenido. Por lo tanto, es posible que un dispositivo que sería completamente inoperable sin un FPGA reprograme ese FPGA durante la operación; si algo sale mal durante la escritura de EEPROM, sin embargo, el dispositivo puede quedar inoperativo a menos que o hasta que pueda ser reescrito por un dispositivo externo (un estado a veces denominado "bloqueado").

Un enfoque alternativo, que a menudo es útil con CPLDs cuyas células EEPROM controlan "directamente" su funcionalidad (en lugar de ser copiadas en pestillos) es tener un sistema que pueda funcionar con una funcionalidad limitada incluso cuando el dispositivo programable está en un estado inútil. Si dicha funcionalidad limitada es suficiente para reprogramar el CPLD, el dispositivo puede ser inmune al 'bloqueo'. Por ejemplo, un dispositivo inalámbrico podría usar un CPLD para controlar su funcionalidad inalámbrica y otras características. El método normal de 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 se programan archivos, el enlace inalámbrico puede quedar inutilizable hasta que el CPLD se reprograme. Sin embargo, para permitir que el sistema se recupere, el procesador podría contener un "valor predeterminado"

Super gato
fuente