Суворова Е.А., Шейнин Ю.Е. Проектирование цифровых систем на VHDL (2003) (1095892), страница 24
Текст из файла (страница 24)
Оператор авввхе заменяет процесс, единственный операюр в теле которого выполняет контроль значения объекта и, возможно, заносит результат в отчет. Параллельный оператор авввее имеет следующий ."интаксис: [[аье1:1 аваева 'гхю1ееп ехртеее3.ап [хврохе ехрхеее3лхг! [вспгвххеу ехртеееьопы глава 3 При использовании этого оператора, в отличие от аналогичного процесса, логическое условие проверяется постоянно, а не только при изменении значений объектов, входящих в него, что позволяет организовать контроль не только значений сигналов, но и временных ограничений. Выражение, значение которого проверяется, ставится за ключевым словом аяявке ~утверждение), суть которого состоит в том, что заданное булевским выражением ьоо1еао ехрхеааьоп условие должно быть истинным. Если обнаруживается, что условие ложно, то это и есть "нарушение утверждения", о чем выдается сообщение.
Секция еерох.е задает выражение, значение которого (это может быть и текстовая строка) выдается при обнаружении нарушения проверяемого условия (например, на экране системы моделирования). Если секция херехе не указана, то по умолчанию выдается стандартное сообщение: "Аззегг чо!абоп" (нарушение утверждения). Секция ввчвтьех позволяет программисту самому определять уровень "серьезности" нарушения утверждений и, соответственно, далее управлять реакцией на него в соответствии с указанной категорией. Определены 4 категории нарушений: лосе (заметка), махпьод (предупреждение), ехкох (ошибка) и ваьзиее (отказ).
Структурное описание обьекта моделирования Компоненты Другим, альтернативным поведенческому описанию архитектуры объекта на УНР(., является структурное описание архитектуры. Структурное описание позволяет описать систему как совокупность компонентов — подсистем, объединенных сигналами. Подсистемы также являются объектами моделирования, но находятся на более низком уровне иерархии структурирования и представления проектируемого устройства.
Каждая подсистема, в свою очередь, может быть представлена совокупностью подсистем, и так далее, пока на каком-то уровне не будет задано поведенческое описание архитектуры компонента, или не будет использован предопределенный компонент. Рассмотрим конструкцию структурного описания объекта моделирования. Пусть описание имеет два уровня иерархии. Объект моделирования, находящийся на верхнем уровне иерархии, включает в себя 3 компонента (рис.
3.9). Базовые конструкции моделей на языке )1НШ Рис. 3.9. Конструкция структурного описания объекта моделирования Каждый компонент, используемый в структурном описании, должен быть сам описан как объект моделирования (епШу). Каждое такое описание может быть размещено в отдельном файле или библиотеке. Декларация компонента Для того чтобы один объект моделирования мог быть включен в состав другого объекта, его необходимо декларировать как комноненл) — оопропепе. Декларация компонента должна полностью совпадать с декларацией соответствующего ему объекта моделирования, но ключевое слово епедеу заменяется ключевым словом ооеропепе.
Декларация компонента имеет следующий синтаксис: стедкатепе ссгяропепс пате дв [депекдо [депеттс 1пеетеасе 11ве);] (рокс [роза 1пеетеасе 11ве);] епа ооаропепе [ссапрспепс папе]; Идентификатор сотр епс папе вводит имя компонента описываемого вида. Мы будем говорить о нем как о типе компонента. Как показано далее, в структурном описании архитектурного тела могут быть несколько компонентов (назовем их компонентами-экземплярами), к которым применима зта декларация. Декларация компонентов может размещаться в декларативной части объектов моделирования (наряду с описаниями типов, подтипов), но может быть Глава 3 [[2 расположена и в тех файлах, в которых описаны объекты моделирования, используемые в качестве компонентов.
Здесь можно провести аналогию с традиционными языками программирования — Роптал, С, Рааса! и др. Там мы декларируем переменные, структуры данных, функции прежде, чем использовать их в программе. Так и в структурном описании объекта (архитектуры объекта) на ЧНВ[ мы декларируем компоненты и сигналы прежде, чем специфицировать, как они связаны между собой в структуру, составляющую описываемый объект.
Включение компонента в модель обьекта (! пвФапМабоп) Структурное описание объекта моделирования, находящегося на верхнем уровне иерархии, состоит из так называемых назначений компонентов. В рамках этих назначений определяются фактические значения обобщающих констант и связи с другими объектами. В структурном описании объекта мы как бы собираем его из других компонентов.
Задав декларацию компонентов, мы как бы написали спецификацию проектируемого объекта, определив, какого типа компоненты в него ВХОдят. С ПОМОШЬЮ КОНСтруКцИИ ъпяеппе'сс'сп — ОПЕратОра НаЗНаЧЕНИя компонента, мы устанавливаем компоненты в проектируемый объект и связываем их в некоторую структуру.
Оператор назначения компонента имеет следующий синтаксис: зпвсапсъаезсп 1аье1з [сспхзопапе] ссязрспепс пазпе [даззвеъс язар (депехзс аявосзасзоп 1зяе)з] [роке зпар (росс авяссзьезоп 11яс)]; Операторы назначения компонентов, наряду с процессами и параллельными операторами присваивания значений сигналам, являются параллельно выполняемыми. Прежде всего обратим внимание на то, что в программной конструкции назначения компонента метка является обязательной.
В декларации компонента мы указали лишь тип используемого компонента. Компонентов такого типа в структуре описываемого объекта может быть несколько. Именно МЕтКа зпвеппезьсзсп 1я)зе1, уНИКаЛЬНая дпя даННОГО СтруКтурНОГО ОПИСания архитектуры объекта, фактически задает однозначное имя экземпляра компонента в специфицируемой структуре. Другому компоненту того же типа, также устанавливаемому (включаемому) в состав описываемого объекта, будет соответствовать свой оператор назначения компонента, с другой меткой.
Имя компонента ссязрспепс пате — это, фактически, имя типа компонента (определено декларацией компонента), а не имя экземпляра компонента в Базовые конструкции моделей на языке ) 1НР1 ".труктуре описываемого объекта. Ключевое слово сопзропепс в операторе назначения компонента может ставиться, но не является обязательным. Секция связей портов компонента роте зпар специфицирует связи данного компонента с сигналами объекта и портами других компонентов. Эти связи )адаЮтея СПИСКОМ ротс аявос1атзоп 11ят, КОтОрЫй СОдЕржИт СПИСОК фактических сигналов, связанных с портами компонента.
Он имеет слеауюший синтаксис: ( (ротс пазпе=>] (яздпа1 пазпе ! ехртевязоп ! ореп)) (,...) Каждый элемент в списке (сигнал) ассоциируется с портом объекта моделирования, описанного на один уровень выше, или с его внутренним сигнааом, или является независимым, что помечается ключевым словом орви. Так, ключевым словом орви следует помечать выходные порты компонента, которые не соединяются ни с одним сигналом или входом другого компонента. СПИСОК аепетас аяяосаатьоп 11ят СОдЕржИт фаКтИЧЕСКИЕ ЗНаЧЕНИя обобщающих констант и имеет следующий синтаксис: (сспятапс парез=] иа1ие ] (,...] Оператор назначения является параллельным оператором. Он задает компонент-экземпляр, который функционирует параллельно (в модельном времени) с другими компонентами-экземплярами и другими параллельными операторами в теле описания архитектуры объекта.
Рассмотрим, например, как на базе объектов моделирования — четырехразрядных регистров — может быть сконструирован новый объект моделирования — шестнадцатиразрядный регистр. Пример описания четырехразрядного регистра приведен в листинге 3.17. иотвнт ЗЛУ Впт1ту тед1ятет 4 Ае уатт(с)ата зпзеп ятс) 1одтс честит(3 дсезпео 0)з паса сит: оие ятс) 1од].с честит(3 аоеоео 0) итепзап ятс) 1одасз Мепз1п вес( 1од1сз С1)сзади ятс) 1одз.с) з Ипа тедгятет 4; ЗтсЬЕПеопитв тт1 оЕ тедгвеет 4 Ев В)дпвз с)атазвтс) 1од1с иестот(3 Свзипео 0); ввв1п зтпсввв (с3Лс) Глава ;' вед1п Хт с1)с'еззепт апй с1К='1' Е)зеп ХЕ хгеп='1' Е)зеп дата<=дага ).пз епй тез хй Кдеп='1' Е)зеп даТа опт<=дага е1ве дага опт<="2222" з Епй Ыз Ртооевв ргооеввз )Езй ато)засветите тс1з Пример описания шестнадцатиразрядного регистра, использующего четы рехразрядные регистры как компоненты, приведен в листинге 3.18.
~ ЛееьтзрйгЪ:,:$В:., ЕпЕХЕу гедаятег 16 Хв Роге(даса16 тп: Хп яед 1одтс иессог(15 йоапео 0)з Оага16 оигз оии ягд 1одзс иестог(15 йовпсо О) Хгеп16 сХп ятд 1од).сз Рдеп16:1п ягд 1одзсз С1)с16 з1п ясд 1од).с) з вазй гед1ясег 16; аго)з1теотите яггисг ое гед1ягег 16 Хв Ссакзопепт гед1ягег 4 Тв Роги(дага зпз1п ясд 1одз.с иестог(3 йовпио О) з пата оитз оит ягд 1од).с иестог(3 йовпто О) Хтеп:4п яг 1од).сз Кдеп:Хп ягд 1одзс; С1Кз1п ясд 1одзс)з Епй осзивопепи гедаятег 4; Кед 0: гед1ятег 4 Роте таровата 1п => даса16 тп(3 йсазпео О) дага оиг=>даса16 сит(3 йоапсо О), Хгеп=>хгеп16, Рдел=>тдеп16, с1)с=>с1)с16) Кед 1з гедзятег 4 Ротс язар(дага зп => дата16 тп(7 йоепто 4) дага сит=>дата16 оиг(7 йсавтсо 4), Хгеп=>хгеп16, Кдеп=>гдеп16, с1К=>с1К16) Кед 2 з гедвягег 4 Роги ввр(дата зп => дага16 зп(11 йсазпто 8), дата осе=>дата16 сит(11 йоапто 8), Хгеп=>хгеп16, Кдеп=>тдеп16, с1)с=>с1К16) Базовые конструкции моделей на языке ((Н01.
Кед 3: гедтагег 4 РогЕ вар(т)ага 1с=>дага16 ьс(15 сового 12) с(ага оиг=>с(ага16 оиг (15 ооиосо 12), Ыгес=>егеп16, яс)еп=>гсеп16, сзк=>с1Х16) впо агоъ1ееоеогв асгисс; Структурная схема гедьесег 16 приведена на рис. 3.10. В ЭТОМ ПрИМЕрЕ ОбЪЕКт МОдЕЛИрОВаНИя (гедъаеег 16), НаХОдящИйСя На верхнем уровне иерархии, строится на базе четырех однотипных компо- НЕНтОВ тИПа гед1егег 4, ПОЭтОМу В ЕГО ОПИСаНИИ ПрИСутетнуЕт ТОЛЬКО ОдНа декларация компонента.