Дискретные события модели
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
ветвь имеет самый низкий приоритет.