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