Нещодавно я відвідав онлайн-конференцію щодо FPGA з основним повідомленням "Чи повинен ваш наступний процесор бути FPGA".
FPGA в основному має сенс у будь-якій програмі, яка потребує сильно паралельних робочих потоків, наприклад, аналіз аналізу Full HD зображень для пошуку пішоходів.
Що ви повинні пам’ятати, це те, що вам потрібно ініціалізувати свій FPGA кожен раз, коли він вмикається, я думаю, що Xilinx FPGA поставляється з (які мають чіп ARM-ядра) - хороший варіант, але, ймовірно, дорогий. Дивлячись на Actel з вбудованим флеш-пам’яткою, також може бути корисно.
Що стосується продуктивності, компанія BDTI зробила орієнтир у високо паралельних обчисленнях, коли побачила, що 40-кратне збільшення продуктивності переходить на FPGA. Цікавим є те, що вони порівнювали фішки з подібними витратами (я вважаю, 23 $ проти 28 $).
Ось посилання, які можуть вас зацікавити:
Кишеньковий посібник з вибору процесора
Архів конференції FPGA (безкоштовна реєстрація, але доступна лише протягом 6 місяців після цієї відповіді)
Ви не можете порівнювати продуктивність систем на базі FPGA на основі статистики MIPS або Mhz. Те, як FPGA використовується для обробки певних завдань, просто надто відрізняється від мікроконтролера. Дизайн мікропрограмного забезпечення для FPGA - це те, що вам потрібно зробити, наприклад, використовуючи VHDL, який схожий на збори. Рівень передачі регістра (RTL) абстракції. Деякі середовища виробляються для більшої абстракції, але вони все ще часто залежать від конкретних виробників. У Вікіпедії є гідний огляд мов, доступних для програмування коду FPGA:
Вікіпедія: Програмування FPGA
Вікіпедія: Дизайн цифрових мікросхем
Якщо у вас є гроші на спалення, ви можете використовувати системи LabView, наприклад, для створення систем вимірювання в режимі реального часу на основі FPGA. Ці пристрої, необхідні для цього, знаходяться в абсолютно іншому ціновому діапазоні (1500 доларів і вище), але відкривають дизайн FPGA для значно ширшої аудиторії з графічним програмуванням.
Все більше постачальників пропонують плати, які поєднують мікроконтролери, такі як чіп ARM з FPGA, щоб забезпечити конкретні додаткові функції та паралельну потужність обробки. Приклад таких продуктів можна знайти тут: EmbeddedARM: FPGA серія