Распределённое проектирование структурно-функциональных моделей, представленных на языке VHDL

ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

УДК 004.896

А. Н. АФАНАСЬЕВ, В. С. ХОРОДОВ

РАСПРЕДЕЛЁННОЕ ПРОЕКТИРОВАНИЕ СТРУКТУРНО-ФУНКЦИОНАЛЬНЫХ МОДЕЛЕЙ, ПРЕДСТАВЛЕННЫХ НА ЯЗЫКЕ УИБЬ

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

Ключевые слова: САПР, VHDL, CORBA, ORB, SaaS, структурно-функциональные модели, распределённое проектирование.

Введение

Разработка СБИС в настоящее время остаётся одной из трудоёмких задач проектирования технических объектов. Одним из факторов, характеризующих возрастание сложности процесса проектирования, можно назвать объём кода, который необходимо написать проектировщику на Hardware Description Language (HDL) языке, и количество логических вентилей в проектируемых схемах.

До появления системы на кристалле (SoC -System on Chip), при реализации интегральных схем, величина RTL-кода (RTL - Register Transfer Level) была не более ста тысяч строк, а количество логических вентилей доходило до 10 млн. SoC позволила создавать целую встроенную систему на одном чипе. При проектировании интегральных схем с использованием SoC величина RTL-кода может составлять более одного миллиона строк, а количество логических вентилей доходить до ста миллионов [1].

При использовании традиционных методов квалифицированный дизайнер может выполнять проект со средней скоростью порядка 100 вентилей в день или 30 строк RTL кода. В этом случае, чтобы спроектировать СБИС сложностью 100 тыс. вентилей, потребуется 1000 человеко-дней, то есть команда из пяти человек сможет разработать такую СБИС в течение года. Следуя данной логике, чтобы разработать сложную СБИС порядка 10 млн вентилей в течение одного года, потребуется команда из 500 человек, что неприемлемо с точки зрения стоимости разработки [2].

© Афанасьев А. Н., Хородов В. С., 2014

Примерами сложных проектов разработки аппаратных средств являются: внутрисалонная информационно-управляющая система ( Cabin Intercommunication Data System, CIDS) - более чем 5 млн строк кода, написанных в основном на Си, Java и VHDL [3]; описание поведенческого и структурного уровней микропроцессора Chameleon, который был разработан SGS-THOMSON Microelectronics - нескольких сотен тысяч строк [4]; кристалл SPARCv9, с тестами и окружением - около 160 тыс. строк на Verilog; большие аппаратные конструкции, которые включают несколько интегральных схем специального назначения (ASIC) и микропроцессоры, могут достигать размеров нескольких сотен тысяч строк VHDL кода и тысяч компонентов [5].

Формирование команды разработчиков является следствием возрастающей сложности процесса проектирования. Команды разработчиков высокоинтегрированных СБИС обладают различными знаниями и опытом в области проектирования, и часто при выполнении проектов СБИС расположены в различных частях мира [2]. Поэтому при разработке методов автоматизированного проектирования необходимо уделить внимание декомпозиции задач проектирования, распределения задач между проектировщиками и синтезу и проверки проектных решений.

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

На основании этого в системе формируются список ролей. Для каждой роли индивидуально настраиваются права доступа.

Таким образом, использование высокоуровневых языков представления структуры и функционирования СБИС, возрастание сложности проектов СБИС и необходимость реализации коллективного проектирования при их разработке требуют формирования нового подхода, основанного на распределённом синтезе и анализе структурно-функциональных лингвистических моделях.

Обобщённая структура системы распределённого проектирования структурно-функциональных моделей

Обобщённая структура системы распределённого проектирования структурно-функциональных моделей представлена на рис. 1. В её основе лежит технология CORBA(Common Object Request Broker Architecture), которая позволяет организовать единую информационную среду, элементы которой могут взаимодействовать друг с другом вне зависимости от их конкретной реализации, т. е. «прописки» в распределённой системе. На основе формирования промежуточного программного обеспечения (I II Ю, middleware) происходит связывание программных приложений, которые находятся на разных

