Суворова Е.А., Шейнин Ю.Е. Проектирование цифровых систем на VHDL (2003), страница 33
Описание файла
DJVU-файл из архива "Суворова Е.А., Шейнин Ю.Е. Проектирование цифровых систем на VHDL (2003)", который расположен в категории "". Всё это находится в предмете "микропроцессорные системы (мпс)" из 8 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "микропроцессорные системы" в общих файлах.
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 33 - страница
В этом операторе определяется значение, возвращаемое функцией. Оператор гвепгп имеет следующий синтаксис: [1аЬе1з) гееогп ехргеввзоп Функции вида риге и хтригв. Функцию можно рассматривать как обобщенную форму оператора. Если мы в различных выражениях используем какой-либо оператор с одними и теми же параметрами, то оператор будет возвращать одно и то же значение. Но в случае использования функции базовые конструкции моделей на языке ИН)л' зто не всегда так, поскольку в ходе своего выполнения функция может работать не только со своими формальными параметрами, но и с глобально описанными переменными и сигналами объекта, внутри которого описана данная функция.
Иными словами, функция может иметь побочный эффект. Кроме того, учитывая, что язык ЧНПŠ— язык параллельный, то переменные и сигналы, внешние относительно тела функции, могут изменять свои значения между вызовами функции, что может повлиять на значение самой функции. Если такого влияния не должно быть, то перед ключевым словом вппсе1еп в описании функции должно стоять ключевое слово реев (буквально— чистая), что является гарантией того, что в результате всех вызовов функции с одними и теми же фактическими параметрами будет получен один и тот же результат. Если же это условие не обязательно, то используется ключевое слово 1ирпев, которое подразумевает, что при вызове функции с одними и теми же фактическими параметрами в разные моменты времени могут быть получены различные результаты.
По умолчанию, если в описании функции не указано ни рпев, ни 1аврпее, считается, что функция считаЕтСя 1ваепев. Функция а)оте. Примером функции 1ирпев является имеющаяся в языке ЧНП(. встроенная функция пои. Функция пои возвращает текущее время моделирования. Этой функции соответствует следующее определение: )в)аиев яппссаоп пои еесикп с)е1ау 1епдеп В процессе моделирования функция пои возвращает различные значения при вызове ее в различные моменты времени в процессе моделирования. ТИП с)е1ау 1епден яВЛястея ПОдтИПОМ Е1аае И ИСПОЛЬЗуЕтСя дпя ЗадаНИя НЕ- отрицательных отрезков времени. функция пои нередко используется для проверки соответствия входов модели задаваемым ограничениям. Так, с ее помощью можно отслеживать ситуации, когда значение информационного сигнала на входе триггера изменяется после прихода активного фронта тактового импульса слишком быстро, в результате чего это значение не может быть передано на выход.
Например, эта проверка может быть реализована в виде отдельного процесса (листинг 3.45). Лвстнит 3.46 рассеяв (с1)с, с)) ав чвкьеаа1в 1авс с1К ет)де С1летс1те := 0 Вз; с~авсвпс тпс1с) с) с1хп С)аае:4В Ев Глава 3 ЬвдХп Ая с1Х'ечвпе впа с1Х='1' Епвп 1аае с1Л воде Сгпв := пои; впа ья; 1х о'вчеос епвп авввке пов — 1аас с1к еодв сгпе >= тпо1о ц с1х корове "Ьо1о с1пе чьо1асьоо"; впа АЕ; впа ркоовав; В начале моделирования переменной 1аас с1к вода сгпв присваивается значение О. При каждом переднем фронте тактового сигнала ей присваивается значение момента времени, в который оно произошло. При каждом изменении информационного сигнала определяется разница между текущим временем и временем прихода последнего, на данный момент, активного фронта, значение которого хранится в переменной 1авс с1х вада сьпв.
Если разница мала, то в отчете формируется сообщение об ошибке, поскольку в реальной системе такая ситуация приведет к тому, что на выходе триггера значение входного сигнала не появится. Функции являются популярным механизмом в функциональном моделировании. В функции оформляют описание выполняемых преобразований нал данными, а вызовы функций используются в параллельно выполняемых операторах присваивания новых значений сигналам ~3]. Перегрузка процедур и функций При написании подпрограмм им обычно присваиваются имена, соответствующие выполняемым действиям, что значительно облегчает понимание программы.
Однако нередко оказывается„что одни и те же действия необходимо выполнять над разными наборами данных. Эти наборы данных могут отличаться типами отдельных элементов и их количеством. чН1ЭЕ предоставляет так называемый механизм перегрузки имен, который позволяет нескольким подпрограммам иметь одно и то же имя. Списки формальных параметров в описаниях перегруженных процедур илв функций обязательно должны отличаться друг от друга количеством илв типом элементов.
Когда в программе осуществляется вызов перегруженной подпрограммы, то тип и количество фактических параметров определяют, какая именно подпрограмма, по какому из описаний с одним и тем же именем, будет вызвана. базовые конструкции моделей нв языке )УН01. Например: У6У вЂ” определение функции 1 тгооволгв Епсгеззепс (аз Еполе УлзгеявгЗ пз Ел Елгвдвг :=1) Ев... — определение функции --2 Вгооедлге 1псгепепе (аз Елене ЫС ззесгогз пз Ел ЬЕЕ ззесеог з=В"1") Ев... ззаг1аЫв соцпг з.пЫ 1пееяег:=2з ззаг1аъ1в соцпс ьуз ьгс уессог(15 ззонпео О) з=х"0002"з Тогда при использовании зпсгепепс (соцпс Епс) будет вызвана процедура, помеченная номером 1, а при использовании зпсгепепс (соцпс Ьзт) будет вызвана процедура, помеченная номером 2. Перегрузка операторных символов ЕипоЫоп "+" (1еЕс, г10Ьсз Ел Ыг зтессог) геепгп Ыс уессог Еа пза ЕцпоЫоп "+" з Вызов этой функции ничем не отличается от использования оператора сло- жения: таг1аЫв а1,а2з ЫС уесеог (15 Еоилсо О); а2з=а1+Х"0002"з Видимость описаний Правила видимости описаний в ЧНРЬ достаточно традиционны для языков программирования.
Архитектурные объекты, процессы и подпрограммы состоят из двух частей: декларативной части и тела. Все описания, сделанные в декларативной части объекта, видны во всем этом объекте, но не за его пределами. Каждый оператор языка ЧНОЬ фактически является специальным образом определенной функцией. Каждый из них может работать с операндами определенных типов. Нередко при определении пользователем новых типов данных возникает необходимость расширить или изменить область применения операторов.
Это можно сделать, описав перегруженную функцию в соответствии с обычными правилами описания. При этом в определении функции, в качестве имени функции, в кавычках указывается обозначение перегружаемого оператора. Например: гег Глава 3 Рассмотрим пример (рис. 3.12, а). Области видимости объектов на рисунке ограничены линиями. Если на разных уровнях описания объекты получают одно и то же имя, то они рассматриваются как различные объекты, причем в рамках каждого уровня описания может использоваться только свой объект (см. пример на рис.
3.12, б). Переменная ч процедуры р1 не видна в процедуре р2, поскольку там она перекрыта лругой переменной с тем же именем. р1 х2 р2 чз !БЗ Базовые конструкции моделей на языке МНР1. Рис. 3.12. Области видимости объектов в описании Описание подпрограмм в пакетах Если в декларативной части пакета были сделаны описания процедур или сокращенные описания констант, то обязательно должно быть приведено описание тела пакета, содержащее полные описания этих объектов. Полное описание подпрограммы состоит из заголовка и описания тела. Заголовок полного описания в точности соответствует заголовку в декларативной части пакета (имя подпрограммы, имена, типы параметров и др.).
По умолчанию, в полном описании вид и значения формальных параметров должны полностью совпадать с параметрами, заданными в декларативной части пакета. Допускается только два отличия: Е) формы записей числовых значений могут быть разными, но при этом их значения должны совпадать; Е) простые имена могут быть заменены именами с указанием ссылки на библиотеку и, возможно, пакет (при условии, что эти имена соответствуют одному и тому же объекту). Файлы Файлы в проектах на ЧНгзь находят широкое применение.
Без файлов практически не обойтись при разработке и исследовании моделей проектируемых устройств. Файлы могут использоваться для хранения ланных, не- [64 Глава 3 однократно участвующих в моделировании, могут формироваться текстовые файлы для входных и выходных данных, и др. В языке ЧНР]. для работы с файлами введен специальный тип объектов— файловые типы а11а. То, что в ЧН0[. понятие файла включено в сам язык, а не оставлено на усмотрение среды проектирования и моделирования, является важным преимушеством, существенно улучшая переносимость проектов, выполненных на ЧНО].. Описание файла Описание 4пйлового типа имеет следующий синтаксис: суре Ше суре пате 1в в11е ов впЬсуре ъпоасасаоп; Описание обьектп 4ийлового типа имеет следующий синтаксис: Шв Ше пате 1в Ше суре пате [ [преп Ше ореп Кьпс] ехрпеввьоп] 1в всхьпд ехрпевваоп]," Здесь: 0 ИдЕНтИфИКатОр ГШе пате — ИМя ЛОГИЧЕСКОГО файЛа В МОДЕЛИ; [З ИдЕНтИфИКатОр Г11е Суре пате — ИМя файЛОВОГО тИПа; [З СЕКцИя орви свае преп Къпс] ехрвеввъоп ПОЗВОЛяЕт ОПрЕдЕЛИтЬ рЕжИМ открытия файла; [З СЕКцИя вев1пд ехрвевв1оп ПОЗВОЛяЕт СВяЗатЬ ЛОГИЧЕСКИЙ файЛ С КОН- кретным физическим файлом на диске.