ИССЛЕДОВАНИЕ ОРГАНИЗАЦИИ УДАЛЕННОГО ДОСТУПА К FPGA-ЛАБОРАТОРИИ
В.С. Ленч (КСм-15 КИ), В.А. Гень (СПм-14 КИ), Ю.Е. Зинченко к.т.н. доц., А.В. Коваль, асс.
В данной статье описываются способы организации удаленного доступа средствами Интернет к управлению комплексами программируемых логических интегральных схем.
Постановка проблемы. Программируемые логические интегральные схемы (ПЛИС, англ. FPGA – Field Programmable Gate Arrays) широко развиваются и имеют преимущества над обычными интегральными схемами, за счет того, что логика работы не определяется при изготовлении, а задается посредством программирования на специальных языках описания аппаратуры: Verilog, VHDL. ПЛИС применяется для построения устройств с большим количеством портов ввода-вывода, устройств, выполняющих цифровую обработку сигналов, устройств, выполняющих передачу данных на высокой скорости и т.д. [1]. Однако комплексы ПЛИС, предназначенные для тестирования и отладки FPGA-проектов, достаточно дороги для приобретения вузами в достаточно больших объемах и для частного приобретения студентами, что сдерживает эффективность обучения в области FPGA-технологий проектирования. Поэтому появилась идея создать централизованную виртуальную лабораторию с подобными платами и обеспечить к ним удаленный доступ средствами Интернет.
Постановка задачи. Необходимо организовать удаленный доступ к FPGA-комплексам для частных лиц (студентов, слушателей курсов и частных разработчиков), занимающихся обучением и проектированием в области FPGA-технологий. Для этого нужно создать web-ресурс, который будет обеспечивать безопасный доступ к отладочному стенду, визуализировать работу стенда и управлять сеансом доступа. Необходимо, как визуализировать различные состояния отладочного комплекса, так и обеспечить видеотрансляцию в реальном времени. Управление должно заключаться в загрузке конфигурационного файла на сервер, который его обработает и загрузит в FPGA-комплекс. Также нужно обеспечить имитацию работы периферийных устройств, подключаемых к комплексу, такие как мышь, клавиатура и др.
Изложение основного материала исследования. Данный проект делится на две части клиентскую и серверную. Так как удаленный доступ организуется с помощью Интернет, то обмен с сервером будет происходить по протоколу HTTP. Таким образом, интерфейс пользователя будет написан при помощи языков HTML, CSS и JavaScript, а на стороне сервера будут работать сценарии на PHP, которые будут взаимодействовать с базой данных и отладочным FPGA-комплексом при помощи программного обеспечения фирмы Xilinx. Организация видеотрансляции планируется с помощью технологии коммуникации в реальном времени WebRTC (real-time communications ), которая предназначена для передачи потоковых данных между браузерами или другими приложениями по технологии точка-точка [2]. Технология WebRTC встроена в большинство современных браузеров, поэтому нет необходимости использовать дополнительное программное обеспечение.
Для корректной организации доступа к плате необходимо предусмотреть множественный доступ. Естественно, в плату нельзя одновременно установить несколько прошивок, поэтому на стороне сервера должна быть реализована система очереди, которая позволила бы пользователю без лишних задержек получить доступ к плате. Для этого, после отправки конфигурационного файла, система должна проверять, не занята ли система, и, если не занята, то записывать данные на плату, иначе ожидать завершения текущего сеанса работы с платой и после этого записывать новые данные. Во время ожидания освобождения платы, любой пользователь должен иметь возможность следить за состоянием платы и состоянием очереди конфигураций. Такой подход множественного доступа может привести к уменьшению срока службы отладочного стенда, поэтому по возможности рекомендуется предоставлять доступ к нескольким платам.
Чтобы организовать доступ к нескольким FPGA-комплексам необходимо учитывать возможные нагрузки на сервер, так как помимо обработки данных для нескольких плат необходимо будет еще и передавать видеопоток с нескольких камер. Также для объединения комплексов в одну систему для подключения к единому серверу необходим коммутатор. Предлагается обеспечивать управление платой FPGA при помощи USB-кабеля, поэтому нет необходимости создавать коммутатор, можно воспользоваться устройством usb-hub. Недостаток этого способа множественного доступа состоит в том, что он ресурсозатратный, но менее подвержен к износу оборудования.
На основе анализа реализованных проектов, организация взаимодействия сервера и FPGA-комплексов возможна посредством одной из модификаций JTAG-интерфейса [3].
Для имитации работы периферийных устройств рациональнее всего будет создать модели эмулирования портов схемы. Данную модель необходимо реализовать на языке описания аппаратуры (VHDL или Verilog). После этого необходимо дополнить пользовательский проект созданными моделями. Структура организации удаленного доступа к виртуальной FPGA-лаборатории приведена на рисунке 1.
Проектируя любую компьютерную систему необходимо предусмотреть ее масштабируемость и расширяемость. Потенциал данного проекта довольно велик и в последствии данный ресурс может увеличить количество плат, а возможно и добавить функционал взаимодействия пользователей с другими видами периферийных устройств.
Цель данного проекта – тестирование и отладка реальных проектов на платах, следовательно, необходимо обеспечить отображение результатов работы разработанных пользователем HDL- и С-программ, погруженных в FPGA, т.е. обеспечивать отладку FPGA-проектов на аппаратном уровне. Данную информацию предоставляют порты ввода/вывода FPGA-плат. Из проведенных исследований выделено два варианта реализации данной задачи:
- Создание программного модуля, который будет параллельно опрашивать все порты ввода/вывода. Далее этот модуль должен быть преобразован в конфигурационный поток данных для FPGA, так называемый
BitStream
. При загрузке пользовательского BitStream на сервер к нему необходимо добавить сгенерированный BitStream опроса портов ввода/вывода. Далее эту информацию необходимо предоставить непосредственно пользователю. В связи с большим числом портов и скоростью восприятия и анализа информации человека необходимо дополнительно генерировать файлы, для удобства работы с ресурсом. - Создание и программирование устройства, которое будет иметь доступ к каждому порту ввода/вывода FPGA-комплекса. Далее информация будет также выдаваться пользователю.
Оба варианта обладают взаимоисключающими преимуществами и недостатками. Первый вариант не требует дополнительных затрат, однако, будет влиять на быстродействие работы программы. Второй вариант не будет оказывать воздействие на пользовательскую программу, однако требует дополнительных материальных затрат на реализацию.
Вывод. В результате проведенного исследования было определено базовое оборудование для реализации виртуальной FPGA-лаборатории. Была составлена структура взаимодействия ресурса с удаленным пользователем. Определены и обоснованы также основные требования к проекту. При самой реализации необходимо производить тщательный анализ всех программных и аппаратных продуктов с целью минимизации полной стоимости реализации ресурса.
Перспективы дальнейших исследований. Дальнейшей реализации данного проекта предполагает детальное изучение интерфейсов аппаратно-программного взаимодействия с целью оптимизации стоимости и производительности ресурса. При успешной реализации данного проекта возможно создание специализированных курсов для обучения инженеров работе с аппаратными средствами. Результаты работы планируется внедрить при создании виртуальной FPGA- лаборатории, в рамках которой накоплен достаточный задел как в области FPGA-технологий проектирования в целом, так и в учебном процессе [4-9].
- https:// ru.wikipedia.org/ wiki / ПЛИС
- https:// ru.wikipedia.org/ wiki/ WebRTC
- M. Reichenbach, M. Schmidt, B. Pfundt, D. Fey « A New Virtual Hardware Laboratory for Remote FPGA Experiments on Real Hardware» 2011. С. 4
- Зінченко Ю.Є., Зінченко Т.А., Асланов І.Г.. Віртуальна FPGA-лабораторія з дистанційним доступом / Матеріали III Всеукраїнської школи-семінару молодих вчених і студентів «Сучасні комп’ютерні інформаційні технології» 17-18 травня 2013 року. Тернопіль, ТНЕУ, 2013, 88с.
- Беседа Д.Г. Зинченко Ю.Е. Исследование подходов создания виртуальной FPGA-лаборатории / Материалы ІХ межд. н/т конф. "ИКТ-2013", Донецк: ДонНТУ – 2013. – С. 11-14
- 7.Зинченко Ю., Калашников В., Хайдук С., и др. FPGA-технологии проектирования и диагностика компьютерных систем в ДонНТУ/ Сборник научных трудов VI Междунар. научн.-практ. конф. «Современные информационные технологии и ИТ-образование». - Москва: МГУ, 2011. - Т. 1. 787 С. 422-429, ( http:// conf.it-edu.ru/ conference/ 2011/ works)
- Зинченко Ю., Тарасенко А., Маркитантов В., Прокопченко В., Мирошников А., Рытов А.. HDL&FPGA–технологиии проектирования диагностического обеспечения на их основе / Материалы международной научно–технической конференции «Эффективность инженерного образования в XXI веке» 29 мая – 31 мая 2001 года». Донецк, ДонГТУ, 2001, 14c.
- Зинченко Ю., Калашников В., Хайдук С., и др. FPGA-технологии проектирования и диагностика компьютерных систем в ДонНТУ / Сборник научных трудов VI Междунар. научн.-практ. конф. «Современные информационные технологии и ИТ-образование». - Москва: МГУ, 2011. - Т. 1. 787 С. 422-429, ( http:// conf.it-edu.ru/ conference/ 2011/ works)
- Зинченко Ю.Е., Корченко А.А., Масюк А.Л. и др. Автоматизированное решение задач при проведении тестирования / Сборник научных трудов 8-й Международной конференции «ВИРТ-2004» Украинской ассоциации дистанционного образования. –Харьков-Ялта: УАДО, 2004.