Системы на кристалле на базе ПЛИС FPGA Xilinx с встроенными процессорами PowerPC. Часть 3
Завершающая часть статьи дает информацию о начале работы с системами на базе FPGA фирмы Xilinx, содержащими на кристалле аппаратные ядра PowerPC. Рассматривается маршрут проектирования аппаратного и программного обеспечения систем на кристалле, а также отладочные платы на базе PSoC фирмы Xilinx, хорошо подходящие в качестве платформы для освоения данной технологии.
Все статьи цикла:
- Системы на кристалле на базе ПЛИС FPGA Xilinx со встроенными процессорами PowerPC. Часть 1
- Системы на кристалле на базе ПЛИС FPGA Xilinx с встроенными процессорами PowerPC. Часть 2
- Системы на кристалле на базе ПЛИС FPGA Xilinx с встроенными процессорами PowerPC. Часть 3
Маршрут проектирования
При разработке систем на кристалле на базе ПЛИС приходится решать целый ряд вопросов, касающихся совместной разработки программного и аппаратного обеспечения системы. Положение осложняется тем, что при гибкой, конфигурируемой аппаратной платформе в программное обеспечение должны своевременно вноситься соответствующие изменения, отражающие текущее состояние программируемой аппаратуры. Еще более запутанной ситуация становится в случаях, когда один и тот же результат может быть достигнут как программной реализацией соответствующего алгоритма, выполняемого встроенным процессорным ядром, так и путем выполнения в матрице ячеек ПЛИС цифрового узла, решающего ту же задачу. В связи с этим наличие средств проектирования, которые могут по крайней мере упорядочить процесс проектирования, представляется крайне важным.
Для рассматриваемых ПЛИС Xilinx с аппаратно реализованными процессорными ядрами такой базовой САПР является Xilinx Platform Studio (XPS). Следует отметить, что ее использование не ограничено только «тяжелыми» системами, использующими встроенные ядра PowerPC. С тем же успехом XPS можно использовать с более дешевыми FPGA, реализующими процессор MicroBlaze, выполняемый на базе программируемых ячеек. Поэтому освоение систем на кристалле на базе ПЛИС вполне можно начать с изучения характеристик и возможностей софт-процессоров MicroBlaze и PicoBlaze с последующим переходом к PowerPC в Virtex-II Pro и Virtex-4.
Схема маршрута проектирования с использованием САПР XPS приведена на рис. 1.
Из рис. 1 видно, Platform Studio позволяет объединить процесс разработки программного и аппаратного обеспечения, сформировав в итоге файл конфигурации ПЛИС, содержащий как описание аппаратуры, так и данные для инициализации накристальной блочной памяти (таким образом, если код и данные полностью помещаются в ней, для старта системы достаточно загрузить конфигурацию ПЛИС). Файл конфигурации оборудования (.bit) и образ памяти процессора (.elf) объединяются утилитой data2mem. Эта утилита позволяет также заменять только данные для инициализации блочной памяти, без необходимости повторной трансляции всего проекта, что весьма полезно при отладке программного обеспечения, когда аппаратная часть системы уже не подвергается изменениям.
Разработка программного и аппаратного обеспечения производится соответствующими средствами (то есть XPS не заменяет, допустим, ISE для формирования конфигурации ПЛИС). Входными данными для них являются, соответственно, библиотеки поддержки аппаратуры (для программной части проекта), и автоматически сгенерированные описания (для аппаратной части). Набор периферийных устройств, для которых существуют такие библиотеки, достаточно богат, что позволяет на первых этапах сфокусироваться на освоении процесса совместной разработки, не отвлекаясь на создание и отладку контроллеров периферийных устройств.
Режим UltraController: простой путь к освоению PowerPC
Из представленных выше сведений можно составить впечатление, что использование аппаратных процессорных ядер не вполне тривиально. Даже с учетом наличия САПР, в громадной степени автоматизирующих процесс создания системы в целом, путь от постановки задачи до получения чернового варианта конфигурации ПЛИС довольно долог и требует от разработчиков тщательного выполнения целого ряда подготовительных операций. Самостоятельное же использование PowerPC в проектах хотя и возможно, но чрезвычайно трудоемко. Достаточно указать на то, что процессорный блок содержит около 120 (!) шин, которые требуют не только их корректного перечисления в HDL-описании, но и надлежащего подключения к матрице логических ячеек FPGA. Таким образом, по сравнению с простым использованием ПЛИС в качестве своеобразной замены привычным цифровым устройствам (но размещаемым не на печатной плате, а на кристалле с помощью САПР), системы на базе PowerPC могут оказаться существенно сложнее в освоении.
Для «быстрого старта» в области систем на базе PowerPC можно использовать весьма интересную возможность, предоставляемую ПЛИС Virtex. Как уже упоминалось в предыдущей части статьи, вместе с собственно процессорным ядром на кристалле размещены по 16 кбайт кэш-памяти кода и данных. Как правило, эта память непосредственно не доступна, то есть нельзя однозначно указать область адресов, на которую она отображена. Более того, нельзя говорить и о том, что кэш каким-либо образом добавляется к общему объему памяти, установленной в системе. В то же время эта достаточно быстрая память физически присутствует на кристалле. Далее представлен очень интересный режим UltraController, который позволяет рассматривать блоки кэш-памяти как обычную память процессора! При этом, правда, объем памяти оказывается ограничен кэшем. Графическое изображение блока PowerPC в режиме UltraController показано на рис. 2. Необходимо заметить, что привести полное графическое изображение процессорного блока нет возможности ввиду чрезмерно большого количества сигналов и шин, используемых в нем.
Данный режим характеризуется очень ограниченными возможностями по сравнению с «полнофункциональным» PowerPC, однако возможности процессорного ядра никоим образом не урезаны. Фактически весь набор ресурсов процессора сведен к следующему:
- 16 кбайт памяти кода;
- 16 кбайт памяти данных;
- 32-битная входная шина общего назначения;
- 32-битная выходная шина общего назначения;
- одна линия внешнего прерывания;
- таймеры (программируемый, с фиксированным интервалом, сторожевой);
- входы системного сброса и системной тактовой частоты;
- интерфейс JTAG.
Тактовая частота процессора в этом режиме не отличается от штатной (то есть может достигать значений 400–450 МГц в зависимости от градации скорости ПЛИС). Таким образом, можно создать компактный контроллер с высокой производительностью, способный выполнять программы небольшого размера, не задействуя при этом программируемые ресурсы ПЛИС. Работа с ядром UltraController (в настоящее время имеется его новая версия UltraController II) позволяет оценить производительность PowerPC в тестовых задачах, не сталкиваясь при этом с необходимостью проводить «полномасштабную» разработку системы на кристалле.
Отладочные платы на базе FPGA с процессорами PowerPC
В заключение имеет смысл дать краткую информацию об отладочных платах, позволяющих на практике освоить разработку систем на кристалле на базе ПЛИС. Полная информация об отладочных платах доступна по адресу http://www.xilinx.com/products/devboards/index.htm, а в рамках данной статьи будет рассмотрено по одному представителю плат для каждого семейства ПЛИС Virtex, в составе которых имеются процессорные ядра. Первая из плат носит название ML-310 и представляет собой полнофункциональную плату формата ATX, в которой вместо центрального процессора и северного моста использована ПЛИС семейства Virtex-II Pro — XC2VP30 (рис. 3).
Плата обладает весьма богатым и интересным набором возможностей. Прежде всего, на ней установлен слот для памяти DDR400 (в комплекте с платой поставляется модуль DDR объемом 256 Мбайт). Память подключена непосредственно к ПЛИС, что в сочетании с утилитой Memory Generator позволяет разрабатывать высокопроизводительные устройства обработки данных. Прочие периферийные устройства подключаются к ПЛИС через контроллер южного моста Ali M1535, что несколько затрудняет прямой доступ к периферийному оборудованию. Фактически, единственным приемлемым вариантом является использование XPS, которая полностью поддерживает эту плату. С другой стороны, в списке периферийного оборудования имеется: 4 слота PCI, два контроллера IDE, 10/100/1000 Ethernet, 2 порта USB, 2 порта RS-232 и 1 параллельный порт, порты PS/2 для клавиатуры имыши, вход и выход аудио. Это дает возможность создать на базе ML-310 полнофункциональную ЭВМ под управлением широкого спектра операционных систем, поддерживающих PowerPC (включая, разумеется, Linux). Остается заметить, что в ПЛИС, установленной на плату, размещаются два процессорных ядра, что открывает возможность разработки двухпроцессорных систем на кристалле.
Дополнительно к упомянутому оборудованию на плате имеется контроллер SystemACE, предназначенный для загрузки ПЛИС с флэш-карт стандарта CF и соответствующий слот. Карта объемом 512 Мбайт с записанной конфигурацией ПЛИС и встраиваемой версией ОС Linux входит в комплект платы. Часть выводов ПЛИС подключена к двум разъемам в стандарте LVDS (на рис. 3 эти разъемы находятся в нижней части платы и помечены как 005). Имеется также дополнительный порт RS-232, линии rx и tx которого подключены непосредственно к ПЛИС, минуя южный мост. Также непосредственно к ПЛИС подключен символьный LCD-индикатор и 8 светодиодов.
Некоторым недостатком платы является использование раздельного питания в слотах PCI. В документации особо отмечается, что линии питания ввода-вывода и основной логики карт расширения должны быть разделены во избежание повреждения контроллера PCI. Таким образом, платы стандарта PCI, на которых эти цепи питания объединены, не могут быть использованы вместе с ML-310. К сожалению, большое количество плат подпадает под это ограничение (особенно платы сбора данных). На этот вопрос стоит обратить внимание при принятии решения о приобретении данной платы (весьма привлекательной в остальных отношениях). Однако даже без привлечения САПР XPS на базе ПЛИС XC2VP30 (с 136 блоками умножения и около 2,5 Мбит блочной памяти) могут быть получены достаточно впечатляющие результаты по производительности.
Следующая плата, ML-403, построена на базе ПЛИС самого современного семейства Virtex-4FX (рис. 4). Ее архитектура несколько иная, однако функциональные возможности в целом сопоставимы, а цена существенно ниже.
Плата имеет следующее оборудование:
- установленная ПЛИС: XC4VFX12-FF668-10C;
- источники тактового сигнала: генератор 100 МГц, 2 разъема для внешнего тактового сигнала;
- память: 64 Mбайт DDR SDRAM, 8 Mбайт ZBT SRAM, 64 Mбайт Flash, 4 кбайт IIC EEPROM;
- интерфейсы и разъемы: 2 разъема PS/2 (клавиатура, мышь), вход и выход аудио (In/Out, Microphone, Head Phone), порт RS-232, 3 порта USB (2 Peripheral/1 Host), разъем программирования JTAG, DB 15 VGA, 10/100/1000 RJ-45 Ethernet, 64-битный разъем для пользовательских сигналов, набор переключателей, кнопок и светодиодов;
- символьный LCD 16×2.
Разъемы VGA, клавиатуры и мыши позволяют создать на базе ML-403 одноплатный компьютер с процессором PowerPC без необходимости использования дополнительного контроллера дисплея в стандарте PCI 2.3, как этого требует ML-310. Кроме того, соединительный разъем, примененный в этой плате (на рис. 4 — на правом крае), значительно удобнее для использования, чем разъем для дифференциальных сигналов. Наконец, присутствие на плате переключателей, кнопок и светодиодов дает возможность проверить работоспособность простейших цифровых узлов без создания тестовых последовательностей или использования дополнительного оборудования. Отсутствие слотов для памяти или стандартных карт расширения компенсируется сбалансированным набором периферийного оборудования и возможностью подключения внешних пользовательских устройств. Таким образом, данная плата хорошо подходит для начала работы с PowerPC, позволяя собрать систему на кристалле и изучить ее характеристики применительно к условиям разработчика. С данной компоновкой и набором оборудования выпускаются также платы на базе других подсемейств Virtex-4: LX и SX.
При выборе между представленными продуктами необходимо иметь в виду, что цена ML-403 в несколько раз ниже, чем ML-310. Список продуктов на базе ПЛИС с процессором PowerPC можно было бы и продолжить, однако приведенные примеры относятся к наиболее типичным представителям плат, гарантированно поддержанных САПР Xilinx и позволяющих наглядно продемонстрировать работу систем на кристалле при относительно невысокой стоимости.
В заключение можно не столько рассмотреть вопросы применения систем на кристалле на базе ПЛИС, сколько констатировать, что эта тема очень сложна и обширна. Бурный рост рынка ПЛИС и методик разработки цифровых устройств на их базе не позволяет даже дать сколько-нибудь подробный анализ сфер их применения и оценить реальную эффективность систем на кристалле в тех или иных задачах. Видимо, можно указать, что основным свойством ПЛИС, привлекающим разработчиков, является большое количество программируемых ресурсов, которые позволяют организовать параллельные вычислительные системы, производительность которых в итоге превышает производительность сигнальных процессоров, аналогичных по сложности и цене. Вместе с тем размещение на кристалле ПЛИС аппаратного процессорного ядра делает эти продукты привлекательными не только для электронных инженеров, но и для программистов, основным инструментом которых может быть язык программирования высокого уровня. В целом рассмотрение продуктов, сочетающих на одном кристалле высокопроизводительный процессор и программируемые элементы, позволяет сделать вывод, что на рынке микроэлектроники сформировалось интересное направление продуктов, которые могут вызвать интерес как программистов, так и разработчиков программируемой электроники.
Литература
- Тарасов И. Эволюция ПЛИС серии Virtex // Компоненты и технологии. 2005. № 1.
- Gould J. Faster and More Flexible Embedded Systems // Xcell journal. i. 54. 3rd Quarter 2005.
- UltraController II: Minimal Footprint Embedded Processing Engine. Xilinx Application Notes № 575.