VHDL, який може пошкодити FPGA


22

Я десь прочитав, що поганий код VHDL може призвести до пошкодження FPGA.

Чи можливо навіть пошкодити FPGA з кодом VHDL? Які умови спричинили б це і які найгірші сценарії?


2
Єдиний сценарій, про який я міг би придумати, - це дизайн, де багато, багато FF встановлені так, щоб нагріти FPGA.
Клаудіо Аві Чамі

Ну, він може бути включений в погано розроблену схему, яка буде запускати деякі струми навколо палаючого матеріалу, якщо не запрограмована належним чином.
Євген Ш.

3
Найгірший сценарій, ймовірно, полягає в тому, що fpga використовується для машинного навчання і створює шахрайський ШІ, який руйнує світ і Всесвіт. якщо серйозніше, якщо ви використовуєте неперевірений код у fpga, підключеному до комп'ютера, він може заразити вказаний комп'ютер. також якщо він використовується для управління пристроями високої потужності, ви можете спалити будівлю.
сатибель

Відповіді:


25

Додавши до відповіді @ Anonymous, ви можете створити конструкції, які можуть пошкодити тканину FPGA.

Для початківців, якщо ви побудуєте дуже велику конструкцію, що складається з величезної кількості регістрів (наприклад, 70% FPGA), які працюють так, коли наближається до максимальної частоти FPGA, можна сильно нагріти кремній. Без достатнього охолодження це може призвести до фізичної шкоди. Ми втратили FPGA в розмірі 13 тис. Доларів, тому що він перегрівся через те, що в комплекті із розробниками була жахлива система охолодження.

Ще одним простішим випадком можуть бути комбіновані петлі. Наприклад, якщо ви створюєте три екземпляри, не пов'язані між собою воротами в кільце, і відключаєте або ігноруєте попередження синтезаторів про таку структуру, ви можете сформувати щось, що є дуже поганим для FPGA. У цьому прикладі ви зробите генератор багато ГГц, який міг би виробляти багато тепла на дуже невеликій площі, ймовірно, пошкоджуючи ALM та оточуючу логіку.


1
Комбінаторні петлі іноді пропонуються як генератори істинних випадкових чисел. Я не маю досвіду роботи з кільцевими генераторами , але сумніваюся, що лише три ворота принесуть шкоду. Наведення свого виходу до багатьох воріт, ймовірно, принесе шкоду, хоча.
Андреас

7
thx У мене зараз 2-3 дошки марні через помилки в дизайні зі спартанським 6 на них. Я спробую це: P
AntoineLev

Можна також завантажувати бітовий потік, що перешкоджає завантаженню інших бітових потоків, або, принаймні, робить це досить важким.
Володимир Крейвер

8

Код не є правильним словом у цьому контексті. Хоча Verilog або VHDL виглядають як програма, вихід компілятора - це конфігурація, яка завантажується в мікросхему FPGA, утворюючи в ній електронну схему.

На думку мені приходять два типи:

  • фізичне пошкодження: наприклад, кілька штифтів FPGA підключені разом (або до іншого пристрою) і одночасно починають виводити різну логічну напругу. Поточні потоки - можуть бути надмірними струмами - що врешті-решт пошкодить ворота (и);
  • логічне пошкодження: схема може неправильно працювати з флеш-мікросхемою або пристроєм конфігурації та пошкоджувати зображення даних у ній, весь цей пристрій з часом не працює.

4
Темою фізичного пошкодження може бути те, звідки походить цитата ОП. Як розробника програмного забезпечення, мені сказали загальне правило: «програмне забезпечення» не повинно завдати фізичної шкоди пристрою, тоді як «прошивка» може завдати шкоди, наприклад, підключення двох водолазів один до одного.
Корт Аммон - Відновіть Моніку

2
@CortAmmon "на кшталт підключення двох водолазів один до одного" - Що це, перемикач перехресного з'єднання з шлангом?
користувач253751

1
@immibis Ти мене отримав! Фактичне правило було «не покладатися на програмне забезпечення / squishyware в голові вашого приятеля в той час як приятель дихання, замість того, щоб завжди мати тверде розуміння на вашому регуляторі.» ;-)
Корт Аммон - Відновити Моніку

3

Помилкове налаштування блоку вхідних штифтів, оскільки виходи можуть зробити це, якщо все, що інше веде їх, досить жорстке.

Я не знаю, чи вдасться налаштувати декілька штифтів для LVDS або одного із стандартів LVCMOS, тоді як банк IO живиться від надмірно високої напруги (потужність 3,3 В, наприклад, стандарт IO 1,8 В або навпаки). це?

Очевидно, що теплові проблеми можуть бути можливими, зробивши щось нерозумне, як екземпляр багатьох, багатьох, кільцевих осциляторів.


Стандарт вводу / виводу, що задається в якості обмежень для проектування, призначений лише для розрахунків часу. Якщо банк вводу / виводу є 3,3 В банку і працює від 3,3 В, нічого не станеться, якщо ви вибрали стандарт 1,8 В.
Paebbels

@Paebbels, не впевнений, який інструмент ви використовуєте, але зазвичай, коли ви встановлюєте стандарт вводу / виводу, він контролює напругу цього місця вводу / виводу. Якщо для вхідного штифта FPGA встановлено набагато нижчу напругу, ніж те, що зовнішній пристрій вводить у цей контакт, то вхід FPGA може бути пошкоджений.
Сіано

@Ciano це не правильно. Напруга контактів залежить від напруги банку вводу / виводу, а не від обмеження.
Paebbels

1

FPGA можуть бути налаштовані під час виконання за допомогою нового (часткового) бітового потоку. Зазвичай цей потік завантажується із зовнішнього джерела, але ви також можете створити його власноруч у FPGA (наприклад, через вбудований процесор Softcore). Використання такого рішення для, наприклад, динамічного переміщення піддизайнів, не забезпечує всіх перевірок узгодженості, як це робиться інструментами постачальника. Отже, якщо ваш алгоритм порушений, ви можете включити помилкові транзистори в FPGA і записати їх.

Ви також можете обрати помилкові режими роботи для примітивів FPGA, таких як PLL або трансивери.

Динамічна конфігурація - це як самомодифікуючий код у програмному забезпеченні.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.