Skip to main content

部分:宏模块

本节介绍宏模块的参数。该部分是在您生成宏模块时自动创建的。作为替代方案,您可以手动将该部分插入模块声明中或编辑自动生成的部分。

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中使用了这种subsection Submodule 或者 Root,那么可以指示所定义的子模块(或根)的特定参数本身应该作为宏模块的参数出现。为此,本节的目标 MacroParameter 用作宏模块参数的新参数ID。然后给定子模块(或根)的参数定义为 Local_ParameterID。此外,可以使用以下定义创建文本列表条目 New_NameNew_Desc。这些条目用于新宏模块参数的名称和描述,而不是子模块或根参数的名称和描述。所有部分的所有定义目标 MacroParameter 整个宏模块内必须清晰,以确保所有宏模块参数的参数 ID 唯一。

  • MacroIO:如果在section中使用了这种小节 Submodule 或者 Root,则可以指示所定义的子模块(或根)的特定 I/O 本身应该作为宏模块的 I/O 出现。为此,本节的目标 MacroIO 用作宏模块 I/O 的新 I/O ID。然后给定子模块(或根)的 I/O 定义为 Local_IOID。此外,可以使用以下定义创建文本列表条目 New_NameNew_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的目标ID Rootmodule 或者 Submodule 包围部分的 MacroModule。该定义仅存在于该部分中 Submodule。它定义了应在其下方插入子模块的父模块实例。该子模块由相应部分描述 Submodule 的宏模块。此外,定义 Parent_Slot 也是必需的。

  • Parent_Slot:定义与位于由 标识的子模块类型下的插槽 ID 相对应的 ID Parent_Module。本节描述的 MacroModule 类型的子模块 Submodule 插入此插槽下方。

  • Default_Allocation:这与插槽声明下的同名部分相同(SlotSlot_Multi)。本节为“根模块”和“子模块”定义了应为哪个实例配置插入哪种 MacroModule 类型的子模块。唯一的区别是没有 Instance_Name 可以定义为 Default_Allocation 在一个部分下 Rootmodule,而是在部分下 Submodule。原因是作为“根模块”插入的模块实例从 MacroModule 实例接收其名称,因此不能通过“默认”输入。

  • Reference:表明以下小节描述了模块参考。模块实例下方生成引用 Parent_Instance 和插槽 Parent_Slot,引用子模块 Referenced_Instance。作为 Parent_Instance,该引用的实例必须源自同一节下面的根模块实例的子模块集合 MacroModule

. MacroModule 类型的模块声明必须满足以下条件:
  • 不得使用 IMPLEMENTED_BY 或者 IMPORTS 在其模块声明中。

  • 它必须包括该部分 MetaDataMacroModule。否则,不得使用附加部分。

  • 必须至少有一个 Rootmodule 下面的部分 Macro_Module 部分。而且,绝对不能有第二次 Rootmodule 部分。

  • 对于每个 submodule , 这俩 Parent_InstanceParent_Slot 必须定义在 MacroModule。这必须被定义为 Local_SlotID 之内 MacroSlotParent_Instance