Лекция 11. Событийное моделирование

Событием называется любое изменение значения сигнала и неважно, в каком месте схемы оно произошло: на входе, выходе или внутри схемы. При двузначном алфавите {0,1} возможны только два события: 0®1 и 1®0. Обычно их обозначают символами «/», «\» или «­», «¯» или «R» (от англ. Rise - фронт) и «F» (от англ. Fall - спад).

Для многозначного алфавита типов переключений может быть гораздо больше, например: 0®Х, 1®Х, Х®0, Х®1, 0®Z, 1®Z, Z®0, Z®1, X®Z, Z®X и т. п.

Способ, основанный на моделировании событий, называют событийным моделированием. Основная его идея заключается в том, чтобы проследить, каким образом изменения на входах схемы передаются на выходы. При этом элементы, на входах которых нет изменений, вообще не моделируются (их состояния остаются неизменными), а таких элементов в цифровых схемах по разным оценкам от 90 до 98%. Это означает, что, отслеживая только пути переключений в схеме и моделируя только активные элементы (а их 2…10% в схеме), можно существенно повысить эффективность моделирования (примерно в 10…50 раз).

Итак, первая особенность событийного моделирования заключается в том, что при прогоне модели схемы обрабатываются только 2…10% её элементов. Это так называемые активные элементы, у которых в текущий момент времени изменились входные сигналы.

Вторая особенность заключается в механизме продвижения модельного времени. Оно движется не равномерно с ранее заданным шагом Dt, а скачками разной величины от текущего события до ближайшего будущего (принцип dz). В этом случае говорят, что время движется, опираясь на события, которые должны быть отсортированы в хронологическом порядке.

НЕ нашли? Не то? Что вы ищете?

Все события можно разделить на безусловные и возможные (предполагаемые, условные). Безусловное событие, например, переключение выхода инвертора (рис.1,а) при изменении сигнала на его входе, неминуемо произойдет. Конечно, не сразу, а с задержкой, определяемой временем распространения сигнала в элементе.

Возможные события происходят только при выполнении определенных условий и зависят от состояния сигналов на других входах элемента. Например, выход логического элемента 2И (рис.1,б) переключится только в том случае, если значение сигнала на пассивном входе равно лог.1.

События делятся также на отработанные, текущие и будущие (рис.1, в).

На рис.1, в показана ситуация, когда моделятор уже обработал первые три события: С1, С2, С3. Модельное время «перепрыгнуло» на событие С4, которое стало текущим. Очередной цикл работы моделятора связан теперь с обработкой реакции схемы на это событие.


Будущие события – это те, которые ещё предстоит обрабатывать. Среди них выделим ближайшее будущее событие, то есть то событие, на которое моделятор собирается перевести модельные часы в следующем цикле работы.

При моделировании схемы в текущий момент времени могут произойти новые события, которые добавляются в очередь будущих событий в хронологическом порядке. Если новое событие появится на интервале tС4…tС5, то оно и станет ближайшим.

Рассмотрим фрагмент моделируемой схемы (рис.2,а), на которую подаются входные сигналы IN1, IN2, IN3, IN4, показанные на рис.2,б.

Очередь будущих событий (ОБС)

Мы уже говорили, что ОБС - это отсортированный в порядке возрастания времени список будущих событий. Иногда ОБС называют календарем событий. В общем случае каждое событие в ОБС задается тремя параметрами:

·  именем события (обычно это имя цепи, в которой происходят изменения);

·  временем наступления события;

·  типом события.

Перед началом моделирования (tm= 0) в ОБС заносятся события на входах схемы, и для нашего примера она будет включать семь событий (рис.3,а).


tm = 0ns

tm = 200ns

IN3

200ns

0->1

Fj

218ns

0->1

IN1

400ns

1->0

Fi

220ns

0->1

IN2

700ns

1->0

IN1

400ns

1->0

IN4

700ns

1->0

IN2

700ns

1->0

IN3

900ns

1->0

IN4

700ns

1->0

IN1

1000ns

0->1

IN3

900ns

1->0

IN4

1100ns

0->1

IN1

1000ns

0->1

IN4

1100ns

0->1

а) б)

Рис.3. Содержимое ОБС перед началом моделирования и после
обработки первого события.

В вершине очереди находится событие (IN3 200ns 0->1), которое должно произойти раньше других – ближайшее будущее событие.

Планирование новых событий в ходе моделирования

В процессе моделирования содержимое ОБС будет изменяться, так как. переключения на входах могут порождать в будущем другие (новые) события – переключения на выходах элементов схемы.

Кроме того, из ОБС будут удаляться текущие события и запоминаться в списке отработанных событий (СОС).

Например, стартовав с момента времени tm= 0, моделятор извлечет из ОБС ближайшее событие IN3 и переведет стрелки модельных часов на время его наступления (tm= 200ns). Событие IN3 станет текущим.

