автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.05, диссертация на тему:Разработка методов синтеза программно-аппаратных комплексов с использованием высокоуровневых языков описания

кандидата технических наук
Филиппов, Вадим Алексеевич
город
Санкт-Петербург
год
2001
специальность ВАК РФ
05.13.05
Диссертация по информатике, вычислительной технике и управлению на тему «Разработка методов синтеза программно-аппаратных комплексов с использованием высокоуровневых языков описания»

Оглавление автор диссертации — кандидата технических наук Филиппов, Вадим Алексеевич

СПИСОК СОКРАЩЕНИЙ

ВВЕДЕНИЕ

ГЛАВА 1. СОВРЕМЕННЫЕ ПОДХОДЫ ПРОЕКТИРОВАНИЯ ПРОГРАММНЫХ СИСТЕМ. UML КАК СИМБИОЗ СОВРЕМЕННОГО ПРОЕКТИРОВАНИЯ. РАСШИРЕНИЕ UML ДЛЯ ПРОЕКТИРОВАНИЯ ПРОГРАММНО-АППАРАТНЫХ СИСТЕМ

1.1. Язык UML: задачи, спецификации, расширения

1.2. Назначение UML

1.3. Формализм и семантика UML

1.4. Базовые элементы и диаграммы UML

1.5. Расширения UML: UML-RT

1.6. Формализм Диаграмм Последовательности

1.7. Обзор программных продуктов UML

1.7.1. Интегральные среды разработки UML

1.7.2. Специализированные средства разработки UML

1.8. Выводы

ГЛАВА 2. РАСШИРЕНИЕ ФОРМАЛИЗМА UML ПРИ

СПЕЦИФИКАЦИИ СИСТЕМ. ВЕРИФИКАЦИЯ СПЕЦИФИКАЦИИ И ПОСТРОЕНИЕ ГЛОБАЛЬНОГО ГРАФА ПЕРЕХОДОВ СИСТЕМЫ—57 2.1. Выбор диаграмм описания программно-аппаратного комплекса на

2.2. Построение глобального графа переходов по множеству Диаграмм Последовательности

2.3. Формализм Расширенных Диаграмм Последовательности. Основные положения

2.4. Динамическая семантика РДП

2.5. Определение консистентности РДП

2.6. Синтез результирующей Системы Объектов

2.7. Общая процедура расширения существующих механизмов UML и синтеза целевой системы объектов

2.8. Выводы

ГЛАВА 3. ТРАНСЛЯЦИЯ СПЕЦИФИКАЦИИ UML/C++ НА ЯЗЫКИ HDL

3.1. Язык VHDL: назначение, свойства, конструкции описания

3.2. Конструктивные особенности языка VHDL

3.3. Трансляция UML в VHDL

3.3.1. Трансляция классов

3.3.2. Доступ к атрибутам класса из контекста операций

3.4. Трансляция других элементов и диаграмм UML для пакета программ автоматизированного разбиения системы на программную и аппаратную части

3.5. Алгоритм работы транслятора из множества языков UML/C++ в VHDL

3.6. Выводы.

ГЛАВА 4. АЛГОРИТМЫ И СПОСОБЫ РАЗБИЕНИЯ СПЕЦИФИКАЦИИ СИСТЕМЫ НА ПРОГРАММНУЮ И АППАРАТНУЮ ЧАСТИ

4.1. Способы оценки эффективности реализации операций в системе объектов

4.1.1. Основные положения Метода Анализа Иерархий

4.2. Применение Метода Анализа Иерархий для построения оценок эффективности реализации операций

4.3. Методы эффективной реализации системы объектов

4.4. Выводы

ГЛАВА 5. ПРИМЕНЕНИЕ РАЗРАБОТАННЫХ МЕТОДОВ И АЛГОРИТМОВ ПОД ЦЕЛЕВЫЕ ПРОГРАММНУЮ И АППАРАТНУЮ ПЛАТФОРМЫ

