Суворова Е.А., Шейнин Ю.Е. Проектирование цифровых систем на VHDL (2003) (1095892), страница 30
Текст из файла (страница 30)
Простейший синтаксис описания блоков имеет следующий вид: Ыоск 1аЬе1: Ььосх [(дпатс(ес ехртеввьоп)] [ав] (Сес1ахаТьее 1Тет) Ьедап (сопспттепТ вТаТетепТ) етх( Ь1оск [Ь1осх 1аЬе1]; Здесь: [] ь1осх 1аье1 — идентификатор, имя блока (метка в описании блока обязательна); О Сес1атаТгее ТТеа — раЗдЕЛ дЕКЛарацИИ ЛОКаЛЬНЫХ ПЕРЕМЕННЫХ, КОН- стант, подпрограмм и др. составляющих блока; О дпатсес ехртеввьоп — СтОрОжЕВОЕ ВЫражЕНИЕ.
142 Глава 3 ТЕЛО бЛОКа, ОбраМЛЕННОЕ Ьедяп ... епст Ьзое(с, ВКЛЮЧаЕт ИСПОЛНяЕМЫС операторы. Сторожевое выражение — выражение булевского типа, которое служит дяя определения значения описанного внутри блока сигнала, называемого сл[орожем [лиагс[). Этот сигнал виден только внутри блока. Обращение к нему я явном виде, по имени, для модификации его значения или присваивания его какому-либо другому обьекту невозможно„можно только использовать его значение в выражениях и проверять. Если в ходе моделирования изменяет свое значение какой-либо из сигналов, входящих в состав сторожевого выражения, то значение сторожевого сигнала диагсз немедленно пересчитывается. Механизм сторожевых выражений родственен механизму охраняемых присваиваний значений сигналам. Использование механизма сторожевых выражений позволяет сгруппировать внутри блока операторы присваивания, для которых условие выполнения включает в себя общий компонент.
Роль сигнала диега подобна роли списка чувствительности для процесса. Например (листинг 3.32). ' Листинг 3.32 гед геас[ ае1ессогс Ьзое(с (гед ае1='1' апся геас[='1' [ 1е педзп слсиа <= тедО еьеп диагс( апС[ гед ас[с[г=' О ' в1ее гед1 ъйеп диагс[ апй гед ас(с(г='1' е1ее "г...а"с епд Ъ1ое[с гед геас[ ае1есгогс В приведенном примере значение с[ьиа будет пересчитываться каждый раз пря изменении значения сигнала гед ае1 или аа, входящих в состав сторожа. Охраняемые присваивания новых значений сигналам Основная функция сторожевых выражений в блоке — управление операциями присваивания новых значений охраняемым сигналам.
Если выполняется параллельный оператор присваивания нового значения сигналу, являющемуся охраняемым, то должен использоваться охраняемый оператор присваивания значения сигналу. Оператор присваивания сторожевого сигнала может быть двух типов: П условный оператор охраняемого присваивания значения сигналу; паясе <= [диагС[вС[[ [с(е1ау ясесЬапгаяс[ (ссаиегогса епеп [соо1еап ессргеаегоп е1ее[ еаиегогса [еьеп Ьоо1еаи ехргеаазоп[; (43 Визовые конструкции моделей на языке И 101 (3 селективный оператор охраняемого присваивания значения сигналу.
е1СЬ ехртеяв1оп ее1еот пате <= [диагйей) (с[е1ау тесиап1вп) (ыаееготп ньеп сио1сев,) еаееготп ньеп сиоасев; Внешне данные операторы отличаются от других наличием ключевого слова ваагаеа. Это означает, что такой оператор выполняется, когда сигнал- сторож меняет свое значение. Если с помощью такого оператора определяется значение сторожевого сигнала [т.
е. меняется значение какого-либо сигнала, на базе которого и происходит это определение), то, если сигнал- сторож меняет свое значение с ттпе на иазве, драйвер сторожевого сигнала автоматически отсоединяется с использованием нулевой транзакции. При изменении значения сигнала-сторожа с газве на ттпе драйвер вновь присоеди н я ется. В качестве примера рассмотрим работу триггера-защелки. Когда сигнал епаые='1', то значЕНИЕ (На вХОдЕ) ЗащеЛКИВаетея И передается На вЫХод; В противном случае состояние выходного сигнала с[ остается неизменным вне зависимости от изменения входного сигнала с).
Листинг 3.33 иллюстрирует подобную ситуацию. [ Листинг 3.33 епт1еу 1атси 1в депег(о (еЫтЫ ров1т1~те) з роге (епаь1е: 1п Ыт; о: 1п Ыт еестот (О то еЫСЬ-1); оис ЫС еестот(0 со нЫти-1); ег( епс1еу 1атс)п атсЫСеоеиге Ьеиае1от оя 1атсь 1в Ьед1п ттапвтет соптто1: Ь1ос)т (епаь1е='1') 1а Ъед1п ч <= дпагааа с[з епа Ь1оо)в Стапвтет соптто1з евз атоМсеоеиге Ьеьае1ота1з Другой пример приведен в листинге 3.34.
Рассмотрим архитектурное тело для процессорного узла мультипроцессорного компьютера. Пусть аиптевв ьпв — сторожевой сигнал типа ыт еестот. Блок, помеченный савве то аоотевв Ьпииет, ИМЕЕТ ВЫражЕНИЕ-СтсрОж, КОтсрОЕ ПрИНИМаЕт Зиа- Глава 3 (44 чение стае, когда содержимое. блока саяье го аддтеяв ьпяяет становится НЕВЕРНЫМ И бЛОК трЕбуЕт ЗаМЕНЫ (дятсу= 1 ). Ках ТОЛЬКО ПрОИСХОдят КаКИЕ- либо изменения в значениях сигналов, на базе которых определяется значения сигнала аддтеяя ьпя, сразу вычисляется его новое значение, которое помещается в источник.
Однако источник является подключенным только пря значении сторожа ат е, при этом значение источника сигнала видно в модели. Аналогично функционирует блок впоор ао аддтевв ьпягет. Логическис выражения-сторожа построены таким образом, что только одно из них в конкретный момент принимает значение гтпе.
Таким образом, в каждый момент ВРЕМЕНИ аддтевя Ьпя оказывается связанным только с одним из своих драйверов. 'Листинг З.И" . ': .':;...:;:.: '; .;,.:.", ',; ' агаьягеогоге дасат1асс оя ртоаеявот поде 1в вядпа1 асЫгевв Ьпвс тево1ссе ппьдпе еогд Ьпе Ьедяп сасне го асЫтевв Ьаттетс Ь1оо)с(саспе ясьяя='1' епд дьггу='1') ае Ьедьп асЫс.еяя Ъпв<=дпагдед Сад яеат1опОавет ьпдехав"0000" еьеп тер1асе весгьоп='0' е1ее сад весс1оп1авег япдехав" 0000" с впд Ь1ос)с саапе то асЫгевв Ьптсет; впоор то аддтевя Ьптс: Ьаоо)с (впоор пят='1' апд т1ад ардаге='1') ае Ьедзп асЫтевв Ьпя<=доагдед впоор асЫтеяя(31 довпео 4) а В" 0000"; епд Ь1оо)с впоор Га асЫтевв Ьптяс епд агаьяееоепгв дагая1ое; Если операторы присваивания значения сторожевого сигнала используются для определения значения сигнала, не являющегося сторожевым, это нс вызовет сообщения об ошибке, но и действия по отключению и подключению драйвера выполняться не будут.
Явно определенные сигналы-сторожа Описанный выше механизм неявного определения сигналов-сторожей ня базе сторожевых выражений, задаваемых в заголовке описания блока, оказывается недостаточным для многих моделей. ЧНРЕ предоставляет и более общий механизм для определения сигнала-сторожа — механизм явного олределения сигнала-сторожа.
ивовые конструкции моделей на языке УНР1. Зри явном определении сигнал-сторож также имеет булевский тип. При вменении его стив > га1яе драйверы сторожевых охраняемых сигналов яКЛЮЧаЮтСя, а ПрИ ИЗМЕНЕНИИ Га1ве > Стив — ПОдКЛЮЧаЮтСя. евно определенный сигнал-сторож обязательно должен носить имя диета.
~го действие распространяется на всю область его определения и, соответтвенно, в этой области не может быть другого сигнала-сторожа. 3рямер приведен в листинге 3.35. 'Лвотвнго,ве: ' '.:";: воштеоеиге аЬвггаст. от сошригет вуягеш 1в в1дпа1 асИтевв Ьивс гево1че шотст еогй Ьив; в1дпад Ьо1<1 геоПЬЫ; шдгп ори: Ь1оок 1в в1дпа1 диатйс Ьоо1еап:=та1ве; вгапа1 ори гпсегпа1 асИгевв: новос Ьедгп ори аббтеяв бттиетт асИтеяя Ьия<=диагоео сри гпсегпа1 асИтевя; -- остальные источники сопсго11ет: ргооевв 1в Ьед1п — отпределяет когда ори Ьия сттгчетв=д1ваЬ1е дна гст< = та 1 яе с иаас оп с3Лс ипИ.1 Ьо1б гед='0' впо с1К='1' с диатст<=стив; -- раврешение источников Сри епо ргооевв сопгго11ег; впа Ь1оок ори; -- далее могут следовать описания других блоков, входящих в состав истены ша атсьдпеспиге аЬяттасг; 'подель компьютерной системы включает в себя срц и контроллер прямого ~сступа к памяти.
Контроллер прямого доступа к памяти выставляет сигнал тога тед, КОГДа ему нужно работать с памятью. В этом случае СРЦ завершая текущую операцию и отсоединяет свои драйверы, затем он выдает под,верждение на использование шины. Адресная шина описывается сигналом :ри асигеяв бггчег. Сигнал диета контролирует этот сигнал. Процесс .епгто11ег ОПИСЫВаЕт уПраВЛяЮщуЮ СЕКЦИЮ СИГНаЛа Срц, ОН уПраВЛяЕт :агналом диагб. (4Е Глава с Спецификация отсоединения (д!асоппес$) Иногда в моделях бывает необходимо включить механизм задержек в оператор определения значения охраняемого сигнала (например, когда с этих сигналом может выполняться неявная нулевая транзакция в результате изМЕНЕНИя ЗНаЧЕНИя СИГНаЛа дпяяд).
Для включения механизма задержек в работу с охраняемым сигналом ис-! пользуется слгцид?икация отсоединения с определением механизма задержек. Она имеет следующий синтаксис: дкяееппеее (я?дпя? пассе (,...) ) ееьеяя ! а11) с суре сяаг)с адеея С?пе ехргеяя?еп; Этот механизм позволяет для каждого сигнала из списка определить задержку, которая будет ему соответствовать при неявном выполнении для него нулевой транзакции. Такое определение никак не воздействует на выполнение явно описанных транзакций с сигналом.
Спецификация отсоединения должна быть включена в тот же список описаний, в котором описаны использованные в ней сигналы (листинг 3.36). :', Лйестииг 3.36 якяпа1 пася даса Ьпяс сеяо)чяд иосд Ьпяс д1яееппеее скет даТа ряс геяо1чяд ссояд асееп 3 пя; алеся ссг Ьис1с Ьзее)с (пяся яе? епд ссяя? яя??е) 1я Ьяякп пеп1 даТа Ьия<=яеаядяд явдвес 2 пя 1пяеяпа1 саяь д Ьия асеея 4 пя; епд Ь1ее)с ссяя( ссг асс; Пока сторож имеет значение сгпя, значение сигнала саяь д ьпя будет копироваться в сигнал спея? дага Ьия с задержкой 4 нс., при минимальной дЛИтЕЛЬНОСтИ ИМПуЛЬСа 2 НС. ПОСЛЕ ТОГО КаК Стсрсж ПрИМЕт ЗНаЧЕНИЕ Гя?яя, источник отсоединится с задержкой 3 нс.; однако значение самого источниКа будЕт ИЗМЕНятЬСя В СООтВЕтСтВИИ С ИЗМЕНЕНИЕМ еяяь д Ьпя.