Автор: Григорьев А.В., Кошина Д.А.
Источник: Портал магистров ДонНТУ - 2007 г. - Цаценкина Александра Владимировна - Библиотека / Материалы по теме магистрской работы, №3
Григорьев А.В.,Кошелева Д.А. - «Интеллектуализация процесса проектирования аппаратуры средствами языка VHDL» Здесь приводится анализ средств автоматизации проектирования аппаратуры в среде языка VHDL, определение возможных путей создания интеллектуальной надстройки над САПР VHDL в среде специализированной инструментальной оболочки, а также анализ специфики языка VHDL с точки зрения формирования модулей знаний.
Язык проектирования аппаратуры HDL является основным инструментальным средством многочисленных САПР - Active HDL, OrCAD и т.д. [1] - [4]. HDL наряду с Virilog является одним из двух наиболее популярных средств проектирования аппаратуры в мире и - самым популярным в Европе.
Процесс проектирования аппаратуры с использованием языка HDL состоит в разработке программы, реализующей необходимый алгоритм функционирования проектируемого устройства. Имеющиеся компиляторы обеспечивают перевод алгоритмов на HDL в схемы, соответствующие выбранной аппаратной базе реализации, например – в ПЛИС.
Представление проектов в форме текста в значительной мере свободно от недостатков графических и табличных форм представления проектов, таких как трудоёмкость процедуры ввода, трудность поиска ошибок. Вместе с тем, особо значимыми в этом случае становятся процедуры отладки и верификации проектных решений. К достоинствам описания проекта в текстовом виде (на языках Verilog, VHDL и др.) можно отнести [2]:
Главное достоинство языка HDL - это возможность накопления и повторного использования экспертных знаний об апробированных решениях в форме, удобной для хранения, передачи и редактирования. Однако, в настоящее время нет средств обучения САПР, позволяющих обеспечить процесс передачи экспертных знаний о методиках проектирования либо напрямую – от эксперта, либо на основе ряда примеров, т.е. накопленных апробированных решений. Обеспечение такой возможности позволит повысить эффективность использования САПР на базе языка HDL за счет повышения уровня автоматизации процесса проектирования.
Цель данной работы – описание средств обучения САПР, позволяющих обеспечить процесс передачи экспертных знаний о методиках проектирования путем создания на основе обучения интеллектуальной надстройки в среде специализированной оболочки для создания интеллектуальных САПР.
В настоящее время в САПР-ах используется версия языка HDL, ориентированная на возможность графического отображения структурной компоненты программ – язык VHDL.
Такой язык позволяет совместить достоинства графических моделей устройств и текстовых описаний алгоритмов. Среди имеющихся средств автоматизации создания моделей на языке VHDL в различных САПР можно назвать [2]:
Макросы служат средством автоматизации интерфейса самой системы проектирования и интеграции её в проект создаваемых HDL программ. Они включают: А) описания, заключаемые в системные ключевые слова, исходного набора файлов проекта; Б) входные конкретные данные для программы; В) время симуляции в системе. Во время запуска макроса происходит передача параметров в систему проектирования. У разработчика появляются предпосылки расширить возможности языка за счёт введения собственных макроопределений, ориентированных на класс реализуемых проектов.
Набор подключаемых библиотек констант и функций, применяемых в текстах программ на VHDL, может быть как стандартным, так и определённым пользователем. В нём есть стандартизированные константы и готовые функции, применяемые в текстах программ на VHDL.
Мастера помогают быстро подготовить шаблон для заданной архитектуры программируемой системы и даже определить количество начальных параметров и типов. Но все остальные дальнейшие заботы по написанию кода программ ложатся, естественно, на программиста-разработчика.
Собственно текстовые модельные описания используется в современных САПР очень широко. Можно назвать, для примера, некоторые новые возможности, связанные с использованием текстов в САПР Active HDL 5.1 [5].
Данные возможности можно отнести к достоинствам САПР:
Вместе с тем, к типичным недостаткам САПР Active HDL 5.1 можно отнести:
Следует отметить, что из названных средств мастера являются самым развитым методом синтеза решений в САПР на базе VHDL. Однако, разработка каждого нового мастера, при условии его полноценного построения, есть задача разработки маленького специализированного САПР, ориентированного на некоторый класс решений (устройств). Разработка каждого нового мастера предполагает творческий процесс программирования, включая:
Перед разработчиком встает задача разработки языка ТЗ, определение состава возможных решений и построение алгоритма выбора нужного решения по заданному набору значений параметров. Т.о., разработка такого мастера есть форма передачи разработчиком своего опыта по проектированию некоторого класса устройств. Недостатки такого пути:
Т.о., такой процесс передачи знаний имеет высокую трудоемкость. С целью повышения эффективности процессов создания мастеров можно применить технологию создания мастера как экспертной системы, способной обучаться, т.е. перенимать опыт проектировщика на ряде примеров или приобретать знания напрямую от эксперта.
Для решения задачи предлагается использовать путь создания интеллектуальной надстройки над VHDL, описанный в [6-9]. Основанием такого выбора является возможность учесть как достоинства, так и недостатки САПР на базе VHDL.
По классификации, приведенной в [7], любой САПР на базе VHDL, как конкретный проблемно-ориентированный САПР имеет следующие характерные черты:
Соответственно, возможны следующие пути построения интеллектуальной надстройки, являющиеся вариантом модели САПР решения типичных задач проектирования:
Главная цель функционирования K0, составляющая главный признак множества решений в ПОС, соответствует классу проектируемых устройств и задается в этом случае неявно.
Построенная таким образом экспертная система может выступать в качестве надстройки над САПР VHDL. При этом САПР может выступать в двух качествах:
В соответствии с [8] для организации базы знаний используется модульный принцип. Модуль знаний в инструментальной оболочке для построения интеллектуальных САПР формируются в форме порождающей контекстно-свободной грамматики, эквивалентной И-ИЛИ-дереву [5], с определенным над ней множеством продукций, явных или неявных. Грамматика описывает множество синтаксически верных (возможных) решений, а продукции, как явные так и неявные, определяют множество правил вывода, описывающих вычленение семантически верного подмножества решений, соответствующего некоторому набору требований, т.е. продукции описывают логику проектирования, исходя из требований к решению.
Специфика формирования модулей знаний в данном случае определяется спецификой языка VHDL. Модель устройства на языке VHDL имеет две явно определенные стороны описания: структурную и функциональную.
Структурная часть - это:
Функциональная часть это:
Рассмотрим возможные способы формирования модулей знаний, отличающиеся уровнем знания о грамматике языка VHDL в среде инструментальной оболочки.
Минимальный уровень знаний о языке – это способность оболочки выделить значимую часть текста и – незначимую. К незначимой части можно отнести комментарии и лишние пробелы.
[Глубина знаний о процедурном делении языка VHDL предполагает, что отдельный модуль знаний может задавать множество решений, относящихся к таким классам: 1) проекты одного типа в целом; 2) архитектуры одного типа; 3) процессы одного типа.
В каждом случае пара ЦПС – ПОС строится для различного числа модулей знаний. Наиболее сложный случай предполагает построение модуля знаний для отдельного типа блоков из блок-схемы, рассматриваемого на любом структурном уровне. В текстовой модели на языке VHDL в этом случае должно быть явно выделено:
Все четыре компонента нуждаются в собственной нумерации прототипов. Это позволит рассматривать подмножества:
Наличие таких текстовых фрагментов позволит создать модуль знаний, стыкуемый с другими модулями знаний на уровне списка внешних свойств блока.
В работе изложены следующие результаты: 1) Анализ средства автоматизации проектирования аппаратуры в среде языка VHDL; 2) Определение возможных путей создания интеллектуальной надстройки над САПР VHDL в среде специализированной инструментальной оболочки; 3) Анализ специфики языка VHDL с точки зрения формирования модулей знаний.