Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial Internet of Things >> Встроенный

Embedded FPGA дизайн: полный процесс разработки

Embedded FPGA дизайн: полный процесс разработкиПримечание редактора: По мере появления продвинутых алгоритмов для дизайнов умных продуктов, разработчики часто борются за реализацию встраиваемых систем, способных удовлетворить вычислительные требования этих алгоритмов. FPGA доставляют необходимую производительность, и недавние достижения в возможностях устройств и средах разработки сделали FPGA-дизайн доступным для более широкого круга инженеров. Этот отрывок из Главы 4 книги «Architecting High-Performance Embedded Systems» даёт исчерпывающий обзор FPGA устройств, языков реализации и процесса разработки, и предлагает практическое руководство для начала FPGA-дизайна.
1: Аппаратные ресурсы
2: Языки реализации
3: Процесс разработки (эста статья)
4: Построение проекта
5: Реализация

Адаптировано из «Architecting High-Performance Embedded Systems», автор Jim Ledin.


Процесс FPGA-разработки

В разнообразных прикладных доменах FPGA-разработка следует общей последовательности шагов, руководящих инженеров от концепции к функциональному железу. Следующие разделы описывают типичный workflow, подсвечивая ключевые решения и лучшие практики.

Определение системных требований

Успешные FPGA-проекты начинаются с чёткого, однозначного определения системной функциональности, режимов работы и ключевых фич. Документируйте предполагаемое поведение на простом языке и делитесь со всеми стейкхолдерами для достижения консенсуса. Включите количественные метрики производительности — такие как входные сэмплирующие частоты, интервалы обновления выходов, throughput, латентность и лимиты мощности — а также ограничения на физический размер, срок службы батареи, температурный диапазон и стоимость. Полный набор требований гарантирует, что любой дизайн, встречающий все спецификации, жизнеспособен; если технически правильное решение проваливается по причинам вроде стоимости, упущение, вероятно, лежит в фазе требований.

Как только топ-уровневые требования согласованы, декомпозируйте систему в когерентные подсистемы, каждая со своими функциональными и техническими спецификациями. В real-time встраиваемых системах цифровая обработка обычно формирует выделенную подсистему со своим набором ограничений.

Распределение функциональности на FPGA

Когда системные цифровые требования превышают возможности микроконтроллеров или процессоров, рассмотрите FPGA. Архитектуры, выигрывающие от high-speed параллельного железа, являются главными кандидатами. Даже если обычный процессор мог бы встретить производительность, FPGA может предложить гибкость и потенциал апгрейда на протяжении жизненного цикла продукта.

После решения использовать FPGA, распределите релевантные обработку задачи на него. Определите входные и выходные интерфейсы FPGA, частоты обновления и взаимодействия с периферийными компонентами вроде ADC, DAC и устройств памяти.

Идентификация требуемых FPGA фич

С определенными ответственностью и интерфейсами FPGA, составьте список обязательных фич устройства. Рассмотрите требования к ресурсам — логические ячейки, DSP блоки, память — и потребности в питании и охлаждении. Low-cost, battery-powered дизайны могут использовать меньшие устройства с пассивным охлаждением, в то время как high-performance системы могут нуждаться в больших FPGA с активным охлаждением.

Семейства устройств различаются доступными фичами; например, некоторые включают интегрированные ADC для снижения сложности платы. Используйте требования для шортлиста кандидатов семейств, затем сузьте до конкретных моделей по мере прояснения оценок ресурсов.

Реализация FPGA-дизайна

С выбранным кандидатом устройства и отображённой функциональностью начните реализацию используя вендорский тулсьют — обычно Xilinx Vivado или Intel Quartus. Процесс типично начинается с top-level дизайна, который может быть выражен как блок-диаграмма или написан напрямую в HDL (Verilog или VHDL) или high-level synthesis языках вроде C/C++.

Итерируйте через следующие фазы, уточняя дизайн пока не получен рабочий битстрим:

Design Entry
Определите системную логику используя HDL, блок-диаграммы или C/C++ код. Эти артефакты описывают предполагаемое поведение но не физическую интеграцию.

I/O Planning
Назначьте I/O пины, установите сигнальные стандарты и рассмотрите физические ограничения вроде размещения пинов и длины трасс для high-speed сигналов. I/O констрейнты вместе с timing констрейнтами направляют процесс синтеза.

Синтез
Конвертируйте HDL в нетлист, мапящий логику на ресурсы выбранного FPGA. Если констрейнты не могут быть удовлетворены, синтез фейлится и дизайн должен быть пересмотрен.

Place and Route
Разместите логические элементы нетлиста на специфических FPGA ресурсах, уважая констрейнты. Проложите межсоединения для финализации физической компоновки. Результат — полностью специфицированная конфигурация.

Bitstream Generation
Создайте конфигурационный файл, загружающий внутреннюю SRAM FPGA. Этот битстрим аналоген software executable и должен загружаться на каждом power-on цикле, обычно из onboard flash или внешнего источника.

После производства битстрима выполните тщательное тестирование для верификации функциональной корректности.

Тестирование реализации
Тестируйте на каждом этапе: симулируйте HDL логику, валидируйте синтезированный нетлист и запускайте hardware-in-the-loop тесты на таргетной плате. Комплексное тестирование митигирует редкие баги, которые могут подорвать кредибельность продукта.

Следующий раздел детализирует hands-on пример с платой Arty A7 и тулсьютом Vivado.

Reprinted with permission from Packt Publishing. Copyright © 2021 Packt Publishing


Embedded FPGA дизайн: полный процесс разработкиДжим Ледин — CEO Ledin Engineering, Inc. Приносит глубокую экспертизу в встраиваемом ПО и аппаратном дизайне, разработке и тестировании, и признан авторитетом в кибербезопасности встраиваемых систем. С B.S. в аэрокосмической инженерии от Iowa State University и M.S. в электротехнике и компьютерной инженерии от Georgia Institute of Technology, Джим — лицензированный профессиональный инженер в Калифорнии, CISSP, CEH и CPT.

Связанный контент:

Для получения большего контента по Embedded подпишитесь на еженедельную рассылку Embedded.


Встроенный

  1. Проектирование безопасных (fail-safe) систем управления для надежности и безопасности
  2. Программирование встраиваемых систем: языки, архитектура и применения
  3. Чат-боты: процесс проектирования, архитектура и практические рекомендации
  4. Проектирование встроенных систем: этапы, принципы и реальные применения
  5. Основы встроенных систем и реальные применения
  6. Analog Devices демонстрирует ИИ, промышленные сети и решения питания на Embedded World 2019
  7. Axiomtek tBOX400-510-FL: Транспортный ПК с двумя процессорами и интегрированным 10-портовым управляемым PoE коммутатором
  8. IBASE CMI300-988: Ультракомпактный Mini-ITX ПК на AMD Ryzen Embedded V1807B
  9. MicroSys запускает miriac MPX-LS1028A SoM: Edge Computing с IEEE TSN и 4K Graphics
  10. Максимизация производства с передовым ПО для аддитивного производства