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

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

Примечание редактора. По мере появления передовых алгоритмов для разработки интеллектуальных продуктов разработчики часто сталкиваются с трудностями при реализации встроенных систем, способных удовлетворить связанные с этими алгоритмами требования к обработке. ПЛИС могут обеспечивать требуемую производительность, но проектирование с использованием ПЛИС долгое время считалось ограниченным компетенцией экспертов по программированию ПЛИС. Однако сегодня наличие более мощных ПЛИС и более эффективных сред разработки сделало разработку ПЛИС широко доступной. В этом отрывке, главе 4 из книги «Архитектура высокопроизводительных встроенных систем», автор предлагает всесторонний обзор устройств FPGA, языков реализации и процесса разработки FPGA, а также подробное пошаговое руководство по началу реализации FPGA самостоятельно. дизайн. Полный отрывок представлен в следующих частях:
1:аппаратные ресурсы
2:языки реализации
3:Процесс разработки (эта статья)
4:Создание проекта
5. Реализация

Адаптировано из книги Джима Ледина "Архитектура высокопроизводительных встраиваемых систем".


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

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

Выделение функций для FPGA

Если требования к цифровой обработке в архитектуре системы превышают возможности микроконтроллеров и микропроцессоров, которые в противном случае были бы пригодны для использования в системе, может быть целесообразно рассмотреть возможность включения ПЛИС в проект. Некоторые системные архитектуры, особенно те, в которых используется высокоскоростное цифровое оборудование, выполняющее параллельные операции, являются естественными кандидатами для реализации на ПЛИС. Другие системные архитектуры могут обеспечивать адекватную производительность с традиционной цифровой обработкой, но могут быть ценные возможности использовать преимущества гибкости и расширяемости, предлагаемые реализацией FPGA в течение запланированного срока службы, который предусматривает существенные обновления системы в будущем.

После того, как было принято решение о включении ПЛИС в проект, следующим шагом будет распределение частей общих требований к цифровой обработке системы для устройства ПЛИС. Обычно это включает спецификацию входных и выходных сигналов ПЛИС, частоту обновления входов и выходов и идентификацию компонентов, с которыми должна взаимодействовать ПЛИС, включая такие части, как АЦП и устройства ОЗУ.

Реализация проекта FPGA

Определив модель-кандидат ПЛИС и получив подробное определение функций, выделенных ПЛИС, пора приступить к реализации проекта ПЛИС. Обычно это предполагает использование набора средств разработки FPGA и обычно состоит в основном из разработки кода HDL на языке, предпочтительном для проекта.

При необходимости реализация FPGA может начинаться с представления блок-схемы проекта FPGA верхнего уровня. При необходимости компоненты, разработанные на HDL или C / C ++, могут быть включены в конструкцию блока для завершения полной реализации системы.

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

Разработка FPGA осуществляется поэтапно по мере того, как первоначальный проект уточняется более подробно, пока не будет создан файл программирования для устройства FPGA. Обычно эти этапы повторяются несколько раз для большого проекта, разрабатывая небольшую часть общего дизайна на каждом этапе выполнения этапов. Эти этапы описаны в следующих разделах.

Дизайн записи

Дизайн записи это этап, на котором разработчик системы определяет функциональность системы с помощью кода HDL, блок-схем и / или кода C / C ++. Код и другие артефакты, такие как блок-схемы, в абстрактных терминах определяют логическую функциональность системы. Другими словами, артефакты дизайна определяют логическую схему, но не определяют, как она интегрируется с остальной системой.

Планирование ввода-вывода

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

Определение требований к сигналам ввода-вывода - это одна из форм ограничения в процессе разработки ПЛИС. Другая основная категория ограничений состоит из требований к времени, которые определяют производительность решения FPGA. В процессе синтеза FPGA используется код HDL и ограничения проекта для разработки функционально правильного решения FPGA, которое удовлетворяет всем определенным ограничениям. Если инструмент не может удовлетворить все ограничения, синтез не удастся.

Синтез

Синтез преобразует исходный код в схему, называемую список соединений . Список соединений представляет собой схему, построенную из ресурсов целевой модели FPGA. Список соединений представляет собой логическую или схематическую версию схемы. Он не определяет, как схема будет реализована в физическом устройстве FPGA. Это происходит на следующем этапе.

Место и маршрут

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

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

Генерация битового потока

Последним шагом в процессе разработки FPGA является создание файла битового потока. Для достижения максимальной производительности большинство современных устройств FPGA хранят свою конфигурацию внутри, используя статическую ОЗУ . ( SRAM ).

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

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

После завершения компиляции потока битов FPGA следующим шагом является тестирование реализации, чтобы убедиться, что она работает правильно. Этот шаг ничем не отличается от тестирования, необходимого в конце традиционного процесса сборки программного обеспечения.

Тестирование реализации

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

Даже после того, как приложение FPGA успешно пройдет все этапы генерации битового потока, нет гарантии, что проект будет работать так, как задумано. Чтобы добиться успешного проектирования в разумные сроки, абсолютно необходимо проводить адекватное тестирование на каждом этапе разработки.

На первом этапе тестирования необходимо тщательно изучить поведение кода HDL, чтобы продемонстрировать, что он работает так, как задумано. Пример проекта в конце этой главы продемонстрирует использование набора инструментов Vivado для выполнения тщательного тестирования логики HDL в проекте.

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

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

В следующем разделе приводится подробное описание этапов разработки, тестирования и реализации простого проекта FPGA с использованием платы для разработки Arty A7 и набора инструментов Xilinx Vivado.

Перепечатано с разрешения Packt Publishing. Авторские права © 2021 Packt Publishing


Джим Ледин является генеральным директором Ledin Engineering, Inc. Джим является экспертом в области проектирования, разработки и тестирования встроенного программного и аппаратного обеспечения. Он также имеет опыт оценки кибербезопасности встроенных систем и тестирования на проникновение. У него есть степень бакалавра наук. степень в области аэрокосмической техники Университета штата Айова и степень магистра наук степень в области электротехники и вычислительной техники Технологического института Джорджии. Джим является зарегистрированным профессиональным инженером-электриком в Калифорнии, сертифицированным специалистом по безопасности информационных систем (CISSP), сертифицированным этическим хакером (CEH) и сертифицированным тестером на проникновение (CPT).

Связанное содержание:

Чтобы получить больше информации о Embedded, подпишитесь на еженедельную рассылку Embedded по электронной почте.


Встроенный

  1. Отказоустойчивый дизайн
  2. Что такое встроенное системное программирование и его языки
  3. Что такое чат-бот:процесс проектирования и его архитектура
  4. Что такое дизайн встроенной системы:этапы процесса проектирования
  5. Основы встроенной системы и приложений
  6. ADI показывает технологии для каждой области проектирования встроенных систем
  7. Axiomtek:встроенная система со встроенным управляемым переключателем PoE уровня 2
  8. IBASE:тонкая система Mini-ITX со встроенной SoC AMD Ryzen Embedded V1000
  9. MicroSys:встроенные пограничные вычисления с процессором NPX LS1028A и IEEE TSN
  10. Все вместе с добавками