Онлайн ПЛИС лаборатория для цифрового интерактивного проектирования

Источник: https://www.researchgate.net/ publication/ 237336992_Online_ FPGA_laboratory_for_interactive _digital_design

Авторы:

Joar Rusten, UniK – University Graduate Center, Norwegian University of Science and Technology, N-2027 Kjeller, Norway, joarolai@unik.no Sigbjorn Kolberg, UniK – University Graduate Center, Norwegian University of Science and Technology, N-2027 Kjeller, Norway, kolberg@unik.no

Автор перевода: Ленч В. С.

Реферат – последние достижения в области цифровой электроники оказали огромное влияние на обучающее окружение студентов, обучающихся цифровому проектированию. До сих пор, Программируемые Логические Интегральные Схемы (ПЛИС), были использованы на небольших печатных платах, которые включают кнопки и небольшие интерактивные функции. Увеличение доступности компьютерных стендов с большими ПЛИС позволяет студентам ощутить мощь настройки реальных устройств с помощью удаленных лабораторий. Удаленные лаборатории в других дисциплинах были предметом развития в течение нескольких лет и доказали свою эффективность в создании аппаратных ресурсов, доступных для большинства студентов. Наша лаборатория основывается на Веб службах (Web Services) и Java технологиях, расширяющих гибкость хостинга приложений и предоставляет доступ к интерфейсам на разных уровнях. Remote Method Invocation (RMI) интерфейс более высокого уровня для JAVA, разработанный для взаимодействия пользователя с системой. Модуль обучения называется One Instruction Computer Laboratory (OICLab) и представляет собой пользовательский интерфейс, сопоставимый с общепринятыми цифровыми тренажерами. Специально разработанный тренажер позволяет пользователям сравнивать моделирование и физическое исполнение в режиме реального времени OIC. Дальнейшее развитие, обучающих, модулей в цифровом проектировании поможет студентам понять то, как языки высокого уровня преобразуются в логические операции.

Ключевые слова - Программируемые логические интегральные схемы, ПЛИС, удаленная лаборатория, Веб службы, цифровое проектирование

ВВЕДЕНИЕ

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

Электроника лаборатории основанной на экспериментах, выполненных непосредственно на лабораторном оборудовании, может в некоторых случаях предлагать слишком мало гибкости для студентов и преподавателей. Это обычно обусловлено ограниченными возможностями аппаратных средств и компромисс с качеством оборудования. C введением удаленных лабораторий на базе международных стандартов сети, ограниченное количество высококачественного лабораторного оборудования можно использовать несколькими студентами одновременно, сводя к минимуму потребность в специализированных лабораторных установках. Несколько институтов, занимающихся электронными дисциплинами имели хороший опыт в использовании удаленных лабораторий [1]. При таком сценарии, выполнение студентами лабораторных упражнений будет полностью независимо от местоположения и времени, и поэтому это позволит свободно выполнять неограниченное количество эксперементов, где и когда они пожелают. Удаленные лаборатории, которые реализуют стандартные интерфейсы Web-сервисов легко могут быть предметом торговли между учебными заведениями, что помогает быстрому расширению лабораторных упражнений, а также введению новых отношений между участниками, студентами, преподавателями и разработчиками этих удаленных лабораторий [2]. Когда используются удаленные лаборатории, учителя могут легко интегрировать и демонстрировать лабораторные упражнения непосредственно на лекциях, проходящих в традиционных аудиториях или даже преподавать эти упражнения через удаленные лекции для глобальной аудитории.

Создание специального вычислительного блока под названием One Instruction Computer (OIC) был разработан как обучающий модуль для лаборатории, OICLab [3]. В то время, как OIC требует дополнительной инфраструктуры, фреймворк, состоящий из компилятора, симулятора и эмулятора был создан для поддержки распространения этого конкретного применения. Результат проекта имеет важные образовательные преимущества, связанные с проектированием микропроцессоров. Эти свойства могут быть использованы в лекциях, которые преподаются в цифровых курсах проектирования и курсах компьютерной архитектуры.

OIC - УЧЕБНЫЙ МОДУЛЬ

Предлагаемый модуль обучения основан на специальном микропроцессоре, который реализуется на FPGA. Микропроцессор имеет только одну команду; и поэтому называется OIC. Основной функциональной инструкцией является вычитание и называется SABON - Subtract And Brunch On Negative. Из-за простого набора команд, это приложение особенно хорошо подходит для обучения и преподавания основ проектирования микропроцессоров.

OIC СИСТЕМА

