Зі зростанням популярності мікроконтролерів інженери використовують мікроконтролери більше, ніж FPGA. У мікроконтролерах стали домінуючими над FPGA з - за їх дешеву ціну, хороша підтримка, легка доступність, велика спільнота, універсальність, програмування і т.д. Але крім того, що мікропроцесори мають деякі обмеження, такі як набір інструкції, послідовне виконання програм (послідовна обробка), відсутність гнучкості та багаторазового використання тощо. Однак ПЛІС може подолати ці обмеження, оскільки ПЛІС мають паралельне виконання програм, і це гнучко та багаторазово означає, що його можна перепрограмувати знову і знову для різних завдань.
Що таке FPGA і чим він відрізняється від мікроконтролера
Поле-програмована користувачем вентильная матриця являє собою інтегральну схему, кремнієвий чіп, який має масив логічних елементів, і цей масив може бути запрограмований в полі тобто користувач може перезаписати існуючі конфігурації з її новими певних конфігурацій і можуть створювати свої власні цифрові схеми на поле. ПЛІС можна розглядати як чистий аркуш. FPGA нічого не роблять самі по собі, тоді як розробники повинні створити файл конфігурації, який часто називають бітовим файлом для FPGA. FPGA поводитиметься як цифрова схема після завантаження бітового файлу.
У той час як у мікроконтролерах це не так, оскільки мікроконтролери не можуть бути запрограмовані або реструктуризовані на місцях. Користувачеві не дозволяється перезаписувати існуючі конфігурації, а також не може створювати цифрові схеми на полі. Мікроконтролери легко програмувати, а спільнота також широка. Мікроконтролери - це побудовані на замовлення міні-комп’ютери, які постачаються у формі ІС, тоді як ПЛІС містять лише логічні блоки, які знову можна підключити електрично. Також щодо мікроконтролерів він споживає менше енергії, ніж FPGA. Відомо, що FPGA є дорогими, і це вимагає більших витрат, ніж мікроконтролер, коли мова йде про створення будь-якого пристрою. Налаштування ПЛІС займає набагато більше часу, тоді як мікроконтролери доступні для побудови для конкретних програм.
Архітектура FPGA
FPGA має регулярну структуру логічних комірок або модулів та взаємозв’язків, що знаходиться під повним контролем розробників та дизайнерів. FPGA побудований переважно з трьох основних блоків, таких як конфігурований логічний блок (CLB), блоки вводу-виводу або колодки та матричні / комутаційні дроти. Кожен блок буде розглянуто нижче коротко.
- CLB (конфігуруваний логічний блок): це основні комірки FPGA. Він складається з одного 8-розрядного генератора функцій, двох 16-розрядних генераторів функцій, двох регістрів (тригерів або засувок) та перепрограмованих елементів керування маршрутизацією (мультиплексорів). CLB застосовуються для реалізації інших розроблених функцій та макросів. Кожен CLB має входи на кожній стороні, що робить їх гнучкими для відображення та розділення логіки.
- Колодки вводу-виводу або блоки: Вхідно-вихідні колодки використовуються для зовнішньої периферії для доступу до функцій FPGA, а за допомогою колодки вводу-виводу вони також можуть взаємодіяти з FPGA для різних додатків, використовуючи різні периферійні пристрої.
- Комутаційна матриця / з'єднувальні дроти: Комутаційна матриця використовується в FPGA для з'єднання довгих і коротких проводів взаємозв'язку разом в гнучкому поєднанні. Він також містить транзистори для включення / відключення з'єднань між різними лініями.
Коли потрібні ПЛІС
Як вже згадувалося вище, мікроконтролери мають певні обмеження і не можуть використовуватися для паралельного виконання завдання, оскільки мікроконтролер та мікропроцесори працюють на послідовне виконання програм, що робить його дещо повільним у деяких додатках, у цьому сценарії ПЛІС має перевагу і може бути ефективно використаний. Також мікроконтролер може виконувати обмежені завдання, оскільки вони постачаються з інструкціями та їх схемою. Програміст повинен дотримуватися обмежень під час розробки коду. Отже, і в цьому сценарії ПЛІС мають переваги.
Однак у випадку мікроконтролерів процесор перемикається з одного коду на інший для досягнення певного рівня паралельності. Вам буде простіше писати коди на мікроконтролерах, ніж FPGA. Можливість паралельної обробки ПЛІС дозволяє ефективно контролювати перебої за допомогою кінцевих машин (FSM).
У випадку мікроконтролерів вам потрібно врахувати час, який ISR витрачав на усунення переривання. Ви можете легко переробити FPGA, просто перепрограмувавши його. Конфігурація в FPGA завантажується на конфігуровані логічні комірки при увімкненні живлення.
Вам не потрібно вносити будь-які зміни в апаратне забезпечення для перепрограмування FPGA. FPGA підходять для високошвидкісної обробки паралельних даних і мають високий ступінь настроюваності. Однак вони також мають недоліки роботи прототипу та складність конфігурації. Отже, ПЛІС можна вибрати з цими перевагами перед мікроконтролерами. Почнемо програмування FPGA і наголосимо