Создание периферийных устройств с поддержкой PCI Express на основе FPGA


PDF версия

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

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

Системы промышленного управления перешли с программируемых логических контроллеров (PLC) на стандартные платформы общего назначения, основу которых составляют процессоры промышленного класса. Одним из примеров этого перехода является система, состоящая из малопотребляющего процессора Intel Atom и набора микросхем (hub chip set) системного контроллера. Чип hub содержит контроллер памяти, графический контроллер и набор наиболее распространенных интерфейсов. Помимо всего прочего, он упрощает расширение возможностей ввода-вывода с помощью пары одноканальных портов PCI Express.

В то же время входящие в объединения ARM и MIPS компании, выступающие за экологически безопасные технологии, приложили много усилий для создания мостов PCI Express и других необходимых IP-блоков, чтобы обеспечить в своих платформах поддержку этого практически повсеместно используемого стандарта. Так, существуют такие приложения, в которых наряду с основными процессорами WinTel (ЦП Intel, работающий на ОС Windows) используются микропроцессоры ARM, выполняющие только некоторые ключевые процедуры для повышения КПД системы и, соответственно, увеличения срока службы аккумуляторов. Холдинг ARM разработал собственный 32-разрядный процессор Cortex-M3, который может применяться в качестве основы высокопроизводительной недорогой платформы для широкого круга применений, в т.ч. в микроконтроллерных и автомобильных системах, системах промышленного контроля и беспроводных сетях. Другое направление — это быстрая адаптация протоколов PCI Express, которые были предложены компанией Intel в 2004 г. в качестве нового поколения интерфейсов связи для ПК. В настоящее время технология вышла за рамки компьютерных приложений, перешла во встраиваемые системы, обеспечивая более высокое быстродействие и снижая расход энергии, и, в конечном счете, стоимость устройств. Современные недорогие FPGA находят применение и в этом направлении — в них установлены совместимые с PCI Express интерфейсы, последовательные приемопередатчики и конечные точки PCI Express.

Применение процессоров совместно с FPGA — более гибкое и масштабируемое решение, чем традиционные ЦПУ в сочетании со специализированными или заказными СБИС (см. рис. 1). Топология PCI Express обеспечивает идеальную линию связи с широкой пропускной способностью между процессорами и FPGA, что позволяет создавать специализированные интерфейсы и реализовывать нестандартные периферийные устройства. Гибкая архитектура оптимально разделяет программные и аппаратные части устройства, достигая компромисса между характеристиками, стоимостью и потреблением системы. Гибкость FPGA позволяет освободиться от ограничений, связанных с фиксированной функциональностью, и избежать риска устаревания компонентов.

Рис. 1. Соединение процессора Atom с FPGA линиями PCI Express

 

Система в целом

Последовательная пакетная пересылка данных была разработана для облегчения обмена большим объемом информации на больших расстояниях. Альтернативными способами связи являются высокоскоростные соединения между двумя устройствами или двумя платами внутри одного устройства. Матрицы FPGA в настоящее время стали неотъемлемой частью высокоскоростных систем связи. В связи с этим современные FPGA, начиная с Virtex-II (Xilinx), имеют встроенные высокоскоростные последовательные приемопередатчики. Синхронные последовательные каналы связи обеспечивают высокую пропускную способность и в то же время позволяют упростить плату, снизить ее потребление и упростить схему тактирования по сравнению с шинными архитектурами.

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

Компания Intel представила технологию PCI Express в 2004 г., поскольку компьютерной технике на тот момент требовалось большая полоса пропускания, а общая шина не позволяла этого достичь из-за фазовых сдвигов и конфликтов. Таким образом, прямая связь была реализована по последовательному каналу. Стандарт PCI Express 1.1 обеспечивает скорость 2,5 Гбит/с, а, учитывая кодирование 8b/10b, теоретический предел полезной скорости передачи составляет 2,0 Гбит/с. Стандартом определяются также многополосные связи для приложений, в которых требуется более высокая скорость обмена. Более поздние версии стандарта увеличили пропускную способность PCI Express до 5 Гбит/с (версия 2.0) и даже 8 Гбит/с (версия 3.0). Однако для встраиваемых систем с умеренным потреблением PCI Express 1.1 обеспечивает достаточное быстродействие.

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

Эти преимущества реализуются в недорогих FPGA нового класса путем добавления в матрицу последовательных приемопередатчиков, конечных точек PCI Express и других функциональных модулей, необходимых для полноценного обеспечения связи. Эти нововведения повышают системную интеграцию и стали удачным решением для построения заказных периферийных устройств для встраиваемых процессорных систем. Матрицы FPGA со встроенной PCI Express обеспечивают гибкую инфраструктуру для подсоединения устройств к локальной сети предприятия и создания сетей промышленного управления, использующих протоколы Ethernet реального времени, такие как Profinet, EtherCAT, GigE Vision и SERCOSIII. Кроме того, на FPGA можно реализовать аппаратные ускорители, которые возьмут на себя выполнение сложных алгоритмов, например ПИД-управление двигателями в полевых условиях.

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

Полная интеграция — лучшее решение

Для реализации конечной точки PCI Express необходимо изготовить последовательные приемопередатчики и логические схемы, которые образуют законченный физический уровень. Кроме того, потребуются дополнительные логические схемы для формирования канального и сетевого уровня (иногда его называют уровнем транзакций), а также модули памяти для буферирования транзакций. До недавнего времени последовательные приемопередатчики были доступны только в самых дорогих и современных FPGA, однако в настоящее время ситуация изменилась, и даже недорогие модели имеют такие же характеристики и возможности, включая и модули последовательной связи, которые были прерогативой только самых продвинутых ПЛИС. Это позволяет разработчикам реализовывать сложные периферийные функции, в т.ч. аппаратные ускорители и разгрузочные модули, эффективно используя полосу пропускания при обмене данными с ЦП по линиям PCI Express.

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

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

