Суворова Е.А., Шейнин Ю.Е. Проектирование цифровых систем на VHDL (2003) (1095892), страница 23
Текст из файла (страница 23)
Кроме того, специфицированный в операторе селективного присваивания набор условий должен быть полным, т. е. охватывать весь набор возможных значений, указанных в условиях сигналов. Избежать в условиях полного перечисления возможных значений проверяемых сигналов можно, используя ключевое слово оеьегв (все другие значения).
Пример приведен в листинге 3.!5. Листинг 3.15 епаьау яе11 Хв рога (даеа а, дага )я, дага с: ьп ясд 1одьс чесяог(0 Ео 3); ьяг : 1п Апаеяег:=1; дага сия; оаа яс 1ояьс чесСог(0 Ео 3)) агоЫ.георге ое)тачьог ог яе11 Ав 1 т ... оиго аг 103 Базовые конструкции моделей на языке (гНР1 Ьед1п иЕСЬ Еат ве1есс дата осе<= с(ага а ииеп 1, с(ага Ь инеп 2, с(аса с ииеп осиеав," апас На рис. 3.6 приведен пример временной диаграммы работы такого устройства. на~а а л Оа!а ь в он~э о с оа1э он~ к с в с Рис 3.6.
Пример временной диаграммы работы устройства, описанного а листинге 3.15 Примеры присваивания значений сигналам Пусть имеется объект, описание которого имеет вид, представленный в листинге 3.16. , Листинг ЗЛ6'::-:, ЬХВНЮЯХ (.еее; СВВ 1еее.вес( 1одЕс 1164.а11г ВВВ 1еее.псает1с аМ.а11; апсасу тт1 Ев роте(опта а, дата Ь : Еп Ептедет тапсе 0 Со 20; дата опт опе 1птедет саада 0 ао 20); ва( епСЕСХ тт1н атсЬЕСесеоте Ьеьатгьош оЕ тт1 Ав ртосевв (с(ата а, дата Ь1 Ьад1п с(ага онт <= дата а аЕЕет 1 пв, с(ага Ь авеет 5 па; апа ртосевв; ааа атсЬТсесапте Ьенал.опт; г04 Глава 3 Пусть значения входных сигналов определены следующим образом: паса а: О -Опя, 1-3пв, 3- 7пя паса Ь: 7 — Опя, 2- 2пв Результат моделирования представлен на рис.
3.7, а. СИГНаЛ с3аса опе ПрИНИМаЕт ЗНаЧЕНИЕ СИГНаЛа папа а ЧЕРЕЗ 1 НС. ПОСЛЕ ЕГО изменения, в моменты времени 4 и 8 нс. В момент модельного времени 7 нс сигнал с3апа опс должен принять значение сигнала паса ь, но этого не происходит, поскольку в этот момент модельного времени изменяется значение сигнала папа а, стоящего в списке присваивания первым. Время, указанное в операторе присваивания после всех ключевых слов айеев, отсчитывается от момента изменения объекта, стоящего в списке перед первым словом айеев.
Для сравнения изменим значения входных сигналов следующим образом: стаяа а: О -Опя, 1-3пв, 3- 7пя <3аеа Ь: 7 — Опя, 2- 2пя Результат моделирования представлен на рис. 3.7, б. Теперь выходной сигнал успевает принять новые значения в зависимости не только от сигнала а, но и от сигнала ь. Если перед словами айвев стоят объекты, не являющиеся сигналами, то при первом изменении любого сигнала, находящегося в списке чувствительности процесса, выполняется первая секция оператора присваивания значения, при втором изменении любого сигнала — вторая, и так далее, до последней секции; после чего вновь выполняется первая секция.
Заменим оператор присваивания в предыдущем примере на следующий: с3аса соя<=1 айаев 1 пя, 5 айвев 5 пя; Результат моделирования представлен на рис. 3.7, в. Из этого рисунка видно, что новые значения на выходе появляются в моменты времени, отсчитываемые от моментов изменения входных сигналов, указанных в списке чувствительности процесса. Если было запланировано выполнение очередной секции, но прежде произошло изменение одного из сигналов в списке чувствительности, то ее выполнение и переход к обработке последующих секций откладывается до очередного изменения сигнала, который изначально инициировал работу этой секции (рис. 3.7, г).
Необходимо учитывать, что оператор присваивания, включающий в себя несколько секций, не является эквивалентом нескольких операторов, каждый из которых включает в себя по одной его секции. В последнем случае будет выполняться только последний из этих операторов. Последовательности сзапа опе <= 1 айаев 1 пя; с3аяа оп< <= 5 айвев 5 пя; Глава 3 Если используется механизм ьваовроке, то при нескольких секциях в операторе присваивания этот механизм используется для каждой секции.
Если перед аваев указан объект — сигнал, то относительно него и производятся изменения (в отличие от случая, когда этот механизм не используется). Например, если в исходном примере оператор присваивания имеет следуюзций вид; васа оос <=Ьхапврохс оаеа а аскет 1 пв, овса Ь атьех 5 овз то будет иметь место диаграмма, представленная на рис. 3.8, в.
~,.:,ф~~!~',;-,~:;,'~ут,',ртч "д'%х') . з",~~', ';:,'',:„„:-н: "Ф'-'".~ „~;з о маь з о 1 а баа ои З О 1 5 О СЮ."~: ':=Э а аиа ь з о 1 я аиа оы 1 о го ба~а а з о з ° кс:~ з~х~:с а аиа оы б о з б Рис. 3.8. Временные диаграммы, иллюстрирующие различия при использовании одного оператора присваивания С НЕСКОЛЬКИМИ СЕКЦИЯМИ агьек и нескольких операторов приСВаиваниЯ базовые конструкции моделей на языке МНО) Атрибуты сигналов 107 Атрибуты сигналов используются для получения информации о событиях, которые происходят с сигналами.
Обращение к атрибутам имеет следующий синтаксис: з1япе1 пепе'асскз)гпсе пввкг Таблица 3.1. Перечень атрибутов сигналов Название атрибута Описание я'ае1ауеа (т) Сигнал, имеет то же значение, что и я, но задержанное на время т (если значение задержки не задано, то принимается дельта-задержка) я'все)гзе!т) Сигнал, имеет значение г гче, если в течение времени т сиг- нал не изменялся я Ччзес!т) Сигнал, имеет значение свое, если в течение времени Т к сиг- налу не было обращений Сигнал типа )зьг., переключается из "о" в "1" (или, наоборот) при каждом обращении к я я ' Ьевпвасе 1 оп Принимает значение схое, если в текущем цикле моделиро- вания происходило изменение сигнала я'ечепс я ' ааШге Принимает значение стае, если в текущем цикле моделиро- вания есть обращение к этому сигналу Интервал времени, прошедший с последнего изменения сиг- нала я ' 1еве ечепе Интервал времени, прошедший с последнего обращения к этому сигналу я'1вее всезче я'1еес ча1пе Предыдущее значение сигнала Перечень предопределенных в языке ЧНР(.
атрибутов сигналов приведен в табл. 3.1 (где я — имя сигнала). Обратим особое внимание на атрибуты (аезауеа„вевь1е, гзпзее, скепвеоыоп), значениями которых являются сигналы. Эти атрибуты создают новые сигналы в модели. В отличие от обычных, явно декларированных в тексте на ЧНР(. сигналов (ехр1!сй я!япа!я), генерируемые атрибутами новые сигназы — неявные (нпр!!сй я)лпа!я). Тем не менее, зти сигналы фактически генерируются в модели и могут быть использованы наравне с явно декларированными сигналами.
Так, например, их можно использовать в правой чисти операторов присваивания значений сигналам. [ов Глава 3 Операторы ожидания ваИ Как мы уже говорили, основным принципом управления запуском параллельных операторов, процессов в ЧН[)1 является управление по событиям изменения сигналов, инициирующих срабатывание параллельного оператора, для которого данный сигнал является входным. Этот принцип хорошо согласуется с характером работы комбинационных схем, где выходные сигналы зависят только от входных сигналов [271, и любое изменение входного сигнала может привести к изменениям сигналов выходных.
Однако, например, для синхронных последовательностных схем, схем с памятью тактовый сигнал определяет моменты, в которые только и могут быть считаны входные сигналы, влияющие на функционирование схемы, или же выданы новые значения выходных сигналов. Программные конструкции, соответствующие в модели схемам такого рода, их параллельные операторы могут запускаться на выполнение только в некоторые моменты модельного времени (или при определенных событиях, например, при выполнения условий, определяемых для некоторой совокупности входных сигналов). Конечно, и здесь можно было бы применять тот же принцип управления запуском параллельных операторов, но это часто приводило бы к выполнению очевидно лишних циклов моделирования, тем самым существенно его замедляя.
Введение более развитого, программно управляемого механизма запуска параллельных операторов позволяет решить эту проблему, причем я терминах, близких к содержательной стороне функционирования моделируемых устройств. Для этого в языке ЧН0з. введены операторы ожидания, операторы еаье.
Операторы ожидания позволяют управлять моментами времени, в которые параллельные операторы будут реагировать на изменение сигналов. Операторы ожидания имеет следующий синтаксис: ззаМ [ оп в1япа1 пате (,...) ) [ппМ1 ]зоо1еап еххзпеввьоп] [вов сзазе ехрпеввьоп] з Оператор еаье позволяет приостанавливать выполнение параллельного оператора в модели и программно задавать условия, при которых его выполне- ] ние может быть возобновлено. Выполнение оператора ззаье приводит к приостановке выполнения параллельного оператора на некоторое время или до выполнения некоторого условия. Как только заданные условия будут выполнены, процесс продолжит свое выполнение. Секция оп позволяет определить список сигналов, на изменение которых будет реагировать процесс.
Когда выполнение процесса доходит до операто- 5азоеые конструкции моделей на языке [гНР[ [09 та вазе, оно приостанавливается до момента, когда какой-либо из указансых в списке сигналов изменит значение. "екция опе~з позволяет определить булевское выражение, которое должно сметь значение стае (для того, чтобы процесс продолжил выполнение после пой инструкции). Если же в момент выполнения оператора вазе условие [же имело значение схсге, то выполнение процесса будет продолжено тольсо после того, как заданное условие сначала примет значение га1ее, а поюм вновь значение стае.
Если команда содержит и секцию оп, и секцию гпьн, то булевское выражение, стоящее в опевз, проверяется только при [словим, что произошло изменение какого-либо сигнала, стоящего в списке :екции оп. "екция а позволяет определить интервал времени, на который процесс 1риостанавливается в модельном времени. Эта секция может задаваться шесте с двумя предыдущими. В таком случае процесс возобновит исполнесие, как только условие, заданное одной из секций будет выполнено. Если 1рисутствуют все три секции, то условие секции опьзз проверяется только 1РИ ИЗМЕНЕНИИ ОДНОГО ИЗ СИГНаЛОВ, УКаЗаННЫХ В СЕКЦИИ оп.
оператор наде может использоваться и без секций оп, оаеы, вох. В этом :лучае выполнение наде приведет к остановке выполнения процесса до сенца моделирования. 3 теле процесса может быть несколько операторов атаз.в. В описании процесса нельзя одновременно использовать н список чувствительности, и оператор наХе. В ОгСАР Ехргезв 9.1 и в Гоипс[а[[оп 2.1 не поддерживается возможность использования нескольких операторовваЗе в одном процессе. Параллельный оператор контроля в ходе моделирования Аваев Эператор авввхе является общим механизмом выявления существенных :итуаций (с точки зрения разработчика модели устройства), а также выдачи з них сообщений.