Авторы: Беседа Д.Г., Зинченко Ю.Е.
Источник: Материалы 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.[4]
При реализации данного проекта важным аспектом является сокращение его окончательной стоимости. Таким образом необходимо наиболее оптимально выбирать конфигурацию оборудования (производительность сервера, объем жесткого диска, оптимального количества FPGA-плат и прочей периферии и др.), выбор операционной системы сервера, соответствующих пакетов программ и др. Естественно среди программных проектов необходимо отдать предпочтение Open Source реализациям.
В качестве операционной системы следует выбрать один из дистрибутивов Linux. Сократить время работы над интерфейсом с пользователем можно за счет использования одной из бесплатных CMS (Joomla, WordPress и другие.)
На основе анализа реализованных подобных проектов необходимая организация взаимодействия сервера и FPGA-схем возможна посредством одной из модификаций JTAG-интерфейса[2]. Также необходимо проэмулировать работу различных средств схемы, требующих непосредственного взаимодействия, например кнопок и переключателей.
Многие схемы имеют дисплеи и диодные подсветки, что также необходимо отобразить удаленному пользователю. Последнее возможно реализовать путем полной визуализации схемы, например установив веб-камеру над каждой из FPGA-плат. В этом случае необходимо обеспечить ширину канала для передачи видеопотока.
Особое внимание необходимо уделить созданию системы диспетчеризации.[3] Это необходимо, поскольку предполагается работа со случайным числом пользователей, а количество реальных плат ограничено, более того оно довольно мало в масштабах даже студентов компьютерных специальностей ДонНТУ. Необходимо организовать разделение работы со схемой во времени, то есть задать конкретные временные рамки для работы одного пользователя с конкретной схемой. По истечению этого интервала доступ к аппаратным ресурсам лаборатории ему должен быть закрыт на некоторое время. Также необходимо определить механизм идентификации всего оборудования, например согласования работы конкретной схемы и конкретной веб-камеры для определенного пользователя.
Проектируя любую компьютерную систему необходимо предусмотреть ее масштабируемость и расширяемость. Потенциал данного проекта довольно велик и в последствии данный ресурс может увеличить количество плат, а возможно и добавить функционал взаимодействия пользователей с другими видами периферийных устройств.
Из проведенных исследований выделено два варианта реализации проекта:
Оба варианта обладают взаимными преимуществами и недостатками. Первый вариант не требует дополнительных затрат, однако, будет влиять на быстродействие работы программы. Второй вариант не будет оказывать воздействие на пользовательскую программу, однако требует дополнительных материальных затрат на реализацию.
Выводы: В результате проведенного исследования было определено базовое оборудование для реализации виртуальной FPGA-лаборатории. Была составлена общая аппаратно-программная структура виртуальной лаборатории. Были определены и обоснованы основные требования к проекту. При самой реализации необходимо производить тщательный анализ всех программных и аппаратных продуктов с целью минимизации полной стоимости реализации ресурса.
Перспективы дальнейших исследований: При дальнейшей реализации данного проекта необходимо детальное изучение интерфейсов аппаратно-программного взаимодействия с целью оптимизации стоимости и производительности ресурса. При успешной реализации данного проекта возможно создание специализированных курсов для обучения инженеров работе с аппаратными средствами.