5.1. Элементная база систем реализации программно-аппаратных систем

5.1.1. СБИС программируемой логики

5.1.2. Встраиваемые процессоры для СБИС программируемой логики

5.1.3. Основные производители SoPC

5.1.4. Краткий обзор проекта Excalibur фирмы Altera

5.2. Разработка алгоритмов смешанного использования конструкций языков HDL и объектно-ориентированных языков программирования

5.2.1. Виды сопряжения программной и аппаратной части систем для исходной UML спецификации

5.2.2. Обращение аппаратных и программных реализаций операций к инкапсулированным данным

5.2.3. Вызов аппаратно реализованной операции из контекста программно реализованной операции

5.2.4. Вызов программно реализованной операции из контекста аппаратно реализованной операции

5.3. Пример Локального Узла Контроля распределенной системы мониторинга

5.3.1. Общие характеристики функционирования системы

5.3.2. Представление системы на UML

5.4. Выводы

ОСНОВНЫЕ РЕЗУЛЬТАТЫ

Введение 2001 год, диссертация по информатике, вычислительной технике и управлению, Филиппов, Вадим Алексеевич

Современные подходы к разработке программно-аппаратных систем.

Одной из особенностей современного технического прогресса можно считать активное развитие рынка встраиваемых (embedded) систем. При этом понятие «встраиваемая система» с каждым годом расширяется, захватывая все новые области электронных компонент, устройств и т.д. Само понятие встраиваемой системы означает специфическую систему, направленную на решение конкретных «узких» задач, то есть не универсальную с точки зрения применимости. Изначально такими «узкими» задачами были калькуляторы, органайзеры, системы управления бытовой техникой и т.д.

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

Однако технологическая революция, наблюдаемая в последние годы, привела к тому, что рынок встраиваемых систем сейчас испытывает перманентное состояние «взрыва», особенно заметное после слияния с рынком систем и средств коммуникации (беспроводных в том числе), автомобильной компьютеризации, рынком handheld компьютеров.

В результате современная встраиваемая система представляет собой сложный симбиоз специфических аппаратных решений, программных систем, распределенных протоколов взаимодействия и т.д. Например, современный сотовый телефон выполняет роль мини-компьютера, наделенного всеми необходимыми компонентами (операционная система реального времени, файловая (основанная на flash технологии) система, стеки протоколов WAP 4--»(TCP/IP)4--»GPRS*-»GSM, графические пользовательские интерфейсы).

И, тем не менее, в силу специфичности основных выполняемых функций, на современную встраиваемую систему накладывается ряд существенных ресурсных ограничений по сравнению с «универсальными» стандартными платформами (IBM PC, например). Причем требования «ненаращиваемости» (когда выпущенная на рынок система существует в исходном виде весь свой жизненный цикл) только усугубляют ситуацию.

Ресурсные ограничения встраиваемых систем распадаются на 2 класса:

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

2. Ограничения по производительности. Действительно, для оптимального функционирования системы могут требоваться компоненты, не существующие на рынке и требующие разработки (как программной, так и аппаратной).

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

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

Классическим» подходом к разработке программно-аппаратных встраиваемых систем является «раздельный подход» представленный на рис. В.1.

Разработка аппаратной части продукта

Адаптация под целевую аппаратную часть

Готовый продукт

Рис.В.1.

Для такого подхода характерны следующие шаги [28,29]:

1. Неавтоматизированный переход от концепции (представленной требованиями) к спецификации (шаг 1).

2. Императивное разбиение спецификации на программную и аппаратную части до разработки (шаги 2 и 3).

3. Ориентированный на целевые средства разработки процесс проектирования отдельно программных и аппаратных систем.

4. Адаптация под целевую платформу. Выбор элементной базы, компонентов.

5. Эмпирическое совмещение полученных программных и аппаратных компонент.

6. Финальное тестирование системы.

