Les FPGA peuvent-ils modifier dynamiquement leur logique?

15

Il serait théoriquement possible pour un FPGA d'écrire une image de configuration dans une mémoire externe et de charger l'image de configuration depuis la mémoire pour se reconfigurer. Ce serait une reconfiguration "non dynamique".

Les FPGA ont-ils la possibilité de recâbler leur structure logique de manière dynamique? En effet, alors que les bascules peuvent voir leur valeur modifiée, je n'ai pas entendu parler de reconfiguration dynamique des tables de correspondance et des câblages internes qui composent la structure logique.

La logique interne du FPGA (autre que les mémoires) peut-elle être modifiée dynamiquement? Sinon, pourquoi pas?

Randomblue
la source
"reconfiguration dynamique" est en effet la phrase que vous recherchez :)
Martin Thompson
Recherchez-vous des FPGA capables de se reconfigurer (comme certains microcontrôleurs) ou reconfigurables (runtime) à partir d'un composant externe?
Trygve Laugstøl

Réponses:

12

Oui, je sais qu'au moins Xilinx a des pièces qui prennent en charge la reconfiguration dynamique, et les autres grands fournisseurs le font probablement aussi.

C'est une entreprise majeure pour le faire, donc vous devez vraiment vous assurer que vous en avez besoin. Vous devez partitionner la puce physiquement en deux ou plusieurs zones, dont au moins une n'est pas reconfigurable, et "épingler" physiquement toutes les interfaces internes entre les zones afin que les outils de synthèse puissent établir toutes les bonnes connexions.

Dave Tweed
la source
1
Recherchez sur le site Web de Xilinx la «reconfigurabilité»!
Leon Heller du
3

Il existe deux approches générales que l'on peut utiliser. De nombreux types de FPGA conservent leur configuration dans des verrous qui sont récupérés à partir d'un périphérique externe (généralement une EEPROM) au démarrage; le périphérique externe n'est pas requis par le FPGA après avoir été lu. Les modifications apportées à l'EEPROM pendant le fonctionnement de l'appareil ne prendront effet que lorsque le FPGA sera chargé de recharger son contenu. Ainsi, il est possible pour un appareil qui serait complètement inutilisable sans FPGA de reprogrammer ce FPGA pendant son fonctionnement; en cas de problème pendant l'écriture EEPROM, cependant, le périphérique peut être inopérant à moins que ou jusqu'à ce qu'il puisse être réécrit par un périphérique externe (un état parfois appelé «brique»).

Une approche alternative, qui est souvent utile avec les CPLD dont les cellules EEPROM contrôlent "directement" leur fonctionnalité (au lieu d'être copiées sur les verrous) est d'avoir un système qui peut fonctionner avec des fonctionnalités limitées même lorsque le dispositif programmable est dans un état inutile. Si une telle fonctionnalité limitée est suffisante pour reprogrammer le CPLD, l'appareil peut être à l'abri de la «brique». Par exemple, un appareil sans fil peut utiliser un CPLD pour contrôler sa fonctionnalité sans fil et d'autres fonctionnalités. La méthode normale de reprogrammation du CPLD peut être de recevoir une image dans la RAM via la liaison sans fil, puis d'utiliser cette image pour reprogrammer le CPLD. Si vous programmez des fichiers, la liaison sans fil peut être inutilisable jusqu'à ce que le CPLD soit reprogrammé. Pour permettre au système de récupérer, cependant, le processeur pourrait contenir un "défaut"

supercat
la source