Затем моделятор отыщет по табличному описанию схемы элементы, которые принимают переключающийся сигнал IN3. Они так и называются: элементы-приемники. В нашем примере таких элементов два – Fi и Fj (рис.2,а).

Моделятор вызовет одну за другой подпрограммы моделей этих элементов и определит, изменятся ли в будущем их выходы. Понятно, что модели элементов прогоняются на текущем наборе входных сигналов, причем вход IN3 уже переключился на новое значение.

Будущие события на выходах Fi и Fj (если они произойдут) будут удалены от текущего времени на величину задержки этих элементов, то есть на время 20ns и 18ns соответственно.

Добавляя эти задержки к текущему времени, моделятор спланирует два новых события:

Fi tm + tзi 0 ->1 Þ Fi 220 ns 0->1

Fj tm + tзj 0 ->1 Þ Fj 218 ns 0->1

и добавит их в ОБС ( рис. 3,б)

Закончив текущий цикл работы, моделятор вновь обратится к ОБС, извлечет ближайшее событие ( Fj 218ns 0 ->1), найдет и промоделирует элемент Fk. Выяснит, что на его выходе произойдет событие:

Fk 243ns 1->0 (243 = 218+25) и включит его в ОБС.

Моделирование будет продолжаться описанным выше способом до тех пор, пока в ОБС не останется ни одного события или модельное время не достигнет финального значения.

Список отработанных событий (СОС)

В процессе работы моделятор накапливает все события, которые произошли в схеме. По ним легко восстановить «картину» работы схемы, а, значит, их удобно использовать при выводе результатов моделирования.

Массив состояний сигналов (МСС)

В отличие от потактового метода событийное моделирование использует не двумерный, а одномерный массив данных. Он хранит только текущие состояния всех сигналов, действующих в моделируемой схеме. Для каждого сигнала (цепи) резервируется по одной ячейки в МСС.

Перед началом моделирования в этот массив заносятся исходные значения входных сигналов для tm = 0, по которым моделятор пытается выполнить начальную инициализацию схемы (выяснить ее исходное состояние). На рис.4,а показано содержимое МСС перед началом моделирования.

Выходы Fi, Fj, Fk имеют конкретные значения. Это говорит о том, что моделятору удалось выполнить начальную инициализацию схемы. В противном случае некоторые сигналы будут сохранять Х-значения.

На рис.4,б показано состояние схемы после обработки первого события (IN3 200ns 0 ->). Видно, что сигнал IN3 уже переключился на новый уровень: IN3 = 1, а модельное время равно tm = 200ns – времени наступления события IN3.

МСС (tm = 0) МСС (tm = 200ns)

Имя сигнала

Значение

Имя сигнала

Значение

IN1

1

IN1

1

IN2

1

IN2

1

IN3

0

IN3

[1]

IN4

1

IN4

1

.

.

.

.

.

.

.

.

Fi

1

Fi

1

Fj

0

Fj

0

Fk

1

Fk

1

.

.

.

.

а) б)

Рис.4. Содержимое массива состояния сигналов для различных
моментов
tm

Обратите внимание, что выходы Fi, Fj, Fk сохраняют пока ещё старые значения из-за задержек распространения сигналов внутри элементов.

Табличное представление моделируемой схемы

Для событийного моделирования необходимо именно такое (табличное) описание схемы, так как оно содержит не только списки элементов и цепей, но и списки элементов-приёмников сигналов. Понятно, что информация о задержках для каждого элемента схемы должна быть также доступна моделятору.

Подпись: N Особенности событийного моделирования

1 Модельное время движется, опираясь на события, скачками произвольной длины, равной "расстоянию между соседними событиями" по принципу dz:

tm = tближ или tm = tm + Dtближ 

2 Обработке подлежат только активные элементы схемы, на входах которых про-изошли переключения в текущий момент времени. Число таких элементов неве-лико (примерно 3…5% от общего объема схемы)

3 Моделирование выполняется с учётом задержек на элементах. Моменты пере-ключения сигналов на входах и выходах элементов не искажаются

4 В процессе моделирования итерации, то есть повторные прогоны модели на не-изменном наборе данных, не возникают

5 Ранжирование схемы, то есть сортировка элементов в порядке их срабатывания, не требуется

6 В качестве структуры данных используется не двумерный, а одномерный массив. Он называется массивом состояний сигналов (МСС). Кроме того для вывода ре-зультатов формируется список отработанных событий (СОС)

7 Используется не функциональное (поковое) описание модели в виде систем ло-гических уравнений, а табличное представление схемы (структурное описание)

8 Событийное моделирование выполняется обычно в интерпретирующем режиме

9 За один цикл работы моделятора обрабатывается только одно текущее событие (или несколько одновременных событий)

Заканчивая разговор о данном виде моделирования, приведем для него наиболее популярную реализацию (рис.5).