Следует отметить, что и при таком подходе разработчики старались оптимизировать, сделать более эффективным отдельные стадии разработки. Однако для многих из них, например, для шага разбиения системы на программную и аппаратную части, оптимизации не получили применения из-за различия формализмов описания различных частей системы [30].

Основными недостатками таких систем являются:

1. Полная обособленность программного и аппаратного проектирования друг от друга.

2. Ориентированность на конкретные средства проектирования. Переход к другой аппаратной базе, другим средствам программирования несет в себе серьезные временные и экономические затраты.

3. Краеугольные решения, принимаемые эмпирически.

4. Громоздкий этап синтеза разработанной системы, ошибки на ранних этапах крайне сложно убрать из-за необходимости ручного повторения многих этапов.

Принимая во внимание перечисленные выше недостатки, современные средства проектирования встраиваемых систем имеют измененную структуру, приведенную на рис. В.2:

Спецификация создаваемого продукта Extends

Разработка программной части продукта

Л-\ W

Средства ко-моделирования

Разработка аппаратной части продукта

Адаптация под целевую программную платформу

Адаптация под целевую аппаратную часть

Совмещение программной и аппаратной частей

Финальное тестирование

Готовый продукт

Рис.В.2.

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

Несмотря на то, что другие описанные выше общие «бутылочные горлышки» такими системами не решаются, в целом такие средства проектирования дают до 20% выигрыша по эффективности разработки.

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

1. Отнесение потенциальных проблем проекта на поздние стадии.

2. Позднее разбиение проекта.

Тем не менее, подход хорошо себя зарекомендовал в проектах, где:

1. Задача хорошо сформулирована.

2. Проект и команда, занятая в нем, небольшие.

3. Статус проекта может быть точно определен для любого момента времени.

Из-за все большего усложнения программных систем, на данный момент в «чистом» программировании все большую популярность приобретает подход, названный FDD (feature driven development -разработка, основанная на функциональности). Подход состоит из следующих этапов:

1. Синтез общей модели создаваемого программного продукта.

2. Определение набора сервисов, предоставляемых системой (на этом заканчивается этап определения требований к системе).

3. Этап планирования каждого сервиса (включает определения расписания и затрат на проект).

4. Разработка каждого сервиса.

5. Начальное тестирование каждого сервиса.

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

Наиболее полно данный подход для универсальных программных систем реализуется с использованием языка UML (unified modeling language - унифицированного языка моделирования), ставшего стандартом «де-факто» при создании объектно-ориентированных систем и поддерживаемого организацией стандартизации OMG.

Языки HDL как результат современного развития проектирования аппаратных средств.

Другим аспектом, позволяющим говорить о совместной эффективной разработке программных и аппаратных средств в рамках общего комплекса, является все большее применение языков описания аппаратуры (HDL), позволивших вывести продуктивность и формализм спецификации разрабатываемых систем, на новый уровень.

Действительно, возрастающие требования к качеству и производительности электронных компонентов привели к тому, что возникала потребность в новых, более совершенных устройствах и схемах. Возросшие же технологические возможности привели к тому, что на протяжении последних 15 лет наблюдается соответствие развития производительности электронных систем эмпирическому закону Мура. Данный закон утверждает, что каждые 18 месяцев производительность интегральных электронных схем увеличивается в 2 раза, а каждые 24 месяца максимальный объем запоминающих устройств также увеличивается в 2 раза. Причем, по подсчетам компьютерных аналитиков, на протяжении ближайших нескольких лет не возникнет причин, которые смогут привести к нарушению этого закона, если брать чисто технологическую точку зрения.

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

