Суворова Е.А., Шейнин Ю.Е. Проектирование цифровых систем на VHDL (2003) (1095892), страница 25
Текст из файла (страница 25)
Четыре оператора назначения компонента создают в структурном описании архитектуры асгисс для описываемого объекта гедьаеег 16 ЧЕтЫрЕ КОМПОНЕНта-эКЗЕМПЛяра оДНоГО И ТОГО же тиПа: лед О, пед 1, яед 2 и яед з. Назначение выполняется для каждого компонента в отдельности. Можно ассоциировать отдельные самостоятельные сигналы с элементами сигналов, совпадающих с ними по типу или, наоборот, ассоциировать элементы сигналов с отдельными сигналами, совпадающими с ними по типу, Ках ЭтО ПрОдЕМОНСтрнрОВаНО В ЛИСТИНГЕ 3.18. СИГНаЛЫ с(ага ьо И с(ага осе ассоциируются с фрагментами сигналов оаса16 ьс и сзаса16 оцс.
При описании объекта моделирования можно задать знпчения входных сигналов но умолчанию. Тогда, при использовании этого объекта в качестве компонента другого объекта, значения этих сигналов для него можно не задавать, а указать слово арво. В этом случае для них будет использоваться значение по умолчанию. Для выходных и двунаправленных сигналов также может использоваться ключевое слово орем. Если это описание применено к выходному сигналу, то значение, принимаемое им, в модели игнорируется. Этот сигнал можно вообще никак не описывать, однако его описание облегчает понимание модели.
Если описание орво применено к двунаправленному сигналу, то внутри объекта используется значение, которое этот сигнал имеет по умолчанию, а вие объекта этот сигнал не используется. Оператор генерации (Оепега$е) Если объект моделирования включает в себя много однотипных компонентов, назначения для них имеют сходную структуру.
В модели они занимают много места и затрудняют ее понимание. Оператор генерации двовгаев позволяет в этом случае более компактно описать модель. Он позволяет организовать цикл с параметром, с однократным параметризованным описанием внутри, на базе которого будут сгенерированы описания для всей группы однотипных компонентов. Фактически это некоторая форма макрооператора в языке з(НЕ)Ь. базовые конструкции моделей на языке МНР1 117 Оператор генерации имеет следуюший синтаксис: оговор 1аЬе1: Еог 1пйек 3л гапде депегаге е1епепг 1аЬе1з сояропепг папе [депегас свар (депегзс ассовьагтоп 11вг)] [рогг пар (рогг ассояз.ас3.оп 11вс)] епй депегапе [Огопр 1аЬе1]з Допускается вложенность операторов генерации.
С использованием этого оператора описание того же шестнадцатиразрядно- ГО рЕГИСтра гед1ясег 16 МОжЕт ПрИНятЬ СЛЕдуЮШИй Внд (ЛнотИНГ 3.19). Листинга.19 Епгзеу гедаясег 16 1в Роге(йаса16 Епзззз втй 1одтс зтесгог(15 йсезвго 0]; Паса16 оис: опг втй 1одзс зтессог(15 йоевео О); Хгеп16зап ясй 1одзс; кйеп16зап ягй 1одз.сз С]зс1бзап всй 1одьс)з Епй гедзясег 163 Егсвзсесгпге вегасе оЕ гедьясег 16 Ев Ссвропепг гед1ясег 4 Ев Роге(йага ]п:Зл вгй 1одтс уесгог(3 йоепео О) оаеа опе: опп ясй 1од3.с гессог(3 йоевго О) Игеп:Еп ввй 1сдз.с; кйепзап ягй 1одьс; 01)сзап вгй 1одз.с); Епй ссарсвзепг 3 еед]л Редз.всегяз Еог 3. Егсвв 0 Ео 3 депегаге Кедз гедзвсег 4 Роге вар(йага зп =>йага16 Еп( (за1) *4-1 йо>взео з.*4), йаса оис =>йаса16 осе((1в1)*4-1 йаепго 1*4), агап=>зсгеп16, Кйеп=>гйеп16, с1К=>с1Х16)з взй депегаее кедгвгегяз Епй агсЬАГесгпге всгпсс; Как видно из этого примера, оператор депегаее позволил сделать модель существенно более компактной (сравните с листингом 3.18).
Рассмотрим использование депегаее в этом примере. Группе четырехразрядных регистров присвоена метка кед1ягегя. Типовому оператору назна- Глава 3 ((в чения регистра внутри группы присвоена метка код. В операторе депвяаеа организован цикл от 0 до 3 (по количеству регистров, которое необходимо).
Переменная цикла — 1. На базе этого значения определяются конкретные фрагменты входного и выходного информационного сигнала шестнадцатиразрядного регистра, который связывается с входными и выходными информационными сигналами конкретных четырехразрядных регистров. Ня базе значения переменной цикла определяется конкретный фрагмент сигнала шестнадцатиразрядного регистра, с которым ассоциируется соответствующий сигнал четырехразрядного регистра. В результате такого описания на информационный вход четырехразрядного регистра с номером О будет подаваться паев ьп ( з поепео о ), на вход регистра с номером !в с(аеа ьп(7 ооепсо 4) И т.
д. При таком способе генерации компонентам-экземплярам средой моделирования присваиваются уникальные идентификаторы, состоящие, как правило, из обшей метки компонента (в рассмотренном примере — кад) и порядкового номера. Однако единого стандарта не существует, и конкретная форма идентификатора зависит от используемого инструментария. Существует также условная форма оператора двпеяаев. 1аЬв1: 1я Ьоо1еап ехрхеяяьоп депвяасе (сопсихеепс яеасяпапся) епй двпеяасе (1аЬе1); Секций в1яв и в1явхй условная форма оператора двпвяаее не имеет. Как и обычный оператор назначения компонентов, оператор депеяаее является параллельным оператором.
В теле самого оператора депвяаее также могут быть указаны только параллельные операторы. Пример структурного описания в ОгСА0 Ехргеаа 9.1 В ОгСАО Ехргеяя существует возможность автоматической генерации структурного описания на языке УН(3(. на базе имеющегося рисунка схемы ('см. гл. 6). Описание объектов, соответствующих компонентам, может располагаться в том же файле, что и описание структуры объекта моделирования.
Однако оно может быть расположено и в отдельных файлах, которые могут иметь структуру пакетов или самостоятельных моделей. В этом случае такие файлы должны включаться в состав проекта. Рассмотрим схему, включающую в себя два одинаковых элемента — последовательно соединенных инвертора (рис. 3.11). Порты входных и выходныя сигналов не определены, поэтому схема рассматривается как находящаяся на верхнем уровне иерархии. 5аэовые конструкции моделей на языке згН0с 119 02А 01А 7404 7404 Рис.
3.1 1. Принципиальная схема, структурное описание которой, сгенерированное с использованием ОгСАГЗ Еххргеяв 9.1, приведено в листинге 3.20 Описание схемы, приведенной на рис. 3.!1, сгенерированное с использованием ОгСА1а Ехргеяя 9.1, будет иметь следующий вид. Листинг 3.26 '; ..', ',, * ьхвааит геее 0ЯЕ 1ЕЕЕ.вс 1одзс 1164.в11; — Моде1 от 2 1пзгетсотв ЕИТХТУ ЯСНЕМАТХС1 ХЯ ЕИО ЯСНЕМАТ1С1; авсвхтестгзие ятепсттзве Ое яснемлт1с1 тя — СоитзОИЕБТЯ СезвзСВЗЕИТ 174041 1 Л з ХИ ятд 1сдЗ.С; О А з ООТ ятд 1ОЯЗ.СЗ чсс з хи втд 1одз.сз Онтз з ти вод 1одз.сз 1 В: ХИ ягд 1одзс; О В : ООТ ятд 1одзс; 1 С з ХИ втд 1одз.с; О С : ООТ вгд 1одьс; 1 Р: хи ягд 1одз.с; О О з Овт ягд 1одгсз 1 Е: ХИ ятд 1од1с; О Е : 00Т вод 1одзсз 1 Е з 3И ясд 1од1сз О Е з ОтЗТ ятд 1одзс вхеиаь охсад илияедзятд 1одзсз 81ВИаь И00009 : яед.
1од1сз Вхдиав И000ЗЗ : ясд 1одгс; ЯХВИЬЪ И00036 з вод 1одз.сз ВТЗВВЬ ОИО з ятд 1сдЗСЗ Вхднаь чСС : ятд 1одтсз Глава Э ОАТЕ 1МЯТАМСЕЯ ВЕОХИ В1 : 174041 Р(Е(т ИАР( 1 А я> М000ЗЗ, О А => М00009, чсс => исс, О)90 => юл», 1 В => огсай ипивей, О В => ОРЕИ, 1 С => огсай ипивей, О С => ОРЕМ, О П => ОРИИ, О Е => ОРИИ, 1 Р => огсас) шшяей, О Р => ОРЕМ 02 : 174041 РОЕТ ИАР( 1 А => М00009, О А => М00036, ЧСС => ЧСС, ОМВ => ОМВ, 1 В => огсай ипияей, О В => ОРЕМ, 1 С => огсай ипивей, О С => ОРЕМ, 1 В => огсай шшвес), О Р => ОРЕМ, 1 Е => огсай ипияей, О Е => ОРЕМ, 1 Р => огсай шшяей, О Р => ОРЕМ 1Иааву теее; иве Зеее.ясй 1одтс 1164.а11; иве теее.пипегтс вой.а11; епе1пу 174041 тв Р(е(т ( 1 А чСС 1 В 1 Е 1 Р ) епй; 1 О => огсай ипияей, 1 Е => огсай ипивей, ХИ всй 1одтс; О А ТИ всй 1од1с; ОМВ ЗИ вс 1од1с," О В 1И вой 1одтс; О С ТИ впй 1одтс; О П ХИ ясс3 1одтс; О Е 1И ягй 1одтс; О Р : оот ягй 1одтс; 1И ягй 1одтс; Оот всй 1091с; оит вой 1одтс; ООТ яс 1одтс; ООТ вгй 1одтс; ООТ яий 1одтс Базовые конструкции моделей нв языке УНО~ згав4ееоееге 'ое1миаог ог 174041 1в — р1асе ссапропепс с)ес1агасъопв 1а агсЬ1сессше Ьос)аев Ьепоге Ьедьа Ьаяве ргааевв (1 л) ЬеФП О Л<= еос (1 А) з еад геееевв; Обратите внимание на описание объекта моделирования: ЕСТ П( БСНЕМАТ1С1 1$ ЕХ0 ВСНЕМАТ1С1; — в нем отсутствует секция портов.
Такое описание допустимо только на верхнем уровне иерархии. Поскольку внутренним линиям связей не были присвоены специальные имена, в схеме используются имена, присвоенные ОгСА0 Ехргевв автоматически, по умолчанию: ХОООЗЗ вЂ” входной сигнал компонента О1, Х00009— выходной сигнал компонента ~l! и входной сигнал компонента ()2, Б)000Зб — выходной сигнал компонента ()2. Задание конфигурации компонентов В общем случае объект моделирования может иметь несколько различных описаний архитектуры (или, как иногда говорят, "архитектурных тел"): Это может быть связано как с разным уровнем детализации представления моделируемого объекта — от алгоритмического поведенческого описания до летальной схемы в базисе конкретной технической реализации устройства, так и с наличием многовариантных реализаций проектируемого устройства, его узлов и их моделей на ЧН01..
Тогда возникает вопрос, какое из этих описаний должно использоваться в модели, содержащей данный объект в качестве компонента. Для указания этого используется конфигурация — ассоциация (связывание) объекта моделирования с одним из его описаний архитектуры. Использование конфигурации позволяет легко менять описания архитектуры, связанные с объектами моделирования, создавать очень гибкис модели. Конфигурация может быть задана или в форме конфигурационной декларации, или в форме конфигурационной спецификации.
Конфигурационная спецификация При структурном описании архитектуры объект описывается как структура иэ объектов-компонентов. Компонент включается в эту структуру операто- рОМ НаЗНаЧЕНИя КОМПОНЕНта (апагапсьас1оп), СОЗДаЮЩИМ ЭКЗЕМПЛЯР КОМ- понента в описываемой структуре.
Тип генерируемого компонента- экземпляра предварительно декларируется конструкцией декларации компонента сотропеаг ... 1в. Однако, как видно из описания этих конструк- )гг Глава 3 ций в предыдуших параграфах, ни декларация компонента, ни оператор назначения компонента не задают его архитектуру. Это логично, так как по самой идее компонентов, они являются отдельно описанными моделями некоторых устройств, узлов.
В этом отдельном описании и определяется архитектура объекта, используемого здесь как компонент. Соответственно, во-первых, нужно иметь средства для того, чтобы связать тип включаемого компонента с моделью этого компонента, которая задает не только внешнюю декларацию, но и описание архитектуры этого компонента. Во-вторых, как неоднократно подчеркивалось, одному объекту может соответствовать несколько альтернативных описаний архитектуры, и для компонента, включаемого в структурное описание, нужно выбрать, какое конкретное описание архитектуры здесь использовать.