Sezione: MacroModulo
In questa sezione vengono descritti i parametri del MacroModulo. La sezione viene creata automaticamente quando si genera un modulo macro. In alternativa, è possibile inserire manualmente la sezione in una dichiarazione di modulo o modificare una sezione generata automaticamente.
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
I dettagli riguardanti la sintassi dei tipi di definizione sono descritti nella sezione Dichiarazione del modulo.
MacroModule
: Se questa sezione è definita, allora nessun'altra sezione può apparire all'interno dell'intera dichiarazione del modulo tranne la sezioneMetaData
. Ogni dichiarazione di modulo con questa sezione è identificata chiaramente come tipo MacroModule. Un'altra sezioneMacroModule
non è consentito all'interno di una dichiarazione di modulo.Rootmodule
: Indica che le seguenti sottosezioni descrivono il sottomodulo radice, che dovrebbe essere 1) la radice di questo tipo MacroModule e 2) inserito come genitore superiore di tutti gli altri sottomoduli del tipo MacroModule.Submodule
: Indica che le seguenti sottosezioni descrivono un sottomodulo, che deve essere inserito sotto il sottomodulo radice in un sottoalbero per il tipo MacroModule.MacroParameter
: Se questo tipo di sottosezione viene utilizzato in una sezioneSubmodule
ORoot
, allora può essere indicato che un parametro specifico del sottomodulo definito (o root) dovrebbe esso stesso presentarsi come parametro del modulo macro. Per questo, l'obiettivo della sezioneMacroParameter
viene utilizzato come nuovo ID parametro per il parametro del modulo macro. Il parametro del sottomodulo dato (o radice) viene quindi definito daLocal_ParameterID
. Inoltre è possibile creare voci di liste di testo utilizzando le definizioni diNew_Name
ENew_Desc
. Queste voci vengono utilizzate per il nome e la descrizione del nuovo parametro del modulo macro anziché per quello del sottomodulo o del parametro root. Tutti gli obiettivi definiti di tutte le sezioniMacroParameter
all'interno di un intero modulo macro deve essere chiaro per garantire ID parametri univoci per tutti i parametri del modulo macro.MacroIO
: Se questo tipo di sottosezione viene utilizzato nella sezioneSubmodule
ORoot
, allora si può indicare che un determinato I/O del sottomodulo definito (o root) dovrebbe esso stesso presentarsi come I/O del modulo macro. Per questo, l'obiettivo della sezioneMacroIO
viene utilizzato come nuovo ID I/O per l'I/O del modulo macro. L'I/O del sottomodulo dato (o radice) viene quindi definito daLocal_IOID
. Inoltre è possibile creare voci di liste di testo utilizzando le definizioni diNew_Name
ENew_Desc
. Queste voci vengono utilizzate per il nome e la descrizione del nuovo I/O del modulo macro invece del sottomodulo o dell'I/O root. Tutti gli obiettivi definiti di tutte le sezioniMacroIO
all'interno di un intero modulo macro deve essere chiaro per garantire ID I/O univoci per tutti gli I/O del modulo macro.MacroSlot
: Se questa sottosezione viene utilizzata nella sezioneSubmodule
ORoot
, allora può essere indicato che uno slot specifico del sottomodulo definito (o radice) dovrebbe esso stesso presentarsi come slot del modulo macro. In questo modo è possibile inserire ulteriori istanze del modulo sotto questo slot dell'istanza MacroModule. Per questo, l'obiettivo della sezioneMacroSlot
viene utilizzato come nuovo ID slot per lo slot del modulo macro. Lo slot del sottomodulo specificato (o radice) viene quindi definito daLocal_SlotID
. Inoltre è possibile creare una voce in un elenco di testi utilizzando le definizioniNew_Role
. Questa voce viene utilizzata per il ruolo del nuovo slot del modulo macro anziché quello del sottomodulo o dello slot root. Tutti gli obiettivi definiti di tutte le sezioniMacroSlot
all'interno di un intero MacroModule deve essere chiaro per garantire ID slot univoci per tutti gli slot MacroModule.Parent_Instance
: Definisce un ID corrispondente a un ID di destinazione di una sezioneRootmodule
OSubmodule
della sezione comprensivaMacroModule
. Questa definizione esiste solo all'interno della sezioneSubmodule
. Definisce l'istanza del modulo genitore sotto la quale deve essere inserito il sottomodulo. Questo sottomodulo è descritto nella rispettiva sezioneSubmodule
del MacroModulo. Inoltre, la definizioneParent_Slot
è anche richiesto.Parent_Slot
: Definisce un ID corrispondente all'ID dello slot situato sotto il tipo di sottomodulo identificato daParent_Module
. Il sottomodulo del tipo MacroModule descritto dalla sezioneSubmodule
è inserito sotto questo slot.Default_Allocation
: Questo è identico alla sezione con lo stesso nome sotto le dichiarazioni degli slot (Slot
ESlot_Multi
). Questa sezione definisce sia per il "modulo root" che per il "sottomodulo" quale tipo di sottomodulo di tipo MacroModule deve essere inserito per quale configurazione di istanza. L'unica differenza è che noInstance_Name
può essere definito perDefault_Allocation
sotto una sezioneRootmodule
, ma piuttosto in sezioniSubmodule
. Il motivo è che le istanze del modulo inserite come "modulo root" ricevono il nome dall'istanza MacroModule e quindi non possono essere inserite per "default".Reference
: Mostra che le seguenti sottosezioni descrivono un riferimento al modulo. Viene generato un riferimento sotto l'istanza del moduloParent_Instance
e la fessuraParent_Slot
, facendo riferimento al sottomoduloReferenced_Instance
. Come ilParent_Instance
, questa istanza di riferimento deve provenire dall'insieme del sottomodulo di istanze del modulo root sotto la stessa sezioneMacroModule
.
Non deve essere utilizzato
IMPLEMENTED_BY
OIMPORTS
nella sua dichiarazione del modulo.Deve includere la sezione
MetaData
EMacroModule
. Altrimenti non devono essere utilizzate sezioni aggiuntive.Ce ne deve essere almeno uno
Rootmodule
sezione sotto ilMacro_Module
sezione. Inoltre, non deve esserci un secondoRootmodule
sezione.Per ciascuno
submodule
, entrambi iParent_Instance
e ilParent_Slot
deve essere definito all'internoMacroModule
. Questo deve quindi essere definito comeLocal_SlotID
entroMacroSlot
delParent_Instance
.