Понятие о программируемых логических интегральных схемах. Программная и аппаратная архитектура LabVIEW FPGA. Подходы к разработке специализированных аппаратных средств. Обзор задач, решаемых при помощи ПЛИС.
LabVIEW и программный модуль LabVIEW FPGA как среда разработки. Установка и настройка оборудования. Архитектура приложений и основные этапы разработки.
Палитра функций. Принципы программирования логики ПЛИС. Процесс компиляции. Отладка программ в режиме эмуляции. «Истинный параллелизм» и ресурсы с общим доступом. Целочисленная арифметика.
Конфигурирование модулей ввода-вывода. Палитра функций LabVIEW FPGA I/O. Создание узлов ввода-вывода. Цифровые и аналоговые каналы. Создание счетчиков импульсов на основе цифровых линий ввода-вывода. Преобразование двоичных значений при работе с аналоговыми каналами.
Функции палитры Timing. Конфигурирование функций Loop Timer и Wait, особенности их работы. Измерение времени исполнения кода. Однотактовые циклы. Параллельное исполнение циклов и их синхронизация при помощи буферов FIFO.
Интерфейс доступа к ПЛИС в управляющем приложении. Палитра функций FPGA Interface. Использование функций Read/Write Control и InvokeMethod. Передача данных при помощи DMA (прямого доступа к памяти).
Архитектура асинхронных и синхронных приложений. Режимы синхронизации: метод «рукопожатия». Функции работы с прерываниями. Обмен данными при помощи DMA: метод передачи данных по блокам, по опросу, по прерыванию.
Измерение времени исполнения кода. Оценка используемых ресурсов ПЛИС. Соответствие программного кода и аппаратной структуры ПЛИС. Оптимизация программного кода по скорости. Распараллеливание и конвейерная обработка. Особенности однотактовых циклов. Оптимальное использование структур данных ПЛИС. Эффективные методы обмена данными с ведущим приложением.