УДК 004.03

Разработка Web-генератора кода VHDL для моделирования управляющего автомата с использованием технологии Java Applet


Черныш И.И., Зеленева И.Я., Лаврик А.С., Мирошкин А.Н.


Источник: ssg.donntu.ru.ua/docs/prog.pdf


Донецкий национальный технический университет г.Донецк

Кафедра компьютерных наук и технологий

E-mail: IgorChernysh22@gmail.com

Аннотация

Черныш И.И., Лаврик А.С., Мирошкин А.Н.. Разработка Web – генератора кода VHDL для моделирования управляющего автомата с использованием технологии Java Applet. В статье рассматривается вопрос выбора наиболее оптимального УА для реализации заданного алгоритма. В качестве среды разработки был выбран язык программирования Java. Одним из критериев проекта было реализация его как web приложения. Следовательно для реализации была выбрана технология Java Applet, позволяющая создавать полноценные web – приложения без необходимости скачивания их на ПК.


Введение

На сегодняшний день просматривается мощная тенденция в сторону развития web технологий. Одной из главных задач этого направления является перенос функциональных блоков обработки на сервер, а также максимальное упрощение интерфейса пользователя [1, 2]. В результате пользователю предоставляется система, в которой простые команды становятся следствием выполнения сложных алгоритмов, требующих затраты большего количества ресурсов. Эти затраты полностью переносятся на сервер, что практически не сказывается на ресурсах ПК. Java Applet используются для предоставления интерактивных возможностей веб-приложений, которые не могут быть предоставлены HTML [1, 2]. Так как байт-код Java платформонезависим, то Java Applet могут выполняться с помощью плагинов браузерами многих платформ, включая Microsoft Windows, UNIX, Apple Mac OS и GNU/Linux. Такие программы с открытым исходным кодом, как applet2app, могут быть использованы для преобразования апплета в самостоятельные программы на Java или исполняемые файлы Linux и Windows [1, 2].

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

В качестве предметной области в данной работе рассматриваются структуры устройств управления.

Одним из методов реализации устройства управления цифровой системы является использование модели композиционного микропрограммного устройства управления (КМУУ) [3, 4].


Актуальность темы

Важнейшей частью любого цифрового устройства является управляющий автомат. Устройство управления может быть реализовано в виде автомата с программируемой логикой или автомата с жесткой логикой. В последнее время все чаще для реализации управляющих автоматов с жесткой логикой применяются программируемые логические интегральные схемы (ПЛИС).

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

Связующим звеном между конечным автоматом и аппаратной реализацией автомата является ПЛИС.

Active-HDL в своей программной реализации имеет средства для создания и редактирования FSM-структур (finite state machine, конечный автомат). Основная идея автоматной реализации – это описание процесса в виде граф-схемы с генерацией программного кода на языке VHDL или Verilog, с последующей возможностью синтеза полученного кода на заданной ПЛИС.

В настоящее время рост использования ПЛИС для реализации автоматов приостанавливается дороговизной микросхем. Поэтому конструкторам-программистам приходится решать задачу уменьшения аппаратных затрат (в данном случае – площадь кристалла ПЛИС или число вентилей) с большими затратами времени разработки.

Существует множество методов уменьшить аппаратные затраты путем использования дополнительных элементов (например мультиплексоров, ППЗУ), которые придают алгоритму гибкость автомата с программируемой логикой (АПЛ) и скорость автомата с жесткой логикой (АЖЛ).

Сравнительные результаты параметров синтезированных устройств при одинаковых исходных граф-схемах, реализованные средствами FSM A-HDL(finite state machine) и посредством структурного описания результирующей схемы, показывают определенное уменьшение числа используемых элементов FPGA при реализации вторым способом.

Недостаток FSM-редактора A-HDL– генерация программного кода в поведенческом стиле, что делает невозможным предсказать результат синтеза. Структурное же описание схемы, полученной в результате тривиальной реализации, дает возможность предсказания результатов еще до синтеза – на этапе генерации программного кода, что дает возможность генерировать код для кристалла или числа вентилей FPGA заданной размерности.


Научная значимость исследования.

Научная значимость исследования для нашего проекта заключается в определении наиболее оптимального управляющего автомата для реализации заданного алгоритма. Алгоритм задается в виде граф-схемы (ГСА). Интерфейс пользователя содержит в себе все графические компоненты, из которых в процессе обработки строится ГСА. Параллельно с этим процессом генерируется XML-файл, содержащий информацию об алгоритме(количество операторных и условных вершин, структура ГСА), который в итоге пересылается на сервер. На сервере в соответствии со статистикой в базе данных выполняется анализ XML–файла и подбирается управляющий автомат наиболее подходящий для реализации предложенного пользователем алгоритма. В ответ с сервера пользователю приходит ссылка на VHDL-файл, являющийся моделью выбранного типа УА.

Для интерпретации ГСА Г можно использовать модель КМУУ с общей памятью [29]. (Рис.1).

Структурная схема КМУУ с общей памятью

Рисунок 1 - Структурная схема КМУУ с общей памятью.

Это устройство функционирует следующим образом. По сигналу Start в счётчик СТ загружается нулевой адрес первой микрокоманды микропрограммы, соответствующей ГСА Г. Одновременно триггер выборки TF устанавливается в единичные состояния (Fetch=1). Очередная микрокоманда (МК) выбирается из управляющей памяти СМ. Если эта МК соответствует вершине bq Og, то одновременно с набором микроопераций Y(bq) формируется переменная y0=1. Если y0=1, то содержимое СТ увеличивается на 1 по сигналу Clock это соответствует режиму (3), то есть переход происходит внутри некоторой операторной линейной цепи (ОЛЦ) g С. Если bq=Og, то переменная y0=0. В этом случае комбинационная схема СС формирует функции возбуждения СТ.

