Реализация интерфейса беспроводной сети на FPGA


PDF версия

В статье обсуждаются проблемы разработки контроллера беспроводной сети стандарта IEEE 802.11 на базе FPGA. Рассмотрены особенности построения платформы интерфейса беспроводной сети с использованием FPGA Virtex-4. Показано, что выполнение совместной верификации проекта на FPGA и ASIC позволяет создать высоконадежный конечный продукт, который полностью готов к сертификации на требования стандарта IEEE 802.11. Статья представляет собой перевод [1].

В компании Wipro-NewLogic для решения данной проблемы было решено использовать платформу на базе FPGA. Результатом разработки стало создание платы WiLDSYS, название которой отражает наименование IP-блока беспроводной сети — WiLD a/b/g.

Для данного проекта было сформулированы несколько ключевых требований. Во-первых, IP-блок беспроводной сети должен был работать на полной скорости (скорость передачи данных в эфире 54 Мбит/с согласно стандартам 802.11a и 802.11g). Во-вторых, необходимо было создать общую базу данных для FPGA и ASIC. В-третьих, разработчикам проекта требовалось убедиться в том, что результаты тестирования и выявленные ошибки при реализации IP-блока на FPGA применимы для ASIC. Наконец, необходимо было реализовать внешние интерфейсы с управляющим компьютером и радиоканалом на FPGA, чтобы минимизировать количество внешних компонентов и использовать возможность программирования FPGA для модернизации этих интерфейсов в будущем. В процессе разработки было обнаружено, что платформа FPGA не только позволяет осуществить все эти цели, но и обеспечивает возможность полной аттестации платы WiLDSYS в соответствии с требованиями спецификации Wi-Fi.

Остановимся вначале на общем обзоре платформы WiLDSYS и выборе типа FPGA.

Общий обзор платформы WiLDSYS

На рисунке 1 показана блок-схема платформы WiLDSYS, реализованная в первоначальном варианте. Ядро WiLD (слева на блок-схеме) включает в себя MAC-контроллер стандарта 802.11 a/b/g и модем. Функции MAC-контроллера распределяются между процессором передачи пакетов WiLD (блок управления буфером/контроллер DMA) и потоковым процессором WiLD, который выполняет RC4- и AES-кодирование. Оба блока являются ведущими устройствами центральной развитой высокопроизводительной шины (Advanced High-Performance Bus, AHB) и не являются критичными к синхронизации устройствами. Модем WiLD обеспечивает обработку сигнала по технологиям CCK/DSSS и OFDM в соответствии со стандартом 802.11 a/b/g. Блоки обработки сигнала, разработанные для ASIC, не так просто реализовать на FPGA. Связанные с этим проблемы и решения подробнее будут описаны ниже.

Рис. 1. Блок-схема платформы WiLDSYS

Система содержит также полную процессорную платформу на базе ARM7, на которой работает программное обеспечение MAC уровня 2 с поддержкой режима точки доступа и режима станции.

Размещение кристалла ARM7 на одной плате с FPGA обеспечивает заказчикам, не имеющим лицензии ARM, возможность использовать эту плату. Кроме того, предусмотрена возможность подключения внешней памяти SRAM для приложений, использующих память большего объема, чем предусмотрено в FPGA, а также загрузочное флэш-устройство. На плате размещено достаточное число разъемов для доступа к выводам FPGA через внешние интерфейсы, а также с целью отладки. Для возможности последующей модернизации платы предусмотрено посадочное место для второго чипа FPGA, хотя до настоящего времени оно не было использовано. На рисунке 2 показано фото платы WiLDSYS.

Рис. 2. Микросхема FPGA Virtex-4 расположена в центре платы WiLDSYS

Выбор FPGA

В этом проекте использовалася микросхема FPGA Virtex-4 компании Xilinx. Данное семейство было выбрано из-за высокого быстродействия и большого числа специализированных ресурсов FPGA, включая блоки DSP, встроенную память, конфигурируемые порты ввода/вывода и блок синхронизации. Из этого семейства FPGA было выбрано устройство Virtex-4 LX200, которое обеспечивает необходимую емкость, т.к. IP-блок платформы WiLD включает 700 тыс. вентилей (эквивалентных NAND2). В таблице 1 представлены данные об использовании ресурсов FPGA.