Лаборатория OICLab состоит из трех основных компонентов, один или несколько клиентских компьютеров, сервер клиента, и сервера аппаратного обеспечения (Рисунок 1). Пользователь получает доступ к лаборатории с компьютера клиента через специальный Java-апплет называемый OICApplet, реализованный в стандартизированной веб-странице HTML. Это приложение связано с сервером клиента через сервлет Java под названием OICServlet, который содержит несколько системных специфических программно-разработанных инструментов для процессора OIC. Один из таких инструментов дополнительно подключен к серверному аппаратному обеспечению, косвенно подключающего пользователя к лабораторному оборудованию, и установленному там OIC процессору.

Структурная схема OICLab
Рисунок 1 – Структурная схема OICLab

OICApplet является пользовательским интерфейсом лаборатории OICLab, который включен в веб-страницу, чтобы оптимизировать гибкость для удаленных пользователей. Лаборатория организована в качестве рабочей области, аналогично предлагаемой Microsoft Windows®, где программы могут быть инициированы из специального меню и выполняться в отдельных окнах, которые могут перестраиваться и управляться пользователем. OICApplet в настоящее время предлагает следующие программы: файловый менеджер, текстовый редактор со встроенным ассемблером, симулятор и эмулятор. Каждому пользователю OICLab назначается учетная запись пользователя на сервере клиента, где выделяется домашний каталог, созданный для каждого пользователя. Этот каталог содержит лабораторные специальные файлы, созданные и создаваемые пользователем. Этими файлами можно удаленно управлять из OICApplet'a путем использования программы файлового менеджера. Ни одна программа, расположенная в OICApplet, включая файловый менеджер, не способна манипулировать или даже получить доступ к файлам, расположенным на компьютере клиента, устраняя тем самым возможность того, что OICApplet может навредить пользователям локального компьютера. OICApplet связывается с OICServlet, размещенным на сервере клиента, через OICRmi, которая представляет собой систему конкретной схемы связи на основе HTTP, где дистанционные методы, расположенные в OICServlet, могут быть вызваны из OICApplet с сериализуемыми объектами в качестве аргументов.

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

Аппаратное обеспечение сервера содержит интерфейс для разработки ПЛИС платы и процессора OIC. Этот интерфейс состоит из родного Microsoft Windows® COM+ компонента реализуемого с помощью SOAP веб-службы C# под названием OIC.NET, смотрите рисунок 1. OIC.NET предлагает RMI для изменения поведения OIC процессора, например, способы изменения содержания OIC памяти и утверждения внешних управляющих сигналов по отношению к процессору, например сигнала сброса. Эти методы затем вызываются из OICServlet, напрямую подключив компьютер клиента к аппаратному серверу и OIC процессору. С помощью предлагаемой архитектуры удаленного доступа, мы устраняем необходимость в нескольких аппаратных случаях путем введения алгоритма планирования для доступа к оборудованию.

OIC СИМУЛЯТОР

Моделирование выполняется в два этапа на основе исполняемого файла, выбранного во встроенном файловом менеджере программы симулятора. Первый этап моделирования выполняется на сервере клиента в OICServlet, где содержимое выбранного исполняемого файла размещается в контейнере виртуальной памяти, который отгружается обратно на компьютер клиента. Второй этап моделирования выполняется в программе симулятора на компьютере клиента, который визуализирует поведение процессора в соответствии с содержимым контейнера виртуальной памяти. Разные части внутренней структуры процессора могут быть выбраны в симуляторе, и далее рассматривать в непрерывном и в ручном (ступенчатом) режиме исполнения. Интерактивные функции, найденные в программе тренажера позволяют пользователям вручную изменить представление данных внутренних сигналов данных и шин в OIC процессоре. Дополнительную информацию, касающуюся поведения и структуры процессора и его внутренних компонентов, можно также получить в интерактивном режиме из программы симулятора. OIC процессор разработан с несколькими выделенными входными и выходными портами, которые могут быть доступны с помощью OIC программ. Эта функциональность также включена в программу тренажера, чтобы дать возможность пользователю взаимодействовать с этими портами посредством моделирования. Смотрите рисунок 2.

Программа моделирования
Рисунок 2 – Программа моделирования
OIC ЭМУЛЯТОР

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

Программа эмулятора. Четыре светодиода подсоединенные к OIC процессору
Рисунок 3 – Программа эмулятора. Четыре светодиода подсоединенные к OIC процессору
OIC ПРОЦЕССОР

OIC процессор, реализованный в лаборатории, основан на процессорной модели, используемой отделом компьютерных наук и технологий университета штата Пенсильвания [4]. Этот процессор, теоретически, способен выполнять любые математические и вычислительные задачи, известные в других процессорах, обогащенных гораздо большим набором команд. Тем не менее, при выборе правильной инструкции, все остальные могут до некоторой степени рассматриваться как излишние. Этот процессор выполняет вычитание с последующей условной ветвью на основе результата вычитания. Инструкция SABON задается следующим образом в OIC языке ассемблера.

