Я десь прочитав, що поганий код VHDL може призвести до пошкодження FPGA.
Чи можливо навіть пошкодити FPGA з кодом VHDL? Які умови спричинили б це і які найгірші сценарії?
Я десь прочитав, що поганий код VHDL може призвести до пошкодження FPGA.
Чи можливо навіть пошкодити FPGA з кодом VHDL? Які умови спричинили б це і які найгірші сценарії?
Відповіді:
Додавши до відповіді @ Anonymous, ви можете створити конструкції, які можуть пошкодити тканину FPGA.
Для початківців, якщо ви побудуєте дуже велику конструкцію, що складається з величезної кількості регістрів (наприклад, 70% FPGA), які працюють так, коли наближається до максимальної частоти FPGA, можна сильно нагріти кремній. Без достатнього охолодження це може призвести до фізичної шкоди. Ми втратили FPGA в розмірі 13 тис. Доларів, тому що він перегрівся через те, що в комплекті із розробниками була жахлива система охолодження.
Ще одним простішим випадком можуть бути комбіновані петлі. Наприклад, якщо ви створюєте три екземпляри, не пов'язані між собою воротами в кільце, і відключаєте або ігноруєте попередження синтезаторів про таку структуру, ви можете сформувати щось, що є дуже поганим для FPGA. У цьому прикладі ви зробите генератор багато ГГц, який міг би виробляти багато тепла на дуже невеликій площі, ймовірно, пошкоджуючи ALM та оточуючу логіку.
Код не є правильним словом у цьому контексті. Хоча Verilog або VHDL виглядають як програма, вихід компілятора - це конфігурація, яка завантажується в мікросхему FPGA, утворюючи в ній електронну схему.
На думку мені приходять два типи:
Помилкове налаштування блоку вхідних штифтів, оскільки виходи можуть зробити це, якщо все, що інше веде їх, досить жорстке.
Я не знаю, чи вдасться налаштувати декілька штифтів для LVDS або одного із стандартів LVCMOS, тоді як банк IO живиться від надмірно високої напруги (потужність 3,3 В, наприклад, стандарт IO 1,8 В або навпаки). це?
Очевидно, що теплові проблеми можуть бути можливими, зробивши щось нерозумне, як екземпляр багатьох, багатьох, кільцевих осциляторів.
FPGA можуть бути налаштовані під час виконання за допомогою нового (часткового) бітового потоку. Зазвичай цей потік завантажується із зовнішнього джерела, але ви також можете створити його власноруч у FPGA (наприклад, через вбудований процесор Softcore). Використання такого рішення для, наприклад, динамічного переміщення піддизайнів, не забезпечує всіх перевірок узгодженості, як це робиться інструментами постачальника. Отже, якщо ваш алгоритм порушений, ви можете включити помилкові транзистори в FPGA і записати їх.
Ви також можете обрати помилкові режими роботи для примітивів FPGA, таких як PLL або трансивери.
Динамічна конфігурація - це як самомодифікуючий код у програмному забезпеченні.