Application module: Land ISO/TS 10303-1692:2018-11(E)
© ISO

Cover page
Table of contents
Copyright
Foreword
Introduction
1 Scope
2 Normative references
3 Terms, definitions and abbreviated terms
    3.1 Terms and definitions
    3.2 Abbreviated terms

4 Information requirements
   4.1 Required AM ARMs
   4.2 ARM entity definitions
   4.3 ARM subtype constraint definitions
   4.4 ARM function definitions
5 Module interpreted model
   5.1 Mapping specification
   5.2 MIM EXPRESS short listing
     5.2.1 MIM entity definitions
     5.2.2 MIM subtype constraint definition

A MIM short names
B Information object registration
C ARM EXPRESS-G   EXPRESS-G
D MIM EXPRESS-G   EXPRESS-G
E Computer interpretable listings
F Change history
Bibliography
Index

4 Information requirements

This clause specifies the information requirements for the Land application module. The information requirements are specified as the Application Reference Model (ARM) of this application module.

NOTE 1  A graphical representation of the information requirements is given in Annex C.

NOTE 2  The mapping specification is specified in 5.1. It shows how the information requirements are met by using common resources and constructs defined or imported in the MIM schema of this application module.

This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following begins the Land_arm schema and identifies the necessary external references.

EXPRESS specification:

*)
SCHEMA Land_arm;
(*

4.1 Required AM ARMs

The following EXPRESS interface statements specify the elements imported from the ARMs of other application modules.

EXPRESS specification:

*)
USE FROM Layered_interconnect_module_design_arm;    --  ISO/TS 10303-1698

REFERENCE FROM Support_resource_arm    --  ISO/TS 10303-1800
  (bag_to_set);
(*

NOTE 1   The schemas referenced above are specified in the following part of ISO 10303:

Layered_interconnect_module_design_arm ISO/TS 10303-1698
Support_resource_arm ISO/TS 10303-1800

NOTE 2   See Annex C, Figures C.1and C.2 for a graphical representation of this schema.

4.2 ARM entity definitions

This subclause specifies the ARM entities for this module. Each ARM application entity is an atomic element that embodies a unique application concept and contains attributes specifying the data elements of the entity. The ARM entities and definitions are specified below.

4.2.1 Contact_size_dependent_land   EXPRESS-GMapping table

A Contact_size_dependent_land is a type of Land whose shape is dependent on the size of the contact area of the Component_terminal that will be joined to the Contact_size_dependent_land in the assembly. A Contact_size_dependent_land is a feature in the design view that is designed to implement an interface terminal of an interconnect. Each Contact_size_dependent_land has a Component_terminal_to_interconnect_module_interface_terminal_assignment that associates the Contact_size_dependent_land with the Interconnect_module_interface_terminal that is the usage view feature. The location of the Contact_size_dependent_land is dependent on the location of the Interconnect_module_interface_terminal it is associated with. The location is represented by a Dependently_located_layer_connection_point that references the Interconnect_module_interface_terminal as it's associated_design_object. In the case that there is a Conductive_interconnect_element connected to the Contact_size_dependent_land, the location of the Conductive_interconnect_element_terminal co-located with the Contact_size_dependent_land is also defined by that same Dependently_located_layer_connection_point.

EXAMPLE    Figure 1 is a detail that illustrates the Contact_size_dependent_land in relationship to the terminal that mates with it.



Figure 1 —  Contact_size_dependent_land

Figure 1 —  Contact_size_dependent_land

NOTE 1   The path from the Contact_size_dependent_land to a Conductive_interconnect_element implementing internal connectivity is:

Table 1 — Reference path of Contact_size_dependent_land to a Conductive_interconnect_element

Contact_size_dependent_land <-
Land_interface_terminal
interconnect_or_assembly_module_select = Land_interface_terminal
interconnect_or_assembly_module_select <-
Component_terminal_to_interconnect_module_interface_terminal_assignment.assigned_terminal
Component_terminal_to_interconnect_module_interface_terminal_assignment
Component_terminal_to_interconnect_module_interface_terminal_assignment.usage_view_terminal ->
Interconnect_module_interface_terminal <=
Interconnect_module_terminal
terminal_or_inter_stratum_feature = Interconnect_module_terminal
terminal_or_inter_stratum_feature <-
Dependently_located_layer_connection_point.associated_design_object
Dependently_located_layer_connection_point <=
Layer_connection_point <-
Conductive_interconnect_element_terminal.location
Conductive_interconnect_element_terminal.associated_definition ->
Conductive_interconnect_element

The path traverses the Component_terminal_to_interconnect_module_interface_terminal_assignment and also the Dependently_located_layer_connection_point. The path is represented with the mapping table syntax defined in clause 5 of this part of ISO 10303.

NOTE 2   There are no more than two Component_terminal_to_interconnect_module_interface_terminal_assignment for each Contact_size_dependent_land. In most scenarios there is exactly one Component_terminal_to_interconnect_module_interface_terminal_assignment for each Contact_size_dependent_land. There may be several Conductive_interconnect_element or Area_component associated with a Contact_size_dependent_land.

EXPRESS specification:

*)
ENTITY Contact_size_dependent_land
  SUBTYPE OF (Land);
  SELF\Definition_based_product_occurrence.derived_from : Default_attachment_size_based_land_physical_template;
