FPGA (field-programmable gate array) дозволяє проектувати цифрові мікросхеми, використовуючи доступну плату налагодження та програмне забезпечення розробника. Хоча в назві курсу слово «програмувати», але ми будемо проектувати, тому що на виході виходить фізична цифрова схема, що виконує певний алгоритм на апаратному рівні, а не програма для процесора.
Поки ми не налаштували FPGA, всередині мікросхеми немає логіки для обробки даних з інтерфейсів. В результаті проектування отримаємо прошивку, яка після завантаження до FPGA створить необхідну нам цифрову схему. Важливою особливістю FPGA є можливість реконфігурації.
Існують два великих виробника FPGA-чіпів: Xilinx та Intel, які контролюють 58 та 42% ринку відповідно. Засновники Xilinx винайшли перший чіп FPGA у далекому 1985 році. Intel прийшла на ринок нещодавно - у 2015 році, поглинувши компанію Altera, яка була заснована в той же час, як і Xilinx. Технології Xilinx і Altera багато в чому схожі, як середовища розробки. В даному курсі ми будемо працювати з продуктами компанії Xilinx.
FPGA широко
застосовуються у різних пристроях: споживчій електроніці, обладнанні телекомунікацій,
платах-прискорювачах для застосування в дата-центрах, різноманітній
робототехніці, а також при прототипуванні мікросхем ASIC.
- Teacher: Тарас Маленчик
- Teacher: Максим Олійник
Навчальний курс побудований на основі програми сертифікації інженерів розробників вбудованих систем "ARM Accreditated MCU Enngeineer" (AAME). У навчальному курсі значну увагу приділено розумінню архітектури процесорів, зокрема ARM архітектури; реалізації алгоритмів керування та контролю у вбудовуваних системах; створеню програмного забезпечення вбудовуваних систем на асемблері та на мові С, початкові навички створення програмного забезпечення вбудовуваних систем з використанням операційних систем.
Окремо розглядаються питання режимів роботи мікроконтролера для зменшення енергоспоживання; концепції переривань та побудови ПЗ для роботи в реальному часі.
На лабораторних роботах освоюється особливості налаштування конфігурації мікроконтролерів, створення проектів в середовищі автоматичної розробки програмного забезпечення для мікроконтролерів; реалізація алгоритмів керування та контролю з використанням периферійних пристроїв мікроконтролера; виконання оптимізації програмного забезпечення за різними критеріями.