name: sabon a, b, c, branch ; memory(c) = memory(a) - memory(b)

SABON-инструкция получает четыре аргумента a, b, c и branch, в дополнение к аттрибуту имени. Комментарии могут быть размещены непосредственно в ассемблерном коде, отделенного от исполняемого кода точкой с запятой. OIC процессор реализованный в этой лаборатории способен только выполнять непосредственные операции с ячейками памяти, указанных в инструкции, поскольку в нем отсутствуют как рабочие регистры, так и инструкции регистров доступа. Инструкция SABON интерпретируется как объяснено в комментарии в строке примера программы выше, где аргумент branch должен совпадать с именем атрибута инструкции, к которой программа должна перейти, если вычитание дает отрицательный результат. Если результат вычитания положительный, то процессор перейдет к следующей инструкции в программе, пропуская ветвь аргумента. Эта функция может быть использована для выполнения сложных математических и вычислительных задач, организуя несколько инструкций SABON в макросы, которые, в свою очередь, могут быть использованы в другие макросы для создания все более и более сложных задач.

OIC АРХИТЕКТУРА ПРОЦЕССОРА

Ядро OICLab процессора реализуется, относительно, простой архитектурой, и разрабатывается с использованием хорошо известных электронных блоков, используемых в ПЛИС схемах, такие как регистры, мультиплексоры и простые арифметические модули. Рисунок 4 отображает внутреннюю структуру процессорного ядра. Ядро соединяется с памятью через адресную шину, addr, и две шины данных, datain и dataout. Три первых аргумента в SABON инструкции последовательно загружаются из памяти в регистры: aa, ab и ac, соответственно. Содержимое этих регистров используется ядром тогда, когда доступные данные переменных найдены в ячейке памяти. Содержимое данных переменных найденных по адресам aa и ab загружаются в регистры da и db, соответственно, где они используются АЛУ при исполнении вычитательной части SABON инструкции. Результат вычитания поступает на шину dataout и складывается в ячейку памяти, определяемую регистром ac. После завершения вычитания, ядро загружает последний аргумент, аргумент ветвления, и далее кладет его в программный регистр счетчика, pc, если вычитание имеет отрицательный результат. Если вычитание получило положительный результат, ядро обновит программный счетчик с адресом следующей инструкции в программе, и освободит аргумент ветвления. Более детальную информацию об OIC процессоре, окружающей лаборатории, и его инструментов разработки, можно найти в источнике [5].

Ядро OIC процессора
Рисунок 4 – Ядро OIC процессора
ОБЛАСТЬ ПРИМЕНЕНИЯ OIC ЛАБОРАТОРИИ

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

ВЫВОД

Так как технологии ПЛИС развиваются, перспективы построения более сложных удаленных лабораторий увеличиваются. Ранее лаборатории с использованием ПЛИС устройств были доступны только для ручных экспериментальных исследований. Устройства также были относительно дорогими. Такой способ использования аппаратных ресурсов с доступом через Интернет дает высокие ценовые преимущества.

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

ПРИЗНАТЕЛЬНОСТЬ

Эта работа была поддержана грантом (eMerge проект [6]) Европейского Сообщества в рамках программы Сократ / Минерва. Мы также признаем предыдущую поддержку со стороны Совета Министров Северных Стран в рамках программы NORDUnet 2.

СПИСОК ЛИТЕРАТУРЫ
  1. Fjeldly, T, A, and Shur, M, S, LAB on the WEB, Running Real Electronics Experiments via the Internet , John Wiley & Sons, New York, NY 2003.
  2. Kolberg, S, and Fjeldly, T, A, Internet Laboratory with Web Services Accessibility, Advances in Technology -Based Education: Towards a Knowledge -Based Society, Proc. 2nd Int. Conf. on Multimedia ICTs in Education (m -ICTE2003) , Badajoz, Spain, Dec. 2003), A. M. Vilas, J. A. M. Gonzalez, and J. M. Gonzalez, Editors, Vol. 3, pp. 1700-1704.
  3. OICLab, Department of Electronics and Photonics, University Graduate Center at Kjeller
  4. Penn State University, Department of Computer Science and Engineering, Computer System Architecture, The One Instruction Set Computer
  5. Rusten, J, O, OIC , One Instruction Computer, Subtract And Branch On Negative, Master Thesis in Electronics and Telecommunications, University Graduate Center at Kjeller / Norwegian University of Science and Technology, 2004
  6. eMerge: a European Community project within the Socrates/Minerva program, see J. MARTINEZ, et al., eMerge, a European Educational Network for Dissemination of Online Laboratory Experiments, Int. Conf. on Engineering Education (ICEE 2003) , Valencia, Spain, July 2003, paper no. 3171.
Назад в библиотеку