photo

Автореферат


по теме:
"Разработка методов синтеза микропрограммных автоматов Мили с кодированием объектов"

составил: Костянок Татьяна Николаевна
e-mail: le_chaton@list.ru

Общее
Главная



Украинский
Английский

Университет

Биография
Автореферат
Библиотека
Ссылки
Отчет о поиске
Индив. задание

Содержание


Введение
Цели и задачи
Научная новизна и практическая ценность
Существующие исследования
Обзор существующих разработок по теме
Текущие и планируемые результаты
Заключения и выводы
Список источников

Введение


Принцип микропрограммного управления был предложен в 1951 г. М. Уилксом и предполагает наличие в любой цифровой системе устройства управления (УУ), которое координирует все блоки системы. Исполнительная часть системы, которая выполняет обработку данных, называется операционным автоматом (ОА), а цифровая система в целому называется операционным устройством. Алгоритм работы системы задается одним из формальных методов, на практике инженерного проектирования наиболее широко используется язык граф-схем алгоритмов (ГСА).
В операционных вершинах ГСА записываются наборы микроопераций Yt, где Y={y1,...,yn} – множество микроопераций, которые инициируют заданный вид обработки данных в ОА.
В условных вершинах ГСА записываются логические условия Xt, где X = {x1,...,xL} – множество исходных сигналов ОА, которые идентифицируют состояние процесса обработки информации. Структура операционного устройства приведена на рис. 1.1.


Рисунок 1.1. Структурная схема операционного устройства (анимированный рисунок)

Алгоритм управления системой задается кодом управления, которое поступает в УУ из внешней среды. Алгоритм управления ОА называется микропрограммой, откуда и пошло название принципа М. Уилкса.
Итак, мы имеем схему, которая состоит из двух независимых устройств. Мы можем заменять как УУ так и ОА не разрушая трудоспособности системы, при условиях сохранения протокола взаимодействия (сигналы могут иметь другое значеня, но их количество должна сохраняться). Например, есть возможность использовать одно и то же управляющее устройство для разных процессов (при условии сходности алгоритма работы), или заменить его на другое (при изменении условий протекания технологического процесса).

Цели и задачи


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

Научная новизна и практическая ценность


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

Существующие исследования


Об актуальности темы конечных автоматов (УА) свидетельствует наличие редакторов FSM (finite state machine) в таких продуктах как AHDL и Riviera. Наиболее распространенными среди языков описания аппаратуры являются языки VHDL и Verilog. Однако непосредственная реализация управляющих автоматов на этих языках является трудоемким процессом. Поэтому в состав многих зарубежных САПР были включены специальные инструменты, позволяющие упростить разработку управляющих автоматов. Так в состав САПР Active - HDL фирмы Aldec включен модуль FSM. Этот модуль обладает многофункциональным графическим интерфейсом, для описания управляющих автоматов. Однако модуль FSM обладает рядом недостатков. В частности, форма записи управляющего автомата требует знания языка HDL. Подобным образом организованы системы проектирования управляющих автоматов и в других САПР.
Также FSM моделей при генерации кода не учитывают аппаратурные затраты при генерации результирующего кода, так как полагается что это будет сделано средствами синтеза, но сгенерированный код не учитывает многих особенностей реализации структуры автомата, поэтому средства синтеза часто выдают не самую оптимальную конфигурацию результирующего устройства.
Сравнительные результаты параметров синтезированных устройств при одинаковых исходных граф-схемах, реализованные средствами FSM A - HDL (finite state machine) и посредством структурного описания результирующей схемы, показывают определенное уменьшение числа используемых элементов FPGA при реализации вторым способом.
Результаты синтеза(для ПЛИС Lattice ispGDX 2 Part LX 256 V):

Таблица 1 – Результат синтеза в FSM редакторе

Таблица 2 – Результат синтеза тривиальным методом

DFF

IBUF

OBUF

AND2

INV

8 uses

2 uses

3 uses

16 uses

12 uses

DFF

IBUF

OBUF

AND2

INV

6 uses

2 uses

3 uses

12 uses

11 uses


Недостаток FSM-редактора A - HDL – генерация программного кода в поведенческом стиле, что делает невозможным предсказать результат синтеза. Структурное же описание схемы, полученной в результате тривиальной реализации, дает возможность предсказания результатов еще до синтеза – на этапе генерации программного кода, что дает возможность генерировать код для кристалла или числа вентилей FPGA заданной размерности.[4]
Что касается UML редакторов для конечных автоматов, то одной из таких разработок является исполняемый графический язык на основе SWITCH-технологий и UML-нотации – UniMod, который описывает поведение объекта с помощью графов переходов структурных автоматов с нотацией, а графы переходов строятся с помощью нотации диаграммы состояний UML.
Пакет UniMod обеспечивает разработку и выполнение автоматно-ориентированных программ. Он позволяет создавать и редактировать UML - диаграммы классов и состояний, которые соответствуют схеме связей и графу переходов, и поддерживает два типа реализации — на основе интерпретации и компиляции. В первом случае имеется возможность:
  • преобразовывать диаграммы в формат XML;
  • сполнять полученное XML-описание с помощью интерпретатора, созданного на основе набора разработанных базовых классов. Эти классы реализуют, например, такие функции как обработка событий, сохранение текущего состояния, протоколирование.

Во втором случае диаграммы непосредственно преобразуется в код на целевом языке программирования, который впоследствии компилируется и запускается.
Проектирование программ с использованием пакета UniMod предполагает следующий подход: логика приложения описывается структурным конечным автоматом, заданным в виде набора указанных выше диаграмм, построенных с использованием UML-нотации. Источники событий и объекты управления задаются кодом на целевом языке программирования. [1]
Одним из UML редакторов, позволяющих частично реализовать поставленную задачу, является Poseidon. Он удобен своим интерфейсом и генерирует приемлемый результирующий код, но его недостаток в том, что данный программный продукт имеет платную лицензию и закрытый программный код, что делает невозможным его модификацию в необходимом направлении.
Еще одним UML редактором является UMLet построенный группой разработчиков на базе платформы Eclipse, разработка охватывает весь UML, что весьма неудобно для данной обсуждаемой темы.

