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

Аппаратные ресурсы FPGA для высокопроизводительных встраиваемых систем

Аппаратные ресурсы FPGA для высокопроизводительных встраиваемых системПримечание редактора: По мере появления продвинутых алгоритмов для дизайнов умных продуктов, разработчики часто находят себя борющимися за реализацию встраиваемых систем, способных удовлетворить связанные вычислительные требования. FPGA могут обеспечить требуемую производительность, но проектирование с FPGA долго считалось доменом экспертов по 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-устройств в real-time встраиваемых системах и продолжается описанием функциональных элементов, содержащихся в стандартных FPGA. Она представляет диапазон языков FPGA-дизайна — включая Hardware Description Languages (HDL), блок-диаграммные методы и популярные языки программирования, такие как C и C++ — и даёт обзор процесса FPGA-разработки. Глава завершается полным примером цикла FPGA-разработки, от заявления системных требований к полностью функциональной системе, реализованной на низкокостной FPGA-плате разработки.

После завершения этой главы вы поймёте, как FPGA могут применяться в real-time встраиваемых системных архитектурах, ключевые компоненты FPGA IC, языки программирования для проектирования FPGA-алгоритмов и пошаговую последовательность разработки FPGA-базированного приложения. Вы также пройдёте через полный пример FPGA-разработки на низкокостной плате с бесплатными FPGA-инструментами.

Мы охватим следующие темы:

Технические требования

Файлы для этой главы доступны по адресу https://github.com/PacktPublishing/Architecting-High-Performance-Embedded-Systems.

Использование FPGA в real-time встраиваемых системных дизайнах

Как описано в разделе Elements of FPGAs Главы 1, типичное FPGA-устройство содержит большое количество lookup tables, flip-flops, block RAM элементов, DSP slices и других компонентов. В то время как полезно понимать детальные возможности каждого компонента, наиболее критическим соображением является то, что конкретный FPGA part number содержит конечное число каждого ресурса, и дизайн не может превышать эти лимиты при таргетинге на эту конкретную модель.

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

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

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

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

Следующие разделы обсуждают ключевые дифференцирующие фичи семейств и моделей FPGA, включая ёмкость block RAM, типы I/O сигналов, специализированные on-chip ресурсы и наличие встроенных процессорных ядер.

Block RAM и Distributed RAM

Block RAM реализует выделенные области памяти внутри FPGA. Область памяти задаётся её битной шириной (обычно 8 или 16 бит) и глубиной (числом ячеек хранения). Общий block RAM обычно выражается в килобитах (Kb) и варьируется по семействам и моделям.

Многие FPGA также предоставляют distributed RAM, построенную из lookup-table логики для формирования малых 16-битных сегментов. Их можно комбинировать в более крупные блоки при необходимости. Distributed RAM идеальна для временного хранения промежуточных результатов, тогда как block RAM используется для кэшей или I/O буферов.

Block RAM может быть single-port или dual-port. Dual-port RAM, с двумя портами чтения/записи, особенно полезен для моста между подсистемами, работающими на разных тактовых частотах, обеспечивая передачу данных без интерференции.

Block RAM может работать в режиме FIFO, предоставляя сигналы full, empty, almost full и almost empty. Тщательный контроль операций записи и чтения предотвращает потерю или повреждение данных.

FPGA I/O Pins и связанные фичи

FPGA I/O пины поддерживают множество high-speed стандартов. Во время дизайна разработчики назначают функции конкретным пинам и конфигурируют стандарт интерфейса каждого пина. Сигналы либо single-ended, либо differential.

Single-ended сигналы референсны к земле и исторически использовали TTL/CMOS диапазоны. Современные FPGA поддерживают более низкие диапазоны напряжений — LVTTL (0–3,3 В) и LVCMOS варианты (1,2, 1,5, 1,8, 2,5, 3,3 В) — снижая потребление и улучшая скорость. High-speed single-ended стандарты включают HSTL и SSTL.

Дифференциальная сигнализация, использующая пару пинов, предпочтительна для high-data-rate линков, так как common-mode шум в основном компенсируется. Дифференциальные стандарты включают HSTL, SSTL и LVDS. LVDS, введённый в 1994, доставляет постоянный ток 3,5 мА и переключает направление для представления бит данных. Согласование импеданса линии передачи (100 Ом для LVDS) с импедансом терминирования критично для избегания отражений.

Специализированные аппаратные ресурсы

FPGA часто включают выделенное железо для функций, выигрывающих от фиксированной, эффективной реализации:

Выделенное железо, такое как MAC units, доставляет производительность далеко за пределами того, что достижимо с синтезированной логикой.

Процессорные ядра

Некоторые семейства FPGA интегрируют hard processor cores — например, Xilinx Zynq-7000 комбинирует ARM Cortex-A9 с FPGA fabric. Когда дизайн не требует hard core, мягкий процессор может быть инстанцирован из FPGA-ресурсов. Soft processors высококонфигурируемы, но обычно не достигают производительности hard cores.

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

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


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

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

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


Встроенный

  1. Избегайте дорогих сюрпризов в проектировании коннектед железа: проверенные стратегии
  2. Проектирование встроенных систем: этапы, принципы и реальные применения
  3. Eclipse IoT: унифицированный open-source пакет для быстрой IoT разработки
  4. Построение конечных автоматов с Test-Driven Development во встроенном C
  5. Использование встроенного ИИ для превращения Big Data в действенные Smart Insights
  6. Cypress усилила IoT-разработку полной поддержкой device-to-cloud в ModusToolbox
  7. Lattice MachXO3D FPGA укрепляет аппаратную безопасность с Root-of-Trust функциями
  8. MAXREFDES220# — Бесманжетный мониторинг артериального давления с оптическими датчиками
  9. Java 9: улучшенный try-with-resources для чистого кода
  10. Максимизация производства с передовым ПО для аддитивного производства