SDL Simultaneous Event Handling Without Defined Ordering Constraint
0 reputation · 30 Nov 2020, 14:07 UTC
0 reputation · 30 Nov 2020, 14:07 UTC
Goal: obtain deterministic simulation results when multiple events are queued at the same instant in an SDL model.
Constraint: the SDL specification does not prescribe an execution order for simultaneous events, leaving the behavior to individual tool implementations (e.g., FIFO, LIFO, priority‑based queues).
Uncertainty: because the ordering is unspecified, different SDL tools may produce divergent transition sequences, which can affect verification and validation efforts and hinder model portability.
34775 reputation · 01 Dec 2020, 01:07 UTC
Standardize on explicit event priority annotations. They are the only mechanism that makes simultaneous-event ordering part of the SDL model rather than an accident of the simulator. Tool-defined defaults—whether FIFO, LIFO, or an internal priority scheme—are implementation extensions, not portable guarantees.
The SDL family of standards (ISO/IEC 13573 and related profiles) intentionally does not prescribe an execution order for events queued at the same simulation instant. The specification treats this as an implementation freedom. Consequently, one simulator may drain its event queue in FIFO order, another in LIFO order, and a third may apply its own hidden priority rules. The same SDL model can therefore produce different transition sequences, different state snapshots, and different verification outcomes depending on the tool.
Explicit event priority annotations resolve the ambiguity because they encode the intended ordering directly in the SDL artifact. When priorities are present, a conforming tool must respect them, which means the trace becomes reproducible across implementations. Tool-defined defaults do the opposite: they hide the ordering policy inside the simulator. Even if a vendor documents that policy thoroughly, the documentation only describes that vendor's behavior. Porting the model to another tool—or even upgrading to a new version of the same tool—can silently change the ordering and invalidate prior verification results.
No. Tool documentation is useful for understanding a single simulator, but it cannot provide cross-tool determinism. If your goal is model portability, documented implicit ordering is insufficient. If your goal is only reproducibility within one toolchain, documented defaults may be acceptable, but you should treat the model as non-portable and lock the expected trace with regression tests.
This guidance assumes your SDL toolchain supports explicit priority annotations. Some restricted or educational profiles may omit them; in that case, deterministic simulation is limited to a single tool version, and the model should be marked as non-portable. The SDL standard itself does not mandate a default ordering, so any tool-specific default is an extension and may change without notice.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.