Подобный технологический прорыв, отдаляясь от старых проблем, привел, однако, к новым, не встречавшимся ранее проблемам, повлекшим к такому известному явлению, как кризис продуктивности разработки [64]. Диаграмма, поясняющая кризис продуктивности разработки, представлена на рис. В.1 [40]. Диаграмма поясняет ситуацию, когда технологически стало возможным производить сверхбольшие интегральные схемы, гипотетически обладающие также и большим быстродействием (некоторые ASIC уже на сегодняшний день имеют эквивалентную логическую емкость в 1 500 ООО логических вентилей (порядка 12 * 107 транзисторов), имея тактовую частоту в 1.5 ГГц). Также, отвечая современным требованиям, растет необходимость создания все более сложных устройств, позволяющих предоставлять более качественный сервис и решать все более сложные проблемы. При этом усложняется задача верификации разработанных устройств по все более комплексным критериям, а также тестирования готовых СБИС. В данном, случае собственно разработчик цифрового устройства сталкивается с противоречивой задачей:

- с одной стороны, необходимо повышать производительность проектирования, отдаляясь от специфических особенностей элементной базы и переходя к более высокоуровневым средствам и способам проектирования;

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

Транзисторы/СБИС (без эл-тов памяти)

Созданные транзисторы/ чел. мес.

100.000.00

10.000.0

1.000.000

100.000

10.00

1.000

100

10

1981 1985 1989 1993 1997 2001 2005 2009

Рис.В.З. Кризис продуктивности разработки

Данные противоречивые факторы привели к тому, что на сегодняшний день разработчики цифровых устройств «не успевают» за разработчиками элементной базы, что и иллюстрирует рис.В.З., показывая, что производительность инженеров-разработчиков отстает от темпов роста элементной базы, что и определяет кризис продуктивности разработки [6,22].

В результате к основным тенденциям в области развития современных технологий анализа и проектирования цифровых устройств следует причислить:

• Переход разработчиков цифровых устройств со схемотехнического формализма описания на формализм языков программирования высокого уровня (поведенческий VHDL и Verilog [26, 58]) и на формализм концептуальных моделей устройств (блок-схемы, диаграммы потоков данных, графическое представление автоматных моделей [92]).

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

- сокращение сроков проектирования системы. В современных условиях цикл разработки системы от спецификации до изготовления первых образцов не более полугода, а типичное время 2-3 месяца. Сокращение сроков достигается за счет внедрения САПР и высокоуровневых языков описания программной и аппаратной составляющих. Усложнение задач приводит к увеличению сроков проектирования в квадратичной зависимости (инженерный кризис), а сложность цифровых систем увеличивается примерно в два раза каждые два года. Переход к языковым конструкциям еще более высокого уровня сократит время описания проекта;

- сокращение сроков отладки системы. По данным Data Quest в настоящее время процедура отладки системы составляет порядка 70% от общего времени проектирования, и только 30% времени занимает процедура ввода проекта (описания на синтезируемых языках). Два пути сокращения сроков:

- внедрение эффективных систем совместной отладки программно-аппаратных составляющих (реализованы, например, в системах проектирования на SoPC);

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

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

Основные задачи, решаемые в диссертации.

Исходя из описанных выше предпосылок, в работе ставится комплекс задач, включающий в себя следующие пункты:

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

• Разработать методы и алгоритмы кросс-трансляции объектно-ориентированных языков программирования и языков описания аппаратуры.

• Провести анализ перспективных элементных баз проектирования современных встраиваемых систем.

• Расширить существующий класс Языка Универсального Моделирования для его использования при унифицированном проектировании смешанных систем.

• Провести анализ и построить расширение метода верификации и синтеза распределенной системы, описанной множеством временных сценариев поведения.

• Разработать методы дискретной многокритериальной оптимизации применительно к распределенной программно-аппаратной системе, описанной Глобальным Графом Переходов, с целью автоматизированного ее разбиения на программную и аппаратную части.

• Построить алгоритмы автоматической трансляции смешанной UML-00 спецификации системы под целевые программную и аппаратную платформы.

• Разработать общую методику проектирования программно-аппаратных систем с использованием CASE-средств с учетом синтезированных в рамках работы методов и алгоритмов.

