ПЛИС

Написание программного продуктов для ПЛИСов под задачи заказчиков. 

Программируемая логическая интегральная схема (ПЛИС— электронный компонент (интегральная микросхема), используемый для создания конфигурируемых цифровых электронных схем. В отличие от обычных цифровых микросхем, логика работы ПЛИС не определяется при изготовлении, а задаётся посредством программирования (проектирования). Для программирования используются программатор и IDE (отладочная среда), позволяющие задать желаемую структуру цифрового устройства в виде принципиальной электрической схемы или программы на специальных языках описания аппаратуры: Verilog, VHDL, AHDL и др. Альтернативой ПЛИС являются:

  • базовые матричные кристаллы (БМК), требующие заводского производственного процесса для программирования;
  • ASIC — специализированные заказные большие интегральные схемы (БИС), которые при малосерийном и единичном производстве существенно дороже;
  • специализированные компьютеры, процессоры (например, цифровой сигнальный процессор) или микроконтроллеры, которые из‑за программного способа реализации алгоритмов в работе медленнее ПЛИС.
  • непрограммируемые цифровые устройства и системы, настроенные на решение заранее известных задач, построенные на принципах т.н. "жесткой логики".

Некоторые производители для своих ПЛИС предлагают программные процессоры, которые можно модифицировать под конкретную задачу, а затем встроить в ПЛИС. Тем самым:

  • обеспечивается увеличение свободного места на печатной плате (возможность уменьшения размеров платы);
  • упрощается проектирование самой ПЛИС;
  • увеличивается быстродействие ПЛИС.

Этапы проектирования:

Применение:

  1. Задание принципиальной электрической схемы или программы на специальных языках описания аппаратуры: Verilog, VHDL, AHDL и др.
  2. Логический синтез с помощью программ-синтезаторов (получение списка электрических соединений (в виде текста) из абстрактной модели, записанной на языке описания аппаратуры).
  3. Проектирование печатной платы устройства с помощью системы автоматизированного проектирования (САПР) печатных плат (Altium Designer, P-CAD и др.), на которой размещается микросхема ПЛИС и прочие электронные компоненты (резисторы, конденсаторы, генераторы, АЦП, разъёмы и т.д.).
  4. Создание файла конфигурации ПЛИС.
  5. Загрузка файла в микросхему ПЛИС или отдельную микросхему памяти конфигурации. В результате загрузки конфигурации микросхема ПЛИС обретает заданную функциональность.

ПЛИС широко используется для построения различных по сложности и по возможностям цифровых устройств, например:

  • устройств с большим количеством портов ввода-вывода (бывают ПЛИС с более чем 1000 выводов («пинов»));
  • устройств, выполняющих цифровую обработку сигнала (ЦОС);
  • цифровой видеоаудиоаппаратуры;
  • устройств, выполняющих передачу данных на высокой скорости;
  • устройств, выполняющих криптографические операции, систем защиты информации;
  • устройств, предназначенных для проектирования и прототипирования интегральных схем специального назначения (ASIC);
  • устройств, выполняющих роль мостов (коммутаторов) между системами с различной логикой и напряжением питания;
  • реализаций нейрочипов;
  • устройств, выполняющих моделирование квантовых вычислений;
  • устройств, выполняющих обработку радиолокационной информации.

Среда разработки Vitis™ AI - это платформа разработки Xilinx для вывода ИИ на аппаратных платформах Xilinx

Vitis позволяет решать самые сложные задачи в различных предметных областях, включая разработку систем искусственного интеллекта. Это достигается путем интеграции Vitis со специализированными пакетами. Например, для разработки систем искусственного интеллекта на базе ПЛИС и СнК Xilinx, используется пакет VitisAI.

Анализируя маршруты проектирования, можно сделать вывод, что проектирование для программируемой логики движется в сторону сближения с классическим программированием. Это позволяет расширить применение программируемой логики за счет привлечения программистов, которым не нужно разбираться в тонкостях архитектуры ПЛИС.

Отметим также, что классические маршруты проектирования реализуют методику «снизу-вверх», т.е. сначала разрабатывалась аппаратная часть, производилась ее верификация сначала на уровне блоков и модулей, а затем полностью собранная система. Затем для этой системы можно было разрабатывать программное обеспечение. В то же время методология высокоуровневого проектирования наиболее эффективна при реализации метода «сверху вниз», т.е разработка начинается с создания и отладки программного обеспечения, а аппаратная часть конфигурируется уже под требования разработанного программного продукта.