серверах. Организация мостов между приложениями производится с помощью технологии брокера объектных запросов (ORB, Object Request Broker) [6]. ORB представляет собой программное обеспечение, которое отвечает за клиент-серверное взаимодействие между объектами.

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

Объектом рассмотрения являются структурно-функциональные лингвистические модели, представленные на высокоуровневом языке типа VHDL, описывающие структурные и функциональные части объекта, в частности, к ним относятся модели СБИС [7]. Процедура синтеза включает обработку языкового описания функциональной модели на основе грамматики языка, при этом структурно-функциональное представление рассматривается как совокупность связанных функциональных объектов [8, 9].

В основе методологии распределённого проектирования структурно-функциональных моделей лежит принцип повторного использования шаблонов СФМ, которые были сохранены в базе знаний.

Клиент 1

Клиент 2

Клиент 3

Клиент 4

Рис. 1. Общая структура системы распределённого проектирования структурно-функциональных моделей, представленных на языке УИБЬ

Подсистема управления проектными задачами

Подсистема предоставляет возможность создания проектных задач. Процесс разделения задач на подзадачи (декомпозиция) необходим для последующего распределения подзадач по проектировщикам с целью ускорения создания проектного решения. Балансировщик нагрузки предоставляет функционал поиска проектировщика, который подойдёт для решения проектной задачи как по личной загруженности, так и по уровню знаний. Целью балансировщика является распределение процесса выполнения проектных задач между несколькими проектировщиками с целью оптимизации использования ресурсов и сокращения времени создания проектного решения. На рис. 2 представлены основные функциональные блоки подсистемы управления проектными задачами и процесс их взаимодействия.

Подсистема маршрутизации

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

Объектный адаптер предоставляет все низкоуровневые средства для связи объекта с его клиентами: генерацию ссылок на удалённые объекты; вызов методов, определённых в IDL; обеспечение безопасности взаимодействия; активацию и деактивацию объектов; установление соответствия между ссылками на удалённые объекты и реальными экземплярами объектов; регистрацию объектов.

В подсистеме маршрутизации ведётся логи-рование событий системы. Это позволяет фиксировать ошибки в процедурах формирования проектных решений, синтеза, оптимизации и тестирования.

Подсистема разработки проектного решения

На основе результатов анализа объекта моделирования проектировщик строит структуру и алгоритм функционирования модели. В зависимости от размеров схемы структура может быть описана на языках описания VHDL или RTL с указанием размерности соединяющих сигналов, или в графическом виде, где каждому будущему объекту из БД ставится в соответствие чёрный ящик с входами/выходами [3]. Описание на языке система строит самостоятельно. На основе алгоритма рассчитываются входные параметры для выбранной структуры СФМ. Процесс верификации заключается в установлении соответствия проектного решения и исходного (эталонного) описания. После создания шаблонов СФМ данные сохраняются в базе знаний.

Рис. 2. Основные функциональные блоки подсистемы «Управление проектными задачами»

Модуль синтеза проектных решений позволяет сформировать новое проектное решение на основе данных, которые получены от проектировщиков. Модуль интеграции позволяет объединить описание структуры на языке УИБЬ с описанием структуры в графическом виде и создать полноценное проектное решение. На рис. 3 представлены основные функциональные блоки подсистемы разработки проектного решения и процесс их взаимодействия.

Подсистема поиска шаблона СФМ

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

Шаблоны СФМ ищутся по критериальным параметрам и типам устройств. Из всех шаблонов выбирается наиболее подходящее описание СФМ, которое в автоматическом режиме преобразуется в описание на языке УИБЬ [8].

Поиск позволяет существенно сократить время разработки, т. к. упрощается процесс варьирования структуры за счёт использования системы выдачи артефактов СФМ.

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

На рис.4 представлены основные функциональные блоки подсистемы поиска и процесс их взаимодействия