Задачи, решаемые в работе, направлены на создание методик, подходов, алгоритмов, обеспечивающих новый подход к проектированию [13], приведенный на рис. В.4.

I Конце онцепция

Спецификация создаваемого продукта, включающая и разработку

Optional) Настройка специфических установок

Средства спецификации и поддержки моделирования

Средства разбиения,трансляции,адаптации и поддержки сопряжения

Финальное тестирование (упрощенное)

Готовый продукт

Рис. В.4.

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

Заключение диссертация на тему "Разработка методов синтеза программно-аппаратных комплексов с использованием высокоуровневых языков описания"

ОСНОВНЫЕ РЕЗУЛЬТАТЫ

В работе получены следующие основные результаты:

1. Исследована и расширена спецификация UML для проектирования смешанных программно-аппаратных систем за счет введения формализма Расширенных Диаграмм Переходов.

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

3. Разработаны способы и создан алгоритм автоматизированного разбиения UML/C++ спецификации системы на программную и аппаратную части.

4. Предложены алгоритмы построения кросс-трансляторов современных объектно-ориентированных языков программирования в языки описания аппаратуры HDL, и реализован кросс-транслятор для языков С++ и VHDL.

5. Выполнены исследования современной элементной базы систем на программируемом кристалле SoPC; созданные методы и алгоритмы приложены к SoPC Altera.

6. Работоспособность созданной методики и составляющих ее алгоритмов продемонстрирована на примере реального сложного узла системы мониторинга и контроля.

Библиография Филиппов, Вадим Алексеевич, диссертация по теме Элементы и устройства вычислительной техники и систем управления

1. Антонов А.П. Язык описания аппаратных средств AHDL. Практический курс. М.: Радиософт, 2001.

2. Антонов А.П., Мелехин В.Ф., Филиппов А.С. Обзор элементной базы фирмы Altera. СПб. 1997. - 143 с.

3. Ахо А., Ульман Дж. Теоретические основы синтаксического анализа, перевода и компиляции. Т. 1, 2., 1978.

4. Карпов Ю. Г. Основы построения компиляторов. Учебное пособие. -Л.: изд. ЛПИ, 1982.

5. Кофман А. Введение в прикладную комбинаторику. М: Наука, 1975.

6. Кракау Т.К., Филиппов В.А. Исследование задержек в логических элементах и их разброса на работу логических устройств. МНТК, Материалы Докладов, часть 2/. СПб.: СПбГТУ, 1998. - С. 141 -142.

7. Кракау Т.К., Филиппов В.А. Расширение пространства синтезируемых VHDL операторов для моделирования робототехнических систем. VI Международная конференция по экстремальной робототехнике. Сборник докладов ЦНИИ РТК, 2001.

8. Материалы конференции Synopsys Corporation, Зеленоград, Россия, 16 марта 1998г.

9. Саати Т., Керне К. Метод анализа иерархий. Аналитическое планирование. Организация систем. Пер. с англ. М: Радио и связь, 1991.-221 с.

10. Соловьев В.В. Проектирование функциональных узлов цифровых систем на программируемых логических устройствах. Минск: Бестприн, 1996. - 252 с.

11. Филиппов В.А. Верификация дискретных систем реального времени // Сборник трудов Всероссийской конференции "Интеллектуальный потенциал России в XXI век". Тез. докл. -СПб, 1995.-С. 68-69.

12. Ховард Р.А. Динамическое программирование и марковские процессы. -М.: Соврадио, 1964. 192с.

13. Язык описания аппаратуры цифровых систем VHDL. Описание языка. Государственный стандарт Российской Федерации. Москва, 1995.

