Дискретные события модели
events
when EventPredicate
AssignmentList
end
end
events начинает раздел событий, который отключен end ключевое слово. events раздел в файле компонента справляется с обновлениями события. Это выполняется в течение симуляции.
events раздел может содержать только when пункты.
when пункт служит, чтобы обновить значения переменных события. Синтаксис
when EventPredicate var1 = expr1; var2 = expr2; ... end
EventPredicate выражение, которое задает, когда событие имеет место. Это должно быть выражение типа данных о событиях, как описано в Типе Данных о событиях и Операторе ребра.
Переменные в теле when пункт должен быть объявлен как переменные события. Когда предикат события возвращает true, все переменные в теле when пункт одновременно обновляется к новым значениям.
when пункт может опционально иметь один или несколько elsewhen ветви:
when EventPredicate var1 = expr1; var2 = expr2; ... elsewhen EventPredicate var1 = expr3; ... end
else по умолчанию перейдите в when пункт недопустим.
Следующие правила применяются:
Порядок when пункты не имеют значения.
Порядок переменных присвоений в теле when пункт не имеет значения, потому что все обновления происходят одновременно.
when пункт не может обновить переменную события несколько раз в рамках того же списка присвоений.
Два независимых when пункты не могут обновить ту же переменную события. Необходимо использовать elsewhen перейдите, чтобы сделать это.
Порядок elsewhen вопросы ветвей. Если несколько предикатов становятся верными в том же моменте времени, только ветвь с наивысшим приоритетом активируется. Приоритет ветвей в when пункт определяется их порядком объявления. Таким образом, when ветвь имеет самый высокий приоритет, в то время как последний elsewhen ветвь имеет самый низкий приоритет.