INVERSE
  external_access_mechanism : SET[1:2] OF Land_interface_terminal FOR associated_definition;
END_ENTITY;
(*

Attribute definitions:

derived_from: specifies a role of the Default_attachment_size_based_land_physical_template for the Contact_size_dependent_land.

external_access_mechanism: specifies an inverse relationship that specifies that the existence of the Contact_size_dependent_land is dependent on the existence of the Land_interface_terminal that specifies the Contact_size_dependent_land as its associated_definition. There shall be one or two Land_interface_terminals for a Contact_size_dependent_land.

4.2.2 Dependent_electrical_isolation_removal_component   EXPRESS-GMapping table

A Dependent_electrical_isolation_removal_component is a type of Electrical_isolation_laminate_component.

EXPRESS specification:

*)
ENTITY Dependent_electrical_isolation_removal_component
  SUBTYPE OF (Electrical_isolation_laminate_component);
  SELF\Electrical_isolation_laminate_component.derived_from : Dependent_electrical_isolation_removal_template;
DERIVE
  SELF\Material_removal_laminate_component.causal_item RENAMED associated_land : Land := land_get_associated_land_for_electrical_removal(SELF);
WHERE
  WR1: associated_land\Definition_based_product_occurrence.derived_from :=: SELF\Definition_based_product_occurrence.derived_from\Dependent_electrical_isolation_removal_template.associated_item;
  WR2: NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.MULTI_LAYER_MATERIAL_REMOVAL_LAMINATE_COMPONENT' IN TYPEOF(SELF));
  WR3: associated_land\Land.functional = FALSE;
END_ENTITY;
(*

Attribute definitions:

derived_from: an attribute inherited from the Electrical_isolation_laminate_component shall be redeclared as the Dependent_electrical_isolation_removal_template for the Dependent_electrical_isolation_removal_component.

associated_land: specifies the role of the Land for the Dependent_electrical_isolation_removal_component.

Formal propositions:

WR1: The associated_land\Definition_based_product_occurrence.derived_from shall be equal to derived_from.associated_item.

WR2: A Dependent_electrical_isolation_removal_component shall not be a Multi_layer_material_removal_laminate_component.

WR3: The Land specified by associated_land shall not be a functional Land.

4.2.3 Dependent_thermal_isolation_removal_component   EXPRESS-GMapping table

A Dependent_thermal_isolation_removal_component is a type of Material_removal_structured_component.

EXPRESS specification:

*)
ENTITY Dependent_thermal_isolation_removal_component
  SUBTYPE OF (Thermal_isolation_removal_component);
  SELF\Thermal_isolation_removal_component.derived_from : Dependent_thermal_isolation_removal_template;