14. Abramsky S. Retracing some paths in process algebra. In Seventh International Conference on Concurrency Theory (Concur'96), Lecture Notes Computer Science 1055,1996. P. 21 - 33.

15. Aho A.V., Sethi R. and Ullman J.D. Compilers: Principles, Techniques and Tools. Addison-Wesley, 1986.

16. Altera MasterClass. The interactive HDL tutorial, CDROM, Esperan Ltd, 1998.

17. Alur R. and Yannakakis M. "Model Checking of Message Sequence 7Charts", to appear in Proc. 10th Int. Conf. on Concurrency Theory (CONCUR'99), Eindhoven, Netherlands, August 1999.

18. Amon Т., Boriello G. and Sequin C. "Operation/Event Graphs: A design representation for timing behavior", Proc. '91 Conf. on Computer Hardware Description Language, 1991. P. 241 - 260.

19. Armstrong James. Chip Level Modeling Using VHDL. Virginia Polytechnical Institute Prentice-Hall, 1988.

20. Ashenden P. A. The Designer's Guide to VHDL. Morgan Kaufmann Publishers, San Francisco, 1996.

21. Ashenden Peter J. The VHDL CookBook, first edition. University of Adelaide, 1990.

22. Bellia M. and Levi G. The relation between Logic and Functional Languages: A Survey. The Journal of Logic Programming 3, 1986. P. 217-236.

23. Berg'e J. M., Fonkoua A., Maginot S. and Rouillard J. VHDL Designer's Reference. Kluwer Academic Publisher, 1992.

24. Biermann A.W. and Krishnaswamy R. " Constructing Programs from Example Computations", IEEE Trans. Softw. Eng., SE2, 1976. P. 141 -153.

25. Boehm B.W. A spiral model of software development and enhancement. Software engineering notes, 11(4), 1994.

26. Booch G., Rumbaugh J. and Jacobson I. The Unified Modeling Language for Object-Oriented Development, Version 1.0, 1996.

27. Boriello G. ,ЛА new interface specification methodology and its application to transducer synthesis". Technical Report UCB/CSD 88/430. University of California Berkeley, 1988.

28. Breu R., Grosu R., Hofmann Ch., Huber F., Kreuger I., Rumpe В., Schmidt M. & Schwerin W. Describing Object Interaction: From

29. Exemplary to Complete Descriptions. Technische Universiteat Meunchen. TUM-I 9737, 1997a.

30. Broy M. Semantics of finite and infinite networks of concurrent commu- nicating agents. Distributed Computing, 1987. P. 13-31.

31. Bryant R. E. "Graph-Based Algorithms for Boolean Function Manipulation", IEEE Transactions on Computers, Volume C-35, Number 8, August 1986. P. 677 - 691.

32. Camposano R. Behavior-preserving transformations in high-level synthesis. In M. Leeser and G. Browne, editors, Hardware Specification, Verification and Synthesis: Mathematical Aspects, New York, Springer-Verlag. LNCS, Vol. 408, 1989. P. 106 - 128.

33. Camposano R., Bergamaschi R.A., Haynes C., Payer M. and Wu S. High-Level VLSI Synthesis, chapter The IBM High-Level Synthesis System, Kluwer Academic Publishers, Norwell, MA, R. Camposano and W. Wolf, editors, 1991. P. 79 - 104.

34. Carro M., Gomez L. and Hermenegildo M. Some Paradigms for Visualizing Parallel Execution of Logic Programs. In 1993 International Conference on Logic Programming (ICLP), 1993.

35. Chang К. C. Digital Systems Design With VHDL and Synthesis : An Integrated Approach, IEEE Press, 1999.

36. Ciancarini P., Fantechi A. and Gorrieri R., eds. Formal Methods for Open Object-based Distributed Systems, Kluwer Academic Publishers, 1999.-P. 293-312.

37. Coelho Dave. The VHDL Handbook. Kluwer Academic Publishers; 1989.

38. Conery J. Parallel Execution of Logic Programs. Kluwer Academic Publisher, 1987.

39. Coudert O., Berthet C. and Madre J.C. Verification of synchronous sequential machines based on symbolic execution. In J. Sifakis, editor, Automatic Verification Methods for Finite State Systems, Grenoble, LNCS Vol. 407, June 1989.

40. Damm W. and Harel D. "LSCs: Breathing Life into Message Sequence Charts", Proc. 3rd IFIP Int. Conf., 1999.

41. Debreil A., Oddo P. "Synchronous Designs in VHDL", Proceedings Euro-DAC'93 with Euro-VHDL'93 , IEEE Computer Society Press, September 1993. P. 486-491.

42. Dohmen G. "Petri Nets as Intermediate Representation between VHDL and Symbolic Transition Systems", Proceedings Euro-DAC'94 with

43. Euro-VHDL'94 , IEEE Computer Society Press, September 1994. P. 572 - 577.

44. Douglas J. Smith. HDL Chip Design A Practical Guide for Designing, Synthesizing and Simulating ASICs and FPGAs using VHDL or Verilog, Doone Publications, Madison, USA, 1999.

45. Emerson E.A. and Clarke E.M.'"Using branching time temporal logic to synthesize synchronization skeletons", Sci. Сотр. Prog. 2, 1982. P. 241 - 266.

46. Filkorn Th. A method for symbolic verification of synchronous circuits. In D. Borrione and R. Waxman, editors, CHDL 91 Computer Hardware Description Languages and their Application, Marseille, France, April 1991. - P. 229 - 239.

47. Filkorn Th., Schmid R., Tiden E. and Warkentin P. Experiences from a large industrial circuit design application. In Proc. of the 1991 International Logic Programming Symposium, San Diego, October 1991.

48. Glunz W. and Umbreit G. VHDL for high-level synthesis of digital systems. In Proc. of 1st European Conference on VHDL Methods, 1990.

49. Harel D. "Statecharts: A Visual Formalism for Complex Systems", Sci. Comput. Prog. 8 ,1987. P. 231 - 274. (Preliminary version: Tech. Report CS8405, The Weizmann Institute of Science, Rehovot, Israel, February 1984.)

50. Harel D. and Gery E. "Executable Object Modeling with Statecharts", IEEE Computer, 1997. P. 31 - 42.

51. Harel D. and Kupferman O. "On the Inheritance of State-Based Object Behavior", submitted for publication, Available as Technical Report MCS9912, The Weizmann Institute of Science, Rehovot, Israel, 1999. http://www.wisdom.weizmann.ac.il/reports.html.

52. Harr E., Stanculescu Alec G. Applications of VHDL to Circuit Design Randolph. Kluwer Academic Publishers, 1991.

53. Hou P. P., Owens R. W., Irwin M. J. "High-Level Specification and Synthesis of Sequential Logic Modules". Proc. CHDL'91 Computer Hardware Description Languages and their Application, April 1991. - P. 131-142.60. http://www.omg.org.

54. Institute of Electrical and Electronic Engineers, IEEE Standard VHDL Language Reference Manual, IEEE/ANSI Std. 1076-1987, IEEE, New York, 1988.

55. Institute of Electrical and Electronic Engineers, Draft IEEE Standard VHDL Language Reference Manual, P1076--1993/C, IEEE, New York, 1993.

56. Jacobson I. Object-Oriented Software Engineering: A Use Case Driven Approach. AddisonWesley, Reading, MA, 1992.

57. Keating M., Bricaud P. Reuse Methodology Manual for System-On-A-Chip Designs, Kluwer Academic Publishers, Boston, 1998.

58. Koskimies K. and Makinen E. "Automatic Synthesis of State Machines from Trace Diagrams", Software — Practice and Experience 24:7, 1994. -P. 643 -658.

59. Koskimies K., Systa Т., Tuomi J. and Mannisto T. "Automated Support for Modeling 00 Software", IEEE Software 15:1,1998. P. 87 - 94.

60. Kruger I., Grosu R., Scholz P. and Broy M. "From MSCs to Statecharts", Proc. DIPES'98, Kluwer, 1999.

61. Kuchen H., Loogen R., Moreno-Navarro J.J. and Rodr'iguez-Artalejo M. Graph Narrowing to Implement a Functional Logic Language.

62. Technical Report DIA 92/4, Departamento de Inform'atica у Autom'atica, UCM, 28040 Madrid, Spain, 1991.

63. Kupferman O. and Vardi M.Y. "Synthesis with incomplete information", Proc. 2nd Int. Conf on Temporal >gic (ICTL97), 1997. -P. 91 106.

64. Leue S., Mehrmann L. and Rezai M. "Synthesizing ROOM Models from Message Sequence Chart Specifications", University of Waterloo Tech. Report 9806, April 1998.

65. MAX+plus II Programmable Logic Development System & Software. Data Sheet, Altera Corporation, San Jose, California (available at http://www.altera.com/), 1998.

66. Max+Plus II VHDL, Altera Corporation, 1997.

67. Mazor S., Langstraat Patricia, Guide A to VHDL. Kluwer Academic Publishers, 1993.

68. McFarland M.C. A practical application of verification to high level synthesis. In Proc. Workshop on Formal Methods in VLSI Design,1991.

69. McFarland M.C., Parker A.C. and Camposano R. The high-level synthesis of digital systems. Proceedings of the IEEE, 78(2), February 1990.-P. 301-318.

70. Microwski J., Kapustka M. EVITA™. Enhanced VHDL tutorial with Applications. Rev. 2.1, (CDROM). Aldec Corporation, 1998.

71. Morrison J. D. and Clarke A. S. Ella 2000: a Language for Electronic System Design, Mc Graw—Hill, 1993.

72. Paxson Vern. FLEX description. University of California, Berkeley,1992.

73. Payer M., Bormann J., Filkorn Т., Lohse J., Venzl G., Warkentin P. "CVE: An Industrial Formal Verification Environment", Internal Report, 1994.

74. PeakVHDL User's Guide, (available at http://www.peakvhdl.com/).

75. Pellerin David, Taylor Douglas. VHDL made easy, Prentice Hall PTR, 1997.

76. Pnueli A. and Rosner R. "On the Synthesis of a Reactive Module", Proc. 16th ACM Symp. on Principles of Programming Languages, Austin, TX, January 1989.

77. Rudell R. L. "Dynamic Variable Ordering for Ordered Binary Decision Diagrams", Proc. IEEE ICC AD, November 1993. P. 42 - 47.

78. Schlor R. and Damm W. "Specification and verification of system-level hardware designs using timing diagrams", Proc. European Conference on Design Automation, Paris, France, IEEE Computer Society Press, 1993. P. 518 - 524.

79. Selic В., Gullekson G. and Ward P. Real-Time Object-Oriented Modeling, John Wiley & Sons, New York, 1994.

80. Selic B. and Rumbaugh J. Using UML for modeling complex real-time systems. Available under http://www.objectime.com/uml, April 1998.

81. Stoll A. and Duzy P. High-level synthesis from VHDL with exact timing constraints. In Proc. 29th DAC, 1992.

82. Thomas D. E. and Moorby P. R. The Verilog Hardware Description Language, Kluwer Academic Publishers, Boston, Massechusetts, 1991.

83. Tiden Erik and Schmid Richard. Verifying ASICs by symbolic simulation. In Proc. EUROASIC 90, 1990. P. 461 - 473.

84. Ussery Carey. VHDL: Hardware Description and Design. Kluwer Academic Publishers; 1989.

85. Wirth Niklaus. "Hardware compilation: Translating Programs into Circuits", Computer, June 1998. - P. 25 - 31.

86. Z.120 ITU-T Recommendation Z.120: Message Sequence Chart (MSC), ITU-T, Geneva, 1996.