Таблица 1. Использование ресурсов Virtex-4 LX 200 для проекта WiLDSYS

Использование ОЗУ/ПЗУ

2-портовые ОЗУ (RAM16x1D)

140

64×1 ПЗУ (ROM64×1)

12

256×1 ПЗУ (ROM256×1)

138

Число блоков ОЗУ

211 из 336

62%

Использование логических элементов

Число триггеров секций

52943 из 178176

29%

Число 4-входовых LUT

133498 из 178176

74%

Распределение логических элементов

Число занятых секций

83217 из 89088

93%

Общее число 4-входовых LUT

137384 из 178176

77%

Число связанных буферов ввода-вывода

361 из 960

37%

Число буферов BUFG/BUFGCTRL

8 из 32

25%

Число блоков памяти FIFO16/RAMB16

214 из 336

63%

Число блоков DSP48

17 из 96

17%

Число блоков DCM ADV

1 из 12

8%

FPGA Virtex-4 поддерживает частоту тактового сигнала до 500 МГц. Такая рабочая частота необходима для реализации высокоскоростного интерфейса с РЧ-кристаллом поддержки беспроводной сети компании Wipro-Newlogic, работающей на частоте 240 МГц. Поскольку одной из задач проекта было использование общей базы данных для ASIC и FPGA, следовало поместить код ASIC в FPGA, не оптимизируя его для максимального задействования ресурсов. Обычно код ASIC использует более длинные комбинационные пути, и потребовалось найти оптимальное соотношение между максимальной рабочей частотой FPGA и тактовой частотой системы. Компания Xilinx существенно усовершенствовала блоки обработки сигнала в семействе FPGA Virtex-4. Особенно это коснулось умножителей. Для умножения и сложения были оптимизированы специализированные блоки DSP48. Использование ресурсов DSP48 обеспечило преимущества при работе модема стандарта 802.11 a/g на частоте 80 МГц.

FPGA Virtex-4 позволяет задействовать линии глобального тактового сигнала. В Virtex-4 LX200 используются 32 буфера глобального тактового сигнала, 8 из которых не привязаны к определенной области FPGA. Поскольку можно разместить триггеры, связанные с одним из этих восьми буферов, в любом месте FPGA, появляется больше возможностей для распределения элементов и разводки проекта.

Проблемы создания общей базы данных

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

При реализации этой задачи иногда возникали трудности, и в некоторых случаях единственным решением была модификация кода ASIC. Некоторые логические цепочки в OFDM-модеме не отвечали требованию по максимальной частоте в 80 МГц для Virtex-4. Поэтому было решено разорвать комбинационные цепочки за счет включения дополнительных триггеров. Это увеличило общее время задержки модема, но оно все еще находилось в допустимых пределах. После решения проблемы с временными параметрами FPGA была проведена соответствующая модификация базы данных ASIC, и выполнен полный регрессионный тест. После синтеза кода обнаружилось, что при реализации на ASIC модифицированного кода был даже получен выигрыш по площади, т.к. более мягкие требования к синхронизации позволили инструментам синтеза ASIC использовать меньшее число буферов и более компактные комбинационные элементы.

Контроллер тактового сигнала — один из самых важных блоков ASIC и, кроме того, его код весьма трудно преобразовать для FPGA. В конечном итоге, в ходе разработки было решено создать специальный блок для реализации только на FPGA. Был разработан синтезирующий скрипт отдельно для ASIC и FPGA для выбора оптимального блока в каждом типе реализации. Были задействованы ресурсы менеджера цифрового тактового сигнала (digital clock manager, DCM) FPGA Virtex-4 для замены блока ФАПЧ, который обычно используется при разработке проекта для беспроводной сети на ASIC. DCM-блок формирует требуемую частоту 240 МГц из 40- или 50-МГц входной частоты генератора, в точности как на ASIC.