DERIVE
  associated_land : Land := land_get_associated_land_for_thermal_removal(SELF);
WHERE
  WR1: associated_land\Definition_based_product_occurrence.derived_from :=: SELF\Thermal_isolation_removal_component.derived_from\Dependent_thermal_isolation_removal_template.associated_item;
  WR2: associated_land\Land.functional = TRUE;
END_ENTITY;
(*

Attribute definitions:

derived_from: an attribute inherited from the Definition_based_product_occurrence shall be redeclared as the Dependent_thermal_isolation_removal_template for the Dependent_thermal_isolation_removal_component.

associated_land: specifies a role of the Land for the Dependent_thermal_isolation_removal_component.

Formal propositions:

WR1: The associated_land\Definition_based_product_occurrence.derived_from shall be equal to derived_from.associated_item.

WR2: The Land specified by associated_land shall be a functional Land.

4.2.4 Inter_stratum_feature_dependent_land   EXPRESS-GMapping table

An Inter_stratum_feature_dependent_land is a type of Land included in the design to provide mechanical support to an Inter_stratum_feature or included in the design to provide a connection to an Inter_stratum_feature. An Inter_stratum_feature_dependent_land is either a Plated_passage_dependent_land or an Unsupported_passage_dependent_land.

NOTE 1   While it is illogical for a mechanical support Land to be connected to a Conductive_interconnect_element, it is possible due to design modifications.

NOTE 2   In the case that an Inter_stratum_feature_dependent_land is included in the design to support electrical connectivity and a Conductive_interconnect_element is attached to the Inter_stratum_feature_dependent_land, the path from the Inter_stratum_feature_dependent_land to the Conductive_interconnect_element is:

Table 2 — Reference path of Inter_stratum_feature_dependent_land to the Conductive_interconnect_element

 Inter_stratum_feature_dependent_land =>
 Plated_passage_dependent_land
 Plated_passage_dependent_land.reference_plated_passage ->
 Inter_stratum_feature
terminal_or_inter_stratum_feature = Inter_stratum_feature
terminal_or_inter_stratum_feature <-
 Dependently_located_layer_connection_point.associated_design_object
Dependently_located_layer_connection_point <=
Layer_connection_point <-
 Conductive_interconnect_element_terminal.location
Conductive_interconnect_element_terminal.associated_definition ->
 Conductive_interconnect_element

The path traverses the Dependently_located_layer_connection_point. The path representation uses the syntax from Clause 5 of this part of ISO 10303.

EXPRESS specification:

*)
ENTITY Inter_stratum_feature_dependent_land
  ABSTRACT SUPERTYPE OF (ONEOF (Plated_passage_dependent_land,
                                Unsupported_passage_dependent_land))
  SUBTYPE OF (Land);
  SELF\Definition_based_product_occurrence.derived_from : Default_passage_based_land_physical_template;
END_ENTITY;
(*

Attribute definitions:

derived_from: specifies a role of the Default_passage_based_land_physical_template for the Inter_stratum_feature_dependent_land.

4.2.5 Land   EXPRESS-GMapping table

A Land is a type of Stratum_feature_template_component that is provided to support explicit geometric based interfaces to the wiring pattern on a layer in an interconnect or to provide mechanical support to a vertical structure. A Land may be a Contact_size_dependent_land, or an Inter_stratum_feature_dependent_land. A Land helps compose a Stratum_feature on a signal layer. A Land may be included in a design to provide mechanical support to a plated passage and therefore may not be part of a wiring pattern.

NOTE 1   The functional attribute provides a means to determine if a Land is included to provide an interface to a wiring pattern.

EXAMPLE    Figure 22 of ISO/TS 10303-1698 illustrates a padstack that contains a Land.

NOTE 2   The Land type is typically only populated in the case that a pre-processor cannot determine which subtype of the Land should be populated. In the case that a pre-processor can determine what subtype is intended by the source system, the pre-processor should populate the most specific subtype.

NOTE 3   The Land type population in a complex design may be extensive. Implementations may wish to consider combining Land with other types in order to reduce population size.

EXPRESS specification:

*)
ENTITY Land
  SUPERTYPE OF (ONEOF (Contact_size_dependent_land,
                       Inter_stratum_feature_dependent_land))
  SUBTYPE OF (Stratum_feature_template_component);
  alternate_land_definition : OPTIONAL Land_physical_template;
  SELF\Definition_based_product_occurrence.derived_from : Land_physical_template;
