# MLDesigner

MLDesigner is an integrated modeling and simulation tool for the design and analysis of complex embedded and networked systems. MLDesigner speeds up modeling, simulation and analysis of discrete event, discrete time and continuous time systems concerning architecture, function and performance. The tools is based on ideas of the "Ptolemy Project", done at the University if California Berkeley. MLDesigner is developed by MLDesign Technologies Inc. Palo Alto, CA, USA in collaboration with Mission Level Design GmbH, Ilmenau, Germany.

## Concept

System models are composed in a graphical editor. These hierarchically structured block diagrams are stored in MML (Model Markup Language), a dialect of XML. Models may therefore also be generated automatically by XML-transformations from other XML based models descriptions e.g. UML (via XML Model Interchance, XMI), BoNES, Cossap or OPD/OPM (Object Process Diagram/Modeling) models. Executable models (systems) are composed of modules and primitives, which are connected via typed in- and out-put ports and/or attributes (parameters, resources, memories, events). Modules can be composed of other modules and/or primitives. Primitives are the smallest units in MLDesigner models. The behaviour of primitives is either coded in ANSI C/C++ or modeled using Finite State Machines (FSM) and/or may exchange information with other simulators, internet based systems or hardware. All modules and primitives of a simulation model may be dynamically instantiated (dynamic instance support), enabling simulation with dynamically changing architectures and architectural optimization. MLDesigner comes with more than 2000 library elements. For system modeling therefore the development of new primitives is generally not required.

## Operation

Simulations in MLDesigner are based on specific, matter depending models of computation (MOC), called domains. The type of domain determines how and in which order the exchange of data structures between the model elements is done. Included are discrete time synchronous (SDF) and dynamic (DDF) data flow, continuous time and discrete event domains. The MLDesigner kernel automatically synchronizes model elements created in different domains within a single system. Therefore MLDesigner supports the modeling and simulation of time discrete, time continuous and event discrete systems.

## Domains

The Multi-Domain-Simulator MLDesigner supports among others the following domains:

### SDF-Domain (Synchronous Data Flow)

The SDF domain is a data driven, statically scheduled domain in MLDesigner. It is used to model time discrete systems, as for example digital signal processing, general or special purpose processors. In this domain model elements exchange synchronously a fixed quantity of data elements, so called particles. "Statically scheduled" means that the firing order of the primitives is determined once during the start up phase on the basis of fixed generating and consuming rates of the data elements. Within the SDF domain time does not exists. Another data driven domain is the DDF Domain (Dynamic Data Flow). Whereas in the SDF domain the generating and consuming rates are fixed, the rates in the DDF domain are variable, which allows a dynamical change of the data processing.

### DE-Domain (Discrete Event)

The discrete event (DE) domain in MLDesigner provides a general environment for event-oriented simulations of systems such as queuing networks, communication networks, and high-level models of computer architectures, organizational systems, or production systems. In this domain, each Particle represents a time-event that corresponds to a change of the system state. The data exchange itself represents an event appearing at one part of the model and acting on another model element. The DE domain schedulers process events in chronological order. Since the time interval between events is generally not fixed, each particle has an associated time stamp. Time stamps are generated by the block producing the particle based on the time stamps of the input particles and the latency of the block. Features like special events or resources, which represents the use of quantities and processor computation times, make modeling intuitive. The use of ready-made model elements like scheduling mechanism simplifies significantly the modeling process. The DE domain allows the modeling of a multitude of systems, such as bus systems, digital controller systems, computer architecture and system-on-a-chip (SoCs), networked computer systems, or networked organizational, production, or design/development processes.

### FSM-Domain (Finite State Machine)

FSM is a concept for modeling event based systems with finite state automatons, an abstraction where the system behavior is represented by directed graphs, a finite set of conditions, called states, and transitions between this states. The FSM represents the current state of the system or of a part of the system. An event leads to a certain action and to a change of the state. The FSM domain is an alternative concept to model event oriented systems. Internal the FSM models are mapped on DE models. With the FSM domain systems can easily be modeled by one or multiple state automatons. Examples are protocol automatons in data networks, control logic, or general software logic. The MLDesigner FSM domain includes a graphical editor and an action language for defining and managing states, transitions and interface elements. The FSM model can be formally validated and code generated from this validated model.

### CTDE-Domain (Continuous Time/Discrete Event)

The CTDE-domain is a further time oriented domain for describing continuous time systems, as analog and mixed-signal devices. The two distinct models of computation, continuous time and discrete event are combined into one domain, in order to permit to models systems that include time-events and state events, like hysteresis. Connections between ports of different types are made possible by inserting a primitive to convert the signal. The description of systems within the CTDE domain corresponds to the description with differential equations. The state derivatives are inputs to integrator blocks, while the derivative equation and the output functions are modeled by networks of primitives that perform arithmetic operations. The CTDE domain includes multiple integration algorithms. MLDesigner contains several more domains, for example the HOF domain (High Order Function), which allows a procedural modeling of systems.
The BDF (Boolean Data Flow) domain can be thought as a generalization of the SDF domain. It expands the concept of data flow oriented domains by the possibility to activate or deactivate parts of the model according to combinatorial logic.

### Code-Generation-Domain

Beside the above described domains, which can be used to model and to simulate and therefore are called simulation domains, there are several code generation domains in MLDesigner. For a model created in one of the simulation domain it is possible to change the domain in a code generation domain as long as all the used model elements are in the code generation domain included. It is then possible to create object code in C or VHDL. Beside using MLDesigner code generation domains, it is possible to generate directly ANSI-C Code, VHDL-Code or SystemC-Code for models completely created with elements of the DE and the FSM domain.

## Application areas

The multi-domain simulation environment may be used in early development stages for validation of executable specifications at application/mission level and perform architectural optimization at overall system level. MLDesigner can be used to design missions, systems, integrated circuits, reconfigurable electronics and miscellaneous other products. It can be applied for modeling, simulation and optimization of automotive, avionics and space systems, satellite communication systems and organizational, production, and development processes.