Ф=Ф(Т,Х) необходимые для загрузки в СТ адреса входа некоторой ОЛЦ. Адрес устанавливается в СТ по сигналу Clock. Если , где bE - конечная вершина ГСА Г, то формируется переменная yE=1. Если yE=1, то триггер TF устанавливается в нулевое состояние (Fetch=0). В этом случае выборка микрокоманд из СМ прекращается и КМУУ U1 прекращается.

Очевидно, данное КМУУ является автоматом мура, т.к. выходные сигналы y0, yE и Y зависят только от содержимого СТ. При этом адрес микрокоманды может рассматриваться, как код состояния автомата. Однако в отличии от классического автомата Мура, память КМУУ реализуется на счётчике.

Пример решения задачи

Рассмотри пример синтеза КМУУ по ГСА Г1 (рис.4.)

Исходная ГСА Г1

Рисунок 4 - Исходная ГСА Г1

Используя методы из [4], можно получить множество С={a1, a2, a3}, где d1={b1,b2} I =b1, I =O1=b2; a2={b3, b4, b5}, I =b3, I =b4, O2 = b5; a3=={b6, b7, b8}, I =b6, O3=b8. Итак, G=3, M=8, R=3, T={T1, T2, T3}, ={D1, D2, D3}, X={x1, x2}, L=2, Y={y1, y2, y3, y4, y5, y6}, N=6, I( )={b1, b2, b3, b4, b6}, O( )={b2, b5, b8}, C1={a1, a2}.

Естественная адресация микрокоманд [3] позволяет получить следующие адреса: A(b1)=000, A(b2)=001, …, A(b8)=111. Формулы перехода строятся для выходов ОЛЦ , то есть для О1 и О3. Эта система имеет следующий вид: O1 > x1 b3 x2 b4 b6.

Система имеет H=4 терма, следовательно, таблица переходов КМУУ имеет H=4 строки (Табл.1).

Таблица 1 - Таблица переходов КМУУ

Таблица переходов КМУУ

Из таблицы 2 формируется система формул переходов, имеющая следующий вид для U1 (Г1):

Содержимое управляющей памяти КМУУ показано в Табл.2, имеющей М=8 строк.

Таблица 2 - Содержимое управляющей памяти КММУ

Содержимое управляющей памяти КММУ

На следующем шаге решения данной задачи выполняется формирование XML-файла, который содержит информацию по исходной ГСА. Содержимое XML-файла приведено на рисунке 5.

Содержимое  XML файла

Рисунок 5 - Содержимое XML-файла"

На следующем шаге выполняется выполняется посылка этого файла на сервер. На сервере в соответствии со статистикой в базе данных выполняется анализ XML–файла и подбирается управляющий автомат, наиболее подходящий для реализации предложенного пользователем алгоритма. В ответ с сервера пользователю приходит ссылка на VHDL-файл, являющийся моделью наиболее подходящего УА.

Процесс разработки УА на ПЛИС изображен на рисунке 6

Рисунок 6 - Процесс разработки УА на ПЛИС

Практическая ценность результатов работы

В результате тестирования работы программы были получены следующие данные. В качестве входного параметра были взятии три граф-схемы: граф-схема на 5 состояний, 3 входных сигнала, 6 выходных сигналов, проверки условия не повторяются; граф-схема на 15 состояний, 3 входных сигнала, 6 выходных сигналов, проверки условия не повторяются; граф-схема на 35 состояний, 3 входных сигнала, 6 выходных сигналов, проверки условия не повторяются.

Синтез устройств на интегральной схеме Xilinx CoolRunner XPLA3:

Таблица 1 - Результат синтеза


Рисунок 1 - Диаграмма сравнения


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

Результаты, полученные с помощью САПР СУА, показывают, что средства синтеза имеют достаточно развитые алгоритмы поиска во входном VHDL-коде структур конечных автоматов. А некоторые типы ПЛИС имеют вентили, позволяющие упростить аппаратную структуру генерируемого кода. Благодаря чему поведенческий метод не уступает тривиальному. Но это верно не для всех типов ПЛИС.

Заключение

В результате выполнения задачи получается VHDL–файл и статистика, по которой можно наглядно определить наиболее оптимальные архитектуры УА для реализации алгоритмов управления, заданных пользователя. Так как приложения реализовывается на java с использованием технологии Java Applet, в итоге получается кросплатформенное приложение, т.е. приложение, работающее в любой операционной системе.

Литература

  1. Кей С. Хорстман, Гарри Корнелл «Java 2. Библиотека профессионала»;

  2. Г. Шилдт «Полный справочник по Java»;

  3. Баркалов А.А. Микропрограммное устройство управления как композиция автоматов с программируемой и жёсткой логикой. Автоматика и вычислительная техника, 1983, №4.-с.36-41.

  4. Barkalov A.A., Titarenko L.A. Synthesis of operational and control automate.- Donets’с: Untech, 2005.-25pp.

  5. Maxfield C. The Design Warrior’s Guide for FPGA.-Amsterdam: Elsevier, 2004.-541 p.

  6. Smith M. Application – Specific Integrated Circuits. - Boston: Addison - Wesley, 1997.-836 pp.

  7. Baranov S. Logic Synthesis for Control Automate.- Boston: Kluwer Academic Publishers, 1984.-312pp.