部分:宏模块
本节介绍宏模块的参数。该部分是在您生成宏模块时自动创建的。作为替代方案,您可以手动将该部分插入模块声明中或编辑自动生成的部分。
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
有关定义类型语法的详细信息,请参阅 部分 模块声明。
MacroModule
:如果定义了该节,则整个模块声明中除该节外不允许出现其他节MetaData
。此部分的每个模块声明都明确标识为 MacroModule 类型。另一段MacroModule
模块声明中不允许使用。Rootmodule
:表示以下小节描述根子模块,它应该是 1) 此类型 MacroModule 的根,2) 作为 MacroModule 类型的所有其他子模块的顶级父级插入。Submodule
:表示以下小节描述了一个子模块,该子模块应插入到 MacroModule 类型的子树中的根子模块下。MacroParameter
:如果在一个section中使用了这种subsectionSubmodule
或者Root
,那么可以指示所定义的子模块(或根)的特定参数本身应该作为宏模块的参数出现。为此,本节的目标MacroParameter
用作宏模块参数的新参数ID。然后给定子模块(或根)的参数定义为Local_ParameterID
。此外,可以使用以下定义创建文本列表条目New_Name
和New_Desc
。这些条目用于新宏模块参数的名称和描述,而不是子模块或根参数的名称和描述。所有部分的所有定义目标MacroParameter
整个宏模块内必须清晰,以确保所有宏模块参数的参数 ID 唯一。MacroIO
:如果在section中使用了这种小节Submodule
或者Root
,则可以指示所定义的子模块(或根)的特定 I/O 本身应该作为宏模块的 I/O 出现。为此,本节的目标MacroIO
用作宏模块 I/O 的新 I/O ID。然后给定子模块(或根)的 I/O 定义为Local_IOID
。此外,可以使用以下定义创建文本列表条目New_Name
和New_Desc
。这些条目用于新宏模块 I/O(而不是子模块或根 I/O)的名称和描述。所有部分的所有定义目标MacroIO
整个宏模块内的 I/O ID 必须清晰,以确保所有宏模块 I/O 具有唯一的 I/O ID。MacroSlot
:如果本节中使用了该小节Submodule
或者Root
,则可以指示所定义的子模块(或根)的特定槽本身应该作为宏模块的槽出现。这样,可以将其他模块实例插入到 MacroModule 实例的该插槽下方。为此,本节的目标MacroSlot
用作宏模块插槽的新插槽 ID。然后给定子模块(或根)的插槽定义为Local_SlotID
。此外,可以使用定义创建文本列表条目New_Role
。该条目用于新宏模块插槽的角色,而不是子模块或根插槽的角色。所有部分的所有定义目标MacroSlot
整个宏模块内的内容必须清晰,以确保所有宏模块插槽的插槽 ID 唯一。Parent_Instance
: 定义一个ID对应一个section的目标IDRootmodule
或者Submodule
包围部分的MacroModule
。该定义仅存在于该部分中Submodule
。它定义了应在其下方插入子模块的父模块实例。该子模块由相应部分描述Submodule
的宏模块。此外,定义Parent_Slot
也是必需的。Parent_Slot
:定义与位于由 标识的子模块类型下的插槽 ID 相对应的 IDParent_Module
。本节描述的 MacroModule 类型的子模块Submodule
插入此插槽下方。Default_Allocation
:这与插槽声明下的同名部分相同(Slot
和Slot_Multi
)。本节为“根模块”和“子模块”定义了应为哪个实例配置插入哪种 MacroModule 类型的子模块。唯一的区别是没有Instance_Name
可以定义为Default_Allocation
在一个部分下Rootmodule
,而是在部分下Submodule
。原因是作为“根模块”插入的模块实例从 MacroModule 实例接收其名称,因此不能通过“默认”输入。Reference
:表明以下小节描述了模块参考。模块实例下方生成引用Parent_Instance
和插槽Parent_Slot
,引用子模块Referenced_Instance
。作为Parent_Instance
,该引用的实例必须源自同一节下面的根模块实例的子模块集合MacroModule
。
不得使用
IMPLEMENTED_BY
或者IMPORTS
在其模块声明中。它必须包括该部分
MetaData
和MacroModule
。否则,不得使用附加部分。必须至少有一个
Rootmodule
下面的部分Macro_Module
部分。而且,绝对不能有第二次Rootmodule
部分。对于每个
submodule
, 这俩Parent_Instance
和Parent_Slot
必须定义在MacroModule
。这必须被定义为Local_SlotID
之内MacroSlot
的Parent_Instance
。