IP-блок для платформы WiLD ориентирован на приложения с малым энергопотреблением, поэтому была поставлена задача реализации поддержки управления тактовым сигналом и раздельных областей питающего напряжения. 8 буферов глобального тактового сигнала, которые не привязаны к определенной области FPGA Virtex-4 LX200, не обеспечивали достаточных ресурсов для создания всего набора тактовых частот и всех функций управления тактовым сигналом, возможных для ASIC. Было решено реализовать управление тактовым сигналом для корректного функционирования системы, а не только для снижения энергопотребления.

Для упрощения иерархической схемы синхронизации была использована функция преобразования управления тактовым сигналом, доступная в инструменте синтеза FPGA Synplify Pro. Этот инструмент позволяет удалить управляющие вентили с линий тактового сигнала и разместить их на входе разрешения или на входе данных триггера. Для управления тактовым сигналом использовались буферы BUFG и BUFGCE, поэтому для разводки их выходных линий применялся высокоскоростной глобальный тактовый сигнал FPGA Virtex-4. Ресурс BUFGMUX позволяет реализовать бессбойное мультиплексирование тактовых сигналов для активного режима и режима низкого энергопотребления.

В проекте было реализовано несколько областей питающего напряжения, которое можно включать и отключать в различное время. Такая сложная конфигурация была проверена на Virtex-4, хотя данная микросхема FPGA содержит только одну область напряжения питания. Область схемы, которая переходит в режим отключения, должна быть сброшена при включении питания. На FPGA было смоделировано состояние отключения питания области с последующим сбросом схемы. Хотя этот метод полностью не проверяет соединения в области напряжения питания, разработчикам удалось обнаружить ошибки, которые нельзя было бы выявить при ограниченном по времени моделировании ASIC.

Платформа WiLD построена на базе архитектуры AHB с четырьмя ведущими устройствами шины, разделяющими доступ к периферии, в частности, к памяти и подсистеме усовершенствованной периферийной шины (Advanced Peripheral Bus, APB). Было обнаружено, что критичным участком, с точки зрения синхронизации, являются соединения адресных линий и линий данных. Данная проблемы была преодолена путем размещения центрального процессора и памяти в FPGA, вместо использования внешних устройств. В данном случае использовались преимущества больших блоков встроенной памяти Virtex-4, что существенно уменьшило задержку на линиях межсоединений. Кроме того, с помощью инструмента разработки Synplify Pro удалось собрать данные о параметрах синхронизации из файлов списка соединений памяти (EDN).

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

Внешние интерфейсы

Реализованная на FPGA платформа WiLDSYS имеет возможность простой адаптации к изменениям во внешних интерфейсах благодаря поддержке различных характеристик портов ввода/вывода Virtex-4. Все сигналы интерфейсов были сгенерированы на FPGA без внешних компонентов и разведены на соответствующие разъемы.

В первоначальном варианте проекта в качестве главного интерфейса применялась шина CardBus. Выводы FPGA были определены как PCI 3.3V и поочередно соединялись с разъемом CardBus. После того как заказчики попросили разработчиков изменить главный интерфейс на MII и SDIO, были задействованы те же выводы Virtex-4 для непосредственной связи с этими интерфейсами. В собственно плату WiLDSYS не потребовалось вносить каких-либо изменений, а для интерфейсов MII и SDIO были спроектированы новые адаптеры к разъемам.

Тот же принцип применялся при разработке РЧ-интерфейса. Вначале плата WiLDSYS была спроектирована для связи с РЧ-кристаллом компании Wipro-NewLogic через специально разработанный высокоскоростной последовательный интерфейс. В этом интерфейсе должны были использоваться дифференциальные LVDS-драйверы, а максимальная тактовая частота составлять 240 МГц. Интерфейс с такими жесткими требованиями можно было реализовать полностью на FPGA, т.к. микросхема Virtex-4 содержит встроенные LVDS-порты. На выводах этих портов были размещены триггеры, чтобы обеспечить жесткие требования 240-МГц тактовой частоты. При портировании IP-блока потребовалось лишь назначить для цифровых I/Q-сигналов стандартные выводы FPGA и развести их к разъемам, к которым подсоединялась плата расширения с АЦП и ЦАП.

