Составители:
симулятор активизирует процесс, входному сигналу которого принадлежит
событие. Если процесс генерирует в результате активизации события в одном из
своих выходных сигналов, симулятор добавляет его в очередь, помещая на
позицию, соответствующую временной метке события. Если в очереди не
осталось событий с временными метками, равными текущему модельному
времени, симулятор увеличивает модельное время, делая его равным
минимальному значению временной метки событий в очереди.
Данный способ лежит в основе большого числа симуляторов моделей с
дискретными событиями: симуляторов систем, описанных на языках VHDL [53]
и Verilog [43, 42], систем на основе дискретной логики, входящих в состав
САПР систем на ПЛИС, симуляторов моделей массового обслуживания,
телекоммуникационных протоколов [39].
Однако, системам в рамках MoC с дискретными событиями присущ ряд
проблем. Одна из них связана с потенциальной недетерминированностью
поведения системы, в которой процессы преобразуют сигналы без задержки.
Вторая также проявляется в виде недетерминированности поведения, но
связана с наличием одновременных событий. Ниже предлагается иллюстрация
обеих проблем на одном примере.
Рис. 1.2. Недетерминированность поведения системы без задержек (пример взят
из [57])
На рис. 1.2 представлен пример системы, состоящей из трех процессов.
Процесс B преобразует входной сигнал без задержки, то есть временная метка
события на выходе равна временной метке соответствующего события на входе.
Пусть процесс A одновременно генерирует события по двум своим выходам
(рис. 1.2, а). Оба события имеют одну и ту же временную метку t. Возникает
вопрос: какой процесс должен быть активирован первым, B или C? Если
первым будет активирован процесс C
, то в момент активации на его входах
будет присутствовать только одно событие. Если же первым будет активирован
процесс B
, то в момент активации C на его входах будут присутствовать оба
события с одинаковой временной меткой t (так как B преобразует входной
сигнал без задержки). Интуитивно понятно, что если два события имеют
одинаковую временную метку, то в момент активации процесса оба должны
одновременно присутствовать на его входах. Однако, MoC
с дискретными
событиями формально не фиксирует такое поведение. Решение данной
проблемы отдано на откуп симулятору модели, и в разных симуляторах
25
Страницы
- « первая
- ‹ предыдущая
- …
- 24
- 25
- 26
- 27
- 28
- …
- следующая ›
- последняя »
