Developing Models

The construction of functional models is described in this section. The model components covered here encompass libraries, systems, modules and primitives. For information about FSMs refer to the FSM Domain section.

Introduction

MLDesigner allows you to construct models schematically using design windows. The schematic of a model is also known as a Block Diagram or System. “Design windows” (otherwise known as block diagram editor) provide you with graphical model construction capabilities. By placing model instances (blocks or modules) in the design area, and connecting them, the functional behavior of the model component is represented schematically. The model instance can reference predefined library modules or new modules, whose functional model can be provided later, in a “top-down fashion”.

In addition to the model instances and the connections between them, a model can contain other model elements such as:

Note that not all these model elements can be used in all types of models. The type of model and the modeling domain of the model component determine what kind of model elements can be used for functional modeling.

Steps to develop models

Models are manipulated in Model Editor Windows by using the command options found in the edit menu, the context menu, or on the editor toolbar. Following tasks might be performed during the construction of a model.

Create or open a model

To construct a new model you must first create the model components.

Edit common model component properties

Every model has a number of properties in common. The properties assigned to a model depend on the type of model component it belongs to. These properties can be edited in the Property Window.

Add input or output ports

When creating new model components, you may define an interface, consisting of input or output ports, parameters, and shared model elements such as events, memories, and resources.

Add parameters and specify their default values

Parameters can be defined for model components of type system, module, and primitive, but not for libraries and FSM primitives. They are called formal parameters.

Add shared elements

With MLDesigner you can use a number of so-called shared elements to model the functionality of a component. Such elements are called shared elements as they are used to share information without exchanging data.

Add model instances and change their placement

To specify the functionality of the model you must create a number of model instances and connect them.

Set parameters of model instances

Parameters of model instances are actual parameters, that is, they are defined by the formal parameters of the instantiated model component.

Connect model instances

After the configuration of model instances, you need to connect them.

Use labels for annotation

It is often useful to annotate a block diagram with titles and comments.

Color model components

You can set the color for the model background, the instances, and connections.

Create and view model documentation

One crucial point of modeling is the documentation of developed model components. MLDesigner provides a mechanism to automatically create and browse hypertext documentation.

Advanced topics

Autoforking

In MLDesigner there is a wide variety of options when connecting ports, primitives, or modules. In some domains it is possible to make use of the autoforking and automerging facility built into MLDesigner.

Buses and Delays

There are additional property elements like buses and delays that are placed on top of connections. These property elements can be used to influence the behavior of the model.

Dynamic Instances

The creation of dynamic model instances in the DE domain simplifies modeling of complex systems where flexibility is needed. Using dynamic model instances, DE module or primitive instances can be created and deleted at run time.

Dynamic Linking

Dynamic linking of objects in external libraries with systems in MLDesigner is possible. This is a useful feature if you want to include functions from a variety of different libraries without rewriting the function.