Чи можете ви дійсно зламати FPGA, неправильно запрограмувавши його?
Я справді програмний хлопець. Ні для кого не секрет, що якщо ваше програмне забезпечення неправильне, ви можете знищити всілякі важливі дані та, можливо, навіть розбити всю машину. Але фізично пошкодити комп’ютер фізично просто програмуючи його.
(Існує нескінченний слух інструкції Halt-And-Catch-Fire або про можливість перепрошивання системної мікропрограми, щоб цеглити материнську плату, або запрограмувати неправильні значення на відеокарті, щоб обсмажити ваш монітор. Але все це, здається, саме так : чутки. І все про давно застаріле обладнання. Здається, справді важко зламати сучасне комп'ютерне обладнання з поганим програмуванням.)
З FPGA ви (принаймні номінально) з'єднуєте окремі схеми разом. Здається цілком правдоподібним, що у випадку помилки може статися фізичне пошкодження.
Наприклад, ви можете написати деякі VHDL з проханням пов'язати два виходи. Якщо вони випускають різні рівні логіки, я думаю, що це, можливо, щось б обсмажило. (Я сподіваюся, що ваш інструмент синтезу кричить на вас, щоб цього не робити ... але я не знаю, чи такі інструменти реалізують цей рівень перевірки помилок.)
Також видається цілком можливим випадково вибрати неправильну модель FPGA в інструменті синтезу, і, таким чином, закінчити спробу запрограмувати ваш чіп біт-потоком, призначеним для якоїсь абсолютно іншої моделі. Я не знаю, що це зробить, але я підозрюю, що це було б "погано".
З цього питання ви точно можете підключити чіп FPGA до решти схеми неправильно. Наприклад, якщо ви зіпсуєте номери штифтів, ви можете закінчити, що плата намагається запустити штифт вводу / виводу, який FPGA також намагається керувати. Чи мають штифти вводу-виводу зазвичай "захист" від такої помилки? Або чіп просто обсмажиться?