Суворова Е.А., Шейнин Ю.Е. Проектирование цифровых систем на VHDL (2003) (1095892), страница 27
Текст из файла (страница 27)
Если у реального объекта их меньше, чем у присоединяемого, то задаются значения по умолчанию. Связывание по умолчанию Предусмотрены также правила связывания компонентов-экземпляров с объектами и их архитектурными телами в случаях, когда в конфигурационных спецификациях и декларациях модели отсутствуют явные указания для связывания. Это правила связывания по умолчанию. Если для компонента, декларированного в структурном описании архитектурного тела, нет явных указаний для связывания, то автоматически ищется !гв Глава 3 объект моделирования с тем же именем, что и компонент. Если он найден, то связывание компонента производится с ним. Если для найденного объекта имеется несколько архитектурных тел, то для связывания используется то, которое компилировалось последним. Если по указанным правилам не удается найти объект для связывания с ним компонента, то связывание считается отложенным.
Отложенные присоединения компонентов Отложенные (бе(еггед) присоединения компонентов используются, когда на момент моделирования разработаны еше не все компоненты. Это нередко происходит при моделировании сверху вниз. В этом случае при моделировании следует учитывать, что входы такого компонента не используются, а выходы остаются не присоединенными. Отложенное присоединение компонентов указывается в секции ььпдьпд ьепьсаеьоп и имеет следующий синтаксис: ввв орел.
Вычисляемые сигналы. Разделяемые сигналы и функции разрешения коллизий В схемах могут возникать ситуации, когда несколько выходных сигналов объединяются в один. В результате получается сигнал, формируемый множеством источников, причем разные источники могут присваивать сигналу различные значения. В этом случае возникает необходимость определения результируюшего значения для этого сигнала. Например, в реальных цифровых устройствах на уровне физических сигналов реализуется формирование результируюшего значения сигнала, что на уровне логических сигналов проявляется как выполнение над сигналами-источниками некоторой логической операции, называемой операцией монтажной логики, (в англоязычной литературе термин вчгед !оя!с).
В модели на ЧНР). мы должны запрограммировать такие логические операции, для чего и используют механизм вычисляемых сигналов. В модели на ЧНР)., когда одному и тому же сигналу соответствует несколько источников, говорят, что эти источники разделяют (в смысле совместно используют) данный сигнал. Такие сигналы называют разделяемыми сигналами (я)затей я!япа!я). Источники одновременно присваивают сигналу значения, возможно, различные. Необходим механизм однозначного разрешения таких коллизий и определения результируюшего значения разделяемого сигнала. Базовые конструкции моделей на языке УНО(.
129 В языке ЧН01 предусмотрено разрешение коллизий, связанных с разделяемыми сигналами. Как разрешается коллизия, какое формируется результирующее значение разделяемого сигнала, определяется специальной функцией, называемой функцией разрешения (коллизий) — тело!итюк 1илст!он. Разделяемые сигналы в модели объекта должны быть декларированы как сигналы специального типа — тезоЬес( (уре, тип сигнала с разрешением коллизий. Назовем такие сигналы вычисляемыми сигналами (прямой перевод, т.
к. термин "разрешаемый сигнал" кажется нам неудачным). В отличие от обычных сигналов, при декларации вычисляемого сигнала указывается не только тил, но и функция, на базе которой будет определяться значение сигнала. Описание вычисляемых сигналов Описание вычисляемого сигнала имеет следующий синтаксис в1СШа1 пате: (тево1пеъоп тппсС1оп паве! Суре )сатк [ваада (тапде аест3Ьпсе пате в(зср1е ехртеввьоп (ео ! йоапсо) в3лр1е ехртеввзоп)( (с)1всхесе кипе (,...))] Здесь: 0 идентификатор суре панс задает имя типа для определяемого сигнала; (З ИдЕНтИфИКатОр тево1пеьоп Сппсе1оп пате — ИМя фуНКцИИ, ИСПОЛЬЗусмой для вычисляемого сигнала. Функция разрешения коллизий, ассоциированная с разделяемым сигналом, его описанием, вызывается всякий раз, когда какой-либо из источников выполняет оператор присваивания нового значения сигналу.
Сигнал существует непрерывно в модельном времени, и то, что другие источники в данный момент не изменяли значения на своих выходных портах, связанных с данным сигналом, не означает, что там "ничего нет". Такая ситуация означает, что на этих выходах сохраняются прежние значения. Соответственно, функция разрешения коллизий анализирует текущие значения сигнала от всех разделяющих его источников и вычисляет результирующее значение, которое и становится значением разделяемого сигнала. Функция разрешения коллизий должна быть написана так, чтобы порядок, в котором в ее теле анализируются значения сигнала от множества источников, не влиял бы на результат работы функции. Отметим, что функция разрешения коллизий в описании вычисляемого сигнала указана только своим именем.
Сама функция описывается отдельно. Одна функция разрешения коллизий может использоваться для многих вычисляемых сигналов. Глава 3 В листинге 3.24 приведен простой пример описания вычисляемого сигнала. !'Лийтийт3.24. ':,:,;,- ':.:::::;:-:;.: --.".;;!:с.. '!) ' -- используемый в примере базовый тип сигнала Суре Пгь яеапе 1одьс 1в ( О , 1, а ); суре сгь всвое 1од1с агг 1в аятау (1пеедех вводе <>) оя сгь всасе 1одьс; -- описание вычисляемого сигнала я1 вьдпа1 я1: геяо1че Пгу япапе 1одьс Пгь ясапе 1од1с; -- описание фунхция формирования значения лля вычисляемого сигнала яипсваоп гево1че Пг1 яеасе 1од1с (ча1пея: 1п Сгь ясасе 1одьс агг) яесчяп Сгь вяапе 1од1с 1в чая1а)з1е геяи1с: сгу впаяя 1одьс."='Е'; Ьедлп воя ьпдех ьп ча1иея'галде 1оор 1Л ъа1иев(ьпдех)/='Е' Ев~з геви1С := ча1пея(видех) епд 1я; епа 1оор) хеечяп геяп1с; епс ячпсМоп геяо1че Сгь впапе 1одьс; В данном примере декларирован сигнал в1.
Описана ситуация, когда результирующий выходной сигнал определяется на базе массива выходных сигналов, каждый из которых может принимать значение логического О, логической ! или находиться в высокоимпедансном (" третьем" ) состоянии. В массив входных сигналов входят все сигналы, от которых зависит значение результирующего выходного сигнала. Когда в модели изменяется один из этих сигналов, для определения значения результирующего сигнала выЗЫВаЕтея фуНКЦИя геяо1че Сгь вовсе 1одьс, УКаЗаННая В ОПИСаНИИ СИГНаЛа я1. Возвращаемое значение определяет новое значение результирующего СИГНаЛа СИГНаЛ я1.
Эта жЕ фуНКцИя ИСПОЛЬЗуЕтСя И ПрИ ИинцИаЛИЗацИИ СИГ- нала. Функция, описанная таким образом, как в приведенном ранее примере, не разрешает конфликтов, которые могут возникать, если сигналы в массиве приняли разные значения. Для описания поведения результирующего сигнала может потребоваться расширенный набор состояний. Тогда определяется таблица значений результирующего выходного сигнала в зависимости от значений сигналов в массиве; на базе этой таблицы и пишется функция. Вычисляемый сигнал может иметь не только простой, но и составной тип. Пример приведен в листинге 3.25.
Базовые конструкции моделей ня языке )тНП. .:', Листинг 3.25 '- рао)саде иотс)я ая Ся)е хо1г 5.в ( Х, '0', '1, '2')с Суре истотс) ав аттау (О Ео 31) от х01г; суре истого честит 1в аггау (пагига1 тапде <>) от иссогс)с гипседоп геяо1че иогс) (сопгг1Ьигтоп : ивогс) чесгог) тееигп ииотс); втьтуре ссотс) ав геяо1че ссогс) ииогс)т вса рас)саде стог<)я; рас)саде Ъойу иогс)я ав Суре ГаЬ1е ав агтау (х01т, х012) от х01я; сопягапг теяо1игтоп гаЬ1ес гаЬ1е:= сипсИ.оп геяо1че иогс) (сопи: исзогс) чесгог) гегигп ииотс) ав чят1аа>1е геяи1Г: иссогс) с = (ог)сете=> ' т ' ); Ьеддп сот тппех ап сопи'гавре 1оор Ест е1епепт ап иссотс)'гапде 1оор геви1Е (е1епепс! с = теяо1ис1оп ГаЬ1е (геяи1Г (е1епепт), сопит(ьпоех,е1етепг)); епст 1оор; епд 1оор; гесигп геяи1г; епа Еипсг1оп геяо1че ссогс); епа рас)саде Ьо4у стог<)я; Таким образом нередко описываются входные/выходные сигналы портов.
Порты объекта моделирования (порты — обязательно сигналы, а не константы или переменные) также могут иметь тип, описанный как вычислимый. Если эти порты связаны с вычислимыми сигналами внутри модели, то при определении значения последних сначала выполняется функция определения значения порта, а потом — функция вычисления внутреннего сигнала (порт и связанный с ним внутренний сигнал могут иметь разные функции). Если моделируемый объект имеет несколько уровней иерархии, то значение вычисляемых сигналов определяется сначала на самом нижнем уровне, за- 132 глава 3 тем передается на уровень выше и т.
д. Значение сигнала на верхнем уровне иерархии называется э44ективным значением. Вычисляемые сигналы могут использоваться в процедурах. Если вычисляемый сигнал является выходным, то после того, как в процедуре ему назначается новое значение, для него вызывается функция разрешения, которы и определяет его новое значение для модели. Если вычисляемый сигнал является входным, то в процедуре используется его значение, определяемое функцией вычисления. Существует определенное ограничение при использовании вычисляемых сигналов: новое значение может присваиваться только всему сигналу целиком, Присваивание значения для части сигнала недопустимо.