DERIVE
  functional : BOOLEAN := (SIZEOF(['LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.CONDUCTOR', 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.CONNECTED_FILLED_AREA'] * TYPEOF(SELF\Stratum_feature_template_component.implementation_or_resident_stratum)) = 1);
INVERSE
  access_mechanism : SET[0:?] OF Land_join_terminal FOR associated_definition;
WHERE
  WR1: NOT(functional) OR (SIZEOF(access_mechanism) > 0);
END_ENTITY;
(*

Attribute definitions:

alternate_land_definition: specifies one role of the Land_physical_template for the Land. The value of this attribute need not be specified.

derived_from: specifies the primary role of the Land_physical_template for the Land.

functional: specifies that the Land is not the only instance of Laminate_component contributing to the Stratum_feature referenced by the implementation_or_resident_stratum attribute inherited from the Stratum_feature_template_component.

access_mechanism: specifies an inverse relationship that specifies that the existence of the Land is dependent on the existence of the Land_join_terminal that specifies the Land as its associated_definition. There shall be zero or more Land_join_terminals for a Land. This relationship is for internal access only.

Formal propositions:

WR1: If Land is functional, then there shall be at least one member of access_mechanism.

NOTE 4   A Land that is only mechanical support to a plated passage is not functional and does not have terminals.

4.2.6 Land_interface_terminal   EXPRESS-GMapping table

A Land_interface_terminal is a type of Laminate_component_interface_terminal included to identify the interface available to be fastened to in the next level of assembly. The definition shall reference the derived_from of the associated_definition.

EXPRESS specification:

*)
ENTITY Land_interface_terminal
  SUBTYPE OF (Laminate_component_interface_terminal);
  SELF\Component_feature.definition : Land_template_interface_terminal;
  SELF\Component_feature.associated_definition : Contact_size_dependent_land;
WHERE
  WR1: NOT EXISTS(SELF\Shape_element.description);
END_ENTITY;
(*

Attribute definitions:

definition: specifies a role of the Land_template_interface_terminal for the Land_interface_terminal.

associated_definition: specifies a role of the Contact_size_dependent_land for the Land_interface_terminal.

Formal propositions:

WR1: The description shall not be populated.

4.2.7 Land_join_terminal   EXPRESS-GMapping table

A Land_join_terminal is a type of Laminate_component_join_terminal included in the design to mate directly with a terminal of another fabricated feature by use of a Fabrication_joint internally in a layout. The definition shall reference the derived_from of the associated_definition.

EXPRESS specification:

*)
ENTITY Land_join_terminal
  SUBTYPE OF (Laminate_component_join_terminal);
  SELF\Component_feature.definition : Land_template_join_terminal;
  SELF\Component_feature.associated_definition : Land;
WHERE
  WR1: NOT EXISTS(SELF\Shape_element.description);
END_ENTITY;
(*

Attribute definitions:

definition: specifies a role of the Land_template_join_terminal for the Land_join_terminal.

associated_definition: specifies a role of the Land for the Land_join_terminal.

Formal propositions:

WR1: The description shall not be populated.

4.2.8 Land_with_join_terminal   EXPRESS-GMapping table

A Land_with_join_terminal is a type of Land and a type of Land_join_terminal.

EXPRESS specification:

*)
ENTITY Land_with_join_terminal
  SUBTYPE OF (Land, Land_join_terminal);
DERIVE
  SELF\Component_feature.associated_definition : Land_with_join_terminal := SELF;
END_ENTITY;
(*

Attribute definitions:

associated_definition: an attribute inherited from the Component_feature shall be redeclared as the Land_with_join_terminal for the Land_with_join_terminal.

4.2.9 Plated_passage_dependent_land   EXPRESS-GMapping table

A Plated_passage_dependent_land is a type of Inter_stratum_feature_dependent_land whose shape is dependent only on a Plated_passage.

EXPRESS specification:

*)
ENTITY Plated_passage_dependent_land
  SUBTYPE OF (Inter_stratum_feature_dependent_land);
  reference_plated_passage : Plated_passage;
  SELF\Definition_based_product_occurrence.derived_from : Default_plated_passage_based_land_physical_template;
END_ENTITY;
(*

Attribute definitions:

reference_plated_passage: specifies a role of the Plated_passage for the Plated_passage_dependent_land.

derived_from: specifies a role of the Default_plated_passage_based_land_physical_template for the Plated_passage_dependent_land.

4.2.10 Thermal_isolation_removal_component   EXPRESS-GMapping table

A Thermal_isolation_removal_component is a type of Material_removal_structured_component.

EXPRESS specification:

*)
ENTITY Thermal_isolation_removal_component
  SUBTYPE OF (Material_removal_structured_component);
  SELF\Definition_based_product_occurrence.derived_from : Thermal_isolation_removal_template;
WHERE
  WR1: NOT('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.MULTI_LAYER_MATERIAL_REMOVAL_LAMINATE_COMPONENT' IN TYPEOF(SELF));
END_ENTITY;
(*

Attribute definitions:

derived_from: an attribute inherited from the Definition_based_product_occurrence shall be redeclared as the Thermal_isolation_removal_template for theThermal_isolation_removal_component.

Formal propositions:

WR1: A Thermal_isolation_removal_component shall not be a Multi_layer_material_removal_laminate_component.

4.2.11 Unsupported_passage_dependent_land   EXPRESS-GMapping table

An Unsupported_passage_dependent_land is a type of Inter_stratum_feature_dependent_land whose shape is dependent upon the shape of an Unsupported_passage.

EXPRESS specification:

*)
ENTITY Unsupported_passage_dependent_land
  SUBTYPE OF (Inter_stratum_feature_dependent_land);
  reference_passage : Unsupported_passage;
  SELF\Definition_based_product_occurrence.derived_from : Default_unsupported_passage_based_land_physical_template;
END_ENTITY;
(*

Attribute definitions:

reference_passage: specifies a role of the Unsupported_passage for the Unsupported_passage_dependent_land.

derived_from: specifies a role of the Default_unsupported_passage_based_land_physical_template for the Unsupported_passage_dependent_land.

4.3 ARM subtype constraint definitions

This subclause specifies the ARM subtype constraints for this module. Each subtype constraint places constraints on the possible super-type / subtype instantiations. The ARM subtype constraints and definitions are specified below.

4.3.1 l_laminate_component_interface_terminal_subtypes   EXPRESS-GMapping table

The l_laminate_component_interface_terminal_subtypes constraint specifies a constraint that applies to instances of Laminate_component_interface_terminal and enforces the rule that its subtypes Component_termination_passage_interface_terminal and Land_interface_terminal are exclusive.

EXPRESS specification:

*)
SUBTYPE_CONSTRAINT l_laminate_component_interface_terminal_subtypes FOR Laminate_component_interface_terminal;
  ONEOF (Component_termination_passage_interface_terminal,
         Land_interface_terminal);
END_SUBTYPE_CONSTRAINT;
(*

4.3.2 l_laminate_component_join_terminal_subtypes   EXPRESS-GMapping table

The l_laminate_component_join_terminal_subtypes constraint specifies a constraint that applies to instances of Laminate_component_join_terminal and enforces the rule that its subtypes Component_termination_passage_join_terminal, Land_join_terminal and Embedded_physical_component_terminal are exclusive.

EXPRESS specification:

*)
SUBTYPE_CONSTRAINT l_laminate_component_join_terminal_subtypes FOR Laminate_component_join_terminal;
  ONEOF (Component_termination_passage_join_terminal,
         Land_join_terminal,
         Embedded_physical_component_terminal);
END_SUBTYPE_CONSTRAINT;
(*

4.3.3 stratum_feature_template_component_subtypes   EXPRESS-GMapping table

The stratum_feature_template_component_subtypes constraint specifies a constraint that applies to instances of Stratum_feature_template_component and enforces the rule that its subtypes Area_component, Conductive_interconnect_element and Land are exclusive.

EXPRESS specification:

*)
SUBTYPE_CONSTRAINT stratum_feature_template_component_subtypes FOR Stratum_feature_template_component;
  ONEOF (Area_component,
         Conductive_interconnect_element,
         Land);
END_SUBTYPE_CONSTRAINT;
(*

4.4 ARM function definitions

This subclause specifies the ARM functions for this module. The ARM functions and definitions are specified below.

4.4.1 land_get_associated_land_for_electrical_removal

The function land_get_associated_land_for_electrical_removal returns the Land associated with the Dependent_electrical_isolation_removal_component provided as input.

EXPRESS specification:

*)
FUNCTION land_get_associated_land_for_electrical_removal (input : Dependent_electrical_isolation_removal_component) : Land;
LOCAL
   assembly_relationships_for_associated_structure : SET OF Structured_layout_component_sub_assembly_relationship := [];
   assembly_relationship : SET OF Structured_layout_component_sub_assembly_relationship :=
           bag_to_set(USEDIN(input, 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRUCTURED_LAYOUT_COMPONENT_SUB_ASSEMBLY_RELATIONSHIP.RELATED_VIEW'));
   associated_structure : Structured_layout_component;
   first_location : Template_location_in_structured_template := assembly_relationship[1]\Structured_layout_component_sub_assembly_relationship.first_location;
   resident_stratum : stratum;
   resident_sftc : Stratum_feature_template_component;
  END_LOCAL;
  --determine resident_stratum;
  --critical to just use resident stratum as the individual design intents might be against different stratum features (different power areas).
  --address the multiple design intents here
  --use the last stratum found
   REPEAT i := 1 TO SIZEOF(input\Material_removal_laminate_component.design_intent) BY 1;
  CASE TRUE OF
    ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM' IN TYPEOF(input\Material_removal_laminate_component.design_intent[i])) : 
     resident_stratum := input\Material_removal_laminate_component.design_intent[i];
  
    ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE_TEMPLATE_COMPONENT' IN TYPEOF(input\Material_removal_laminate_component.design_intent[i])) :
    BEGIN
     resident_sftc := input\Material_removal_laminate_component.design_intent[i];
     CASE TRUE OF
       ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE' IN TYPEOF(resident_sftc\Stratum_feature_template_component.implementation_or_resident_stratum)) :
       resident_stratum := resident_sftc\Stratum_feature_template_component.implementation_or_resident_stratum\Stratum_feature.resident_stratum;
       ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM' IN TYPEOF(resident_sftc\Stratum_feature_template_component.implementation_or_resident_stratum)) :
       resident_stratum := resident_sftc\Stratum_feature_template_component.implementation_or_resident_stratum;
       OTHERWISE :
        RETURN(?);
     END_CASE;
    END;
    OTHERWISE :
     RETURN(?);
  END_CASE;
   END_REPEAT;
  --determine first_location;
  --if there is more than one assembly_relationship return UNKNOWN;
   IF SIZEOF(assembly_relationship) <> 1 THEN RETURN(?);
   END_IF;
   
  --determine associated_land;
  --associated land is on same stratum;
  
     associated_structure := assembly_relationship[1]\Structured_layout_component_sub_assembly_relationship.relating_view;
     assembly_relationships_for_associated_structure := 
                     bag_to_set(USEDIN(associated_structure, 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRUCTURED_LAYOUT_COMPONENT_SUB_ASSEMBLY_RELATIONSHIP.RELATING_VIEW')) - assembly_relationship;
  --this assembly relationship is excluded since we are querying for other relationships
  
  CASE TRUE OF
    ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.FOOTPRINT_OCCURRENCE' IN TYPEOF(associated_structure)) :
  --if part of footprint then associated_land has same first_location;
    BEGIN   
     REPEAT i := 1 TO SIZEOF(assembly_relationships_for_associated_structure) BY 1;
      IF ((first_location :=: assembly_relationships_for_associated_structure[i]\Structured_layout_component_sub_assembly_relationship.first_location) AND
         ('LAND_ARM.LAND' IN TYPEOF(assembly_relationships_for_associated_structure[i]\Structured_layout_component_sub_assembly_relationship.related_view)) AND
         (assembly_relationships_for_associated_structure[i]\Structured_layout_component_sub_assembly_relationship.related_view\Stratum_feature_template_component.resident_stratum
              :=: resident_stratum))
      THEN
          RETURN(assembly_relationships_for_associated_structure[i]\Structured_layout_component_sub_assembly_relationship.related_view);
      END_IF;
     END_REPEAT;
    --if no land is found return UNKNOWN.
     RETURN(?);
    END;
    
       ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.PADSTACK_OCCURRENCE' IN TYPEOF(associated_structure)) :
    BEGIN
     REPEAT i := 1 TO SIZEOF(assembly_relationships_for_associated_structure) BY 1;
      IF (('LAND_ARM.LAND' IN TYPEOF(assembly_relationships_for_associated_structure[i]\Structured_layout_component_sub_assembly_relationship.related_view)) AND
          (assembly_relationships_for_associated_structure[i]\Structured_layout_component_sub_assembly_relationship.related_view\Stratum_feature_template_component.resident_stratum
               :=: resident_stratum))
      THEN
          RETURN(assembly_relationships_for_associated_structure[i]\Structured_layout_component_sub_assembly_relationship.related_view);
       END_IF;
     END_REPEAT;
    --if no land is found return UNKNOWN.
     RETURN(?);
    END;
    
    OTHERWISE :
    --if no land is found return UNKNOWN.
     RETURN(?);
  END_CASE;
END_FUNCTION;
(*

Argument definitions:

input: the specified Dependent_electrical_isolation_removal_component.

4.4.2 land_get_associated_land_for_thermal_removal

The function land_get_associated_land_for_thermal_removal returns the Land associated with the Dependent_thermal_isolation_removal_component provided as input.

EXPRESS specification:

*)
FUNCTION land_get_associated_land_for_thermal_removal (input : Dependent_thermal_isolation_removal_component) : Land;
LOCAL
   assembly_relationships_for_associated_structure : SET OF Structured_layout_component_sub_assembly_relationship := [];
   assembly_relationship : SET OF Structured_layout_component_sub_assembly_relationship :=
           bag_to_set(USEDIN(input, 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRUCTURED_LAYOUT_COMPONENT_SUB_ASSEMBLY_RELATIONSHIP.RELATED_VIEW'));
   associated_structure : Structured_layout_component;
   component_mrlc : SET OF Material_removal_laminate_component := [];
   component_relationship : SET OF Structured_layout_component_sub_assembly_relationship :=
           bag_to_set(USEDIN(input, 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRUCTURED_LAYOUT_COMPONENT_SUB_ASSEMBLY_RELATIONSHIP.RELATING_VIEW'));
   first_location : Template_location_in_structured_template := assembly_relationship[1]\Structured_layout_component_sub_assembly_relationship.first_location;
   resident_stratum : stratum;
   resident_sftc : Stratum_feature_template_component;
  END_LOCAL;
  --determine resident_stratum;
  --critical to just use resident stratum as the individual isolation features might be against different stratum features (different power areas).
   REPEAT i := 1 TO SIZEOF(component_relationship) BY 1;
     component_mrlc := component_mrlc + component_relationship[i]\Structured_layout_component_sub_assembly_relationship.related_view;
   END_REPEAT;
  CASE TRUE OF
    ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM' IN TYPEOF(component_mrlc[1]\Material_removal_laminate_component.design_intent[1])) : 
     resident_stratum := component_mrlc[1]\Material_removal_laminate_component.design_intent[1];
  
    ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE_TEMPLATE_COMPONENT' IN TYPEOF(component_mrlc[1]\Material_removal_laminate_component.design_intent[1])) :
    BEGIN
     resident_sftc := component_mrlc[1]\Material_removal_laminate_component.design_intent[1];
     CASE TRUE OF
       ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE' IN TYPEOF(resident_sftc\Stratum_feature_template_component.implementation_or_resident_stratum)) :
       resident_stratum := resident_sftc\Stratum_feature_template_component.implementation_or_resident_stratum\Stratum_feature.resident_stratum;
       ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM' IN TYPEOF(resident_sftc\Stratum_feature_template_component.implementation_or_resident_stratum)) :
       resident_stratum := resident_sftc\Stratum_feature_template_component.implementation_or_resident_stratum;
       OTHERWISE :
        RETURN(?);
     END_CASE;
    END;
    OTHERWISE :
     RETURN(?);
  END_CASE;
  --determine first_location;
  --if there is more than one assembly_relationship return UNKNOWN;
   IF SIZEOF(assembly_relationship) <> 1 THEN RETURN(?);
   END_IF;
   
  --determine associated_land;
  --associated land is on same stratum;
  
     associated_structure := assembly_relationship[1]\Structured_layout_component_sub_assembly_relationship.relating_view;
     assembly_relationships_for_associated_structure := 
                     bag_to_set(USEDIN(associated_structure, 'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRUCTURED_LAYOUT_COMPONENT_SUB_ASSEMBLY_RELATIONSHIP.RELATING_VIEW')) - assembly_relationship;
  --this assembly relationship is excluded since we are querying for other relationships
  
  CASE TRUE OF
    ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.FOOTPRINT_OCCURRENCE' IN TYPEOF(associated_structure)) :
  --if part of footprint then associated_land has same first_location;
    BEGIN   
     REPEAT i := 1 TO SIZEOF(assembly_relationships_for_associated_structure) BY 1;
      IF ((first_location :=: assembly_relationships_for_associated_structure[i]\Structured_layout_component_sub_assembly_relationship.first_location) AND
         ('LAND_ARM.LAND' IN TYPEOF(assembly_relationships_for_associated_structure[i]\Structured_layout_component_sub_assembly_relationship.related_view)) AND
         (assembly_relationships_for_associated_structure[i]\Structured_layout_component_sub_assembly_relationship.related_view\Stratum_feature_template_component.resident_stratum
              :=: resident_stratum))
      THEN
          RETURN(assembly_relationships_for_associated_structure[i]\Structured_layout_component_sub_assembly_relationship.related_view);
      END_IF;
     END_REPEAT;
    --if no land is found return UNKNOWN.
     RETURN(?);
    END;
    
       ('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.PADSTACK_OCCURRENCE' IN TYPEOF(associated_structure)) :
    BEGIN
     REPEAT i := 1 TO SIZEOF(assembly_relationships_for_associated_structure) BY 1;
      IF (('LAND_ARM.LAND' IN TYPEOF(assembly_relationships_for_associated_structure[i]\Structured_layout_component_sub_assembly_relationship.related_view)) AND
          (assembly_relationships_for_associated_structure[i]\Structured_layout_component_sub_assembly_relationship.related_view\Stratum_feature_template_component.resident_stratum
               :=: resident_stratum))
      THEN
          RETURN(assembly_relationships_for_associated_structure[i]\Structured_layout_component_sub_assembly_relationship.related_view);
       END_IF;
     END_REPEAT;
    --if no land is found return UNKNOWN.
     RETURN(?);
    END;
    
    OTHERWISE :
    --if no land is found return UNKNOWN.
     RETURN(?);
  END_CASE;
END_FUNCTION;
(*

Argument definitions:

input: the specified Dependent_thermal_isolation_removal_component.



*)
END_SCHEMA;  -- Land_arm
(*


© ISO 2018 — All rights reserved