J'essaie de comprendre ce qui se passe si vous laissez un FPGA non programmé pendant une longue période.
Supposons que vous ayez un FPGA et que vous le laissiez non programmé pendant une longue période (plusieurs minutes à plusieurs heures après la mise sous tension), c'est-à-dire sans flux binaire dessus, est-ce mauvais pour l'appareil? Est-il recommandé d'avoir un bitstream sur un FPGA sous tension à tout moment? Quelle est l'opinion générale à ce sujet?
Les résultats sont-ils différents sur différents appareils ou fabricants (Xilinx vs Altera vs autres)?
Information additionnelle:
J'ai une carte SoC personnalisée qui utilise un FPGA Xilinx Virtex-6. J'ai également un Xilinx ML605 que j'utilise à des fins de référence.
Carte personnalisée: j'allume la carte. Je remarque que j'ai peu de temps pour le programmer en utilisant XMD (Xilinx Microprocessor Debugger). Si je perds la fenêtre de 20 à 30 secondes, je dois éteindre et rallumer la carte avant de réessayer. Cela ne se produit pas avec un ML605.
Lorsque j'essaie de programmer la carte personnalisée sur XMD, j'obtiens quelque chose comme:
Error: Device Reset by JPROGRAM command, failed. INIT_COMPLETE did not go high.
Laissez-moi savoir ce que vous pensez.
la source
Réponses:
C'est une question intéressante. Par expérience personnelle, j'ai laissé les FPGA sous tension pendant des heures dans un état non programmé tout en effectuant des vérifications sur le reste des circuits lorsqu'une nouvelle carte arrive de la maison d'assemblage. Je n'ai remarqué aucun effet néfaste de le faire. Mais honnêtement, je n'y ai jamais pensé.
J'ai regardé autour de moi pour essayer de trouver une recommandation d'un fabricant de FPGA mais je n'ai pas pu en trouver une. La seule déclaration que j'ai trouvée concernant cet état provient d'un livre blanc Lattice et concerne la conception du FPGA lui-même et non la façon dont il doit être utilisé:
Xilinx mentionne également le courant de repos afin que vous puissiez concevoir votre alimentation en conséquence. Mais ne mentionne pas quel est l'effet sur l'appareil de le laisser dans un tel état:
Je serais très intéressé d'entendre si quelqu'un a subi des dommages à un appareil en le laissant dans un état de repos. Mais je pense que tant que l'alimentation est correctement adaptée à l'appareil, il ne devrait pas y avoir de problème.
la source
Je fais référence à la fiche technique Spartan 3 , car c'est le FPGA que je connais le mieux.
Si vous regardez le chapitre 2 (Description fonctionnelle), la section "Configuration" a quelques organigrammes. La figure 27 (page 50) montre le diagramme de flux pour le chargement à partir de Flash. La figure 28 montre le diagramme de flux JTAG.
Voici un bref résumé.
1) Attendez que Vccint, Vccaux et Vcco atteignent les niveaux requis.
2) Effacer les verrous de configuration
3) Attendez que INIT_B monte. INIT_B est une sortie à drain ouvert qu'un maître externe peut maintenir basse afin de retarder la configuration.
4) Broches du mode échantillon. Cela détermine si vous allez charger via JTAG ou Flash, et si Flash si le FPGA ou le Flash est le maître.
5) Charger les trames de données de configuration.
6) Vérifiez que le CRC pour les trames de données est correct. S'il n'est PAS correct, le FPGA conduira INIT_B bas pour indiquer une erreur CRC et abandonnera le démarrage.
L'étape 5 est probablement où votre vraie question est - que se passe-t-il s'il n'y a rien à charger? Eh bien, vous ne devriez pas passer à l'étape 5 si vous faites les choses correctement. La puce Flash maintiendra INIT_B faible jusqu'à ce qu'elle soit prête à servir des données au FPGA. Si vous utilisez JTAG, je ne suis pas sûr que votre programmeur JTAG maintienne INIT_B bas, mais quand il est allé programmer le FPGA, il affirmerait presque certainement PROG_B (en le poussant bas), ce qui fait revenir le FPGA à l'étape 2.
Si j'étais vous, j'étendrais le signal INIT_B lors de la mise sous tension pour voir ce qui se passe. S'il commence bas, monte haut, puis revient bas, le FPGA a abandonné la séquence de démarrage et vous devrez probablement affirmer PROG_B afin de réinitialiser le FPGA.
la source
La configuration par défaut est conçue pour être aussi passive que possible afin de rendre l'appareil universellement utilisable.
Pour la série Altera Cyclone (avec laquelle j'ai le plus d'expérience), cela signifie
Les autres types de FPGA doivent être de même repos et fournir des sorties non inversées et inversées indiquant l'état de configuration au reste de la carte.
Laisser l'appareil dans cet état est inoffensif, car le noyau est assez isolé du monde extérieur, et seuls les pull-ups peuvent avoir un petit courant à travers eux.
la source