Суворова Е.А., Шейнин Ю.Е. Проектирование цифровых систем на VHDL (2003) (1095892), страница 21
Текст из файла (страница 21)
В момент модельного времени 400 будет запланирована транзакция, которая должна будет в момент времени 900 установить значение сигнала а в О. Поскольку эта транзакция планируется на модельное время, меньшее чем предыдущая, то предыдущая транзакция будет уничтожена. Таким образом, если значение сигнала а в начальный момент модельного времени было равно 0, оно не претерпит никаких изменений. Временная диаграмма, соответствующая этому примеру, представлена на рис. 3.2. Сеяйф'ф~Цла епи а '0 ' ' О ' 000ШЛЛЛЛЛЛЛЛЛЛЛЛЛЛЛЛЛЯ Рис. 3.2. Временная диаграмма, соответствующая примеру листинга 3.8 Глава .' На этой диаграмме до момента времени 500 выходной сигнал имеет неопределенное значение.
В момент времени 500 ему присваивается значение О, которое остается без изменений. На эти правила разрешения неоднозначности через удаление ранее спланированных транзакций накладываются и ограничения на длительность импульсов, устанавливаемые инерционными задержками. Когда в очередной раз выполняется оператор присваивания нового значеНИя СИГНаЛу, СОдЕржащИй СЕКЦИЮ Вовге1вз, ВЫПОЛНяЮтСя СЛЕдуЮщИЕ дсйствия. Например, пусть выполняющийся оператор добавляет новую транзакцию изменения некоторого сигнала на момент времени соаг при ограничении ширины импульса, равном сг. Сначала проверяется список отложенных транзакций, изменяющих этот сигнал.
Если в нем присутствуют транзакции, запланированные на время большее, чем слав, то они сразу же удаляются. Затем новая транзакция добавляется в список. После этого проверяются транзакции, запланированные на интервал времени от (сов сг) до гоги. Из них в списке оставляются только те транзакции, которые непосредственно предшествуют добавляемой (между ними и добавляемой транзакцией нет других транзакций) и которые устанавливают сигнал в то же значение, что и добавляемая. Таким образом, если время между изменениями сигналов оказывается меньше, чем сг, то соответствующее значение не отражается на выходе. Другой пример приведен в листинге 3.9.
1 Листинг 3.9 ргооввв (а) овяАп у <= Вовгсза1 оос а ассвг 3 ов; воо ргооввв; Пусть входной сигнал а изменяется в модельном времени следующим образом: а='О' от О оа до 1 оа а='1' от 1 па до 6 па а='О' от б оа до 8 да а='1' от 8 оа до 12 оа В момент модельного времени 1 будет запланирована транзакция установки у в '0' на момент модельного времени 4.(В момент времени 1 сигнал а меняет свое значение на 'Г. В соответствии с указанной в операторе задержкой 3 нс., изменение сигнала у планируется на момент времени 1+3=4 нс. К моменту времени 4 сигнал а по-прежнему будет иметь значение 1, поэтому транзакция будет выполнена. В момент времени 6 сигнал а поменяет базовые конструкции моделей на языке МН0с свое значение на '0', и будет запланирована транзакция установки у в '1' на момент модельного времени 9.
Однако в момент времени 8 сигнал а поменял свое значение. В результате транзакция, запланированная на момент времени 9, будет отменена. На рис. 3.3 представлена иллюстрация данной ситуации. С ( л)вху.":: В)!)!!в):,"';:"(гвви~'- 3!:,'.;::.":,;:!"-':: )((ла 8 яки 1 и Рис. 3.3. Временная диаграмма к листингу 3.9 Третий пример. Пусть в момент модельного времени (2=10 нс. выполняется оператор в <= яе5есе 5 лв зпеяеза1 '1' ахеех 8 пв. При этом пусть список транзакций изменения сигнала 8, уже запланированных к началу выполнения этого оператора, имеет вид: 11 пя — ('1'); 12 пв — ('х'); 14 пя — ('1'); 15 пв — ('0'); 16 пя — ('1')г 17 пв — ('1'); 20 пв — ('1'); 25 пв — ('0'); После выполнения оператора список запланированных транзакций примет вид: 11 пв — ('1'); 12 пя — ('х');)г 16 пв — ('1'); 17 пв — ('1')г 18 пв — ('1') .
Транзакции, запланированные на моменты 20 и 25 нс. на оси модельного времени, будут удалены из списка, поскольку они запланированы на время большее, чем новая транзакция, запланированная на момент 18 нс. и добавленная выполняющимся оператором. Транзакции, запланированные на 14 и 15 нс., удалены из списка, так как они попадают в интервал от 13 (13=18— 5, где: 5 — значение, стоящее после хе!все) до 18 нс. и значение, устанавливаемое транзакцией, запланированной на 15 нс.
(транзакцией, непосредственно предшествующей вновь добавляемой), не совпадает со значением, устанавливаемым новой транзакцией. Все транзакции, находящиеся в этом интервале левее самой правой транзакции (и она сама в том числе), значение которой не совпало со значением, устанавливаемым новой транзакцией, должны быть удалены, даже если их значения и совпадают со значением добавляемой транзакции, как и произошло в этом примере. Дельта-задержка сигналов Особая ситуация складывается в модели устройства на языке ЧНО(, если оператор присваивания нового значения сигналу устанавливает нулевую за- Глава 3 держку.
Например, если в операторе присваивания нового значения сигналу отсутствует секция аяеав, то считается, что задержка изменения сигнала составляет О нс., т. е. сигнал принимает новое значение в текущее время моделирования. В реальных устройствах такие ситуации невозможны. Новое значение сигнала у, формируемое на основе текущего значения некоторого сигнала х, всегда появляется с некоторой конечной задержкой. Любое событие, любое значение сигналов в текущий момент проявится в изменениях каких-либо сигналов не мгновенно, а по прошествии некоторого, может быть, очень небольшого, но никак не нулевого времени. В модели мы можем попытаться этими временными задержками пренебречь (например, когда важно только функциональное поведение модели, а ее детальное временное поведение не рассматривается). Часто, на определенных этапах проектирования системы, у нас просто нет еще достоверной информации о задержках в компонентах схемы, и тогда нашей задачей является соблюдение функциональной корректности модели устройства.
Проблема, которая возникает при нулевых задержках в изменениях сигналов, связана чисто с внутренними проблемами организации системы моделирования. Моделирование идет по дискретам модельного времени. Выполняя моделирование в момент г1 модельного времени, система моделирования производит все изменения сигналов, запланированные на текущий момент времени, на основании имеющихся значений сигналов устройства„наблюдаемых в начале текущего цикла моделирования. Выполнив все заданные для этого момента изменения сигналов, программа моделирования заканчивает текущий цикл моделирования и переходит к следующему моменту модельного времени, который хотя бы на единицу больше текущего.
Однако если, по программе на ЧНР1., сигналы поменялись с нулевой задержкой, изменения должны произойти в тот же момент !1 модельного времени. Система же моделирования их не увидит, так как уже закончила цикл моделирования для момента г1. Таким образом, окажутся нарушенными не только временные соотношения, но и логика работы схемы. Для решения проблемы, типовой для систем дискретного моделирования, в семантике языка ЧНР1.
введен специальный механизм разрешения подобных коллизий. Суть его в следующем: имеется в виду, что система моделирования, закончив текущий цикл моделирования для момента г1 модельного времени, не сразу переходит к следующему моменту модельного времени Г2 > г1 (например, к г2 = (1+ 1). Она проверяет, имеются ли изменения сигналов, вновь запланированные на момент г1. Это может произойти при указании в программе на ЧНРЕ нулевых задержек. Если выявлены новые изменения сигналов на тот же момент !1 модельного времени, то система моделирования выполняет новь<й цикл моделирования, отрабатывая эти Бааоане конст унции моделей на языке МНР!. изменения. Новые изменения, в свою очередь, могут привести к изменению еше каких-то сигналов, что при нулевой задержке снова приведет к появлению еше каких-то сигналов, изменения которых запланированы на а1, Значит, система выполнит еще один цикл моделирования, не сдвигаясь на момент г2 модельного времени.
И так далее, пока не будет определено, что по результатам текущего цикла моделирования не появилось новых сигналов, запланированных на момент г1, после чего система переходит к моделированию момента г2 модельного времени. Если первый из рассмотренных нами циклов работы системы моделирования соответствовал моменту т! модельного времени, то каким точкам на оси модельного времени соответствуют следующие циклы? С точки зрения модели на ЧНОЬ, которая указывает, что некоторый сигнал изменяется с нулевой задержкой, мы бы сказали, что система моделирования "крутится", оставаясь в том же моменте !1 модельного времени. Однако можно рассматривать ситуацию и по-иному.