Суворова Е.А., Шейнин Ю.Е. Проектирование цифровых систем на VHDL (2003) (1095892), страница 18
Текст из файла (страница 18)
Внутренняя структура описываемого объекта при этом не специфицируется. Такое описание называется поведенческим описанием архитектуры объекта. 2. Описать структуру объекта, как состоящего из некоторых других объектов, указывая их перечень и связи между ними. Такое описание называется структурньаи описонием архитектуры объекта. Поведение объекта, преобразование информации и формирование выходных сигналов при поступлении входных, определяется здесь составом и связями объектов, формирующих заданную структуру. Сами объекты-компоненты описываются отдельно, с использованием структурного или поведенческого описания, и т.
д. В конечном итоге, на каком-то уровне вложенности таких описаний мы доходим либо до предопределенных компонентов, либо останавливаемся на алгоритмическом, поведенческом описании объекта- компонента. 3. Допускается и смешанное структурно-поведенческое описоние, являющееся комбинацией первых двух видов описаний. Базовые конструкции моделей на языке Изб Описание архитектуры объекта моделирования имеет следующий синтаксис: агсьдеесепге ъдепгдгдег ог епгъгу папе Ае (Ь1оск дес1агасдсе всей) Ьаддп (сапспггепг агагепепгз) епд [агсЬЫвсепгв] (ъдепгШег]; Спецификатор епс1су пате позволяет связать декларативную и архитектурную части описания объекта моделирования.
После ключевого слова агсЫЕесспге уКаЗЫВаЕтСя УНИКаЛЬНЫй ИдЕНтИфИКатОр Ывпазядег даННОй архитектуры. ПОСЛЕ КЛЮЧЕВОГО СЛОВа Ьеддп СЛЕдуЮт ПараЛЛЕЛЬНЫЕ ОПЕратОрЫ, ЗадаЮШИЕ В алгоритмическом виде функционирование описываемой архитектуры объекта. Завершается описание архитектуры объекта ключевым словом епд, за которым следует слово агсьзаесспгв (по стандарту ЧНРЬ'93); потом указывается идентификатор описанной архитектуры объекта (рекомендуется). Объект моделирования может иметь несколько различных видов архитектурного описания, однако одновременно в модели может использоваться только один из них.
Выбор конкретного вида архитектурного описания осуществляется с использованием конфигурационной спецификации, о которой будет сказано в дальнейшем. Вариант архитектурного описания для сумматора, декларативная часть которого представлена ранее в листинге 3.2, приведен в листинге 3.3. агсвдаесапгв аЬзсгасс оя аддег Ав Ъеядп адд а Ь св ргосвее(а,Ь,с) 1е Ьеддп зппк=а+Ьс; епд ргосвее адд а Ь с; епд агсЫЕвсапгв аЬзсгасс; Библиотеки Для облегчения процесса проектирования описание объекта моделирования и различные варианты описания его архитектуры обычно размещают в библиотеках (они организованы как отдельные файлы). Это позволяет редактировать описание одних объектов, не затрагивая файлы, в которых расположены описания других объектов.
Кроме того, библиотеки могут быть вг Глава В использованы в различных проектах, что позволяет лучше организовать повторное использование уже разработанных объектов. В библиотеках размещают описания объектов, которые могут использоваться одним или несколькими пользователями в рамках одного или нескольких проектов. В библиотеках также могут размещаться описания констант, переменных, типов, процедур, функций, а также декларации конфигураций. Эти описания тоже могут формироваться в отдельные пакеты в соответствии с тематикой, а потом объединяться в библиотеки. Если описание архитектуры включает объекты, размещенные в библиотеках, то непосредственно перед описанием архитектуры необходимо указать имена библиотек, которые используются. Это имеет следующий синтаксис: 11Ьгагу 11Ьгагу пате (,...1 Здесь ь(ьгагу пате — идентификатор, имя библиотеки.
В 0(СА0 Ехргевв библиотеки реализуются как файлы с расширением ул((, имя библиотеки — имя файла. НаПрИМЕр, ПуСтЬ ИМЕЮтСя бИбЛИОтЕКИ С ИМЕНаМИ м(бдее се11в И мавр 1(Ь Тогда, если модуль использует некоторые объекты из указанных библиотек зто можно показать на примере листинга 3.4. (,:фислтин('Згв 1ЕЬгагу нЫдес се11в, мавр 1(Ь агензеепепге се11 оЕ Е(1еег Ев Ьед1п о1К раси епгЫу мавр 11Ь.Еп рад -- используется элемент о именем Еп рад — иэ библиотеки мавр 11Ь роге вмц3...
ассппп епИЕу мЫдее се11в.гед32 роге кйар... епй агеЬЕГеегпге се11; Для того чтобы в тексте модуля каждый раз не указывать имя библиотеки часто используемого объекта, можно описать условную ссылку. Она имеет следующий синтаксис: иве 11Ьгагу пате. (ЕйепГЕЕЕег ~ а11) Здесь Ебепс(гает — имя объекта из библиотеки 1(ьгагу пате. Предыдущий пример (листинг 3.4) можно переписать в виде, представленном листингом 3,5: Базовые конструкции моделей на языке ИНМ. Ляелтэигг 3.6 11ькаку ньбдее се11в, наэр 11Ь| иве нЫдее се11в.тед32; аксЬАЕессике се11 оя т11еел Ав ЬедАп с1Х раси епс1эу мавр 11Ь.ап рад -- используется элемент с именем ап рад -- из библиотеки наэр 11Ь роке |вар...
асснпп апсзау лед32 — используется элемент с именем тед32 иэ — из библиотеки имадее се11в рота 1аар епб аксЬТЕесаике се11; Если в описании указано ключевое слово а11, то все объекты, содержащиеся в библиотеке, можно использовать в теле использующего эту библиотеку объекта без указания имени библиотеки (все они становятся непосредственно видимыми). Пакеты При построении полноразмерных моделей проектируемых устройств мы имеем дело с большим числом программных объектов на языке ЧНР]..
Их описания приходится многократно использовать как внутри одной модели, так и в разных моделях. Механизм пакетов позволяет сгруппировать некоторые описания в единую совокупность — пакет, который далее может многократно использоваться в проектах. Пакет может использоваться как в различных частях одной модели, так и в разных моделях. Обычно имеется в виду, что описания, объединяемые в пакет, некоторым образом логически между собой связаны, имеют некий содержательный критерий для их объединения. Однако это, конечно, вопрос стиля программирования, а не собственно языка ЧНРЬ. Механизм пакетов позволяет объединить описания типов, констант, процедур, функций, компонентов.
Сами эти описания выполняются так же, как в различных частях объекта моделирования. Описание пакета состоит из декларативной части и тела пакета. Описание декларативной части пакета имеет следующий синтаксис расйаде пате Тв (рас]саде бес1аласауе абеб] епа [раснаде] [ламе] р Глава 3 84 Описание тела пакета имеет следующий синтаксис: рао]саяе Ьооу паве 1в [рас?аде ?юг с?ес1апае?пе 1?ев] епо [рао]саяе Ьоду] [паве] с Описание пакета может состоять только из декларативной части (например, если он содержит только описание типов, констант, переменных).
Пример такого описания — в листинге 3.6: рао]саде сри сурев 1в оопвпассп вова п?пе:ров1е1пес=16с воьпуре ссопс? 1в Ь1Е ссеопоп (попс? в?пе-1 стосспсо О]; епо рао]саяе срц ?урев; Описание одного или нескольких пакетов размещается в библиотеке. Обращение к объекту, расположенному в пакете, имеет следующий синтаксис: 11Ьпапу паве.рас]сес папе.оЬбесс пате, где: 1?ьпапу пате — имя процедуры, рас]сее паве — имя пакета, оьбесе пате — имя объекта. Некоторую специфику в пакетах имеет описание констант. Для констант в декларативной части пакета может использоваться сокращенное описание, содержащее только имя и тип константы. Оно имеет следующий синтаксис: оопвсапе паспес суре паве; Константе, описанной таким образом, в теле пакета необходимо присвоить значение. Например, если в декларативной части пакета имеется описание: оопвеапе пах а?пес ров1?1пес то в теле пакета необходимо выполнить полное описание: ооссвсапп тах п1песроп???пе с= 40; Этот механизм применяется, когда в пакете важно определить не столько конкретное значение константы, сколько диапазон значений, которые могут ей соответствовать.
Однако область применения констант, описанных таким образом, имеет ограничения. Их значения являются неопределенными на этапе компиляции, когда программа моделирования анализирует исходную программу на языке ЧН1Н.. Поэтому они могут использоваться только в тех местах конструкций языка ЧНО[, где могут использоваться переменные.
Например, константы с сокращенным описанием не могут быть использованы в выра- жЕНИЯХ ПОСЛЕ КЛЮЧЕВОГО СЛОВа ссьеп В ОПЕратОрЕ авве. Базовые конструкции моделей не языке )тНШ Описание тела пакета может содержать описание дополнительных типов, подтипов, констант и подпрограмм. Все описания, выполненные в декларативной части пакета, автоматически видны в его теле. Описания сигналов в тело пакета включаться не могут. Для того чтобы каждый раз при использовании объектов, расположенных в пакетах, не указывать их полное имя можно (как и для библиотек) использовать условные ссылки.
В этом случае условная ссылка имеет следующий синтаксис: еае 11)окату папе.раскес паве.(1оепс1т1ет ! спапассеп 11сепа1 )оретасот аувоо1 ) а11); ГдЕ: 11Ьтапу паве — ИМя бИбЛИОтЕКИ. ДаЛЕЕ СЛЕдуЕт ИМя ПаКЕта рас1е1 пагпе, затем имя ьоепсьй1ет внутри пакета. Описание поведения объекта моделирования Сигнал, как элемент программы на ЧНОЬ, характеризуются парой: значение + время (модельное), в котором сигнал имеет это значение. В программе на ЧНьтЬ сигнал меняет свое состояние в результате выполнения специальных операторов присваивания значений сигналам, определяющих новое значение сигнала и момент модельного времени, в который это изменение произойдет.
Несколько утрируя, можно сказать, что все функционирование объекта, специфицируемого на языке ЧНгзЬ, сводится к формированию этих пар (значение + время) для сигналов, определенных в системе. Цифровые устройства функционируют непрерывно и параллельно. Множество компонентов схемы работают одновременно, формируя значения определенных сигналов. В результате в моделируемом устройстве параллельно, в физическом времени, происходит множество изменений состояний сигналов.