Назад в библиотеку

ИССЛЕДОВАНИЕ МЕТОДОВ СОЗДАНИЯ ВИРТУАЛЬНОЙ FPGA-ЛАБОРАТОРИИ

Авторы: Беседа Д.Г., Зинченко Ю.Е.
Источник: Материалы IX международной научно-технической конференции «Информатика и компьютерные технологии – 2013» – 4-6 ноября 2013 г., Донецк, ДонНТУ, 2012.

Аннотация

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

Постановка проблемы: Сегодня для молодого инженера существует множество направлений для исследования в различных областях. Одним из самых популярных направлений в области проектирования вычислительных систем являются FPGA-технологии. Однако данная область теряет свою привлекательность для украинского студента в связи с дороговизной FPGA-схем. Поиск качественной FPGA-схемы в Украине также является трудоемкой задачей. Решить вышеупомянутые проблемы можно с помощью создания виртуальной FРGA-лаборатории, предоставив удаленный доступ к схемам. Также подобные ресурсы делают аппаратное проектирование на FPGA более удобным, так как пользователь все программирует на своем компьютере без непосредственного взаимодействия с платой. Далее ему необходимо один раз прошить свое устройство, когда прошивка будет полностью отлажена.

Анализ достижений и публикаций: Программируемая пользователем вентильная матрица (ППВМ англ. Field-Programmable Gate Array, FPGA) — полупроводниковое устройство, которое может быть сконфигурировано производителем или разработчиком после изготовления; отсюда название: «программируемая пользователем». ППВМ программируются путём изменения логики работы принципиальной схемы, например, с помощью исходного кода на языке проектирования (типа VHDL), на котором можно описать эту логику работы микросхемы. ППВМ является одной из архитектурных разновидностей программируемых логических интегральных схем (ПЛИС).[1]

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

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

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

Изложение основного материала исследования: Реализация подобного проекта делится на аппаратную и программную часть.

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

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

Реализованный ресурс должен удовлетворять следующим требованиям:

  1. Обеспечение полного непосредственного взаимодействия удаленного пользователя с конкретной FPGA-платой.
  2. Возможность работы с произвольным числом пользователей.
  3. Обеспечение масштабируемости ресурса.
  4. Проект должен быть оптимизирован по стоимости.

Общая аппаратно-программная структура виртуальной лаборатории изображена на рисунке 1.[4]

Рисунок 1 – Общая аппаратно-программная структура виртуальной лаборатории

При реализации данного проекта важным аспектом является сокращение его окончательной стоимости. Таким образом необходимо наиболее оптимально выбирать конфигурацию оборудования (производительность сервера, объем жесткого диска, оптимального количества FPGA-плат и прочей периферии и др.), выбор операционной системы сервера, соответствующих пакетов программ и др. Естественно среди программных проектов необходимо отдать предпочтение Open Source реализациям.

В качестве операционной системы следует выбрать один из дистрибутивов Linux. Сократить время работы над интерфейсом с пользователем можно за счет использования одной из бесплатных CMS (Joomla, WordPress и другие.)

На основе анализа реализованных подобных проектов необходимая организация взаимодействия сервера и FPGA-схем возможна посредством одной из модификаций JTAG-интерфейса[2]. Также необходимо проэмулировать работу различных средств схемы, требующих непосредственного взаимодействия, например кнопок и переключателей.

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

Особое внимание необходимо уделить созданию системы диспетчеризации.[3] Это необходимо, поскольку предполагается работа со случайным числом пользователей, а количество реальных плат ограничено, более того оно довольно мало в масштабах даже студентов компьютерных специальностей ДонНТУ. Необходимо организовать разделение работы со схемой во времени, то есть задать конкретные временные рамки для работы одного пользователя с конкретной схемой. По истечению этого интервала доступ к аппаратным ресурсам лаборатории ему должен быть закрыт на некоторое время. Также необходимо определить механизм идентификации всего оборудования, например согласования работы конкретной схемы и конкретной веб-камеры для определенного пользователя.

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

Из проведенных исследований выделено два варианта реализации проекта:

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

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

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

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

Список литературы
  1. http://wikipedia.org/
  2. UrJTAG. (2011) Urjtag documentation. [Online]. Available: http://urjtag.org
  3. M. Reichenbach, M. Schmidt, B. Pfundt, D. Fey « A New Virtual Hardware Laboratory for Remote FPGA Experiments on Real Hardware» 2011. С. 4
  4. Зинченко Ю.Е., Зинченко Т.А., Асланов И.Г. «»Виртуальная FPGA-лаборатория с дистанционным доступом» 2012. С. 3