
- •1.Вводные замечания
- •2. Объявление конфигурации проекта – (Design Configuration Declaration)
- •3. Спецификация конфигурации - Configuration Specification
- •Оператор спецификации описания компонента имеет две формы синтаксиса: Форма 1:
- •4. Примеры использование оператора конфигурации (configuration …is…) при создании структурных проектов с применением компонентного стиля проектирования
- •Условное графическое обозначение головного проекта
- •Иерархическая диаграмма головного проекта
- •Описание компонента
Файл: Lekz8_Stru_Metod_Oper_Configur.doc
Лекция №8 (5-тый курс)
Тема: Структурная методология описания проектов цифровых систем (устройств) посредством оператора configuration
Вопросы по теме:
Вводные замечания
Объявление конфигурации проекта – (Design Configuration Declaration)
Спецификация конфигурации – (Configuration Specification)
Примеры использование оператора конфигурации (configuration …is…) при создании структурных проектов с применением компонентного стиля проектирования
5. Приложение 1: Метод прямого внедрения субпроекта (компонента)
1.Вводные замечания
Язык VHDL поддерживает два варианта структурной методологии описания проектов цифровых устройств.
Первый вариант структурной методологии базируется на использовании компонентного (component) стиля описания проекта. Компонентный (component) стиль описания проекта предполагает наличия в создаваемом проекте явно заданного объявления конструкций языка VHDL вида component name_component is (…) end component; (Объявление вида component name_component is (…) end component; может содержаться также в библиотеке. Существуют специальные компонентные библиотеки). При этом предполагается, определение субпроекта с которым ассоциируется объявленный компонент уже существует или будет создан попозже. (((элементов (моделей) из которых создается проект))) . Затем объявленный компонент явным образом внедряется в проект посредством оператора внедрения компонента вида: метка : component имя_компонента port map( ...);. Компонентный (component) стиль описания проекта поддерживается практически всеми существующими САПР.
В традиционном компонентный (component) стиле описания проекта применяется технология жесткого связывания (связь по именам) объявленного в проекте компонента с его описанием (с субпроектом, где содержится определение компонента). Технология жесткого связывания (связь по именам) часто затрудняет проведение экспериментальных исследований над проектами, так как при возникновении необходимости модификации проекта требует вмешательства в VHDL программу исследуемого проекта, т.е. внесения изменений в проект на уровне операторов, что становится очень затруднительным при работе с проектами большого объема.
Второй вариант структурной методологии базируется на использовании стиля прямого внедрения субпроекта (Смотри приложение 1). Стиль прямого внедрения субпроекта не требует в создаваемом проекте верхнего уровня иметь в наличии специального объявления субпроекта как component. Однако, при использовании стиля прямого внедрения субпроекта в операторе внедрения субпроекта требуется указать полное имя субпроекта и имя связанной с ним архитектуры. Пример оператора внедрения субпроекта имеет вид:
X1 : entity WORK.XOR_GATE_4(XOR_BODY_4) port map (S1,S2,S3);
Для достижения видимости описания внедряемого субпроекта из создаваемого проекта верхнего уровня в нем требуется также указать имя библиотеки, в которой хранится описание откомпилированного субпроекта. Применение стиля прямого внедрения субпроекта также требует вмешательства в VHDL программу исследуемого проекта, т.е. внесения изменений в проект на уровне операторов, что становится очень затруднительным при работе с проектами большого объема.
Третий вариант структурной методологии базируется на использовании стиля конфигурирования проекта посредством использования специального конфигурирующего файла. Как правило, этот файл небольшой по объему, компилируется отдельно. Наличие конфигурирующего файла не требует вмешательства в VHDL программу исследуемого проекта, т.е. внесения изменений в проект на уровне операторов, что становится очень затруднительным при работе с проектами большого объема. Базовыми конструктивными элементами этого файла являются:
Оператор объявления конфигурации;
Оператор спецификации описания компонента (проекта, где содержится определения компонента), которое вызывается при внедрении образца компонента в проект
Возникает вопрос: « Какое отношение к выше сказанному имеет оператор configuration configuration_name of entity_name is … end configuration_name; ?»
Ответ на поставленный вопрос будет такой: Оператор configuration …is .. имеет самое прямое и непосредственное отношение как к структурной методологии базирующейся на использовании компонентного (component) стиля описания проекта так и к структурной методологии построения проектов базирующейся на использовании стиля прямого внедрения субпроекта.
Особенно оператор полезен и практически незаменим при разработке иерархических проектов имеющих высокие требования к их техническим характеристикам. При наличии высоких требований к техническим характеристикам проекта его приходится разрабатывать в нескольких модификациях (конфигурациях). Теперь, если имеется такой много конфигурационный проект, возникает вопрос: « Как самым быстрым способом переключаться между многообразием вариантов имеющегося проекта для исследования их характеристик и выбора оптимальной структуры проекта?». Cамый простой быстрый и удобный способ выбора одного варианта проекта из имеющегося множества модификаций обеспечивает оператор configuration …is на базе которого создаются Специальные VHDL проекты, которые размещаются, как правило, в специальных конфигурационных файлах.
Специальные VHDL проекты такого рода принято называть конфигурирующими проектами. По отношению к традиционным VHDL проектам конфигурирующие проекты являются как бы настройкой над ними или, как говорят, суперпроектами в общей иерархии проектов.
Важно также уяснить, язык VHDL достаточно хорошо поддерживает возможность создания специального конфигурирующего проекта.
Эта возможность поддерживаются такими свойствами языка:
В языке VHDL каждому автономному проекту (каждому entity) можно ставить в соответствие несколько разных тел архитектур имеющих разные имена. Это означает, что конструктор имеет возможность создать один проект, имеющий одно и тоже имя, один и тот же интерфейс, но разные варианты его внутреннего устройства. Естественно, что все варианты одного и того же проекта должны иметь одинаковые функциональные свойства и назначение.
В языке VHDL можно построить разные варианты цифрового устройства обладающих одинаковыми функциональными свойствами и назначением сопоставляя им множество разных автономных проектов снабженных разными имена entity и имена архитектур. Устройство тел архитектур может быть также разным. При этом требование одно: все автономные проекты должны иметь одинаковый интерфейс.
В языке VHDL описание процедуры конфигурирования проекта посредством оператора configuration …is может размещается в отдельном файле. Этот файл, как правило, небольшой по объему. Его можно отдельно компилировать, даже в случае отсутствия описаний (определений) компонент. Его наличие не требует от конструктора при выборе очередного варианта проекта вмешательства в структуру проекта верхнего уровня.
Таким образом, указанные выше свойства языка VHDL предоставляет конструктору возможность иметь в своем распоряжении большое многообразие разных вариантов субпроектов с одинаковыми функциональными свойствами, разными характеристиками и разным внутренним устройством.
Опять возникает вопрос: « Как построить оптимальный проект производя простой перебор разных вариантов субпроектов, сравнивать межу собой технические характеристики отдельных конфигураций проекта ?»
Разрешить поставленный вопрос можно путем создания специального конфигурирующего проекта (конфигурационного файла) основой для создания которого является оператор объявления конфигурации configuration name_configuration is … end name_configuration; .