Обзор существующих разработок по теме


Платформа Eclipse (или просто "Платформа", когда нет риска неоднозначности) разработана и построена для выполнения следующих требований:
  • Поддержка конструирования разнообразных инструментов для разработки приложений.
  • Поддержка неограниченного ряда поставщиков инструментария, включая независимых поставщиков программного обеспечения (ISV).
  • Поддержка инструментов в манипулировании произвольным типом содержимого (т.е., HTML, Java, C, JSP, EJB, XML и GIF).
  • Обеспечение "бесшовной" интеграции инструментов c различными типами содержимого и разными поставщиками инструментария.
  • Поддержка сред разработки приложений как с графическим интерфейсом пользователя (GUI), так и без GUI.
  • Выполнение на широком спектре операционных систем, включая Windows и Linux .
  • Использование популярности языка программирования Java для написания инструментария. [5]

Принципиальная роль Платформы Eclipse состоит в обеспечении поставщиков инструментов механизмами и правилами, использование которых и следование которым приведет к бесшовной интеграции инструментов. Эти механизмы представляются через четко определенные интерфейсы, классы и методы в API. Платформа также обеспечивает полезные встроенные блоки и каркасы, которые облегчают разработку новых инструментов.
Подключение (plug-in) - наименьшая единица функциональности Платформы Eclipse, которая может быть разработана и поставлена отдельно. Обычно небольшой инструмент пишется как одно подключение, тогда как функциональность сложного инструмента разносится по нескольким подключениям. За исключением небольшого ядра, называемого Средой Выполнения Платформы (Platform Runtime Environment), вся функциональность Платформы Eclipse находится в подключениях. [5]
Подключения кодируются на языке Java. Типовое подключение состоит из кода Java в библиотеке JAR, нескольких доступных только для чтения файлов и других ресурсов, таких, как изображения, web-шаблоны, каталоги сообщений, библиотеки в кодах аппаратной платформы и т.д.. Некоторые подключения вообще не содержат кода. Одним из примеров такого подключения является подключение, которое предоставляет онлайновую помощь в форме страниц HTML. Библиотеки кодов одного подключения и информация, доступная только для чтения, располагаются вместе в каталоге файловой системы или по базовому URL на сервере. Этот механизм также предохраняет подключение от составления его из нескольких разных фрагментов, каждый из которых находится в собственном каталоге или по собственному URL. Это также и механизм для поставки раздельных языковых пакетов для интернационализированных подключений.
Пользовательский интерфейс (UI) Платформы Eclipse построен вокруг рабочего места, которое обеспечивает общую структуру и представление расширяемого UI для пользователя. API рабочего места и его реализация строится из двух инструментальных средств:
  • SWT - набор элементов и графическая библиотека, интегрированные с оконной системой базовой платформы, но независимые от API ОС.
  • JFace - инструментальное средство UI, реализованное при помощи SWT, которое упрощает общие задачи программирования UI. [5]

Текущие и планируемые результаты


Из анализа существующих проблем и требований вытекает необходимость программной реализации методов генерации структурного кода граф-автоматов и применение оптимизации этого кода.
Программный продукт должен обладать вышеперечисленными достоинствами (генерация структурного кода по заданному графу, подсчет требуемой площади кристалла и т.д.).
В ходе анализа методов оптимизации и постоянным расширением их числа появляются определенные требования к реализации программного продукта, формируется определенная структура.
Разрабатываемая система должна состоять из следующих частей:
  • Графический редактор, который реализует возможность графического отображения, редактирования и создания требуемой граф-схемы (FSM).
  • Компилятор, который дает возможность текстуального набора графа и приведение текстуального представления во внутренний язык программы (XML , XMI , или др.).
  • Генератор кода с различными оптимизаторами, которые преобразуют внутренний код графа в конкретную (Мура или Мили) реализацию автомата. [4]


Заключения и выводы


Результатом работы будет программное обеспечение, с открытым кодом и реализующая генерацию кода на языке HDL. Программный код будет сгенерирован с учетом существующих алгоритмов оптимизации управляющих автоматов и специфицирован под конкретную ПЛИС. Входными параметрами для ПО будет являться UML схема реализации управляющего автомата.

При написании данного автореферата магистерская работа еще не завершена. Окончательное завершение: январь 2007 года. Полный текст работы и все материалы по теме могут быть получены у автора или его руководителя после указанной даты.

Список источников


  1. А. А. Баркалов "Синтез устройств управления на программируемых логических устройствах" — Донецк: ДонНТУ, 2002
  2. Соловьев В.В. Проектирование функциональных узлов цифровых систем на программируемых логических устройствах. — Минск: Бестпринт, 1996
  3. Гуров В.С., Мазин М.А., Нарвский А.С., Шалыто А.А. UniMod: метод и средство разработки реактивных объектно-ориентированных программ с явным выделением состояний//МЕТОДЫ И СРЕДСТВА ОБРАБОТКИ ИНФОРМАЦИИ. – Московский государственный университет им. М.В. Ломоносова, М. – 2005. – С 361-366.
  4. Ю.Г. Карпов Теория автоматов. – С-Пб., Питер, 2002. – 206 с.
  5. Е.А. Суворова, Ю.Е. Шейнин Проектирование цифровых систем на VHDL. – С-Пб., БХВ-Петербург, 2003. – 560 с.