Поиск структуры СФМ{шаблон СФМ)

Ввод/расчёт входных параметров

1Г

Формирование запроса на поиск шаблона [по критериальным параметрам и типу устройства)

Отбор наиболее подходящих шаблонов

) 1

Поиск шаблона СФМ «-1

— Заполнение выбранного шаблона СФМ входными параметрами

Преобразование шаблона СФМ в описание на БОА

Рис. 4. Основные функциональные блоки подсистемы «Поиск шаблона СФМ»

Г--------------------Т Г---------------------1

Рис. 5. Основные функциональные блоки подсистемы «Тестирование и оптимизация»

Подсистема тестирования и оптимизации

Подсистема позволяет оценить окончательную программную модель и провести финальное тестирование модели. При обнаружении недостатков вносятся изменения в параметры модели. Если изменение параметров не приводит к положительному результату, данные передаются в подсистему разработки проектного решения, в котором вносятся изменения в структуру СФМ. Система позволяет также исследовать разработанную модель. Целью исследований является определение выходных характеристик модели при разных значениях управляемых переменных параметров модели. Выбор входных параметров является необходимым этапом в эксперименте. На этом этапе необходимо определить наиболее значимые параметры, т. к. в моделях средней и большой сложности невозможен полный перебор всех входных параметров. В ходе исследования проводятся измерения критериальных параметров и производится их постепенное улучшение [8]. В процессе может быть протестировано несколько вариантов, используя подсистемы поиска и разработки проектного решения. Это позволит значительно сократить время на разработку нового устройства. На рис. 5 представлены основные функциональные блоки подсистемы тестирования и оптимизации, а также процесс их взаимодействия.

Заключение

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Maciel, R., Albertini B., Rigo S., Araujo G., Azevedo R. A Methodology and Toolset to Enable SystemC and VHDL Co-simulation. // Computer Society Annual Symposium on VLSI(ISVLSI'07). -2007. P. 351-356.

2. Евтушенко, Н. Методология проектирования систем на кристалле. Основные принципы, методы, программные средства / Н. Евтушенко, И. Сырцов // Электроника. Наука, Технология, Бизнес. - 2003. - №6.

3. Burger, S., Hummel O., Heinisch M. Airbus Cabin Software // IEEE Software. 2013. - №1.-P. 21-25.

4. Casaubieilh, F., McIsaac A., Benjamin M., Bartley M., Pogodalla F., Rocheteau F., Belhadj M., Eggleton J., Mas G., Barrett G., Berthet C. Functional Verification Methodology of Chameleon Processor // DAC. - USA. - P. 421-426.

5. Friedrich, G., Stumptner M., Wotawa F. Model-Based Diagnosis of Hardware Designs // Artificial Intelligence. - 1999. - P. 3-39.

6. Хородов, В. С. Технологии распределённого проектирования / В. С. Хородов, А. Г. Иго-нин // Вестник УлГТУ. - 2014. - № 1.

7. Афанасьев, А. Н. Применение нейро-семантических сетей для анализа и синтеза структурно-функциональных моделей в системах проектирования / А. Н. Афанасьев, А. Г. Игонин // Системы управления и информационные технологии. - 2006. - №4(26). С. 12-15.

8. Афанасьев, А. Н. Обработка лингвистических структурно-функциональных моделей на основе нейросемантических сетей / А. Н. Афанасьев, А. Г. Игонин. - Ульяновск : УлГТУ, 2007. - 227 c.

9. Афанасьев, А. Н. Применение нейросе-мантического подхода для анализа и синтеза функциональных моделей в системах проектирования / А. Н. Афанасьев, А. Г. Игонин // Вестник Ижевского государственного технического университета. - 2007. - №1. - С. 66-69.

Афанасьев Александр Николаевич, доктор технических наук, профессор кафедры «Вычислительная техника» УлГТУ. Хородов Виталий Сергеевич, аспирант специальности 051312 кафедры «Информационно-вычислительные комплексы» УлГТУ.