Решения для создания заказных периферийных устройств

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

Недорогое семейство Spartan-6 LTX компании Xilinx имеет встроенный модуль PCI Express со всеми ресурсами, необходимыми для рационального расхода энергии и разгрузки ЦП для обработки критичных ко времени задач, и заказные аппаратные ускорители для выполнения сложных вычислительных функций (см. рис. 2).

Рис. 2. Реализация конечной точки PCI Express на Spartan-6 LTX

Матрицы Spartan-6 LTX содержат малопотребляющие GTP-приемопередатчики и выполненные в слое кремния конечные точки PCI Express, которые образуют одиночную линию связи первого поколения. Перенесенная на кристалл одна конечная точка освобождает около 7000 логических ячеек.

FPGA семейства Spartan-6 LTX прошли проверку на соответствие стандарту PCI Express 1.1 по электрическим требованиям и требованиям по совместимости в специализированных лабораториях, принадлежащих PCI-SIG (PCI Special interest group — организация, которая подготовила и ведет сопровождение стандарта). По итогам испытаний матрицы Spartan-6 LTX и разработанные для них оценочные платы SP605 включены в список устройств, поддерживающих PCI Express.

Средства разработки

Пакет ISE Design Tool упрощает задачу разработчика, автоматически генерируя заказные IP-ядра LogiCORE для конфигурирования интерфейса PCI Express. Инструмент CORE Generator обеспечивает графический интерфейс пользователя (GUI), чтобы было удобнее настраивать основные параметры конечной точки, в т.ч. параметры GTP-приемопередатчиков и конечной точки PCI Express, модулей буферных ОЗУ и схем тактирования. Кроме того, CORE Generator содержит интерфейс прикладной части PCI Express (см. рис. 3). Набор инструментов ChipScope Pro Serial I/O позволяет оценивать характеристики линии и производить тонкую настройку установок приемопередатчика GTP.

Рис. 3. Образец сопряжения PCI Express и Gigabit Ethernet

Для удобства проектирования оценочные платы имеют торцевой разъем PCI Express, что позволяет легко протестировать возможности FPGA в рамках стандартной компьютерной платформы и затем приступить к собственному проекту. Для подсоединения к оценочной плате специализированных разъемов или дополнительных схем предусмотрен слот для карты FPGA Mezzanine Card (FMC), который принимает все карты более низкого уровня от Xilinx и других производителей.

Демонстрационные проекты (образцы разработки) помогают быстро ознакомиться с принципами соединения всех элементов системы и оценить возможности FPGA, после чего начать разработку специализированного устройства. Так, проект, демонстрирующий интерфейсные возможности FPGA, предоставляет все необходимые на начальном этапе исходные коды, скрипты, драйверы, интерфейсы API и GUI и другое ПО, а также документацию для построения и отладки надежных последовательных линий связи. Этот проект представляет собой полнофункциональный мост между протоколами Gigabit Ethernet и PCI Express, обеспечивая эффективную платформу для оценки всех ключевых компонентов Spartan-6 LTX (см. рис. 3): GTP-приемопередатчиков, конечных точек PCI Express, контроллера памяти с поддержкой DDR, DDR2, DDR3, SDRAM и LPDDR.

Рассматриваемый демонстрационный проект содержит ряд IP-блоков, в т.ч. модуль прямого доступа (ПДП) к памяти Bus Mastering Packet DMA компании Northwest Logic и модуль локальной связи Ethernet MAC с тремя режимами (XPS, LL, TEMAC). Модуль ПДП с помощью конечной точки PCI Express позволяет разгрузить поток данных, проходящих через ЦП, и обеспечивает высокоскоростную передачу данных между системной памятью и FPGA. При этом конечная точка PCI Express отвечает за интерфейс с ЦП, а канал Gigabit Ethernet реализует функции сетевой интерфейсной карты.

Для упрощения проектирования периферийных устройств с поддержкой PCI Express компания Xilinx предлагает все три этих элемента в одном наборе Spartan-6 FPGA Connectivity Kit. В комплекте имеется предустановленный и отлаженный проект-пример подключения, загруженный на плату SP605 (распространяется вместе с FPGA). Набор также содержит полный пакет ISE Design Suite для встраиваемых систем, драйверы устройств и файлы с исходными кодами. Ключевая особенность Spartan-6 FPGA Connectivity Kit — предоставление полной лицензии на модуль Bus Mastering Packet DMA, который позволяет эффективно использовать высокую скорость работы последовательного передатчика в модуле системной памяти. Все необходимое ПО и файлы загружены в USB-флэш-память и представлены в печатном виде в руководстве по аппаратной настройке и руководстве по работе. Все это позволяет разработчикам проектировать собственные системы максимально быстро и качественно. В дополнение к наборам Xilinx компания Avnet предлагает решение для построения специализированных интерфейсов для FPGA и встраиваемого ПО на основе ОС Windows для систем, состоящих из процессора Atom и матрицы Spartan-6 LTX.

Литература

1. G. Lara. Low-Cost PCI Express-Compliant FPGAs Enable a Plethora of Peripherals//RTC MAGAZINE. January. 2010.

Оставьте отзыв

Ваш емейл адрес не будет опубликован. Обязательные поля отмечены *