Совместная верификация FPGA и ASIC

Общая база данных для ASIC и FPGA позволила выполнить совместную верификацию FPGA и ASIC. Создание единой базы данных аппаратных блоков предполагало поддержку только одной версии программного обеспечения для MAC беспроводной сети для обоих типов кристаллов. Плата на базе FPGA могла работать как в режиме станции, так и в режиме точки доступа, а также взаимодействовать с другими узлами беспроводной сети. Верификация системы на базе FPGA началась с тестирования полной системы на базе ASIC, которое включало проверку всего функционала, в т.ч. тестовые сценарии, рекомендуемые альянсом Wi-Fi Alliance. Эти тесты включали проверку на разделение полосы частот, кодирование и качество сервиса.

При обнаружении какой-либо неполадки на FPGA-платформе вначале ее исследовали с помощью специальных средств FPGA. Интерфейс логического анализатора платы WiLDSYS обеспечивает намного более широкие возможности отладки, чем ASIC, из-за ограниченного числа выводов в ASIC. Разработчики платы WiLDSYS использовали порты ввода/вывода общего назначения (GPIO) для сигналов диагностики этого интерфейса и проверяли внутренние сигналы FPGA с помощью редактора Xilinx FPGA Editor. Этот инструмент представляет в графическом виде полный проект на FPGA со всеми соединениями. Разработчик может выбрать любой внутренний проводник и соединить его с неиспользуемым выводом этого устройства. Редактор FPGA Editor может непосредственно модифицировать соединения FPGA, исключая длительный процесс повторной разводки проекта.

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

Возможность работы IP-блока на полной скорости передачи данных в эфире и соединения с другим узлом беспроводной сети обеспечила тестирование с возрастающей нагрузкой, включая длительные испытания (overnight testing). Было приобретено оборудование с испытательной площадки альянса Wi-Fi Alliance, которое позволило провести все виды испытаний на совместимость. В результате удалось выполнить значительно больше видов испытаний, что позволило достичь более высокой надежности как аппаратных, так и программных средств. Ключевым моментом всех испытаний стало представление платы на базе FPGA для сертификации в официальное учреждение Wi-Fi, в результате которой эта система прошла не только все основные испытания по стандарту 11 a/b/g, но и дополнительные тесты на качество сервиса (WMM) согласно 802.11d и 802.11h.

Было получено окончательное подтверждение, что совместная верификация FGPA и ASIC обеспечивает весьма высокую степень надежности системы на базе ASIC при эксплуатации платы WiLDSYS у заказчика. Полная верификация системы на базе FPGA, которая включала многие тесты на системном уровне и Wi-Fi-тесты до запуска в производство, позволила получить работоспособные образцы кристаллов с первого раза.

В проекте потребовалось преодолеть несколько трудностей, чтобы достичь поставленных задач: достичь полной скорости работы IP-блока беспроводной сети без FPGA и обеспечить надежность проекта на базе FPGA при верификации системы. Использование FPGA Virtex-4 и инструментов Xilinx позволило выполнить обе эти задачи. В конечном итоге, разработка платы WiLDSYS способствовала созданию чрезвычайно полезного устройства для применения во многих проектах.

Полученный положительный опыт позволил использовать плату на базе FPGA Virtex-4 вместе с различными платами расширения при разработке IP-блока Bluetooth 2.1EDR. Поскольку потребность в устройствах стандарта 802.11 a/b/g растет, в настоящее время исследуется возможность реализации этого IP-блока на микросхеме Spartan-6, т.к. это новое семейство компании Xilinx обеспечивает необходимые ресурсы при меньшей стоимости, чем Virtex-4.

Литература

1. Agnes Fain, Wolfgang Meryk. Implementing Wireless LAN Interface in an FPGA//Xcell Journal. Issue 69. Fourth Quarter. 2009.

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

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