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:
- model instances
- input and output ports
- shared elements
- connections
- parameters and target parameters
- text labels
- delay properties, and
- bus properties.
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.