Section: MacroModule
This section describes the parameters for the MacroModule. The section is created automatically when you generate a macro module. As an alternative, you can insert the section into a module declaration manually or edit an automatically generated section.
SEC MacroModule //optional: yes, modifier: None SEC Rootmodule : <identifier> //optional: no, modifier: None SEC MacroParameter : <identifier> //optional: yes, modifier: None Local_ParameterID := <parameter ID>; //optional: no, type: ID New_Name := <parameter name>; //optional: no, type: text New_Desc := <parameter description>; //optional: no, type: text END_SEC SEC MacroIO : <identifier> //optional: yes, modifier: None Local_IOID := <IO ID>; //optional: no, type: ID New_Name := <IO name>; //optional: yes, type: text New_Desc := <IO description>; //optional: yes, type: text END_SEC SEC MacroSlot : <identifier> //optional: yes, modifier: None Local_SlotID := <slot ID>; //optional: no, type: ID New_Role := <role name>; //optional: yes, type: text END_SEC SEC Default_Allocation //optional: no, modifier: None Module_Name := <module name>; //optional: no, type: QID SEC VisuEmbeddings //optional: yes, modifier: None Empty := TRUE/FALSE; //optional: yes, type: BoolFlag SEC Embedding : <identifier> //optional: yes, modifier: None VisuName := <visu ID>; //optional: no, type: ID ProxyVisuName := <proxy visu ID>; //optional: no, type: ID Target := <target ID>; //optional: yes, type: ID LinkId := <linke ID>; //optional: yes, type: ID END_SEC END_SEC SEC PageVisu //optional: yes, modifier: None VisuName := <visu ID>; //optional: yes, type: ID TopLevelTab := <top level tab>; //optional: yes, type: ID/Bool END_SEC SEC IOMappings : <identifier> //optional: no, modifier: None SEC Mapping : <identifier> //optional: yes, modifier: None NoMapping := TRUE/FALSE; //optional: yes, type: BoolFlag STExpression := <ST expression>; //optional: yes, type: ID/ST expression ModuleConnection := <module connection>; //optional: yes, type: ID/ST expression END_SEC END_SEC SEC Parameters : <identifier> //optional: yes, modifier: None SEC Param : <identifier> //optional: yes, modifier: None Value := <value ID>; //optional: no, type: ID END_SEC END_SEC END_SEC END_SEC SEC Submodule : <identifier> //optional: yes, modifier: None Parent_Instance := <instance ID>; //optional: no, type: ID Parent_Slot := <slot ID>; //optional: no, type: ID SEC MacroParameter : <identifier> //optional: yes, modifier: None Local_ParameterID := <parameter ID>; //optional: no, type: ID New_Name := <parameter name>; //optional: yes, type: text New_Desc := <parameter description>; //optional: yes, type: text END_SEC SEC MacroIO : <identifier> //optional: yes, modifier: None Local_IOID := <IO Id>; //optional: no, type: ID New_Name := <IO name>; //optional: yes, type: text New_Desc := <IO description>; //optional: yes, type: text END_SEC SEC MacroSlot : <identifier> //optional: yes, modifier: None Local_SlotID := <slot ID>; //optional: no, type: ID New_Role := <role name>; //optional: yes, type: text END_SEC SEC Default_Allocation //optional: no, modifier: None Module_Name := <module name>; //optional: no, type: QID Instance_Name := <instance name>; //optional: no, type: ID SEC VisuEmbeddings //optional: no, modifier: None Empty := TRUE/FALSE; //optional: yes, type: BoolFlag SEC Embedding : <identifier> //optional: yes, modifier: None VisuName := <visu ID> //optional: no, type: ID ProxyVisuName := <proxy visu ID> //optional: no, type: ID Target := <target ID>; //optional: yes, type: ID LinkId := <link ID>; //optional: yes, type: ID END_SEC END_SEC SEC PageVisu //optional: yes, modifier: None VisuName := <visu ID>; //optional: yes, type: ID TopLevelTap := <top level tab>; //optional: yes, type: ID/Bool END_SEC SEC IOMappings : <identifier> //optional: yes, modifier: None SEC Mapping : <identifier> //optional: yes, modifier: None NoMapping := TRUE/FALSE //optional: yes, type: BoolFlag STExpression := <ST expression> //optional: yes, type: ID/ST expression ModuleConnection := <module connection> //optional: yes, type: ID/ST expression END_SEC END_SEC SEC Parameters //optional: yes, modifier: None SEC Param : <identifier> //optional: yes, modifier: None Value := <value>; //optional: no, type: ID END_SEC END_SEC END_SEC END_SEC SEC Reference : <identifier> //optional: yes, modifier: None Parent_Instance := <instance ID>; //optional: no, type: ID Parent_Slot := <slot ID>; //optional: no, type: ID Referenced_Instance := <instance ID>; //optional: no, type: ID END_SEC END_SEC
Details regarding the syntax of definition types are described in the section Module Declaration.
MacroModule
: If this section is defined, then no other section is allowed to appear within the entire module declaration except the sectionMetaData
. Each module declaration with this section is identified clearly as type MacroModule. Another sectionMacroModule
is not allowed within a module declaration.Rootmodule
: Indicates that the following subsections describe the root submodule, which should be 1) the root of this type MacroModule and 2) inserted as the top parent of all other submodule of the type MacroModule.Submodule
: Indicates that the following subsections describe a submodule, which should be inserted under the root submodule in a subtree for the type MacroModule.MacroParameter
: If this kind of subsection is used in a sectionSubmodule
orRoot
, then it can be indicated that a specific parameter of the defined submodule (or root) should itself occur as a parameter of the macro module. For this, the target of the sectionMacroParameter
is used as a new parameter ID for the macro module parameter. The parameter of the given submodule (or root) is then defined byLocal_ParameterID
. In addition, textlist entries can be created using the definitions ofNew_Name
andNew_Desc
. These entries are used for the name and description of the new macro module parameter instead of that of the submodule or root parameter. All defined targets of all sectionsMacroParameter
within an entire macro module must be clear to ensure unique parameters IDs for all macro module parameters.MacroIO
: If this kind of subsection is used in the sectionSubmodule
orRoot
, then it can be indicated that a specific I/O of the defined submodule (or root) should itself occur as an I/O of the macro module. For this, the target of the sectionMacroIO
is used as a new I/O ID for the macro module I/O. The I/O of the given submodule (or root) is then defined byLocal_IOID
. In addition, textlist entries can be created using the definitions ofNew_Name
andNew_Desc
. These entries are used for the name and description of the new macro module I/O instead of the submodule or root I/O. All defined targets of all sectionsMacroIO
within an entire macro module must be clear to ensure unique I/O IDs for all macro module I/Os.MacroSlot
: If this subsection is used in the sectionSubmodule
orRoot
, then it can be indicated that a specific slot of the defined submodule (or root) should itself occur as a slot of the macro module. In this way, additional module instances can be inserted below this slot of the MacroModule instance. For this, the target of the sectionMacroSlot
is used as a new slot ID for the macro module slot. The slot of the given submodule (or root) is then defined byLocal_SlotID
. In addition, a text list entry can be created using the definitionsNew_Role
. This entry is used for the role of the new macro module slot instead of that of the submodule or root slot. All defined targets of all sectionsMacroSlot
within an entire MacroModule must be clear to ensure unique slot IDs for all MacroModule slots.Parent_Instance
: Defines an ID corresponding to a target ID of a sectionRootmodule
orSubmodule
of the encompassing sectionMacroModule
. This definition exists only within the sectionSubmodule
. It defines the parent module instance below which the submodule should be inserted. This submodule is described by the respective sectionSubmodule
of the MacroModule. Moreover, the definitionParent_Slot
is also required.Parent_Slot
: Defines an ID corresponding to the slot ID located under the submodule type identified byParent_Module
. The submodule of the MacroModule type described by the sectionSubmodule
is inserted below this slot.Default_Allocation
: This is identical to the section of the same name under the slot declarations (Slot
andSlot_Multi
). This section defines for both the "root module" and the "submodule" which kind of submodule of the MacroModule type should be inserted for which instance configuration. The only difference is that noInstance_Name
can be defined forDefault_Allocation
under a sectionRootmodule
, but rather under sectionsSubmodule
. The reason for this is that the module instances inserted as "root module" receive their name from the MacroModule instance and therefore cannot be entered by "default".Reference
: Shows that the following subsections describe a module reference. A reference is generated below the module instanceParent_Instance
and the slotParent_Slot
, referencing the submoduleReferenced_Instance
. As theParent_Instance
, this referenced instance must originate from the set of the submodule of root module instances below the same sectionMacroModule
.
It shall not use
IMPLEMENTED_BY
orIMPORTS
in its module declaration.It must include the section
MetaData
andMacroModule
. Otherwise, additional sections must not be used.There has to be at least one
Rootmodule
section below theMacro_Module
section. Moreover, there must not be a secondRootmodule
section.For each
submodule
, both theParent_Instance
and theParent_Slot
must be defined withinMacroModule
. This must then be defined asLocal_SlotID
withinMacroSlot
of theParent_Instance
.