Написание программного продуктов для ПЛИСов под задачи заказчиков.
Программируемая логическая интегральная схема (ПЛИС— электронный компонент (интегральная микросхема), используемый для создания конфигурируемых цифровых электронных схем. В отличие от обычных цифровых микросхем, логика работы ПЛИС не определяется при изготовлении, а задаётся посредством программирования (проектирования). Для программирования используются программатор и IDE (отладочная среда), позволяющие задать желаемую структуру цифрового устройства в виде принципиальной электрической схемы или программы на специальных языках описания аппаратуры: Verilog, VHDL, AHDL и др. Альтернативой ПЛИС являются:
- базовые матричные кристаллы (БМК), требующие заводского производственного процесса для программирования;
- ASIC — специализированные заказные большие интегральные схемы (БИС), которые при малосерийном и единичном производстве существенно дороже;
- специализированные компьютеры, процессоры (например, цифровой сигнальный процессор) или микроконтроллеры, которые из‑за программного способа реализации алгоритмов в работе медленнее ПЛИС.
- непрограммируемые цифровые устройства и системы, настроенные на решение заранее известных задач, построенные на принципах т.н. "жесткой логики".
Некоторые производители для своих ПЛИС предлагают программные процессоры, которые можно модифицировать под конкретную задачу, а затем встроить в ПЛИС. Тем самым:
- обеспечивается увеличение свободного места на печатной плате (возможность уменьшения размеров платы);
- упрощается проектирование самой ПЛИС;
- увеличивается быстродействие ПЛИС.
Этапы проектирования:
Применение:
- Задание принципиальной электрической схемы или программы на специальных языках описания аппаратуры: Verilog, VHDL, AHDL и др.
- Логический синтез с помощью программ-синтезаторов (получение списка электрических соединений (в виде текста) из абстрактной модели, записанной на языке описания аппаратуры).
- Проектирование печатной платы устройства с помощью системы автоматизированного проектирования (САПР) печатных плат (Altium Designer, P-CAD и др.), на которой размещается микросхема ПЛИС и прочие электронные компоненты (резисторы, конденсаторы, генераторы, АЦП, разъёмы и т.д.).
- Создание файла конфигурации ПЛИС.
- Загрузка файла в микросхему ПЛИС или отдельную микросхему памяти конфигурации. В результате загрузки конфигурации микросхема ПЛИС обретает заданную функциональность.
ПЛИС широко используется для построения различных по сложности и по возможностям цифровых устройств, например:
- устройств с большим количеством портов ввода-вывода (бывают ПЛИС с более чем 1000 выводов («пинов»));
- устройств, выполняющих цифровую обработку сигнала (ЦОС);
- цифровой видеоаудиоаппаратуры;
- устройств, выполняющих передачу данных на высокой скорости;
- устройств, выполняющих криптографические операции, систем защиты информации;
- устройств, предназначенных для проектирования и прототипирования интегральных схем специального назначения (ASIC);
- устройств, выполняющих роль мостов (коммутаторов) между системами с различной логикой и напряжением питания;
- реализаций нейрочипов;
- устройств, выполняющих моделирование квантовых вычислений;
- устройств, выполняющих обработку радиолокационной информации.
Среда разработки Vitis™ AI - это платформа разработки Xilinx для вывода ИИ на аппаратных платформах Xilinx
Vitis позволяет решать самые сложные задачи в различных предметных областях, включая разработку систем искусственного интеллекта. Это достигается путем интеграции Vitis со специализированными пакетами. Например, для разработки систем искусственного интеллекта на базе ПЛИС и СнК Xilinx, используется пакет VitisAI.
Анализируя маршруты проектирования, можно сделать вывод, что проектирование для программируемой логики движется в сторону сближения с классическим программированием. Это позволяет расширить применение программируемой логики за счет привлечения программистов, которым не нужно разбираться в тонкостях архитектуры ПЛИС.
Отметим также, что классические маршруты проектирования реализуют методику «снизу-вверх», т.е. сначала разрабатывалась аппаратная часть, производилась ее верификация сначала на уровне блоков и модулей, а затем полностью собранная система. Затем для этой системы можно было разрабатывать программное обеспечение. В то же время методология высокоуровневого проектирования наиболее эффективна при реализации метода «сверху вниз», т.е разработка начинается с создания и отладки программного обеспечения, а аппаратная часть конфигурируется уже под требования разработанного программного продукта.