Pouvez-vous réellement casser un FPGA en le programmant incorrectement?
Je suis vraiment un logiciel. Ce n'est un secret pour personne que si votre logiciel est erroné, vous pourriez détruire toutes sortes de données importantes, et peut-être même planter toute la machine. Mais il est vraiment difficile d' endommager physiquement un ordinateur simplement en le programmant.
(Il y a une rumeur sans fin d'une instruction Halt-And-Catch-Fire, ou d'être capable de reflasher le firmware du système pour briquer la carte mère, ou de programmer des valeurs incorrectes dans la carte graphique pour faire frire votre moniteur. Mais tout cela semble être exactement cela : rumeurs. Et tout ce qui concerne le matériel obsolète depuis longtemps. Il semble vraiment très difficile de casser un équipement informatique moderne avec une mauvaise programmation.)
Avec un FPGA, vous connectez (au moins nominalement) des circuits individuels ensemble. Il semble tout à fait plausible que des dommages physiques puissent survenir en cas d'erreur.
Par exemple, vous pouvez écrire du VHDL demandant que deux sorties soient liées ensemble. S'ils produisent différents niveaux logiques, j'imagine que cela ferait probablement frire quelque chose. ( J'espère que votre outil de synthèse vous hurlera de ne pas le faire ... mais je ne sais pas si ces outils implémentent réellement ce niveau de vérification des erreurs.)
Il semble également tout à fait possible de choisir accidentellement le mauvais modèle de FPGA dans l'outil de synthèse, et donc d'essayer de programmer votre puce avec un train de bits destiné à un modèle totalement différent. Je ne sais pas ce que cela ferait, mais je pense que ce serait "mauvais".
Pour cette question, vous pouvez certainement connecter la puce FPGA au reste du circuit de manière incorrecte. Par exemple, si vous gâchez les numéros de broches, vous pourriez vous retrouver avec la carte essayant de piloter une broche d'E / S que le FPGA lui-même essaie également de piloter. Les broches d'E / S ont-elles généralement une "protection" contre une telle erreur? Ou la puce va-t-elle simplement frire?