Introduction to MLDesigner Domains

In MLDesigner, an executable model is made up of primitive- and module instances connected via transitions. Each model instance may be modeled in a different domain to that of the parent model. In mixing domains, the key objective is to ensure that at the interface, the child module obeys the semantic of the parent domain. This method of interfacing is called a 'wormhole'.

Simulation Domains

Code Generation Domains

A specialized interpreter runs the specification to generate simulation results. In particular, those domains are differentiated between timed and untimed.

Models of this domain tanslate the specification into another model (usually a programming language such as ANSI C, C++, VHDL) and then optionally manage the execution of that generated code

Timed and Untimed Domains

Simulation domains can be either timed or untimed. Untimed domains carry no notion of time in their semantic model. Instead of chronology, they deal only with the order of particles or actions. Timed domains have a notion of simulated time, where each particle or action is modeled as occurring at some particular point in this simulated time. Particles and actions are processed chronologically. Timed and untimed domains can be mixed. From the perspective of a timed domain, actions in an untimed domain will appear to be instantaneous. Timed domains can exist at several levels in the hierarchy, or in parallel at a given level of the hierarchy, separated by untimed domains, and their chronologies will be synchronized.

That is, the notion of simulated time in MLDesigner is a global notion. When particles and actions are processed chronologically in each timed domain present, they will be processed chronologically globally.